1
1
; RUN: llc -O0 -mtriple=spirv-unknown-unknown %s -o - | FileCheck %s
2
2
; RUN: llc -O0 -mtriple=spirv32-unknown-unknown %s -o - | FileCheck %s
3
3
; RUN: llc -O0 -mtriple=spirv64-unknown-unknown %s -o - | FileCheck %s
4
+ ; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv-unknown-unknown %s -o - -filetype=obj | spirv-val %}
4
5
5
6
define void @main () {
6
7
entry:
8
+
9
+ ; CHECK-DAG: OpCapability Float16
10
+ ; CHECK-DAG: OpCapability Float64
11
+
12
+ ; CHECK-DAG: %[[#half:]] = OpTypeFloat 16
7
13
; CHECK-DAG: %[[#float:]] = OpTypeFloat 32
8
14
; CHECK-DAG: %[[#double:]] = OpTypeFloat 64
9
15
16
+ ; CHECK-DAG: %[[#v2half:]] = OpTypeVector %[[#half]] 2
17
+ ; CHECK-DAG: %[[#v3half:]] = OpTypeVector %[[#half]] 3
18
+ ; CHECK-DAG: %[[#v4half:]] = OpTypeVector %[[#half]] 4
19
+
10
20
; CHECK-DAG: %[[#v2float:]] = OpTypeVector %[[#float]] 2
11
21
; CHECK-DAG: %[[#v3float:]] = OpTypeVector %[[#float]] 3
12
22
; CHECK-DAG: %[[#v4float:]] = OpTypeVector %[[#float]] 4
@@ -15,21 +25,37 @@ entry:
15
25
; CHECK-DAG: %[[#v3double:]] = OpTypeVector %[[#double]] 3
16
26
; CHECK-DAG: %[[#v4double:]] = OpTypeVector %[[#double]] 4
17
27
28
+ ; CHECK-DAG: %[[#ptr_Function_half:]] = OpTypePointer Function %[[#half]]
18
29
; CHECK-DAG: %[[#ptr_Function_float:]] = OpTypePointer Function %[[#float]]
19
30
; CHECK-DAG: %[[#ptr_Function_double:]] = OpTypePointer Function %[[#double]]
31
+ ; CHECK-DAG: %[[#ptr_Function_v2half:]] = OpTypePointer Function %[[#v2half]]
32
+ ; CHECK-DAG: %[[#ptr_Function_v3half:]] = OpTypePointer Function %[[#v3half]]
33
+ ; CHECK-DAG: %[[#ptr_Function_v4half:]] = OpTypePointer Function %[[#v4half]]
20
34
; CHECK-DAG: %[[#ptr_Function_v2float:]] = OpTypePointer Function %[[#v2float]]
21
35
; CHECK-DAG: %[[#ptr_Function_v3float:]] = OpTypePointer Function %[[#v3float]]
22
36
; CHECK-DAG: %[[#ptr_Function_v4float:]] = OpTypePointer Function %[[#v4float]]
23
37
; CHECK-DAG: %[[#ptr_Function_v2double:]] = OpTypePointer Function %[[#v2double]]
24
38
; CHECK-DAG: %[[#ptr_Function_v3double:]] = OpTypePointer Function %[[#v3double]]
25
39
; CHECK-DAG: %[[#ptr_Function_v4double:]] = OpTypePointer Function %[[#v4double]]
26
40
41
+ ; CHECK: %[[#]] = OpVariable %[[#ptr_Function_half]] Function
42
+ %half_Val = alloca half , align 2
43
+
27
44
; CHECK: %[[#]] = OpVariable %[[#ptr_Function_float]] Function
28
45
%float_Val = alloca float , align 4
29
46
30
47
; CHECK: %[[#]] = OpVariable %[[#ptr_Function_double]] Function
31
48
%double_Val = alloca double , align 8
32
49
50
+ ; CHECK: %[[#]] = OpVariable %[[#ptr_Function_v2half]] Function
51
+ %half2_Val = alloca <2 x half >, align 4
52
+
53
+ ; CHECK: %[[#]] = OpVariable %[[#ptr_Function_v3half]] Function
54
+ %half3_Val = alloca <3 x half >, align 8
55
+
56
+ ; CHECK: %[[#]] = OpVariable %[[#ptr_Function_v4half]] Function
57
+ %half4_Val = alloca <4 x half >, align 8
58
+
33
59
; CHECK: %[[#]] = OpVariable %[[#ptr_Function_v2float]] Function
34
60
%float2_Val = alloca <2 x float >, align 8
35
61
0 commit comments