Skip to content

Commit bb96093

Browse files
committed
[Attributor][NFC] Precommit test
1 parent ed0bb94 commit bb96093

File tree

1 file changed

+75
-0
lines changed

1 file changed

+75
-0
lines changed

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

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,13 @@ target triple = "amdgcn-amd-amdhsa"
88
@ReachableKernel = internal addrspace(3) global i32 3, align 4
99
@UnreachableKernel = internal addrspace(3) global i32 42, align 4
1010
@ReachableKernelAS0 = internal global i32 7, align 4
11+
@AS3OneKernelAtATime = internal addrspace(3) global i32 42, align 4
1112

1213
;.
1314
; CHECK: @[[REACHABLEKERNEL:[a-zA-Z0-9_$"\\.-]+]] = internal addrspace(3) global i32 3, align 4
1415
; CHECK: @[[UNREACHABLEKERNEL:[a-zA-Z0-9_$"\\.-]+]] = internal addrspace(3) global i32 42, align 4
1516
; CHECK: @[[REACHABLEKERNELAS0:[a-zA-Z0-9_$"\\.-]+]] = internal global i32 7, align 4
17+
; CHECK: @[[AS3ONEKERNELATATIME:[a-zA-Z0-9_$"\\.-]+]] = internal addrspace(3) global i32 42, align 4
1618
; CHECK: @[[REACHABLENONKERNEL:[a-zA-Z0-9_$"\\.-]+]] = internal addrspace(3) global i32 0, align 4
1719
; CHECK: @[[UNREACHABLENONKERNEL:[a-zA-Z0-9_$"\\.-]+]] = internal addrspace(3) global i32 0, align 4
1820
;.
@@ -354,6 +356,79 @@ entry:
354356
ret void
355357
}
356358

359+
define dso_local void @kernel2(i32 %C) norecurse "kernel" {
360+
; TUNIT: Function Attrs: norecurse nosync nounwind
361+
; TUNIT-LABEL: define {{[^@]+}}@kernel2
362+
; TUNIT-SAME: (i32 [[C:%.*]]) #[[ATTR0]] {
363+
; TUNIT-NEXT: [[I:%.*]] = icmp eq i32 [[C]], 42
364+
; TUNIT-NEXT: br i1 [[I]], label [[T:%.*]], label [[F:%.*]]
365+
; TUNIT: t:
366+
; TUNIT-NEXT: store i32 333, ptr addrspace(3) @AS3OneKernelAtATime, align 4
367+
; TUNIT-NEXT: br label [[F]]
368+
; TUNIT: f:
369+
; TUNIT-NEXT: [[L:%.*]] = load i32, ptr addrspace(3) @AS3OneKernelAtATime, align 4
370+
; TUNIT-NEXT: call void @use(i32 noundef [[L]], i32 noundef [[L]], i32 noundef [[L]]) #[[ATTR7]]
371+
; TUNIT-NEXT: ret void
372+
;
373+
; CGSCC: Function Attrs: norecurse nosync nounwind
374+
; CGSCC-LABEL: define {{[^@]+}}@kernel2
375+
; CGSCC-SAME: (i32 [[C:%.*]]) #[[ATTR0]] {
376+
; CGSCC-NEXT: [[I:%.*]] = icmp eq i32 [[C]], 42
377+
; CGSCC-NEXT: br i1 [[I]], label [[T:%.*]], label [[F:%.*]]
378+
; CGSCC: t:
379+
; CGSCC-NEXT: store i32 333, ptr addrspace(3) @AS3OneKernelAtATime, align 4
380+
; CGSCC-NEXT: br label [[F]]
381+
; CGSCC: f:
382+
; CGSCC-NEXT: [[L:%.*]] = load i32, ptr addrspace(3) @AS3OneKernelAtATime, align 4
383+
; CGSCC-NEXT: call void @use(i32 noundef [[L]], i32 noundef [[L]], i32 noundef [[L]]) #[[ATTR4]]
384+
; CGSCC-NEXT: ret void
385+
;
386+
%i = icmp eq i32 %C, 42
387+
br i1 %i, label %t, label %f
388+
t:
389+
store i32 333, ptr addrspace(3) @AS3OneKernelAtATime
390+
br label %f
391+
f:
392+
%l = load i32, ptr addrspace(3) @AS3OneKernelAtATime
393+
call void @use(i32 %l,i32 %l, i32 %l)
394+
ret void
395+
}
396+
397+
define dso_local void @kernel3(i32 %C) norecurse "kernel" {
398+
; TUNIT: Function Attrs: norecurse nosync nounwind
399+
; TUNIT-LABEL: define {{[^@]+}}@kernel3
400+
; TUNIT-SAME: (i32 [[C:%.*]]) #[[ATTR0]] {
401+
; TUNIT-NEXT: [[I:%.*]] = icmp eq i32 [[C]], 42
402+
; TUNIT-NEXT: br i1 [[I]], label [[T:%.*]], label [[F:%.*]]
403+
; TUNIT: t:
404+
; TUNIT-NEXT: [[L:%.*]] = load i32, ptr addrspace(3) @AS3OneKernelAtATime, align 4
405+
; TUNIT-NEXT: call void @use(i32 noundef [[L]], i32 noundef [[L]], i32 noundef [[L]]) #[[ATTR7]]
406+
; TUNIT-NEXT: ret void
407+
; TUNIT: f:
408+
; TUNIT-NEXT: ret void
409+
;
410+
; CGSCC: Function Attrs: norecurse nosync nounwind
411+
; CGSCC-LABEL: define {{[^@]+}}@kernel3
412+
; CGSCC-SAME: (i32 [[C:%.*]]) #[[ATTR0]] {
413+
; CGSCC-NEXT: [[I:%.*]] = icmp eq i32 [[C]], 42
414+
; CGSCC-NEXT: br i1 [[I]], label [[T:%.*]], label [[F:%.*]]
415+
; CGSCC: t:
416+
; CGSCC-NEXT: [[L:%.*]] = load i32, ptr addrspace(3) @AS3OneKernelAtATime, align 4
417+
; CGSCC-NEXT: call void @use(i32 noundef [[L]], i32 noundef [[L]], i32 noundef [[L]]) #[[ATTR4]]
418+
; CGSCC-NEXT: ret void
419+
; CGSCC: f:
420+
; CGSCC-NEXT: ret void
421+
;
422+
%i = icmp eq i32 %C, 42
423+
br i1 %i, label %t, label %f
424+
t:
425+
%l = load i32, ptr addrspace(3) @AS3OneKernelAtATime
426+
call void @use(i32 %l,i32 %l, i32 %l)
427+
ret void
428+
f:
429+
ret void
430+
}
431+
357432
declare dso_local void @use(i32, i32, i32) nosync norecurse nounwind
358433

359434
;.

0 commit comments

Comments
 (0)