1- ; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv64-unknown-unknown %s -o - | FileCheck %s
1+ ; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv64-unknown-unknown %s -o - | FileCheck %s --check-prefixes=CHECK,CL
22; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64-unknown-unknown %s -o - -filetype=obj | spirv-val %}
33
4- ; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv32-unknown-unknown %s -o - | FileCheck %s
4+ ; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv32-unknown-unknown %s -o - | FileCheck %s --check-prefixes=CHECK,CL
55; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv32-unknown-unknown %s -o - -filetype=obj | spirv-val %}
66
7+ ; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv-unknown-vulkan1.3-compute %s -o - | FileCheck %s --check-prefixes=CHECK,VK
8+
9+ ; FIXME(135165) Alignment capability emitted for Vulkan.
10+ ; FIXME: %if spirv-tools %{ llc -O0 -mtriple=spirv-unknown-vulkan1.3-compute %s -o - -filetype=obj | spirv-val %}
11+
712; CHECK-DAG: %[[#Char:]] = OpTypeInt 8 0
813; CHECK-DAG: %[[#PtrChar:]] = OpTypePointer Function %[[#Char]]
914
1015%tprange = type { %tparray }
1116%tparray = type { [2 x i64 ] }
1217
13- ; CHECK: OpFunction
14- ; CHECK: %[[#FooVar:]] = OpVariable
15- ; CHECK: %[[#Casted1:]] = OpBitcast %[[#PtrChar]] %[[#FooVar]]
16- ; CHECK: OpLifetimeStart %[[#Casted1]], 72
17- ; CHECK: OpCopyMemorySized
18- ; CHECK: OpBitcast
19- ; CHECK: OpInBoundsPtrAccessChain
20- ; CHECK: %[[#Casted2:]] = OpBitcast %[[#PtrChar]] %[[#FooVar]]
21- ; CHECK: OpLifetimeStop %[[#Casted2]], 72
18+ ; CL: OpFunction
19+ ; CL: %[[#FooVar:]] = OpVariable
20+ ; CL-NEXT: %[[#Casted1:]] = OpBitcast %[[#PtrChar]] %[[#FooVar]]
21+ ; CL-NEXT: OpLifetimeStart %[[#Casted1]], 72
22+ ; CL-NEXT: OpCopyMemorySized
23+ ; CL-NEXT: OpBitcast
24+ ; CL-NEXT: OpInBoundsPtrAccessChain
25+ ; CL-NEXT: %[[#Casted2:]] = OpBitcast %[[#PtrChar]] %[[#FooVar]]
26+ ; CL-NEXT: OpLifetimeStop %[[#Casted2]], 72
27+
28+ ; VK: OpFunction
29+ ; VK: %[[#FooVar:]] = OpVariable
30+ ; VK-NEXT: OpCopyMemorySized
31+ ; VK-NEXT: OpInBoundsAccessChain
32+ ; VK-NEXT: OpReturn
2233define spir_func void @foo (ptr noundef byval (%tprange ) align 8 %_arg_UserRange ) {
2334 %RoundedRangeKernel = alloca %tprange , align 8
2435 call void @llvm.lifetime.start.p0 (i64 72 , ptr nonnull %RoundedRangeKernel )
@@ -28,13 +39,19 @@ define spir_func void @foo(ptr noundef byval(%tprange) align 8 %_arg_UserRange)
2839 ret void
2940}
3041
31- ; CHECK: OpFunction
32- ; CHECK: %[[#BarVar:]] = OpVariable
33- ; CHECK: OpLifetimeStart %[[#BarVar]], 0
34- ; CHECK: OpCopyMemorySized
35- ; CHECK: OpBitcast
36- ; CHECK: OpInBoundsPtrAccessChain
37- ; CHECK: OpLifetimeStop %[[#BarVar]], 0
42+ ; CL: OpFunction
43+ ; CL: %[[#BarVar:]] = OpVariable
44+ ; CL-NEXT: OpLifetimeStart %[[#BarVar]], 0
45+ ; CL-NEXT: OpCopyMemorySized
46+ ; CL-NEXT: OpBitcast
47+ ; CL-NEXT: OpInBoundsPtrAccessChain
48+ ; CL-NEXT: OpLifetimeStop %[[#BarVar]], 0
49+
50+ ; VK: OpFunction
51+ ; VK: %[[#BarVar:]] = OpVariable
52+ ; VK-NEXT: OpCopyMemorySized
53+ ; VK-NEXT: OpInBoundsAccessChain
54+ ; VK-NEXT: OpReturn
3855define spir_func void @bar (ptr noundef byval (%tprange ) align 8 %_arg_UserRange ) {
3956 %RoundedRangeKernel = alloca %tprange , align 8
4057 call void @llvm.lifetime.start.p0 (i64 -1 , ptr nonnull %RoundedRangeKernel )
@@ -44,12 +61,18 @@ define spir_func void @bar(ptr noundef byval(%tprange) align 8 %_arg_UserRange)
4461 ret void
4562}
4663
47- ; CHECK: OpFunction
48- ; CHECK: %[[#TestVar:]] = OpVariable
49- ; CHECK: OpLifetimeStart %[[#TestVar]], 1
50- ; CHECK: OpCopyMemorySized
51- ; CHECK: OpInBoundsPtrAccessChain
52- ; CHECK: OpLifetimeStop %[[#TestVar]], 1
64+ ; CL: OpFunction
65+ ; CL: %[[#TestVar:]] = OpVariable
66+ ; CL-NEXT: OpLifetimeStart %[[#TestVar]], 1
67+ ; CL-NEXT: OpCopyMemorySized
68+ ; CL-NEXT: OpInBoundsPtrAccessChain
69+ ; CL-NEXT: OpLifetimeStop %[[#TestVar]], 1
70+
71+ ; VK: OpFunction
72+ ; VK: %[[#Test:]] = OpVariable
73+ ; VK-NEXT: OpCopyMemorySized
74+ ; VK-NEXT: OpInBoundsAccessChain
75+ ; VK-NEXT: OpReturn
5376define spir_func void @test (ptr noundef align 8 %_arg ) {
5477 %var = alloca i8 , align 8
5578 call void @llvm.lifetime.start.p0 (i64 1 , ptr nonnull %var )
0 commit comments