1- ; RUN: opt -S -mtriple=amdgcn-- -data-layout=A5 - passes='amdgpu-promote-alloca,sroa,instcombine' < %s | FileCheck -check-prefix=OPT %s
1+ ; RUN: opt -S -mtriple=amdgcn-- -passes='amdgpu-promote-alloca,sroa,instcombine' < %s | FileCheck -check-prefix=OPT %s
22
33; Show that what the alloca promotion pass will do for non-atomic load/store.
44
55; OPT-LABEL: @vector_alloca_not_atomic(
66;
7- ; OPT: extractelement <3 x i32> <i32 0, i32 1, i32 2>, i64 %index
8- define amdgpu_kernel void @vector_alloca_not_atomic (ptr addrspace (1 ) %out , i64 %index ) {
7+ ; OPT: extractelement <3 x i32> <i32 0, i32 1, i32 2>, i32 %index
8+ define amdgpu_kernel void @vector_alloca_not_atomic (ptr addrspace (1 ) %out , i32 %index ) {
99entry:
1010 %alloca = alloca [3 x i32 ], addrspace (5 )
1111 %a1 = getelementptr [3 x i32 ], ptr addrspace (5 ) %alloca , i32 0 , i32 1
1212 %a2 = getelementptr [3 x i32 ], ptr addrspace (5 ) %alloca , i32 0 , i32 2
1313 store i32 0 , ptr addrspace (5 ) %alloca
1414 store i32 1 , ptr addrspace (5 ) %a1
1515 store i32 2 , ptr addrspace (5 ) %a2
16- %tmp = getelementptr [3 x i32 ], ptr addrspace (5 ) %alloca , i64 0 , i64 %index
16+ %tmp = getelementptr [3 x i32 ], ptr addrspace (5 ) %alloca , i32 0 , i32 %index
1717 %data = load i32 , ptr addrspace (5 ) %tmp
1818 store i32 %data , ptr addrspace (1 ) %out
1919 ret void
@@ -26,15 +26,15 @@ entry:
2626; OPT: store i32 1, ptr addrspace(5)
2727; OPT: store i32 2, ptr addrspace(5)
2828; OPT: load atomic i32, ptr addrspace(5)
29- define amdgpu_kernel void @vector_alloca_atomic_read (ptr addrspace (1 ) %out , i64 %index ) {
29+ define amdgpu_kernel void @vector_alloca_atomic_read (ptr addrspace (1 ) %out , i32 %index ) {
3030entry:
3131 %alloca = alloca [3 x i32 ], addrspace (5 )
3232 %a1 = getelementptr [3 x i32 ], ptr addrspace (5 ) %alloca , i32 0 , i32 1
3333 %a2 = getelementptr [3 x i32 ], ptr addrspace (5 ) %alloca , i32 0 , i32 2
3434 store i32 0 , ptr addrspace (5 ) %alloca
3535 store i32 1 , ptr addrspace (5 ) %a1
3636 store i32 2 , ptr addrspace (5 ) %a2
37- %tmp = getelementptr [3 x i32 ], ptr addrspace (5 ) %alloca , i64 0 , i64 %index
37+ %tmp = getelementptr [3 x i32 ], ptr addrspace (5 ) %alloca , i32 0 , i32 %index
3838 %data = load atomic i32 , ptr addrspace (5 ) %tmp acquire , align 4
3939 store i32 %data , ptr addrspace (1 ) %out
4040 ret void
@@ -47,15 +47,15 @@ entry:
4747; OPT: store atomic i32 1, ptr addrspace(5)
4848; OPT: store atomic i32 2, ptr addrspace(5)
4949; OPT: load i32, ptr addrspace(5)
50- define amdgpu_kernel void @vector_alloca_atomic_write (ptr addrspace (1 ) %out , i64 %index ) {
50+ define amdgpu_kernel void @vector_alloca_atomic_write (ptr addrspace (1 ) %out , i32 %index ) {
5151entry:
5252 %alloca = alloca [3 x i32 ], addrspace (5 )
5353 %a1 = getelementptr [3 x i32 ], ptr addrspace (5 ) %alloca , i32 0 , i32 1
5454 %a2 = getelementptr [3 x i32 ], ptr addrspace (5 ) %alloca , i32 0 , i32 2
5555 store atomic i32 0 , ptr addrspace (5 ) %alloca release , align 4
5656 store atomic i32 1 , ptr addrspace (5 ) %a1 release , align 4
5757 store atomic i32 2 , ptr addrspace (5 ) %a2 release , align 4
58- %tmp = getelementptr [3 x i32 ], ptr addrspace (5 ) %alloca , i64 0 , i64 %index
58+ %tmp = getelementptr [3 x i32 ], ptr addrspace (5 ) %alloca , i32 0 , i32 %index
5959 %data = load i32 , ptr addrspace (5 ) %tmp
6060 store i32 %data , ptr addrspace (1 ) %out
6161 ret void
0 commit comments