1 ; RUN: not --crash llc -march=mips -mattr=+msa,+fp64,+mips32r2 -relocation-model=pic < %s 2> %t1
2 ; RUN: FileCheck %s < %t1
4 ; Test that the immediate intrinsics with out of range values trigger an error.
7 define void @binsli_b(ptr %ptr) {
9 %a = load <16 x i8>, ptr %ptr, align 16
10 %r = call <16 x i8> @llvm.mips.binsli.b(<16 x i8> %a, <16 x i8> %a, i32 65)
11 store <16 x i8> %r, ptr %ptr, align 16
14 ; CHECK: LLVM ERROR: Immediate out of range
16 define void @binsri_b(ptr %ptr) {
18 %a = load <16 x i8>, ptr %ptr, align 16
19 %r = call <16 x i8> @llvm.mips.binsri.b(<16 x i8> %a, <16 x i8> %a, i32 5)
20 store <16 x i8> %r, ptr %ptr, align 16
24 define void @bmnzi_b(ptr %ptr) {
26 %a = load <16 x i8>, ptr %ptr, align 16
27 %r = call <16 x i8> @llvm.mips.bmnzi.b(<16 x i8> %a, <16 x i8> %a, i32 63)
28 store <16 x i8> %r, ptr %ptr, align 16
32 define void @bmzi_b(ptr %ptr) {
34 %a = load <16 x i8>, ptr %ptr, align 16
35 %r = call <16 x i8> @llvm.mips.bmzi.b(<16 x i8> %a, <16 x i8> %a, i32 63)
36 store <16 x i8> %r, ptr %ptr, align 16
40 define void @bnegi_b(ptr %ptr) {
42 %a = load <16 x i8>, ptr %ptr, align 16
43 %r = call <16 x i8> @llvm.mips.bnegi.b(<16 x i8> %a, i32 6)
44 store <16 x i8> %r, ptr %ptr, align 16
48 define void @bseli_b(ptr %ptr) {
50 %a = load <16 x i8>, ptr %ptr, align 16
51 %r = call <16 x i8> @llvm.mips.bseli.b(<16 x i8> %a, <16 x i8> %a, i32 63)
52 store <16 x i8> %r, ptr %ptr, align 16
56 define void @bseti_b(ptr %ptr) {
58 %a = load <16 x i8>, ptr %ptr, align 16
59 %r = call <16 x i8> @llvm.mips.bseti.b(<16 x i8> %a, i32 9)
60 store <16 x i8> %r, ptr %ptr, align 16
64 define void @clei_s_b(ptr %ptr) {
66 %a = load <16 x i8>, ptr %ptr, align 16
67 %r = call <16 x i8> @llvm.mips.clei.s.b(<16 x i8> %a, i32 152)
68 store <16 x i8> %r, ptr %ptr, align 16
72 define void @clei_u_b(ptr %ptr) {
74 %a = load <16 x i8>, ptr %ptr, align 16
75 %r = call <16 x i8> @llvm.mips.clei.u.b(<16 x i8> %a, i32 163)
76 store <16 x i8> %r, ptr %ptr, align 16
80 define void @clti_s_b(ptr %ptr) {
82 %a = load <16 x i8>, ptr %ptr, align 16
83 %r = call <16 x i8> @llvm.mips.clti.s.b(<16 x i8> %a, i32 129)
84 store <16 x i8> %r, ptr %ptr, align 16
88 define void @clti_u_b(ptr %ptr) {
90 %a = load <16 x i8>, ptr %ptr, align 16
91 %r = call <16 x i8> @llvm.mips.clti.u.b(<16 x i8> %a, i32 163)
92 store <16 x i8> %r, ptr %ptr, align 16
96 define void @ldi_b(ptr %ptr) {
98 %r = call <16 x i8> @llvm.mips.ldi.b(i32 1025)
99 store <16 x i8> %r, ptr %ptr, align 16
103 define void @maxi_s_b(ptr %ptr) {
105 %a = load <16 x i8>, ptr %ptr, align 16
106 %r = call <16 x i8> @llvm.mips.maxi.s.b(<16 x i8> %a, i32 163)
107 store <16 x i8> %r, ptr %ptr, align 16
111 define void @maxi_u_b(ptr %ptr) {
113 %a = load <16 x i8>, ptr %ptr, align 16
114 %r = call <16 x i8> @llvm.mips.maxi.u.b(<16 x i8> %a, i32 163)
115 store <16 x i8> %r, ptr %ptr, align 16
119 define void @mini_s_b(ptr %ptr) {
121 %a = load <16 x i8>, ptr %ptr, align 16
122 %r = call <16 x i8> @llvm.mips.mini.s.b(<16 x i8> %a, i32 163)
123 store <16 x i8> %r, ptr %ptr, align 16
127 define void @mini_u_b(ptr %ptr) {
129 %a = load <16 x i8>, ptr %ptr, align 16
130 %r = call <16 x i8> @llvm.mips.mini.u.b(<16 x i8> %a, i32 163)
131 store <16 x i8> %r, ptr %ptr, align 16
135 define void @nori_b(ptr %ptr) {
137 %a = load <16 x i8>, ptr %ptr, align 16
138 %r = call <16 x i8> @llvm.mips.nori.b(<16 x i8> %a, i32 63)
139 store <16 x i8> %r, ptr %ptr, align 16
143 define void @ori_b(ptr %ptr) {
145 %a = load <16 x i8>, ptr %ptr, align 16
146 %r = call <16 x i8> @llvm.mips.ori.b(<16 x i8> %a, i32 63)
147 store <16 x i8> %r, ptr %ptr, align 16
151 define void @sldi_b(ptr %ptr) {
153 %a = load <16 x i8>, ptr %ptr, align 16
154 %r = call <16 x i8> @llvm.mips.sldi.b(<16 x i8> %a, <16 x i8> %a, i32 7)
155 store <16 x i8> %r, ptr %ptr, align 16
159 define void @slli_b(ptr %ptr) {
161 %a = load <16 x i8>, ptr %ptr, align 16
162 %r = call <16 x i8> @llvm.mips.slli.b(<16 x i8> %a, i32 65)
163 store <16 x i8> %r, ptr %ptr, align 16
167 define void @splati_b(ptr %ptr) {
169 %a = load <16 x i8>, ptr %ptr, align 16
170 %r = call <16 x i8> @llvm.mips.splati.b(<16 x i8> %a, i32 65)
171 store <16 x i8> %r, ptr %ptr, align 16
175 define void @srai_b(ptr %ptr) {
177 %a = load <16 x i8>, ptr %ptr, align 16
178 %r = call <16 x i8> @llvm.mips.srai.b(<16 x i8> %a, i32 65)
179 store <16 x i8> %r, ptr %ptr, align 16
183 define void @srari_b(ptr %ptr) {
185 %a = load <16 x i8>, ptr %ptr, align 16
186 %r = call <16 x i8> @llvm.mips.srari.b(<16 x i8> %a, i32 65)
187 store <16 x i8> %r, ptr %ptr, align 16
191 define void @srli_b(ptr %ptr) {
193 %a = load <16 x i8>, ptr %ptr, align 16
194 %r = call <16 x i8> @llvm.mips.srli.b(<16 x i8> %a, i32 65)
195 store <16 x i8> %r, ptr %ptr, align 16
199 define void @srlri_b(ptr %ptr) {
201 %a = load <16 x i8>, ptr %ptr, align 16
202 %r = call <16 x i8> @llvm.mips.srlri.b(<16 x i8> %a, i32 65)
203 store <16 x i8> %r, ptr %ptr, align 16
207 define void @addvi_w(ptr %ptr) {
209 %a = load <4 x i32>, ptr %ptr, align 16
210 %r = call <4 x i32> @llvm.mips.addvi.w(<4 x i32> %a, i32 63)
211 store <4 x i32> %r, ptr %ptr, align 16
215 define void @bclri_w(ptr %ptr) {
217 %a = load <4 x i32>, ptr %ptr, align 16
218 %r = call <4 x i32> @llvm.mips.bclri.w(<4 x i32> %a, i32 63)
219 store <4 x i32> %r, ptr %ptr, align 16
223 define void @binsli_w(ptr %ptr) {
225 %a = load <4 x i32>, ptr %ptr, align 16
226 %r = call <4 x i32> @llvm.mips.binsli.w(<4 x i32> %a, <4 x i32> %a, i32 63)
227 store <4 x i32> %r, ptr %ptr, align 16
231 define void @binsri_w(ptr %ptr) {
233 %a = load <4 x i32>, ptr %ptr, align 16
234 %r = call <4 x i32> @llvm.mips.binsri.w(<4 x i32> %a, <4 x i32> %a, i32 63)
235 store <4 x i32> %r, ptr %ptr, align 16
239 define void @bnegi_w(ptr %ptr) {
241 %a = load <4 x i32>, ptr %ptr, align 16
242 %r = call <4 x i32> @llvm.mips.bnegi.w(<4 x i32> %a, i32 63)
243 store <4 x i32> %r, ptr %ptr, align 16
247 define void @bseti_w(ptr %ptr) {
249 %a = load <4 x i32>, ptr %ptr, align 16
250 %r = call <4 x i32> @llvm.mips.bseti.w(<4 x i32> %a, i32 63)
251 store <4 x i32> %r, ptr %ptr, align 16
255 define void @clei_s_w(ptr %ptr) {
257 %a = load <4 x i32>, ptr %ptr, align 16
258 %r = call <4 x i32> @llvm.mips.clei.s.w(<4 x i32> %a, i32 63)
259 store <4 x i32> %r, ptr %ptr, align 16
263 define void @clei_u_w(ptr %ptr) {
265 %a = load <4 x i32>, ptr %ptr, align 16
266 %r = call <4 x i32> @llvm.mips.clei.u.w(<4 x i32> %a, i32 63)
267 store <4 x i32> %r, ptr %ptr, align 16
271 define void @clti_s_w(ptr %ptr) {
273 %a = load <4 x i32>, ptr %ptr, align 16
274 %r = call <4 x i32> @llvm.mips.clti.s.w(<4 x i32> %a, i32 63)
275 store <4 x i32> %r, ptr %ptr, align 16
279 define void @clti_u_w(ptr %ptr) {
281 %a = load <4 x i32>, ptr %ptr, align 16
282 %r = call <4 x i32> @llvm.mips.clti.u.w(<4 x i32> %a, i32 63)
283 store <4 x i32> %r, ptr %ptr, align 16
287 define void @maxi_s_w(ptr %ptr) {
289 %a = load <4 x i32>, ptr %ptr, align 16
290 %r = call <4 x i32> @llvm.mips.maxi.s.w(<4 x i32> %a, i32 63)
291 store <4 x i32> %r, ptr %ptr, align 16
295 define void @maxi_u_w(ptr %ptr) {
297 %a = load <4 x i32>, ptr %ptr, align 16
298 %r = call <4 x i32> @llvm.mips.maxi.u.w(<4 x i32> %a, i32 63)
299 store <4 x i32> %r, ptr %ptr, align 16
303 define void @mini_s_w(ptr %ptr) {
305 %a = load <4 x i32>, ptr %ptr, align 16
306 %r = call <4 x i32> @llvm.mips.mini.s.w(<4 x i32> %a, i32 63)
307 store <4 x i32> %r, ptr %ptr, align 16
311 define void @mini_u_w(ptr %ptr) {
313 %a = load <4 x i32>, ptr %ptr, align 16
314 %r = call <4 x i32> @llvm.mips.mini.u.w(<4 x i32> %a, i32 63)
315 store <4 x i32> %r, ptr %ptr, align 16
319 define void @ldi_w(ptr %ptr) {
321 %r = call <4 x i32> @llvm.mips.ldi.w(i32 1024)
322 store <4 x i32> %r, ptr %ptr, align 16
326 define void @sldi_w(ptr %ptr) {
328 %a = load <4 x i32>, ptr %ptr, align 16
329 %r = call <4 x i32> @llvm.mips.sldi.w(<4 x i32> %a, <4 x i32> %a, i32 63)
330 store <4 x i32> %r, ptr %ptr, align 16
334 define void @slli_w(ptr %ptr) {
336 %a = load <4 x i32>, ptr %ptr, align 16
337 %r = call <4 x i32> @llvm.mips.slli.w(<4 x i32> %a, i32 65)
338 store <4 x i32> %r, ptr %ptr, align 16
342 define void @splati_w(ptr %ptr) {
344 %a = load <4 x i32>, ptr %ptr, align 16
345 %r = call <4 x i32> @llvm.mips.splati.w(<4 x i32> %a, i32 65)
346 store <4 x i32> %r, ptr %ptr, align 16
350 define void @srai_w(ptr %ptr) {
352 %a = load <4 x i32>, ptr %ptr, align 16
353 %r = call <4 x i32> @llvm.mips.srai.w(<4 x i32> %a, i32 65)
354 store <4 x i32> %r, ptr %ptr, align 16
358 define void @srari_w(ptr %ptr) {
360 %a = load <4 x i32>, ptr %ptr, align 16
361 %r = call <4 x i32> @llvm.mips.srari.w(<4 x i32> %a, i32 65)
362 store <4 x i32> %r, ptr %ptr, align 16
366 define void @srli_w(ptr %ptr) {
368 %a = load <4 x i32>, ptr %ptr, align 16
369 %r = call <4 x i32> @llvm.mips.srli.w(<4 x i32> %a, i32 65)
370 store <4 x i32> %r, ptr %ptr, align 16
374 define void @srlri_w(ptr %ptr) {
376 %a = load <4 x i32>, ptr %ptr, align 16
377 %r = call <4 x i32> @llvm.mips.srlri.w(<4 x i32> %a, i32 65)
378 store <4 x i32> %r, ptr %ptr, align 16
382 define void @addvi_h(ptr %ptr) {
384 %a = load <8 x i16>, ptr %ptr, align 16
385 %r = call <8 x i16> @llvm.mips.addvi.h(<8 x i16> %a, i32 65)
386 store <8 x i16> %r, ptr %ptr, align 16
390 define void @bclri_h(ptr %ptr) {
392 %a = load <8 x i16>, ptr %ptr, align 16
393 %r = call <8 x i16> @llvm.mips.bclri.h(<8 x i16> %a, i32 16)
394 store <8 x i16> %r, ptr %ptr, align 16
398 define void @binsli_h(ptr %ptr) {
400 %a = load <8 x i16>, ptr %ptr, align 16
401 %r = call <8 x i16> @llvm.mips.binsli.h(<8 x i16> %a, <8 x i16> %a, i32 17)
402 store <8 x i16> %r, ptr %ptr, align 16
406 define void @binsri_h(ptr %ptr) {
408 %a = load <8 x i16>, ptr %ptr, align 16
409 %r = call <8 x i16> @llvm.mips.binsri.h(<8 x i16> %a, <8 x i16> %a, i32 19)
410 store <8 x i16> %r, ptr %ptr, align 16
414 define void @bnegi_h(ptr %ptr) {
416 %a = load <8 x i16>, ptr %ptr, align 16
417 %r = call <8 x i16> @llvm.mips.bnegi.h(<8 x i16> %a, i32 19)
418 store <8 x i16> %r, ptr %ptr, align 16
422 define void @bseti_h(ptr %ptr) {
424 %a = load <8 x i16>, ptr %ptr, align 16
425 %r = call <8 x i16> @llvm.mips.bseti.h(<8 x i16> %a, i32 19)
426 store <8 x i16> %r, ptr %ptr, align 16
430 define void @clei_s_h(ptr %ptr) {
432 %a = load <8 x i16>, ptr %ptr, align 16
433 %r = call <8 x i16> @llvm.mips.clei.s.h(<8 x i16> %a, i32 63)
434 store <8 x i16> %r, ptr %ptr, align 16
438 define void @clei_u_h(ptr %ptr) {
440 %a = load <8 x i16>, ptr %ptr, align 16
441 %r = call <8 x i16> @llvm.mips.clei.u.h(<8 x i16> %a, i32 130)
442 store <8 x i16> %r, ptr %ptr, align 16
446 define void @clti_s_h(ptr %ptr) {
448 %a = load <8 x i16>, ptr %ptr, align 16
449 %r = call <8 x i16> @llvm.mips.clti.s.h(<8 x i16> %a, i32 63)
450 store <8 x i16> %r, ptr %ptr, align 16
454 define void @clti_u_h(ptr %ptr) {
456 %a = load <8 x i16>, ptr %ptr, align 16
457 %r = call <8 x i16> @llvm.mips.clti.u.h(<8 x i16> %a, i32 63)
458 store <8 x i16> %r, ptr %ptr, align 16
462 define void @maxi_s_h(ptr %ptr) {
464 %a = load <8 x i16>, ptr %ptr, align 16
465 %r = call <8 x i16> @llvm.mips.maxi.s.h(<8 x i16> %a, i32 63)
466 store <8 x i16> %r, ptr %ptr, align 16
470 define void @maxi_u_h(ptr %ptr) {
472 %a = load <8 x i16>, ptr %ptr, align 16
473 %r = call <8 x i16> @llvm.mips.maxi.u.h(<8 x i16> %a, i32 130)
474 store <8 x i16> %r, ptr %ptr, align 16
478 define void @mini_s_h(ptr %ptr) {
480 %a = load <8 x i16>, ptr %ptr, align 16
481 %r = call <8 x i16> @llvm.mips.mini.s.h(<8 x i16> %a, i32 63)
482 store <8 x i16> %r, ptr %ptr, align 16
486 define void @mini_u_h(ptr %ptr) {
488 %a = load <8 x i16>, ptr %ptr, align 16
489 %r = call <8 x i16> @llvm.mips.mini.u.h(<8 x i16> %a, i32 130)
490 store <8 x i16> %r, ptr %ptr, align 16
494 define void @ldi_h(ptr %ptr) {
496 %r = call <8 x i16> @llvm.mips.ldi.h(i32 1024)
497 store <8 x i16> %r, ptr %ptr, align 16
501 define void @sldi_h(ptr %ptr) {
503 %a = load <8 x i16>, ptr %ptr, align 16
504 %r = call <8 x i16> @llvm.mips.sldi.h(<8 x i16> %a, <8 x i16> %a, i32 65)
505 store <8 x i16> %r, ptr %ptr, align 16
509 define void @slli_h(ptr %ptr) {
511 %a = load <8 x i16>, ptr %ptr, align 16
512 %r = call <8 x i16> @llvm.mips.slli.h(<8 x i16> %a, i32 65)
513 store <8 x i16> %r, ptr %ptr, align 16
517 define void @splati_h(ptr %ptr) {
519 %a = load <8 x i16>, ptr %ptr, align 16
520 %r = call <8 x i16> @llvm.mips.splati.h(<8 x i16> %a, i32 65)
521 store <8 x i16> %r, ptr %ptr, align 16
525 define void @srai_h(ptr %ptr) {
527 %a = load <8 x i16>, ptr %ptr, align 16
528 %r = call <8 x i16> @llvm.mips.srai.h(<8 x i16> %a, i32 65)
529 store <8 x i16> %r, ptr %ptr, align 16
533 define void @srari_h(ptr %ptr) {
535 %a = load <8 x i16>, ptr %ptr, align 16
536 %r = call <8 x i16> @llvm.mips.srari.h(<8 x i16> %a, i32 65)
537 store <8 x i16> %r, ptr %ptr, align 16
541 define void @srli_h(ptr %ptr) {
543 %a = load <8 x i16>, ptr %ptr, align 16
544 %r = call <8 x i16> @llvm.mips.srli.h(<8 x i16> %a, i32 65)
545 store <8 x i16> %r, ptr %ptr, align 16
549 define void @srlri_h(ptr %ptr) {
551 %a = load <8 x i16>, ptr %ptr, align 16
552 %r = call <8 x i16> @llvm.mips.srlri.h(<8 x i16> %a, i32 65)
553 store <8 x i16> %r, ptr %ptr, align 16
557 define i32 @copy_s_b(ptr %ptr) {
559 %a = load <16 x i8>, ptr %ptr, align 16
560 %r = call i32 @llvm.mips.copy.s.b(<16 x i8> %a, i32 17)
565 define i32 @copy_s_h(ptr %ptr) {
567 %a = load <8 x i16>, ptr %ptr, align 16
568 %r = call i32 @llvm.mips.copy.s.h(<8 x i16> %a, i32 9)
573 define i32 @copy_s_w(ptr %ptr) {
575 %a = load <4 x i32>, ptr %ptr, align 16
576 %r = call i32 @llvm.mips.copy.s.w(<4 x i32> %a, i32 5)
581 define i32 @copy_u_b(ptr %ptr) {
583 %a = load <16 x i8>, ptr %ptr, align 16
584 %r = call i32 @llvm.mips.copy.u.b(<16 x i8> %a, i32 16)
589 define i32 @copy_u_h(ptr %ptr) {
591 %a = load <8 x i16>, ptr %ptr, align 16
592 %r = call i32 @llvm.mips.copy.u.h(<8 x i16> %a, i32 9)
597 define i32 @copy_u_w(ptr %ptr) {
599 %a = load <4 x i32>, ptr %ptr, align 16
600 %r = call i32 @llvm.mips.copy.u.w(<4 x i32> %a, i32 5)
604 define i64 @copy_s_d(ptr %ptr) {
605 entry: %a = load <2 x i64>, ptr %ptr, align 16
606 %r = call i64 @llvm.mips.copy.s.d(<2 x i64> %a, i32 3)
610 define i64 @copy_u_d(ptr %ptr) {
611 entry: %a = load <2 x i64>, ptr %ptr, align 16
612 %r = call i64 @llvm.mips.copy.u.d(<2 x i64> %a, i32 3)
616 define void @addvi_d(ptr %ptr) {
618 %a = load <2 x i64>, ptr %ptr, align 16
619 %r = call <2 x i64> @llvm.mips.addvi.d(<2 x i64> %a, i32 65)
620 store <2 x i64> %r, ptr %ptr, align 16
624 define void @bclri_d(ptr %ptr) {
626 %a = load <2 x i64>, ptr %ptr, align 16
627 %r = call <2 x i64> @llvm.mips.bclri.d(<2 x i64> %a, i32 64)
628 store <2 x i64> %r, ptr %ptr, align 16
632 define void @binsli_d(ptr %ptr) {
634 %a = load <2 x i64>, ptr %ptr, align 16
635 %r = call <2 x i64> @llvm.mips.binsli.d(<2 x i64> %a, <2 x i64> %a, i32 65)
636 store <2 x i64> %r, ptr %ptr, align 16
640 define void @binsri_d(ptr %ptr) {
642 %a = load <2 x i64>, ptr %ptr, align 16
643 %r = call <2 x i64> @llvm.mips.binsri.d(<2 x i64> %a, <2 x i64> %a, i32 65)
644 store <2 x i64> %r, ptr %ptr, align 16
648 define void @bnegi_d(ptr %ptr) {
650 %a = load <2 x i64>, ptr %ptr, align 16
651 %r = call <2 x i64> @llvm.mips.bnegi.d(<2 x i64> %a, i32 65)
652 store <2 x i64> %r, ptr %ptr, align 16
656 define void @bseti_d(ptr %ptr) {
658 %a = load <2 x i64>, ptr %ptr, align 16
659 %r = call <2 x i64> @llvm.mips.bseti.d(<2 x i64> %a, i32 65)
660 store <2 x i64> %r, ptr %ptr, align 16
664 define void @clei_s_d(ptr %ptr) {
666 %a = load <2 x i64>, ptr %ptr, align 16
667 %r = call <2 x i64> @llvm.mips.clei.s.d(<2 x i64> %a, i32 63)
668 store <2 x i64> %r, ptr %ptr, align 16
672 define void @clei_u_d(ptr %ptr) {
674 %a = load <2 x i64>, ptr %ptr, align 16
675 %r = call <2 x i64> @llvm.mips.clei.u.d(<2 x i64> %a, i32 63)
676 store <2 x i64> %r, ptr %ptr, align 16
680 define void @clti_s_d(ptr %ptr) {
682 %a = load <2 x i64>, ptr %ptr, align 16
683 %r = call <2 x i64> @llvm.mips.clti.s.d(<2 x i64> %a, i32 63)
684 store <2 x i64> %r, ptr %ptr, align 16
688 define void @clti_u_d(ptr %ptr) {
690 %a = load <2 x i64>, ptr %ptr, align 16
691 %r = call <2 x i64> @llvm.mips.clti.u.d(<2 x i64> %a, i32 63)
692 store <2 x i64> %r, ptr %ptr, align 16
696 define void @ldi_d(ptr %ptr) {
698 %r = call <2 x i64> @llvm.mips.ldi.d(i32 1024)
699 store <2 x i64> %r, ptr %ptr, align 16
703 define void @maxi_s_d(ptr %ptr) {
705 %a = load <2 x i64>, ptr %ptr, align 16
706 %r = call <2 x i64> @llvm.mips.maxi.s.d(<2 x i64> %a, i32 63)
707 store <2 x i64> %r, ptr %ptr, align 16
711 define void @maxi_u_d(ptr %ptr) {
713 %a = load <2 x i64>, ptr %ptr, align 16
714 %r = call <2 x i64> @llvm.mips.maxi.u.d(<2 x i64> %a, i32 63)
715 store <2 x i64> %r, ptr %ptr, align 16
719 define void @mini_s_d(ptr %ptr) {
721 %a = load <2 x i64>, ptr %ptr, align 16
722 %r = call <2 x i64> @llvm.mips.mini.s.d(<2 x i64> %a, i32 63)
723 store <2 x i64> %r, ptr %ptr, align 16
727 define void @mini_u_d(ptr %ptr) {
729 %a = load <2 x i64>, ptr %ptr, align 16
730 %r = call <2 x i64> @llvm.mips.mini.u.d(<2 x i64> %a, i32 63)
731 store <2 x i64> %r, ptr %ptr, align 16
735 define void @sldi_d(ptr %ptr) {
737 %a = load <2 x i64>, ptr %ptr, align 16
738 %r = call <2 x i64> @llvm.mips.sldi.d(<2 x i64> %a, <2 x i64> %a, i32 1)
739 store <2 x i64> %r, ptr %ptr, align 16
743 define void @slli_d(ptr %ptr) {
745 %a = load <2 x i64>, ptr %ptr, align 16
746 %r = call <2 x i64> @llvm.mips.slli.d(<2 x i64> %a, i32 65)
747 store <2 x i64> %r, ptr %ptr, align 16
751 define void @srai_d(ptr %ptr) {
753 %a = load <2 x i64>, ptr %ptr, align 16
754 %r = call <2 x i64> @llvm.mips.srai.d(<2 x i64> %a, i32 65)
755 store <2 x i64> %r, ptr %ptr, align 16
759 define void @srari_d(ptr %ptr) {
761 %a = load <2 x i64>, ptr %ptr, align 16
762 %r = call <2 x i64> @llvm.mips.srari.d(<2 x i64> %a, i32 65)
763 store <2 x i64> %r, ptr %ptr, align 16
767 define void @srli_d(ptr %ptr) {
769 %a = load <2 x i64>, ptr %ptr, align 16
770 %r = call <2 x i64> @llvm.mips.srli.d(<2 x i64> %a, i32 65)
771 store <2 x i64> %r, ptr %ptr, align 16
775 define void @srlri_d(ptr %ptr) {
777 %a = load <2 x i64>, ptr %ptr, align 16
778 %r = call <2 x i64> @llvm.mips.srlri.d(<2 x i64> %a, i32 65)
779 store <2 x i64> %r, ptr %ptr, align 16
784 define void @neg_addvi_b(ptr %ptr) {
786 %a = load <16 x i8>, ptr %ptr, align 16
787 %r = call <16 x i8> @llvm.mips.addvi.b(<16 x i8> %a, i32 -25)
788 store <16 x i8> %r, ptr %ptr, align 16
792 define void @neg_andi_b(ptr %ptr) {
794 %a = load <16 x i8>, ptr %ptr, align 16
795 %r = call <16 x i8> @llvm.mips.andi.b(<16 x i8> %a, i32 -25)
796 store <16 x i8> %r, ptr %ptr, align 16
800 define void @neg_bclri_b(ptr %ptr) {
802 %a = load <16 x i8>, ptr %ptr, align 16
803 %r = call <16 x i8> @llvm.mips.bclri.b(<16 x i8> %a, i32 -3)
804 store <16 x i8> %r, ptr %ptr, align 16
808 define void @neg_binsli_b(ptr %ptr) {
810 %a = load <16 x i8>, ptr %ptr, align 16
811 %r = call <16 x i8> @llvm.mips.binsli.b(<16 x i8> %a, <16 x i8> %a, i32 -3)
812 store <16 x i8> %r, ptr %ptr, align 16
816 define void @neg_binsri_b(ptr %ptr) {
818 %a = load <16 x i8>, ptr %ptr, align 16
819 %r = call <16 x i8> @llvm.mips.binsri.b(<16 x i8> %a, <16 x i8> %a, i32 5)
820 store <16 x i8> %r, ptr %ptr, align 16
824 define void @neg_bmnzi_b(ptr %ptr) {
826 %a = load <16 x i8>, ptr %ptr, align 16
827 %r = call <16 x i8> @llvm.mips.bmnzi.b(<16 x i8> %a, <16 x i8> %a, i32 -25)
828 store <16 x i8> %r, ptr %ptr, align 16
832 define void @neg_bmzi_b(ptr %ptr) {
834 %a = load <16 x i8>, ptr %ptr, align 16
835 %r = call <16 x i8> @llvm.mips.bmzi.b(<16 x i8> %a, <16 x i8> %a, i32 -25)
836 store <16 x i8> %r, ptr %ptr, align 16
840 define void @neg_bnegi_b(ptr %ptr) {
842 %a = load <16 x i8>, ptr %ptr, align 16
843 %r = call <16 x i8> @llvm.mips.bnegi.b(<16 x i8> %a, i32 6)
844 store <16 x i8> %r, ptr %ptr, align 16
848 define void @neg_bseli_b(ptr %ptr) {
850 %a = load <16 x i8>, ptr %ptr, align 16
851 %r = call <16 x i8> @llvm.mips.bseli.b(<16 x i8> %a, <16 x i8> %a, i32 -25)
852 store <16 x i8> %r, ptr %ptr, align 16
856 define void @neg_bseti_b(ptr %ptr) {
858 %a = load <16 x i8>, ptr %ptr, align 16
859 %r = call <16 x i8> @llvm.mips.bseti.b(<16 x i8> %a, i32 -5)
860 store <16 x i8> %r, ptr %ptr, align 16
864 define void @neg_clei_s_b(ptr %ptr) {
866 %a = load <16 x i8>, ptr %ptr, align 16
867 %r = call <16 x i8> @llvm.mips.clei.s.b(<16 x i8> %a, i32 -120)
868 store <16 x i8> %r, ptr %ptr, align 16
872 define void @neg_clei_u_b(ptr %ptr) {
874 %a = load <16 x i8>, ptr %ptr, align 16
875 %r = call <16 x i8> @llvm.mips.clei.u.b(<16 x i8> %a, i32 -25)
876 store <16 x i8> %r, ptr %ptr, align 16
880 define void @neg_clti_s_b(ptr %ptr) {
882 %a = load <16 x i8>, ptr %ptr, align 16
883 %r = call <16 x i8> @llvm.mips.clti.s.b(<16 x i8> %a, i32 -35)
884 store <16 x i8> %r, ptr %ptr, align 16
888 define void @neg_clti_u_b(ptr %ptr) {
890 %a = load <16 x i8>, ptr %ptr, align 16
891 %r = call <16 x i8> @llvm.mips.clti.u.b(<16 x i8> %a, i32 -25)
892 store <16 x i8> %r, ptr %ptr, align 16
896 define void @neg_ldi_b(ptr %ptr) {
898 %r = call <16 x i8> @llvm.mips.ldi.b(i32 -3)
899 store <16 x i8> %r, ptr %ptr, align 16
903 define void @neg_maxi_s_b(ptr %ptr) {
905 %a = load <16 x i8>, ptr %ptr, align 16
906 %r = call <16 x i8> @llvm.mips.maxi.s.b(<16 x i8> %a, i32 2)
907 store <16 x i8> %r, ptr %ptr, align 16
911 define void @neg_maxi_u_b(ptr %ptr) {
913 %a = load <16 x i8>, ptr %ptr, align 16
914 %r = call <16 x i8> @llvm.mips.maxi.u.b(<16 x i8> %a, i32 2)
915 store <16 x i8> %r, ptr %ptr, align 16
919 define void @neg_mini_s_b(ptr %ptr) {
921 %a = load <16 x i8>, ptr %ptr, align 16
922 %r = call <16 x i8> @llvm.mips.mini.s.b(<16 x i8> %a, i32 2)
923 store <16 x i8> %r, ptr %ptr, align 16
927 define void @neg_mini_u_b(ptr %ptr) {
929 %a = load <16 x i8>, ptr %ptr, align 16
930 %r = call <16 x i8> @llvm.mips.mini.u.b(<16 x i8> %a, i32 2)
931 store <16 x i8> %r, ptr %ptr, align 16
935 define void @neg_nori_b(ptr %ptr) {
937 %a = load <16 x i8>, ptr %ptr, align 16
938 %r = call <16 x i8> @llvm.mips.nori.b(<16 x i8> %a, i32 -25)
939 store <16 x i8> %r, ptr %ptr, align 16
943 define void @neg_ori_b(ptr %ptr) {
945 %a = load <16 x i8>, ptr %ptr, align 16
946 %r = call <16 x i8> @llvm.mips.ori.b(<16 x i8> %a, i32 -25)
947 store <16 x i8> %r, ptr %ptr, align 16
951 define void @neg_sldi_b(ptr %ptr) {
953 %a = load <16 x i8>, ptr %ptr, align 16
954 %r = call <16 x i8> @llvm.mips.sldi.b(<16 x i8> %a, <16 x i8> %a, i32 -7)
955 store <16 x i8> %r, ptr %ptr, align 16
959 define void @neg_slli_b(ptr %ptr) {
961 %a = load <16 x i8>, ptr %ptr, align 16
962 %r = call <16 x i8> @llvm.mips.slli.b(<16 x i8> %a, i32 -3)
963 store <16 x i8> %r, ptr %ptr, align 16
967 define void @neg_splati_b(ptr %ptr) {
969 %a = load <16 x i8>, ptr %ptr, align 16
970 %r = call <16 x i8> @llvm.mips.splati.b(<16 x i8> %a, i32 -3)
971 store <16 x i8> %r, ptr %ptr, align 16
975 define void @neg_srai_b(ptr %ptr) {
977 %a = load <16 x i8>, ptr %ptr, align 16
978 %r = call <16 x i8> @llvm.mips.srai.b(<16 x i8> %a, i32 -3)
979 store <16 x i8> %r, ptr %ptr, align 16
983 define void @neg_srari_b(ptr %ptr) {
985 %a = load <16 x i8>, ptr %ptr, align 16
986 %r = call <16 x i8> @llvm.mips.srari.b(<16 x i8> %a, i32 -3)
987 store <16 x i8> %r, ptr %ptr, align 16
991 define void @neg_srli_b(ptr %ptr) {
993 %a = load <16 x i8>, ptr %ptr, align 16
994 %r = call <16 x i8> @llvm.mips.srli.b(<16 x i8> %a, i32 -3)
995 store <16 x i8> %r, ptr %ptr, align 16
999 define void @neg_srlri_b(ptr %ptr) {
1001 %a = load <16 x i8>, ptr %ptr, align 16
1002 %r = call <16 x i8> @llvm.mips.srlri.b(<16 x i8> %a, i32 -3)
1003 store <16 x i8> %r, ptr %ptr, align 16
1007 define void @neg_addvi_w(ptr %ptr) {
1009 %a = load <4 x i32>, ptr %ptr, align 16
1010 %r = call <4 x i32> @llvm.mips.addvi.w(<4 x i32> %a, i32 -25)
1011 store <4 x i32> %r, ptr %ptr, align 16
1015 define void @neg_bclri_w(ptr %ptr) {
1017 %a = load <4 x i32>, ptr %ptr, align 16
1018 %r = call <4 x i32> @llvm.mips.bclri.w(<4 x i32> %a, i32 -25)
1019 store <4 x i32> %r, ptr %ptr, align 16
1023 define void @neg_binsli_w(ptr %ptr) {
1025 %a = load <4 x i32>, ptr %ptr, align 16
1026 %r = call <4 x i32> @llvm.mips.binsli.w(<4 x i32> %a, <4 x i32> %a, i32 -25)
1027 store <4 x i32> %r, ptr %ptr, align 16
1031 define void @neg_binsri_w(ptr %ptr) {
1033 %a = load <4 x i32>, ptr %ptr, align 16
1034 %r = call <4 x i32> @llvm.mips.binsri.w(<4 x i32> %a, <4 x i32> %a, i32 -25)
1035 store <4 x i32> %r, ptr %ptr, align 16
1039 define void @neg_bnegi_w(ptr %ptr) {
1041 %a = load <4 x i32>, ptr %ptr, align 16
1042 %r = call <4 x i32> @llvm.mips.bnegi.w(<4 x i32> %a, i32 -25)
1043 store <4 x i32> %r, ptr %ptr, align 16
1047 define void @neg_bseti_w(ptr %ptr) {
1049 %a = load <4 x i32>, ptr %ptr, align 16
1050 %r = call <4 x i32> @llvm.mips.bseti.w(<4 x i32> %a, i32 -25)
1051 store <4 x i32> %r, ptr %ptr, align 16
1055 define void @neg_clei_s_w(ptr %ptr) {
1057 %a = load <4 x i32>, ptr %ptr, align 16
1058 %r = call <4 x i32> @llvm.mips.clei.s.w(<4 x i32> %a, i32 -140)
1059 store <4 x i32> %r, ptr %ptr, align 16
1063 define void @neg_clei_u_w(ptr %ptr) {
1065 %a = load <4 x i32>, ptr %ptr, align 16
1066 %r = call <4 x i32> @llvm.mips.clei.u.w(<4 x i32> %a, i32 -25)
1067 store <4 x i32> %r, ptr %ptr, align 16
1071 define void @neg_clti_s_w(ptr %ptr) {
1073 %a = load <4 x i32>, ptr %ptr, align 16
1074 %r = call <4 x i32> @llvm.mips.clti.s.w(<4 x i32> %a, i32 -150)
1075 store <4 x i32> %r, ptr %ptr, align 16
1079 define void @neg_clti_u_w(ptr %ptr) {
1081 %a = load <4 x i32>, ptr %ptr, align 16
1082 %r = call <4 x i32> @llvm.mips.clti.u.w(<4 x i32> %a, i32 -25)
1083 store <4 x i32> %r, ptr %ptr, align 16
1087 define void @neg_maxi_s_w(ptr %ptr) {
1089 %a = load <4 x i32>, ptr %ptr, align 16
1090 %r = call <4 x i32> @llvm.mips.maxi.s.w(<4 x i32> %a, i32 -200)
1091 store <4 x i32> %r, ptr %ptr, align 16
1095 define void @neg_maxi_u_w(ptr %ptr) {
1097 %a = load <4 x i32>, ptr %ptr, align 16
1098 %r = call <4 x i32> @llvm.mips.maxi.u.w(<4 x i32> %a, i32 -200)
1099 store <4 x i32> %r, ptr %ptr, align 16
1103 define void @neg_mini_s_w(ptr %ptr) {
1105 %a = load <4 x i32>, ptr %ptr, align 16
1106 %r = call <4 x i32> @llvm.mips.mini.s.w(<4 x i32> %a, i32 -200)
1107 store <4 x i32> %r, ptr %ptr, align 16
1111 define void @neg_mini_u_w(ptr %ptr) {
1113 %a = load <4 x i32>, ptr %ptr, align 16
1114 %r = call <4 x i32> @llvm.mips.mini.u.w(<4 x i32> %a, i32 -200)
1115 store <4 x i32> %r, ptr %ptr, align 16
1119 define void @neg_ldi_w(ptr %ptr) {
1121 %r = call <4 x i32> @llvm.mips.ldi.w(i32 -300)
1122 store <4 x i32> %r, ptr %ptr, align 16
1126 define void @neg_sldi_w(ptr %ptr) {
1128 %a = load <4 x i32>, ptr %ptr, align 16
1129 %r = call <4 x i32> @llvm.mips.sldi.w(<4 x i32> %a, <4 x i32> %a, i32 -20)
1130 store <4 x i32> %r, ptr %ptr, align 16
1134 define void @neg_slli_w(ptr %ptr) {
1136 %a = load <4 x i32>, ptr %ptr, align 16
1137 %r = call <4 x i32> @llvm.mips.slli.w(<4 x i32> %a, i32 -3)
1138 store <4 x i32> %r, ptr %ptr, align 16
1142 define void @neg_splati_w(ptr %ptr) {
1144 %a = load <4 x i32>, ptr %ptr, align 16
1145 %r = call <4 x i32> @llvm.mips.splati.w(<4 x i32> %a, i32 -3)
1146 store <4 x i32> %r, ptr %ptr, align 16
1150 define void @neg_srai_w(ptr %ptr) {
1152 %a = load <4 x i32>, ptr %ptr, align 16
1153 %r = call <4 x i32> @llvm.mips.srai.w(<4 x i32> %a, i32 -3)
1154 store <4 x i32> %r, ptr %ptr, align 16
1158 define void @neg_srari_w(ptr %ptr) {
1160 %a = load <4 x i32>, ptr %ptr, align 16
1161 %r = call <4 x i32> @llvm.mips.srari.w(<4 x i32> %a, i32 -3)
1162 store <4 x i32> %r, ptr %ptr, align 16
1166 define void @neg_srli_w(ptr %ptr) {
1168 %a = load <4 x i32>, ptr %ptr, align 16
1169 %r = call <4 x i32> @llvm.mips.srli.w(<4 x i32> %a, i32 -3)
1170 store <4 x i32> %r, ptr %ptr, align 16
1174 define void @neg_srlri_w(ptr %ptr) {
1176 %a = load <4 x i32>, ptr %ptr, align 16
1177 %r = call <4 x i32> @llvm.mips.srlri.w(<4 x i32> %a, i32 -3)
1178 store <4 x i32> %r, ptr %ptr, align 16
1182 define void @neg_addvi_h(ptr %ptr) {
1184 %a = load <8 x i16>, ptr %ptr, align 16
1185 %r = call <8 x i16> @llvm.mips.addvi.h(<8 x i16> %a, i32 -25)
1186 store <8 x i16> %r, ptr %ptr, align 16
1190 define void @neg_bclri_h(ptr %ptr) {
1192 %a = load <8 x i16>, ptr %ptr, align 16
1193 %r = call <8 x i16> @llvm.mips.bclri.h(<8 x i16> %a, i32 -8)
1194 store <8 x i16> %r, ptr %ptr, align 16
1198 define void @neg_binsli_h(ptr %ptr) {
1200 %a = load <8 x i16>, ptr %ptr, align 16
1201 %r = call <8 x i16> @llvm.mips.binsli.h(<8 x i16> %a, <8 x i16> %a, i32 -8)
1202 store <8 x i16> %r, ptr %ptr, align 16
1206 define void @neg_binsri_h(ptr %ptr) {
1208 %a = load <8 x i16>, ptr %ptr, align 16
1209 %r = call <8 x i16> @llvm.mips.binsri.h(<8 x i16> %a, <8 x i16> %a, i32 -15)
1210 store <8 x i16> %r, ptr %ptr, align 16
1214 define void @neg_bnegi_h(ptr %ptr) {
1216 %a = load <8 x i16>, ptr %ptr, align 16
1217 %r = call <8 x i16> @llvm.mips.bnegi.h(<8 x i16> %a, i32 -14)
1218 store <8 x i16> %r, ptr %ptr, align 16
1222 define void @neg_bseti_h(ptr %ptr) {
1224 %a = load <8 x i16>, ptr %ptr, align 16
1225 %r = call <8 x i16> @llvm.mips.bseti.h(<8 x i16> %a, i32 -15)
1226 store <8 x i16> %r, ptr %ptr, align 16
1230 define void @neg_clei_s_h(ptr %ptr) {
1232 %a = load <8 x i16>, ptr %ptr, align 16
1233 %r = call <8 x i16> @llvm.mips.clei.s.h(<8 x i16> %a, i32 -25)
1234 store <8 x i16> %r, ptr %ptr, align 16
1238 define void @neg_clei_u_h(ptr %ptr) {
1240 %a = load <8 x i16>, ptr %ptr, align 16
1241 %r = call <8 x i16> @llvm.mips.clei.u.h(<8 x i16> %a, i32 -25)
1242 store <8 x i16> %r, ptr %ptr, align 16
1246 define void @neg_clti_s_h(ptr %ptr) {
1248 %a = load <8 x i16>, ptr %ptr, align 16
1249 %r = call <8 x i16> @llvm.mips.clti.s.h(<8 x i16> %a, i32 -150)
1250 store <8 x i16> %r, ptr %ptr, align 16
1254 define void @neg_clti_u_h(ptr %ptr) {
1256 %a = load <8 x i16>, ptr %ptr, align 16
1257 %r = call <8 x i16> @llvm.mips.clti.u.h(<8 x i16> %a, i32 -25)
1258 store <8 x i16> %r, ptr %ptr, align 16
1262 define void @neg_maxi_s_h(ptr %ptr) {
1264 %a = load <8 x i16>, ptr %ptr, align 16
1265 %r = call <8 x i16> @llvm.mips.maxi.s.h(<8 x i16> %a, i32 -200)
1266 store <8 x i16> %r, ptr %ptr, align 16
1270 define void @neg_maxi_u_h(ptr %ptr) {
1272 %a = load <8 x i16>, ptr %ptr, align 16
1273 %r = call <8 x i16> @llvm.mips.maxi.u.h(<8 x i16> %a, i32 -200)
1274 store <8 x i16> %r, ptr %ptr, align 16
1278 define void @neg_mini_s_h(ptr %ptr) {
1280 %a = load <8 x i16>, ptr %ptr, align 16
1281 %r = call <8 x i16> @llvm.mips.mini.s.h(<8 x i16> %a, i32 -200)
1282 store <8 x i16> %r, ptr %ptr, align 16
1286 define void @neg_mini_u_h(ptr %ptr) {
1288 %a = load <8 x i16>, ptr %ptr, align 16
1289 %r = call <8 x i16> @llvm.mips.mini.u.h(<8 x i16> %a, i32 -2)
1290 store <8 x i16> %r, ptr %ptr, align 16
1294 define void @neg_ldi_h(ptr %ptr) {
1296 %r = call <8 x i16> @llvm.mips.ldi.h(i32 -300)
1297 store <8 x i16> %r, ptr %ptr, align 16
1301 define void @neg_sldi_h(ptr %ptr) {
1303 %a = load <8 x i16>, ptr %ptr, align 16
1304 %r = call <8 x i16> @llvm.mips.sldi.h(<8 x i16> %a, <8 x i16> %a, i32 -3)
1305 store <8 x i16> %r, ptr %ptr, align 16
1309 define void @neg_slli_h(ptr %ptr) {
1311 %a = load <8 x i16>, ptr %ptr, align 16
1312 %r = call <8 x i16> @llvm.mips.slli.h(<8 x i16> %a, i32 -3)
1313 store <8 x i16> %r, ptr %ptr, align 16
1317 define void @neg_splati_h(ptr %ptr) {
1319 %a = load <8 x i16>, ptr %ptr, align 16
1320 %r = call <8 x i16> @llvm.mips.splati.h(<8 x i16> %a, i32 -3)
1321 store <8 x i16> %r, ptr %ptr, align 16
1325 define void @neg_srai_h(ptr %ptr) {
1327 %a = load <8 x i16>, ptr %ptr, align 16
1328 %r = call <8 x i16> @llvm.mips.srai.h(<8 x i16> %a, i32 -3)
1329 store <8 x i16> %r, ptr %ptr, align 16
1333 define void @neg_srari_h(ptr %ptr) {
1335 %a = load <8 x i16>, ptr %ptr, align 16
1336 %r = call <8 x i16> @llvm.mips.srari.h(<8 x i16> %a, i32 -3)
1337 store <8 x i16> %r, ptr %ptr, align 16
1341 define void @neg_srli_h(ptr %ptr) {
1343 %a = load <8 x i16>, ptr %ptr, align 16
1344 %r = call <8 x i16> @llvm.mips.srli.h(<8 x i16> %a, i32 -3)
1345 store <8 x i16> %r, ptr %ptr, align 16
1349 define void @neg_srlri_h(ptr %ptr) {
1351 %a = load <8 x i16>, ptr %ptr, align 16
1352 %r = call <8 x i16> @llvm.mips.srlri.h(<8 x i16> %a, i32 -3)
1353 store <8 x i16> %r, ptr %ptr, align 16
1357 define i32 @neg_copy_s_b(ptr %ptr) {
1359 %a = load <16 x i8>, ptr %ptr, align 16
1360 %r = call i32 @llvm.mips.copy.s.b(<16 x i8> %a, i32 -1)
1364 define i32 @neg_copy_s_h(ptr %ptr) {
1366 %a = load <8 x i16>, ptr %ptr, align 16
1367 %r = call i32 @llvm.mips.copy.s.h(<8 x i16> %a, i32 -1)
1371 define i32 @neg_copy_s_w(ptr %ptr) {
1373 %a = load <4 x i32>, ptr %ptr, align 16
1374 %r = call i32 @llvm.mips.copy.s.w(<4 x i32> %a, i32 -1)
1378 define i32 @neg_copy_u_b(ptr %ptr) {
1380 %a = load <16 x i8>, ptr %ptr, align 16
1381 %r = call i32 @llvm.mips.copy.u.b(<16 x i8> %a, i32 -1)
1386 define i32 @neg_copy_u_h(ptr %ptr) {
1388 %a = load <8 x i16>, ptr %ptr, align 16
1389 %r = call i32 @llvm.mips.copy.u.h(<8 x i16> %a, i32 -1)
1394 define i32 @neg_copy_u_w(ptr %ptr) {
1396 %a = load <4 x i32>, ptr %ptr, align 16
1397 %r = call i32 @llvm.mips.copy.u.w(<4 x i32> %a, i32 -1)
1401 define i64 @neg_copy_s_d(ptr %ptr) {
1402 entry: %a = load <2 x i64>, ptr %ptr, align 16
1403 %r = call i64 @llvm.mips.copy.s.d(<2 x i64> %a, i32 -1)
1407 define i64 @neg_copy_u_d(ptr %ptr) {
1408 entry: %a = load <2 x i64>, ptr %ptr, align 16
1409 %r = call i64 @llvm.mips.copy.u.d(<2 x i64> %a, i32 -1)
1413 define void @neg_addvi_d(ptr %ptr) {
1415 %a = load <2 x i64>, ptr %ptr, align 16
1416 %r = call <2 x i64> @llvm.mips.addvi.d(<2 x i64> %a, i32 -25)
1417 store <2 x i64> %r, ptr %ptr, align 16
1421 define void @neg_bclri_d(ptr %ptr) {
1423 %a = load <2 x i64>, ptr %ptr, align 16
1424 %r = call <2 x i64> @llvm.mips.bclri.d(<2 x i64> %a, i32 -25)
1425 store <2 x i64> %r, ptr %ptr, align 16
1429 define void @neg_binsli_d(ptr %ptr) {
1431 %a = load <2 x i64>, ptr %ptr, align 16
1432 %r = call <2 x i64> @llvm.mips.binsli.d(<2 x i64> %a, <2 x i64> %a, i32 -25)
1433 store <2 x i64> %r, ptr %ptr, align 16
1437 define void @neg_binsri_d(ptr %ptr) {
1439 %a = load <2 x i64>, ptr %ptr, align 16
1440 %r = call <2 x i64> @llvm.mips.binsri.d(<2 x i64> %a, <2 x i64> %a, i32 -25)
1441 store <2 x i64> %r, ptr %ptr, align 16
1445 define void @neg_bnegi_d(ptr %ptr) {
1447 %a = load <2 x i64>, ptr %ptr, align 16
1448 %r = call <2 x i64> @llvm.mips.bnegi.d(<2 x i64> %a, i32 -25)
1449 store <2 x i64> %r, ptr %ptr, align 16
1453 define void @neg_bseti_d(ptr %ptr) {
1455 %a = load <2 x i64>, ptr %ptr, align 16
1456 %r = call <2 x i64> @llvm.mips.bseti.d(<2 x i64> %a, i32 -25)
1457 store <2 x i64> %r, ptr %ptr, align 16
1461 define void @neg_clei_s_d(ptr %ptr) {
1463 %a = load <2 x i64>, ptr %ptr, align 16
1464 %r = call <2 x i64> @llvm.mips.clei.s.d(<2 x i64> %a, i32 -45)
1465 store <2 x i64> %r, ptr %ptr, align 16
1469 define void @neg_clei_u_d(ptr %ptr) {
1471 %a = load <2 x i64>, ptr %ptr, align 16
1472 %r = call <2 x i64> @llvm.mips.clei.u.d(<2 x i64> %a, i32 -25)
1473 store <2 x i64> %r, ptr %ptr, align 16
1477 define void @neg_clti_s_d(ptr %ptr) {
1479 %a = load <2 x i64>, ptr %ptr, align 16
1480 %r = call <2 x i64> @llvm.mips.clti.s.d(<2 x i64> %a, i32 -32)
1481 store <2 x i64> %r, ptr %ptr, align 16
1485 define void @neg_clti_u_d(ptr %ptr) {
1487 %a = load <2 x i64>, ptr %ptr, align 16
1488 %r = call <2 x i64> @llvm.mips.clti.u.d(<2 x i64> %a, i32 -25)
1489 store <2 x i64> %r, ptr %ptr, align 16
1493 define void @neg_ldi_d(ptr %ptr) {
1495 %r = call <2 x i64> @llvm.mips.ldi.d(i32 -3)
1496 store <2 x i64> %r, ptr %ptr, align 16
1500 define void @neg_maxi_s_d(ptr %ptr) {
1502 %a = load <2 x i64>, ptr %ptr, align 16
1503 %r = call <2 x i64> @llvm.mips.maxi.s.d(<2 x i64> %a, i32 -202)
1504 store <2 x i64> %r, ptr %ptr, align 16
1508 define void @neg_maxi_u_d(ptr %ptr) {
1510 %a = load <2 x i64>, ptr %ptr, align 16
1511 %r = call <2 x i64> @llvm.mips.maxi.u.d(<2 x i64> %a, i32 -2)
1512 store <2 x i64> %r, ptr %ptr, align 16
1516 define void @neg_mini_s_d(ptr %ptr) {
1518 %a = load <2 x i64>, ptr %ptr, align 16
1519 %r = call <2 x i64> @llvm.mips.mini.s.d(<2 x i64> %a, i32 -202)
1520 store <2 x i64> %r, ptr %ptr, align 16
1524 define void @neg_mini_u_d(ptr %ptr) {
1526 %a = load <2 x i64>, ptr %ptr, align 16
1527 %r = call <2 x i64> @llvm.mips.mini.u.d(<2 x i64> %a, i32 -2)
1528 store <2 x i64> %r, ptr %ptr, align 16
1532 define void @neg_sldi_d(ptr %ptr) {
1534 %a = load <2 x i64>, ptr %ptr, align 16
1535 %r = call <2 x i64> @llvm.mips.sldi.d(<2 x i64> %a, <2 x i64> %a, i32 -1)
1536 store <2 x i64> %r, ptr %ptr, align 16
1540 define void @neg_slli_d(ptr %ptr) {
1542 %a = load <2 x i64>, ptr %ptr, align 16
1543 %r = call <2 x i64> @llvm.mips.slli.d(<2 x i64> %a, i32 -3)
1544 store <2 x i64> %r, ptr %ptr, align 16
1548 define void @neg_srai_d(ptr %ptr) {
1550 %a = load <2 x i64>, ptr %ptr, align 16
1551 %r = call <2 x i64> @llvm.mips.srai.d(<2 x i64> %a, i32 -3)
1552 store <2 x i64> %r, ptr %ptr, align 16
1556 define void @neg_srari_d(ptr %ptr) {
1558 %a = load <2 x i64>, ptr %ptr, align 16
1559 %r = call <2 x i64> @llvm.mips.srari.d(<2 x i64> %a, i32 -3)
1560 store <2 x i64> %r, ptr %ptr, align 16
1564 define void @neg_srli_d(ptr %ptr) {
1566 %a = load <2 x i64>, ptr %ptr, align 16
1567 %r = call <2 x i64> @llvm.mips.srli.d(<2 x i64> %a, i32 -3)
1568 store <2 x i64> %r, ptr %ptr, align 16
1572 define void @neg_srlri_d(ptr %ptr) {
1574 %a = load <2 x i64>, ptr %ptr, align 16
1575 %r = call <2 x i64> @llvm.mips.srlri.d(<2 x i64> %a, i32 -3)
1576 store <2 x i64> %r, ptr %ptr, align 16
1580 declare <8 x i16> @llvm.mips.ldi.h(i32)
1581 declare <8 x i16> @llvm.mips.addvi.h(<8 x i16>, i32)
1582 declare <8 x i16> @llvm.mips.bclri.h(<8 x i16>, i32)
1583 declare <8 x i16> @llvm.mips.binsli.h(<8 x i16>, <8 x i16>, i32)
1584 declare <8 x i16> @llvm.mips.binsri.h(<8 x i16>, <8 x i16>, i32)
1585 declare <8 x i16> @llvm.mips.bnegi.h(<8 x i16>, i32)
1586 declare <8 x i16> @llvm.mips.bseti.h(<8 x i16>, i32)
1587 declare <8 x i16> @llvm.mips.clei.s.h(<8 x i16>, i32)
1588 declare <8 x i16> @llvm.mips.clei.u.h(<8 x i16>, i32)
1589 declare <8 x i16> @llvm.mips.clti.s.h(<8 x i16>, i32)
1590 declare <8 x i16> @llvm.mips.clti.u.h(<8 x i16>, i32)
1591 declare <8 x i16> @llvm.mips.maxi.s.h(<8 x i16>, i32)
1592 declare <8 x i16> @llvm.mips.maxi.u.h(<8 x i16>, i32)
1593 declare <8 x i16> @llvm.mips.mini.s.h(<8 x i16>, i32)
1594 declare <8 x i16> @llvm.mips.mini.u.h(<8 x i16>, i32)
1595 declare <8 x i16> @llvm.mips.sldi.h(<8 x i16>, <8 x i16>, i32)
1596 declare <8 x i16> @llvm.mips.slli.h(<8 x i16>, i32)
1597 declare <8 x i16> @llvm.mips.splati.h(<8 x i16>, i32)
1598 declare <8 x i16> @llvm.mips.srai.h(<8 x i16>, i32)
1599 declare <8 x i16> @llvm.mips.srari.h(<8 x i16>, i32)
1600 declare <8 x i16> @llvm.mips.srli.h(<8 x i16>, i32)
1601 declare <8 x i16> @llvm.mips.srlri.h(<8 x i16>, i32)
1602 declare <4 x i32> @llvm.mips.addvi.w(<4 x i32>, i32)
1603 declare <4 x i32> @llvm.mips.bclri.w(<4 x i32>, i32)
1604 declare <4 x i32> @llvm.mips.binsli.w(<4 x i32>, <4 x i32>, i32)
1605 declare <4 x i32> @llvm.mips.binsri.w(<4 x i32>, <4 x i32>, i32)
1606 declare <4 x i32> @llvm.mips.bnegi.w(<4 x i32>, i32)
1607 declare <4 x i32> @llvm.mips.bseti.w(<4 x i32>, i32)
1608 declare <4 x i32> @llvm.mips.ldi.w(i32)
1609 declare <4 x i32> @llvm.mips.clei.s.w(<4 x i32>, i32)
1610 declare <4 x i32> @llvm.mips.clei.u.w(<4 x i32>, i32)
1611 declare <4 x i32> @llvm.mips.clti.s.w(<4 x i32>, i32)
1612 declare <4 x i32> @llvm.mips.clti.u.w(<4 x i32>, i32)
1613 declare <4 x i32> @llvm.mips.maxi.s.w(<4 x i32>, i32)
1614 declare <4 x i32> @llvm.mips.maxi.u.w(<4 x i32>, i32)
1615 declare <4 x i32> @llvm.mips.mini.s.w(<4 x i32>, i32)
1616 declare <4 x i32> @llvm.mips.mini.u.w(<4 x i32>, i32)
1617 declare <4 x i32> @llvm.mips.sldi.w(<4 x i32>, <4 x i32>, i32)
1618 declare <4 x i32> @llvm.mips.slli.w(<4 x i32>, i32)
1619 declare <4 x i32> @llvm.mips.splati.w(<4 x i32>, i32)
1620 declare <4 x i32> @llvm.mips.srai.w(<4 x i32>, i32)
1621 declare <4 x i32> @llvm.mips.srari.w(<4 x i32>, i32)
1622 declare <4 x i32> @llvm.mips.srli.w(<4 x i32>, i32)
1623 declare <4 x i32> @llvm.mips.srlri.w(<4 x i32>, i32)
1624 declare <2 x i64> @llvm.mips.ldi.d(i32)
1625 declare <2 x i64> @llvm.mips.addvi.d(<2 x i64>, i32)
1626 declare <2 x i64> @llvm.mips.bclri.d(<2 x i64>, i32)
1627 declare <2 x i64> @llvm.mips.binsli.d(<2 x i64>, <2 x i64>, i32)
1628 declare <2 x i64> @llvm.mips.binsri.d(<2 x i64>, <2 x i64>, i32)
1629 declare <2 x i64> @llvm.mips.bnegi.d(<2 x i64>, i32)
1630 declare <2 x i64> @llvm.mips.bseti.d(<2 x i64>, i32)
1631 declare <2 x i64> @llvm.mips.clei.s.d(<2 x i64>, i32)
1632 declare <2 x i64> @llvm.mips.clei.u.d(<2 x i64>, i32)
1633 declare <2 x i64> @llvm.mips.clti.s.d(<2 x i64>, i32)
1634 declare <2 x i64> @llvm.mips.clti.u.d(<2 x i64>, i32)
1635 declare <2 x i64> @llvm.mips.maxi.s.d(<2 x i64>, i32)
1636 declare <2 x i64> @llvm.mips.maxi.u.d(<2 x i64>, i32)
1637 declare <2 x i64> @llvm.mips.mini.s.d(<2 x i64>, i32)
1638 declare <2 x i64> @llvm.mips.mini.u.d(<2 x i64>, i32)
1639 declare <2 x i64> @llvm.mips.sldi.d(<2 x i64>, <2 x i64>, i32)
1640 declare <2 x i64> @llvm.mips.slli.d(<2 x i64>, i32)
1641 declare <2 x i64> @llvm.mips.splati.d(<2 x i64>, i32)
1642 declare <2 x i64> @llvm.mips.srai.d(<2 x i64>, i32)
1643 declare <2 x i64> @llvm.mips.srari.d(<2 x i64>, i32)
1644 declare <2 x i64> @llvm.mips.srli.d(<2 x i64>, i32)
1645 declare <2 x i64> @llvm.mips.srlri.d(<2 x i64>, i32)
1646 declare <16 x i8> @llvm.mips.ldi.b(i32)
1647 declare <16 x i8> @llvm.mips.addvi.b(<16 x i8>, i32)
1648 declare <16 x i8> @llvm.mips.andi.b(<16 x i8>, i32)
1649 declare <16 x i8> @llvm.mips.bclri.b(<16 x i8>, i32)
1650 declare <16 x i8> @llvm.mips.binsli.b(<16 x i8>, <16 x i8>, i32)
1651 declare <16 x i8> @llvm.mips.binsri.b(<16 x i8>, <16 x i8>, i32)
1652 declare <16 x i8> @llvm.mips.bmnzi.b(<16 x i8>, <16 x i8>, i32)
1653 declare <16 x i8> @llvm.mips.bnegi.b(<16 x i8>, i32)
1654 declare <16 x i8> @llvm.mips.bseli.b(<16 x i8>, <16 x i8>, i32)
1655 declare <16 x i8> @llvm.mips.bseti.b(<16 x i8>, i32)
1656 declare <16 x i8> @llvm.mips.clei.s.b(<16 x i8>, i32)
1657 declare <16 x i8> @llvm.mips.clei.u.b(<16 x i8>, i32)
1658 declare <16 x i8> @llvm.mips.clti.s.b(<16 x i8>, i32)
1659 declare <16 x i8> @llvm.mips.clti.u.b(<16 x i8>, i32)
1660 declare <16 x i8> @llvm.mips.maxi.s.b(<16 x i8>, i32)
1661 declare <16 x i8> @llvm.mips.maxi.u.b(<16 x i8>, i32)
1662 declare <16 x i8> @llvm.mips.mini.s.b(<16 x i8>, i32)
1663 declare <16 x i8> @llvm.mips.mini.u.b(<16 x i8>, i32)
1664 declare <16 x i8> @llvm.mips.nori.b(<16 x i8>, i32)
1665 declare <16 x i8> @llvm.mips.ori.b(<16 x i8>, i32)
1666 declare <16 x i8> @llvm.mips.sldi.b(<16 x i8>, <16 x i8>, i32)
1667 declare <16 x i8> @llvm.mips.slli.b(<16 x i8>, i32)
1668 declare <16 x i8> @llvm.mips.splati.b(<16 x i8>, i32)
1669 declare <16 x i8> @llvm.mips.srai.b(<16 x i8>, i32)
1670 declare <16 x i8> @llvm.mips.srari.b(<16 x i8>, i32)
1671 declare <16 x i8> @llvm.mips.srli.b(<16 x i8>, i32)
1672 declare <16 x i8> @llvm.mips.srlri.b(<16 x i8>, i32)
1673 declare i32 @llvm.mips.copy.s.h(<8 x i16>, i32)
1674 declare i32 @llvm.mips.copy.u.h(<8 x i16>, i32)
1675 declare i32 @llvm.mips.copy.s.w(<4 x i32>, i32)
1676 declare i32 @llvm.mips.copy.u.w(<4 x i32>, i32)
1677 declare i64 @llvm.mips.copy.s.d(<2 x i64>, i32)
1678 declare i64 @llvm.mips.copy.u.d(<2 x i64>, i32)
1679 declare i32 @llvm.mips.copy.s.b(<16 x i8>, i32)
1680 declare i32 @llvm.mips.copy.u.b(<16 x i8>, i32)
1681 declare <16 x i8> @llvm.mips.bmzi.b(<16 x i8>, <16 x i8>, i32)