44@g1 = protected addrspace (1 ) externally_initialized global i32 0 , align 4
55@g2 = protected addrspace (1 ) externally_initialized global i32 0 , align 4
66@g3 = protected addrspace (1 ) externally_initialized global i32 0 , align 4
7- @g4 = protected addrspace (1 ) externally_initialized global i32 0 , align 4
87
98define internal void @callee_with_always_uniform_argument (ptr addrspace (1 ) %x , i32 %y ) {
109; CHECK-LABEL: define internal void @callee_with_always_uniform_argument(
1110; CHECK-SAME: ptr addrspace(1) inreg [[X:%.*]], i32 inreg [[Y:%.*]]) #[[ATTR0:[0-9]+]] {
1211; CHECK-NEXT: [[ENTRY:.*:]]
1312; CHECK-NEXT: [[X_VAL:%.*]] = load i32, ptr addrspace(1) [[X]], align 4
14- ; CHECK-NEXT: store i32 [[X_VAL]], ptr addrspace(1) @g3 , align 4
15- ; CHECK-NEXT: store i32 [[Y]], ptr addrspace(1) @g4 , align 4
13+ ; CHECK-NEXT: store i32 [[X_VAL]], ptr addrspace(1) @g2 , align 4
14+ ; CHECK-NEXT: store i32 [[Y]], ptr addrspace(1) @g3 , align 4
1615; CHECK-NEXT: ret void
1716;
1817entry:
1918 %x.val = load i32 , ptr addrspace (1 ) %x , align 4
20- store i32 %x.val , ptr addrspace (1 ) @g3 , align 4
21- store i32 %y , ptr addrspace (1 ) @g4 , align 4
19+ store i32 %x.val , ptr addrspace (1 ) @g2 , align 4
20+ store i32 %y , ptr addrspace (1 ) @g3 , align 4
2221 ret void
2322}
2423
@@ -36,19 +35,31 @@ entry:
3635 ret void
3736}
3837
38+ define amdgpu_kernel void @kernel_with_constant (i32 %x ) {
39+ ; CHECK-LABEL: define amdgpu_kernel void @kernel_with_constant(
40+ ; CHECK-SAME: i32 [[X:%.*]]) #[[ATTR0]] {
41+ ; CHECK-NEXT: [[ENTRY:.*:]]
42+ ; CHECK-NEXT: call void @callee_with_always_uniform_argument(ptr addrspace(1) @g1, i32 [[X]])
43+ ; CHECK-NEXT: ret void
44+ ;
45+ entry:
46+ call void @callee_with_always_uniform_argument (ptr addrspace (1 ) @g1 , i32 %x )
47+ ret void
48+ }
49+
3950define internal void @callee_without_always_uniform_argument (ptr addrspace (1 ) %x , i32 %y ) {
4051; CHECK-LABEL: define internal void @callee_without_always_uniform_argument(
4152; CHECK-SAME: ptr addrspace(1) [[X:%.*]], i32 [[Y:%.*]]) #[[ATTR0]] {
4253; CHECK-NEXT: [[ENTRY:.*:]]
4354; CHECK-NEXT: [[X_VAL:%.*]] = load i32, ptr addrspace(1) [[X]], align 4
44- ; CHECK-NEXT: store i32 [[X_VAL]], ptr addrspace(1) @g3 , align 4
45- ; CHECK-NEXT: store i32 [[Y]], ptr addrspace(1) @g4 , align 4
55+ ; CHECK-NEXT: store i32 [[X_VAL]], ptr addrspace(1) @g2 , align 4
56+ ; CHECK-NEXT: store i32 [[Y]], ptr addrspace(1) @g3 , align 4
4657; CHECK-NEXT: ret void
4758;
4859entry:
4960 %x.val = load i32 , ptr addrspace (1 ) %x , align 4
50- store i32 %x.val , ptr addrspace (1 ) @g3 , align 4
51- store i32 %y , ptr addrspace (1 ) @g4 , align 4
61+ store i32 %x.val , ptr addrspace (1 ) @g2 , align 4
62+ store i32 %y , ptr addrspace (1 ) @g3 , align 4
5263 ret void
5364}
5465
0 commit comments