[DAGCombiner] Add target hook function to decide folding (mul (add x, c1), c2)
[llvm-project.git] / llvm / test / MC / AMDGPU / dl-insts-err.s
blob2ccb81e612fa28c5c0d5f9beec4429f2707f6735
1 // RUN: not llvm-mc -arch=amdgcn -mcpu=gfx800 %s 2>&1 | FileCheck %s
2 // RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck %s
3 // RUN: not llvm-mc -arch=amdgcn -mcpu=gfx906 %s 2>&1 | FileCheck %s --check-prefix=GFX906-GFX908
4 // RUN: not llvm-mc -arch=amdgcn -mcpu=gfx908 %s 2>&1 | FileCheck %s --check-prefix=GFX906-GFX908
5 // RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1013 %s 2>&1 | FileCheck %s --check-prefix=GFX1013
7 //
8 // Test unsupported GPUs.
9 //
11 // CHECK: error: instruction not supported on this GPU
12 v_fmac_f32 v0, v1, v2
13 // CHECK: error: instruction not supported on this GPU
14 v_xnor_b32 v0, v1, v2
15 // CHECK: error: instruction not supported on this GPU
16 // GFX1013: error: instruction not supported on this GPU
17 v_dot2_f32_f16 v0, v1, v2, v3
18 // CHECK: error: instruction not supported on this GPU
19 // GFX1013: error: instruction not supported on this GPU
20 v_dot2_i32_i16 v0, v1, v2, v3
21 // CHECK: error: instruction not supported on this GPU
22 // GFX1013: error: instruction not supported on this GPU
23 v_dot2_u32_u16 v0, v1, v2, v3
24 // CHECK: error: instruction not supported on this GPU
25 // GFX1013: error: instruction not supported on this GPU
26 v_dot4_i32_i8 v0, v1, v2, v3
27 // CHECK: error: instruction not supported on this GPU
28 // GFX1013: error: instruction not supported on this GPU
29 v_dot4_u32_u8 v0, v1, v2, v3
30 // CHECK: error: instruction not supported on this GPU
31 // GFX1013: error: instruction not supported on this GPU
32 v_dot8_i32_i4 v0, v1, v2, v3
33 // CHECK: error: instruction not supported on this GPU
34 // GFX1013: error: instruction not supported on this GPU
35 v_dot8_u32_u4 v0, v1, v2, v3
38 // Test invalid operands.
41 // GFX906-GFX908: error: invalid operand for instruction
42 v_dot2_f32_f16 v0, v1, v2, v3 op_sel
43 // GFX906-GFX908: error: expected a left square bracket
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:[
47 // GFX906-GFX908: error: expected a left square bracket
48 v_dot2_f32_f16 v0, v1, v2, v3 op_sel:]
49 // GFX906-GFX908: error: unknown token in expression
50 v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[]
51 // GFX906-GFX908: error: unknown token in expression
52 v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[,]
53 // GFX906-GFX908: error: unknown token in expression
54 v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[,0]
55 // GFX906-GFX908: error: invalid op_sel value.
56 v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[0,2]
57 // GFX906-GFX908: error: invalid op_sel value.
58 v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[2,0]
59 // GFX906-GFX908: error: invalid op_sel value.
60 v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[2,2]
61 // GFX906-GFX908: error: invalid op_sel value.
62 v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[0,-1]
63 // GFX906-GFX908: error: invalid op_sel value.
64 v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[-1,0]
65 // GFX906-GFX908: error: invalid op_sel value.
66 v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[-1,-1]
67 // GFX906-GFX908: error: expected a closing square bracket
68 v_dot2_f32_f16 v0, v1, v2, v3 op_sel:[0,0,0,0,0]
69 // GFX906-GFX908: error: invalid operand for instruction
70 v_dot2_f32_f16 v0, v1, v2, v3 op_sel_hi
71 // GFX906-GFX908: error: expected a left square bracket
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:[
75 // GFX906-GFX908: error: expected a left square bracket
76 v_dot2_f32_f16 v0, v1, v2, v3 op_sel_hi:]
77 // GFX906-GFX908: error: unknown token in expression
78 v_dot2_f32_f16 v0, v1, v2, v3 op_sel_hi:[]
79 // GFX906-GFX908: error: unknown token in expression
80 v_dot2_f32_f16 v0, v1, v2, v3 op_sel_hi:[,]
81 // GFX906-GFX908: error: unknown token in expression
82 v_dot2_f32_f16 v0, v1, v2, v3 op_sel_hi:[,0]
83 // GFX906-GFX908: error: invalid op_sel_hi value.
84 v_dot2_f32_f16 v0, v1, v2, v3 op_sel_hi:[0,2]
85 // GFX906-GFX908: error: invalid op_sel_hi value.
86 v_dot2_f32_f16 v0, v1, v2, v3 op_sel_hi:[2,0]
87 // GFX906-GFX908: error: invalid op_sel_hi value.
88 v_dot2_f32_f16 v0, v1, v2, v3 op_sel_hi:[2,2]
89 // GFX906-GFX908: error: invalid op_sel_hi value.
90 v_dot2_f32_f16 v0, v1, v2, v3 op_sel_hi:[0,-1]
91 // GFX906-GFX908: error: invalid op_sel_hi value.
92 v_dot2_f32_f16 v0, v1, v2, v3 op_sel_hi:[-1,0]
93 // GFX906-GFX908: error: invalid op_sel_hi value.
94 v_dot2_f32_f16 v0, v1, v2, v3 op_sel_hi:[-1,-1]
95 // GFX906-GFX908: error: expected a closing square bracket
96 v_dot2_f32_f16 v0, v1, v2, v3 op_sel_hi:[0,0,0,0,0]
97 // GFX906-GFX908: error: invalid operand for instruction
98 v_dot2_f32_f16 v0, v1, v2, v3 neg_lo
99 // GFX906-GFX908: error: expected a left square bracket
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:[
103 // GFX906-GFX908: error: expected a left square bracket
104 v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:]
105 // GFX906-GFX908: error: unknown token in expression
106 v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[]
107 // GFX906-GFX908: error: unknown token in expression
108 v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[,]
109 // GFX906-GFX908: error: unknown token in expression
110 v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[,0]
111 // GFX906-GFX908: error: invalid neg_lo value.
112 v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,2]
113 // GFX906-GFX908: error: invalid neg_lo value.
114 v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[2,0]
115 // GFX906-GFX908: error: invalid neg_lo value.
116 v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[2,2]
117 // GFX906-GFX908: error: invalid neg_lo value.
118 v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,-1]
119 // GFX906-GFX908: error: invalid neg_lo value.
120 v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[-1,0]
121 // GFX906-GFX908: error: invalid neg_lo value.
122 v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[-1,-1]
123 // GFX906-GFX908: error: expected a closing square bracket
124 v_dot2_f32_f16 v0, v1, v2, v3 neg_lo:[0,0,0,0,0]
125 // GFX906-GFX908: error: invalid operand for instruction
126 v_dot2_f32_f16 v0, v1, v2, v3 neg_hi
127 // GFX906-GFX908: error: expected a left square bracket
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:[
131 // GFX906-GFX908: error: expected a left square bracket
132 v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:]
133 // GFX906-GFX908: error: unknown token in expression
134 v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[]
135 // GFX906-GFX908: error: unknown token in expression
136 v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[,]
137 // GFX906-GFX908: error: unknown token in expression
138 v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[,0]
139 // GFX906-GFX908: error: invalid neg_hi value.
140 v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[0,2]
141 // GFX906-GFX908: error: invalid neg_hi value.
142 v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[2,0]
143 // GFX906-GFX908: error: invalid neg_hi value.
144 v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[2,2]
145 // GFX906-GFX908: error: invalid neg_hi value.
146 v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[0,-1]
147 // GFX906-GFX908: error: invalid neg_hi value.
148 v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[-1,0]
149 // GFX906-GFX908: error: invalid neg_hi value.
150 v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[-1,-1]
151 // GFX906-GFX908: error: expected a closing square bracket
152 v_dot2_f32_f16 v0, v1, v2, v3 neg_hi:[0,0,0,0,0]
153 // GFX906-GFX908: error: invalid operand for instruction
154 v_dot2_i32_i16 v0, v1, v2, v3 op_sel
155 // GFX906-GFX908: error: expected a left square bracket
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:[
159 // GFX906-GFX908: error: expected a left square bracket
160 v_dot2_i32_i16 v0, v1, v2, v3 op_sel:]
161 // GFX906-GFX908: error: unknown token in expression
162 v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[]
163 // GFX906-GFX908: error: unknown token in expression
164 v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[,]
165 // GFX906-GFX908: error: unknown token in expression
166 v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[,0]
167 // GFX906-GFX908: error: invalid op_sel value.
168 v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[0,2]
169 // GFX906-GFX908: error: invalid op_sel value.
170 v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[2,0]
171 // GFX906-GFX908: error: invalid op_sel value.
172 v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[2,2]
173 // GFX906-GFX908: error: invalid op_sel value.
174 v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[0,-1]
175 // GFX906-GFX908: error: invalid op_sel value.
176 v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[-1,0]
177 // GFX906-GFX908: error: invalid op_sel value.
178 v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[-1,-1]
179 // GFX906-GFX908: error: expected a closing square bracket
180 v_dot2_i32_i16 v0, v1, v2, v3 op_sel:[0,0,0,0,0]
181 // GFX906-GFX908: error: invalid operand for instruction
182 v_dot2_i32_i16 v0, v1, v2, v3 op_sel_hi
183 // GFX906-GFX908: error: expected a left square bracket
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:[
187 // GFX906-GFX908: error: expected a left square bracket
188 v_dot2_i32_i16 v0, v1, v2, v3 op_sel_hi:]
189 // GFX906-GFX908: error: unknown token in expression
190 v_dot2_i32_i16 v0, v1, v2, v3 op_sel_hi:[]
191 // GFX906-GFX908: error: unknown token in expression
192 v_dot2_i32_i16 v0, v1, v2, v3 op_sel_hi:[,]
193 // GFX906-GFX908: error: unknown token in expression
194 v_dot2_i32_i16 v0, v1, v2, v3 op_sel_hi:[,0]
195 // GFX906-GFX908: error: invalid op_sel_hi value.
196 v_dot2_i32_i16 v0, v1, v2, v3 op_sel_hi:[0,2]
197 // GFX906-GFX908: error: invalid op_sel_hi value.
198 v_dot2_i32_i16 v0, v1, v2, v3 op_sel_hi:[2,0]
199 // GFX906-GFX908: error: invalid op_sel_hi value.
200 v_dot2_i32_i16 v0, v1, v2, v3 op_sel_hi:[2,2]
201 // GFX906-GFX908: error: invalid op_sel_hi value.
202 v_dot2_i32_i16 v0, v1, v2, v3 op_sel_hi:[0,-1]
203 // GFX906-GFX908: error: invalid op_sel_hi value.
204 v_dot2_i32_i16 v0, v1, v2, v3 op_sel_hi:[-1,0]
205 // GFX906-GFX908: error: invalid op_sel_hi value.
206 v_dot2_i32_i16 v0, v1, v2, v3 op_sel_hi:[-1,-1]
207 // GFX906-GFX908: error: expected a closing square bracket
208 v_dot2_i32_i16 v0, v1, v2, v3 op_sel_hi:[0,0,0,0,0]
209 // FIXME-GFX906: error: invalid operand for instruction
210 v_dot2_i32_i16 v0, v1, v2, v3 neg_lo:[0,0]
211 // FIXME-GFX906: error: invalid operand for instruction
212 v_dot2_i32_i16 v0, v1, v2, v3 neg_hi:[0,0]
213 // GFX906-GFX908: error: invalid operand for instruction
214 v_dot2_u32_u16 v0, v1, v2, v3 op_sel
215 // GFX906-GFX908: error: expected a left square bracket
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:[
219 // GFX906-GFX908: error: expected a left square bracket
220 v_dot2_u32_u16 v0, v1, v2, v3 op_sel:]
221 // GFX906-GFX908: error: unknown token in expression
222 v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[]
223 // GFX906-GFX908: error: unknown token in expression
224 v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[,]
225 // GFX906-GFX908: error: unknown token in expression
226 v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[,0]
227 // GFX906-GFX908: error: invalid op_sel value.
228 v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[0,2]
229 // GFX906-GFX908: error: invalid op_sel value.
230 v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[2,0]
231 // GFX906-GFX908: error: invalid op_sel value.
232 v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[2,2]
233 // GFX906-GFX908: error: invalid op_sel value.
234 v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[0,-1]
235 // GFX906-GFX908: error: invalid op_sel value.
236 v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[-1,0]
237 // GFX906-GFX908: error: invalid op_sel value.
238 v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[-1,-1]
239 // GFX906-GFX908: error: expected a closing square bracket
240 v_dot2_u32_u16 v0, v1, v2, v3 op_sel:[0,0,0,0,0]
241 // GFX906-GFX908: error: invalid operand for instruction
242 v_dot2_u32_u16 v0, v1, v2, v3 op_sel_hi
243 // GFX906-GFX908: error: expected a left square bracket
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:[
247 // GFX906-GFX908: error: expected a left square bracket
248 v_dot2_u32_u16 v0, v1, v2, v3 op_sel_hi:]
249 // GFX906-GFX908: error: unknown token in expression
250 v_dot2_u32_u16 v0, v1, v2, v3 op_sel_hi:[]
251 // GFX906-GFX908: error: unknown token in expression
252 v_dot2_u32_u16 v0, v1, v2, v3 op_sel_hi:[,]
253 // GFX906-GFX908: error: unknown token in expression
254 v_dot2_u32_u16 v0, v1, v2, v3 op_sel_hi:[,0]
255 // GFX906-GFX908: error: invalid op_sel_hi value
256 v_dot2_u32_u16 v0, v1, v2, v3 op_sel_hi:[0,2]
257 // GFX906-GFX908: error: invalid op_sel_hi value.
258 v_dot2_u32_u16 v0, v1, v2, v3 op_sel_hi:[2,0]
259 // GFX906-GFX908: error: invalid op_sel_hi value.
260 v_dot2_u32_u16 v0, v1, v2, v3 op_sel_hi:[2,2]
261 // GFX906-GFX908: error: invalid op_sel_hi value.
262 v_dot2_u32_u16 v0, v1, v2, v3 op_sel_hi:[0,-1]
263 // GFX906-GFX908: error: invalid op_sel_hi value.
264 v_dot2_u32_u16 v0, v1, v2, v3 op_sel_hi:[-1,0]
265 // GFX906-GFX908: error: invalid op_sel_hi value.
266 v_dot2_u32_u16 v0, v1, v2, v3 op_sel_hi:[-1,-1]
267 // GFX906-GFX908: error: expected a closing square bracket
268 v_dot2_u32_u16 v0, v1, v2, v3 op_sel_hi:[0,0,0,0,0]
269 // FIXME-GFX906: error: invalid operand for instruction
270 v_dot2_u32_u16 v0, v1, v2, v3 neg_lo:[0,0]
271 // FIXME-GFX906: error: invalid operand for instruction
272 v_dot2_u32_u16 v0, v1, v2, v3 neg_hi:[0,0]
275 // Test regular modifiers.
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, v1, v2, |v3|
284 // GFX906-GFX908: error: not a valid operand
285 v_dot2_f32_f16 v0, |v1|, |v2|, v3
286 // GFX906-GFX908: error: not a valid operand
287 v_dot2_f32_f16 v0, |v1|, v2, |v3|
288 // GFX906-GFX908: error: not a valid operand
289 v_dot2_f32_f16 v0, |v1|, |v2|, |v3|
290 // GFX906-GFX908: error: not a valid operand
291 v_dot2_f32_f16 v0, abs(v1), v2, v3
292 // GFX906-GFX908: error: not a valid operand
293 v_dot2_f32_f16 v0, v1, abs(v2), v3
294 // GFX906-GFX908: error: not a valid operand
295 v_dot2_f32_f16 v0, v1, v2, abs(v3)
296 // GFX906-GFX908: error: not a valid operand
297 v_dot2_f32_f16 v0, abs(v1), abs(v2), v3
298 // GFX906-GFX908: error: not a valid operand
299 v_dot2_f32_f16 v0, abs(v1), v2, abs(v3)
300 // GFX906-GFX908: error: not a valid operand
301 v_dot2_f32_f16 v0, abs(v1), abs(v2), abs(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_f32_f16 v0, v1, v2, -v3
308 // GFX906-GFX908: error: not a valid operand
309 v_dot2_f32_f16 v0, -v1, -v2, v3
310 // GFX906-GFX908: error: not a valid operand
311 v_dot2_f32_f16 v0, -v1, v2, -v3
312 // GFX906-GFX908: error: not a valid operand
313 v_dot2_f32_f16 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, v1, v2, |v3|
320 // GFX906-GFX908: error: not a valid operand
321 v_dot2_i32_i16 v0, |v1|, |v2|, v3
322 // GFX906-GFX908: error: not a valid operand
323 v_dot2_i32_i16 v0, |v1|, v2, |v3|
324 // GFX906-GFX908: error: not a valid operand
325 v_dot2_i32_i16 v0, |v1|, |v2|, |v3|
326 // GFX906-GFX908: error: not a valid operand
327 v_dot2_i32_i16 v0, abs(v1), v2, v3
328 // GFX906-GFX908: error: not a valid operand
329 v_dot2_i32_i16 v0, v1, abs(v2), v3
330 // GFX906-GFX908: error: not a valid operand
331 v_dot2_i32_i16 v0, v1, v2, abs(v3)
332 // GFX906-GFX908: error: not a valid operand
333 v_dot2_i32_i16 v0, abs(v1), abs(v2), v3
334 // GFX906-GFX908: error: not a valid operand
335 v_dot2_i32_i16 v0, abs(v1), v2, abs(v3)
336 // GFX906-GFX908: error: not a valid operand
337 v_dot2_i32_i16 v0, abs(v1), abs(v2), abs(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_i32_i16 v0, v1, v2, -v3
344 // GFX906-GFX908: error: not a valid operand
345 v_dot2_i32_i16 v0, -v1, -v2, v3
346 // GFX906-GFX908: error: not a valid operand
347 v_dot2_i32_i16 v0, -v1, v2, -v3
348 // GFX906-GFX908: error: not a valid operand
349 v_dot2_i32_i16 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, v1, v2, |v3|
356 // GFX906-GFX908: error: not a valid operand
357 v_dot2_u32_u16 v0, |v1|, |v2|, v3
358 // GFX906-GFX908: error: not a valid operand
359 v_dot2_u32_u16 v0, |v1|, v2, |v3|
360 // GFX906-GFX908: error: not a valid operand
361 v_dot2_u32_u16 v0, |v1|, |v2|, |v3|
362 // GFX906-GFX908: error: not a valid operand
363 v_dot2_u32_u16 v0, abs(v1), v2, v3
364 // GFX906-GFX908: error: not a valid operand
365 v_dot2_u32_u16 v0, v1, abs(v2), v3
366 // GFX906-GFX908: error: not a valid operand
367 v_dot2_u32_u16 v0, v1, v2, abs(v3)
368 // GFX906-GFX908: error: not a valid operand
369 v_dot2_u32_u16 v0, abs(v1), abs(v2), v3
370 // GFX906-GFX908: error: not a valid operand
371 v_dot2_u32_u16 v0, abs(v1), v2, abs(v3)
372 // GFX906-GFX908: error: not a valid operand
373 v_dot2_u32_u16 v0, abs(v1), abs(v2), abs(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
378 // GFX906-GFX908: error: not a valid operand
379 v_dot2_u32_u16 v0, v1, v2, -v3
380 // GFX906-GFX908: error: not a valid operand
381 v_dot2_u32_u16 v0, -v1, -v2, v3
382 // GFX906-GFX908: error: not a valid operand
383 v_dot2_u32_u16 v0, -v1, v2, -v3
384 // GFX906-GFX908: error: not a valid operand
385 v_dot2_u32_u16 v0, -v1, -v2, -v3
388 // Test constant bus restrictions.
391 // GFX906-GFX908: error: invalid operand (violates constant bus restrictions)
392 v_dot2_f32_f16 v255, s1, s2, s3
393 // GFX906-GFX908: error: invalid operand (violates constant bus restrictions)
394 v_dot2_i32_i16 v255, s1, s2, s3
395 // GFX906-GFX908: error: invalid operand (violates constant bus restrictions)
396 v_dot2_u32_u16 v255, s1, s2, s3