@@ -8,37 +8,37 @@ func.func @access_chain_struct() -> () {
8
8
%0 = spirv.Constant 1 : i32
9
9
%1 = spirv.Variable : !spirv.ptr <!spirv.struct <(f32 , !spirv.array <4 xf32 >)>, Function >
10
10
// CHECK: spirv.AccessChain {{.*}}[{{.*}}, {{.*}}] : !spirv.ptr<!spirv.struct<(f32, !spirv.array<4 x f32>)>, Function>
11
- %2 = spirv.AccessChain %1 [%0 , %0 ] : !spirv.ptr <!spirv.struct <(f32 , !spirv.array <4 xf32 >)>, Function >, i32 , i32
11
+ %2 = spirv.AccessChain %1 [%0 , %0 ] : !spirv.ptr <!spirv.struct <(f32 , !spirv.array <4 xf32 >)>, Function >, i32 , i32 -> !spirv.ptr < f32 , Function >
12
12
return
13
13
}
14
14
15
15
func.func @access_chain_1D_array (%arg0 : i32 ) -> () {
16
16
%0 = spirv.Variable : !spirv.ptr <!spirv.array <4 xf32 >, Function >
17
17
// CHECK: spirv.AccessChain {{.*}}[{{.*}}] : !spirv.ptr<!spirv.array<4 x f32>, Function>
18
- %1 = spirv.AccessChain %0 [%arg0 ] : !spirv.ptr <!spirv.array <4 xf32 >, Function >, i32
18
+ %1 = spirv.AccessChain %0 [%arg0 ] : !spirv.ptr <!spirv.array <4 xf32 >, Function >, i32 -> !spirv.ptr < f32 , Function >
19
19
return
20
20
}
21
21
22
22
func.func @access_chain_2D_array_1 (%arg0 : i32 ) -> () {
23
23
%0 = spirv.Variable : !spirv.ptr <!spirv.array <4 x!spirv.array <4 xf32 >>, Function >
24
24
// CHECK: spirv.AccessChain {{.*}}[{{.*}}, {{.*}}] : !spirv.ptr<!spirv.array<4 x !spirv.array<4 x f32>>, Function>
25
- %1 = spirv.AccessChain %0 [%arg0 , %arg0 ] : !spirv.ptr <!spirv.array <4 x!spirv.array <4 xf32 >>, Function >, i32 , i32
25
+ %1 = spirv.AccessChain %0 [%arg0 , %arg0 ] : !spirv.ptr <!spirv.array <4 x!spirv.array <4 xf32 >>, Function >, i32 , i32 -> !spirv.ptr < f32 , Function >
26
26
%2 = spirv.Load " Function" %1 [" Volatile" ] : f32
27
27
return
28
28
}
29
29
30
30
func.func @access_chain_2D_array_2 (%arg0 : i32 ) -> () {
31
31
%0 = spirv.Variable : !spirv.ptr <!spirv.array <4 x!spirv.array <4 xf32 >>, Function >
32
32
// CHECK: spirv.AccessChain {{.*}}[{{.*}}] : !spirv.ptr<!spirv.array<4 x !spirv.array<4 x f32>>, Function>
33
- %1 = spirv.AccessChain %0 [%arg0 ] : !spirv.ptr <!spirv.array <4 x!spirv.array <4 xf32 >>, Function >, i32
33
+ %1 = spirv.AccessChain %0 [%arg0 ] : !spirv.ptr <!spirv.array <4 x!spirv.array <4 xf32 >>, Function >, i32 -> !spirv.ptr < !spirv.array < 4 x f32 >, Function >
34
34
%2 = spirv.Load " Function" %1 [" Volatile" ] : !spirv.array <4 xf32 >
35
35
return
36
36
}
37
37
38
38
func.func @access_chain_rtarray (%arg0 : i32 ) -> () {
39
39
%0 = spirv.Variable : !spirv.ptr <!spirv.rtarray <f32 >, Function >
40
40
// CHECK: spirv.AccessChain {{.*}}[{{.*}}] : !spirv.ptr<!spirv.rtarray<f32>, Function>
41
- %1 = spirv.AccessChain %0 [%arg0 ] : !spirv.ptr <!spirv.rtarray <f32 >, Function >, i32
41
+ %1 = spirv.AccessChain %0 [%arg0 ] : !spirv.ptr <!spirv.rtarray <f32 >, Function >, i32 -> !spirv.ptr < f32 , Function >
42
42
%2 = spirv.Load " Function" %1 [" Volatile" ] : f32
43
43
return
44
44
}
@@ -49,16 +49,16 @@ func.func @access_chain_non_composite() -> () {
49
49
%0 = spirv.Constant 1 : i32
50
50
%1 = spirv.Variable : !spirv.ptr <f32 , Function >
51
51
// expected-error @+1 {{cannot extract from non-composite type 'f32' with index 0}}
52
- %2 = spirv.AccessChain %1 [%0 ] : !spirv.ptr <f32 , Function >, i32
52
+ %2 = spirv.AccessChain %1 [%0 ] : !spirv.ptr <f32 , Function >, i32 -> !spirv.ptr < f32 , Function >
53
53
return
54
54
}
55
55
56
56
// -----
57
57
58
58
func.func @access_chain_no_indices (%index0 : i32 ) -> () {
59
59
%0 = spirv.Variable : !spirv.ptr <!spirv.array <4 x!spirv.array <4 xf32 >>, Function >
60
- // expected-error @+1 {{expected at least one index }}
61
- %1 = spirv.AccessChain %0 [] : !spirv.ptr <!spirv.array <4 x!spirv.array <4 xf32 >>, Function >, i32
60
+ // expected-error @+1 {{custom op 'spirv.AccessChain' 0 operands present, but expected 1 }}
61
+ %1 = spirv.AccessChain %0 [] : !spirv.ptr <!spirv.array <4 x!spirv.array <4 xf32 >>, Function >, i32 -> !spirv.ptr < f32 , Function >
62
62
return
63
63
}
64
64
@@ -75,17 +75,17 @@ func.func @access_chain_missing_comma(%index0 : i32) -> () {
75
75
76
76
func.func @access_chain_invalid_indices_types_count (%index0 : i32 ) -> () {
77
77
%0 = spirv.Variable : !spirv.ptr <!spirv.array <4 x!spirv.array <4 xf32 >>, Function >
78
- // expected-error @+1 {{'spirv.AccessChain' op indices types' count must be equal to indices info count }}
79
- %1 = spirv.AccessChain %0 [%index0 ] : !spirv.ptr <!spirv.array <4 x!spirv.array <4 xf32 >>, Function >, i32 , i32
78
+ // expected-error @+1 {{custom op 'spirv.AccessChain' 1 operands present, but expected 2 }}
79
+ %1 = spirv.AccessChain %0 [%index0 ] : !spirv.ptr <!spirv.array <4 x!spirv.array <4 xf32 >>, Function >, i32 , i32 -> !spirv.ptr < !spirv.array < 4 x f32 >, Function >
80
80
return
81
81
}
82
82
83
83
// -----
84
84
85
85
func.func @access_chain_missing_indices_type (%index0 : i32 ) -> () {
86
86
%0 = spirv.Variable : !spirv.ptr <!spirv.array <4 x!spirv.array <4 xf32 >>, Function >
87
- // expected-error @+1 {{'spirv.AccessChain' op indices types' count must be equal to indices info count }}
88
- %1 = spirv.AccessChain %0 [%index0 , %index0 ] : !spirv.ptr <!spirv.array <4 x!spirv.array <4 xf32 >>, Function >, i32
87
+ // expected-error @+1 {{custom op 'spirv.AccessChain' 2 operands present, but expected 1 }}
88
+ %1 = spirv.AccessChain %0 [%index0 , %index0 ] : !spirv.ptr <!spirv.array <4 x!spirv.array <4 xf32 >>, Function >, i32 -> !spirv.ptr < f32 , Function >
89
89
return
90
90
}
91
91
@@ -94,8 +94,8 @@ func.func @access_chain_missing_indices_type(%index0 : i32) -> () {
94
94
func.func @access_chain_invalid_type (%index0 : i32 ) -> () {
95
95
%0 = spirv.Variable : !spirv.ptr <!spirv.array <4 x!spirv.array <4 xf32 >>, Function >
96
96
%1 = spirv.Load " Function" %0 [" Volatile" ] : !spirv.array <4 x!spirv.array <4 xf32 >>
97
- // expected-error @+1 {{expected a pointer to composite type, but provided '!spirv.array<4 x !spirv.array<4 x f32>>'}}
98
- %2 = spirv.AccessChain %1 [%index0 ] : !spirv.array <4 x!spirv.array <4 xf32 >>, i32
97
+ // expected-error @+1 {{'spirv.AccessChain' op operand #0 must be any SPIR-V pointer type, but got '!spirv.array<4 x !spirv.array<4 x f32>>'}}
98
+ %2 = spirv.AccessChain %1 [%index0 ] : !spirv.array <4 x!spirv.array <4 xf32 >>, i32 -> f32
99
99
return
100
100
}
101
101
@@ -113,7 +113,7 @@ func.func @access_chain_invalid_index_1(%index0 : i32) -> () {
113
113
func.func @access_chain_invalid_index_2 (%index0 : i32 ) -> () {
114
114
%0 = spirv.Variable : !spirv.ptr <!spirv.struct <(f32 , !spirv.array <4 xf32 >)>, Function >
115
115
// expected-error @+1 {{index must be an integer spirv.Constant to access element of spirv.struct}}
116
- %1 = spirv.AccessChain %0 [%index0 , %index0 ] : !spirv.ptr <!spirv.struct <(f32 , !spirv.array <4 xf32 >)>, Function >, i32 , i32
116
+ %1 = spirv.AccessChain %0 [%index0 , %index0 ] : !spirv.ptr <!spirv.struct <(f32 , !spirv.array <4 xf32 >)>, Function >, i32 , i32 -> !spirv.ptr < f32 , Function >
117
117
return
118
118
}
119
119
@@ -123,7 +123,7 @@ func.func @access_chain_invalid_constant_type_1() -> () {
123
123
%0 = arith.constant 1 : i32
124
124
%1 = spirv.Variable : !spirv.ptr <!spirv.struct <(f32 , !spirv.array <4 xf32 >)>, Function >
125
125
// expected-error @+1 {{index must be an integer spirv.Constant to access element of spirv.struct, but provided arith.constant}}
126
- %2 = spirv.AccessChain %1 [%0 , %0 ] : !spirv.ptr <!spirv.struct <(f32 , !spirv.array <4 xf32 >)>, Function >, i32 , i32
126
+ %2 = spirv.AccessChain %1 [%0 , %0 ] : !spirv.ptr <!spirv.struct <(f32 , !spirv.array <4 xf32 >)>, Function >, i32 , i32 -> !spirv.ptr < f32 , Function >
127
127
return
128
128
}
129
129
@@ -133,7 +133,7 @@ func.func @access_chain_out_of_bounds() -> () {
133
133
%index0 = " spirv.Constant" () { value = 12 : i32 } : () -> i32
134
134
%0 = spirv.Variable : !spirv.ptr <!spirv.struct <(f32 , !spirv.array <4 xf32 >)>, Function >
135
135
// expected-error @+1 {{'spirv.AccessChain' op index 12 out of bounds for '!spirv.struct<(f32, !spirv.array<4 x f32>)>'}}
136
- %1 = spirv.AccessChain %0 [%index0 , %index0 ] : !spirv.ptr <!spirv.struct <(f32 , !spirv.array <4 xf32 >)>, Function >, i32 , i32
136
+ %1 = spirv.AccessChain %0 [%index0 , %index0 ] : !spirv.ptr <!spirv.struct <(f32 , !spirv.array <4 xf32 >)>, Function >, i32 , i32 -> !spirv.ptr < f32 , Function >
137
137
return
138
138
}
139
139
@@ -142,9 +142,9 @@ func.func @access_chain_out_of_bounds() -> () {
142
142
func.func @access_chain_invalid_accessing_type (%index0 : i32 ) -> () {
143
143
%0 = spirv.Variable : !spirv.ptr <!spirv.array <4 x!spirv.array <4 xf32 >>, Function >
144
144
// expected-error @+1 {{cannot extract from non-composite type 'f32' with index 0}}
145
- %1 = spirv.AccessChain %0 [%index , %index0 , %index0 ] : !spirv.ptr <!spirv.array <4 x!spirv.array <4 xf32 >>, Function >, i32 , i32 , i32
145
+ %1 = spirv.AccessChain %0 [%index0 , %index0 , %index0 ] : !spirv.ptr <!spirv.array <4 x!spirv.array <4 xf32 >>, Function >, i32 , i32 , i32 -> !spirv.ptr < f32 , Function >
146
146
return
147
-
147
+ }
148
148
// -----
149
149
150
150
//===----------------------------------------------------------------------===//
0 commit comments