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
2
2
; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64-unknown-unknown %s -o - -filetype=obj | spirv-val %}
3
3
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
5
5
; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv32-unknown-unknown %s -o - -filetype=obj | spirv-val %}
6
6
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]]
9
13
10
14
%tprange = type { %tparray }
11
15
%tparray = type { [2 x i64 ] }
12
16
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
22
32
define spir_func void @foo (ptr noundef byval (%tprange ) align 8 %_arg_UserRange ) {
23
33
%RoundedRangeKernel = alloca %tprange , align 8
24
34
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)
28
38
ret void
29
39
}
30
40
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
38
54
define spir_func void @bar (ptr noundef byval (%tprange ) align 8 %_arg_UserRange ) {
39
55
%RoundedRangeKernel = alloca %tprange , align 8
40
56
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)
44
60
ret void
45
61
}
46
62
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
53
75
define spir_func void @test (ptr noundef align 8 %_arg ) {
54
76
%var = alloca i8 , align 8
55
77
call void @llvm.lifetime.start.p0 (i64 1 , ptr nonnull %var )
0 commit comments