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