xref: /llvm-project/clang/test/CodeGen/builtins-hvx128.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-length128b -emit-llvm %s -o - | FileCheck %s
3 
test()4 void test() {
5   int q128 __attribute__((__vector_size__(128)));
6   int v128 __attribute__((__vector_size__(128)));
7   int v256 __attribute__((__vector_size__(256)));
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.128B
12   __builtin_HEXAGON_V6_vmaskedstorenq_128B(q128, 0, v128);
13   // CHECK: @llvm.hexagon.V6.vmaskedstorentnq.128B
14   __builtin_HEXAGON_V6_vmaskedstorentnq_128B(q128, 0, v128);
15   // CHECK: @llvm.hexagon.V6.vmaskedstorentq.128B
16   __builtin_HEXAGON_V6_vmaskedstorentq_128B(q128, 0, v128);
17   // CHECK: @llvm.hexagon.V6.vmaskedstoreq.128B
18   __builtin_HEXAGON_V6_vmaskedstoreq_128B(q128, 0, v128);
19 
20   // CHECK: @llvm.hexagon.V6.extractw.128B
21   __builtin_HEXAGON_V6_extractw_128B(v128, 0);
22   // CHECK: @llvm.hexagon.V6.hi.128B
23   __builtin_HEXAGON_V6_hi_128B(v256);
24   // CHECK: @llvm.hexagon.V6.lo.128B
25   __builtin_HEXAGON_V6_lo_128B(v256);
26   // CHECK: @llvm.hexagon.V6.lvsplatb.128B
27   __builtin_HEXAGON_V6_lvsplatb_128B(0);
28   // CHECK: @llvm.hexagon.V6.lvsplath.128B
29   __builtin_HEXAGON_V6_lvsplath_128B(0);
30   // CHECK: @llvm.hexagon.V6.lvsplatw.128B
31   __builtin_HEXAGON_V6_lvsplatw_128B(0);
32   // CHECK: @llvm.hexagon.V6.pred.and.128B
33   __builtin_HEXAGON_V6_pred_and_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), __builtin_HEXAGON_V6_vandvrt_128B(q128, -1));
34   // CHECK: @llvm.hexagon.V6.pred.and.n.128B
35   __builtin_HEXAGON_V6_pred_and_n_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), __builtin_HEXAGON_V6_vandvrt_128B(q128, -1));
36   // CHECK: @llvm.hexagon.V6.pred.not.128B
37   __builtin_HEXAGON_V6_pred_not_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1));
38   // CHECK: @llvm.hexagon.V6.pred.or.128B
39   __builtin_HEXAGON_V6_pred_or_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), __builtin_HEXAGON_V6_vandvrt_128B(q128, -1));
40   // CHECK: @llvm.hexagon.V6.pred.or.n.128B
41   __builtin_HEXAGON_V6_pred_or_n_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), __builtin_HEXAGON_V6_vandvrt_128B(q128, -1));
42   // CHECK: @llvm.hexagon.V6.pred.scalar2.128B
43   __builtin_HEXAGON_V6_pred_scalar2_128B(0);
44   // CHECK: @llvm.hexagon.V6.pred.scalar2v2.128B
45   __builtin_HEXAGON_V6_pred_scalar2v2_128B(0);
46   // CHECK: @llvm.hexagon.V6.pred.xor.128B
47   __builtin_HEXAGON_V6_pred_xor_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), __builtin_HEXAGON_V6_vandvrt_128B(q128, -1));
48   // CHECK: @llvm.hexagon.V6.shuffeqh.128B
49   __builtin_HEXAGON_V6_shuffeqh_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), __builtin_HEXAGON_V6_vandvrt_128B(q128, -1));
50   // CHECK: @llvm.hexagon.V6.shuffeqw.128B
51   __builtin_HEXAGON_V6_shuffeqw_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), __builtin_HEXAGON_V6_vandvrt_128B(q128, -1));
52   // CHECK: @llvm.hexagon.V6.vS32b.nqpred.ai.128B
53   __builtin_HEXAGON_V6_vS32b_nqpred_ai_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), 0, v128);
54   // CHECK: @llvm.hexagon.V6.vS32b.nt.nqpred.ai.128B
55   __builtin_HEXAGON_V6_vS32b_nt_nqpred_ai_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), 0, v128);
56   // CHECK: @llvm.hexagon.V6.vS32b.nt.qpred.ai.128B
57   __builtin_HEXAGON_V6_vS32b_nt_qpred_ai_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), 0, v128);
58   // CHECK: @llvm.hexagon.V6.vS32b.qpred.ai.128B
59   __builtin_HEXAGON_V6_vS32b_qpred_ai_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), 0, v128);
60   // CHECK: @llvm.hexagon.V6.vabsb.128B
61   __builtin_HEXAGON_V6_vabsb_128B(v128);
62   // CHECK: @llvm.hexagon.V6.vabsb.sat.128B
63   __builtin_HEXAGON_V6_vabsb_sat_128B(v128);
64   // CHECK: @llvm.hexagon.V6.vabsdiffh.128B
65   __builtin_HEXAGON_V6_vabsdiffh_128B(v128, v128);
66   // CHECK: @llvm.hexagon.V6.vabsdiffub.128B
67   __builtin_HEXAGON_V6_vabsdiffub_128B(v128, v128);
68   // CHECK: @llvm.hexagon.V6.vabsdiffuh.128B
69   __builtin_HEXAGON_V6_vabsdiffuh_128B(v128, v128);
70   // CHECK: @llvm.hexagon.V6.vabsdiffw.128B
71   __builtin_HEXAGON_V6_vabsdiffw_128B(v128, v128);
72   // CHECK: @llvm.hexagon.V6.vabsh.128B
73   __builtin_HEXAGON_V6_vabsh_128B(v128);
74   // CHECK: @llvm.hexagon.V6.vabsh.sat.128B
75   __builtin_HEXAGON_V6_vabsh_sat_128B(v128);
76   // CHECK: @llvm.hexagon.V6.vabsw.128B
77   __builtin_HEXAGON_V6_vabsw_128B(v128);
78   // CHECK: @llvm.hexagon.V6.vabsw.sat.128B
79   __builtin_HEXAGON_V6_vabsw_sat_128B(v128);
80   // CHECK: @llvm.hexagon.V6.vaddb.128B
81   __builtin_HEXAGON_V6_vaddb_128B(v128, v128);
82   // CHECK: @llvm.hexagon.V6.vaddb.dv.128B
83   __builtin_HEXAGON_V6_vaddb_dv_128B(v256, v256);
84   // CHECK: @llvm.hexagon.V6.vaddbnq.128B
85   __builtin_HEXAGON_V6_vaddbnq_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
86   // CHECK: @llvm.hexagon.V6.vaddbq.128B
87   __builtin_HEXAGON_V6_vaddbq_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
88   // CHECK: @llvm.hexagon.V6.vaddbsat.128B
89   __builtin_HEXAGON_V6_vaddbsat_128B(v128, v128);
90   // CHECK: @llvm.hexagon.V6.vaddbsat.dv.128B
91   __builtin_HEXAGON_V6_vaddbsat_dv_128B(v256, v256);
92   // CHECK: @llvm.hexagon.V6.vaddcarry.128B
93   __builtin_HEXAGON_V6_vaddcarry_128B(v128, v128, 0);
94   // CHECK: @llvm.hexagon.V6.vaddclbh.128B
95   __builtin_HEXAGON_V6_vaddclbh_128B(v128, v128);
96   // CHECK: @llvm.hexagon.V6.vaddclbw.128B
97   __builtin_HEXAGON_V6_vaddclbw_128B(v128, v128);
98   // CHECK: @llvm.hexagon.V6.vaddh.128B
99   __builtin_HEXAGON_V6_vaddh_128B(v128, v128);
100   // CHECK: @llvm.hexagon.V6.vaddh.dv.128B
101   __builtin_HEXAGON_V6_vaddh_dv_128B(v256, v256);
102   // CHECK: @llvm.hexagon.V6.vaddhnq.128B
103   __builtin_HEXAGON_V6_vaddhnq_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
104   // CHECK: @llvm.hexagon.V6.vaddhq.128B
105   __builtin_HEXAGON_V6_vaddhq_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
106   // CHECK: @llvm.hexagon.V6.vaddhsat.128B
107   __builtin_HEXAGON_V6_vaddhsat_128B(v128, v128);
108   // CHECK: @llvm.hexagon.V6.vaddhsat.dv.128B
109   __builtin_HEXAGON_V6_vaddhsat_dv_128B(v256, v256);
110   // CHECK: @llvm.hexagon.V6.vaddhw.128B
111   __builtin_HEXAGON_V6_vaddhw_128B(v128, v128);
112   // CHECK: @llvm.hexagon.V6.vaddhw.acc.128B
113   __builtin_HEXAGON_V6_vaddhw_acc_128B(v256, v128, v128);
114   // CHECK: @llvm.hexagon.V6.vaddubh.128B
115   __builtin_HEXAGON_V6_vaddubh_128B(v128, v128);
116   // CHECK: @llvm.hexagon.V6.vaddubh.acc.128B
117   __builtin_HEXAGON_V6_vaddubh_acc_128B(v256, v128, v128);
118   // CHECK: @llvm.hexagon.V6.vaddubsat.128B
119   __builtin_HEXAGON_V6_vaddubsat_128B(v128, v128);
120   // CHECK: @llvm.hexagon.V6.vaddubsat.dv.128B
121   __builtin_HEXAGON_V6_vaddubsat_dv_128B(v256, v256);
122   // CHECK: @llvm.hexagon.V6.vaddububb.sat.128B
123   __builtin_HEXAGON_V6_vaddububb_sat_128B(v128, v128);
124   // CHECK: @llvm.hexagon.V6.vadduhsat.128B
125   __builtin_HEXAGON_V6_vadduhsat_128B(v128, v128);
126   // CHECK: @llvm.hexagon.V6.vadduhsat.dv.128B
127   __builtin_HEXAGON_V6_vadduhsat_dv_128B(v256, v256);
128   // CHECK: @llvm.hexagon.V6.vadduhw.128B
129   __builtin_HEXAGON_V6_vadduhw_128B(v128, v128);
130   // CHECK: @llvm.hexagon.V6.vadduhw.acc.128B
131   __builtin_HEXAGON_V6_vadduhw_acc_128B(v256, v128, v128);
132   // CHECK: @llvm.hexagon.V6.vadduwsat.128B
133   __builtin_HEXAGON_V6_vadduwsat_128B(v128, v128);
134   // CHECK: @llvm.hexagon.V6.vadduwsat.dv.128B
135   __builtin_HEXAGON_V6_vadduwsat_dv_128B(v256, v256);
136   // CHECK: @llvm.hexagon.V6.vaddw.128B
137   __builtin_HEXAGON_V6_vaddw_128B(v128, v128);
138   // CHECK: @llvm.hexagon.V6.vaddw.dv.128B
139   __builtin_HEXAGON_V6_vaddw_dv_128B(v256, v256);
140   // CHECK: @llvm.hexagon.V6.vaddwnq.128B
141   __builtin_HEXAGON_V6_vaddwnq_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
142   // CHECK: @llvm.hexagon.V6.vaddwq.128B
143   __builtin_HEXAGON_V6_vaddwq_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
144   // CHECK: @llvm.hexagon.V6.vaddwsat.128B
145   __builtin_HEXAGON_V6_vaddwsat_128B(v128, v128);
146   // CHECK: @llvm.hexagon.V6.vaddwsat.dv.128B
147   __builtin_HEXAGON_V6_vaddwsat_dv_128B(v256, v256);
148   // CHECK: @llvm.hexagon.V6.valignb.128B
149   __builtin_HEXAGON_V6_valignb_128B(v128, v128, 0);
150   // CHECK: @llvm.hexagon.V6.valignbi.128B
151   __builtin_HEXAGON_V6_valignbi_128B(v128, v128, 0);
152   // CHECK: @llvm.hexagon.V6.vand.128B
153   __builtin_HEXAGON_V6_vand_128B(v128, v128);
154   // CHECK: @llvm.hexagon.V6.vandnqrt.128B
155   __builtin_HEXAGON_V6_vandnqrt_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), 0);
156   // CHECK: @llvm.hexagon.V6.vandnqrt.acc.128B
157   __builtin_HEXAGON_V6_vandnqrt_acc_128B(v128, __builtin_HEXAGON_V6_vandvrt_128B(q128, -1), 0);
158   // CHECK: @llvm.hexagon.V6.vandqrt.128B
159   __builtin_HEXAGON_V6_vandqrt_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), 0);
160   // CHECK: @llvm.hexagon.V6.vandqrt.acc.128B
161   __builtin_HEXAGON_V6_vandqrt_acc_128B(v128, __builtin_HEXAGON_V6_vandvrt_128B(q128, -1), 0);
162   // CHECK: @llvm.hexagon.V6.vandvnqv.128B
163   __builtin_HEXAGON_V6_vandvnqv_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128);
164   // CHECK: @llvm.hexagon.V6.vandvqv.128B
165   __builtin_HEXAGON_V6_vandvqv_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128);
166   // CHECK: @llvm.hexagon.V6.vandvrt.128B
167   __builtin_HEXAGON_V6_vandvrt_128B(v128, 0);
168   // CHECK: @llvm.hexagon.V6.vandvrt.acc.128B
169   __builtin_HEXAGON_V6_vandvrt_acc_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, 0);
170   // CHECK: @llvm.hexagon.V6.vaslh.128B
171   __builtin_HEXAGON_V6_vaslh_128B(v128, 0);
172   // CHECK: @llvm.hexagon.V6.vaslh.acc.128B
173   __builtin_HEXAGON_V6_vaslh_acc_128B(v128, v128, 0);
174   // CHECK: @llvm.hexagon.V6.vaslhv.128B
175   __builtin_HEXAGON_V6_vaslhv_128B(v128, v128);
176   // CHECK: @llvm.hexagon.V6.vaslw.128B
177   __builtin_HEXAGON_V6_vaslw_128B(v128, 0);
178   // CHECK: @llvm.hexagon.V6.vaslw.acc.128B
179   __builtin_HEXAGON_V6_vaslw_acc_128B(v128, v128, 0);
180   // CHECK: @llvm.hexagon.V6.vaslwv.128B
181   __builtin_HEXAGON_V6_vaslwv_128B(v128, v128);
182   // CHECK: @llvm.hexagon.V6.vasrh.128B
183   __builtin_HEXAGON_V6_vasrh_128B(v128, 0);
184   // CHECK: @llvm.hexagon.V6.vasrh.acc.128B
185   __builtin_HEXAGON_V6_vasrh_acc_128B(v128, v128, 0);
186   // CHECK: @llvm.hexagon.V6.vasrhbrndsat.128B
187   __builtin_HEXAGON_V6_vasrhbrndsat_128B(v128, v128, 0);
188   // CHECK: @llvm.hexagon.V6.vasrhbsat.128B
189   __builtin_HEXAGON_V6_vasrhbsat_128B(v128, v128, 0);
190   // CHECK: @llvm.hexagon.V6.vasrhubrndsat.128B
191   __builtin_HEXAGON_V6_vasrhubrndsat_128B(v128, v128, 0);
192   // CHECK: @llvm.hexagon.V6.vasrhubsat.128B
193   __builtin_HEXAGON_V6_vasrhubsat_128B(v128, v128, 0);
194   // CHECK: @llvm.hexagon.V6.vasrhv.128B
195   __builtin_HEXAGON_V6_vasrhv_128B(v128, v128);
196   // CHECK: @llvm.hexagon.V6.vasruhubrndsat.128B
197   __builtin_HEXAGON_V6_vasruhubrndsat_128B(v128, v128, 0);
198   // CHECK: @llvm.hexagon.V6.vasruhubsat.128B
199   __builtin_HEXAGON_V6_vasruhubsat_128B(v128, v128, 0);
200   // CHECK: @llvm.hexagon.V6.vasruwuhrndsat.128B
201   __builtin_HEXAGON_V6_vasruwuhrndsat_128B(v128, v128, 0);
202   // CHECK: @llvm.hexagon.V6.vasruwuhsat.128B
203   __builtin_HEXAGON_V6_vasruwuhsat_128B(v128, v128, 0);
204   // CHECK: @llvm.hexagon.V6.vasrw.128B
205   __builtin_HEXAGON_V6_vasrw_128B(v128, 0);
206   // CHECK: @llvm.hexagon.V6.vasrw.acc.128B
207   __builtin_HEXAGON_V6_vasrw_acc_128B(v128, v128, 0);
208   // CHECK: @llvm.hexagon.V6.vasrwh.128B
209   __builtin_HEXAGON_V6_vasrwh_128B(v128, v128, 0);
210   // CHECK: @llvm.hexagon.V6.vasrwhrndsat.128B
211   __builtin_HEXAGON_V6_vasrwhrndsat_128B(v128, v128, 0);
212   // CHECK: @llvm.hexagon.V6.vasrwhsat.128B
213   __builtin_HEXAGON_V6_vasrwhsat_128B(v128, v128, 0);
214   // CHECK: @llvm.hexagon.V6.vasrwuhrndsat.128B
215   __builtin_HEXAGON_V6_vasrwuhrndsat_128B(v128, v128, 0);
216   // CHECK: @llvm.hexagon.V6.vasrwuhsat.128B
217   __builtin_HEXAGON_V6_vasrwuhsat_128B(v128, v128, 0);
218   // CHECK: @llvm.hexagon.V6.vasrwv.128B
219   __builtin_HEXAGON_V6_vasrwv_128B(v128, v128);
220   // CHECK: @llvm.hexagon.V6.vassign.128B
221   __builtin_HEXAGON_V6_vassign_128B(v128);
222   // CHECK: @llvm.hexagon.V6.vassignp.128B
223   __builtin_HEXAGON_V6_vassignp_128B(v256);
224   // CHECK: @llvm.hexagon.V6.vavgb.128B
225   __builtin_HEXAGON_V6_vavgb_128B(v128, v128);
226   // CHECK: @llvm.hexagon.V6.vavgbrnd.128B
227   __builtin_HEXAGON_V6_vavgbrnd_128B(v128, v128);
228   // CHECK: @llvm.hexagon.V6.vavgh.128B
229   __builtin_HEXAGON_V6_vavgh_128B(v128, v128);
230   // CHECK: @llvm.hexagon.V6.vavghrnd.128B
231   __builtin_HEXAGON_V6_vavghrnd_128B(v128, v128);
232   // CHECK: @llvm.hexagon.V6.vavgub.128B
233   __builtin_HEXAGON_V6_vavgub_128B(v128, v128);
234   // CHECK: @llvm.hexagon.V6.vavgubrnd.128B
235   __builtin_HEXAGON_V6_vavgubrnd_128B(v128, v128);
236   // CHECK: @llvm.hexagon.V6.vavguh.128B
237   __builtin_HEXAGON_V6_vavguh_128B(v128, v128);
238   // CHECK: @llvm.hexagon.V6.vavguhrnd.128B
239   __builtin_HEXAGON_V6_vavguhrnd_128B(v128, v128);
240   // CHECK: @llvm.hexagon.V6.vavguw.128B
241   __builtin_HEXAGON_V6_vavguw_128B(v128, v128);
242   // CHECK: @llvm.hexagon.V6.vavguwrnd.128B
243   __builtin_HEXAGON_V6_vavguwrnd_128B(v128, v128);
244   // CHECK: @llvm.hexagon.V6.vavgw.128B
245   __builtin_HEXAGON_V6_vavgw_128B(v128, v128);
246   // CHECK: @llvm.hexagon.V6.vavgwrnd.128B
247   __builtin_HEXAGON_V6_vavgwrnd_128B(v128, v128);
248   // CHECK: @llvm.hexagon.V6.vcl0h.128B
249   __builtin_HEXAGON_V6_vcl0h_128B(v128);
250   // CHECK: @llvm.hexagon.V6.vcl0w.128B
251   __builtin_HEXAGON_V6_vcl0w_128B(v128);
252   // CHECK: @llvm.hexagon.V6.vcombine.128B
253   __builtin_HEXAGON_V6_vcombine_128B(v128, v128);
254   // CHECK: @llvm.hexagon.V6.vd0.128B
255   __builtin_HEXAGON_V6_vd0_128B();
256   // CHECK: @llvm.hexagon.V6.vdd0.128B
257   __builtin_HEXAGON_V6_vdd0_128B();
258   // CHECK: @llvm.hexagon.V6.vdealb.128B
259   __builtin_HEXAGON_V6_vdealb_128B(v128);
260   // CHECK: @llvm.hexagon.V6.vdealb4w.128B
261   __builtin_HEXAGON_V6_vdealb4w_128B(v128, v128);
262   // CHECK: @llvm.hexagon.V6.vdealh.128B
263   __builtin_HEXAGON_V6_vdealh_128B(v128);
264   // CHECK: @llvm.hexagon.V6.vdealvdd.128B
265   __builtin_HEXAGON_V6_vdealvdd_128B(v128, v128, 0);
266   // CHECK: @llvm.hexagon.V6.vdelta.128B
267   __builtin_HEXAGON_V6_vdelta_128B(v128, v128);
268   // CHECK: @llvm.hexagon.V6.vdmpybus.128B
269   __builtin_HEXAGON_V6_vdmpybus_128B(v128, 0);
270   // CHECK: @llvm.hexagon.V6.vdmpybus.acc.128B
271   __builtin_HEXAGON_V6_vdmpybus_acc_128B(v128, v128, 0);
272   // CHECK: @llvm.hexagon.V6.vdmpybus.dv.128B
273   __builtin_HEXAGON_V6_vdmpybus_dv_128B(v256, 0);
274   // CHECK: @llvm.hexagon.V6.vdmpybus.dv.acc.128B
275   __builtin_HEXAGON_V6_vdmpybus_dv_acc_128B(v256, v256, 0);
276   // CHECK: @llvm.hexagon.V6.vdmpyhb.128B
277   __builtin_HEXAGON_V6_vdmpyhb_128B(v128, 0);
278   // CHECK: @llvm.hexagon.V6.vdmpyhb.acc.128B
279   __builtin_HEXAGON_V6_vdmpyhb_acc_128B(v128, v128, 0);
280   // CHECK: @llvm.hexagon.V6.vdmpyhb.dv.128B
281   __builtin_HEXAGON_V6_vdmpyhb_dv_128B(v256, 0);
282   // CHECK: @llvm.hexagon.V6.vdmpyhb.dv.acc.128B
283   __builtin_HEXAGON_V6_vdmpyhb_dv_acc_128B(v256, v256, 0);
284   // CHECK: @llvm.hexagon.V6.vdmpyhisat.128B
285   __builtin_HEXAGON_V6_vdmpyhisat_128B(v256, 0);
286   // CHECK: @llvm.hexagon.V6.vdmpyhisat.acc.128B
287   __builtin_HEXAGON_V6_vdmpyhisat_acc_128B(v128, v256, 0);
288   // CHECK: @llvm.hexagon.V6.vdmpyhsat.128B
289   __builtin_HEXAGON_V6_vdmpyhsat_128B(v128, 0);
290   // CHECK: @llvm.hexagon.V6.vdmpyhsat.acc.128B
291   __builtin_HEXAGON_V6_vdmpyhsat_acc_128B(v128, v128, 0);
292   // CHECK: @llvm.hexagon.V6.vdmpyhsuisat.128B
293   __builtin_HEXAGON_V6_vdmpyhsuisat_128B(v256, 0);
294   // CHECK: @llvm.hexagon.V6.vdmpyhsuisat.acc.128B
295   __builtin_HEXAGON_V6_vdmpyhsuisat_acc_128B(v128, v256, 0);
296   // CHECK: @llvm.hexagon.V6.vdmpyhsusat.128B
297   __builtin_HEXAGON_V6_vdmpyhsusat_128B(v128, 0);
298   // CHECK: @llvm.hexagon.V6.vdmpyhsusat.acc.128B
299   __builtin_HEXAGON_V6_vdmpyhsusat_acc_128B(v128, v128, 0);
300   // CHECK: @llvm.hexagon.V6.vdmpyhvsat.128B
301   __builtin_HEXAGON_V6_vdmpyhvsat_128B(v128, v128);
302   // CHECK: @llvm.hexagon.V6.vdmpyhvsat.acc.128B
303   __builtin_HEXAGON_V6_vdmpyhvsat_acc_128B(v128, v128, v128);
304   // CHECK: @llvm.hexagon.V6.vdsaduh.128B
305   __builtin_HEXAGON_V6_vdsaduh_128B(v256, 0);
306   // CHECK: @llvm.hexagon.V6.vdsaduh.acc.128B
307   __builtin_HEXAGON_V6_vdsaduh_acc_128B(v256, v256, 0);
308   // CHECK: @llvm.hexagon.V6.veqb.128B
309   __builtin_HEXAGON_V6_veqb_128B(v128, v128);
310   // CHECK: @llvm.hexagon.V6.veqb.and.128B
311   __builtin_HEXAGON_V6_veqb_and_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
312   // CHECK: @llvm.hexagon.V6.veqb.or.128B
313   __builtin_HEXAGON_V6_veqb_or_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
314   // CHECK: @llvm.hexagon.V6.veqb.xor.128B
315   __builtin_HEXAGON_V6_veqb_xor_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
316   // CHECK: @llvm.hexagon.V6.veqh.128B
317   __builtin_HEXAGON_V6_veqh_128B(v128, v128);
318   // CHECK: @llvm.hexagon.V6.veqh.and.128B
319   __builtin_HEXAGON_V6_veqh_and_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
320   // CHECK: @llvm.hexagon.V6.veqh.or.128B
321   __builtin_HEXAGON_V6_veqh_or_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
322   // CHECK: @llvm.hexagon.V6.veqh.xor.128B
323   __builtin_HEXAGON_V6_veqh_xor_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
324   // CHECK: @llvm.hexagon.V6.veqw.128B
325   __builtin_HEXAGON_V6_veqw_128B(v128, v128);
326   // CHECK: @llvm.hexagon.V6.veqw.and.128B
327   __builtin_HEXAGON_V6_veqw_and_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
328   // CHECK: @llvm.hexagon.V6.veqw.or.128B
329   __builtin_HEXAGON_V6_veqw_or_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
330   // CHECK: @llvm.hexagon.V6.veqw.xor.128B
331   __builtin_HEXAGON_V6_veqw_xor_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
332   // CHECK: @llvm.hexagon.V6.vgathermh.128B
333   __builtin_HEXAGON_V6_vgathermh_128B(0, 0, 0, v128);
334   // CHECK: @llvm.hexagon.V6.vgathermhq.128B
335   __builtin_HEXAGON_V6_vgathermhq_128B(0, __builtin_HEXAGON_V6_vandvrt_128B(q128, -1), 0, 0, v128);
336   // CHECK: @llvm.hexagon.V6.vgathermhw.128B
337   __builtin_HEXAGON_V6_vgathermhw_128B(0, 0, 0, v256);
338   // CHECK: @llvm.hexagon.V6.vgathermhwq.128B
339   __builtin_HEXAGON_V6_vgathermhwq_128B(0, __builtin_HEXAGON_V6_vandvrt_128B(q128, -1), 0, 0, v256);
340   // CHECK: @llvm.hexagon.V6.vgathermw.128B
341   __builtin_HEXAGON_V6_vgathermw_128B(0, 0, 0, v128);
342   // CHECK: @llvm.hexagon.V6.vgathermwq.128B
343   __builtin_HEXAGON_V6_vgathermwq_128B(0, __builtin_HEXAGON_V6_vandvrt_128B(q128, -1), 0, 0, v128);
344   // CHECK: @llvm.hexagon.V6.vgtb.128B
345   __builtin_HEXAGON_V6_vgtb_128B(v128, v128);
346   // CHECK: @llvm.hexagon.V6.vgtb.and.128B
347   __builtin_HEXAGON_V6_vgtb_and_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
348   // CHECK: @llvm.hexagon.V6.vgtb.or.128B
349   __builtin_HEXAGON_V6_vgtb_or_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
350   // CHECK: @llvm.hexagon.V6.vgtb.xor.128B
351   __builtin_HEXAGON_V6_vgtb_xor_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
352   // CHECK: @llvm.hexagon.V6.vgth.128B
353   __builtin_HEXAGON_V6_vgth_128B(v128, v128);
354   // CHECK: @llvm.hexagon.V6.vgth.and.128B
355   __builtin_HEXAGON_V6_vgth_and_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
356   // CHECK: @llvm.hexagon.V6.vgth.or.128B
357   __builtin_HEXAGON_V6_vgth_or_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
358   // CHECK: @llvm.hexagon.V6.vgth.xor.128B
359   __builtin_HEXAGON_V6_vgth_xor_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
360   // CHECK: @llvm.hexagon.V6.vgtub.128B
361   __builtin_HEXAGON_V6_vgtub_128B(v128, v128);
362   // CHECK: @llvm.hexagon.V6.vgtub.and.128B
363   __builtin_HEXAGON_V6_vgtub_and_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
364   // CHECK: @llvm.hexagon.V6.vgtub.or.128B
365   __builtin_HEXAGON_V6_vgtub_or_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
366   // CHECK: @llvm.hexagon.V6.vgtub.xor.128B
367   __builtin_HEXAGON_V6_vgtub_xor_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
368   // CHECK: @llvm.hexagon.V6.vgtuh.128B
369   __builtin_HEXAGON_V6_vgtuh_128B(v128, v128);
370   // CHECK: @llvm.hexagon.V6.vgtuh.and.128B
371   __builtin_HEXAGON_V6_vgtuh_and_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
372   // CHECK: @llvm.hexagon.V6.vgtuh.or.128B
373   __builtin_HEXAGON_V6_vgtuh_or_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
374   // CHECK: @llvm.hexagon.V6.vgtuh.xor.128B
375   __builtin_HEXAGON_V6_vgtuh_xor_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
376   // CHECK: @llvm.hexagon.V6.vgtuw.128B
377   __builtin_HEXAGON_V6_vgtuw_128B(v128, v128);
378   // CHECK: @llvm.hexagon.V6.vgtuw.and.128B
379   __builtin_HEXAGON_V6_vgtuw_and_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
380   // CHECK: @llvm.hexagon.V6.vgtuw.or.128B
381   __builtin_HEXAGON_V6_vgtuw_or_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
382   // CHECK: @llvm.hexagon.V6.vgtuw.xor.128B
383   __builtin_HEXAGON_V6_vgtuw_xor_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
384   // CHECK: @llvm.hexagon.V6.vgtw.128B
385   __builtin_HEXAGON_V6_vgtw_128B(v128, v128);
386   // CHECK: @llvm.hexagon.V6.vgtw.and.128B
387   __builtin_HEXAGON_V6_vgtw_and_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
388   // CHECK: @llvm.hexagon.V6.vgtw.or.128B
389   __builtin_HEXAGON_V6_vgtw_or_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
390   // CHECK: @llvm.hexagon.V6.vgtw.xor.128B
391   __builtin_HEXAGON_V6_vgtw_xor_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
392   // CHECK: @llvm.hexagon.V6.vinsertwr.128B
393   __builtin_HEXAGON_V6_vinsertwr_128B(v128, 0);
394   // CHECK: @llvm.hexagon.V6.vlalignb.128B
395   __builtin_HEXAGON_V6_vlalignb_128B(v128, v128, 0);
396   // CHECK: @llvm.hexagon.V6.vlalignbi.128B
397   __builtin_HEXAGON_V6_vlalignbi_128B(v128, v128, 0);
398   // CHECK: @llvm.hexagon.V6.vlsrb.128B
399   __builtin_HEXAGON_V6_vlsrb_128B(v128, 0);
400   // CHECK: @llvm.hexagon.V6.vlsrh.128B
401   __builtin_HEXAGON_V6_vlsrh_128B(v128, 0);
402   // CHECK: @llvm.hexagon.V6.vlsrhv.128B
403   __builtin_HEXAGON_V6_vlsrhv_128B(v128, v128);
404   // CHECK: @llvm.hexagon.V6.vlsrw.128B
405   __builtin_HEXAGON_V6_vlsrw_128B(v128, 0);
406   // CHECK: @llvm.hexagon.V6.vlsrwv.128B
407   __builtin_HEXAGON_V6_vlsrwv_128B(v128, v128);
408   // CHECK: @llvm.hexagon.V6.vlut4.128B
409   __builtin_HEXAGON_V6_vlut4_128B(v128, 0);
410   // CHECK: @llvm.hexagon.V6.vlutvvb.128B
411   __builtin_HEXAGON_V6_vlutvvb_128B(v128, v128, 0);
412   // CHECK: @llvm.hexagon.V6.vlutvvb.nm.128B
413   __builtin_HEXAGON_V6_vlutvvb_nm_128B(v128, v128, 0);
414   // CHECK: @llvm.hexagon.V6.vlutvvb.oracc.128B
415   __builtin_HEXAGON_V6_vlutvvb_oracc_128B(v128, v128, v128, 0);
416   // CHECK: @llvm.hexagon.V6.vlutvvb.oracci.128B
417   __builtin_HEXAGON_V6_vlutvvb_oracci_128B(v128, v128, v128, 0);
418   // CHECK: @llvm.hexagon.V6.vlutvvbi.128B
419   __builtin_HEXAGON_V6_vlutvvbi_128B(v128, v128, 0);
420   // CHECK: @llvm.hexagon.V6.vlutvwh.128B
421   __builtin_HEXAGON_V6_vlutvwh_128B(v128, v128, 0);
422   // CHECK: @llvm.hexagon.V6.vlutvwh.nm.128B
423   __builtin_HEXAGON_V6_vlutvwh_nm_128B(v128, v128, 0);
424   // CHECK: @llvm.hexagon.V6.vlutvwh.oracc.128B
425   __builtin_HEXAGON_V6_vlutvwh_oracc_128B(v256, v128, v128, 0);
426   // CHECK: @llvm.hexagon.V6.vlutvwh.oracci.128B
427   __builtin_HEXAGON_V6_vlutvwh_oracci_128B(v256, v128, v128, 0);
428   // CHECK: @llvm.hexagon.V6.vlutvwhi.128B
429   __builtin_HEXAGON_V6_vlutvwhi_128B(v128, v128, 0);
430   // CHECK: @llvm.hexagon.V6.vmaxb.128B
431   __builtin_HEXAGON_V6_vmaxb_128B(v128, v128);
432   // CHECK: @llvm.hexagon.V6.vmaxh.128B
433   __builtin_HEXAGON_V6_vmaxh_128B(v128, v128);
434   // CHECK: @llvm.hexagon.V6.vmaxub.128B
435   __builtin_HEXAGON_V6_vmaxub_128B(v128, v128);
436   // CHECK: @llvm.hexagon.V6.vmaxuh.128B
437   __builtin_HEXAGON_V6_vmaxuh_128B(v128, v128);
438   // CHECK: @llvm.hexagon.V6.vmaxw.128B
439   __builtin_HEXAGON_V6_vmaxw_128B(v128, v128);
440   // CHECK: @llvm.hexagon.V6.vminb.128B
441   __builtin_HEXAGON_V6_vminb_128B(v128, v128);
442   // CHECK: @llvm.hexagon.V6.vminh.128B
443   __builtin_HEXAGON_V6_vminh_128B(v128, v128);
444   // CHECK: @llvm.hexagon.V6.vminub.128B
445   __builtin_HEXAGON_V6_vminub_128B(v128, v128);
446   // CHECK: @llvm.hexagon.V6.vminuh.128B
447   __builtin_HEXAGON_V6_vminuh_128B(v128, v128);
448   // CHECK: @llvm.hexagon.V6.vminw.128B
449   __builtin_HEXAGON_V6_vminw_128B(v128, v128);
450   // CHECK: @llvm.hexagon.V6.vmpabus.128B
451   __builtin_HEXAGON_V6_vmpabus_128B(v256, 0);
452   // CHECK: @llvm.hexagon.V6.vmpabus.acc.128B
453   __builtin_HEXAGON_V6_vmpabus_acc_128B(v256, v256, 0);
454   // CHECK: @llvm.hexagon.V6.vmpabusv.128B
455   __builtin_HEXAGON_V6_vmpabusv_128B(v256, v256);
456   // CHECK: @llvm.hexagon.V6.vmpabuu.128B
457   __builtin_HEXAGON_V6_vmpabuu_128B(v256, 0);
458   // CHECK: @llvm.hexagon.V6.vmpabuu.acc.128B
459   __builtin_HEXAGON_V6_vmpabuu_acc_128B(v256, v256, 0);
460   // CHECK: @llvm.hexagon.V6.vmpabuuv.128B
461   __builtin_HEXAGON_V6_vmpabuuv_128B(v256, v256);
462   // CHECK: @llvm.hexagon.V6.vmpahb.128B
463   __builtin_HEXAGON_V6_vmpahb_128B(v256, 0);
464   // CHECK: @llvm.hexagon.V6.vmpahb.acc.128B
465   __builtin_HEXAGON_V6_vmpahb_acc_128B(v256, v256, 0);
466   // CHECK: @llvm.hexagon.V6.vmpahhsat.128B
467   __builtin_HEXAGON_V6_vmpahhsat_128B(v128, v128, 0);
468   // CHECK: @llvm.hexagon.V6.vmpauhb.128B
469   __builtin_HEXAGON_V6_vmpauhb_128B(v256, 0);
470   // CHECK: @llvm.hexagon.V6.vmpauhb.acc.128B
471   __builtin_HEXAGON_V6_vmpauhb_acc_128B(v256, v256, 0);
472   // CHECK: @llvm.hexagon.V6.vmpauhuhsat.128B
473   __builtin_HEXAGON_V6_vmpauhuhsat_128B(v128, v128, 0);
474   // CHECK: @llvm.hexagon.V6.vmpsuhuhsat.128B
475   __builtin_HEXAGON_V6_vmpsuhuhsat_128B(v128, v128, 0);
476   // CHECK: @llvm.hexagon.V6.vmpybus.128B
477   __builtin_HEXAGON_V6_vmpybus_128B(v128, 0);
478   // CHECK: @llvm.hexagon.V6.vmpybus.acc.128B
479   __builtin_HEXAGON_V6_vmpybus_acc_128B(v256, v128, 0);
480   // CHECK: @llvm.hexagon.V6.vmpybusv.128B
481   __builtin_HEXAGON_V6_vmpybusv_128B(v128, v128);
482   // CHECK: @llvm.hexagon.V6.vmpybusv.acc.128B
483   __builtin_HEXAGON_V6_vmpybusv_acc_128B(v256, v128, v128);
484   // CHECK: @llvm.hexagon.V6.vmpybv.128B
485   __builtin_HEXAGON_V6_vmpybv_128B(v128, v128);
486   // CHECK: @llvm.hexagon.V6.vmpybv.acc.128B
487   __builtin_HEXAGON_V6_vmpybv_acc_128B(v256, v128, v128);
488   // CHECK: @llvm.hexagon.V6.vmpyewuh.128B
489   __builtin_HEXAGON_V6_vmpyewuh_128B(v128, v128);
490   // CHECK: @llvm.hexagon.V6.vmpyewuh.64.128B
491   __builtin_HEXAGON_V6_vmpyewuh_64_128B(v128, v128);
492   // CHECK: @llvm.hexagon.V6.vmpyh.128B
493   __builtin_HEXAGON_V6_vmpyh_128B(v128, 0);
494   // CHECK: @llvm.hexagon.V6.vmpyh.acc.128B
495   __builtin_HEXAGON_V6_vmpyh_acc_128B(v256, v128, 0);
496   // CHECK: @llvm.hexagon.V6.vmpyhsat.acc.128B
497   __builtin_HEXAGON_V6_vmpyhsat_acc_128B(v256, v128, 0);
498   // CHECK: @llvm.hexagon.V6.vmpyhsrs.128B
499   __builtin_HEXAGON_V6_vmpyhsrs_128B(v128, 0);
500   // CHECK: @llvm.hexagon.V6.vmpyhss.128B
501   __builtin_HEXAGON_V6_vmpyhss_128B(v128, 0);
502   // CHECK: @llvm.hexagon.V6.vmpyhus.128B
503   __builtin_HEXAGON_V6_vmpyhus_128B(v128, v128);
504   // CHECK: @llvm.hexagon.V6.vmpyhus.acc.128B
505   __builtin_HEXAGON_V6_vmpyhus_acc_128B(v256, v128, v128);
506   // CHECK: @llvm.hexagon.V6.vmpyhv.128B
507   __builtin_HEXAGON_V6_vmpyhv_128B(v128, v128);
508   // CHECK: @llvm.hexagon.V6.vmpyhv.acc.128B
509   __builtin_HEXAGON_V6_vmpyhv_acc_128B(v256, v128, v128);
510   // CHECK: @llvm.hexagon.V6.vmpyhvsrs.128B
511   __builtin_HEXAGON_V6_vmpyhvsrs_128B(v128, v128);
512   // CHECK: @llvm.hexagon.V6.vmpyieoh.128B
513   __builtin_HEXAGON_V6_vmpyieoh_128B(v128, v128);
514   // CHECK: @llvm.hexagon.V6.vmpyiewh.acc.128B
515   __builtin_HEXAGON_V6_vmpyiewh_acc_128B(v128, v128, v128);
516   // CHECK: @llvm.hexagon.V6.vmpyiewuh.128B
517   __builtin_HEXAGON_V6_vmpyiewuh_128B(v128, v128);
518   // CHECK: @llvm.hexagon.V6.vmpyiewuh.acc.128B
519   __builtin_HEXAGON_V6_vmpyiewuh_acc_128B(v128, v128, v128);
520   // CHECK: @llvm.hexagon.V6.vmpyih.128B
521   __builtin_HEXAGON_V6_vmpyih_128B(v128, v128);
522   // CHECK: @llvm.hexagon.V6.vmpyih.acc.128B
523   __builtin_HEXAGON_V6_vmpyih_acc_128B(v128, v128, v128);
524   // CHECK: @llvm.hexagon.V6.vmpyihb.128B
525   __builtin_HEXAGON_V6_vmpyihb_128B(v128, 0);
526   // CHECK: @llvm.hexagon.V6.vmpyihb.acc.128B
527   __builtin_HEXAGON_V6_vmpyihb_acc_128B(v128, v128, 0);
528   // CHECK: @llvm.hexagon.V6.vmpyiowh.128B
529   __builtin_HEXAGON_V6_vmpyiowh_128B(v128, v128);
530   // CHECK: @llvm.hexagon.V6.vmpyiwb.128B
531   __builtin_HEXAGON_V6_vmpyiwb_128B(v128, 0);
532   // CHECK: @llvm.hexagon.V6.vmpyiwb.acc.128B
533   __builtin_HEXAGON_V6_vmpyiwb_acc_128B(v128, v128, 0);
534   // CHECK: @llvm.hexagon.V6.vmpyiwh.128B
535   __builtin_HEXAGON_V6_vmpyiwh_128B(v128, 0);
536   // CHECK: @llvm.hexagon.V6.vmpyiwh.acc.128B
537   __builtin_HEXAGON_V6_vmpyiwh_acc_128B(v128, v128, 0);
538   // CHECK: @llvm.hexagon.V6.vmpyiwub.128B
539   __builtin_HEXAGON_V6_vmpyiwub_128B(v128, 0);
540   // CHECK: @llvm.hexagon.V6.vmpyiwub.acc.128B
541   __builtin_HEXAGON_V6_vmpyiwub_acc_128B(v128, v128, 0);
542   // CHECK: @llvm.hexagon.V6.vmpyowh.128B
543   __builtin_HEXAGON_V6_vmpyowh_128B(v128, v128);
544   // CHECK: @llvm.hexagon.V6.vmpyowh.64.acc.128B
545   __builtin_HEXAGON_V6_vmpyowh_64_acc_128B(v256, v128, v128);
546   // CHECK: @llvm.hexagon.V6.vmpyowh.rnd.128B
547   __builtin_HEXAGON_V6_vmpyowh_rnd_128B(v128, v128);
548   // CHECK: @llvm.hexagon.V6.vmpyowh.rnd.sacc.128B
549   __builtin_HEXAGON_V6_vmpyowh_rnd_sacc_128B(v128, v128, v128);
550   // CHECK: @llvm.hexagon.V6.vmpyowh.sacc.128B
551   __builtin_HEXAGON_V6_vmpyowh_sacc_128B(v128, v128, v128);
552   // CHECK: @llvm.hexagon.V6.vmpyub.128B
553   __builtin_HEXAGON_V6_vmpyub_128B(v128, 0);
554   // CHECK: @llvm.hexagon.V6.vmpyub.acc.128B
555   __builtin_HEXAGON_V6_vmpyub_acc_128B(v256, v128, 0);
556   // CHECK: @llvm.hexagon.V6.vmpyubv.128B
557   __builtin_HEXAGON_V6_vmpyubv_128B(v128, v128);
558   // CHECK: @llvm.hexagon.V6.vmpyubv.acc.128B
559   __builtin_HEXAGON_V6_vmpyubv_acc_128B(v256, v128, v128);
560   // CHECK: @llvm.hexagon.V6.vmpyuh.128B
561   __builtin_HEXAGON_V6_vmpyuh_128B(v128, 0);
562   // CHECK: @llvm.hexagon.V6.vmpyuh.acc.128B
563   __builtin_HEXAGON_V6_vmpyuh_acc_128B(v256, v128, 0);
564   // CHECK: @llvm.hexagon.V6.vmpyuhe.128B
565   __builtin_HEXAGON_V6_vmpyuhe_128B(v128, 0);
566   // CHECK: @llvm.hexagon.V6.vmpyuhe.acc.128B
567   __builtin_HEXAGON_V6_vmpyuhe_acc_128B(v128, v128, 0);
568   // CHECK: @llvm.hexagon.V6.vmpyuhv.128B
569   __builtin_HEXAGON_V6_vmpyuhv_128B(v128, v128);
570   // CHECK: @llvm.hexagon.V6.vmpyuhv.acc.128B
571   __builtin_HEXAGON_V6_vmpyuhv_acc_128B(v256, v128, v128);
572   // CHECK: @llvm.hexagon.V6.vmux.128B
573   __builtin_HEXAGON_V6_vmux_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
574   // CHECK: @llvm.hexagon.V6.vnavgb.128B
575   __builtin_HEXAGON_V6_vnavgb_128B(v128, v128);
576   // CHECK: @llvm.hexagon.V6.vnavgh.128B
577   __builtin_HEXAGON_V6_vnavgh_128B(v128, v128);
578   // CHECK: @llvm.hexagon.V6.vnavgub.128B
579   __builtin_HEXAGON_V6_vnavgub_128B(v128, v128);
580   // CHECK: @llvm.hexagon.V6.vnavgw.128B
581   __builtin_HEXAGON_V6_vnavgw_128B(v128, v128);
582   // CHECK: @llvm.hexagon.V6.vnormamth.128B
583   __builtin_HEXAGON_V6_vnormamth_128B(v128);
584   // CHECK: @llvm.hexagon.V6.vnormamtw.128B
585   __builtin_HEXAGON_V6_vnormamtw_128B(v128);
586   // CHECK: @llvm.hexagon.V6.vnot.128B
587   __builtin_HEXAGON_V6_vnot_128B(v128);
588   // CHECK: @llvm.hexagon.V6.vor.128B
589   __builtin_HEXAGON_V6_vor_128B(v128, v128);
590   // CHECK: @llvm.hexagon.V6.vpackeb.128B
591   __builtin_HEXAGON_V6_vpackeb_128B(v128, v128);
592   // CHECK: @llvm.hexagon.V6.vpackeh.128B
593   __builtin_HEXAGON_V6_vpackeh_128B(v128, v128);
594   // CHECK: @llvm.hexagon.V6.vpackhb.sat.128B
595   __builtin_HEXAGON_V6_vpackhb_sat_128B(v128, v128);
596   // CHECK: @llvm.hexagon.V6.vpackhub.sat.128B
597   __builtin_HEXAGON_V6_vpackhub_sat_128B(v128, v128);
598   // CHECK: @llvm.hexagon.V6.vpackob.128B
599   __builtin_HEXAGON_V6_vpackob_128B(v128, v128);
600   // CHECK: @llvm.hexagon.V6.vpackoh.128B
601   __builtin_HEXAGON_V6_vpackoh_128B(v128, v128);
602   // CHECK: @llvm.hexagon.V6.vpackwh.sat.128B
603   __builtin_HEXAGON_V6_vpackwh_sat_128B(v128, v128);
604   // CHECK: @llvm.hexagon.V6.vpackwuh.sat.128B
605   __builtin_HEXAGON_V6_vpackwuh_sat_128B(v128, v128);
606   // CHECK: @llvm.hexagon.V6.vpopcounth.128B
607   __builtin_HEXAGON_V6_vpopcounth_128B(v128);
608   // CHECK: @llvm.hexagon.V6.vprefixqb.128B
609   __builtin_HEXAGON_V6_vprefixqb_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1));
610   // CHECK: @llvm.hexagon.V6.vprefixqh.128B
611   __builtin_HEXAGON_V6_vprefixqh_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1));
612   // CHECK: @llvm.hexagon.V6.vprefixqw.128B
613   __builtin_HEXAGON_V6_vprefixqw_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1));
614   // CHECK: @llvm.hexagon.V6.vrdelta.128B
615   __builtin_HEXAGON_V6_vrdelta_128B(v128, v128);
616   // CHECK: @llvm.hexagon.V6.vrmpybub.rtt.128B
617   __builtin_HEXAGON_V6_vrmpybub_rtt_128B(v128, 0);
618   // CHECK: @llvm.hexagon.V6.vrmpybub.rtt.acc.128B
619   __builtin_HEXAGON_V6_vrmpybub_rtt_acc_128B(v256, v128, 0);
620   // CHECK: @llvm.hexagon.V6.vrmpybus.128B
621   __builtin_HEXAGON_V6_vrmpybus_128B(v128, 0);
622   // CHECK: @llvm.hexagon.V6.vrmpybus.acc.128B
623   __builtin_HEXAGON_V6_vrmpybus_acc_128B(v128, v128, 0);
624   // CHECK: @llvm.hexagon.V6.vrmpybusi.128B
625   __builtin_HEXAGON_V6_vrmpybusi_128B(v256, 0, 0);
626   // CHECK: @llvm.hexagon.V6.vrmpybusi.acc.128B
627   __builtin_HEXAGON_V6_vrmpybusi_acc_128B(v256, v256, 0, 0);
628   // CHECK: @llvm.hexagon.V6.vrmpybusv.128B
629   __builtin_HEXAGON_V6_vrmpybusv_128B(v128, v128);
630   // CHECK: @llvm.hexagon.V6.vrmpybusv.acc.128B
631   __builtin_HEXAGON_V6_vrmpybusv_acc_128B(v128, v128, v128);
632   // CHECK: @llvm.hexagon.V6.vrmpybv.128B
633   __builtin_HEXAGON_V6_vrmpybv_128B(v128, v128);
634   // CHECK: @llvm.hexagon.V6.vrmpybv.acc.128B
635   __builtin_HEXAGON_V6_vrmpybv_acc_128B(v128, v128, v128);
636   // CHECK: @llvm.hexagon.V6.vrmpyub.128B
637   __builtin_HEXAGON_V6_vrmpyub_128B(v128, 0);
638   // CHECK: @llvm.hexagon.V6.vrmpyub.acc.128B
639   __builtin_HEXAGON_V6_vrmpyub_acc_128B(v128, v128, 0);
640   // CHECK: @llvm.hexagon.V6.vrmpyub.rtt.128B
641   __builtin_HEXAGON_V6_vrmpyub_rtt_128B(v128, 0);
642   // CHECK: @llvm.hexagon.V6.vrmpyub.rtt.acc.128B
643   __builtin_HEXAGON_V6_vrmpyub_rtt_acc_128B(v256, v128, 0);
644   // CHECK: @llvm.hexagon.V6.vrmpyubi.128B
645   __builtin_HEXAGON_V6_vrmpyubi_128B(v256, 0, 0);
646   // CHECK: @llvm.hexagon.V6.vrmpyubi.acc.128B
647   __builtin_HEXAGON_V6_vrmpyubi_acc_128B(v256, v256, 0, 0);
648   // CHECK: @llvm.hexagon.V6.vrmpyubv.128B
649   __builtin_HEXAGON_V6_vrmpyubv_128B(v128, v128);
650   // CHECK: @llvm.hexagon.V6.vrmpyubv.acc.128B
651   __builtin_HEXAGON_V6_vrmpyubv_acc_128B(v128, v128, v128);
652   // CHECK: @llvm.hexagon.V6.vror.128B
653   __builtin_HEXAGON_V6_vror_128B(v128, 0);
654   // CHECK: @llvm.hexagon.V6.vroundhb.128B
655   __builtin_HEXAGON_V6_vroundhb_128B(v128, v128);
656   // CHECK: @llvm.hexagon.V6.vroundhub.128B
657   __builtin_HEXAGON_V6_vroundhub_128B(v128, v128);
658   // CHECK: @llvm.hexagon.V6.vrounduhub.128B
659   __builtin_HEXAGON_V6_vrounduhub_128B(v128, v128);
660   // CHECK: @llvm.hexagon.V6.vrounduwuh.128B
661   __builtin_HEXAGON_V6_vrounduwuh_128B(v128, v128);
662   // CHECK: @llvm.hexagon.V6.vroundwh.128B
663   __builtin_HEXAGON_V6_vroundwh_128B(v128, v128);
664   // CHECK: @llvm.hexagon.V6.vroundwuh.128B
665   __builtin_HEXAGON_V6_vroundwuh_128B(v128, v128);
666   // CHECK: @llvm.hexagon.V6.vrsadubi.128B
667   __builtin_HEXAGON_V6_vrsadubi_128B(v256, 0, 0);
668   // CHECK: @llvm.hexagon.V6.vrsadubi.acc.128B
669   __builtin_HEXAGON_V6_vrsadubi_acc_128B(v256, v256, 0, 0);
670   // CHECK: @llvm.hexagon.V6.vsathub.128B
671   __builtin_HEXAGON_V6_vsathub_128B(v128, v128);
672   // CHECK: @llvm.hexagon.V6.vsatuwuh.128B
673   __builtin_HEXAGON_V6_vsatuwuh_128B(v128, v128);
674   // CHECK: @llvm.hexagon.V6.vsatwh.128B
675   __builtin_HEXAGON_V6_vsatwh_128B(v128, v128);
676   // CHECK: @llvm.hexagon.V6.vsb.128B
677   __builtin_HEXAGON_V6_vsb_128B(v128);
678   // CHECK: @llvm.hexagon.V6.vscattermh.128B
679   __builtin_HEXAGON_V6_vscattermh_128B(0, 0, v128, v128);
680   // CHECK: @llvm.hexagon.V6.vscattermh.add.128B
681   __builtin_HEXAGON_V6_vscattermh_add_128B(0, 0, v128, v128);
682   // CHECK: @llvm.hexagon.V6.vscattermhq.128B
683   __builtin_HEXAGON_V6_vscattermhq_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), 0, 0, v128, v128);
684   // CHECK: @llvm.hexagon.V6.vscattermhw.128B
685   __builtin_HEXAGON_V6_vscattermhw_128B(0, 0, v256, v128);
686   // CHECK: @llvm.hexagon.V6.vscattermhw.add.128B
687   __builtin_HEXAGON_V6_vscattermhw_add_128B(0, 0, v256, v128);
688   // CHECK: @llvm.hexagon.V6.vscattermhwq.128B
689   __builtin_HEXAGON_V6_vscattermhwq_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), 0, 0, v256, v128);
690   // CHECK: @llvm.hexagon.V6.vscattermw.128B
691   __builtin_HEXAGON_V6_vscattermw_128B(0, 0, v128, v128);
692   // CHECK: @llvm.hexagon.V6.vscattermw.add.128B
693   __builtin_HEXAGON_V6_vscattermw_add_128B(0, 0, v128, v128);
694   // CHECK: @llvm.hexagon.V6.vscattermwq.128B
695   __builtin_HEXAGON_V6_vscattermwq_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), 0, 0, v128, v128);
696   // CHECK: @llvm.hexagon.V6.vsh.128B
697   __builtin_HEXAGON_V6_vsh_128B(v128);
698   // CHECK: @llvm.hexagon.V6.vshufeh.128B
699   __builtin_HEXAGON_V6_vshufeh_128B(v128, v128);
700   // CHECK: @llvm.hexagon.V6.vshuffb.128B
701   __builtin_HEXAGON_V6_vshuffb_128B(v128);
702   // CHECK: @llvm.hexagon.V6.vshuffeb.128B
703   __builtin_HEXAGON_V6_vshuffeb_128B(v128, v128);
704   // CHECK: @llvm.hexagon.V6.vshuffh.128B
705   __builtin_HEXAGON_V6_vshuffh_128B(v128);
706   // CHECK: @llvm.hexagon.V6.vshuffob.128B
707   __builtin_HEXAGON_V6_vshuffob_128B(v128, v128);
708   // CHECK: @llvm.hexagon.V6.vshuffvdd.128B
709   __builtin_HEXAGON_V6_vshuffvdd_128B(v128, v128, 0);
710   // CHECK: @llvm.hexagon.V6.vshufoeb.128B
711   __builtin_HEXAGON_V6_vshufoeb_128B(v128, v128);
712   // CHECK: @llvm.hexagon.V6.vshufoeh.128B
713   __builtin_HEXAGON_V6_vshufoeh_128B(v128, v128);
714   // CHECK: @llvm.hexagon.V6.vshufoh.128B
715   __builtin_HEXAGON_V6_vshufoh_128B(v128, v128);
716   // CHECK: @llvm.hexagon.V6.vsubb.128B
717   __builtin_HEXAGON_V6_vsubb_128B(v128, v128);
718   // CHECK: @llvm.hexagon.V6.vsubb.dv.128B
719   __builtin_HEXAGON_V6_vsubb_dv_128B(v256, v256);
720   // CHECK: @llvm.hexagon.V6.vsubbnq.128B
721   __builtin_HEXAGON_V6_vsubbnq_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
722   // CHECK: @llvm.hexagon.V6.vsubbq.128B
723   __builtin_HEXAGON_V6_vsubbq_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
724   // CHECK: @llvm.hexagon.V6.vsubbsat.128B
725   __builtin_HEXAGON_V6_vsubbsat_128B(v128, v128);
726   // CHECK: @llvm.hexagon.V6.vsubbsat.dv.128B
727   __builtin_HEXAGON_V6_vsubbsat_dv_128B(v256, v256);
728   // CHECK: @llvm.hexagon.V6.vsubcarry.128B
729   __builtin_HEXAGON_V6_vsubcarry_128B(v128, v128, 0);
730   // CHECK: @llvm.hexagon.V6.vsubh.128B
731   __builtin_HEXAGON_V6_vsubh_128B(v128, v128);
732   // CHECK: @llvm.hexagon.V6.vsubh.dv.128B
733   __builtin_HEXAGON_V6_vsubh_dv_128B(v256, v256);
734   // CHECK: @llvm.hexagon.V6.vsubhnq.128B
735   __builtin_HEXAGON_V6_vsubhnq_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
736   // CHECK: @llvm.hexagon.V6.vsubhq.128B
737   __builtin_HEXAGON_V6_vsubhq_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
738   // CHECK: @llvm.hexagon.V6.vsubhsat.128B
739   __builtin_HEXAGON_V6_vsubhsat_128B(v128, v128);
740   // CHECK: @llvm.hexagon.V6.vsubhsat.dv.128B
741   __builtin_HEXAGON_V6_vsubhsat_dv_128B(v256, v256);
742   // CHECK: @llvm.hexagon.V6.vsubhw.128B
743   __builtin_HEXAGON_V6_vsubhw_128B(v128, v128);
744   // CHECK: @llvm.hexagon.V6.vsububh.128B
745   __builtin_HEXAGON_V6_vsububh_128B(v128, v128);
746   // CHECK: @llvm.hexagon.V6.vsububsat.128B
747   __builtin_HEXAGON_V6_vsububsat_128B(v128, v128);
748   // CHECK: @llvm.hexagon.V6.vsububsat.dv.128B
749   __builtin_HEXAGON_V6_vsububsat_dv_128B(v256, v256);
750   // CHECK: @llvm.hexagon.V6.vsubububb.sat.128B
751   __builtin_HEXAGON_V6_vsubububb_sat_128B(v128, v128);
752   // CHECK: @llvm.hexagon.V6.vsubuhsat.128B
753   __builtin_HEXAGON_V6_vsubuhsat_128B(v128, v128);
754   // CHECK: @llvm.hexagon.V6.vsubuhsat.dv.128B
755   __builtin_HEXAGON_V6_vsubuhsat_dv_128B(v256, v256);
756   // CHECK: @llvm.hexagon.V6.vsubuhw.128B
757   __builtin_HEXAGON_V6_vsubuhw_128B(v128, v128);
758   // CHECK: @llvm.hexagon.V6.vsubuwsat.128B
759   __builtin_HEXAGON_V6_vsubuwsat_128B(v128, v128);
760   // CHECK: @llvm.hexagon.V6.vsubuwsat.dv.128B
761   __builtin_HEXAGON_V6_vsubuwsat_dv_128B(v256, v256);
762   // CHECK: @llvm.hexagon.V6.vsubw.128B
763   __builtin_HEXAGON_V6_vsubw_128B(v128, v128);
764   // CHECK: @llvm.hexagon.V6.vsubw.dv.128B
765   __builtin_HEXAGON_V6_vsubw_dv_128B(v256, v256);
766   // CHECK: @llvm.hexagon.V6.vsubwnq.128B
767   __builtin_HEXAGON_V6_vsubwnq_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
768   // CHECK: @llvm.hexagon.V6.vsubwq.128B
769   __builtin_HEXAGON_V6_vsubwq_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
770   // CHECK: @llvm.hexagon.V6.vsubwsat.128B
771   __builtin_HEXAGON_V6_vsubwsat_128B(v128, v128);
772   // CHECK: @llvm.hexagon.V6.vsubwsat.dv.128B
773   __builtin_HEXAGON_V6_vsubwsat_dv_128B(v256, v256);
774   // CHECK: @llvm.hexagon.V6.vswap.128B
775   __builtin_HEXAGON_V6_vswap_128B(__builtin_HEXAGON_V6_vandvrt_128B(q128, -1), v128, v128);
776   // CHECK: @llvm.hexagon.V6.vtmpyb.128B
777   __builtin_HEXAGON_V6_vtmpyb_128B(v256, 0);
778   // CHECK: @llvm.hexagon.V6.vtmpyb.acc.128B
779   __builtin_HEXAGON_V6_vtmpyb_acc_128B(v256, v256, 0);
780   // CHECK: @llvm.hexagon.V6.vtmpybus.128B
781   __builtin_HEXAGON_V6_vtmpybus_128B(v256, 0);
782   // CHECK: @llvm.hexagon.V6.vtmpybus.acc.128B
783   __builtin_HEXAGON_V6_vtmpybus_acc_128B(v256, v256, 0);
784   // CHECK: @llvm.hexagon.V6.vtmpyhb.128B
785   __builtin_HEXAGON_V6_vtmpyhb_128B(v256, 0);
786   // CHECK: @llvm.hexagon.V6.vtmpyhb.acc.128B
787   __builtin_HEXAGON_V6_vtmpyhb_acc_128B(v256, v256, 0);
788   // CHECK: @llvm.hexagon.V6.vunpackb.128B
789   __builtin_HEXAGON_V6_vunpackb_128B(v128);
790   // CHECK: @llvm.hexagon.V6.vunpackh.128B
791   __builtin_HEXAGON_V6_vunpackh_128B(v128);
792   // CHECK: @llvm.hexagon.V6.vunpackob.128B
793   __builtin_HEXAGON_V6_vunpackob_128B(v256, v128);
794   // CHECK: @llvm.hexagon.V6.vunpackoh.128B
795   __builtin_HEXAGON_V6_vunpackoh_128B(v256, v128);
796   // CHECK: @llvm.hexagon.V6.vunpackub.128B
797   __builtin_HEXAGON_V6_vunpackub_128B(v128);
798   // CHECK: @llvm.hexagon.V6.vunpackuh.128B
799   __builtin_HEXAGON_V6_vunpackuh_128B(v128);
800   // CHECK: @llvm.hexagon.V6.vxor.128B
801   __builtin_HEXAGON_V6_vxor_128B(v128, v128);
802   // CHECK: @llvm.hexagon.V6.vzb.128B
803   __builtin_HEXAGON_V6_vzb_128B(v128);
804   // CHECK: @llvm.hexagon.V6.vzh.128B
805   __builtin_HEXAGON_V6_vzh_128B(v128);
806 }
807