1239313Sdim//===-- BuiltinsMips.def - Mips Builtin function database --------*- C++ -*-==//
2239313Sdim//
3239313Sdim//                     The LLVM Compiler Infrastructure
4239313Sdim//
5239313Sdim// This file is distributed under the University of Illinois Open Source
6239313Sdim// License. See LICENSE.TXT for details.
7239313Sdim//
8239313Sdim//===----------------------------------------------------------------------===//
9239313Sdim//
10239313Sdim// This file defines the MIPS-specific builtin function database. Users of
11239313Sdim// this file must define the BUILTIN macro to make use of this information.
12239313Sdim//
13239313Sdim//===----------------------------------------------------------------------===//
14239313Sdim
15239313Sdim// The format of this database matches clang/Basic/Builtins.def.
16239313Sdim
17243830Sdim// MIPS DSP Rev 1
18243830Sdim
19239313Sdim// Add/subtract with optional saturation
20239313SdimBUILTIN(__builtin_mips_addu_qb, "V4ScV4ScV4Sc", "n")
21239313SdimBUILTIN(__builtin_mips_addu_s_qb, "V4ScV4ScV4Sc", "n")
22239313SdimBUILTIN(__builtin_mips_subu_qb, "V4ScV4ScV4Sc", "n")
23239313SdimBUILTIN(__builtin_mips_subu_s_qb, "V4ScV4ScV4Sc", "n")
24239313Sdim
25239313SdimBUILTIN(__builtin_mips_addq_ph, "V2sV2sV2s", "n")
26239313SdimBUILTIN(__builtin_mips_addq_s_ph, "V2sV2sV2s", "n")
27239313SdimBUILTIN(__builtin_mips_subq_ph, "V2sV2sV2s", "n")
28239313SdimBUILTIN(__builtin_mips_subq_s_ph, "V2sV2sV2s", "n")
29239313Sdim
30239313SdimBUILTIN(__builtin_mips_madd, "LLiLLiii", "nc")
31239313SdimBUILTIN(__builtin_mips_maddu, "LLiLLiUiUi", "nc")
32239313SdimBUILTIN(__builtin_mips_msub, "LLiLLiii", "nc")
33239313SdimBUILTIN(__builtin_mips_msubu, "LLiLLiUiUi", "nc")
34239313Sdim
35239313SdimBUILTIN(__builtin_mips_addq_s_w, "iii", "n")
36239313SdimBUILTIN(__builtin_mips_subq_s_w, "iii", "n")
37239313Sdim
38239313SdimBUILTIN(__builtin_mips_addsc, "iii", "n")
39239313SdimBUILTIN(__builtin_mips_addwc, "iii", "n")
40239313Sdim
41239313SdimBUILTIN(__builtin_mips_modsub, "iii", "nc")
42239313Sdim
43239313SdimBUILTIN(__builtin_mips_raddu_w_qb, "iV4Sc", "nc")
44239313Sdim
45239313SdimBUILTIN(__builtin_mips_absq_s_ph, "V2sV2s", "n")
46239313SdimBUILTIN(__builtin_mips_absq_s_w, "ii", "n")
47239313Sdim
48239313SdimBUILTIN(__builtin_mips_precrq_qb_ph, "V4ScV2sV2s", "nc")
49239313SdimBUILTIN(__builtin_mips_precrqu_s_qb_ph, "V4ScV2sV2s", "n")
50239313SdimBUILTIN(__builtin_mips_precrq_ph_w, "V2sii", "nc")
51239313SdimBUILTIN(__builtin_mips_precrq_rs_ph_w, "V2sii", "n")
52239313SdimBUILTIN(__builtin_mips_preceq_w_phl, "iV2s", "nc")
53239313SdimBUILTIN(__builtin_mips_preceq_w_phr, "iV2s", "nc")
54239313SdimBUILTIN(__builtin_mips_precequ_ph_qbl, "V2sV4Sc", "nc")
55239313SdimBUILTIN(__builtin_mips_precequ_ph_qbr, "V2sV4Sc", "nc")
56239313SdimBUILTIN(__builtin_mips_precequ_ph_qbla, "V2sV4Sc", "nc")
57239313SdimBUILTIN(__builtin_mips_precequ_ph_qbra, "V2sV4Sc", "nc")
58239313SdimBUILTIN(__builtin_mips_preceu_ph_qbl, "V2sV4Sc", "nc")
59239313SdimBUILTIN(__builtin_mips_preceu_ph_qbr, "V2sV4Sc", "nc")
60239313SdimBUILTIN(__builtin_mips_preceu_ph_qbla, "V2sV4Sc", "nc")
61239313SdimBUILTIN(__builtin_mips_preceu_ph_qbra, "V2sV4Sc", "nc")
62239313Sdim
63239313SdimBUILTIN(__builtin_mips_shll_qb, "V4ScV4Sci", "n")
64239313SdimBUILTIN(__builtin_mips_shrl_qb, "V4ScV4Sci", "nc")
65239313SdimBUILTIN(__builtin_mips_shll_ph, "V2sV2si", "n")
66239313SdimBUILTIN(__builtin_mips_shll_s_ph, "V2sV2si", "n")
67239313SdimBUILTIN(__builtin_mips_shra_ph, "V2sV2si", "nc")
68239313SdimBUILTIN(__builtin_mips_shra_r_ph, "V2sV2si", "nc")
69239313SdimBUILTIN(__builtin_mips_shll_s_w, "iii", "n")
70239313SdimBUILTIN(__builtin_mips_shra_r_w, "iii", "nc")
71239313SdimBUILTIN(__builtin_mips_shilo, "LLiLLii", "nc")
72239313Sdim
73239313SdimBUILTIN(__builtin_mips_muleu_s_ph_qbl, "V2sV4ScV2s", "n")
74239313SdimBUILTIN(__builtin_mips_muleu_s_ph_qbr, "V2sV4ScV2s", "n")
75239313SdimBUILTIN(__builtin_mips_mulq_rs_ph, "V2sV2sV2s", "n")
76239313SdimBUILTIN(__builtin_mips_muleq_s_w_phl, "iV2sV2s", "n")
77239313SdimBUILTIN(__builtin_mips_muleq_s_w_phr, "iV2sV2s", "n")
78239313SdimBUILTIN(__builtin_mips_mulsaq_s_w_ph, "LLiLLiV2sV2s", "n")
79239313SdimBUILTIN(__builtin_mips_maq_s_w_phl, "LLiLLiV2sV2s", "n")
80239313SdimBUILTIN(__builtin_mips_maq_s_w_phr, "LLiLLiV2sV2s", "n")
81239313SdimBUILTIN(__builtin_mips_maq_sa_w_phl, "LLiLLiV2sV2s", "n")
82239313SdimBUILTIN(__builtin_mips_maq_sa_w_phr, "LLiLLiV2sV2s", "n")
83239313SdimBUILTIN(__builtin_mips_mult, "LLiii", "nc")
84239313SdimBUILTIN(__builtin_mips_multu, "LLiUiUi", "nc")
85239313Sdim
86239313SdimBUILTIN(__builtin_mips_dpau_h_qbl, "LLiLLiV4ScV4Sc", "nc")
87239313SdimBUILTIN(__builtin_mips_dpau_h_qbr, "LLiLLiV4ScV4Sc", "nc")
88239313SdimBUILTIN(__builtin_mips_dpsu_h_qbl, "LLiLLiV4ScV4Sc", "nc")
89239313SdimBUILTIN(__builtin_mips_dpsu_h_qbr, "LLiLLiV4ScV4Sc", "nc")
90239313SdimBUILTIN(__builtin_mips_dpaq_s_w_ph, "LLiLLiV2sV2s", "n")
91239313SdimBUILTIN(__builtin_mips_dpsq_s_w_ph, "LLiLLiV2sV2s", "n")
92239313SdimBUILTIN(__builtin_mips_dpaq_sa_l_w, "LLiLLiii", "n")
93239313SdimBUILTIN(__builtin_mips_dpsq_sa_l_w, "LLiLLiii", "n")
94239313Sdim
95239313SdimBUILTIN(__builtin_mips_cmpu_eq_qb, "vV4ScV4Sc", "n")
96239313SdimBUILTIN(__builtin_mips_cmpu_lt_qb, "vV4ScV4Sc", "n")
97239313SdimBUILTIN(__builtin_mips_cmpu_le_qb, "vV4ScV4Sc", "n")
98239313SdimBUILTIN(__builtin_mips_cmpgu_eq_qb, "iV4ScV4Sc", "n")
99239313SdimBUILTIN(__builtin_mips_cmpgu_lt_qb, "iV4ScV4Sc", "n")
100239313SdimBUILTIN(__builtin_mips_cmpgu_le_qb, "iV4ScV4Sc", "n")
101239313SdimBUILTIN(__builtin_mips_cmp_eq_ph, "vV2sV2s", "n")
102239313SdimBUILTIN(__builtin_mips_cmp_lt_ph, "vV2sV2s", "n")
103239313SdimBUILTIN(__builtin_mips_cmp_le_ph, "vV2sV2s", "n")
104239313Sdim
105239313SdimBUILTIN(__builtin_mips_extr_s_h, "iLLii", "n")
106239313SdimBUILTIN(__builtin_mips_extr_w, "iLLii", "n")
107239313SdimBUILTIN(__builtin_mips_extr_rs_w, "iLLii", "n")
108239313SdimBUILTIN(__builtin_mips_extr_r_w, "iLLii", "n")
109239313SdimBUILTIN(__builtin_mips_extp, "iLLii", "n")
110239313SdimBUILTIN(__builtin_mips_extpdp, "iLLii", "n")
111239313Sdim
112239313SdimBUILTIN(__builtin_mips_wrdsp, "viIi", "n")
113239313SdimBUILTIN(__builtin_mips_rddsp, "iIi", "n")
114239313SdimBUILTIN(__builtin_mips_insv, "iii", "n")
115239313SdimBUILTIN(__builtin_mips_bitrev, "ii", "nc")
116239313SdimBUILTIN(__builtin_mips_packrl_ph, "V2sV2sV2s", "nc")
117239313SdimBUILTIN(__builtin_mips_repl_qb, "V4Sci", "nc")
118239313SdimBUILTIN(__builtin_mips_repl_ph, "V2si", "nc")
119239313SdimBUILTIN(__builtin_mips_pick_qb, "V4ScV4ScV4Sc", "n")
120239313SdimBUILTIN(__builtin_mips_pick_ph, "V2sV2sV2s", "n")
121239313SdimBUILTIN(__builtin_mips_mthlip, "LLiLLii", "n")
122239313SdimBUILTIN(__builtin_mips_bposge32, "i", "n")
123239313SdimBUILTIN(__builtin_mips_lbux, "iv*i", "n")
124239313SdimBUILTIN(__builtin_mips_lhx, "iv*i", "n")
125239313SdimBUILTIN(__builtin_mips_lwx, "iv*i", "n")
126239313Sdim
127243830Sdim// MIPS DSP Rev 2
128243830Sdim
129243830SdimBUILTIN(__builtin_mips_absq_s_qb, "V4ScV4Sc", "n")
130243830Sdim
131243830SdimBUILTIN(__builtin_mips_addqh_ph, "V2sV2sV2s", "nc")
132243830SdimBUILTIN(__builtin_mips_addqh_r_ph, "V2sV2sV2s", "nc")
133243830SdimBUILTIN(__builtin_mips_addqh_w, "iii", "nc")
134243830SdimBUILTIN(__builtin_mips_addqh_r_w, "iii", "nc")
135243830Sdim
136243830SdimBUILTIN(__builtin_mips_addu_ph, "V2sV2sV2s", "n")
137243830SdimBUILTIN(__builtin_mips_addu_s_ph, "V2sV2sV2s", "n")
138243830Sdim
139243830SdimBUILTIN(__builtin_mips_adduh_qb, "V4ScV4ScV4Sc", "nc")
140243830SdimBUILTIN(__builtin_mips_adduh_r_qb, "V4ScV4ScV4Sc", "nc")
141243830Sdim
142243830SdimBUILTIN(__builtin_mips_append, "iiiIi", "nc")
143243830SdimBUILTIN(__builtin_mips_balign, "iiiIi", "nc")
144243830Sdim
145243830SdimBUILTIN(__builtin_mips_cmpgdu_eq_qb, "iV4ScV4Sc", "n")
146243830SdimBUILTIN(__builtin_mips_cmpgdu_lt_qb, "iV4ScV4Sc", "n")
147243830SdimBUILTIN(__builtin_mips_cmpgdu_le_qb, "iV4ScV4Sc", "n")
148243830Sdim
149243830SdimBUILTIN(__builtin_mips_dpa_w_ph, "LLiLLiV2sV2s", "nc")
150243830SdimBUILTIN(__builtin_mips_dps_w_ph, "LLiLLiV2sV2s", "nc")
151243830Sdim
152243830SdimBUILTIN(__builtin_mips_dpaqx_s_w_ph, "LLiLLiV2sV2s", "n")
153243830SdimBUILTIN(__builtin_mips_dpaqx_sa_w_ph, "LLiLLiV2sV2s", "n")
154243830SdimBUILTIN(__builtin_mips_dpax_w_ph, "LLiLLiV2sV2s", "nc")
155243830SdimBUILTIN(__builtin_mips_dpsx_w_ph, "LLiLLiV2sV2s", "nc")
156243830SdimBUILTIN(__builtin_mips_dpsqx_s_w_ph, "LLiLLiV2sV2s", "n")
157243830SdimBUILTIN(__builtin_mips_dpsqx_sa_w_ph, "LLiLLiV2sV2s", "n")
158243830Sdim
159243830SdimBUILTIN(__builtin_mips_mul_ph, "V2sV2sV2s", "n")
160243830SdimBUILTIN(__builtin_mips_mul_s_ph, "V2sV2sV2s", "n")
161243830Sdim
162243830SdimBUILTIN(__builtin_mips_mulq_rs_w, "iii", "n")
163243830SdimBUILTIN(__builtin_mips_mulq_s_ph, "V2sV2sV2s", "n")
164243830SdimBUILTIN(__builtin_mips_mulq_s_w, "iii", "n")
165243830SdimBUILTIN(__builtin_mips_mulsa_w_ph, "LLiLLiV2sV2s", "nc")
166243830Sdim
167243830SdimBUILTIN(__builtin_mips_precr_qb_ph, "V4ScV2sV2s", "n")
168243830SdimBUILTIN(__builtin_mips_precr_sra_ph_w, "V2siiIi", "nc")
169243830SdimBUILTIN(__builtin_mips_precr_sra_r_ph_w, "V2siiIi", "nc")
170243830Sdim
171243830SdimBUILTIN(__builtin_mips_prepend, "iiiIi", "nc")
172243830Sdim
173243830SdimBUILTIN(__builtin_mips_shra_qb, "V4ScV4Sci", "nc")
174243830SdimBUILTIN(__builtin_mips_shra_r_qb, "V4ScV4Sci", "nc")
175243830SdimBUILTIN(__builtin_mips_shrl_ph, "V2sV2si", "nc")
176243830Sdim
177243830SdimBUILTIN(__builtin_mips_subqh_ph, "V2sV2sV2s", "nc")
178243830SdimBUILTIN(__builtin_mips_subqh_r_ph, "V2sV2sV2s", "nc")
179243830SdimBUILTIN(__builtin_mips_subqh_w, "iii", "nc")
180243830SdimBUILTIN(__builtin_mips_subqh_r_w, "iii", "nc")
181243830Sdim
182243830SdimBUILTIN(__builtin_mips_subu_ph, "V2sV2sV2s", "n")
183243830SdimBUILTIN(__builtin_mips_subu_s_ph, "V2sV2sV2s", "n")
184243830Sdim
185243830SdimBUILTIN(__builtin_mips_subuh_qb, "V4ScV4ScV4Sc", "nc")
186243830SdimBUILTIN(__builtin_mips_subuh_r_qb, "V4ScV4ScV4Sc", "nc")
187243830Sdim
188263508Sdim// MIPS MSA
189263508Sdim
190263508SdimBUILTIN(__builtin_msa_add_a_b, "V16ScV16ScV16Sc", "nc")
191263508SdimBUILTIN(__builtin_msa_add_a_h, "V8SsV8SsV8Ss", "nc")
192263508SdimBUILTIN(__builtin_msa_add_a_w, "V4SiV4SiV4Si", "nc")
193263508SdimBUILTIN(__builtin_msa_add_a_d, "V2SLLiV2SLLiV2SLLi", "nc")
194263508Sdim
195263508SdimBUILTIN(__builtin_msa_adds_a_b, "V16ScV16ScV16Sc", "nc")
196263508SdimBUILTIN(__builtin_msa_adds_a_h, "V8SsV8SsV8Ss", "nc")
197263508SdimBUILTIN(__builtin_msa_adds_a_w, "V4SiV4SiV4Si", "nc")
198263508SdimBUILTIN(__builtin_msa_adds_a_d, "V2SLLiV2SLLiV2SLLi", "nc")
199263508Sdim
200263508SdimBUILTIN(__builtin_msa_adds_s_b, "V16ScV16ScV16Sc", "nc")
201263508SdimBUILTIN(__builtin_msa_adds_s_h, "V8SsV8SsV8Ss", "nc")
202263508SdimBUILTIN(__builtin_msa_adds_s_w, "V4SiV4SiV4Si", "nc")
203263508SdimBUILTIN(__builtin_msa_adds_s_d, "V2SLLiV2SLLiV2SLLi", "nc")
204263508Sdim
205263508SdimBUILTIN(__builtin_msa_adds_u_b, "V16UcV16UcV16Uc", "nc")
206263508SdimBUILTIN(__builtin_msa_adds_u_h, "V8UsV8UsV8Us", "nc")
207263508SdimBUILTIN(__builtin_msa_adds_u_w, "V4UiV4UiV4Ui", "nc")
208263508SdimBUILTIN(__builtin_msa_adds_u_d, "V2ULLiV2ULLiV2ULLi", "nc")
209263508Sdim
210263508SdimBUILTIN(__builtin_msa_addv_b, "V16cV16cV16c", "nc")
211263508SdimBUILTIN(__builtin_msa_addv_h, "V8sV8sV8s", "nc")
212263508SdimBUILTIN(__builtin_msa_addv_w, "V4iV4iV4i", "nc")
213263508SdimBUILTIN(__builtin_msa_addv_d, "V2LLiV2LLiV2LLi", "nc")
214263508Sdim
215263508SdimBUILTIN(__builtin_msa_addvi_b, "V16cV16cIUi", "nc")
216263508SdimBUILTIN(__builtin_msa_addvi_h, "V8sV8sIUi", "nc")
217263508SdimBUILTIN(__builtin_msa_addvi_w, "V4iV4iIUi", "nc")
218263508SdimBUILTIN(__builtin_msa_addvi_d, "V2LLiV2LLiIUi", "nc")
219263508Sdim
220263508SdimBUILTIN(__builtin_msa_and_v, "V16UcV16UcV16Uc", "nc")
221263508Sdim
222263508SdimBUILTIN(__builtin_msa_andi_b, "V16UcV16UcIUi", "nc")
223263508Sdim
224263508SdimBUILTIN(__builtin_msa_asub_s_b, "V16ScV16ScV16Sc", "nc")
225263508SdimBUILTIN(__builtin_msa_asub_s_h, "V8SsV8SsV8Ss", "nc")
226263508SdimBUILTIN(__builtin_msa_asub_s_w, "V4SiV4SiV4Si", "nc")
227263508SdimBUILTIN(__builtin_msa_asub_s_d, "V2SLLiV2SLLiV2SLLi", "nc")
228263508Sdim
229263508SdimBUILTIN(__builtin_msa_asub_u_b, "V16UcV16UcV16Uc", "nc")
230263508SdimBUILTIN(__builtin_msa_asub_u_h, "V8UsV8UsV8Us", "nc")
231263508SdimBUILTIN(__builtin_msa_asub_u_w, "V4UiV4UiV4Ui", "nc")
232263508SdimBUILTIN(__builtin_msa_asub_u_d, "V2ULLiV2ULLiV2ULLi", "nc")
233263508Sdim
234263508SdimBUILTIN(__builtin_msa_ave_s_b, "V16ScV16ScV16Sc", "nc")
235263508SdimBUILTIN(__builtin_msa_ave_s_h, "V8SsV8SsV8Ss", "nc")
236263508SdimBUILTIN(__builtin_msa_ave_s_w, "V4SiV4SiV4Si", "nc")
237263508SdimBUILTIN(__builtin_msa_ave_s_d, "V2SLLiV2SLLiV2SLLi", "nc")
238263508Sdim
239263508SdimBUILTIN(__builtin_msa_ave_u_b, "V16UcV16UcV16Uc", "nc")
240263508SdimBUILTIN(__builtin_msa_ave_u_h, "V8UsV8UsV8Us", "nc")
241263508SdimBUILTIN(__builtin_msa_ave_u_w, "V4UiV4UiV4Ui", "nc")
242263508SdimBUILTIN(__builtin_msa_ave_u_d, "V2ULLiV2ULLiV2ULLi", "nc")
243263508Sdim
244263508SdimBUILTIN(__builtin_msa_aver_s_b, "V16ScV16ScV16Sc", "nc")
245263508SdimBUILTIN(__builtin_msa_aver_s_h, "V8SsV8SsV8Ss", "nc")
246263508SdimBUILTIN(__builtin_msa_aver_s_w, "V4SiV4SiV4Si", "nc")
247263508SdimBUILTIN(__builtin_msa_aver_s_d, "V2SLLiV2SLLiV2SLLi", "nc")
248263508Sdim
249263508SdimBUILTIN(__builtin_msa_aver_u_b, "V16UcV16UcV16Uc", "nc")
250263508SdimBUILTIN(__builtin_msa_aver_u_h, "V8UsV8UsV8Us", "nc")
251263508SdimBUILTIN(__builtin_msa_aver_u_w, "V4UiV4UiV4Ui", "nc")
252263508SdimBUILTIN(__builtin_msa_aver_u_d, "V2ULLiV2ULLiV2ULLi", "nc")
253263508Sdim
254263508SdimBUILTIN(__builtin_msa_bclr_b, "V16UcV16UcV16Uc", "nc")
255263508SdimBUILTIN(__builtin_msa_bclr_h, "V8UsV8UsV8Us", "nc")
256263508SdimBUILTIN(__builtin_msa_bclr_w, "V4UiV4UiV4Ui", "nc")
257263508SdimBUILTIN(__builtin_msa_bclr_d, "V2ULLiV2ULLiV2ULLi", "nc")
258263508Sdim
259263508SdimBUILTIN(__builtin_msa_bclri_b, "V16UcV16UcIUi", "nc")
260263508SdimBUILTIN(__builtin_msa_bclri_h, "V8UsV8UsIUi", "nc")
261263508SdimBUILTIN(__builtin_msa_bclri_w, "V4UiV4UiIUi", "nc")
262263508SdimBUILTIN(__builtin_msa_bclri_d, "V2ULLiV2ULLiIUi", "nc")
263263508Sdim
264263508SdimBUILTIN(__builtin_msa_binsl_b, "V16UcV16UcV16UcV16Uc", "nc")
265263508SdimBUILTIN(__builtin_msa_binsl_h, "V8UsV8UsV8UsV8Us", "nc")
266263508SdimBUILTIN(__builtin_msa_binsl_w, "V4UiV4UiV4UiV4Ui", "nc")
267263508SdimBUILTIN(__builtin_msa_binsl_d, "V2ULLiV2ULLiV2ULLiV2ULLi", "nc")
268263508Sdim
269263508SdimBUILTIN(__builtin_msa_binsli_b, "V16UcV16UcV16UcIUi", "nc")
270263508SdimBUILTIN(__builtin_msa_binsli_h, "V8UsV8UsV8UsIUi", "nc")
271263508SdimBUILTIN(__builtin_msa_binsli_w, "V4UiV4UiV4UiIUi", "nc")
272263508SdimBUILTIN(__builtin_msa_binsli_d, "V2ULLiV2ULLiV2ULLiIUi", "nc")
273263508Sdim
274263508SdimBUILTIN(__builtin_msa_binsr_b, "V16UcV16UcV16UcV16Uc", "nc")
275263508SdimBUILTIN(__builtin_msa_binsr_h, "V8UsV8UsV8UsV8Us", "nc")
276263508SdimBUILTIN(__builtin_msa_binsr_w, "V4UiV4UiV4UiV4Ui", "nc")
277263508SdimBUILTIN(__builtin_msa_binsr_d, "V2ULLiV2ULLiV2ULLiV2ULLi", "nc")
278263508Sdim
279263508SdimBUILTIN(__builtin_msa_binsri_b, "V16UcV16UcV16UcIUi", "nc")
280263508SdimBUILTIN(__builtin_msa_binsri_h, "V8UsV8UsV8UsIUi", "nc")
281263508SdimBUILTIN(__builtin_msa_binsri_w, "V4UiV4UiV4UiIUi", "nc")
282263508SdimBUILTIN(__builtin_msa_binsri_d, "V2ULLiV2ULLiV2ULLiIUi", "nc")
283263508Sdim
284263508SdimBUILTIN(__builtin_msa_bmnz_v, "V16UcV16UcV16UcV16Uc", "nc")
285263508Sdim
286263508SdimBUILTIN(__builtin_msa_bmnzi_b, "V16UcV16UcV16UcIUi", "nc")
287263508Sdim
288263508SdimBUILTIN(__builtin_msa_bmz_v, "V16UcV16UcV16UcV16Uc", "nc")
289263508Sdim
290263508SdimBUILTIN(__builtin_msa_bmzi_b, "V16UcV16UcV16UcIUi", "nc")
291263508Sdim
292263508SdimBUILTIN(__builtin_msa_bneg_b, "V16UcV16UcV16Uc", "nc")
293263508SdimBUILTIN(__builtin_msa_bneg_h, "V8UsV8UsV8Us", "nc")
294263508SdimBUILTIN(__builtin_msa_bneg_w, "V4UiV4UiV4Ui", "nc")
295263508SdimBUILTIN(__builtin_msa_bneg_d, "V2ULLiV2ULLiV2ULLi", "nc")
296263508Sdim
297263508SdimBUILTIN(__builtin_msa_bnegi_b, "V16UcV16UcIUi", "nc")
298263508SdimBUILTIN(__builtin_msa_bnegi_h, "V8UsV8UsIUi", "nc")
299263508SdimBUILTIN(__builtin_msa_bnegi_w, "V4UiV4UiIUi", "nc")
300263508SdimBUILTIN(__builtin_msa_bnegi_d, "V2ULLiV2ULLiIUi", "nc")
301263508Sdim
302263508SdimBUILTIN(__builtin_msa_bnz_b, "iV16Uc", "nc")
303263508SdimBUILTIN(__builtin_msa_bnz_h, "iV8Us", "nc")
304263508SdimBUILTIN(__builtin_msa_bnz_w, "iV4Ui", "nc")
305263508SdimBUILTIN(__builtin_msa_bnz_d, "iV2ULLi", "nc")
306263508Sdim
307263508SdimBUILTIN(__builtin_msa_bnz_v, "iV16Uc", "nc")
308263508Sdim
309263508SdimBUILTIN(__builtin_msa_bsel_v, "V16UcV16UcV16UcV16Uc", "nc")
310263508Sdim
311263508SdimBUILTIN(__builtin_msa_bseli_b, "V16UcV16UcV16UcIUi", "nc")
312263508Sdim
313263508SdimBUILTIN(__builtin_msa_bset_b, "V16UcV16UcV16Uc", "nc")
314263508SdimBUILTIN(__builtin_msa_bset_h, "V8UsV8UsV8Us", "nc")
315263508SdimBUILTIN(__builtin_msa_bset_w, "V4UiV4UiV4Ui", "nc")
316263508SdimBUILTIN(__builtin_msa_bset_d, "V2ULLiV2ULLiV2ULLi", "nc")
317263508Sdim
318263508SdimBUILTIN(__builtin_msa_bseti_b, "V16UcV16UcIUi", "nc")
319263508SdimBUILTIN(__builtin_msa_bseti_h, "V8UsV8UsIUi", "nc")
320263508SdimBUILTIN(__builtin_msa_bseti_w, "V4UiV4UiIUi", "nc")
321263508SdimBUILTIN(__builtin_msa_bseti_d, "V2ULLiV2ULLiIUi", "nc")
322263508Sdim
323263508SdimBUILTIN(__builtin_msa_bz_b, "iV16Uc", "nc")
324263508SdimBUILTIN(__builtin_msa_bz_h, "iV8Us", "nc")
325263508SdimBUILTIN(__builtin_msa_bz_w, "iV4Ui", "nc")
326263508SdimBUILTIN(__builtin_msa_bz_d, "iV2ULLi", "nc")
327263508Sdim
328263508SdimBUILTIN(__builtin_msa_bz_v, "iV16Uc", "nc")
329263508Sdim
330263508SdimBUILTIN(__builtin_msa_ceq_b, "V16ScV16ScV16Sc", "nc")
331263508SdimBUILTIN(__builtin_msa_ceq_h, "V8SsV8SsV8Ss", "nc")
332263508SdimBUILTIN(__builtin_msa_ceq_w, "V4SiV4SiV4Si", "nc")
333263508SdimBUILTIN(__builtin_msa_ceq_d, "V2SLLiV2SLLiV2SLLi", "nc")
334263508Sdim
335263508SdimBUILTIN(__builtin_msa_ceqi_b, "V16ScV16ScISi", "nc")
336263508SdimBUILTIN(__builtin_msa_ceqi_h, "V8SsV8SsISi", "nc")
337263508SdimBUILTIN(__builtin_msa_ceqi_w, "V4SiV4SiISi", "nc")
338263508SdimBUILTIN(__builtin_msa_ceqi_d, "V2SLLiV2SLLiISi", "nc")
339263508Sdim
340263508SdimBUILTIN(__builtin_msa_cfcmsa, "iIi", "n")
341263508Sdim
342263508SdimBUILTIN(__builtin_msa_cle_s_b, "V16ScV16ScV16Sc", "nc")
343263508SdimBUILTIN(__builtin_msa_cle_s_h, "V8SsV8SsV8Ss", "nc")
344263508SdimBUILTIN(__builtin_msa_cle_s_w, "V4SiV4SiV4Si", "nc")
345263508SdimBUILTIN(__builtin_msa_cle_s_d, "V2SLLiV2SLLiV2SLLi", "nc")
346263508Sdim
347263508SdimBUILTIN(__builtin_msa_cle_u_b, "V16ScV16UcV16Uc", "nc")
348263508SdimBUILTIN(__builtin_msa_cle_u_h, "V8SsV8UsV8Us", "nc")
349263508SdimBUILTIN(__builtin_msa_cle_u_w, "V4SiV4UiV4Ui", "nc")
350263508SdimBUILTIN(__builtin_msa_cle_u_d, "V2SLLiV2ULLiV2ULLi", "nc")
351263508Sdim
352263508SdimBUILTIN(__builtin_msa_clei_s_b, "V16ScV16ScISi", "nc")
353263508SdimBUILTIN(__builtin_msa_clei_s_h, "V8SsV8SsISi", "nc")
354263508SdimBUILTIN(__builtin_msa_clei_s_w, "V4SiV4SiISi", "nc")
355263508SdimBUILTIN(__builtin_msa_clei_s_d, "V2SLLiV2SLLiISi", "nc")
356263508Sdim
357263508SdimBUILTIN(__builtin_msa_clei_u_b, "V16ScV16UcIUi", "nc")
358263508SdimBUILTIN(__builtin_msa_clei_u_h, "V8SsV8UsIUi", "nc")
359263508SdimBUILTIN(__builtin_msa_clei_u_w, "V4SiV4UiIUi", "nc")
360263508SdimBUILTIN(__builtin_msa_clei_u_d, "V2SLLiV2ULLiIUi", "nc")
361263508Sdim
362263508SdimBUILTIN(__builtin_msa_clt_s_b, "V16ScV16ScV16Sc", "nc")
363263508SdimBUILTIN(__builtin_msa_clt_s_h, "V8SsV8SsV8Ss", "nc")
364263508SdimBUILTIN(__builtin_msa_clt_s_w, "V4SiV4SiV4Si", "nc")
365263508SdimBUILTIN(__builtin_msa_clt_s_d, "V2SLLiV2SLLiV2SLLi", "nc")
366263508Sdim
367263508SdimBUILTIN(__builtin_msa_clt_u_b, "V16ScV16UcV16Uc", "nc")
368263508SdimBUILTIN(__builtin_msa_clt_u_h, "V8SsV8UsV8Us", "nc")
369263508SdimBUILTIN(__builtin_msa_clt_u_w, "V4SiV4UiV4Ui", "nc")
370263508SdimBUILTIN(__builtin_msa_clt_u_d, "V2SLLiV2ULLiV2ULLi", "nc")
371263508Sdim
372263508SdimBUILTIN(__builtin_msa_clti_s_b, "V16ScV16ScISi", "nc")
373263508SdimBUILTIN(__builtin_msa_clti_s_h, "V8SsV8SsISi", "nc")
374263508SdimBUILTIN(__builtin_msa_clti_s_w, "V4SiV4SiISi", "nc")
375263508SdimBUILTIN(__builtin_msa_clti_s_d, "V2SLLiV2SLLiISi", "nc")
376263508Sdim
377263508SdimBUILTIN(__builtin_msa_clti_u_b, "V16ScV16UcIUi", "nc")
378263508SdimBUILTIN(__builtin_msa_clti_u_h, "V8SsV8UsIUi", "nc")
379263508SdimBUILTIN(__builtin_msa_clti_u_w, "V4SiV4UiIUi", "nc")
380263508SdimBUILTIN(__builtin_msa_clti_u_d, "V2SLLiV2ULLiIUi", "nc")
381263508Sdim
382263508SdimBUILTIN(__builtin_msa_copy_s_b, "iV16ScIUi", "nc")
383263508SdimBUILTIN(__builtin_msa_copy_s_h, "iV8SsIUi", "nc")
384263508SdimBUILTIN(__builtin_msa_copy_s_w, "iV4SiIUi", "nc")
385263508SdimBUILTIN(__builtin_msa_copy_s_d, "LLiV2SLLiIUi", "nc")
386263508Sdim
387263508SdimBUILTIN(__builtin_msa_copy_u_b, "iV16UcIUi", "nc")
388263508SdimBUILTIN(__builtin_msa_copy_u_h, "iV8UsIUi", "nc")
389263508SdimBUILTIN(__builtin_msa_copy_u_w, "iV4UiIUi", "nc")
390263508SdimBUILTIN(__builtin_msa_copy_u_d, "LLiV2ULLiIUi", "nc")
391263508Sdim
392263508SdimBUILTIN(__builtin_msa_ctcmsa, "vIii", "n")
393263508Sdim
394263508SdimBUILTIN(__builtin_msa_div_s_b, "V16ScV16ScV16Sc", "nc")
395263508SdimBUILTIN(__builtin_msa_div_s_h, "V8SsV8SsV8Ss", "nc")
396263508SdimBUILTIN(__builtin_msa_div_s_w, "V4SiV4SiV4Si", "nc")
397263508SdimBUILTIN(__builtin_msa_div_s_d, "V2SLLiV2SLLiV2SLLi", "nc")
398263508Sdim
399263508SdimBUILTIN(__builtin_msa_div_u_b, "V16UcV16UcV16Uc", "nc")
400263508SdimBUILTIN(__builtin_msa_div_u_h, "V8UsV8UsV8Us", "nc")
401263508SdimBUILTIN(__builtin_msa_div_u_w, "V4UiV4UiV4Ui", "nc")
402263508SdimBUILTIN(__builtin_msa_div_u_d, "V2ULLiV2ULLiV2ULLi", "nc")
403263508Sdim
404263508SdimBUILTIN(__builtin_msa_dotp_s_h, "V8SsV16ScV16Sc", "nc")
405263508SdimBUILTIN(__builtin_msa_dotp_s_w, "V4SiV8SsV8Ss", "nc")
406263508SdimBUILTIN(__builtin_msa_dotp_s_d, "V2SLLiV4SiV4Si", "nc")
407263508Sdim
408263508SdimBUILTIN(__builtin_msa_dotp_u_h, "V8UsV16UcV16Uc", "nc")
409263508SdimBUILTIN(__builtin_msa_dotp_u_w, "V4UiV8UsV8Us", "nc")
410263508SdimBUILTIN(__builtin_msa_dotp_u_d, "V2ULLiV4UiV4Ui", "nc")
411263508Sdim
412263508SdimBUILTIN(__builtin_msa_dpadd_s_h, "V8SsV8SsV16ScV16Sc", "nc")
413263508SdimBUILTIN(__builtin_msa_dpadd_s_w, "V4SiV4SiV8SsV8Ss", "nc")
414263508SdimBUILTIN(__builtin_msa_dpadd_s_d, "V2SLLiV2SLLiV4SiV4Si", "nc")
415263508Sdim
416263508SdimBUILTIN(__builtin_msa_dpadd_u_h, "V8UsV8UsV16UcV16Uc", "nc")
417263508SdimBUILTIN(__builtin_msa_dpadd_u_w, "V4UiV4UiV8UsV8Us", "nc")
418263508SdimBUILTIN(__builtin_msa_dpadd_u_d, "V2ULLiV2ULLiV4UiV4Ui", "nc")
419263508Sdim
420263508SdimBUILTIN(__builtin_msa_dpsub_s_h, "V8SsV8SsV16ScV16Sc", "nc")
421263508SdimBUILTIN(__builtin_msa_dpsub_s_w, "V4SiV4SiV8SsV8Ss", "nc")
422263508SdimBUILTIN(__builtin_msa_dpsub_s_d, "V2SLLiV2SLLiV4SiV4Si", "nc")
423263508Sdim
424263508SdimBUILTIN(__builtin_msa_dpsub_u_h, "V8UsV8UsV16UcV16Uc", "nc")
425263508SdimBUILTIN(__builtin_msa_dpsub_u_w, "V4UiV4UiV8UsV8Us", "nc")
426263508SdimBUILTIN(__builtin_msa_dpsub_u_d, "V2ULLiV2ULLiV4UiV4Ui", "nc")
427263508Sdim
428263508SdimBUILTIN(__builtin_msa_fadd_w, "V4fV4fV4f", "nc")
429263508SdimBUILTIN(__builtin_msa_fadd_d, "V2dV2dV2d", "nc")
430263508Sdim
431263508SdimBUILTIN(__builtin_msa_fcaf_w, "V4iV4fV4f", "nc")
432263508SdimBUILTIN(__builtin_msa_fcaf_d, "V2LLiV2dV2d", "nc")
433263508Sdim
434263508SdimBUILTIN(__builtin_msa_fceq_w, "V4iV4fV4f", "nc")
435263508SdimBUILTIN(__builtin_msa_fceq_d, "V2LLiV2dV2d", "nc")
436263508Sdim
437263508SdimBUILTIN(__builtin_msa_fclass_w, "V4iV4f", "nc")
438263508SdimBUILTIN(__builtin_msa_fclass_d, "V2LLiV2d", "nc")
439263508Sdim
440263508SdimBUILTIN(__builtin_msa_fcle_w, "V4iV4fV4f", "nc")
441263508SdimBUILTIN(__builtin_msa_fcle_d, "V2LLiV2dV2d", "nc")
442263508Sdim
443263508SdimBUILTIN(__builtin_msa_fclt_w, "V4iV4fV4f", "nc")
444263508SdimBUILTIN(__builtin_msa_fclt_d, "V2LLiV2dV2d", "nc")
445263508Sdim
446263508SdimBUILTIN(__builtin_msa_fcne_w, "V4iV4fV4f", "nc")
447263508SdimBUILTIN(__builtin_msa_fcne_d, "V2LLiV2dV2d", "nc")
448263508Sdim
449263508SdimBUILTIN(__builtin_msa_fcor_w, "V4iV4fV4f", "nc")
450263508SdimBUILTIN(__builtin_msa_fcor_d, "V2LLiV2dV2d", "nc")
451263508Sdim
452263508SdimBUILTIN(__builtin_msa_fcueq_w, "V4iV4fV4f", "nc")
453263508SdimBUILTIN(__builtin_msa_fcueq_d, "V2LLiV2dV2d", "nc")
454263508Sdim
455263508SdimBUILTIN(__builtin_msa_fcule_w, "V4iV4fV4f", "nc")
456263508SdimBUILTIN(__builtin_msa_fcule_d, "V2LLiV2dV2d", "nc")
457263508Sdim
458263508SdimBUILTIN(__builtin_msa_fcult_w, "V4iV4fV4f", "nc")
459263508SdimBUILTIN(__builtin_msa_fcult_d, "V2LLiV2dV2d", "nc")
460263508Sdim
461263508SdimBUILTIN(__builtin_msa_fcun_w, "V4iV4fV4f", "nc")
462263508SdimBUILTIN(__builtin_msa_fcun_d, "V2LLiV2dV2d", "nc")
463263508Sdim
464263508SdimBUILTIN(__builtin_msa_fcune_w, "V4iV4fV4f", "nc")
465263508SdimBUILTIN(__builtin_msa_fcune_d, "V2LLiV2dV2d", "nc")
466263508Sdim
467263508SdimBUILTIN(__builtin_msa_fdiv_w, "V4fV4fV4f", "nc")
468263508SdimBUILTIN(__builtin_msa_fdiv_d, "V2dV2dV2d", "nc")
469263508Sdim
470263508SdimBUILTIN(__builtin_msa_fexdo_h, "V8hV4fV4f", "nc")
471263508SdimBUILTIN(__builtin_msa_fexdo_w, "V4fV2dV2d", "nc")
472263508Sdim
473263508SdimBUILTIN(__builtin_msa_fexp2_w, "V4fV4fV4i", "nc")
474263508SdimBUILTIN(__builtin_msa_fexp2_d, "V2dV2dV2LLi", "nc")
475263508Sdim
476263508SdimBUILTIN(__builtin_msa_fexupl_w, "V4fV8h", "nc")
477263508SdimBUILTIN(__builtin_msa_fexupl_d, "V2dV4f", "nc")
478263508Sdim
479263508SdimBUILTIN(__builtin_msa_fexupr_w, "V4fV8h", "nc")
480263508SdimBUILTIN(__builtin_msa_fexupr_d, "V2dV4f", "nc")
481263508Sdim
482263508SdimBUILTIN(__builtin_msa_ffint_s_w, "V4fV4Si", "nc")
483263508SdimBUILTIN(__builtin_msa_ffint_s_d, "V2dV2SLLi", "nc")
484263508Sdim
485263508SdimBUILTIN(__builtin_msa_ffint_u_w, "V4fV4Ui", "nc")
486263508SdimBUILTIN(__builtin_msa_ffint_u_d, "V2dV2ULLi", "nc")
487263508Sdim
488263508Sdim// ffql uses integers since long _Fract is not implemented
489263508SdimBUILTIN(__builtin_msa_ffql_w, "V4fV8Ss", "nc")
490263508SdimBUILTIN(__builtin_msa_ffql_d, "V2dV4Si", "nc")
491263508Sdim
492263508Sdim// ffqr uses integers since long _Fract is not implemented
493263508SdimBUILTIN(__builtin_msa_ffqr_w, "V4fV8Ss", "nc")
494263508SdimBUILTIN(__builtin_msa_ffqr_d, "V2dV4Si", "nc")
495263508Sdim
496263508SdimBUILTIN(__builtin_msa_fill_b, "V16Sci", "nc")
497263508SdimBUILTIN(__builtin_msa_fill_h, "V8Ssi", "nc")
498263508SdimBUILTIN(__builtin_msa_fill_w, "V4Sii", "nc")
499263508SdimBUILTIN(__builtin_msa_fill_d, "V2SLLiLLi", "nc")
500263508Sdim
501263508SdimBUILTIN(__builtin_msa_flog2_w, "V4fV4f", "nc")
502263508SdimBUILTIN(__builtin_msa_flog2_d, "V2dV2d", "nc")
503263508Sdim
504263508SdimBUILTIN(__builtin_msa_fmadd_w, "V4fV4fV4fV4f", "nc")
505263508SdimBUILTIN(__builtin_msa_fmadd_d, "V2dV2dV2dV2d", "nc")
506263508Sdim
507263508SdimBUILTIN(__builtin_msa_fmax_w, "V4fV4fV4f", "nc")
508263508SdimBUILTIN(__builtin_msa_fmax_d, "V2dV2dV2d", "nc")
509263508Sdim
510263508SdimBUILTIN(__builtin_msa_fmax_a_w, "V4fV4fV4f", "nc")
511263508SdimBUILTIN(__builtin_msa_fmax_a_d, "V2dV2dV2d", "nc")
512263508Sdim
513263508SdimBUILTIN(__builtin_msa_fmin_w, "V4fV4fV4f", "nc")
514263508SdimBUILTIN(__builtin_msa_fmin_d, "V2dV2dV2d", "nc")
515263508Sdim
516263508SdimBUILTIN(__builtin_msa_fmin_a_w, "V4fV4fV4f", "nc")
517263508SdimBUILTIN(__builtin_msa_fmin_a_d, "V2dV2dV2d", "nc")
518263508Sdim
519263508SdimBUILTIN(__builtin_msa_fmsub_w, "V4fV4fV4fV4f", "nc")
520263508SdimBUILTIN(__builtin_msa_fmsub_d, "V2dV2dV2dV2d", "nc")
521263508Sdim
522263508SdimBUILTIN(__builtin_msa_fmul_w, "V4fV4fV4f", "nc")
523263508SdimBUILTIN(__builtin_msa_fmul_d, "V2dV2dV2d", "nc")
524263508Sdim
525263508SdimBUILTIN(__builtin_msa_frint_w, "V4fV4f", "nc")
526263508SdimBUILTIN(__builtin_msa_frint_d, "V2dV2d", "nc")
527263508Sdim
528263508SdimBUILTIN(__builtin_msa_frcp_w, "V4fV4f", "nc")
529263508SdimBUILTIN(__builtin_msa_frcp_d, "V2dV2d", "nc")
530263508Sdim
531263508SdimBUILTIN(__builtin_msa_frsqrt_w, "V4fV4f", "nc")
532263508SdimBUILTIN(__builtin_msa_frsqrt_d, "V2dV2d", "nc")
533263508Sdim
534263508SdimBUILTIN(__builtin_msa_fsaf_w, "V4iV4fV4f", "nc")
535263508SdimBUILTIN(__builtin_msa_fsaf_d, "V2LLiV2dV2d", "nc")
536263508Sdim
537263508SdimBUILTIN(__builtin_msa_fseq_w, "V4iV4fV4f", "nc")
538263508SdimBUILTIN(__builtin_msa_fseq_d, "V2LLiV2dV2d", "nc")
539263508Sdim
540263508SdimBUILTIN(__builtin_msa_fsle_w, "V4iV4fV4f", "nc")
541263508SdimBUILTIN(__builtin_msa_fsle_d, "V2LLiV2dV2d", "nc")
542263508Sdim
543263508SdimBUILTIN(__builtin_msa_fslt_w, "V4iV4fV4f", "nc")
544263508SdimBUILTIN(__builtin_msa_fslt_d, "V2LLiV2dV2d", "nc")
545263508Sdim
546263508SdimBUILTIN(__builtin_msa_fsne_w, "V4iV4fV4f", "nc")
547263508SdimBUILTIN(__builtin_msa_fsne_d, "V2LLiV2dV2d", "nc")
548263508Sdim
549263508SdimBUILTIN(__builtin_msa_fsor_w, "V4iV4fV4f", "nc")
550263508SdimBUILTIN(__builtin_msa_fsor_d, "V2LLiV2dV2d", "nc")
551263508Sdim
552263508SdimBUILTIN(__builtin_msa_fsqrt_w, "V4fV4f", "nc")
553263508SdimBUILTIN(__builtin_msa_fsqrt_d, "V2dV2d", "nc")
554263508Sdim
555263508SdimBUILTIN(__builtin_msa_fsub_w, "V4fV4fV4f", "nc")
556263508SdimBUILTIN(__builtin_msa_fsub_d, "V2dV2dV2d", "nc")
557263508Sdim
558263508SdimBUILTIN(__builtin_msa_fsueq_w, "V4iV4fV4f", "nc")
559263508SdimBUILTIN(__builtin_msa_fsueq_d, "V2LLiV2dV2d", "nc")
560263508Sdim
561263508SdimBUILTIN(__builtin_msa_fsule_w, "V4iV4fV4f", "nc")
562263508SdimBUILTIN(__builtin_msa_fsule_d, "V2LLiV2dV2d", "nc")
563263508Sdim
564263508SdimBUILTIN(__builtin_msa_fsult_w, "V4iV4fV4f", "nc")
565263508SdimBUILTIN(__builtin_msa_fsult_d, "V2LLiV2dV2d", "nc")
566263508Sdim
567263508SdimBUILTIN(__builtin_msa_fsun_w, "V4iV4fV4f", "nc")
568263508SdimBUILTIN(__builtin_msa_fsun_d, "V2LLiV2dV2d", "nc")
569263508Sdim
570263508SdimBUILTIN(__builtin_msa_fsune_w, "V4iV4fV4f", "nc")
571263508SdimBUILTIN(__builtin_msa_fsune_d, "V2LLiV2dV2d", "nc")
572263508Sdim
573263508SdimBUILTIN(__builtin_msa_ftint_s_w, "V4SiV4f", "nc")
574263508SdimBUILTIN(__builtin_msa_ftint_s_d, "V2SLLiV2d", "nc")
575263508Sdim
576263508SdimBUILTIN(__builtin_msa_ftint_u_w, "V4UiV4f", "nc")
577263508SdimBUILTIN(__builtin_msa_ftint_u_d, "V2ULLiV2d", "nc")
578263508Sdim
579263508SdimBUILTIN(__builtin_msa_ftq_h, "V4UiV4fV4f", "nc")
580263508SdimBUILTIN(__builtin_msa_ftq_w, "V2ULLiV2dV2d", "nc")
581263508Sdim
582263508SdimBUILTIN(__builtin_msa_ftrunc_s_w, "V4SiV4f", "nc")
583263508SdimBUILTIN(__builtin_msa_ftrunc_s_d, "V2SLLiV2d", "nc")
584263508Sdim
585263508SdimBUILTIN(__builtin_msa_ftrunc_u_w, "V4UiV4f", "nc")
586263508SdimBUILTIN(__builtin_msa_ftrunc_u_d, "V2ULLiV2d", "nc")
587263508Sdim
588263508SdimBUILTIN(__builtin_msa_hadd_s_h, "V8SsV16ScV16Sc", "nc")
589263508SdimBUILTIN(__builtin_msa_hadd_s_w, "V4SiV8SsV8Ss", "nc")
590263508SdimBUILTIN(__builtin_msa_hadd_s_d, "V2SLLiV4SiV4Si", "nc")
591263508Sdim
592263508SdimBUILTIN(__builtin_msa_hadd_u_h, "V8UsV16UcV16Uc", "nc")
593263508SdimBUILTIN(__builtin_msa_hadd_u_w, "V4UiV8UsV8Us", "nc")
594263508SdimBUILTIN(__builtin_msa_hadd_u_d, "V2ULLiV4UiV4Ui", "nc")
595263508Sdim
596263508SdimBUILTIN(__builtin_msa_hsub_s_h, "V8SsV16ScV16Sc", "nc")
597263508SdimBUILTIN(__builtin_msa_hsub_s_w, "V4SiV8SsV8Ss", "nc")
598263508SdimBUILTIN(__builtin_msa_hsub_s_d, "V2SLLiV4SiV4Si", "nc")
599263508Sdim
600263508SdimBUILTIN(__builtin_msa_hsub_u_h, "V8UsV16UcV16Uc", "nc")
601263508SdimBUILTIN(__builtin_msa_hsub_u_w, "V4UiV8UsV8Us", "nc")
602263508SdimBUILTIN(__builtin_msa_hsub_u_d, "V2ULLiV4UiV4Ui", "nc")
603263508Sdim
604263508SdimBUILTIN(__builtin_msa_ilvev_b, "V16cV16cV16c", "nc")
605263508SdimBUILTIN(__builtin_msa_ilvev_h, "V8sV8sV8s", "nc")
606263508SdimBUILTIN(__builtin_msa_ilvev_w, "V4iV4iV4i", "nc")
607263508SdimBUILTIN(__builtin_msa_ilvev_d, "V2LLiV2LLiV2LLi", "nc")
608263508Sdim
609263508SdimBUILTIN(__builtin_msa_ilvl_b, "V16cV16cV16c", "nc")
610263508SdimBUILTIN(__builtin_msa_ilvl_h, "V8sV8sV8s", "nc")
611263508SdimBUILTIN(__builtin_msa_ilvl_w, "V4iV4iV4i", "nc")
612263508SdimBUILTIN(__builtin_msa_ilvl_d, "V2LLiV2LLiV2LLi", "nc")
613263508Sdim
614263508SdimBUILTIN(__builtin_msa_ilvod_b, "V16cV16cV16c", "nc")
615263508SdimBUILTIN(__builtin_msa_ilvod_h, "V8sV8sV8s", "nc")
616263508SdimBUILTIN(__builtin_msa_ilvod_w, "V4iV4iV4i", "nc")
617263508SdimBUILTIN(__builtin_msa_ilvod_d, "V2LLiV2LLiV2LLi", "nc")
618263508Sdim
619263508SdimBUILTIN(__builtin_msa_ilvr_b, "V16cV16cV16c", "nc")
620263508SdimBUILTIN(__builtin_msa_ilvr_h, "V8sV8sV8s", "nc")
621263508SdimBUILTIN(__builtin_msa_ilvr_w, "V4iV4iV4i", "nc")
622263508SdimBUILTIN(__builtin_msa_ilvr_d, "V2LLiV2LLiV2LLi", "nc")
623263508Sdim
624263508SdimBUILTIN(__builtin_msa_insert_b, "V16ScV16ScIUii", "nc")
625263508SdimBUILTIN(__builtin_msa_insert_h, "V8SsV8SsIUii", "nc")
626263508SdimBUILTIN(__builtin_msa_insert_w, "V4SiV4SiIUii", "nc")
627263508SdimBUILTIN(__builtin_msa_insert_d, "V2SLLiV2SLLiIUiLLi", "nc")
628263508Sdim
629263508SdimBUILTIN(__builtin_msa_insve_b, "V16ScV16ScIUiV16Sc", "nc")
630263508SdimBUILTIN(__builtin_msa_insve_h, "V8SsV8SsIUiV8Ss", "nc")
631263508SdimBUILTIN(__builtin_msa_insve_w, "V4SiV4SiIUiV4Si", "nc")
632263508SdimBUILTIN(__builtin_msa_insve_d, "V2SLLiV2SLLiIUiV2SLLi", "nc")
633263508Sdim
634263508SdimBUILTIN(__builtin_msa_ld_b, "V16Scv*Ii", "nc")
635263508SdimBUILTIN(__builtin_msa_ld_h, "V8Ssv*Ii", "nc")
636263508SdimBUILTIN(__builtin_msa_ld_w, "V4Siv*Ii", "nc")
637263508SdimBUILTIN(__builtin_msa_ld_d, "V2SLLiv*Ii", "nc")
638263508Sdim
639263508SdimBUILTIN(__builtin_msa_ldi_b, "V16cIi", "nc")
640263508SdimBUILTIN(__builtin_msa_ldi_h, "V8sIi", "nc")
641263508SdimBUILTIN(__builtin_msa_ldi_w, "V4iIi", "nc")
642263508SdimBUILTIN(__builtin_msa_ldi_d, "V2LLiIi", "nc")
643263508Sdim
644263508SdimBUILTIN(__builtin_msa_madd_q_h, "V8SsV8SsV8SsV8Ss", "nc")
645263508SdimBUILTIN(__builtin_msa_madd_q_w, "V4SiV4SiV4SiV4Si", "nc")
646263508Sdim
647263508SdimBUILTIN(__builtin_msa_maddr_q_h, "V8SsV8SsV8SsV8Ss", "nc")
648263508SdimBUILTIN(__builtin_msa_maddr_q_w, "V4SiV4SiV4SiV4Si", "nc")
649263508Sdim
650263508SdimBUILTIN(__builtin_msa_maddv_b, "V16ScV16ScV16ScV16Sc", "nc")
651263508SdimBUILTIN(__builtin_msa_maddv_h, "V8SsV8SsV8SsV8Ss", "nc")
652263508SdimBUILTIN(__builtin_msa_maddv_w, "V4SiV4SiV4SiV4Si", "nc")
653263508SdimBUILTIN(__builtin_msa_maddv_d, "V2SLLiV2SLLiV2SLLiV2SLLi", "nc")
654263508Sdim
655263508SdimBUILTIN(__builtin_msa_max_a_b, "V16ScV16ScV16Sc", "nc")
656263508SdimBUILTIN(__builtin_msa_max_a_h, "V8SsV8SsV8Ss", "nc")
657263508SdimBUILTIN(__builtin_msa_max_a_w, "V4SiV4SiV4Si", "nc")
658263508SdimBUILTIN(__builtin_msa_max_a_d, "V2SLLiV2SLLiV2SLLi", "nc")
659263508Sdim
660263508SdimBUILTIN(__builtin_msa_max_s_b, "V16ScV16ScV16Sc", "nc")
661263508SdimBUILTIN(__builtin_msa_max_s_h, "V8SsV8SsV8Ss", "nc")
662263508SdimBUILTIN(__builtin_msa_max_s_w, "V4SiV4SiV4Si", "nc")
663263508SdimBUILTIN(__builtin_msa_max_s_d, "V2SLLiV2SLLiV2SLLi", "nc")
664263508Sdim
665263508SdimBUILTIN(__builtin_msa_max_u_b, "V16UcV16UcV16Uc", "nc")
666263508SdimBUILTIN(__builtin_msa_max_u_h, "V8UsV8UsV8Us", "nc")
667263508SdimBUILTIN(__builtin_msa_max_u_w, "V4UiV4UiV4Ui", "nc")
668263508SdimBUILTIN(__builtin_msa_max_u_d, "V2ULLiV2ULLiV2ULLi", "nc")
669263508Sdim
670263508SdimBUILTIN(__builtin_msa_maxi_s_b, "V16ScV16ScIi", "nc")
671263508SdimBUILTIN(__builtin_msa_maxi_s_h, "V8SsV8SsIi", "nc")
672263508SdimBUILTIN(__builtin_msa_maxi_s_w, "V4SiV4SiIi", "nc")
673263508SdimBUILTIN(__builtin_msa_maxi_s_d, "V2SLLiV2SLLiIi", "nc")
674263508Sdim
675263508SdimBUILTIN(__builtin_msa_maxi_u_b, "V16UcV16UcIi", "nc")
676263508SdimBUILTIN(__builtin_msa_maxi_u_h, "V8UsV8UsIi", "nc")
677263508SdimBUILTIN(__builtin_msa_maxi_u_w, "V4UiV4UiIi", "nc")
678263508SdimBUILTIN(__builtin_msa_maxi_u_d, "V2ULLiV2ULLiIi", "nc")
679263508Sdim
680263508SdimBUILTIN(__builtin_msa_min_a_b, "V16ScV16ScV16Sc", "nc")
681263508SdimBUILTIN(__builtin_msa_min_a_h, "V8SsV8SsV8Ss", "nc")
682263508SdimBUILTIN(__builtin_msa_min_a_w, "V4SiV4SiV4Si", "nc")
683263508SdimBUILTIN(__builtin_msa_min_a_d, "V2SLLiV2SLLiV2SLLi", "nc")
684263508Sdim
685263508SdimBUILTIN(__builtin_msa_min_s_b, "V16ScV16ScV16Sc", "nc")
686263508SdimBUILTIN(__builtin_msa_min_s_h, "V8SsV8SsV8Ss", "nc")
687263508SdimBUILTIN(__builtin_msa_min_s_w, "V4SiV4SiV4Si", "nc")
688263508SdimBUILTIN(__builtin_msa_min_s_d, "V2SLLiV2SLLiV2SLLi", "nc")
689263508Sdim
690263508SdimBUILTIN(__builtin_msa_min_u_b, "V16UcV16UcV16Uc", "nc")
691263508SdimBUILTIN(__builtin_msa_min_u_h, "V8UsV8UsV8Us", "nc")
692263508SdimBUILTIN(__builtin_msa_min_u_w, "V4UiV4UiV4Ui", "nc")
693263508SdimBUILTIN(__builtin_msa_min_u_d, "V2ULLiV2ULLiV2ULLi", "nc")
694263508Sdim
695263508SdimBUILTIN(__builtin_msa_mini_s_b, "V16ScV16ScIi", "nc")
696263508SdimBUILTIN(__builtin_msa_mini_s_h, "V8SsV8SsIi", "nc")
697263508SdimBUILTIN(__builtin_msa_mini_s_w, "V4SiV4SiIi", "nc")
698263508SdimBUILTIN(__builtin_msa_mini_s_d, "V2SLLiV2SLLiIi", "nc")
699263508Sdim
700263508SdimBUILTIN(__builtin_msa_mini_u_b, "V16UcV16UcIi", "nc")
701263508SdimBUILTIN(__builtin_msa_mini_u_h, "V8UsV8UsIi", "nc")
702263508SdimBUILTIN(__builtin_msa_mini_u_w, "V4UiV4UiIi", "nc")
703263508SdimBUILTIN(__builtin_msa_mini_u_d, "V2ULLiV2ULLiIi", "nc")
704263508Sdim
705263508SdimBUILTIN(__builtin_msa_mod_s_b, "V16ScV16ScV16Sc", "nc")
706263508SdimBUILTIN(__builtin_msa_mod_s_h, "V8SsV8SsV8Ss", "nc")
707263508SdimBUILTIN(__builtin_msa_mod_s_w, "V4SiV4SiV4Si", "nc")
708263508SdimBUILTIN(__builtin_msa_mod_s_d, "V2SLLiV2SLLiV2SLLi", "nc")
709263508Sdim
710263508SdimBUILTIN(__builtin_msa_mod_u_b, "V16UcV16UcV16Uc", "nc")
711263508SdimBUILTIN(__builtin_msa_mod_u_h, "V8UsV8UsV8Us", "nc")
712263508SdimBUILTIN(__builtin_msa_mod_u_w, "V4UiV4UiV4Ui", "nc")
713263508SdimBUILTIN(__builtin_msa_mod_u_d, "V2ULLiV2ULLiV2ULLi", "nc")
714263508Sdim
715263508SdimBUILTIN(__builtin_msa_move_v, "V16ScV16Sc", "nc")
716263508Sdim
717263508SdimBUILTIN(__builtin_msa_msub_q_h, "V8SsV8SsV8SsV8Ss", "nc")
718263508SdimBUILTIN(__builtin_msa_msub_q_w, "V4SiV4SiV4SiV4Si", "nc")
719263508Sdim
720263508SdimBUILTIN(__builtin_msa_msubr_q_h, "V8SsV8SsV8SsV8Ss", "nc")
721263508SdimBUILTIN(__builtin_msa_msubr_q_w, "V4SiV4SiV4SiV4Si", "nc")
722263508Sdim
723263508SdimBUILTIN(__builtin_msa_msubv_b, "V16ScV16ScV16ScV16Sc", "nc")
724263508SdimBUILTIN(__builtin_msa_msubv_h, "V8SsV8SsV8SsV8Ss", "nc")
725263508SdimBUILTIN(__builtin_msa_msubv_w, "V4SiV4SiV4SiV4Si", "nc")
726263508SdimBUILTIN(__builtin_msa_msubv_d, "V2SLLiV2SLLiV2SLLiV2SLLi", "nc")
727263508Sdim
728263508SdimBUILTIN(__builtin_msa_mul_q_h, "V8SsV8SsV8Ss", "nc")
729263508SdimBUILTIN(__builtin_msa_mul_q_w, "V4SiV4SiV4Si", "nc")
730263508Sdim
731263508SdimBUILTIN(__builtin_msa_mulr_q_h, "V8SsV8SsV8Ss", "nc")
732263508SdimBUILTIN(__builtin_msa_mulr_q_w, "V4SiV4SiV4Si", "nc")
733263508Sdim
734263508SdimBUILTIN(__builtin_msa_mulv_b, "V16ScV16ScV16Sc", "nc")
735263508SdimBUILTIN(__builtin_msa_mulv_h, "V8SsV8SsV8Ss", "nc")
736263508SdimBUILTIN(__builtin_msa_mulv_w, "V4SiV4SiV4Si", "nc")
737263508SdimBUILTIN(__builtin_msa_mulv_d, "V2SLLiV2SLLiV2SLLi", "nc")
738263508Sdim
739263508SdimBUILTIN(__builtin_msa_nloc_b, "V16ScV16Sc", "nc")
740263508SdimBUILTIN(__builtin_msa_nloc_h, "V8SsV8Ss", "nc")
741263508SdimBUILTIN(__builtin_msa_nloc_w, "V4SiV4Si", "nc")
742263508SdimBUILTIN(__builtin_msa_nloc_d, "V2SLLiV2SLLi", "nc")
743263508Sdim
744263508SdimBUILTIN(__builtin_msa_nlzc_b, "V16ScV16Sc", "nc")
745263508SdimBUILTIN(__builtin_msa_nlzc_h, "V8SsV8Ss", "nc")
746263508SdimBUILTIN(__builtin_msa_nlzc_w, "V4SiV4Si", "nc")
747263508SdimBUILTIN(__builtin_msa_nlzc_d, "V2SLLiV2SLLi", "nc")
748263508Sdim
749263508SdimBUILTIN(__builtin_msa_nor_v, "V16UcV16UcV16Uc", "nc")
750263508Sdim
751263508SdimBUILTIN(__builtin_msa_nori_b, "V16UcV16cIUi", "nc")
752263508Sdim
753263508SdimBUILTIN(__builtin_msa_or_v, "V16UcV16UcV16Uc", "nc")
754263508Sdim
755263508SdimBUILTIN(__builtin_msa_ori_b, "V16UcV16UcIUi", "nc")
756263508Sdim
757263508SdimBUILTIN(__builtin_msa_pckev_b, "V16cV16cV16c", "nc")
758263508SdimBUILTIN(__builtin_msa_pckev_h, "V8sV8sV8s", "nc")
759263508SdimBUILTIN(__builtin_msa_pckev_w, "V4iV4iV4i", "nc")
760263508SdimBUILTIN(__builtin_msa_pckev_d, "V2LLiV2LLiV2LLi", "nc")
761263508Sdim
762263508SdimBUILTIN(__builtin_msa_pckod_b, "V16cV16cV16c", "nc")
763263508SdimBUILTIN(__builtin_msa_pckod_h, "V8sV8sV8s", "nc")
764263508SdimBUILTIN(__builtin_msa_pckod_w, "V4iV4iV4i", "nc")
765263508SdimBUILTIN(__builtin_msa_pckod_d, "V2LLiV2LLiV2LLi", "nc")
766263508Sdim
767263508SdimBUILTIN(__builtin_msa_pcnt_b, "V16ScV16Sc", "nc")
768263508SdimBUILTIN(__builtin_msa_pcnt_h, "V8SsV8Ss", "nc")
769263508SdimBUILTIN(__builtin_msa_pcnt_w, "V4SiV4Si", "nc")
770263508SdimBUILTIN(__builtin_msa_pcnt_d, "V2SLLiV2SLLi", "nc")
771263508Sdim
772263508SdimBUILTIN(__builtin_msa_sat_s_b, "V16ScV16ScIUi", "nc")
773263508SdimBUILTIN(__builtin_msa_sat_s_h, "V8SsV8SsIUi", "nc")
774263508SdimBUILTIN(__builtin_msa_sat_s_w, "V4SiV4SiIUi", "nc")
775263508SdimBUILTIN(__builtin_msa_sat_s_d, "V2SLLiV2SLLiIUi", "nc")
776263508Sdim
777263508SdimBUILTIN(__builtin_msa_sat_u_b, "V16UcV16UcIUi", "nc")
778263508SdimBUILTIN(__builtin_msa_sat_u_h, "V8UsV8UsIUi", "nc")
779263508SdimBUILTIN(__builtin_msa_sat_u_w, "V4UiV4UiIUi", "nc")
780263508SdimBUILTIN(__builtin_msa_sat_u_d, "V2ULLiV2ULLiIUi", "nc")
781263508Sdim
782263508SdimBUILTIN(__builtin_msa_shf_b, "V16cV16cIUi", "nc")
783263508SdimBUILTIN(__builtin_msa_shf_h, "V8sV8sIUi", "nc")
784263508SdimBUILTIN(__builtin_msa_shf_w, "V4iV4iIUi", "nc")
785263508Sdim
786263508SdimBUILTIN(__builtin_msa_sld_b, "V16cV16cUi", "nc")
787263508SdimBUILTIN(__builtin_msa_sld_h, "V8sV8sUi", "nc")
788263508SdimBUILTIN(__builtin_msa_sld_w, "V4iV4iUi", "nc")
789263508SdimBUILTIN(__builtin_msa_sld_d, "V2LLiV2LLiUi", "nc")
790263508Sdim
791263508SdimBUILTIN(__builtin_msa_sldi_b, "V16cV16cIUi", "nc")
792263508SdimBUILTIN(__builtin_msa_sldi_h, "V8sV8sIUi", "nc")
793263508SdimBUILTIN(__builtin_msa_sldi_w, "V4iV4iIUi", "nc")
794263508SdimBUILTIN(__builtin_msa_sldi_d, "V2LLiV2LLiIUi", "nc")
795263508Sdim
796263508SdimBUILTIN(__builtin_msa_sll_b, "V16cV16cV16c", "nc")
797263508SdimBUILTIN(__builtin_msa_sll_h, "V8sV8sV8s", "nc")
798263508SdimBUILTIN(__builtin_msa_sll_w, "V4iV4iV4i", "nc")
799263508SdimBUILTIN(__builtin_msa_sll_d, "V2LLiV2LLiV2LLi", "nc")
800263508Sdim
801263508SdimBUILTIN(__builtin_msa_slli_b, "V16cV16cIUi", "nc")
802263508SdimBUILTIN(__builtin_msa_slli_h, "V8sV8sIUi", "nc")
803263508SdimBUILTIN(__builtin_msa_slli_w, "V4iV4iIUi", "nc")
804263508SdimBUILTIN(__builtin_msa_slli_d, "V2LLiV2LLiIUi", "nc")
805263508Sdim
806263508SdimBUILTIN(__builtin_msa_splat_b, "V16cV16cUi", "nc")
807263508SdimBUILTIN(__builtin_msa_splat_h, "V8sV8sUi", "nc")
808263508SdimBUILTIN(__builtin_msa_splat_w, "V4iV4iUi", "nc")
809263508SdimBUILTIN(__builtin_msa_splat_d, "V2LLiV2LLiUi", "nc")
810263508Sdim
811263508SdimBUILTIN(__builtin_msa_splati_b, "V16cV16cIUi", "nc")
812263508SdimBUILTIN(__builtin_msa_splati_h, "V8sV8sIUi", "nc")
813263508SdimBUILTIN(__builtin_msa_splati_w, "V4iV4iIUi", "nc")
814263508SdimBUILTIN(__builtin_msa_splati_d, "V2LLiV2LLiIUi", "nc")
815263508Sdim
816263508SdimBUILTIN(__builtin_msa_sra_b, "V16cV16cV16c", "nc")
817263508SdimBUILTIN(__builtin_msa_sra_h, "V8sV8sV8s", "nc")
818263508SdimBUILTIN(__builtin_msa_sra_w, "V4iV4iV4i", "nc")
819263508SdimBUILTIN(__builtin_msa_sra_d, "V2LLiV2LLiV2LLi", "nc")
820263508Sdim
821263508SdimBUILTIN(__builtin_msa_srai_b, "V16cV16cIUi", "nc")
822263508SdimBUILTIN(__builtin_msa_srai_h, "V8sV8sIUi", "nc")
823263508SdimBUILTIN(__builtin_msa_srai_w, "V4iV4iIUi", "nc")
824263508SdimBUILTIN(__builtin_msa_srai_d, "V2LLiV2LLiIUi", "nc")
825263508Sdim
826263508SdimBUILTIN(__builtin_msa_srar_b, "V16cV16cV16c", "nc")
827263508SdimBUILTIN(__builtin_msa_srar_h, "V8sV8sV8s", "nc")
828263508SdimBUILTIN(__builtin_msa_srar_w, "V4iV4iV4i", "nc")
829263508SdimBUILTIN(__builtin_msa_srar_d, "V2LLiV2LLiV2LLi", "nc")
830263508Sdim
831263508SdimBUILTIN(__builtin_msa_srari_b, "V16cV16cIUi", "nc")
832263508SdimBUILTIN(__builtin_msa_srari_h, "V8sV8sIUi", "nc")
833263508SdimBUILTIN(__builtin_msa_srari_w, "V4iV4iIUi", "nc")
834263508SdimBUILTIN(__builtin_msa_srari_d, "V2LLiV2LLiIUi", "nc")
835263508Sdim
836263508SdimBUILTIN(__builtin_msa_srl_b, "V16cV16cV16c", "nc")
837263508SdimBUILTIN(__builtin_msa_srl_h, "V8sV8sV8s", "nc")
838263508SdimBUILTIN(__builtin_msa_srl_w, "V4iV4iV4i", "nc")
839263508SdimBUILTIN(__builtin_msa_srl_d, "V2LLiV2LLiV2LLi", "nc")
840263508Sdim
841263508SdimBUILTIN(__builtin_msa_srli_b, "V16cV16cIUi", "nc")
842263508SdimBUILTIN(__builtin_msa_srli_h, "V8sV8sIUi", "nc")
843263508SdimBUILTIN(__builtin_msa_srli_w, "V4iV4iIUi", "nc")
844263508SdimBUILTIN(__builtin_msa_srli_d, "V2LLiV2LLiIUi", "nc")
845263508Sdim
846263508SdimBUILTIN(__builtin_msa_srlr_b, "V16cV16cV16c", "nc")
847263508SdimBUILTIN(__builtin_msa_srlr_h, "V8sV8sV8s", "nc")
848263508SdimBUILTIN(__builtin_msa_srlr_w, "V4iV4iV4i", "nc")
849263508SdimBUILTIN(__builtin_msa_srlr_d, "V2LLiV2LLiV2LLi", "nc")
850263508Sdim
851263508SdimBUILTIN(__builtin_msa_srlri_b, "V16cV16cIUi", "nc")
852263508SdimBUILTIN(__builtin_msa_srlri_h, "V8sV8sIUi", "nc")
853263508SdimBUILTIN(__builtin_msa_srlri_w, "V4iV4iIUi", "nc")
854263508SdimBUILTIN(__builtin_msa_srlri_d, "V2LLiV2LLiIUi", "nc")
855263508Sdim
856263508SdimBUILTIN(__builtin_msa_st_b, "vV16Scv*Ii", "nc")
857263508SdimBUILTIN(__builtin_msa_st_h, "vV8Ssv*Ii", "nc")
858263508SdimBUILTIN(__builtin_msa_st_w, "vV4Siv*Ii", "nc")
859263508SdimBUILTIN(__builtin_msa_st_d, "vV2SLLiv*Ii", "nc")
860263508Sdim
861263508SdimBUILTIN(__builtin_msa_subs_s_b, "V16ScV16ScV16Sc", "nc")
862263508SdimBUILTIN(__builtin_msa_subs_s_h, "V8SsV8SsV8Ss", "nc")
863263508SdimBUILTIN(__builtin_msa_subs_s_w, "V4SiV4SiV4Si", "nc")
864263508SdimBUILTIN(__builtin_msa_subs_s_d, "V2SLLiV2SLLiV2SLLi", "nc")
865263508Sdim
866263508SdimBUILTIN(__builtin_msa_subs_u_b, "V16UcV16UcV16Uc", "nc")
867263508SdimBUILTIN(__builtin_msa_subs_u_h, "V8UsV8UsV8Us", "nc")
868263508SdimBUILTIN(__builtin_msa_subs_u_w, "V4UiV4UiV4Ui", "nc")
869263508SdimBUILTIN(__builtin_msa_subs_u_d, "V2ULLiV2ULLiV2ULLi", "nc")
870263508Sdim
871263508SdimBUILTIN(__builtin_msa_subsus_u_b, "V16UcV16UcV16Sc", "nc")
872263508SdimBUILTIN(__builtin_msa_subsus_u_h, "V8UsV8UsV8Ss", "nc")
873263508SdimBUILTIN(__builtin_msa_subsus_u_w, "V4UiV4UiV4Si", "nc")
874263508SdimBUILTIN(__builtin_msa_subsus_u_d, "V2ULLiV2ULLiV2SLLi", "nc")
875263508Sdim
876263508SdimBUILTIN(__builtin_msa_subsuu_s_b, "V16ScV16UcV16Uc", "nc")
877263508SdimBUILTIN(__builtin_msa_subsuu_s_h, "V8SsV8UsV8Us", "nc")
878263508SdimBUILTIN(__builtin_msa_subsuu_s_w, "V4SiV4UiV4Ui", "nc")
879263508SdimBUILTIN(__builtin_msa_subsuu_s_d, "V2SLLiV2ULLiV2ULLi", "nc")
880263508Sdim
881263508SdimBUILTIN(__builtin_msa_subv_b, "V16cV16cV16c", "nc")
882263508SdimBUILTIN(__builtin_msa_subv_h, "V8sV8sV8s", "nc")
883263508SdimBUILTIN(__builtin_msa_subv_w, "V4iV4iV4i", "nc")
884263508SdimBUILTIN(__builtin_msa_subv_d, "V2LLiV2LLiV2LLi", "nc")
885263508Sdim
886263508SdimBUILTIN(__builtin_msa_subvi_b, "V16cV16cIUi", "nc")
887263508SdimBUILTIN(__builtin_msa_subvi_h, "V8sV8sIUi", "nc")
888263508SdimBUILTIN(__builtin_msa_subvi_w, "V4iV4iIUi", "nc")
889263508SdimBUILTIN(__builtin_msa_subvi_d, "V2LLiV2LLiIUi", "nc")
890263508Sdim
891263508SdimBUILTIN(__builtin_msa_vshf_b, "V16cV16cV16cV16c", "nc")
892263508SdimBUILTIN(__builtin_msa_vshf_h, "V8sV8sV8sV8s", "nc")
893263508SdimBUILTIN(__builtin_msa_vshf_w, "V4iV4iV4iV4i", "nc")
894263508SdimBUILTIN(__builtin_msa_vshf_d, "V2LLiV2LLiV2LLiV2LLi", "nc")
895263508Sdim
896263508SdimBUILTIN(__builtin_msa_xor_v, "V16cV16cV16c", "nc")
897263508Sdim
898263508SdimBUILTIN(__builtin_msa_xori_b, "V16cV16cIUi", "nc")
899263508Sdim
900239313Sdim#undef BUILTIN
901