[llvm] 946e805 - AMDGPU: Add baseline test for unsafe fp atomics attribute inlining

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 15 15:37:22 PST 2021


Author: Matt Arsenault
Date: 2021-12-15T18:37:18-05:00
New Revision: 946e8056657791eb483158a8059eb3cb0f905db5

URL: https://github.com/llvm/llvm-project/commit/946e8056657791eb483158a8059eb3cb0f905db5
DIFF: https://github.com/llvm/llvm-project/commit/946e8056657791eb483158a8059eb3cb0f905db5.diff

LOG: AMDGPU: Add baseline test for unsafe fp atomics attribute inlining

Added: 
    llvm/test/Transforms/Inline/AMDGPU/inline-amdgpu-unsafe-fp-atomics.ll

Modified: 
    

Removed: 
    


################################################################################
diff  --git a/llvm/test/Transforms/Inline/AMDGPU/inline-amdgpu-unsafe-fp-atomics.ll b/llvm/test/Transforms/Inline/AMDGPU/inline-amdgpu-unsafe-fp-atomics.ll
new file mode 100644
index 000000000000..7de6095294fe
--- /dev/null
+++ b/llvm/test/Transforms/Inline/AMDGPU/inline-amdgpu-unsafe-fp-atomics.ll
@@ -0,0 +1,99 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --function-signature --check-globals
+; RUN: opt -mtriple=amdgcn-amd-amdhsa -S -inline < %s | FileCheck %s
+; RUN: opt -mtriple=amdgcn-amd-amdhsa -S -passes='cgscc(inline)' < %s | FileCheck %s
+
+define i32 @func_default() #0 {
+; CHECK-LABEL: define {{[^@]+}}@func_default
+; CHECK-SAME: () #[[ATTR0:[0-9]+]] {
+; CHECK-NEXT:    ret i32 0
+;
+  ret i32 0
+}
+
+define i32 @func_unsafe_fp_atomic_enabled() #1 {
+; CHECK-LABEL: define {{[^@]+}}@func_unsafe_fp_atomic_enabled
+; CHECK-SAME: () #[[ATTR1:[0-9]+]] {
+; CHECK-NEXT:    ret i32 0
+;
+  ret i32 0
+}
+
+define i32 @func_unsafe_fp_atomic_disabled() #2 {
+; CHECK-LABEL: define {{[^@]+}}@func_unsafe_fp_atomic_disabled
+; CHECK-SAME: () #[[ATTR2:[0-9]+]] {
+; CHECK-NEXT:    ret i32 0
+;
+  ret i32 0
+}
+
+define i32 @default_call_default() #0 {
+; CHECK-LABEL: define {{[^@]+}}@default_call_default
+; CHECK-SAME: () #[[ATTR0]] {
+; CHECK-NEXT:    ret i32 0
+;
+  %call = call i32 @func_default()
+  ret i32 %call
+}
+
+define i32 @unsafe_fp_atomic_enabled_call_default() #1 {
+; CHECK-LABEL: define {{[^@]+}}@unsafe_fp_atomic_enabled_call_default
+; CHECK-SAME: () #[[ATTR1]] {
+; CHECK-NEXT:    ret i32 0
+;
+  %call = call i32 @func_default()
+  ret i32 %call
+}
+
+define i32 @unsafe_fp_atomic_enabled_call_unsafe_fp_atomic_enabled() #1 {
+; CHECK-LABEL: define {{[^@]+}}@unsafe_fp_atomic_enabled_call_unsafe_fp_atomic_enabled
+; CHECK-SAME: () #[[ATTR1]] {
+; CHECK-NEXT:    ret i32 0
+;
+  %call = call i32 @func_unsafe_fp_atomic_enabled()
+  ret i32 %call
+}
+
+define i32 @unsafe_fp_atomic_enabled_call_unsafe_fp_atomic_disabled() #1 {
+; CHECK-LABEL: define {{[^@]+}}@unsafe_fp_atomic_enabled_call_unsafe_fp_atomic_disabled
+; CHECK-SAME: () #[[ATTR1]] {
+; CHECK-NEXT:    ret i32 0
+;
+  %call = call i32 @func_unsafe_fp_atomic_disabled()
+  ret i32 %call
+}
+
+define i32 @unsafe_fp_atomic_disabled_call_default() #2 {
+; CHECK-LABEL: define {{[^@]+}}@unsafe_fp_atomic_disabled_call_default
+; CHECK-SAME: () #[[ATTR2]] {
+; CHECK-NEXT:    ret i32 0
+;
+  %call = call i32 @func_default()
+  ret i32 %call
+}
+
+define i32 @unsafe_fp_atomic_disabled_call_unsafe_fp_atomic_enabled() #2 {
+; CHECK-LABEL: define {{[^@]+}}@unsafe_fp_atomic_disabled_call_unsafe_fp_atomic_enabled
+; CHECK-SAME: () #[[ATTR2]] {
+; CHECK-NEXT:    ret i32 0
+;
+  %call = call i32 @func_unsafe_fp_atomic_enabled()
+  ret i32 %call
+}
+
+define i32 @unsafe_fp_atomic_disabled_call_unsafe_fp_atomic_disabled() #2 {
+; CHECK-LABEL: define {{[^@]+}}@unsafe_fp_atomic_disabled_call_unsafe_fp_atomic_disabled
+; CHECK-SAME: () #[[ATTR2]] {
+; CHECK-NEXT:    ret i32 0
+;
+  %call = call i32 @func_unsafe_fp_atomic_disabled()
+  ret i32 %call
+}
+
+attributes #0 = { nounwind }
+attributes #1 = { nounwind "amdgpu-unsafe-fp-atomics"="true" }
+attributes #2 = { nounwind "amdgpu-unsafe-fp-atomics"="false" }
+;.
+; CHECK: attributes #[[ATTR0]] = { nounwind }
+; CHECK: attributes #[[ATTR1]] = { nounwind "amdgpu-unsafe-fp-atomics"="true" }
+; CHECK: attributes #[[ATTR2]] = { nounwind "amdgpu-unsafe-fp-atomics"="false" }
+;.


        


More information about the llvm-commits mailing list