1 // RUN
: not llvm-mc
-arch
=amdgcn
-mcpu
=gfx800
-show-encoding
%s
2>&1 | FileCheck
%s
2 // RUN
: not llvm-mc
-arch
=amdgcn
-mcpu
=gfx900
-show-encoding
%s
2>&1 | FileCheck
%s
3 // RUN
: not llvm-mc
-arch
=amdgcn
-mcpu
=gfx906
-show-encoding
%s
2>&1 | FileCheck
%s
--check-prefix
=GFX906-GFX908
4 // RUN
: not llvm-mc
-arch
=amdgcn
-mcpu
=gfx908
-show-encoding
%s
2>&1 | FileCheck
%s
--check-prefix
=GFX906-GFX908
7 // Test unsupported GPUs.
10 // CHECK
: error
: instruction
not supported on this GPU
12 // CHECK
: error
: instruction
not supported on this GPU
14 // CHECK
: error
: instruction
not supported on this GPU
15 v_dot2_f32_f16 v0
, v1
, v2
, v3
16 // CHECK
: error
: instruction
not supported on this GPU
17 v_dot2_i32_i16 v0
, v1
, v2
, v3
18 // CHECK
: error
: instruction
not supported on this GPU
19 v_dot2_u32_u16 v0
, v1
, v2
, v3
20 // CHECK
: error
: instruction
not supported on this GPU
21 v_dot4_i32_i8 v0
, v1
, v2
, v3
22 // CHECK
: error
: instruction
not supported on this GPU
23 v_dot4_u32_u8 v0
, v1
, v2
, v3
24 // CHECK
: error
: instruction
not supported on this GPU
25 v_dot8_i32_i4 v0
, v1
, v2
, v3
26 // CHECK
: error
: instruction
not supported on this GPU
27 v_dot8_u32_u4 v0
, v1
, v2
, v3
30 // Test invalid operands.
33 // GFX906-GFX908
: error
: invalid operand for instruction
34 v_dot2_f32_f16 v0
, v1
, v2
, v3 op_sel
35 // GFX906-GFX908
: error
: expected
a left square bracket
36 v_dot2_f32_f16 v0
, v1
, v2
, v3 op_sel
:
37 // GFX906-GFX908
: error
: unknown token in expression
38 v_dot2_f32_f16 v0
, v1
, v2
, v3 op_sel
:[
39 // GFX906-GFX908
: error
: expected
a left square bracket
40 v_dot2_f32_f16 v0
, v1
, v2
, v3 op_sel
:]
41 // GFX906-GFX908
: error
: unknown token in expression
42 v_dot2_f32_f16 v0
, v1
, v2
, v3 op_sel
:[]
43 // GFX906-GFX908
: error
: unknown token in expression
44 v_dot2_f32_f16 v0
, v1
, v2
, v3 op_sel
:[,]
45 // GFX906-GFX908
: error
: unknown token in expression
46 v_dot2_f32_f16 v0
, v1
, v2
, v3 op_sel
:[,0]
47 // GFX906-GFX908
: error
: failed parsing operand
48 v_dot2_f32_f16 v0
, v1
, v2
, v3 op_sel
:[0,2]
49 // GFX906-GFX908
: error
: failed parsing operand
50 v_dot2_f32_f16 v0
, v1
, v2
, v3 op_sel
:[2,0]
51 // GFX906-GFX908
: error
: failed parsing operand
52 v_dot2_f32_f16 v0
, v1
, v2
, v3 op_sel
:[2,2]
53 // GFX906-GFX908
: error
: failed parsing operand
54 v_dot2_f32_f16 v0
, v1
, v2
, v3 op_sel
:[0,-1]
55 // GFX906-GFX908
: error
: failed parsing operand
56 v_dot2_f32_f16 v0
, v1
, v2
, v3 op_sel
:[-1,0]
57 // GFX906-GFX908
: error
: failed parsing operand
58 v_dot2_f32_f16 v0
, v1
, v2
, v3 op_sel
:[-1,-1]
59 // GFX906-GFX908
: error
: expected
a closing square bracket
60 v_dot2_f32_f16 v0
, v1
, v2
, v3 op_sel
:[0,0,0,0,0]
61 // GFX906-GFX908
: error
: invalid operand for instruction
62 v_dot2_f32_f16 v0
, v1
, v2
, v3 op_sel_hi
63 // GFX906-GFX908
: error
: expected
a left square bracket
64 v_dot2_f32_f16 v0
, v1
, v2
, v3 op_sel_hi
:
65 // GFX906-GFX908
: error
: unknown token in expression
66 v_dot2_f32_f16 v0
, v1
, v2
, v3 op_sel_hi
:[
67 // GFX906-GFX908
: error
: expected
a left square bracket
68 v_dot2_f32_f16 v0
, v1
, v2
, v3 op_sel_hi
:]
69 // GFX906-GFX908
: error
: unknown token in expression
70 v_dot2_f32_f16 v0
, v1
, v2
, v3 op_sel_hi
:[]
71 // GFX906-GFX908
: error
: unknown token in expression
72 v_dot2_f32_f16 v0
, v1
, v2
, v3 op_sel_hi
:[,]
73 // GFX906-GFX908
: error
: unknown token in expression
74 v_dot2_f32_f16 v0
, v1
, v2
, v3 op_sel_hi
:[,0]
75 // GFX906-GFX908
: error
: failed parsing operand
76 v_dot2_f32_f16 v0
, v1
, v2
, v3 op_sel_hi
:[0,2]
77 // GFX906-GFX908
: error
: failed parsing operand
78 v_dot2_f32_f16 v0
, v1
, v2
, v3 op_sel_hi
:[2,0]
79 // GFX906-GFX908
: error
: failed parsing operand
80 v_dot2_f32_f16 v0
, v1
, v2
, v3 op_sel_hi
:[2,2]
81 // GFX906-GFX908
: error
: failed parsing operand
82 v_dot2_f32_f16 v0
, v1
, v2
, v3 op_sel_hi
:[0,-1]
83 // GFX906-GFX908
: error
: failed parsing operand
84 v_dot2_f32_f16 v0
, v1
, v2
, v3 op_sel_hi
:[-1,0]
85 // GFX906-GFX908
: error
: failed parsing operand
86 v_dot2_f32_f16 v0
, v1
, v2
, v3 op_sel_hi
:[-1,-1]
87 // GFX906-GFX908
: error
: expected
a closing square bracket
88 v_dot2_f32_f16 v0
, v1
, v2
, v3 op_sel_hi
:[0,0,0,0,0]
89 // GFX906-GFX908
: error
: invalid operand for instruction
90 v_dot2_f32_f16 v0
, v1
, v2
, v3 neg_lo
91 // GFX906-GFX908
: error
: expected
a left square bracket
92 v_dot2_f32_f16 v0
, v1
, v2
, v3 neg_lo
:
93 // GFX906-GFX908
: error
: unknown token in expression
94 v_dot2_f32_f16 v0
, v1
, v2
, v3 neg_lo
:[
95 // GFX906-GFX908
: error
: expected
a left square bracket
96 v_dot2_f32_f16 v0
, v1
, v2
, v3 neg_lo
:]
97 // GFX906-GFX908
: error
: unknown token in expression
98 v_dot2_f32_f16 v0
, v1
, v2
, v3 neg_lo
:[]
99 // GFX906-GFX908
: error
: unknown token in expression
100 v_dot2_f32_f16 v0
, v1
, v2
, v3 neg_lo
:[,]
101 // GFX906-GFX908
: error
: unknown token in expression
102 v_dot2_f32_f16 v0
, v1
, v2
, v3 neg_lo
:[,0]
103 // GFX906-GFX908
: error
: failed parsing operand
104 v_dot2_f32_f16 v0
, v1
, v2
, v3 neg_lo
:[0,2]
105 // GFX906-GFX908
: error
: failed parsing operand
106 v_dot2_f32_f16 v0
, v1
, v2
, v3 neg_lo
:[2,0]
107 // GFX906-GFX908
: error
: failed parsing operand
108 v_dot2_f32_f16 v0
, v1
, v2
, v3 neg_lo
:[2,2]
109 // GFX906-GFX908
: error
: failed parsing operand
110 v_dot2_f32_f16 v0
, v1
, v2
, v3 neg_lo
:[0,-1]
111 // GFX906-GFX908
: error
: failed parsing operand
112 v_dot2_f32_f16 v0
, v1
, v2
, v3 neg_lo
:[-1,0]
113 // GFX906-GFX908
: error
: failed parsing operand
114 v_dot2_f32_f16 v0
, v1
, v2
, v3 neg_lo
:[-1,-1]
115 // GFX906-GFX908
: error
: expected
a closing square bracket
116 v_dot2_f32_f16 v0
, v1
, v2
, v3 neg_lo
:[0,0,0,0,0]
117 // GFX906-GFX908
: error
: invalid operand for instruction
118 v_dot2_f32_f16 v0
, v1
, v2
, v3 neg_hi
119 // GFX906-GFX908
: error
: expected
a left square bracket
120 v_dot2_f32_f16 v0
, v1
, v2
, v3 neg_hi
:
121 // GFX906-GFX908
: error
: unknown token in expression
122 v_dot2_f32_f16 v0
, v1
, v2
, v3 neg_hi
:[
123 // GFX906-GFX908
: error
: expected
a left square bracket
124 v_dot2_f32_f16 v0
, v1
, v2
, v3 neg_hi
:]
125 // GFX906-GFX908
: error
: unknown token in expression
126 v_dot2_f32_f16 v0
, v1
, v2
, v3 neg_hi
:[]
127 // GFX906-GFX908
: error
: unknown token in expression
128 v_dot2_f32_f16 v0
, v1
, v2
, v3 neg_hi
:[,]
129 // GFX906-GFX908
: error
: unknown token in expression
130 v_dot2_f32_f16 v0
, v1
, v2
, v3 neg_hi
:[,0]
131 // GFX906-GFX908
: error
: failed parsing operand
132 v_dot2_f32_f16 v0
, v1
, v2
, v3 neg_hi
:[0,2]
133 // GFX906-GFX908
: error
: failed parsing operand
134 v_dot2_f32_f16 v0
, v1
, v2
, v3 neg_hi
:[2,0]
135 // GFX906-GFX908
: error
: failed parsing operand
136 v_dot2_f32_f16 v0
, v1
, v2
, v3 neg_hi
:[2,2]
137 // GFX906-GFX908
: error
: failed parsing operand
138 v_dot2_f32_f16 v0
, v1
, v2
, v3 neg_hi
:[0,-1]
139 // GFX906-GFX908
: error
: failed parsing operand
140 v_dot2_f32_f16 v0
, v1
, v2
, v3 neg_hi
:[-1,0]
141 // GFX906-GFX908
: error
: failed parsing operand
142 v_dot2_f32_f16 v0
, v1
, v2
, v3 neg_hi
:[-1,-1]
143 // GFX906-GFX908
: error
: expected
a closing square bracket
144 v_dot2_f32_f16 v0
, v1
, v2
, v3 neg_hi
:[0,0,0,0,0]
145 // GFX906-GFX908
: error
: invalid operand for instruction
146 v_dot2_i32_i16 v0
, v1
, v2
, v3 op_sel
147 // GFX906-GFX908
: error
: expected
a left square bracket
148 v_dot2_i32_i16 v0
, v1
, v2
, v3 op_sel
:
149 // GFX906-GFX908
: error
: unknown token in expression
150 v_dot2_i32_i16 v0
, v1
, v2
, v3 op_sel
:[
151 // GFX906-GFX908
: error
: expected
a left square bracket
152 v_dot2_i32_i16 v0
, v1
, v2
, v3 op_sel
:]
153 // GFX906-GFX908
: error
: unknown token in expression
154 v_dot2_i32_i16 v0
, v1
, v2
, v3 op_sel
:[]
155 // GFX906-GFX908
: error
: unknown token in expression
156 v_dot2_i32_i16 v0
, v1
, v2
, v3 op_sel
:[,]
157 // GFX906-GFX908
: error
: unknown token in expression
158 v_dot2_i32_i16 v0
, v1
, v2
, v3 op_sel
:[,0]
159 // GFX906-GFX908
: error
: failed parsing operand
160 v_dot2_i32_i16 v0
, v1
, v2
, v3 op_sel
:[0,2]
161 // GFX906-GFX908
: error
: failed parsing operand
162 v_dot2_i32_i16 v0
, v1
, v2
, v3 op_sel
:[2,0]
163 // GFX906-GFX908
: error
: failed parsing operand
164 v_dot2_i32_i16 v0
, v1
, v2
, v3 op_sel
:[2,2]
165 // GFX906-GFX908
: error
: failed parsing operand
166 v_dot2_i32_i16 v0
, v1
, v2
, v3 op_sel
:[0,-1]
167 // GFX906-GFX908
: error
: failed parsing operand
168 v_dot2_i32_i16 v0
, v1
, v2
, v3 op_sel
:[-1,0]
169 // GFX906-GFX908
: error
: failed parsing operand
170 v_dot2_i32_i16 v0
, v1
, v2
, v3 op_sel
:[-1,-1]
171 // GFX906-GFX908
: error
: expected
a closing square bracket
172 v_dot2_i32_i16 v0
, v1
, v2
, v3 op_sel
:[0,0,0,0,0]
173 // GFX906-GFX908
: error
: invalid operand for instruction
174 v_dot2_i32_i16 v0
, v1
, v2
, v3 op_sel_hi
175 // GFX906-GFX908
: error
: expected
a left square bracket
176 v_dot2_i32_i16 v0
, v1
, v2
, v3 op_sel_hi
:
177 // GFX906-GFX908
: error
: unknown token in expression
178 v_dot2_i32_i16 v0
, v1
, v2
, v3 op_sel_hi
:[
179 // GFX906-GFX908
: error
: expected
a left square bracket
180 v_dot2_i32_i16 v0
, v1
, v2
, v3 op_sel_hi
:]
181 // GFX906-GFX908
: error
: unknown token in expression
182 v_dot2_i32_i16 v0
, v1
, v2
, v3 op_sel_hi
:[]
183 // GFX906-GFX908
: error
: unknown token in expression
184 v_dot2_i32_i16 v0
, v1
, v2
, v3 op_sel_hi
:[,]
185 // GFX906-GFX908
: error
: unknown token in expression
186 v_dot2_i32_i16 v0
, v1
, v2
, v3 op_sel_hi
:[,0]
187 // GFX906-GFX908
: error
: failed parsing operand
188 v_dot2_i32_i16 v0
, v1
, v2
, v3 op_sel_hi
:[0,2]
189 // GFX906-GFX908
: error
: failed parsing operand
190 v_dot2_i32_i16 v0
, v1
, v2
, v3 op_sel_hi
:[2,0]
191 // GFX906-GFX908
: error
: failed parsing operand
192 v_dot2_i32_i16 v0
, v1
, v2
, v3 op_sel_hi
:[2,2]
193 // GFX906-GFX908
: error
: failed parsing operand
194 v_dot2_i32_i16 v0
, v1
, v2
, v3 op_sel_hi
:[0,-1]
195 // GFX906-GFX908
: error
: failed parsing operand
196 v_dot2_i32_i16 v0
, v1
, v2
, v3 op_sel_hi
:[-1,0]
197 // GFX906-GFX908
: error
: failed parsing operand
198 v_dot2_i32_i16 v0
, v1
, v2
, v3 op_sel_hi
:[-1,-1]
199 // GFX906-GFX908
: error
: expected
a closing square bracket
200 v_dot2_i32_i16 v0
, v1
, v2
, v3 op_sel_hi
:[0,0,0,0,0]
201 // FIXME-GFX906
: error
: invalid operand for instruction
202 v_dot2_i32_i16 v0
, v1
, v2
, v3 neg_lo
:[0,0]
203 // FIXME-GFX906
: error
: invalid operand for instruction
204 v_dot2_i32_i16 v0
, v1
, v2
, v3 neg_hi
:[0,0]
205 // GFX906-GFX908
: error
: invalid operand for instruction
206 v_dot2_u32_u16 v0
, v1
, v2
, v3 op_sel
207 // GFX906-GFX908
: error
: expected
a left square bracket
208 v_dot2_u32_u16 v0
, v1
, v2
, v3 op_sel
:
209 // GFX906-GFX908
: error
: unknown token in expression
210 v_dot2_u32_u16 v0
, v1
, v2
, v3 op_sel
:[
211 // GFX906-GFX908
: error
: expected
a left square bracket
212 v_dot2_u32_u16 v0
, v1
, v2
, v3 op_sel
:]
213 // GFX906-GFX908
: error
: unknown token in expression
214 v_dot2_u32_u16 v0
, v1
, v2
, v3 op_sel
:[]
215 // GFX906-GFX908
: error
: unknown token in expression
216 v_dot2_u32_u16 v0
, v1
, v2
, v3 op_sel
:[,]
217 // GFX906-GFX908
: error
: unknown token in expression
218 v_dot2_u32_u16 v0
, v1
, v2
, v3 op_sel
:[,0]
219 // GFX906-GFX908
: error
: failed parsing operand
220 v_dot2_u32_u16 v0
, v1
, v2
, v3 op_sel
:[0,2]
221 // GFX906-GFX908
: error
: failed parsing operand
222 v_dot2_u32_u16 v0
, v1
, v2
, v3 op_sel
:[2,0]
223 // GFX906-GFX908
: error
: failed parsing operand
224 v_dot2_u32_u16 v0
, v1
, v2
, v3 op_sel
:[2,2]
225 // GFX906-GFX908
: error
: failed parsing operand
226 v_dot2_u32_u16 v0
, v1
, v2
, v3 op_sel
:[0,-1]
227 // GFX906-GFX908
: error
: failed parsing operand
228 v_dot2_u32_u16 v0
, v1
, v2
, v3 op_sel
:[-1,0]
229 // GFX906-GFX908
: error
: failed parsing operand
230 v_dot2_u32_u16 v0
, v1
, v2
, v3 op_sel
:[-1,-1]
231 // GFX906-GFX908
: error
: expected
a closing square bracket
232 v_dot2_u32_u16 v0
, v1
, v2
, v3 op_sel
:[0,0,0,0,0]
233 // GFX906-GFX908
: error
: invalid operand for instruction
234 v_dot2_u32_u16 v0
, v1
, v2
, v3 op_sel_hi
235 // GFX906-GFX908
: error
: expected
a left square bracket
236 v_dot2_u32_u16 v0
, v1
, v2
, v3 op_sel_hi
:
237 // GFX906-GFX908
: error
: unknown token in expression
238 v_dot2_u32_u16 v0
, v1
, v2
, v3 op_sel_hi
:[
239 // GFX906-GFX908
: error
: expected
a left square bracket
240 v_dot2_u32_u16 v0
, v1
, v2
, v3 op_sel_hi
:]
241 // GFX906-GFX908
: error
: unknown token in expression
242 v_dot2_u32_u16 v0
, v1
, v2
, v3 op_sel_hi
:[]
243 // GFX906-GFX908
: error
: unknown token in expression
244 v_dot2_u32_u16 v0
, v1
, v2
, v3 op_sel_hi
:[,]
245 // GFX906-GFX908
: error
: unknown token in expression
246 v_dot2_u32_u16 v0
, v1
, v2
, v3 op_sel_hi
:[,0]
247 // GFX906-GFX908
: error
: invalid op_sel_hi value
248 v_dot2_u32_u16 v0
, v1
, v2
, v3 op_sel_hi
:[0,2]
249 // GFX906-GFX908
: error
: failed parsing operand
250 v_dot2_u32_u16 v0
, v1
, v2
, v3 op_sel_hi
:[2,0]
251 // GFX906-GFX908
: error
: failed parsing operand
252 v_dot2_u32_u16 v0
, v1
, v2
, v3 op_sel_hi
:[2,2]
253 // GFX906-GFX908
: error
: failed parsing operand
254 v_dot2_u32_u16 v0
, v1
, v2
, v3 op_sel_hi
:[0,-1]
255 // GFX906-GFX908
: error
: failed parsing operand
256 v_dot2_u32_u16 v0
, v1
, v2
, v3 op_sel_hi
:[-1,0]
257 // GFX906-GFX908
: error
: failed parsing operand
258 v_dot2_u32_u16 v0
, v1
, v2
, v3 op_sel_hi
:[-1,-1]
259 // GFX906-GFX908
: error
: expected
a closing square bracket
260 v_dot2_u32_u16 v0
, v1
, v2
, v3 op_sel_hi
:[0,0,0,0,0]
261 // FIXME-GFX906
: error
: invalid operand for instruction
262 v_dot2_u32_u16 v0
, v1
, v2
, v3 neg_lo
:[0,0]
263 // FIXME-GFX906
: error
: invalid operand for instruction
264 v_dot2_u32_u16 v0
, v1
, v2
, v3 neg_hi
:[0,0]
267 // Test regular modifiers.
270 // GFX906-GFX908
: error
: not a valid operand
271 v_dot2_f32_f16 v0
, |v1|
, v2
, v3
272 // GFX906-GFX908
: error
: not a valid operand
273 v_dot2_f32_f16 v0
, v1
, |v2|
, v3
274 // GFX906-GFX908
: error
: not a valid operand
275 v_dot2_f32_f16 v0
, v1
, v2
, |v3|
276 // GFX906-GFX908
: error
: not a valid operand
277 v_dot2_f32_f16 v0
, |v1|
, |v2|
, v3
278 // GFX906-GFX908
: error
: not a valid operand
279 v_dot2_f32_f16 v0
, |v1|
, v2
, |v3|
280 // GFX906-GFX908
: error
: not a valid operand
281 v_dot2_f32_f16 v0
, |v1|
, |v2|
, |v3|
282 // GFX906-GFX908
: error
: not a valid operand
283 v_dot2_f32_f16 v0
, abs(v1
), v2
, v3
284 // GFX906-GFX908
: error
: not a valid operand
285 v_dot2_f32_f16 v0
, v1
, abs(v2
), v3
286 // GFX906-GFX908
: error
: not a valid operand
287 v_dot2_f32_f16 v0
, v1
, v2
, abs(v3
)
288 // GFX906-GFX908
: error
: not a valid operand
289 v_dot2_f32_f16 v0
, abs(v1
), abs(v2
), v3
290 // GFX906-GFX908
: error
: not a valid operand
291 v_dot2_f32_f16 v0
, abs(v1
), v2
, abs(v3
)
292 // GFX906-GFX908
: error
: not a valid operand
293 v_dot2_f32_f16 v0
, abs(v1
), abs(v2
), abs(v3
)
294 // GFX906-GFX908
: error
: not a valid operand
295 v_dot2_f32_f16 v0
, -v1
, v2
, v3
296 // GFX906-GFX908
: error
: not a valid operand
297 v_dot2_f32_f16 v0
, v1
, -v2
, v3
298 // GFX906-GFX908
: error
: not a valid operand
299 v_dot2_f32_f16 v0
, v1
, v2
, -v3
300 // GFX906-GFX908
: error
: not a valid operand
301 v_dot2_f32_f16 v0
, -v1
, -v2
, v3
302 // GFX906-GFX908
: error
: not a valid operand
303 v_dot2_f32_f16 v0
, -v1
, v2
, -v3
304 // GFX906-GFX908
: error
: not a valid operand
305 v_dot2_f32_f16 v0
, -v1
, -v2
, -v3
306 // GFX906-GFX908
: error
: not a valid operand
307 v_dot2_i32_i16 v0
, |v1|
, v2
, v3
308 // GFX906-GFX908
: error
: not a valid operand
309 v_dot2_i32_i16 v0
, v1
, |v2|
, v3
310 // GFX906-GFX908
: error
: not a valid operand
311 v_dot2_i32_i16 v0
, v1
, v2
, |v3|
312 // GFX906-GFX908
: error
: not a valid operand
313 v_dot2_i32_i16 v0
, |v1|
, |v2|
, v3
314 // GFX906-GFX908
: error
: not a valid operand
315 v_dot2_i32_i16 v0
, |v1|
, v2
, |v3|
316 // GFX906-GFX908
: error
: not a valid operand
317 v_dot2_i32_i16 v0
, |v1|
, |v2|
, |v3|
318 // GFX906-GFX908
: error
: not a valid operand
319 v_dot2_i32_i16 v0
, abs(v1
), v2
, v3
320 // GFX906-GFX908
: error
: not a valid operand
321 v_dot2_i32_i16 v0
, v1
, abs(v2
), v3
322 // GFX906-GFX908
: error
: not a valid operand
323 v_dot2_i32_i16 v0
, v1
, v2
, abs(v3
)
324 // GFX906-GFX908
: error
: not a valid operand
325 v_dot2_i32_i16 v0
, abs(v1
), abs(v2
), v3
326 // GFX906-GFX908
: error
: not a valid operand
327 v_dot2_i32_i16 v0
, abs(v1
), v2
, abs(v3
)
328 // GFX906-GFX908
: error
: not a valid operand
329 v_dot2_i32_i16 v0
, abs(v1
), abs(v2
), abs(v3
)
330 // GFX906-GFX908
: error
: not a valid operand
331 v_dot2_i32_i16 v0
, -v1
, v2
, v3
332 // GFX906-GFX908
: error
: not a valid operand
333 v_dot2_i32_i16 v0
, v1
, -v2
, v3
334 // GFX906-GFX908
: error
: not a valid operand
335 v_dot2_i32_i16 v0
, v1
, v2
, -v3
336 // GFX906-GFX908
: error
: not a valid operand
337 v_dot2_i32_i16 v0
, -v1
, -v2
, v3
338 // GFX906-GFX908
: error
: not a valid operand
339 v_dot2_i32_i16 v0
, -v1
, v2
, -v3
340 // GFX906-GFX908
: error
: not a valid operand
341 v_dot2_i32_i16 v0
, -v1
, -v2
, -v3
342 // GFX906-GFX908
: error
: not a valid operand
343 v_dot2_u32_u16 v0
, |v1|
, v2
, v3
344 // GFX906-GFX908
: error
: not a valid operand
345 v_dot2_u32_u16 v0
, v1
, |v2|
, v3
346 // GFX906-GFX908
: error
: not a valid operand
347 v_dot2_u32_u16 v0
, v1
, v2
, |v3|
348 // GFX906-GFX908
: error
: not a valid operand
349 v_dot2_u32_u16 v0
, |v1|
, |v2|
, v3
350 // GFX906-GFX908
: error
: not a valid operand
351 v_dot2_u32_u16 v0
, |v1|
, v2
, |v3|
352 // GFX906-GFX908
: error
: not a valid operand
353 v_dot2_u32_u16 v0
, |v1|
, |v2|
, |v3|
354 // GFX906-GFX908
: error
: not a valid operand
355 v_dot2_u32_u16 v0
, abs(v1
), v2
, v3
356 // GFX906-GFX908
: error
: not a valid operand
357 v_dot2_u32_u16 v0
, v1
, abs(v2
), v3
358 // GFX906-GFX908
: error
: not a valid operand
359 v_dot2_u32_u16 v0
, v1
, v2
, abs(v3
)
360 // GFX906-GFX908
: error
: not a valid operand
361 v_dot2_u32_u16 v0
, abs(v1
), abs(v2
), v3
362 // GFX906-GFX908
: error
: not a valid operand
363 v_dot2_u32_u16 v0
, abs(v1
), v2
, abs(v3
)
364 // GFX906-GFX908
: error
: not a valid operand
365 v_dot2_u32_u16 v0
, abs(v1
), abs(v2
), abs(v3
)
366 // GFX906-GFX908
: error
: not a valid operand
367 v_dot2_u32_u16 v0
, -v1
, v2
, v3
368 // GFX906-GFX908
: error
: not a valid operand
369 v_dot2_u32_u16 v0
, v1
, -v2
, v3
370 // GFX906-GFX908
: error
: not a valid operand
371 v_dot2_u32_u16 v0
, v1
, v2
, -v3
372 // GFX906-GFX908
: error
: not a valid operand
373 v_dot2_u32_u16 v0
, -v1
, -v2
, v3
374 // GFX906-GFX908
: error
: not a valid operand
375 v_dot2_u32_u16 v0
, -v1
, v2
, -v3
376 // GFX906-GFX908
: error
: not a valid operand
377 v_dot2_u32_u16 v0
, -v1
, -v2
, -v3
380 // Test constant bus restrictions.
383 // GFX906-GFX908
: error
: invalid operand
(violates constant bus restrictions
)
384 v_dot2_f32_f16 v255
, s1
, s2
, s3
385 // GFX906-GFX908
: error
: invalid operand
(violates constant bus restrictions
)
386 v_dot2_i32_i16 v255
, s1
, s2
, s3
387 // GFX906-GFX908
: error
: invalid operand
(violates constant bus restrictions
)
388 v_dot2_u32_u16 v255
, s1
, s2
, s3