1 /* Subroutines used for expanding LoongArch builtins.
2 Copyright (C) 2021-2025 Free Software Foundation, Inc.
3 Contributed by Loongson Ltd.
5 This file is part of GCC.
7 GCC is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3, or (at your option)
12 GCC is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with GCC; see the file COPYING3. If not see
19 <http://www.gnu.org/licenses/>. */
21 #define IN_TARGET_CODE 1
25 #include "coretypes.h"
35 #include "diagnostic.h"
36 #include "fold-const.h"
39 #include "langhooks.h"
41 #include "case-cfn-macros.h"
43 /* Macros to create an enumeration identifier for a function prototype. */
44 #define LARCH_FTYPE_NAME1(A, B) LARCH_##A##_FTYPE_##B
45 #define LARCH_FTYPE_NAME2(A, B, C) LARCH_##A##_FTYPE_##B##_##C
46 #define LARCH_FTYPE_NAME3(A, B, C, D) LARCH_##A##_FTYPE_##B##_##C##_##D
47 #define LARCH_FTYPE_NAME4(A, B, C, D, E) \
48 LARCH_##A##_FTYPE_##B##_##C##_##D##_##E
50 /* Classifies the prototype of a built-in function. */
51 enum loongarch_function_type
53 #define DEF_LARCH_FTYPE(NARGS, LIST) LARCH_FTYPE_NAME##NARGS LIST,
54 #include "config/loongarch/loongarch-ftypes.def"
55 #undef DEF_LARCH_FTYPE
59 /* Specifies how a built-in function should be converted into rtl. */
60 enum loongarch_builtin_type
62 /* The function corresponds directly to an .md pattern. The return
63 value is mapped to operand 0 and the arguments are mapped to
64 operands 1 and above. */
67 /* The function corresponds directly to an .md pattern. There is no return
68 value and the arguments are mapped to operands 0 and above. */
69 LARCH_BUILTIN_DIRECT_NO_TARGET
,
71 /* For generating LoongArch LSX. */
74 /* The function corresponds to an LSX conditional branch instruction
75 combined with a compare instruction. */
76 LARCH_BUILTIN_LSX_TEST_BRANCH
,
78 /* For generating LoongArch LASX. */
81 /* The function corresponds to an LASX conditional branch instruction
82 combined with a compare instruction. */
83 LARCH_BUILTIN_LASX_TEST_BRANCH
,
86 /* Declare an availability predicate for built-in functions that require
87 * COND to be true. NAME is the main part of the predicate's name. */
88 #define AVAIL_ALL(NAME, COND) \
90 loongarch_builtin_avail_##NAME (void) \
92 return (COND) ? 1 : 0; \
96 loongarch_builtin_avail_default (void)
100 /* This structure describes a single built-in function. */
101 struct loongarch_builtin_description
103 /* The code of the main .md file instruction. See loongarch_builtin_type
104 for more information. */
105 enum insn_code icode
;
107 /* The name of the built-in function. */
110 /* Specifies how the function should be expanded. */
111 enum loongarch_builtin_type builtin_type
;
113 /* The function's prototype. */
114 enum loongarch_function_type function_type
;
116 /* Whether the function is available. */
117 unsigned int (*avail
) (void);
120 AVAIL_ALL (hard_float
, TARGET_HARD_FLOAT_ABI
)
121 AVAIL_ALL (lsx
, ISA_HAS_LSX
)
122 AVAIL_ALL (lasx
, ISA_HAS_LASX
)
123 AVAIL_ALL (frecipe
, ISA_HAS_FRECIPE
&& TARGET_HARD_FLOAT_ABI
)
124 AVAIL_ALL (lsx_frecipe
, ISA_HAS_LSX
&& ISA_HAS_FRECIPE
)
125 AVAIL_ALL (lasx_frecipe
, ISA_HAS_LASX
&& ISA_HAS_FRECIPE
)
127 /* Construct a loongarch_builtin_description from the given arguments.
129 INSN is the name of the associated instruction pattern, without the
130 leading CODE_FOR_loongarch_.
132 CODE is the floating-point condition code associated with the
133 function. It can be 'f' if the field is not applicable.
135 NAME is the name of the function itself, without the leading
136 "__builtin_loongarch_".
138 BUILTIN_TYPE and FUNCTION_TYPE are loongarch_builtin_description fields.
140 AVAIL is the name of the availability predicate, without the leading
141 loongarch_builtin_avail_. */
142 #define LARCH_BUILTIN(INSN, NAME, BUILTIN_TYPE, FUNCTION_TYPE, AVAIL) \
144 CODE_FOR_loongarch_##INSN, "__builtin_loongarch_" NAME, \
145 BUILTIN_TYPE, FUNCTION_TYPE, \
146 loongarch_builtin_avail_##AVAIL \
149 /* Define __builtin_loongarch_<INSN>, which is a LARCH_BUILTIN_DIRECT function
150 mapped to instruction CODE_FOR_loongarch_<INSN>, FUNCTION_TYPE and AVAIL
151 are as for LARCH_BUILTIN. */
152 #define DIRECT_BUILTIN(INSN, FUNCTION_TYPE, AVAIL) \
153 LARCH_BUILTIN (INSN, #INSN, LARCH_BUILTIN_DIRECT, FUNCTION_TYPE, AVAIL)
155 /* Define __builtin_loongarch_<INSN>, which is a LARCH_BUILTIN_DIRECT_NO_TARGET
156 function mapped to instruction CODE_FOR_loongarch_<INSN>, FUNCTION_TYPE
157 and AVAIL are as for LARCH_BUILTIN. */
158 #define DIRECT_NO_TARGET_BUILTIN(INSN, FUNCTION_TYPE, AVAIL) \
159 LARCH_BUILTIN (INSN, #INSN, LARCH_BUILTIN_DIRECT_NO_TARGET, \
160 FUNCTION_TYPE, AVAIL)
162 /* Define an LSX LARCH_BUILTIN_DIRECT function __builtin_lsx_<INSN>
163 for instruction CODE_FOR_lsx_<INSN>. FUNCTION_TYPE is a builtin_description
165 #define LSX_BUILTIN(INSN, FUNCTION_TYPE) \
166 { CODE_FOR_lsx_ ## INSN, \
167 "__builtin_lsx_" #INSN, LARCH_BUILTIN_DIRECT, \
168 FUNCTION_TYPE, loongarch_builtin_avail_lsx }
170 /* Define an LSX LARCH_BUILTIN_DIRECT function __builtin_lsx_<INSN>
171 for instruction CODE_FOR_lsx_<INSN>. FUNCTION_TYPE is a builtin_description
172 field. AVAIL is the name of the availability predicate, without the leading
173 loongarch_builtin_avail_. */
174 #define LSX_EXT_BUILTIN(INSN, FUNCTION_TYPE, AVAIL) \
175 { CODE_FOR_lsx_ ## INSN, \
176 "__builtin_lsx_" #INSN, LARCH_BUILTIN_DIRECT, \
177 FUNCTION_TYPE, loongarch_builtin_avail_##AVAIL }
180 /* Define an LSX LARCH_BUILTIN_LSX_TEST_BRANCH function __builtin_lsx_<INSN>
181 for instruction CODE_FOR_lsx_<INSN>. FUNCTION_TYPE is a builtin_description
183 #define LSX_BUILTIN_TEST_BRANCH(INSN, FUNCTION_TYPE) \
184 { CODE_FOR_lsx_ ## INSN, \
185 "__builtin_lsx_" #INSN, LARCH_BUILTIN_LSX_TEST_BRANCH, \
186 FUNCTION_TYPE, loongarch_builtin_avail_lsx }
188 /* Define an LSX LARCH_BUILTIN_DIRECT_NO_TARGET function __builtin_lsx_<INSN>
189 for instruction CODE_FOR_lsx_<INSN>. FUNCTION_TYPE is a builtin_description
191 #define LSX_NO_TARGET_BUILTIN(INSN, FUNCTION_TYPE) \
192 { CODE_FOR_lsx_ ## INSN, \
193 "__builtin_lsx_" #INSN, LARCH_BUILTIN_DIRECT_NO_TARGET, \
194 FUNCTION_TYPE, loongarch_builtin_avail_lsx }
196 /* Define an LASX LARCH_BUILTIN_DIRECT function __builtin_lasx_<INSN>
197 for instruction CODE_FOR_lasx_<INSN>. FUNCTION_TYPE is a builtin_description
199 #define LASX_BUILTIN(INSN, FUNCTION_TYPE) \
200 { CODE_FOR_lasx_ ## INSN, \
201 "__builtin_lasx_" #INSN, LARCH_BUILTIN_LASX, \
202 FUNCTION_TYPE, loongarch_builtin_avail_lasx }
204 /* Define an LASX LARCH_BUILTIN_DIRECT function __builtin_lasx_<INSN>
205 for instruction CODE_FOR_lasx_<INSN>. FUNCTION_TYPE is a builtin_description
206 field. AVAIL is the name of the availability predicate, without the leading
207 loongarch_builtin_avail_. */
208 #define LASX_EXT_BUILTIN(INSN, FUNCTION_TYPE, AVAIL) \
209 { CODE_FOR_lasx_ ## INSN, \
210 "__builtin_lasx_" #INSN, LARCH_BUILTIN_LASX, \
211 FUNCTION_TYPE, loongarch_builtin_avail_##AVAIL }
213 /* Define an LASX LARCH_BUILTIN_DIRECT_NO_TARGET function __builtin_lasx_<INSN>
214 for instruction CODE_FOR_lasx_<INSN>. FUNCTION_TYPE is a builtin_description
216 #define LASX_NO_TARGET_BUILTIN(INSN, FUNCTION_TYPE) \
217 { CODE_FOR_lasx_ ## INSN, \
218 "__builtin_lasx_" #INSN, LARCH_BUILTIN_DIRECT_NO_TARGET, \
219 FUNCTION_TYPE, loongarch_builtin_avail_lasx }
221 /* Define an LASX LARCH_BUILTIN_LASX_TEST_BRANCH function __builtin_lasx_<INSN>
222 for instruction CODE_FOR_lasx_<INSN>. FUNCTION_TYPE is a builtin_description
224 #define LASX_BUILTIN_TEST_BRANCH(INSN, FUNCTION_TYPE) \
225 { CODE_FOR_lasx_ ## INSN, \
226 "__builtin_lasx_" #INSN, LARCH_BUILTIN_LASX_TEST_BRANCH, \
227 FUNCTION_TYPE, loongarch_builtin_avail_lasx }
229 /* LoongArch SX define CODE_FOR_lsx_xxx */
230 #define CODE_FOR_lsx_vsadd_b CODE_FOR_ssaddv16qi3
231 #define CODE_FOR_lsx_vsadd_h CODE_FOR_ssaddv8hi3
232 #define CODE_FOR_lsx_vsadd_w CODE_FOR_ssaddv4si3
233 #define CODE_FOR_lsx_vsadd_d CODE_FOR_ssaddv2di3
234 #define CODE_FOR_lsx_vsadd_bu CODE_FOR_usaddv16qi3
235 #define CODE_FOR_lsx_vsadd_hu CODE_FOR_usaddv8hi3
236 #define CODE_FOR_lsx_vsadd_wu CODE_FOR_usaddv4si3
237 #define CODE_FOR_lsx_vsadd_du CODE_FOR_usaddv2di3
238 #define CODE_FOR_lsx_vadd_b CODE_FOR_addv16qi3
239 #define CODE_FOR_lsx_vadd_h CODE_FOR_addv8hi3
240 #define CODE_FOR_lsx_vadd_w CODE_FOR_addv4si3
241 #define CODE_FOR_lsx_vadd_d CODE_FOR_addv2di3
242 #define CODE_FOR_lsx_vaddi_bu CODE_FOR_addv16qi3
243 #define CODE_FOR_lsx_vaddi_hu CODE_FOR_addv8hi3
244 #define CODE_FOR_lsx_vaddi_wu CODE_FOR_addv4si3
245 #define CODE_FOR_lsx_vaddi_du CODE_FOR_addv2di3
246 #define CODE_FOR_lsx_vand_v CODE_FOR_andv16qi3
247 #define CODE_FOR_lsx_vandi_b CODE_FOR_andv16qi3
248 #define CODE_FOR_lsx_bnz_v CODE_FOR_lsx_bnz_v_b
249 #define CODE_FOR_lsx_bz_v CODE_FOR_lsx_bz_v_b
250 #define CODE_FOR_lsx_vbitsel_v CODE_FOR_lsx_vbitsel_b
251 #define CODE_FOR_lsx_vseqi_b CODE_FOR_lsx_vseq_b
252 #define CODE_FOR_lsx_vseqi_h CODE_FOR_lsx_vseq_h
253 #define CODE_FOR_lsx_vseqi_w CODE_FOR_lsx_vseq_w
254 #define CODE_FOR_lsx_vseqi_d CODE_FOR_lsx_vseq_d
255 #define CODE_FOR_lsx_vslti_b CODE_FOR_lsx_vslt_b
256 #define CODE_FOR_lsx_vslti_h CODE_FOR_lsx_vslt_h
257 #define CODE_FOR_lsx_vslti_w CODE_FOR_lsx_vslt_w
258 #define CODE_FOR_lsx_vslti_d CODE_FOR_lsx_vslt_d
259 #define CODE_FOR_lsx_vslti_bu CODE_FOR_lsx_vslt_bu
260 #define CODE_FOR_lsx_vslti_hu CODE_FOR_lsx_vslt_hu
261 #define CODE_FOR_lsx_vslti_wu CODE_FOR_lsx_vslt_wu
262 #define CODE_FOR_lsx_vslti_du CODE_FOR_lsx_vslt_du
263 #define CODE_FOR_lsx_vslei_b CODE_FOR_lsx_vsle_b
264 #define CODE_FOR_lsx_vslei_h CODE_FOR_lsx_vsle_h
265 #define CODE_FOR_lsx_vslei_w CODE_FOR_lsx_vsle_w
266 #define CODE_FOR_lsx_vslei_d CODE_FOR_lsx_vsle_d
267 #define CODE_FOR_lsx_vslei_bu CODE_FOR_lsx_vsle_bu
268 #define CODE_FOR_lsx_vslei_hu CODE_FOR_lsx_vsle_hu
269 #define CODE_FOR_lsx_vslei_wu CODE_FOR_lsx_vsle_wu
270 #define CODE_FOR_lsx_vslei_du CODE_FOR_lsx_vsle_du
271 #define CODE_FOR_lsx_vdiv_b CODE_FOR_divv16qi3
272 #define CODE_FOR_lsx_vdiv_h CODE_FOR_divv8hi3
273 #define CODE_FOR_lsx_vdiv_w CODE_FOR_divv4si3
274 #define CODE_FOR_lsx_vdiv_d CODE_FOR_divv2di3
275 #define CODE_FOR_lsx_vdiv_bu CODE_FOR_udivv16qi3
276 #define CODE_FOR_lsx_vdiv_hu CODE_FOR_udivv8hi3
277 #define CODE_FOR_lsx_vdiv_wu CODE_FOR_udivv4si3
278 #define CODE_FOR_lsx_vdiv_du CODE_FOR_udivv2di3
279 #define CODE_FOR_lsx_vfadd_s CODE_FOR_addv4sf3
280 #define CODE_FOR_lsx_vfadd_d CODE_FOR_addv2df3
281 #define CODE_FOR_lsx_vftintrz_w_s CODE_FOR_fix_truncv4sfv4si2
282 #define CODE_FOR_lsx_vftintrz_l_d CODE_FOR_fix_truncv2dfv2di2
283 #define CODE_FOR_lsx_vftintrz_wu_s CODE_FOR_fixuns_truncv4sfv4si2
284 #define CODE_FOR_lsx_vftintrz_lu_d CODE_FOR_fixuns_truncv2dfv2di2
285 #define CODE_FOR_lsx_vftintrz_w_d CODE_FOR_vec_pack_sfix_trunc_v2df
286 #define CODE_FOR_lsx_vftintrzh_l_s CODE_FOR_vec_unpack_sfix_trunc_hi_v4sf
287 #define CODE_FOR_lsx_vftintrzl_l_s CODE_FOR_vec_unpack_sfix_trunc_lo_v4sf
288 #define CODE_FOR_lsx_vffint_s_w CODE_FOR_floatv4siv4sf2
289 #define CODE_FOR_lsx_vffint_d_l CODE_FOR_floatv2div2df2
290 #define CODE_FOR_lsx_vffint_s_wu CODE_FOR_floatunsv4siv4sf2
291 #define CODE_FOR_lsx_vffint_d_lu CODE_FOR_floatunsv2div2df2
292 #define CODE_FOR_lsx_vffint_s_l CODE_FOR_vec_packs_float_v2di
293 #define CODE_FOR_lsx_vffinth_d_w CODE_FOR_vec_unpacks_float_hi_v4si
294 #define CODE_FOR_lsx_vffintl_d_w CODE_FOR_vec_unpacks_float_lo_v4si
295 #define CODE_FOR_lsx_vexth_h_b CODE_FOR_vec_unpacks_hi_v16qi
296 #define CODE_FOR_lsx_vexth_w_h CODE_FOR_vec_unpacks_hi_v8hi
297 #define CODE_FOR_lsx_vexth_d_w CODE_FOR_vec_unpacks_hi_v4si
298 #define CODE_FOR_lsx_vexth_hu_bu CODE_FOR_vec_unpacku_hi_v16qi
299 #define CODE_FOR_lsx_vexth_wu_hu CODE_FOR_vec_unpacku_hi_v8hi
300 #define CODE_FOR_lsx_vexth_du_wu CODE_FOR_vec_unpacku_hi_v4si
301 #define CODE_FOR_lsx_vfcvth_d_s CODE_FOR_vec_unpacks_hi_v4sf
302 #define CODE_FOR_lsx_vfcvtl_d_s CODE_FOR_vec_unpacks_lo_v4sf
303 #define CODE_FOR_lsx_vfsub_s CODE_FOR_subv4sf3
304 #define CODE_FOR_lsx_vfsub_d CODE_FOR_subv2df3
305 #define CODE_FOR_lsx_vfmul_s CODE_FOR_mulv4sf3
306 #define CODE_FOR_lsx_vfmul_d CODE_FOR_mulv2df3
307 #define CODE_FOR_lsx_vfdiv_s CODE_FOR_divv4sf3
308 #define CODE_FOR_lsx_vfdiv_d CODE_FOR_divv2df3
309 #define CODE_FOR_lsx_vfmax_s CODE_FOR_smaxv4sf3
310 #define CODE_FOR_lsx_vfmax_d CODE_FOR_smaxv2df3
311 #define CODE_FOR_lsx_vfmin_s CODE_FOR_sminv4sf3
312 #define CODE_FOR_lsx_vfmin_d CODE_FOR_sminv2df3
313 #define CODE_FOR_lsx_vfsqrt_s CODE_FOR_sqrtv4sf2
314 #define CODE_FOR_lsx_vfsqrt_d CODE_FOR_sqrtv2df2
315 #define CODE_FOR_lsx_vflogb_s CODE_FOR_logbv4sf2
316 #define CODE_FOR_lsx_vflogb_d CODE_FOR_logbv2df2
317 #define CODE_FOR_lsx_vmax_b CODE_FOR_smaxv16qi3
318 #define CODE_FOR_lsx_vmax_h CODE_FOR_smaxv8hi3
319 #define CODE_FOR_lsx_vmax_w CODE_FOR_smaxv4si3
320 #define CODE_FOR_lsx_vmax_d CODE_FOR_smaxv2di3
321 #define CODE_FOR_lsx_vmaxi_b CODE_FOR_smaxv16qi3
322 #define CODE_FOR_lsx_vmaxi_h CODE_FOR_smaxv8hi3
323 #define CODE_FOR_lsx_vmaxi_w CODE_FOR_smaxv4si3
324 #define CODE_FOR_lsx_vmaxi_d CODE_FOR_smaxv2di3
325 #define CODE_FOR_lsx_vmax_bu CODE_FOR_umaxv16qi3
326 #define CODE_FOR_lsx_vmax_hu CODE_FOR_umaxv8hi3
327 #define CODE_FOR_lsx_vmax_wu CODE_FOR_umaxv4si3
328 #define CODE_FOR_lsx_vmax_du CODE_FOR_umaxv2di3
329 #define CODE_FOR_lsx_vmaxi_bu CODE_FOR_umaxv16qi3
330 #define CODE_FOR_lsx_vmaxi_hu CODE_FOR_umaxv8hi3
331 #define CODE_FOR_lsx_vmaxi_wu CODE_FOR_umaxv4si3
332 #define CODE_FOR_lsx_vmaxi_du CODE_FOR_umaxv2di3
333 #define CODE_FOR_lsx_vmin_b CODE_FOR_sminv16qi3
334 #define CODE_FOR_lsx_vmin_h CODE_FOR_sminv8hi3
335 #define CODE_FOR_lsx_vmin_w CODE_FOR_sminv4si3
336 #define CODE_FOR_lsx_vmin_d CODE_FOR_sminv2di3
337 #define CODE_FOR_lsx_vmini_b CODE_FOR_sminv16qi3
338 #define CODE_FOR_lsx_vmini_h CODE_FOR_sminv8hi3
339 #define CODE_FOR_lsx_vmini_w CODE_FOR_sminv4si3
340 #define CODE_FOR_lsx_vmini_d CODE_FOR_sminv2di3
341 #define CODE_FOR_lsx_vmin_bu CODE_FOR_uminv16qi3
342 #define CODE_FOR_lsx_vmin_hu CODE_FOR_uminv8hi3
343 #define CODE_FOR_lsx_vmin_wu CODE_FOR_uminv4si3
344 #define CODE_FOR_lsx_vmin_du CODE_FOR_uminv2di3
345 #define CODE_FOR_lsx_vmini_bu CODE_FOR_uminv16qi3
346 #define CODE_FOR_lsx_vmini_hu CODE_FOR_uminv8hi3
347 #define CODE_FOR_lsx_vmini_wu CODE_FOR_uminv4si3
348 #define CODE_FOR_lsx_vmini_du CODE_FOR_uminv2di3
349 #define CODE_FOR_lsx_vmod_b CODE_FOR_modv16qi3
350 #define CODE_FOR_lsx_vmod_h CODE_FOR_modv8hi3
351 #define CODE_FOR_lsx_vmod_w CODE_FOR_modv4si3
352 #define CODE_FOR_lsx_vmod_d CODE_FOR_modv2di3
353 #define CODE_FOR_lsx_vmod_bu CODE_FOR_umodv16qi3
354 #define CODE_FOR_lsx_vmod_hu CODE_FOR_umodv8hi3
355 #define CODE_FOR_lsx_vmod_wu CODE_FOR_umodv4si3
356 #define CODE_FOR_lsx_vmod_du CODE_FOR_umodv2di3
357 #define CODE_FOR_lsx_vmuh_b CODE_FOR_smulv16qi3_highpart
358 #define CODE_FOR_lsx_vmuh_h CODE_FOR_smulv8hi3_highpart
359 #define CODE_FOR_lsx_vmuh_w CODE_FOR_smulv4si3_highpart
360 #define CODE_FOR_lsx_vmuh_d CODE_FOR_smulv2di3_highpart
361 #define CODE_FOR_lsx_vmuh_bu CODE_FOR_umulv16qi3_highpart
362 #define CODE_FOR_lsx_vmuh_hu CODE_FOR_umulv8hi3_highpart
363 #define CODE_FOR_lsx_vmuh_wu CODE_FOR_umulv4si3_highpart
364 #define CODE_FOR_lsx_vmuh_du CODE_FOR_umulv2di3_highpart
365 #define CODE_FOR_lsx_vmul_b CODE_FOR_mulv16qi3
366 #define CODE_FOR_lsx_vmul_h CODE_FOR_mulv8hi3
367 #define CODE_FOR_lsx_vmul_w CODE_FOR_mulv4si3
368 #define CODE_FOR_lsx_vmul_d CODE_FOR_mulv2di3
369 #define CODE_FOR_lsx_vclz_b CODE_FOR_clzv16qi2
370 #define CODE_FOR_lsx_vclz_h CODE_FOR_clzv8hi2
371 #define CODE_FOR_lsx_vclz_w CODE_FOR_clzv4si2
372 #define CODE_FOR_lsx_vclz_d CODE_FOR_clzv2di2
373 #define CODE_FOR_lsx_vnor_v CODE_FOR_lsx_nor_b
374 #define CODE_FOR_lsx_vor_v CODE_FOR_iorv16qi3
375 #define CODE_FOR_lsx_vori_b CODE_FOR_iorv16qi3
376 #define CODE_FOR_lsx_vnori_b CODE_FOR_lsx_nor_b
377 #define CODE_FOR_lsx_vpcnt_b CODE_FOR_popcountv16qi2
378 #define CODE_FOR_lsx_vpcnt_h CODE_FOR_popcountv8hi2
379 #define CODE_FOR_lsx_vpcnt_w CODE_FOR_popcountv4si2
380 #define CODE_FOR_lsx_vpcnt_d CODE_FOR_popcountv2di2
381 #define CODE_FOR_lsx_vxor_v CODE_FOR_xorv16qi3
382 #define CODE_FOR_lsx_vxori_b CODE_FOR_xorv16qi3
383 #define CODE_FOR_lsx_vsll_b CODE_FOR_vashlv16qi3
384 #define CODE_FOR_lsx_vsll_h CODE_FOR_vashlv8hi3
385 #define CODE_FOR_lsx_vsll_w CODE_FOR_vashlv4si3
386 #define CODE_FOR_lsx_vsll_d CODE_FOR_vashlv2di3
387 #define CODE_FOR_lsx_vslli_b CODE_FOR_vashlv16qi3
388 #define CODE_FOR_lsx_vslli_h CODE_FOR_vashlv8hi3
389 #define CODE_FOR_lsx_vslli_w CODE_FOR_vashlv4si3
390 #define CODE_FOR_lsx_vslli_d CODE_FOR_vashlv2di3
391 #define CODE_FOR_lsx_vsra_b CODE_FOR_vashrv16qi3
392 #define CODE_FOR_lsx_vsra_h CODE_FOR_vashrv8hi3
393 #define CODE_FOR_lsx_vsra_w CODE_FOR_vashrv4si3
394 #define CODE_FOR_lsx_vsra_d CODE_FOR_vashrv2di3
395 #define CODE_FOR_lsx_vsrai_b CODE_FOR_vashrv16qi3
396 #define CODE_FOR_lsx_vsrai_h CODE_FOR_vashrv8hi3
397 #define CODE_FOR_lsx_vsrai_w CODE_FOR_vashrv4si3
398 #define CODE_FOR_lsx_vsrai_d CODE_FOR_vashrv2di3
399 #define CODE_FOR_lsx_vsrl_b CODE_FOR_vlshrv16qi3
400 #define CODE_FOR_lsx_vsrl_h CODE_FOR_vlshrv8hi3
401 #define CODE_FOR_lsx_vsrl_w CODE_FOR_vlshrv4si3
402 #define CODE_FOR_lsx_vsrl_d CODE_FOR_vlshrv2di3
403 #define CODE_FOR_lsx_vsrli_b CODE_FOR_vlshrv16qi3
404 #define CODE_FOR_lsx_vsrli_h CODE_FOR_vlshrv8hi3
405 #define CODE_FOR_lsx_vsrli_w CODE_FOR_vlshrv4si3
406 #define CODE_FOR_lsx_vsrli_d CODE_FOR_vlshrv2di3
407 #define CODE_FOR_lsx_vrotr_b CODE_FOR_vrotrv16qi3
408 #define CODE_FOR_lsx_vrotr_h CODE_FOR_vrotrv8hi3
409 #define CODE_FOR_lsx_vrotr_w CODE_FOR_vrotrv4si3
410 #define CODE_FOR_lsx_vrotr_d CODE_FOR_vrotrv2di3
411 #define CODE_FOR_lsx_vrotri_b CODE_FOR_rotrv16qi3
412 #define CODE_FOR_lsx_vrotri_h CODE_FOR_rotrv8hi3
413 #define CODE_FOR_lsx_vrotri_w CODE_FOR_rotrv4si3
414 #define CODE_FOR_lsx_vrotri_d CODE_FOR_rotrv2di3
415 #define CODE_FOR_lsx_vsub_b CODE_FOR_subv16qi3
416 #define CODE_FOR_lsx_vsub_h CODE_FOR_subv8hi3
417 #define CODE_FOR_lsx_vsub_w CODE_FOR_subv4si3
418 #define CODE_FOR_lsx_vsub_d CODE_FOR_subv2di3
419 #define CODE_FOR_lsx_vsubi_bu CODE_FOR_subv16qi3
420 #define CODE_FOR_lsx_vsubi_hu CODE_FOR_subv8hi3
421 #define CODE_FOR_lsx_vsubi_wu CODE_FOR_subv4si3
422 #define CODE_FOR_lsx_vsubi_du CODE_FOR_subv2di3
424 #define CODE_FOR_lsx_vpackod_d CODE_FOR_lsx_vilvh_d
425 #define CODE_FOR_lsx_vpackev_d CODE_FOR_lsx_vilvl_d
426 #define CODE_FOR_lsx_vpickod_d CODE_FOR_lsx_vilvh_d
427 #define CODE_FOR_lsx_vpickev_d CODE_FOR_lsx_vilvl_d
429 #define CODE_FOR_lsx_vrepli_b CODE_FOR_lsx_vrepliv16qi
430 #define CODE_FOR_lsx_vrepli_h CODE_FOR_lsx_vrepliv8hi
431 #define CODE_FOR_lsx_vrepli_w CODE_FOR_lsx_vrepliv4si
432 #define CODE_FOR_lsx_vrepli_d CODE_FOR_lsx_vrepliv2di
433 #define CODE_FOR_lsx_vsat_b CODE_FOR_lsx_vsat_s_b
434 #define CODE_FOR_lsx_vsat_h CODE_FOR_lsx_vsat_s_h
435 #define CODE_FOR_lsx_vsat_w CODE_FOR_lsx_vsat_s_w
436 #define CODE_FOR_lsx_vsat_d CODE_FOR_lsx_vsat_s_d
437 #define CODE_FOR_lsx_vsat_bu CODE_FOR_lsx_vsat_u_bu
438 #define CODE_FOR_lsx_vsat_hu CODE_FOR_lsx_vsat_u_hu
439 #define CODE_FOR_lsx_vsat_wu CODE_FOR_lsx_vsat_u_wu
440 #define CODE_FOR_lsx_vsat_du CODE_FOR_lsx_vsat_u_du
441 #define CODE_FOR_lsx_vavg_b CODE_FOR_lsx_vavg_s_b
442 #define CODE_FOR_lsx_vavg_h CODE_FOR_lsx_vavg_s_h
443 #define CODE_FOR_lsx_vavg_w CODE_FOR_lsx_vavg_s_w
444 #define CODE_FOR_lsx_vavg_d CODE_FOR_lsx_vavg_s_d
445 #define CODE_FOR_lsx_vavg_bu CODE_FOR_lsx_vavg_u_bu
446 #define CODE_FOR_lsx_vavg_hu CODE_FOR_lsx_vavg_u_hu
447 #define CODE_FOR_lsx_vavg_wu CODE_FOR_lsx_vavg_u_wu
448 #define CODE_FOR_lsx_vavg_du CODE_FOR_lsx_vavg_u_du
449 #define CODE_FOR_lsx_vavgr_b CODE_FOR_lsx_vavgr_s_b
450 #define CODE_FOR_lsx_vavgr_h CODE_FOR_lsx_vavgr_s_h
451 #define CODE_FOR_lsx_vavgr_w CODE_FOR_lsx_vavgr_s_w
452 #define CODE_FOR_lsx_vavgr_d CODE_FOR_lsx_vavgr_s_d
453 #define CODE_FOR_lsx_vavgr_bu CODE_FOR_lsx_vavgr_u_bu
454 #define CODE_FOR_lsx_vavgr_hu CODE_FOR_lsx_vavgr_u_hu
455 #define CODE_FOR_lsx_vavgr_wu CODE_FOR_lsx_vavgr_u_wu
456 #define CODE_FOR_lsx_vavgr_du CODE_FOR_lsx_vavgr_u_du
457 #define CODE_FOR_lsx_vssub_b CODE_FOR_lsx_vssub_s_b
458 #define CODE_FOR_lsx_vssub_h CODE_FOR_lsx_vssub_s_h
459 #define CODE_FOR_lsx_vssub_w CODE_FOR_lsx_vssub_s_w
460 #define CODE_FOR_lsx_vssub_d CODE_FOR_lsx_vssub_s_d
461 #define CODE_FOR_lsx_vssub_bu CODE_FOR_lsx_vssub_u_bu
462 #define CODE_FOR_lsx_vssub_hu CODE_FOR_lsx_vssub_u_hu
463 #define CODE_FOR_lsx_vssub_wu CODE_FOR_lsx_vssub_u_wu
464 #define CODE_FOR_lsx_vssub_du CODE_FOR_lsx_vssub_u_du
465 #define CODE_FOR_lsx_vabsd_b CODE_FOR_sabdv16qi3
466 #define CODE_FOR_lsx_vabsd_h CODE_FOR_sabdv8hi3
467 #define CODE_FOR_lsx_vabsd_w CODE_FOR_sabdv4si3
468 #define CODE_FOR_lsx_vabsd_d CODE_FOR_sabdv2di3
469 #define CODE_FOR_lsx_vabsd_bu CODE_FOR_uabdv16qi3
470 #define CODE_FOR_lsx_vabsd_hu CODE_FOR_uabdv8hi3
471 #define CODE_FOR_lsx_vabsd_wu CODE_FOR_uabdv4si3
472 #define CODE_FOR_lsx_vabsd_du CODE_FOR_uabdv2di3
473 #define CODE_FOR_lsx_vftint_wu_s CODE_FOR_lsx_vftint_u_wu_s
474 #define CODE_FOR_lsx_vftint_lu_d CODE_FOR_lsx_vftint_u_lu_d
475 #define CODE_FOR_lsx_vandn_v CODE_FOR_andnv16qi3
476 #define CODE_FOR_lsx_vorn_v CODE_FOR_iornv16qi3
477 #define CODE_FOR_lsx_vneg_b CODE_FOR_vnegv16qi2
478 #define CODE_FOR_lsx_vneg_h CODE_FOR_vnegv8hi2
479 #define CODE_FOR_lsx_vneg_w CODE_FOR_vnegv4si2
480 #define CODE_FOR_lsx_vneg_d CODE_FOR_vnegv2di2
481 #define CODE_FOR_lsx_vshuf4i_d CODE_FOR_lsx_vshuf4i_d
482 #define CODE_FOR_lsx_vbsrl_v CODE_FOR_lsx_vbsrl_b
483 #define CODE_FOR_lsx_vbsll_v CODE_FOR_lsx_vbsll_b
484 #define CODE_FOR_lsx_vfmadd_s CODE_FOR_fmav4sf4
485 #define CODE_FOR_lsx_vfmadd_d CODE_FOR_fmav2df4
486 #define CODE_FOR_lsx_vfmsub_s CODE_FOR_fmsv4sf4
487 #define CODE_FOR_lsx_vfmsub_d CODE_FOR_fmsv2df4
488 #define CODE_FOR_lsx_vfnmadd_s CODE_FOR_vfnmaddv4sf4_nmadd4
489 #define CODE_FOR_lsx_vfnmadd_d CODE_FOR_vfnmaddv2df4_nmadd4
490 #define CODE_FOR_lsx_vfnmsub_s CODE_FOR_vfnmsubv4sf4_nmsub4
491 #define CODE_FOR_lsx_vfnmsub_d CODE_FOR_vfnmsubv2df4_nmsub4
493 #define CODE_FOR_lsx_vsllwil_h_b CODE_FOR_lsx_vsllwil_s_h_b
494 #define CODE_FOR_lsx_vsllwil_w_h CODE_FOR_lsx_vsllwil_s_w_h
495 #define CODE_FOR_lsx_vsllwil_d_w CODE_FOR_lsx_vsllwil_s_d_w
496 #define CODE_FOR_lsx_vsllwil_hu_bu CODE_FOR_lsx_vsllwil_u_hu_bu
497 #define CODE_FOR_lsx_vsllwil_wu_hu CODE_FOR_lsx_vsllwil_u_wu_hu
498 #define CODE_FOR_lsx_vsllwil_du_wu CODE_FOR_lsx_vsllwil_u_du_wu
499 #define CODE_FOR_lsx_vssran_b_h CODE_FOR_lsx_vssran_s_b_h
500 #define CODE_FOR_lsx_vssran_h_w CODE_FOR_lsx_vssran_s_h_w
501 #define CODE_FOR_lsx_vssran_w_d CODE_FOR_lsx_vssran_s_w_d
502 #define CODE_FOR_lsx_vssran_bu_h CODE_FOR_lsx_vssran_u_bu_h
503 #define CODE_FOR_lsx_vssran_hu_w CODE_FOR_lsx_vssran_u_hu_w
504 #define CODE_FOR_lsx_vssran_wu_d CODE_FOR_lsx_vssran_u_wu_d
505 #define CODE_FOR_lsx_vssrarn_b_h CODE_FOR_lsx_vssrarn_s_b_h
506 #define CODE_FOR_lsx_vssrarn_h_w CODE_FOR_lsx_vssrarn_s_h_w
507 #define CODE_FOR_lsx_vssrarn_w_d CODE_FOR_lsx_vssrarn_s_w_d
508 #define CODE_FOR_lsx_vssrarn_bu_h CODE_FOR_lsx_vssrarn_u_bu_h
509 #define CODE_FOR_lsx_vssrarn_hu_w CODE_FOR_lsx_vssrarn_u_hu_w
510 #define CODE_FOR_lsx_vssrarn_wu_d CODE_FOR_lsx_vssrarn_u_wu_d
511 #define CODE_FOR_lsx_vssrln_bu_h CODE_FOR_lsx_vssrln_u_bu_h
512 #define CODE_FOR_lsx_vssrln_hu_w CODE_FOR_lsx_vssrln_u_hu_w
513 #define CODE_FOR_lsx_vssrln_wu_d CODE_FOR_lsx_vssrln_u_wu_d
514 #define CODE_FOR_lsx_vssrlrn_bu_h CODE_FOR_lsx_vssrlrn_u_bu_h
515 #define CODE_FOR_lsx_vssrlrn_hu_w CODE_FOR_lsx_vssrlrn_u_hu_w
516 #define CODE_FOR_lsx_vssrlrn_wu_d CODE_FOR_lsx_vssrlrn_u_wu_d
517 #define CODE_FOR_lsx_vfrsqrt_d CODE_FOR_rsqrtv2df2
518 #define CODE_FOR_lsx_vfrsqrt_s CODE_FOR_rsqrtv4sf2
519 #define CODE_FOR_lsx_vfrecip_d CODE_FOR_recipv2df3
520 #define CODE_FOR_lsx_vfrecip_s CODE_FOR_recipv4sf3
522 /* LoongArch ASX define CODE_FOR_lasx_mxxx */
523 #define CODE_FOR_lasx_xvsadd_b CODE_FOR_ssaddv32qi3
524 #define CODE_FOR_lasx_xvsadd_h CODE_FOR_ssaddv16hi3
525 #define CODE_FOR_lasx_xvsadd_w CODE_FOR_ssaddv8si3
526 #define CODE_FOR_lasx_xvsadd_d CODE_FOR_ssaddv4di3
527 #define CODE_FOR_lasx_xvsadd_bu CODE_FOR_usaddv32qi3
528 #define CODE_FOR_lasx_xvsadd_hu CODE_FOR_usaddv16hi3
529 #define CODE_FOR_lasx_xvsadd_wu CODE_FOR_usaddv8si3
530 #define CODE_FOR_lasx_xvsadd_du CODE_FOR_usaddv4di3
531 #define CODE_FOR_lasx_xvadd_b CODE_FOR_addv32qi3
532 #define CODE_FOR_lasx_xvadd_h CODE_FOR_addv16hi3
533 #define CODE_FOR_lasx_xvadd_w CODE_FOR_addv8si3
534 #define CODE_FOR_lasx_xvadd_d CODE_FOR_addv4di3
535 #define CODE_FOR_lasx_xvaddi_bu CODE_FOR_addv32qi3
536 #define CODE_FOR_lasx_xvaddi_hu CODE_FOR_addv16hi3
537 #define CODE_FOR_lasx_xvaddi_wu CODE_FOR_addv8si3
538 #define CODE_FOR_lasx_xvaddi_du CODE_FOR_addv4di3
539 #define CODE_FOR_lasx_xvand_v CODE_FOR_andv32qi3
540 #define CODE_FOR_lasx_xvandi_b CODE_FOR_andv32qi3
541 #define CODE_FOR_lasx_xvbitsel_v CODE_FOR_lasx_xvbitsel_b
542 #define CODE_FOR_lasx_xvseqi_b CODE_FOR_lasx_xvseq_b
543 #define CODE_FOR_lasx_xvseqi_h CODE_FOR_lasx_xvseq_h
544 #define CODE_FOR_lasx_xvseqi_w CODE_FOR_lasx_xvseq_w
545 #define CODE_FOR_lasx_xvseqi_d CODE_FOR_lasx_xvseq_d
546 #define CODE_FOR_lasx_xvslti_b CODE_FOR_lasx_xvslt_b
547 #define CODE_FOR_lasx_xvslti_h CODE_FOR_lasx_xvslt_h
548 #define CODE_FOR_lasx_xvslti_w CODE_FOR_lasx_xvslt_w
549 #define CODE_FOR_lasx_xvslti_d CODE_FOR_lasx_xvslt_d
550 #define CODE_FOR_lasx_xvslti_bu CODE_FOR_lasx_xvslt_bu
551 #define CODE_FOR_lasx_xvslti_hu CODE_FOR_lasx_xvslt_hu
552 #define CODE_FOR_lasx_xvslti_wu CODE_FOR_lasx_xvslt_wu
553 #define CODE_FOR_lasx_xvslti_du CODE_FOR_lasx_xvslt_du
554 #define CODE_FOR_lasx_xvslei_b CODE_FOR_lasx_xvsle_b
555 #define CODE_FOR_lasx_xvslei_h CODE_FOR_lasx_xvsle_h
556 #define CODE_FOR_lasx_xvslei_w CODE_FOR_lasx_xvsle_w
557 #define CODE_FOR_lasx_xvslei_d CODE_FOR_lasx_xvsle_d
558 #define CODE_FOR_lasx_xvslei_bu CODE_FOR_lasx_xvsle_bu
559 #define CODE_FOR_lasx_xvslei_hu CODE_FOR_lasx_xvsle_hu
560 #define CODE_FOR_lasx_xvslei_wu CODE_FOR_lasx_xvsle_wu
561 #define CODE_FOR_lasx_xvslei_du CODE_FOR_lasx_xvsle_du
562 #define CODE_FOR_lasx_xvdiv_b CODE_FOR_divv32qi3
563 #define CODE_FOR_lasx_xvdiv_h CODE_FOR_divv16hi3
564 #define CODE_FOR_lasx_xvdiv_w CODE_FOR_divv8si3
565 #define CODE_FOR_lasx_xvdiv_d CODE_FOR_divv4di3
566 #define CODE_FOR_lasx_xvdiv_bu CODE_FOR_udivv32qi3
567 #define CODE_FOR_lasx_xvdiv_hu CODE_FOR_udivv16hi3
568 #define CODE_FOR_lasx_xvdiv_wu CODE_FOR_udivv8si3
569 #define CODE_FOR_lasx_xvdiv_du CODE_FOR_udivv4di3
570 #define CODE_FOR_lasx_xvfadd_s CODE_FOR_addv8sf3
571 #define CODE_FOR_lasx_xvfadd_d CODE_FOR_addv4df3
572 #define CODE_FOR_lasx_xvftintrz_w_s CODE_FOR_fix_truncv8sfv8si2
573 #define CODE_FOR_lasx_xvftintrz_l_d CODE_FOR_fix_truncv4dfv4di2
574 #define CODE_FOR_lasx_xvftintrz_wu_s CODE_FOR_fixuns_truncv8sfv8si2
575 #define CODE_FOR_lasx_xvftintrz_lu_d CODE_FOR_fixuns_truncv4dfv4di2
576 #define CODE_FOR_lasx_xvffint_s_w CODE_FOR_floatv8siv8sf2
577 #define CODE_FOR_lasx_xvffint_d_l CODE_FOR_floatv4div4df2
578 #define CODE_FOR_lasx_xvffint_s_wu CODE_FOR_floatunsv8siv8sf2
579 #define CODE_FOR_lasx_xvffint_d_lu CODE_FOR_floatunsv4div4df2
580 #define CODE_FOR_lasx_vext2xv_h_b CODE_FOR_vec_unpacks_lo_v32qi
581 #define CODE_FOR_lasx_vext2xv_w_h CODE_FOR_vec_unpacks_lo_v16hi
582 #define CODE_FOR_lasx_vext2xv_d_w CODE_FOR_vec_unpacks_lo_v8si
583 #define CODE_FOR_lasx_vext2xv_hu_bu CODE_FOR_vec_unpacku_lo_v32qi
584 #define CODE_FOR_lasx_vext2xv_wu_hu CODE_FOR_vec_unpacku_lo_v16hi
585 #define CODE_FOR_lasx_vext2xv_du_wu CODE_FOR_vec_unpacku_lo_v8si
586 #define CODE_FOR_lasx_xvfsub_s CODE_FOR_subv8sf3
587 #define CODE_FOR_lasx_xvfsub_d CODE_FOR_subv4df3
588 #define CODE_FOR_lasx_xvfmul_s CODE_FOR_mulv8sf3
589 #define CODE_FOR_lasx_xvfmul_d CODE_FOR_mulv4df3
590 #define CODE_FOR_lasx_xvfdiv_s CODE_FOR_divv8sf3
591 #define CODE_FOR_lasx_xvfdiv_d CODE_FOR_divv4df3
592 #define CODE_FOR_lasx_xvfmax_s CODE_FOR_smaxv8sf3
593 #define CODE_FOR_lasx_xvfmax_d CODE_FOR_smaxv4df3
594 #define CODE_FOR_lasx_xvfmin_s CODE_FOR_sminv8sf3
595 #define CODE_FOR_lasx_xvfmin_d CODE_FOR_sminv4df3
596 #define CODE_FOR_lasx_xvfsqrt_s CODE_FOR_sqrtv8sf2
597 #define CODE_FOR_lasx_xvfsqrt_d CODE_FOR_sqrtv4df2
598 #define CODE_FOR_lasx_xvflogb_s CODE_FOR_logbv8sf2
599 #define CODE_FOR_lasx_xvflogb_d CODE_FOR_logbv4df2
600 #define CODE_FOR_lasx_xvmax_b CODE_FOR_smaxv32qi3
601 #define CODE_FOR_lasx_xvmax_h CODE_FOR_smaxv16hi3
602 #define CODE_FOR_lasx_xvmax_w CODE_FOR_smaxv8si3
603 #define CODE_FOR_lasx_xvmax_d CODE_FOR_smaxv4di3
604 #define CODE_FOR_lasx_xvmaxi_b CODE_FOR_smaxv32qi3
605 #define CODE_FOR_lasx_xvmaxi_h CODE_FOR_smaxv16hi3
606 #define CODE_FOR_lasx_xvmaxi_w CODE_FOR_smaxv8si3
607 #define CODE_FOR_lasx_xvmaxi_d CODE_FOR_smaxv4di3
608 #define CODE_FOR_lasx_xvmax_bu CODE_FOR_umaxv32qi3
609 #define CODE_FOR_lasx_xvmax_hu CODE_FOR_umaxv16hi3
610 #define CODE_FOR_lasx_xvmax_wu CODE_FOR_umaxv8si3
611 #define CODE_FOR_lasx_xvmax_du CODE_FOR_umaxv4di3
612 #define CODE_FOR_lasx_xvmaxi_bu CODE_FOR_umaxv32qi3
613 #define CODE_FOR_lasx_xvmaxi_hu CODE_FOR_umaxv16hi3
614 #define CODE_FOR_lasx_xvmaxi_wu CODE_FOR_umaxv8si3
615 #define CODE_FOR_lasx_xvmaxi_du CODE_FOR_umaxv4di3
616 #define CODE_FOR_lasx_xvmin_b CODE_FOR_sminv32qi3
617 #define CODE_FOR_lasx_xvmin_h CODE_FOR_sminv16hi3
618 #define CODE_FOR_lasx_xvmin_w CODE_FOR_sminv8si3
619 #define CODE_FOR_lasx_xvmin_d CODE_FOR_sminv4di3
620 #define CODE_FOR_lasx_xvmini_b CODE_FOR_sminv32qi3
621 #define CODE_FOR_lasx_xvmini_h CODE_FOR_sminv16hi3
622 #define CODE_FOR_lasx_xvmini_w CODE_FOR_sminv8si3
623 #define CODE_FOR_lasx_xvmini_d CODE_FOR_sminv4di3
624 #define CODE_FOR_lasx_xvmin_bu CODE_FOR_uminv32qi3
625 #define CODE_FOR_lasx_xvmin_hu CODE_FOR_uminv16hi3
626 #define CODE_FOR_lasx_xvmin_wu CODE_FOR_uminv8si3
627 #define CODE_FOR_lasx_xvmin_du CODE_FOR_uminv4di3
628 #define CODE_FOR_lasx_xvmini_bu CODE_FOR_uminv32qi3
629 #define CODE_FOR_lasx_xvmini_hu CODE_FOR_uminv16hi3
630 #define CODE_FOR_lasx_xvmini_wu CODE_FOR_uminv8si3
631 #define CODE_FOR_lasx_xvmini_du CODE_FOR_uminv4di3
632 #define CODE_FOR_lasx_xvmod_b CODE_FOR_modv32qi3
633 #define CODE_FOR_lasx_xvmod_h CODE_FOR_modv16hi3
634 #define CODE_FOR_lasx_xvmod_w CODE_FOR_modv8si3
635 #define CODE_FOR_lasx_xvmod_d CODE_FOR_modv4di3
636 #define CODE_FOR_lasx_xvmod_bu CODE_FOR_umodv32qi3
637 #define CODE_FOR_lasx_xvmod_hu CODE_FOR_umodv16hi3
638 #define CODE_FOR_lasx_xvmod_wu CODE_FOR_umodv8si3
639 #define CODE_FOR_lasx_xvmod_du CODE_FOR_umodv4di3
640 #define CODE_FOR_lasx_xvmul_b CODE_FOR_mulv32qi3
641 #define CODE_FOR_lasx_xvmul_h CODE_FOR_mulv16hi3
642 #define CODE_FOR_lasx_xvmul_w CODE_FOR_mulv8si3
643 #define CODE_FOR_lasx_xvmul_d CODE_FOR_mulv4di3
644 #define CODE_FOR_lasx_xvmuh_b CODE_FOR_smulv32qi3_highpart
645 #define CODE_FOR_lasx_xvmuh_h CODE_FOR_smulv16hi3_highpart
646 #define CODE_FOR_lasx_xvmuh_w CODE_FOR_smulv8si3_highpart
647 #define CODE_FOR_lasx_xvmuh_d CODE_FOR_smulv4di3_highpart
648 #define CODE_FOR_lasx_xvmuh_bu CODE_FOR_umulv32qi3_highpart
649 #define CODE_FOR_lasx_xvmuh_hu CODE_FOR_umulv16hi3_highpart
650 #define CODE_FOR_lasx_xvmuh_wu CODE_FOR_umulv8si3_highpart
651 #define CODE_FOR_lasx_xvmuh_du CODE_FOR_umulv4di3_highpart
652 #define CODE_FOR_lasx_xvclz_b CODE_FOR_clzv32qi2
653 #define CODE_FOR_lasx_xvclz_h CODE_FOR_clzv16hi2
654 #define CODE_FOR_lasx_xvclz_w CODE_FOR_clzv8si2
655 #define CODE_FOR_lasx_xvclz_d CODE_FOR_clzv4di2
656 #define CODE_FOR_lasx_xvnor_v CODE_FOR_lasx_xvnor_b
657 #define CODE_FOR_lasx_xvor_v CODE_FOR_iorv32qi3
658 #define CODE_FOR_lasx_xvori_b CODE_FOR_iorv32qi3
659 #define CODE_FOR_lasx_xvnori_b CODE_FOR_lasx_xvnor_b
660 #define CODE_FOR_lasx_xvpcnt_b CODE_FOR_popcountv32qi2
661 #define CODE_FOR_lasx_xvpcnt_h CODE_FOR_popcountv16hi2
662 #define CODE_FOR_lasx_xvpcnt_w CODE_FOR_popcountv8si2
663 #define CODE_FOR_lasx_xvpcnt_d CODE_FOR_popcountv4di2
664 #define CODE_FOR_lasx_xvxor_v CODE_FOR_xorv32qi3
665 #define CODE_FOR_lasx_xvxori_b CODE_FOR_xorv32qi3
666 #define CODE_FOR_lasx_xvsll_b CODE_FOR_vashlv32qi3
667 #define CODE_FOR_lasx_xvsll_h CODE_FOR_vashlv16hi3
668 #define CODE_FOR_lasx_xvsll_w CODE_FOR_vashlv8si3
669 #define CODE_FOR_lasx_xvsll_d CODE_FOR_vashlv4di3
670 #define CODE_FOR_lasx_xvslli_b CODE_FOR_vashlv32qi3
671 #define CODE_FOR_lasx_xvslli_h CODE_FOR_vashlv16hi3
672 #define CODE_FOR_lasx_xvslli_w CODE_FOR_vashlv8si3
673 #define CODE_FOR_lasx_xvslli_d CODE_FOR_vashlv4di3
674 #define CODE_FOR_lasx_xvsra_b CODE_FOR_vashrv32qi3
675 #define CODE_FOR_lasx_xvsra_h CODE_FOR_vashrv16hi3
676 #define CODE_FOR_lasx_xvsra_w CODE_FOR_vashrv8si3
677 #define CODE_FOR_lasx_xvsra_d CODE_FOR_vashrv4di3
678 #define CODE_FOR_lasx_xvsrai_b CODE_FOR_vashrv32qi3
679 #define CODE_FOR_lasx_xvsrai_h CODE_FOR_vashrv16hi3
680 #define CODE_FOR_lasx_xvsrai_w CODE_FOR_vashrv8si3
681 #define CODE_FOR_lasx_xvsrai_d CODE_FOR_vashrv4di3
682 #define CODE_FOR_lasx_xvsrl_b CODE_FOR_vlshrv32qi3
683 #define CODE_FOR_lasx_xvsrl_h CODE_FOR_vlshrv16hi3
684 #define CODE_FOR_lasx_xvsrl_w CODE_FOR_vlshrv8si3
685 #define CODE_FOR_lasx_xvsrl_d CODE_FOR_vlshrv4di3
686 #define CODE_FOR_lasx_xvsrli_b CODE_FOR_vlshrv32qi3
687 #define CODE_FOR_lasx_xvsrli_h CODE_FOR_vlshrv16hi3
688 #define CODE_FOR_lasx_xvsrli_w CODE_FOR_vlshrv8si3
689 #define CODE_FOR_lasx_xvsrli_d CODE_FOR_vlshrv4di3
690 #define CODE_FOR_lasx_xvrotr_b CODE_FOR_vrotrv32qi3
691 #define CODE_FOR_lasx_xvrotr_h CODE_FOR_vrotrv16hi3
692 #define CODE_FOR_lasx_xvrotr_w CODE_FOR_vrotrv8si3
693 #define CODE_FOR_lasx_xvrotr_d CODE_FOR_vrotrv4di3
694 #define CODE_FOR_lasx_xvrotri_b CODE_FOR_rotrv32qi3
695 #define CODE_FOR_lasx_xvrotri_h CODE_FOR_rotrv16hi3
696 #define CODE_FOR_lasx_xvrotri_w CODE_FOR_rotrv8si3
697 #define CODE_FOR_lasx_xvrotri_d CODE_FOR_rotrv4di3
698 #define CODE_FOR_lasx_xvsub_b CODE_FOR_subv32qi3
699 #define CODE_FOR_lasx_xvsub_h CODE_FOR_subv16hi3
700 #define CODE_FOR_lasx_xvsub_w CODE_FOR_subv8si3
701 #define CODE_FOR_lasx_xvsub_d CODE_FOR_subv4di3
702 #define CODE_FOR_lasx_xvsubi_bu CODE_FOR_subv32qi3
703 #define CODE_FOR_lasx_xvsubi_hu CODE_FOR_subv16hi3
704 #define CODE_FOR_lasx_xvsubi_wu CODE_FOR_subv8si3
705 #define CODE_FOR_lasx_xvsubi_du CODE_FOR_subv4di3
706 #define CODE_FOR_lasx_xvpackod_d CODE_FOR_lasx_xvilvh_d
707 #define CODE_FOR_lasx_xvpackev_d CODE_FOR_lasx_xvilvl_d
708 #define CODE_FOR_lasx_xvpickod_d CODE_FOR_lasx_xvilvh_d
709 #define CODE_FOR_lasx_xvpickev_d CODE_FOR_lasx_xvilvl_d
710 #define CODE_FOR_lasx_xvrepli_b CODE_FOR_lasx_xvrepliv32qi
711 #define CODE_FOR_lasx_xvrepli_h CODE_FOR_lasx_xvrepliv16hi
712 #define CODE_FOR_lasx_xvrepli_w CODE_FOR_lasx_xvrepliv8si
713 #define CODE_FOR_lasx_xvrepli_d CODE_FOR_lasx_xvrepliv4di
715 #define CODE_FOR_lasx_xvandn_v CODE_FOR_andnv32qi3
716 #define CODE_FOR_lasx_xvorn_v CODE_FOR_iornv32qi3
717 #define CODE_FOR_lasx_xvneg_b CODE_FOR_negv32qi2
718 #define CODE_FOR_lasx_xvneg_h CODE_FOR_negv16hi2
719 #define CODE_FOR_lasx_xvneg_w CODE_FOR_negv8si2
720 #define CODE_FOR_lasx_xvneg_d CODE_FOR_negv4di2
721 #define CODE_FOR_lasx_xvbsrl_v CODE_FOR_lasx_xvbsrl_b
722 #define CODE_FOR_lasx_xvbsll_v CODE_FOR_lasx_xvbsll_b
723 #define CODE_FOR_lasx_xvfmadd_s CODE_FOR_fmav8sf4
724 #define CODE_FOR_lasx_xvfmadd_d CODE_FOR_fmav4df4
725 #define CODE_FOR_lasx_xvfmsub_s CODE_FOR_fmsv8sf4
726 #define CODE_FOR_lasx_xvfmsub_d CODE_FOR_fmsv4df4
727 #define CODE_FOR_lasx_xvfnmadd_s CODE_FOR_xvfnmaddv8sf4_nmadd4
728 #define CODE_FOR_lasx_xvfnmadd_d CODE_FOR_xvfnmaddv4df4_nmadd4
729 #define CODE_FOR_lasx_xvfnmsub_s CODE_FOR_xvfnmsubv8sf4_nmsub4
730 #define CODE_FOR_lasx_xvfnmsub_d CODE_FOR_xvfnmsubv4df4_nmsub4
732 #define CODE_FOR_lasx_xvpermi_q CODE_FOR_lasx_xvpermi_q_v32qi
733 #define CODE_FOR_lasx_xvpermi_d CODE_FOR_lasx_xvpermi_d_v4di
734 #define CODE_FOR_lasx_xbnz_v CODE_FOR_lasx_xbnz_v_b
735 #define CODE_FOR_lasx_xbz_v CODE_FOR_lasx_xbz_v_b
737 #define CODE_FOR_lasx_xvssub_b CODE_FOR_lasx_xvssub_s_b
738 #define CODE_FOR_lasx_xvssub_h CODE_FOR_lasx_xvssub_s_h
739 #define CODE_FOR_lasx_xvssub_w CODE_FOR_lasx_xvssub_s_w
740 #define CODE_FOR_lasx_xvssub_d CODE_FOR_lasx_xvssub_s_d
741 #define CODE_FOR_lasx_xvssub_bu CODE_FOR_lasx_xvssub_u_bu
742 #define CODE_FOR_lasx_xvssub_hu CODE_FOR_lasx_xvssub_u_hu
743 #define CODE_FOR_lasx_xvssub_wu CODE_FOR_lasx_xvssub_u_wu
744 #define CODE_FOR_lasx_xvssub_du CODE_FOR_lasx_xvssub_u_du
745 #define CODE_FOR_lasx_xvabsd_b CODE_FOR_sabdv32qi3
746 #define CODE_FOR_lasx_xvabsd_h CODE_FOR_sabdv16hi3
747 #define CODE_FOR_lasx_xvabsd_w CODE_FOR_sabdv8si3
748 #define CODE_FOR_lasx_xvabsd_d CODE_FOR_sabdv4di3
749 #define CODE_FOR_lasx_xvabsd_bu CODE_FOR_uabdv32qi3
750 #define CODE_FOR_lasx_xvabsd_hu CODE_FOR_uabdv16hi3
751 #define CODE_FOR_lasx_xvabsd_wu CODE_FOR_uabdv8si3
752 #define CODE_FOR_lasx_xvabsd_du CODE_FOR_uabdv4di3
753 #define CODE_FOR_lasx_xvavg_b CODE_FOR_lasx_xvavg_s_b
754 #define CODE_FOR_lasx_xvavg_h CODE_FOR_lasx_xvavg_s_h
755 #define CODE_FOR_lasx_xvavg_w CODE_FOR_lasx_xvavg_s_w
756 #define CODE_FOR_lasx_xvavg_d CODE_FOR_lasx_xvavg_s_d
757 #define CODE_FOR_lasx_xvavg_bu CODE_FOR_lasx_xvavg_u_bu
758 #define CODE_FOR_lasx_xvavg_hu CODE_FOR_lasx_xvavg_u_hu
759 #define CODE_FOR_lasx_xvavg_wu CODE_FOR_lasx_xvavg_u_wu
760 #define CODE_FOR_lasx_xvavg_du CODE_FOR_lasx_xvavg_u_du
761 #define CODE_FOR_lasx_xvavgr_b CODE_FOR_lasx_xvavgr_s_b
762 #define CODE_FOR_lasx_xvavgr_h CODE_FOR_lasx_xvavgr_s_h
763 #define CODE_FOR_lasx_xvavgr_w CODE_FOR_lasx_xvavgr_s_w
764 #define CODE_FOR_lasx_xvavgr_d CODE_FOR_lasx_xvavgr_s_d
765 #define CODE_FOR_lasx_xvavgr_bu CODE_FOR_lasx_xvavgr_u_bu
766 #define CODE_FOR_lasx_xvavgr_hu CODE_FOR_lasx_xvavgr_u_hu
767 #define CODE_FOR_lasx_xvavgr_wu CODE_FOR_lasx_xvavgr_u_wu
768 #define CODE_FOR_lasx_xvavgr_du CODE_FOR_lasx_xvavgr_u_du
769 #define CODE_FOR_lasx_xvssran_b_h CODE_FOR_lasx_xvssran_s_b_h
770 #define CODE_FOR_lasx_xvssran_h_w CODE_FOR_lasx_xvssran_s_h_w
771 #define CODE_FOR_lasx_xvssran_w_d CODE_FOR_lasx_xvssran_s_w_d
772 #define CODE_FOR_lasx_xvssran_bu_h CODE_FOR_lasx_xvssran_u_bu_h
773 #define CODE_FOR_lasx_xvssran_hu_w CODE_FOR_lasx_xvssran_u_hu_w
774 #define CODE_FOR_lasx_xvssran_wu_d CODE_FOR_lasx_xvssran_u_wu_d
775 #define CODE_FOR_lasx_xvssrarn_b_h CODE_FOR_lasx_xvssrarn_s_b_h
776 #define CODE_FOR_lasx_xvssrarn_h_w CODE_FOR_lasx_xvssrarn_s_h_w
777 #define CODE_FOR_lasx_xvssrarn_w_d CODE_FOR_lasx_xvssrarn_s_w_d
778 #define CODE_FOR_lasx_xvssrarn_bu_h CODE_FOR_lasx_xvssrarn_u_bu_h
779 #define CODE_FOR_lasx_xvssrarn_hu_w CODE_FOR_lasx_xvssrarn_u_hu_w
780 #define CODE_FOR_lasx_xvssrarn_wu_d CODE_FOR_lasx_xvssrarn_u_wu_d
781 #define CODE_FOR_lasx_xvssrln_bu_h CODE_FOR_lasx_xvssrln_u_bu_h
782 #define CODE_FOR_lasx_xvssrln_hu_w CODE_FOR_lasx_xvssrln_u_hu_w
783 #define CODE_FOR_lasx_xvssrln_wu_d CODE_FOR_lasx_xvssrln_u_wu_d
784 #define CODE_FOR_lasx_xvssrlrn_bu_h CODE_FOR_lasx_xvssrlrn_u_bu_h
785 #define CODE_FOR_lasx_xvssrlrn_hu_w CODE_FOR_lasx_xvssrlrn_u_hu_w
786 #define CODE_FOR_lasx_xvssrlrn_wu_d CODE_FOR_lasx_xvssrlrn_u_wu_d
787 #define CODE_FOR_lasx_xvftint_wu_s CODE_FOR_lasx_xvftint_u_wu_s
788 #define CODE_FOR_lasx_xvftint_lu_d CODE_FOR_lasx_xvftint_u_lu_d
789 #define CODE_FOR_lasx_xvsllwil_h_b CODE_FOR_lasx_xvsllwil_s_h_b
790 #define CODE_FOR_lasx_xvsllwil_w_h CODE_FOR_lasx_xvsllwil_s_w_h
791 #define CODE_FOR_lasx_xvsllwil_d_w CODE_FOR_lasx_xvsllwil_s_d_w
792 #define CODE_FOR_lasx_xvsllwil_hu_bu CODE_FOR_lasx_xvsllwil_u_hu_bu
793 #define CODE_FOR_lasx_xvsllwil_wu_hu CODE_FOR_lasx_xvsllwil_u_wu_hu
794 #define CODE_FOR_lasx_xvsllwil_du_wu CODE_FOR_lasx_xvsllwil_u_du_wu
795 #define CODE_FOR_lasx_xvsat_b CODE_FOR_lasx_xvsat_s_b
796 #define CODE_FOR_lasx_xvsat_h CODE_FOR_lasx_xvsat_s_h
797 #define CODE_FOR_lasx_xvsat_w CODE_FOR_lasx_xvsat_s_w
798 #define CODE_FOR_lasx_xvsat_d CODE_FOR_lasx_xvsat_s_d
799 #define CODE_FOR_lasx_xvsat_bu CODE_FOR_lasx_xvsat_u_bu
800 #define CODE_FOR_lasx_xvsat_hu CODE_FOR_lasx_xvsat_u_hu
801 #define CODE_FOR_lasx_xvsat_wu CODE_FOR_lasx_xvsat_u_wu
802 #define CODE_FOR_lasx_xvsat_du CODE_FOR_lasx_xvsat_u_du
803 #define CODE_FOR_lasx_xvfrsqrt_d CODE_FOR_rsqrtv4df2
804 #define CODE_FOR_lasx_xvfrsqrt_s CODE_FOR_rsqrtv8sf2
805 #define CODE_FOR_lasx_xvfrecip_d CODE_FOR_recipv4df3
806 #define CODE_FOR_lasx_xvfrecip_s CODE_FOR_recipv8sf3
808 static const struct loongarch_builtin_description loongarch_builtins
[] = {
809 #define LARCH_MOVFCSR2GR 0
810 DIRECT_BUILTIN (movfcsr2gr
, LARCH_USI_FTYPE_UQI
, hard_float
),
811 #define LARCH_MOVGR2FCSR 1
812 DIRECT_NO_TARGET_BUILTIN (movgr2fcsr
, LARCH_VOID_FTYPE_UQI_USI
, hard_float
),
814 DIRECT_NO_TARGET_BUILTIN (cacop_w
, LARCH_VOID_FTYPE_USI_USI_SI
, default),
815 DIRECT_NO_TARGET_BUILTIN (cacop_d
, LARCH_VOID_FTYPE_USI_UDI_SI
, default),
816 DIRECT_NO_TARGET_BUILTIN (dbar
, LARCH_VOID_FTYPE_USI
, default),
817 DIRECT_NO_TARGET_BUILTIN (ibar
, LARCH_VOID_FTYPE_USI
, default),
819 DIRECT_BUILTIN (lddir_d
, LARCH_DI_FTYPE_DI_UQI
, default),
820 DIRECT_BUILTIN (lddir_w
, LARCH_SI_FTYPE_SI_UQI
, default),
821 DIRECT_NO_TARGET_BUILTIN (ldpte_d
, LARCH_VOID_FTYPE_DI_UQI
, default),
822 DIRECT_NO_TARGET_BUILTIN (ldpte_w
, LARCH_VOID_FTYPE_SI_UQI
, default),
826 DIRECT_BUILTIN (crc_w_b_w
, LARCH_SI_FTYPE_QI_SI
, default),
827 DIRECT_BUILTIN (crc_w_h_w
, LARCH_SI_FTYPE_HI_SI
, default),
828 DIRECT_BUILTIN (crc_w_w_w
, LARCH_SI_FTYPE_SI_SI
, default),
829 DIRECT_BUILTIN (crc_w_d_w
, LARCH_SI_FTYPE_DI_SI
, default),
830 DIRECT_BUILTIN (crcc_w_b_w
, LARCH_SI_FTYPE_QI_SI
, default),
831 DIRECT_BUILTIN (crcc_w_h_w
, LARCH_SI_FTYPE_HI_SI
, default),
832 DIRECT_BUILTIN (crcc_w_w_w
, LARCH_SI_FTYPE_SI_SI
, default),
833 DIRECT_BUILTIN (crcc_w_d_w
, LARCH_SI_FTYPE_DI_SI
, default),
835 DIRECT_BUILTIN (csrrd_w
, LARCH_USI_FTYPE_USI
, default),
836 DIRECT_BUILTIN (csrrd_d
, LARCH_UDI_FTYPE_USI
, default),
837 DIRECT_BUILTIN (csrwr_w
, LARCH_USI_FTYPE_USI_USI
, default),
838 DIRECT_BUILTIN (csrwr_d
, LARCH_UDI_FTYPE_UDI_USI
, default),
839 DIRECT_BUILTIN (csrxchg_w
, LARCH_USI_FTYPE_USI_USI_USI
, default),
840 DIRECT_BUILTIN (csrxchg_d
, LARCH_UDI_FTYPE_UDI_UDI_USI
, default),
841 DIRECT_BUILTIN (iocsrrd_b
, LARCH_UQI_FTYPE_USI
, default),
842 DIRECT_BUILTIN (iocsrrd_h
, LARCH_UHI_FTYPE_USI
, default),
843 DIRECT_BUILTIN (iocsrrd_w
, LARCH_USI_FTYPE_USI
, default),
844 DIRECT_BUILTIN (iocsrrd_d
, LARCH_UDI_FTYPE_USI
, default),
845 DIRECT_NO_TARGET_BUILTIN (iocsrwr_b
, LARCH_VOID_FTYPE_UQI_USI
, default),
846 DIRECT_NO_TARGET_BUILTIN (iocsrwr_h
, LARCH_VOID_FTYPE_UHI_USI
, default),
847 DIRECT_NO_TARGET_BUILTIN (iocsrwr_w
, LARCH_VOID_FTYPE_USI_USI
, default),
848 DIRECT_NO_TARGET_BUILTIN (iocsrwr_d
, LARCH_VOID_FTYPE_UDI_USI
, default),
850 DIRECT_BUILTIN (cpucfg
, LARCH_USI_FTYPE_USI
, default),
851 DIRECT_NO_TARGET_BUILTIN (asrtle_d
, LARCH_VOID_FTYPE_DI_DI
, default),
852 DIRECT_NO_TARGET_BUILTIN (asrtgt_d
, LARCH_VOID_FTYPE_DI_DI
, default),
853 DIRECT_NO_TARGET_BUILTIN (syscall
, LARCH_VOID_FTYPE_USI
, default),
854 DIRECT_NO_TARGET_BUILTIN (break, LARCH_VOID_FTYPE_USI
, default),
856 /* Built-in functions for frecipe.{s/d} and frsqrte.{s/d}. */
858 DIRECT_BUILTIN (frecipe_s
, LARCH_SF_FTYPE_SF
, frecipe
),
859 DIRECT_BUILTIN (frecipe_d
, LARCH_DF_FTYPE_DF
, frecipe
),
860 DIRECT_BUILTIN (frsqrte_s
, LARCH_SF_FTYPE_SF
, frecipe
),
861 DIRECT_BUILTIN (frsqrte_d
, LARCH_DF_FTYPE_DF
, frecipe
),
863 /* Built-in functions for new LSX instructions. */
865 LSX_EXT_BUILTIN (vfrecipe_s
, LARCH_V4SF_FTYPE_V4SF
, lsx_frecipe
),
866 LSX_EXT_BUILTIN (vfrecipe_d
, LARCH_V2DF_FTYPE_V2DF
, lsx_frecipe
),
867 LSX_EXT_BUILTIN (vfrsqrte_s
, LARCH_V4SF_FTYPE_V4SF
, lsx_frecipe
),
868 LSX_EXT_BUILTIN (vfrsqrte_d
, LARCH_V2DF_FTYPE_V2DF
, lsx_frecipe
),
870 /* Built-in functions for new LASX instructions. */
872 LASX_EXT_BUILTIN (xvfrecipe_s
, LARCH_V8SF_FTYPE_V8SF
, lasx_frecipe
),
873 LASX_EXT_BUILTIN (xvfrecipe_d
, LARCH_V4DF_FTYPE_V4DF
, lasx_frecipe
),
874 LASX_EXT_BUILTIN (xvfrsqrte_s
, LARCH_V8SF_FTYPE_V8SF
, lasx_frecipe
),
875 LASX_EXT_BUILTIN (xvfrsqrte_d
, LARCH_V4DF_FTYPE_V4DF
, lasx_frecipe
),
877 /* Built-in functions for LSX. */
878 LSX_BUILTIN (vsll_b
, LARCH_V16QI_FTYPE_V16QI_V16QI
),
879 LSX_BUILTIN (vsll_h
, LARCH_V8HI_FTYPE_V8HI_V8HI
),
880 LSX_BUILTIN (vsll_w
, LARCH_V4SI_FTYPE_V4SI_V4SI
),
881 LSX_BUILTIN (vsll_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
882 LSX_BUILTIN (vslli_b
, LARCH_V16QI_FTYPE_V16QI_UQI
),
883 LSX_BUILTIN (vslli_h
, LARCH_V8HI_FTYPE_V8HI_UQI
),
884 LSX_BUILTIN (vslli_w
, LARCH_V4SI_FTYPE_V4SI_UQI
),
885 LSX_BUILTIN (vslli_d
, LARCH_V2DI_FTYPE_V2DI_UQI
),
886 LSX_BUILTIN (vsra_b
, LARCH_V16QI_FTYPE_V16QI_V16QI
),
887 LSX_BUILTIN (vsra_h
, LARCH_V8HI_FTYPE_V8HI_V8HI
),
888 LSX_BUILTIN (vsra_w
, LARCH_V4SI_FTYPE_V4SI_V4SI
),
889 LSX_BUILTIN (vsra_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
890 LSX_BUILTIN (vsrai_b
, LARCH_V16QI_FTYPE_V16QI_UQI
),
891 LSX_BUILTIN (vsrai_h
, LARCH_V8HI_FTYPE_V8HI_UQI
),
892 LSX_BUILTIN (vsrai_w
, LARCH_V4SI_FTYPE_V4SI_UQI
),
893 LSX_BUILTIN (vsrai_d
, LARCH_V2DI_FTYPE_V2DI_UQI
),
894 LSX_BUILTIN (vsrar_b
, LARCH_V16QI_FTYPE_V16QI_V16QI
),
895 LSX_BUILTIN (vsrar_h
, LARCH_V8HI_FTYPE_V8HI_V8HI
),
896 LSX_BUILTIN (vsrar_w
, LARCH_V4SI_FTYPE_V4SI_V4SI
),
897 LSX_BUILTIN (vsrar_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
898 LSX_BUILTIN (vsrari_b
, LARCH_V16QI_FTYPE_V16QI_UQI
),
899 LSX_BUILTIN (vsrari_h
, LARCH_V8HI_FTYPE_V8HI_UQI
),
900 LSX_BUILTIN (vsrari_w
, LARCH_V4SI_FTYPE_V4SI_UQI
),
901 LSX_BUILTIN (vsrari_d
, LARCH_V2DI_FTYPE_V2DI_UQI
),
902 LSX_BUILTIN (vsrl_b
, LARCH_V16QI_FTYPE_V16QI_V16QI
),
903 LSX_BUILTIN (vsrl_h
, LARCH_V8HI_FTYPE_V8HI_V8HI
),
904 LSX_BUILTIN (vsrl_w
, LARCH_V4SI_FTYPE_V4SI_V4SI
),
905 LSX_BUILTIN (vsrl_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
906 LSX_BUILTIN (vsrli_b
, LARCH_V16QI_FTYPE_V16QI_UQI
),
907 LSX_BUILTIN (vsrli_h
, LARCH_V8HI_FTYPE_V8HI_UQI
),
908 LSX_BUILTIN (vsrli_w
, LARCH_V4SI_FTYPE_V4SI_UQI
),
909 LSX_BUILTIN (vsrli_d
, LARCH_V2DI_FTYPE_V2DI_UQI
),
910 LSX_BUILTIN (vsrlr_b
, LARCH_V16QI_FTYPE_V16QI_V16QI
),
911 LSX_BUILTIN (vsrlr_h
, LARCH_V8HI_FTYPE_V8HI_V8HI
),
912 LSX_BUILTIN (vsrlr_w
, LARCH_V4SI_FTYPE_V4SI_V4SI
),
913 LSX_BUILTIN (vsrlr_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
914 LSX_BUILTIN (vsrlri_b
, LARCH_V16QI_FTYPE_V16QI_UQI
),
915 LSX_BUILTIN (vsrlri_h
, LARCH_V8HI_FTYPE_V8HI_UQI
),
916 LSX_BUILTIN (vsrlri_w
, LARCH_V4SI_FTYPE_V4SI_UQI
),
917 LSX_BUILTIN (vsrlri_d
, LARCH_V2DI_FTYPE_V2DI_UQI
),
918 LSX_BUILTIN (vbitclr_b
, LARCH_UV16QI_FTYPE_UV16QI_UV16QI
),
919 LSX_BUILTIN (vbitclr_h
, LARCH_UV8HI_FTYPE_UV8HI_UV8HI
),
920 LSX_BUILTIN (vbitclr_w
, LARCH_UV4SI_FTYPE_UV4SI_UV4SI
),
921 LSX_BUILTIN (vbitclr_d
, LARCH_UV2DI_FTYPE_UV2DI_UV2DI
),
922 LSX_BUILTIN (vbitclri_b
, LARCH_UV16QI_FTYPE_UV16QI_UQI
),
923 LSX_BUILTIN (vbitclri_h
, LARCH_UV8HI_FTYPE_UV8HI_UQI
),
924 LSX_BUILTIN (vbitclri_w
, LARCH_UV4SI_FTYPE_UV4SI_UQI
),
925 LSX_BUILTIN (vbitclri_d
, LARCH_UV2DI_FTYPE_UV2DI_UQI
),
926 LSX_BUILTIN (vbitset_b
, LARCH_UV16QI_FTYPE_UV16QI_UV16QI
),
927 LSX_BUILTIN (vbitset_h
, LARCH_UV8HI_FTYPE_UV8HI_UV8HI
),
928 LSX_BUILTIN (vbitset_w
, LARCH_UV4SI_FTYPE_UV4SI_UV4SI
),
929 LSX_BUILTIN (vbitset_d
, LARCH_UV2DI_FTYPE_UV2DI_UV2DI
),
930 LSX_BUILTIN (vbitseti_b
, LARCH_UV16QI_FTYPE_UV16QI_UQI
),
931 LSX_BUILTIN (vbitseti_h
, LARCH_UV8HI_FTYPE_UV8HI_UQI
),
932 LSX_BUILTIN (vbitseti_w
, LARCH_UV4SI_FTYPE_UV4SI_UQI
),
933 LSX_BUILTIN (vbitseti_d
, LARCH_UV2DI_FTYPE_UV2DI_UQI
),
934 LSX_BUILTIN (vbitrev_b
, LARCH_UV16QI_FTYPE_UV16QI_UV16QI
),
935 LSX_BUILTIN (vbitrev_h
, LARCH_UV8HI_FTYPE_UV8HI_UV8HI
),
936 LSX_BUILTIN (vbitrev_w
, LARCH_UV4SI_FTYPE_UV4SI_UV4SI
),
937 LSX_BUILTIN (vbitrev_d
, LARCH_UV2DI_FTYPE_UV2DI_UV2DI
),
938 LSX_BUILTIN (vbitrevi_b
, LARCH_UV16QI_FTYPE_UV16QI_UQI
),
939 LSX_BUILTIN (vbitrevi_h
, LARCH_UV8HI_FTYPE_UV8HI_UQI
),
940 LSX_BUILTIN (vbitrevi_w
, LARCH_UV4SI_FTYPE_UV4SI_UQI
),
941 LSX_BUILTIN (vbitrevi_d
, LARCH_UV2DI_FTYPE_UV2DI_UQI
),
942 LSX_BUILTIN (vadd_b
, LARCH_V16QI_FTYPE_V16QI_V16QI
),
943 LSX_BUILTIN (vadd_h
, LARCH_V8HI_FTYPE_V8HI_V8HI
),
944 LSX_BUILTIN (vadd_w
, LARCH_V4SI_FTYPE_V4SI_V4SI
),
945 LSX_BUILTIN (vadd_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
946 LSX_BUILTIN (vaddi_bu
, LARCH_V16QI_FTYPE_V16QI_UQI
),
947 LSX_BUILTIN (vaddi_hu
, LARCH_V8HI_FTYPE_V8HI_UQI
),
948 LSX_BUILTIN (vaddi_wu
, LARCH_V4SI_FTYPE_V4SI_UQI
),
949 LSX_BUILTIN (vaddi_du
, LARCH_V2DI_FTYPE_V2DI_UQI
),
950 LSX_BUILTIN (vsub_b
, LARCH_V16QI_FTYPE_V16QI_V16QI
),
951 LSX_BUILTIN (vsub_h
, LARCH_V8HI_FTYPE_V8HI_V8HI
),
952 LSX_BUILTIN (vsub_w
, LARCH_V4SI_FTYPE_V4SI_V4SI
),
953 LSX_BUILTIN (vsub_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
954 LSX_BUILTIN (vsubi_bu
, LARCH_V16QI_FTYPE_V16QI_UQI
),
955 LSX_BUILTIN (vsubi_hu
, LARCH_V8HI_FTYPE_V8HI_UQI
),
956 LSX_BUILTIN (vsubi_wu
, LARCH_V4SI_FTYPE_V4SI_UQI
),
957 LSX_BUILTIN (vsubi_du
, LARCH_V2DI_FTYPE_V2DI_UQI
),
958 LSX_BUILTIN (vmax_b
, LARCH_V16QI_FTYPE_V16QI_V16QI
),
959 LSX_BUILTIN (vmax_h
, LARCH_V8HI_FTYPE_V8HI_V8HI
),
960 LSX_BUILTIN (vmax_w
, LARCH_V4SI_FTYPE_V4SI_V4SI
),
961 LSX_BUILTIN (vmax_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
962 LSX_BUILTIN (vmaxi_b
, LARCH_V16QI_FTYPE_V16QI_QI
),
963 LSX_BUILTIN (vmaxi_h
, LARCH_V8HI_FTYPE_V8HI_QI
),
964 LSX_BUILTIN (vmaxi_w
, LARCH_V4SI_FTYPE_V4SI_QI
),
965 LSX_BUILTIN (vmaxi_d
, LARCH_V2DI_FTYPE_V2DI_QI
),
966 LSX_BUILTIN (vmax_bu
, LARCH_UV16QI_FTYPE_UV16QI_UV16QI
),
967 LSX_BUILTIN (vmax_hu
, LARCH_UV8HI_FTYPE_UV8HI_UV8HI
),
968 LSX_BUILTIN (vmax_wu
, LARCH_UV4SI_FTYPE_UV4SI_UV4SI
),
969 LSX_BUILTIN (vmax_du
, LARCH_UV2DI_FTYPE_UV2DI_UV2DI
),
970 LSX_BUILTIN (vmaxi_bu
, LARCH_UV16QI_FTYPE_UV16QI_UQI
),
971 LSX_BUILTIN (vmaxi_hu
, LARCH_UV8HI_FTYPE_UV8HI_UQI
),
972 LSX_BUILTIN (vmaxi_wu
, LARCH_UV4SI_FTYPE_UV4SI_UQI
),
973 LSX_BUILTIN (vmaxi_du
, LARCH_UV2DI_FTYPE_UV2DI_UQI
),
974 LSX_BUILTIN (vmin_b
, LARCH_V16QI_FTYPE_V16QI_V16QI
),
975 LSX_BUILTIN (vmin_h
, LARCH_V8HI_FTYPE_V8HI_V8HI
),
976 LSX_BUILTIN (vmin_w
, LARCH_V4SI_FTYPE_V4SI_V4SI
),
977 LSX_BUILTIN (vmin_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
978 LSX_BUILTIN (vmini_b
, LARCH_V16QI_FTYPE_V16QI_QI
),
979 LSX_BUILTIN (vmini_h
, LARCH_V8HI_FTYPE_V8HI_QI
),
980 LSX_BUILTIN (vmini_w
, LARCH_V4SI_FTYPE_V4SI_QI
),
981 LSX_BUILTIN (vmini_d
, LARCH_V2DI_FTYPE_V2DI_QI
),
982 LSX_BUILTIN (vmin_bu
, LARCH_UV16QI_FTYPE_UV16QI_UV16QI
),
983 LSX_BUILTIN (vmin_hu
, LARCH_UV8HI_FTYPE_UV8HI_UV8HI
),
984 LSX_BUILTIN (vmin_wu
, LARCH_UV4SI_FTYPE_UV4SI_UV4SI
),
985 LSX_BUILTIN (vmin_du
, LARCH_UV2DI_FTYPE_UV2DI_UV2DI
),
986 LSX_BUILTIN (vmini_bu
, LARCH_UV16QI_FTYPE_UV16QI_UQI
),
987 LSX_BUILTIN (vmini_hu
, LARCH_UV8HI_FTYPE_UV8HI_UQI
),
988 LSX_BUILTIN (vmini_wu
, LARCH_UV4SI_FTYPE_UV4SI_UQI
),
989 LSX_BUILTIN (vmini_du
, LARCH_UV2DI_FTYPE_UV2DI_UQI
),
990 LSX_BUILTIN (vseq_b
, LARCH_V16QI_FTYPE_V16QI_V16QI
),
991 LSX_BUILTIN (vseq_h
, LARCH_V8HI_FTYPE_V8HI_V8HI
),
992 LSX_BUILTIN (vseq_w
, LARCH_V4SI_FTYPE_V4SI_V4SI
),
993 LSX_BUILTIN (vseq_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
994 LSX_BUILTIN (vseqi_b
, LARCH_V16QI_FTYPE_V16QI_QI
),
995 LSX_BUILTIN (vseqi_h
, LARCH_V8HI_FTYPE_V8HI_QI
),
996 LSX_BUILTIN (vseqi_w
, LARCH_V4SI_FTYPE_V4SI_QI
),
997 LSX_BUILTIN (vseqi_d
, LARCH_V2DI_FTYPE_V2DI_QI
),
998 LSX_BUILTIN (vslti_b
, LARCH_V16QI_FTYPE_V16QI_QI
),
999 LSX_BUILTIN (vslt_b
, LARCH_V16QI_FTYPE_V16QI_V16QI
),
1000 LSX_BUILTIN (vslt_h
, LARCH_V8HI_FTYPE_V8HI_V8HI
),
1001 LSX_BUILTIN (vslt_w
, LARCH_V4SI_FTYPE_V4SI_V4SI
),
1002 LSX_BUILTIN (vslt_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
1003 LSX_BUILTIN (vslti_h
, LARCH_V8HI_FTYPE_V8HI_QI
),
1004 LSX_BUILTIN (vslti_w
, LARCH_V4SI_FTYPE_V4SI_QI
),
1005 LSX_BUILTIN (vslti_d
, LARCH_V2DI_FTYPE_V2DI_QI
),
1006 LSX_BUILTIN (vslt_bu
, LARCH_V16QI_FTYPE_UV16QI_UV16QI
),
1007 LSX_BUILTIN (vslt_hu
, LARCH_V8HI_FTYPE_UV8HI_UV8HI
),
1008 LSX_BUILTIN (vslt_wu
, LARCH_V4SI_FTYPE_UV4SI_UV4SI
),
1009 LSX_BUILTIN (vslt_du
, LARCH_V2DI_FTYPE_UV2DI_UV2DI
),
1010 LSX_BUILTIN (vslti_bu
, LARCH_V16QI_FTYPE_UV16QI_UQI
),
1011 LSX_BUILTIN (vslti_hu
, LARCH_V8HI_FTYPE_UV8HI_UQI
),
1012 LSX_BUILTIN (vslti_wu
, LARCH_V4SI_FTYPE_UV4SI_UQI
),
1013 LSX_BUILTIN (vslti_du
, LARCH_V2DI_FTYPE_UV2DI_UQI
),
1014 LSX_BUILTIN (vsle_b
, LARCH_V16QI_FTYPE_V16QI_V16QI
),
1015 LSX_BUILTIN (vsle_h
, LARCH_V8HI_FTYPE_V8HI_V8HI
),
1016 LSX_BUILTIN (vsle_w
, LARCH_V4SI_FTYPE_V4SI_V4SI
),
1017 LSX_BUILTIN (vsle_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
1018 LSX_BUILTIN (vslei_b
, LARCH_V16QI_FTYPE_V16QI_QI
),
1019 LSX_BUILTIN (vslei_h
, LARCH_V8HI_FTYPE_V8HI_QI
),
1020 LSX_BUILTIN (vslei_w
, LARCH_V4SI_FTYPE_V4SI_QI
),
1021 LSX_BUILTIN (vslei_d
, LARCH_V2DI_FTYPE_V2DI_QI
),
1022 LSX_BUILTIN (vsle_bu
, LARCH_V16QI_FTYPE_UV16QI_UV16QI
),
1023 LSX_BUILTIN (vsle_hu
, LARCH_V8HI_FTYPE_UV8HI_UV8HI
),
1024 LSX_BUILTIN (vsle_wu
, LARCH_V4SI_FTYPE_UV4SI_UV4SI
),
1025 LSX_BUILTIN (vsle_du
, LARCH_V2DI_FTYPE_UV2DI_UV2DI
),
1026 LSX_BUILTIN (vslei_bu
, LARCH_V16QI_FTYPE_UV16QI_UQI
),
1027 LSX_BUILTIN (vslei_hu
, LARCH_V8HI_FTYPE_UV8HI_UQI
),
1028 LSX_BUILTIN (vslei_wu
, LARCH_V4SI_FTYPE_UV4SI_UQI
),
1029 LSX_BUILTIN (vslei_du
, LARCH_V2DI_FTYPE_UV2DI_UQI
),
1030 LSX_BUILTIN (vsat_b
, LARCH_V16QI_FTYPE_V16QI_UQI
),
1031 LSX_BUILTIN (vsat_h
, LARCH_V8HI_FTYPE_V8HI_UQI
),
1032 LSX_BUILTIN (vsat_w
, LARCH_V4SI_FTYPE_V4SI_UQI
),
1033 LSX_BUILTIN (vsat_d
, LARCH_V2DI_FTYPE_V2DI_UQI
),
1034 LSX_BUILTIN (vsat_bu
, LARCH_UV16QI_FTYPE_UV16QI_UQI
),
1035 LSX_BUILTIN (vsat_hu
, LARCH_UV8HI_FTYPE_UV8HI_UQI
),
1036 LSX_BUILTIN (vsat_wu
, LARCH_UV4SI_FTYPE_UV4SI_UQI
),
1037 LSX_BUILTIN (vsat_du
, LARCH_UV2DI_FTYPE_UV2DI_UQI
),
1038 LSX_BUILTIN (vadda_b
, LARCH_V16QI_FTYPE_V16QI_V16QI
),
1039 LSX_BUILTIN (vadda_h
, LARCH_V8HI_FTYPE_V8HI_V8HI
),
1040 LSX_BUILTIN (vadda_w
, LARCH_V4SI_FTYPE_V4SI_V4SI
),
1041 LSX_BUILTIN (vadda_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
1042 LSX_BUILTIN (vsadd_b
, LARCH_V16QI_FTYPE_V16QI_V16QI
),
1043 LSX_BUILTIN (vsadd_h
, LARCH_V8HI_FTYPE_V8HI_V8HI
),
1044 LSX_BUILTIN (vsadd_w
, LARCH_V4SI_FTYPE_V4SI_V4SI
),
1045 LSX_BUILTIN (vsadd_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
1046 LSX_BUILTIN (vsadd_bu
, LARCH_UV16QI_FTYPE_UV16QI_UV16QI
),
1047 LSX_BUILTIN (vsadd_hu
, LARCH_UV8HI_FTYPE_UV8HI_UV8HI
),
1048 LSX_BUILTIN (vsadd_wu
, LARCH_UV4SI_FTYPE_UV4SI_UV4SI
),
1049 LSX_BUILTIN (vsadd_du
, LARCH_UV2DI_FTYPE_UV2DI_UV2DI
),
1050 LSX_BUILTIN (vavg_b
, LARCH_V16QI_FTYPE_V16QI_V16QI
),
1051 LSX_BUILTIN (vavg_h
, LARCH_V8HI_FTYPE_V8HI_V8HI
),
1052 LSX_BUILTIN (vavg_w
, LARCH_V4SI_FTYPE_V4SI_V4SI
),
1053 LSX_BUILTIN (vavg_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
1054 LSX_BUILTIN (vavg_bu
, LARCH_UV16QI_FTYPE_UV16QI_UV16QI
),
1055 LSX_BUILTIN (vavg_hu
, LARCH_UV8HI_FTYPE_UV8HI_UV8HI
),
1056 LSX_BUILTIN (vavg_wu
, LARCH_UV4SI_FTYPE_UV4SI_UV4SI
),
1057 LSX_BUILTIN (vavg_du
, LARCH_UV2DI_FTYPE_UV2DI_UV2DI
),
1058 LSX_BUILTIN (vavgr_b
, LARCH_V16QI_FTYPE_V16QI_V16QI
),
1059 LSX_BUILTIN (vavgr_h
, LARCH_V8HI_FTYPE_V8HI_V8HI
),
1060 LSX_BUILTIN (vavgr_w
, LARCH_V4SI_FTYPE_V4SI_V4SI
),
1061 LSX_BUILTIN (vavgr_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
1062 LSX_BUILTIN (vavgr_bu
, LARCH_UV16QI_FTYPE_UV16QI_UV16QI
),
1063 LSX_BUILTIN (vavgr_hu
, LARCH_UV8HI_FTYPE_UV8HI_UV8HI
),
1064 LSX_BUILTIN (vavgr_wu
, LARCH_UV4SI_FTYPE_UV4SI_UV4SI
),
1065 LSX_BUILTIN (vavgr_du
, LARCH_UV2DI_FTYPE_UV2DI_UV2DI
),
1066 LSX_BUILTIN (vssub_b
, LARCH_V16QI_FTYPE_V16QI_V16QI
),
1067 LSX_BUILTIN (vssub_h
, LARCH_V8HI_FTYPE_V8HI_V8HI
),
1068 LSX_BUILTIN (vssub_w
, LARCH_V4SI_FTYPE_V4SI_V4SI
),
1069 LSX_BUILTIN (vssub_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
1070 LSX_BUILTIN (vssub_bu
, LARCH_UV16QI_FTYPE_UV16QI_UV16QI
),
1071 LSX_BUILTIN (vssub_hu
, LARCH_UV8HI_FTYPE_UV8HI_UV8HI
),
1072 LSX_BUILTIN (vssub_wu
, LARCH_UV4SI_FTYPE_UV4SI_UV4SI
),
1073 LSX_BUILTIN (vssub_du
, LARCH_UV2DI_FTYPE_UV2DI_UV2DI
),
1074 LSX_BUILTIN (vabsd_b
, LARCH_V16QI_FTYPE_V16QI_V16QI
),
1075 LSX_BUILTIN (vabsd_h
, LARCH_V8HI_FTYPE_V8HI_V8HI
),
1076 LSX_BUILTIN (vabsd_w
, LARCH_V4SI_FTYPE_V4SI_V4SI
),
1077 LSX_BUILTIN (vabsd_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
1078 LSX_BUILTIN (vabsd_bu
, LARCH_UV16QI_FTYPE_UV16QI_UV16QI
),
1079 LSX_BUILTIN (vabsd_hu
, LARCH_UV8HI_FTYPE_UV8HI_UV8HI
),
1080 LSX_BUILTIN (vabsd_wu
, LARCH_UV4SI_FTYPE_UV4SI_UV4SI
),
1081 LSX_BUILTIN (vabsd_du
, LARCH_UV2DI_FTYPE_UV2DI_UV2DI
),
1082 LSX_BUILTIN (vmul_b
, LARCH_V16QI_FTYPE_V16QI_V16QI
),
1083 LSX_BUILTIN (vmul_h
, LARCH_V8HI_FTYPE_V8HI_V8HI
),
1084 LSX_BUILTIN (vmul_w
, LARCH_V4SI_FTYPE_V4SI_V4SI
),
1085 LSX_BUILTIN (vmul_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
1086 LSX_BUILTIN (vmadd_b
, LARCH_V16QI_FTYPE_V16QI_V16QI_V16QI
),
1087 LSX_BUILTIN (vmadd_h
, LARCH_V8HI_FTYPE_V8HI_V8HI_V8HI
),
1088 LSX_BUILTIN (vmadd_w
, LARCH_V4SI_FTYPE_V4SI_V4SI_V4SI
),
1089 LSX_BUILTIN (vmadd_d
, LARCH_V2DI_FTYPE_V2DI_V2DI_V2DI
),
1090 LSX_BUILTIN (vmsub_b
, LARCH_V16QI_FTYPE_V16QI_V16QI_V16QI
),
1091 LSX_BUILTIN (vmsub_h
, LARCH_V8HI_FTYPE_V8HI_V8HI_V8HI
),
1092 LSX_BUILTIN (vmsub_w
, LARCH_V4SI_FTYPE_V4SI_V4SI_V4SI
),
1093 LSX_BUILTIN (vmsub_d
, LARCH_V2DI_FTYPE_V2DI_V2DI_V2DI
),
1094 LSX_BUILTIN (vdiv_b
, LARCH_V16QI_FTYPE_V16QI_V16QI
),
1095 LSX_BUILTIN (vdiv_h
, LARCH_V8HI_FTYPE_V8HI_V8HI
),
1096 LSX_BUILTIN (vdiv_w
, LARCH_V4SI_FTYPE_V4SI_V4SI
),
1097 LSX_BUILTIN (vdiv_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
1098 LSX_BUILTIN (vdiv_bu
, LARCH_UV16QI_FTYPE_UV16QI_UV16QI
),
1099 LSX_BUILTIN (vdiv_hu
, LARCH_UV8HI_FTYPE_UV8HI_UV8HI
),
1100 LSX_BUILTIN (vdiv_wu
, LARCH_UV4SI_FTYPE_UV4SI_UV4SI
),
1101 LSX_BUILTIN (vdiv_du
, LARCH_UV2DI_FTYPE_UV2DI_UV2DI
),
1102 LSX_BUILTIN (vhaddw_h_b
, LARCH_V8HI_FTYPE_V16QI_V16QI
),
1103 LSX_BUILTIN (vhaddw_w_h
, LARCH_V4SI_FTYPE_V8HI_V8HI
),
1104 LSX_BUILTIN (vhaddw_d_w
, LARCH_V2DI_FTYPE_V4SI_V4SI
),
1105 LSX_BUILTIN (vhaddw_hu_bu
, LARCH_UV8HI_FTYPE_UV16QI_UV16QI
),
1106 LSX_BUILTIN (vhaddw_wu_hu
, LARCH_UV4SI_FTYPE_UV8HI_UV8HI
),
1107 LSX_BUILTIN (vhaddw_du_wu
, LARCH_UV2DI_FTYPE_UV4SI_UV4SI
),
1108 LSX_BUILTIN (vhsubw_h_b
, LARCH_V8HI_FTYPE_V16QI_V16QI
),
1109 LSX_BUILTIN (vhsubw_w_h
, LARCH_V4SI_FTYPE_V8HI_V8HI
),
1110 LSX_BUILTIN (vhsubw_d_w
, LARCH_V2DI_FTYPE_V4SI_V4SI
),
1111 LSX_BUILTIN (vhsubw_hu_bu
, LARCH_V8HI_FTYPE_UV16QI_UV16QI
),
1112 LSX_BUILTIN (vhsubw_wu_hu
, LARCH_V4SI_FTYPE_UV8HI_UV8HI
),
1113 LSX_BUILTIN (vhsubw_du_wu
, LARCH_V2DI_FTYPE_UV4SI_UV4SI
),
1114 LSX_BUILTIN (vmod_b
, LARCH_V16QI_FTYPE_V16QI_V16QI
),
1115 LSX_BUILTIN (vmod_h
, LARCH_V8HI_FTYPE_V8HI_V8HI
),
1116 LSX_BUILTIN (vmod_w
, LARCH_V4SI_FTYPE_V4SI_V4SI
),
1117 LSX_BUILTIN (vmod_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
1118 LSX_BUILTIN (vmod_bu
, LARCH_UV16QI_FTYPE_UV16QI_UV16QI
),
1119 LSX_BUILTIN (vmod_hu
, LARCH_UV8HI_FTYPE_UV8HI_UV8HI
),
1120 LSX_BUILTIN (vmod_wu
, LARCH_UV4SI_FTYPE_UV4SI_UV4SI
),
1121 LSX_BUILTIN (vmod_du
, LARCH_UV2DI_FTYPE_UV2DI_UV2DI
),
1122 LSX_BUILTIN (vreplve_b
, LARCH_V16QI_FTYPE_V16QI_SI
),
1123 LSX_BUILTIN (vreplve_h
, LARCH_V8HI_FTYPE_V8HI_SI
),
1124 LSX_BUILTIN (vreplve_w
, LARCH_V4SI_FTYPE_V4SI_SI
),
1125 LSX_BUILTIN (vreplve_d
, LARCH_V2DI_FTYPE_V2DI_SI
),
1126 LSX_BUILTIN (vreplvei_b
, LARCH_V16QI_FTYPE_V16QI_UQI
),
1127 LSX_BUILTIN (vreplvei_h
, LARCH_V8HI_FTYPE_V8HI_UQI
),
1128 LSX_BUILTIN (vreplvei_w
, LARCH_V4SI_FTYPE_V4SI_UQI
),
1129 LSX_BUILTIN (vreplvei_d
, LARCH_V2DI_FTYPE_V2DI_UQI
),
1130 LSX_BUILTIN (vpickev_b
, LARCH_V16QI_FTYPE_V16QI_V16QI
),
1131 LSX_BUILTIN (vpickev_h
, LARCH_V8HI_FTYPE_V8HI_V8HI
),
1132 LSX_BUILTIN (vpickev_w
, LARCH_V4SI_FTYPE_V4SI_V4SI
),
1133 LSX_BUILTIN (vpickev_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
1134 LSX_BUILTIN (vpickod_b
, LARCH_V16QI_FTYPE_V16QI_V16QI
),
1135 LSX_BUILTIN (vpickod_h
, LARCH_V8HI_FTYPE_V8HI_V8HI
),
1136 LSX_BUILTIN (vpickod_w
, LARCH_V4SI_FTYPE_V4SI_V4SI
),
1137 LSX_BUILTIN (vpickod_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
1138 LSX_BUILTIN (vilvh_b
, LARCH_V16QI_FTYPE_V16QI_V16QI
),
1139 LSX_BUILTIN (vilvh_h
, LARCH_V8HI_FTYPE_V8HI_V8HI
),
1140 LSX_BUILTIN (vilvh_w
, LARCH_V4SI_FTYPE_V4SI_V4SI
),
1141 LSX_BUILTIN (vilvh_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
1142 LSX_BUILTIN (vilvl_b
, LARCH_V16QI_FTYPE_V16QI_V16QI
),
1143 LSX_BUILTIN (vilvl_h
, LARCH_V8HI_FTYPE_V8HI_V8HI
),
1144 LSX_BUILTIN (vilvl_w
, LARCH_V4SI_FTYPE_V4SI_V4SI
),
1145 LSX_BUILTIN (vilvl_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
1146 LSX_BUILTIN (vpackev_b
, LARCH_V16QI_FTYPE_V16QI_V16QI
),
1147 LSX_BUILTIN (vpackev_h
, LARCH_V8HI_FTYPE_V8HI_V8HI
),
1148 LSX_BUILTIN (vpackev_w
, LARCH_V4SI_FTYPE_V4SI_V4SI
),
1149 LSX_BUILTIN (vpackev_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
1150 LSX_BUILTIN (vpackod_b
, LARCH_V16QI_FTYPE_V16QI_V16QI
),
1151 LSX_BUILTIN (vpackod_h
, LARCH_V8HI_FTYPE_V8HI_V8HI
),
1152 LSX_BUILTIN (vpackod_w
, LARCH_V4SI_FTYPE_V4SI_V4SI
),
1153 LSX_BUILTIN (vpackod_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
1154 LSX_BUILTIN (vshuf_h
, LARCH_V8HI_FTYPE_V8HI_V8HI_V8HI
),
1155 LSX_BUILTIN (vshuf_w
, LARCH_V4SI_FTYPE_V4SI_V4SI_V4SI
),
1156 LSX_BUILTIN (vshuf_d
, LARCH_V2DI_FTYPE_V2DI_V2DI_V2DI
),
1157 LSX_BUILTIN (vand_v
, LARCH_UV16QI_FTYPE_UV16QI_UV16QI
),
1158 LSX_BUILTIN (vandi_b
, LARCH_UV16QI_FTYPE_UV16QI_UQI
),
1159 LSX_BUILTIN (vor_v
, LARCH_UV16QI_FTYPE_UV16QI_UV16QI
),
1160 LSX_BUILTIN (vori_b
, LARCH_UV16QI_FTYPE_UV16QI_UQI
),
1161 LSX_BUILTIN (vnor_v
, LARCH_UV16QI_FTYPE_UV16QI_UV16QI
),
1162 LSX_BUILTIN (vnori_b
, LARCH_UV16QI_FTYPE_UV16QI_UQI
),
1163 LSX_BUILTIN (vxor_v
, LARCH_UV16QI_FTYPE_UV16QI_UV16QI
),
1164 LSX_BUILTIN (vxori_b
, LARCH_UV16QI_FTYPE_UV16QI_UQI
),
1165 LSX_BUILTIN (vbitsel_v
, LARCH_UV16QI_FTYPE_UV16QI_UV16QI_UV16QI
),
1166 LSX_BUILTIN (vbitseli_b
, LARCH_UV16QI_FTYPE_UV16QI_UV16QI_USI
),
1167 LSX_BUILTIN (vshuf4i_b
, LARCH_V16QI_FTYPE_V16QI_USI
),
1168 LSX_BUILTIN (vshuf4i_h
, LARCH_V8HI_FTYPE_V8HI_USI
),
1169 LSX_BUILTIN (vshuf4i_w
, LARCH_V4SI_FTYPE_V4SI_USI
),
1170 LSX_BUILTIN (vreplgr2vr_b
, LARCH_V16QI_FTYPE_SI
),
1171 LSX_BUILTIN (vreplgr2vr_h
, LARCH_V8HI_FTYPE_SI
),
1172 LSX_BUILTIN (vreplgr2vr_w
, LARCH_V4SI_FTYPE_SI
),
1173 LSX_BUILTIN (vreplgr2vr_d
, LARCH_V2DI_FTYPE_DI
),
1174 LSX_BUILTIN (vpcnt_b
, LARCH_V16QI_FTYPE_V16QI
),
1175 LSX_BUILTIN (vpcnt_h
, LARCH_V8HI_FTYPE_V8HI
),
1176 LSX_BUILTIN (vpcnt_w
, LARCH_V4SI_FTYPE_V4SI
),
1177 LSX_BUILTIN (vpcnt_d
, LARCH_V2DI_FTYPE_V2DI
),
1178 LSX_BUILTIN (vclo_b
, LARCH_V16QI_FTYPE_V16QI
),
1179 LSX_BUILTIN (vclo_h
, LARCH_V8HI_FTYPE_V8HI
),
1180 LSX_BUILTIN (vclo_w
, LARCH_V4SI_FTYPE_V4SI
),
1181 LSX_BUILTIN (vclo_d
, LARCH_V2DI_FTYPE_V2DI
),
1182 LSX_BUILTIN (vclz_b
, LARCH_V16QI_FTYPE_V16QI
),
1183 LSX_BUILTIN (vclz_h
, LARCH_V8HI_FTYPE_V8HI
),
1184 LSX_BUILTIN (vclz_w
, LARCH_V4SI_FTYPE_V4SI
),
1185 LSX_BUILTIN (vclz_d
, LARCH_V2DI_FTYPE_V2DI
),
1186 LSX_BUILTIN (vpickve2gr_b
, LARCH_SI_FTYPE_V16QI_UQI
),
1187 LSX_BUILTIN (vpickve2gr_h
, LARCH_SI_FTYPE_V8HI_UQI
),
1188 LSX_BUILTIN (vpickve2gr_w
, LARCH_SI_FTYPE_V4SI_UQI
),
1189 LSX_BUILTIN (vpickve2gr_d
, LARCH_DI_FTYPE_V2DI_UQI
),
1190 LSX_BUILTIN (vpickve2gr_bu
, LARCH_USI_FTYPE_V16QI_UQI
),
1191 LSX_BUILTIN (vpickve2gr_hu
, LARCH_USI_FTYPE_V8HI_UQI
),
1192 LSX_BUILTIN (vpickve2gr_wu
, LARCH_USI_FTYPE_V4SI_UQI
),
1193 LSX_BUILTIN (vpickve2gr_du
, LARCH_UDI_FTYPE_V2DI_UQI
),
1194 LSX_BUILTIN (vinsgr2vr_b
, LARCH_V16QI_FTYPE_V16QI_SI_UQI
),
1195 LSX_BUILTIN (vinsgr2vr_h
, LARCH_V8HI_FTYPE_V8HI_SI_UQI
),
1196 LSX_BUILTIN (vinsgr2vr_w
, LARCH_V4SI_FTYPE_V4SI_SI_UQI
),
1197 LSX_BUILTIN (vinsgr2vr_d
, LARCH_V2DI_FTYPE_V2DI_DI_UQI
),
1198 LSX_BUILTIN_TEST_BRANCH (bnz_b
, LARCH_SI_FTYPE_UV16QI
),
1199 LSX_BUILTIN_TEST_BRANCH (bnz_h
, LARCH_SI_FTYPE_UV8HI
),
1200 LSX_BUILTIN_TEST_BRANCH (bnz_w
, LARCH_SI_FTYPE_UV4SI
),
1201 LSX_BUILTIN_TEST_BRANCH (bnz_d
, LARCH_SI_FTYPE_UV2DI
),
1202 LSX_BUILTIN_TEST_BRANCH (bz_b
, LARCH_SI_FTYPE_UV16QI
),
1203 LSX_BUILTIN_TEST_BRANCH (bz_h
, LARCH_SI_FTYPE_UV8HI
),
1204 LSX_BUILTIN_TEST_BRANCH (bz_w
, LARCH_SI_FTYPE_UV4SI
),
1205 LSX_BUILTIN_TEST_BRANCH (bz_d
, LARCH_SI_FTYPE_UV2DI
),
1206 LSX_BUILTIN_TEST_BRANCH (bz_v
, LARCH_SI_FTYPE_UV16QI
),
1207 LSX_BUILTIN_TEST_BRANCH (bnz_v
, LARCH_SI_FTYPE_UV16QI
),
1208 LSX_BUILTIN (vrepli_b
, LARCH_V16QI_FTYPE_HI
),
1209 LSX_BUILTIN (vrepli_h
, LARCH_V8HI_FTYPE_HI
),
1210 LSX_BUILTIN (vrepli_w
, LARCH_V4SI_FTYPE_HI
),
1211 LSX_BUILTIN (vrepli_d
, LARCH_V2DI_FTYPE_HI
),
1212 LSX_BUILTIN (vfcmp_caf_s
, LARCH_V4SI_FTYPE_V4SF_V4SF
),
1213 LSX_BUILTIN (vfcmp_caf_d
, LARCH_V2DI_FTYPE_V2DF_V2DF
),
1214 LSX_BUILTIN (vfcmp_cor_s
, LARCH_V4SI_FTYPE_V4SF_V4SF
),
1215 LSX_BUILTIN (vfcmp_cor_d
, LARCH_V2DI_FTYPE_V2DF_V2DF
),
1216 LSX_BUILTIN (vfcmp_cun_s
, LARCH_V4SI_FTYPE_V4SF_V4SF
),
1217 LSX_BUILTIN (vfcmp_cun_d
, LARCH_V2DI_FTYPE_V2DF_V2DF
),
1218 LSX_BUILTIN (vfcmp_cune_s
, LARCH_V4SI_FTYPE_V4SF_V4SF
),
1219 LSX_BUILTIN (vfcmp_cune_d
, LARCH_V2DI_FTYPE_V2DF_V2DF
),
1220 LSX_BUILTIN (vfcmp_cueq_s
, LARCH_V4SI_FTYPE_V4SF_V4SF
),
1221 LSX_BUILTIN (vfcmp_cueq_d
, LARCH_V2DI_FTYPE_V2DF_V2DF
),
1222 LSX_BUILTIN (vfcmp_ceq_s
, LARCH_V4SI_FTYPE_V4SF_V4SF
),
1223 LSX_BUILTIN (vfcmp_ceq_d
, LARCH_V2DI_FTYPE_V2DF_V2DF
),
1224 LSX_BUILTIN (vfcmp_cne_s
, LARCH_V4SI_FTYPE_V4SF_V4SF
),
1225 LSX_BUILTIN (vfcmp_cne_d
, LARCH_V2DI_FTYPE_V2DF_V2DF
),
1226 LSX_BUILTIN (vfcmp_clt_s
, LARCH_V4SI_FTYPE_V4SF_V4SF
),
1227 LSX_BUILTIN (vfcmp_clt_d
, LARCH_V2DI_FTYPE_V2DF_V2DF
),
1228 LSX_BUILTIN (vfcmp_cult_s
, LARCH_V4SI_FTYPE_V4SF_V4SF
),
1229 LSX_BUILTIN (vfcmp_cult_d
, LARCH_V2DI_FTYPE_V2DF_V2DF
),
1230 LSX_BUILTIN (vfcmp_cle_s
, LARCH_V4SI_FTYPE_V4SF_V4SF
),
1231 LSX_BUILTIN (vfcmp_cle_d
, LARCH_V2DI_FTYPE_V2DF_V2DF
),
1232 LSX_BUILTIN (vfcmp_cule_s
, LARCH_V4SI_FTYPE_V4SF_V4SF
),
1233 LSX_BUILTIN (vfcmp_cule_d
, LARCH_V2DI_FTYPE_V2DF_V2DF
),
1234 LSX_BUILTIN (vfcmp_saf_s
, LARCH_V4SI_FTYPE_V4SF_V4SF
),
1235 LSX_BUILTIN (vfcmp_saf_d
, LARCH_V2DI_FTYPE_V2DF_V2DF
),
1236 LSX_BUILTIN (vfcmp_sor_s
, LARCH_V4SI_FTYPE_V4SF_V4SF
),
1237 LSX_BUILTIN (vfcmp_sor_d
, LARCH_V2DI_FTYPE_V2DF_V2DF
),
1238 LSX_BUILTIN (vfcmp_sun_s
, LARCH_V4SI_FTYPE_V4SF_V4SF
),
1239 LSX_BUILTIN (vfcmp_sun_d
, LARCH_V2DI_FTYPE_V2DF_V2DF
),
1240 LSX_BUILTIN (vfcmp_sune_s
, LARCH_V4SI_FTYPE_V4SF_V4SF
),
1241 LSX_BUILTIN (vfcmp_sune_d
, LARCH_V2DI_FTYPE_V2DF_V2DF
),
1242 LSX_BUILTIN (vfcmp_sueq_s
, LARCH_V4SI_FTYPE_V4SF_V4SF
),
1243 LSX_BUILTIN (vfcmp_sueq_d
, LARCH_V2DI_FTYPE_V2DF_V2DF
),
1244 LSX_BUILTIN (vfcmp_seq_s
, LARCH_V4SI_FTYPE_V4SF_V4SF
),
1245 LSX_BUILTIN (vfcmp_seq_d
, LARCH_V2DI_FTYPE_V2DF_V2DF
),
1246 LSX_BUILTIN (vfcmp_sne_s
, LARCH_V4SI_FTYPE_V4SF_V4SF
),
1247 LSX_BUILTIN (vfcmp_sne_d
, LARCH_V2DI_FTYPE_V2DF_V2DF
),
1248 LSX_BUILTIN (vfcmp_slt_s
, LARCH_V4SI_FTYPE_V4SF_V4SF
),
1249 LSX_BUILTIN (vfcmp_slt_d
, LARCH_V2DI_FTYPE_V2DF_V2DF
),
1250 LSX_BUILTIN (vfcmp_sult_s
, LARCH_V4SI_FTYPE_V4SF_V4SF
),
1251 LSX_BUILTIN (vfcmp_sult_d
, LARCH_V2DI_FTYPE_V2DF_V2DF
),
1252 LSX_BUILTIN (vfcmp_sle_s
, LARCH_V4SI_FTYPE_V4SF_V4SF
),
1253 LSX_BUILTIN (vfcmp_sle_d
, LARCH_V2DI_FTYPE_V2DF_V2DF
),
1254 LSX_BUILTIN (vfcmp_sule_s
, LARCH_V4SI_FTYPE_V4SF_V4SF
),
1255 LSX_BUILTIN (vfcmp_sule_d
, LARCH_V2DI_FTYPE_V2DF_V2DF
),
1256 LSX_BUILTIN (vfadd_s
, LARCH_V4SF_FTYPE_V4SF_V4SF
),
1257 LSX_BUILTIN (vfadd_d
, LARCH_V2DF_FTYPE_V2DF_V2DF
),
1258 LSX_BUILTIN (vfsub_s
, LARCH_V4SF_FTYPE_V4SF_V4SF
),
1259 LSX_BUILTIN (vfsub_d
, LARCH_V2DF_FTYPE_V2DF_V2DF
),
1260 LSX_BUILTIN (vfmul_s
, LARCH_V4SF_FTYPE_V4SF_V4SF
),
1261 LSX_BUILTIN (vfmul_d
, LARCH_V2DF_FTYPE_V2DF_V2DF
),
1262 LSX_BUILTIN (vfdiv_s
, LARCH_V4SF_FTYPE_V4SF_V4SF
),
1263 LSX_BUILTIN (vfdiv_d
, LARCH_V2DF_FTYPE_V2DF_V2DF
),
1264 LSX_BUILTIN (vfcvt_h_s
, LARCH_V8HI_FTYPE_V4SF_V4SF
),
1265 LSX_BUILTIN (vfcvt_s_d
, LARCH_V4SF_FTYPE_V2DF_V2DF
),
1266 LSX_BUILTIN (vfmin_s
, LARCH_V4SF_FTYPE_V4SF_V4SF
),
1267 LSX_BUILTIN (vfmin_d
, LARCH_V2DF_FTYPE_V2DF_V2DF
),
1268 LSX_BUILTIN (vfmina_s
, LARCH_V4SF_FTYPE_V4SF_V4SF
),
1269 LSX_BUILTIN (vfmina_d
, LARCH_V2DF_FTYPE_V2DF_V2DF
),
1270 LSX_BUILTIN (vfmax_s
, LARCH_V4SF_FTYPE_V4SF_V4SF
),
1271 LSX_BUILTIN (vfmax_d
, LARCH_V2DF_FTYPE_V2DF_V2DF
),
1272 LSX_BUILTIN (vfmaxa_s
, LARCH_V4SF_FTYPE_V4SF_V4SF
),
1273 LSX_BUILTIN (vfmaxa_d
, LARCH_V2DF_FTYPE_V2DF_V2DF
),
1274 LSX_BUILTIN (vfclass_s
, LARCH_V4SI_FTYPE_V4SF
),
1275 LSX_BUILTIN (vfclass_d
, LARCH_V2DI_FTYPE_V2DF
),
1276 LSX_BUILTIN (vfsqrt_s
, LARCH_V4SF_FTYPE_V4SF
),
1277 LSX_BUILTIN (vfsqrt_d
, LARCH_V2DF_FTYPE_V2DF
),
1278 LSX_BUILTIN (vfrecip_s
, LARCH_V4SF_FTYPE_V4SF
),
1279 LSX_BUILTIN (vfrecip_d
, LARCH_V2DF_FTYPE_V2DF
),
1280 LSX_BUILTIN (vfrint_s
, LARCH_V4SF_FTYPE_V4SF
),
1281 LSX_BUILTIN (vfrint_d
, LARCH_V2DF_FTYPE_V2DF
),
1282 LSX_BUILTIN (vfrsqrt_s
, LARCH_V4SF_FTYPE_V4SF
),
1283 LSX_BUILTIN (vfrsqrt_d
, LARCH_V2DF_FTYPE_V2DF
),
1284 LSX_BUILTIN (vflogb_s
, LARCH_V4SF_FTYPE_V4SF
),
1285 LSX_BUILTIN (vflogb_d
, LARCH_V2DF_FTYPE_V2DF
),
1286 LSX_BUILTIN (vfcvth_s_h
, LARCH_V4SF_FTYPE_V8HI
),
1287 LSX_BUILTIN (vfcvth_d_s
, LARCH_V2DF_FTYPE_V4SF
),
1288 LSX_BUILTIN (vfcvtl_s_h
, LARCH_V4SF_FTYPE_V8HI
),
1289 LSX_BUILTIN (vfcvtl_d_s
, LARCH_V2DF_FTYPE_V4SF
),
1290 LSX_BUILTIN (vftint_w_s
, LARCH_V4SI_FTYPE_V4SF
),
1291 LSX_BUILTIN (vftint_l_d
, LARCH_V2DI_FTYPE_V2DF
),
1292 LSX_BUILTIN (vftint_wu_s
, LARCH_UV4SI_FTYPE_V4SF
),
1293 LSX_BUILTIN (vftint_lu_d
, LARCH_UV2DI_FTYPE_V2DF
),
1294 LSX_BUILTIN (vftintrz_w_s
, LARCH_V4SI_FTYPE_V4SF
),
1295 LSX_BUILTIN (vftintrz_l_d
, LARCH_V2DI_FTYPE_V2DF
),
1296 LSX_BUILTIN (vftintrz_wu_s
, LARCH_UV4SI_FTYPE_V4SF
),
1297 LSX_BUILTIN (vftintrz_lu_d
, LARCH_UV2DI_FTYPE_V2DF
),
1298 LSX_BUILTIN (vffint_s_w
, LARCH_V4SF_FTYPE_V4SI
),
1299 LSX_BUILTIN (vffint_d_l
, LARCH_V2DF_FTYPE_V2DI
),
1300 LSX_BUILTIN (vffint_s_wu
, LARCH_V4SF_FTYPE_UV4SI
),
1301 LSX_BUILTIN (vffint_d_lu
, LARCH_V2DF_FTYPE_UV2DI
),
1303 LSX_BUILTIN (vandn_v
, LARCH_UV16QI_FTYPE_UV16QI_UV16QI
),
1304 LSX_BUILTIN (vneg_b
, LARCH_V16QI_FTYPE_V16QI
),
1305 LSX_BUILTIN (vneg_h
, LARCH_V8HI_FTYPE_V8HI
),
1306 LSX_BUILTIN (vneg_w
, LARCH_V4SI_FTYPE_V4SI
),
1307 LSX_BUILTIN (vneg_d
, LARCH_V2DI_FTYPE_V2DI
),
1308 LSX_BUILTIN (vmuh_b
, LARCH_V16QI_FTYPE_V16QI_V16QI
),
1309 LSX_BUILTIN (vmuh_h
, LARCH_V8HI_FTYPE_V8HI_V8HI
),
1310 LSX_BUILTIN (vmuh_w
, LARCH_V4SI_FTYPE_V4SI_V4SI
),
1311 LSX_BUILTIN (vmuh_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
1312 LSX_BUILTIN (vmuh_bu
, LARCH_UV16QI_FTYPE_UV16QI_UV16QI
),
1313 LSX_BUILTIN (vmuh_hu
, LARCH_UV8HI_FTYPE_UV8HI_UV8HI
),
1314 LSX_BUILTIN (vmuh_wu
, LARCH_UV4SI_FTYPE_UV4SI_UV4SI
),
1315 LSX_BUILTIN (vmuh_du
, LARCH_UV2DI_FTYPE_UV2DI_UV2DI
),
1316 LSX_BUILTIN (vsllwil_h_b
, LARCH_V8HI_FTYPE_V16QI_UQI
),
1317 LSX_BUILTIN (vsllwil_w_h
, LARCH_V4SI_FTYPE_V8HI_UQI
),
1318 LSX_BUILTIN (vsllwil_d_w
, LARCH_V2DI_FTYPE_V4SI_UQI
),
1319 LSX_BUILTIN (vsllwil_hu_bu
, LARCH_UV8HI_FTYPE_UV16QI_UQI
),
1320 LSX_BUILTIN (vsllwil_wu_hu
, LARCH_UV4SI_FTYPE_UV8HI_UQI
),
1321 LSX_BUILTIN (vsllwil_du_wu
, LARCH_UV2DI_FTYPE_UV4SI_UQI
),
1322 LSX_BUILTIN (vsran_b_h
, LARCH_V16QI_FTYPE_V8HI_V8HI
),
1323 LSX_BUILTIN (vsran_h_w
, LARCH_V8HI_FTYPE_V4SI_V4SI
),
1324 LSX_BUILTIN (vsran_w_d
, LARCH_V4SI_FTYPE_V2DI_V2DI
),
1325 LSX_BUILTIN (vssran_b_h
, LARCH_V16QI_FTYPE_V8HI_V8HI
),
1326 LSX_BUILTIN (vssran_h_w
, LARCH_V8HI_FTYPE_V4SI_V4SI
),
1327 LSX_BUILTIN (vssran_w_d
, LARCH_V4SI_FTYPE_V2DI_V2DI
),
1328 LSX_BUILTIN (vssran_bu_h
, LARCH_UV16QI_FTYPE_UV8HI_UV8HI
),
1329 LSX_BUILTIN (vssran_hu_w
, LARCH_UV8HI_FTYPE_UV4SI_UV4SI
),
1330 LSX_BUILTIN (vssran_wu_d
, LARCH_UV4SI_FTYPE_UV2DI_UV2DI
),
1331 LSX_BUILTIN (vsrarn_b_h
, LARCH_V16QI_FTYPE_V8HI_V8HI
),
1332 LSX_BUILTIN (vsrarn_h_w
, LARCH_V8HI_FTYPE_V4SI_V4SI
),
1333 LSX_BUILTIN (vsrarn_w_d
, LARCH_V4SI_FTYPE_V2DI_V2DI
),
1334 LSX_BUILTIN (vssrarn_b_h
, LARCH_V16QI_FTYPE_V8HI_V8HI
),
1335 LSX_BUILTIN (vssrarn_h_w
, LARCH_V8HI_FTYPE_V4SI_V4SI
),
1336 LSX_BUILTIN (vssrarn_w_d
, LARCH_V4SI_FTYPE_V2DI_V2DI
),
1337 LSX_BUILTIN (vssrarn_bu_h
, LARCH_UV16QI_FTYPE_UV8HI_UV8HI
),
1338 LSX_BUILTIN (vssrarn_hu_w
, LARCH_UV8HI_FTYPE_UV4SI_UV4SI
),
1339 LSX_BUILTIN (vssrarn_wu_d
, LARCH_UV4SI_FTYPE_UV2DI_UV2DI
),
1340 LSX_BUILTIN (vsrln_b_h
, LARCH_V16QI_FTYPE_V8HI_V8HI
),
1341 LSX_BUILTIN (vsrln_h_w
, LARCH_V8HI_FTYPE_V4SI_V4SI
),
1342 LSX_BUILTIN (vsrln_w_d
, LARCH_V4SI_FTYPE_V2DI_V2DI
),
1343 LSX_BUILTIN (vssrln_bu_h
, LARCH_UV16QI_FTYPE_UV8HI_UV8HI
),
1344 LSX_BUILTIN (vssrln_hu_w
, LARCH_UV8HI_FTYPE_UV4SI_UV4SI
),
1345 LSX_BUILTIN (vssrln_wu_d
, LARCH_UV4SI_FTYPE_UV2DI_UV2DI
),
1346 LSX_BUILTIN (vsrlrn_b_h
, LARCH_V16QI_FTYPE_V8HI_V8HI
),
1347 LSX_BUILTIN (vsrlrn_h_w
, LARCH_V8HI_FTYPE_V4SI_V4SI
),
1348 LSX_BUILTIN (vsrlrn_w_d
, LARCH_V4SI_FTYPE_V2DI_V2DI
),
1349 LSX_BUILTIN (vssrlrn_bu_h
, LARCH_UV16QI_FTYPE_UV8HI_UV8HI
),
1350 LSX_BUILTIN (vssrlrn_hu_w
, LARCH_UV8HI_FTYPE_UV4SI_UV4SI
),
1351 LSX_BUILTIN (vssrlrn_wu_d
, LARCH_UV4SI_FTYPE_UV2DI_UV2DI
),
1352 LSX_BUILTIN (vfrstpi_b
, LARCH_V16QI_FTYPE_V16QI_V16QI_UQI
),
1353 LSX_BUILTIN (vfrstpi_h
, LARCH_V8HI_FTYPE_V8HI_V8HI_UQI
),
1354 LSX_BUILTIN (vfrstp_b
, LARCH_V16QI_FTYPE_V16QI_V16QI_V16QI
),
1355 LSX_BUILTIN (vfrstp_h
, LARCH_V8HI_FTYPE_V8HI_V8HI_V8HI
),
1356 LSX_BUILTIN (vshuf4i_d
, LARCH_V2DI_FTYPE_V2DI_V2DI_USI
),
1357 LSX_BUILTIN (vbsrl_v
, LARCH_V16QI_FTYPE_V16QI_UQI
),
1358 LSX_BUILTIN (vbsll_v
, LARCH_V16QI_FTYPE_V16QI_UQI
),
1359 LSX_BUILTIN (vextrins_b
, LARCH_V16QI_FTYPE_V16QI_V16QI_USI
),
1360 LSX_BUILTIN (vextrins_h
, LARCH_V8HI_FTYPE_V8HI_V8HI_USI
),
1361 LSX_BUILTIN (vextrins_w
, LARCH_V4SI_FTYPE_V4SI_V4SI_USI
),
1362 LSX_BUILTIN (vextrins_d
, LARCH_V2DI_FTYPE_V2DI_V2DI_USI
),
1363 LSX_BUILTIN (vmskltz_b
, LARCH_V16QI_FTYPE_V16QI
),
1364 LSX_BUILTIN (vmskltz_h
, LARCH_V8HI_FTYPE_V8HI
),
1365 LSX_BUILTIN (vmskltz_w
, LARCH_V4SI_FTYPE_V4SI
),
1366 LSX_BUILTIN (vmskltz_d
, LARCH_V2DI_FTYPE_V2DI
),
1367 LSX_BUILTIN (vsigncov_b
, LARCH_V16QI_FTYPE_V16QI_V16QI
),
1368 LSX_BUILTIN (vsigncov_h
, LARCH_V8HI_FTYPE_V8HI_V8HI
),
1369 LSX_BUILTIN (vsigncov_w
, LARCH_V4SI_FTYPE_V4SI_V4SI
),
1370 LSX_BUILTIN (vsigncov_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
1371 LSX_BUILTIN (vfmadd_s
, LARCH_V4SF_FTYPE_V4SF_V4SF_V4SF
),
1372 LSX_BUILTIN (vfmadd_d
, LARCH_V2DF_FTYPE_V2DF_V2DF_V2DF
),
1373 LSX_BUILTIN (vfmsub_s
, LARCH_V4SF_FTYPE_V4SF_V4SF_V4SF
),
1374 LSX_BUILTIN (vfmsub_d
, LARCH_V2DF_FTYPE_V2DF_V2DF_V2DF
),
1375 LSX_BUILTIN (vfnmadd_s
, LARCH_V4SF_FTYPE_V4SF_V4SF_V4SF
),
1376 LSX_BUILTIN (vfnmadd_d
, LARCH_V2DF_FTYPE_V2DF_V2DF_V2DF
),
1377 LSX_BUILTIN (vfnmsub_s
, LARCH_V4SF_FTYPE_V4SF_V4SF_V4SF
),
1378 LSX_BUILTIN (vfnmsub_d
, LARCH_V2DF_FTYPE_V2DF_V2DF_V2DF
),
1379 LSX_BUILTIN (vftintrne_w_s
, LARCH_V4SI_FTYPE_V4SF
),
1380 LSX_BUILTIN (vftintrne_l_d
, LARCH_V2DI_FTYPE_V2DF
),
1381 LSX_BUILTIN (vftintrp_w_s
, LARCH_V4SI_FTYPE_V4SF
),
1382 LSX_BUILTIN (vftintrp_l_d
, LARCH_V2DI_FTYPE_V2DF
),
1383 LSX_BUILTIN (vftintrm_w_s
, LARCH_V4SI_FTYPE_V4SF
),
1384 LSX_BUILTIN (vftintrm_l_d
, LARCH_V2DI_FTYPE_V2DF
),
1385 LSX_BUILTIN (vftint_w_d
, LARCH_V4SI_FTYPE_V2DF_V2DF
),
1386 LSX_BUILTIN (vffint_s_l
, LARCH_V4SF_FTYPE_V2DI_V2DI
),
1387 LSX_BUILTIN (vftintrz_w_d
, LARCH_V4SI_FTYPE_V2DF_V2DF
),
1388 LSX_BUILTIN (vftintrp_w_d
, LARCH_V4SI_FTYPE_V2DF_V2DF
),
1389 LSX_BUILTIN (vftintrm_w_d
, LARCH_V4SI_FTYPE_V2DF_V2DF
),
1390 LSX_BUILTIN (vftintrne_w_d
, LARCH_V4SI_FTYPE_V2DF_V2DF
),
1391 LSX_BUILTIN (vftintl_l_s
, LARCH_V2DI_FTYPE_V4SF
),
1392 LSX_BUILTIN (vftinth_l_s
, LARCH_V2DI_FTYPE_V4SF
),
1393 LSX_BUILTIN (vffinth_d_w
, LARCH_V2DF_FTYPE_V4SI
),
1394 LSX_BUILTIN (vffintl_d_w
, LARCH_V2DF_FTYPE_V4SI
),
1395 LSX_BUILTIN (vftintrzl_l_s
, LARCH_V2DI_FTYPE_V4SF
),
1396 LSX_BUILTIN (vftintrzh_l_s
, LARCH_V2DI_FTYPE_V4SF
),
1397 LSX_BUILTIN (vftintrpl_l_s
, LARCH_V2DI_FTYPE_V4SF
),
1398 LSX_BUILTIN (vftintrph_l_s
, LARCH_V2DI_FTYPE_V4SF
),
1399 LSX_BUILTIN (vftintrml_l_s
, LARCH_V2DI_FTYPE_V4SF
),
1400 LSX_BUILTIN (vftintrmh_l_s
, LARCH_V2DI_FTYPE_V4SF
),
1401 LSX_BUILTIN (vftintrnel_l_s
, LARCH_V2DI_FTYPE_V4SF
),
1402 LSX_BUILTIN (vftintrneh_l_s
, LARCH_V2DI_FTYPE_V4SF
),
1403 LSX_BUILTIN (vfrintrne_s
, LARCH_V4SF_FTYPE_V4SF
),
1404 LSX_BUILTIN (vfrintrne_d
, LARCH_V2DF_FTYPE_V2DF
),
1405 LSX_BUILTIN (vfrintrz_s
, LARCH_V4SF_FTYPE_V4SF
),
1406 LSX_BUILTIN (vfrintrz_d
, LARCH_V2DF_FTYPE_V2DF
),
1407 LSX_BUILTIN (vfrintrp_s
, LARCH_V4SF_FTYPE_V4SF
),
1408 LSX_BUILTIN (vfrintrp_d
, LARCH_V2DF_FTYPE_V2DF
),
1409 LSX_BUILTIN (vfrintrm_s
, LARCH_V4SF_FTYPE_V4SF
),
1410 LSX_BUILTIN (vfrintrm_d
, LARCH_V2DF_FTYPE_V2DF
),
1411 LSX_NO_TARGET_BUILTIN (vstelm_b
, LARCH_VOID_FTYPE_V16QI_CVPOINTER_SI_UQI
),
1412 LSX_NO_TARGET_BUILTIN (vstelm_h
, LARCH_VOID_FTYPE_V8HI_CVPOINTER_SI_UQI
),
1413 LSX_NO_TARGET_BUILTIN (vstelm_w
, LARCH_VOID_FTYPE_V4SI_CVPOINTER_SI_UQI
),
1414 LSX_NO_TARGET_BUILTIN (vstelm_d
, LARCH_VOID_FTYPE_V2DI_CVPOINTER_SI_UQI
),
1415 LSX_BUILTIN (vaddwev_d_w
, LARCH_V2DI_FTYPE_V4SI_V4SI
),
1416 LSX_BUILTIN (vaddwev_w_h
, LARCH_V4SI_FTYPE_V8HI_V8HI
),
1417 LSX_BUILTIN (vaddwev_h_b
, LARCH_V8HI_FTYPE_V16QI_V16QI
),
1418 LSX_BUILTIN (vaddwod_d_w
, LARCH_V2DI_FTYPE_V4SI_V4SI
),
1419 LSX_BUILTIN (vaddwod_w_h
, LARCH_V4SI_FTYPE_V8HI_V8HI
),
1420 LSX_BUILTIN (vaddwod_h_b
, LARCH_V8HI_FTYPE_V16QI_V16QI
),
1421 LSX_BUILTIN (vaddwev_d_wu
, LARCH_V2DI_FTYPE_UV4SI_UV4SI
),
1422 LSX_BUILTIN (vaddwev_w_hu
, LARCH_V4SI_FTYPE_UV8HI_UV8HI
),
1423 LSX_BUILTIN (vaddwev_h_bu
, LARCH_V8HI_FTYPE_UV16QI_UV16QI
),
1424 LSX_BUILTIN (vaddwod_d_wu
, LARCH_V2DI_FTYPE_UV4SI_UV4SI
),
1425 LSX_BUILTIN (vaddwod_w_hu
, LARCH_V4SI_FTYPE_UV8HI_UV8HI
),
1426 LSX_BUILTIN (vaddwod_h_bu
, LARCH_V8HI_FTYPE_UV16QI_UV16QI
),
1427 LSX_BUILTIN (vaddwev_d_wu_w
, LARCH_V2DI_FTYPE_UV4SI_V4SI
),
1428 LSX_BUILTIN (vaddwev_w_hu_h
, LARCH_V4SI_FTYPE_UV8HI_V8HI
),
1429 LSX_BUILTIN (vaddwev_h_bu_b
, LARCH_V8HI_FTYPE_UV16QI_V16QI
),
1430 LSX_BUILTIN (vaddwod_d_wu_w
, LARCH_V2DI_FTYPE_UV4SI_V4SI
),
1431 LSX_BUILTIN (vaddwod_w_hu_h
, LARCH_V4SI_FTYPE_UV8HI_V8HI
),
1432 LSX_BUILTIN (vaddwod_h_bu_b
, LARCH_V8HI_FTYPE_UV16QI_V16QI
),
1433 LSX_BUILTIN (vsubwev_d_w
, LARCH_V2DI_FTYPE_V4SI_V4SI
),
1434 LSX_BUILTIN (vsubwev_w_h
, LARCH_V4SI_FTYPE_V8HI_V8HI
),
1435 LSX_BUILTIN (vsubwev_h_b
, LARCH_V8HI_FTYPE_V16QI_V16QI
),
1436 LSX_BUILTIN (vsubwod_d_w
, LARCH_V2DI_FTYPE_V4SI_V4SI
),
1437 LSX_BUILTIN (vsubwod_w_h
, LARCH_V4SI_FTYPE_V8HI_V8HI
),
1438 LSX_BUILTIN (vsubwod_h_b
, LARCH_V8HI_FTYPE_V16QI_V16QI
),
1439 LSX_BUILTIN (vsubwev_d_wu
, LARCH_V2DI_FTYPE_UV4SI_UV4SI
),
1440 LSX_BUILTIN (vsubwev_w_hu
, LARCH_V4SI_FTYPE_UV8HI_UV8HI
),
1441 LSX_BUILTIN (vsubwev_h_bu
, LARCH_V8HI_FTYPE_UV16QI_UV16QI
),
1442 LSX_BUILTIN (vsubwod_d_wu
, LARCH_V2DI_FTYPE_UV4SI_UV4SI
),
1443 LSX_BUILTIN (vsubwod_w_hu
, LARCH_V4SI_FTYPE_UV8HI_UV8HI
),
1444 LSX_BUILTIN (vsubwod_h_bu
, LARCH_V8HI_FTYPE_UV16QI_UV16QI
),
1445 LSX_BUILTIN (vaddwev_q_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
1446 LSX_BUILTIN (vaddwod_q_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
1447 LSX_BUILTIN (vaddwev_q_du
, LARCH_V2DI_FTYPE_UV2DI_UV2DI
),
1448 LSX_BUILTIN (vaddwod_q_du
, LARCH_V2DI_FTYPE_UV2DI_UV2DI
),
1449 LSX_BUILTIN (vsubwev_q_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
1450 LSX_BUILTIN (vsubwod_q_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
1451 LSX_BUILTIN (vsubwev_q_du
, LARCH_V2DI_FTYPE_UV2DI_UV2DI
),
1452 LSX_BUILTIN (vsubwod_q_du
, LARCH_V2DI_FTYPE_UV2DI_UV2DI
),
1453 LSX_BUILTIN (vaddwev_q_du_d
, LARCH_V2DI_FTYPE_UV2DI_V2DI
),
1454 LSX_BUILTIN (vaddwod_q_du_d
, LARCH_V2DI_FTYPE_UV2DI_V2DI
),
1456 LSX_BUILTIN (vmulwev_d_w
, LARCH_V2DI_FTYPE_V4SI_V4SI
),
1457 LSX_BUILTIN (vmulwev_w_h
, LARCH_V4SI_FTYPE_V8HI_V8HI
),
1458 LSX_BUILTIN (vmulwev_h_b
, LARCH_V8HI_FTYPE_V16QI_V16QI
),
1459 LSX_BUILTIN (vmulwod_d_w
, LARCH_V2DI_FTYPE_V4SI_V4SI
),
1460 LSX_BUILTIN (vmulwod_w_h
, LARCH_V4SI_FTYPE_V8HI_V8HI
),
1461 LSX_BUILTIN (vmulwod_h_b
, LARCH_V8HI_FTYPE_V16QI_V16QI
),
1462 LSX_BUILTIN (vmulwev_d_wu
, LARCH_V2DI_FTYPE_UV4SI_UV4SI
),
1463 LSX_BUILTIN (vmulwev_w_hu
, LARCH_V4SI_FTYPE_UV8HI_UV8HI
),
1464 LSX_BUILTIN (vmulwev_h_bu
, LARCH_V8HI_FTYPE_UV16QI_UV16QI
),
1465 LSX_BUILTIN (vmulwod_d_wu
, LARCH_V2DI_FTYPE_UV4SI_UV4SI
),
1466 LSX_BUILTIN (vmulwod_w_hu
, LARCH_V4SI_FTYPE_UV8HI_UV8HI
),
1467 LSX_BUILTIN (vmulwod_h_bu
, LARCH_V8HI_FTYPE_UV16QI_UV16QI
),
1468 LSX_BUILTIN (vmulwev_d_wu_w
, LARCH_V2DI_FTYPE_UV4SI_V4SI
),
1469 LSX_BUILTIN (vmulwev_w_hu_h
, LARCH_V4SI_FTYPE_UV8HI_V8HI
),
1470 LSX_BUILTIN (vmulwev_h_bu_b
, LARCH_V8HI_FTYPE_UV16QI_V16QI
),
1471 LSX_BUILTIN (vmulwod_d_wu_w
, LARCH_V2DI_FTYPE_UV4SI_V4SI
),
1472 LSX_BUILTIN (vmulwod_w_hu_h
, LARCH_V4SI_FTYPE_UV8HI_V8HI
),
1473 LSX_BUILTIN (vmulwod_h_bu_b
, LARCH_V8HI_FTYPE_UV16QI_V16QI
),
1474 LSX_BUILTIN (vmulwev_q_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
1475 LSX_BUILTIN (vmulwod_q_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
1476 LSX_BUILTIN (vmulwev_q_du
, LARCH_V2DI_FTYPE_UV2DI_UV2DI
),
1477 LSX_BUILTIN (vmulwod_q_du
, LARCH_V2DI_FTYPE_UV2DI_UV2DI
),
1478 LSX_BUILTIN (vmulwev_q_du_d
, LARCH_V2DI_FTYPE_UV2DI_V2DI
),
1479 LSX_BUILTIN (vmulwod_q_du_d
, LARCH_V2DI_FTYPE_UV2DI_V2DI
),
1480 LSX_BUILTIN (vhaddw_q_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
1481 LSX_BUILTIN (vhaddw_qu_du
, LARCH_UV2DI_FTYPE_UV2DI_UV2DI
),
1482 LSX_BUILTIN (vhsubw_q_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
1483 LSX_BUILTIN (vhsubw_qu_du
, LARCH_UV2DI_FTYPE_UV2DI_UV2DI
),
1484 LSX_BUILTIN (vmaddwev_d_w
, LARCH_V2DI_FTYPE_V2DI_V4SI_V4SI
),
1485 LSX_BUILTIN (vmaddwev_w_h
, LARCH_V4SI_FTYPE_V4SI_V8HI_V8HI
),
1486 LSX_BUILTIN (vmaddwev_h_b
, LARCH_V8HI_FTYPE_V8HI_V16QI_V16QI
),
1487 LSX_BUILTIN (vmaddwev_d_wu
, LARCH_UV2DI_FTYPE_UV2DI_UV4SI_UV4SI
),
1488 LSX_BUILTIN (vmaddwev_w_hu
, LARCH_UV4SI_FTYPE_UV4SI_UV8HI_UV8HI
),
1489 LSX_BUILTIN (vmaddwev_h_bu
, LARCH_UV8HI_FTYPE_UV8HI_UV16QI_UV16QI
),
1490 LSX_BUILTIN (vmaddwod_d_w
, LARCH_V2DI_FTYPE_V2DI_V4SI_V4SI
),
1491 LSX_BUILTIN (vmaddwod_w_h
, LARCH_V4SI_FTYPE_V4SI_V8HI_V8HI
),
1492 LSX_BUILTIN (vmaddwod_h_b
, LARCH_V8HI_FTYPE_V8HI_V16QI_V16QI
),
1493 LSX_BUILTIN (vmaddwod_d_wu
, LARCH_UV2DI_FTYPE_UV2DI_UV4SI_UV4SI
),
1494 LSX_BUILTIN (vmaddwod_w_hu
, LARCH_UV4SI_FTYPE_UV4SI_UV8HI_UV8HI
),
1495 LSX_BUILTIN (vmaddwod_h_bu
, LARCH_UV8HI_FTYPE_UV8HI_UV16QI_UV16QI
),
1496 LSX_BUILTIN (vmaddwev_d_wu_w
, LARCH_V2DI_FTYPE_V2DI_UV4SI_V4SI
),
1497 LSX_BUILTIN (vmaddwev_w_hu_h
, LARCH_V4SI_FTYPE_V4SI_UV8HI_V8HI
),
1498 LSX_BUILTIN (vmaddwev_h_bu_b
, LARCH_V8HI_FTYPE_V8HI_UV16QI_V16QI
),
1499 LSX_BUILTIN (vmaddwod_d_wu_w
, LARCH_V2DI_FTYPE_V2DI_UV4SI_V4SI
),
1500 LSX_BUILTIN (vmaddwod_w_hu_h
, LARCH_V4SI_FTYPE_V4SI_UV8HI_V8HI
),
1501 LSX_BUILTIN (vmaddwod_h_bu_b
, LARCH_V8HI_FTYPE_V8HI_UV16QI_V16QI
),
1502 LSX_BUILTIN (vmaddwev_q_d
, LARCH_V2DI_FTYPE_V2DI_V2DI_V2DI
),
1503 LSX_BUILTIN (vmaddwod_q_d
, LARCH_V2DI_FTYPE_V2DI_V2DI_V2DI
),
1504 LSX_BUILTIN (vmaddwev_q_du
, LARCH_UV2DI_FTYPE_UV2DI_UV2DI_UV2DI
),
1505 LSX_BUILTIN (vmaddwod_q_du
, LARCH_UV2DI_FTYPE_UV2DI_UV2DI_UV2DI
),
1506 LSX_BUILTIN (vmaddwev_q_du_d
, LARCH_V2DI_FTYPE_V2DI_UV2DI_V2DI
),
1507 LSX_BUILTIN (vmaddwod_q_du_d
, LARCH_V2DI_FTYPE_V2DI_UV2DI_V2DI
),
1508 LSX_BUILTIN (vrotr_b
, LARCH_V16QI_FTYPE_V16QI_V16QI
),
1509 LSX_BUILTIN (vrotr_h
, LARCH_V8HI_FTYPE_V8HI_V8HI
),
1510 LSX_BUILTIN (vrotr_w
, LARCH_V4SI_FTYPE_V4SI_V4SI
),
1511 LSX_BUILTIN (vrotr_d
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
1512 LSX_BUILTIN (vadd_q
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
1513 LSX_BUILTIN (vsub_q
, LARCH_V2DI_FTYPE_V2DI_V2DI
),
1514 LSX_BUILTIN (vldrepl_b
, LARCH_V16QI_FTYPE_CVPOINTER_SI
),
1515 LSX_BUILTIN (vldrepl_h
, LARCH_V8HI_FTYPE_CVPOINTER_SI
),
1516 LSX_BUILTIN (vldrepl_w
, LARCH_V4SI_FTYPE_CVPOINTER_SI
),
1517 LSX_BUILTIN (vldrepl_d
, LARCH_V2DI_FTYPE_CVPOINTER_SI
),
1519 LSX_BUILTIN (vmskgez_b
, LARCH_V16QI_FTYPE_V16QI
),
1520 LSX_BUILTIN (vmsknz_b
, LARCH_V16QI_FTYPE_V16QI
),
1521 LSX_BUILTIN (vexth_h_b
, LARCH_V8HI_FTYPE_V16QI
),
1522 LSX_BUILTIN (vexth_w_h
, LARCH_V4SI_FTYPE_V8HI
),
1523 LSX_BUILTIN (vexth_d_w
, LARCH_V2DI_FTYPE_V4SI
),
1524 LSX_BUILTIN (vexth_q_d
, LARCH_V2DI_FTYPE_V2DI
),
1525 LSX_BUILTIN (vexth_hu_bu
, LARCH_UV8HI_FTYPE_UV16QI
),
1526 LSX_BUILTIN (vexth_wu_hu
, LARCH_UV4SI_FTYPE_UV8HI
),
1527 LSX_BUILTIN (vexth_du_wu
, LARCH_UV2DI_FTYPE_UV4SI
),
1528 LSX_BUILTIN (vexth_qu_du
, LARCH_UV2DI_FTYPE_UV2DI
),
1529 LSX_BUILTIN (vrotri_b
, LARCH_V16QI_FTYPE_V16QI_UQI
),
1530 LSX_BUILTIN (vrotri_h
, LARCH_V8HI_FTYPE_V8HI_UQI
),
1531 LSX_BUILTIN (vrotri_w
, LARCH_V4SI_FTYPE_V4SI_UQI
),
1532 LSX_BUILTIN (vrotri_d
, LARCH_V2DI_FTYPE_V2DI_UQI
),
1533 LSX_BUILTIN (vextl_q_d
, LARCH_V2DI_FTYPE_V2DI
),
1534 LSX_BUILTIN (vsrlni_b_h
, LARCH_V16QI_FTYPE_V16QI_V16QI_USI
),
1535 LSX_BUILTIN (vsrlni_h_w
, LARCH_V8HI_FTYPE_V8HI_V8HI_USI
),
1536 LSX_BUILTIN (vsrlni_w_d
, LARCH_V4SI_FTYPE_V4SI_V4SI_USI
),
1537 LSX_BUILTIN (vsrlni_d_q
, LARCH_V2DI_FTYPE_V2DI_V2DI_USI
),
1538 LSX_BUILTIN (vsrlrni_b_h
, LARCH_V16QI_FTYPE_V16QI_V16QI_USI
),
1539 LSX_BUILTIN (vsrlrni_h_w
, LARCH_V8HI_FTYPE_V8HI_V8HI_USI
),
1540 LSX_BUILTIN (vsrlrni_w_d
, LARCH_V4SI_FTYPE_V4SI_V4SI_USI
),
1541 LSX_BUILTIN (vsrlrni_d_q
, LARCH_V2DI_FTYPE_V2DI_V2DI_USI
),
1542 LSX_BUILTIN (vssrlni_b_h
, LARCH_V16QI_FTYPE_V16QI_V16QI_USI
),
1543 LSX_BUILTIN (vssrlni_h_w
, LARCH_V8HI_FTYPE_V8HI_V8HI_USI
),
1544 LSX_BUILTIN (vssrlni_w_d
, LARCH_V4SI_FTYPE_V4SI_V4SI_USI
),
1545 LSX_BUILTIN (vssrlni_d_q
, LARCH_V2DI_FTYPE_V2DI_V2DI_USI
),
1546 LSX_BUILTIN (vssrlni_bu_h
, LARCH_UV16QI_FTYPE_UV16QI_V16QI_USI
),
1547 LSX_BUILTIN (vssrlni_hu_w
, LARCH_UV8HI_FTYPE_UV8HI_V8HI_USI
),
1548 LSX_BUILTIN (vssrlni_wu_d
, LARCH_UV4SI_FTYPE_UV4SI_V4SI_USI
),
1549 LSX_BUILTIN (vssrlni_du_q
, LARCH_UV2DI_FTYPE_UV2DI_V2DI_USI
),
1550 LSX_BUILTIN (vssrlrni_b_h
, LARCH_V16QI_FTYPE_V16QI_V16QI_USI
),
1551 LSX_BUILTIN (vssrlrni_h_w
, LARCH_V8HI_FTYPE_V8HI_V8HI_USI
),
1552 LSX_BUILTIN (vssrlrni_w_d
, LARCH_V4SI_FTYPE_V4SI_V4SI_USI
),
1553 LSX_BUILTIN (vssrlrni_d_q
, LARCH_V2DI_FTYPE_V2DI_V2DI_USI
),
1554 LSX_BUILTIN (vssrlrni_bu_h
, LARCH_UV16QI_FTYPE_UV16QI_V16QI_USI
),
1555 LSX_BUILTIN (vssrlrni_hu_w
, LARCH_UV8HI_FTYPE_UV8HI_V8HI_USI
),
1556 LSX_BUILTIN (vssrlrni_wu_d
, LARCH_UV4SI_FTYPE_UV4SI_V4SI_USI
),
1557 LSX_BUILTIN (vssrlrni_du_q
, LARCH_UV2DI_FTYPE_UV2DI_V2DI_USI
),
1558 LSX_BUILTIN (vsrani_b_h
, LARCH_V16QI_FTYPE_V16QI_V16QI_USI
),
1559 LSX_BUILTIN (vsrani_h_w
, LARCH_V8HI_FTYPE_V8HI_V8HI_USI
),
1560 LSX_BUILTIN (vsrani_w_d
, LARCH_V4SI_FTYPE_V4SI_V4SI_USI
),
1561 LSX_BUILTIN (vsrani_d_q
, LARCH_V2DI_FTYPE_V2DI_V2DI_USI
),
1562 LSX_BUILTIN (vsrarni_b_h
, LARCH_V16QI_FTYPE_V16QI_V16QI_USI
),
1563 LSX_BUILTIN (vsrarni_h_w
, LARCH_V8HI_FTYPE_V8HI_V8HI_USI
),
1564 LSX_BUILTIN (vsrarni_w_d
, LARCH_V4SI_FTYPE_V4SI_V4SI_USI
),
1565 LSX_BUILTIN (vsrarni_d_q
, LARCH_V2DI_FTYPE_V2DI_V2DI_USI
),
1566 LSX_BUILTIN (vssrani_b_h
, LARCH_V16QI_FTYPE_V16QI_V16QI_USI
),
1567 LSX_BUILTIN (vssrani_h_w
, LARCH_V8HI_FTYPE_V8HI_V8HI_USI
),
1568 LSX_BUILTIN (vssrani_w_d
, LARCH_V4SI_FTYPE_V4SI_V4SI_USI
),
1569 LSX_BUILTIN (vssrani_d_q
, LARCH_V2DI_FTYPE_V2DI_V2DI_USI
),
1570 LSX_BUILTIN (vssrani_bu_h
, LARCH_UV16QI_FTYPE_UV16QI_V16QI_USI
),
1571 LSX_BUILTIN (vssrani_hu_w
, LARCH_UV8HI_FTYPE_UV8HI_V8HI_USI
),
1572 LSX_BUILTIN (vssrani_wu_d
, LARCH_UV4SI_FTYPE_UV4SI_V4SI_USI
),
1573 LSX_BUILTIN (vssrani_du_q
, LARCH_UV2DI_FTYPE_UV2DI_V2DI_USI
),
1574 LSX_BUILTIN (vssrarni_b_h
, LARCH_V16QI_FTYPE_V16QI_V16QI_USI
),
1575 LSX_BUILTIN (vssrarni_h_w
, LARCH_V8HI_FTYPE_V8HI_V8HI_USI
),
1576 LSX_BUILTIN (vssrarni_w_d
, LARCH_V4SI_FTYPE_V4SI_V4SI_USI
),
1577 LSX_BUILTIN (vssrarni_d_q
, LARCH_V2DI_FTYPE_V2DI_V2DI_USI
),
1578 LSX_BUILTIN (vssrarni_bu_h
, LARCH_UV16QI_FTYPE_UV16QI_V16QI_USI
),
1579 LSX_BUILTIN (vssrarni_hu_w
, LARCH_UV8HI_FTYPE_UV8HI_V8HI_USI
),
1580 LSX_BUILTIN (vssrarni_wu_d
, LARCH_UV4SI_FTYPE_UV4SI_V4SI_USI
),
1581 LSX_BUILTIN (vssrarni_du_q
, LARCH_UV2DI_FTYPE_UV2DI_V2DI_USI
),
1582 LSX_BUILTIN (vpermi_w
, LARCH_V4SI_FTYPE_V4SI_V4SI_USI
),
1583 LSX_BUILTIN (vld
, LARCH_V16QI_FTYPE_CVPOINTER_SI
),
1584 LSX_NO_TARGET_BUILTIN (vst
, LARCH_VOID_FTYPE_V16QI_CVPOINTER_SI
),
1585 LSX_BUILTIN (vssrlrn_b_h
, LARCH_V16QI_FTYPE_V8HI_V8HI
),
1586 LSX_BUILTIN (vssrlrn_h_w
, LARCH_V8HI_FTYPE_V4SI_V4SI
),
1587 LSX_BUILTIN (vssrlrn_w_d
, LARCH_V4SI_FTYPE_V2DI_V2DI
),
1588 LSX_BUILTIN (vssrln_b_h
, LARCH_V16QI_FTYPE_V8HI_V8HI
),
1589 LSX_BUILTIN (vssrln_h_w
, LARCH_V8HI_FTYPE_V4SI_V4SI
),
1590 LSX_BUILTIN (vssrln_w_d
, LARCH_V4SI_FTYPE_V2DI_V2DI
),
1591 LSX_BUILTIN (vorn_v
, LARCH_UV16QI_FTYPE_UV16QI_UV16QI
),
1592 LSX_BUILTIN (vldi
, LARCH_V2DI_FTYPE_HI
),
1593 LSX_BUILTIN (vshuf_b
, LARCH_V16QI_FTYPE_V16QI_V16QI_V16QI
),
1594 LSX_BUILTIN (vldx
, LARCH_V16QI_FTYPE_CVPOINTER_DI
),
1595 LSX_NO_TARGET_BUILTIN (vstx
, LARCH_VOID_FTYPE_V16QI_CVPOINTER_DI
),
1596 LSX_BUILTIN (vextl_qu_du
, LARCH_UV2DI_FTYPE_UV2DI
),
1598 /* Built-in functions for LASX */
1599 LASX_BUILTIN (xvsll_b
, LARCH_V32QI_FTYPE_V32QI_V32QI
),
1600 LASX_BUILTIN (xvsll_h
, LARCH_V16HI_FTYPE_V16HI_V16HI
),
1601 LASX_BUILTIN (xvsll_w
, LARCH_V8SI_FTYPE_V8SI_V8SI
),
1602 LASX_BUILTIN (xvsll_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
1603 LASX_BUILTIN (xvslli_b
, LARCH_V32QI_FTYPE_V32QI_UQI
),
1604 LASX_BUILTIN (xvslli_h
, LARCH_V16HI_FTYPE_V16HI_UQI
),
1605 LASX_BUILTIN (xvslli_w
, LARCH_V8SI_FTYPE_V8SI_UQI
),
1606 LASX_BUILTIN (xvslli_d
, LARCH_V4DI_FTYPE_V4DI_UQI
),
1607 LASX_BUILTIN (xvsra_b
, LARCH_V32QI_FTYPE_V32QI_V32QI
),
1608 LASX_BUILTIN (xvsra_h
, LARCH_V16HI_FTYPE_V16HI_V16HI
),
1609 LASX_BUILTIN (xvsra_w
, LARCH_V8SI_FTYPE_V8SI_V8SI
),
1610 LASX_BUILTIN (xvsra_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
1611 LASX_BUILTIN (xvsrai_b
, LARCH_V32QI_FTYPE_V32QI_UQI
),
1612 LASX_BUILTIN (xvsrai_h
, LARCH_V16HI_FTYPE_V16HI_UQI
),
1613 LASX_BUILTIN (xvsrai_w
, LARCH_V8SI_FTYPE_V8SI_UQI
),
1614 LASX_BUILTIN (xvsrai_d
, LARCH_V4DI_FTYPE_V4DI_UQI
),
1615 LASX_BUILTIN (xvsrar_b
, LARCH_V32QI_FTYPE_V32QI_V32QI
),
1616 LASX_BUILTIN (xvsrar_h
, LARCH_V16HI_FTYPE_V16HI_V16HI
),
1617 LASX_BUILTIN (xvsrar_w
, LARCH_V8SI_FTYPE_V8SI_V8SI
),
1618 LASX_BUILTIN (xvsrar_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
1619 LASX_BUILTIN (xvsrari_b
, LARCH_V32QI_FTYPE_V32QI_UQI
),
1620 LASX_BUILTIN (xvsrari_h
, LARCH_V16HI_FTYPE_V16HI_UQI
),
1621 LASX_BUILTIN (xvsrari_w
, LARCH_V8SI_FTYPE_V8SI_UQI
),
1622 LASX_BUILTIN (xvsrari_d
, LARCH_V4DI_FTYPE_V4DI_UQI
),
1623 LASX_BUILTIN (xvsrl_b
, LARCH_V32QI_FTYPE_V32QI_V32QI
),
1624 LASX_BUILTIN (xvsrl_h
, LARCH_V16HI_FTYPE_V16HI_V16HI
),
1625 LASX_BUILTIN (xvsrl_w
, LARCH_V8SI_FTYPE_V8SI_V8SI
),
1626 LASX_BUILTIN (xvsrl_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
1627 LASX_BUILTIN (xvsrli_b
, LARCH_V32QI_FTYPE_V32QI_UQI
),
1628 LASX_BUILTIN (xvsrli_h
, LARCH_V16HI_FTYPE_V16HI_UQI
),
1629 LASX_BUILTIN (xvsrli_w
, LARCH_V8SI_FTYPE_V8SI_UQI
),
1630 LASX_BUILTIN (xvsrli_d
, LARCH_V4DI_FTYPE_V4DI_UQI
),
1631 LASX_BUILTIN (xvsrlr_b
, LARCH_V32QI_FTYPE_V32QI_V32QI
),
1632 LASX_BUILTIN (xvsrlr_h
, LARCH_V16HI_FTYPE_V16HI_V16HI
),
1633 LASX_BUILTIN (xvsrlr_w
, LARCH_V8SI_FTYPE_V8SI_V8SI
),
1634 LASX_BUILTIN (xvsrlr_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
1635 LASX_BUILTIN (xvsrlri_b
, LARCH_V32QI_FTYPE_V32QI_UQI
),
1636 LASX_BUILTIN (xvsrlri_h
, LARCH_V16HI_FTYPE_V16HI_UQI
),
1637 LASX_BUILTIN (xvsrlri_w
, LARCH_V8SI_FTYPE_V8SI_UQI
),
1638 LASX_BUILTIN (xvsrlri_d
, LARCH_V4DI_FTYPE_V4DI_UQI
),
1639 LASX_BUILTIN (xvbitclr_b
, LARCH_UV32QI_FTYPE_UV32QI_UV32QI
),
1640 LASX_BUILTIN (xvbitclr_h
, LARCH_UV16HI_FTYPE_UV16HI_UV16HI
),
1641 LASX_BUILTIN (xvbitclr_w
, LARCH_UV8SI_FTYPE_UV8SI_UV8SI
),
1642 LASX_BUILTIN (xvbitclr_d
, LARCH_UV4DI_FTYPE_UV4DI_UV4DI
),
1643 LASX_BUILTIN (xvbitclri_b
, LARCH_UV32QI_FTYPE_UV32QI_UQI
),
1644 LASX_BUILTIN (xvbitclri_h
, LARCH_UV16HI_FTYPE_UV16HI_UQI
),
1645 LASX_BUILTIN (xvbitclri_w
, LARCH_UV8SI_FTYPE_UV8SI_UQI
),
1646 LASX_BUILTIN (xvbitclri_d
, LARCH_UV4DI_FTYPE_UV4DI_UQI
),
1647 LASX_BUILTIN (xvbitset_b
, LARCH_UV32QI_FTYPE_UV32QI_UV32QI
),
1648 LASX_BUILTIN (xvbitset_h
, LARCH_UV16HI_FTYPE_UV16HI_UV16HI
),
1649 LASX_BUILTIN (xvbitset_w
, LARCH_UV8SI_FTYPE_UV8SI_UV8SI
),
1650 LASX_BUILTIN (xvbitset_d
, LARCH_UV4DI_FTYPE_UV4DI_UV4DI
),
1651 LASX_BUILTIN (xvbitseti_b
, LARCH_UV32QI_FTYPE_UV32QI_UQI
),
1652 LASX_BUILTIN (xvbitseti_h
, LARCH_UV16HI_FTYPE_UV16HI_UQI
),
1653 LASX_BUILTIN (xvbitseti_w
, LARCH_UV8SI_FTYPE_UV8SI_UQI
),
1654 LASX_BUILTIN (xvbitseti_d
, LARCH_UV4DI_FTYPE_UV4DI_UQI
),
1655 LASX_BUILTIN (xvbitrev_b
, LARCH_UV32QI_FTYPE_UV32QI_UV32QI
),
1656 LASX_BUILTIN (xvbitrev_h
, LARCH_UV16HI_FTYPE_UV16HI_UV16HI
),
1657 LASX_BUILTIN (xvbitrev_w
, LARCH_UV8SI_FTYPE_UV8SI_UV8SI
),
1658 LASX_BUILTIN (xvbitrev_d
, LARCH_UV4DI_FTYPE_UV4DI_UV4DI
),
1659 LASX_BUILTIN (xvbitrevi_b
, LARCH_UV32QI_FTYPE_UV32QI_UQI
),
1660 LASX_BUILTIN (xvbitrevi_h
, LARCH_UV16HI_FTYPE_UV16HI_UQI
),
1661 LASX_BUILTIN (xvbitrevi_w
, LARCH_UV8SI_FTYPE_UV8SI_UQI
),
1662 LASX_BUILTIN (xvbitrevi_d
, LARCH_UV4DI_FTYPE_UV4DI_UQI
),
1663 LASX_BUILTIN (xvadd_b
, LARCH_V32QI_FTYPE_V32QI_V32QI
),
1664 LASX_BUILTIN (xvadd_h
, LARCH_V16HI_FTYPE_V16HI_V16HI
),
1665 LASX_BUILTIN (xvadd_w
, LARCH_V8SI_FTYPE_V8SI_V8SI
),
1666 LASX_BUILTIN (xvadd_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
1667 LASX_BUILTIN (xvaddi_bu
, LARCH_V32QI_FTYPE_V32QI_UQI
),
1668 LASX_BUILTIN (xvaddi_hu
, LARCH_V16HI_FTYPE_V16HI_UQI
),
1669 LASX_BUILTIN (xvaddi_wu
, LARCH_V8SI_FTYPE_V8SI_UQI
),
1670 LASX_BUILTIN (xvaddi_du
, LARCH_V4DI_FTYPE_V4DI_UQI
),
1671 LASX_BUILTIN (xvsub_b
, LARCH_V32QI_FTYPE_V32QI_V32QI
),
1672 LASX_BUILTIN (xvsub_h
, LARCH_V16HI_FTYPE_V16HI_V16HI
),
1673 LASX_BUILTIN (xvsub_w
, LARCH_V8SI_FTYPE_V8SI_V8SI
),
1674 LASX_BUILTIN (xvsub_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
1675 LASX_BUILTIN (xvsubi_bu
, LARCH_V32QI_FTYPE_V32QI_UQI
),
1676 LASX_BUILTIN (xvsubi_hu
, LARCH_V16HI_FTYPE_V16HI_UQI
),
1677 LASX_BUILTIN (xvsubi_wu
, LARCH_V8SI_FTYPE_V8SI_UQI
),
1678 LASX_BUILTIN (xvsubi_du
, LARCH_V4DI_FTYPE_V4DI_UQI
),
1679 LASX_BUILTIN (xvmax_b
, LARCH_V32QI_FTYPE_V32QI_V32QI
),
1680 LASX_BUILTIN (xvmax_h
, LARCH_V16HI_FTYPE_V16HI_V16HI
),
1681 LASX_BUILTIN (xvmax_w
, LARCH_V8SI_FTYPE_V8SI_V8SI
),
1682 LASX_BUILTIN (xvmax_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
1683 LASX_BUILTIN (xvmaxi_b
, LARCH_V32QI_FTYPE_V32QI_QI
),
1684 LASX_BUILTIN (xvmaxi_h
, LARCH_V16HI_FTYPE_V16HI_QI
),
1685 LASX_BUILTIN (xvmaxi_w
, LARCH_V8SI_FTYPE_V8SI_QI
),
1686 LASX_BUILTIN (xvmaxi_d
, LARCH_V4DI_FTYPE_V4DI_QI
),
1687 LASX_BUILTIN (xvmax_bu
, LARCH_UV32QI_FTYPE_UV32QI_UV32QI
),
1688 LASX_BUILTIN (xvmax_hu
, LARCH_UV16HI_FTYPE_UV16HI_UV16HI
),
1689 LASX_BUILTIN (xvmax_wu
, LARCH_UV8SI_FTYPE_UV8SI_UV8SI
),
1690 LASX_BUILTIN (xvmax_du
, LARCH_UV4DI_FTYPE_UV4DI_UV4DI
),
1691 LASX_BUILTIN (xvmaxi_bu
, LARCH_UV32QI_FTYPE_UV32QI_UQI
),
1692 LASX_BUILTIN (xvmaxi_hu
, LARCH_UV16HI_FTYPE_UV16HI_UQI
),
1693 LASX_BUILTIN (xvmaxi_wu
, LARCH_UV8SI_FTYPE_UV8SI_UQI
),
1694 LASX_BUILTIN (xvmaxi_du
, LARCH_UV4DI_FTYPE_UV4DI_UQI
),
1695 LASX_BUILTIN (xvmin_b
, LARCH_V32QI_FTYPE_V32QI_V32QI
),
1696 LASX_BUILTIN (xvmin_h
, LARCH_V16HI_FTYPE_V16HI_V16HI
),
1697 LASX_BUILTIN (xvmin_w
, LARCH_V8SI_FTYPE_V8SI_V8SI
),
1698 LASX_BUILTIN (xvmin_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
1699 LASX_BUILTIN (xvmini_b
, LARCH_V32QI_FTYPE_V32QI_QI
),
1700 LASX_BUILTIN (xvmini_h
, LARCH_V16HI_FTYPE_V16HI_QI
),
1701 LASX_BUILTIN (xvmini_w
, LARCH_V8SI_FTYPE_V8SI_QI
),
1702 LASX_BUILTIN (xvmini_d
, LARCH_V4DI_FTYPE_V4DI_QI
),
1703 LASX_BUILTIN (xvmin_bu
, LARCH_UV32QI_FTYPE_UV32QI_UV32QI
),
1704 LASX_BUILTIN (xvmin_hu
, LARCH_UV16HI_FTYPE_UV16HI_UV16HI
),
1705 LASX_BUILTIN (xvmin_wu
, LARCH_UV8SI_FTYPE_UV8SI_UV8SI
),
1706 LASX_BUILTIN (xvmin_du
, LARCH_UV4DI_FTYPE_UV4DI_UV4DI
),
1707 LASX_BUILTIN (xvmini_bu
, LARCH_UV32QI_FTYPE_UV32QI_UQI
),
1708 LASX_BUILTIN (xvmini_hu
, LARCH_UV16HI_FTYPE_UV16HI_UQI
),
1709 LASX_BUILTIN (xvmini_wu
, LARCH_UV8SI_FTYPE_UV8SI_UQI
),
1710 LASX_BUILTIN (xvmini_du
, LARCH_UV4DI_FTYPE_UV4DI_UQI
),
1711 LASX_BUILTIN (xvseq_b
, LARCH_V32QI_FTYPE_V32QI_V32QI
),
1712 LASX_BUILTIN (xvseq_h
, LARCH_V16HI_FTYPE_V16HI_V16HI
),
1713 LASX_BUILTIN (xvseq_w
, LARCH_V8SI_FTYPE_V8SI_V8SI
),
1714 LASX_BUILTIN (xvseq_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
1715 LASX_BUILTIN (xvseqi_b
, LARCH_V32QI_FTYPE_V32QI_QI
),
1716 LASX_BUILTIN (xvseqi_h
, LARCH_V16HI_FTYPE_V16HI_QI
),
1717 LASX_BUILTIN (xvseqi_w
, LARCH_V8SI_FTYPE_V8SI_QI
),
1718 LASX_BUILTIN (xvseqi_d
, LARCH_V4DI_FTYPE_V4DI_QI
),
1719 LASX_BUILTIN (xvslt_b
, LARCH_V32QI_FTYPE_V32QI_V32QI
),
1720 LASX_BUILTIN (xvslt_h
, LARCH_V16HI_FTYPE_V16HI_V16HI
),
1721 LASX_BUILTIN (xvslt_w
, LARCH_V8SI_FTYPE_V8SI_V8SI
),
1722 LASX_BUILTIN (xvslt_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
1723 LASX_BUILTIN (xvslti_b
, LARCH_V32QI_FTYPE_V32QI_QI
),
1724 LASX_BUILTIN (xvslti_h
, LARCH_V16HI_FTYPE_V16HI_QI
),
1725 LASX_BUILTIN (xvslti_w
, LARCH_V8SI_FTYPE_V8SI_QI
),
1726 LASX_BUILTIN (xvslti_d
, LARCH_V4DI_FTYPE_V4DI_QI
),
1727 LASX_BUILTIN (xvslt_bu
, LARCH_V32QI_FTYPE_UV32QI_UV32QI
),
1728 LASX_BUILTIN (xvslt_hu
, LARCH_V16HI_FTYPE_UV16HI_UV16HI
),
1729 LASX_BUILTIN (xvslt_wu
, LARCH_V8SI_FTYPE_UV8SI_UV8SI
),
1730 LASX_BUILTIN (xvslt_du
, LARCH_V4DI_FTYPE_UV4DI_UV4DI
),
1731 LASX_BUILTIN (xvslti_bu
, LARCH_V32QI_FTYPE_UV32QI_UQI
),
1732 LASX_BUILTIN (xvslti_hu
, LARCH_V16HI_FTYPE_UV16HI_UQI
),
1733 LASX_BUILTIN (xvslti_wu
, LARCH_V8SI_FTYPE_UV8SI_UQI
),
1734 LASX_BUILTIN (xvslti_du
, LARCH_V4DI_FTYPE_UV4DI_UQI
),
1735 LASX_BUILTIN (xvsle_b
, LARCH_V32QI_FTYPE_V32QI_V32QI
),
1736 LASX_BUILTIN (xvsle_h
, LARCH_V16HI_FTYPE_V16HI_V16HI
),
1737 LASX_BUILTIN (xvsle_w
, LARCH_V8SI_FTYPE_V8SI_V8SI
),
1738 LASX_BUILTIN (xvsle_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
1739 LASX_BUILTIN (xvslei_b
, LARCH_V32QI_FTYPE_V32QI_QI
),
1740 LASX_BUILTIN (xvslei_h
, LARCH_V16HI_FTYPE_V16HI_QI
),
1741 LASX_BUILTIN (xvslei_w
, LARCH_V8SI_FTYPE_V8SI_QI
),
1742 LASX_BUILTIN (xvslei_d
, LARCH_V4DI_FTYPE_V4DI_QI
),
1743 LASX_BUILTIN (xvsle_bu
, LARCH_V32QI_FTYPE_UV32QI_UV32QI
),
1744 LASX_BUILTIN (xvsle_hu
, LARCH_V16HI_FTYPE_UV16HI_UV16HI
),
1745 LASX_BUILTIN (xvsle_wu
, LARCH_V8SI_FTYPE_UV8SI_UV8SI
),
1746 LASX_BUILTIN (xvsle_du
, LARCH_V4DI_FTYPE_UV4DI_UV4DI
),
1747 LASX_BUILTIN (xvslei_bu
, LARCH_V32QI_FTYPE_UV32QI_UQI
),
1748 LASX_BUILTIN (xvslei_hu
, LARCH_V16HI_FTYPE_UV16HI_UQI
),
1749 LASX_BUILTIN (xvslei_wu
, LARCH_V8SI_FTYPE_UV8SI_UQI
),
1750 LASX_BUILTIN (xvslei_du
, LARCH_V4DI_FTYPE_UV4DI_UQI
),
1752 LASX_BUILTIN (xvsat_b
, LARCH_V32QI_FTYPE_V32QI_UQI
),
1753 LASX_BUILTIN (xvsat_h
, LARCH_V16HI_FTYPE_V16HI_UQI
),
1754 LASX_BUILTIN (xvsat_w
, LARCH_V8SI_FTYPE_V8SI_UQI
),
1755 LASX_BUILTIN (xvsat_d
, LARCH_V4DI_FTYPE_V4DI_UQI
),
1756 LASX_BUILTIN (xvsat_bu
, LARCH_UV32QI_FTYPE_UV32QI_UQI
),
1757 LASX_BUILTIN (xvsat_hu
, LARCH_UV16HI_FTYPE_UV16HI_UQI
),
1758 LASX_BUILTIN (xvsat_wu
, LARCH_UV8SI_FTYPE_UV8SI_UQI
),
1759 LASX_BUILTIN (xvsat_du
, LARCH_UV4DI_FTYPE_UV4DI_UQI
),
1761 LASX_BUILTIN (xvadda_b
, LARCH_V32QI_FTYPE_V32QI_V32QI
),
1762 LASX_BUILTIN (xvadda_h
, LARCH_V16HI_FTYPE_V16HI_V16HI
),
1763 LASX_BUILTIN (xvadda_w
, LARCH_V8SI_FTYPE_V8SI_V8SI
),
1764 LASX_BUILTIN (xvadda_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
1765 LASX_BUILTIN (xvsadd_b
, LARCH_V32QI_FTYPE_V32QI_V32QI
),
1766 LASX_BUILTIN (xvsadd_h
, LARCH_V16HI_FTYPE_V16HI_V16HI
),
1767 LASX_BUILTIN (xvsadd_w
, LARCH_V8SI_FTYPE_V8SI_V8SI
),
1768 LASX_BUILTIN (xvsadd_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
1769 LASX_BUILTIN (xvsadd_bu
, LARCH_UV32QI_FTYPE_UV32QI_UV32QI
),
1770 LASX_BUILTIN (xvsadd_hu
, LARCH_UV16HI_FTYPE_UV16HI_UV16HI
),
1771 LASX_BUILTIN (xvsadd_wu
, LARCH_UV8SI_FTYPE_UV8SI_UV8SI
),
1772 LASX_BUILTIN (xvsadd_du
, LARCH_UV4DI_FTYPE_UV4DI_UV4DI
),
1774 LASX_BUILTIN (xvavg_b
, LARCH_V32QI_FTYPE_V32QI_V32QI
),
1775 LASX_BUILTIN (xvavg_h
, LARCH_V16HI_FTYPE_V16HI_V16HI
),
1776 LASX_BUILTIN (xvavg_w
, LARCH_V8SI_FTYPE_V8SI_V8SI
),
1777 LASX_BUILTIN (xvavg_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
1778 LASX_BUILTIN (xvavg_bu
, LARCH_UV32QI_FTYPE_UV32QI_UV32QI
),
1779 LASX_BUILTIN (xvavg_hu
, LARCH_UV16HI_FTYPE_UV16HI_UV16HI
),
1780 LASX_BUILTIN (xvavg_wu
, LARCH_UV8SI_FTYPE_UV8SI_UV8SI
),
1781 LASX_BUILTIN (xvavg_du
, LARCH_UV4DI_FTYPE_UV4DI_UV4DI
),
1783 LASX_BUILTIN (xvavgr_b
, LARCH_V32QI_FTYPE_V32QI_V32QI
),
1784 LASX_BUILTIN (xvavgr_h
, LARCH_V16HI_FTYPE_V16HI_V16HI
),
1785 LASX_BUILTIN (xvavgr_w
, LARCH_V8SI_FTYPE_V8SI_V8SI
),
1786 LASX_BUILTIN (xvavgr_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
1787 LASX_BUILTIN (xvavgr_bu
, LARCH_UV32QI_FTYPE_UV32QI_UV32QI
),
1788 LASX_BUILTIN (xvavgr_hu
, LARCH_UV16HI_FTYPE_UV16HI_UV16HI
),
1789 LASX_BUILTIN (xvavgr_wu
, LARCH_UV8SI_FTYPE_UV8SI_UV8SI
),
1790 LASX_BUILTIN (xvavgr_du
, LARCH_UV4DI_FTYPE_UV4DI_UV4DI
),
1792 LASX_BUILTIN (xvssub_b
, LARCH_V32QI_FTYPE_V32QI_V32QI
),
1793 LASX_BUILTIN (xvssub_h
, LARCH_V16HI_FTYPE_V16HI_V16HI
),
1794 LASX_BUILTIN (xvssub_w
, LARCH_V8SI_FTYPE_V8SI_V8SI
),
1795 LASX_BUILTIN (xvssub_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
1796 LASX_BUILTIN (xvssub_bu
, LARCH_UV32QI_FTYPE_UV32QI_UV32QI
),
1797 LASX_BUILTIN (xvssub_hu
, LARCH_UV16HI_FTYPE_UV16HI_UV16HI
),
1798 LASX_BUILTIN (xvssub_wu
, LARCH_UV8SI_FTYPE_UV8SI_UV8SI
),
1799 LASX_BUILTIN (xvssub_du
, LARCH_UV4DI_FTYPE_UV4DI_UV4DI
),
1800 LASX_BUILTIN (xvabsd_b
, LARCH_V32QI_FTYPE_V32QI_V32QI
),
1801 LASX_BUILTIN (xvabsd_h
, LARCH_V16HI_FTYPE_V16HI_V16HI
),
1802 LASX_BUILTIN (xvabsd_w
, LARCH_V8SI_FTYPE_V8SI_V8SI
),
1803 LASX_BUILTIN (xvabsd_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
1804 LASX_BUILTIN (xvabsd_bu
, LARCH_UV32QI_FTYPE_UV32QI_UV32QI
),
1805 LASX_BUILTIN (xvabsd_hu
, LARCH_UV16HI_FTYPE_UV16HI_UV16HI
),
1806 LASX_BUILTIN (xvabsd_wu
, LARCH_UV8SI_FTYPE_UV8SI_UV8SI
),
1807 LASX_BUILTIN (xvabsd_du
, LARCH_UV4DI_FTYPE_UV4DI_UV4DI
),
1809 LASX_BUILTIN (xvmul_b
, LARCH_V32QI_FTYPE_V32QI_V32QI
),
1810 LASX_BUILTIN (xvmul_h
, LARCH_V16HI_FTYPE_V16HI_V16HI
),
1811 LASX_BUILTIN (xvmul_w
, LARCH_V8SI_FTYPE_V8SI_V8SI
),
1812 LASX_BUILTIN (xvmul_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
1813 LASX_BUILTIN (xvmadd_b
, LARCH_V32QI_FTYPE_V32QI_V32QI_V32QI
),
1814 LASX_BUILTIN (xvmadd_h
, LARCH_V16HI_FTYPE_V16HI_V16HI_V16HI
),
1815 LASX_BUILTIN (xvmadd_w
, LARCH_V8SI_FTYPE_V8SI_V8SI_V8SI
),
1816 LASX_BUILTIN (xvmadd_d
, LARCH_V4DI_FTYPE_V4DI_V4DI_V4DI
),
1817 LASX_BUILTIN (xvmsub_b
, LARCH_V32QI_FTYPE_V32QI_V32QI_V32QI
),
1818 LASX_BUILTIN (xvmsub_h
, LARCH_V16HI_FTYPE_V16HI_V16HI_V16HI
),
1819 LASX_BUILTIN (xvmsub_w
, LARCH_V8SI_FTYPE_V8SI_V8SI_V8SI
),
1820 LASX_BUILTIN (xvmsub_d
, LARCH_V4DI_FTYPE_V4DI_V4DI_V4DI
),
1821 LASX_BUILTIN (xvdiv_b
, LARCH_V32QI_FTYPE_V32QI_V32QI
),
1822 LASX_BUILTIN (xvdiv_h
, LARCH_V16HI_FTYPE_V16HI_V16HI
),
1823 LASX_BUILTIN (xvdiv_w
, LARCH_V8SI_FTYPE_V8SI_V8SI
),
1824 LASX_BUILTIN (xvdiv_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
1825 LASX_BUILTIN (xvdiv_bu
, LARCH_UV32QI_FTYPE_UV32QI_UV32QI
),
1826 LASX_BUILTIN (xvdiv_hu
, LARCH_UV16HI_FTYPE_UV16HI_UV16HI
),
1827 LASX_BUILTIN (xvdiv_wu
, LARCH_UV8SI_FTYPE_UV8SI_UV8SI
),
1828 LASX_BUILTIN (xvdiv_du
, LARCH_UV4DI_FTYPE_UV4DI_UV4DI
),
1829 LASX_BUILTIN (xvhaddw_h_b
, LARCH_V16HI_FTYPE_V32QI_V32QI
),
1830 LASX_BUILTIN (xvhaddw_w_h
, LARCH_V8SI_FTYPE_V16HI_V16HI
),
1831 LASX_BUILTIN (xvhaddw_d_w
, LARCH_V4DI_FTYPE_V8SI_V8SI
),
1832 LASX_BUILTIN (xvhaddw_hu_bu
, LARCH_UV16HI_FTYPE_UV32QI_UV32QI
),
1833 LASX_BUILTIN (xvhaddw_wu_hu
, LARCH_UV8SI_FTYPE_UV16HI_UV16HI
),
1834 LASX_BUILTIN (xvhaddw_du_wu
, LARCH_UV4DI_FTYPE_UV8SI_UV8SI
),
1835 LASX_BUILTIN (xvhsubw_h_b
, LARCH_V16HI_FTYPE_V32QI_V32QI
),
1836 LASX_BUILTIN (xvhsubw_w_h
, LARCH_V8SI_FTYPE_V16HI_V16HI
),
1837 LASX_BUILTIN (xvhsubw_d_w
, LARCH_V4DI_FTYPE_V8SI_V8SI
),
1838 LASX_BUILTIN (xvhsubw_hu_bu
, LARCH_V16HI_FTYPE_UV32QI_UV32QI
),
1839 LASX_BUILTIN (xvhsubw_wu_hu
, LARCH_V8SI_FTYPE_UV16HI_UV16HI
),
1840 LASX_BUILTIN (xvhsubw_du_wu
, LARCH_V4DI_FTYPE_UV8SI_UV8SI
),
1841 LASX_BUILTIN (xvmod_b
, LARCH_V32QI_FTYPE_V32QI_V32QI
),
1842 LASX_BUILTIN (xvmod_h
, LARCH_V16HI_FTYPE_V16HI_V16HI
),
1843 LASX_BUILTIN (xvmod_w
, LARCH_V8SI_FTYPE_V8SI_V8SI
),
1844 LASX_BUILTIN (xvmod_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
1845 LASX_BUILTIN (xvmod_bu
, LARCH_UV32QI_FTYPE_UV32QI_UV32QI
),
1846 LASX_BUILTIN (xvmod_hu
, LARCH_UV16HI_FTYPE_UV16HI_UV16HI
),
1847 LASX_BUILTIN (xvmod_wu
, LARCH_UV8SI_FTYPE_UV8SI_UV8SI
),
1848 LASX_BUILTIN (xvmod_du
, LARCH_UV4DI_FTYPE_UV4DI_UV4DI
),
1850 LASX_BUILTIN (xvrepl128vei_b
, LARCH_V32QI_FTYPE_V32QI_UQI
),
1851 LASX_BUILTIN (xvrepl128vei_h
, LARCH_V16HI_FTYPE_V16HI_UQI
),
1852 LASX_BUILTIN (xvrepl128vei_w
, LARCH_V8SI_FTYPE_V8SI_UQI
),
1853 LASX_BUILTIN (xvrepl128vei_d
, LARCH_V4DI_FTYPE_V4DI_UQI
),
1854 LASX_BUILTIN (xvpickev_b
, LARCH_V32QI_FTYPE_V32QI_V32QI
),
1855 LASX_BUILTIN (xvpickev_h
, LARCH_V16HI_FTYPE_V16HI_V16HI
),
1856 LASX_BUILTIN (xvpickev_w
, LARCH_V8SI_FTYPE_V8SI_V8SI
),
1857 LASX_BUILTIN (xvpickev_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
1858 LASX_BUILTIN (xvpickod_b
, LARCH_V32QI_FTYPE_V32QI_V32QI
),
1859 LASX_BUILTIN (xvpickod_h
, LARCH_V16HI_FTYPE_V16HI_V16HI
),
1860 LASX_BUILTIN (xvpickod_w
, LARCH_V8SI_FTYPE_V8SI_V8SI
),
1861 LASX_BUILTIN (xvpickod_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
1862 LASX_BUILTIN (xvilvh_b
, LARCH_V32QI_FTYPE_V32QI_V32QI
),
1863 LASX_BUILTIN (xvilvh_h
, LARCH_V16HI_FTYPE_V16HI_V16HI
),
1864 LASX_BUILTIN (xvilvh_w
, LARCH_V8SI_FTYPE_V8SI_V8SI
),
1865 LASX_BUILTIN (xvilvh_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
1866 LASX_BUILTIN (xvilvl_b
, LARCH_V32QI_FTYPE_V32QI_V32QI
),
1867 LASX_BUILTIN (xvilvl_h
, LARCH_V16HI_FTYPE_V16HI_V16HI
),
1868 LASX_BUILTIN (xvilvl_w
, LARCH_V8SI_FTYPE_V8SI_V8SI
),
1869 LASX_BUILTIN (xvilvl_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
1870 LASX_BUILTIN (xvpackev_b
, LARCH_V32QI_FTYPE_V32QI_V32QI
),
1871 LASX_BUILTIN (xvpackev_h
, LARCH_V16HI_FTYPE_V16HI_V16HI
),
1872 LASX_BUILTIN (xvpackev_w
, LARCH_V8SI_FTYPE_V8SI_V8SI
),
1873 LASX_BUILTIN (xvpackev_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
1874 LASX_BUILTIN (xvpackod_b
, LARCH_V32QI_FTYPE_V32QI_V32QI
),
1875 LASX_BUILTIN (xvpackod_h
, LARCH_V16HI_FTYPE_V16HI_V16HI
),
1876 LASX_BUILTIN (xvpackod_w
, LARCH_V8SI_FTYPE_V8SI_V8SI
),
1877 LASX_BUILTIN (xvpackod_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
1878 LASX_BUILTIN (xvshuf_b
, LARCH_V32QI_FTYPE_V32QI_V32QI_V32QI
),
1879 LASX_BUILTIN (xvshuf_h
, LARCH_V16HI_FTYPE_V16HI_V16HI_V16HI
),
1880 LASX_BUILTIN (xvshuf_w
, LARCH_V8SI_FTYPE_V8SI_V8SI_V8SI
),
1881 LASX_BUILTIN (xvshuf_d
, LARCH_V4DI_FTYPE_V4DI_V4DI_V4DI
),
1882 LASX_BUILTIN (xvand_v
, LARCH_UV32QI_FTYPE_UV32QI_UV32QI
),
1883 LASX_BUILTIN (xvandi_b
, LARCH_UV32QI_FTYPE_UV32QI_UQI
),
1884 LASX_BUILTIN (xvor_v
, LARCH_UV32QI_FTYPE_UV32QI_UV32QI
),
1885 LASX_BUILTIN (xvori_b
, LARCH_UV32QI_FTYPE_UV32QI_UQI
),
1886 LASX_BUILTIN (xvnor_v
, LARCH_UV32QI_FTYPE_UV32QI_UV32QI
),
1887 LASX_BUILTIN (xvnori_b
, LARCH_UV32QI_FTYPE_UV32QI_UQI
),
1888 LASX_BUILTIN (xvxor_v
, LARCH_UV32QI_FTYPE_UV32QI_UV32QI
),
1889 LASX_BUILTIN (xvxori_b
, LARCH_UV32QI_FTYPE_UV32QI_UQI
),
1890 LASX_BUILTIN (xvbitsel_v
, LARCH_UV32QI_FTYPE_UV32QI_UV32QI_UV32QI
),
1891 LASX_BUILTIN (xvbitseli_b
, LARCH_UV32QI_FTYPE_UV32QI_UV32QI_USI
),
1893 LASX_BUILTIN (xvshuf4i_b
, LARCH_V32QI_FTYPE_V32QI_USI
),
1894 LASX_BUILTIN (xvshuf4i_h
, LARCH_V16HI_FTYPE_V16HI_USI
),
1895 LASX_BUILTIN (xvshuf4i_w
, LARCH_V8SI_FTYPE_V8SI_USI
),
1897 LASX_BUILTIN (xvreplgr2vr_b
, LARCH_V32QI_FTYPE_SI
),
1898 LASX_BUILTIN (xvreplgr2vr_h
, LARCH_V16HI_FTYPE_SI
),
1899 LASX_BUILTIN (xvreplgr2vr_w
, LARCH_V8SI_FTYPE_SI
),
1900 LASX_BUILTIN (xvreplgr2vr_d
, LARCH_V4DI_FTYPE_DI
),
1901 LASX_BUILTIN (xvpcnt_b
, LARCH_V32QI_FTYPE_V32QI
),
1902 LASX_BUILTIN (xvpcnt_h
, LARCH_V16HI_FTYPE_V16HI
),
1903 LASX_BUILTIN (xvpcnt_w
, LARCH_V8SI_FTYPE_V8SI
),
1904 LASX_BUILTIN (xvpcnt_d
, LARCH_V4DI_FTYPE_V4DI
),
1905 LASX_BUILTIN (xvclo_b
, LARCH_V32QI_FTYPE_V32QI
),
1906 LASX_BUILTIN (xvclo_h
, LARCH_V16HI_FTYPE_V16HI
),
1907 LASX_BUILTIN (xvclo_w
, LARCH_V8SI_FTYPE_V8SI
),
1908 LASX_BUILTIN (xvclo_d
, LARCH_V4DI_FTYPE_V4DI
),
1909 LASX_BUILTIN (xvclz_b
, LARCH_V32QI_FTYPE_V32QI
),
1910 LASX_BUILTIN (xvclz_h
, LARCH_V16HI_FTYPE_V16HI
),
1911 LASX_BUILTIN (xvclz_w
, LARCH_V8SI_FTYPE_V8SI
),
1912 LASX_BUILTIN (xvclz_d
, LARCH_V4DI_FTYPE_V4DI
),
1914 LASX_BUILTIN (xvrepli_b
, LARCH_V32QI_FTYPE_HI
),
1915 LASX_BUILTIN (xvrepli_h
, LARCH_V16HI_FTYPE_HI
),
1916 LASX_BUILTIN (xvrepli_w
, LARCH_V8SI_FTYPE_HI
),
1917 LASX_BUILTIN (xvrepli_d
, LARCH_V4DI_FTYPE_HI
),
1918 LASX_BUILTIN (xvfcmp_caf_s
, LARCH_V8SI_FTYPE_V8SF_V8SF
),
1919 LASX_BUILTIN (xvfcmp_caf_d
, LARCH_V4DI_FTYPE_V4DF_V4DF
),
1920 LASX_BUILTIN (xvfcmp_cor_s
, LARCH_V8SI_FTYPE_V8SF_V8SF
),
1921 LASX_BUILTIN (xvfcmp_cor_d
, LARCH_V4DI_FTYPE_V4DF_V4DF
),
1922 LASX_BUILTIN (xvfcmp_cun_s
, LARCH_V8SI_FTYPE_V8SF_V8SF
),
1923 LASX_BUILTIN (xvfcmp_cun_d
, LARCH_V4DI_FTYPE_V4DF_V4DF
),
1924 LASX_BUILTIN (xvfcmp_cune_s
, LARCH_V8SI_FTYPE_V8SF_V8SF
),
1925 LASX_BUILTIN (xvfcmp_cune_d
, LARCH_V4DI_FTYPE_V4DF_V4DF
),
1926 LASX_BUILTIN (xvfcmp_cueq_s
, LARCH_V8SI_FTYPE_V8SF_V8SF
),
1927 LASX_BUILTIN (xvfcmp_cueq_d
, LARCH_V4DI_FTYPE_V4DF_V4DF
),
1928 LASX_BUILTIN (xvfcmp_ceq_s
, LARCH_V8SI_FTYPE_V8SF_V8SF
),
1929 LASX_BUILTIN (xvfcmp_ceq_d
, LARCH_V4DI_FTYPE_V4DF_V4DF
),
1930 LASX_BUILTIN (xvfcmp_cne_s
, LARCH_V8SI_FTYPE_V8SF_V8SF
),
1931 LASX_BUILTIN (xvfcmp_cne_d
, LARCH_V4DI_FTYPE_V4DF_V4DF
),
1932 LASX_BUILTIN (xvfcmp_clt_s
, LARCH_V8SI_FTYPE_V8SF_V8SF
),
1933 LASX_BUILTIN (xvfcmp_clt_d
, LARCH_V4DI_FTYPE_V4DF_V4DF
),
1934 LASX_BUILTIN (xvfcmp_cult_s
, LARCH_V8SI_FTYPE_V8SF_V8SF
),
1935 LASX_BUILTIN (xvfcmp_cult_d
, LARCH_V4DI_FTYPE_V4DF_V4DF
),
1936 LASX_BUILTIN (xvfcmp_cle_s
, LARCH_V8SI_FTYPE_V8SF_V8SF
),
1937 LASX_BUILTIN (xvfcmp_cle_d
, LARCH_V4DI_FTYPE_V4DF_V4DF
),
1938 LASX_BUILTIN (xvfcmp_cule_s
, LARCH_V8SI_FTYPE_V8SF_V8SF
),
1939 LASX_BUILTIN (xvfcmp_cule_d
, LARCH_V4DI_FTYPE_V4DF_V4DF
),
1940 LASX_BUILTIN (xvfcmp_saf_s
, LARCH_V8SI_FTYPE_V8SF_V8SF
),
1941 LASX_BUILTIN (xvfcmp_saf_d
, LARCH_V4DI_FTYPE_V4DF_V4DF
),
1942 LASX_BUILTIN (xvfcmp_sor_s
, LARCH_V8SI_FTYPE_V8SF_V8SF
),
1943 LASX_BUILTIN (xvfcmp_sor_d
, LARCH_V4DI_FTYPE_V4DF_V4DF
),
1944 LASX_BUILTIN (xvfcmp_sun_s
, LARCH_V8SI_FTYPE_V8SF_V8SF
),
1945 LASX_BUILTIN (xvfcmp_sun_d
, LARCH_V4DI_FTYPE_V4DF_V4DF
),
1946 LASX_BUILTIN (xvfcmp_sune_s
, LARCH_V8SI_FTYPE_V8SF_V8SF
),
1947 LASX_BUILTIN (xvfcmp_sune_d
, LARCH_V4DI_FTYPE_V4DF_V4DF
),
1948 LASX_BUILTIN (xvfcmp_sueq_s
, LARCH_V8SI_FTYPE_V8SF_V8SF
),
1949 LASX_BUILTIN (xvfcmp_sueq_d
, LARCH_V4DI_FTYPE_V4DF_V4DF
),
1950 LASX_BUILTIN (xvfcmp_seq_s
, LARCH_V8SI_FTYPE_V8SF_V8SF
),
1951 LASX_BUILTIN (xvfcmp_seq_d
, LARCH_V4DI_FTYPE_V4DF_V4DF
),
1952 LASX_BUILTIN (xvfcmp_sne_s
, LARCH_V8SI_FTYPE_V8SF_V8SF
),
1953 LASX_BUILTIN (xvfcmp_sne_d
, LARCH_V4DI_FTYPE_V4DF_V4DF
),
1954 LASX_BUILTIN (xvfcmp_slt_s
, LARCH_V8SI_FTYPE_V8SF_V8SF
),
1955 LASX_BUILTIN (xvfcmp_slt_d
, LARCH_V4DI_FTYPE_V4DF_V4DF
),
1956 LASX_BUILTIN (xvfcmp_sult_s
, LARCH_V8SI_FTYPE_V8SF_V8SF
),
1957 LASX_BUILTIN (xvfcmp_sult_d
, LARCH_V4DI_FTYPE_V4DF_V4DF
),
1958 LASX_BUILTIN (xvfcmp_sle_s
, LARCH_V8SI_FTYPE_V8SF_V8SF
),
1959 LASX_BUILTIN (xvfcmp_sle_d
, LARCH_V4DI_FTYPE_V4DF_V4DF
),
1960 LASX_BUILTIN (xvfcmp_sule_s
, LARCH_V8SI_FTYPE_V8SF_V8SF
),
1961 LASX_BUILTIN (xvfcmp_sule_d
, LARCH_V4DI_FTYPE_V4DF_V4DF
),
1962 LASX_BUILTIN (xvfadd_s
, LARCH_V8SF_FTYPE_V8SF_V8SF
),
1963 LASX_BUILTIN (xvfadd_d
, LARCH_V4DF_FTYPE_V4DF_V4DF
),
1964 LASX_BUILTIN (xvfsub_s
, LARCH_V8SF_FTYPE_V8SF_V8SF
),
1965 LASX_BUILTIN (xvfsub_d
, LARCH_V4DF_FTYPE_V4DF_V4DF
),
1966 LASX_BUILTIN (xvfmul_s
, LARCH_V8SF_FTYPE_V8SF_V8SF
),
1967 LASX_BUILTIN (xvfmul_d
, LARCH_V4DF_FTYPE_V4DF_V4DF
),
1968 LASX_BUILTIN (xvfdiv_s
, LARCH_V8SF_FTYPE_V8SF_V8SF
),
1969 LASX_BUILTIN (xvfdiv_d
, LARCH_V4DF_FTYPE_V4DF_V4DF
),
1970 LASX_BUILTIN (xvfcvt_h_s
, LARCH_V16HI_FTYPE_V8SF_V8SF
),
1971 LASX_BUILTIN (xvfcvt_s_d
, LARCH_V8SF_FTYPE_V4DF_V4DF
),
1972 LASX_BUILTIN (xvfmin_s
, LARCH_V8SF_FTYPE_V8SF_V8SF
),
1973 LASX_BUILTIN (xvfmin_d
, LARCH_V4DF_FTYPE_V4DF_V4DF
),
1974 LASX_BUILTIN (xvfmina_s
, LARCH_V8SF_FTYPE_V8SF_V8SF
),
1975 LASX_BUILTIN (xvfmina_d
, LARCH_V4DF_FTYPE_V4DF_V4DF
),
1976 LASX_BUILTIN (xvfmax_s
, LARCH_V8SF_FTYPE_V8SF_V8SF
),
1977 LASX_BUILTIN (xvfmax_d
, LARCH_V4DF_FTYPE_V4DF_V4DF
),
1978 LASX_BUILTIN (xvfmaxa_s
, LARCH_V8SF_FTYPE_V8SF_V8SF
),
1979 LASX_BUILTIN (xvfmaxa_d
, LARCH_V4DF_FTYPE_V4DF_V4DF
),
1980 LASX_BUILTIN (xvfclass_s
, LARCH_V8SI_FTYPE_V8SF
),
1981 LASX_BUILTIN (xvfclass_d
, LARCH_V4DI_FTYPE_V4DF
),
1982 LASX_BUILTIN (xvfsqrt_s
, LARCH_V8SF_FTYPE_V8SF
),
1983 LASX_BUILTIN (xvfsqrt_d
, LARCH_V4DF_FTYPE_V4DF
),
1984 LASX_BUILTIN (xvfrecip_s
, LARCH_V8SF_FTYPE_V8SF
),
1985 LASX_BUILTIN (xvfrecip_d
, LARCH_V4DF_FTYPE_V4DF
),
1986 LASX_BUILTIN (xvfrint_s
, LARCH_V8SF_FTYPE_V8SF
),
1987 LASX_BUILTIN (xvfrint_d
, LARCH_V4DF_FTYPE_V4DF
),
1988 LASX_BUILTIN (xvfrsqrt_s
, LARCH_V8SF_FTYPE_V8SF
),
1989 LASX_BUILTIN (xvfrsqrt_d
, LARCH_V4DF_FTYPE_V4DF
),
1990 LASX_BUILTIN (xvflogb_s
, LARCH_V8SF_FTYPE_V8SF
),
1991 LASX_BUILTIN (xvflogb_d
, LARCH_V4DF_FTYPE_V4DF
),
1992 LASX_BUILTIN (xvfcvth_s_h
, LARCH_V8SF_FTYPE_V16HI
),
1993 LASX_BUILTIN (xvfcvth_d_s
, LARCH_V4DF_FTYPE_V8SF
),
1994 LASX_BUILTIN (xvfcvtl_s_h
, LARCH_V8SF_FTYPE_V16HI
),
1995 LASX_BUILTIN (xvfcvtl_d_s
, LARCH_V4DF_FTYPE_V8SF
),
1996 LASX_BUILTIN (xvftint_w_s
, LARCH_V8SI_FTYPE_V8SF
),
1997 LASX_BUILTIN (xvftint_l_d
, LARCH_V4DI_FTYPE_V4DF
),
1998 LASX_BUILTIN (xvftint_wu_s
, LARCH_UV8SI_FTYPE_V8SF
),
1999 LASX_BUILTIN (xvftint_lu_d
, LARCH_UV4DI_FTYPE_V4DF
),
2000 LASX_BUILTIN (xvftintrz_w_s
, LARCH_V8SI_FTYPE_V8SF
),
2001 LASX_BUILTIN (xvftintrz_l_d
, LARCH_V4DI_FTYPE_V4DF
),
2002 LASX_BUILTIN (xvftintrz_wu_s
, LARCH_UV8SI_FTYPE_V8SF
),
2003 LASX_BUILTIN (xvftintrz_lu_d
, LARCH_UV4DI_FTYPE_V4DF
),
2004 LASX_BUILTIN (xvffint_s_w
, LARCH_V8SF_FTYPE_V8SI
),
2005 LASX_BUILTIN (xvffint_d_l
, LARCH_V4DF_FTYPE_V4DI
),
2006 LASX_BUILTIN (xvffint_s_wu
, LARCH_V8SF_FTYPE_UV8SI
),
2007 LASX_BUILTIN (xvffint_d_lu
, LARCH_V4DF_FTYPE_UV4DI
),
2009 LASX_BUILTIN (xvreplve_b
, LARCH_V32QI_FTYPE_V32QI_SI
),
2010 LASX_BUILTIN (xvreplve_h
, LARCH_V16HI_FTYPE_V16HI_SI
),
2011 LASX_BUILTIN (xvreplve_w
, LARCH_V8SI_FTYPE_V8SI_SI
),
2012 LASX_BUILTIN (xvreplve_d
, LARCH_V4DI_FTYPE_V4DI_SI
),
2013 LASX_BUILTIN (xvpermi_w
, LARCH_V8SI_FTYPE_V8SI_V8SI_USI
),
2015 LASX_BUILTIN (xvandn_v
, LARCH_UV32QI_FTYPE_UV32QI_UV32QI
),
2016 LASX_BUILTIN (xvneg_b
, LARCH_V32QI_FTYPE_V32QI
),
2017 LASX_BUILTIN (xvneg_h
, LARCH_V16HI_FTYPE_V16HI
),
2018 LASX_BUILTIN (xvneg_w
, LARCH_V8SI_FTYPE_V8SI
),
2019 LASX_BUILTIN (xvneg_d
, LARCH_V4DI_FTYPE_V4DI
),
2020 LASX_BUILTIN (xvmuh_b
, LARCH_V32QI_FTYPE_V32QI_V32QI
),
2021 LASX_BUILTIN (xvmuh_h
, LARCH_V16HI_FTYPE_V16HI_V16HI
),
2022 LASX_BUILTIN (xvmuh_w
, LARCH_V8SI_FTYPE_V8SI_V8SI
),
2023 LASX_BUILTIN (xvmuh_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
2024 LASX_BUILTIN (xvmuh_bu
, LARCH_UV32QI_FTYPE_UV32QI_UV32QI
),
2025 LASX_BUILTIN (xvmuh_hu
, LARCH_UV16HI_FTYPE_UV16HI_UV16HI
),
2026 LASX_BUILTIN (xvmuh_wu
, LARCH_UV8SI_FTYPE_UV8SI_UV8SI
),
2027 LASX_BUILTIN (xvmuh_du
, LARCH_UV4DI_FTYPE_UV4DI_UV4DI
),
2028 LASX_BUILTIN (xvsllwil_h_b
, LARCH_V16HI_FTYPE_V32QI_UQI
),
2029 LASX_BUILTIN (xvsllwil_w_h
, LARCH_V8SI_FTYPE_V16HI_UQI
),
2030 LASX_BUILTIN (xvsllwil_d_w
, LARCH_V4DI_FTYPE_V8SI_UQI
),
2031 LASX_BUILTIN (xvsllwil_hu_bu
, LARCH_UV16HI_FTYPE_UV32QI_UQI
), /* FIXME: U? */
2032 LASX_BUILTIN (xvsllwil_wu_hu
, LARCH_UV8SI_FTYPE_UV16HI_UQI
),
2033 LASX_BUILTIN (xvsllwil_du_wu
, LARCH_UV4DI_FTYPE_UV8SI_UQI
),
2034 LASX_BUILTIN (xvsran_b_h
, LARCH_V32QI_FTYPE_V16HI_V16HI
),
2035 LASX_BUILTIN (xvsran_h_w
, LARCH_V16HI_FTYPE_V8SI_V8SI
),
2036 LASX_BUILTIN (xvsran_w_d
, LARCH_V8SI_FTYPE_V4DI_V4DI
),
2037 LASX_BUILTIN (xvssran_b_h
, LARCH_V32QI_FTYPE_V16HI_V16HI
),
2038 LASX_BUILTIN (xvssran_h_w
, LARCH_V16HI_FTYPE_V8SI_V8SI
),
2039 LASX_BUILTIN (xvssran_w_d
, LARCH_V8SI_FTYPE_V4DI_V4DI
),
2040 LASX_BUILTIN (xvssran_bu_h
, LARCH_UV32QI_FTYPE_UV16HI_UV16HI
),
2041 LASX_BUILTIN (xvssran_hu_w
, LARCH_UV16HI_FTYPE_UV8SI_UV8SI
),
2042 LASX_BUILTIN (xvssran_wu_d
, LARCH_UV8SI_FTYPE_UV4DI_UV4DI
),
2043 LASX_BUILTIN (xvsrarn_b_h
, LARCH_V32QI_FTYPE_V16HI_V16HI
),
2044 LASX_BUILTIN (xvsrarn_h_w
, LARCH_V16HI_FTYPE_V8SI_V8SI
),
2045 LASX_BUILTIN (xvsrarn_w_d
, LARCH_V8SI_FTYPE_V4DI_V4DI
),
2046 LASX_BUILTIN (xvssrarn_b_h
, LARCH_V32QI_FTYPE_V16HI_V16HI
),
2047 LASX_BUILTIN (xvssrarn_h_w
, LARCH_V16HI_FTYPE_V8SI_V8SI
),
2048 LASX_BUILTIN (xvssrarn_w_d
, LARCH_V8SI_FTYPE_V4DI_V4DI
),
2049 LASX_BUILTIN (xvssrarn_bu_h
, LARCH_UV32QI_FTYPE_UV16HI_UV16HI
),
2050 LASX_BUILTIN (xvssrarn_hu_w
, LARCH_UV16HI_FTYPE_UV8SI_UV8SI
),
2051 LASX_BUILTIN (xvssrarn_wu_d
, LARCH_UV8SI_FTYPE_UV4DI_UV4DI
),
2052 LASX_BUILTIN (xvsrln_b_h
, LARCH_V32QI_FTYPE_V16HI_V16HI
),
2053 LASX_BUILTIN (xvsrln_h_w
, LARCH_V16HI_FTYPE_V8SI_V8SI
),
2054 LASX_BUILTIN (xvsrln_w_d
, LARCH_V8SI_FTYPE_V4DI_V4DI
),
2055 LASX_BUILTIN (xvssrln_bu_h
, LARCH_UV32QI_FTYPE_UV16HI_UV16HI
),
2056 LASX_BUILTIN (xvssrln_hu_w
, LARCH_UV16HI_FTYPE_UV8SI_UV8SI
),
2057 LASX_BUILTIN (xvssrln_wu_d
, LARCH_UV8SI_FTYPE_UV4DI_UV4DI
),
2058 LASX_BUILTIN (xvsrlrn_b_h
, LARCH_V32QI_FTYPE_V16HI_V16HI
),
2059 LASX_BUILTIN (xvsrlrn_h_w
, LARCH_V16HI_FTYPE_V8SI_V8SI
),
2060 LASX_BUILTIN (xvsrlrn_w_d
, LARCH_V8SI_FTYPE_V4DI_V4DI
),
2061 LASX_BUILTIN (xvssrlrn_bu_h
, LARCH_UV32QI_FTYPE_UV16HI_UV16HI
),
2062 LASX_BUILTIN (xvssrlrn_hu_w
, LARCH_UV16HI_FTYPE_UV8SI_UV8SI
),
2063 LASX_BUILTIN (xvssrlrn_wu_d
, LARCH_UV8SI_FTYPE_UV4DI_UV4DI
),
2064 LASX_BUILTIN (xvfrstpi_b
, LARCH_V32QI_FTYPE_V32QI_V32QI_UQI
),
2065 LASX_BUILTIN (xvfrstpi_h
, LARCH_V16HI_FTYPE_V16HI_V16HI_UQI
),
2066 LASX_BUILTIN (xvfrstp_b
, LARCH_V32QI_FTYPE_V32QI_V32QI_V32QI
),
2067 LASX_BUILTIN (xvfrstp_h
, LARCH_V16HI_FTYPE_V16HI_V16HI_V16HI
),
2068 LASX_BUILTIN (xvshuf4i_d
, LARCH_V4DI_FTYPE_V4DI_V4DI_USI
),
2069 LASX_BUILTIN (xvbsrl_v
, LARCH_V32QI_FTYPE_V32QI_UQI
),
2070 LASX_BUILTIN (xvbsll_v
, LARCH_V32QI_FTYPE_V32QI_UQI
),
2071 LASX_BUILTIN (xvextrins_b
, LARCH_V32QI_FTYPE_V32QI_V32QI_USI
),
2072 LASX_BUILTIN (xvextrins_h
, LARCH_V16HI_FTYPE_V16HI_V16HI_USI
),
2073 LASX_BUILTIN (xvextrins_w
, LARCH_V8SI_FTYPE_V8SI_V8SI_USI
),
2074 LASX_BUILTIN (xvextrins_d
, LARCH_V4DI_FTYPE_V4DI_V4DI_USI
),
2075 LASX_BUILTIN (xvmskltz_b
, LARCH_V32QI_FTYPE_V32QI
),
2076 LASX_BUILTIN (xvmskltz_h
, LARCH_V16HI_FTYPE_V16HI
),
2077 LASX_BUILTIN (xvmskltz_w
, LARCH_V8SI_FTYPE_V8SI
),
2078 LASX_BUILTIN (xvmskltz_d
, LARCH_V4DI_FTYPE_V4DI
),
2079 LASX_BUILTIN (xvsigncov_b
, LARCH_V32QI_FTYPE_V32QI_V32QI
),
2080 LASX_BUILTIN (xvsigncov_h
, LARCH_V16HI_FTYPE_V16HI_V16HI
),
2081 LASX_BUILTIN (xvsigncov_w
, LARCH_V8SI_FTYPE_V8SI_V8SI
),
2082 LASX_BUILTIN (xvsigncov_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
2083 LASX_BUILTIN (xvfmadd_s
, LARCH_V8SF_FTYPE_V8SF_V8SF_V8SF
),
2084 LASX_BUILTIN (xvfmadd_d
, LARCH_V4DF_FTYPE_V4DF_V4DF_V4DF
),
2085 LASX_BUILTIN (xvfmsub_s
, LARCH_V8SF_FTYPE_V8SF_V8SF_V8SF
),
2086 LASX_BUILTIN (xvfmsub_d
, LARCH_V4DF_FTYPE_V4DF_V4DF_V4DF
),
2087 LASX_BUILTIN (xvfnmadd_s
, LARCH_V8SF_FTYPE_V8SF_V8SF_V8SF
),
2088 LASX_BUILTIN (xvfnmadd_d
, LARCH_V4DF_FTYPE_V4DF_V4DF_V4DF
),
2089 LASX_BUILTIN (xvfnmsub_s
, LARCH_V8SF_FTYPE_V8SF_V8SF_V8SF
),
2090 LASX_BUILTIN (xvfnmsub_d
, LARCH_V4DF_FTYPE_V4DF_V4DF_V4DF
),
2091 LASX_BUILTIN (xvftintrne_w_s
, LARCH_V8SI_FTYPE_V8SF
),
2092 LASX_BUILTIN (xvftintrne_l_d
, LARCH_V4DI_FTYPE_V4DF
),
2093 LASX_BUILTIN (xvftintrp_w_s
, LARCH_V8SI_FTYPE_V8SF
),
2094 LASX_BUILTIN (xvftintrp_l_d
, LARCH_V4DI_FTYPE_V4DF
),
2095 LASX_BUILTIN (xvftintrm_w_s
, LARCH_V8SI_FTYPE_V8SF
),
2096 LASX_BUILTIN (xvftintrm_l_d
, LARCH_V4DI_FTYPE_V4DF
),
2097 LASX_BUILTIN (xvftint_w_d
, LARCH_V8SI_FTYPE_V4DF_V4DF
),
2098 LASX_BUILTIN (xvffint_s_l
, LARCH_V8SF_FTYPE_V4DI_V4DI
),
2099 LASX_BUILTIN (xvftintrz_w_d
, LARCH_V8SI_FTYPE_V4DF_V4DF
),
2100 LASX_BUILTIN (xvftintrp_w_d
, LARCH_V8SI_FTYPE_V4DF_V4DF
),
2101 LASX_BUILTIN (xvftintrm_w_d
, LARCH_V8SI_FTYPE_V4DF_V4DF
),
2102 LASX_BUILTIN (xvftintrne_w_d
, LARCH_V8SI_FTYPE_V4DF_V4DF
),
2103 LASX_BUILTIN (xvftinth_l_s
, LARCH_V4DI_FTYPE_V8SF
),
2104 LASX_BUILTIN (xvftintl_l_s
, LARCH_V4DI_FTYPE_V8SF
),
2105 LASX_BUILTIN (xvffinth_d_w
, LARCH_V4DF_FTYPE_V8SI
),
2106 LASX_BUILTIN (xvffintl_d_w
, LARCH_V4DF_FTYPE_V8SI
),
2107 LASX_BUILTIN (xvftintrzh_l_s
, LARCH_V4DI_FTYPE_V8SF
),
2108 LASX_BUILTIN (xvftintrzl_l_s
, LARCH_V4DI_FTYPE_V8SF
),
2109 LASX_BUILTIN (xvftintrph_l_s
, LARCH_V4DI_FTYPE_V8SF
),
2110 LASX_BUILTIN (xvftintrpl_l_s
, LARCH_V4DI_FTYPE_V8SF
),
2111 LASX_BUILTIN (xvftintrmh_l_s
, LARCH_V4DI_FTYPE_V8SF
),
2112 LASX_BUILTIN (xvftintrml_l_s
, LARCH_V4DI_FTYPE_V8SF
),
2113 LASX_BUILTIN (xvftintrneh_l_s
, LARCH_V4DI_FTYPE_V8SF
),
2114 LASX_BUILTIN (xvftintrnel_l_s
, LARCH_V4DI_FTYPE_V8SF
),
2115 LASX_BUILTIN (xvfrintrne_s
, LARCH_V8SF_FTYPE_V8SF
),
2116 LASX_BUILTIN (xvfrintrne_d
, LARCH_V4DF_FTYPE_V4DF
),
2117 LASX_BUILTIN (xvfrintrz_s
, LARCH_V8SF_FTYPE_V8SF
),
2118 LASX_BUILTIN (xvfrintrz_d
, LARCH_V4DF_FTYPE_V4DF
),
2119 LASX_BUILTIN (xvfrintrp_s
, LARCH_V8SF_FTYPE_V8SF
),
2120 LASX_BUILTIN (xvfrintrp_d
, LARCH_V4DF_FTYPE_V4DF
),
2121 LASX_BUILTIN (xvfrintrm_s
, LARCH_V8SF_FTYPE_V8SF
),
2122 LASX_BUILTIN (xvfrintrm_d
, LARCH_V4DF_FTYPE_V4DF
),
2123 LASX_BUILTIN (xvld
, LARCH_V32QI_FTYPE_CVPOINTER_SI
),
2124 LASX_NO_TARGET_BUILTIN (xvst
, LARCH_VOID_FTYPE_V32QI_CVPOINTER_SI
),
2125 LASX_NO_TARGET_BUILTIN (xvstelm_b
, LARCH_VOID_FTYPE_V32QI_CVPOINTER_SI_UQI
),
2126 LASX_NO_TARGET_BUILTIN (xvstelm_h
, LARCH_VOID_FTYPE_V16HI_CVPOINTER_SI_UQI
),
2127 LASX_NO_TARGET_BUILTIN (xvstelm_w
, LARCH_VOID_FTYPE_V8SI_CVPOINTER_SI_UQI
),
2128 LASX_NO_TARGET_BUILTIN (xvstelm_d
, LARCH_VOID_FTYPE_V4DI_CVPOINTER_SI_UQI
),
2129 LASX_BUILTIN (xvinsve0_w
, LARCH_V8SI_FTYPE_V8SI_V8SI_UQI
),
2130 LASX_BUILTIN (xvinsve0_d
, LARCH_V4DI_FTYPE_V4DI_V4DI_UQI
),
2131 LASX_BUILTIN (xvpickve_w
, LARCH_V8SI_FTYPE_V8SI_UQI
),
2132 LASX_BUILTIN (xvpickve_d
, LARCH_V4DI_FTYPE_V4DI_UQI
),
2133 LASX_BUILTIN (xvpickve_w_f
, LARCH_V8SF_FTYPE_V8SF_UQI
),
2134 LASX_BUILTIN (xvpickve_d_f
, LARCH_V4DF_FTYPE_V4DF_UQI
),
2135 LASX_BUILTIN (xvssrlrn_b_h
, LARCH_V32QI_FTYPE_V16HI_V16HI
),
2136 LASX_BUILTIN (xvssrlrn_h_w
, LARCH_V16HI_FTYPE_V8SI_V8SI
),
2137 LASX_BUILTIN (xvssrlrn_w_d
, LARCH_V8SI_FTYPE_V4DI_V4DI
),
2138 LASX_BUILTIN (xvssrln_b_h
, LARCH_V32QI_FTYPE_V16HI_V16HI
),
2139 LASX_BUILTIN (xvssrln_h_w
, LARCH_V16HI_FTYPE_V8SI_V8SI
),
2140 LASX_BUILTIN (xvssrln_w_d
, LARCH_V8SI_FTYPE_V4DI_V4DI
),
2141 LASX_BUILTIN (xvorn_v
, LARCH_UV32QI_FTYPE_UV32QI_UV32QI
),
2142 LASX_BUILTIN (xvldi
, LARCH_V4DI_FTYPE_HI
),
2143 LASX_BUILTIN (xvldx
, LARCH_V32QI_FTYPE_CVPOINTER_DI
),
2144 LASX_NO_TARGET_BUILTIN (xvstx
, LARCH_VOID_FTYPE_V32QI_CVPOINTER_DI
),
2145 LASX_BUILTIN (xvextl_qu_du
, LARCH_UV4DI_FTYPE_UV4DI
),
2148 LASX_BUILTIN (xvinsgr2vr_w
, LARCH_V8SI_FTYPE_V8SI_SI_UQI
),
2149 LASX_BUILTIN (xvinsgr2vr_d
, LARCH_V4DI_FTYPE_V4DI_DI_UQI
),
2151 LASX_BUILTIN (xvreplve0_b
, LARCH_V32QI_FTYPE_V32QI
),
2152 LASX_BUILTIN (xvreplve0_h
, LARCH_V16HI_FTYPE_V16HI
),
2153 LASX_BUILTIN (xvreplve0_w
, LARCH_V8SI_FTYPE_V8SI
),
2154 LASX_BUILTIN (xvreplve0_d
, LARCH_V4DI_FTYPE_V4DI
),
2155 LASX_BUILTIN (xvreplve0_q
, LARCH_V32QI_FTYPE_V32QI
),
2156 LASX_BUILTIN (vext2xv_h_b
, LARCH_V16HI_FTYPE_V32QI
),
2157 LASX_BUILTIN (vext2xv_w_h
, LARCH_V8SI_FTYPE_V16HI
),
2158 LASX_BUILTIN (vext2xv_d_w
, LARCH_V4DI_FTYPE_V8SI
),
2159 LASX_BUILTIN (vext2xv_w_b
, LARCH_V8SI_FTYPE_V32QI
),
2160 LASX_BUILTIN (vext2xv_d_h
, LARCH_V4DI_FTYPE_V16HI
),
2161 LASX_BUILTIN (vext2xv_d_b
, LARCH_V4DI_FTYPE_V32QI
),
2162 LASX_BUILTIN (vext2xv_hu_bu
, LARCH_V16HI_FTYPE_V32QI
),
2163 LASX_BUILTIN (vext2xv_wu_hu
, LARCH_V8SI_FTYPE_V16HI
),
2164 LASX_BUILTIN (vext2xv_du_wu
, LARCH_V4DI_FTYPE_V8SI
),
2165 LASX_BUILTIN (vext2xv_wu_bu
, LARCH_V8SI_FTYPE_V32QI
),
2166 LASX_BUILTIN (vext2xv_du_hu
, LARCH_V4DI_FTYPE_V16HI
),
2167 LASX_BUILTIN (vext2xv_du_bu
, LARCH_V4DI_FTYPE_V32QI
),
2168 LASX_BUILTIN (xvpermi_q
, LARCH_V32QI_FTYPE_V32QI_V32QI_USI
),
2169 LASX_BUILTIN (xvpermi_d
, LARCH_V4DI_FTYPE_V4DI_USI
),
2170 LASX_BUILTIN (xvperm_w
, LARCH_V8SI_FTYPE_V8SI_V8SI
),
2171 LASX_BUILTIN_TEST_BRANCH (xbz_b
, LARCH_SI_FTYPE_UV32QI
),
2172 LASX_BUILTIN_TEST_BRANCH (xbz_h
, LARCH_SI_FTYPE_UV16HI
),
2173 LASX_BUILTIN_TEST_BRANCH (xbz_w
, LARCH_SI_FTYPE_UV8SI
),
2174 LASX_BUILTIN_TEST_BRANCH (xbz_d
, LARCH_SI_FTYPE_UV4DI
),
2175 LASX_BUILTIN_TEST_BRANCH (xbnz_b
, LARCH_SI_FTYPE_UV32QI
),
2176 LASX_BUILTIN_TEST_BRANCH (xbnz_h
, LARCH_SI_FTYPE_UV16HI
),
2177 LASX_BUILTIN_TEST_BRANCH (xbnz_w
, LARCH_SI_FTYPE_UV8SI
),
2178 LASX_BUILTIN_TEST_BRANCH (xbnz_d
, LARCH_SI_FTYPE_UV4DI
),
2179 LASX_BUILTIN_TEST_BRANCH (xbz_v
, LARCH_SI_FTYPE_UV32QI
),
2180 LASX_BUILTIN_TEST_BRANCH (xbnz_v
, LARCH_SI_FTYPE_UV32QI
),
2181 LASX_BUILTIN (xvldrepl_b
, LARCH_V32QI_FTYPE_CVPOINTER_SI
),
2182 LASX_BUILTIN (xvldrepl_h
, LARCH_V16HI_FTYPE_CVPOINTER_SI
),
2183 LASX_BUILTIN (xvldrepl_w
, LARCH_V8SI_FTYPE_CVPOINTER_SI
),
2184 LASX_BUILTIN (xvldrepl_d
, LARCH_V4DI_FTYPE_CVPOINTER_SI
),
2185 LASX_BUILTIN (xvpickve2gr_w
, LARCH_SI_FTYPE_V8SI_UQI
),
2186 LASX_BUILTIN (xvpickve2gr_wu
, LARCH_USI_FTYPE_V8SI_UQI
),
2187 LASX_BUILTIN (xvpickve2gr_d
, LARCH_DI_FTYPE_V4DI_UQI
),
2188 LASX_BUILTIN (xvpickve2gr_du
, LARCH_UDI_FTYPE_V4DI_UQI
),
2190 LASX_BUILTIN (xvaddwev_q_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
2191 LASX_BUILTIN (xvaddwev_d_w
, LARCH_V4DI_FTYPE_V8SI_V8SI
),
2192 LASX_BUILTIN (xvaddwev_w_h
, LARCH_V8SI_FTYPE_V16HI_V16HI
),
2193 LASX_BUILTIN (xvaddwev_h_b
, LARCH_V16HI_FTYPE_V32QI_V32QI
),
2194 LASX_BUILTIN (xvaddwev_q_du
, LARCH_V4DI_FTYPE_UV4DI_UV4DI
),
2195 LASX_BUILTIN (xvaddwev_d_wu
, LARCH_V4DI_FTYPE_UV8SI_UV8SI
),
2196 LASX_BUILTIN (xvaddwev_w_hu
, LARCH_V8SI_FTYPE_UV16HI_UV16HI
),
2197 LASX_BUILTIN (xvaddwev_h_bu
, LARCH_V16HI_FTYPE_UV32QI_UV32QI
),
2198 LASX_BUILTIN (xvsubwev_q_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
2199 LASX_BUILTIN (xvsubwev_d_w
, LARCH_V4DI_FTYPE_V8SI_V8SI
),
2200 LASX_BUILTIN (xvsubwev_w_h
, LARCH_V8SI_FTYPE_V16HI_V16HI
),
2201 LASX_BUILTIN (xvsubwev_h_b
, LARCH_V16HI_FTYPE_V32QI_V32QI
),
2202 LASX_BUILTIN (xvsubwev_q_du
, LARCH_V4DI_FTYPE_UV4DI_UV4DI
),
2203 LASX_BUILTIN (xvsubwev_d_wu
, LARCH_V4DI_FTYPE_UV8SI_UV8SI
),
2204 LASX_BUILTIN (xvsubwev_w_hu
, LARCH_V8SI_FTYPE_UV16HI_UV16HI
),
2205 LASX_BUILTIN (xvsubwev_h_bu
, LARCH_V16HI_FTYPE_UV32QI_UV32QI
),
2206 LASX_BUILTIN (xvmulwev_q_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
2207 LASX_BUILTIN (xvmulwev_d_w
, LARCH_V4DI_FTYPE_V8SI_V8SI
),
2208 LASX_BUILTIN (xvmulwev_w_h
, LARCH_V8SI_FTYPE_V16HI_V16HI
),
2209 LASX_BUILTIN (xvmulwev_h_b
, LARCH_V16HI_FTYPE_V32QI_V32QI
),
2210 LASX_BUILTIN (xvmulwev_q_du
, LARCH_V4DI_FTYPE_UV4DI_UV4DI
),
2211 LASX_BUILTIN (xvmulwev_d_wu
, LARCH_V4DI_FTYPE_UV8SI_UV8SI
),
2212 LASX_BUILTIN (xvmulwev_w_hu
, LARCH_V8SI_FTYPE_UV16HI_UV16HI
),
2213 LASX_BUILTIN (xvmulwev_h_bu
, LARCH_V16HI_FTYPE_UV32QI_UV32QI
),
2214 LASX_BUILTIN (xvaddwod_q_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
2215 LASX_BUILTIN (xvaddwod_d_w
, LARCH_V4DI_FTYPE_V8SI_V8SI
),
2216 LASX_BUILTIN (xvaddwod_w_h
, LARCH_V8SI_FTYPE_V16HI_V16HI
),
2217 LASX_BUILTIN (xvaddwod_h_b
, LARCH_V16HI_FTYPE_V32QI_V32QI
),
2218 LASX_BUILTIN (xvaddwod_q_du
, LARCH_V4DI_FTYPE_UV4DI_UV4DI
),
2219 LASX_BUILTIN (xvaddwod_d_wu
, LARCH_V4DI_FTYPE_UV8SI_UV8SI
),
2220 LASX_BUILTIN (xvaddwod_w_hu
, LARCH_V8SI_FTYPE_UV16HI_UV16HI
),
2221 LASX_BUILTIN (xvaddwod_h_bu
, LARCH_V16HI_FTYPE_UV32QI_UV32QI
),
2222 LASX_BUILTIN (xvsubwod_q_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
2223 LASX_BUILTIN (xvsubwod_d_w
, LARCH_V4DI_FTYPE_V8SI_V8SI
),
2224 LASX_BUILTIN (xvsubwod_w_h
, LARCH_V8SI_FTYPE_V16HI_V16HI
),
2225 LASX_BUILTIN (xvsubwod_h_b
, LARCH_V16HI_FTYPE_V32QI_V32QI
),
2226 LASX_BUILTIN (xvsubwod_q_du
, LARCH_V4DI_FTYPE_UV4DI_UV4DI
),
2227 LASX_BUILTIN (xvsubwod_d_wu
, LARCH_V4DI_FTYPE_UV8SI_UV8SI
),
2228 LASX_BUILTIN (xvsubwod_w_hu
, LARCH_V8SI_FTYPE_UV16HI_UV16HI
),
2229 LASX_BUILTIN (xvsubwod_h_bu
, LARCH_V16HI_FTYPE_UV32QI_UV32QI
),
2230 LASX_BUILTIN (xvmulwod_q_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
2231 LASX_BUILTIN (xvmulwod_d_w
, LARCH_V4DI_FTYPE_V8SI_V8SI
),
2232 LASX_BUILTIN (xvmulwod_w_h
, LARCH_V8SI_FTYPE_V16HI_V16HI
),
2233 LASX_BUILTIN (xvmulwod_h_b
, LARCH_V16HI_FTYPE_V32QI_V32QI
),
2234 LASX_BUILTIN (xvmulwod_q_du
, LARCH_V4DI_FTYPE_UV4DI_UV4DI
),
2235 LASX_BUILTIN (xvmulwod_d_wu
, LARCH_V4DI_FTYPE_UV8SI_UV8SI
),
2236 LASX_BUILTIN (xvmulwod_w_hu
, LARCH_V8SI_FTYPE_UV16HI_UV16HI
),
2237 LASX_BUILTIN (xvmulwod_h_bu
, LARCH_V16HI_FTYPE_UV32QI_UV32QI
),
2238 LASX_BUILTIN (xvaddwev_d_wu_w
, LARCH_V4DI_FTYPE_UV8SI_V8SI
),
2239 LASX_BUILTIN (xvaddwev_w_hu_h
, LARCH_V8SI_FTYPE_UV16HI_V16HI
),
2240 LASX_BUILTIN (xvaddwev_h_bu_b
, LARCH_V16HI_FTYPE_UV32QI_V32QI
),
2241 LASX_BUILTIN (xvmulwev_d_wu_w
, LARCH_V4DI_FTYPE_UV8SI_V8SI
),
2242 LASX_BUILTIN (xvmulwev_w_hu_h
, LARCH_V8SI_FTYPE_UV16HI_V16HI
),
2243 LASX_BUILTIN (xvmulwev_h_bu_b
, LARCH_V16HI_FTYPE_UV32QI_V32QI
),
2244 LASX_BUILTIN (xvaddwod_d_wu_w
, LARCH_V4DI_FTYPE_UV8SI_V8SI
),
2245 LASX_BUILTIN (xvaddwod_w_hu_h
, LARCH_V8SI_FTYPE_UV16HI_V16HI
),
2246 LASX_BUILTIN (xvaddwod_h_bu_b
, LARCH_V16HI_FTYPE_UV32QI_V32QI
),
2247 LASX_BUILTIN (xvmulwod_d_wu_w
, LARCH_V4DI_FTYPE_UV8SI_V8SI
),
2248 LASX_BUILTIN (xvmulwod_w_hu_h
, LARCH_V8SI_FTYPE_UV16HI_V16HI
),
2249 LASX_BUILTIN (xvmulwod_h_bu_b
, LARCH_V16HI_FTYPE_UV32QI_V32QI
),
2250 LASX_BUILTIN (xvhaddw_q_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
2251 LASX_BUILTIN (xvhaddw_qu_du
, LARCH_UV4DI_FTYPE_UV4DI_UV4DI
),
2252 LASX_BUILTIN (xvhsubw_q_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
2253 LASX_BUILTIN (xvhsubw_qu_du
, LARCH_UV4DI_FTYPE_UV4DI_UV4DI
),
2254 LASX_BUILTIN (xvmaddwev_q_d
, LARCH_V4DI_FTYPE_V4DI_V4DI_V4DI
),
2255 LASX_BUILTIN (xvmaddwev_d_w
, LARCH_V4DI_FTYPE_V4DI_V8SI_V8SI
),
2256 LASX_BUILTIN (xvmaddwev_w_h
, LARCH_V8SI_FTYPE_V8SI_V16HI_V16HI
),
2257 LASX_BUILTIN (xvmaddwev_h_b
, LARCH_V16HI_FTYPE_V16HI_V32QI_V32QI
),
2258 LASX_BUILTIN (xvmaddwev_q_du
, LARCH_UV4DI_FTYPE_UV4DI_UV4DI_UV4DI
),
2259 LASX_BUILTIN (xvmaddwev_d_wu
, LARCH_UV4DI_FTYPE_UV4DI_UV8SI_UV8SI
),
2260 LASX_BUILTIN (xvmaddwev_w_hu
, LARCH_UV8SI_FTYPE_UV8SI_UV16HI_UV16HI
),
2261 LASX_BUILTIN (xvmaddwev_h_bu
, LARCH_UV16HI_FTYPE_UV16HI_UV32QI_UV32QI
),
2262 LASX_BUILTIN (xvmaddwod_q_d
, LARCH_V4DI_FTYPE_V4DI_V4DI_V4DI
),
2263 LASX_BUILTIN (xvmaddwod_d_w
, LARCH_V4DI_FTYPE_V4DI_V8SI_V8SI
),
2264 LASX_BUILTIN (xvmaddwod_w_h
, LARCH_V8SI_FTYPE_V8SI_V16HI_V16HI
),
2265 LASX_BUILTIN (xvmaddwod_h_b
, LARCH_V16HI_FTYPE_V16HI_V32QI_V32QI
),
2266 LASX_BUILTIN (xvmaddwod_q_du
, LARCH_UV4DI_FTYPE_UV4DI_UV4DI_UV4DI
),
2267 LASX_BUILTIN (xvmaddwod_d_wu
, LARCH_UV4DI_FTYPE_UV4DI_UV8SI_UV8SI
),
2268 LASX_BUILTIN (xvmaddwod_w_hu
, LARCH_UV8SI_FTYPE_UV8SI_UV16HI_UV16HI
),
2269 LASX_BUILTIN (xvmaddwod_h_bu
, LARCH_UV16HI_FTYPE_UV16HI_UV32QI_UV32QI
),
2270 LASX_BUILTIN (xvmaddwev_q_du_d
, LARCH_V4DI_FTYPE_V4DI_UV4DI_V4DI
),
2271 LASX_BUILTIN (xvmaddwev_d_wu_w
, LARCH_V4DI_FTYPE_V4DI_UV8SI_V8SI
),
2272 LASX_BUILTIN (xvmaddwev_w_hu_h
, LARCH_V8SI_FTYPE_V8SI_UV16HI_V16HI
),
2273 LASX_BUILTIN (xvmaddwev_h_bu_b
, LARCH_V16HI_FTYPE_V16HI_UV32QI_V32QI
),
2274 LASX_BUILTIN (xvmaddwod_q_du_d
, LARCH_V4DI_FTYPE_V4DI_UV4DI_V4DI
),
2275 LASX_BUILTIN (xvmaddwod_d_wu_w
, LARCH_V4DI_FTYPE_V4DI_UV8SI_V8SI
),
2276 LASX_BUILTIN (xvmaddwod_w_hu_h
, LARCH_V8SI_FTYPE_V8SI_UV16HI_V16HI
),
2277 LASX_BUILTIN (xvmaddwod_h_bu_b
, LARCH_V16HI_FTYPE_V16HI_UV32QI_V32QI
),
2278 LASX_BUILTIN (xvrotr_b
, LARCH_V32QI_FTYPE_V32QI_V32QI
),
2279 LASX_BUILTIN (xvrotr_h
, LARCH_V16HI_FTYPE_V16HI_V16HI
),
2280 LASX_BUILTIN (xvrotr_w
, LARCH_V8SI_FTYPE_V8SI_V8SI
),
2281 LASX_BUILTIN (xvrotr_d
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
2282 LASX_BUILTIN (xvadd_q
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
2283 LASX_BUILTIN (xvsub_q
, LARCH_V4DI_FTYPE_V4DI_V4DI
),
2284 LASX_BUILTIN (xvaddwev_q_du_d
, LARCH_V4DI_FTYPE_UV4DI_V4DI
),
2285 LASX_BUILTIN (xvaddwod_q_du_d
, LARCH_V4DI_FTYPE_UV4DI_V4DI
),
2286 LASX_BUILTIN (xvmulwev_q_du_d
, LARCH_V4DI_FTYPE_UV4DI_V4DI
),
2287 LASX_BUILTIN (xvmulwod_q_du_d
, LARCH_V4DI_FTYPE_UV4DI_V4DI
),
2288 LASX_BUILTIN (xvmskgez_b
, LARCH_V32QI_FTYPE_V32QI
),
2289 LASX_BUILTIN (xvmsknz_b
, LARCH_V32QI_FTYPE_V32QI
),
2290 LASX_BUILTIN (xvexth_h_b
, LARCH_V16HI_FTYPE_V32QI
),
2291 LASX_BUILTIN (xvexth_w_h
, LARCH_V8SI_FTYPE_V16HI
),
2292 LASX_BUILTIN (xvexth_d_w
, LARCH_V4DI_FTYPE_V8SI
),
2293 LASX_BUILTIN (xvexth_q_d
, LARCH_V4DI_FTYPE_V4DI
),
2294 LASX_BUILTIN (xvexth_hu_bu
, LARCH_UV16HI_FTYPE_UV32QI
),
2295 LASX_BUILTIN (xvexth_wu_hu
, LARCH_UV8SI_FTYPE_UV16HI
),
2296 LASX_BUILTIN (xvexth_du_wu
, LARCH_UV4DI_FTYPE_UV8SI
),
2297 LASX_BUILTIN (xvexth_qu_du
, LARCH_UV4DI_FTYPE_UV4DI
),
2298 LASX_BUILTIN (xvrotri_b
, LARCH_V32QI_FTYPE_V32QI_UQI
),
2299 LASX_BUILTIN (xvrotri_h
, LARCH_V16HI_FTYPE_V16HI_UQI
),
2300 LASX_BUILTIN (xvrotri_w
, LARCH_V8SI_FTYPE_V8SI_UQI
),
2301 LASX_BUILTIN (xvrotri_d
, LARCH_V4DI_FTYPE_V4DI_UQI
),
2302 LASX_BUILTIN (xvextl_q_d
, LARCH_V4DI_FTYPE_V4DI
),
2303 LASX_BUILTIN (xvsrlni_b_h
, LARCH_V32QI_FTYPE_V32QI_V32QI_USI
),
2304 LASX_BUILTIN (xvsrlni_h_w
, LARCH_V16HI_FTYPE_V16HI_V16HI_USI
),
2305 LASX_BUILTIN (xvsrlni_w_d
, LARCH_V8SI_FTYPE_V8SI_V8SI_USI
),
2306 LASX_BUILTIN (xvsrlni_d_q
, LARCH_V4DI_FTYPE_V4DI_V4DI_USI
),
2307 LASX_BUILTIN (xvsrlrni_b_h
, LARCH_V32QI_FTYPE_V32QI_V32QI_USI
),
2308 LASX_BUILTIN (xvsrlrni_h_w
, LARCH_V16HI_FTYPE_V16HI_V16HI_USI
),
2309 LASX_BUILTIN (xvsrlrni_w_d
, LARCH_V8SI_FTYPE_V8SI_V8SI_USI
),
2310 LASX_BUILTIN (xvsrlrni_d_q
, LARCH_V4DI_FTYPE_V4DI_V4DI_USI
),
2311 LASX_BUILTIN (xvssrlni_b_h
, LARCH_V32QI_FTYPE_V32QI_V32QI_USI
),
2312 LASX_BUILTIN (xvssrlni_h_w
, LARCH_V16HI_FTYPE_V16HI_V16HI_USI
),
2313 LASX_BUILTIN (xvssrlni_w_d
, LARCH_V8SI_FTYPE_V8SI_V8SI_USI
),
2314 LASX_BUILTIN (xvssrlni_d_q
, LARCH_V4DI_FTYPE_V4DI_V4DI_USI
),
2315 LASX_BUILTIN (xvssrlni_bu_h
, LARCH_UV32QI_FTYPE_UV32QI_V32QI_USI
),
2316 LASX_BUILTIN (xvssrlni_hu_w
, LARCH_UV16HI_FTYPE_UV16HI_V16HI_USI
),
2317 LASX_BUILTIN (xvssrlni_wu_d
, LARCH_UV8SI_FTYPE_UV8SI_V8SI_USI
),
2318 LASX_BUILTIN (xvssrlni_du_q
, LARCH_UV4DI_FTYPE_UV4DI_V4DI_USI
),
2319 LASX_BUILTIN (xvssrlrni_b_h
, LARCH_V32QI_FTYPE_V32QI_V32QI_USI
),
2320 LASX_BUILTIN (xvssrlrni_h_w
, LARCH_V16HI_FTYPE_V16HI_V16HI_USI
),
2321 LASX_BUILTIN (xvssrlrni_w_d
, LARCH_V8SI_FTYPE_V8SI_V8SI_USI
),
2322 LASX_BUILTIN (xvssrlrni_d_q
, LARCH_V4DI_FTYPE_V4DI_V4DI_USI
),
2323 LASX_BUILTIN (xvssrlrni_bu_h
, LARCH_UV32QI_FTYPE_UV32QI_V32QI_USI
),
2324 LASX_BUILTIN (xvssrlrni_hu_w
, LARCH_UV16HI_FTYPE_UV16HI_V16HI_USI
),
2325 LASX_BUILTIN (xvssrlrni_wu_d
, LARCH_UV8SI_FTYPE_UV8SI_V8SI_USI
),
2326 LASX_BUILTIN (xvssrlrni_du_q
, LARCH_UV4DI_FTYPE_UV4DI_V4DI_USI
),
2327 LASX_BUILTIN (xvsrani_b_h
, LARCH_V32QI_FTYPE_V32QI_V32QI_USI
),
2328 LASX_BUILTIN (xvsrani_h_w
, LARCH_V16HI_FTYPE_V16HI_V16HI_USI
),
2329 LASX_BUILTIN (xvsrani_w_d
, LARCH_V8SI_FTYPE_V8SI_V8SI_USI
),
2330 LASX_BUILTIN (xvsrani_d_q
, LARCH_V4DI_FTYPE_V4DI_V4DI_USI
),
2331 LASX_BUILTIN (xvsrarni_b_h
, LARCH_V32QI_FTYPE_V32QI_V32QI_USI
),
2332 LASX_BUILTIN (xvsrarni_h_w
, LARCH_V16HI_FTYPE_V16HI_V16HI_USI
),
2333 LASX_BUILTIN (xvsrarni_w_d
, LARCH_V8SI_FTYPE_V8SI_V8SI_USI
),
2334 LASX_BUILTIN (xvsrarni_d_q
, LARCH_V4DI_FTYPE_V4DI_V4DI_USI
),
2335 LASX_BUILTIN (xvssrani_b_h
, LARCH_V32QI_FTYPE_V32QI_V32QI_USI
),
2336 LASX_BUILTIN (xvssrani_h_w
, LARCH_V16HI_FTYPE_V16HI_V16HI_USI
),
2337 LASX_BUILTIN (xvssrani_w_d
, LARCH_V8SI_FTYPE_V8SI_V8SI_USI
),
2338 LASX_BUILTIN (xvssrani_d_q
, LARCH_V4DI_FTYPE_V4DI_V4DI_USI
),
2339 LASX_BUILTIN (xvssrani_bu_h
, LARCH_UV32QI_FTYPE_UV32QI_V32QI_USI
),
2340 LASX_BUILTIN (xvssrani_hu_w
, LARCH_UV16HI_FTYPE_UV16HI_V16HI_USI
),
2341 LASX_BUILTIN (xvssrani_wu_d
, LARCH_UV8SI_FTYPE_UV8SI_V8SI_USI
),
2342 LASX_BUILTIN (xvssrani_du_q
, LARCH_UV4DI_FTYPE_UV4DI_V4DI_USI
),
2343 LASX_BUILTIN (xvssrarni_b_h
, LARCH_V32QI_FTYPE_V32QI_V32QI_USI
),
2344 LASX_BUILTIN (xvssrarni_h_w
, LARCH_V16HI_FTYPE_V16HI_V16HI_USI
),
2345 LASX_BUILTIN (xvssrarni_w_d
, LARCH_V8SI_FTYPE_V8SI_V8SI_USI
),
2346 LASX_BUILTIN (xvssrarni_d_q
, LARCH_V4DI_FTYPE_V4DI_V4DI_USI
),
2347 LASX_BUILTIN (xvssrarni_bu_h
, LARCH_UV32QI_FTYPE_UV32QI_V32QI_USI
),
2348 LASX_BUILTIN (xvssrarni_hu_w
, LARCH_UV16HI_FTYPE_UV16HI_V16HI_USI
),
2349 LASX_BUILTIN (xvssrarni_wu_d
, LARCH_UV8SI_FTYPE_UV8SI_V8SI_USI
),
2350 LASX_BUILTIN (xvssrarni_du_q
, LARCH_UV4DI_FTYPE_UV4DI_V4DI_USI
)
2353 /* Index I is the function declaration for loongarch_builtins[I], or null if
2354 the function isn't defined on this target. */
2355 static GTY (()) tree loongarch_builtin_decls
[ARRAY_SIZE (loongarch_builtins
)];
2356 /* Get the index I of the function declaration for loongarch_builtin_decls[I]
2357 using the instruction code or return null if not defined for the target. */
2358 static GTY (()) int loongarch_get_builtin_decl_index
[NUM_INSN_CODES
];
2361 /* MODE is a vector mode whose elements have type TYPE. Return the type
2362 of the vector itself. */
2365 loongarch_builtin_vector_type (tree type
, machine_mode mode
)
2367 static tree types
[2 * (int) MAX_MACHINE_MODE
];
2370 mode_index
= (int) mode
;
2372 if (TREE_CODE (type
) == INTEGER_TYPE
&& TYPE_UNSIGNED (type
))
2373 mode_index
+= MAX_MACHINE_MODE
;
2375 if (types
[mode_index
] == NULL_TREE
)
2376 types
[mode_index
] = build_vector_type_for_mode (type
, mode
);
2377 return types
[mode_index
];
2380 /* Return a type for 'const volatile void *'. */
2383 loongarch_build_cvpointer_type (void)
2387 if (cache
== NULL_TREE
)
2388 cache
= build_pointer_type (build_qualified_type (void_type_node
,
2390 | TYPE_QUAL_VOLATILE
));
2394 /* Source-level argument types. */
2395 #define LARCH_ATYPE_VOID void_type_node
2396 #define LARCH_ATYPE_INT integer_type_node
2397 #define LARCH_ATYPE_POINTER ptr_type_node
2398 #define LARCH_ATYPE_CVPOINTER loongarch_build_cvpointer_type ()
2399 #define LARCH_ATYPE_BOOLEAN boolean_type_node
2400 /* Standard mode-based argument types. */
2401 #define LARCH_ATYPE_QI intQI_type_node
2402 #define LARCH_ATYPE_UQI unsigned_intQI_type_node
2403 #define LARCH_ATYPE_HI intHI_type_node
2404 #define LARCH_ATYPE_UHI unsigned_intHI_type_node
2405 #define LARCH_ATYPE_SI intSI_type_node
2406 #define LARCH_ATYPE_USI unsigned_intSI_type_node
2407 #define LARCH_ATYPE_DI intDI_type_node
2408 #define LARCH_ATYPE_UDI unsigned_intDI_type_node
2409 #define LARCH_ATYPE_SF float_type_node
2410 #define LARCH_ATYPE_DF double_type_node
2412 /* Vector argument types. */
2413 #define LARCH_ATYPE_V2SF \
2414 loongarch_builtin_vector_type (float_type_node, V2SFmode)
2415 #define LARCH_ATYPE_V2HI \
2416 loongarch_builtin_vector_type (intHI_type_node, V2HImode)
2417 #define LARCH_ATYPE_V2SI \
2418 loongarch_builtin_vector_type (intSI_type_node, V2SImode)
2419 #define LARCH_ATYPE_V4QI \
2420 loongarch_builtin_vector_type (intQI_type_node, V4QImode)
2421 #define LARCH_ATYPE_V4HI \
2422 loongarch_builtin_vector_type (intHI_type_node, V4HImode)
2423 #define LARCH_ATYPE_V8QI \
2424 loongarch_builtin_vector_type (intQI_type_node, V8QImode)
2426 #define LARCH_ATYPE_V2DI \
2427 loongarch_builtin_vector_type (long_long_integer_type_node, V2DImode)
2428 #define LARCH_ATYPE_V4SI \
2429 loongarch_builtin_vector_type (intSI_type_node, V4SImode)
2430 #define LARCH_ATYPE_V8HI \
2431 loongarch_builtin_vector_type (intHI_type_node, V8HImode)
2432 #define LARCH_ATYPE_V16QI \
2433 loongarch_builtin_vector_type (intQI_type_node, V16QImode)
2434 #define LARCH_ATYPE_V2DF \
2435 loongarch_builtin_vector_type (double_type_node, V2DFmode)
2436 #define LARCH_ATYPE_V4SF \
2437 loongarch_builtin_vector_type (float_type_node, V4SFmode)
2439 /* LoongArch ASX. */
2440 #define LARCH_ATYPE_V4DI \
2441 loongarch_builtin_vector_type (long_long_integer_type_node, V4DImode)
2442 #define LARCH_ATYPE_V8SI \
2443 loongarch_builtin_vector_type (intSI_type_node, V8SImode)
2444 #define LARCH_ATYPE_V16HI \
2445 loongarch_builtin_vector_type (intHI_type_node, V16HImode)
2446 #define LARCH_ATYPE_V32QI \
2447 loongarch_builtin_vector_type (intQI_type_node, V32QImode)
2448 #define LARCH_ATYPE_V4DF \
2449 loongarch_builtin_vector_type (double_type_node, V4DFmode)
2450 #define LARCH_ATYPE_V8SF \
2451 loongarch_builtin_vector_type (float_type_node, V8SFmode)
2453 #define LARCH_ATYPE_UV2DI \
2454 loongarch_builtin_vector_type (long_long_unsigned_type_node, V2DImode)
2455 #define LARCH_ATYPE_UV4SI \
2456 loongarch_builtin_vector_type (unsigned_intSI_type_node, V4SImode)
2457 #define LARCH_ATYPE_UV8HI \
2458 loongarch_builtin_vector_type (unsigned_intHI_type_node, V8HImode)
2459 #define LARCH_ATYPE_UV16QI \
2460 loongarch_builtin_vector_type (unsigned_intQI_type_node, V16QImode)
2462 #define LARCH_ATYPE_UV4DI \
2463 loongarch_builtin_vector_type (long_long_unsigned_type_node, V4DImode)
2464 #define LARCH_ATYPE_UV8SI \
2465 loongarch_builtin_vector_type (unsigned_intSI_type_node, V8SImode)
2466 #define LARCH_ATYPE_UV16HI \
2467 loongarch_builtin_vector_type (unsigned_intHI_type_node, V16HImode)
2468 #define LARCH_ATYPE_UV32QI \
2469 loongarch_builtin_vector_type (unsigned_intQI_type_node, V32QImode)
2471 #define LARCH_ATYPE_UV2SI \
2472 loongarch_builtin_vector_type (unsigned_intSI_type_node, V2SImode)
2473 #define LARCH_ATYPE_UV4HI \
2474 loongarch_builtin_vector_type (unsigned_intHI_type_node, V4HImode)
2475 #define LARCH_ATYPE_UV8QI \
2476 loongarch_builtin_vector_type (unsigned_intQI_type_node, V8QImode)
2478 /* LARCH_FTYPE_ATYPESN takes N LARCH_FTYPES-like type codes and lists
2479 their associated LARCH_ATYPEs. */
2480 #define LARCH_FTYPE_ATYPES1(A, B) LARCH_ATYPE_##A, LARCH_ATYPE_##B
2482 #define LARCH_FTYPE_ATYPES2(A, B, C) \
2483 LARCH_ATYPE_##A, LARCH_ATYPE_##B, LARCH_ATYPE_##C
2485 #define LARCH_FTYPE_ATYPES3(A, B, C, D) \
2486 LARCH_ATYPE_##A, LARCH_ATYPE_##B, LARCH_ATYPE_##C, LARCH_ATYPE_##D
2488 #define LARCH_FTYPE_ATYPES4(A, B, C, D, E) \
2489 LARCH_ATYPE_##A, LARCH_ATYPE_##B, LARCH_ATYPE_##C, LARCH_ATYPE_##D, \
2492 /* Return the function type associated with function prototype TYPE. */
2495 loongarch_build_function_type (enum loongarch_function_type type
)
2497 static tree types
[(int) LARCH_MAX_FTYPE_MAX
];
2499 if (types
[(int) type
] == NULL_TREE
)
2502 #define DEF_LARCH_FTYPE(NUM, ARGS) \
2503 case LARCH_FTYPE_NAME##NUM ARGS: \
2505 = build_function_type_list (LARCH_FTYPE_ATYPES##NUM ARGS, NULL_TREE); \
2507 #include "config/loongarch/loongarch-ftypes.def"
2508 #undef DEF_LARCH_FTYPE
2513 return types
[(int) type
];
2516 /* Implement TARGET_INIT_BUILTINS. */
2519 loongarch_init_builtins (void)
2521 const struct loongarch_builtin_description
*d
;
2525 /* Register the type float128_type_node as a built-in type and
2526 give it an alias "__float128". */
2527 (*lang_hooks
.types
.register_builtin_type
) (float128_type_node
,
2530 /* Iterate through all of the bdesc arrays, initializing all of the
2531 builtin functions. */
2532 for (i
= 0; i
< ARRAY_SIZE (loongarch_builtins
); i
++)
2534 d
= &loongarch_builtins
[i
];
2535 type
= loongarch_build_function_type (d
->function_type
);
2536 loongarch_builtin_decls
[i
]
2537 = add_builtin_function (d
->name
, type
, i
, BUILT_IN_MD
, NULL
,
2539 loongarch_get_builtin_decl_index
[d
->icode
] = i
;
2543 /* Implement TARGET_BUILTIN_DECL. */
2546 loongarch_builtin_decl (unsigned int code
, bool initialize_p ATTRIBUTE_UNUSED
)
2548 if (code
>= ARRAY_SIZE (loongarch_builtins
))
2549 return error_mark_node
;
2550 return loongarch_builtin_decls
[code
];
2553 /* Take argument ARGNO from EXP's argument list and convert it into
2554 an expand operand. Store the operand in *OP. */
2557 loongarch_prepare_builtin_arg (struct expand_operand
*op
, tree exp
,
2563 arg
= CALL_EXPR_ARG (exp
, argno
);
2564 value
= expand_normal (arg
);
2565 create_input_operand (op
, value
, TYPE_MODE (TREE_TYPE (arg
)));
2568 /* Return a const_int vector of VAL with mode MODE. */
2571 loongarch_gen_const_int_vector (machine_mode mode
, HOST_WIDE_INT val
)
2573 rtx c
= gen_int_mode (val
, GET_MODE_INNER (mode
));
2574 return gen_const_vec_duplicate (mode
, c
);
2577 /* Expand instruction ICODE as part of a built-in function sequence.
2578 Use the first NOPS elements of OPS as the instruction's operands.
2579 HAS_TARGET_P is true if operand 0 is a target; it is false if the
2580 instruction has no target.
2582 Return the target rtx if HAS_TARGET_P, otherwise return const0_rtx. */
2585 loongarch_expand_builtin_insn (enum insn_code icode
, unsigned int nops
,
2586 struct expand_operand
*ops
, bool has_target_p
)
2589 int rangelo
= 0, rangehi
= 0, error_opno
= 0;
2593 case CODE_FOR_lsx_vaddi_bu
:
2594 case CODE_FOR_lsx_vaddi_hu
:
2595 case CODE_FOR_lsx_vaddi_wu
:
2596 case CODE_FOR_lsx_vaddi_du
:
2597 case CODE_FOR_lsx_vslti_bu
:
2598 case CODE_FOR_lsx_vslti_hu
:
2599 case CODE_FOR_lsx_vslti_wu
:
2600 case CODE_FOR_lsx_vslti_du
:
2601 case CODE_FOR_lsx_vslei_bu
:
2602 case CODE_FOR_lsx_vslei_hu
:
2603 case CODE_FOR_lsx_vslei_wu
:
2604 case CODE_FOR_lsx_vslei_du
:
2605 case CODE_FOR_lsx_vmaxi_bu
:
2606 case CODE_FOR_lsx_vmaxi_hu
:
2607 case CODE_FOR_lsx_vmaxi_wu
:
2608 case CODE_FOR_lsx_vmaxi_du
:
2609 case CODE_FOR_lsx_vmini_bu
:
2610 case CODE_FOR_lsx_vmini_hu
:
2611 case CODE_FOR_lsx_vmini_wu
:
2612 case CODE_FOR_lsx_vmini_du
:
2613 case CODE_FOR_lsx_vsubi_bu
:
2614 case CODE_FOR_lsx_vsubi_hu
:
2615 case CODE_FOR_lsx_vsubi_wu
:
2616 case CODE_FOR_lsx_vsubi_du
:
2617 case CODE_FOR_lasx_xvaddi_bu
:
2618 case CODE_FOR_lasx_xvaddi_hu
:
2619 case CODE_FOR_lasx_xvaddi_wu
:
2620 case CODE_FOR_lasx_xvaddi_du
:
2621 case CODE_FOR_lasx_xvslti_bu
:
2622 case CODE_FOR_lasx_xvslti_hu
:
2623 case CODE_FOR_lasx_xvslti_wu
:
2624 case CODE_FOR_lasx_xvslti_du
:
2625 case CODE_FOR_lasx_xvslei_bu
:
2626 case CODE_FOR_lasx_xvslei_hu
:
2627 case CODE_FOR_lasx_xvslei_wu
:
2628 case CODE_FOR_lasx_xvslei_du
:
2629 case CODE_FOR_lasx_xvmaxi_bu
:
2630 case CODE_FOR_lasx_xvmaxi_hu
:
2631 case CODE_FOR_lasx_xvmaxi_wu
:
2632 case CODE_FOR_lasx_xvmaxi_du
:
2633 case CODE_FOR_lasx_xvmini_bu
:
2634 case CODE_FOR_lasx_xvmini_hu
:
2635 case CODE_FOR_lasx_xvmini_wu
:
2636 case CODE_FOR_lasx_xvmini_du
:
2637 case CODE_FOR_lasx_xvsubi_bu
:
2638 case CODE_FOR_lasx_xvsubi_hu
:
2639 case CODE_FOR_lasx_xvsubi_wu
:
2640 case CODE_FOR_lasx_xvsubi_du
:
2641 gcc_assert (has_target_p
&& nops
== 3);
2642 /* We only generate a vector of constants iff the second argument
2643 is an immediate. We also validate the range of the immediate. */
2644 if (CONST_INT_P (ops
[2].value
))
2648 if (IN_RANGE (INTVAL (ops
[2].value
), rangelo
, rangehi
))
2650 ops
[2].mode
= ops
[0].mode
;
2651 ops
[2].value
= loongarch_gen_const_int_vector (ops
[2].mode
,
2652 INTVAL (ops
[2].value
));
2659 case CODE_FOR_lsx_vseqi_b
:
2660 case CODE_FOR_lsx_vseqi_h
:
2661 case CODE_FOR_lsx_vseqi_w
:
2662 case CODE_FOR_lsx_vseqi_d
:
2663 case CODE_FOR_lsx_vslti_b
:
2664 case CODE_FOR_lsx_vslti_h
:
2665 case CODE_FOR_lsx_vslti_w
:
2666 case CODE_FOR_lsx_vslti_d
:
2667 case CODE_FOR_lsx_vslei_b
:
2668 case CODE_FOR_lsx_vslei_h
:
2669 case CODE_FOR_lsx_vslei_w
:
2670 case CODE_FOR_lsx_vslei_d
:
2671 case CODE_FOR_lsx_vmaxi_b
:
2672 case CODE_FOR_lsx_vmaxi_h
:
2673 case CODE_FOR_lsx_vmaxi_w
:
2674 case CODE_FOR_lsx_vmaxi_d
:
2675 case CODE_FOR_lsx_vmini_b
:
2676 case CODE_FOR_lsx_vmini_h
:
2677 case CODE_FOR_lsx_vmini_w
:
2678 case CODE_FOR_lsx_vmini_d
:
2679 case CODE_FOR_lasx_xvseqi_b
:
2680 case CODE_FOR_lasx_xvseqi_h
:
2681 case CODE_FOR_lasx_xvseqi_w
:
2682 case CODE_FOR_lasx_xvseqi_d
:
2683 case CODE_FOR_lasx_xvslti_b
:
2684 case CODE_FOR_lasx_xvslti_h
:
2685 case CODE_FOR_lasx_xvslti_w
:
2686 case CODE_FOR_lasx_xvslti_d
:
2687 case CODE_FOR_lasx_xvslei_b
:
2688 case CODE_FOR_lasx_xvslei_h
:
2689 case CODE_FOR_lasx_xvslei_w
:
2690 case CODE_FOR_lasx_xvslei_d
:
2691 case CODE_FOR_lasx_xvmaxi_b
:
2692 case CODE_FOR_lasx_xvmaxi_h
:
2693 case CODE_FOR_lasx_xvmaxi_w
:
2694 case CODE_FOR_lasx_xvmaxi_d
:
2695 case CODE_FOR_lasx_xvmini_b
:
2696 case CODE_FOR_lasx_xvmini_h
:
2697 case CODE_FOR_lasx_xvmini_w
:
2698 case CODE_FOR_lasx_xvmini_d
:
2699 gcc_assert (has_target_p
&& nops
== 3);
2700 /* We only generate a vector of constants iff the second argument
2701 is an immediate. We also validate the range of the immediate. */
2702 if (CONST_INT_P (ops
[2].value
))
2706 if (IN_RANGE (INTVAL (ops
[2].value
), rangelo
, rangehi
))
2708 ops
[2].mode
= ops
[0].mode
;
2709 ops
[2].value
= loongarch_gen_const_int_vector (ops
[2].mode
,
2710 INTVAL (ops
[2].value
));
2717 case CODE_FOR_lsx_vandi_b
:
2718 case CODE_FOR_lsx_vori_b
:
2719 case CODE_FOR_lsx_vnori_b
:
2720 case CODE_FOR_lsx_vxori_b
:
2721 case CODE_FOR_lasx_xvandi_b
:
2722 case CODE_FOR_lasx_xvori_b
:
2723 case CODE_FOR_lasx_xvnori_b
:
2724 case CODE_FOR_lasx_xvxori_b
:
2725 gcc_assert (has_target_p
&& nops
== 3);
2726 if (!CONST_INT_P (ops
[2].value
))
2728 ops
[2].mode
= ops
[0].mode
;
2729 ops
[2].value
= loongarch_gen_const_int_vector (ops
[2].mode
,
2730 INTVAL (ops
[2].value
));
2733 case CODE_FOR_lsx_vbitseli_b
:
2734 case CODE_FOR_lasx_xvbitseli_b
:
2735 gcc_assert (has_target_p
&& nops
== 4);
2736 if (!CONST_INT_P (ops
[3].value
))
2738 ops
[3].mode
= ops
[0].mode
;
2739 ops
[3].value
= loongarch_gen_const_int_vector (ops
[3].mode
,
2740 INTVAL (ops
[3].value
));
2743 case CODE_FOR_lsx_vreplgr2vr_b
:
2744 case CODE_FOR_lsx_vreplgr2vr_h
:
2745 case CODE_FOR_lsx_vreplgr2vr_w
:
2746 case CODE_FOR_lsx_vreplgr2vr_d
:
2747 case CODE_FOR_lasx_xvreplgr2vr_b
:
2748 case CODE_FOR_lasx_xvreplgr2vr_h
:
2749 case CODE_FOR_lasx_xvreplgr2vr_w
:
2750 case CODE_FOR_lasx_xvreplgr2vr_d
:
2751 /* Map the built-ins to vector fill operations. We need fix up the mode
2752 for the element being inserted. */
2753 gcc_assert (has_target_p
&& nops
== 2);
2754 imode
= GET_MODE_INNER (ops
[0].mode
);
2755 ops
[1].value
= lowpart_subreg (imode
, ops
[1].value
, ops
[1].mode
);
2756 ops
[1].mode
= imode
;
2759 case CODE_FOR_lsx_vilvh_b
:
2760 case CODE_FOR_lsx_vilvh_h
:
2761 case CODE_FOR_lsx_vilvh_w
:
2762 case CODE_FOR_lsx_vilvh_d
:
2763 case CODE_FOR_lsx_vilvl_b
:
2764 case CODE_FOR_lsx_vilvl_h
:
2765 case CODE_FOR_lsx_vilvl_w
:
2766 case CODE_FOR_lsx_vilvl_d
:
2767 case CODE_FOR_lsx_vpackev_b
:
2768 case CODE_FOR_lsx_vpackev_h
:
2769 case CODE_FOR_lsx_vpackev_w
:
2770 case CODE_FOR_lsx_vpackod_b
:
2771 case CODE_FOR_lsx_vpackod_h
:
2772 case CODE_FOR_lsx_vpackod_w
:
2773 case CODE_FOR_lsx_vpickev_b
:
2774 case CODE_FOR_lsx_vpickev_h
:
2775 case CODE_FOR_lsx_vpickev_w
:
2776 case CODE_FOR_lsx_vpickod_b
:
2777 case CODE_FOR_lsx_vpickod_h
:
2778 case CODE_FOR_lsx_vpickod_w
:
2779 case CODE_FOR_lsx_vandn_v
:
2780 case CODE_FOR_lsx_vftintrz_w_d
:
2781 case CODE_FOR_lsx_vffint_s_l
:
2782 case CODE_FOR_lasx_xvilvh_b
:
2783 case CODE_FOR_lasx_xvilvh_h
:
2784 case CODE_FOR_lasx_xvilvh_w
:
2785 case CODE_FOR_lasx_xvilvh_d
:
2786 case CODE_FOR_lasx_xvilvl_b
:
2787 case CODE_FOR_lasx_xvilvl_h
:
2788 case CODE_FOR_lasx_xvilvl_w
:
2789 case CODE_FOR_lasx_xvilvl_d
:
2790 case CODE_FOR_lasx_xvpackev_b
:
2791 case CODE_FOR_lasx_xvpackev_h
:
2792 case CODE_FOR_lasx_xvpackev_w
:
2793 case CODE_FOR_lasx_xvpackod_b
:
2794 case CODE_FOR_lasx_xvpackod_h
:
2795 case CODE_FOR_lasx_xvpackod_w
:
2796 case CODE_FOR_lasx_xvpickev_b
:
2797 case CODE_FOR_lasx_xvpickev_h
:
2798 case CODE_FOR_lasx_xvpickev_w
:
2799 case CODE_FOR_lasx_xvpickod_b
:
2800 case CODE_FOR_lasx_xvpickod_h
:
2801 case CODE_FOR_lasx_xvpickod_w
:
2802 case CODE_FOR_lasx_xvandn_v
:
2803 /* Swap the operands 1 and 2 for interleave operations. Built-ins follow
2804 convention of ISA, which have op1 as higher component and op2 as lower
2805 component. However, the VEC_PERM op in tree and vec_concat in RTL
2806 expects first operand to be lower component, because of which this
2807 swap is needed for builtins. */
2808 gcc_assert (has_target_p
&& nops
== 3);
2809 std::swap (ops
[1], ops
[2]);
2812 case CODE_FOR_lsx_vslli_b
:
2813 case CODE_FOR_lsx_vslli_h
:
2814 case CODE_FOR_lsx_vslli_w
:
2815 case CODE_FOR_lsx_vslli_d
:
2816 case CODE_FOR_lsx_vsrai_b
:
2817 case CODE_FOR_lsx_vsrai_h
:
2818 case CODE_FOR_lsx_vsrai_w
:
2819 case CODE_FOR_lsx_vsrai_d
:
2820 case CODE_FOR_lsx_vsrli_b
:
2821 case CODE_FOR_lsx_vsrli_h
:
2822 case CODE_FOR_lsx_vsrli_w
:
2823 case CODE_FOR_lsx_vsrli_d
:
2824 case CODE_FOR_lasx_xvslli_b
:
2825 case CODE_FOR_lasx_xvslli_h
:
2826 case CODE_FOR_lasx_xvslli_w
:
2827 case CODE_FOR_lasx_xvslli_d
:
2828 case CODE_FOR_lasx_xvsrai_b
:
2829 case CODE_FOR_lasx_xvsrai_h
:
2830 case CODE_FOR_lasx_xvsrai_w
:
2831 case CODE_FOR_lasx_xvsrai_d
:
2832 case CODE_FOR_lasx_xvsrli_b
:
2833 case CODE_FOR_lasx_xvsrli_h
:
2834 case CODE_FOR_lasx_xvsrli_w
:
2835 case CODE_FOR_lasx_xvsrli_d
:
2836 gcc_assert (has_target_p
&& nops
== 3);
2837 if (CONST_INT_P (ops
[2].value
))
2840 rangehi
= GET_MODE_UNIT_BITSIZE (ops
[0].mode
) - 1;
2841 if (IN_RANGE (INTVAL (ops
[2].value
), rangelo
, rangehi
))
2843 ops
[2].mode
= ops
[0].mode
;
2844 ops
[2].value
= loongarch_gen_const_int_vector (ops
[2].mode
,
2845 INTVAL (ops
[2].value
));
2852 case CODE_FOR_lsx_vinsgr2vr_b
:
2853 case CODE_FOR_lsx_vinsgr2vr_h
:
2854 case CODE_FOR_lsx_vinsgr2vr_w
:
2855 case CODE_FOR_lsx_vinsgr2vr_d
:
2856 /* Map the built-ins to insert operations. We need to swap operands,
2857 fix up the mode for the element being inserted, and generate
2858 a bit mask for vec_merge. */
2859 gcc_assert (has_target_p
&& nops
== 4);
2860 std::swap (ops
[1], ops
[2]);
2861 imode
= GET_MODE_INNER (ops
[0].mode
);
2862 ops
[1].value
= lowpart_subreg (imode
, ops
[1].value
, ops
[1].mode
);
2863 ops
[1].mode
= imode
;
2865 rangehi
= GET_MODE_NUNITS (ops
[0].mode
) - 1;
2866 if (CONST_INT_P (ops
[3].value
)
2867 && IN_RANGE (INTVAL (ops
[3].value
), rangelo
, rangehi
))
2868 ops
[3].value
= GEN_INT (1 << INTVAL (ops
[3].value
));
2873 /* Map the built-ins to element insert operations. We need to swap
2874 operands and generate a bit mask. */
2875 gcc_assert (has_target_p
&& nops
== 4);
2876 std::swap (ops
[1], ops
[2]);
2877 std::swap (ops
[1], ops
[3]);
2879 rangehi
= GET_MODE_NUNITS (ops
[0].mode
) - 1;
2880 if (CONST_INT_P (ops
[3].value
)
2881 && IN_RANGE (INTVAL (ops
[3].value
), rangelo
, rangehi
))
2882 ops
[3].value
= GEN_INT (1 << INTVAL (ops
[3].value
));
2887 case CODE_FOR_lsx_vshuf4i_b
:
2888 case CODE_FOR_lsx_vshuf4i_h
:
2889 case CODE_FOR_lsx_vshuf4i_w
:
2890 case CODE_FOR_lsx_vshuf4i_w_f
:
2891 gcc_assert (has_target_p
&& nops
== 3);
2892 ops
[2].value
= loongarch_gen_const_int_vector_shuffle (ops
[0].mode
,
2893 INTVAL (ops
[2].value
));
2896 case CODE_FOR_lasx_xvinsgr2vr_w
:
2897 case CODE_FOR_lasx_xvinsgr2vr_d
:
2898 /* Map the built-ins to insert operations. We need to swap operands,
2899 fix up the mode for the element being inserted, and generate
2900 a bit mask for vec_merge. */
2901 gcc_assert (has_target_p
&& nops
== 4);
2902 std::swap (ops
[1], ops
[2]);
2903 imode
= GET_MODE_INNER (ops
[0].mode
);
2904 ops
[1].value
= lowpart_subreg (imode
, ops
[1].value
, ops
[1].mode
);
2905 ops
[1].mode
= imode
;
2907 rangehi
= GET_MODE_NUNITS (ops
[0].mode
) - 1;
2908 if (CONST_INT_P (ops
[3].value
)
2909 && IN_RANGE (INTVAL (ops
[3].value
), rangelo
, rangehi
))
2910 ops
[3].value
= GEN_INT (1 << INTVAL (ops
[3].value
));
2919 if (error_opno
!= 0)
2921 error ("argument %d to the built-in must be a constant"
2922 " in range %d to %d", error_opno
, rangelo
, rangehi
);
2923 return has_target_p
? gen_reg_rtx (ops
[0].mode
) : const0_rtx
;
2925 else if (!maybe_expand_insn (icode
, nops
, ops
))
2927 error ("invalid argument to built-in function");
2928 return has_target_p
? gen_reg_rtx (ops
[0].mode
) : const0_rtx
;
2930 return has_target_p
? ops
[0].value
: const0_rtx
;
2933 /* Expand a LARCH_BUILTIN_DIRECT or LARCH_BUILTIN_DIRECT_NO_TARGET function;
2934 HAS_TARGET_P says which. EXP is the CALL_EXPR that calls the function
2935 and ICODE is the code of the associated .md pattern. TARGET, if nonnull,
2936 suggests a good place to put the result. */
2939 loongarch_expand_builtin_direct (enum insn_code icode
, rtx target
, tree exp
,
2942 struct expand_operand ops
[MAX_RECOG_OPERANDS
];
2945 /* Map any target to operand 0. */
2948 create_output_operand (&ops
[opno
++], target
, TYPE_MODE (TREE_TYPE (exp
)));
2950 /* For the vector reciprocal instructions, we need to construct a temporary
2951 parameter const1_vector. */
2954 case CODE_FOR_recipv8sf3
:
2955 case CODE_FOR_recipv4df3
:
2956 case CODE_FOR_recipv4sf3
:
2957 case CODE_FOR_recipv2df3
:
2958 loongarch_prepare_builtin_arg (&ops
[2], exp
, 0);
2959 create_input_operand (&ops
[1], CONST1_RTX (ops
[0].mode
), ops
[0].mode
);
2960 return loongarch_expand_builtin_insn (icode
, 3, ops
, has_target_p
);
2966 /* Map the arguments to the other operands. */
2967 gcc_assert (opno
+ call_expr_nargs (exp
)
2968 == insn_data
[icode
].n_generator_args
);
2969 for (argno
= 0; argno
< call_expr_nargs (exp
); argno
++)
2970 loongarch_prepare_builtin_arg (&ops
[opno
++], exp
, argno
);
2972 return loongarch_expand_builtin_insn (icode
, opno
, ops
, has_target_p
);
2975 /* Expand an LSX built-in for a compare and branch instruction specified by
2976 ICODE, set a general-purpose register to 1 if the branch was taken,
2980 loongarch_expand_builtin_lsx_test_branch (enum insn_code icode
, tree exp
)
2982 struct expand_operand ops
[3];
2984 rtx_code_label
*true_label
, *done_label
;
2987 true_label
= gen_label_rtx ();
2988 done_label
= gen_label_rtx ();
2990 create_input_operand (&ops
[0], true_label
, TYPE_MODE (TREE_TYPE (exp
)));
2991 loongarch_prepare_builtin_arg (&ops
[1], exp
, 0);
2992 create_fixed_operand (&ops
[2], const0_rtx
);
2994 /* Make sure that the operand 1 is a REG. */
2995 if (GET_CODE (ops
[1].value
) != REG
)
2996 ops
[1].value
= force_reg (ops
[1].mode
, ops
[1].value
);
2998 if ((cbranch
= maybe_gen_insn (icode
, 3, ops
)) == NULL_RTX
)
2999 error ("failed to expand built-in function");
3001 cmp_result
= gen_reg_rtx (SImode
);
3003 /* First assume that CMP_RESULT is false. */
3004 loongarch_emit_move (cmp_result
, const0_rtx
);
3006 /* Branch to TRUE_LABEL if CBRANCH is taken and DONE_LABEL otherwise. */
3007 emit_jump_insn (cbranch
);
3008 emit_jump_insn (gen_jump (done_label
));
3011 /* Set CMP_RESULT to true if the branch was taken. */
3012 emit_label (true_label
);
3013 loongarch_emit_move (cmp_result
, const1_rtx
);
3015 emit_label (done_label
);
3019 /* Implement TARGET_EXPAND_BUILTIN. */
3022 loongarch_expand_builtin (tree exp
, rtx target
, rtx subtarget ATTRIBUTE_UNUSED
,
3023 machine_mode mode ATTRIBUTE_UNUSED
,
3024 int ignore ATTRIBUTE_UNUSED
)
3028 const struct loongarch_builtin_description
*d
;
3030 fndecl
= TREE_OPERAND (CALL_EXPR_FN (exp
), 0);
3031 fcode
= DECL_MD_FUNCTION_CODE (fndecl
);
3032 gcc_assert (fcode
< ARRAY_SIZE (loongarch_builtins
));
3033 d
= &loongarch_builtins
[fcode
];
3037 error_at (EXPR_LOCATION (exp
),
3038 "built-in function %qD is not enabled", fndecl
);
3042 switch (d
->builtin_type
)
3044 case LARCH_BUILTIN_DIRECT
:
3045 case LARCH_BUILTIN_LSX
:
3046 case LARCH_BUILTIN_LASX
:
3047 return loongarch_expand_builtin_direct (d
->icode
, target
, exp
, true);
3049 case LARCH_BUILTIN_DIRECT_NO_TARGET
:
3050 return loongarch_expand_builtin_direct (d
->icode
, target
, exp
, false);
3052 case LARCH_BUILTIN_LSX_TEST_BRANCH
:
3053 case LARCH_BUILTIN_LASX_TEST_BRANCH
:
3054 return loongarch_expand_builtin_lsx_test_branch (d
->icode
, exp
);
3059 /* Implement TARGET_ATOMIC_ASSIGN_EXPAND_FENV. */
3062 loongarch_atomic_assign_expand_fenv (tree
*hold
, tree
*clear
, tree
*update
)
3064 if (!TARGET_HARD_FLOAT_ABI
)
3066 tree exceptions_var
= create_tmp_var_raw (LARCH_ATYPE_USI
);
3067 tree fcsr_orig_var
= create_tmp_var_raw (LARCH_ATYPE_USI
);
3068 tree fcsr_mod_var
= create_tmp_var_raw (LARCH_ATYPE_USI
);
3069 tree const0
= build_int_cst (LARCH_ATYPE_UQI
, 0);
3070 tree get_fcsr
= loongarch_builtin_decls
[LARCH_MOVFCSR2GR
];
3071 tree set_fcsr
= loongarch_builtin_decls
[LARCH_MOVGR2FCSR
];
3072 tree get_fcsr_hold_call
= build_call_expr (get_fcsr
, 1, const0
);
3073 tree hold_assign_orig
= build4 (TARGET_EXPR
, LARCH_ATYPE_USI
,
3074 fcsr_orig_var
, get_fcsr_hold_call
,
3076 tree hold_mod_val
= build2 (BIT_AND_EXPR
, LARCH_ATYPE_USI
, fcsr_orig_var
,
3077 build_int_cst (LARCH_ATYPE_USI
, 0xffe0ffe0));
3078 tree hold_assign_mod
= build4 (TARGET_EXPR
, LARCH_ATYPE_USI
,
3079 fcsr_mod_var
, hold_mod_val
, NULL
, NULL
);
3080 tree set_fcsr_hold_call
= build_call_expr (set_fcsr
, 2, const0
,
3082 tree hold_all
= build2 (COMPOUND_EXPR
, LARCH_ATYPE_USI
, hold_assign_orig
,
3084 *hold
= build2 (COMPOUND_EXPR
, void_type_node
, hold_all
, set_fcsr_hold_call
);
3086 *clear
= build_call_expr (set_fcsr
, 2, const0
, fcsr_mod_var
);
3088 tree get_fcsr_update_call
= build_call_expr (get_fcsr
, 1, const0
);
3089 *update
= build4 (TARGET_EXPR
, LARCH_ATYPE_USI
, exceptions_var
,
3090 get_fcsr_update_call
, NULL
, NULL
);
3091 tree set_fcsr_update_call
= build_call_expr (set_fcsr
, 2, const0
,
3093 *update
= build2 (COMPOUND_EXPR
, void_type_node
, *update
,
3094 set_fcsr_update_call
);
3095 tree atomic_feraiseexcept
3096 = builtin_decl_implicit (BUILT_IN_ATOMIC_FERAISEEXCEPT
);
3097 tree int_exceptions_var
= fold_convert (integer_type_node
, exceptions_var
);
3098 tree atomic_feraiseexcept_call
= build_call_expr (atomic_feraiseexcept
, 1,
3099 int_exceptions_var
);
3100 *update
= build2 (COMPOUND_EXPR
, void_type_node
, *update
,
3101 atomic_feraiseexcept_call
);
3104 /* Implement TARGET_BUILTIN_VA_LIST. */
3107 loongarch_build_builtin_va_list (void)
3109 return ptr_type_node
;