@@ -35,24 +35,25 @@ define internal spir_func i32 @bar(i32 addrspace(3)* %arg) #1 {
3535 ret i32 %arg.ld
3636}
3737
38- ; CHECK: define internal spir_func i32 @foo
39- ; CHECK: %bar.res = call spir_func i32 @bar(i32 addrspace(3)* getelementptr inbounds ([4 x i32], [4 x i32] addrspace(3)* inttoptr (i32 268435456 to [4 x i32] addrspace(3)*), i64 0, i64 1))
38+ ; CHECK-LABEL: define internal spir_func i32 @foo
4039define internal spir_func i32 @foo (i32 addrspace (3 )* %arg ) #1 {
40+ ; CHECK: [[SPLIT_FOO:%[^ ]+]] = getelementptr inbounds [4 x i32], [4 x i32] addrspace(3)* inttoptr (i32 268435456 to [4 x i32] addrspace(3)*), i64 0, i64 1
41+ ; CHECK: %bar.res = call spir_func i32 @bar(i32 addrspace(3)* [[SPLIT_FOO]])
4142 %arg.ld = load i32 , i32 addrspace (3 )* %arg , align 4
4243 %bar.res = call spir_func i32 @bar (i32 addrspace (3 )* getelementptr inbounds ([4 x i32 ], [4 x i32 ] addrspace (3 )* @SLM_GV , i64 0 , i64 1 ))
4344 %res = add i32 %bar.res , %arg.ld
4445 ret i32 %res
4546}
4647
47- ; CHECK: define internal spir_func i32 @f1
48- ; CHECK: %gv.p3 = getelementptr inbounds [4 x i32], [4 x i32] addrspace(3)* inttoptr (i32 268435456 to [4 x i32] addrspace(3)*), i64 0, i64 2
48+ ; CHECK-LABEL: define internal spir_func i32 @f1
4949define internal spir_func i32 @f1 () #1 {
50+ ; CHECK: %gv.p3 = getelementptr inbounds [4 x i32], [4 x i32] addrspace(3)* inttoptr (i32 268435456 to [4 x i32] addrspace(3)*), i64 0, i64 2
5051 %gv.p3 = getelementptr inbounds [4 x i32 ], [4 x i32 ] addrspace (3 )* @SLM_GV , i64 0 , i64 2
5152 %foo.res = call spir_func i32 @foo (i32 addrspace (3 )* %gv.p3 )
5253 ret i32 %foo.res
5354}
5455
55- ; CHECK: define internal spir_func i32 @f2
56+ ; CHECK-LABEL : define internal spir_func i32 @f2
5657define internal spir_func i32 @f2 () #1 {
5758 ; CHECK: %gv.p3.0 = getelementptr inbounds [4 x i32], [4 x i32] addrspace(3)* inttoptr (i32 268435456 to [4 x i32] addrspace(3)*), i64 0, i64
5859 %gv.p3.0 = getelementptr inbounds [4 x i32 ], [4 x i32 ] addrspace (3 )* @SLM_GV , i64 0 , i64 0
@@ -71,7 +72,7 @@ define internal spir_func i32 @f2() #1 {
7172 ret i32 %sum.res
7273}
7374
74- ; CHECK: define internal spir_func i32 @f0
75+ ; CHECK-LABEL : define internal spir_func i32 @f0
7576define internal spir_func i32 @f0 (i32 addrspace (3 )* %arg ) #1 {
7677 %arg.ld = load i32 , i32 addrspace (3 )* %arg , align 4
7778
@@ -93,25 +94,28 @@ exit:
9394 ret i32 %f0.res
9495}
9596
96- ; CHECK: define internal spir_func i32 @f3
97- ; CHECK: %bar.res = call spir_func i32 @bar(i32 addrspace(3)* getelementptr inbounds ([4 x i32], [4 x i32] addrspace(3)* inttoptr (i32 268435456 to [4 x i32] addrspace(3)*), i64 0, i64 0))
97+ ; CHECK-LABEL: define internal spir_func i32 @f3
9898define internal spir_func i32 @f3 (i32 addrspace (3 )* %arg ) #1 {
99+ ; CHECK: [[SPLIT_F3:%[^ ]+]] = getelementptr inbounds [4 x i32], [4 x i32] addrspace(3)* inttoptr (i32 64 to [4 x i32] addrspace(3)*), i64 0, i64 0
100+ ; CHECK: %bar.res = call spir_func i32 @bar(i32 addrspace(3)* [[SPLIT_F3]])
99101 %bar.res = call spir_func i32 @bar (i32 addrspace (3 )* getelementptr inbounds ([4 x i32 ], [4 x i32 ] addrspace (3 )* @SLM_GV , i64 0 , i64 0 ))
100102 %arg.ld = load i32 , i32 addrspace (3 )* %arg , align 4
101103 %sum = add i32 %bar.res , %arg.ld
102104 ret i32 %sum
103105}
104106
105- ; CHECK: define dllexport spir_kernel void @kernelA
106- ; CHECK: %res = call spir_func i32 @f0(i32 addrspace(3)* getelementptr inbounds ([4 x i32], [4 x i32] addrspace(3)* inttoptr (i32 268435456 to [4 x i32] addrspace(3)*), i64 0, i64 0))
107+ ; CHECK-LABEL: define dllexport spir_kernel void @kernelA
107108define dllexport spir_kernel void @kernelA () #2 {
109+ ; CHECK: [[SPLIT_KA:%[^ ]+]] = getelementptr inbounds [4 x i32], [4 x i32] addrspace(3)* inttoptr (i32 268435456 to [4 x i32] addrspace(3)*), i64 0, i64 0
110+ ; CHECK: %res = call spir_func i32 @f0(i32 addrspace(3)* [[SPLIT_KA]])
108111 %res = call spir_func i32 @f0 (i32 addrspace (3 )* getelementptr inbounds ([4 x i32 ], [4 x i32 ] addrspace (3 )* @SLM_GV , i64 0 , i64 0 ))
109112 ret void
110113}
111114
112- ; CHECK: define dllexport spir_kernel void @kernelB
113- ; CHECK: %res = call spir_func i32 @f3(i32 addrspace(3)* getelementptr inbounds ([4 x i32], [4 x i32] addrspace(3)* inttoptr (i32 64 to [4 x i32] addrspace(3)*), i64 0, i64 3))
115+ ; CHECK-LABEL: define dllexport spir_kernel void @kernelB
114116define dllexport spir_kernel void @kernelB () #2 {
117+ ; CHECK: [[SPLIT_KB:%[^ ]+]] = getelementptr inbounds [4 x i32], [4 x i32] addrspace(3)* inttoptr (i32 64 to [4 x i32] addrspace(3)*), i64 0, i64 3
118+ ; CHECK: %res = call spir_func i32 @f3(i32 addrspace(3)* [[SPLIT_KB]])
115119 %res = call spir_func i32 @f3 (i32 addrspace (3 )* getelementptr inbounds ([4 x i32 ], [4 x i32 ] addrspace (3 )* @SLM_GV , i64 0 , i64 3 ))
116120 ret void
117121}
0 commit comments