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=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=CL
55; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv32-unknown-unknown %s -o - -filetype=obj | spirv-val %}
66
7- ; CHECK-DAG: %[[#Char:]] = OpTypeInt 8 0
8- ; CHECK-DAG: %[[#PtrChar:]] = OpTypePointer Function %[[#Char]]
7+ ; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv-unknown-vulkan1.3-compute %s -o - | FileCheck %s --check-prefixes=VK
8+ ; FIXME(135165) Alignment capability emitted for Vulkan.
9+ ; FIXME: %if spirv-tools %{ llc -O0 -mtriple=spirv-unknown-vulkan1.3-compute %s -o - -filetype=obj | spirv-val %}
10+
11+ ; CL-DAG: %[[#Char:]] = OpTypeInt 8 0
12+ ; CL-DAG: %[[#PtrChar:]] = OpTypePointer Function %[[#Char]]
913
1014%tprange = type { %tparray }
1115%tparray = type { [2 x i64 ] }
1216
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
17+ ; CL: OpFunction
18+ ; CL: %[[#FooVar:]] = OpVariable
19+ ; CL-NEXT: %[[#Casted1:]] = OpBitcast %[[#PtrChar]] %[[#FooVar]]
20+ ; CL-NEXT: OpLifetimeStart %[[#Casted1]], 72
21+ ; CL-NEXT: OpCopyMemorySized
22+ ; CL-NEXT: OpBitcast
23+ ; CL-NEXT: OpInBoundsPtrAccessChain
24+ ; CL-NEXT: %[[#Casted2:]] = OpBitcast %[[#PtrChar]] %[[#FooVar]]
25+ ; CL-NEXT: OpLifetimeStop %[[#Casted2]], 72
26+
27+ ; VK: OpFunction
28+ ; VK: %[[#FooVar:]] = OpVariable
29+ ; VK-NEXT: OpCopyMemorySized
30+ ; VK-NEXT: OpInBoundsAccessChain
31+ ; VK-NEXT: OpReturn
2232define spir_func void @foo (ptr noundef byval (%tprange ) align 8 %_arg_UserRange ) {
2333 %RoundedRangeKernel = alloca %tprange , align 8
2434 call void @llvm.lifetime.start.p0 (i64 72 , ptr nonnull %RoundedRangeKernel )
@@ -28,13 +38,19 @@ define spir_func void @foo(ptr noundef byval(%tprange) align 8 %_arg_UserRange)
2838 ret void
2939}
3040
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
41+ ; CL: OpFunction
42+ ; CL: %[[#BarVar:]] = OpVariable
43+ ; CL-NEXT: OpLifetimeStart %[[#BarVar]], 0
44+ ; CL-NEXT: OpCopyMemorySized
45+ ; CL-NEXT: OpBitcast
46+ ; CL-NEXT: OpInBoundsPtrAccessChain
47+ ; CL-NEXT: OpLifetimeStop %[[#BarVar]], 0
48+
49+ ; VK: OpFunction
50+ ; VK: %[[#BarVar:]] = OpVariable
51+ ; VK-NEXT: OpCopyMemorySized
52+ ; VK-NEXT: OpInBoundsAccessChain
53+ ; VK-NEXT: OpReturn
3854define spir_func void @bar (ptr noundef byval (%tprange ) align 8 %_arg_UserRange ) {
3955 %RoundedRangeKernel = alloca %tprange , align 8
4056 call void @llvm.lifetime.start.p0 (i64 -1 , ptr nonnull %RoundedRangeKernel )
@@ -44,12 +60,18 @@ define spir_func void @bar(ptr noundef byval(%tprange) align 8 %_arg_UserRange)
4460 ret void
4561}
4662
47- ; CHECK: OpFunction
48- ; CHECK: %[[#TestVar:]] = OpVariable
49- ; CHECK: OpLifetimeStart %[[#TestVar]], 1
50- ; CHECK: OpCopyMemorySized
51- ; CHECK: OpInBoundsPtrAccessChain
52- ; CHECK: OpLifetimeStop %[[#TestVar]], 1
63+ ; CL: OpFunction
64+ ; CL: %[[#TestVar:]] = OpVariable
65+ ; CL-NEXT: OpLifetimeStart %[[#TestVar]], 1
66+ ; CL-NEXT: OpCopyMemorySized
67+ ; CL-NEXT: OpInBoundsPtrAccessChain
68+ ; CL-NEXT: OpLifetimeStop %[[#TestVar]], 1
69+
70+ ; VK: OpFunction
71+ ; VK: %[[#Test:]] = OpVariable
72+ ; VK-NEXT: OpCopyMemorySized
73+ ; VK-NEXT: OpInBoundsAccessChain
74+ ; VK-NEXT: OpReturn
5375define spir_func void @test (ptr noundef align 8 %_arg ) {
5476 %var = alloca i8 , align 8
5577 call void @llvm.lifetime.start.p0 (i64 1 , ptr nonnull %var )
0 commit comments