1 //===- IntrinsicsMips.td - Defines Mips intrinsics ---------*- tablegen -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This file defines all of the MIPS-specific intrinsics.
12 //===----------------------------------------------------------------------===//
14 //===----------------------------------------------------------------------===//
15 // MIPS DSP data types
16 def mips_v2q15_ty: LLVMType<v2i16>;
17 def mips_v4q7_ty: LLVMType<v4i8>;
18 def mips_q31_ty: LLVMType<i32>;
20 let TargetPrefix = "mips" in { // All intrinsics start with "llvm.mips.".
22 //===----------------------------------------------------------------------===//
25 //===----------------------------------------------------------------------===//
26 // Addition/subtraction
28 def int_mips_addu_qb : GCCBuiltin<"__builtin_mips_addu_qb">,
29 Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_v4i8_ty], [Commutative]>;
30 def int_mips_addu_s_qb : GCCBuiltin<"__builtin_mips_addu_s_qb">,
31 Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_v4i8_ty], [Commutative]>;
32 def int_mips_subu_qb : GCCBuiltin<"__builtin_mips_subu_qb">,
33 Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_v4i8_ty], []>;
34 def int_mips_subu_s_qb : GCCBuiltin<"__builtin_mips_subu_s_qb">,
35 Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_v4i8_ty], []>;
37 def int_mips_addq_ph : GCCBuiltin<"__builtin_mips_addq_ph">,
38 Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty], [Commutative]>;
39 def int_mips_addq_s_ph : GCCBuiltin<"__builtin_mips_addq_s_ph">,
40 Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty], [Commutative]>;
41 def int_mips_subq_ph : GCCBuiltin<"__builtin_mips_subq_ph">,
42 Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty], []>;
43 def int_mips_subq_s_ph : GCCBuiltin<"__builtin_mips_subq_s_ph">,
44 Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty], []>;
46 def int_mips_madd: GCCBuiltin<"__builtin_mips_madd">,
47 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty],
48 [IntrNoMem, Commutative]>;
49 def int_mips_maddu: GCCBuiltin<"__builtin_mips_maddu">,
50 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty],
51 [IntrNoMem, Commutative]>;
53 def int_mips_msub: GCCBuiltin<"__builtin_mips_msub">,
54 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty],
56 def int_mips_msubu: GCCBuiltin<"__builtin_mips_msubu">,
57 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty, llvm_i32_ty],
60 def int_mips_addq_s_w: GCCBuiltin<"__builtin_mips_addq_s_w">,
61 Intrinsic<[mips_q31_ty], [mips_q31_ty, mips_q31_ty], [Commutative]>;
62 def int_mips_subq_s_w: GCCBuiltin<"__builtin_mips_subq_s_w">,
63 Intrinsic<[mips_q31_ty], [mips_q31_ty, mips_q31_ty], []>;
65 def int_mips_addsc: GCCBuiltin<"__builtin_mips_addsc">,
66 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [Commutative]>;
67 def int_mips_addwc: GCCBuiltin<"__builtin_mips_addwc">,
68 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [Commutative]>;
70 def int_mips_modsub: GCCBuiltin<"__builtin_mips_modsub">,
71 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>;
73 def int_mips_raddu_w_qb: GCCBuiltin<"__builtin_mips_raddu_w_qb">,
74 Intrinsic<[llvm_i32_ty], [llvm_v4i8_ty], [IntrNoMem]>;
76 //===----------------------------------------------------------------------===//
79 def int_mips_absq_s_ph: GCCBuiltin<"__builtin_mips_absq_s_ph">,
80 Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty], []>;
81 def int_mips_absq_s_w: GCCBuiltin<"__builtin_mips_absq_s_w">,
82 Intrinsic<[mips_q31_ty], [mips_q31_ty], []>;
84 //===----------------------------------------------------------------------===//
85 // Precision reduce/expand
87 def int_mips_precrq_qb_ph: GCCBuiltin<"__builtin_mips_precrq_qb_ph">,
88 Intrinsic<[llvm_v4i8_ty], [mips_v2q15_ty, mips_v2q15_ty], [IntrNoMem]>;
89 def int_mips_precrqu_s_qb_ph: GCCBuiltin<"__builtin_mips_precrqu_s_qb_ph">,
90 Intrinsic<[llvm_v4i8_ty], [mips_v2q15_ty, mips_v2q15_ty], []>;
91 def int_mips_precrq_ph_w: GCCBuiltin<"__builtin_mips_precrq_ph_w">,
92 Intrinsic<[mips_v2q15_ty], [mips_q31_ty, mips_q31_ty], [IntrNoMem]>;
93 def int_mips_precrq_rs_ph_w: GCCBuiltin<"__builtin_mips_precrq_rs_ph_w">,
94 Intrinsic<[mips_v2q15_ty], [mips_q31_ty, mips_q31_ty], []>;
95 def int_mips_preceq_w_phl: GCCBuiltin<"__builtin_mips_preceq_w_phl">,
96 Intrinsic<[mips_q31_ty], [mips_v2q15_ty], [IntrNoMem]>;
97 def int_mips_preceq_w_phr: GCCBuiltin<"__builtin_mips_preceq_w_phr">,
98 Intrinsic<[mips_q31_ty], [mips_v2q15_ty], [IntrNoMem]>;
99 def int_mips_precequ_ph_qbl: GCCBuiltin<"__builtin_mips_precequ_ph_qbl">,
100 Intrinsic<[mips_v2q15_ty], [llvm_v4i8_ty], [IntrNoMem]>;
101 def int_mips_precequ_ph_qbr: GCCBuiltin<"__builtin_mips_precequ_ph_qbr">,
102 Intrinsic<[mips_v2q15_ty], [llvm_v4i8_ty], [IntrNoMem]>;
103 def int_mips_precequ_ph_qbla: GCCBuiltin<"__builtin_mips_precequ_ph_qbla">,
104 Intrinsic<[mips_v2q15_ty], [llvm_v4i8_ty], [IntrNoMem]>;
105 def int_mips_precequ_ph_qbra: GCCBuiltin<"__builtin_mips_precequ_ph_qbra">,
106 Intrinsic<[mips_v2q15_ty], [llvm_v4i8_ty], [IntrNoMem]>;
107 def int_mips_preceu_ph_qbl: GCCBuiltin<"__builtin_mips_preceu_ph_qbl">,
108 Intrinsic<[mips_v2q15_ty], [llvm_v4i8_ty], [IntrNoMem]>;
109 def int_mips_preceu_ph_qbr: GCCBuiltin<"__builtin_mips_preceu_ph_qbr">,
110 Intrinsic<[mips_v2q15_ty], [llvm_v4i8_ty], [IntrNoMem]>;
111 def int_mips_preceu_ph_qbla: GCCBuiltin<"__builtin_mips_preceu_ph_qbla">,
112 Intrinsic<[mips_v2q15_ty], [llvm_v4i8_ty], [IntrNoMem]>;
113 def int_mips_preceu_ph_qbra: GCCBuiltin<"__builtin_mips_preceu_ph_qbra">,
114 Intrinsic<[mips_v2q15_ty], [llvm_v4i8_ty], [IntrNoMem]>;
116 //===----------------------------------------------------------------------===//
119 def int_mips_shll_qb: GCCBuiltin<"__builtin_mips_shll_qb">,
120 Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_i32_ty], []>;
121 def int_mips_shrl_qb: GCCBuiltin<"__builtin_mips_shrl_qb">,
122 Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_i32_ty], [IntrNoMem]>;
123 def int_mips_shll_ph: GCCBuiltin<"__builtin_mips_shll_ph">,
124 Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, llvm_i32_ty], []>;
125 def int_mips_shll_s_ph: GCCBuiltin<"__builtin_mips_shll_s_ph">,
126 Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, llvm_i32_ty], []>;
127 def int_mips_shra_ph: GCCBuiltin<"__builtin_mips_shra_ph">,
128 Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, llvm_i32_ty], [IntrNoMem]>;
129 def int_mips_shra_r_ph: GCCBuiltin<"__builtin_mips_shra_r_ph">,
130 Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, llvm_i32_ty], [IntrNoMem]>;
131 def int_mips_shll_s_w: GCCBuiltin<"__builtin_mips_shll_s_w">,
132 Intrinsic<[mips_q31_ty], [mips_q31_ty, llvm_i32_ty], []>;
133 def int_mips_shra_r_w: GCCBuiltin<"__builtin_mips_shra_r_w">,
134 Intrinsic<[mips_q31_ty], [mips_q31_ty, llvm_i32_ty], [IntrNoMem]>;
135 def int_mips_shilo: GCCBuiltin<"__builtin_mips_shilo">,
136 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty], [IntrNoMem]>;
138 //===----------------------------------------------------------------------===//
141 def int_mips_muleu_s_ph_qbl: GCCBuiltin<"__builtin_mips_muleu_s_ph_qbl">,
142 Intrinsic<[mips_v2q15_ty], [llvm_v4i8_ty, mips_v2q15_ty], []>;
143 def int_mips_muleu_s_ph_qbr: GCCBuiltin<"__builtin_mips_muleu_s_ph_qbr">,
144 Intrinsic<[mips_v2q15_ty], [llvm_v4i8_ty, mips_v2q15_ty], []>;
145 def int_mips_mulq_rs_ph: GCCBuiltin<"__builtin_mips_mulq_rs_ph">,
146 Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty], [Commutative]>;
147 def int_mips_muleq_s_w_phl: GCCBuiltin<"__builtin_mips_muleq_s_w_phl">,
148 Intrinsic<[mips_q31_ty], [mips_v2q15_ty, mips_v2q15_ty], [Commutative]>;
149 def int_mips_muleq_s_w_phr: GCCBuiltin<"__builtin_mips_muleq_s_w_phr">,
150 Intrinsic<[mips_q31_ty], [mips_v2q15_ty, mips_v2q15_ty], [Commutative]>;
151 def int_mips_mulsaq_s_w_ph: GCCBuiltin<"__builtin_mips_mulsaq_s_w_ph">,
152 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_v2q15_ty, mips_v2q15_ty], []>;
153 def int_mips_maq_s_w_phl: GCCBuiltin<"__builtin_mips_maq_s_w_phl">,
154 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_v2q15_ty, mips_v2q15_ty], []>;
155 def int_mips_maq_s_w_phr: GCCBuiltin<"__builtin_mips_maq_s_w_phr">,
156 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_v2q15_ty, mips_v2q15_ty], []>;
157 def int_mips_maq_sa_w_phl: GCCBuiltin<"__builtin_mips_maq_sa_w_phl">,
158 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_v2q15_ty, mips_v2q15_ty], []>;
159 def int_mips_maq_sa_w_phr: GCCBuiltin<"__builtin_mips_maq_sa_w_phr">,
160 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_v2q15_ty, mips_v2q15_ty], []>;
161 def int_mips_mult: GCCBuiltin<"__builtin_mips_mult">,
162 Intrinsic<[llvm_i64_ty], [llvm_i32_ty, llvm_i32_ty],
163 [IntrNoMem, Commutative]>;
164 def int_mips_multu: GCCBuiltin<"__builtin_mips_multu">,
165 Intrinsic<[llvm_i64_ty], [llvm_i32_ty, llvm_i32_ty],
166 [IntrNoMem, Commutative]>;
168 //===----------------------------------------------------------------------===//
169 // Dot product with accumulate/subtract
171 def int_mips_dpau_h_qbl: GCCBuiltin<"__builtin_mips_dpau_h_qbl">,
172 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_v4i8_ty, llvm_v4i8_ty],
174 def int_mips_dpau_h_qbr: GCCBuiltin<"__builtin_mips_dpau_h_qbr">,
175 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_v4i8_ty, llvm_v4i8_ty],
177 def int_mips_dpsu_h_qbl: GCCBuiltin<"__builtin_mips_dpsu_h_qbl">,
178 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_v4i8_ty, llvm_v4i8_ty],
180 def int_mips_dpsu_h_qbr: GCCBuiltin<"__builtin_mips_dpsu_h_qbr">,
181 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_v4i8_ty, llvm_v4i8_ty],
183 def int_mips_dpaq_s_w_ph: GCCBuiltin<"__builtin_mips_dpaq_s_w_ph">,
184 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_v2q15_ty, mips_v2q15_ty], []>;
185 def int_mips_dpsq_s_w_ph: GCCBuiltin<"__builtin_mips_dpsq_s_w_ph">,
186 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_v2q15_ty, mips_v2q15_ty], []>;
187 def int_mips_dpaq_sa_l_w: GCCBuiltin<"__builtin_mips_dpaq_sa_l_w">,
188 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_q31_ty, mips_q31_ty], []>;
189 def int_mips_dpsq_sa_l_w: GCCBuiltin<"__builtin_mips_dpsq_sa_l_w">,
190 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_q31_ty, mips_q31_ty], []>;
192 //===----------------------------------------------------------------------===//
195 def int_mips_cmpu_eq_qb: GCCBuiltin<"__builtin_mips_cmpu_eq_qb">,
196 Intrinsic<[], [llvm_v4i8_ty, llvm_v4i8_ty], [Commutative]>;
197 def int_mips_cmpu_lt_qb: GCCBuiltin<"__builtin_mips_cmpu_lt_qb">,
198 Intrinsic<[], [llvm_v4i8_ty, llvm_v4i8_ty], []>;
199 def int_mips_cmpu_le_qb: GCCBuiltin<"__builtin_mips_cmpu_le_qb">,
200 Intrinsic<[], [llvm_v4i8_ty, llvm_v4i8_ty], []>;
201 def int_mips_cmpgu_eq_qb: GCCBuiltin<"__builtin_mips_cmpgu_eq_qb">,
202 Intrinsic<[llvm_i32_ty], [llvm_v4i8_ty, llvm_v4i8_ty], [Commutative]>;
203 def int_mips_cmpgu_lt_qb: GCCBuiltin<"__builtin_mips_cmpgu_lt_qb">,
204 Intrinsic<[llvm_i32_ty], [llvm_v4i8_ty, llvm_v4i8_ty], []>;
205 def int_mips_cmpgu_le_qb: GCCBuiltin<"__builtin_mips_cmpgu_le_qb">,
206 Intrinsic<[llvm_i32_ty], [llvm_v4i8_ty, llvm_v4i8_ty], []>;
207 def int_mips_cmp_eq_ph: GCCBuiltin<"__builtin_mips_cmp_eq_ph">,
208 Intrinsic<[], [mips_v2q15_ty, mips_v2q15_ty], [Commutative]>;
209 def int_mips_cmp_lt_ph: GCCBuiltin<"__builtin_mips_cmp_lt_ph">,
210 Intrinsic<[], [mips_v2q15_ty, mips_v2q15_ty], []>;
211 def int_mips_cmp_le_ph: GCCBuiltin<"__builtin_mips_cmp_le_ph">,
212 Intrinsic<[], [mips_v2q15_ty, mips_v2q15_ty], []>;
214 //===----------------------------------------------------------------------===//
217 def int_mips_extr_s_h: GCCBuiltin<"__builtin_mips_extr_s_h">,
218 Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty], []>;
219 def int_mips_extr_w: GCCBuiltin<"__builtin_mips_extr_w">,
220 Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty], []>;
221 def int_mips_extr_rs_w: GCCBuiltin<"__builtin_mips_extr_rs_w">,
222 Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty], []>;
223 def int_mips_extr_r_w: GCCBuiltin<"__builtin_mips_extr_r_w">,
224 Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty], []>;
225 def int_mips_extp: GCCBuiltin<"__builtin_mips_extp">,
226 Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty], []>;
227 def int_mips_extpdp: GCCBuiltin<"__builtin_mips_extpdp">,
228 Intrinsic<[llvm_i32_ty], [llvm_i64_ty, llvm_i32_ty], []>;
230 //===----------------------------------------------------------------------===//
233 def int_mips_wrdsp: GCCBuiltin<"__builtin_mips_wrdsp">,
234 Intrinsic<[], [llvm_i32_ty, llvm_i32_ty], []>;
235 def int_mips_rddsp: GCCBuiltin<"__builtin_mips_rddsp">,
236 Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrReadMem]>;
238 def int_mips_insv: GCCBuiltin<"__builtin_mips_insv">,
239 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrReadMem]>;
240 def int_mips_bitrev: GCCBuiltin<"__builtin_mips_bitrev">,
241 Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoMem]>;
243 def int_mips_packrl_ph: GCCBuiltin<"__builtin_mips_packrl_ph">,
244 Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty], [IntrNoMem]>;
246 def int_mips_repl_qb: GCCBuiltin<"__builtin_mips_repl_qb">,
247 Intrinsic<[llvm_v4i8_ty], [llvm_i32_ty], [IntrNoMem]>;
248 def int_mips_repl_ph: GCCBuiltin<"__builtin_mips_repl_ph">,
249 Intrinsic<[mips_v2q15_ty], [llvm_i32_ty], [IntrNoMem]>;
251 def int_mips_pick_qb: GCCBuiltin<"__builtin_mips_pick_qb">,
252 Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_v4i8_ty], [IntrReadMem]>;
253 def int_mips_pick_ph: GCCBuiltin<"__builtin_mips_pick_ph">,
254 Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty], [IntrReadMem]>;
256 def int_mips_mthlip: GCCBuiltin<"__builtin_mips_mthlip">,
257 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i32_ty], []>;
259 def int_mips_bposge32: GCCBuiltin<"__builtin_mips_bposge32">,
260 Intrinsic<[llvm_i32_ty], [], [IntrReadMem]>;
262 def int_mips_lbux: GCCBuiltin<"__builtin_mips_lbux">,
263 Intrinsic<[llvm_i32_ty], [llvm_ptr_ty, llvm_i32_ty], [IntrReadArgMem]>;
264 def int_mips_lhx: GCCBuiltin<"__builtin_mips_lhx">,
265 Intrinsic<[llvm_i32_ty], [llvm_ptr_ty, llvm_i32_ty], [IntrReadArgMem]>;
266 def int_mips_lwx: GCCBuiltin<"__builtin_mips_lwx">,
267 Intrinsic<[llvm_i32_ty], [llvm_ptr_ty, llvm_i32_ty], [IntrReadArgMem]>;
269 //===----------------------------------------------------------------------===//
272 def int_mips_absq_s_qb: GCCBuiltin<"__builtin_mips_absq_s_qb">,
273 Intrinsic<[mips_v4q7_ty], [mips_v4q7_ty], []>;
275 def int_mips_addqh_ph: GCCBuiltin<"__builtin_mips_addqh_ph">,
276 Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty],
277 [IntrNoMem, Commutative]>;
278 def int_mips_addqh_r_ph: GCCBuiltin<"__builtin_mips_addqh_r_ph">,
279 Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty],
280 [IntrNoMem, Commutative]>;
281 def int_mips_addqh_w: GCCBuiltin<"__builtin_mips_addqh_w">,
282 Intrinsic<[mips_q31_ty], [mips_q31_ty, mips_q31_ty],
283 [IntrNoMem, Commutative]>;
284 def int_mips_addqh_r_w: GCCBuiltin<"__builtin_mips_addqh_r_w">,
285 Intrinsic<[mips_q31_ty], [mips_q31_ty, mips_q31_ty],
286 [IntrNoMem, Commutative]>;
288 def int_mips_addu_ph: GCCBuiltin<"__builtin_mips_addu_ph">,
289 Intrinsic<[llvm_v2i16_ty], [llvm_v2i16_ty, llvm_v2i16_ty], [Commutative]>;
290 def int_mips_addu_s_ph: GCCBuiltin<"__builtin_mips_addu_s_ph">,
291 Intrinsic<[llvm_v2i16_ty], [llvm_v2i16_ty, llvm_v2i16_ty], [Commutative]>;
293 def int_mips_adduh_qb: GCCBuiltin<"__builtin_mips_adduh_qb">,
294 Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_v4i8_ty],
295 [IntrNoMem, Commutative]>;
296 def int_mips_adduh_r_qb: GCCBuiltin<"__builtin_mips_adduh_r_qb">,
297 Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_v4i8_ty],
298 [IntrNoMem, Commutative]>;
300 def int_mips_append: GCCBuiltin<"__builtin_mips_append">,
301 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
303 def int_mips_balign: GCCBuiltin<"__builtin_mips_balign">,
304 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
307 def int_mips_cmpgdu_eq_qb: GCCBuiltin<"__builtin_mips_cmpgdu_eq_qb">,
308 Intrinsic<[llvm_i32_ty], [llvm_v4i8_ty, llvm_v4i8_ty], [Commutative]>;
309 def int_mips_cmpgdu_lt_qb: GCCBuiltin<"__builtin_mips_cmpgdu_lt_qb">,
310 Intrinsic<[llvm_i32_ty], [llvm_v4i8_ty, llvm_v4i8_ty], []>;
311 def int_mips_cmpgdu_le_qb: GCCBuiltin<"__builtin_mips_cmpgdu_le_qb">,
312 Intrinsic<[llvm_i32_ty], [llvm_v4i8_ty, llvm_v4i8_ty], []>;
314 def int_mips_dpa_w_ph: GCCBuiltin<"__builtin_mips_dpa_w_ph">,
315 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_v2i16_ty, llvm_v2i16_ty],
317 def int_mips_dps_w_ph: GCCBuiltin<"__builtin_mips_dps_w_ph">,
318 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_v2i16_ty, llvm_v2i16_ty],
321 def int_mips_dpaqx_s_w_ph: GCCBuiltin<"__builtin_mips_dpaqx_s_w_ph">,
322 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_v2q15_ty, mips_v2q15_ty], []>;
323 def int_mips_dpaqx_sa_w_ph: GCCBuiltin<"__builtin_mips_dpaqx_sa_w_ph">,
324 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_v2q15_ty, mips_v2q15_ty], []>;
325 def int_mips_dpax_w_ph: GCCBuiltin<"__builtin_mips_dpax_w_ph">,
326 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_v2i16_ty, llvm_v2i16_ty],
328 def int_mips_dpsx_w_ph: GCCBuiltin<"__builtin_mips_dpsx_w_ph">,
329 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_v2i16_ty, llvm_v2i16_ty],
331 def int_mips_dpsqx_s_w_ph: GCCBuiltin<"__builtin_mips_dpsqx_s_w_ph">,
332 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_v2q15_ty, mips_v2q15_ty], []>;
333 def int_mips_dpsqx_sa_w_ph: GCCBuiltin<"__builtin_mips_dpsqx_sa_w_ph">,
334 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, mips_v2q15_ty, mips_v2q15_ty], []>;
336 def int_mips_mul_ph: GCCBuiltin<"__builtin_mips_mul_ph">,
337 Intrinsic<[llvm_v2i16_ty], [llvm_v2i16_ty, llvm_v2i16_ty], [Commutative]>;
338 def int_mips_mul_s_ph: GCCBuiltin<"__builtin_mips_mul_s_ph">,
339 Intrinsic<[llvm_v2i16_ty], [llvm_v2i16_ty, llvm_v2i16_ty], [Commutative]>;
341 def int_mips_mulq_rs_w: GCCBuiltin<"__builtin_mips_mulq_rs_w">,
342 Intrinsic<[mips_q31_ty], [mips_q31_ty, mips_q31_ty], [Commutative]>;
343 def int_mips_mulq_s_ph: GCCBuiltin<"__builtin_mips_mulq_s_ph">,
344 Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty], [Commutative]>;
345 def int_mips_mulq_s_w: GCCBuiltin<"__builtin_mips_mulq_s_w">,
346 Intrinsic<[mips_q31_ty], [mips_q31_ty, mips_q31_ty], [Commutative]>;
347 def int_mips_mulsa_w_ph: GCCBuiltin<"__builtin_mips_mulsa_w_ph">,
348 Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_v2i16_ty, llvm_v2i16_ty],
351 def int_mips_precr_qb_ph: GCCBuiltin<"__builtin_mips_precr_qb_ph">,
352 Intrinsic<[llvm_v4i8_ty], [llvm_v2i16_ty, llvm_v2i16_ty], []>;
353 def int_mips_precr_sra_ph_w: GCCBuiltin<"__builtin_mips_precr_sra_ph_w">,
354 Intrinsic<[llvm_v2i16_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
356 def int_mips_precr_sra_r_ph_w: GCCBuiltin<"__builtin_mips_precr_sra_r_ph_w">,
357 Intrinsic<[llvm_v2i16_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
360 def int_mips_prepend: GCCBuiltin<"__builtin_mips_prepend">,
361 Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty],
364 def int_mips_shra_qb: GCCBuiltin<"__builtin_mips_shra_qb">,
365 Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_i32_ty], [IntrNoMem]>;
366 def int_mips_shra_r_qb: GCCBuiltin<"__builtin_mips_shra_r_qb">,
367 Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_i32_ty], [IntrNoMem]>;
368 def int_mips_shrl_ph: GCCBuiltin<"__builtin_mips_shrl_ph">,
369 Intrinsic<[llvm_v2i16_ty], [llvm_v2i16_ty, llvm_i32_ty], [IntrNoMem]>;
371 def int_mips_subqh_ph: GCCBuiltin<"__builtin_mips_subqh_ph">,
372 Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty], [IntrNoMem]>;
373 def int_mips_subqh_r_ph: GCCBuiltin<"__builtin_mips_subqh_r_ph">,
374 Intrinsic<[mips_v2q15_ty], [mips_v2q15_ty, mips_v2q15_ty], [IntrNoMem]>;
375 def int_mips_subqh_w: GCCBuiltin<"__builtin_mips_subqh_w">,
376 Intrinsic<[mips_q31_ty], [mips_q31_ty, mips_q31_ty], [IntrNoMem]>;
377 def int_mips_subqh_r_w: GCCBuiltin<"__builtin_mips_subqh_r_w">,
378 Intrinsic<[mips_q31_ty], [mips_q31_ty, mips_q31_ty], [IntrNoMem]>;
380 def int_mips_subu_ph: GCCBuiltin<"__builtin_mips_subu_ph">,
381 Intrinsic<[llvm_v2i16_ty], [llvm_v2i16_ty, llvm_v2i16_ty], []>;
382 def int_mips_subu_s_ph: GCCBuiltin<"__builtin_mips_subu_s_ph">,
383 Intrinsic<[llvm_v2i16_ty], [llvm_v2i16_ty, llvm_v2i16_ty], []>;
385 def int_mips_subuh_qb: GCCBuiltin<"__builtin_mips_subuh_qb">,
386 Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_v4i8_ty], [IntrNoMem]>;
387 def int_mips_subuh_r_qb: GCCBuiltin<"__builtin_mips_subuh_r_qb">,
388 Intrinsic<[llvm_v4i8_ty], [llvm_v4i8_ty, llvm_v4i8_ty], [IntrNoMem]>;
390 //===----------------------------------------------------------------------===//
393 //===----------------------------------------------------------------------===//
394 // Addition/subtraction
396 def int_mips_add_a_b : GCCBuiltin<"__builtin_msa_add_a_b">,
397 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty],
398 [Commutative, IntrNoMem]>;
399 def int_mips_add_a_h : GCCBuiltin<"__builtin_msa_add_a_h">,
400 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty],
401 [Commutative, IntrNoMem]>;
402 def int_mips_add_a_w : GCCBuiltin<"__builtin_msa_add_a_w">,
403 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty],
404 [Commutative, IntrNoMem]>;
405 def int_mips_add_a_d : GCCBuiltin<"__builtin_msa_add_a_d">,
406 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty],
407 [Commutative, IntrNoMem]>;
409 def int_mips_adds_a_b : GCCBuiltin<"__builtin_msa_adds_a_b">,
410 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty],
411 [Commutative, IntrNoMem]>;
412 def int_mips_adds_a_h : GCCBuiltin<"__builtin_msa_adds_a_h">,
413 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty],
414 [Commutative, IntrNoMem]>;
415 def int_mips_adds_a_w : GCCBuiltin<"__builtin_msa_adds_a_w">,
416 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty],
417 [Commutative, IntrNoMem]>;
418 def int_mips_adds_a_d : GCCBuiltin<"__builtin_msa_adds_a_d">,
419 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty],
420 [Commutative, IntrNoMem]>;
422 def int_mips_adds_s_b : GCCBuiltin<"__builtin_msa_adds_s_b">,
423 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty],
424 [Commutative, IntrNoMem]>;
425 def int_mips_adds_s_h : GCCBuiltin<"__builtin_msa_adds_s_h">,
426 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty],
427 [Commutative, IntrNoMem]>;
428 def int_mips_adds_s_w : GCCBuiltin<"__builtin_msa_adds_s_w">,
429 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty],
430 [Commutative, IntrNoMem]>;
431 def int_mips_adds_s_d : GCCBuiltin<"__builtin_msa_adds_s_d">,
432 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty],
433 [Commutative, IntrNoMem]>;
435 def int_mips_adds_u_b : GCCBuiltin<"__builtin_msa_adds_u_b">,
436 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty],
437 [Commutative, IntrNoMem]>;
438 def int_mips_adds_u_h : GCCBuiltin<"__builtin_msa_adds_u_h">,
439 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty],
440 [Commutative, IntrNoMem]>;
441 def int_mips_adds_u_w : GCCBuiltin<"__builtin_msa_adds_u_w">,
442 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty],
443 [Commutative, IntrNoMem]>;
444 def int_mips_adds_u_d : GCCBuiltin<"__builtin_msa_adds_u_d">,
445 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty],
446 [Commutative, IntrNoMem]>;
448 def int_mips_addv_b : GCCBuiltin<"__builtin_msa_addv_b">,
449 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty],
450 [Commutative, IntrNoMem]>;
451 def int_mips_addv_h : GCCBuiltin<"__builtin_msa_addv_h">,
452 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty],
453 [Commutative, IntrNoMem]>;
454 def int_mips_addv_w : GCCBuiltin<"__builtin_msa_addv_w">,
455 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty],
456 [Commutative, IntrNoMem]>;
457 def int_mips_addv_d : GCCBuiltin<"__builtin_msa_addv_d">,
458 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty],
459 [Commutative, IntrNoMem]>;
461 def int_mips_addvi_b : GCCBuiltin<"__builtin_msa_addvi_b">,
462 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty],
463 [Commutative, IntrNoMem]>;
464 def int_mips_addvi_h : GCCBuiltin<"__builtin_msa_addvi_h">,
465 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty],
466 [Commutative, IntrNoMem]>;
467 def int_mips_addvi_w : GCCBuiltin<"__builtin_msa_addvi_w">,
468 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty],
469 [Commutative, IntrNoMem]>;
470 def int_mips_addvi_d : GCCBuiltin<"__builtin_msa_addvi_d">,
471 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty],
472 [Commutative, IntrNoMem]>;
474 def int_mips_and_v : GCCBuiltin<"__builtin_msa_and_v">,
475 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
477 def int_mips_andi_b : GCCBuiltin<"__builtin_msa_andi_b">,
478 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
480 def int_mips_asub_s_b : GCCBuiltin<"__builtin_msa_asub_s_b">,
481 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
482 def int_mips_asub_s_h : GCCBuiltin<"__builtin_msa_asub_s_h">,
483 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
484 def int_mips_asub_s_w : GCCBuiltin<"__builtin_msa_asub_s_w">,
485 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
486 def int_mips_asub_s_d : GCCBuiltin<"__builtin_msa_asub_s_d">,
487 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
489 def int_mips_asub_u_b : GCCBuiltin<"__builtin_msa_asub_u_b">,
490 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
491 def int_mips_asub_u_h : GCCBuiltin<"__builtin_msa_asub_u_h">,
492 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
493 def int_mips_asub_u_w : GCCBuiltin<"__builtin_msa_asub_u_w">,
494 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
495 def int_mips_asub_u_d : GCCBuiltin<"__builtin_msa_asub_u_d">,
496 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
498 def int_mips_ave_s_b : GCCBuiltin<"__builtin_msa_ave_s_b">,
499 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty],
500 [Commutative, IntrNoMem]>;
501 def int_mips_ave_s_h : GCCBuiltin<"__builtin_msa_ave_s_h">,
502 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty],
503 [Commutative, IntrNoMem]>;
504 def int_mips_ave_s_w : GCCBuiltin<"__builtin_msa_ave_s_w">,
505 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty],
506 [Commutative, IntrNoMem]>;
507 def int_mips_ave_s_d : GCCBuiltin<"__builtin_msa_ave_s_d">,
508 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty],
509 [Commutative, IntrNoMem]>;
511 def int_mips_ave_u_b : GCCBuiltin<"__builtin_msa_ave_u_b">,
512 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty],
513 [Commutative, IntrNoMem]>;
514 def int_mips_ave_u_h : GCCBuiltin<"__builtin_msa_ave_u_h">,
515 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty],
516 [Commutative, IntrNoMem]>;
517 def int_mips_ave_u_w : GCCBuiltin<"__builtin_msa_ave_u_w">,
518 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty],
519 [Commutative, IntrNoMem]>;
520 def int_mips_ave_u_d : GCCBuiltin<"__builtin_msa_ave_u_d">,
521 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty],
522 [Commutative, IntrNoMem]>;
524 def int_mips_aver_s_b : GCCBuiltin<"__builtin_msa_aver_s_b">,
525 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty],
526 [Commutative, IntrNoMem]>;
527 def int_mips_aver_s_h : GCCBuiltin<"__builtin_msa_aver_s_h">,
528 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty],
529 [Commutative, IntrNoMem]>;
530 def int_mips_aver_s_w : GCCBuiltin<"__builtin_msa_aver_s_w">,
531 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty],
532 [Commutative, IntrNoMem]>;
533 def int_mips_aver_s_d : GCCBuiltin<"__builtin_msa_aver_s_d">,
534 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty],
535 [Commutative, IntrNoMem]>;
537 def int_mips_aver_u_b : GCCBuiltin<"__builtin_msa_aver_u_b">,
538 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty],
539 [Commutative, IntrNoMem]>;
540 def int_mips_aver_u_h : GCCBuiltin<"__builtin_msa_aver_u_h">,
541 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty],
542 [Commutative, IntrNoMem]>;
543 def int_mips_aver_u_w : GCCBuiltin<"__builtin_msa_aver_u_w">,
544 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty],
545 [Commutative, IntrNoMem]>;
546 def int_mips_aver_u_d : GCCBuiltin<"__builtin_msa_aver_u_d">,
547 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty],
548 [Commutative, IntrNoMem]>;
550 def int_mips_bclr_b : GCCBuiltin<"__builtin_msa_bclr_b">,
551 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
552 def int_mips_bclr_h : GCCBuiltin<"__builtin_msa_bclr_h">,
553 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
554 def int_mips_bclr_w : GCCBuiltin<"__builtin_msa_bclr_w">,
555 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
556 def int_mips_bclr_d : GCCBuiltin<"__builtin_msa_bclr_d">,
557 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
559 def int_mips_bclri_b : GCCBuiltin<"__builtin_msa_bclri_b">,
560 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
561 def int_mips_bclri_h : GCCBuiltin<"__builtin_msa_bclri_h">,
562 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>;
563 def int_mips_bclri_w : GCCBuiltin<"__builtin_msa_bclri_w">,
564 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>;
565 def int_mips_bclri_d : GCCBuiltin<"__builtin_msa_bclri_d">,
566 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>;
568 def int_mips_binsl_b : GCCBuiltin<"__builtin_msa_binsl_b">,
569 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
570 def int_mips_binsl_h : GCCBuiltin<"__builtin_msa_binsl_h">,
571 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
572 def int_mips_binsl_w : GCCBuiltin<"__builtin_msa_binsl_w">,
573 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
574 def int_mips_binsl_d : GCCBuiltin<"__builtin_msa_binsl_d">,
575 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
577 def int_mips_binsli_b : GCCBuiltin<"__builtin_msa_binsli_b">,
578 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
579 def int_mips_binsli_h : GCCBuiltin<"__builtin_msa_binsli_h">,
580 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>;
581 def int_mips_binsli_w : GCCBuiltin<"__builtin_msa_binsli_w">,
582 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>;
583 def int_mips_binsli_d : GCCBuiltin<"__builtin_msa_binsli_d">,
584 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>;
586 def int_mips_binsr_b : GCCBuiltin<"__builtin_msa_binsr_b">,
587 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
588 def int_mips_binsr_h : GCCBuiltin<"__builtin_msa_binsr_h">,
589 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
590 def int_mips_binsr_w : GCCBuiltin<"__builtin_msa_binsr_w">,
591 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
592 def int_mips_binsr_d : GCCBuiltin<"__builtin_msa_binsr_d">,
593 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
595 def int_mips_binsri_b : GCCBuiltin<"__builtin_msa_binsri_b">,
596 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
597 def int_mips_binsri_h : GCCBuiltin<"__builtin_msa_binsri_h">,
598 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>;
599 def int_mips_binsri_w : GCCBuiltin<"__builtin_msa_binsri_w">,
600 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>;
601 def int_mips_binsri_d : GCCBuiltin<"__builtin_msa_binsri_d">,
602 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>;
604 def int_mips_bmnz_v : GCCBuiltin<"__builtin_msa_bmnz_v">,
605 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
607 def int_mips_bmnzi_b : GCCBuiltin<"__builtin_msa_bmnzi_b">,
608 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
610 def int_mips_bmz_v : GCCBuiltin<"__builtin_msa_bmz_v">,
611 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
613 def int_mips_bmzi_b : GCCBuiltin<"__builtin_msa_bmzi_b">,
614 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
616 def int_mips_bneg_b : GCCBuiltin<"__builtin_msa_bneg_b">,
617 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
618 def int_mips_bneg_h : GCCBuiltin<"__builtin_msa_bneg_h">,
619 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
620 def int_mips_bneg_w : GCCBuiltin<"__builtin_msa_bneg_w">,
621 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
622 def int_mips_bneg_d : GCCBuiltin<"__builtin_msa_bneg_d">,
623 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
625 def int_mips_bnegi_b : GCCBuiltin<"__builtin_msa_bnegi_b">,
626 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
627 def int_mips_bnegi_h : GCCBuiltin<"__builtin_msa_bnegi_h">,
628 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>;
629 def int_mips_bnegi_w : GCCBuiltin<"__builtin_msa_bnegi_w">,
630 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>;
631 def int_mips_bnegi_d : GCCBuiltin<"__builtin_msa_bnegi_d">,
632 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>;
634 def int_mips_bnz_b : GCCBuiltin<"__builtin_msa_bnz_b">,
635 Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty], [IntrNoMem]>;
636 def int_mips_bnz_h : GCCBuiltin<"__builtin_msa_bnz_h">,
637 Intrinsic<[llvm_i32_ty], [llvm_v8i16_ty], [IntrNoMem]>;
638 def int_mips_bnz_w : GCCBuiltin<"__builtin_msa_bnz_w">,
639 Intrinsic<[llvm_i32_ty], [llvm_v4i32_ty], [IntrNoMem]>;
640 def int_mips_bnz_d : GCCBuiltin<"__builtin_msa_bnz_d">,
641 Intrinsic<[llvm_i32_ty], [llvm_v2i64_ty], [IntrNoMem]>;
643 def int_mips_bnz_v : GCCBuiltin<"__builtin_msa_bnz_v">,
644 Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty], [IntrNoMem]>;
646 def int_mips_bsel_v : GCCBuiltin<"__builtin_msa_bsel_v">,
647 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty],
650 def int_mips_bseli_b : GCCBuiltin<"__builtin_msa_bseli_b">,
651 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_i32_ty],
654 def int_mips_bset_b : GCCBuiltin<"__builtin_msa_bset_b">,
655 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
656 def int_mips_bset_h : GCCBuiltin<"__builtin_msa_bset_h">,
657 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
658 def int_mips_bset_w : GCCBuiltin<"__builtin_msa_bset_w">,
659 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
660 def int_mips_bset_d : GCCBuiltin<"__builtin_msa_bset_d">,
661 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
663 def int_mips_bseti_b : GCCBuiltin<"__builtin_msa_bseti_b">,
664 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
665 def int_mips_bseti_h : GCCBuiltin<"__builtin_msa_bseti_h">,
666 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>;
667 def int_mips_bseti_w : GCCBuiltin<"__builtin_msa_bseti_w">,
668 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>;
669 def int_mips_bseti_d : GCCBuiltin<"__builtin_msa_bseti_d">,
670 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>;
672 def int_mips_bz_b : GCCBuiltin<"__builtin_msa_bz_b">,
673 Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty], [IntrNoMem]>;
674 def int_mips_bz_h : GCCBuiltin<"__builtin_msa_bz_h">,
675 Intrinsic<[llvm_i32_ty], [llvm_v8i16_ty], [IntrNoMem]>;
676 def int_mips_bz_w : GCCBuiltin<"__builtin_msa_bz_w">,
677 Intrinsic<[llvm_i32_ty], [llvm_v4i32_ty], [IntrNoMem]>;
678 def int_mips_bz_d : GCCBuiltin<"__builtin_msa_bz_d">,
679 Intrinsic<[llvm_i32_ty], [llvm_v2i64_ty], [IntrNoMem]>;
681 def int_mips_bz_v : GCCBuiltin<"__builtin_msa_bz_v">,
682 Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty], [IntrNoMem]>;
684 def int_mips_ceq_b : GCCBuiltin<"__builtin_msa_ceq_b">,
685 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
686 def int_mips_ceq_h : GCCBuiltin<"__builtin_msa_ceq_h">,
687 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
688 def int_mips_ceq_w : GCCBuiltin<"__builtin_msa_ceq_w">,
689 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
690 def int_mips_ceq_d : GCCBuiltin<"__builtin_msa_ceq_d">,
691 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
693 def int_mips_ceqi_b : GCCBuiltin<"__builtin_msa_ceqi_b">,
694 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
695 def int_mips_ceqi_h : GCCBuiltin<"__builtin_msa_ceqi_h">,
696 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>;
697 def int_mips_ceqi_w : GCCBuiltin<"__builtin_msa_ceqi_w">,
698 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>;
699 def int_mips_ceqi_d : GCCBuiltin<"__builtin_msa_ceqi_d">,
700 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>;
702 def int_mips_cfcmsa : GCCBuiltin<"__builtin_msa_cfcmsa">,
703 Intrinsic<[llvm_i32_ty], [llvm_i32_ty], []>;
705 def int_mips_cle_s_b : GCCBuiltin<"__builtin_msa_cle_s_b">,
706 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
707 def int_mips_cle_s_h : GCCBuiltin<"__builtin_msa_cle_s_h">,
708 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
709 def int_mips_cle_s_w : GCCBuiltin<"__builtin_msa_cle_s_w">,
710 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
711 def int_mips_cle_s_d : GCCBuiltin<"__builtin_msa_cle_s_d">,
712 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
714 def int_mips_cle_u_b : GCCBuiltin<"__builtin_msa_cle_u_b">,
715 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
716 def int_mips_cle_u_h : GCCBuiltin<"__builtin_msa_cle_u_h">,
717 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
718 def int_mips_cle_u_w : GCCBuiltin<"__builtin_msa_cle_u_w">,
719 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
720 def int_mips_cle_u_d : GCCBuiltin<"__builtin_msa_cle_u_d">,
721 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
723 def int_mips_clei_s_b : GCCBuiltin<"__builtin_msa_clei_s_b">,
724 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
725 def int_mips_clei_s_h : GCCBuiltin<"__builtin_msa_clei_s_h">,
726 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>;
727 def int_mips_clei_s_w : GCCBuiltin<"__builtin_msa_clei_s_w">,
728 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>;
729 def int_mips_clei_s_d : GCCBuiltin<"__builtin_msa_clei_s_d">,
730 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>;
732 def int_mips_clei_u_b : GCCBuiltin<"__builtin_msa_clei_u_b">,
733 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
734 def int_mips_clei_u_h : GCCBuiltin<"__builtin_msa_clei_u_h">,
735 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>;
736 def int_mips_clei_u_w : GCCBuiltin<"__builtin_msa_clei_u_w">,
737 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>;
738 def int_mips_clei_u_d : GCCBuiltin<"__builtin_msa_clei_u_d">,
739 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>;
741 def int_mips_clt_s_b : GCCBuiltin<"__builtin_msa_clt_s_b">,
742 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
743 def int_mips_clt_s_h : GCCBuiltin<"__builtin_msa_clt_s_h">,
744 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
745 def int_mips_clt_s_w : GCCBuiltin<"__builtin_msa_clt_s_w">,
746 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
747 def int_mips_clt_s_d : GCCBuiltin<"__builtin_msa_clt_s_d">,
748 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
750 def int_mips_clt_u_b : GCCBuiltin<"__builtin_msa_clt_u_b">,
751 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
752 def int_mips_clt_u_h : GCCBuiltin<"__builtin_msa_clt_u_h">,
753 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
754 def int_mips_clt_u_w : GCCBuiltin<"__builtin_msa_clt_u_w">,
755 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
756 def int_mips_clt_u_d : GCCBuiltin<"__builtin_msa_clt_u_d">,
757 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
759 def int_mips_clti_s_b : GCCBuiltin<"__builtin_msa_clti_s_b">,
760 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
761 def int_mips_clti_s_h : GCCBuiltin<"__builtin_msa_clti_s_h">,
762 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>;
763 def int_mips_clti_s_w : GCCBuiltin<"__builtin_msa_clti_s_w">,
764 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>;
765 def int_mips_clti_s_d : GCCBuiltin<"__builtin_msa_clti_s_d">,
766 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>;
768 def int_mips_clti_u_b : GCCBuiltin<"__builtin_msa_clti_u_b">,
769 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
770 def int_mips_clti_u_h : GCCBuiltin<"__builtin_msa_clti_u_h">,
771 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>;
772 def int_mips_clti_u_w : GCCBuiltin<"__builtin_msa_clti_u_w">,
773 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>;
774 def int_mips_clti_u_d : GCCBuiltin<"__builtin_msa_clti_u_d">,
775 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>;
777 def int_mips_copy_s_b : GCCBuiltin<"__builtin_msa_copy_s_b">,
778 Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
779 def int_mips_copy_s_h : GCCBuiltin<"__builtin_msa_copy_s_h">,
780 Intrinsic<[llvm_i32_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>;
781 def int_mips_copy_s_w : GCCBuiltin<"__builtin_msa_copy_s_w">,
782 Intrinsic<[llvm_i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>;
784 def int_mips_copy_u_b : GCCBuiltin<"__builtin_msa_copy_u_b">,
785 Intrinsic<[llvm_i32_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
786 def int_mips_copy_u_h : GCCBuiltin<"__builtin_msa_copy_u_h">,
787 Intrinsic<[llvm_i32_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>;
788 def int_mips_copy_u_w : GCCBuiltin<"__builtin_msa_copy_u_w">,
789 Intrinsic<[llvm_i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>;
791 def int_mips_ctcmsa : GCCBuiltin<"__builtin_msa_ctcmsa">,
792 Intrinsic<[], [llvm_i32_ty, llvm_i32_ty], []>;
794 def int_mips_div_s_b : GCCBuiltin<"__builtin_msa_div_s_b">,
795 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
796 def int_mips_div_s_h : GCCBuiltin<"__builtin_msa_div_s_h">,
797 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
798 def int_mips_div_s_w : GCCBuiltin<"__builtin_msa_div_s_w">,
799 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
800 def int_mips_div_s_d : GCCBuiltin<"__builtin_msa_div_s_d">,
801 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
803 def int_mips_div_u_b : GCCBuiltin<"__builtin_msa_div_u_b">,
804 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
805 def int_mips_div_u_h : GCCBuiltin<"__builtin_msa_div_u_h">,
806 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
807 def int_mips_div_u_w : GCCBuiltin<"__builtin_msa_div_u_w">,
808 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
809 def int_mips_div_u_d : GCCBuiltin<"__builtin_msa_div_u_d">,
810 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
812 def int_mips_dotp_s_h : GCCBuiltin<"__builtin_msa_dotp_s_h">,
813 Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
814 def int_mips_dotp_s_w : GCCBuiltin<"__builtin_msa_dotp_s_w">,
815 Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
816 def int_mips_dotp_s_d : GCCBuiltin<"__builtin_msa_dotp_s_d">,
817 Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
819 def int_mips_dotp_u_h : GCCBuiltin<"__builtin_msa_dotp_u_h">,
820 Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
821 def int_mips_dotp_u_w : GCCBuiltin<"__builtin_msa_dotp_u_w">,
822 Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
823 def int_mips_dotp_u_d : GCCBuiltin<"__builtin_msa_dotp_u_d">,
824 Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
826 def int_mips_dpadd_s_h : GCCBuiltin<"__builtin_msa_dpadd_s_h">,
827 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v16i8_ty, llvm_v16i8_ty],
829 def int_mips_dpadd_s_w : GCCBuiltin<"__builtin_msa_dpadd_s_w">,
830 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v8i16_ty, llvm_v8i16_ty],
832 def int_mips_dpadd_s_d : GCCBuiltin<"__builtin_msa_dpadd_s_d">,
833 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v4i32_ty, llvm_v4i32_ty],
836 def int_mips_dpadd_u_h : GCCBuiltin<"__builtin_msa_dpadd_u_h">,
837 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v16i8_ty, llvm_v16i8_ty],
839 def int_mips_dpadd_u_w : GCCBuiltin<"__builtin_msa_dpadd_u_w">,
840 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v8i16_ty, llvm_v8i16_ty],
842 def int_mips_dpadd_u_d : GCCBuiltin<"__builtin_msa_dpadd_u_d">,
843 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v4i32_ty, llvm_v4i32_ty],
846 def int_mips_dpsub_s_h : GCCBuiltin<"__builtin_msa_dpsub_s_h">,
847 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v16i8_ty, llvm_v16i8_ty],
849 def int_mips_dpsub_s_w : GCCBuiltin<"__builtin_msa_dpsub_s_w">,
850 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v8i16_ty, llvm_v8i16_ty],
852 def int_mips_dpsub_s_d : GCCBuiltin<"__builtin_msa_dpsub_s_d">,
853 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v4i32_ty, llvm_v4i32_ty],
856 def int_mips_dpsub_u_h : GCCBuiltin<"__builtin_msa_dpsub_u_h">,
857 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v16i8_ty, llvm_v16i8_ty],
859 def int_mips_dpsub_u_w : GCCBuiltin<"__builtin_msa_dpsub_u_w">,
860 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v8i16_ty, llvm_v8i16_ty],
862 def int_mips_dpsub_u_d : GCCBuiltin<"__builtin_msa_dpsub_u_d">,
863 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v4i32_ty, llvm_v4i32_ty],
866 def int_mips_fadd_w : GCCBuiltin<"__builtin_msa_fadd_w">,
867 Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
868 def int_mips_fadd_d : GCCBuiltin<"__builtin_msa_fadd_d">,
869 Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
871 def int_mips_fcaf_w : GCCBuiltin<"__builtin_msa_fcaf_w">,
872 Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
873 def int_mips_fcaf_d : GCCBuiltin<"__builtin_msa_fcaf_d">,
874 Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
876 def int_mips_fceq_w : GCCBuiltin<"__builtin_msa_fceq_w">,
877 Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
878 def int_mips_fceq_d : GCCBuiltin<"__builtin_msa_fceq_d">,
879 Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
881 def int_mips_fcle_w : GCCBuiltin<"__builtin_msa_fcle_w">,
882 Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
883 def int_mips_fcle_d : GCCBuiltin<"__builtin_msa_fcle_d">,
884 Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
886 def int_mips_fclt_w : GCCBuiltin<"__builtin_msa_fclt_w">,
887 Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
888 def int_mips_fclt_d : GCCBuiltin<"__builtin_msa_fclt_d">,
889 Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
891 def int_mips_fclass_w : GCCBuiltin<"__builtin_msa_fclass_w">,
892 Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty], [IntrNoMem]>;
893 def int_mips_fclass_d : GCCBuiltin<"__builtin_msa_fclass_d">,
894 Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty], [IntrNoMem]>;
896 def int_mips_fcne_w : GCCBuiltin<"__builtin_msa_fcne_w">,
897 Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
898 def int_mips_fcne_d : GCCBuiltin<"__builtin_msa_fcne_d">,
899 Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
901 def int_mips_fcor_w : GCCBuiltin<"__builtin_msa_fcor_w">,
902 Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
903 def int_mips_fcor_d : GCCBuiltin<"__builtin_msa_fcor_d">,
904 Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
906 def int_mips_fcueq_w : GCCBuiltin<"__builtin_msa_fcueq_w">,
907 Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
908 def int_mips_fcueq_d : GCCBuiltin<"__builtin_msa_fcueq_d">,
909 Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
911 def int_mips_fcule_w : GCCBuiltin<"__builtin_msa_fcule_w">,
912 Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
913 def int_mips_fcule_d : GCCBuiltin<"__builtin_msa_fcule_d">,
914 Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
916 def int_mips_fcult_w : GCCBuiltin<"__builtin_msa_fcult_w">,
917 Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
918 def int_mips_fcult_d : GCCBuiltin<"__builtin_msa_fcult_d">,
919 Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
921 def int_mips_fcun_w : GCCBuiltin<"__builtin_msa_fcun_w">,
922 Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
923 def int_mips_fcun_d : GCCBuiltin<"__builtin_msa_fcun_d">,
924 Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
926 def int_mips_fcune_w : GCCBuiltin<"__builtin_msa_fcune_w">,
927 Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
928 def int_mips_fcune_d : GCCBuiltin<"__builtin_msa_fcune_d">,
929 Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
931 def int_mips_fdiv_w : GCCBuiltin<"__builtin_msa_fdiv_w">,
932 Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
933 def int_mips_fdiv_d : GCCBuiltin<"__builtin_msa_fdiv_d">,
934 Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
936 def int_mips_fexdo_h : GCCBuiltin<"__builtin_msa_fexdo_h">,
937 Intrinsic<[llvm_v8f16_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
938 def int_mips_fexdo_w : GCCBuiltin<"__builtin_msa_fexdo_w">,
939 Intrinsic<[llvm_v4f32_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
941 def int_mips_fexp2_w : GCCBuiltin<"__builtin_msa_fexp2_w">,
942 Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4i32_ty], [IntrNoMem]>;
943 def int_mips_fexp2_d : GCCBuiltin<"__builtin_msa_fexp2_d">,
944 Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2i64_ty], [IntrNoMem]>;
946 def int_mips_fexupl_w : GCCBuiltin<"__builtin_msa_fexupl_w">,
947 Intrinsic<[llvm_v4f32_ty], [llvm_v8f16_ty], [IntrNoMem]>;
948 def int_mips_fexupl_d : GCCBuiltin<"__builtin_msa_fexupl_d">,
949 Intrinsic<[llvm_v2f64_ty], [llvm_v4f32_ty], [IntrNoMem]>;
951 def int_mips_fexupr_w : GCCBuiltin<"__builtin_msa_fexupr_w">,
952 Intrinsic<[llvm_v4f32_ty], [llvm_v8f16_ty], [IntrNoMem]>;
953 def int_mips_fexupr_d : GCCBuiltin<"__builtin_msa_fexupr_d">,
954 Intrinsic<[llvm_v2f64_ty], [llvm_v4f32_ty], [IntrNoMem]>;
956 def int_mips_ffint_s_w : GCCBuiltin<"__builtin_msa_ffint_s_w">,
957 Intrinsic<[llvm_v4f32_ty], [llvm_v4i32_ty], [IntrNoMem]>;
958 def int_mips_ffint_s_d : GCCBuiltin<"__builtin_msa_ffint_s_d">,
959 Intrinsic<[llvm_v2f64_ty], [llvm_v2i64_ty], [IntrNoMem]>;
961 def int_mips_ffint_u_w : GCCBuiltin<"__builtin_msa_ffint_u_w">,
962 Intrinsic<[llvm_v4f32_ty], [llvm_v4i32_ty], [IntrNoMem]>;
963 def int_mips_ffint_u_d : GCCBuiltin<"__builtin_msa_ffint_u_d">,
964 Intrinsic<[llvm_v2f64_ty], [llvm_v2i64_ty], [IntrNoMem]>;
966 def int_mips_ffql_w : GCCBuiltin<"__builtin_msa_ffql_w">,
967 Intrinsic<[llvm_v4f32_ty], [llvm_v8i16_ty], [IntrNoMem]>;
968 def int_mips_ffql_d : GCCBuiltin<"__builtin_msa_ffql_d">,
969 Intrinsic<[llvm_v2f64_ty], [llvm_v4i32_ty], [IntrNoMem]>;
971 def int_mips_ffqr_w : GCCBuiltin<"__builtin_msa_ffqr_w">,
972 Intrinsic<[llvm_v4f32_ty], [llvm_v8i16_ty], [IntrNoMem]>;
973 def int_mips_ffqr_d : GCCBuiltin<"__builtin_msa_ffqr_d">,
974 Intrinsic<[llvm_v2f64_ty], [llvm_v4i32_ty], [IntrNoMem]>;
976 def int_mips_fill_b : GCCBuiltin<"__builtin_msa_fill_b">,
977 Intrinsic<[llvm_v16i8_ty], [llvm_i32_ty], [IntrNoMem]>;
978 def int_mips_fill_h : GCCBuiltin<"__builtin_msa_fill_h">,
979 Intrinsic<[llvm_v8i16_ty], [llvm_i32_ty], [IntrNoMem]>;
980 def int_mips_fill_w : GCCBuiltin<"__builtin_msa_fill_w">,
981 Intrinsic<[llvm_v4i32_ty], [llvm_i32_ty], [IntrNoMem]>;
983 def int_mips_flog2_w : GCCBuiltin<"__builtin_msa_flog2_w">,
984 Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem]>;
985 def int_mips_flog2_d : GCCBuiltin<"__builtin_msa_flog2_d">,
986 Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty], [IntrNoMem]>;
988 def int_mips_fmadd_w : GCCBuiltin<"__builtin_msa_fmadd_w">,
989 Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty],
991 def int_mips_fmadd_d : GCCBuiltin<"__builtin_msa_fmadd_d">,
992 Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty],
995 def int_mips_fmax_w : GCCBuiltin<"__builtin_msa_fmax_w">,
996 Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
997 def int_mips_fmax_d : GCCBuiltin<"__builtin_msa_fmax_d">,
998 Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1000 def int_mips_fmax_a_w : GCCBuiltin<"__builtin_msa_fmax_a_w">,
1001 Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
1002 def int_mips_fmax_a_d : GCCBuiltin<"__builtin_msa_fmax_a_d">,
1003 Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1005 def int_mips_fmin_w : GCCBuiltin<"__builtin_msa_fmin_w">,
1006 Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
1007 def int_mips_fmin_d : GCCBuiltin<"__builtin_msa_fmin_d">,
1008 Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1010 def int_mips_fmin_a_w : GCCBuiltin<"__builtin_msa_fmin_a_w">,
1011 Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
1012 def int_mips_fmin_a_d : GCCBuiltin<"__builtin_msa_fmin_a_d">,
1013 Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1015 def int_mips_fmsub_w : GCCBuiltin<"__builtin_msa_fmsub_w">,
1016 Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty],
1018 def int_mips_fmsub_d : GCCBuiltin<"__builtin_msa_fmsub_d">,
1019 Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty, llvm_v2f64_ty],
1022 def int_mips_fmul_w : GCCBuiltin<"__builtin_msa_fmul_w">,
1023 Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
1024 def int_mips_fmul_d : GCCBuiltin<"__builtin_msa_fmul_d">,
1025 Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1027 def int_mips_frint_w : GCCBuiltin<"__builtin_msa_frint_w">,
1028 Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem]>;
1029 def int_mips_frint_d : GCCBuiltin<"__builtin_msa_frint_d">,
1030 Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty], [IntrNoMem]>;
1032 def int_mips_frcp_w : GCCBuiltin<"__builtin_msa_frcp_w">,
1033 Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem]>;
1034 def int_mips_frcp_d : GCCBuiltin<"__builtin_msa_frcp_d">,
1035 Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty], [IntrNoMem]>;
1037 def int_mips_frsqrt_w : GCCBuiltin<"__builtin_msa_frsqrt_w">,
1038 Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem]>;
1039 def int_mips_frsqrt_d : GCCBuiltin<"__builtin_msa_frsqrt_d">,
1040 Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty], [IntrNoMem]>;
1042 def int_mips_fsaf_w : GCCBuiltin<"__builtin_msa_fsaf_w">,
1043 Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
1044 def int_mips_fsaf_d : GCCBuiltin<"__builtin_msa_fsaf_d">,
1045 Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1047 def int_mips_fseq_w : GCCBuiltin<"__builtin_msa_fseq_w">,
1048 Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
1049 def int_mips_fseq_d : GCCBuiltin<"__builtin_msa_fseq_d">,
1050 Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1052 def int_mips_fsle_w : GCCBuiltin<"__builtin_msa_fsle_w">,
1053 Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
1054 def int_mips_fsle_d : GCCBuiltin<"__builtin_msa_fsle_d">,
1055 Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1057 def int_mips_fslt_w : GCCBuiltin<"__builtin_msa_fslt_w">,
1058 Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
1059 def int_mips_fslt_d : GCCBuiltin<"__builtin_msa_fslt_d">,
1060 Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1062 def int_mips_fsne_w : GCCBuiltin<"__builtin_msa_fsne_w">,
1063 Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
1064 def int_mips_fsne_d : GCCBuiltin<"__builtin_msa_fsne_d">,
1065 Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1067 def int_mips_fsor_w : GCCBuiltin<"__builtin_msa_fsor_w">,
1068 Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
1069 def int_mips_fsor_d : GCCBuiltin<"__builtin_msa_fsor_d">,
1070 Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1072 def int_mips_fsqrt_w : GCCBuiltin<"__builtin_msa_fsqrt_w">,
1073 Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty], [IntrNoMem]>;
1074 def int_mips_fsqrt_d : GCCBuiltin<"__builtin_msa_fsqrt_d">,
1075 Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty], [IntrNoMem]>;
1077 def int_mips_fsub_w : GCCBuiltin<"__builtin_msa_fsub_w">,
1078 Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
1079 def int_mips_fsub_d : GCCBuiltin<"__builtin_msa_fsub_d">,
1080 Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1082 def int_mips_fsueq_w : GCCBuiltin<"__builtin_msa_fsueq_w">,
1083 Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
1084 def int_mips_fsueq_d : GCCBuiltin<"__builtin_msa_fsueq_d">,
1085 Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1087 def int_mips_fsule_w : GCCBuiltin<"__builtin_msa_fsule_w">,
1088 Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
1089 def int_mips_fsule_d : GCCBuiltin<"__builtin_msa_fsule_d">,
1090 Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1092 def int_mips_fsult_w : GCCBuiltin<"__builtin_msa_fsult_w">,
1093 Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
1094 def int_mips_fsult_d : GCCBuiltin<"__builtin_msa_fsult_d">,
1095 Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1097 def int_mips_fsun_w : GCCBuiltin<"__builtin_msa_fsun_w">,
1098 Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
1099 def int_mips_fsun_d : GCCBuiltin<"__builtin_msa_fsun_d">,
1100 Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1102 def int_mips_fsune_w : GCCBuiltin<"__builtin_msa_fsune_w">,
1103 Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
1104 def int_mips_fsune_d : GCCBuiltin<"__builtin_msa_fsune_d">,
1105 Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1107 def int_mips_ftint_s_w : GCCBuiltin<"__builtin_msa_ftint_s_w">,
1108 Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty], [IntrNoMem]>;
1109 def int_mips_ftint_s_d : GCCBuiltin<"__builtin_msa_ftint_s_d">,
1110 Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty], [IntrNoMem]>;
1112 def int_mips_ftint_u_w : GCCBuiltin<"__builtin_msa_ftint_u_w">,
1113 Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty], [IntrNoMem]>;
1114 def int_mips_ftint_u_d : GCCBuiltin<"__builtin_msa_ftint_u_d">,
1115 Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty], [IntrNoMem]>;
1117 def int_mips_ftq_h : GCCBuiltin<"__builtin_msa_ftq_h">,
1118 Intrinsic<[llvm_v8i16_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
1119 def int_mips_ftq_w : GCCBuiltin<"__builtin_msa_ftq_w">,
1120 Intrinsic<[llvm_v4i32_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]>;
1122 def int_mips_ftrunc_s_w : GCCBuiltin<"__builtin_msa_ftrunc_s_w">,
1123 Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty], [IntrNoMem]>;
1124 def int_mips_ftrunc_s_d : GCCBuiltin<"__builtin_msa_ftrunc_s_d">,
1125 Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty], [IntrNoMem]>;
1127 def int_mips_ftrunc_u_w : GCCBuiltin<"__builtin_msa_ftrunc_u_w">,
1128 Intrinsic<[llvm_v4i32_ty], [llvm_v4f32_ty], [IntrNoMem]>;
1129 def int_mips_ftrunc_u_d : GCCBuiltin<"__builtin_msa_ftrunc_u_d">,
1130 Intrinsic<[llvm_v2i64_ty], [llvm_v2f64_ty], [IntrNoMem]>;
1132 def int_mips_hadd_s_h : GCCBuiltin<"__builtin_msa_hadd_s_h">,
1133 Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1134 def int_mips_hadd_s_w : GCCBuiltin<"__builtin_msa_hadd_s_w">,
1135 Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1136 def int_mips_hadd_s_d : GCCBuiltin<"__builtin_msa_hadd_s_d">,
1137 Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1139 def int_mips_hadd_u_h : GCCBuiltin<"__builtin_msa_hadd_u_h">,
1140 Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1141 def int_mips_hadd_u_w : GCCBuiltin<"__builtin_msa_hadd_u_w">,
1142 Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1143 def int_mips_hadd_u_d : GCCBuiltin<"__builtin_msa_hadd_u_d">,
1144 Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1146 def int_mips_hsub_s_h : GCCBuiltin<"__builtin_msa_hsub_s_h">,
1147 Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1148 def int_mips_hsub_s_w : GCCBuiltin<"__builtin_msa_hsub_s_w">,
1149 Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1150 def int_mips_hsub_s_d : GCCBuiltin<"__builtin_msa_hsub_s_d">,
1151 Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1153 def int_mips_hsub_u_h : GCCBuiltin<"__builtin_msa_hsub_u_h">,
1154 Intrinsic<[llvm_v8i16_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1155 def int_mips_hsub_u_w : GCCBuiltin<"__builtin_msa_hsub_u_w">,
1156 Intrinsic<[llvm_v4i32_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1157 def int_mips_hsub_u_d : GCCBuiltin<"__builtin_msa_hsub_u_d">,
1158 Intrinsic<[llvm_v2i64_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1160 def int_mips_ilvev_b : GCCBuiltin<"__builtin_msa_ilvev_b">,
1161 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1162 def int_mips_ilvev_h : GCCBuiltin<"__builtin_msa_ilvev_h">,
1163 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1164 def int_mips_ilvev_w : GCCBuiltin<"__builtin_msa_ilvev_w">,
1165 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1166 def int_mips_ilvev_d : GCCBuiltin<"__builtin_msa_ilvev_d">,
1167 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1169 def int_mips_ilvl_b : GCCBuiltin<"__builtin_msa_ilvl_b">,
1170 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1171 def int_mips_ilvl_h : GCCBuiltin<"__builtin_msa_ilvl_h">,
1172 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1173 def int_mips_ilvl_w : GCCBuiltin<"__builtin_msa_ilvl_w">,
1174 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1175 def int_mips_ilvl_d : GCCBuiltin<"__builtin_msa_ilvl_d">,
1176 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1178 def int_mips_ilvod_b : GCCBuiltin<"__builtin_msa_ilvod_b">,
1179 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1180 def int_mips_ilvod_h : GCCBuiltin<"__builtin_msa_ilvod_h">,
1181 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1182 def int_mips_ilvod_w : GCCBuiltin<"__builtin_msa_ilvod_w">,
1183 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1184 def int_mips_ilvod_d : GCCBuiltin<"__builtin_msa_ilvod_d">,
1185 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1187 def int_mips_ilvr_b : GCCBuiltin<"__builtin_msa_ilvr_b">,
1188 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1189 def int_mips_ilvr_h : GCCBuiltin<"__builtin_msa_ilvr_h">,
1190 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1191 def int_mips_ilvr_w : GCCBuiltin<"__builtin_msa_ilvr_w">,
1192 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1193 def int_mips_ilvr_d : GCCBuiltin<"__builtin_msa_ilvr_d">,
1194 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1196 def int_mips_insert_b : GCCBuiltin<"__builtin_msa_insert_b">,
1197 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty, llvm_i32_ty],
1199 def int_mips_insert_h : GCCBuiltin<"__builtin_msa_insert_h">,
1200 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty, llvm_i32_ty],
1202 def int_mips_insert_w : GCCBuiltin<"__builtin_msa_insert_w">,
1203 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty, llvm_i32_ty],
1206 def int_mips_insve_b : GCCBuiltin<"__builtin_msa_insve_b">,
1207 Intrinsic<[llvm_v16i8_ty],
1208 [llvm_v16i8_ty, llvm_i32_ty, llvm_v16i8_ty],
1210 def int_mips_insve_h : GCCBuiltin<"__builtin_msa_insve_h">,
1211 Intrinsic<[llvm_v8i16_ty],
1212 [llvm_v8i16_ty, llvm_i32_ty, llvm_v8i16_ty],
1214 def int_mips_insve_w : GCCBuiltin<"__builtin_msa_insve_w">,
1215 Intrinsic<[llvm_v4i32_ty],
1216 [llvm_v4i32_ty, llvm_i32_ty, llvm_v4i32_ty],
1218 def int_mips_insve_d : GCCBuiltin<"__builtin_msa_insve_d">,
1219 Intrinsic<[llvm_v2i64_ty],
1220 [llvm_v2i64_ty, llvm_i32_ty, llvm_v2i64_ty],
1223 def int_mips_ld_b : GCCBuiltin<"__builtin_msa_ld_b">,
1224 Intrinsic<[llvm_v16i8_ty], [llvm_ptr_ty, llvm_i32_ty],
1226 def int_mips_ld_h : GCCBuiltin<"__builtin_msa_ld_h">,
1227 Intrinsic<[llvm_v8i16_ty], [llvm_ptr_ty, llvm_i32_ty],
1229 def int_mips_ld_w : GCCBuiltin<"__builtin_msa_ld_w">,
1230 Intrinsic<[llvm_v4i32_ty], [llvm_ptr_ty, llvm_i32_ty],
1232 def int_mips_ld_d : GCCBuiltin<"__builtin_msa_ld_d">,
1233 Intrinsic<[llvm_v2i64_ty], [llvm_ptr_ty, llvm_i32_ty],
1236 def int_mips_ldx_b : GCCBuiltin<"__builtin_msa_ldx_b">,
1237 Intrinsic<[llvm_v16i8_ty], [llvm_ptr_ty, llvm_i32_ty],
1239 def int_mips_ldx_h : GCCBuiltin<"__builtin_msa_ldx_h">,
1240 Intrinsic<[llvm_v8i16_ty], [llvm_ptr_ty, llvm_i32_ty],
1242 def int_mips_ldx_w : GCCBuiltin<"__builtin_msa_ldx_w">,
1243 Intrinsic<[llvm_v4i32_ty], [llvm_ptr_ty, llvm_i32_ty],
1245 def int_mips_ldx_d : GCCBuiltin<"__builtin_msa_ldx_d">,
1246 Intrinsic<[llvm_v2i64_ty], [llvm_ptr_ty, llvm_i32_ty],
1249 def int_mips_ldi_b : GCCBuiltin<"__builtin_msa_ldi_b">,
1250 Intrinsic<[llvm_v16i8_ty], [llvm_i32_ty], [IntrNoMem]>;
1251 def int_mips_ldi_h : GCCBuiltin<"__builtin_msa_ldi_h">,
1252 Intrinsic<[llvm_v8i16_ty], [llvm_i32_ty], [IntrNoMem]>;
1253 def int_mips_ldi_w : GCCBuiltin<"__builtin_msa_ldi_w">,
1254 Intrinsic<[llvm_v4i32_ty], [llvm_i32_ty], [IntrNoMem]>;
1255 def int_mips_ldi_d : GCCBuiltin<"__builtin_msa_ldi_d">,
1256 Intrinsic<[llvm_v2i64_ty], [llvm_i32_ty], [IntrNoMem]>;
1258 def int_mips_madd_q_h : GCCBuiltin<"__builtin_msa_madd_q_h">,
1259 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty],
1261 def int_mips_madd_q_w : GCCBuiltin<"__builtin_msa_madd_q_w">,
1262 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty],
1265 def int_mips_maddr_q_h : GCCBuiltin<"__builtin_msa_maddr_q_h">,
1266 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty],
1268 def int_mips_maddr_q_w : GCCBuiltin<"__builtin_msa_maddr_q_w">,
1269 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty],
1272 def int_mips_maddv_b : GCCBuiltin<"__builtin_msa_maddv_b">,
1273 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty],
1275 def int_mips_maddv_h : GCCBuiltin<"__builtin_msa_maddv_h">,
1276 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty],
1278 def int_mips_maddv_w : GCCBuiltin<"__builtin_msa_maddv_w">,
1279 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty],
1281 def int_mips_maddv_d : GCCBuiltin<"__builtin_msa_maddv_d">,
1282 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty],
1285 def int_mips_max_a_b : GCCBuiltin<"__builtin_msa_max_a_b">,
1286 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1287 def int_mips_max_a_h : GCCBuiltin<"__builtin_msa_max_a_h">,
1288 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1289 def int_mips_max_a_w : GCCBuiltin<"__builtin_msa_max_a_w">,
1290 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1291 def int_mips_max_a_d : GCCBuiltin<"__builtin_msa_max_a_d">,
1292 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1294 def int_mips_max_s_b : GCCBuiltin<"__builtin_msa_max_s_b">,
1295 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1296 def int_mips_max_s_h : GCCBuiltin<"__builtin_msa_max_s_h">,
1297 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1298 def int_mips_max_s_w : GCCBuiltin<"__builtin_msa_max_s_w">,
1299 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1300 def int_mips_max_s_d : GCCBuiltin<"__builtin_msa_max_s_d">,
1301 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1303 def int_mips_max_u_b : GCCBuiltin<"__builtin_msa_max_u_b">,
1304 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1305 def int_mips_max_u_h : GCCBuiltin<"__builtin_msa_max_u_h">,
1306 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1307 def int_mips_max_u_w : GCCBuiltin<"__builtin_msa_max_u_w">,
1308 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1309 def int_mips_max_u_d : GCCBuiltin<"__builtin_msa_max_u_d">,
1310 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1312 def int_mips_maxi_s_b : GCCBuiltin<"__builtin_msa_maxi_s_b">,
1313 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
1314 def int_mips_maxi_s_h : GCCBuiltin<"__builtin_msa_maxi_s_h">,
1315 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>;
1316 def int_mips_maxi_s_w : GCCBuiltin<"__builtin_msa_maxi_s_w">,
1317 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>;
1318 def int_mips_maxi_s_d : GCCBuiltin<"__builtin_msa_maxi_s_d">,
1319 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>;
1321 def int_mips_maxi_u_b : GCCBuiltin<"__builtin_msa_maxi_u_b">,
1322 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
1323 def int_mips_maxi_u_h : GCCBuiltin<"__builtin_msa_maxi_u_h">,
1324 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>;
1325 def int_mips_maxi_u_w : GCCBuiltin<"__builtin_msa_maxi_u_w">,
1326 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>;
1327 def int_mips_maxi_u_d : GCCBuiltin<"__builtin_msa_maxi_u_d">,
1328 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>;
1330 def int_mips_min_a_b : GCCBuiltin<"__builtin_msa_min_a_b">,
1331 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1332 def int_mips_min_a_h : GCCBuiltin<"__builtin_msa_min_a_h">,
1333 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1334 def int_mips_min_a_w : GCCBuiltin<"__builtin_msa_min_a_w">,
1335 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1336 def int_mips_min_a_d : GCCBuiltin<"__builtin_msa_min_a_d">,
1337 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1339 def int_mips_min_s_b : GCCBuiltin<"__builtin_msa_min_s_b">,
1340 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1341 def int_mips_min_s_h : GCCBuiltin<"__builtin_msa_min_s_h">,
1342 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1343 def int_mips_min_s_w : GCCBuiltin<"__builtin_msa_min_s_w">,
1344 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1345 def int_mips_min_s_d : GCCBuiltin<"__builtin_msa_min_s_d">,
1346 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1348 def int_mips_min_u_b : GCCBuiltin<"__builtin_msa_min_u_b">,
1349 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1350 def int_mips_min_u_h : GCCBuiltin<"__builtin_msa_min_u_h">,
1351 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1352 def int_mips_min_u_w : GCCBuiltin<"__builtin_msa_min_u_w">,
1353 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1354 def int_mips_min_u_d : GCCBuiltin<"__builtin_msa_min_u_d">,
1355 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1357 def int_mips_mini_s_b : GCCBuiltin<"__builtin_msa_mini_s_b">,
1358 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
1359 def int_mips_mini_s_h : GCCBuiltin<"__builtin_msa_mini_s_h">,
1360 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>;
1361 def int_mips_mini_s_w : GCCBuiltin<"__builtin_msa_mini_s_w">,
1362 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>;
1363 def int_mips_mini_s_d : GCCBuiltin<"__builtin_msa_mini_s_d">,
1364 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>;
1366 def int_mips_mini_u_b : GCCBuiltin<"__builtin_msa_mini_u_b">,
1367 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
1368 def int_mips_mini_u_h : GCCBuiltin<"__builtin_msa_mini_u_h">,
1369 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>;
1370 def int_mips_mini_u_w : GCCBuiltin<"__builtin_msa_mini_u_w">,
1371 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>;
1372 def int_mips_mini_u_d : GCCBuiltin<"__builtin_msa_mini_u_d">,
1373 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>;
1375 def int_mips_mod_s_b : GCCBuiltin<"__builtin_msa_mod_s_b">,
1376 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1377 def int_mips_mod_s_h : GCCBuiltin<"__builtin_msa_mod_s_h">,
1378 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1379 def int_mips_mod_s_w : GCCBuiltin<"__builtin_msa_mod_s_w">,
1380 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1381 def int_mips_mod_s_d : GCCBuiltin<"__builtin_msa_mod_s_d">,
1382 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1384 def int_mips_mod_u_b : GCCBuiltin<"__builtin_msa_mod_u_b">,
1385 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1386 def int_mips_mod_u_h : GCCBuiltin<"__builtin_msa_mod_u_h">,
1387 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1388 def int_mips_mod_u_w : GCCBuiltin<"__builtin_msa_mod_u_w">,
1389 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1390 def int_mips_mod_u_d : GCCBuiltin<"__builtin_msa_mod_u_d">,
1391 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1393 def int_mips_move_v : GCCBuiltin<"__builtin_msa_move_v">,
1394 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty], [IntrNoMem]>;
1396 def int_mips_msub_q_h : GCCBuiltin<"__builtin_msa_msub_q_h">,
1397 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty],
1399 def int_mips_msub_q_w : GCCBuiltin<"__builtin_msa_msub_q_w">,
1400 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty],
1403 def int_mips_msubr_q_h : GCCBuiltin<"__builtin_msa_msubr_q_h">,
1404 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty],
1406 def int_mips_msubr_q_w : GCCBuiltin<"__builtin_msa_msubr_q_w">,
1407 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty],
1410 def int_mips_msubv_b : GCCBuiltin<"__builtin_msa_msubv_b">,
1411 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty],
1413 def int_mips_msubv_h : GCCBuiltin<"__builtin_msa_msubv_h">,
1414 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty],
1416 def int_mips_msubv_w : GCCBuiltin<"__builtin_msa_msubv_w">,
1417 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty],
1419 def int_mips_msubv_d : GCCBuiltin<"__builtin_msa_msubv_d">,
1420 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty, llvm_v2i64_ty],
1423 def int_mips_mul_q_h : GCCBuiltin<"__builtin_msa_mul_q_h">,
1424 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1425 def int_mips_mul_q_w : GCCBuiltin<"__builtin_msa_mul_q_w">,
1426 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1428 def int_mips_mulr_q_h : GCCBuiltin<"__builtin_msa_mulr_q_h">,
1429 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1430 def int_mips_mulr_q_w : GCCBuiltin<"__builtin_msa_mulr_q_w">,
1431 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1433 def int_mips_mulv_b : GCCBuiltin<"__builtin_msa_mulv_b">,
1434 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1435 def int_mips_mulv_h : GCCBuiltin<"__builtin_msa_mulv_h">,
1436 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1437 def int_mips_mulv_w : GCCBuiltin<"__builtin_msa_mulv_w">,
1438 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1439 def int_mips_mulv_d : GCCBuiltin<"__builtin_msa_mulv_d">,
1440 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1442 def int_mips_nloc_b : GCCBuiltin<"__builtin_msa_nloc_b">,
1443 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty], [IntrNoMem]>;
1444 def int_mips_nloc_h : GCCBuiltin<"__builtin_msa_nloc_h">,
1445 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty], [IntrNoMem]>;
1446 def int_mips_nloc_w : GCCBuiltin<"__builtin_msa_nloc_w">,
1447 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty], [IntrNoMem]>;
1448 def int_mips_nloc_d : GCCBuiltin<"__builtin_msa_nloc_d">,
1449 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty], [IntrNoMem]>;
1451 def int_mips_nlzc_b : GCCBuiltin<"__builtin_msa_nlzc_b">,
1452 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty], [IntrNoMem]>;
1453 def int_mips_nlzc_h : GCCBuiltin<"__builtin_msa_nlzc_h">,
1454 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty], [IntrNoMem]>;
1455 def int_mips_nlzc_w : GCCBuiltin<"__builtin_msa_nlzc_w">,
1456 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty], [IntrNoMem]>;
1457 def int_mips_nlzc_d : GCCBuiltin<"__builtin_msa_nlzc_d">,
1458 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty], [IntrNoMem]>;
1460 def int_mips_nor_v : GCCBuiltin<"__builtin_msa_nor_v">,
1461 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1463 def int_mips_nori_b : GCCBuiltin<"__builtin_msa_nori_b">,
1464 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
1466 def int_mips_or_v : GCCBuiltin<"__builtin_msa_or_v">,
1467 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1469 def int_mips_ori_b : GCCBuiltin<"__builtin_msa_ori_b">,
1470 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
1472 def int_mips_pckev_b : GCCBuiltin<"__builtin_msa_pckev_b">,
1473 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1474 def int_mips_pckev_h : GCCBuiltin<"__builtin_msa_pckev_h">,
1475 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1476 def int_mips_pckev_w : GCCBuiltin<"__builtin_msa_pckev_w">,
1477 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1478 def int_mips_pckev_d : GCCBuiltin<"__builtin_msa_pckev_d">,
1479 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1481 def int_mips_pckod_b : GCCBuiltin<"__builtin_msa_pckod_b">,
1482 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1483 def int_mips_pckod_h : GCCBuiltin<"__builtin_msa_pckod_h">,
1484 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1485 def int_mips_pckod_w : GCCBuiltin<"__builtin_msa_pckod_w">,
1486 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1487 def int_mips_pckod_d : GCCBuiltin<"__builtin_msa_pckod_d">,
1488 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1490 def int_mips_pcnt_b : GCCBuiltin<"__builtin_msa_pcnt_b">,
1491 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty], [IntrNoMem]>;
1492 def int_mips_pcnt_h : GCCBuiltin<"__builtin_msa_pcnt_h">,
1493 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty], [IntrNoMem]>;
1494 def int_mips_pcnt_w : GCCBuiltin<"__builtin_msa_pcnt_w">,
1495 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty], [IntrNoMem]>;
1496 def int_mips_pcnt_d : GCCBuiltin<"__builtin_msa_pcnt_d">,
1497 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty], [IntrNoMem]>;
1499 def int_mips_sat_s_b : GCCBuiltin<"__builtin_msa_sat_s_b">,
1500 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
1501 def int_mips_sat_s_h : GCCBuiltin<"__builtin_msa_sat_s_h">,
1502 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>;
1503 def int_mips_sat_s_w : GCCBuiltin<"__builtin_msa_sat_s_w">,
1504 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>;
1505 def int_mips_sat_s_d : GCCBuiltin<"__builtin_msa_sat_s_d">,
1506 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>;
1508 def int_mips_sat_u_b : GCCBuiltin<"__builtin_msa_sat_u_b">,
1509 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
1510 def int_mips_sat_u_h : GCCBuiltin<"__builtin_msa_sat_u_h">,
1511 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>;
1512 def int_mips_sat_u_w : GCCBuiltin<"__builtin_msa_sat_u_w">,
1513 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>;
1514 def int_mips_sat_u_d : GCCBuiltin<"__builtin_msa_sat_u_d">,
1515 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>;
1517 def int_mips_shf_b : GCCBuiltin<"__builtin_msa_shf_b">,
1518 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
1519 def int_mips_shf_h : GCCBuiltin<"__builtin_msa_shf_h">,
1520 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>;
1521 def int_mips_shf_w : GCCBuiltin<"__builtin_msa_shf_w">,
1522 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>;
1524 def int_mips_sld_b : GCCBuiltin<"__builtin_msa_sld_b">,
1525 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1526 def int_mips_sld_h : GCCBuiltin<"__builtin_msa_sld_h">,
1527 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1528 def int_mips_sld_w : GCCBuiltin<"__builtin_msa_sld_w">,
1529 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1530 def int_mips_sld_d : GCCBuiltin<"__builtin_msa_sld_d">,
1531 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1533 def int_mips_sldi_b : GCCBuiltin<"__builtin_msa_sldi_b">,
1534 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
1535 def int_mips_sldi_h : GCCBuiltin<"__builtin_msa_sldi_h">,
1536 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>;
1537 def int_mips_sldi_w : GCCBuiltin<"__builtin_msa_sldi_w">,
1538 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>;
1539 def int_mips_sldi_d : GCCBuiltin<"__builtin_msa_sldi_d">,
1540 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>;
1542 def int_mips_sll_b : GCCBuiltin<"__builtin_msa_sll_b">,
1543 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1544 def int_mips_sll_h : GCCBuiltin<"__builtin_msa_sll_h">,
1545 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1546 def int_mips_sll_w : GCCBuiltin<"__builtin_msa_sll_w">,
1547 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1548 def int_mips_sll_d : GCCBuiltin<"__builtin_msa_sll_d">,
1549 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1551 def int_mips_slli_b : GCCBuiltin<"__builtin_msa_slli_b">,
1552 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
1553 def int_mips_slli_h : GCCBuiltin<"__builtin_msa_slli_h">,
1554 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>;
1555 def int_mips_slli_w : GCCBuiltin<"__builtin_msa_slli_w">,
1556 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>;
1557 def int_mips_slli_d : GCCBuiltin<"__builtin_msa_slli_d">,
1558 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>;
1560 def int_mips_splat_b : GCCBuiltin<"__builtin_msa_splat_b">,
1561 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
1562 def int_mips_splat_h : GCCBuiltin<"__builtin_msa_splat_h">,
1563 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>;
1564 def int_mips_splat_w : GCCBuiltin<"__builtin_msa_splat_w">,
1565 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>;
1566 def int_mips_splat_d : GCCBuiltin<"__builtin_msa_splat_d">,
1567 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>;
1569 def int_mips_splati_b : GCCBuiltin<"__builtin_msa_splati_b">,
1570 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
1571 def int_mips_splati_h : GCCBuiltin<"__builtin_msa_splati_h">,
1572 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>;
1573 def int_mips_splati_w : GCCBuiltin<"__builtin_msa_splati_w">,
1574 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>;
1575 def int_mips_splati_d : GCCBuiltin<"__builtin_msa_splati_d">,
1576 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>;
1578 def int_mips_sra_b : GCCBuiltin<"__builtin_msa_sra_b">,
1579 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1580 def int_mips_sra_h : GCCBuiltin<"__builtin_msa_sra_h">,
1581 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1582 def int_mips_sra_w : GCCBuiltin<"__builtin_msa_sra_w">,
1583 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1584 def int_mips_sra_d : GCCBuiltin<"__builtin_msa_sra_d">,
1585 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1587 def int_mips_srai_b : GCCBuiltin<"__builtin_msa_srai_b">,
1588 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
1589 def int_mips_srai_h : GCCBuiltin<"__builtin_msa_srai_h">,
1590 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>;
1591 def int_mips_srai_w : GCCBuiltin<"__builtin_msa_srai_w">,
1592 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>;
1593 def int_mips_srai_d : GCCBuiltin<"__builtin_msa_srai_d">,
1594 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>;
1596 def int_mips_srar_b : GCCBuiltin<"__builtin_msa_srar_b">,
1597 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1598 def int_mips_srar_h : GCCBuiltin<"__builtin_msa_srar_h">,
1599 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1600 def int_mips_srar_w : GCCBuiltin<"__builtin_msa_srar_w">,
1601 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1602 def int_mips_srar_d : GCCBuiltin<"__builtin_msa_srar_d">,
1603 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1605 def int_mips_srari_b : GCCBuiltin<"__builtin_msa_srari_b">,
1606 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
1607 def int_mips_srari_h : GCCBuiltin<"__builtin_msa_srari_h">,
1608 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>;
1609 def int_mips_srari_w : GCCBuiltin<"__builtin_msa_srari_w">,
1610 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>;
1611 def int_mips_srari_d : GCCBuiltin<"__builtin_msa_srari_d">,
1612 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>;
1614 def int_mips_srl_b : GCCBuiltin<"__builtin_msa_srl_b">,
1615 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1616 def int_mips_srl_h : GCCBuiltin<"__builtin_msa_srl_h">,
1617 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1618 def int_mips_srl_w : GCCBuiltin<"__builtin_msa_srl_w">,
1619 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1620 def int_mips_srl_d : GCCBuiltin<"__builtin_msa_srl_d">,
1621 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1623 def int_mips_srli_b : GCCBuiltin<"__builtin_msa_srli_b">,
1624 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
1625 def int_mips_srli_h : GCCBuiltin<"__builtin_msa_srli_h">,
1626 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>;
1627 def int_mips_srli_w : GCCBuiltin<"__builtin_msa_srli_w">,
1628 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>;
1629 def int_mips_srli_d : GCCBuiltin<"__builtin_msa_srli_d">,
1630 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>;
1632 def int_mips_srlr_b : GCCBuiltin<"__builtin_msa_srlr_b">,
1633 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1634 def int_mips_srlr_h : GCCBuiltin<"__builtin_msa_srlr_h">,
1635 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1636 def int_mips_srlr_w : GCCBuiltin<"__builtin_msa_srlr_w">,
1637 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1638 def int_mips_srlr_d : GCCBuiltin<"__builtin_msa_srlr_d">,
1639 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1641 def int_mips_srlri_b : GCCBuiltin<"__builtin_msa_srlri_b">,
1642 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
1643 def int_mips_srlri_h : GCCBuiltin<"__builtin_msa_srlri_h">,
1644 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>;
1645 def int_mips_srlri_w : GCCBuiltin<"__builtin_msa_srlri_w">,
1646 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>;
1647 def int_mips_srlri_d : GCCBuiltin<"__builtin_msa_srlri_d">,
1648 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>;
1650 def int_mips_st_b : GCCBuiltin<"__builtin_msa_st_b">,
1651 Intrinsic<[], [llvm_v16i8_ty, llvm_ptr_ty, llvm_i32_ty],
1652 [IntrReadWriteArgMem]>;
1653 def int_mips_st_h : GCCBuiltin<"__builtin_msa_st_h">,
1654 Intrinsic<[], [llvm_v8i16_ty, llvm_ptr_ty, llvm_i32_ty],
1655 [IntrReadWriteArgMem]>;
1656 def int_mips_st_w : GCCBuiltin<"__builtin_msa_st_w">,
1657 Intrinsic<[], [llvm_v4i32_ty, llvm_ptr_ty, llvm_i32_ty],
1658 [IntrReadWriteArgMem]>;
1659 def int_mips_st_d : GCCBuiltin<"__builtin_msa_st_d">,
1660 Intrinsic<[], [llvm_v2i64_ty, llvm_ptr_ty, llvm_i32_ty],
1661 [IntrReadWriteArgMem]>;
1663 def int_mips_stx_b : GCCBuiltin<"__builtin_msa_stx_b">,
1664 Intrinsic<[], [llvm_v16i8_ty, llvm_ptr_ty, llvm_i32_ty],
1665 [IntrReadWriteArgMem]>;
1666 def int_mips_stx_h : GCCBuiltin<"__builtin_msa_stx_h">,
1667 Intrinsic<[], [llvm_v8i16_ty, llvm_ptr_ty, llvm_i32_ty],
1668 [IntrReadWriteArgMem]>;
1669 def int_mips_stx_w : GCCBuiltin<"__builtin_msa_stx_w">,
1670 Intrinsic<[], [llvm_v4i32_ty, llvm_ptr_ty, llvm_i32_ty],
1671 [IntrReadWriteArgMem]>;
1672 def int_mips_stx_d : GCCBuiltin<"__builtin_msa_stx_d">,
1673 Intrinsic<[], [llvm_v2i64_ty, llvm_ptr_ty, llvm_i32_ty],
1674 [IntrReadWriteArgMem]>;
1676 def int_mips_subs_s_b : GCCBuiltin<"__builtin_msa_subs_s_b">,
1677 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1678 def int_mips_subs_s_h : GCCBuiltin<"__builtin_msa_subs_s_h">,
1679 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1680 def int_mips_subs_s_w : GCCBuiltin<"__builtin_msa_subs_s_w">,
1681 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1682 def int_mips_subs_s_d : GCCBuiltin<"__builtin_msa_subs_s_d">,
1683 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1685 def int_mips_subs_u_b : GCCBuiltin<"__builtin_msa_subs_u_b">,
1686 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1687 def int_mips_subs_u_h : GCCBuiltin<"__builtin_msa_subs_u_h">,
1688 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1689 def int_mips_subs_u_w : GCCBuiltin<"__builtin_msa_subs_u_w">,
1690 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1691 def int_mips_subs_u_d : GCCBuiltin<"__builtin_msa_subs_u_d">,
1692 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1694 def int_mips_subsus_u_b : GCCBuiltin<"__builtin_msa_subsus_u_b">,
1695 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1696 def int_mips_subsus_u_h : GCCBuiltin<"__builtin_msa_subsus_u_h">,
1697 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1698 def int_mips_subsus_u_w : GCCBuiltin<"__builtin_msa_subsus_u_w">,
1699 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1700 def int_mips_subsus_u_d : GCCBuiltin<"__builtin_msa_subsus_u_d">,
1701 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1703 def int_mips_subsuu_s_b : GCCBuiltin<"__builtin_msa_subsuu_s_b">,
1704 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1705 def int_mips_subsuu_s_h : GCCBuiltin<"__builtin_msa_subsuu_s_h">,
1706 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1707 def int_mips_subsuu_s_w : GCCBuiltin<"__builtin_msa_subsuu_s_w">,
1708 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1709 def int_mips_subsuu_s_d : GCCBuiltin<"__builtin_msa_subsuu_s_d">,
1710 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1712 def int_mips_subv_b : GCCBuiltin<"__builtin_msa_subv_b">,
1713 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1714 def int_mips_subv_h : GCCBuiltin<"__builtin_msa_subv_h">,
1715 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1716 def int_mips_subv_w : GCCBuiltin<"__builtin_msa_subv_w">,
1717 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1718 def int_mips_subv_d : GCCBuiltin<"__builtin_msa_subv_d">,
1719 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1721 def int_mips_subvi_b : GCCBuiltin<"__builtin_msa_subvi_b">,
1722 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
1723 def int_mips_subvi_h : GCCBuiltin<"__builtin_msa_subvi_h">,
1724 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_i32_ty], [IntrNoMem]>;
1725 def int_mips_subvi_w : GCCBuiltin<"__builtin_msa_subvi_w">,
1726 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_i32_ty], [IntrNoMem]>;
1727 def int_mips_subvi_d : GCCBuiltin<"__builtin_msa_subvi_d">,
1728 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_i32_ty], [IntrNoMem]>;
1730 def int_mips_vshf_b : GCCBuiltin<"__builtin_msa_vshf_b">,
1731 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1732 def int_mips_vshf_h : GCCBuiltin<"__builtin_msa_vshf_h">,
1733 Intrinsic<[llvm_v8i16_ty], [llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
1734 def int_mips_vshf_w : GCCBuiltin<"__builtin_msa_vshf_w">,
1735 Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
1736 def int_mips_vshf_d : GCCBuiltin<"__builtin_msa_vshf_d">,
1737 Intrinsic<[llvm_v2i64_ty], [llvm_v2i64_ty, llvm_v2i64_ty], [IntrNoMem]>;
1739 def int_mips_xor_v : GCCBuiltin<"__builtin_msa_xor_v">,
1740 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_v16i8_ty], [IntrNoMem]>;
1742 def int_mips_xori_b : GCCBuiltin<"__builtin_msa_xori_b">,
1743 Intrinsic<[llvm_v16i8_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;