xref: /llvm-project/clang/test/CodeGen/builtins-hvx64.c (revision dcb3e8083a3229b44e23d5d1c19453f0777f3aa2)
1 // REQUIRES: hexagon-registered-target
2 // RUN: %clang_cc1 -triple hexagon-unknown-elf -target-cpu hexagonv65 -target-feature +hvxv65 -target-feature +hvx-length64b -emit-llvm %s -o - | FileCheck %s
3 
test()4 void test() {
5   int q64 __attribute__((__vector_size__(64)));
6   int v64 __attribute__((__vector_size__(64)));
7   int v128 __attribute__((__vector_size__(128)));
8 
9   // These are special and ugly: they take an HVX vector in place of
10   // the HVX vector predicate.
11   // CHECK: @llvm.hexagon.V6.vmaskedstorenq
12   __builtin_HEXAGON_V6_vmaskedstorenq(q64, 0, v64);
13   // CHECK: @llvm.hexagon.V6.vmaskedstorentnq
14   __builtin_HEXAGON_V6_vmaskedstorentnq(q64, 0, v64);
15   // CHECK: @llvm.hexagon.V6.vmaskedstorentq
16   __builtin_HEXAGON_V6_vmaskedstorentq(q64, 0, v64);
17   // CHECK: @llvm.hexagon.V6.vmaskedstoreq
18   __builtin_HEXAGON_V6_vmaskedstoreq(q64, 0, v64);
19 
20   // CHECK: @llvm.hexagon.V6.extractw
21   __builtin_HEXAGON_V6_extractw(v64, 0);
22   // CHECK: @llvm.hexagon.V6.hi
23   __builtin_HEXAGON_V6_hi(v128);
24   // CHECK: @llvm.hexagon.V6.lo
25   __builtin_HEXAGON_V6_lo(v128);
26   // CHECK: @llvm.hexagon.V6.lvsplatb
27   __builtin_HEXAGON_V6_lvsplatb(0);
28   // CHECK: @llvm.hexagon.V6.lvsplath
29   __builtin_HEXAGON_V6_lvsplath(0);
30   // CHECK: @llvm.hexagon.V6.lvsplatw
31   __builtin_HEXAGON_V6_lvsplatw(0);
32   // CHECK: @llvm.hexagon.V6.pred.and
33   __builtin_HEXAGON_V6_pred_and(__builtin_HEXAGON_V6_vandvrt(q64, -1), __builtin_HEXAGON_V6_vandvrt(q64, -1));
34   // CHECK: @llvm.hexagon.V6.pred.and.n
35   __builtin_HEXAGON_V6_pred_and_n(__builtin_HEXAGON_V6_vandvrt(q64, -1), __builtin_HEXAGON_V6_vandvrt(q64, -1));
36   // CHECK: @llvm.hexagon.V6.pred.not
37   __builtin_HEXAGON_V6_pred_not(__builtin_HEXAGON_V6_vandvrt(q64, -1));
38   // CHECK: @llvm.hexagon.V6.pred.or
39   __builtin_HEXAGON_V6_pred_or(__builtin_HEXAGON_V6_vandvrt(q64, -1), __builtin_HEXAGON_V6_vandvrt(q64, -1));
40   // CHECK: @llvm.hexagon.V6.pred.or.n
41   __builtin_HEXAGON_V6_pred_or_n(__builtin_HEXAGON_V6_vandvrt(q64, -1), __builtin_HEXAGON_V6_vandvrt(q64, -1));
42   // CHECK: @llvm.hexagon.V6.pred.scalar2
43   __builtin_HEXAGON_V6_pred_scalar2(0);
44   // CHECK: @llvm.hexagon.V6.pred.scalar2v2
45   __builtin_HEXAGON_V6_pred_scalar2v2(0);
46   // CHECK: @llvm.hexagon.V6.pred.xor
47   __builtin_HEXAGON_V6_pred_xor(__builtin_HEXAGON_V6_vandvrt(q64, -1), __builtin_HEXAGON_V6_vandvrt(q64, -1));
48   // CHECK: @llvm.hexagon.V6.shuffeqh
49   __builtin_HEXAGON_V6_shuffeqh(__builtin_HEXAGON_V6_vandvrt(q64, -1), __builtin_HEXAGON_V6_vandvrt(q64, -1));
50   // CHECK: @llvm.hexagon.V6.shuffeqw
51   __builtin_HEXAGON_V6_shuffeqw(__builtin_HEXAGON_V6_vandvrt(q64, -1), __builtin_HEXAGON_V6_vandvrt(q64, -1));
52   // CHECK: @llvm.hexagon.V6.vS32b.nqpred.ai
53   __builtin_HEXAGON_V6_vS32b_nqpred_ai(__builtin_HEXAGON_V6_vandvrt(q64, -1), 0, v64);
54   // CHECK: @llvm.hexagon.V6.vS32b.nt.nqpred.ai
55   __builtin_HEXAGON_V6_vS32b_nt_nqpred_ai(__builtin_HEXAGON_V6_vandvrt(q64, -1), 0, v64);
56   // CHECK: @llvm.hexagon.V6.vS32b.nt.qpred.ai
57   __builtin_HEXAGON_V6_vS32b_nt_qpred_ai(__builtin_HEXAGON_V6_vandvrt(q64, -1), 0, v64);
58   // CHECK: @llvm.hexagon.V6.vS32b.qpred.ai
59   __builtin_HEXAGON_V6_vS32b_qpred_ai(__builtin_HEXAGON_V6_vandvrt(q64, -1), 0, v64);
60   // CHECK: @llvm.hexagon.V6.vabsb
61   __builtin_HEXAGON_V6_vabsb(v64);
62   // CHECK: @llvm.hexagon.V6.vabsb.sat
63   __builtin_HEXAGON_V6_vabsb_sat(v64);
64   // CHECK: @llvm.hexagon.V6.vabsdiffh
65   __builtin_HEXAGON_V6_vabsdiffh(v64, v64);
66   // CHECK: @llvm.hexagon.V6.vabsdiffub
67   __builtin_HEXAGON_V6_vabsdiffub(v64, v64);
68   // CHECK: @llvm.hexagon.V6.vabsdiffuh
69   __builtin_HEXAGON_V6_vabsdiffuh(v64, v64);
70   // CHECK: @llvm.hexagon.V6.vabsdiffw
71   __builtin_HEXAGON_V6_vabsdiffw(v64, v64);
72   // CHECK: @llvm.hexagon.V6.vabsh
73   __builtin_HEXAGON_V6_vabsh(v64);
74   // CHECK: @llvm.hexagon.V6.vabsh.sat
75   __builtin_HEXAGON_V6_vabsh_sat(v64);
76   // CHECK: @llvm.hexagon.V6.vabsw
77   __builtin_HEXAGON_V6_vabsw(v64);
78   // CHECK: @llvm.hexagon.V6.vabsw.sat
79   __builtin_HEXAGON_V6_vabsw_sat(v64);
80   // CHECK: @llvm.hexagon.V6.vaddb
81   __builtin_HEXAGON_V6_vaddb(v64, v64);
82   // CHECK: @llvm.hexagon.V6.vaddb.dv
83   __builtin_HEXAGON_V6_vaddb_dv(v128, v128);
84   // CHECK: @llvm.hexagon.V6.vaddbnq
85   __builtin_HEXAGON_V6_vaddbnq(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
86   // CHECK: @llvm.hexagon.V6.vaddbq
87   __builtin_HEXAGON_V6_vaddbq(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
88   // CHECK: @llvm.hexagon.V6.vaddbsat
89   __builtin_HEXAGON_V6_vaddbsat(v64, v64);
90   // CHECK: @llvm.hexagon.V6.vaddbsat.dv
91   __builtin_HEXAGON_V6_vaddbsat_dv(v128, v128);
92   // CHECK: @llvm.hexagon.V6.vaddcarry
93   __builtin_HEXAGON_V6_vaddcarry(v64, v64, 0);
94   // CHECK: @llvm.hexagon.V6.vaddclbh
95   __builtin_HEXAGON_V6_vaddclbh(v64, v64);
96   // CHECK: @llvm.hexagon.V6.vaddclbw
97   __builtin_HEXAGON_V6_vaddclbw(v64, v64);
98   // CHECK: @llvm.hexagon.V6.vaddh
99   __builtin_HEXAGON_V6_vaddh(v64, v64);
100   // CHECK: @llvm.hexagon.V6.vaddh.dv
101   __builtin_HEXAGON_V6_vaddh_dv(v128, v128);
102   // CHECK: @llvm.hexagon.V6.vaddhnq
103   __builtin_HEXAGON_V6_vaddhnq(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
104   // CHECK: @llvm.hexagon.V6.vaddhq
105   __builtin_HEXAGON_V6_vaddhq(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
106   // CHECK: @llvm.hexagon.V6.vaddhsat
107   __builtin_HEXAGON_V6_vaddhsat(v64, v64);
108   // CHECK: @llvm.hexagon.V6.vaddhsat.dv
109   __builtin_HEXAGON_V6_vaddhsat_dv(v128, v128);
110   // CHECK: @llvm.hexagon.V6.vaddhw
111   __builtin_HEXAGON_V6_vaddhw(v64, v64);
112   // CHECK: @llvm.hexagon.V6.vaddhw.acc
113   __builtin_HEXAGON_V6_vaddhw_acc(v128, v64, v64);
114   // CHECK: @llvm.hexagon.V6.vaddubh
115   __builtin_HEXAGON_V6_vaddubh(v64, v64);
116   // CHECK: @llvm.hexagon.V6.vaddubh.acc
117   __builtin_HEXAGON_V6_vaddubh_acc(v128, v64, v64);
118   // CHECK: @llvm.hexagon.V6.vaddubsat
119   __builtin_HEXAGON_V6_vaddubsat(v64, v64);
120   // CHECK: @llvm.hexagon.V6.vaddubsat.dv
121   __builtin_HEXAGON_V6_vaddubsat_dv(v128, v128);
122   // CHECK: @llvm.hexagon.V6.vaddububb.sat
123   __builtin_HEXAGON_V6_vaddububb_sat(v64, v64);
124   // CHECK: @llvm.hexagon.V6.vadduhsat
125   __builtin_HEXAGON_V6_vadduhsat(v64, v64);
126   // CHECK: @llvm.hexagon.V6.vadduhsat.dv
127   __builtin_HEXAGON_V6_vadduhsat_dv(v128, v128);
128   // CHECK: @llvm.hexagon.V6.vadduhw
129   __builtin_HEXAGON_V6_vadduhw(v64, v64);
130   // CHECK: @llvm.hexagon.V6.vadduhw.acc
131   __builtin_HEXAGON_V6_vadduhw_acc(v128, v64, v64);
132   // CHECK: @llvm.hexagon.V6.vadduwsat
133   __builtin_HEXAGON_V6_vadduwsat(v64, v64);
134   // CHECK: @llvm.hexagon.V6.vadduwsat.dv
135   __builtin_HEXAGON_V6_vadduwsat_dv(v128, v128);
136   // CHECK: @llvm.hexagon.V6.vaddw
137   __builtin_HEXAGON_V6_vaddw(v64, v64);
138   // CHECK: @llvm.hexagon.V6.vaddw.dv
139   __builtin_HEXAGON_V6_vaddw_dv(v128, v128);
140   // CHECK: @llvm.hexagon.V6.vaddwnq
141   __builtin_HEXAGON_V6_vaddwnq(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
142   // CHECK: @llvm.hexagon.V6.vaddwq
143   __builtin_HEXAGON_V6_vaddwq(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
144   // CHECK: @llvm.hexagon.V6.vaddwsat
145   __builtin_HEXAGON_V6_vaddwsat(v64, v64);
146   // CHECK: @llvm.hexagon.V6.vaddwsat.dv
147   __builtin_HEXAGON_V6_vaddwsat_dv(v128, v128);
148   // CHECK: @llvm.hexagon.V6.valignb
149   __builtin_HEXAGON_V6_valignb(v64, v64, 0);
150   // CHECK: @llvm.hexagon.V6.valignbi
151   __builtin_HEXAGON_V6_valignbi(v64, v64, 0);
152   // CHECK: @llvm.hexagon.V6.vand
153   __builtin_HEXAGON_V6_vand(v64, v64);
154   // CHECK: @llvm.hexagon.V6.vandnqrt
155   __builtin_HEXAGON_V6_vandnqrt(__builtin_HEXAGON_V6_vandvrt(q64, -1), 0);
156   // CHECK: @llvm.hexagon.V6.vandnqrt.acc
157   __builtin_HEXAGON_V6_vandnqrt_acc(v64, __builtin_HEXAGON_V6_vandvrt(q64, -1), 0);
158   // CHECK: @llvm.hexagon.V6.vandqrt
159   __builtin_HEXAGON_V6_vandqrt(__builtin_HEXAGON_V6_vandvrt(q64, -1), 0);
160   // CHECK: @llvm.hexagon.V6.vandqrt.acc
161   __builtin_HEXAGON_V6_vandqrt_acc(v64, __builtin_HEXAGON_V6_vandvrt(q64, -1), 0);
162   // CHECK: @llvm.hexagon.V6.vandvnqv
163   __builtin_HEXAGON_V6_vandvnqv(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64);
164   // CHECK: @llvm.hexagon.V6.vandvqv
165   __builtin_HEXAGON_V6_vandvqv(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64);
166   // CHECK: @llvm.hexagon.V6.vandvrt
167   __builtin_HEXAGON_V6_vandvrt(v64, 0);
168   // CHECK: @llvm.hexagon.V6.vandvrt.acc
169   __builtin_HEXAGON_V6_vandvrt_acc(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, 0);
170   // CHECK: @llvm.hexagon.V6.vaslh
171   __builtin_HEXAGON_V6_vaslh(v64, 0);
172   // CHECK: @llvm.hexagon.V6.vaslh.acc
173   __builtin_HEXAGON_V6_vaslh_acc(v64, v64, 0);
174   // CHECK: @llvm.hexagon.V6.vaslhv
175   __builtin_HEXAGON_V6_vaslhv(v64, v64);
176   // CHECK: @llvm.hexagon.V6.vaslw
177   __builtin_HEXAGON_V6_vaslw(v64, 0);
178   // CHECK: @llvm.hexagon.V6.vaslw.acc
179   __builtin_HEXAGON_V6_vaslw_acc(v64, v64, 0);
180   // CHECK: @llvm.hexagon.V6.vaslwv
181   __builtin_HEXAGON_V6_vaslwv(v64, v64);
182   // CHECK: @llvm.hexagon.V6.vasrh
183   __builtin_HEXAGON_V6_vasrh(v64, 0);
184   // CHECK: @llvm.hexagon.V6.vasrh.acc
185   __builtin_HEXAGON_V6_vasrh_acc(v64, v64, 0);
186   // CHECK: @llvm.hexagon.V6.vasrhbrndsat
187   __builtin_HEXAGON_V6_vasrhbrndsat(v64, v64, 0);
188   // CHECK: @llvm.hexagon.V6.vasrhbsat
189   __builtin_HEXAGON_V6_vasrhbsat(v64, v64, 0);
190   // CHECK: @llvm.hexagon.V6.vasrhubrndsat
191   __builtin_HEXAGON_V6_vasrhubrndsat(v64, v64, 0);
192   // CHECK: @llvm.hexagon.V6.vasrhubsat
193   __builtin_HEXAGON_V6_vasrhubsat(v64, v64, 0);
194   // CHECK: @llvm.hexagon.V6.vasrhv
195   __builtin_HEXAGON_V6_vasrhv(v64, v64);
196   // CHECK: @llvm.hexagon.V6.vasruhubrndsat
197   __builtin_HEXAGON_V6_vasruhubrndsat(v64, v64, 0);
198   // CHECK: @llvm.hexagon.V6.vasruhubsat
199   __builtin_HEXAGON_V6_vasruhubsat(v64, v64, 0);
200   // CHECK: @llvm.hexagon.V6.vasruwuhrndsat
201   __builtin_HEXAGON_V6_vasruwuhrndsat(v64, v64, 0);
202   // CHECK: @llvm.hexagon.V6.vasruwuhsat
203   __builtin_HEXAGON_V6_vasruwuhsat(v64, v64, 0);
204   // CHECK: @llvm.hexagon.V6.vasrw
205   __builtin_HEXAGON_V6_vasrw(v64, 0);
206   // CHECK: @llvm.hexagon.V6.vasrw.acc
207   __builtin_HEXAGON_V6_vasrw_acc(v64, v64, 0);
208   // CHECK: @llvm.hexagon.V6.vasrwh
209   __builtin_HEXAGON_V6_vasrwh(v64, v64, 0);
210   // CHECK: @llvm.hexagon.V6.vasrwhrndsat
211   __builtin_HEXAGON_V6_vasrwhrndsat(v64, v64, 0);
212   // CHECK: @llvm.hexagon.V6.vasrwhsat
213   __builtin_HEXAGON_V6_vasrwhsat(v64, v64, 0);
214   // CHECK: @llvm.hexagon.V6.vasrwuhrndsat
215   __builtin_HEXAGON_V6_vasrwuhrndsat(v64, v64, 0);
216   // CHECK: @llvm.hexagon.V6.vasrwuhsat
217   __builtin_HEXAGON_V6_vasrwuhsat(v64, v64, 0);
218   // CHECK: @llvm.hexagon.V6.vasrwv
219   __builtin_HEXAGON_V6_vasrwv(v64, v64);
220   // CHECK: @llvm.hexagon.V6.vassign
221   __builtin_HEXAGON_V6_vassign(v64);
222   // CHECK: @llvm.hexagon.V6.vassignp
223   __builtin_HEXAGON_V6_vassignp(v128);
224   // CHECK: @llvm.hexagon.V6.vavgb
225   __builtin_HEXAGON_V6_vavgb(v64, v64);
226   // CHECK: @llvm.hexagon.V6.vavgbrnd
227   __builtin_HEXAGON_V6_vavgbrnd(v64, v64);
228   // CHECK: @llvm.hexagon.V6.vavgh
229   __builtin_HEXAGON_V6_vavgh(v64, v64);
230   // CHECK: @llvm.hexagon.V6.vavghrnd
231   __builtin_HEXAGON_V6_vavghrnd(v64, v64);
232   // CHECK: @llvm.hexagon.V6.vavgub
233   __builtin_HEXAGON_V6_vavgub(v64, v64);
234   // CHECK: @llvm.hexagon.V6.vavgubrnd
235   __builtin_HEXAGON_V6_vavgubrnd(v64, v64);
236   // CHECK: @llvm.hexagon.V6.vavguh
237   __builtin_HEXAGON_V6_vavguh(v64, v64);
238   // CHECK: @llvm.hexagon.V6.vavguhrnd
239   __builtin_HEXAGON_V6_vavguhrnd(v64, v64);
240   // CHECK: @llvm.hexagon.V6.vavguw
241   __builtin_HEXAGON_V6_vavguw(v64, v64);
242   // CHECK: @llvm.hexagon.V6.vavguwrnd
243   __builtin_HEXAGON_V6_vavguwrnd(v64, v64);
244   // CHECK: @llvm.hexagon.V6.vavgw
245   __builtin_HEXAGON_V6_vavgw(v64, v64);
246   // CHECK: @llvm.hexagon.V6.vavgwrnd
247   __builtin_HEXAGON_V6_vavgwrnd(v64, v64);
248   // CHECK: @llvm.hexagon.V6.vcl0h
249   __builtin_HEXAGON_V6_vcl0h(v64);
250   // CHECK: @llvm.hexagon.V6.vcl0w
251   __builtin_HEXAGON_V6_vcl0w(v64);
252   // CHECK: @llvm.hexagon.V6.vcombine
253   __builtin_HEXAGON_V6_vcombine(v64, v64);
254   // CHECK: @llvm.hexagon.V6.vd0
255   __builtin_HEXAGON_V6_vd0();
256   // CHECK: @llvm.hexagon.V6.vdd0
257   __builtin_HEXAGON_V6_vdd0();
258   // CHECK: @llvm.hexagon.V6.vdealb
259   __builtin_HEXAGON_V6_vdealb(v64);
260   // CHECK: @llvm.hexagon.V6.vdealb4w
261   __builtin_HEXAGON_V6_vdealb4w(v64, v64);
262   // CHECK: @llvm.hexagon.V6.vdealh
263   __builtin_HEXAGON_V6_vdealh(v64);
264   // CHECK: @llvm.hexagon.V6.vdealvdd
265   __builtin_HEXAGON_V6_vdealvdd(v64, v64, 0);
266   // CHECK: @llvm.hexagon.V6.vdelta
267   __builtin_HEXAGON_V6_vdelta(v64, v64);
268   // CHECK: @llvm.hexagon.V6.vdmpybus
269   __builtin_HEXAGON_V6_vdmpybus(v64, 0);
270   // CHECK: @llvm.hexagon.V6.vdmpybus.acc
271   __builtin_HEXAGON_V6_vdmpybus_acc(v64, v64, 0);
272   // CHECK: @llvm.hexagon.V6.vdmpybus.dv
273   __builtin_HEXAGON_V6_vdmpybus_dv(v128, 0);
274   // CHECK: @llvm.hexagon.V6.vdmpybus.dv.acc
275   __builtin_HEXAGON_V6_vdmpybus_dv_acc(v128, v128, 0);
276   // CHECK: @llvm.hexagon.V6.vdmpyhb
277   __builtin_HEXAGON_V6_vdmpyhb(v64, 0);
278   // CHECK: @llvm.hexagon.V6.vdmpyhb.acc
279   __builtin_HEXAGON_V6_vdmpyhb_acc(v64, v64, 0);
280   // CHECK: @llvm.hexagon.V6.vdmpyhb.dv
281   __builtin_HEXAGON_V6_vdmpyhb_dv(v128, 0);
282   // CHECK: @llvm.hexagon.V6.vdmpyhb.dv.acc
283   __builtin_HEXAGON_V6_vdmpyhb_dv_acc(v128, v128, 0);
284   // CHECK: @llvm.hexagon.V6.vdmpyhisat
285   __builtin_HEXAGON_V6_vdmpyhisat(v128, 0);
286   // CHECK: @llvm.hexagon.V6.vdmpyhisat.acc
287   __builtin_HEXAGON_V6_vdmpyhisat_acc(v64, v128, 0);
288   // CHECK: @llvm.hexagon.V6.vdmpyhsat
289   __builtin_HEXAGON_V6_vdmpyhsat(v64, 0);
290   // CHECK: @llvm.hexagon.V6.vdmpyhsat.acc
291   __builtin_HEXAGON_V6_vdmpyhsat_acc(v64, v64, 0);
292   // CHECK: @llvm.hexagon.V6.vdmpyhsuisat
293   __builtin_HEXAGON_V6_vdmpyhsuisat(v128, 0);
294   // CHECK: @llvm.hexagon.V6.vdmpyhsuisat.acc
295   __builtin_HEXAGON_V6_vdmpyhsuisat_acc(v64, v128, 0);
296   // CHECK: @llvm.hexagon.V6.vdmpyhsusat
297   __builtin_HEXAGON_V6_vdmpyhsusat(v64, 0);
298   // CHECK: @llvm.hexagon.V6.vdmpyhsusat.acc
299   __builtin_HEXAGON_V6_vdmpyhsusat_acc(v64, v64, 0);
300   // CHECK: @llvm.hexagon.V6.vdmpyhvsat
301   __builtin_HEXAGON_V6_vdmpyhvsat(v64, v64);
302   // CHECK: @llvm.hexagon.V6.vdmpyhvsat.acc
303   __builtin_HEXAGON_V6_vdmpyhvsat_acc(v64, v64, v64);
304   // CHECK: @llvm.hexagon.V6.vdsaduh
305   __builtin_HEXAGON_V6_vdsaduh(v128, 0);
306   // CHECK: @llvm.hexagon.V6.vdsaduh.acc
307   __builtin_HEXAGON_V6_vdsaduh_acc(v128, v128, 0);
308   // CHECK: @llvm.hexagon.V6.veqb
309   __builtin_HEXAGON_V6_veqb(v64, v64);
310   // CHECK: @llvm.hexagon.V6.veqb.and
311   __builtin_HEXAGON_V6_veqb_and(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
312   // CHECK: @llvm.hexagon.V6.veqb.or
313   __builtin_HEXAGON_V6_veqb_or(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
314   // CHECK: @llvm.hexagon.V6.veqb.xor
315   __builtin_HEXAGON_V6_veqb_xor(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
316   // CHECK: @llvm.hexagon.V6.veqh
317   __builtin_HEXAGON_V6_veqh(v64, v64);
318   // CHECK: @llvm.hexagon.V6.veqh.and
319   __builtin_HEXAGON_V6_veqh_and(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
320   // CHECK: @llvm.hexagon.V6.veqh.or
321   __builtin_HEXAGON_V6_veqh_or(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
322   // CHECK: @llvm.hexagon.V6.veqh.xor
323   __builtin_HEXAGON_V6_veqh_xor(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
324   // CHECK: @llvm.hexagon.V6.veqw
325   __builtin_HEXAGON_V6_veqw(v64, v64);
326   // CHECK: @llvm.hexagon.V6.veqw.and
327   __builtin_HEXAGON_V6_veqw_and(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
328   // CHECK: @llvm.hexagon.V6.veqw.or
329   __builtin_HEXAGON_V6_veqw_or(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
330   // CHECK: @llvm.hexagon.V6.veqw.xor
331   __builtin_HEXAGON_V6_veqw_xor(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
332   // CHECK: @llvm.hexagon.V6.vgathermh
333   __builtin_HEXAGON_V6_vgathermh(0, 0, 0, v64);
334   // CHECK: @llvm.hexagon.V6.vgathermhq
335   __builtin_HEXAGON_V6_vgathermhq(0, __builtin_HEXAGON_V6_vandvrt(q64, -1), 0, 0, v64);
336   // CHECK: @llvm.hexagon.V6.vgathermhw
337   __builtin_HEXAGON_V6_vgathermhw(0, 0, 0, v128);
338   // CHECK: @llvm.hexagon.V6.vgathermhwq
339   __builtin_HEXAGON_V6_vgathermhwq(0, __builtin_HEXAGON_V6_vandvrt(q64, -1), 0, 0, v128);
340   // CHECK: @llvm.hexagon.V6.vgathermw
341   __builtin_HEXAGON_V6_vgathermw(0, 0, 0, v64);
342   // CHECK: @llvm.hexagon.V6.vgathermwq
343   __builtin_HEXAGON_V6_vgathermwq(0, __builtin_HEXAGON_V6_vandvrt(q64, -1), 0, 0, v64);
344   // CHECK: @llvm.hexagon.V6.vgtb
345   __builtin_HEXAGON_V6_vgtb(v64, v64);
346   // CHECK: @llvm.hexagon.V6.vgtb.and
347   __builtin_HEXAGON_V6_vgtb_and(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
348   // CHECK: @llvm.hexagon.V6.vgtb.or
349   __builtin_HEXAGON_V6_vgtb_or(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
350   // CHECK: @llvm.hexagon.V6.vgtb.xor
351   __builtin_HEXAGON_V6_vgtb_xor(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
352   // CHECK: @llvm.hexagon.V6.vgth
353   __builtin_HEXAGON_V6_vgth(v64, v64);
354   // CHECK: @llvm.hexagon.V6.vgth.and
355   __builtin_HEXAGON_V6_vgth_and(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
356   // CHECK: @llvm.hexagon.V6.vgth.or
357   __builtin_HEXAGON_V6_vgth_or(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
358   // CHECK: @llvm.hexagon.V6.vgth.xor
359   __builtin_HEXAGON_V6_vgth_xor(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
360   // CHECK: @llvm.hexagon.V6.vgtub
361   __builtin_HEXAGON_V6_vgtub(v64, v64);
362   // CHECK: @llvm.hexagon.V6.vgtub.and
363   __builtin_HEXAGON_V6_vgtub_and(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
364   // CHECK: @llvm.hexagon.V6.vgtub.or
365   __builtin_HEXAGON_V6_vgtub_or(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
366   // CHECK: @llvm.hexagon.V6.vgtub.xor
367   __builtin_HEXAGON_V6_vgtub_xor(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
368   // CHECK: @llvm.hexagon.V6.vgtuh
369   __builtin_HEXAGON_V6_vgtuh(v64, v64);
370   // CHECK: @llvm.hexagon.V6.vgtuh.and
371   __builtin_HEXAGON_V6_vgtuh_and(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
372   // CHECK: @llvm.hexagon.V6.vgtuh.or
373   __builtin_HEXAGON_V6_vgtuh_or(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
374   // CHECK: @llvm.hexagon.V6.vgtuh.xor
375   __builtin_HEXAGON_V6_vgtuh_xor(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
376   // CHECK: @llvm.hexagon.V6.vgtuw
377   __builtin_HEXAGON_V6_vgtuw(v64, v64);
378   // CHECK: @llvm.hexagon.V6.vgtuw.and
379   __builtin_HEXAGON_V6_vgtuw_and(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
380   // CHECK: @llvm.hexagon.V6.vgtuw.or
381   __builtin_HEXAGON_V6_vgtuw_or(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
382   // CHECK: @llvm.hexagon.V6.vgtuw.xor
383   __builtin_HEXAGON_V6_vgtuw_xor(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
384   // CHECK: @llvm.hexagon.V6.vgtw
385   __builtin_HEXAGON_V6_vgtw(v64, v64);
386   // CHECK: @llvm.hexagon.V6.vgtw.and
387   __builtin_HEXAGON_V6_vgtw_and(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
388   // CHECK: @llvm.hexagon.V6.vgtw.or
389   __builtin_HEXAGON_V6_vgtw_or(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
390   // CHECK: @llvm.hexagon.V6.vgtw.xor
391   __builtin_HEXAGON_V6_vgtw_xor(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
392   // CHECK: @llvm.hexagon.V6.vinsertwr
393   __builtin_HEXAGON_V6_vinsertwr(v64, 0);
394   // CHECK: @llvm.hexagon.V6.vlalignb
395   __builtin_HEXAGON_V6_vlalignb(v64, v64, 0);
396   // CHECK: @llvm.hexagon.V6.vlalignbi
397   __builtin_HEXAGON_V6_vlalignbi(v64, v64, 0);
398   // CHECK: @llvm.hexagon.V6.vlsrb
399   __builtin_HEXAGON_V6_vlsrb(v64, 0);
400   // CHECK: @llvm.hexagon.V6.vlsrh
401   __builtin_HEXAGON_V6_vlsrh(v64, 0);
402   // CHECK: @llvm.hexagon.V6.vlsrhv
403   __builtin_HEXAGON_V6_vlsrhv(v64, v64);
404   // CHECK: @llvm.hexagon.V6.vlsrw
405   __builtin_HEXAGON_V6_vlsrw(v64, 0);
406   // CHECK: @llvm.hexagon.V6.vlsrwv
407   __builtin_HEXAGON_V6_vlsrwv(v64, v64);
408   // CHECK: @llvm.hexagon.V6.vlut4
409   __builtin_HEXAGON_V6_vlut4(v64, 0);
410   // CHECK: @llvm.hexagon.V6.vlutvvb
411   __builtin_HEXAGON_V6_vlutvvb(v64, v64, 0);
412   // CHECK: @llvm.hexagon.V6.vlutvvb.nm
413   __builtin_HEXAGON_V6_vlutvvb_nm(v64, v64, 0);
414   // CHECK: @llvm.hexagon.V6.vlutvvb.oracc
415   __builtin_HEXAGON_V6_vlutvvb_oracc(v64, v64, v64, 0);
416   // CHECK: @llvm.hexagon.V6.vlutvvb.oracci
417   __builtin_HEXAGON_V6_vlutvvb_oracci(v64, v64, v64, 0);
418   // CHECK: @llvm.hexagon.V6.vlutvvbi
419   __builtin_HEXAGON_V6_vlutvvbi(v64, v64, 0);
420   // CHECK: @llvm.hexagon.V6.vlutvwh
421   __builtin_HEXAGON_V6_vlutvwh(v64, v64, 0);
422   // CHECK: @llvm.hexagon.V6.vlutvwh.nm
423   __builtin_HEXAGON_V6_vlutvwh_nm(v64, v64, 0);
424   // CHECK: @llvm.hexagon.V6.vlutvwh.oracc
425   __builtin_HEXAGON_V6_vlutvwh_oracc(v128, v64, v64, 0);
426   // CHECK: @llvm.hexagon.V6.vlutvwh.oracci
427   __builtin_HEXAGON_V6_vlutvwh_oracci(v128, v64, v64, 0);
428   // CHECK: @llvm.hexagon.V6.vlutvwhi
429   __builtin_HEXAGON_V6_vlutvwhi(v64, v64, 0);
430   // CHECK: @llvm.hexagon.V6.vmaxb
431   __builtin_HEXAGON_V6_vmaxb(v64, v64);
432   // CHECK: @llvm.hexagon.V6.vmaxh
433   __builtin_HEXAGON_V6_vmaxh(v64, v64);
434   // CHECK: @llvm.hexagon.V6.vmaxub
435   __builtin_HEXAGON_V6_vmaxub(v64, v64);
436   // CHECK: @llvm.hexagon.V6.vmaxuh
437   __builtin_HEXAGON_V6_vmaxuh(v64, v64);
438   // CHECK: @llvm.hexagon.V6.vmaxw
439   __builtin_HEXAGON_V6_vmaxw(v64, v64);
440   // CHECK: @llvm.hexagon.V6.vminb
441   __builtin_HEXAGON_V6_vminb(v64, v64);
442   // CHECK: @llvm.hexagon.V6.vminh
443   __builtin_HEXAGON_V6_vminh(v64, v64);
444   // CHECK: @llvm.hexagon.V6.vminub
445   __builtin_HEXAGON_V6_vminub(v64, v64);
446   // CHECK: @llvm.hexagon.V6.vminuh
447   __builtin_HEXAGON_V6_vminuh(v64, v64);
448   // CHECK: @llvm.hexagon.V6.vminw
449   __builtin_HEXAGON_V6_vminw(v64, v64);
450   // CHECK: @llvm.hexagon.V6.vmpabus
451   __builtin_HEXAGON_V6_vmpabus(v128, 0);
452   // CHECK: @llvm.hexagon.V6.vmpabus.acc
453   __builtin_HEXAGON_V6_vmpabus_acc(v128, v128, 0);
454   // CHECK: @llvm.hexagon.V6.vmpabusv
455   __builtin_HEXAGON_V6_vmpabusv(v128, v128);
456   // CHECK: @llvm.hexagon.V6.vmpabuu
457   __builtin_HEXAGON_V6_vmpabuu(v128, 0);
458   // CHECK: @llvm.hexagon.V6.vmpabuu.acc
459   __builtin_HEXAGON_V6_vmpabuu_acc(v128, v128, 0);
460   // CHECK: @llvm.hexagon.V6.vmpabuuv
461   __builtin_HEXAGON_V6_vmpabuuv(v128, v128);
462   // CHECK: @llvm.hexagon.V6.vmpahb
463   __builtin_HEXAGON_V6_vmpahb(v128, 0);
464   // CHECK: @llvm.hexagon.V6.vmpahb.acc
465   __builtin_HEXAGON_V6_vmpahb_acc(v128, v128, 0);
466   // CHECK: @llvm.hexagon.V6.vmpahhsat
467   __builtin_HEXAGON_V6_vmpahhsat(v64, v64, 0);
468   // CHECK: @llvm.hexagon.V6.vmpauhb
469   __builtin_HEXAGON_V6_vmpauhb(v128, 0);
470   // CHECK: @llvm.hexagon.V6.vmpauhb.acc
471   __builtin_HEXAGON_V6_vmpauhb_acc(v128, v128, 0);
472   // CHECK: @llvm.hexagon.V6.vmpauhuhsat
473   __builtin_HEXAGON_V6_vmpauhuhsat(v64, v64, 0);
474   // CHECK: @llvm.hexagon.V6.vmpsuhuhsat
475   __builtin_HEXAGON_V6_vmpsuhuhsat(v64, v64, 0);
476   // CHECK: @llvm.hexagon.V6.vmpybus
477   __builtin_HEXAGON_V6_vmpybus(v64, 0);
478   // CHECK: @llvm.hexagon.V6.vmpybus.acc
479   __builtin_HEXAGON_V6_vmpybus_acc(v128, v64, 0);
480   // CHECK: @llvm.hexagon.V6.vmpybusv
481   __builtin_HEXAGON_V6_vmpybusv(v64, v64);
482   // CHECK: @llvm.hexagon.V6.vmpybusv.acc
483   __builtin_HEXAGON_V6_vmpybusv_acc(v128, v64, v64);
484   // CHECK: @llvm.hexagon.V6.vmpybv
485   __builtin_HEXAGON_V6_vmpybv(v64, v64);
486   // CHECK: @llvm.hexagon.V6.vmpybv.acc
487   __builtin_HEXAGON_V6_vmpybv_acc(v128, v64, v64);
488   // CHECK: @llvm.hexagon.V6.vmpyewuh
489   __builtin_HEXAGON_V6_vmpyewuh(v64, v64);
490   // CHECK: @llvm.hexagon.V6.vmpyewuh.64
491   __builtin_HEXAGON_V6_vmpyewuh_64(v64, v64);
492   // CHECK: @llvm.hexagon.V6.vmpyh
493   __builtin_HEXAGON_V6_vmpyh(v64, 0);
494   // CHECK: @llvm.hexagon.V6.vmpyh.acc
495   __builtin_HEXAGON_V6_vmpyh_acc(v128, v64, 0);
496   // CHECK: @llvm.hexagon.V6.vmpyhsat.acc
497   __builtin_HEXAGON_V6_vmpyhsat_acc(v128, v64, 0);
498   // CHECK: @llvm.hexagon.V6.vmpyhsrs
499   __builtin_HEXAGON_V6_vmpyhsrs(v64, 0);
500   // CHECK: @llvm.hexagon.V6.vmpyhss
501   __builtin_HEXAGON_V6_vmpyhss(v64, 0);
502   // CHECK: @llvm.hexagon.V6.vmpyhus
503   __builtin_HEXAGON_V6_vmpyhus(v64, v64);
504   // CHECK: @llvm.hexagon.V6.vmpyhus.acc
505   __builtin_HEXAGON_V6_vmpyhus_acc(v128, v64, v64);
506   // CHECK: @llvm.hexagon.V6.vmpyhv
507   __builtin_HEXAGON_V6_vmpyhv(v64, v64);
508   // CHECK: @llvm.hexagon.V6.vmpyhv.acc
509   __builtin_HEXAGON_V6_vmpyhv_acc(v128, v64, v64);
510   // CHECK: @llvm.hexagon.V6.vmpyhvsrs
511   __builtin_HEXAGON_V6_vmpyhvsrs(v64, v64);
512   // CHECK: @llvm.hexagon.V6.vmpyieoh
513   __builtin_HEXAGON_V6_vmpyieoh(v64, v64);
514   // CHECK: @llvm.hexagon.V6.vmpyiewh.acc
515   __builtin_HEXAGON_V6_vmpyiewh_acc(v64, v64, v64);
516   // CHECK: @llvm.hexagon.V6.vmpyiewuh
517   __builtin_HEXAGON_V6_vmpyiewuh(v64, v64);
518   // CHECK: @llvm.hexagon.V6.vmpyiewuh.acc
519   __builtin_HEXAGON_V6_vmpyiewuh_acc(v64, v64, v64);
520   // CHECK: @llvm.hexagon.V6.vmpyih
521   __builtin_HEXAGON_V6_vmpyih(v64, v64);
522   // CHECK: @llvm.hexagon.V6.vmpyih.acc
523   __builtin_HEXAGON_V6_vmpyih_acc(v64, v64, v64);
524   // CHECK: @llvm.hexagon.V6.vmpyihb
525   __builtin_HEXAGON_V6_vmpyihb(v64, 0);
526   // CHECK: @llvm.hexagon.V6.vmpyihb.acc
527   __builtin_HEXAGON_V6_vmpyihb_acc(v64, v64, 0);
528   // CHECK: @llvm.hexagon.V6.vmpyiowh
529   __builtin_HEXAGON_V6_vmpyiowh(v64, v64);
530   // CHECK: @llvm.hexagon.V6.vmpyiwb
531   __builtin_HEXAGON_V6_vmpyiwb(v64, 0);
532   // CHECK: @llvm.hexagon.V6.vmpyiwb.acc
533   __builtin_HEXAGON_V6_vmpyiwb_acc(v64, v64, 0);
534   // CHECK: @llvm.hexagon.V6.vmpyiwh
535   __builtin_HEXAGON_V6_vmpyiwh(v64, 0);
536   // CHECK: @llvm.hexagon.V6.vmpyiwh.acc
537   __builtin_HEXAGON_V6_vmpyiwh_acc(v64, v64, 0);
538   // CHECK: @llvm.hexagon.V6.vmpyiwub
539   __builtin_HEXAGON_V6_vmpyiwub(v64, 0);
540   // CHECK: @llvm.hexagon.V6.vmpyiwub.acc
541   __builtin_HEXAGON_V6_vmpyiwub_acc(v64, v64, 0);
542   // CHECK: @llvm.hexagon.V6.vmpyowh
543   __builtin_HEXAGON_V6_vmpyowh(v64, v64);
544   // CHECK: @llvm.hexagon.V6.vmpyowh.64.acc
545   __builtin_HEXAGON_V6_vmpyowh_64_acc(v128, v64, v64);
546   // CHECK: @llvm.hexagon.V6.vmpyowh.rnd
547   __builtin_HEXAGON_V6_vmpyowh_rnd(v64, v64);
548   // CHECK: @llvm.hexagon.V6.vmpyowh.rnd.sacc
549   __builtin_HEXAGON_V6_vmpyowh_rnd_sacc(v64, v64, v64);
550   // CHECK: @llvm.hexagon.V6.vmpyowh.sacc
551   __builtin_HEXAGON_V6_vmpyowh_sacc(v64, v64, v64);
552   // CHECK: @llvm.hexagon.V6.vmpyub
553   __builtin_HEXAGON_V6_vmpyub(v64, 0);
554   // CHECK: @llvm.hexagon.V6.vmpyub.acc
555   __builtin_HEXAGON_V6_vmpyub_acc(v128, v64, 0);
556   // CHECK: @llvm.hexagon.V6.vmpyubv
557   __builtin_HEXAGON_V6_vmpyubv(v64, v64);
558   // CHECK: @llvm.hexagon.V6.vmpyubv.acc
559   __builtin_HEXAGON_V6_vmpyubv_acc(v128, v64, v64);
560   // CHECK: @llvm.hexagon.V6.vmpyuh
561   __builtin_HEXAGON_V6_vmpyuh(v64, 0);
562   // CHECK: @llvm.hexagon.V6.vmpyuh.acc
563   __builtin_HEXAGON_V6_vmpyuh_acc(v128, v64, 0);
564   // CHECK: @llvm.hexagon.V6.vmpyuhe
565   __builtin_HEXAGON_V6_vmpyuhe(v64, 0);
566   // CHECK: @llvm.hexagon.V6.vmpyuhe.acc
567   __builtin_HEXAGON_V6_vmpyuhe_acc(v64, v64, 0);
568   // CHECK: @llvm.hexagon.V6.vmpyuhv
569   __builtin_HEXAGON_V6_vmpyuhv(v64, v64);
570   // CHECK: @llvm.hexagon.V6.vmpyuhv.acc
571   __builtin_HEXAGON_V6_vmpyuhv_acc(v128, v64, v64);
572   // CHECK: @llvm.hexagon.V6.vmux
573   __builtin_HEXAGON_V6_vmux(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
574   // CHECK: @llvm.hexagon.V6.vnavgb
575   __builtin_HEXAGON_V6_vnavgb(v64, v64);
576   // CHECK: @llvm.hexagon.V6.vnavgh
577   __builtin_HEXAGON_V6_vnavgh(v64, v64);
578   // CHECK: @llvm.hexagon.V6.vnavgub
579   __builtin_HEXAGON_V6_vnavgub(v64, v64);
580   // CHECK: @llvm.hexagon.V6.vnavgw
581   __builtin_HEXAGON_V6_vnavgw(v64, v64);
582   // CHECK: @llvm.hexagon.V6.vnormamth
583   __builtin_HEXAGON_V6_vnormamth(v64);
584   // CHECK: @llvm.hexagon.V6.vnormamtw
585   __builtin_HEXAGON_V6_vnormamtw(v64);
586   // CHECK: @llvm.hexagon.V6.vnot
587   __builtin_HEXAGON_V6_vnot(v64);
588   // CHECK: @llvm.hexagon.V6.vor
589   __builtin_HEXAGON_V6_vor(v64, v64);
590   // CHECK: @llvm.hexagon.V6.vpackeb
591   __builtin_HEXAGON_V6_vpackeb(v64, v64);
592   // CHECK: @llvm.hexagon.V6.vpackeh
593   __builtin_HEXAGON_V6_vpackeh(v64, v64);
594   // CHECK: @llvm.hexagon.V6.vpackhb.sat
595   __builtin_HEXAGON_V6_vpackhb_sat(v64, v64);
596   // CHECK: @llvm.hexagon.V6.vpackhub.sat
597   __builtin_HEXAGON_V6_vpackhub_sat(v64, v64);
598   // CHECK: @llvm.hexagon.V6.vpackob
599   __builtin_HEXAGON_V6_vpackob(v64, v64);
600   // CHECK: @llvm.hexagon.V6.vpackoh
601   __builtin_HEXAGON_V6_vpackoh(v64, v64);
602   // CHECK: @llvm.hexagon.V6.vpackwh.sat
603   __builtin_HEXAGON_V6_vpackwh_sat(v64, v64);
604   // CHECK: @llvm.hexagon.V6.vpackwuh.sat
605   __builtin_HEXAGON_V6_vpackwuh_sat(v64, v64);
606   // CHECK: @llvm.hexagon.V6.vpopcounth
607   __builtin_HEXAGON_V6_vpopcounth(v64);
608   // CHECK: @llvm.hexagon.V6.vprefixqb
609   __builtin_HEXAGON_V6_vprefixqb(__builtin_HEXAGON_V6_vandvrt(q64, -1));
610   // CHECK: @llvm.hexagon.V6.vprefixqh
611   __builtin_HEXAGON_V6_vprefixqh(__builtin_HEXAGON_V6_vandvrt(q64, -1));
612   // CHECK: @llvm.hexagon.V6.vprefixqw
613   __builtin_HEXAGON_V6_vprefixqw(__builtin_HEXAGON_V6_vandvrt(q64, -1));
614   // CHECK: @llvm.hexagon.V6.vrdelta
615   __builtin_HEXAGON_V6_vrdelta(v64, v64);
616   // CHECK: @llvm.hexagon.V6.vrmpybub.rtt
617   __builtin_HEXAGON_V6_vrmpybub_rtt(v64, 0);
618   // CHECK: @llvm.hexagon.V6.vrmpybub.rtt.acc
619   __builtin_HEXAGON_V6_vrmpybub_rtt_acc(v128, v64, 0);
620   // CHECK: @llvm.hexagon.V6.vrmpybus
621   __builtin_HEXAGON_V6_vrmpybus(v64, 0);
622   // CHECK: @llvm.hexagon.V6.vrmpybus.acc
623   __builtin_HEXAGON_V6_vrmpybus_acc(v64, v64, 0);
624   // CHECK: @llvm.hexagon.V6.vrmpybusi
625   __builtin_HEXAGON_V6_vrmpybusi(v128, 0, 0);
626   // CHECK: @llvm.hexagon.V6.vrmpybusi.acc
627   __builtin_HEXAGON_V6_vrmpybusi_acc(v128, v128, 0, 0);
628   // CHECK: @llvm.hexagon.V6.vrmpybusv
629   __builtin_HEXAGON_V6_vrmpybusv(v64, v64);
630   // CHECK: @llvm.hexagon.V6.vrmpybusv.acc
631   __builtin_HEXAGON_V6_vrmpybusv_acc(v64, v64, v64);
632   // CHECK: @llvm.hexagon.V6.vrmpybv
633   __builtin_HEXAGON_V6_vrmpybv(v64, v64);
634   // CHECK: @llvm.hexagon.V6.vrmpybv.acc
635   __builtin_HEXAGON_V6_vrmpybv_acc(v64, v64, v64);
636   // CHECK: @llvm.hexagon.V6.vrmpyub
637   __builtin_HEXAGON_V6_vrmpyub(v64, 0);
638   // CHECK: @llvm.hexagon.V6.vrmpyub.acc
639   __builtin_HEXAGON_V6_vrmpyub_acc(v64, v64, 0);
640   // CHECK: @llvm.hexagon.V6.vrmpyub.rtt
641   __builtin_HEXAGON_V6_vrmpyub_rtt(v64, 0);
642   // CHECK: @llvm.hexagon.V6.vrmpyub.rtt.acc
643   __builtin_HEXAGON_V6_vrmpyub_rtt_acc(v128, v64, 0);
644   // CHECK: @llvm.hexagon.V6.vrmpyubi
645   __builtin_HEXAGON_V6_vrmpyubi(v128, 0, 0);
646   // CHECK: @llvm.hexagon.V6.vrmpyubi.acc
647   __builtin_HEXAGON_V6_vrmpyubi_acc(v128, v128, 0, 0);
648   // CHECK: @llvm.hexagon.V6.vrmpyubv
649   __builtin_HEXAGON_V6_vrmpyubv(v64, v64);
650   // CHECK: @llvm.hexagon.V6.vrmpyubv.acc
651   __builtin_HEXAGON_V6_vrmpyubv_acc(v64, v64, v64);
652   // CHECK: @llvm.hexagon.V6.vror
653   __builtin_HEXAGON_V6_vror(v64, 0);
654   // CHECK: @llvm.hexagon.V6.vroundhb
655   __builtin_HEXAGON_V6_vroundhb(v64, v64);
656   // CHECK: @llvm.hexagon.V6.vroundhub
657   __builtin_HEXAGON_V6_vroundhub(v64, v64);
658   // CHECK: @llvm.hexagon.V6.vrounduhub
659   __builtin_HEXAGON_V6_vrounduhub(v64, v64);
660   // CHECK: @llvm.hexagon.V6.vrounduwuh
661   __builtin_HEXAGON_V6_vrounduwuh(v64, v64);
662   // CHECK: @llvm.hexagon.V6.vroundwh
663   __builtin_HEXAGON_V6_vroundwh(v64, v64);
664   // CHECK: @llvm.hexagon.V6.vroundwuh
665   __builtin_HEXAGON_V6_vroundwuh(v64, v64);
666   // CHECK: @llvm.hexagon.V6.vrsadubi
667   __builtin_HEXAGON_V6_vrsadubi(v128, 0, 0);
668   // CHECK: @llvm.hexagon.V6.vrsadubi.acc
669   __builtin_HEXAGON_V6_vrsadubi_acc(v128, v128, 0, 0);
670   // CHECK: @llvm.hexagon.V6.vsathub
671   __builtin_HEXAGON_V6_vsathub(v64, v64);
672   // CHECK: @llvm.hexagon.V6.vsatuwuh
673   __builtin_HEXAGON_V6_vsatuwuh(v64, v64);
674   // CHECK: @llvm.hexagon.V6.vsatwh
675   __builtin_HEXAGON_V6_vsatwh(v64, v64);
676   // CHECK: @llvm.hexagon.V6.vsb
677   __builtin_HEXAGON_V6_vsb(v64);
678   // CHECK: @llvm.hexagon.V6.vscattermh
679   __builtin_HEXAGON_V6_vscattermh(0, 0, v64, v64);
680   // CHECK: @llvm.hexagon.V6.vscattermh.add
681   __builtin_HEXAGON_V6_vscattermh_add(0, 0, v64, v64);
682   // CHECK: @llvm.hexagon.V6.vscattermhq
683   __builtin_HEXAGON_V6_vscattermhq(__builtin_HEXAGON_V6_vandvrt(q64, -1), 0, 0, v64, v64);
684   // CHECK: @llvm.hexagon.V6.vscattermhw
685   __builtin_HEXAGON_V6_vscattermhw(0, 0, v128, v64);
686   // CHECK: @llvm.hexagon.V6.vscattermhw.add
687   __builtin_HEXAGON_V6_vscattermhw_add(0, 0, v128, v64);
688   // CHECK: @llvm.hexagon.V6.vscattermhwq
689   __builtin_HEXAGON_V6_vscattermhwq(__builtin_HEXAGON_V6_vandvrt(q64, -1), 0, 0, v128, v64);
690   // CHECK: @llvm.hexagon.V6.vscattermw
691   __builtin_HEXAGON_V6_vscattermw(0, 0, v64, v64);
692   // CHECK: @llvm.hexagon.V6.vscattermw.add
693   __builtin_HEXAGON_V6_vscattermw_add(0, 0, v64, v64);
694   // CHECK: @llvm.hexagon.V6.vscattermwq
695   __builtin_HEXAGON_V6_vscattermwq(__builtin_HEXAGON_V6_vandvrt(q64, -1), 0, 0, v64, v64);
696   // CHECK: @llvm.hexagon.V6.vsh
697   __builtin_HEXAGON_V6_vsh(v64);
698   // CHECK: @llvm.hexagon.V6.vshufeh
699   __builtin_HEXAGON_V6_vshufeh(v64, v64);
700   // CHECK: @llvm.hexagon.V6.vshuffb
701   __builtin_HEXAGON_V6_vshuffb(v64);
702   // CHECK: @llvm.hexagon.V6.vshuffeb
703   __builtin_HEXAGON_V6_vshuffeb(v64, v64);
704   // CHECK: @llvm.hexagon.V6.vshuffh
705   __builtin_HEXAGON_V6_vshuffh(v64);
706   // CHECK: @llvm.hexagon.V6.vshuffob
707   __builtin_HEXAGON_V6_vshuffob(v64, v64);
708   // CHECK: @llvm.hexagon.V6.vshuffvdd
709   __builtin_HEXAGON_V6_vshuffvdd(v64, v64, 0);
710   // CHECK: @llvm.hexagon.V6.vshufoeb
711   __builtin_HEXAGON_V6_vshufoeb(v64, v64);
712   // CHECK: @llvm.hexagon.V6.vshufoeh
713   __builtin_HEXAGON_V6_vshufoeh(v64, v64);
714   // CHECK: @llvm.hexagon.V6.vshufoh
715   __builtin_HEXAGON_V6_vshufoh(v64, v64);
716   // CHECK: @llvm.hexagon.V6.vsubb
717   __builtin_HEXAGON_V6_vsubb(v64, v64);
718   // CHECK: @llvm.hexagon.V6.vsubb.dv
719   __builtin_HEXAGON_V6_vsubb_dv(v128, v128);
720   // CHECK: @llvm.hexagon.V6.vsubbnq
721   __builtin_HEXAGON_V6_vsubbnq(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
722   // CHECK: @llvm.hexagon.V6.vsubbq
723   __builtin_HEXAGON_V6_vsubbq(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
724   // CHECK: @llvm.hexagon.V6.vsubbsat
725   __builtin_HEXAGON_V6_vsubbsat(v64, v64);
726   // CHECK: @llvm.hexagon.V6.vsubbsat.dv
727   __builtin_HEXAGON_V6_vsubbsat_dv(v128, v128);
728   // CHECK: @llvm.hexagon.V6.vsubcarry
729   __builtin_HEXAGON_V6_vsubcarry(v64, v64, 0);
730   // CHECK: @llvm.hexagon.V6.vsubh
731   __builtin_HEXAGON_V6_vsubh(v64, v64);
732   // CHECK: @llvm.hexagon.V6.vsubh.dv
733   __builtin_HEXAGON_V6_vsubh_dv(v128, v128);
734   // CHECK: @llvm.hexagon.V6.vsubhnq
735   __builtin_HEXAGON_V6_vsubhnq(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
736   // CHECK: @llvm.hexagon.V6.vsubhq
737   __builtin_HEXAGON_V6_vsubhq(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
738   // CHECK: @llvm.hexagon.V6.vsubhsat
739   __builtin_HEXAGON_V6_vsubhsat(v64, v64);
740   // CHECK: @llvm.hexagon.V6.vsubhsat.dv
741   __builtin_HEXAGON_V6_vsubhsat_dv(v128, v128);
742   // CHECK: @llvm.hexagon.V6.vsubhw
743   __builtin_HEXAGON_V6_vsubhw(v64, v64);
744   // CHECK: @llvm.hexagon.V6.vsububh
745   __builtin_HEXAGON_V6_vsububh(v64, v64);
746   // CHECK: @llvm.hexagon.V6.vsububsat
747   __builtin_HEXAGON_V6_vsububsat(v64, v64);
748   // CHECK: @llvm.hexagon.V6.vsububsat.dv
749   __builtin_HEXAGON_V6_vsububsat_dv(v128, v128);
750   // CHECK: @llvm.hexagon.V6.vsubububb.sat
751   __builtin_HEXAGON_V6_vsubububb_sat(v64, v64);
752   // CHECK: @llvm.hexagon.V6.vsubuhsat
753   __builtin_HEXAGON_V6_vsubuhsat(v64, v64);
754   // CHECK: @llvm.hexagon.V6.vsubuhsat.dv
755   __builtin_HEXAGON_V6_vsubuhsat_dv(v128, v128);
756   // CHECK: @llvm.hexagon.V6.vsubuhw
757   __builtin_HEXAGON_V6_vsubuhw(v64, v64);
758   // CHECK: @llvm.hexagon.V6.vsubuwsat
759   __builtin_HEXAGON_V6_vsubuwsat(v64, v64);
760   // CHECK: @llvm.hexagon.V6.vsubuwsat.dv
761   __builtin_HEXAGON_V6_vsubuwsat_dv(v128, v128);
762   // CHECK: @llvm.hexagon.V6.vsubw
763   __builtin_HEXAGON_V6_vsubw(v64, v64);
764   // CHECK: @llvm.hexagon.V6.vsubw.dv
765   __builtin_HEXAGON_V6_vsubw_dv(v128, v128);
766   // CHECK: @llvm.hexagon.V6.vsubwnq
767   __builtin_HEXAGON_V6_vsubwnq(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
768   // CHECK: @llvm.hexagon.V6.vsubwq
769   __builtin_HEXAGON_V6_vsubwq(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
770   // CHECK: @llvm.hexagon.V6.vsubwsat
771   __builtin_HEXAGON_V6_vsubwsat(v64, v64);
772   // CHECK: @llvm.hexagon.V6.vsubwsat.dv
773   __builtin_HEXAGON_V6_vsubwsat_dv(v128, v128);
774   // CHECK: @llvm.hexagon.V6.vswap
775   __builtin_HEXAGON_V6_vswap(__builtin_HEXAGON_V6_vandvrt(q64, -1), v64, v64);
776   // CHECK: @llvm.hexagon.V6.vtmpyb
777   __builtin_HEXAGON_V6_vtmpyb(v128, 0);
778   // CHECK: @llvm.hexagon.V6.vtmpyb.acc
779   __builtin_HEXAGON_V6_vtmpyb_acc(v128, v128, 0);
780   // CHECK: @llvm.hexagon.V6.vtmpybus
781   __builtin_HEXAGON_V6_vtmpybus(v128, 0);
782   // CHECK: @llvm.hexagon.V6.vtmpybus.acc
783   __builtin_HEXAGON_V6_vtmpybus_acc(v128, v128, 0);
784   // CHECK: @llvm.hexagon.V6.vtmpyhb
785   __builtin_HEXAGON_V6_vtmpyhb(v128, 0);
786   // CHECK: @llvm.hexagon.V6.vtmpyhb.acc
787   __builtin_HEXAGON_V6_vtmpyhb_acc(v128, v128, 0);
788   // CHECK: @llvm.hexagon.V6.vunpackb
789   __builtin_HEXAGON_V6_vunpackb(v64);
790   // CHECK: @llvm.hexagon.V6.vunpackh
791   __builtin_HEXAGON_V6_vunpackh(v64);
792   // CHECK: @llvm.hexagon.V6.vunpackob
793   __builtin_HEXAGON_V6_vunpackob(v128, v64);
794   // CHECK: @llvm.hexagon.V6.vunpackoh
795   __builtin_HEXAGON_V6_vunpackoh(v128, v64);
796   // CHECK: @llvm.hexagon.V6.vunpackub
797   __builtin_HEXAGON_V6_vunpackub(v64);
798   // CHECK: @llvm.hexagon.V6.vunpackuh
799   __builtin_HEXAGON_V6_vunpackuh(v64);
800   // CHECK: @llvm.hexagon.V6.vxor
801   __builtin_HEXAGON_V6_vxor(v64, v64);
802   // CHECK: @llvm.hexagon.V6.vzb
803   __builtin_HEXAGON_V6_vzb(v64);
804   // CHECK: @llvm.hexagon.V6.vzh
805   __builtin_HEXAGON_V6_vzh(v64);
806 }
807