1# RUN: llvm-mc -arch=hexagon -mcpu=hexagonv62 -filetype=obj -mhvx %s | llvm-objdump --arch=hexagon --mcpu=hexagonv62 --mhvx -d - | FileCheck %s
2
3//   V6_lvsplatb
4//   Vd32.b=vsplat(Rt32)
5     V0.b=vsplat(R0)
6# CHECK: 19c0c040 { v0.b = vsplat(r0) }
7
8//   V6_lvsplath
9//   Vd32.h=vsplat(Rt32)
10     V0.h=vsplat(R0)
11# CHECK: 19c0c020 { v0.h = vsplat(r0) }
12
13//   V6_pred_scalar2v2
14//   Qd4=vsetq2(Rt32)
15     Q0=vsetq2(R0)
16# CHECK: 19a0c04c { q0 = vsetq2(r0) }
17
18//   V6_shuffeqh
19//   Qd4.b=vshuffe(Qs4.h,Qt4.h)
20     Q0.b=vshuffe(Q0.h,Q0.h)
21# CHECK: 1e03c018 { q0.b = vshuffe(q0.h,q0.h) }
22
23//   V6_shuffeqw
24//   Qd4.h=vshuffe(Qs4.w,Qt4.w)
25     Q0.h=vshuffe(Q0.w,Q0.w)
26# CHECK: 1e03c01c { q0.h = vshuffe(q0.w,q0.w) }
27
28//   V6_vaddbsat
29//   Vd32.b=vadd(Vu32.b,Vv32.b):sat
30     V0.b=vadd(V0.b,V0.b):sat
31# CHECK: 1f00c000 { v0.b = vadd(v0.b,v0.b):sat }
32
33//   V6_vaddbsat_dv
34//   Vdd32.b=vadd(Vuu32.b,Vvv32.b):sat
35     V1:0.b=vadd(V1:0.b,V1:0.b):sat
36# CHECK: 1ea0c000 { v1:0.b = vadd(v1:0.b,v1:0.b):sat }
37
38//   V6_vaddcarry
39//   Vd32.w=vadd(Vu32.w,Vv32.w,Qx4):carry
40     V0.w=vadd(V0.w,V0.w,Q0):carry
41# CHECK: 1ca0e000 { v0.w = vadd(v0.w,v0.w,q0):carry }
42
43//   V6_vaddclbh
44//   $Vd.h=vadd(vclb($Vu.h),$Vv.h)
45     V0.h=vadd(vclb(V0.h),V0.h)
46# CHECK: 1f00e000 { v0.h = vadd(vclb(v0.h),v0.h) }
47
48//   V6_vaddclbw
49//   $Vd.w=vadd(vclb($Vu.w),$Vv.w)
50     V0.w=vadd(vclb(V0.w),V0.w)
51# CHECK: 1f00e020 { v0.w = vadd(vclb(v0.w),v0.w) }
52
53//   V6_vaddhw_acc
54//   Vxx32.w+=vadd(Vu32.h,Vv32.h)
55     V1:0.w+=vadd(V0.h,V0.h)
56# CHECK: 1c20e040 { v1:0.w += vadd(v0.h,v0.h) }
57
58//   V6_vaddubh_acc
59//   Vxx32.h+=vadd(Vu32.ub,Vv32.ub)
60     V1:0.h+=vadd(V0.ub,V0.ub)
61# CHECK: 1c40e0a0 { v1:0.h += vadd(v0.ub,v0.ub) }
62
63//   V6_vaddububb_sat
64//   Vd32.ub=vadd(Vu32.ub,Vv32.b):sat
65     V0.ub=vadd(V0.ub,V0.b):sat
66# CHECK: 1ea0c080 { v0.ub = vadd(v0.ub,v0.b):sat }
67
68//   V6_vadduhw_acc
69//   Vxx32.w+=vadd(Vu32.uh,Vv32.uh)
70     V1:0.w+=vadd(V0.uh,V0.uh)
71# CHECK: 1c40e080 { v1:0.w += vadd(v0.uh,v0.uh) }
72
73//   V6_vadduwsat
74//   Vd32.uw=vadd(Vu32.uw,Vv32.uw):sat
75     V0.uw=vadd(V0.uw,V0.uw):sat
76# CHECK: 1f60c020 { v0.uw = vadd(v0.uw,v0.uw):sat }
77
78//   V6_vadduwsat_dv
79//   Vdd32.uw=vadd(Vuu32.uw,Vvv32.uw):sat
80     V1:0.uw=vadd(V1:0.uw,V1:0.uw):sat
81# CHECK: 1ea0c040 { v1:0.uw = vadd(v1:0.uw,v1:0.uw):sat }
82
83//   V6_vandnqrt
84//   Vd32=vand(!Qu4,Rt32)
85     V0=vand(!Q0,R0)
86# CHECK: 19a0c4a0 { v0 = vand(!q0,r0) }
87
88//   V6_vandnqrt_acc
89//   Vx32|=vand(!Qu4,Rt32)
90     V0|=vand(!Q0,R0)
91# CHECK: 1960e460 { v0 |= vand(!q0,r0) }
92
93//   V6_vandvnqv
94//   Vd32=vand(!Qv4,Vu32)
95     V0=vand(!Q0,V0)
96# CHECK: 1e03e020 { v0 = vand(!q0,v0) }
97
98//   V6_vandvqv
99//   Vd32=vand(Qv4,Vu32)
100     V0=vand(Q0,V0)
101# CHECK: 1e03e000 { v0 = vand(q0,v0) }
102
103//   V6_vasrhbsat
104//   Vd32.b=vasr(Vu32.h,Vv32.h,Rt8):sat
105     V0.b=vasr(V0.h,V0.h,R0):sat
106# CHECK: 1800c000 { v0.b = vasr(v0.h,v0.h,r0):sat }
107
108//   V6_vasruwuhrndsat
109//   Vd32.uh=vasr(Vu32.uw,Vv32.uw,Rt8):rnd:sat
110     V0.uh=vasr(V0.uw,V0.uw,R0):rnd:sat
111# CHECK: 1800c020 { v0.uh = vasr(v0.uw,v0.uw,r0):rnd:sat }
112
113//   V6_vasrwuhrndsat
114//   Vd32.uh=vasr(Vu32.w,Vv32.w,Rt8):rnd:sat
115     V0.uh=vasr(V0.w,V0.w,R0):rnd:sat
116# CHECK: 1800c040 { v0.uh = vasr(v0.w,v0.w,r0):rnd:sat }
117
118//   V6_vL32b_cur_npred_ai
119//   if (!Pv4) Vd32.cur=vmem(Rt32+#s4)
120     {
121     v1=v0
122     if (!P0) V0.cur=vmem(R0+#04)
123     }
124# CHECK: 1e0360e1 { v1 = v0
125# CHECK: 2880c4a0   if (!p0) v0.cur = vmem(r0+#4) }
126
127//   V6_vL32b_cur_npred_pi
128//   if (!Pv4) Vd32.cur=vmem(Rx32++#s3)
129     {
130     v1=v0
131     if (!P0) V0.cur=vmem(R0++#03)
132     }
133# CHECK: 1e0360e1 { v1 = v0
134# CHECK: 2980c3a0   if (!p0) v0.cur = vmem(r0++#3) }
135
136//   V6_vL32b_cur_npred_ppu
137//   if (!Pv4) Vd32.cur=vmem(Rx32++Mu2)
138     {
139     v1=v0
140     if (!P0) V0.cur=vmem(R0++M0)
141     }
142# CHECK: 1e0360e1 { v1 = v0
143# CHECK: 2b80c0a0   if (!p0) v0.cur = vmem(r0++m0) }
144
145//   V6_vL32b_cur_pred_ai
146//   if (Pv4) Vd32.cur=vmem(Rt32+#s4)
147     {
148     v1=v0
149     if (P0) V0.cur=vmem(R0+#04)
150     }
151# CHECK: 1e0360e1 { v1 = v0
152# CHECK: 2880c480   if (p0) v0.cur = vmem(r0+#4) }
153
154//   V6_vL32b_cur_pred_pi
155//   if (Pv4) Vd32.cur=vmem(Rx32++#s3)
156     {
157     v1=v0
158     if (P0) V0.cur=vmem(R0++#03)
159     }
160# CHECK: 1e0360e1 { v1 = v0
161# CHECK: 2980c380   if (p0) v0.cur = vmem(r0++#3) }
162
163//   V6_vL32b_cur_pred_ppu
164//   if (Pv4) Vd32.cur=vmem(Rx32++Mu2)
165     {
166     v1=v0
167     if (P0) V0.cur=vmem(R0++M0)
168     }
169# CHECK: 1e0360e1 { v1 = v0
170# CHECK: 2b80c080   if (p0) v0.cur = vmem(r0++m0) }
171
172//   V6_vL32b_npred_ai
173//   if (!Pv4) Vd32=vmem(Rt32+#s4)
174     if (!P0) V0=vmem(R0+#04)
175# CHECK: 2880c460 { if (!p0) v0 = vmem(r0+#4) }
176
177//   V6_vL32b_npred_pi
178//   if (!Pv4) Vd32=vmem(Rx32++#s3)
179     if (!P0) V0=vmem(R0++#03)
180# CHECK: 2980c360 { if (!p0) v0 = vmem(r0++#3) }
181
182//   V6_vL32b_npred_ppu
183//   if (!Pv4) Vd32=vmem(Rx32++Mu2)
184     if (!P0) V0=vmem(R0++M0)
185# CHECK: 2b80c060 { if (!p0) v0 = vmem(r0++m0) }
186
187//   V6_vL32b_nt_cur_npred_ai
188//   if (!Pv4) Vd32.cur=vmem(Rt32+#s4):nt
189     {
190     v1=v0
191     if (!P0) V0.cur=vmem(R0+#04):nt
192     }
193# CHECK: 1e0360e1 { v1 = v0
194# CHECK: 28c0c4a0   if (!p0) v0.cur = vmem(r0+#4):nt }
195
196//   V6_vL32b_nt_cur_npred_pi
197//   if (!Pv4) Vd32.cur=vmem(Rx32++#s3):nt
198     {
199     v1=v0
200     if (!P0) V0.cur=vmem(R0++#03):nt
201     }
202# CHECK: 1e0360e1 { v1 = v0
203# CHECK: 29c0c3a0   if (!p0) v0.cur = vmem(r0++#3):nt }
204
205//   V6_vL32b_nt_cur_npred_ppu
206//   if (!Pv4) Vd32.cur=vmem(Rx32++Mu2):nt
207     {
208     v1=v0
209     if (!P0) V0.cur=vmem(R0++M0):nt
210     }
211# CHECK: 1e0360e1 { v1 = v0
212# CHECK: 2bc0c0a0   if (!p0) v0.cur = vmem(r0++m0):nt }
213
214//   V6_vL32b_nt_cur_pred_ai
215//   if (Pv4) Vd32.cur=vmem(Rt32+#s4):nt
216     {
217     v1=v0
218     if (P0) V0.cur=vmem(R0+#04):nt
219     }
220# CHECK: 1e0360e1 { v1 = v0
221# CHECK: 28c0c480   if (p0) v0.cur = vmem(r0+#4):nt }
222
223//   V6_vL32b_nt_cur_pred_pi
224//   if (Pv4) Vd32.cur=vmem(Rx32++#s3):nt
225     {
226     v1=v0
227     if (P0) V0.cur=vmem(R0++#03):nt
228     }
229# CHECK: 1e0360e1 { v1 = v0
230# CHECK: 29c0c380   if (p0) v0.cur = vmem(r0++#3):nt }
231
232//   V6_vL32b_nt_cur_pred_ppu
233//   if (Pv4) Vd32.cur=vmem(Rx32++Mu2):nt
234     {
235     v1=v0
236     if (P0) V0.cur=vmem(R0++M0):nt
237     }
238# CHECK: 1e0360e1 { v1 = v0
239# CHECK: 2bc0c080   if (p0) v0.cur = vmem(r0++m0):nt }
240
241//   V6_vL32b_nt_npred_ai
242//   if (!Pv4) Vd32=vmem(Rt32+#s4):nt
243     if (!P0) V0=vmem(R0+#04):nt
244# CHECK: 28c0c460 { if (!p0) v0 = vmem(r0+#4):nt }
245
246//   V6_vL32b_nt_npred_pi
247//   if (!Pv4) Vd32=vmem(Rx32++#s3):nt
248     if (!P0) V0=vmem(R0++#03):nt
249# CHECK: 29c0c360 { if (!p0) v0 = vmem(r0++#3):nt }
250
251//   V6_vL32b_nt_npred_ppu
252//   if (!Pv4) Vd32=vmem(Rx32++Mu2):nt
253     if (!P0) V0=vmem(R0++M0):nt
254# CHECK: 2bc0c060 { if (!p0) v0 = vmem(r0++m0):nt }
255
256//   V6_vL32b_nt_pred_ai
257//   if (Pv4) Vd32=vmem(Rt32+#s4):nt
258     if (P0) V0=vmem(R0+#04):nt
259# CHECK: 28c0c440 { if (p0) v0 = vmem(r0+#4):nt }
260
261//   V6_vL32b_nt_pred_pi
262//   if (Pv4) Vd32=vmem(Rx32++#s3):nt
263     if (P0) V0=vmem(R0++#03):nt
264# CHECK: 29c0c340 { if (p0) v0 = vmem(r0++#3):nt }
265
266//   V6_vL32b_nt_pred_ppu
267//   if (Pv4) Vd32=vmem(Rx32++Mu2):nt
268     if (P0) V0=vmem(R0++M0):nt
269# CHECK: 2bc0c040 { if (p0) v0 = vmem(r0++m0):nt }
270
271//   V6_vL32b_nt_tmp_npred_ai
272//   if (!Pv4) Vd32.tmp=vmem(Rt32+#s4):nt
273     {
274     v1=v0
275     if (!P0) V0.tmp=vmem(R0+#04):nt
276     }
277# CHECK: 1e0360e1 { v1 = v0
278# CHECK: 28c0c4e0   if (!p0) v0.tmp = vmem(r0+#4):nt }
279
280//   V6_vL32b_nt_tmp_npred_pi
281//   if (!Pv4) Vd32.tmp=vmem(Rx32++#s3):nt
282     {
283     v1=v0
284     if (!P0) V0.tmp=vmem(R0++#03):nt
285     }
286# CHECK: 1e0360e1 { v1 = v0
287# CHECK: 29c0c3e0   if (!p0) v0.tmp = vmem(r0++#3):nt }
288
289//   V6_vL32b_nt_tmp_npred_ppu
290//   if (!Pv4) Vd32.tmp=vmem(Rx32++Mu2):nt
291     {
292     v1=v0
293     if (!P0) V0.tmp=vmem(R0++M0):nt
294     }
295# CHECK: 1e0360e1 { v1 = v0
296# CHECK: 2bc0c0e0   if (!p0) v0.tmp = vmem(r0++m0):nt }
297
298//   V6_vL32b_nt_tmp_pred_ai
299//   if (Pv4) Vd32.tmp=vmem(Rt32+#s4):nt
300     {
301     v1=v0
302     if (P0) V0.tmp=vmem(R0+#04):nt
303     }
304# CHECK: 1e0360e1 { v1 = v0
305# CHECK: 28c0c4c0   if (p0) v0.tmp = vmem(r0+#4):nt }
306
307//   V6_vL32b_nt_tmp_pred_pi
308//   if (Pv4) Vd32.tmp=vmem(Rx32++#s3):nt
309     {
310     v1=v0
311     if (P0) V0.tmp=vmem(R0++#03):nt
312     }
313# CHECK: 1e0360e1 { v1 = v0
314# CHECK: 29c0c3c0   if (p0) v0.tmp = vmem(r0++#3):nt }
315
316//   V6_vL32b_nt_tmp_pred_ppu
317//   if (Pv4) Vd32.tmp=vmem(Rx32++Mu2):nt
318     {
319     v1=v0
320     if (P0) V0.tmp=vmem(R0++M0):nt
321     }
322# CHECK: 1e0360e1 { v1 = v0
323# CHECK: 2bc0c0c0   if (p0) v0.tmp = vmem(r0++m0):nt }
324
325//   V6_vL32b_pred_ai
326//   if (Pv4) Vd32=vmem(Rt32+#s4)
327     if (P0) V0=vmem(R0+#04)
328# CHECK: 2880c440 { if (p0) v0 = vmem(r0+#4) }
329
330//   V6_vL32b_pred_pi
331//   if (Pv4) Vd32=vmem(Rx32++#s3)
332     if (P0) V0=vmem(R0++#03)
333# CHECK: 2980c340 { if (p0) v0 = vmem(r0++#3) }
334
335//   V6_vL32b_pred_ppu
336//   if (Pv4) Vd32=vmem(Rx32++Mu2)
337     if (P0) V0=vmem(R0++M0)
338# CHECK: 2b80c040 { if (p0) v0 = vmem(r0++m0) }
339
340//   V6_vL32b_tmp_npred_ai
341//   if (!Pv4) Vd32.tmp=vmem(Rt32+#s4)
342     {
343     v1=v0
344     if (!P0) V0.tmp=vmem(R0+#04)
345     }
346# CHECK: 1e0360e1 { v1 = v0
347# CHECK: 2880c4e0   if (!p0) v0.tmp = vmem(r0+#4) }
348
349//   V6_vL32b_tmp_npred_pi
350//   if (!Pv4) Vd32.tmp=vmem(Rx32++#s3)
351     {
352     v1=v0
353     if (!P0) V0.tmp=vmem(R0++#03)
354     }
355# CHECK: 1e0360e1 { v1 = v0
356# CHECK: 2980c3e0   if (!p0) v0.tmp = vmem(r0++#3) }
357
358//   V6_vL32b_tmp_npred_ppu
359//   if (!Pv4) Vd32.tmp=vmem(Rx32++Mu2)
360     {
361     v1=v0
362     if (!P0) V0.tmp=vmem(R0++M0)
363     }
364# CHECK: 1e0360e1 { v1 = v0
365# CHECK: 2b80c0e0   if (!p0) v0.tmp = vmem(r0++m0) }
366
367//   V6_vL32b_tmp_pred_ai
368//   if (Pv4) Vd32.tmp=vmem(Rt32+#s4)
369     {
370     v1=v0
371     if (P0) V0.tmp=vmem(R0+#04)
372     }
373# CHECK: 1e0360e1 { v1 = v0
374# CHECK: 2880c4c0   if (p0) v0.tmp = vmem(r0+#4) }
375
376//   V6_vL32b_tmp_pred_pi
377//   if (Pv4) Vd32.tmp=vmem(Rx32++#s3)
378     {
379     v1=v0
380     if (P0) V0.tmp=vmem(R0++#03)
381     }
382# CHECK: 1e0360e1 { v1 = v0
383# CHECK: 2980c3c0   if (p0) v0.tmp = vmem(r0++#3) }
384
385//   V6_vL32b_tmp_pred_ppu
386//   if (Pv4) Vd32.tmp=vmem(Rx32++Mu2)
387     {
388     v1=v0
389     if (P0) V0.tmp=vmem(R0++M0)
390     }
391# CHECK: 1e0360e1 { v1 = v0
392# CHECK: 2b80c0c0   if (p0) v0.tmp = vmem(r0++m0) }
393
394//   V6_vlsrb
395//   Vd32.ub=vlsr(Vu32.ub,Rt32)
396     V0.ub=vlsr(V0.ub,R0)
397# CHECK: 1980c060 { v0.ub = vlsr(v0.ub,r0) }
398
399//   V6_vlutvvbi
400//   Vd32.b=vlut32(Vu32.b,Vv32.b,#u3)
401     V0.b=vlut32(V0.b,V0.b,#03)
402# CHECK: 1e20c060 { v0.b = vlut32(v0.b,v0.b,#3) }
403
404//   V6_vlutvvb_nm
405//   Vd32.b=vlut32(Vu32.b,Vv32.b,Rt8):nomatch
406     V0.b=vlut32(V0.b,V0.b,R0):nomatch
407# CHECK: 1800c060 { v0.b = vlut32(v0.b,v0.b,r0):nomatch }
408
409//   V6_vlutvvb_oracci
410//   Vx32.b|=vlut32(Vu32.b,Vv32.b,#u3)
411     V0.b|=vlut32(V0.b,V0.b,#03)
412# CHECK: 1cc0e060 { v0.b |= vlut32(v0.b,v0.b,#3) }
413
414//   V6_vlutvwhi
415//   Vdd32.h=vlut16(Vu32.b,Vv32.h,#u3)
416     V1:0.h=vlut16(V0.b,V0.h,#03)
417# CHECK: 1e60c060 { v1:0.h = vlut16(v0.b,v0.h,#3) }
418
419//   V6_vlutvwh_nm
420//   Vdd32.h=vlut16(Vu32.b,Vv32.h,Rt8):nomatch
421     V1:0.h=vlut16(V0.b,V0.h,R0):nomatch
422# CHECK: 1800c080 { v1:0.h = vlut16(v0.b,v0.h,r0):nomatch }
423
424//   V6_vlutvwh_oracci
425//   Vxx32.h|=vlut16(Vu32.b,Vv32.h,#u3)
426     V1:0.h|=vlut16(V0.b,V0.h,#03)
427# CHECK: 1ce0e060 { v1:0.h |= vlut16(v0.b,v0.h,#3) }
428
429//   V6_vmaxb
430//   Vd32.b=vmax(Vu32.b,Vv32.b)
431     V0.b=vmax(V0.b,V0.b)
432# CHECK: 1f20c0a0 { v0.b = vmax(v0.b,v0.b) }
433
434//   V6_vminb
435//   Vd32.b=vmin(Vu32.b,Vv32.b)
436     V0.b=vmin(V0.b,V0.b)
437# CHECK: 1f20c080 { v0.b = vmin(v0.b,v0.b) }
438
439//   V6_vmpauhb
440//   Vdd32.w=vmpa(Vuu32.uh,Rt32.b)
441     V1:0.w=vmpa(V1:0.uh,R0.b)
442# CHECK: 1980c0a0 { v1:0.w = vmpa(v1:0.uh,r0.b) }
443
444//   V6_vmpauhb_acc
445//   Vxx32.w+=vmpa(Vuu32.uh,Rt32.b)
446     V1:0.w+=vmpa(V1:0.uh,R0.b)
447# CHECK: 1980e040 { v1:0.w += vmpa(v1:0.uh,r0.b) }
448
449//   V6_vmpyewuh_64
450//   Vdd32=vmpye(Vu32.w,Vv32.uh)
451     V1:0=vmpye(V0.w,V0.uh)
452# CHECK: 1ea0c0c0 { v1:0 = vmpye(v0.w,v0.uh) }
453
454//   V6_vmpyiwub
455//   Vd32.w=vmpyi(Vu32.w,Rt32.ub)
456     V0.w=vmpyi(V0.w,R0.ub)
457# CHECK: 1980c0c0 { v0.w = vmpyi(v0.w,r0.ub) }
458
459//   V6_vmpyiwub_acc
460//   Vx32.w+=vmpyi(Vu32.w,Rt32.ub)
461     V0.w+=vmpyi(V0.w,R0.ub)
462# CHECK: 1980e020 { v0.w += vmpyi(v0.w,r0.ub) }
463
464//   V6_vmpyowh_64_acc
465//   Vxx32+=vmpyo(Vu32.w,Vv32.h)
466     V1:0+=vmpyo(V0.w,V0.h)
467# CHECK: 1c20e060 { v1:0 += vmpyo(v0.w,v0.h) }
468
469//   V6_vrounduhub
470//   Vd32.ub=vround(Vu32.uh,Vv32.uh):sat
471     V0.ub=vround(V0.uh,V0.uh):sat
472# CHECK: 1fe0c060 { v0.ub = vround(v0.uh,v0.uh):sat }
473
474//   V6_vrounduwuh
475//   Vd32.uh=vround(Vu32.uw,Vv32.uw):sat
476     V0.uh=vround(V0.uw,V0.uw):sat
477# CHECK: 1fe0c080 { v0.uh = vround(v0.uw,v0.uw):sat }
478
479//   V6_vsatuwuh
480//   Vd32.uh=vsat(Vu32.uw,Vv32.uw)
481     V0.uh=vsat(V0.uw,V0.uw)
482# CHECK: 1f20c0c0 { v0.uh = vsat(v0.uw,v0.uw) }
483
484//   V6_vsubbsat
485//   Vd32.b=vsub(Vu32.b,Vv32.b):sat
486     V0.b=vsub(V0.b,V0.b):sat
487# CHECK: 1f20c040 { v0.b = vsub(v0.b,v0.b):sat }
488
489//   V6_vsubbsat_dv
490//   Vdd32.b=vsub(Vuu32.b,Vvv32.b):sat
491     V1:0.b=vsub(V1:0.b,V1:0.b):sat
492# CHECK: 1ea0c020 { v1:0.b = vsub(v1:0.b,v1:0.b):sat }
493
494//   V6_vsubcarry
495//   Vd32.w=vsub(Vu32.w,Vv32.w,Qx4):carry
496     V0.w=vsub(V0.w,V0.w,Q0):carry
497# CHECK: 1ca0e080 { v0.w = vsub(v0.w,v0.w,q0):carry }
498
499//   V6_vsubububb_sat
500//   Vd32.ub=vsub(Vu32.ub,Vv32.b):sat
501     V0.ub=vsub(V0.ub,V0.b):sat
502# CHECK: 1ea0c0a0 { v0.ub = vsub(v0.ub,v0.b):sat }
503
504//   V6_vsubuwsat
505//   Vd32.uw=vsub(Vu32.uw,Vv32.uw):sat
506     V0.uw=vsub(V0.uw,V0.uw):sat
507# CHECK: 1fc0c080 { v0.uw = vsub(v0.uw,v0.uw):sat }
508
509//   V6_vsubuwsat_dv
510//   Vdd32.uw=vsub(Vuu32.uw,Vvv32.uw):sat
511     V1:0.uw=vsub(V1:0.uw,V1:0.uw):sat
512# CHECK: 1ea0c060 { v1:0.uw = vsub(v1:0.uw,v1:0.uw):sat }
513
514//   V6_vwhist128
515//   vwhist128
516     vwhist128
517# CHECK: 1e00e480 { vwhist128 }
518
519//   V6_vwhist128m
520//   vwhist128(#u1)
521     vwhist128(#01)
522# CHECK: 1e00e780 { vwhist128(#1) }
523
524//   V6_vwhist128q
525//   vwhist128(Qv4)
526     vwhist128(Q0)
527# CHECK: 1e02e480 { vwhist128(q0) }
528
529//   V6_vwhist128qm
530//   vwhist128(Qv4,#u1)
531     vwhist128(Q0,#01)
532# CHECK: 1e02e780 { vwhist128(q0,#1) }
533
534//   V6_vwhist256
535//   vwhist256
536     vwhist256
537# CHECK: 1e00e280 { vwhist256 }
538
539//   V6_vwhist256q
540//   vwhist256(Qv4)
541     vwhist256(Q0)
542# CHECK: 1e02e280 { vwhist256(q0) }
543
544//   V6_vwhist256q_sat
545//   vwhist256(Qv4):sat
546     vwhist256(Q0):sat
547# CHECK: 1e02e380 { vwhist256(q0):sat }
548
549//   V6_vwhist256_sat
550//   vwhist256:sat
551     vwhist256:sat
552# CHECK: 1e00e380 { vwhist256:sat }
553