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 }