Back to home page

EIC code displayed by LXR

 
 

    


Warning, /include/llvm/IR/IntrinsicsMips.td is written in an unsupported language. File is not indexed.

0001 //===- IntrinsicsMips.td - Defines Mips intrinsics ---------*- tablegen -*-===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0006 //
0007 //===----------------------------------------------------------------------===//
0008 //
0009 // This file defines all of the MIPS-specific intrinsics.
0010 //
0011 //===----------------------------------------------------------------------===//
0012 
0013 //===----------------------------------------------------------------------===//
0014 // MIPS DSP data types
0015 def mips_v2q15_ty: LLVMType<v2i16>;
0016 def mips_v4q7_ty: LLVMType<v4i8>;
0017 def mips_q31_ty: LLVMType<i32>;
0018 
0019 let TargetPrefix = "mips" in {  // All intrinsics start with "llvm.mips.".
0020 
0021 //===----------------------------------------------------------------------===//
0022 // MIPS DSP Rev 1
0023 
0024 //===----------------------------------------------------------------------===//
0025 // Addition/subtraction
0026 
0027 def int_mips_addu_qb : ClangBuiltin<"__builtin_mips_addu_qb">,
0028   Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_v4i8_ty],
0029             [Commutative, IntrNoMem]>;
0030 def int_mips_addu_s_qb : ClangBuiltin<"__builtin_mips_addu_s_qb">,
0031   Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_v4i8_ty],
0032             [Commutative, IntrNoMem]>;
0033 def int_mips_subu_qb : ClangBuiltin<"__builtin_mips_subu_qb">,
0034   Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_v4i8_ty], [IntrNoMem]>;
0035 def int_mips_subu_s_qb : ClangBuiltin<"__builtin_mips_subu_s_qb">,
0036   Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_v4i8_ty], [IntrNoMem]>;
0037 
0038 def int_mips_addq_ph : ClangBuiltin<"__builtin_mips_addq_ph">,
0039   Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty],
0040             [Commutative, IntrNoMem]>;
0041 def int_mips_addq_s_ph : ClangBuiltin<"__builtin_mips_addq_s_ph">,
0042   Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty],
0043             [Commutative, IntrNoMem]>;
0044 def int_mips_subq_ph : ClangBuiltin<"__builtin_mips_subq_ph">,
0045   Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty], [IntrNoMem]>;
0046 def int_mips_subq_s_ph : ClangBuiltin<"__builtin_mips_subq_s_ph">,
0047   Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty], [IntrNoMem]>;
0048 
0049 def int_mips_madd: ClangBuiltin<"__builtin_mips_madd">,
0050   Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty],
0051             [IntrNoMem, Commutative]>;
0052 def int_mips_maddu: ClangBuiltin<"__builtin_mips_maddu">,
0053   Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty],
0054             [IntrNoMem, Commutative]>;
0055 
0056 def int_mips_msub: ClangBuiltin<"__builtin_mips_msub">,
0057   Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty],
0058             [IntrNoMem]>;
0059 def int_mips_msubu: ClangBuiltin<"__builtin_mips_msubu">,
0060   Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty],
0061             [IntrNoMem]>;
0062 
0063 def int_mips_addq_s_w: ClangBuiltin<"__builtin_mips_addq_s_w">,
0064   Intrinsic<[mips_q31_ty], [mips_q31_ty, mips_q31_ty], [Commutative]>;
0065 def int_mips_subq_s_w: ClangBuiltin<"__builtin_mips_subq_s_w">,
0066   Intrinsic<[mips_q31_ty], [mips_q31_ty, mips_q31_ty], []>;
0067 
0068 def int_mips_addsc: ClangBuiltin<"__builtin_mips_addsc">,
0069   Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [Commutative]>;
0070 def int_mips_addwc: ClangBuiltin<"__builtin_mips_addwc">,
0071   Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [Commutative]>;
0072 
0073 def int_mips_modsub: ClangBuiltin<"__builtin_mips_modsub">,
0074   Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>;
0075 
0076 def int_mips_raddu_w_qb: ClangBuiltin<"__builtin_mips_raddu_w_qb">,
0077   Intrinsic<[llvm_i32_ty], [llvm_v4i8_ty], [IntrNoMem]>;
0078 
0079 //===----------------------------------------------------------------------===//
0080 // Absolute value
0081 
0082 def int_mips_absq_s_ph: ClangBuiltin<"__builtin_mips_absq_s_ph">,
0083   Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty], []>;
0084 def int_mips_absq_s_w: ClangBuiltin<"__builtin_mips_absq_s_w">,
0085   Intrinsic<[mips_q31_ty], [mips_q31_ty], []>;
0086 
0087 //===----------------------------------------------------------------------===//
0088 // Precision reduce/expand
0089 
0090 def int_mips_precrq_qb_ph: ClangBuiltin<"__builtin_mips_precrq_qb_ph">,
0091   Intrinsic<[llvm_v4i8_ty], [mips_v2q15_ty, mips_v2q15_ty], [IntrNoMem]>;
0092 def int_mips_precrqu_s_qb_ph: ClangBuiltin<"__builtin_mips_precrqu_s_qb_ph">,
0093   Intrinsic<[llvm_v4i8_ty], [mips_v2q15_ty, mips_v2q15_ty], []>;
0094 def int_mips_precrq_ph_w: ClangBuiltin<"__builtin_mips_precrq_ph_w">,
0095   Intrinsic<[mips_v2q15_ty], [mips_q31_ty, mips_q31_ty], [IntrNoMem]>;
0096 def int_mips_precrq_rs_ph_w: ClangBuiltin<"__builtin_mips_precrq_rs_ph_w">,
0097   Intrinsic<[mips_v2q15_ty], [mips_q31_ty, mips_q31_ty], []>;
0098 def int_mips_preceq_w_phl: ClangBuiltin<"__builtin_mips_preceq_w_phl">,
0099   Intrinsic<[mips_q31_ty], [mips_v2q15_ty], [IntrNoMem]>;
0100 def int_mips_preceq_w_phr: ClangBuiltin<"__builtin_mips_preceq_w_phr">,
0101   Intrinsic<[mips_q31_ty], [mips_v2q15_ty], [IntrNoMem]>;
0102 def int_mips_precequ_ph_qbl: ClangBuiltin<"__builtin_mips_precequ_ph_qbl">,
0103   Intrinsic<[mips_v2q15_ty], [llvm_v4i8_ty], [IntrNoMem]>;
0104 def int_mips_precequ_ph_qbr: ClangBuiltin<"__builtin_mips_precequ_ph_qbr">,
0105   Intrinsic<[mips_v2q15_ty], [llvm_v4i8_ty], [IntrNoMem]>;
0106 def int_mips_precequ_ph_qbla: ClangBuiltin<"__builtin_mips_precequ_ph_qbla">,
0107   Intrinsic<[mips_v2q15_ty], [llvm_v4i8_ty], [IntrNoMem]>;
0108 def int_mips_precequ_ph_qbra: ClangBuiltin<"__builtin_mips_precequ_ph_qbra">,
0109   Intrinsic<[mips_v2q15_ty], [llvm_v4i8_ty], [IntrNoMem]>;
0110 def int_mips_preceu_ph_qbl: ClangBuiltin<"__builtin_mips_preceu_ph_qbl">,
0111   Intrinsic<[mips_v2q15_ty], [llvm_v4i8_ty], [IntrNoMem]>;
0112 def int_mips_preceu_ph_qbr: ClangBuiltin<"__builtin_mips_preceu_ph_qbr">,
0113   Intrinsic<[mips_v2q15_ty], [llvm_v4i8_ty], [IntrNoMem]>;
0114 def int_mips_preceu_ph_qbla: ClangBuiltin<"__builtin_mips_preceu_ph_qbla">,
0115   Intrinsic<[mips_v2q15_ty], [llvm_v4i8_ty], [IntrNoMem]>;
0116 def int_mips_preceu_ph_qbra: ClangBuiltin<"__builtin_mips_preceu_ph_qbra">,
0117   Intrinsic<[mips_v2q15_ty], [llvm_v4i8_ty], [IntrNoMem]>;
0118 
0119 //===----------------------------------------------------------------------===//
0120 // Shift
0121 
0122 def int_mips_shll_qb: ClangBuiltin<"__builtin_mips_shll_qb">,
0123   Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_i32_ty], []>;
0124 def int_mips_shrl_qb: ClangBuiltin<"__builtin_mips_shrl_qb">,
0125   Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_i32_ty], [IntrNoMem]>;
0126 def int_mips_shll_ph: ClangBuiltin<"__builtin_mips_shll_ph">,
0127   Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, llvm_i32_ty], []>;
0128 def int_mips_shll_s_ph: ClangBuiltin<"__builtin_mips_shll_s_ph">,
0129   Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, llvm_i32_ty], []>;
0130 def int_mips_shra_ph: ClangBuiltin<"__builtin_mips_shra_ph">,
0131   Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, llvm_i32_ty], [IntrNoMem]>;
0132 def int_mips_shra_r_ph: ClangBuiltin<"__builtin_mips_shra_r_ph">,
0133   Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, llvm_i32_ty], [IntrNoMem]>;
0134 def int_mips_shll_s_w: ClangBuiltin<"__builtin_mips_shll_s_w">,
0135   Intrinsic<[mips_q31_ty], [mips_q31_ty, llvm_i32_ty], []>;
0136 def int_mips_shra_r_w: ClangBuiltin<"__builtin_mips_shra_r_w">,
0137   Intrinsic<[mips_q31_ty], [mips_q31_ty, llvm_i32_ty], [IntrNoMem]>;
0138 def int_mips_shilo: ClangBuiltin<"__builtin_mips_shilo">,
0139   Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty], [IntrNoMem]>;
0140 
0141 //===----------------------------------------------------------------------===//
0142 // Multiplication
0143 
0144 def int_mips_muleu_s_ph_qbl: ClangBuiltin<"__builtin_mips_muleu_s_ph_qbl">,
0145   Intrinsic<[mips_v2q15_ty], [llvm_v4i8_ty, mips_v2q15_ty], []>;
0146 def int_mips_muleu_s_ph_qbr: ClangBuiltin<"__builtin_mips_muleu_s_ph_qbr">,
0147   Intrinsic<[mips_v2q15_ty], [llvm_v4i8_ty, mips_v2q15_ty], []>;
0148 def int_mips_mulq_rs_ph: ClangBuiltin<"__builtin_mips_mulq_rs_ph">,
0149   Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty], [Commutative]>;
0150 def int_mips_muleq_s_w_phl: ClangBuiltin<"__builtin_mips_muleq_s_w_phl">,
0151   Intrinsic<[mips_q31_ty], [mips_v2q15_ty, mips_v2q15_ty], [Commutative]>;
0152 def int_mips_muleq_s_w_phr: ClangBuiltin<"__builtin_mips_muleq_s_w_phr">,
0153   Intrinsic<[mips_q31_ty], [mips_v2q15_ty, mips_v2q15_ty], [Commutative]>;
0154 def int_mips_mulsaq_s_w_ph: ClangBuiltin<"__builtin_mips_mulsaq_s_w_ph">,
0155   Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_v2q15_ty, mips_v2q15_ty], []>;
0156 def int_mips_maq_s_w_phl: ClangBuiltin<"__builtin_mips_maq_s_w_phl">,
0157   Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_v2q15_ty, mips_v2q15_ty], []>;
0158 def int_mips_maq_s_w_phr: ClangBuiltin<"__builtin_mips_maq_s_w_phr">,
0159   Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_v2q15_ty, mips_v2q15_ty], []>;
0160 def int_mips_maq_sa_w_phl: ClangBuiltin<"__builtin_mips_maq_sa_w_phl">,
0161   Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_v2q15_ty, mips_v2q15_ty], []>;
0162 def int_mips_maq_sa_w_phr: ClangBuiltin<"__builtin_mips_maq_sa_w_phr">,
0163   Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_v2q15_ty, mips_v2q15_ty], []>;
0164 def int_mips_mult: ClangBuiltin<"__builtin_mips_mult">,
0165   Intrinsic<[llvm_i64_ty], [llvm_i32_ty, llvm_i32_ty],
0166             [IntrNoMem, Commutative]>;
0167 def int_mips_multu: ClangBuiltin<"__builtin_mips_multu">,
0168   Intrinsic<[llvm_i64_ty], [llvm_i32_ty, llvm_i32_ty],
0169             [IntrNoMem, Commutative]>;
0170 
0171 //===----------------------------------------------------------------------===//
0172 // Dot product with accumulate/subtract
0173 
0174 def int_mips_dpau_h_qbl: ClangBuiltin<"__builtin_mips_dpau_h_qbl">,
0175   Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_v4i8_ty, llvm_v4i8_ty],
0176             [IntrNoMem]>;
0177 def int_mips_dpau_h_qbr: ClangBuiltin<"__builtin_mips_dpau_h_qbr">,
0178   Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_v4i8_ty, llvm_v4i8_ty],
0179             [IntrNoMem]>;
0180 def int_mips_dpsu_h_qbl: ClangBuiltin<"__builtin_mips_dpsu_h_qbl">,
0181   Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_v4i8_ty, llvm_v4i8_ty],
0182             [IntrNoMem]>;
0183 def int_mips_dpsu_h_qbr: ClangBuiltin<"__builtin_mips_dpsu_h_qbr">,
0184   Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_v4i8_ty, llvm_v4i8_ty],
0185             [IntrNoMem]>;
0186 def int_mips_dpaq_s_w_ph: ClangBuiltin<"__builtin_mips_dpaq_s_w_ph">,
0187   Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_v2q15_ty, mips_v2q15_ty], []>;
0188 def int_mips_dpsq_s_w_ph: ClangBuiltin<"__builtin_mips_dpsq_s_w_ph">,
0189   Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_v2q15_ty, mips_v2q15_ty], []>;
0190 def int_mips_dpaq_sa_l_w: ClangBuiltin<"__builtin_mips_dpaq_sa_l_w">,
0191   Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_q31_ty, mips_q31_ty], []>;
0192 def int_mips_dpsq_sa_l_w: ClangBuiltin<"__builtin_mips_dpsq_sa_l_w">,
0193   Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_q31_ty, mips_q31_ty], []>;
0194 
0195 //===----------------------------------------------------------------------===//
0196 // Comparison
0197 
0198 def int_mips_cmpu_eq_qb: ClangBuiltin<"__builtin_mips_cmpu_eq_qb">,
0199   Intrinsic<[], [llvm_v4i8_ty, llvm_v4i8_ty], [Commutative]>;
0200 def int_mips_cmpu_lt_qb: ClangBuiltin<"__builtin_mips_cmpu_lt_qb">,
0201   Intrinsic<[], [llvm_v4i8_ty, llvm_v4i8_ty], []>;
0202 def int_mips_cmpu_le_qb: ClangBuiltin<"__builtin_mips_cmpu_le_qb">,
0203   Intrinsic<[], [llvm_v4i8_ty, llvm_v4i8_ty], []>;
0204 def int_mips_cmpgu_eq_qb: ClangBuiltin<"__builtin_mips_cmpgu_eq_qb">,
0205   Intrinsic<[llvm_i32_ty], [llvm_v4i8_ty, llvm_v4i8_ty], [Commutative]>;
0206 def int_mips_cmpgu_lt_qb: ClangBuiltin<"__builtin_mips_cmpgu_lt_qb">,
0207   Intrinsic<[llvm_i32_ty], [llvm_v4i8_ty, llvm_v4i8_ty], []>;
0208 def int_mips_cmpgu_le_qb: ClangBuiltin<"__builtin_mips_cmpgu_le_qb">,
0209   Intrinsic<[llvm_i32_ty], [llvm_v4i8_ty, llvm_v4i8_ty], []>;
0210 def int_mips_cmp_eq_ph: ClangBuiltin<"__builtin_mips_cmp_eq_ph">,
0211   Intrinsic<[], [mips_v2q15_ty, mips_v2q15_ty], [Commutative]>;
0212 def int_mips_cmp_lt_ph: ClangBuiltin<"__builtin_mips_cmp_lt_ph">,
0213   Intrinsic<[], [mips_v2q15_ty, mips_v2q15_ty], []>;
0214 def int_mips_cmp_le_ph: ClangBuiltin<"__builtin_mips_cmp_le_ph">,
0215   Intrinsic<[], [mips_v2q15_ty, mips_v2q15_ty], []>;
0216 
0217 //===----------------------------------------------------------------------===//
0218 // Extracting
0219 
0220 def int_mips_extr_s_h: ClangBuiltin<"__builtin_mips_extr_s_h">,
0221   Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty], []>;
0222 def int_mips_extr_w: ClangBuiltin<"__builtin_mips_extr_w">,
0223   Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty], []>;
0224 def int_mips_extr_rs_w: ClangBuiltin<"__builtin_mips_extr_rs_w">,
0225   Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty], []>;
0226 def int_mips_extr_r_w: ClangBuiltin<"__builtin_mips_extr_r_w">,
0227   Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty], []>;
0228 def int_mips_extp: ClangBuiltin<"__builtin_mips_extp">,
0229   Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty], []>;
0230 def int_mips_extpdp: ClangBuiltin<"__builtin_mips_extpdp">,
0231   Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty], []>;
0232 
0233 //===----------------------------------------------------------------------===//
0234 // Misc
0235 
0236 def int_mips_wrdsp: ClangBuiltin<"__builtin_mips_wrdsp">,
0237   Intrinsic<[], [llvm_i32_ty, llvm_i32_ty], [ImmArg<ArgIndex<1>>]>;
0238 def int_mips_rddsp: ClangBuiltin<"__builtin_mips_rddsp">,
0239   DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrReadMem, ImmArg<ArgIndex<0>>]>;
0240 
0241 def int_mips_insv: ClangBuiltin<"__builtin_mips_insv">,
0242   Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrReadMem]>;
0243 def int_mips_bitrev: ClangBuiltin<"__builtin_mips_bitrev">,
0244   Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoMem]>;
0245 
0246 def int_mips_packrl_ph: ClangBuiltin<"__builtin_mips_packrl_ph">,
0247   Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty], [IntrNoMem]>;
0248 
0249 def int_mips_repl_qb: ClangBuiltin<"__builtin_mips_repl_qb">,
0250   Intrinsic<[llvm_v4i8_ty], [llvm_i32_ty], [IntrNoMem]>;
0251 def int_mips_repl_ph: ClangBuiltin<"__builtin_mips_repl_ph">,
0252   Intrinsic<[mips_v2q15_ty], [llvm_i32_ty], [IntrNoMem]>;
0253 
0254 def int_mips_pick_qb: ClangBuiltin<"__builtin_mips_pick_qb">,
0255   DefaultAttrsIntrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_v4i8_ty], [IntrReadMem]>;
0256 def int_mips_pick_ph: ClangBuiltin<"__builtin_mips_pick_ph">,
0257   DefaultAttrsIntrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty], [IntrReadMem]>;
0258 
0259 def int_mips_mthlip: ClangBuiltin<"__builtin_mips_mthlip">,
0260   Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty], []>;
0261 
0262 def int_mips_bposge32: ClangBuiltin<"__builtin_mips_bposge32">,
0263   DefaultAttrsIntrinsic<[llvm_i32_ty], [], [IntrReadMem]>;
0264 
0265 def int_mips_lbux: ClangBuiltin<"__builtin_mips_lbux">,
0266   DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_ptr_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>;
0267 def int_mips_lhx: ClangBuiltin<"__builtin_mips_lhx">,
0268   DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_ptr_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>;
0269 def int_mips_lwx: ClangBuiltin<"__builtin_mips_lwx">,
0270   DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_ptr_ty, llvm_i32_ty], [IntrReadMem, IntrArgMemOnly]>;
0271 
0272 //===----------------------------------------------------------------------===//
0273 // MIPS DSP Rev 2
0274 
0275 def int_mips_absq_s_qb: ClangBuiltin<"__builtin_mips_absq_s_qb">,
0276   Intrinsic<[mips_v4q7_ty], [mips_v4q7_ty], []>;
0277 
0278 def int_mips_addqh_ph: ClangBuiltin<"__builtin_mips_addqh_ph">,
0279   Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty],
0280             [IntrNoMem, Commutative]>;
0281 def int_mips_addqh_r_ph: ClangBuiltin<"__builtin_mips_addqh_r_ph">,
0282   Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty],
0283             [IntrNoMem, Commutative]>;
0284 def int_mips_addqh_w: ClangBuiltin<"__builtin_mips_addqh_w">,
0285   Intrinsic<[mips_q31_ty], [mips_q31_ty, mips_q31_ty],
0286             [IntrNoMem, Commutative]>;
0287 def int_mips_addqh_r_w: ClangBuiltin<"__builtin_mips_addqh_r_w">,
0288   Intrinsic<[mips_q31_ty], [mips_q31_ty, mips_q31_ty],
0289             [IntrNoMem, Commutative]>;
0290 
0291 def int_mips_addu_ph: ClangBuiltin<"__builtin_mips_addu_ph">,
0292   Intrinsic<[llvm_v2i16_ty], [llvm_v2i16_ty, llvm_v2i16_ty], [Commutative]>;
0293 def int_mips_addu_s_ph: ClangBuiltin<"__builtin_mips_addu_s_ph">,
0294   Intrinsic<[llvm_v2i16_ty], [llvm_v2i16_ty, llvm_v2i16_ty], [Commutative]>;
0295 
0296 def int_mips_adduh_qb: ClangBuiltin<"__builtin_mips_adduh_qb">,
0297   Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_v4i8_ty],
0298             [IntrNoMem, Commutative]>;
0299 def int_mips_adduh_r_qb: ClangBuiltin<"__builtin_mips_adduh_r_qb">,
0300   Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_v4i8_ty],
0301             [IntrNoMem, Commutative]>;
0302 
0303 def int_mips_append: ClangBuiltin<"__builtin_mips_append">,
0304   Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
0305   [IntrNoMem, ImmArg<ArgIndex<2>>]>;
0306 def int_mips_balign: ClangBuiltin<"__builtin_mips_balign">,
0307   Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
0308   [IntrNoMem, ImmArg<ArgIndex<2>>]>;
0309 
0310 def int_mips_cmpgdu_eq_qb: ClangBuiltin<"__builtin_mips_cmpgdu_eq_qb">,
0311   Intrinsic<[llvm_i32_ty], [llvm_v4i8_ty, llvm_v4i8_ty], [Commutative]>;
0312 def int_mips_cmpgdu_lt_qb: ClangBuiltin<"__builtin_mips_cmpgdu_lt_qb">,
0313   Intrinsic<[llvm_i32_ty], [llvm_v4i8_ty, llvm_v4i8_ty], []>;
0314 def int_mips_cmpgdu_le_qb: ClangBuiltin<"__builtin_mips_cmpgdu_le_qb">,
0315   Intrinsic<[llvm_i32_ty], [llvm_v4i8_ty, llvm_v4i8_ty], []>;
0316 
0317 def int_mips_dpa_w_ph: ClangBuiltin<"__builtin_mips_dpa_w_ph">,
0318   Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_v2i16_ty, llvm_v2i16_ty],
0319             [IntrNoMem]>;
0320 def int_mips_dps_w_ph: ClangBuiltin<"__builtin_mips_dps_w_ph">,
0321   Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_v2i16_ty, llvm_v2i16_ty],
0322             [IntrNoMem]>;
0323 
0324 def int_mips_dpaqx_s_w_ph: ClangBuiltin<"__builtin_mips_dpaqx_s_w_ph">,
0325   Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_v2q15_ty, mips_v2q15_ty], []>;
0326 def int_mips_dpaqx_sa_w_ph: ClangBuiltin<"__builtin_mips_dpaqx_sa_w_ph">,
0327   Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_v2q15_ty, mips_v2q15_ty], []>;
0328 def int_mips_dpax_w_ph: ClangBuiltin<"__builtin_mips_dpax_w_ph">,
0329   Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_v2i16_ty, llvm_v2i16_ty],
0330             [IntrNoMem]>;
0331 def int_mips_dpsx_w_ph: ClangBuiltin<"__builtin_mips_dpsx_w_ph">,
0332   Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_v2i16_ty, llvm_v2i16_ty],
0333             [IntrNoMem]>;
0334 def int_mips_dpsqx_s_w_ph: ClangBuiltin<"__builtin_mips_dpsqx_s_w_ph">,
0335   Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_v2q15_ty, mips_v2q15_ty], []>;
0336 def int_mips_dpsqx_sa_w_ph: ClangBuiltin<"__builtin_mips_dpsqx_sa_w_ph">,
0337   Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_v2q15_ty, mips_v2q15_ty], []>;
0338 
0339 def int_mips_mul_ph: ClangBuiltin<"__builtin_mips_mul_ph">,
0340   Intrinsic<[llvm_v2i16_ty], [llvm_v2i16_ty, llvm_v2i16_ty], [Commutative]>;
0341 def int_mips_mul_s_ph: ClangBuiltin<"__builtin_mips_mul_s_ph">,
0342   Intrinsic<[llvm_v2i16_ty], [llvm_v2i16_ty, llvm_v2i16_ty], [Commutative]>;
0343 
0344 def int_mips_mulq_rs_w: ClangBuiltin<"__builtin_mips_mulq_rs_w">,
0345   Intrinsic<[mips_q31_ty], [mips_q31_ty, mips_q31_ty], [Commutative]>;
0346 def int_mips_mulq_s_ph: ClangBuiltin<"__builtin_mips_mulq_s_ph">,
0347   Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty], [Commutative]>;
0348 def int_mips_mulq_s_w: ClangBuiltin<"__builtin_mips_mulq_s_w">,
0349   Intrinsic<[mips_q31_ty], [mips_q31_ty, mips_q31_ty], [Commutative]>;
0350 def int_mips_mulsa_w_ph: ClangBuiltin<"__builtin_mips_mulsa_w_ph">,
0351   Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_v2i16_ty, llvm_v2i16_ty],
0352             [IntrNoMem]>;
0353 
0354 def int_mips_precr_qb_ph: ClangBuiltin<"__builtin_mips_precr_qb_ph">,
0355   Intrinsic<[llvm_v4i8_ty], [llvm_v2i16_ty, llvm_v2i16_ty], []>;
0356 def int_mips_precr_sra_ph_w: ClangBuiltin<"__builtin_mips_precr_sra_ph_w">,
0357   Intrinsic<[llvm_v2i16_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
0358             [IntrNoMem, ImmArg<ArgIndex<2>>]>;
0359 def int_mips_precr_sra_r_ph_w: ClangBuiltin<"__builtin_mips_precr_sra_r_ph_w">,
0360   Intrinsic<[llvm_v2i16_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
0361             [IntrNoMem, ImmArg<ArgIndex<2>>]>;
0362 
0363 def int_mips_prepend: ClangBuiltin<"__builtin_mips_prepend">,
0364   Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
0365   [IntrNoMem, ImmArg<ArgIndex<2>>]>;
0366 
0367 def int_mips_shra_qb: ClangBuiltin<"__builtin_mips_shra_qb">,
0368   Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_i32_ty], [IntrNoMem]>;
0369 def int_mips_shra_r_qb: ClangBuiltin<"__builtin_mips_shra_r_qb">,
0370   Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_i32_ty], [IntrNoMem]>;
0371 def int_mips_shrl_ph: ClangBuiltin<"__builtin_mips_shrl_ph">,
0372   Intrinsic<[llvm_v2i16_ty], [llvm_v2i16_ty, llvm_i32_ty], [IntrNoMem]>;
0373 
0374 def int_mips_subqh_ph: ClangBuiltin<"__builtin_mips_subqh_ph">,
0375   Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty], [IntrNoMem]>;
0376 def int_mips_subqh_r_ph: ClangBuiltin<"__builtin_mips_subqh_r_ph">,
0377   Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty], [IntrNoMem]>;
0378 def int_mips_subqh_w: ClangBuiltin<"__builtin_mips_subqh_w">,
0379   Intrinsic<[mips_q31_ty], [mips_q31_ty, mips_q31_ty], [IntrNoMem]>;
0380 def int_mips_subqh_r_w: ClangBuiltin<"__builtin_mips_subqh_r_w">,
0381   Intrinsic<[mips_q31_ty], [mips_q31_ty, mips_q31_ty], [IntrNoMem]>;
0382 
0383 def int_mips_subu_ph: ClangBuiltin<"__builtin_mips_subu_ph">,
0384   Intrinsic<[llvm_v2i16_ty], [llvm_v2i16_ty, llvm_v2i16_ty], []>;
0385 def int_mips_subu_s_ph: ClangBuiltin<"__builtin_mips_subu_s_ph">,
0386   Intrinsic<[llvm_v2i16_ty], [llvm_v2i16_ty, llvm_v2i16_ty], []>;
0387 
0388 def int_mips_subuh_qb: ClangBuiltin<"__builtin_mips_subuh_qb">,
0389   Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_v4i8_ty], [IntrNoMem]>;
0390 def int_mips_subuh_r_qb: ClangBuiltin<"__builtin_mips_subuh_r_qb">,
0391   Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_v4i8_ty], [IntrNoMem]>;
0392 
0393 //===----------------------------------------------------------------------===//
0394 // MIPS MSA
0395 
0396 //===----------------------------------------------------------------------===//
0397 // Addition/subtraction
0398 
0399 def int_mips_add_a_b : ClangBuiltin<"__builtin_msa_add_a_b">,
0400   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty],
0401   [Commutative, IntrNoMem]>;
0402 def int_mips_add_a_h : ClangBuiltin<"__builtin_msa_add_a_h">,
0403   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty],
0404   [Commutative, IntrNoMem]>;
0405 def int_mips_add_a_w : ClangBuiltin<"__builtin_msa_add_a_w">,
0406   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty],
0407   [Commutative, IntrNoMem]>;
0408 def int_mips_add_a_d : ClangBuiltin<"__builtin_msa_add_a_d">,
0409   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty],
0410   [Commutative, IntrNoMem]>;
0411 
0412 def int_mips_adds_a_b : ClangBuiltin<"__builtin_msa_adds_a_b">,
0413   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty],
0414   [Commutative, IntrNoMem]>;
0415 def int_mips_adds_a_h : ClangBuiltin<"__builtin_msa_adds_a_h">,
0416   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty],
0417   [Commutative, IntrNoMem]>;
0418 def int_mips_adds_a_w : ClangBuiltin<"__builtin_msa_adds_a_w">,
0419   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty],
0420   [Commutative, IntrNoMem]>;
0421 def int_mips_adds_a_d : ClangBuiltin<"__builtin_msa_adds_a_d">,
0422   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty],
0423   [Commutative, IntrNoMem]>;
0424 
0425 def int_mips_adds_s_b : ClangBuiltin<"__builtin_msa_adds_s_b">,
0426   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty],
0427   [Commutative, IntrNoMem]>;
0428 def int_mips_adds_s_h : ClangBuiltin<"__builtin_msa_adds_s_h">,
0429   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty],
0430   [Commutative, IntrNoMem]>;
0431 def int_mips_adds_s_w : ClangBuiltin<"__builtin_msa_adds_s_w">,
0432   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty],
0433   [Commutative, IntrNoMem]>;
0434 def int_mips_adds_s_d : ClangBuiltin<"__builtin_msa_adds_s_d">,
0435   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty],
0436   [Commutative, IntrNoMem]>;
0437 
0438 def int_mips_adds_u_b : ClangBuiltin<"__builtin_msa_adds_u_b">,
0439   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty],
0440   [Commutative, IntrNoMem]>;
0441 def int_mips_adds_u_h : ClangBuiltin<"__builtin_msa_adds_u_h">,
0442   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty],
0443   [Commutative, IntrNoMem]>;
0444 def int_mips_adds_u_w : ClangBuiltin<"__builtin_msa_adds_u_w">,
0445   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty],
0446   [Commutative, IntrNoMem]>;
0447 def int_mips_adds_u_d : ClangBuiltin<"__builtin_msa_adds_u_d">,
0448   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty],
0449   [Commutative, IntrNoMem]>;
0450 
0451 def int_mips_addv_b : ClangBuiltin<"__builtin_msa_addv_b">,
0452   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty],
0453   [Commutative, IntrNoMem]>;
0454 def int_mips_addv_h : ClangBuiltin<"__builtin_msa_addv_h">,
0455   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty],
0456   [Commutative, IntrNoMem]>;
0457 def int_mips_addv_w : ClangBuiltin<"__builtin_msa_addv_w">,
0458   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty],
0459   [Commutative, IntrNoMem]>;
0460 def int_mips_addv_d : ClangBuiltin<"__builtin_msa_addv_d">,
0461   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty],
0462   [Commutative, IntrNoMem]>;
0463 
0464 def int_mips_addvi_b : ClangBuiltin<"__builtin_msa_addvi_b">,
0465   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty],
0466   [Commutative, IntrNoMem, ImmArg<ArgIndex<1>>]>;
0467 def int_mips_addvi_h : ClangBuiltin<"__builtin_msa_addvi_h">,
0468   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty],
0469   [Commutative, IntrNoMem, ImmArg<ArgIndex<1>>]>;
0470 def int_mips_addvi_w : ClangBuiltin<"__builtin_msa_addvi_w">,
0471   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty],
0472   [Commutative, IntrNoMem, ImmArg<ArgIndex<1>>]>;
0473 def int_mips_addvi_d : ClangBuiltin<"__builtin_msa_addvi_d">,
0474   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty],
0475   [Commutative, IntrNoMem, ImmArg<ArgIndex<1>>]>;
0476 
0477 def int_mips_and_v : ClangBuiltin<"__builtin_msa_and_v">,
0478   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
0479 
0480 def int_mips_andi_b : ClangBuiltin<"__builtin_msa_andi_b">,
0481   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
0482 
0483 def int_mips_asub_s_b : ClangBuiltin<"__builtin_msa_asub_s_b">,
0484   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
0485 def int_mips_asub_s_h : ClangBuiltin<"__builtin_msa_asub_s_h">,
0486   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
0487 def int_mips_asub_s_w : ClangBuiltin<"__builtin_msa_asub_s_w">,
0488   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
0489 def int_mips_asub_s_d : ClangBuiltin<"__builtin_msa_asub_s_d">,
0490   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
0491 
0492 def int_mips_asub_u_b : ClangBuiltin<"__builtin_msa_asub_u_b">,
0493   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
0494 def int_mips_asub_u_h : ClangBuiltin<"__builtin_msa_asub_u_h">,
0495   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
0496 def int_mips_asub_u_w : ClangBuiltin<"__builtin_msa_asub_u_w">,
0497   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
0498 def int_mips_asub_u_d : ClangBuiltin<"__builtin_msa_asub_u_d">,
0499   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
0500 
0501 def int_mips_ave_s_b : ClangBuiltin<"__builtin_msa_ave_s_b">,
0502   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty],
0503   [Commutative, IntrNoMem]>;
0504 def int_mips_ave_s_h : ClangBuiltin<"__builtin_msa_ave_s_h">,
0505   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty],
0506   [Commutative, IntrNoMem]>;
0507 def int_mips_ave_s_w : ClangBuiltin<"__builtin_msa_ave_s_w">,
0508   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty],
0509   [Commutative, IntrNoMem]>;
0510 def int_mips_ave_s_d : ClangBuiltin<"__builtin_msa_ave_s_d">,
0511   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty],
0512   [Commutative, IntrNoMem]>;
0513 
0514 def int_mips_ave_u_b : ClangBuiltin<"__builtin_msa_ave_u_b">,
0515   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty],
0516   [Commutative, IntrNoMem]>;
0517 def int_mips_ave_u_h : ClangBuiltin<"__builtin_msa_ave_u_h">,
0518   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty],
0519   [Commutative, IntrNoMem]>;
0520 def int_mips_ave_u_w : ClangBuiltin<"__builtin_msa_ave_u_w">,
0521   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty],
0522   [Commutative, IntrNoMem]>;
0523 def int_mips_ave_u_d : ClangBuiltin<"__builtin_msa_ave_u_d">,
0524   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty],
0525   [Commutative, IntrNoMem]>;
0526 
0527 def int_mips_aver_s_b : ClangBuiltin<"__builtin_msa_aver_s_b">,
0528   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty],
0529   [Commutative, IntrNoMem]>;
0530 def int_mips_aver_s_h : ClangBuiltin<"__builtin_msa_aver_s_h">,
0531   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty],
0532   [Commutative, IntrNoMem]>;
0533 def int_mips_aver_s_w : ClangBuiltin<"__builtin_msa_aver_s_w">,
0534   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty],
0535   [Commutative, IntrNoMem]>;
0536 def int_mips_aver_s_d : ClangBuiltin<"__builtin_msa_aver_s_d">,
0537   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty],
0538   [Commutative, IntrNoMem]>;
0539 
0540 def int_mips_aver_u_b : ClangBuiltin<"__builtin_msa_aver_u_b">,
0541   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty],
0542   [Commutative, IntrNoMem]>;
0543 def int_mips_aver_u_h : ClangBuiltin<"__builtin_msa_aver_u_h">,
0544   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty],
0545   [Commutative, IntrNoMem]>;
0546 def int_mips_aver_u_w : ClangBuiltin<"__builtin_msa_aver_u_w">,
0547   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty],
0548   [Commutative, IntrNoMem]>;
0549 def int_mips_aver_u_d : ClangBuiltin<"__builtin_msa_aver_u_d">,
0550   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty],
0551   [Commutative, IntrNoMem]>;
0552 
0553 def int_mips_bclr_b : ClangBuiltin<"__builtin_msa_bclr_b">,
0554   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
0555 def int_mips_bclr_h : ClangBuiltin<"__builtin_msa_bclr_h">,
0556   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
0557 def int_mips_bclr_w : ClangBuiltin<"__builtin_msa_bclr_w">,
0558   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
0559 def int_mips_bclr_d : ClangBuiltin<"__builtin_msa_bclr_d">,
0560   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
0561 
0562 def int_mips_bclri_b : ClangBuiltin<"__builtin_msa_bclri_b">,
0563   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
0564 def int_mips_bclri_h : ClangBuiltin<"__builtin_msa_bclri_h">,
0565   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
0566 def int_mips_bclri_w : ClangBuiltin<"__builtin_msa_bclri_w">,
0567   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
0568 def int_mips_bclri_d : ClangBuiltin<"__builtin_msa_bclri_d">,
0569   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
0570 
0571 def int_mips_binsl_b : ClangBuiltin<"__builtin_msa_binsl_b">,
0572   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty],
0573             [IntrNoMem]>;
0574 def int_mips_binsl_h : ClangBuiltin<"__builtin_msa_binsl_h">,
0575   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty],
0576             [IntrNoMem]>;
0577 def int_mips_binsl_w : ClangBuiltin<"__builtin_msa_binsl_w">,
0578   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty],
0579             [IntrNoMem]>;
0580 def int_mips_binsl_d : ClangBuiltin<"__builtin_msa_binsl_d">,
0581   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty],
0582             [IntrNoMem]>;
0583 
0584 def int_mips_binsli_b : ClangBuiltin<"__builtin_msa_binsli_b">,
0585   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i32_ty],
0586             [IntrNoMem, ImmArg<ArgIndex<2>>]>;
0587 def int_mips_binsli_h : ClangBuiltin<"__builtin_msa_binsli_h">,
0588   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_i32_ty],
0589             [IntrNoMem, ImmArg<ArgIndex<2>>]>;
0590 def int_mips_binsli_w : ClangBuiltin<"__builtin_msa_binsli_w">,
0591   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty],
0592             [IntrNoMem, ImmArg<ArgIndex<2>>]>;
0593 def int_mips_binsli_d : ClangBuiltin<"__builtin_msa_binsli_d">,
0594   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty],
0595             [IntrNoMem, ImmArg<ArgIndex<2>>]>;
0596 
0597 def int_mips_binsr_b : ClangBuiltin<"__builtin_msa_binsr_b">,
0598   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty],
0599             [IntrNoMem]>;
0600 def int_mips_binsr_h : ClangBuiltin<"__builtin_msa_binsr_h">,
0601   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty],
0602             [IntrNoMem]>;
0603 def int_mips_binsr_w : ClangBuiltin<"__builtin_msa_binsr_w">,
0604   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty],
0605             [IntrNoMem]>;
0606 def int_mips_binsr_d : ClangBuiltin<"__builtin_msa_binsr_d">,
0607   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty],
0608             [IntrNoMem]>;
0609 
0610 def int_mips_binsri_b : ClangBuiltin<"__builtin_msa_binsri_b">,
0611   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i32_ty],
0612             [IntrNoMem, ImmArg<ArgIndex<2>>]>;
0613 def int_mips_binsri_h : ClangBuiltin<"__builtin_msa_binsri_h">,
0614   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_i32_ty],
0615             [IntrNoMem, ImmArg<ArgIndex<2>>]>;
0616 def int_mips_binsri_w : ClangBuiltin<"__builtin_msa_binsri_w">,
0617   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty],
0618             [IntrNoMem, ImmArg<ArgIndex<2>>]>;
0619 def int_mips_binsri_d : ClangBuiltin<"__builtin_msa_binsri_d">,
0620   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty],
0621             [IntrNoMem, ImmArg<ArgIndex<2>>]>;
0622 
0623 def int_mips_bmnz_v : ClangBuiltin<"__builtin_msa_bmnz_v">,
0624   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty],
0625             [IntrNoMem]>;
0626 
0627 def int_mips_bmnzi_b : ClangBuiltin<"__builtin_msa_bmnzi_b">,
0628   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i32_ty],
0629             [IntrNoMem, ImmArg<ArgIndex<2>>]>;
0630 
0631 def int_mips_bmz_v : ClangBuiltin<"__builtin_msa_bmz_v">,
0632   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty],
0633             [IntrNoMem]>;
0634 
0635 def int_mips_bmzi_b : ClangBuiltin<"__builtin_msa_bmzi_b">,
0636   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i32_ty],
0637             [IntrNoMem, ImmArg<ArgIndex<2>>]>;
0638 
0639 def int_mips_bneg_b : ClangBuiltin<"__builtin_msa_bneg_b">,
0640   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
0641 def int_mips_bneg_h : ClangBuiltin<"__builtin_msa_bneg_h">,
0642   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
0643 def int_mips_bneg_w : ClangBuiltin<"__builtin_msa_bneg_w">,
0644   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
0645 def int_mips_bneg_d : ClangBuiltin<"__builtin_msa_bneg_d">,
0646   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
0647 
0648 def int_mips_bnegi_b : ClangBuiltin<"__builtin_msa_bnegi_b">,
0649   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
0650 def int_mips_bnegi_h : ClangBuiltin<"__builtin_msa_bnegi_h">,
0651   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
0652 def int_mips_bnegi_w : ClangBuiltin<"__builtin_msa_bnegi_w">,
0653   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
0654 def int_mips_bnegi_d : ClangBuiltin<"__builtin_msa_bnegi_d">,
0655   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
0656 
0657 def int_mips_bnz_b : ClangBuiltin<"__builtin_msa_bnz_b">,
0658   Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty], [IntrNoMem]>;
0659 def int_mips_bnz_h : ClangBuiltin<"__builtin_msa_bnz_h">,
0660   Intrinsic<[llvm_i32_ty], [llvm_v8i16_ty], [IntrNoMem]>;
0661 def int_mips_bnz_w : ClangBuiltin<"__builtin_msa_bnz_w">,
0662   Intrinsic<[llvm_i32_ty], [llvm_v4i32_ty], [IntrNoMem]>;
0663 def int_mips_bnz_d : ClangBuiltin<"__builtin_msa_bnz_d">,
0664   Intrinsic<[llvm_i32_ty], [llvm_v2i64_ty], [IntrNoMem]>;
0665 
0666 def int_mips_bnz_v : ClangBuiltin<"__builtin_msa_bnz_v">,
0667   Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty], [IntrNoMem]>;
0668 
0669 def int_mips_bsel_v : ClangBuiltin<"__builtin_msa_bsel_v">,
0670   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty],
0671             [IntrNoMem]>;
0672 
0673 def int_mips_bseli_b : ClangBuiltin<"__builtin_msa_bseli_b">,
0674   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i32_ty],
0675             [IntrNoMem, ImmArg<ArgIndex<2>>]>;
0676 
0677 def int_mips_bset_b : ClangBuiltin<"__builtin_msa_bset_b">,
0678   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
0679 def int_mips_bset_h : ClangBuiltin<"__builtin_msa_bset_h">,
0680   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
0681 def int_mips_bset_w : ClangBuiltin<"__builtin_msa_bset_w">,
0682   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
0683 def int_mips_bset_d : ClangBuiltin<"__builtin_msa_bset_d">,
0684   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
0685 
0686 def int_mips_bseti_b : ClangBuiltin<"__builtin_msa_bseti_b">,
0687   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
0688 def int_mips_bseti_h : ClangBuiltin<"__builtin_msa_bseti_h">,
0689   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
0690 def int_mips_bseti_w : ClangBuiltin<"__builtin_msa_bseti_w">,
0691   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
0692 def int_mips_bseti_d : ClangBuiltin<"__builtin_msa_bseti_d">,
0693   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
0694 
0695 def int_mips_bz_b : ClangBuiltin<"__builtin_msa_bz_b">,
0696   Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty], [IntrNoMem]>;
0697 def int_mips_bz_h : ClangBuiltin<"__builtin_msa_bz_h">,
0698   Intrinsic<[llvm_i32_ty], [llvm_v8i16_ty], [IntrNoMem]>;
0699 def int_mips_bz_w : ClangBuiltin<"__builtin_msa_bz_w">,
0700   Intrinsic<[llvm_i32_ty], [llvm_v4i32_ty], [IntrNoMem]>;
0701 def int_mips_bz_d : ClangBuiltin<"__builtin_msa_bz_d">,
0702   Intrinsic<[llvm_i32_ty], [llvm_v2i64_ty], [IntrNoMem]>;
0703 
0704 def int_mips_bz_v : ClangBuiltin<"__builtin_msa_bz_v">,
0705   Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty], [IntrNoMem]>;
0706 
0707 def int_mips_ceq_b : ClangBuiltin<"__builtin_msa_ceq_b">,
0708   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
0709 def int_mips_ceq_h : ClangBuiltin<"__builtin_msa_ceq_h">,
0710   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
0711 def int_mips_ceq_w : ClangBuiltin<"__builtin_msa_ceq_w">,
0712   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
0713 def int_mips_ceq_d : ClangBuiltin<"__builtin_msa_ceq_d">,
0714   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
0715 
0716 def int_mips_ceqi_b : ClangBuiltin<"__builtin_msa_ceqi_b">,
0717   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
0718 def int_mips_ceqi_h : ClangBuiltin<"__builtin_msa_ceqi_h">,
0719   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
0720 def int_mips_ceqi_w : ClangBuiltin<"__builtin_msa_ceqi_w">,
0721   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
0722 def int_mips_ceqi_d : ClangBuiltin<"__builtin_msa_ceqi_d">,
0723   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
0724 
0725 def int_mips_cfcmsa : ClangBuiltin<"__builtin_msa_cfcmsa">,
0726   Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [ImmArg<ArgIndex<0>>]>;
0727 
0728 def int_mips_cle_s_b : ClangBuiltin<"__builtin_msa_cle_s_b">,
0729   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
0730 def int_mips_cle_s_h : ClangBuiltin<"__builtin_msa_cle_s_h">,
0731   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
0732 def int_mips_cle_s_w : ClangBuiltin<"__builtin_msa_cle_s_w">,
0733   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
0734 def int_mips_cle_s_d : ClangBuiltin<"__builtin_msa_cle_s_d">,
0735   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
0736 
0737 def int_mips_cle_u_b : ClangBuiltin<"__builtin_msa_cle_u_b">,
0738   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
0739 def int_mips_cle_u_h : ClangBuiltin<"__builtin_msa_cle_u_h">,
0740   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
0741 def int_mips_cle_u_w : ClangBuiltin<"__builtin_msa_cle_u_w">,
0742   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
0743 def int_mips_cle_u_d : ClangBuiltin<"__builtin_msa_cle_u_d">,
0744   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
0745 
0746 def int_mips_clei_s_b : ClangBuiltin<"__builtin_msa_clei_s_b">,
0747   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
0748 def int_mips_clei_s_h : ClangBuiltin<"__builtin_msa_clei_s_h">,
0749   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
0750 def int_mips_clei_s_w : ClangBuiltin<"__builtin_msa_clei_s_w">,
0751   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
0752 def int_mips_clei_s_d : ClangBuiltin<"__builtin_msa_clei_s_d">,
0753   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
0754 
0755 def int_mips_clei_u_b : ClangBuiltin<"__builtin_msa_clei_u_b">,
0756   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
0757 def int_mips_clei_u_h : ClangBuiltin<"__builtin_msa_clei_u_h">,
0758   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
0759 def int_mips_clei_u_w : ClangBuiltin<"__builtin_msa_clei_u_w">,
0760   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
0761 def int_mips_clei_u_d : ClangBuiltin<"__builtin_msa_clei_u_d">,
0762   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
0763 
0764 def int_mips_clt_s_b : ClangBuiltin<"__builtin_msa_clt_s_b">,
0765   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
0766 def int_mips_clt_s_h : ClangBuiltin<"__builtin_msa_clt_s_h">,
0767   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
0768 def int_mips_clt_s_w : ClangBuiltin<"__builtin_msa_clt_s_w">,
0769   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
0770 def int_mips_clt_s_d : ClangBuiltin<"__builtin_msa_clt_s_d">,
0771   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
0772 
0773 def int_mips_clt_u_b : ClangBuiltin<"__builtin_msa_clt_u_b">,
0774   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
0775 def int_mips_clt_u_h : ClangBuiltin<"__builtin_msa_clt_u_h">,
0776   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
0777 def int_mips_clt_u_w : ClangBuiltin<"__builtin_msa_clt_u_w">,
0778   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
0779 def int_mips_clt_u_d : ClangBuiltin<"__builtin_msa_clt_u_d">,
0780   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
0781 
0782 def int_mips_clti_s_b : ClangBuiltin<"__builtin_msa_clti_s_b">,
0783   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
0784 def int_mips_clti_s_h : ClangBuiltin<"__builtin_msa_clti_s_h">,
0785   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
0786 def int_mips_clti_s_w : ClangBuiltin<"__builtin_msa_clti_s_w">,
0787   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
0788 def int_mips_clti_s_d : ClangBuiltin<"__builtin_msa_clti_s_d">,
0789   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
0790 
0791 def int_mips_clti_u_b : ClangBuiltin<"__builtin_msa_clti_u_b">,
0792   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
0793 def int_mips_clti_u_h : ClangBuiltin<"__builtin_msa_clti_u_h">,
0794   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
0795 def int_mips_clti_u_w : ClangBuiltin<"__builtin_msa_clti_u_w">,
0796   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
0797 def int_mips_clti_u_d : ClangBuiltin<"__builtin_msa_clti_u_d">,
0798   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
0799 
0800 def int_mips_copy_s_b : ClangBuiltin<"__builtin_msa_copy_s_b">,
0801   Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
0802 def int_mips_copy_s_h : ClangBuiltin<"__builtin_msa_copy_s_h">,
0803   Intrinsic<[llvm_i32_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>;
0804 def int_mips_copy_s_w : ClangBuiltin<"__builtin_msa_copy_s_w">,
0805   Intrinsic<[llvm_i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>;
0806 def int_mips_copy_s_d : ClangBuiltin<"__builtin_msa_copy_s_d">,
0807   Intrinsic<[llvm_i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>;
0808 
0809 def int_mips_copy_u_b : ClangBuiltin<"__builtin_msa_copy_u_b">,
0810   Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
0811 def int_mips_copy_u_h : ClangBuiltin<"__builtin_msa_copy_u_h">,
0812   Intrinsic<[llvm_i32_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>;
0813 def int_mips_copy_u_w : ClangBuiltin<"__builtin_msa_copy_u_w">,
0814   Intrinsic<[llvm_i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>;
0815 def int_mips_copy_u_d : ClangBuiltin<"__builtin_msa_copy_u_d">,
0816   Intrinsic<[llvm_i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>;
0817 
0818 def int_mips_ctcmsa : ClangBuiltin<"__builtin_msa_ctcmsa">,
0819   Intrinsic<[], [llvm_i32_ty, llvm_i32_ty], [ImmArg<ArgIndex<0>>]>;
0820 
0821 def int_mips_div_s_b : ClangBuiltin<"__builtin_msa_div_s_b">,
0822   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
0823 def int_mips_div_s_h : ClangBuiltin<"__builtin_msa_div_s_h">,
0824   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
0825 def int_mips_div_s_w : ClangBuiltin<"__builtin_msa_div_s_w">,
0826   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
0827 def int_mips_div_s_d : ClangBuiltin<"__builtin_msa_div_s_d">,
0828   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
0829 
0830 def int_mips_div_u_b : ClangBuiltin<"__builtin_msa_div_u_b">,
0831   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
0832 def int_mips_div_u_h : ClangBuiltin<"__builtin_msa_div_u_h">,
0833   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
0834 def int_mips_div_u_w : ClangBuiltin<"__builtin_msa_div_u_w">,
0835   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
0836 def int_mips_div_u_d : ClangBuiltin<"__builtin_msa_div_u_d">,
0837   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
0838 
0839 // This instruction is part of the MSA spec but it does not share the
0840 // __builtin_msa prefix because it operates on GP registers.
0841 def int_mips_dlsa : ClangBuiltin<"__builtin_mips_dlsa">,
0842   Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty, llvm_i32_ty],
0843             [IntrNoMem]>;
0844 
0845 def int_mips_dotp_s_h : ClangBuiltin<"__builtin_msa_dotp_s_h">,
0846   Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
0847 def int_mips_dotp_s_w : ClangBuiltin<"__builtin_msa_dotp_s_w">,
0848   Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
0849 def int_mips_dotp_s_d : ClangBuiltin<"__builtin_msa_dotp_s_d">,
0850   Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
0851 
0852 def int_mips_dotp_u_h : ClangBuiltin<"__builtin_msa_dotp_u_h">,
0853   Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
0854 def int_mips_dotp_u_w : ClangBuiltin<"__builtin_msa_dotp_u_w">,
0855   Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
0856 def int_mips_dotp_u_d : ClangBuiltin<"__builtin_msa_dotp_u_d">,
0857   Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
0858 
0859 def int_mips_dpadd_s_h : ClangBuiltin<"__builtin_msa_dpadd_s_h">,
0860   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v16i8_ty, llvm_v16i8_ty],
0861   [IntrNoMem]>;
0862 def int_mips_dpadd_s_w : ClangBuiltin<"__builtin_msa_dpadd_s_w">,
0863   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v8i16_ty, llvm_v8i16_ty],
0864   [IntrNoMem]>;
0865 def int_mips_dpadd_s_d : ClangBuiltin<"__builtin_msa_dpadd_s_d">,
0866   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v4i32_ty, llvm_v4i32_ty],
0867   [IntrNoMem]>;
0868 
0869 def int_mips_dpadd_u_h : ClangBuiltin<"__builtin_msa_dpadd_u_h">,
0870   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v16i8_ty, llvm_v16i8_ty],
0871   [IntrNoMem]>;
0872 def int_mips_dpadd_u_w : ClangBuiltin<"__builtin_msa_dpadd_u_w">,
0873   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v8i16_ty, llvm_v8i16_ty],
0874   [IntrNoMem]>;
0875 def int_mips_dpadd_u_d : ClangBuiltin<"__builtin_msa_dpadd_u_d">,
0876   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v4i32_ty, llvm_v4i32_ty],
0877   [IntrNoMem]>;
0878 
0879 def int_mips_dpsub_s_h : ClangBuiltin<"__builtin_msa_dpsub_s_h">,
0880   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v16i8_ty, llvm_v16i8_ty],
0881   [IntrNoMem]>;
0882 def int_mips_dpsub_s_w : ClangBuiltin<"__builtin_msa_dpsub_s_w">,
0883   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v8i16_ty, llvm_v8i16_ty],
0884   [IntrNoMem]>;
0885 def int_mips_dpsub_s_d : ClangBuiltin<"__builtin_msa_dpsub_s_d">,
0886   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v4i32_ty, llvm_v4i32_ty],
0887   [IntrNoMem]>;
0888 
0889 def int_mips_dpsub_u_h : ClangBuiltin<"__builtin_msa_dpsub_u_h">,
0890   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v16i8_ty, llvm_v16i8_ty],
0891   [IntrNoMem]>;
0892 def int_mips_dpsub_u_w : ClangBuiltin<"__builtin_msa_dpsub_u_w">,
0893   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v8i16_ty, llvm_v8i16_ty],
0894   [IntrNoMem]>;
0895 def int_mips_dpsub_u_d : ClangBuiltin<"__builtin_msa_dpsub_u_d">,
0896   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v4i32_ty, llvm_v4i32_ty],
0897   [IntrNoMem]>;
0898 
0899 def int_mips_fadd_w : ClangBuiltin<"__builtin_msa_fadd_w">,
0900   Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
0901 def int_mips_fadd_d : ClangBuiltin<"__builtin_msa_fadd_d">,
0902   Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
0903 
0904 def int_mips_fcaf_w : ClangBuiltin<"__builtin_msa_fcaf_w">,
0905   Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
0906 def int_mips_fcaf_d : ClangBuiltin<"__builtin_msa_fcaf_d">,
0907   Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
0908 
0909 def int_mips_fceq_w : ClangBuiltin<"__builtin_msa_fceq_w">,
0910   Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
0911 def int_mips_fceq_d : ClangBuiltin<"__builtin_msa_fceq_d">,
0912   Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
0913 
0914 def int_mips_fcle_w : ClangBuiltin<"__builtin_msa_fcle_w">,
0915   Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
0916 def int_mips_fcle_d : ClangBuiltin<"__builtin_msa_fcle_d">,
0917   Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
0918 
0919 def int_mips_fclt_w : ClangBuiltin<"__builtin_msa_fclt_w">,
0920   Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
0921 def int_mips_fclt_d : ClangBuiltin<"__builtin_msa_fclt_d">,
0922   Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
0923 
0924 def int_mips_fclass_w : ClangBuiltin<"__builtin_msa_fclass_w">,
0925   Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty], [IntrNoMem]>;
0926 def int_mips_fclass_d : ClangBuiltin<"__builtin_msa_fclass_d">,
0927   Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty], [IntrNoMem]>;
0928 
0929 def int_mips_fcne_w : ClangBuiltin<"__builtin_msa_fcne_w">,
0930   Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
0931 def int_mips_fcne_d : ClangBuiltin<"__builtin_msa_fcne_d">,
0932   Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
0933 
0934 def int_mips_fcor_w : ClangBuiltin<"__builtin_msa_fcor_w">,
0935   Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
0936 def int_mips_fcor_d : ClangBuiltin<"__builtin_msa_fcor_d">,
0937   Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
0938 
0939 def int_mips_fcueq_w : ClangBuiltin<"__builtin_msa_fcueq_w">,
0940   Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
0941 def int_mips_fcueq_d : ClangBuiltin<"__builtin_msa_fcueq_d">,
0942   Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
0943 
0944 def int_mips_fcule_w : ClangBuiltin<"__builtin_msa_fcule_w">,
0945   Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
0946 def int_mips_fcule_d : ClangBuiltin<"__builtin_msa_fcule_d">,
0947   Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
0948 
0949 def int_mips_fcult_w : ClangBuiltin<"__builtin_msa_fcult_w">,
0950   Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
0951 def int_mips_fcult_d : ClangBuiltin<"__builtin_msa_fcult_d">,
0952   Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
0953 
0954 def int_mips_fcun_w : ClangBuiltin<"__builtin_msa_fcun_w">,
0955   Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
0956 def int_mips_fcun_d : ClangBuiltin<"__builtin_msa_fcun_d">,
0957   Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
0958 
0959 def int_mips_fcune_w : ClangBuiltin<"__builtin_msa_fcune_w">,
0960   Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
0961 def int_mips_fcune_d : ClangBuiltin<"__builtin_msa_fcune_d">,
0962   Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
0963 
0964 def int_mips_fdiv_w : ClangBuiltin<"__builtin_msa_fdiv_w">,
0965   Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
0966 def int_mips_fdiv_d : ClangBuiltin<"__builtin_msa_fdiv_d">,
0967   Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
0968 
0969 def int_mips_fexdo_h : ClangBuiltin<"__builtin_msa_fexdo_h">,
0970   Intrinsic<[llvm_v8f16_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
0971 def int_mips_fexdo_w : ClangBuiltin<"__builtin_msa_fexdo_w">,
0972   Intrinsic<[llvm_v4f32_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
0973 
0974 def int_mips_fexp2_w : ClangBuiltin<"__builtin_msa_fexp2_w">,
0975   Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4i32_ty], [IntrNoMem]>;
0976 def int_mips_fexp2_d : ClangBuiltin<"__builtin_msa_fexp2_d">,
0977   Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2i64_ty], [IntrNoMem]>;
0978 
0979 def int_mips_fexupl_w : ClangBuiltin<"__builtin_msa_fexupl_w">,
0980   Intrinsic<[llvm_v4f32_ty], [llvm_v8f16_ty], [IntrNoMem]>;
0981 def int_mips_fexupl_d : ClangBuiltin<"__builtin_msa_fexupl_d">,
0982   Intrinsic<[llvm_v2f64_ty], [llvm_v4f32_ty], [IntrNoMem]>;
0983 
0984 def int_mips_fexupr_w : ClangBuiltin<"__builtin_msa_fexupr_w">,
0985   Intrinsic<[llvm_v4f32_ty], [llvm_v8f16_ty], [IntrNoMem]>;
0986 def int_mips_fexupr_d : ClangBuiltin<"__builtin_msa_fexupr_d">,
0987   Intrinsic<[llvm_v2f64_ty], [llvm_v4f32_ty], [IntrNoMem]>;
0988 
0989 def int_mips_ffint_s_w : ClangBuiltin<"__builtin_msa_ffint_s_w">,
0990   Intrinsic<[llvm_v4f32_ty], [llvm_v4i32_ty], [IntrNoMem]>;
0991 def int_mips_ffint_s_d : ClangBuiltin<"__builtin_msa_ffint_s_d">,
0992   Intrinsic<[llvm_v2f64_ty], [llvm_v2i64_ty], [IntrNoMem]>;
0993 
0994 def int_mips_ffint_u_w : ClangBuiltin<"__builtin_msa_ffint_u_w">,
0995   Intrinsic<[llvm_v4f32_ty], [llvm_v4i32_ty], [IntrNoMem]>;
0996 def int_mips_ffint_u_d : ClangBuiltin<"__builtin_msa_ffint_u_d">,
0997   Intrinsic<[llvm_v2f64_ty], [llvm_v2i64_ty], [IntrNoMem]>;
0998 
0999 def int_mips_ffql_w : ClangBuiltin<"__builtin_msa_ffql_w">,
1000   Intrinsic<[llvm_v4f32_ty], [llvm_v8i16_ty], [IntrNoMem]>;
1001 def int_mips_ffql_d : ClangBuiltin<"__builtin_msa_ffql_d">,
1002   Intrinsic<[llvm_v2f64_ty], [llvm_v4i32_ty], [IntrNoMem]>;
1003 
1004 def int_mips_ffqr_w : ClangBuiltin<"__builtin_msa_ffqr_w">,
1005   Intrinsic<[llvm_v4f32_ty], [llvm_v8i16_ty], [IntrNoMem]>;
1006 def int_mips_ffqr_d : ClangBuiltin<"__builtin_msa_ffqr_d">,
1007   Intrinsic<[llvm_v2f64_ty], [llvm_v4i32_ty], [IntrNoMem]>;
1008 
1009 def int_mips_fill_b : ClangBuiltin<"__builtin_msa_fill_b">,
1010   Intrinsic<[llvm_v16i8_ty], [llvm_i32_ty], [IntrNoMem]>;
1011 def int_mips_fill_h : ClangBuiltin<"__builtin_msa_fill_h">,
1012   Intrinsic<[llvm_v8i16_ty], [llvm_i32_ty], [IntrNoMem]>;
1013 def int_mips_fill_w : ClangBuiltin<"__builtin_msa_fill_w">,
1014   Intrinsic<[llvm_v4i32_ty], [llvm_i32_ty], [IntrNoMem]>;
1015 def int_mips_fill_d : ClangBuiltin<"__builtin_msa_fill_d">,
1016   Intrinsic<[llvm_v2i64_ty], [llvm_i64_ty], [IntrNoMem]>;
1017 
1018 def int_mips_flog2_w : ClangBuiltin<"__builtin_msa_flog2_w">,
1019   Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem]>;
1020 def int_mips_flog2_d : ClangBuiltin<"__builtin_msa_flog2_d">,
1021   Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty], [IntrNoMem]>;
1022 
1023 def int_mips_fmadd_w : ClangBuiltin<"__builtin_msa_fmadd_w">,
1024   Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty],
1025             [IntrNoMem]>;
1026 def int_mips_fmadd_d : ClangBuiltin<"__builtin_msa_fmadd_d">,
1027   Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty],
1028             [IntrNoMem]>;
1029 
1030 def int_mips_fmax_w : ClangBuiltin<"__builtin_msa_fmax_w">,
1031   Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
1032 def int_mips_fmax_d : ClangBuiltin<"__builtin_msa_fmax_d">,
1033   Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1034 
1035 def int_mips_fmax_a_w : ClangBuiltin<"__builtin_msa_fmax_a_w">,
1036   Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
1037 def int_mips_fmax_a_d : ClangBuiltin<"__builtin_msa_fmax_a_d">,
1038   Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1039 
1040 def int_mips_fmin_w : ClangBuiltin<"__builtin_msa_fmin_w">,
1041   Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
1042 def int_mips_fmin_d : ClangBuiltin<"__builtin_msa_fmin_d">,
1043   Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1044 
1045 def int_mips_fmin_a_w : ClangBuiltin<"__builtin_msa_fmin_a_w">,
1046   Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
1047 def int_mips_fmin_a_d : ClangBuiltin<"__builtin_msa_fmin_a_d">,
1048   Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1049 
1050 def int_mips_fmsub_w : ClangBuiltin<"__builtin_msa_fmsub_w">,
1051   Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty],
1052             [IntrNoMem]>;
1053 def int_mips_fmsub_d : ClangBuiltin<"__builtin_msa_fmsub_d">,
1054   Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty],
1055             [IntrNoMem]>;
1056 
1057 def int_mips_fmul_w : ClangBuiltin<"__builtin_msa_fmul_w">,
1058   Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
1059 def int_mips_fmul_d : ClangBuiltin<"__builtin_msa_fmul_d">,
1060   Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1061 
1062 def int_mips_frint_w : ClangBuiltin<"__builtin_msa_frint_w">,
1063   Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem]>;
1064 def int_mips_frint_d : ClangBuiltin<"__builtin_msa_frint_d">,
1065   Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty], [IntrNoMem]>;
1066 
1067 def int_mips_frcp_w : ClangBuiltin<"__builtin_msa_frcp_w">,
1068   Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem]>;
1069 def int_mips_frcp_d : ClangBuiltin<"__builtin_msa_frcp_d">,
1070   Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty], [IntrNoMem]>;
1071 
1072 def int_mips_frsqrt_w : ClangBuiltin<"__builtin_msa_frsqrt_w">,
1073   Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem]>;
1074 def int_mips_frsqrt_d : ClangBuiltin<"__builtin_msa_frsqrt_d">,
1075   Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty], [IntrNoMem]>;
1076 
1077 def int_mips_fsaf_w : ClangBuiltin<"__builtin_msa_fsaf_w">,
1078   Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
1079 def int_mips_fsaf_d : ClangBuiltin<"__builtin_msa_fsaf_d">,
1080   Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1081 
1082 def int_mips_fseq_w : ClangBuiltin<"__builtin_msa_fseq_w">,
1083   Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
1084 def int_mips_fseq_d : ClangBuiltin<"__builtin_msa_fseq_d">,
1085   Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1086 
1087 def int_mips_fsle_w : ClangBuiltin<"__builtin_msa_fsle_w">,
1088   Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
1089 def int_mips_fsle_d : ClangBuiltin<"__builtin_msa_fsle_d">,
1090   Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1091 
1092 def int_mips_fslt_w : ClangBuiltin<"__builtin_msa_fslt_w">,
1093   Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
1094 def int_mips_fslt_d : ClangBuiltin<"__builtin_msa_fslt_d">,
1095   Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1096 
1097 def int_mips_fsne_w : ClangBuiltin<"__builtin_msa_fsne_w">,
1098   Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
1099 def int_mips_fsne_d : ClangBuiltin<"__builtin_msa_fsne_d">,
1100   Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1101 
1102 def int_mips_fsor_w : ClangBuiltin<"__builtin_msa_fsor_w">,
1103   Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
1104 def int_mips_fsor_d : ClangBuiltin<"__builtin_msa_fsor_d">,
1105   Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1106 
1107 def int_mips_fsqrt_w : ClangBuiltin<"__builtin_msa_fsqrt_w">,
1108   Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem]>;
1109 def int_mips_fsqrt_d : ClangBuiltin<"__builtin_msa_fsqrt_d">,
1110   Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty], [IntrNoMem]>;
1111 
1112 def int_mips_fsub_w : ClangBuiltin<"__builtin_msa_fsub_w">,
1113   Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
1114 def int_mips_fsub_d : ClangBuiltin<"__builtin_msa_fsub_d">,
1115   Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1116 
1117 def int_mips_fsueq_w : ClangBuiltin<"__builtin_msa_fsueq_w">,
1118   Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
1119 def int_mips_fsueq_d : ClangBuiltin<"__builtin_msa_fsueq_d">,
1120   Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1121 
1122 def int_mips_fsule_w : ClangBuiltin<"__builtin_msa_fsule_w">,
1123   Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
1124 def int_mips_fsule_d : ClangBuiltin<"__builtin_msa_fsule_d">,
1125   Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1126 
1127 def int_mips_fsult_w : ClangBuiltin<"__builtin_msa_fsult_w">,
1128   Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
1129 def int_mips_fsult_d : ClangBuiltin<"__builtin_msa_fsult_d">,
1130   Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1131 
1132 def int_mips_fsun_w : ClangBuiltin<"__builtin_msa_fsun_w">,
1133   Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
1134 def int_mips_fsun_d : ClangBuiltin<"__builtin_msa_fsun_d">,
1135   Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1136 
1137 def int_mips_fsune_w : ClangBuiltin<"__builtin_msa_fsune_w">,
1138   Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
1139 def int_mips_fsune_d : ClangBuiltin<"__builtin_msa_fsune_d">,
1140   Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1141 
1142 def int_mips_ftint_s_w : ClangBuiltin<"__builtin_msa_ftint_s_w">,
1143   Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty], [IntrNoMem]>;
1144 def int_mips_ftint_s_d : ClangBuiltin<"__builtin_msa_ftint_s_d">,
1145   Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty], [IntrNoMem]>;
1146 
1147 def int_mips_ftint_u_w : ClangBuiltin<"__builtin_msa_ftint_u_w">,
1148   Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty], [IntrNoMem]>;
1149 def int_mips_ftint_u_d : ClangBuiltin<"__builtin_msa_ftint_u_d">,
1150   Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty], [IntrNoMem]>;
1151 
1152 def int_mips_ftq_h : ClangBuiltin<"__builtin_msa_ftq_h">,
1153   Intrinsic<[llvm_v8i16_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
1154 def int_mips_ftq_w : ClangBuiltin<"__builtin_msa_ftq_w">,
1155   Intrinsic<[llvm_v4i32_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1156 
1157 def int_mips_ftrunc_s_w : ClangBuiltin<"__builtin_msa_ftrunc_s_w">,
1158   Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty], [IntrNoMem]>;
1159 def int_mips_ftrunc_s_d : ClangBuiltin<"__builtin_msa_ftrunc_s_d">,
1160   Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty], [IntrNoMem]>;
1161 
1162 def int_mips_ftrunc_u_w : ClangBuiltin<"__builtin_msa_ftrunc_u_w">,
1163   Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty], [IntrNoMem]>;
1164 def int_mips_ftrunc_u_d : ClangBuiltin<"__builtin_msa_ftrunc_u_d">,
1165   Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty], [IntrNoMem]>;
1166 
1167 def int_mips_hadd_s_h : ClangBuiltin<"__builtin_msa_hadd_s_h">,
1168   Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1169 def int_mips_hadd_s_w : ClangBuiltin<"__builtin_msa_hadd_s_w">,
1170   Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1171 def int_mips_hadd_s_d : ClangBuiltin<"__builtin_msa_hadd_s_d">,
1172   Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1173 
1174 def int_mips_hadd_u_h : ClangBuiltin<"__builtin_msa_hadd_u_h">,
1175   Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1176 def int_mips_hadd_u_w : ClangBuiltin<"__builtin_msa_hadd_u_w">,
1177   Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1178 def int_mips_hadd_u_d : ClangBuiltin<"__builtin_msa_hadd_u_d">,
1179   Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1180 
1181 def int_mips_hsub_s_h : ClangBuiltin<"__builtin_msa_hsub_s_h">,
1182   Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1183 def int_mips_hsub_s_w : ClangBuiltin<"__builtin_msa_hsub_s_w">,
1184   Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1185 def int_mips_hsub_s_d : ClangBuiltin<"__builtin_msa_hsub_s_d">,
1186   Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1187 
1188 def int_mips_hsub_u_h : ClangBuiltin<"__builtin_msa_hsub_u_h">,
1189   Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1190 def int_mips_hsub_u_w : ClangBuiltin<"__builtin_msa_hsub_u_w">,
1191   Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1192 def int_mips_hsub_u_d : ClangBuiltin<"__builtin_msa_hsub_u_d">,
1193   Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1194 
1195 def int_mips_ilvev_b : ClangBuiltin<"__builtin_msa_ilvev_b">,
1196   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1197 def int_mips_ilvev_h : ClangBuiltin<"__builtin_msa_ilvev_h">,
1198   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1199 def int_mips_ilvev_w : ClangBuiltin<"__builtin_msa_ilvev_w">,
1200   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1201 def int_mips_ilvev_d : ClangBuiltin<"__builtin_msa_ilvev_d">,
1202   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1203 
1204 def int_mips_ilvl_b : ClangBuiltin<"__builtin_msa_ilvl_b">,
1205   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1206 def int_mips_ilvl_h : ClangBuiltin<"__builtin_msa_ilvl_h">,
1207   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1208 def int_mips_ilvl_w : ClangBuiltin<"__builtin_msa_ilvl_w">,
1209   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1210 def int_mips_ilvl_d : ClangBuiltin<"__builtin_msa_ilvl_d">,
1211   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1212 
1213 def int_mips_ilvod_b : ClangBuiltin<"__builtin_msa_ilvod_b">,
1214   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1215 def int_mips_ilvod_h : ClangBuiltin<"__builtin_msa_ilvod_h">,
1216   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1217 def int_mips_ilvod_w : ClangBuiltin<"__builtin_msa_ilvod_w">,
1218   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1219 def int_mips_ilvod_d : ClangBuiltin<"__builtin_msa_ilvod_d">,
1220   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1221 
1222 def int_mips_ilvr_b : ClangBuiltin<"__builtin_msa_ilvr_b">,
1223   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1224 def int_mips_ilvr_h : ClangBuiltin<"__builtin_msa_ilvr_h">,
1225   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1226 def int_mips_ilvr_w : ClangBuiltin<"__builtin_msa_ilvr_w">,
1227   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1228 def int_mips_ilvr_d : ClangBuiltin<"__builtin_msa_ilvr_d">,
1229   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1230 
1231 def int_mips_insert_b : ClangBuiltin<"__builtin_msa_insert_b">,
1232   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty, llvm_i32_ty],
1233   [IntrNoMem]>;
1234 def int_mips_insert_h : ClangBuiltin<"__builtin_msa_insert_h">,
1235   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty, llvm_i32_ty],
1236   [IntrNoMem]>;
1237 def int_mips_insert_w : ClangBuiltin<"__builtin_msa_insert_w">,
1238   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty, llvm_i32_ty],
1239   [IntrNoMem]>;
1240 def int_mips_insert_d : ClangBuiltin<"__builtin_msa_insert_d">,
1241   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty, llvm_i64_ty],
1242   [IntrNoMem]>;
1243 
1244 def int_mips_insve_b : ClangBuiltin<"__builtin_msa_insve_b">,
1245   Intrinsic<[llvm_v16i8_ty],
1246             [llvm_v16i8_ty, llvm_i32_ty, llvm_v16i8_ty],
1247             [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1248 def int_mips_insve_h : ClangBuiltin<"__builtin_msa_insve_h">,
1249   Intrinsic<[llvm_v8i16_ty],
1250             [llvm_v8i16_ty, llvm_i32_ty, llvm_v8i16_ty],
1251             [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1252 def int_mips_insve_w : ClangBuiltin<"__builtin_msa_insve_w">,
1253   Intrinsic<[llvm_v4i32_ty],
1254             [llvm_v4i32_ty, llvm_i32_ty, llvm_v4i32_ty],
1255             [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1256 def int_mips_insve_d : ClangBuiltin<"__builtin_msa_insve_d">,
1257   Intrinsic<[llvm_v2i64_ty],
1258             [llvm_v2i64_ty, llvm_i32_ty, llvm_v2i64_ty],
1259             [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1260 
1261 def int_mips_ld_b : ClangBuiltin<"__builtin_msa_ld_b">,
1262   DefaultAttrsIntrinsic<[llvm_v16i8_ty], [llvm_ptr_ty, llvm_i32_ty],
1263   [IntrReadMem, IntrArgMemOnly]>;
1264 def int_mips_ld_h : ClangBuiltin<"__builtin_msa_ld_h">,
1265   DefaultAttrsIntrinsic<[llvm_v8i16_ty], [llvm_ptr_ty, llvm_i32_ty],
1266   [IntrReadMem, IntrArgMemOnly]>;
1267 def int_mips_ld_w : ClangBuiltin<"__builtin_msa_ld_w">,
1268   DefaultAttrsIntrinsic<[llvm_v4i32_ty], [llvm_ptr_ty, llvm_i32_ty],
1269   [IntrReadMem, IntrArgMemOnly]>;
1270 def int_mips_ld_d : ClangBuiltin<"__builtin_msa_ld_d">,
1271   DefaultAttrsIntrinsic<[llvm_v2i64_ty], [llvm_ptr_ty, llvm_i32_ty],
1272   [IntrReadMem, IntrArgMemOnly]>;
1273 
1274 def int_mips_ldr_d : ClangBuiltin<"__builtin_msa_ldr_d">,
1275   DefaultAttrsIntrinsic<[llvm_v2i64_ty], [llvm_ptr_ty, llvm_i32_ty],
1276   [IntrReadMem, IntrArgMemOnly]>;
1277 def int_mips_ldr_w : ClangBuiltin<"__builtin_msa_ldr_w">,
1278   DefaultAttrsIntrinsic<[llvm_v4i32_ty], [llvm_ptr_ty, llvm_i32_ty],
1279   [IntrReadMem, IntrArgMemOnly]>;
1280 
1281 def int_mips_ldi_b : ClangBuiltin<"__builtin_msa_ldi_b">,
1282   Intrinsic<[llvm_v16i8_ty], [llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<0>>]>;
1283 def int_mips_ldi_h : ClangBuiltin<"__builtin_msa_ldi_h">,
1284   Intrinsic<[llvm_v8i16_ty], [llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<0>>]>;
1285 def int_mips_ldi_w : ClangBuiltin<"__builtin_msa_ldi_w">,
1286   Intrinsic<[llvm_v4i32_ty], [llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<0>>]>;
1287 def int_mips_ldi_d : ClangBuiltin<"__builtin_msa_ldi_d">,
1288   Intrinsic<[llvm_v2i64_ty], [llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<0>>]>;
1289 
1290 // This instruction is part of the MSA spec but it does not share the
1291 // __builtin_msa prefix because it operates on the GPR registers.
1292 def int_mips_lsa : ClangBuiltin<"__builtin_mips_lsa">,
1293   Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
1294             [IntrNoMem]>;
1295 
1296 def int_mips_madd_q_h : ClangBuiltin<"__builtin_msa_madd_q_h">,
1297   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty],
1298   [IntrNoMem]>;
1299 def int_mips_madd_q_w : ClangBuiltin<"__builtin_msa_madd_q_w">,
1300   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty],
1301   [IntrNoMem]>;
1302 
1303 def int_mips_maddr_q_h : ClangBuiltin<"__builtin_msa_maddr_q_h">,
1304   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty],
1305   [IntrNoMem]>;
1306 def int_mips_maddr_q_w : ClangBuiltin<"__builtin_msa_maddr_q_w">,
1307   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty],
1308   [IntrNoMem]>;
1309 
1310 def int_mips_maddv_b : ClangBuiltin<"__builtin_msa_maddv_b">,
1311   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty],
1312   [IntrNoMem]>;
1313 def int_mips_maddv_h : ClangBuiltin<"__builtin_msa_maddv_h">,
1314   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty],
1315   [IntrNoMem]>;
1316 def int_mips_maddv_w : ClangBuiltin<"__builtin_msa_maddv_w">,
1317   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty],
1318   [IntrNoMem]>;
1319 def int_mips_maddv_d : ClangBuiltin<"__builtin_msa_maddv_d">,
1320   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty],
1321   [IntrNoMem]>;
1322 
1323 def int_mips_max_a_b : ClangBuiltin<"__builtin_msa_max_a_b">,
1324   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1325 def int_mips_max_a_h : ClangBuiltin<"__builtin_msa_max_a_h">,
1326   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1327 def int_mips_max_a_w : ClangBuiltin<"__builtin_msa_max_a_w">,
1328   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1329 def int_mips_max_a_d : ClangBuiltin<"__builtin_msa_max_a_d">,
1330   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1331 
1332 def int_mips_max_s_b : ClangBuiltin<"__builtin_msa_max_s_b">,
1333   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1334 def int_mips_max_s_h : ClangBuiltin<"__builtin_msa_max_s_h">,
1335   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1336 def int_mips_max_s_w : ClangBuiltin<"__builtin_msa_max_s_w">,
1337   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1338 def int_mips_max_s_d : ClangBuiltin<"__builtin_msa_max_s_d">,
1339   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1340 
1341 def int_mips_max_u_b : ClangBuiltin<"__builtin_msa_max_u_b">,
1342   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1343 def int_mips_max_u_h : ClangBuiltin<"__builtin_msa_max_u_h">,
1344   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1345 def int_mips_max_u_w : ClangBuiltin<"__builtin_msa_max_u_w">,
1346   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1347 def int_mips_max_u_d : ClangBuiltin<"__builtin_msa_max_u_d">,
1348   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1349 
1350 def int_mips_maxi_s_b : ClangBuiltin<"__builtin_msa_maxi_s_b">,
1351   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1352 def int_mips_maxi_s_h : ClangBuiltin<"__builtin_msa_maxi_s_h">,
1353   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1354 def int_mips_maxi_s_w : ClangBuiltin<"__builtin_msa_maxi_s_w">,
1355   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1356 def int_mips_maxi_s_d : ClangBuiltin<"__builtin_msa_maxi_s_d">,
1357   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1358 
1359 def int_mips_maxi_u_b : ClangBuiltin<"__builtin_msa_maxi_u_b">,
1360   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1361 def int_mips_maxi_u_h : ClangBuiltin<"__builtin_msa_maxi_u_h">,
1362   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1363 def int_mips_maxi_u_w : ClangBuiltin<"__builtin_msa_maxi_u_w">,
1364   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1365 def int_mips_maxi_u_d : ClangBuiltin<"__builtin_msa_maxi_u_d">,
1366   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1367 
1368 def int_mips_min_a_b : ClangBuiltin<"__builtin_msa_min_a_b">,
1369   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1370 def int_mips_min_a_h : ClangBuiltin<"__builtin_msa_min_a_h">,
1371   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1372 def int_mips_min_a_w : ClangBuiltin<"__builtin_msa_min_a_w">,
1373   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1374 def int_mips_min_a_d : ClangBuiltin<"__builtin_msa_min_a_d">,
1375   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1376 
1377 def int_mips_min_s_b : ClangBuiltin<"__builtin_msa_min_s_b">,
1378   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1379 def int_mips_min_s_h : ClangBuiltin<"__builtin_msa_min_s_h">,
1380   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1381 def int_mips_min_s_w : ClangBuiltin<"__builtin_msa_min_s_w">,
1382   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1383 def int_mips_min_s_d : ClangBuiltin<"__builtin_msa_min_s_d">,
1384   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1385 
1386 def int_mips_min_u_b : ClangBuiltin<"__builtin_msa_min_u_b">,
1387   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1388 def int_mips_min_u_h : ClangBuiltin<"__builtin_msa_min_u_h">,
1389   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1390 def int_mips_min_u_w : ClangBuiltin<"__builtin_msa_min_u_w">,
1391   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1392 def int_mips_min_u_d : ClangBuiltin<"__builtin_msa_min_u_d">,
1393   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1394 
1395 def int_mips_mini_s_b : ClangBuiltin<"__builtin_msa_mini_s_b">,
1396   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1397 def int_mips_mini_s_h : ClangBuiltin<"__builtin_msa_mini_s_h">,
1398   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1399 def int_mips_mini_s_w : ClangBuiltin<"__builtin_msa_mini_s_w">,
1400   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1401 def int_mips_mini_s_d : ClangBuiltin<"__builtin_msa_mini_s_d">,
1402   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1403 
1404 def int_mips_mini_u_b : ClangBuiltin<"__builtin_msa_mini_u_b">,
1405   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1406 def int_mips_mini_u_h : ClangBuiltin<"__builtin_msa_mini_u_h">,
1407   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1408 def int_mips_mini_u_w : ClangBuiltin<"__builtin_msa_mini_u_w">,
1409   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1410 def int_mips_mini_u_d : ClangBuiltin<"__builtin_msa_mini_u_d">,
1411   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1412 
1413 def int_mips_mod_s_b : ClangBuiltin<"__builtin_msa_mod_s_b">,
1414   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1415 def int_mips_mod_s_h : ClangBuiltin<"__builtin_msa_mod_s_h">,
1416   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1417 def int_mips_mod_s_w : ClangBuiltin<"__builtin_msa_mod_s_w">,
1418   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1419 def int_mips_mod_s_d : ClangBuiltin<"__builtin_msa_mod_s_d">,
1420   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1421 
1422 def int_mips_mod_u_b : ClangBuiltin<"__builtin_msa_mod_u_b">,
1423   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1424 def int_mips_mod_u_h : ClangBuiltin<"__builtin_msa_mod_u_h">,
1425   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1426 def int_mips_mod_u_w : ClangBuiltin<"__builtin_msa_mod_u_w">,
1427   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1428 def int_mips_mod_u_d : ClangBuiltin<"__builtin_msa_mod_u_d">,
1429   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1430 
1431 def int_mips_move_v : ClangBuiltin<"__builtin_msa_move_v">,
1432   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty], [IntrNoMem]>;
1433 
1434 def int_mips_msub_q_h : ClangBuiltin<"__builtin_msa_msub_q_h">,
1435   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty],
1436   [IntrNoMem]>;
1437 def int_mips_msub_q_w : ClangBuiltin<"__builtin_msa_msub_q_w">,
1438   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty],
1439   [IntrNoMem]>;
1440 
1441 def int_mips_msubr_q_h : ClangBuiltin<"__builtin_msa_msubr_q_h">,
1442   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty],
1443   [IntrNoMem]>;
1444 def int_mips_msubr_q_w : ClangBuiltin<"__builtin_msa_msubr_q_w">,
1445   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty],
1446   [IntrNoMem]>;
1447 
1448 def int_mips_msubv_b : ClangBuiltin<"__builtin_msa_msubv_b">,
1449   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty],
1450   [IntrNoMem]>;
1451 def int_mips_msubv_h : ClangBuiltin<"__builtin_msa_msubv_h">,
1452   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty],
1453   [IntrNoMem]>;
1454 def int_mips_msubv_w : ClangBuiltin<"__builtin_msa_msubv_w">,
1455   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty],
1456   [IntrNoMem]>;
1457 def int_mips_msubv_d : ClangBuiltin<"__builtin_msa_msubv_d">,
1458   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty],
1459   [IntrNoMem]>;
1460 
1461 def int_mips_mul_q_h : ClangBuiltin<"__builtin_msa_mul_q_h">,
1462   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1463 def int_mips_mul_q_w : ClangBuiltin<"__builtin_msa_mul_q_w">,
1464   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1465 
1466 def int_mips_mulr_q_h : ClangBuiltin<"__builtin_msa_mulr_q_h">,
1467   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1468 def int_mips_mulr_q_w : ClangBuiltin<"__builtin_msa_mulr_q_w">,
1469   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1470 
1471 def int_mips_mulv_b : ClangBuiltin<"__builtin_msa_mulv_b">,
1472   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1473 def int_mips_mulv_h : ClangBuiltin<"__builtin_msa_mulv_h">,
1474   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1475 def int_mips_mulv_w : ClangBuiltin<"__builtin_msa_mulv_w">,
1476   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1477 def int_mips_mulv_d : ClangBuiltin<"__builtin_msa_mulv_d">,
1478   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1479 
1480 def int_mips_nloc_b : ClangBuiltin<"__builtin_msa_nloc_b">,
1481   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty], [IntrNoMem]>;
1482 def int_mips_nloc_h : ClangBuiltin<"__builtin_msa_nloc_h">,
1483   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty], [IntrNoMem]>;
1484 def int_mips_nloc_w : ClangBuiltin<"__builtin_msa_nloc_w">,
1485   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty], [IntrNoMem]>;
1486 def int_mips_nloc_d : ClangBuiltin<"__builtin_msa_nloc_d">,
1487   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty], [IntrNoMem]>;
1488 
1489 def int_mips_nlzc_b : ClangBuiltin<"__builtin_msa_nlzc_b">,
1490   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty], [IntrNoMem]>;
1491 def int_mips_nlzc_h : ClangBuiltin<"__builtin_msa_nlzc_h">,
1492   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty], [IntrNoMem]>;
1493 def int_mips_nlzc_w : ClangBuiltin<"__builtin_msa_nlzc_w">,
1494   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty], [IntrNoMem]>;
1495 def int_mips_nlzc_d : ClangBuiltin<"__builtin_msa_nlzc_d">,
1496   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty], [IntrNoMem]>;
1497 
1498 def int_mips_nor_v : ClangBuiltin<"__builtin_msa_nor_v">,
1499   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1500 
1501 def int_mips_nori_b : ClangBuiltin<"__builtin_msa_nori_b">,
1502   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1503 
1504 def int_mips_or_v : ClangBuiltin<"__builtin_msa_or_v">,
1505   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1506 
1507 def int_mips_ori_b : ClangBuiltin<"__builtin_msa_ori_b">,
1508   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1509 
1510 def int_mips_pckev_b : ClangBuiltin<"__builtin_msa_pckev_b">,
1511   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1512 def int_mips_pckev_h : ClangBuiltin<"__builtin_msa_pckev_h">,
1513   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1514 def int_mips_pckev_w : ClangBuiltin<"__builtin_msa_pckev_w">,
1515   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1516 def int_mips_pckev_d : ClangBuiltin<"__builtin_msa_pckev_d">,
1517   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1518 
1519 def int_mips_pckod_b : ClangBuiltin<"__builtin_msa_pckod_b">,
1520   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1521 def int_mips_pckod_h : ClangBuiltin<"__builtin_msa_pckod_h">,
1522   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1523 def int_mips_pckod_w : ClangBuiltin<"__builtin_msa_pckod_w">,
1524   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1525 def int_mips_pckod_d : ClangBuiltin<"__builtin_msa_pckod_d">,
1526   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1527 
1528 def int_mips_pcnt_b : ClangBuiltin<"__builtin_msa_pcnt_b">,
1529   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty], [IntrNoMem]>;
1530 def int_mips_pcnt_h : ClangBuiltin<"__builtin_msa_pcnt_h">,
1531   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty], [IntrNoMem]>;
1532 def int_mips_pcnt_w : ClangBuiltin<"__builtin_msa_pcnt_w">,
1533   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty], [IntrNoMem]>;
1534 def int_mips_pcnt_d : ClangBuiltin<"__builtin_msa_pcnt_d">,
1535   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty], [IntrNoMem]>;
1536 
1537 def int_mips_sat_s_b : ClangBuiltin<"__builtin_msa_sat_s_b">,
1538   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1539 def int_mips_sat_s_h : ClangBuiltin<"__builtin_msa_sat_s_h">,
1540   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1541 def int_mips_sat_s_w : ClangBuiltin<"__builtin_msa_sat_s_w">,
1542   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1543 def int_mips_sat_s_d : ClangBuiltin<"__builtin_msa_sat_s_d">,
1544   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1545 
1546 def int_mips_sat_u_b : ClangBuiltin<"__builtin_msa_sat_u_b">,
1547   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1548 def int_mips_sat_u_h : ClangBuiltin<"__builtin_msa_sat_u_h">,
1549   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1550 def int_mips_sat_u_w : ClangBuiltin<"__builtin_msa_sat_u_w">,
1551   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1552 def int_mips_sat_u_d : ClangBuiltin<"__builtin_msa_sat_u_d">,
1553   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1554 
1555 def int_mips_shf_b : ClangBuiltin<"__builtin_msa_shf_b">,
1556   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1557 def int_mips_shf_h : ClangBuiltin<"__builtin_msa_shf_h">,
1558   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1559 def int_mips_shf_w : ClangBuiltin<"__builtin_msa_shf_w">,
1560   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1561 
1562 def int_mips_sld_b : ClangBuiltin<"__builtin_msa_sld_b">,
1563   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
1564 def int_mips_sld_h : ClangBuiltin<"__builtin_msa_sld_h">,
1565   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>;
1566 def int_mips_sld_w : ClangBuiltin<"__builtin_msa_sld_w">,
1567   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>;
1568 def int_mips_sld_d : ClangBuiltin<"__builtin_msa_sld_d">,
1569   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>;
1570 
1571 def int_mips_sldi_b : ClangBuiltin<"__builtin_msa_sldi_b">,
1572   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i32_ty],
1573             [IntrNoMem, ImmArg<ArgIndex<2>>]>;
1574 def int_mips_sldi_h : ClangBuiltin<"__builtin_msa_sldi_h">,
1575   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_i32_ty],
1576             [IntrNoMem, ImmArg<ArgIndex<2>>]>;
1577 def int_mips_sldi_w : ClangBuiltin<"__builtin_msa_sldi_w">,
1578   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty],
1579             [IntrNoMem, ImmArg<ArgIndex<2>>]>;
1580 def int_mips_sldi_d : ClangBuiltin<"__builtin_msa_sldi_d">,
1581   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty],
1582             [IntrNoMem, ImmArg<ArgIndex<2>>]>;
1583 
1584 def int_mips_sll_b : ClangBuiltin<"__builtin_msa_sll_b">,
1585   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1586 def int_mips_sll_h : ClangBuiltin<"__builtin_msa_sll_h">,
1587   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1588 def int_mips_sll_w : ClangBuiltin<"__builtin_msa_sll_w">,
1589   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1590 def int_mips_sll_d : ClangBuiltin<"__builtin_msa_sll_d">,
1591   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1592 
1593 def int_mips_slli_b : ClangBuiltin<"__builtin_msa_slli_b">,
1594   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1595 def int_mips_slli_h : ClangBuiltin<"__builtin_msa_slli_h">,
1596   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1597 def int_mips_slli_w : ClangBuiltin<"__builtin_msa_slli_w">,
1598   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1599 def int_mips_slli_d : ClangBuiltin<"__builtin_msa_slli_d">,
1600   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1601 
1602 def int_mips_splat_b : ClangBuiltin<"__builtin_msa_splat_b">,
1603   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
1604 def int_mips_splat_h : ClangBuiltin<"__builtin_msa_splat_h">,
1605   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>;
1606 def int_mips_splat_w : ClangBuiltin<"__builtin_msa_splat_w">,
1607   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>;
1608 def int_mips_splat_d : ClangBuiltin<"__builtin_msa_splat_d">,
1609   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>;
1610 
1611 def int_mips_splati_b : ClangBuiltin<"__builtin_msa_splati_b">,
1612   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1613 def int_mips_splati_h : ClangBuiltin<"__builtin_msa_splati_h">,
1614   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1615 def int_mips_splati_w : ClangBuiltin<"__builtin_msa_splati_w">,
1616   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1617 def int_mips_splati_d : ClangBuiltin<"__builtin_msa_splati_d">,
1618   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1619 
1620 def int_mips_sra_b : ClangBuiltin<"__builtin_msa_sra_b">,
1621   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1622 def int_mips_sra_h : ClangBuiltin<"__builtin_msa_sra_h">,
1623   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1624 def int_mips_sra_w : ClangBuiltin<"__builtin_msa_sra_w">,
1625   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1626 def int_mips_sra_d : ClangBuiltin<"__builtin_msa_sra_d">,
1627   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1628 
1629 def int_mips_srai_b : ClangBuiltin<"__builtin_msa_srai_b">,
1630   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1631 def int_mips_srai_h : ClangBuiltin<"__builtin_msa_srai_h">,
1632   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1633 def int_mips_srai_w : ClangBuiltin<"__builtin_msa_srai_w">,
1634   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1635 def int_mips_srai_d : ClangBuiltin<"__builtin_msa_srai_d">,
1636   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1637 
1638 def int_mips_srar_b : ClangBuiltin<"__builtin_msa_srar_b">,
1639   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1640 def int_mips_srar_h : ClangBuiltin<"__builtin_msa_srar_h">,
1641   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1642 def int_mips_srar_w : ClangBuiltin<"__builtin_msa_srar_w">,
1643   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1644 def int_mips_srar_d : ClangBuiltin<"__builtin_msa_srar_d">,
1645   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1646 
1647 def int_mips_srari_b : ClangBuiltin<"__builtin_msa_srari_b">,
1648   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1649 def int_mips_srari_h : ClangBuiltin<"__builtin_msa_srari_h">,
1650   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1651 def int_mips_srari_w : ClangBuiltin<"__builtin_msa_srari_w">,
1652   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1653 def int_mips_srari_d : ClangBuiltin<"__builtin_msa_srari_d">,
1654   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1655 
1656 def int_mips_srl_b : ClangBuiltin<"__builtin_msa_srl_b">,
1657   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1658 def int_mips_srl_h : ClangBuiltin<"__builtin_msa_srl_h">,
1659   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1660 def int_mips_srl_w : ClangBuiltin<"__builtin_msa_srl_w">,
1661   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1662 def int_mips_srl_d : ClangBuiltin<"__builtin_msa_srl_d">,
1663   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1664 
1665 def int_mips_srli_b : ClangBuiltin<"__builtin_msa_srli_b">,
1666   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1667 def int_mips_srli_h : ClangBuiltin<"__builtin_msa_srli_h">,
1668   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1669 def int_mips_srli_w : ClangBuiltin<"__builtin_msa_srli_w">,
1670   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1671 def int_mips_srli_d : ClangBuiltin<"__builtin_msa_srli_d">,
1672   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1673 
1674 def int_mips_srlr_b : ClangBuiltin<"__builtin_msa_srlr_b">,
1675   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1676 def int_mips_srlr_h : ClangBuiltin<"__builtin_msa_srlr_h">,
1677   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1678 def int_mips_srlr_w : ClangBuiltin<"__builtin_msa_srlr_w">,
1679   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1680 def int_mips_srlr_d : ClangBuiltin<"__builtin_msa_srlr_d">,
1681   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1682 
1683 def int_mips_srlri_b : ClangBuiltin<"__builtin_msa_srlri_b">,
1684   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1685 def int_mips_srlri_h : ClangBuiltin<"__builtin_msa_srlri_h">,
1686   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1687 def int_mips_srlri_w : ClangBuiltin<"__builtin_msa_srlri_w">,
1688   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1689 def int_mips_srlri_d : ClangBuiltin<"__builtin_msa_srlri_d">,
1690   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1691 
1692 def int_mips_st_b : ClangBuiltin<"__builtin_msa_st_b">,
1693   Intrinsic<[], [llvm_v16i8_ty, llvm_ptr_ty, llvm_i32_ty],
1694   [IntrArgMemOnly]>;
1695 def int_mips_st_h : ClangBuiltin<"__builtin_msa_st_h">,
1696   Intrinsic<[], [llvm_v8i16_ty, llvm_ptr_ty, llvm_i32_ty],
1697   [IntrArgMemOnly]>;
1698 def int_mips_st_w : ClangBuiltin<"__builtin_msa_st_w">,
1699   Intrinsic<[], [llvm_v4i32_ty, llvm_ptr_ty, llvm_i32_ty],
1700   [IntrArgMemOnly]>;
1701 def int_mips_st_d : ClangBuiltin<"__builtin_msa_st_d">,
1702   Intrinsic<[], [llvm_v2i64_ty, llvm_ptr_ty, llvm_i32_ty],
1703   [IntrArgMemOnly]>;
1704 
1705 def int_mips_str_d : ClangBuiltin<"__builtin_msa_str_d">,
1706   Intrinsic<[], [llvm_v2i64_ty, llvm_ptr_ty, llvm_i32_ty],
1707   [IntrArgMemOnly]>;
1708 def int_mips_str_w : ClangBuiltin<"__builtin_msa_str_w">,
1709   Intrinsic<[], [llvm_v4i32_ty, llvm_ptr_ty, llvm_i32_ty],
1710   [IntrArgMemOnly]>;
1711 
1712 def int_mips_subs_s_b : ClangBuiltin<"__builtin_msa_subs_s_b">,
1713   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1714 def int_mips_subs_s_h : ClangBuiltin<"__builtin_msa_subs_s_h">,
1715   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1716 def int_mips_subs_s_w : ClangBuiltin<"__builtin_msa_subs_s_w">,
1717   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1718 def int_mips_subs_s_d : ClangBuiltin<"__builtin_msa_subs_s_d">,
1719   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1720 
1721 def int_mips_subs_u_b : ClangBuiltin<"__builtin_msa_subs_u_b">,
1722   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1723 def int_mips_subs_u_h : ClangBuiltin<"__builtin_msa_subs_u_h">,
1724   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1725 def int_mips_subs_u_w : ClangBuiltin<"__builtin_msa_subs_u_w">,
1726   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1727 def int_mips_subs_u_d : ClangBuiltin<"__builtin_msa_subs_u_d">,
1728   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1729 
1730 def int_mips_subsus_u_b : ClangBuiltin<"__builtin_msa_subsus_u_b">,
1731   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1732 def int_mips_subsus_u_h : ClangBuiltin<"__builtin_msa_subsus_u_h">,
1733   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1734 def int_mips_subsus_u_w : ClangBuiltin<"__builtin_msa_subsus_u_w">,
1735   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1736 def int_mips_subsus_u_d : ClangBuiltin<"__builtin_msa_subsus_u_d">,
1737   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1738 
1739 def int_mips_subsuu_s_b : ClangBuiltin<"__builtin_msa_subsuu_s_b">,
1740   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1741 def int_mips_subsuu_s_h : ClangBuiltin<"__builtin_msa_subsuu_s_h">,
1742   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1743 def int_mips_subsuu_s_w : ClangBuiltin<"__builtin_msa_subsuu_s_w">,
1744   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1745 def int_mips_subsuu_s_d : ClangBuiltin<"__builtin_msa_subsuu_s_d">,
1746   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1747 
1748 def int_mips_subv_b : ClangBuiltin<"__builtin_msa_subv_b">,
1749   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1750 def int_mips_subv_h : ClangBuiltin<"__builtin_msa_subv_h">,
1751   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1752 def int_mips_subv_w : ClangBuiltin<"__builtin_msa_subv_w">,
1753   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1754 def int_mips_subv_d : ClangBuiltin<"__builtin_msa_subv_d">,
1755   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1756 
1757 def int_mips_subvi_b : ClangBuiltin<"__builtin_msa_subvi_b">,
1758   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1759 def int_mips_subvi_h : ClangBuiltin<"__builtin_msa_subvi_h">,
1760   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1761 def int_mips_subvi_w : ClangBuiltin<"__builtin_msa_subvi_w">,
1762   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1763 def int_mips_subvi_d : ClangBuiltin<"__builtin_msa_subvi_d">,
1764   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1765 
1766 def int_mips_vshf_b : ClangBuiltin<"__builtin_msa_vshf_b">,
1767   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty],
1768             [IntrNoMem]>;
1769 def int_mips_vshf_h : ClangBuiltin<"__builtin_msa_vshf_h">,
1770   Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty],
1771             [IntrNoMem]>;
1772 def int_mips_vshf_w : ClangBuiltin<"__builtin_msa_vshf_w">,
1773   Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty],
1774             [IntrNoMem]>;
1775 def int_mips_vshf_d : ClangBuiltin<"__builtin_msa_vshf_d">,
1776   Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty],
1777             [IntrNoMem]>;
1778 
1779 def int_mips_xor_v : ClangBuiltin<"__builtin_msa_xor_v">,
1780   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1781 
1782 def int_mips_xori_b : ClangBuiltin<"__builtin_msa_xori_b">,
1783   Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem, ImmArg<ArgIndex<1>>]>;
1784 }