xref: /llvm-project/clang/test/CodeGen/builtins-hexagon.c (revision ca9d2e923b28adec9ae1754f0bb61b2e8ada025e)
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 v64 __attribute__((__vector_size__(64)));
6   int v128 __attribute__((__vector_size__(128)));
7   int v256 __attribute__((__vector_size__(256)));
8 
9   // CHECK: @llvm.hexagon.A2.abs
10   __builtin_HEXAGON_A2_abs(0);
11   // CHECK: @llvm.hexagon.A2.absp
12   __builtin_HEXAGON_A2_absp(0);
13   // CHECK: @llvm.hexagon.A2.abssat
14   __builtin_HEXAGON_A2_abssat(0);
15   // CHECK: @llvm.hexagon.A2.add
16   __builtin_HEXAGON_A2_add(0, 0);
17   // CHECK: @llvm.hexagon.A2.addh.h16.hh
18   __builtin_HEXAGON_A2_addh_h16_hh(0, 0);
19   // CHECK: @llvm.hexagon.A2.addh.h16.hl
20   __builtin_HEXAGON_A2_addh_h16_hl(0, 0);
21   // CHECK: @llvm.hexagon.A2.addh.h16.lh
22   __builtin_HEXAGON_A2_addh_h16_lh(0, 0);
23   // CHECK: @llvm.hexagon.A2.addh.h16.ll
24   __builtin_HEXAGON_A2_addh_h16_ll(0, 0);
25   // CHECK: @llvm.hexagon.A2.addh.h16.sat.hh
26   __builtin_HEXAGON_A2_addh_h16_sat_hh(0, 0);
27   // CHECK: @llvm.hexagon.A2.addh.h16.sat.hl
28   __builtin_HEXAGON_A2_addh_h16_sat_hl(0, 0);
29   // CHECK: @llvm.hexagon.A2.addh.h16.sat.lh
30   __builtin_HEXAGON_A2_addh_h16_sat_lh(0, 0);
31   // CHECK: @llvm.hexagon.A2.addh.h16.sat.ll
32   __builtin_HEXAGON_A2_addh_h16_sat_ll(0, 0);
33   // CHECK: @llvm.hexagon.A2.addh.l16.hl
34   __builtin_HEXAGON_A2_addh_l16_hl(0, 0);
35   // CHECK: @llvm.hexagon.A2.addh.l16.ll
36   __builtin_HEXAGON_A2_addh_l16_ll(0, 0);
37   // CHECK: @llvm.hexagon.A2.addh.l16.sat.hl
38   __builtin_HEXAGON_A2_addh_l16_sat_hl(0, 0);
39   // CHECK: @llvm.hexagon.A2.addh.l16.sat.ll
40   __builtin_HEXAGON_A2_addh_l16_sat_ll(0, 0);
41   // CHECK: @llvm.hexagon.A2.addi
42   __builtin_HEXAGON_A2_addi(0, 0);
43   // CHECK: @llvm.hexagon.A2.addp
44   __builtin_HEXAGON_A2_addp(0, 0);
45   // CHECK: @llvm.hexagon.A2.addpsat
46   __builtin_HEXAGON_A2_addpsat(0, 0);
47   // CHECK: @llvm.hexagon.A2.addsat
48   __builtin_HEXAGON_A2_addsat(0, 0);
49   // CHECK: @llvm.hexagon.A2.addsp
50   __builtin_HEXAGON_A2_addsp(0, 0);
51   // CHECK: @llvm.hexagon.A2.and
52   __builtin_HEXAGON_A2_and(0, 0);
53   // CHECK: @llvm.hexagon.A2.andir
54   __builtin_HEXAGON_A2_andir(0, 0);
55   // CHECK: @llvm.hexagon.A2.andp
56   __builtin_HEXAGON_A2_andp(0, 0);
57   // CHECK: @llvm.hexagon.A2.aslh
58   __builtin_HEXAGON_A2_aslh(0);
59   // CHECK: @llvm.hexagon.A2.asrh
60   __builtin_HEXAGON_A2_asrh(0);
61   // CHECK: @llvm.hexagon.A2.combine.hh
62   __builtin_HEXAGON_A2_combine_hh(0, 0);
63   // CHECK: @llvm.hexagon.A2.combine.hl
64   __builtin_HEXAGON_A2_combine_hl(0, 0);
65   // CHECK: @llvm.hexagon.A2.combine.lh
66   __builtin_HEXAGON_A2_combine_lh(0, 0);
67   // CHECK: @llvm.hexagon.A2.combine.ll
68   __builtin_HEXAGON_A2_combine_ll(0, 0);
69   // CHECK: @llvm.hexagon.A2.combineii
70   __builtin_HEXAGON_A2_combineii(0, 0);
71   // CHECK: @llvm.hexagon.A2.combinew
72   __builtin_HEXAGON_A2_combinew(0, 0);
73   // CHECK: @llvm.hexagon.A2.max
74   __builtin_HEXAGON_A2_max(0, 0);
75   // CHECK: @llvm.hexagon.A2.maxp
76   __builtin_HEXAGON_A2_maxp(0, 0);
77   // CHECK: @llvm.hexagon.A2.maxu
78   __builtin_HEXAGON_A2_maxu(0, 0);
79   // CHECK: @llvm.hexagon.A2.maxup
80   __builtin_HEXAGON_A2_maxup(0, 0);
81   // CHECK: @llvm.hexagon.A2.min
82   __builtin_HEXAGON_A2_min(0, 0);
83   // CHECK: @llvm.hexagon.A2.minp
84   __builtin_HEXAGON_A2_minp(0, 0);
85   // CHECK: @llvm.hexagon.A2.minu
86   __builtin_HEXAGON_A2_minu(0, 0);
87   // CHECK: @llvm.hexagon.A2.minup
88   __builtin_HEXAGON_A2_minup(0, 0);
89   // CHECK: @llvm.hexagon.A2.neg
90   __builtin_HEXAGON_A2_neg(0);
91   // CHECK: @llvm.hexagon.A2.negp
92   __builtin_HEXAGON_A2_negp(0);
93   // CHECK: @llvm.hexagon.A2.negsat
94   __builtin_HEXAGON_A2_negsat(0);
95   // CHECK: @llvm.hexagon.A2.not
96   __builtin_HEXAGON_A2_not(0);
97   // CHECK: @llvm.hexagon.A2.notp
98   __builtin_HEXAGON_A2_notp(0);
99   // CHECK: @llvm.hexagon.A2.or
100   __builtin_HEXAGON_A2_or(0, 0);
101   // CHECK: @llvm.hexagon.A2.orir
102   __builtin_HEXAGON_A2_orir(0, 0);
103   // CHECK: @llvm.hexagon.A2.orp
104   __builtin_HEXAGON_A2_orp(0, 0);
105   // CHECK: @llvm.hexagon.A2.roundsat
106   __builtin_HEXAGON_A2_roundsat(0);
107   // CHECK: @llvm.hexagon.A2.sat
108   __builtin_HEXAGON_A2_sat(0);
109   // CHECK: @llvm.hexagon.A2.satb
110   __builtin_HEXAGON_A2_satb(0);
111   // CHECK: @llvm.hexagon.A2.sath
112   __builtin_HEXAGON_A2_sath(0);
113   // CHECK: @llvm.hexagon.A2.satub
114   __builtin_HEXAGON_A2_satub(0);
115   // CHECK: @llvm.hexagon.A2.satuh
116   __builtin_HEXAGON_A2_satuh(0);
117   // CHECK: @llvm.hexagon.A2.sub
118   __builtin_HEXAGON_A2_sub(0, 0);
119   // CHECK: @llvm.hexagon.A2.subh.h16.hh
120   __builtin_HEXAGON_A2_subh_h16_hh(0, 0);
121   // CHECK: @llvm.hexagon.A2.subh.h16.hl
122   __builtin_HEXAGON_A2_subh_h16_hl(0, 0);
123   // CHECK: @llvm.hexagon.A2.subh.h16.lh
124   __builtin_HEXAGON_A2_subh_h16_lh(0, 0);
125   // CHECK: @llvm.hexagon.A2.subh.h16.ll
126   __builtin_HEXAGON_A2_subh_h16_ll(0, 0);
127   // CHECK: @llvm.hexagon.A2.subh.h16.sat.hh
128   __builtin_HEXAGON_A2_subh_h16_sat_hh(0, 0);
129   // CHECK: @llvm.hexagon.A2.subh.h16.sat.hl
130   __builtin_HEXAGON_A2_subh_h16_sat_hl(0, 0);
131   // CHECK: @llvm.hexagon.A2.subh.h16.sat.lh
132   __builtin_HEXAGON_A2_subh_h16_sat_lh(0, 0);
133   // CHECK: @llvm.hexagon.A2.subh.h16.sat.ll
134   __builtin_HEXAGON_A2_subh_h16_sat_ll(0, 0);
135   // CHECK: @llvm.hexagon.A2.subh.l16.hl
136   __builtin_HEXAGON_A2_subh_l16_hl(0, 0);
137   // CHECK: @llvm.hexagon.A2.subh.l16.ll
138   __builtin_HEXAGON_A2_subh_l16_ll(0, 0);
139   // CHECK: @llvm.hexagon.A2.subh.l16.sat.hl
140   __builtin_HEXAGON_A2_subh_l16_sat_hl(0, 0);
141   // CHECK: @llvm.hexagon.A2.subh.l16.sat.ll
142   __builtin_HEXAGON_A2_subh_l16_sat_ll(0, 0);
143   // CHECK: @llvm.hexagon.A2.subp
144   __builtin_HEXAGON_A2_subp(0, 0);
145   // CHECK: @llvm.hexagon.A2.subri
146   __builtin_HEXAGON_A2_subri(0, 0);
147   // CHECK: @llvm.hexagon.A2.subsat
148   __builtin_HEXAGON_A2_subsat(0, 0);
149   // CHECK: @llvm.hexagon.A2.svaddh
150   __builtin_HEXAGON_A2_svaddh(0, 0);
151   // CHECK: @llvm.hexagon.A2.svaddhs
152   __builtin_HEXAGON_A2_svaddhs(0, 0);
153   // CHECK: @llvm.hexagon.A2.svadduhs
154   __builtin_HEXAGON_A2_svadduhs(0, 0);
155   // CHECK: @llvm.hexagon.A2.svavgh
156   __builtin_HEXAGON_A2_svavgh(0, 0);
157   // CHECK: @llvm.hexagon.A2.svavghs
158   __builtin_HEXAGON_A2_svavghs(0, 0);
159   // CHECK: @llvm.hexagon.A2.svnavgh
160   __builtin_HEXAGON_A2_svnavgh(0, 0);
161   // CHECK: @llvm.hexagon.A2.svsubh
162   __builtin_HEXAGON_A2_svsubh(0, 0);
163   // CHECK: @llvm.hexagon.A2.svsubhs
164   __builtin_HEXAGON_A2_svsubhs(0, 0);
165   // CHECK: @llvm.hexagon.A2.svsubuhs
166   __builtin_HEXAGON_A2_svsubuhs(0, 0);
167   // CHECK: @llvm.hexagon.A2.swiz
168   __builtin_HEXAGON_A2_swiz(0);
169   // CHECK: @llvm.hexagon.A2.sxtb
170   __builtin_HEXAGON_A2_sxtb(0);
171   // CHECK: @llvm.hexagon.A2.sxth
172   __builtin_HEXAGON_A2_sxth(0);
173   // CHECK: @llvm.hexagon.A2.sxtw
174   __builtin_HEXAGON_A2_sxtw(0);
175   // CHECK: @llvm.hexagon.A2.tfr
176   __builtin_HEXAGON_A2_tfr(0);
177   // CHECK: @llvm.hexagon.A2.tfrih
178   __builtin_HEXAGON_A2_tfrih(0, 0);
179   // CHECK: @llvm.hexagon.A2.tfril
180   __builtin_HEXAGON_A2_tfril(0, 0);
181   // CHECK: @llvm.hexagon.A2.tfrp
182   __builtin_HEXAGON_A2_tfrp(0);
183   // CHECK: @llvm.hexagon.A2.tfrpi
184   __builtin_HEXAGON_A2_tfrpi(0);
185   // CHECK: @llvm.hexagon.A2.tfrsi
186   __builtin_HEXAGON_A2_tfrsi(0);
187   // CHECK: @llvm.hexagon.A2.vabsh
188   __builtin_HEXAGON_A2_vabsh(0);
189   // CHECK: @llvm.hexagon.A2.vabshsat
190   __builtin_HEXAGON_A2_vabshsat(0);
191   // CHECK: @llvm.hexagon.A2.vabsw
192   __builtin_HEXAGON_A2_vabsw(0);
193   // CHECK: @llvm.hexagon.A2.vabswsat
194   __builtin_HEXAGON_A2_vabswsat(0);
195   // CHECK: @llvm.hexagon.A2.vaddb.map
196   __builtin_HEXAGON_A2_vaddb_map(0, 0);
197   // CHECK: @llvm.hexagon.A2.vaddh
198   __builtin_HEXAGON_A2_vaddh(0, 0);
199   // CHECK: @llvm.hexagon.A2.vaddhs
200   __builtin_HEXAGON_A2_vaddhs(0, 0);
201   // CHECK: @llvm.hexagon.A2.vaddub
202   __builtin_HEXAGON_A2_vaddub(0, 0);
203   // CHECK: @llvm.hexagon.A2.vaddubs
204   __builtin_HEXAGON_A2_vaddubs(0, 0);
205   // CHECK: @llvm.hexagon.A2.vadduhs
206   __builtin_HEXAGON_A2_vadduhs(0, 0);
207   // CHECK: @llvm.hexagon.A2.vaddw
208   __builtin_HEXAGON_A2_vaddw(0, 0);
209   // CHECK: @llvm.hexagon.A2.vaddws
210   __builtin_HEXAGON_A2_vaddws(0, 0);
211   // CHECK: @llvm.hexagon.A2.vavgh
212   __builtin_HEXAGON_A2_vavgh(0, 0);
213   // CHECK: @llvm.hexagon.A2.vavghcr
214   __builtin_HEXAGON_A2_vavghcr(0, 0);
215   // CHECK: @llvm.hexagon.A2.vavghr
216   __builtin_HEXAGON_A2_vavghr(0, 0);
217   // CHECK: @llvm.hexagon.A2.vavgub
218   __builtin_HEXAGON_A2_vavgub(0, 0);
219   // CHECK: @llvm.hexagon.A2.vavgubr
220   __builtin_HEXAGON_A2_vavgubr(0, 0);
221   // CHECK: @llvm.hexagon.A2.vavguh
222   __builtin_HEXAGON_A2_vavguh(0, 0);
223   // CHECK: @llvm.hexagon.A2.vavguhr
224   __builtin_HEXAGON_A2_vavguhr(0, 0);
225   // CHECK: @llvm.hexagon.A2.vavguw
226   __builtin_HEXAGON_A2_vavguw(0, 0);
227   // CHECK: @llvm.hexagon.A2.vavguwr
228   __builtin_HEXAGON_A2_vavguwr(0, 0);
229   // CHECK: @llvm.hexagon.A2.vavgw
230   __builtin_HEXAGON_A2_vavgw(0, 0);
231   // CHECK: @llvm.hexagon.A2.vavgwcr
232   __builtin_HEXAGON_A2_vavgwcr(0, 0);
233   // CHECK: @llvm.hexagon.A2.vavgwr
234   __builtin_HEXAGON_A2_vavgwr(0, 0);
235   // CHECK: @llvm.hexagon.A2.vcmpbeq
236   __builtin_HEXAGON_A2_vcmpbeq(0, 0);
237   // CHECK: @llvm.hexagon.A2.vcmpbgtu
238   __builtin_HEXAGON_A2_vcmpbgtu(0, 0);
239   // CHECK: @llvm.hexagon.A2.vcmpheq
240   __builtin_HEXAGON_A2_vcmpheq(0, 0);
241   // CHECK: @llvm.hexagon.A2.vcmphgt
242   __builtin_HEXAGON_A2_vcmphgt(0, 0);
243   // CHECK: @llvm.hexagon.A2.vcmphgtu
244   __builtin_HEXAGON_A2_vcmphgtu(0, 0);
245   // CHECK: @llvm.hexagon.A2.vcmpweq
246   __builtin_HEXAGON_A2_vcmpweq(0, 0);
247   // CHECK: @llvm.hexagon.A2.vcmpwgt
248   __builtin_HEXAGON_A2_vcmpwgt(0, 0);
249   // CHECK: @llvm.hexagon.A2.vcmpwgtu
250   __builtin_HEXAGON_A2_vcmpwgtu(0, 0);
251   // CHECK: @llvm.hexagon.A2.vconj
252   __builtin_HEXAGON_A2_vconj(0);
253   // CHECK: @llvm.hexagon.A2.vmaxb
254   __builtin_HEXAGON_A2_vmaxb(0, 0);
255   // CHECK: @llvm.hexagon.A2.vmaxh
256   __builtin_HEXAGON_A2_vmaxh(0, 0);
257   // CHECK: @llvm.hexagon.A2.vmaxub
258   __builtin_HEXAGON_A2_vmaxub(0, 0);
259   // CHECK: @llvm.hexagon.A2.vmaxuh
260   __builtin_HEXAGON_A2_vmaxuh(0, 0);
261   // CHECK: @llvm.hexagon.A2.vmaxuw
262   __builtin_HEXAGON_A2_vmaxuw(0, 0);
263   // CHECK: @llvm.hexagon.A2.vmaxw
264   __builtin_HEXAGON_A2_vmaxw(0, 0);
265   // CHECK: @llvm.hexagon.A2.vminb
266   __builtin_HEXAGON_A2_vminb(0, 0);
267   // CHECK: @llvm.hexagon.A2.vminh
268   __builtin_HEXAGON_A2_vminh(0, 0);
269   // CHECK: @llvm.hexagon.A2.vminub
270   __builtin_HEXAGON_A2_vminub(0, 0);
271   // CHECK: @llvm.hexagon.A2.vminuh
272   __builtin_HEXAGON_A2_vminuh(0, 0);
273   // CHECK: @llvm.hexagon.A2.vminuw
274   __builtin_HEXAGON_A2_vminuw(0, 0);
275   // CHECK: @llvm.hexagon.A2.vminw
276   __builtin_HEXAGON_A2_vminw(0, 0);
277   // CHECK: @llvm.hexagon.A2.vnavgh
278   __builtin_HEXAGON_A2_vnavgh(0, 0);
279   // CHECK: @llvm.hexagon.A2.vnavghcr
280   __builtin_HEXAGON_A2_vnavghcr(0, 0);
281   // CHECK: @llvm.hexagon.A2.vnavghr
282   __builtin_HEXAGON_A2_vnavghr(0, 0);
283   // CHECK: @llvm.hexagon.A2.vnavgw
284   __builtin_HEXAGON_A2_vnavgw(0, 0);
285   // CHECK: @llvm.hexagon.A2.vnavgwcr
286   __builtin_HEXAGON_A2_vnavgwcr(0, 0);
287   // CHECK: @llvm.hexagon.A2.vnavgwr
288   __builtin_HEXAGON_A2_vnavgwr(0, 0);
289   // CHECK: @llvm.hexagon.A2.vraddub
290   __builtin_HEXAGON_A2_vraddub(0, 0);
291   // CHECK: @llvm.hexagon.A2.vraddub.acc
292   __builtin_HEXAGON_A2_vraddub_acc(0, 0, 0);
293   // CHECK: @llvm.hexagon.A2.vrsadub
294   __builtin_HEXAGON_A2_vrsadub(0, 0);
295   // CHECK: @llvm.hexagon.A2.vrsadub.acc
296   __builtin_HEXAGON_A2_vrsadub_acc(0, 0, 0);
297   // CHECK: @llvm.hexagon.A2.vsubb.map
298   __builtin_HEXAGON_A2_vsubb_map(0, 0);
299   // CHECK: @llvm.hexagon.A2.vsubh
300   __builtin_HEXAGON_A2_vsubh(0, 0);
301   // CHECK: @llvm.hexagon.A2.vsubhs
302   __builtin_HEXAGON_A2_vsubhs(0, 0);
303   // CHECK: @llvm.hexagon.A2.vsubub
304   __builtin_HEXAGON_A2_vsubub(0, 0);
305   // CHECK: @llvm.hexagon.A2.vsububs
306   __builtin_HEXAGON_A2_vsububs(0, 0);
307   // CHECK: @llvm.hexagon.A2.vsubuhs
308   __builtin_HEXAGON_A2_vsubuhs(0, 0);
309   // CHECK: @llvm.hexagon.A2.vsubw
310   __builtin_HEXAGON_A2_vsubw(0, 0);
311   // CHECK: @llvm.hexagon.A2.vsubws
312   __builtin_HEXAGON_A2_vsubws(0, 0);
313   // CHECK: @llvm.hexagon.A2.xor
314   __builtin_HEXAGON_A2_xor(0, 0);
315   // CHECK: @llvm.hexagon.A2.xorp
316   __builtin_HEXAGON_A2_xorp(0, 0);
317   // CHECK: @llvm.hexagon.A2.zxtb
318   __builtin_HEXAGON_A2_zxtb(0);
319   // CHECK: @llvm.hexagon.A2.zxth
320   __builtin_HEXAGON_A2_zxth(0);
321   // CHECK: @llvm.hexagon.A4.andn
322   __builtin_HEXAGON_A4_andn(0, 0);
323   // CHECK: @llvm.hexagon.A4.andnp
324   __builtin_HEXAGON_A4_andnp(0, 0);
325   // CHECK: @llvm.hexagon.A4.bitsplit
326   __builtin_HEXAGON_A4_bitsplit(0, 0);
327   // CHECK: @llvm.hexagon.A4.bitspliti
328   __builtin_HEXAGON_A4_bitspliti(0, 0);
329   // CHECK: @llvm.hexagon.A4.boundscheck
330   __builtin_HEXAGON_A4_boundscheck(0, 0);
331   // CHECK: @llvm.hexagon.A4.cmpbeq
332   __builtin_HEXAGON_A4_cmpbeq(0, 0);
333   // CHECK: @llvm.hexagon.A4.cmpbeqi
334   __builtin_HEXAGON_A4_cmpbeqi(0, 0);
335   // CHECK: @llvm.hexagon.A4.cmpbgt
336   __builtin_HEXAGON_A4_cmpbgt(0, 0);
337   // CHECK: @llvm.hexagon.A4.cmpbgti
338   __builtin_HEXAGON_A4_cmpbgti(0, 0);
339   // CHECK: @llvm.hexagon.A4.cmpbgtu
340   __builtin_HEXAGON_A4_cmpbgtu(0, 0);
341   // CHECK: @llvm.hexagon.A4.cmpbgtui
342   __builtin_HEXAGON_A4_cmpbgtui(0, 0);
343   // CHECK: @llvm.hexagon.A4.cmpheq
344   __builtin_HEXAGON_A4_cmpheq(0, 0);
345   // CHECK: @llvm.hexagon.A4.cmpheqi
346   __builtin_HEXAGON_A4_cmpheqi(0, 0);
347   // CHECK: @llvm.hexagon.A4.cmphgt
348   __builtin_HEXAGON_A4_cmphgt(0, 0);
349   // CHECK: @llvm.hexagon.A4.cmphgti
350   __builtin_HEXAGON_A4_cmphgti(0, 0);
351   // CHECK: @llvm.hexagon.A4.cmphgtu
352   __builtin_HEXAGON_A4_cmphgtu(0, 0);
353   // CHECK: @llvm.hexagon.A4.cmphgtui
354   __builtin_HEXAGON_A4_cmphgtui(0, 0);
355   // CHECK: @llvm.hexagon.A4.combineir
356   __builtin_HEXAGON_A4_combineir(0, 0);
357   // CHECK: @llvm.hexagon.A4.combineri
358   __builtin_HEXAGON_A4_combineri(0, 0);
359   // CHECK: @llvm.hexagon.A4.cround.ri
360   __builtin_HEXAGON_A4_cround_ri(0, 0);
361   // CHECK: @llvm.hexagon.A4.cround.rr
362   __builtin_HEXAGON_A4_cround_rr(0, 0);
363   // CHECK: @llvm.hexagon.A4.modwrapu
364   __builtin_HEXAGON_A4_modwrapu(0, 0);
365   // CHECK: @llvm.hexagon.A4.orn
366   __builtin_HEXAGON_A4_orn(0, 0);
367   // CHECK: @llvm.hexagon.A4.ornp
368   __builtin_HEXAGON_A4_ornp(0, 0);
369   // CHECK: @llvm.hexagon.A4.rcmpeq
370   __builtin_HEXAGON_A4_rcmpeq(0, 0);
371   // CHECK: @llvm.hexagon.A4.rcmpeqi
372   __builtin_HEXAGON_A4_rcmpeqi(0, 0);
373   // CHECK: @llvm.hexagon.A4.rcmpneq
374   __builtin_HEXAGON_A4_rcmpneq(0, 0);
375   // CHECK: @llvm.hexagon.A4.rcmpneqi
376   __builtin_HEXAGON_A4_rcmpneqi(0, 0);
377   // CHECK: @llvm.hexagon.A4.round.ri
378   __builtin_HEXAGON_A4_round_ri(0, 0);
379   // CHECK: @llvm.hexagon.A4.round.ri.sat
380   __builtin_HEXAGON_A4_round_ri_sat(0, 0);
381   // CHECK: @llvm.hexagon.A4.round.rr
382   __builtin_HEXAGON_A4_round_rr(0, 0);
383   // CHECK: @llvm.hexagon.A4.round.rr.sat
384   __builtin_HEXAGON_A4_round_rr_sat(0, 0);
385   // CHECK: @llvm.hexagon.A4.tlbmatch
386   __builtin_HEXAGON_A4_tlbmatch(0, 0);
387   // CHECK: @llvm.hexagon.A4.vcmpbeq.any
388   __builtin_HEXAGON_A4_vcmpbeq_any(0, 0);
389   // CHECK: @llvm.hexagon.A4.vcmpbeqi
390   __builtin_HEXAGON_A4_vcmpbeqi(0, 0);
391   // CHECK: @llvm.hexagon.A4.vcmpbgt
392   __builtin_HEXAGON_A4_vcmpbgt(0, 0);
393   // CHECK: @llvm.hexagon.A4.vcmpbgti
394   __builtin_HEXAGON_A4_vcmpbgti(0, 0);
395   // CHECK: @llvm.hexagon.A4.vcmpbgtui
396   __builtin_HEXAGON_A4_vcmpbgtui(0, 0);
397   // CHECK: @llvm.hexagon.A4.vcmpheqi
398   __builtin_HEXAGON_A4_vcmpheqi(0, 0);
399   // CHECK: @llvm.hexagon.A4.vcmphgti
400   __builtin_HEXAGON_A4_vcmphgti(0, 0);
401   // CHECK: @llvm.hexagon.A4.vcmphgtui
402   __builtin_HEXAGON_A4_vcmphgtui(0, 0);
403   // CHECK: @llvm.hexagon.A4.vcmpweqi
404   __builtin_HEXAGON_A4_vcmpweqi(0, 0);
405   // CHECK: @llvm.hexagon.A4.vcmpwgti
406   __builtin_HEXAGON_A4_vcmpwgti(0, 0);
407   // CHECK: @llvm.hexagon.A4.vcmpwgtui
408   __builtin_HEXAGON_A4_vcmpwgtui(0, 0);
409   // CHECK: @llvm.hexagon.A4.vrmaxh
410   __builtin_HEXAGON_A4_vrmaxh(0, 0, 0);
411   // CHECK: @llvm.hexagon.A4.vrmaxuh
412   __builtin_HEXAGON_A4_vrmaxuh(0, 0, 0);
413   // CHECK: @llvm.hexagon.A4.vrmaxuw
414   __builtin_HEXAGON_A4_vrmaxuw(0, 0, 0);
415   // CHECK: @llvm.hexagon.A4.vrmaxw
416   __builtin_HEXAGON_A4_vrmaxw(0, 0, 0);
417   // CHECK: @llvm.hexagon.A4.vrminh
418   __builtin_HEXAGON_A4_vrminh(0, 0, 0);
419   // CHECK: @llvm.hexagon.A4.vrminuh
420   __builtin_HEXAGON_A4_vrminuh(0, 0, 0);
421   // CHECK: @llvm.hexagon.A4.vrminuw
422   __builtin_HEXAGON_A4_vrminuw(0, 0, 0);
423   // CHECK: @llvm.hexagon.A4.vrminw
424   __builtin_HEXAGON_A4_vrminw(0, 0, 0);
425   // CHECK: @llvm.hexagon.A5.vaddhubs
426   __builtin_HEXAGON_A5_vaddhubs(0, 0);
427   // CHECK: @llvm.hexagon.A6.vcmpbeq.notany
428   __builtin_HEXAGON_A6_vcmpbeq_notany(0, 0);
429   // CHECK: @llvm.hexagon.C2.all8
430   __builtin_HEXAGON_C2_all8(0);
431   // CHECK: @llvm.hexagon.C2.and
432   __builtin_HEXAGON_C2_and(0, 0);
433   // CHECK: @llvm.hexagon.C2.andn
434   __builtin_HEXAGON_C2_andn(0, 0);
435   // CHECK: @llvm.hexagon.C2.any8
436   __builtin_HEXAGON_C2_any8(0);
437   // CHECK: @llvm.hexagon.C2.bitsclr
438   __builtin_HEXAGON_C2_bitsclr(0, 0);
439   // CHECK: @llvm.hexagon.C2.bitsclri
440   __builtin_HEXAGON_C2_bitsclri(0, 0);
441   // CHECK: @llvm.hexagon.C2.bitsset
442   __builtin_HEXAGON_C2_bitsset(0, 0);
443   // CHECK: @llvm.hexagon.C2.cmpeq
444   __builtin_HEXAGON_C2_cmpeq(0, 0);
445   // CHECK: @llvm.hexagon.C2.cmpeqi
446   __builtin_HEXAGON_C2_cmpeqi(0, 0);
447   // CHECK: @llvm.hexagon.C2.cmpeqp
448   __builtin_HEXAGON_C2_cmpeqp(0, 0);
449   // CHECK: @llvm.hexagon.C2.cmpgei
450   __builtin_HEXAGON_C2_cmpgei(0, 0);
451   // CHECK: @llvm.hexagon.C2.cmpgeui
452   __builtin_HEXAGON_C2_cmpgeui(0, 0);
453   // CHECK: @llvm.hexagon.C2.cmpgt
454   __builtin_HEXAGON_C2_cmpgt(0, 0);
455   // CHECK: @llvm.hexagon.C2.cmpgti
456   __builtin_HEXAGON_C2_cmpgti(0, 0);
457   // CHECK: @llvm.hexagon.C2.cmpgtp
458   __builtin_HEXAGON_C2_cmpgtp(0, 0);
459   // CHECK: @llvm.hexagon.C2.cmpgtu
460   __builtin_HEXAGON_C2_cmpgtu(0, 0);
461   // CHECK: @llvm.hexagon.C2.cmpgtui
462   __builtin_HEXAGON_C2_cmpgtui(0, 0);
463   // CHECK: @llvm.hexagon.C2.cmpgtup
464   __builtin_HEXAGON_C2_cmpgtup(0, 0);
465   // CHECK: @llvm.hexagon.C2.cmplt
466   __builtin_HEXAGON_C2_cmplt(0, 0);
467   // CHECK: @llvm.hexagon.C2.cmpltu
468   __builtin_HEXAGON_C2_cmpltu(0, 0);
469   // CHECK: @llvm.hexagon.C2.mask
470   __builtin_HEXAGON_C2_mask(0);
471   // CHECK: @llvm.hexagon.C2.mux
472   __builtin_HEXAGON_C2_mux(0, 0, 0);
473   // CHECK: @llvm.hexagon.C2.muxii
474   __builtin_HEXAGON_C2_muxii(0, 0, 0);
475   // CHECK: @llvm.hexagon.C2.muxir
476   __builtin_HEXAGON_C2_muxir(0, 0, 0);
477   // CHECK: @llvm.hexagon.C2.muxri
478   __builtin_HEXAGON_C2_muxri(0, 0, 0);
479   // CHECK: @llvm.hexagon.C2.not
480   __builtin_HEXAGON_C2_not(0);
481   // CHECK: @llvm.hexagon.C2.or
482   __builtin_HEXAGON_C2_or(0, 0);
483   // CHECK: @llvm.hexagon.C2.orn
484   __builtin_HEXAGON_C2_orn(0, 0);
485   // CHECK: @llvm.hexagon.C2.pxfer.map
486   __builtin_HEXAGON_C2_pxfer_map(0);
487   // CHECK: @llvm.hexagon.C2.tfrpr
488   __builtin_HEXAGON_C2_tfrpr(0);
489   // CHECK: @llvm.hexagon.C2.tfrrp
490   __builtin_HEXAGON_C2_tfrrp(0);
491   // CHECK: @llvm.hexagon.C2.vitpack
492   __builtin_HEXAGON_C2_vitpack(0, 0);
493   // CHECK: @llvm.hexagon.C2.vmux
494   __builtin_HEXAGON_C2_vmux(0, 0, 0);
495   // CHECK: @llvm.hexagon.C2.xor
496   __builtin_HEXAGON_C2_xor(0, 0);
497   // CHECK: @llvm.hexagon.C4.and.and
498   __builtin_HEXAGON_C4_and_and(0, 0, 0);
499   // CHECK: @llvm.hexagon.C4.and.andn
500   __builtin_HEXAGON_C4_and_andn(0, 0, 0);
501   // CHECK: @llvm.hexagon.C4.and.or
502   __builtin_HEXAGON_C4_and_or(0, 0, 0);
503   // CHECK: @llvm.hexagon.C4.and.orn
504   __builtin_HEXAGON_C4_and_orn(0, 0, 0);
505   // CHECK: @llvm.hexagon.C4.cmplte
506   __builtin_HEXAGON_C4_cmplte(0, 0);
507   // CHECK: @llvm.hexagon.C4.cmpltei
508   __builtin_HEXAGON_C4_cmpltei(0, 0);
509   // CHECK: @llvm.hexagon.C4.cmplteu
510   __builtin_HEXAGON_C4_cmplteu(0, 0);
511   // CHECK: @llvm.hexagon.C4.cmplteui
512   __builtin_HEXAGON_C4_cmplteui(0, 0);
513   // CHECK: @llvm.hexagon.C4.cmpneq
514   __builtin_HEXAGON_C4_cmpneq(0, 0);
515   // CHECK: @llvm.hexagon.C4.cmpneqi
516   __builtin_HEXAGON_C4_cmpneqi(0, 0);
517   // CHECK: @llvm.hexagon.C4.fastcorner9
518   __builtin_HEXAGON_C4_fastcorner9(0, 0);
519   // CHECK: @llvm.hexagon.C4.fastcorner9.not
520   __builtin_HEXAGON_C4_fastcorner9_not(0, 0);
521   // CHECK: @llvm.hexagon.C4.nbitsclr
522   __builtin_HEXAGON_C4_nbitsclr(0, 0);
523   // CHECK: @llvm.hexagon.C4.nbitsclri
524   __builtin_HEXAGON_C4_nbitsclri(0, 0);
525   // CHECK: @llvm.hexagon.C4.nbitsset
526   __builtin_HEXAGON_C4_nbitsset(0, 0);
527   // CHECK: @llvm.hexagon.C4.or.and
528   __builtin_HEXAGON_C4_or_and(0, 0, 0);
529   // CHECK: @llvm.hexagon.C4.or.andn
530   __builtin_HEXAGON_C4_or_andn(0, 0, 0);
531   // CHECK: @llvm.hexagon.C4.or.or
532   __builtin_HEXAGON_C4_or_or(0, 0, 0);
533   // CHECK: @llvm.hexagon.C4.or.orn
534   __builtin_HEXAGON_C4_or_orn(0, 0, 0);
535   // CHECK: @llvm.hexagon.F2.conv.d2df
536   __builtin_HEXAGON_F2_conv_d2df(0);
537   // CHECK: @llvm.hexagon.F2.conv.d2sf
538   __builtin_HEXAGON_F2_conv_d2sf(0);
539   // CHECK: @llvm.hexagon.F2.conv.df2d
540   __builtin_HEXAGON_F2_conv_df2d(0.0);
541   // CHECK: @llvm.hexagon.F2.conv.df2d.chop
542   __builtin_HEXAGON_F2_conv_df2d_chop(0.0);
543   // CHECK: @llvm.hexagon.F2.conv.df2sf
544   __builtin_HEXAGON_F2_conv_df2sf(0.0);
545   // CHECK: @llvm.hexagon.F2.conv.df2ud
546   __builtin_HEXAGON_F2_conv_df2ud(0.0);
547   // CHECK: @llvm.hexagon.F2.conv.df2ud.chop
548   __builtin_HEXAGON_F2_conv_df2ud_chop(0.0);
549   // CHECK: @llvm.hexagon.F2.conv.df2uw
550   __builtin_HEXAGON_F2_conv_df2uw(0.0);
551   // CHECK: @llvm.hexagon.F2.conv.df2uw.chop
552   __builtin_HEXAGON_F2_conv_df2uw_chop(0.0);
553   // CHECK: @llvm.hexagon.F2.conv.df2w
554   __builtin_HEXAGON_F2_conv_df2w(0.0);
555   // CHECK: @llvm.hexagon.F2.conv.df2w.chop
556   __builtin_HEXAGON_F2_conv_df2w_chop(0.0);
557   // CHECK: @llvm.hexagon.F2.conv.sf2d
558   __builtin_HEXAGON_F2_conv_sf2d(0.0f);
559   // CHECK: @llvm.hexagon.F2.conv.sf2d.chop
560   __builtin_HEXAGON_F2_conv_sf2d_chop(0.0f);
561   // CHECK: @llvm.hexagon.F2.conv.sf2df
562   __builtin_HEXAGON_F2_conv_sf2df(0.0f);
563   // CHECK: @llvm.hexagon.F2.conv.sf2ud
564   __builtin_HEXAGON_F2_conv_sf2ud(0.0f);
565   // CHECK: @llvm.hexagon.F2.conv.sf2ud.chop
566   __builtin_HEXAGON_F2_conv_sf2ud_chop(0.0f);
567   // CHECK: @llvm.hexagon.F2.conv.sf2uw
568   __builtin_HEXAGON_F2_conv_sf2uw(0.0f);
569   // CHECK: @llvm.hexagon.F2.conv.sf2uw.chop
570   __builtin_HEXAGON_F2_conv_sf2uw_chop(0.0f);
571   // CHECK: @llvm.hexagon.F2.conv.sf2w
572   __builtin_HEXAGON_F2_conv_sf2w(0.0f);
573   // CHECK: @llvm.hexagon.F2.conv.sf2w.chop
574   __builtin_HEXAGON_F2_conv_sf2w_chop(0.0f);
575   // CHECK: @llvm.hexagon.F2.conv.ud2df
576   __builtin_HEXAGON_F2_conv_ud2df(0);
577   // CHECK: @llvm.hexagon.F2.conv.ud2sf
578   __builtin_HEXAGON_F2_conv_ud2sf(0);
579   // CHECK: @llvm.hexagon.F2.conv.uw2df
580   __builtin_HEXAGON_F2_conv_uw2df(0);
581   // CHECK: @llvm.hexagon.F2.conv.uw2sf
582   __builtin_HEXAGON_F2_conv_uw2sf(0);
583   // CHECK: @llvm.hexagon.F2.conv.w2df
584   __builtin_HEXAGON_F2_conv_w2df(0);
585   // CHECK: @llvm.hexagon.F2.conv.w2sf
586   __builtin_HEXAGON_F2_conv_w2sf(0);
587   // CHECK: @llvm.hexagon.F2.dfclass
588   __builtin_HEXAGON_F2_dfclass(0.0, 0);
589   // CHECK: @llvm.hexagon.F2.dfcmpeq
590   __builtin_HEXAGON_F2_dfcmpeq(0.0, 0.0);
591   // CHECK: @llvm.hexagon.F2.dfcmpge
592   __builtin_HEXAGON_F2_dfcmpge(0.0, 0.0);
593   // CHECK: @llvm.hexagon.F2.dfcmpgt
594   __builtin_HEXAGON_F2_dfcmpgt(0.0, 0.0);
595   // CHECK: @llvm.hexagon.F2.dfcmpuo
596   __builtin_HEXAGON_F2_dfcmpuo(0.0, 0.0);
597   // CHECK: @llvm.hexagon.F2.dfimm.n
598   __builtin_HEXAGON_F2_dfimm_n(0);
599   // CHECK: @llvm.hexagon.F2.dfimm.p
600   __builtin_HEXAGON_F2_dfimm_p(0);
601   // CHECK: @llvm.hexagon.F2.sfadd
602   __builtin_HEXAGON_F2_sfadd(0.0f, 0.0f);
603   // CHECK: @llvm.hexagon.F2.sfclass
604   __builtin_HEXAGON_F2_sfclass(0.0f, 0);
605   // CHECK: @llvm.hexagon.F2.sfcmpeq
606   __builtin_HEXAGON_F2_sfcmpeq(0.0f, 0.0f);
607   // CHECK: @llvm.hexagon.F2.sfcmpge
608   __builtin_HEXAGON_F2_sfcmpge(0.0f, 0.0f);
609   // CHECK: @llvm.hexagon.F2.sfcmpgt
610   __builtin_HEXAGON_F2_sfcmpgt(0.0f, 0.0f);
611   // CHECK: @llvm.hexagon.F2.sfcmpuo
612   __builtin_HEXAGON_F2_sfcmpuo(0.0f, 0.0f);
613   // CHECK: @llvm.hexagon.F2.sffixupd
614   __builtin_HEXAGON_F2_sffixupd(0.0f, 0.0f);
615   // CHECK: @llvm.hexagon.F2.sffixupn
616   __builtin_HEXAGON_F2_sffixupn(0.0f, 0.0f);
617   // CHECK: @llvm.hexagon.F2.sffixupr
618   __builtin_HEXAGON_F2_sffixupr(0.0f);
619   // CHECK: @llvm.hexagon.F2.sffma
620   __builtin_HEXAGON_F2_sffma(0.0f, 0.0f, 0.0f);
621   // CHECK: @llvm.hexagon.F2.sffma.lib
622   __builtin_HEXAGON_F2_sffma_lib(0.0f, 0.0f, 0.0f);
623   // CHECK: @llvm.hexagon.F2.sffma.sc
624   __builtin_HEXAGON_F2_sffma_sc(0.0f, 0.0f, 0.0f, 0);
625   // CHECK: @llvm.hexagon.F2.sffms
626   __builtin_HEXAGON_F2_sffms(0.0f, 0.0f, 0.0f);
627   // CHECK: @llvm.hexagon.F2.sffms.lib
628   __builtin_HEXAGON_F2_sffms_lib(0.0f, 0.0f, 0.0f);
629   // CHECK: @llvm.hexagon.F2.sfimm.n
630   __builtin_HEXAGON_F2_sfimm_n(0);
631   // CHECK: @llvm.hexagon.F2.sfimm.p
632   __builtin_HEXAGON_F2_sfimm_p(0);
633   // CHECK: @llvm.hexagon.F2.sfmax
634   __builtin_HEXAGON_F2_sfmax(0.0f, 0.0f);
635   // CHECK: @llvm.hexagon.F2.sfmin
636   __builtin_HEXAGON_F2_sfmin(0.0f, 0.0f);
637   // CHECK: @llvm.hexagon.F2.sfmpy
638   __builtin_HEXAGON_F2_sfmpy(0.0f, 0.0f);
639   // CHECK: @llvm.hexagon.F2.sfsub
640   __builtin_HEXAGON_F2_sfsub(0.0f, 0.0f);
641   // CHECK: @llvm.hexagon.M2.acci
642   __builtin_HEXAGON_M2_acci(0, 0, 0);
643   // CHECK: @llvm.hexagon.M2.accii
644   __builtin_HEXAGON_M2_accii(0, 0, 0);
645   // CHECK: @llvm.hexagon.M2.cmaci.s0
646   __builtin_HEXAGON_M2_cmaci_s0(0, 0, 0);
647   // CHECK: @llvm.hexagon.M2.cmacr.s0
648   __builtin_HEXAGON_M2_cmacr_s0(0, 0, 0);
649   // CHECK: @llvm.hexagon.M2.cmacs.s0
650   __builtin_HEXAGON_M2_cmacs_s0(0, 0, 0);
651   // CHECK: @llvm.hexagon.M2.cmacs.s1
652   __builtin_HEXAGON_M2_cmacs_s1(0, 0, 0);
653   // CHECK: @llvm.hexagon.M2.cmacsc.s0
654   __builtin_HEXAGON_M2_cmacsc_s0(0, 0, 0);
655   // CHECK: @llvm.hexagon.M2.cmacsc.s1
656   __builtin_HEXAGON_M2_cmacsc_s1(0, 0, 0);
657   // CHECK: @llvm.hexagon.M2.cmpyi.s0
658   __builtin_HEXAGON_M2_cmpyi_s0(0, 0);
659   // CHECK: @llvm.hexagon.M2.cmpyr.s0
660   __builtin_HEXAGON_M2_cmpyr_s0(0, 0);
661   // CHECK: @llvm.hexagon.M2.cmpyrs.s0
662   __builtin_HEXAGON_M2_cmpyrs_s0(0, 0);
663   // CHECK: @llvm.hexagon.M2.cmpyrs.s1
664   __builtin_HEXAGON_M2_cmpyrs_s1(0, 0);
665   // CHECK: @llvm.hexagon.M2.cmpyrsc.s0
666   __builtin_HEXAGON_M2_cmpyrsc_s0(0, 0);
667   // CHECK: @llvm.hexagon.M2.cmpyrsc.s1
668   __builtin_HEXAGON_M2_cmpyrsc_s1(0, 0);
669   // CHECK: @llvm.hexagon.M2.cmpys.s0
670   __builtin_HEXAGON_M2_cmpys_s0(0, 0);
671   // CHECK: @llvm.hexagon.M2.cmpys.s1
672   __builtin_HEXAGON_M2_cmpys_s1(0, 0);
673   // CHECK: @llvm.hexagon.M2.cmpysc.s0
674   __builtin_HEXAGON_M2_cmpysc_s0(0, 0);
675   // CHECK: @llvm.hexagon.M2.cmpysc.s1
676   __builtin_HEXAGON_M2_cmpysc_s1(0, 0);
677   // CHECK: @llvm.hexagon.M2.cnacs.s0
678   __builtin_HEXAGON_M2_cnacs_s0(0, 0, 0);
679   // CHECK: @llvm.hexagon.M2.cnacs.s1
680   __builtin_HEXAGON_M2_cnacs_s1(0, 0, 0);
681   // CHECK: @llvm.hexagon.M2.cnacsc.s0
682   __builtin_HEXAGON_M2_cnacsc_s0(0, 0, 0);
683   // CHECK: @llvm.hexagon.M2.cnacsc.s1
684   __builtin_HEXAGON_M2_cnacsc_s1(0, 0, 0);
685   // CHECK: @llvm.hexagon.M2.dpmpyss.acc.s0
686   __builtin_HEXAGON_M2_dpmpyss_acc_s0(0, 0, 0);
687   // CHECK: @llvm.hexagon.M2.dpmpyss.nac.s0
688   __builtin_HEXAGON_M2_dpmpyss_nac_s0(0, 0, 0);
689   // CHECK: @llvm.hexagon.M2.dpmpyss.rnd.s0
690   __builtin_HEXAGON_M2_dpmpyss_rnd_s0(0, 0);
691   // CHECK: @llvm.hexagon.M2.dpmpyss.s0
692   __builtin_HEXAGON_M2_dpmpyss_s0(0, 0);
693   // CHECK: @llvm.hexagon.M2.dpmpyuu.acc.s0
694   __builtin_HEXAGON_M2_dpmpyuu_acc_s0(0, 0, 0);
695   // CHECK: @llvm.hexagon.M2.dpmpyuu.nac.s0
696   __builtin_HEXAGON_M2_dpmpyuu_nac_s0(0, 0, 0);
697   // CHECK: @llvm.hexagon.M2.dpmpyuu.s0
698   __builtin_HEXAGON_M2_dpmpyuu_s0(0, 0);
699   // CHECK: @llvm.hexagon.M2.hmmpyh.rs1
700   __builtin_HEXAGON_M2_hmmpyh_rs1(0, 0);
701   // CHECK: @llvm.hexagon.M2.hmmpyh.s1
702   __builtin_HEXAGON_M2_hmmpyh_s1(0, 0);
703   // CHECK: @llvm.hexagon.M2.hmmpyl.rs1
704   __builtin_HEXAGON_M2_hmmpyl_rs1(0, 0);
705   // CHECK: @llvm.hexagon.M2.hmmpyl.s1
706   __builtin_HEXAGON_M2_hmmpyl_s1(0, 0);
707   // CHECK: @llvm.hexagon.M2.maci
708   __builtin_HEXAGON_M2_maci(0, 0, 0);
709   // CHECK: @llvm.hexagon.M2.macsin
710   __builtin_HEXAGON_M2_macsin(0, 0, 0);
711   // CHECK: @llvm.hexagon.M2.macsip
712   __builtin_HEXAGON_M2_macsip(0, 0, 0);
713   // CHECK: @llvm.hexagon.M2.mmachs.rs0
714   __builtin_HEXAGON_M2_mmachs_rs0(0, 0, 0);
715   // CHECK: @llvm.hexagon.M2.mmachs.rs1
716   __builtin_HEXAGON_M2_mmachs_rs1(0, 0, 0);
717   // CHECK: @llvm.hexagon.M2.mmachs.s0
718   __builtin_HEXAGON_M2_mmachs_s0(0, 0, 0);
719   // CHECK: @llvm.hexagon.M2.mmachs.s1
720   __builtin_HEXAGON_M2_mmachs_s1(0, 0, 0);
721   // CHECK: @llvm.hexagon.M2.mmacls.rs0
722   __builtin_HEXAGON_M2_mmacls_rs0(0, 0, 0);
723   // CHECK: @llvm.hexagon.M2.mmacls.rs1
724   __builtin_HEXAGON_M2_mmacls_rs1(0, 0, 0);
725   // CHECK: @llvm.hexagon.M2.mmacls.s0
726   __builtin_HEXAGON_M2_mmacls_s0(0, 0, 0);
727   // CHECK: @llvm.hexagon.M2.mmacls.s1
728   __builtin_HEXAGON_M2_mmacls_s1(0, 0, 0);
729   // CHECK: @llvm.hexagon.M2.mmacuhs.rs0
730   __builtin_HEXAGON_M2_mmacuhs_rs0(0, 0, 0);
731   // CHECK: @llvm.hexagon.M2.mmacuhs.rs1
732   __builtin_HEXAGON_M2_mmacuhs_rs1(0, 0, 0);
733   // CHECK: @llvm.hexagon.M2.mmacuhs.s0
734   __builtin_HEXAGON_M2_mmacuhs_s0(0, 0, 0);
735   // CHECK: @llvm.hexagon.M2.mmacuhs.s1
736   __builtin_HEXAGON_M2_mmacuhs_s1(0, 0, 0);
737   // CHECK: @llvm.hexagon.M2.mmaculs.rs0
738   __builtin_HEXAGON_M2_mmaculs_rs0(0, 0, 0);
739   // CHECK: @llvm.hexagon.M2.mmaculs.rs1
740   __builtin_HEXAGON_M2_mmaculs_rs1(0, 0, 0);
741   // CHECK: @llvm.hexagon.M2.mmaculs.s0
742   __builtin_HEXAGON_M2_mmaculs_s0(0, 0, 0);
743   // CHECK: @llvm.hexagon.M2.mmaculs.s1
744   __builtin_HEXAGON_M2_mmaculs_s1(0, 0, 0);
745   // CHECK: @llvm.hexagon.M2.mmpyh.rs0
746   __builtin_HEXAGON_M2_mmpyh_rs0(0, 0);
747   // CHECK: @llvm.hexagon.M2.mmpyh.rs1
748   __builtin_HEXAGON_M2_mmpyh_rs1(0, 0);
749   // CHECK: @llvm.hexagon.M2.mmpyh.s0
750   __builtin_HEXAGON_M2_mmpyh_s0(0, 0);
751   // CHECK: @llvm.hexagon.M2.mmpyh.s1
752   __builtin_HEXAGON_M2_mmpyh_s1(0, 0);
753   // CHECK: @llvm.hexagon.M2.mmpyl.rs0
754   __builtin_HEXAGON_M2_mmpyl_rs0(0, 0);
755   // CHECK: @llvm.hexagon.M2.mmpyl.rs1
756   __builtin_HEXAGON_M2_mmpyl_rs1(0, 0);
757   // CHECK: @llvm.hexagon.M2.mmpyl.s0
758   __builtin_HEXAGON_M2_mmpyl_s0(0, 0);
759   // CHECK: @llvm.hexagon.M2.mmpyl.s1
760   __builtin_HEXAGON_M2_mmpyl_s1(0, 0);
761   // CHECK: @llvm.hexagon.M2.mmpyuh.rs0
762   __builtin_HEXAGON_M2_mmpyuh_rs0(0, 0);
763   // CHECK: @llvm.hexagon.M2.mmpyuh.rs1
764   __builtin_HEXAGON_M2_mmpyuh_rs1(0, 0);
765   // CHECK: @llvm.hexagon.M2.mmpyuh.s0
766   __builtin_HEXAGON_M2_mmpyuh_s0(0, 0);
767   // CHECK: @llvm.hexagon.M2.mmpyuh.s1
768   __builtin_HEXAGON_M2_mmpyuh_s1(0, 0);
769   // CHECK: @llvm.hexagon.M2.mmpyul.rs0
770   __builtin_HEXAGON_M2_mmpyul_rs0(0, 0);
771   // CHECK: @llvm.hexagon.M2.mmpyul.rs1
772   __builtin_HEXAGON_M2_mmpyul_rs1(0, 0);
773   // CHECK: @llvm.hexagon.M2.mmpyul.s0
774   __builtin_HEXAGON_M2_mmpyul_s0(0, 0);
775   // CHECK: @llvm.hexagon.M2.mmpyul.s1
776   __builtin_HEXAGON_M2_mmpyul_s1(0, 0);
777   // CHECK: @llvm.hexagon.M2.mpy.acc.hh.s0
778   __builtin_HEXAGON_M2_mpy_acc_hh_s0(0, 0, 0);
779   // CHECK: @llvm.hexagon.M2.mpy.acc.hh.s1
780   __builtin_HEXAGON_M2_mpy_acc_hh_s1(0, 0, 0);
781   // CHECK: @llvm.hexagon.M2.mpy.acc.hl.s0
782   __builtin_HEXAGON_M2_mpy_acc_hl_s0(0, 0, 0);
783   // CHECK: @llvm.hexagon.M2.mpy.acc.hl.s1
784   __builtin_HEXAGON_M2_mpy_acc_hl_s1(0, 0, 0);
785   // CHECK: @llvm.hexagon.M2.mpy.acc.lh.s0
786   __builtin_HEXAGON_M2_mpy_acc_lh_s0(0, 0, 0);
787   // CHECK: @llvm.hexagon.M2.mpy.acc.lh.s1
788   __builtin_HEXAGON_M2_mpy_acc_lh_s1(0, 0, 0);
789   // CHECK: @llvm.hexagon.M2.mpy.acc.ll.s0
790   __builtin_HEXAGON_M2_mpy_acc_ll_s0(0, 0, 0);
791   // CHECK: @llvm.hexagon.M2.mpy.acc.ll.s1
792   __builtin_HEXAGON_M2_mpy_acc_ll_s1(0, 0, 0);
793   // CHECK: @llvm.hexagon.M2.mpy.acc.sat.hh.s0
794   __builtin_HEXAGON_M2_mpy_acc_sat_hh_s0(0, 0, 0);
795   // CHECK: @llvm.hexagon.M2.mpy.acc.sat.hh.s1
796   __builtin_HEXAGON_M2_mpy_acc_sat_hh_s1(0, 0, 0);
797   // CHECK: @llvm.hexagon.M2.mpy.acc.sat.hl.s0
798   __builtin_HEXAGON_M2_mpy_acc_sat_hl_s0(0, 0, 0);
799   // CHECK: @llvm.hexagon.M2.mpy.acc.sat.hl.s1
800   __builtin_HEXAGON_M2_mpy_acc_sat_hl_s1(0, 0, 0);
801   // CHECK: @llvm.hexagon.M2.mpy.acc.sat.lh.s0
802   __builtin_HEXAGON_M2_mpy_acc_sat_lh_s0(0, 0, 0);
803   // CHECK: @llvm.hexagon.M2.mpy.acc.sat.lh.s1
804   __builtin_HEXAGON_M2_mpy_acc_sat_lh_s1(0, 0, 0);
805   // CHECK: @llvm.hexagon.M2.mpy.acc.sat.ll.s0
806   __builtin_HEXAGON_M2_mpy_acc_sat_ll_s0(0, 0, 0);
807   // CHECK: @llvm.hexagon.M2.mpy.acc.sat.ll.s1
808   __builtin_HEXAGON_M2_mpy_acc_sat_ll_s1(0, 0, 0);
809   // CHECK: @llvm.hexagon.M2.mpy.hh.s0
810   __builtin_HEXAGON_M2_mpy_hh_s0(0, 0);
811   // CHECK: @llvm.hexagon.M2.mpy.hh.s1
812   __builtin_HEXAGON_M2_mpy_hh_s1(0, 0);
813   // CHECK: @llvm.hexagon.M2.mpy.hl.s0
814   __builtin_HEXAGON_M2_mpy_hl_s0(0, 0);
815   // CHECK: @llvm.hexagon.M2.mpy.hl.s1
816   __builtin_HEXAGON_M2_mpy_hl_s1(0, 0);
817   // CHECK: @llvm.hexagon.M2.mpy.lh.s0
818   __builtin_HEXAGON_M2_mpy_lh_s0(0, 0);
819   // CHECK: @llvm.hexagon.M2.mpy.lh.s1
820   __builtin_HEXAGON_M2_mpy_lh_s1(0, 0);
821   // CHECK: @llvm.hexagon.M2.mpy.ll.s0
822   __builtin_HEXAGON_M2_mpy_ll_s0(0, 0);
823   // CHECK: @llvm.hexagon.M2.mpy.ll.s1
824   __builtin_HEXAGON_M2_mpy_ll_s1(0, 0);
825   // CHECK: @llvm.hexagon.M2.mpy.nac.hh.s0
826   __builtin_HEXAGON_M2_mpy_nac_hh_s0(0, 0, 0);
827   // CHECK: @llvm.hexagon.M2.mpy.nac.hh.s1
828   __builtin_HEXAGON_M2_mpy_nac_hh_s1(0, 0, 0);
829   // CHECK: @llvm.hexagon.M2.mpy.nac.hl.s0
830   __builtin_HEXAGON_M2_mpy_nac_hl_s0(0, 0, 0);
831   // CHECK: @llvm.hexagon.M2.mpy.nac.hl.s1
832   __builtin_HEXAGON_M2_mpy_nac_hl_s1(0, 0, 0);
833   // CHECK: @llvm.hexagon.M2.mpy.nac.lh.s0
834   __builtin_HEXAGON_M2_mpy_nac_lh_s0(0, 0, 0);
835   // CHECK: @llvm.hexagon.M2.mpy.nac.lh.s1
836   __builtin_HEXAGON_M2_mpy_nac_lh_s1(0, 0, 0);
837   // CHECK: @llvm.hexagon.M2.mpy.nac.ll.s0
838   __builtin_HEXAGON_M2_mpy_nac_ll_s0(0, 0, 0);
839   // CHECK: @llvm.hexagon.M2.mpy.nac.ll.s1
840   __builtin_HEXAGON_M2_mpy_nac_ll_s1(0, 0, 0);
841   // CHECK: @llvm.hexagon.M2.mpy.nac.sat.hh.s0
842   __builtin_HEXAGON_M2_mpy_nac_sat_hh_s0(0, 0, 0);
843   // CHECK: @llvm.hexagon.M2.mpy.nac.sat.hh.s1
844   __builtin_HEXAGON_M2_mpy_nac_sat_hh_s1(0, 0, 0);
845   // CHECK: @llvm.hexagon.M2.mpy.nac.sat.hl.s0
846   __builtin_HEXAGON_M2_mpy_nac_sat_hl_s0(0, 0, 0);
847   // CHECK: @llvm.hexagon.M2.mpy.nac.sat.hl.s1
848   __builtin_HEXAGON_M2_mpy_nac_sat_hl_s1(0, 0, 0);
849   // CHECK: @llvm.hexagon.M2.mpy.nac.sat.lh.s0
850   __builtin_HEXAGON_M2_mpy_nac_sat_lh_s0(0, 0, 0);
851   // CHECK: @llvm.hexagon.M2.mpy.nac.sat.lh.s1
852   __builtin_HEXAGON_M2_mpy_nac_sat_lh_s1(0, 0, 0);
853   // CHECK: @llvm.hexagon.M2.mpy.nac.sat.ll.s0
854   __builtin_HEXAGON_M2_mpy_nac_sat_ll_s0(0, 0, 0);
855   // CHECK: @llvm.hexagon.M2.mpy.nac.sat.ll.s1
856   __builtin_HEXAGON_M2_mpy_nac_sat_ll_s1(0, 0, 0);
857   // CHECK: @llvm.hexagon.M2.mpy.rnd.hh.s0
858   __builtin_HEXAGON_M2_mpy_rnd_hh_s0(0, 0);
859   // CHECK: @llvm.hexagon.M2.mpy.rnd.hh.s1
860   __builtin_HEXAGON_M2_mpy_rnd_hh_s1(0, 0);
861   // CHECK: @llvm.hexagon.M2.mpy.rnd.hl.s0
862   __builtin_HEXAGON_M2_mpy_rnd_hl_s0(0, 0);
863   // CHECK: @llvm.hexagon.M2.mpy.rnd.hl.s1
864   __builtin_HEXAGON_M2_mpy_rnd_hl_s1(0, 0);
865   // CHECK: @llvm.hexagon.M2.mpy.rnd.lh.s0
866   __builtin_HEXAGON_M2_mpy_rnd_lh_s0(0, 0);
867   // CHECK: @llvm.hexagon.M2.mpy.rnd.lh.s1
868   __builtin_HEXAGON_M2_mpy_rnd_lh_s1(0, 0);
869   // CHECK: @llvm.hexagon.M2.mpy.rnd.ll.s0
870   __builtin_HEXAGON_M2_mpy_rnd_ll_s0(0, 0);
871   // CHECK: @llvm.hexagon.M2.mpy.rnd.ll.s1
872   __builtin_HEXAGON_M2_mpy_rnd_ll_s1(0, 0);
873   // CHECK: @llvm.hexagon.M2.mpy.sat.hh.s0
874   __builtin_HEXAGON_M2_mpy_sat_hh_s0(0, 0);
875   // CHECK: @llvm.hexagon.M2.mpy.sat.hh.s1
876   __builtin_HEXAGON_M2_mpy_sat_hh_s1(0, 0);
877   // CHECK: @llvm.hexagon.M2.mpy.sat.hl.s0
878   __builtin_HEXAGON_M2_mpy_sat_hl_s0(0, 0);
879   // CHECK: @llvm.hexagon.M2.mpy.sat.hl.s1
880   __builtin_HEXAGON_M2_mpy_sat_hl_s1(0, 0);
881   // CHECK: @llvm.hexagon.M2.mpy.sat.lh.s0
882   __builtin_HEXAGON_M2_mpy_sat_lh_s0(0, 0);
883   // CHECK: @llvm.hexagon.M2.mpy.sat.lh.s1
884   __builtin_HEXAGON_M2_mpy_sat_lh_s1(0, 0);
885   // CHECK: @llvm.hexagon.M2.mpy.sat.ll.s0
886   __builtin_HEXAGON_M2_mpy_sat_ll_s0(0, 0);
887   // CHECK: @llvm.hexagon.M2.mpy.sat.ll.s1
888   __builtin_HEXAGON_M2_mpy_sat_ll_s1(0, 0);
889   // CHECK: @llvm.hexagon.M2.mpy.sat.rnd.hh.s0
890   __builtin_HEXAGON_M2_mpy_sat_rnd_hh_s0(0, 0);
891   // CHECK: @llvm.hexagon.M2.mpy.sat.rnd.hh.s1
892   __builtin_HEXAGON_M2_mpy_sat_rnd_hh_s1(0, 0);
893   // CHECK: @llvm.hexagon.M2.mpy.sat.rnd.hl.s0
894   __builtin_HEXAGON_M2_mpy_sat_rnd_hl_s0(0, 0);
895   // CHECK: @llvm.hexagon.M2.mpy.sat.rnd.hl.s1
896   __builtin_HEXAGON_M2_mpy_sat_rnd_hl_s1(0, 0);
897   // CHECK: @llvm.hexagon.M2.mpy.sat.rnd.lh.s0
898   __builtin_HEXAGON_M2_mpy_sat_rnd_lh_s0(0, 0);
899   // CHECK: @llvm.hexagon.M2.mpy.sat.rnd.lh.s1
900   __builtin_HEXAGON_M2_mpy_sat_rnd_lh_s1(0, 0);
901   // CHECK: @llvm.hexagon.M2.mpy.sat.rnd.ll.s0
902   __builtin_HEXAGON_M2_mpy_sat_rnd_ll_s0(0, 0);
903   // CHECK: @llvm.hexagon.M2.mpy.sat.rnd.ll.s1
904   __builtin_HEXAGON_M2_mpy_sat_rnd_ll_s1(0, 0);
905   // CHECK: @llvm.hexagon.M2.mpy.up
906   __builtin_HEXAGON_M2_mpy_up(0, 0);
907   // CHECK: @llvm.hexagon.M2.mpy.up.s1
908   __builtin_HEXAGON_M2_mpy_up_s1(0, 0);
909   // CHECK: @llvm.hexagon.M2.mpy.up.s1.sat
910   __builtin_HEXAGON_M2_mpy_up_s1_sat(0, 0);
911   // CHECK: @llvm.hexagon.M2.mpyd.acc.hh.s0
912   __builtin_HEXAGON_M2_mpyd_acc_hh_s0(0, 0, 0);
913   // CHECK: @llvm.hexagon.M2.mpyd.acc.hh.s1
914   __builtin_HEXAGON_M2_mpyd_acc_hh_s1(0, 0, 0);
915   // CHECK: @llvm.hexagon.M2.mpyd.acc.hl.s0
916   __builtin_HEXAGON_M2_mpyd_acc_hl_s0(0, 0, 0);
917   // CHECK: @llvm.hexagon.M2.mpyd.acc.hl.s1
918   __builtin_HEXAGON_M2_mpyd_acc_hl_s1(0, 0, 0);
919   // CHECK: @llvm.hexagon.M2.mpyd.acc.lh.s0
920   __builtin_HEXAGON_M2_mpyd_acc_lh_s0(0, 0, 0);
921   // CHECK: @llvm.hexagon.M2.mpyd.acc.lh.s1
922   __builtin_HEXAGON_M2_mpyd_acc_lh_s1(0, 0, 0);
923   // CHECK: @llvm.hexagon.M2.mpyd.acc.ll.s0
924   __builtin_HEXAGON_M2_mpyd_acc_ll_s0(0, 0, 0);
925   // CHECK: @llvm.hexagon.M2.mpyd.acc.ll.s1
926   __builtin_HEXAGON_M2_mpyd_acc_ll_s1(0, 0, 0);
927   // CHECK: @llvm.hexagon.M2.mpyd.hh.s0
928   __builtin_HEXAGON_M2_mpyd_hh_s0(0, 0);
929   // CHECK: @llvm.hexagon.M2.mpyd.hh.s1
930   __builtin_HEXAGON_M2_mpyd_hh_s1(0, 0);
931   // CHECK: @llvm.hexagon.M2.mpyd.hl.s0
932   __builtin_HEXAGON_M2_mpyd_hl_s0(0, 0);
933   // CHECK: @llvm.hexagon.M2.mpyd.hl.s1
934   __builtin_HEXAGON_M2_mpyd_hl_s1(0, 0);
935   // CHECK: @llvm.hexagon.M2.mpyd.lh.s0
936   __builtin_HEXAGON_M2_mpyd_lh_s0(0, 0);
937   // CHECK: @llvm.hexagon.M2.mpyd.lh.s1
938   __builtin_HEXAGON_M2_mpyd_lh_s1(0, 0);
939   // CHECK: @llvm.hexagon.M2.mpyd.ll.s0
940   __builtin_HEXAGON_M2_mpyd_ll_s0(0, 0);
941   // CHECK: @llvm.hexagon.M2.mpyd.ll.s1
942   __builtin_HEXAGON_M2_mpyd_ll_s1(0, 0);
943   // CHECK: @llvm.hexagon.M2.mpyd.nac.hh.s0
944   __builtin_HEXAGON_M2_mpyd_nac_hh_s0(0, 0, 0);
945   // CHECK: @llvm.hexagon.M2.mpyd.nac.hh.s1
946   __builtin_HEXAGON_M2_mpyd_nac_hh_s1(0, 0, 0);
947   // CHECK: @llvm.hexagon.M2.mpyd.nac.hl.s0
948   __builtin_HEXAGON_M2_mpyd_nac_hl_s0(0, 0, 0);
949   // CHECK: @llvm.hexagon.M2.mpyd.nac.hl.s1
950   __builtin_HEXAGON_M2_mpyd_nac_hl_s1(0, 0, 0);
951   // CHECK: @llvm.hexagon.M2.mpyd.nac.lh.s0
952   __builtin_HEXAGON_M2_mpyd_nac_lh_s0(0, 0, 0);
953   // CHECK: @llvm.hexagon.M2.mpyd.nac.lh.s1
954   __builtin_HEXAGON_M2_mpyd_nac_lh_s1(0, 0, 0);
955   // CHECK: @llvm.hexagon.M2.mpyd.nac.ll.s0
956   __builtin_HEXAGON_M2_mpyd_nac_ll_s0(0, 0, 0);
957   // CHECK: @llvm.hexagon.M2.mpyd.nac.ll.s1
958   __builtin_HEXAGON_M2_mpyd_nac_ll_s1(0, 0, 0);
959   // CHECK: @llvm.hexagon.M2.mpyd.rnd.hh.s0
960   __builtin_HEXAGON_M2_mpyd_rnd_hh_s0(0, 0);
961   // CHECK: @llvm.hexagon.M2.mpyd.rnd.hh.s1
962   __builtin_HEXAGON_M2_mpyd_rnd_hh_s1(0, 0);
963   // CHECK: @llvm.hexagon.M2.mpyd.rnd.hl.s0
964   __builtin_HEXAGON_M2_mpyd_rnd_hl_s0(0, 0);
965   // CHECK: @llvm.hexagon.M2.mpyd.rnd.hl.s1
966   __builtin_HEXAGON_M2_mpyd_rnd_hl_s1(0, 0);
967   // CHECK: @llvm.hexagon.M2.mpyd.rnd.lh.s0
968   __builtin_HEXAGON_M2_mpyd_rnd_lh_s0(0, 0);
969   // CHECK: @llvm.hexagon.M2.mpyd.rnd.lh.s1
970   __builtin_HEXAGON_M2_mpyd_rnd_lh_s1(0, 0);
971   // CHECK: @llvm.hexagon.M2.mpyd.rnd.ll.s0
972   __builtin_HEXAGON_M2_mpyd_rnd_ll_s0(0, 0);
973   // CHECK: @llvm.hexagon.M2.mpyd.rnd.ll.s1
974   __builtin_HEXAGON_M2_mpyd_rnd_ll_s1(0, 0);
975   // CHECK: @llvm.hexagon.M2.mpyi
976   __builtin_HEXAGON_M2_mpyi(0, 0);
977   // CHECK: @llvm.hexagon.M2.mpysmi
978   __builtin_HEXAGON_M2_mpysmi(0, 0);
979   // CHECK: @llvm.hexagon.M2.mpysu.up
980   __builtin_HEXAGON_M2_mpysu_up(0, 0);
981   // CHECK: @llvm.hexagon.M2.mpyu.acc.hh.s0
982   __builtin_HEXAGON_M2_mpyu_acc_hh_s0(0, 0, 0);
983   // CHECK: @llvm.hexagon.M2.mpyu.acc.hh.s1
984   __builtin_HEXAGON_M2_mpyu_acc_hh_s1(0, 0, 0);
985   // CHECK: @llvm.hexagon.M2.mpyu.acc.hl.s0
986   __builtin_HEXAGON_M2_mpyu_acc_hl_s0(0, 0, 0);
987   // CHECK: @llvm.hexagon.M2.mpyu.acc.hl.s1
988   __builtin_HEXAGON_M2_mpyu_acc_hl_s1(0, 0, 0);
989   // CHECK: @llvm.hexagon.M2.mpyu.acc.lh.s0
990   __builtin_HEXAGON_M2_mpyu_acc_lh_s0(0, 0, 0);
991   // CHECK: @llvm.hexagon.M2.mpyu.acc.lh.s1
992   __builtin_HEXAGON_M2_mpyu_acc_lh_s1(0, 0, 0);
993   // CHECK: @llvm.hexagon.M2.mpyu.acc.ll.s0
994   __builtin_HEXAGON_M2_mpyu_acc_ll_s0(0, 0, 0);
995   // CHECK: @llvm.hexagon.M2.mpyu.acc.ll.s1
996   __builtin_HEXAGON_M2_mpyu_acc_ll_s1(0, 0, 0);
997   // CHECK: @llvm.hexagon.M2.mpyu.hh.s0
998   __builtin_HEXAGON_M2_mpyu_hh_s0(0, 0);
999   // CHECK: @llvm.hexagon.M2.mpyu.hh.s1
1000   __builtin_HEXAGON_M2_mpyu_hh_s1(0, 0);
1001   // CHECK: @llvm.hexagon.M2.mpyu.hl.s0
1002   __builtin_HEXAGON_M2_mpyu_hl_s0(0, 0);
1003   // CHECK: @llvm.hexagon.M2.mpyu.hl.s1
1004   __builtin_HEXAGON_M2_mpyu_hl_s1(0, 0);
1005   // CHECK: @llvm.hexagon.M2.mpyu.lh.s0
1006   __builtin_HEXAGON_M2_mpyu_lh_s0(0, 0);
1007   // CHECK: @llvm.hexagon.M2.mpyu.lh.s1
1008   __builtin_HEXAGON_M2_mpyu_lh_s1(0, 0);
1009   // CHECK: @llvm.hexagon.M2.mpyu.ll.s0
1010   __builtin_HEXAGON_M2_mpyu_ll_s0(0, 0);
1011   // CHECK: @llvm.hexagon.M2.mpyu.ll.s1
1012   __builtin_HEXAGON_M2_mpyu_ll_s1(0, 0);
1013   // CHECK: @llvm.hexagon.M2.mpyu.nac.hh.s0
1014   __builtin_HEXAGON_M2_mpyu_nac_hh_s0(0, 0, 0);
1015   // CHECK: @llvm.hexagon.M2.mpyu.nac.hh.s1
1016   __builtin_HEXAGON_M2_mpyu_nac_hh_s1(0, 0, 0);
1017   // CHECK: @llvm.hexagon.M2.mpyu.nac.hl.s0
1018   __builtin_HEXAGON_M2_mpyu_nac_hl_s0(0, 0, 0);
1019   // CHECK: @llvm.hexagon.M2.mpyu.nac.hl.s1
1020   __builtin_HEXAGON_M2_mpyu_nac_hl_s1(0, 0, 0);
1021   // CHECK: @llvm.hexagon.M2.mpyu.nac.lh.s0
1022   __builtin_HEXAGON_M2_mpyu_nac_lh_s0(0, 0, 0);
1023   // CHECK: @llvm.hexagon.M2.mpyu.nac.lh.s1
1024   __builtin_HEXAGON_M2_mpyu_nac_lh_s1(0, 0, 0);
1025   // CHECK: @llvm.hexagon.M2.mpyu.nac.ll.s0
1026   __builtin_HEXAGON_M2_mpyu_nac_ll_s0(0, 0, 0);
1027   // CHECK: @llvm.hexagon.M2.mpyu.nac.ll.s1
1028   __builtin_HEXAGON_M2_mpyu_nac_ll_s1(0, 0, 0);
1029   // CHECK: @llvm.hexagon.M2.mpyu.up
1030   __builtin_HEXAGON_M2_mpyu_up(0, 0);
1031   // CHECK: @llvm.hexagon.M2.mpyud.acc.hh.s0
1032   __builtin_HEXAGON_M2_mpyud_acc_hh_s0(0, 0, 0);
1033   // CHECK: @llvm.hexagon.M2.mpyud.acc.hh.s1
1034   __builtin_HEXAGON_M2_mpyud_acc_hh_s1(0, 0, 0);
1035   // CHECK: @llvm.hexagon.M2.mpyud.acc.hl.s0
1036   __builtin_HEXAGON_M2_mpyud_acc_hl_s0(0, 0, 0);
1037   // CHECK: @llvm.hexagon.M2.mpyud.acc.hl.s1
1038   __builtin_HEXAGON_M2_mpyud_acc_hl_s1(0, 0, 0);
1039   // CHECK: @llvm.hexagon.M2.mpyud.acc.lh.s0
1040   __builtin_HEXAGON_M2_mpyud_acc_lh_s0(0, 0, 0);
1041   // CHECK: @llvm.hexagon.M2.mpyud.acc.lh.s1
1042   __builtin_HEXAGON_M2_mpyud_acc_lh_s1(0, 0, 0);
1043   // CHECK: @llvm.hexagon.M2.mpyud.acc.ll.s0
1044   __builtin_HEXAGON_M2_mpyud_acc_ll_s0(0, 0, 0);
1045   // CHECK: @llvm.hexagon.M2.mpyud.acc.ll.s1
1046   __builtin_HEXAGON_M2_mpyud_acc_ll_s1(0, 0, 0);
1047   // CHECK: @llvm.hexagon.M2.mpyud.hh.s0
1048   __builtin_HEXAGON_M2_mpyud_hh_s0(0, 0);
1049   // CHECK: @llvm.hexagon.M2.mpyud.hh.s1
1050   __builtin_HEXAGON_M2_mpyud_hh_s1(0, 0);
1051   // CHECK: @llvm.hexagon.M2.mpyud.hl.s0
1052   __builtin_HEXAGON_M2_mpyud_hl_s0(0, 0);
1053   // CHECK: @llvm.hexagon.M2.mpyud.hl.s1
1054   __builtin_HEXAGON_M2_mpyud_hl_s1(0, 0);
1055   // CHECK: @llvm.hexagon.M2.mpyud.lh.s0
1056   __builtin_HEXAGON_M2_mpyud_lh_s0(0, 0);
1057   // CHECK: @llvm.hexagon.M2.mpyud.lh.s1
1058   __builtin_HEXAGON_M2_mpyud_lh_s1(0, 0);
1059   // CHECK: @llvm.hexagon.M2.mpyud.ll.s0
1060   __builtin_HEXAGON_M2_mpyud_ll_s0(0, 0);
1061   // CHECK: @llvm.hexagon.M2.mpyud.ll.s1
1062   __builtin_HEXAGON_M2_mpyud_ll_s1(0, 0);
1063   // CHECK: @llvm.hexagon.M2.mpyud.nac.hh.s0
1064   __builtin_HEXAGON_M2_mpyud_nac_hh_s0(0, 0, 0);
1065   // CHECK: @llvm.hexagon.M2.mpyud.nac.hh.s1
1066   __builtin_HEXAGON_M2_mpyud_nac_hh_s1(0, 0, 0);
1067   // CHECK: @llvm.hexagon.M2.mpyud.nac.hl.s0
1068   __builtin_HEXAGON_M2_mpyud_nac_hl_s0(0, 0, 0);
1069   // CHECK: @llvm.hexagon.M2.mpyud.nac.hl.s1
1070   __builtin_HEXAGON_M2_mpyud_nac_hl_s1(0, 0, 0);
1071   // CHECK: @llvm.hexagon.M2.mpyud.nac.lh.s0
1072   __builtin_HEXAGON_M2_mpyud_nac_lh_s0(0, 0, 0);
1073   // CHECK: @llvm.hexagon.M2.mpyud.nac.lh.s1
1074   __builtin_HEXAGON_M2_mpyud_nac_lh_s1(0, 0, 0);
1075   // CHECK: @llvm.hexagon.M2.mpyud.nac.ll.s0
1076   __builtin_HEXAGON_M2_mpyud_nac_ll_s0(0, 0, 0);
1077   // CHECK: @llvm.hexagon.M2.mpyud.nac.ll.s1
1078   __builtin_HEXAGON_M2_mpyud_nac_ll_s1(0, 0, 0);
1079   // CHECK: @llvm.hexagon.M2.mpyui
1080   __builtin_HEXAGON_M2_mpyui(0, 0);
1081   // CHECK: @llvm.hexagon.M2.nacci
1082   __builtin_HEXAGON_M2_nacci(0, 0, 0);
1083   // CHECK: @llvm.hexagon.M2.naccii
1084   __builtin_HEXAGON_M2_naccii(0, 0, 0);
1085   // CHECK: @llvm.hexagon.M2.subacc
1086   __builtin_HEXAGON_M2_subacc(0, 0, 0);
1087   // CHECK: @llvm.hexagon.M2.vabsdiffh
1088   __builtin_HEXAGON_M2_vabsdiffh(0, 0);
1089   // CHECK: @llvm.hexagon.M2.vabsdiffw
1090   __builtin_HEXAGON_M2_vabsdiffw(0, 0);
1091   // CHECK: @llvm.hexagon.M2.vcmac.s0.sat.i
1092   __builtin_HEXAGON_M2_vcmac_s0_sat_i(0, 0, 0);
1093   // CHECK: @llvm.hexagon.M2.vcmac.s0.sat.r
1094   __builtin_HEXAGON_M2_vcmac_s0_sat_r(0, 0, 0);
1095   // CHECK: @llvm.hexagon.M2.vcmpy.s0.sat.i
1096   __builtin_HEXAGON_M2_vcmpy_s0_sat_i(0, 0);
1097   // CHECK: @llvm.hexagon.M2.vcmpy.s0.sat.r
1098   __builtin_HEXAGON_M2_vcmpy_s0_sat_r(0, 0);
1099   // CHECK: @llvm.hexagon.M2.vcmpy.s1.sat.i
1100   __builtin_HEXAGON_M2_vcmpy_s1_sat_i(0, 0);
1101   // CHECK: @llvm.hexagon.M2.vcmpy.s1.sat.r
1102   __builtin_HEXAGON_M2_vcmpy_s1_sat_r(0, 0);
1103   // CHECK: @llvm.hexagon.M2.vdmacs.s0
1104   __builtin_HEXAGON_M2_vdmacs_s0(0, 0, 0);
1105   // CHECK: @llvm.hexagon.M2.vdmacs.s1
1106   __builtin_HEXAGON_M2_vdmacs_s1(0, 0, 0);
1107   // CHECK: @llvm.hexagon.M2.vdmpyrs.s0
1108   __builtin_HEXAGON_M2_vdmpyrs_s0(0, 0);
1109   // CHECK: @llvm.hexagon.M2.vdmpyrs.s1
1110   __builtin_HEXAGON_M2_vdmpyrs_s1(0, 0);
1111   // CHECK: @llvm.hexagon.M2.vdmpys.s0
1112   __builtin_HEXAGON_M2_vdmpys_s0(0, 0);
1113   // CHECK: @llvm.hexagon.M2.vdmpys.s1
1114   __builtin_HEXAGON_M2_vdmpys_s1(0, 0);
1115   // CHECK: @llvm.hexagon.M2.vmac2
1116   __builtin_HEXAGON_M2_vmac2(0, 0, 0);
1117   // CHECK: @llvm.hexagon.M2.vmac2es
1118   __builtin_HEXAGON_M2_vmac2es(0, 0, 0);
1119   // CHECK: @llvm.hexagon.M2.vmac2es.s0
1120   __builtin_HEXAGON_M2_vmac2es_s0(0, 0, 0);
1121   // CHECK: @llvm.hexagon.M2.vmac2es.s1
1122   __builtin_HEXAGON_M2_vmac2es_s1(0, 0, 0);
1123   // CHECK: @llvm.hexagon.M2.vmac2s.s0
1124   __builtin_HEXAGON_M2_vmac2s_s0(0, 0, 0);
1125   // CHECK: @llvm.hexagon.M2.vmac2s.s1
1126   __builtin_HEXAGON_M2_vmac2s_s1(0, 0, 0);
1127   // CHECK: @llvm.hexagon.M2.vmac2su.s0
1128   __builtin_HEXAGON_M2_vmac2su_s0(0, 0, 0);
1129   // CHECK: @llvm.hexagon.M2.vmac2su.s1
1130   __builtin_HEXAGON_M2_vmac2su_s1(0, 0, 0);
1131   // CHECK: @llvm.hexagon.M2.vmpy2es.s0
1132   __builtin_HEXAGON_M2_vmpy2es_s0(0, 0);
1133   // CHECK: @llvm.hexagon.M2.vmpy2es.s1
1134   __builtin_HEXAGON_M2_vmpy2es_s1(0, 0);
1135   // CHECK: @llvm.hexagon.M2.vmpy2s.s0
1136   __builtin_HEXAGON_M2_vmpy2s_s0(0, 0);
1137   // CHECK: @llvm.hexagon.M2.vmpy2s.s0pack
1138   __builtin_HEXAGON_M2_vmpy2s_s0pack(0, 0);
1139   // CHECK: @llvm.hexagon.M2.vmpy2s.s1
1140   __builtin_HEXAGON_M2_vmpy2s_s1(0, 0);
1141   // CHECK: @llvm.hexagon.M2.vmpy2s.s1pack
1142   __builtin_HEXAGON_M2_vmpy2s_s1pack(0, 0);
1143   // CHECK: @llvm.hexagon.M2.vmpy2su.s0
1144   __builtin_HEXAGON_M2_vmpy2su_s0(0, 0);
1145   // CHECK: @llvm.hexagon.M2.vmpy2su.s1
1146   __builtin_HEXAGON_M2_vmpy2su_s1(0, 0);
1147   // CHECK: @llvm.hexagon.M2.vraddh
1148   __builtin_HEXAGON_M2_vraddh(0, 0);
1149   // CHECK: @llvm.hexagon.M2.vradduh
1150   __builtin_HEXAGON_M2_vradduh(0, 0);
1151   // CHECK: @llvm.hexagon.M2.vrcmaci.s0
1152   __builtin_HEXAGON_M2_vrcmaci_s0(0, 0, 0);
1153   // CHECK: @llvm.hexagon.M2.vrcmaci.s0c
1154   __builtin_HEXAGON_M2_vrcmaci_s0c(0, 0, 0);
1155   // CHECK: @llvm.hexagon.M2.vrcmacr.s0
1156   __builtin_HEXAGON_M2_vrcmacr_s0(0, 0, 0);
1157   // CHECK: @llvm.hexagon.M2.vrcmacr.s0c
1158   __builtin_HEXAGON_M2_vrcmacr_s0c(0, 0, 0);
1159   // CHECK: @llvm.hexagon.M2.vrcmpyi.s0
1160   __builtin_HEXAGON_M2_vrcmpyi_s0(0, 0);
1161   // CHECK: @llvm.hexagon.M2.vrcmpyi.s0c
1162   __builtin_HEXAGON_M2_vrcmpyi_s0c(0, 0);
1163   // CHECK: @llvm.hexagon.M2.vrcmpyr.s0
1164   __builtin_HEXAGON_M2_vrcmpyr_s0(0, 0);
1165   // CHECK: @llvm.hexagon.M2.vrcmpyr.s0c
1166   __builtin_HEXAGON_M2_vrcmpyr_s0c(0, 0);
1167   // CHECK: @llvm.hexagon.M2.vrcmpys.acc.s1
1168   __builtin_HEXAGON_M2_vrcmpys_acc_s1(0, 0, 0);
1169   // CHECK: @llvm.hexagon.M2.vrcmpys.s1
1170   __builtin_HEXAGON_M2_vrcmpys_s1(0, 0);
1171   // CHECK: @llvm.hexagon.M2.vrcmpys.s1rp
1172   __builtin_HEXAGON_M2_vrcmpys_s1rp(0, 0);
1173   // CHECK: @llvm.hexagon.M2.vrmac.s0
1174   __builtin_HEXAGON_M2_vrmac_s0(0, 0, 0);
1175   // CHECK: @llvm.hexagon.M2.vrmpy.s0
1176   __builtin_HEXAGON_M2_vrmpy_s0(0, 0);
1177   // CHECK: @llvm.hexagon.M2.xor.xacc
1178   __builtin_HEXAGON_M2_xor_xacc(0, 0, 0);
1179   // CHECK: @llvm.hexagon.M4.and.and
1180   __builtin_HEXAGON_M4_and_and(0, 0, 0);
1181   // CHECK: @llvm.hexagon.M4.and.andn
1182   __builtin_HEXAGON_M4_and_andn(0, 0, 0);
1183   // CHECK: @llvm.hexagon.M4.and.or
1184   __builtin_HEXAGON_M4_and_or(0, 0, 0);
1185   // CHECK: @llvm.hexagon.M4.and.xor
1186   __builtin_HEXAGON_M4_and_xor(0, 0, 0);
1187   // CHECK: @llvm.hexagon.M4.cmpyi.wh
1188   __builtin_HEXAGON_M4_cmpyi_wh(0, 0);
1189   // CHECK: @llvm.hexagon.M4.cmpyi.whc
1190   __builtin_HEXAGON_M4_cmpyi_whc(0, 0);
1191   // CHECK: @llvm.hexagon.M4.cmpyr.wh
1192   __builtin_HEXAGON_M4_cmpyr_wh(0, 0);
1193   // CHECK: @llvm.hexagon.M4.cmpyr.whc
1194   __builtin_HEXAGON_M4_cmpyr_whc(0, 0);
1195   // CHECK: @llvm.hexagon.M4.mac.up.s1.sat
1196   __builtin_HEXAGON_M4_mac_up_s1_sat(0, 0, 0);
1197   // CHECK: @llvm.hexagon.M4.mpyri.addi
1198   __builtin_HEXAGON_M4_mpyri_addi(0, 0, 0);
1199   // CHECK: @llvm.hexagon.M4.mpyri.addr
1200   __builtin_HEXAGON_M4_mpyri_addr(0, 0, 0);
1201   // CHECK: @llvm.hexagon.M4.mpyri.addr.u2
1202   __builtin_HEXAGON_M4_mpyri_addr_u2(0, 0, 0);
1203   // CHECK: @llvm.hexagon.M4.mpyrr.addi
1204   __builtin_HEXAGON_M4_mpyrr_addi(0, 0, 0);
1205   // CHECK: @llvm.hexagon.M4.mpyrr.addr
1206   __builtin_HEXAGON_M4_mpyrr_addr(0, 0, 0);
1207   // CHECK: @llvm.hexagon.M4.nac.up.s1.sat
1208   __builtin_HEXAGON_M4_nac_up_s1_sat(0, 0, 0);
1209   // CHECK: @llvm.hexagon.M4.or.and
1210   __builtin_HEXAGON_M4_or_and(0, 0, 0);
1211   // CHECK: @llvm.hexagon.M4.or.andn
1212   __builtin_HEXAGON_M4_or_andn(0, 0, 0);
1213   // CHECK: @llvm.hexagon.M4.or.or
1214   __builtin_HEXAGON_M4_or_or(0, 0, 0);
1215   // CHECK: @llvm.hexagon.M4.or.xor
1216   __builtin_HEXAGON_M4_or_xor(0, 0, 0);
1217   // CHECK: @llvm.hexagon.M4.pmpyw
1218   __builtin_HEXAGON_M4_pmpyw(0, 0);
1219   // CHECK: @llvm.hexagon.M4.pmpyw.acc
1220   __builtin_HEXAGON_M4_pmpyw_acc(0, 0, 0);
1221   // CHECK: @llvm.hexagon.M4.vpmpyh
1222   __builtin_HEXAGON_M4_vpmpyh(0, 0);
1223   // CHECK: @llvm.hexagon.M4.vpmpyh.acc
1224   __builtin_HEXAGON_M4_vpmpyh_acc(0, 0, 0);
1225   // CHECK: @llvm.hexagon.M4.vrmpyeh.acc.s0
1226   __builtin_HEXAGON_M4_vrmpyeh_acc_s0(0, 0, 0);
1227   // CHECK: @llvm.hexagon.M4.vrmpyeh.acc.s1
1228   __builtin_HEXAGON_M4_vrmpyeh_acc_s1(0, 0, 0);
1229   // CHECK: @llvm.hexagon.M4.vrmpyeh.s0
1230   __builtin_HEXAGON_M4_vrmpyeh_s0(0, 0);
1231   // CHECK: @llvm.hexagon.M4.vrmpyeh.s1
1232   __builtin_HEXAGON_M4_vrmpyeh_s1(0, 0);
1233   // CHECK: @llvm.hexagon.M4.vrmpyoh.acc.s0
1234   __builtin_HEXAGON_M4_vrmpyoh_acc_s0(0, 0, 0);
1235   // CHECK: @llvm.hexagon.M4.vrmpyoh.acc.s1
1236   __builtin_HEXAGON_M4_vrmpyoh_acc_s1(0, 0, 0);
1237   // CHECK: @llvm.hexagon.M4.vrmpyoh.s0
1238   __builtin_HEXAGON_M4_vrmpyoh_s0(0, 0);
1239   // CHECK: @llvm.hexagon.M4.vrmpyoh.s1
1240   __builtin_HEXAGON_M4_vrmpyoh_s1(0, 0);
1241   // CHECK: @llvm.hexagon.M4.xor.and
1242   __builtin_HEXAGON_M4_xor_and(0, 0, 0);
1243   // CHECK: @llvm.hexagon.M4.xor.andn
1244   __builtin_HEXAGON_M4_xor_andn(0, 0, 0);
1245   // CHECK: @llvm.hexagon.M4.xor.or
1246   __builtin_HEXAGON_M4_xor_or(0, 0, 0);
1247   // CHECK: @llvm.hexagon.M4.xor.xacc
1248   __builtin_HEXAGON_M4_xor_xacc(0, 0, 0);
1249   // CHECK: @llvm.hexagon.M5.vdmacbsu
1250   __builtin_HEXAGON_M5_vdmacbsu(0, 0, 0);
1251   // CHECK: @llvm.hexagon.M5.vdmpybsu
1252   __builtin_HEXAGON_M5_vdmpybsu(0, 0);
1253   // CHECK: @llvm.hexagon.M5.vmacbsu
1254   __builtin_HEXAGON_M5_vmacbsu(0, 0, 0);
1255   // CHECK: @llvm.hexagon.M5.vmacbuu
1256   __builtin_HEXAGON_M5_vmacbuu(0, 0, 0);
1257   // CHECK: @llvm.hexagon.M5.vmpybsu
1258   __builtin_HEXAGON_M5_vmpybsu(0, 0);
1259   // CHECK: @llvm.hexagon.M5.vmpybuu
1260   __builtin_HEXAGON_M5_vmpybuu(0, 0);
1261   // CHECK: @llvm.hexagon.M5.vrmacbsu
1262   __builtin_HEXAGON_M5_vrmacbsu(0, 0, 0);
1263   // CHECK: @llvm.hexagon.M5.vrmacbuu
1264   __builtin_HEXAGON_M5_vrmacbuu(0, 0, 0);
1265   // CHECK: @llvm.hexagon.M5.vrmpybsu
1266   __builtin_HEXAGON_M5_vrmpybsu(0, 0);
1267   // CHECK: @llvm.hexagon.M5.vrmpybuu
1268   __builtin_HEXAGON_M5_vrmpybuu(0, 0);
1269   // CHECK: @llvm.hexagon.M6.vabsdiffb
1270   __builtin_HEXAGON_M6_vabsdiffb(0, 0);
1271   // CHECK: @llvm.hexagon.M6.vabsdiffub
1272   __builtin_HEXAGON_M6_vabsdiffub(0, 0);
1273   // CHECK: @llvm.hexagon.S2.addasl.rrri
1274   __builtin_HEXAGON_S2_addasl_rrri(0, 0, 0);
1275   // CHECK: @llvm.hexagon.S2.asl.i.p
1276   __builtin_HEXAGON_S2_asl_i_p(0, 0);
1277   // CHECK: @llvm.hexagon.S2.asl.i.p.acc
1278   __builtin_HEXAGON_S2_asl_i_p_acc(0, 0, 0);
1279   // CHECK: @llvm.hexagon.S2.asl.i.p.and
1280   __builtin_HEXAGON_S2_asl_i_p_and(0, 0, 0);
1281   // CHECK: @llvm.hexagon.S2.asl.i.p.nac
1282   __builtin_HEXAGON_S2_asl_i_p_nac(0, 0, 0);
1283   // CHECK: @llvm.hexagon.S2.asl.i.p.or
1284   __builtin_HEXAGON_S2_asl_i_p_or(0, 0, 0);
1285   // CHECK: @llvm.hexagon.S2.asl.i.p.xacc
1286   __builtin_HEXAGON_S2_asl_i_p_xacc(0, 0, 0);
1287   // CHECK: @llvm.hexagon.S2.asl.i.r
1288   __builtin_HEXAGON_S2_asl_i_r(0, 0);
1289   // CHECK: @llvm.hexagon.S2.asl.i.r.acc
1290   __builtin_HEXAGON_S2_asl_i_r_acc(0, 0, 0);
1291   // CHECK: @llvm.hexagon.S2.asl.i.r.and
1292   __builtin_HEXAGON_S2_asl_i_r_and(0, 0, 0);
1293   // CHECK: @llvm.hexagon.S2.asl.i.r.nac
1294   __builtin_HEXAGON_S2_asl_i_r_nac(0, 0, 0);
1295   // CHECK: @llvm.hexagon.S2.asl.i.r.or
1296   __builtin_HEXAGON_S2_asl_i_r_or(0, 0, 0);
1297   // CHECK: @llvm.hexagon.S2.asl.i.r.sat
1298   __builtin_HEXAGON_S2_asl_i_r_sat(0, 0);
1299   // CHECK: @llvm.hexagon.S2.asl.i.r.xacc
1300   __builtin_HEXAGON_S2_asl_i_r_xacc(0, 0, 0);
1301   // CHECK: @llvm.hexagon.S2.asl.i.vh
1302   __builtin_HEXAGON_S2_asl_i_vh(0, 0);
1303   // CHECK: @llvm.hexagon.S2.asl.i.vw
1304   __builtin_HEXAGON_S2_asl_i_vw(0, 0);
1305   // CHECK: @llvm.hexagon.S2.asl.r.p
1306   __builtin_HEXAGON_S2_asl_r_p(0, 0);
1307   // CHECK: @llvm.hexagon.S2.asl.r.p.acc
1308   __builtin_HEXAGON_S2_asl_r_p_acc(0, 0, 0);
1309   // CHECK: @llvm.hexagon.S2.asl.r.p.and
1310   __builtin_HEXAGON_S2_asl_r_p_and(0, 0, 0);
1311   // CHECK: @llvm.hexagon.S2.asl.r.p.nac
1312   __builtin_HEXAGON_S2_asl_r_p_nac(0, 0, 0);
1313   // CHECK: @llvm.hexagon.S2.asl.r.p.or
1314   __builtin_HEXAGON_S2_asl_r_p_or(0, 0, 0);
1315   // CHECK: @llvm.hexagon.S2.asl.r.p.xor
1316   __builtin_HEXAGON_S2_asl_r_p_xor(0, 0, 0);
1317   // CHECK: @llvm.hexagon.S2.asl.r.r
1318   __builtin_HEXAGON_S2_asl_r_r(0, 0);
1319   // CHECK: @llvm.hexagon.S2.asl.r.r.acc
1320   __builtin_HEXAGON_S2_asl_r_r_acc(0, 0, 0);
1321   // CHECK: @llvm.hexagon.S2.asl.r.r.and
1322   __builtin_HEXAGON_S2_asl_r_r_and(0, 0, 0);
1323   // CHECK: @llvm.hexagon.S2.asl.r.r.nac
1324   __builtin_HEXAGON_S2_asl_r_r_nac(0, 0, 0);
1325   // CHECK: @llvm.hexagon.S2.asl.r.r.or
1326   __builtin_HEXAGON_S2_asl_r_r_or(0, 0, 0);
1327   // CHECK: @llvm.hexagon.S2.asl.r.r.sat
1328   __builtin_HEXAGON_S2_asl_r_r_sat(0, 0);
1329   // CHECK: @llvm.hexagon.S2.asl.r.vh
1330   __builtin_HEXAGON_S2_asl_r_vh(0, 0);
1331   // CHECK: @llvm.hexagon.S2.asl.r.vw
1332   __builtin_HEXAGON_S2_asl_r_vw(0, 0);
1333   // CHECK: @llvm.hexagon.S2.asr.i.p
1334   __builtin_HEXAGON_S2_asr_i_p(0, 0);
1335   // CHECK: @llvm.hexagon.S2.asr.i.p.acc
1336   __builtin_HEXAGON_S2_asr_i_p_acc(0, 0, 0);
1337   // CHECK: @llvm.hexagon.S2.asr.i.p.and
1338   __builtin_HEXAGON_S2_asr_i_p_and(0, 0, 0);
1339   // CHECK: @llvm.hexagon.S2.asr.i.p.nac
1340   __builtin_HEXAGON_S2_asr_i_p_nac(0, 0, 0);
1341   // CHECK: @llvm.hexagon.S2.asr.i.p.or
1342   __builtin_HEXAGON_S2_asr_i_p_or(0, 0, 0);
1343   // CHECK: @llvm.hexagon.S2.asr.i.p.rnd
1344   __builtin_HEXAGON_S2_asr_i_p_rnd(0, 0);
1345   // CHECK: @llvm.hexagon.S2.asr.i.p.rnd.goodsyntax
1346   __builtin_HEXAGON_S2_asr_i_p_rnd_goodsyntax(0, 0);
1347   // CHECK: @llvm.hexagon.S2.asr.i.r
1348   __builtin_HEXAGON_S2_asr_i_r(0, 0);
1349   // CHECK: @llvm.hexagon.S2.asr.i.r.acc
1350   __builtin_HEXAGON_S2_asr_i_r_acc(0, 0, 0);
1351   // CHECK: @llvm.hexagon.S2.asr.i.r.and
1352   __builtin_HEXAGON_S2_asr_i_r_and(0, 0, 0);
1353   // CHECK: @llvm.hexagon.S2.asr.i.r.nac
1354   __builtin_HEXAGON_S2_asr_i_r_nac(0, 0, 0);
1355   // CHECK: @llvm.hexagon.S2.asr.i.r.or
1356   __builtin_HEXAGON_S2_asr_i_r_or(0, 0, 0);
1357   // CHECK: @llvm.hexagon.S2.asr.i.r.rnd
1358   __builtin_HEXAGON_S2_asr_i_r_rnd(0, 0);
1359   // CHECK: @llvm.hexagon.S2.asr.i.r.rnd.goodsyntax
1360   __builtin_HEXAGON_S2_asr_i_r_rnd_goodsyntax(0, 0);
1361   // CHECK: @llvm.hexagon.S2.asr.i.svw.trun
1362   __builtin_HEXAGON_S2_asr_i_svw_trun(0, 0);
1363   // CHECK: @llvm.hexagon.S2.asr.i.vh
1364   __builtin_HEXAGON_S2_asr_i_vh(0, 0);
1365   // CHECK: @llvm.hexagon.S2.asr.i.vw
1366   __builtin_HEXAGON_S2_asr_i_vw(0, 0);
1367   // CHECK: @llvm.hexagon.S2.asr.r.p
1368   __builtin_HEXAGON_S2_asr_r_p(0, 0);
1369   // CHECK: @llvm.hexagon.S2.asr.r.p.acc
1370   __builtin_HEXAGON_S2_asr_r_p_acc(0, 0, 0);
1371   // CHECK: @llvm.hexagon.S2.asr.r.p.and
1372   __builtin_HEXAGON_S2_asr_r_p_and(0, 0, 0);
1373   // CHECK: @llvm.hexagon.S2.asr.r.p.nac
1374   __builtin_HEXAGON_S2_asr_r_p_nac(0, 0, 0);
1375   // CHECK: @llvm.hexagon.S2.asr.r.p.or
1376   __builtin_HEXAGON_S2_asr_r_p_or(0, 0, 0);
1377   // CHECK: @llvm.hexagon.S2.asr.r.p.xor
1378   __builtin_HEXAGON_S2_asr_r_p_xor(0, 0, 0);
1379   // CHECK: @llvm.hexagon.S2.asr.r.r
1380   __builtin_HEXAGON_S2_asr_r_r(0, 0);
1381   // CHECK: @llvm.hexagon.S2.asr.r.r.acc
1382   __builtin_HEXAGON_S2_asr_r_r_acc(0, 0, 0);
1383   // CHECK: @llvm.hexagon.S2.asr.r.r.and
1384   __builtin_HEXAGON_S2_asr_r_r_and(0, 0, 0);
1385   // CHECK: @llvm.hexagon.S2.asr.r.r.nac
1386   __builtin_HEXAGON_S2_asr_r_r_nac(0, 0, 0);
1387   // CHECK: @llvm.hexagon.S2.asr.r.r.or
1388   __builtin_HEXAGON_S2_asr_r_r_or(0, 0, 0);
1389   // CHECK: @llvm.hexagon.S2.asr.r.r.sat
1390   __builtin_HEXAGON_S2_asr_r_r_sat(0, 0);
1391   // CHECK: @llvm.hexagon.S2.asr.r.svw.trun
1392   __builtin_HEXAGON_S2_asr_r_svw_trun(0, 0);
1393   // CHECK: @llvm.hexagon.S2.asr.r.vh
1394   __builtin_HEXAGON_S2_asr_r_vh(0, 0);
1395   // CHECK: @llvm.hexagon.S2.asr.r.vw
1396   __builtin_HEXAGON_S2_asr_r_vw(0, 0);
1397   // CHECK: @llvm.hexagon.S2.brev
1398   __builtin_HEXAGON_S2_brev(0);
1399   // CHECK: @llvm.hexagon.S2.brevp
1400   __builtin_HEXAGON_S2_brevp(0);
1401   // CHECK: @llvm.hexagon.S2.cl0
1402   __builtin_HEXAGON_S2_cl0(0);
1403   // CHECK: @llvm.hexagon.S2.cl0p
1404   __builtin_HEXAGON_S2_cl0p(0);
1405   // CHECK: @llvm.hexagon.S2.cl1
1406   __builtin_HEXAGON_S2_cl1(0);
1407   // CHECK: @llvm.hexagon.S2.cl1p
1408   __builtin_HEXAGON_S2_cl1p(0);
1409   // CHECK: @llvm.hexagon.S2.clb
1410   __builtin_HEXAGON_S2_clb(0);
1411   // CHECK: @llvm.hexagon.S2.clbnorm
1412   __builtin_HEXAGON_S2_clbnorm(0);
1413   // CHECK: @llvm.hexagon.S2.clbp
1414   __builtin_HEXAGON_S2_clbp(0);
1415   // CHECK: @llvm.hexagon.S2.clrbit.i
1416   __builtin_HEXAGON_S2_clrbit_i(0, 0);
1417   // CHECK: @llvm.hexagon.S2.clrbit.r
1418   __builtin_HEXAGON_S2_clrbit_r(0, 0);
1419   // CHECK: @llvm.hexagon.S2.ct0
1420   __builtin_HEXAGON_S2_ct0(0);
1421   // CHECK: @llvm.hexagon.S2.ct0p
1422   __builtin_HEXAGON_S2_ct0p(0);
1423   // CHECK: @llvm.hexagon.S2.ct1
1424   __builtin_HEXAGON_S2_ct1(0);
1425   // CHECK: @llvm.hexagon.S2.ct1p
1426   __builtin_HEXAGON_S2_ct1p(0);
1427   // CHECK: @llvm.hexagon.S2.deinterleave
1428   __builtin_HEXAGON_S2_deinterleave(0);
1429   // CHECK: @llvm.hexagon.S2.extractu
1430   __builtin_HEXAGON_S2_extractu(0, 0, 0);
1431   // CHECK: @llvm.hexagon.S2.extractu.rp
1432   __builtin_HEXAGON_S2_extractu_rp(0, 0);
1433   // CHECK: @llvm.hexagon.S2.extractup
1434   __builtin_HEXAGON_S2_extractup(0, 0, 0);
1435   // CHECK: @llvm.hexagon.S2.extractup.rp
1436   __builtin_HEXAGON_S2_extractup_rp(0, 0);
1437   // CHECK: @llvm.hexagon.S2.insert
1438   __builtin_HEXAGON_S2_insert(0, 0, 0, 0);
1439   // CHECK: @llvm.hexagon.S2.insert.rp
1440   __builtin_HEXAGON_S2_insert_rp(0, 0, 0);
1441   // CHECK: @llvm.hexagon.S2.insertp
1442   __builtin_HEXAGON_S2_insertp(0, 0, 0, 0);
1443   // CHECK: @llvm.hexagon.S2.insertp.rp
1444   __builtin_HEXAGON_S2_insertp_rp(0, 0, 0);
1445   // CHECK: @llvm.hexagon.S2.interleave
1446   __builtin_HEXAGON_S2_interleave(0);
1447   // CHECK: @llvm.hexagon.S2.lfsp
1448   __builtin_HEXAGON_S2_lfsp(0, 0);
1449   // CHECK: @llvm.hexagon.S2.lsl.r.p
1450   __builtin_HEXAGON_S2_lsl_r_p(0, 0);
1451   // CHECK: @llvm.hexagon.S2.lsl.r.p.acc
1452   __builtin_HEXAGON_S2_lsl_r_p_acc(0, 0, 0);
1453   // CHECK: @llvm.hexagon.S2.lsl.r.p.and
1454   __builtin_HEXAGON_S2_lsl_r_p_and(0, 0, 0);
1455   // CHECK: @llvm.hexagon.S2.lsl.r.p.nac
1456   __builtin_HEXAGON_S2_lsl_r_p_nac(0, 0, 0);
1457   // CHECK: @llvm.hexagon.S2.lsl.r.p.or
1458   __builtin_HEXAGON_S2_lsl_r_p_or(0, 0, 0);
1459   // CHECK: @llvm.hexagon.S2.lsl.r.p.xor
1460   __builtin_HEXAGON_S2_lsl_r_p_xor(0, 0, 0);
1461   // CHECK: @llvm.hexagon.S2.lsl.r.r
1462   __builtin_HEXAGON_S2_lsl_r_r(0, 0);
1463   // CHECK: @llvm.hexagon.S2.lsl.r.r.acc
1464   __builtin_HEXAGON_S2_lsl_r_r_acc(0, 0, 0);
1465   // CHECK: @llvm.hexagon.S2.lsl.r.r.and
1466   __builtin_HEXAGON_S2_lsl_r_r_and(0, 0, 0);
1467   // CHECK: @llvm.hexagon.S2.lsl.r.r.nac
1468   __builtin_HEXAGON_S2_lsl_r_r_nac(0, 0, 0);
1469   // CHECK: @llvm.hexagon.S2.lsl.r.r.or
1470   __builtin_HEXAGON_S2_lsl_r_r_or(0, 0, 0);
1471   // CHECK: @llvm.hexagon.S2.lsl.r.vh
1472   __builtin_HEXAGON_S2_lsl_r_vh(0, 0);
1473   // CHECK: @llvm.hexagon.S2.lsl.r.vw
1474   __builtin_HEXAGON_S2_lsl_r_vw(0, 0);
1475   // CHECK: @llvm.hexagon.S2.lsr.i.p
1476   __builtin_HEXAGON_S2_lsr_i_p(0, 0);
1477   // CHECK: @llvm.hexagon.S2.lsr.i.p.acc
1478   __builtin_HEXAGON_S2_lsr_i_p_acc(0, 0, 0);
1479   // CHECK: @llvm.hexagon.S2.lsr.i.p.and
1480   __builtin_HEXAGON_S2_lsr_i_p_and(0, 0, 0);
1481   // CHECK: @llvm.hexagon.S2.lsr.i.p.nac
1482   __builtin_HEXAGON_S2_lsr_i_p_nac(0, 0, 0);
1483   // CHECK: @llvm.hexagon.S2.lsr.i.p.or
1484   __builtin_HEXAGON_S2_lsr_i_p_or(0, 0, 0);
1485   // CHECK: @llvm.hexagon.S2.lsr.i.p.xacc
1486   __builtin_HEXAGON_S2_lsr_i_p_xacc(0, 0, 0);
1487   // CHECK: @llvm.hexagon.S2.lsr.i.r
1488   __builtin_HEXAGON_S2_lsr_i_r(0, 0);
1489   // CHECK: @llvm.hexagon.S2.lsr.i.r.acc
1490   __builtin_HEXAGON_S2_lsr_i_r_acc(0, 0, 0);
1491   // CHECK: @llvm.hexagon.S2.lsr.i.r.and
1492   __builtin_HEXAGON_S2_lsr_i_r_and(0, 0, 0);
1493   // CHECK: @llvm.hexagon.S2.lsr.i.r.nac
1494   __builtin_HEXAGON_S2_lsr_i_r_nac(0, 0, 0);
1495   // CHECK: @llvm.hexagon.S2.lsr.i.r.or
1496   __builtin_HEXAGON_S2_lsr_i_r_or(0, 0, 0);
1497   // CHECK: @llvm.hexagon.S2.lsr.i.r.xacc
1498   __builtin_HEXAGON_S2_lsr_i_r_xacc(0, 0, 0);
1499   // CHECK: @llvm.hexagon.S2.lsr.i.vh
1500   __builtin_HEXAGON_S2_lsr_i_vh(0, 0);
1501   // CHECK: @llvm.hexagon.S2.lsr.i.vw
1502   __builtin_HEXAGON_S2_lsr_i_vw(0, 0);
1503   // CHECK: @llvm.hexagon.S2.lsr.r.p
1504   __builtin_HEXAGON_S2_lsr_r_p(0, 0);
1505   // CHECK: @llvm.hexagon.S2.lsr.r.p.acc
1506   __builtin_HEXAGON_S2_lsr_r_p_acc(0, 0, 0);
1507   // CHECK: @llvm.hexagon.S2.lsr.r.p.and
1508   __builtin_HEXAGON_S2_lsr_r_p_and(0, 0, 0);
1509   // CHECK: @llvm.hexagon.S2.lsr.r.p.nac
1510   __builtin_HEXAGON_S2_lsr_r_p_nac(0, 0, 0);
1511   // CHECK: @llvm.hexagon.S2.lsr.r.p.or
1512   __builtin_HEXAGON_S2_lsr_r_p_or(0, 0, 0);
1513   // CHECK: @llvm.hexagon.S2.lsr.r.p.xor
1514   __builtin_HEXAGON_S2_lsr_r_p_xor(0, 0, 0);
1515   // CHECK: @llvm.hexagon.S2.lsr.r.r
1516   __builtin_HEXAGON_S2_lsr_r_r(0, 0);
1517   // CHECK: @llvm.hexagon.S2.lsr.r.r.acc
1518   __builtin_HEXAGON_S2_lsr_r_r_acc(0, 0, 0);
1519   // CHECK: @llvm.hexagon.S2.lsr.r.r.and
1520   __builtin_HEXAGON_S2_lsr_r_r_and(0, 0, 0);
1521   // CHECK: @llvm.hexagon.S2.lsr.r.r.nac
1522   __builtin_HEXAGON_S2_lsr_r_r_nac(0, 0, 0);
1523   // CHECK: @llvm.hexagon.S2.lsr.r.r.or
1524   __builtin_HEXAGON_S2_lsr_r_r_or(0, 0, 0);
1525   // CHECK: @llvm.hexagon.S2.lsr.r.vh
1526   __builtin_HEXAGON_S2_lsr_r_vh(0, 0);
1527   // CHECK: @llvm.hexagon.S2.lsr.r.vw
1528   __builtin_HEXAGON_S2_lsr_r_vw(0, 0);
1529   // CHECK: @llvm.hexagon.S2.packhl
1530   __builtin_HEXAGON_S2_packhl(0, 0);
1531   // CHECK: @llvm.hexagon.S2.parityp
1532   __builtin_HEXAGON_S2_parityp(0, 0);
1533   // CHECK: @llvm.hexagon.S2.setbit.i
1534   __builtin_HEXAGON_S2_setbit_i(0, 0);
1535   // CHECK: @llvm.hexagon.S2.setbit.r
1536   __builtin_HEXAGON_S2_setbit_r(0, 0);
1537   // CHECK: @llvm.hexagon.S2.shuffeb
1538   __builtin_HEXAGON_S2_shuffeb(0, 0);
1539   // CHECK: @llvm.hexagon.S2.shuffeh
1540   __builtin_HEXAGON_S2_shuffeh(0, 0);
1541   // CHECK: @llvm.hexagon.S2.shuffob
1542   __builtin_HEXAGON_S2_shuffob(0, 0);
1543   // CHECK: @llvm.hexagon.S2.shuffoh
1544   __builtin_HEXAGON_S2_shuffoh(0, 0);
1545   // CHECK: @llvm.hexagon.S2.svsathb
1546   __builtin_HEXAGON_S2_svsathb(0);
1547   // CHECK: @llvm.hexagon.S2.svsathub
1548   __builtin_HEXAGON_S2_svsathub(0);
1549   // CHECK: @llvm.hexagon.S2.tableidxb.goodsyntax
1550   __builtin_HEXAGON_S2_tableidxb_goodsyntax(0, 0, 0, 0);
1551   // CHECK: @llvm.hexagon.S2.tableidxd.goodsyntax
1552   __builtin_HEXAGON_S2_tableidxd_goodsyntax(0, 0, 0, 0);
1553   // CHECK: @llvm.hexagon.S2.tableidxh.goodsyntax
1554   __builtin_HEXAGON_S2_tableidxh_goodsyntax(0, 0, 0, 0);
1555   // CHECK: @llvm.hexagon.S2.tableidxw.goodsyntax
1556   __builtin_HEXAGON_S2_tableidxw_goodsyntax(0, 0, 0, 0);
1557   // CHECK: @llvm.hexagon.S2.togglebit.i
1558   __builtin_HEXAGON_S2_togglebit_i(0, 0);
1559   // CHECK: @llvm.hexagon.S2.togglebit.r
1560   __builtin_HEXAGON_S2_togglebit_r(0, 0);
1561   // CHECK: @llvm.hexagon.S2.tstbit.i
1562   __builtin_HEXAGON_S2_tstbit_i(0, 0);
1563   // CHECK: @llvm.hexagon.S2.tstbit.r
1564   __builtin_HEXAGON_S2_tstbit_r(0, 0);
1565   // CHECK: @llvm.hexagon.S2.valignib
1566   __builtin_HEXAGON_S2_valignib(0, 0, 0);
1567   // CHECK: @llvm.hexagon.S2.valignrb
1568   __builtin_HEXAGON_S2_valignrb(0, 0, 0);
1569   // CHECK: @llvm.hexagon.S2.vcnegh
1570   __builtin_HEXAGON_S2_vcnegh(0, 0);
1571   // CHECK: @llvm.hexagon.S2.vcrotate
1572   __builtin_HEXAGON_S2_vcrotate(0, 0);
1573   // CHECK: @llvm.hexagon.S2.vrcnegh
1574   __builtin_HEXAGON_S2_vrcnegh(0, 0, 0);
1575   // CHECK: @llvm.hexagon.S2.vrndpackwh
1576   __builtin_HEXAGON_S2_vrndpackwh(0);
1577   // CHECK: @llvm.hexagon.S2.vrndpackwhs
1578   __builtin_HEXAGON_S2_vrndpackwhs(0);
1579   // CHECK: @llvm.hexagon.S2.vsathb
1580   __builtin_HEXAGON_S2_vsathb(0);
1581   // CHECK: @llvm.hexagon.S2.vsathb.nopack
1582   __builtin_HEXAGON_S2_vsathb_nopack(0);
1583   // CHECK: @llvm.hexagon.S2.vsathub
1584   __builtin_HEXAGON_S2_vsathub(0);
1585   // CHECK: @llvm.hexagon.S2.vsathub.nopack
1586   __builtin_HEXAGON_S2_vsathub_nopack(0);
1587   // CHECK: @llvm.hexagon.S2.vsatwh
1588   __builtin_HEXAGON_S2_vsatwh(0);
1589   // CHECK: @llvm.hexagon.S2.vsatwh.nopack
1590   __builtin_HEXAGON_S2_vsatwh_nopack(0);
1591   // CHECK: @llvm.hexagon.S2.vsatwuh
1592   __builtin_HEXAGON_S2_vsatwuh(0);
1593   // CHECK: @llvm.hexagon.S2.vsatwuh.nopack
1594   __builtin_HEXAGON_S2_vsatwuh_nopack(0);
1595   // CHECK: @llvm.hexagon.S2.vsplatrb
1596   __builtin_HEXAGON_S2_vsplatrb(0);
1597   // CHECK: @llvm.hexagon.S2.vsplatrh
1598   __builtin_HEXAGON_S2_vsplatrh(0);
1599   // CHECK: @llvm.hexagon.S2.vspliceib
1600   __builtin_HEXAGON_S2_vspliceib(0, 0, 0);
1601   // CHECK: @llvm.hexagon.S2.vsplicerb
1602   __builtin_HEXAGON_S2_vsplicerb(0, 0, 0);
1603   // CHECK: @llvm.hexagon.S2.vsxtbh
1604   __builtin_HEXAGON_S2_vsxtbh(0);
1605   // CHECK: @llvm.hexagon.S2.vsxthw
1606   __builtin_HEXAGON_S2_vsxthw(0);
1607   // CHECK: @llvm.hexagon.S2.vtrunehb
1608   __builtin_HEXAGON_S2_vtrunehb(0);
1609   // CHECK: @llvm.hexagon.S2.vtrunewh
1610   __builtin_HEXAGON_S2_vtrunewh(0, 0);
1611   // CHECK: @llvm.hexagon.S2.vtrunohb
1612   __builtin_HEXAGON_S2_vtrunohb(0);
1613   // CHECK: @llvm.hexagon.S2.vtrunowh
1614   __builtin_HEXAGON_S2_vtrunowh(0, 0);
1615   // CHECK: @llvm.hexagon.S2.vzxtbh
1616   __builtin_HEXAGON_S2_vzxtbh(0);
1617   // CHECK: @llvm.hexagon.S2.vzxthw
1618   __builtin_HEXAGON_S2_vzxthw(0);
1619   // CHECK: @llvm.hexagon.S4.addaddi
1620   __builtin_HEXAGON_S4_addaddi(0, 0, 0);
1621   // CHECK: @llvm.hexagon.S4.addi.asl.ri
1622   __builtin_HEXAGON_S4_addi_asl_ri(0, 0, 0);
1623   // CHECK: @llvm.hexagon.S4.addi.lsr.ri
1624   __builtin_HEXAGON_S4_addi_lsr_ri(0, 0, 0);
1625   // CHECK: @llvm.hexagon.S4.andi.asl.ri
1626   __builtin_HEXAGON_S4_andi_asl_ri(0, 0, 0);
1627   // CHECK: @llvm.hexagon.S4.andi.lsr.ri
1628   __builtin_HEXAGON_S4_andi_lsr_ri(0, 0, 0);
1629   // CHECK: @llvm.hexagon.S4.clbaddi
1630   __builtin_HEXAGON_S4_clbaddi(0, 0);
1631   // CHECK: @llvm.hexagon.S4.clbpaddi
1632   __builtin_HEXAGON_S4_clbpaddi(0, 0);
1633   // CHECK: @llvm.hexagon.S4.clbpnorm
1634   __builtin_HEXAGON_S4_clbpnorm(0);
1635   // CHECK: @llvm.hexagon.S4.extract
1636   __builtin_HEXAGON_S4_extract(0, 0, 0);
1637   // CHECK: @llvm.hexagon.S4.extract.rp
1638   __builtin_HEXAGON_S4_extract_rp(0, 0);
1639   // CHECK: @llvm.hexagon.S4.extractp
1640   __builtin_HEXAGON_S4_extractp(0, 0, 0);
1641   // CHECK: @llvm.hexagon.S4.extractp.rp
1642   __builtin_HEXAGON_S4_extractp_rp(0, 0);
1643   // CHECK: @llvm.hexagon.S4.lsli
1644   __builtin_HEXAGON_S4_lsli(0, 0);
1645   // CHECK: @llvm.hexagon.S4.ntstbit.i
1646   __builtin_HEXAGON_S4_ntstbit_i(0, 0);
1647   // CHECK: @llvm.hexagon.S4.ntstbit.r
1648   __builtin_HEXAGON_S4_ntstbit_r(0, 0);
1649   // CHECK: @llvm.hexagon.S4.or.andi
1650   __builtin_HEXAGON_S4_or_andi(0, 0, 0);
1651   // CHECK: @llvm.hexagon.S4.or.andix
1652   __builtin_HEXAGON_S4_or_andix(0, 0, 0);
1653   // CHECK: @llvm.hexagon.S4.or.ori
1654   __builtin_HEXAGON_S4_or_ori(0, 0, 0);
1655   // CHECK: @llvm.hexagon.S4.ori.asl.ri
1656   __builtin_HEXAGON_S4_ori_asl_ri(0, 0, 0);
1657   // CHECK: @llvm.hexagon.S4.ori.lsr.ri
1658   __builtin_HEXAGON_S4_ori_lsr_ri(0, 0, 0);
1659   // CHECK: @llvm.hexagon.S4.parity
1660   __builtin_HEXAGON_S4_parity(0, 0);
1661   // CHECK: @llvm.hexagon.S4.subaddi
1662   __builtin_HEXAGON_S4_subaddi(0, 0, 0);
1663   // CHECK: @llvm.hexagon.S4.subi.asl.ri
1664   __builtin_HEXAGON_S4_subi_asl_ri(0, 0, 0);
1665   // CHECK: @llvm.hexagon.S4.subi.lsr.ri
1666   __builtin_HEXAGON_S4_subi_lsr_ri(0, 0, 0);
1667   // CHECK: @llvm.hexagon.S4.vrcrotate
1668   __builtin_HEXAGON_S4_vrcrotate(0, 0, 0);
1669   // CHECK: @llvm.hexagon.S4.vrcrotate.acc
1670   __builtin_HEXAGON_S4_vrcrotate_acc(0, 0, 0, 0);
1671   // CHECK: @llvm.hexagon.S4.vxaddsubh
1672   __builtin_HEXAGON_S4_vxaddsubh(0, 0);
1673   // CHECK: @llvm.hexagon.S4.vxaddsubhr
1674   __builtin_HEXAGON_S4_vxaddsubhr(0, 0);
1675   // CHECK: @llvm.hexagon.S4.vxaddsubw
1676   __builtin_HEXAGON_S4_vxaddsubw(0, 0);
1677   // CHECK: @llvm.hexagon.S4.vxsubaddh
1678   __builtin_HEXAGON_S4_vxsubaddh(0, 0);
1679   // CHECK: @llvm.hexagon.S4.vxsubaddhr
1680   __builtin_HEXAGON_S4_vxsubaddhr(0, 0);
1681   // CHECK: @llvm.hexagon.S4.vxsubaddw
1682   __builtin_HEXAGON_S4_vxsubaddw(0, 0);
1683   // CHECK: @llvm.hexagon.S5.asrhub.rnd.sat.goodsyntax
1684   __builtin_HEXAGON_S5_asrhub_rnd_sat_goodsyntax(0, 0);
1685   // CHECK: @llvm.hexagon.S5.asrhub.sat
1686   __builtin_HEXAGON_S5_asrhub_sat(0, 0);
1687   // CHECK: @llvm.hexagon.S5.popcountp
1688   __builtin_HEXAGON_S5_popcountp(0);
1689   // CHECK: @llvm.hexagon.S5.vasrhrnd.goodsyntax
1690   __builtin_HEXAGON_S5_vasrhrnd_goodsyntax(0, 0);
1691   // CHECK: @llvm.hexagon.S6.rol.i.p
1692   __builtin_HEXAGON_S6_rol_i_p(0, 0);
1693   // CHECK: @llvm.hexagon.S6.rol.i.p.acc
1694   __builtin_HEXAGON_S6_rol_i_p_acc(0, 0, 0);
1695   // CHECK: @llvm.hexagon.S6.rol.i.p.and
1696   __builtin_HEXAGON_S6_rol_i_p_and(0, 0, 0);
1697   // CHECK: @llvm.hexagon.S6.rol.i.p.nac
1698   __builtin_HEXAGON_S6_rol_i_p_nac(0, 0, 0);
1699   // CHECK: @llvm.hexagon.S6.rol.i.p.or
1700   __builtin_HEXAGON_S6_rol_i_p_or(0, 0, 0);
1701   // CHECK: @llvm.hexagon.S6.rol.i.p.xacc
1702   __builtin_HEXAGON_S6_rol_i_p_xacc(0, 0, 0);
1703   // CHECK: @llvm.hexagon.S6.rol.i.r
1704   __builtin_HEXAGON_S6_rol_i_r(0, 0);
1705   // CHECK: @llvm.hexagon.S6.rol.i.r.acc
1706   __builtin_HEXAGON_S6_rol_i_r_acc(0, 0, 0);
1707   // CHECK: @llvm.hexagon.S6.rol.i.r.and
1708   __builtin_HEXAGON_S6_rol_i_r_and(0, 0, 0);
1709   // CHECK: @llvm.hexagon.S6.rol.i.r.nac
1710   __builtin_HEXAGON_S6_rol_i_r_nac(0, 0, 0);
1711   // CHECK: @llvm.hexagon.S6.rol.i.r.or
1712   __builtin_HEXAGON_S6_rol_i_r_or(0, 0, 0);
1713   // CHECK: @llvm.hexagon.S6.rol.i.r.xacc
1714   __builtin_HEXAGON_S6_rol_i_r_xacc(0, 0, 0);
1715   // CHECK: @llvm.hexagon.S6.vsplatrbp
1716   __builtin_HEXAGON_S6_vsplatrbp(0);
1717   // CHECK: @llvm.hexagon.S6.vtrunehb.ppp
1718   __builtin_HEXAGON_S6_vtrunehb_ppp(0, 0);
1719   // CHECK: @llvm.hexagon.S6.vtrunohb.ppp
1720   __builtin_HEXAGON_S6_vtrunohb_ppp(0, 0);
1721   // CHECK: @llvm.hexagon.Y2.dccleana
1722   __builtin_HEXAGON_Y2_dccleana(0);
1723   // CHECK: @llvm.hexagon.Y2.dccleaninva
1724   __builtin_HEXAGON_Y2_dccleaninva(0);
1725   // CHECK: @llvm.hexagon.Y2.dcinva
1726   __builtin_HEXAGON_Y2_dcinva(0);
1727   // CHECK: @llvm.hexagon.Y2.dczeroa
1728   __builtin_HEXAGON_Y2_dczeroa(0);
1729   // CHECK: @llvm.hexagon.Y4.l2fetch
1730   __builtin_HEXAGON_Y4_l2fetch(0, 0);
1731   // CHECK: @llvm.hexagon.Y5.l2fetch
1732   __builtin_HEXAGON_Y5_l2fetch(0, 0);
1733 
1734   // CHECK: @llvm.hexagon.L2.loadrb.pbr
1735   __builtin_brev_ldb(0, 0, 0);
1736   // CHECK: @llvm.hexagon.L2.loadrd.pbr
1737   __builtin_brev_ldd(0, 0, 0);
1738   // CHECK: @llvm.hexagon.L2.loadrh.pbr
1739   __builtin_brev_ldh(0, 0, 0);
1740   // CHECK: @llvm.hexagon.L2.loadrub.pbr
1741   __builtin_brev_ldub(0, 0, 0);
1742   // CHECK: @llvm.hexagon.L2.loadruh.pbr
1743   __builtin_brev_lduh(0, 0, 0);
1744   // CHECK: @llvm.hexagon.L2.loadri.pbr
1745   __builtin_brev_ldw(0, 0, 0);
1746   // CHECK: @llvm.hexagon.S2.storerb.pbr
1747   __builtin_brev_stb(0, 0, 0);
1748   // CHECK: @llvm.hexagon.S2.storerd.pbr
1749   __builtin_brev_std(0, 0LL, 0);
1750   // CHECK: @llvm.hexagon.S2.storerh.pbr
1751   __builtin_brev_sth(0, 0, 0);
1752   // CHECK: @llvm.hexagon.S2.storerf.pbr
1753   __builtin_brev_sthhi(0, 0, 0);
1754   // CHECK: @llvm.hexagon.S2.storeri.pbr
1755   __builtin_brev_stw(0, 0, 0);
1756 
1757   // CHECK: @llvm.hexagon.circ.ldb
1758   __builtin_circ_ldb(0, 0, 0, 0);
1759   // CHECK: @llvm.hexagon.circ.ldd
1760   __builtin_circ_ldd(0, 0, 0, 0);
1761   // CHECK: @llvm.hexagon.circ.ldh
1762   __builtin_circ_ldh(0, 0, 0, 0);
1763   // CHECK: @llvm.hexagon.circ.ldub
1764   __builtin_circ_ldub(0, 0, 0, 0);
1765   // CHECK: @llvm.hexagon.circ.lduh
1766   __builtin_circ_lduh(0, 0, 0, 0);
1767   // CHECK: @llvm.hexagon.circ.ldw
1768   __builtin_circ_ldw(0, 0, 0, 0);
1769   // CHECK: @llvm.hexagon.circ.stb
1770   __builtin_circ_stb(0, 0, 0, 0);
1771   // CHECK: @llvm.hexagon.circ.std
1772   __builtin_circ_std(0, 0, 0, 0);
1773   // CHECK: @llvm.hexagon.circ.sth
1774   __builtin_circ_sth(0, 0, 0, 0);
1775   // CHECK: @llvm.hexagon.circ.sthhi
1776   __builtin_circ_sthhi(0, 0, 0, 0);
1777   // CHECK: @llvm.hexagon.circ.stw
1778   __builtin_circ_stw(0, 0, 0, 0);
1779   // CHECK: @llvm.hexagon.prefetch
1780   __builtin_HEXAGON_prefetch(0);
1781 }
1782