diff options
Diffstat (limited to 'llvm/test/Transforms/OpenMP/remove_noinline_attributes.ll')
| -rw-r--r-- | llvm/test/Transforms/OpenMP/remove_noinline_attributes.ll | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/llvm/test/Transforms/OpenMP/remove_noinline_attributes.ll b/llvm/test/Transforms/OpenMP/remove_noinline_attributes.ll new file mode 100644 index 000000000000..349e2799de27 --- /dev/null +++ b/llvm/test/Transforms/OpenMP/remove_noinline_attributes.ll @@ -0,0 +1,99 @@ +; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-attributes +; RUN: opt < %s -S -openmp-opt-cgscc | FileCheck %s +; RUN: opt < %s -S -passes=openmp-opt-cgscc | FileCheck %s + +declare void @unknown() + +; __kmpc functions +define void @__kmpc_noinline() noinline nounwind { +; CHECK: Function Attrs: nounwind +; CHECK-LABEL: @__kmpc_noinline( +; CHECK-NEXT: call void @unknown() +; CHECK-NEXT: ret void +; + call void @unknown() + ret void +} +; omp_X functions +define void @omp_noinline() noinline nounwind { +; CHECK: Function Attrs: nounwind +; CHECK-LABEL: @omp_noinline( +; CHECK-NEXT: call void @unknown() +; CHECK-NEXT: ret void +; + call void @unknown() + ret void +} +; _OMP namespace +define void @_ZN4_OMP_noinline() noinline nounwind { +; CHECK: Function Attrs: nounwind +; CHECK-LABEL: @_ZN4_OMP_noinline( +; CHECK-NEXT: call void @unknown() +; CHECK-NEXT: ret void +; + call void @unknown() + ret void +} + +; Negative tests: + +define void @__kmpc_noinline_optnone() noinline optnone nounwind { +; CHECK: Function Attrs: noinline nounwind optnone +; CHECK-LABEL: @__kmpc_noinline_optnone( +; CHECK-NEXT: call void @unknown() +; CHECK-NEXT: ret void +; + call void @unknown() + ret void +} +define void @omp_noinline_optnone() noinline optnone nounwind { +; CHECK: Function Attrs: noinline nounwind optnone +; CHECK-LABEL: @omp_noinline_optnone( +; CHECK-NEXT: call void @unknown() +; CHECK-NEXT: ret void +; + call void @unknown() + ret void +} +; _OMP namespace +define void @_ZN4_OMP_noinline_optnone() noinline optnone nounwind { +; CHECK: Function Attrs: noinline nounwind optnone +; CHECK-LABEL: @_ZN4_OMP_noinline_optnone( +; CHECK-NEXT: call void @unknown() +; CHECK-NEXT: ret void +; + call void @unknown() + ret void +} +define void @a___kmpc_noinline() noinline nounwind { +; CHECK: Function Attrs: noinline nounwind +; CHECK-LABEL: @a___kmpc_noinline( +; CHECK-NEXT: call void @unknown() +; CHECK-NEXT: ret void +; + call void @unknown() + ret void +} +define void @a_omp_noinline() noinline nounwind { +; CHECK: Function Attrs: noinline nounwind +; CHECK-LABEL: @a_omp_noinline( +; CHECK-NEXT: call void @unknown() +; CHECK-NEXT: ret void +; + call void @unknown() + ret void +} +define void @a__ZN4_OMP_noinline() noinline nounwind { +; CHECK: Function Attrs: noinline nounwind +; CHECK-LABEL: @a__ZN4_OMP_noinline( +; CHECK-NEXT: call void @unknown() +; CHECK-NEXT: ret void +; + call void @unknown() + ret void +} + +!llvm.module.flags = !{!0, !1} + +!0 = !{i32 7, !"openmp", i32 50} +!1 = !{i32 7, !"openmp-device", i32 50} |
