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