Clang Project

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