[rtsan] Add fork/execve interceptors (#117198)
[llvm-project.git] / llvm / test / Transforms / OpenMP / remove_noinline_attributes.ll
blob8da4e45175ed0c9d5d41de1186c85709f666c3e0
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-attributes
2 ; RUN: opt < %s -S -passes=openmp-opt-cgscc | FileCheck %s
4 declare void @unknown()
6 ; __kmpc functions
7 define void @__kmpc_noinline() noinline nounwind {
8 ; CHECK: Function Attrs: nounwind
9 ; CHECK-LABEL: @__kmpc_noinline(
10 ; CHECK-NEXT:    call void @unknown()
11 ; CHECK-NEXT:    ret void
13   call void @unknown()
14   ret void
16 ; omp_X functions
17 define void @omp_noinline() noinline nounwind {
18 ; CHECK: Function Attrs: nounwind
19 ; CHECK-LABEL: @omp_noinline(
20 ; CHECK-NEXT:    call void @unknown()
21 ; CHECK-NEXT:    ret void
23   call void @unknown()
24   ret void
26 ; _OMP namespace
27 define void @_ZN4ompx_noinline() noinline nounwind {
28 ; CHECK: Function Attrs: nounwind
29 ; CHECK-LABEL: @_ZN4ompx_noinline(
30 ; CHECK-NEXT:    call void @unknown()
31 ; CHECK-NEXT:    ret void
33   call void @unknown()
34   ret void
37 ; Negative tests:
39 define void @__kmpc_noinline_optnone() noinline optnone nounwind {
40 ; CHECK: Function Attrs: noinline nounwind optnone
41 ; CHECK-LABEL: @__kmpc_noinline_optnone(
42 ; CHECK-NEXT:    call void @unknown()
43 ; CHECK-NEXT:    ret void
45   call void @unknown()
46   ret void
48 define void @omp_noinline_optnone() noinline optnone nounwind {
49 ; CHECK: Function Attrs: noinline nounwind optnone
50 ; CHECK-LABEL: @omp_noinline_optnone(
51 ; CHECK-NEXT:    call void @unknown()
52 ; CHECK-NEXT:    ret void
54   call void @unknown()
55   ret void
57 ; _OMP namespace
58 define void @_ZN4ompx_noinline_optnone() noinline optnone nounwind {
59 ; CHECK: Function Attrs: noinline nounwind optnone
60 ; CHECK-LABEL: @_ZN4ompx_noinline_optnone(
61 ; CHECK-NEXT:    call void @unknown()
62 ; CHECK-NEXT:    ret void
64   call void @unknown()
65   ret void
67 define void @a___kmpc_noinline() noinline nounwind {
68 ; CHECK: Function Attrs: noinline nounwind
69 ; CHECK-LABEL: @a___kmpc_noinline(
70 ; CHECK-NEXT:    call void @unknown()
71 ; CHECK-NEXT:    ret void
73   call void @unknown()
74   ret void
76 define void @a_omp_noinline() noinline nounwind {
77 ; CHECK: Function Attrs: noinline nounwind
78 ; CHECK-LABEL: @a_omp_noinline(
79 ; CHECK-NEXT:    call void @unknown()
80 ; CHECK-NEXT:    ret void
82   call void @unknown()
83   ret void
85 define void @a__ZN4ompx_noinline() noinline nounwind {
86 ; CHECK: Function Attrs: noinline nounwind
87 ; CHECK-LABEL: @a__ZN4ompx_noinline(
88 ; CHECK-NEXT:    call void @unknown()
89 ; CHECK-NEXT:    ret void
91   call void @unknown()
92   ret void
95 !llvm.module.flags = !{!0, !1}
97 !0 = !{i32 7, !"openmp", i32 50}
98 !1 = !{i32 7, !"openmp-device", i32 50}