Revert "[llvm] Improve llvm.objectsize computation by computing GEP, alloca and mallo...
[llvm-project.git] / clang / test / CodeGen / builtins-hvx64.c
blob7321460c489e2a5c9779162c73cbefb035817135
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
4 void test() {
5 int q64 __attribute__((__vector_size__(64)));
6 int v64 __attribute__((__vector_size__(64)));
7 int v128 __attribute__((__vector_size__(128)));
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);
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);