[llvm] bb96093 - [Attributor][NFC] Precommit test

Johannes Doerfert via llvm-commits llvm-commits at lists.llvm.org
Sat Oct 21 12:31:42 PDT 2023


Author: Johannes Doerfert
Date: 2023-10-21T12:31:06-07:00
New Revision: bb96093ca620a43bf56c0064196556c7aad6685f

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

LOG: [Attributor][NFC] Precommit test

Added: 
    

Modified: 
    llvm/test/Transforms/Attributor/value-simplify-gpu.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/Transforms/Attributor/value-simplify-gpu.ll b/llvm/test/Transforms/Attributor/value-simplify-gpu.ll
index e78d937ec0ee193..b57cf752cc116c3 100644
--- a/llvm/test/Transforms/Attributor/value-simplify-gpu.ll
+++ b/llvm/test/Transforms/Attributor/value-simplify-gpu.ll
@@ -8,11 +8,13 @@ target triple = "amdgcn-amd-amdhsa"
 @ReachableKernel = internal addrspace(3) global i32 3, align 4
 @UnreachableKernel = internal addrspace(3) global i32 42, align 4
 @ReachableKernelAS0 = internal global i32 7, align 4
+ at AS3OneKernelAtATime = internal addrspace(3) global i32 42, align 4
 
 ;.
 ; CHECK: @[[REACHABLEKERNEL:[a-zA-Z0-9_$"\\.-]+]] = internal addrspace(3) global i32 3, align 4
 ; CHECK: @[[UNREACHABLEKERNEL:[a-zA-Z0-9_$"\\.-]+]] = internal addrspace(3) global i32 42, align 4
 ; CHECK: @[[REACHABLEKERNELAS0:[a-zA-Z0-9_$"\\.-]+]] = internal global i32 7, align 4
+; CHECK: @[[AS3ONEKERNELATATIME:[a-zA-Z0-9_$"\\.-]+]] = internal addrspace(3) global i32 42, align 4
 ; CHECK: @[[REACHABLENONKERNEL:[a-zA-Z0-9_$"\\.-]+]] = internal addrspace(3) global i32 0, align 4
 ; CHECK: @[[UNREACHABLENONKERNEL:[a-zA-Z0-9_$"\\.-]+]] = internal addrspace(3) global i32 0, align 4
 ;.
@@ -354,6 +356,79 @@ entry:
   ret void
 }
 
+define dso_local void @kernel2(i32 %C) norecurse "kernel" {
+; TUNIT: Function Attrs: norecurse nosync nounwind
+; TUNIT-LABEL: define {{[^@]+}}@kernel2
+; TUNIT-SAME: (i32 [[C:%.*]]) #[[ATTR0]] {
+; TUNIT-NEXT:    [[I:%.*]] = icmp eq i32 [[C]], 42
+; TUNIT-NEXT:    br i1 [[I]], label [[T:%.*]], label [[F:%.*]]
+; TUNIT:       t:
+; TUNIT-NEXT:    store i32 333, ptr addrspace(3) @AS3OneKernelAtATime, align 4
+; TUNIT-NEXT:    br label [[F]]
+; TUNIT:       f:
+; TUNIT-NEXT:    [[L:%.*]] = load i32, ptr addrspace(3) @AS3OneKernelAtATime, align 4
+; TUNIT-NEXT:    call void @use(i32 noundef [[L]], i32 noundef [[L]], i32 noundef [[L]]) #[[ATTR7]]
+; TUNIT-NEXT:    ret void
+;
+; CGSCC: Function Attrs: norecurse nosync nounwind
+; CGSCC-LABEL: define {{[^@]+}}@kernel2
+; CGSCC-SAME: (i32 [[C:%.*]]) #[[ATTR0]] {
+; CGSCC-NEXT:    [[I:%.*]] = icmp eq i32 [[C]], 42
+; CGSCC-NEXT:    br i1 [[I]], label [[T:%.*]], label [[F:%.*]]
+; CGSCC:       t:
+; CGSCC-NEXT:    store i32 333, ptr addrspace(3) @AS3OneKernelAtATime, align 4
+; CGSCC-NEXT:    br label [[F]]
+; CGSCC:       f:
+; CGSCC-NEXT:    [[L:%.*]] = load i32, ptr addrspace(3) @AS3OneKernelAtATime, align 4
+; CGSCC-NEXT:    call void @use(i32 noundef [[L]], i32 noundef [[L]], i32 noundef [[L]]) #[[ATTR4]]
+; CGSCC-NEXT:    ret void
+;
+  %i = icmp eq i32 %C, 42
+  br i1 %i, label %t, label %f
+t:
+  store i32 333, ptr addrspace(3) @AS3OneKernelAtATime
+  br label %f
+f:
+  %l = load i32, ptr addrspace(3) @AS3OneKernelAtATime
+  call void @use(i32 %l,i32 %l, i32 %l)
+  ret void
+}
+
+define dso_local void @kernel3(i32 %C) norecurse "kernel" {
+; TUNIT: Function Attrs: norecurse nosync nounwind
+; TUNIT-LABEL: define {{[^@]+}}@kernel3
+; TUNIT-SAME: (i32 [[C:%.*]]) #[[ATTR0]] {
+; TUNIT-NEXT:    [[I:%.*]] = icmp eq i32 [[C]], 42
+; TUNIT-NEXT:    br i1 [[I]], label [[T:%.*]], label [[F:%.*]]
+; TUNIT:       t:
+; TUNIT-NEXT:    [[L:%.*]] = load i32, ptr addrspace(3) @AS3OneKernelAtATime, align 4
+; TUNIT-NEXT:    call void @use(i32 noundef [[L]], i32 noundef [[L]], i32 noundef [[L]]) #[[ATTR7]]
+; TUNIT-NEXT:    ret void
+; TUNIT:       f:
+; TUNIT-NEXT:    ret void
+;
+; CGSCC: Function Attrs: norecurse nosync nounwind
+; CGSCC-LABEL: define {{[^@]+}}@kernel3
+; CGSCC-SAME: (i32 [[C:%.*]]) #[[ATTR0]] {
+; CGSCC-NEXT:    [[I:%.*]] = icmp eq i32 [[C]], 42
+; CGSCC-NEXT:    br i1 [[I]], label [[T:%.*]], label [[F:%.*]]
+; CGSCC:       t:
+; CGSCC-NEXT:    [[L:%.*]] = load i32, ptr addrspace(3) @AS3OneKernelAtATime, align 4
+; CGSCC-NEXT:    call void @use(i32 noundef [[L]], i32 noundef [[L]], i32 noundef [[L]]) #[[ATTR4]]
+; CGSCC-NEXT:    ret void
+; CGSCC:       f:
+; CGSCC-NEXT:    ret void
+;
+  %i = icmp eq i32 %C, 42
+  br i1 %i, label %t, label %f
+t:
+  %l = load i32, ptr addrspace(3) @AS3OneKernelAtATime
+  call void @use(i32 %l,i32 %l, i32 %l)
+  ret void
+f:
+  ret void
+}
+
 declare dso_local void @use(i32, i32, i32) nosync norecurse nounwind
 
 ;.


        


More information about the llvm-commits mailing list