xref: /llvm-project/llvm/test/Transforms/OpenMP/remove_noinline_attributes.ll (revision 56be9123ca411b001cc6ebd84c36a62c72bd825c)
1b08369f7SJoseph Huber; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-attributes
2b08369f7SJoseph Huber; RUN: opt < %s -S -passes=openmp-opt-cgscc | FileCheck %s
3b08369f7SJoseph Huber
4b08369f7SJoseph Huberdeclare void @unknown()
5b08369f7SJoseph Huber
6b08369f7SJoseph Huber; __kmpc functions
7b08369f7SJoseph Huberdefine void @__kmpc_noinline() noinline nounwind {
8b08369f7SJoseph Huber; CHECK: Function Attrs: nounwind
9*56be9123SJohannes Doerfert; CHECK-LABEL: @__kmpc_noinline(
10b08369f7SJoseph Huber; CHECK-NEXT:    call void @unknown()
11b08369f7SJoseph Huber; CHECK-NEXT:    ret void
12b08369f7SJoseph Huber;
13b08369f7SJoseph Huber  call void @unknown()
14b08369f7SJoseph Huber  ret void
15b08369f7SJoseph Huber}
16b08369f7SJoseph Huber; omp_X functions
17b08369f7SJoseph Huberdefine void @omp_noinline() noinline nounwind {
18b08369f7SJoseph Huber; CHECK: Function Attrs: nounwind
19*56be9123SJohannes Doerfert; CHECK-LABEL: @omp_noinline(
20b08369f7SJoseph Huber; CHECK-NEXT:    call void @unknown()
21b08369f7SJoseph Huber; CHECK-NEXT:    ret void
22b08369f7SJoseph Huber;
23b08369f7SJoseph Huber  call void @unknown()
24b08369f7SJoseph Huber  ret void
25b08369f7SJoseph Huber}
26b08369f7SJoseph Huber; _OMP namespace
27d4f3d821SJohannes Doerfertdefine void @_ZN4ompx_noinline() noinline nounwind {
28b08369f7SJoseph Huber; CHECK: Function Attrs: nounwind
29*56be9123SJohannes Doerfert; CHECK-LABEL: @_ZN4ompx_noinline(
30b08369f7SJoseph Huber; CHECK-NEXT:    call void @unknown()
31b08369f7SJoseph Huber; CHECK-NEXT:    ret void
32b08369f7SJoseph Huber;
33b08369f7SJoseph Huber  call void @unknown()
34b08369f7SJoseph Huber  ret void
35b08369f7SJoseph Huber}
36b08369f7SJoseph Huber
37b08369f7SJoseph Huber; Negative tests:
38b08369f7SJoseph Huber
39b08369f7SJoseph Huberdefine void @__kmpc_noinline_optnone() noinline optnone nounwind {
40b08369f7SJoseph Huber; CHECK: Function Attrs: noinline nounwind optnone
41*56be9123SJohannes Doerfert; CHECK-LABEL: @__kmpc_noinline_optnone(
42b08369f7SJoseph Huber; CHECK-NEXT:    call void @unknown()
43b08369f7SJoseph Huber; CHECK-NEXT:    ret void
44b08369f7SJoseph Huber;
45b08369f7SJoseph Huber  call void @unknown()
46b08369f7SJoseph Huber  ret void
47b08369f7SJoseph Huber}
48b08369f7SJoseph Huberdefine void @omp_noinline_optnone() noinline optnone nounwind {
49b08369f7SJoseph Huber; CHECK: Function Attrs: noinline nounwind optnone
50*56be9123SJohannes Doerfert; CHECK-LABEL: @omp_noinline_optnone(
51b08369f7SJoseph Huber; CHECK-NEXT:    call void @unknown()
52b08369f7SJoseph Huber; CHECK-NEXT:    ret void
53b08369f7SJoseph Huber;
54b08369f7SJoseph Huber  call void @unknown()
55b08369f7SJoseph Huber  ret void
56b08369f7SJoseph Huber}
57b08369f7SJoseph Huber; _OMP namespace
58d4f3d821SJohannes Doerfertdefine void @_ZN4ompx_noinline_optnone() noinline optnone nounwind {
59b08369f7SJoseph Huber; CHECK: Function Attrs: noinline nounwind optnone
60*56be9123SJohannes Doerfert; CHECK-LABEL: @_ZN4ompx_noinline_optnone(
61b08369f7SJoseph Huber; CHECK-NEXT:    call void @unknown()
62b08369f7SJoseph Huber; CHECK-NEXT:    ret void
63b08369f7SJoseph Huber;
64b08369f7SJoseph Huber  call void @unknown()
65b08369f7SJoseph Huber  ret void
66b08369f7SJoseph Huber}
67b08369f7SJoseph Huberdefine void @a___kmpc_noinline() noinline nounwind {
68b08369f7SJoseph Huber; CHECK: Function Attrs: noinline nounwind
69*56be9123SJohannes Doerfert; CHECK-LABEL: @a___kmpc_noinline(
70b08369f7SJoseph Huber; CHECK-NEXT:    call void @unknown()
71b08369f7SJoseph Huber; CHECK-NEXT:    ret void
72b08369f7SJoseph Huber;
73b08369f7SJoseph Huber  call void @unknown()
74b08369f7SJoseph Huber  ret void
75b08369f7SJoseph Huber}
76b08369f7SJoseph Huberdefine void @a_omp_noinline() noinline nounwind {
77b08369f7SJoseph Huber; CHECK: Function Attrs: noinline nounwind
78*56be9123SJohannes Doerfert; CHECK-LABEL: @a_omp_noinline(
79b08369f7SJoseph Huber; CHECK-NEXT:    call void @unknown()
80b08369f7SJoseph Huber; CHECK-NEXT:    ret void
81b08369f7SJoseph Huber;
82b08369f7SJoseph Huber  call void @unknown()
83b08369f7SJoseph Huber  ret void
84b08369f7SJoseph Huber}
85d4f3d821SJohannes Doerfertdefine void @a__ZN4ompx_noinline() noinline nounwind {
86b08369f7SJoseph Huber; CHECK: Function Attrs: noinline nounwind
87*56be9123SJohannes Doerfert; CHECK-LABEL: @a__ZN4ompx_noinline(
88b08369f7SJoseph Huber; CHECK-NEXT:    call void @unknown()
89b08369f7SJoseph Huber; CHECK-NEXT:    ret void
90b08369f7SJoseph Huber;
91b08369f7SJoseph Huber  call void @unknown()
92b08369f7SJoseph Huber  ret void
93b08369f7SJoseph Huber}
94b08369f7SJoseph Huber
95b08369f7SJoseph Huber!llvm.module.flags = !{!0, !1}
96b08369f7SJoseph Huber
97b08369f7SJoseph Huber!0 = !{i32 7, !"openmp", i32 50}
98b08369f7SJoseph Huber!1 = !{i32 7, !"openmp-device", i32 50}
99