1682 lines · plain
1; RUN: not --crash llc -mtriple=mips -mattr=+msa,+fp64,+mips32r2 -relocation-model=pic < %s 2> %t12; RUN: FileCheck %s < %t13 4; Test that the immediate intrinsics with out of range values trigger an error.5 6 7define void @binsli_b(ptr %ptr) {8entry:9 %a = load <16 x i8>, ptr %ptr, align 1610 %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 1612 ret void13}14; CHECK: LLVM ERROR: Immediate out of range15 16define void @binsri_b(ptr %ptr) {17entry:18 %a = load <16 x i8>, ptr %ptr, align 1619 %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 1621 ret void22}23 24define void @bmnzi_b(ptr %ptr) {25entry:26 %a = load <16 x i8>, ptr %ptr, align 1627 %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 1629 ret void30}31 32define void @bmzi_b(ptr %ptr) {33entry:34 %a = load <16 x i8>, ptr %ptr, align 1635 %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 1637 ret void38}39 40define void @bnegi_b(ptr %ptr) {41entry:42 %a = load <16 x i8>, ptr %ptr, align 1643 %r = call <16 x i8> @llvm.mips.bnegi.b(<16 x i8> %a, i32 6)44 store <16 x i8> %r, ptr %ptr, align 1645 ret void46}47 48define void @bseli_b(ptr %ptr) {49entry:50 %a = load <16 x i8>, ptr %ptr, align 1651 %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 1653 ret void54}55 56define void @bseti_b(ptr %ptr) {57entry:58 %a = load <16 x i8>, ptr %ptr, align 1659 %r = call <16 x i8> @llvm.mips.bseti.b(<16 x i8> %a, i32 9)60 store <16 x i8> %r, ptr %ptr, align 1661 ret void62}63 64define void @clei_s_b(ptr %ptr) {65entry:66 %a = load <16 x i8>, ptr %ptr, align 1667 %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 1669 ret void70}71 72define void @clei_u_b(ptr %ptr) {73entry:74 %a = load <16 x i8>, ptr %ptr, align 1675 %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 1677 ret void78}79 80define void @clti_s_b(ptr %ptr) {81entry:82 %a = load <16 x i8>, ptr %ptr, align 1683 %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 1685 ret void86}87 88define void @clti_u_b(ptr %ptr) {89entry:90 %a = load <16 x i8>, ptr %ptr, align 1691 %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 1693 ret void94}95 96define void @ldi_b(ptr %ptr) {97entry:98 %r = call <16 x i8> @llvm.mips.ldi.b(i32 1025)99 store <16 x i8> %r, ptr %ptr, align 16100 ret void101}102 103define void @maxi_s_b(ptr %ptr) {104entry:105 %a = load <16 x i8>, ptr %ptr, align 16106 %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 16108 ret void109}110 111define void @maxi_u_b(ptr %ptr) {112entry:113 %a = load <16 x i8>, ptr %ptr, align 16114 %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 16116 ret void117}118 119define void @mini_s_b(ptr %ptr) {120entry:121 %a = load <16 x i8>, ptr %ptr, align 16122 %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 16124 ret void125}126 127define void @mini_u_b(ptr %ptr) {128entry:129 %a = load <16 x i8>, ptr %ptr, align 16130 %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 16132 ret void133}134 135define void @nori_b(ptr %ptr) {136entry:137 %a = load <16 x i8>, ptr %ptr, align 16138 %r = call <16 x i8> @llvm.mips.nori.b(<16 x i8> %a, i32 63)139 store <16 x i8> %r, ptr %ptr, align 16140 ret void141}142 143define void @ori_b(ptr %ptr) {144entry:145 %a = load <16 x i8>, ptr %ptr, align 16146 %r = call <16 x i8> @llvm.mips.ori.b(<16 x i8> %a, i32 63)147 store <16 x i8> %r, ptr %ptr, align 16148 ret void149}150 151define void @sldi_b(ptr %ptr) {152entry:153 %a = load <16 x i8>, ptr %ptr, align 16154 %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 16156 ret void157}158 159define void @slli_b(ptr %ptr) {160entry:161 %a = load <16 x i8>, ptr %ptr, align 16162 %r = call <16 x i8> @llvm.mips.slli.b(<16 x i8> %a, i32 65)163 store <16 x i8> %r, ptr %ptr, align 16164 ret void165}166 167define void @splati_b(ptr %ptr) {168entry:169 %a = load <16 x i8>, ptr %ptr, align 16170 %r = call <16 x i8> @llvm.mips.splati.b(<16 x i8> %a, i32 65)171 store <16 x i8> %r, ptr %ptr, align 16172 ret void173}174 175define void @srai_b(ptr %ptr) {176entry:177 %a = load <16 x i8>, ptr %ptr, align 16178 %r = call <16 x i8> @llvm.mips.srai.b(<16 x i8> %a, i32 65)179 store <16 x i8> %r, ptr %ptr, align 16180 ret void181}182 183define void @srari_b(ptr %ptr) {184entry:185 %a = load <16 x i8>, ptr %ptr, align 16186 %r = call <16 x i8> @llvm.mips.srari.b(<16 x i8> %a, i32 65)187 store <16 x i8> %r, ptr %ptr, align 16188 ret void189}190 191define void @srli_b(ptr %ptr) {192entry:193 %a = load <16 x i8>, ptr %ptr, align 16194 %r = call <16 x i8> @llvm.mips.srli.b(<16 x i8> %a, i32 65)195 store <16 x i8> %r, ptr %ptr, align 16196 ret void197}198 199define void @srlri_b(ptr %ptr) {200entry:201 %a = load <16 x i8>, ptr %ptr, align 16202 %r = call <16 x i8> @llvm.mips.srlri.b(<16 x i8> %a, i32 65)203 store <16 x i8> %r, ptr %ptr, align 16204 ret void205}206 207define void @addvi_w(ptr %ptr) {208entry:209 %a = load <4 x i32>, ptr %ptr, align 16210 %r = call <4 x i32> @llvm.mips.addvi.w(<4 x i32> %a, i32 63)211 store <4 x i32> %r, ptr %ptr, align 16212 ret void213}214 215define void @bclri_w(ptr %ptr) {216entry:217 %a = load <4 x i32>, ptr %ptr, align 16218 %r = call <4 x i32> @llvm.mips.bclri.w(<4 x i32> %a, i32 63)219 store <4 x i32> %r, ptr %ptr, align 16220 ret void221}222 223define void @binsli_w(ptr %ptr) {224entry:225 %a = load <4 x i32>, ptr %ptr, align 16226 %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 16228 ret void229}230 231define void @binsri_w(ptr %ptr) {232entry:233 %a = load <4 x i32>, ptr %ptr, align 16234 %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 16236 ret void237}238 239define void @bnegi_w(ptr %ptr) {240entry:241 %a = load <4 x i32>, ptr %ptr, align 16242 %r = call <4 x i32> @llvm.mips.bnegi.w(<4 x i32> %a, i32 63)243 store <4 x i32> %r, ptr %ptr, align 16244 ret void245}246 247define void @bseti_w(ptr %ptr) {248entry:249 %a = load <4 x i32>, ptr %ptr, align 16250 %r = call <4 x i32> @llvm.mips.bseti.w(<4 x i32> %a, i32 63)251 store <4 x i32> %r, ptr %ptr, align 16252 ret void253}254 255define void @clei_s_w(ptr %ptr) {256entry:257 %a = load <4 x i32>, ptr %ptr, align 16258 %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 16260 ret void261}262 263define void @clei_u_w(ptr %ptr) {264entry:265 %a = load <4 x i32>, ptr %ptr, align 16266 %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 16268 ret void269}270 271define void @clti_s_w(ptr %ptr) {272entry:273 %a = load <4 x i32>, ptr %ptr, align 16274 %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 16276 ret void277}278 279define void @clti_u_w(ptr %ptr) {280entry:281 %a = load <4 x i32>, ptr %ptr, align 16282 %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 16284 ret void285}286 287define void @maxi_s_w(ptr %ptr) {288entry:289 %a = load <4 x i32>, ptr %ptr, align 16290 %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 16292 ret void293}294 295define void @maxi_u_w(ptr %ptr) {296entry:297 %a = load <4 x i32>, ptr %ptr, align 16298 %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 16300 ret void301}302 303define void @mini_s_w(ptr %ptr) {304entry:305 %a = load <4 x i32>, ptr %ptr, align 16306 %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 16308 ret void309}310 311define void @mini_u_w(ptr %ptr) {312entry:313 %a = load <4 x i32>, ptr %ptr, align 16314 %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 16316 ret void317}318 319define void @ldi_w(ptr %ptr) {320entry:321 %r = call <4 x i32> @llvm.mips.ldi.w(i32 1024)322 store <4 x i32> %r, ptr %ptr, align 16323 ret void324}325 326define void @sldi_w(ptr %ptr) {327entry:328 %a = load <4 x i32>, ptr %ptr, align 16329 %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 16331 ret void332}333 334define void @slli_w(ptr %ptr) {335entry:336 %a = load <4 x i32>, ptr %ptr, align 16337 %r = call <4 x i32> @llvm.mips.slli.w(<4 x i32> %a, i32 65)338 store <4 x i32> %r, ptr %ptr, align 16339 ret void340}341 342define void @splati_w(ptr %ptr) {343entry:344 %a = load <4 x i32>, ptr %ptr, align 16345 %r = call <4 x i32> @llvm.mips.splati.w(<4 x i32> %a, i32 65)346 store <4 x i32> %r, ptr %ptr, align 16347 ret void348}349 350define void @srai_w(ptr %ptr) {351entry:352 %a = load <4 x i32>, ptr %ptr, align 16353 %r = call <4 x i32> @llvm.mips.srai.w(<4 x i32> %a, i32 65)354 store <4 x i32> %r, ptr %ptr, align 16355 ret void356}357 358define void @srari_w(ptr %ptr) {359entry:360 %a = load <4 x i32>, ptr %ptr, align 16361 %r = call <4 x i32> @llvm.mips.srari.w(<4 x i32> %a, i32 65)362 store <4 x i32> %r, ptr %ptr, align 16363 ret void364}365 366define void @srli_w(ptr %ptr) {367entry:368 %a = load <4 x i32>, ptr %ptr, align 16369 %r = call <4 x i32> @llvm.mips.srli.w(<4 x i32> %a, i32 65)370 store <4 x i32> %r, ptr %ptr, align 16371 ret void372}373 374define void @srlri_w(ptr %ptr) {375entry:376 %a = load <4 x i32>, ptr %ptr, align 16377 %r = call <4 x i32> @llvm.mips.srlri.w(<4 x i32> %a, i32 65)378 store <4 x i32> %r, ptr %ptr, align 16379 ret void380}381 382define void @addvi_h(ptr %ptr) {383entry:384 %a = load <8 x i16>, ptr %ptr, align 16385 %r = call <8 x i16> @llvm.mips.addvi.h(<8 x i16> %a, i32 65)386 store <8 x i16> %r, ptr %ptr, align 16387 ret void388}389 390define void @bclri_h(ptr %ptr) {391entry:392 %a = load <8 x i16>, ptr %ptr, align 16393 %r = call <8 x i16> @llvm.mips.bclri.h(<8 x i16> %a, i32 16)394 store <8 x i16> %r, ptr %ptr, align 16395 ret void396}397 398define void @binsli_h(ptr %ptr) {399entry:400 %a = load <8 x i16>, ptr %ptr, align 16401 %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 16403 ret void404}405 406define void @binsri_h(ptr %ptr) {407entry:408 %a = load <8 x i16>, ptr %ptr, align 16409 %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 16411 ret void412}413 414define void @bnegi_h(ptr %ptr) {415entry:416 %a = load <8 x i16>, ptr %ptr, align 16417 %r = call <8 x i16> @llvm.mips.bnegi.h(<8 x i16> %a, i32 19)418 store <8 x i16> %r, ptr %ptr, align 16419 ret void420}421 422define void @bseti_h(ptr %ptr) {423entry:424 %a = load <8 x i16>, ptr %ptr, align 16425 %r = call <8 x i16> @llvm.mips.bseti.h(<8 x i16> %a, i32 19)426 store <8 x i16> %r, ptr %ptr, align 16427 ret void428}429 430define void @clei_s_h(ptr %ptr) {431entry:432 %a = load <8 x i16>, ptr %ptr, align 16433 %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 16435 ret void436}437 438define void @clei_u_h(ptr %ptr) {439entry:440 %a = load <8 x i16>, ptr %ptr, align 16441 %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 16443 ret void444}445 446define void @clti_s_h(ptr %ptr) {447entry:448 %a = load <8 x i16>, ptr %ptr, align 16449 %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 16451 ret void452}453 454define void @clti_u_h(ptr %ptr) {455entry:456 %a = load <8 x i16>, ptr %ptr, align 16457 %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 16459 ret void460}461 462define void @maxi_s_h(ptr %ptr) {463entry:464 %a = load <8 x i16>, ptr %ptr, align 16465 %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 16467 ret void468}469 470define void @maxi_u_h(ptr %ptr) {471entry:472 %a = load <8 x i16>, ptr %ptr, align 16473 %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 16475 ret void476}477 478define void @mini_s_h(ptr %ptr) {479entry:480 %a = load <8 x i16>, ptr %ptr, align 16481 %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 16483 ret void484}485 486define void @mini_u_h(ptr %ptr) {487entry:488 %a = load <8 x i16>, ptr %ptr, align 16489 %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 16491 ret void492}493 494define void @ldi_h(ptr %ptr) {495entry:496 %r = call <8 x i16> @llvm.mips.ldi.h(i32 1024)497 store <8 x i16> %r, ptr %ptr, align 16498 ret void499}500 501define void @sldi_h(ptr %ptr) {502entry:503 %a = load <8 x i16>, ptr %ptr, align 16504 %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 16506 ret void507}508 509define void @slli_h(ptr %ptr) {510entry:511 %a = load <8 x i16>, ptr %ptr, align 16512 %r = call <8 x i16> @llvm.mips.slli.h(<8 x i16> %a, i32 65)513 store <8 x i16> %r, ptr %ptr, align 16514 ret void515}516 517define void @splati_h(ptr %ptr) {518entry:519 %a = load <8 x i16>, ptr %ptr, align 16520 %r = call <8 x i16> @llvm.mips.splati.h(<8 x i16> %a, i32 65)521 store <8 x i16> %r, ptr %ptr, align 16522 ret void523}524 525define void @srai_h(ptr %ptr) {526entry:527 %a = load <8 x i16>, ptr %ptr, align 16528 %r = call <8 x i16> @llvm.mips.srai.h(<8 x i16> %a, i32 65)529 store <8 x i16> %r, ptr %ptr, align 16530 ret void531}532 533define void @srari_h(ptr %ptr) {534entry:535 %a = load <8 x i16>, ptr %ptr, align 16536 %r = call <8 x i16> @llvm.mips.srari.h(<8 x i16> %a, i32 65)537 store <8 x i16> %r, ptr %ptr, align 16538 ret void539}540 541define void @srli_h(ptr %ptr) {542entry:543 %a = load <8 x i16>, ptr %ptr, align 16544 %r = call <8 x i16> @llvm.mips.srli.h(<8 x i16> %a, i32 65)545 store <8 x i16> %r, ptr %ptr, align 16546 ret void547}548 549define void @srlri_h(ptr %ptr) {550entry:551 %a = load <8 x i16>, ptr %ptr, align 16552 %r = call <8 x i16> @llvm.mips.srlri.h(<8 x i16> %a, i32 65)553 store <8 x i16> %r, ptr %ptr, align 16554 ret void555}556 557define i32 @copy_s_b(ptr %ptr) {558entry:559 %a = load <16 x i8>, ptr %ptr, align 16560 %r = call i32 @llvm.mips.copy.s.b(<16 x i8> %a, i32 17)561 ret i32 %r562}563 564 565define i32 @copy_s_h(ptr %ptr) {566entry:567 %a = load <8 x i16>, ptr %ptr, align 16568 %r = call i32 @llvm.mips.copy.s.h(<8 x i16> %a, i32 9)569 ret i32 %r570}571 572 573define i32 @copy_s_w(ptr %ptr) {574entry:575 %a = load <4 x i32>, ptr %ptr, align 16576 %r = call i32 @llvm.mips.copy.s.w(<4 x i32> %a, i32 5)577 ret i32 %r578}579 580 581define i32 @copy_u_b(ptr %ptr) {582entry:583 %a = load <16 x i8>, ptr %ptr, align 16584 %r = call i32 @llvm.mips.copy.u.b(<16 x i8> %a, i32 16)585 ret i32 %r586}587 588 589define i32 @copy_u_h(ptr %ptr) {590entry:591 %a = load <8 x i16>, ptr %ptr, align 16592 %r = call i32 @llvm.mips.copy.u.h(<8 x i16> %a, i32 9)593 ret i32 %r594}595 596 597define i32 @copy_u_w(ptr %ptr) {598entry:599 %a = load <4 x i32>, ptr %ptr, align 16600 %r = call i32 @llvm.mips.copy.u.w(<4 x i32> %a, i32 5)601 ret i32 %r602}603 604define i64 @copy_s_d(ptr %ptr) {605entry: %a = load <2 x i64>, ptr %ptr, align 16606 %r = call i64 @llvm.mips.copy.s.d(<2 x i64> %a, i32 3)607 ret i64 %r608}609 610define i64 @copy_u_d(ptr %ptr) {611entry: %a = load <2 x i64>, ptr %ptr, align 16612 %r = call i64 @llvm.mips.copy.u.d(<2 x i64> %a, i32 3)613 ret i64 %r614}615 616define void @addvi_d(ptr %ptr) {617entry:618 %a = load <2 x i64>, ptr %ptr, align 16619 %r = call <2 x i64> @llvm.mips.addvi.d(<2 x i64> %a, i32 65)620 store <2 x i64> %r, ptr %ptr, align 16621 ret void622}623 624define void @bclri_d(ptr %ptr) {625entry:626 %a = load <2 x i64>, ptr %ptr, align 16627 %r = call <2 x i64> @llvm.mips.bclri.d(<2 x i64> %a, i32 64)628 store <2 x i64> %r, ptr %ptr, align 16629 ret void630}631 632define void @binsli_d(ptr %ptr) {633entry:634 %a = load <2 x i64>, ptr %ptr, align 16635 %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 16637 ret void638}639 640define void @binsri_d(ptr %ptr) {641entry:642 %a = load <2 x i64>, ptr %ptr, align 16643 %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 16645 ret void646}647 648define void @bnegi_d(ptr %ptr) {649entry:650 %a = load <2 x i64>, ptr %ptr, align 16651 %r = call <2 x i64> @llvm.mips.bnegi.d(<2 x i64> %a, i32 65)652 store <2 x i64> %r, ptr %ptr, align 16653 ret void654}655 656define void @bseti_d(ptr %ptr) {657entry:658 %a = load <2 x i64>, ptr %ptr, align 16659 %r = call <2 x i64> @llvm.mips.bseti.d(<2 x i64> %a, i32 65)660 store <2 x i64> %r, ptr %ptr, align 16661 ret void662}663 664define void @clei_s_d(ptr %ptr) {665entry:666 %a = load <2 x i64>, ptr %ptr, align 16667 %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 16669 ret void670}671 672define void @clei_u_d(ptr %ptr) {673entry:674 %a = load <2 x i64>, ptr %ptr, align 16675 %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 16677 ret void678}679 680define void @clti_s_d(ptr %ptr) {681entry:682 %a = load <2 x i64>, ptr %ptr, align 16683 %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 16685 ret void686}687 688define void @clti_u_d(ptr %ptr) {689entry:690 %a = load <2 x i64>, ptr %ptr, align 16691 %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 16693 ret void694}695 696define void @ldi_d(ptr %ptr) {697entry:698 %r = call <2 x i64> @llvm.mips.ldi.d(i32 1024)699 store <2 x i64> %r, ptr %ptr, align 16700 ret void701}702 703define void @maxi_s_d(ptr %ptr) {704entry:705 %a = load <2 x i64>, ptr %ptr, align 16706 %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 16708 ret void709}710 711define void @maxi_u_d(ptr %ptr) {712entry:713 %a = load <2 x i64>, ptr %ptr, align 16714 %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 16716 ret void717}718 719define void @mini_s_d(ptr %ptr) {720entry:721 %a = load <2 x i64>, ptr %ptr, align 16722 %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 16724 ret void725}726 727define void @mini_u_d(ptr %ptr) {728entry:729 %a = load <2 x i64>, ptr %ptr, align 16730 %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 16732 ret void733}734 735define void @sldi_d(ptr %ptr) {736entry:737 %a = load <2 x i64>, ptr %ptr, align 16738 %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 16740 ret void741}742 743define void @slli_d(ptr %ptr) {744entry:745 %a = load <2 x i64>, ptr %ptr, align 16746 %r = call <2 x i64> @llvm.mips.slli.d(<2 x i64> %a, i32 65)747 store <2 x i64> %r, ptr %ptr, align 16748 ret void749}750 751define void @srai_d(ptr %ptr) {752entry:753 %a = load <2 x i64>, ptr %ptr, align 16754 %r = call <2 x i64> @llvm.mips.srai.d(<2 x i64> %a, i32 65)755 store <2 x i64> %r, ptr %ptr, align 16756 ret void757}758 759define void @srari_d(ptr %ptr) {760entry:761 %a = load <2 x i64>, ptr %ptr, align 16762 %r = call <2 x i64> @llvm.mips.srari.d(<2 x i64> %a, i32 65)763 store <2 x i64> %r, ptr %ptr, align 16764 ret void765}766 767define void @srli_d(ptr %ptr) {768entry:769 %a = load <2 x i64>, ptr %ptr, align 16770 %r = call <2 x i64> @llvm.mips.srli.d(<2 x i64> %a, i32 65)771 store <2 x i64> %r, ptr %ptr, align 16772 ret void773}774 775define void @srlri_d(ptr %ptr) {776entry:777 %a = load <2 x i64>, ptr %ptr, align 16778 %r = call <2 x i64> @llvm.mips.srlri.d(<2 x i64> %a, i32 65)779 store <2 x i64> %r, ptr %ptr, align 16780 ret void781}; Negative numbers782 783 784define void @neg_addvi_b(ptr %ptr) {785entry:786 %a = load <16 x i8>, ptr %ptr, align 16787 %r = call <16 x i8> @llvm.mips.addvi.b(<16 x i8> %a, i32 -25)788 store <16 x i8> %r, ptr %ptr, align 16789 ret void790}791 792define void @neg_andi_b(ptr %ptr) {793entry:794 %a = load <16 x i8>, ptr %ptr, align 16795 %r = call <16 x i8> @llvm.mips.andi.b(<16 x i8> %a, i32 -25)796 store <16 x i8> %r, ptr %ptr, align 16797 ret void798}799 800define void @neg_bclri_b(ptr %ptr) {801entry:802 %a = load <16 x i8>, ptr %ptr, align 16803 %r = call <16 x i8> @llvm.mips.bclri.b(<16 x i8> %a, i32 -3)804 store <16 x i8> %r, ptr %ptr, align 16805 ret void806}807 808define void @neg_binsli_b(ptr %ptr) {809entry:810 %a = load <16 x i8>, ptr %ptr, align 16811 %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 16813 ret void814}815 816define void @neg_binsri_b(ptr %ptr) {817entry:818 %a = load <16 x i8>, ptr %ptr, align 16819 %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 16821 ret void822}823 824define void @neg_bmnzi_b(ptr %ptr) {825entry:826 %a = load <16 x i8>, ptr %ptr, align 16827 %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 16829 ret void830}831 832define void @neg_bmzi_b(ptr %ptr) {833entry:834 %a = load <16 x i8>, ptr %ptr, align 16835 %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 16837 ret void838}839 840define void @neg_bnegi_b(ptr %ptr) {841entry:842 %a = load <16 x i8>, ptr %ptr, align 16843 %r = call <16 x i8> @llvm.mips.bnegi.b(<16 x i8> %a, i32 6)844 store <16 x i8> %r, ptr %ptr, align 16845 ret void846}847 848define void @neg_bseli_b(ptr %ptr) {849entry:850 %a = load <16 x i8>, ptr %ptr, align 16851 %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 16853 ret void854}855 856define void @neg_bseti_b(ptr %ptr) {857entry:858 %a = load <16 x i8>, ptr %ptr, align 16859 %r = call <16 x i8> @llvm.mips.bseti.b(<16 x i8> %a, i32 -5)860 store <16 x i8> %r, ptr %ptr, align 16861 ret void862}863 864define void @neg_clei_s_b(ptr %ptr) {865entry:866 %a = load <16 x i8>, ptr %ptr, align 16867 %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 16869 ret void870}871 872define void @neg_clei_u_b(ptr %ptr) {873entry:874 %a = load <16 x i8>, ptr %ptr, align 16875 %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 16877 ret void878}879 880define void @neg_clti_s_b(ptr %ptr) {881entry:882 %a = load <16 x i8>, ptr %ptr, align 16883 %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 16885 ret void886}887 888define void @neg_clti_u_b(ptr %ptr) {889entry:890 %a = load <16 x i8>, ptr %ptr, align 16891 %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 16893 ret void894}895 896define void @neg_ldi_b(ptr %ptr) {897entry:898 %r = call <16 x i8> @llvm.mips.ldi.b(i32 -3)899 store <16 x i8> %r, ptr %ptr, align 16900 ret void901}902 903define void @neg_maxi_s_b(ptr %ptr) {904entry:905 %a = load <16 x i8>, ptr %ptr, align 16906 %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 16908 ret void909}910 911define void @neg_maxi_u_b(ptr %ptr) {912entry:913 %a = load <16 x i8>, ptr %ptr, align 16914 %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 16916 ret void917}918 919define void @neg_mini_s_b(ptr %ptr) {920entry:921 %a = load <16 x i8>, ptr %ptr, align 16922 %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 16924 ret void925}926 927define void @neg_mini_u_b(ptr %ptr) {928entry:929 %a = load <16 x i8>, ptr %ptr, align 16930 %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 16932 ret void933}934 935define void @neg_nori_b(ptr %ptr) {936entry:937 %a = load <16 x i8>, ptr %ptr, align 16938 %r = call <16 x i8> @llvm.mips.nori.b(<16 x i8> %a, i32 -25)939 store <16 x i8> %r, ptr %ptr, align 16940 ret void941}942 943define void @neg_ori_b(ptr %ptr) {944entry:945 %a = load <16 x i8>, ptr %ptr, align 16946 %r = call <16 x i8> @llvm.mips.ori.b(<16 x i8> %a, i32 -25)947 store <16 x i8> %r, ptr %ptr, align 16948 ret void949}950 951define void @neg_sldi_b(ptr %ptr) {952entry:953 %a = load <16 x i8>, ptr %ptr, align 16954 %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 16956 ret void957}958 959define void @neg_slli_b(ptr %ptr) {960entry:961 %a = load <16 x i8>, ptr %ptr, align 16962 %r = call <16 x i8> @llvm.mips.slli.b(<16 x i8> %a, i32 -3)963 store <16 x i8> %r, ptr %ptr, align 16964 ret void965}966 967define void @neg_splati_b(ptr %ptr) {968entry:969 %a = load <16 x i8>, ptr %ptr, align 16970 %r = call <16 x i8> @llvm.mips.splati.b(<16 x i8> %a, i32 -3)971 store <16 x i8> %r, ptr %ptr, align 16972 ret void973}974 975define void @neg_srai_b(ptr %ptr) {976entry:977 %a = load <16 x i8>, ptr %ptr, align 16978 %r = call <16 x i8> @llvm.mips.srai.b(<16 x i8> %a, i32 -3)979 store <16 x i8> %r, ptr %ptr, align 16980 ret void981}982 983define void @neg_srari_b(ptr %ptr) {984entry:985 %a = load <16 x i8>, ptr %ptr, align 16986 %r = call <16 x i8> @llvm.mips.srari.b(<16 x i8> %a, i32 -3)987 store <16 x i8> %r, ptr %ptr, align 16988 ret void989}990 991define void @neg_srli_b(ptr %ptr) {992entry:993 %a = load <16 x i8>, ptr %ptr, align 16994 %r = call <16 x i8> @llvm.mips.srli.b(<16 x i8> %a, i32 -3)995 store <16 x i8> %r, ptr %ptr, align 16996 ret void997}998 999define void @neg_srlri_b(ptr %ptr) {1000entry:1001 %a = load <16 x i8>, ptr %ptr, align 161002 %r = call <16 x i8> @llvm.mips.srlri.b(<16 x i8> %a, i32 -3)1003 store <16 x i8> %r, ptr %ptr, align 161004 ret void1005}1006 1007define void @neg_addvi_w(ptr %ptr) {1008entry:1009 %a = load <4 x i32>, ptr %ptr, align 161010 %r = call <4 x i32> @llvm.mips.addvi.w(<4 x i32> %a, i32 -25)1011 store <4 x i32> %r, ptr %ptr, align 161012 ret void1013}1014 1015define void @neg_bclri_w(ptr %ptr) {1016entry:1017 %a = load <4 x i32>, ptr %ptr, align 161018 %r = call <4 x i32> @llvm.mips.bclri.w(<4 x i32> %a, i32 -25)1019 store <4 x i32> %r, ptr %ptr, align 161020 ret void1021}1022 1023define void @neg_binsli_w(ptr %ptr) {1024entry:1025 %a = load <4 x i32>, ptr %ptr, align 161026 %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 161028 ret void1029}1030 1031define void @neg_binsri_w(ptr %ptr) {1032entry:1033 %a = load <4 x i32>, ptr %ptr, align 161034 %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 161036 ret void1037}1038 1039define void @neg_bnegi_w(ptr %ptr) {1040entry:1041 %a = load <4 x i32>, ptr %ptr, align 161042 %r = call <4 x i32> @llvm.mips.bnegi.w(<4 x i32> %a, i32 -25)1043 store <4 x i32> %r, ptr %ptr, align 161044 ret void1045}1046 1047define void @neg_bseti_w(ptr %ptr) {1048entry:1049 %a = load <4 x i32>, ptr %ptr, align 161050 %r = call <4 x i32> @llvm.mips.bseti.w(<4 x i32> %a, i32 -25)1051 store <4 x i32> %r, ptr %ptr, align 161052 ret void1053}1054 1055define void @neg_clei_s_w(ptr %ptr) {1056entry:1057 %a = load <4 x i32>, ptr %ptr, align 161058 %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 161060 ret void1061}1062 1063define void @neg_clei_u_w(ptr %ptr) {1064entry:1065 %a = load <4 x i32>, ptr %ptr, align 161066 %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 161068 ret void1069}1070 1071define void @neg_clti_s_w(ptr %ptr) {1072entry:1073 %a = load <4 x i32>, ptr %ptr, align 161074 %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 161076 ret void1077}1078 1079define void @neg_clti_u_w(ptr %ptr) {1080entry:1081 %a = load <4 x i32>, ptr %ptr, align 161082 %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 161084 ret void1085}1086 1087define void @neg_maxi_s_w(ptr %ptr) {1088entry:1089 %a = load <4 x i32>, ptr %ptr, align 161090 %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 161092 ret void1093}1094 1095define void @neg_maxi_u_w(ptr %ptr) {1096entry:1097 %a = load <4 x i32>, ptr %ptr, align 161098 %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 161100 ret void1101}1102 1103define void @neg_mini_s_w(ptr %ptr) {1104entry:1105 %a = load <4 x i32>, ptr %ptr, align 161106 %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 161108 ret void1109}1110 1111define void @neg_mini_u_w(ptr %ptr) {1112entry:1113 %a = load <4 x i32>, ptr %ptr, align 161114 %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 161116 ret void1117}1118 1119define void @neg_ldi_w(ptr %ptr) {1120entry:1121 %r = call <4 x i32> @llvm.mips.ldi.w(i32 -300)1122 store <4 x i32> %r, ptr %ptr, align 161123 ret void1124}1125 1126define void @neg_sldi_w(ptr %ptr) {1127entry:1128 %a = load <4 x i32>, ptr %ptr, align 161129 %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 161131 ret void1132}1133 1134define void @neg_slli_w(ptr %ptr) {1135entry:1136 %a = load <4 x i32>, ptr %ptr, align 161137 %r = call <4 x i32> @llvm.mips.slli.w(<4 x i32> %a, i32 -3)1138 store <4 x i32> %r, ptr %ptr, align 161139 ret void1140}1141 1142define void @neg_splati_w(ptr %ptr) {1143entry:1144 %a = load <4 x i32>, ptr %ptr, align 161145 %r = call <4 x i32> @llvm.mips.splati.w(<4 x i32> %a, i32 -3)1146 store <4 x i32> %r, ptr %ptr, align 161147 ret void1148}1149 1150define void @neg_srai_w(ptr %ptr) {1151entry:1152 %a = load <4 x i32>, ptr %ptr, align 161153 %r = call <4 x i32> @llvm.mips.srai.w(<4 x i32> %a, i32 -3)1154 store <4 x i32> %r, ptr %ptr, align 161155 ret void1156}1157 1158define void @neg_srari_w(ptr %ptr) {1159entry:1160 %a = load <4 x i32>, ptr %ptr, align 161161 %r = call <4 x i32> @llvm.mips.srari.w(<4 x i32> %a, i32 -3)1162 store <4 x i32> %r, ptr %ptr, align 161163 ret void1164}1165 1166define void @neg_srli_w(ptr %ptr) {1167entry:1168 %a = load <4 x i32>, ptr %ptr, align 161169 %r = call <4 x i32> @llvm.mips.srli.w(<4 x i32> %a, i32 -3)1170 store <4 x i32> %r, ptr %ptr, align 161171 ret void1172}1173 1174define void @neg_srlri_w(ptr %ptr) {1175entry:1176 %a = load <4 x i32>, ptr %ptr, align 161177 %r = call <4 x i32> @llvm.mips.srlri.w(<4 x i32> %a, i32 -3)1178 store <4 x i32> %r, ptr %ptr, align 161179 ret void1180}1181 1182define void @neg_addvi_h(ptr %ptr) {1183entry:1184 %a = load <8 x i16>, ptr %ptr, align 161185 %r = call <8 x i16> @llvm.mips.addvi.h(<8 x i16> %a, i32 -25)1186 store <8 x i16> %r, ptr %ptr, align 161187 ret void1188}1189 1190define void @neg_bclri_h(ptr %ptr) {1191entry:1192 %a = load <8 x i16>, ptr %ptr, align 161193 %r = call <8 x i16> @llvm.mips.bclri.h(<8 x i16> %a, i32 -8)1194 store <8 x i16> %r, ptr %ptr, align 161195 ret void1196}1197 1198define void @neg_binsli_h(ptr %ptr) {1199entry:1200 %a = load <8 x i16>, ptr %ptr, align 161201 %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 161203 ret void1204}1205 1206define void @neg_binsri_h(ptr %ptr) {1207entry:1208 %a = load <8 x i16>, ptr %ptr, align 161209 %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 161211 ret void1212}1213 1214define void @neg_bnegi_h(ptr %ptr) {1215entry:1216 %a = load <8 x i16>, ptr %ptr, align 161217 %r = call <8 x i16> @llvm.mips.bnegi.h(<8 x i16> %a, i32 -14)1218 store <8 x i16> %r, ptr %ptr, align 161219 ret void1220}1221 1222define void @neg_bseti_h(ptr %ptr) {1223entry:1224 %a = load <8 x i16>, ptr %ptr, align 161225 %r = call <8 x i16> @llvm.mips.bseti.h(<8 x i16> %a, i32 -15)1226 store <8 x i16> %r, ptr %ptr, align 161227 ret void1228}1229 1230define void @neg_clei_s_h(ptr %ptr) {1231entry:1232 %a = load <8 x i16>, ptr %ptr, align 161233 %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 161235 ret void1236}1237 1238define void @neg_clei_u_h(ptr %ptr) {1239entry:1240 %a = load <8 x i16>, ptr %ptr, align 161241 %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 161243 ret void1244}1245 1246define void @neg_clti_s_h(ptr %ptr) {1247entry:1248 %a = load <8 x i16>, ptr %ptr, align 161249 %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 161251 ret void1252}1253 1254define void @neg_clti_u_h(ptr %ptr) {1255entry:1256 %a = load <8 x i16>, ptr %ptr, align 161257 %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 161259 ret void1260}1261 1262define void @neg_maxi_s_h(ptr %ptr) {1263entry:1264 %a = load <8 x i16>, ptr %ptr, align 161265 %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 161267 ret void1268}1269 1270define void @neg_maxi_u_h(ptr %ptr) {1271entry:1272 %a = load <8 x i16>, ptr %ptr, align 161273 %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 161275 ret void1276}1277 1278define void @neg_mini_s_h(ptr %ptr) {1279entry:1280 %a = load <8 x i16>, ptr %ptr, align 161281 %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 161283 ret void1284}1285 1286define void @neg_mini_u_h(ptr %ptr) {1287entry:1288 %a = load <8 x i16>, ptr %ptr, align 161289 %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 161291 ret void1292}1293 1294define void @neg_ldi_h(ptr %ptr) {1295entry:1296 %r = call <8 x i16> @llvm.mips.ldi.h(i32 -300)1297 store <8 x i16> %r, ptr %ptr, align 161298 ret void1299}1300 1301define void @neg_sldi_h(ptr %ptr) {1302entry:1303 %a = load <8 x i16>, ptr %ptr, align 161304 %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 161306 ret void1307}1308 1309define void @neg_slli_h(ptr %ptr) {1310entry:1311 %a = load <8 x i16>, ptr %ptr, align 161312 %r = call <8 x i16> @llvm.mips.slli.h(<8 x i16> %a, i32 -3)1313 store <8 x i16> %r, ptr %ptr, align 161314 ret void1315}1316 1317define void @neg_splati_h(ptr %ptr) {1318entry:1319 %a = load <8 x i16>, ptr %ptr, align 161320 %r = call <8 x i16> @llvm.mips.splati.h(<8 x i16> %a, i32 -3)1321 store <8 x i16> %r, ptr %ptr, align 161322 ret void1323}1324 1325define void @neg_srai_h(ptr %ptr) {1326entry:1327 %a = load <8 x i16>, ptr %ptr, align 161328 %r = call <8 x i16> @llvm.mips.srai.h(<8 x i16> %a, i32 -3)1329 store <8 x i16> %r, ptr %ptr, align 161330 ret void1331}1332 1333define void @neg_srari_h(ptr %ptr) {1334entry:1335 %a = load <8 x i16>, ptr %ptr, align 161336 %r = call <8 x i16> @llvm.mips.srari.h(<8 x i16> %a, i32 -3)1337 store <8 x i16> %r, ptr %ptr, align 161338 ret void1339}1340 1341define void @neg_srli_h(ptr %ptr) {1342entry:1343 %a = load <8 x i16>, ptr %ptr, align 161344 %r = call <8 x i16> @llvm.mips.srli.h(<8 x i16> %a, i32 -3)1345 store <8 x i16> %r, ptr %ptr, align 161346 ret void1347}1348 1349define void @neg_srlri_h(ptr %ptr) {1350entry:1351 %a = load <8 x i16>, ptr %ptr, align 161352 %r = call <8 x i16> @llvm.mips.srlri.h(<8 x i16> %a, i32 -3)1353 store <8 x i16> %r, ptr %ptr, align 161354 ret void1355}1356 1357define i32 @neg_copy_s_b(ptr %ptr) {1358entry:1359 %a = load <16 x i8>, ptr %ptr, align 161360 %r = call i32 @llvm.mips.copy.s.b(<16 x i8> %a, i32 -1)1361 ret i32 %r1362}1363 1364define i32 @neg_copy_s_h(ptr %ptr) {1365entry:1366 %a = load <8 x i16>, ptr %ptr, align 161367 %r = call i32 @llvm.mips.copy.s.h(<8 x i16> %a, i32 -1)1368 ret i32 %r1369}1370 1371define i32 @neg_copy_s_w(ptr %ptr) {1372entry:1373 %a = load <4 x i32>, ptr %ptr, align 161374 %r = call i32 @llvm.mips.copy.s.w(<4 x i32> %a, i32 -1)1375 ret i32 %r1376}1377 1378define i32 @neg_copy_u_b(ptr %ptr) {1379entry:1380 %a = load <16 x i8>, ptr %ptr, align 161381 %r = call i32 @llvm.mips.copy.u.b(<16 x i8> %a, i32 -1)1382 ret i32 %r1383}1384 1385 1386define i32 @neg_copy_u_h(ptr %ptr) {1387entry:1388 %a = load <8 x i16>, ptr %ptr, align 161389 %r = call i32 @llvm.mips.copy.u.h(<8 x i16> %a, i32 -1)1390 ret i32 %r1391}1392 1393 1394define i32 @neg_copy_u_w(ptr %ptr) {1395entry:1396 %a = load <4 x i32>, ptr %ptr, align 161397 %r = call i32 @llvm.mips.copy.u.w(<4 x i32> %a, i32 -1)1398 ret i32 %r1399}1400 1401define i64 @neg_copy_s_d(ptr %ptr) {1402entry: %a = load <2 x i64>, ptr %ptr, align 161403 %r = call i64 @llvm.mips.copy.s.d(<2 x i64> %a, i32 -1)1404 ret i64 %r1405}1406 1407define i64 @neg_copy_u_d(ptr %ptr) {1408entry: %a = load <2 x i64>, ptr %ptr, align 161409 %r = call i64 @llvm.mips.copy.u.d(<2 x i64> %a, i32 -1)1410 ret i64 %r1411}1412 1413define void @neg_addvi_d(ptr %ptr) {1414entry:1415 %a = load <2 x i64>, ptr %ptr, align 161416 %r = call <2 x i64> @llvm.mips.addvi.d(<2 x i64> %a, i32 -25)1417 store <2 x i64> %r, ptr %ptr, align 161418 ret void1419}1420 1421define void @neg_bclri_d(ptr %ptr) {1422entry:1423 %a = load <2 x i64>, ptr %ptr, align 161424 %r = call <2 x i64> @llvm.mips.bclri.d(<2 x i64> %a, i32 -25)1425 store <2 x i64> %r, ptr %ptr, align 161426 ret void1427}1428 1429define void @neg_binsli_d(ptr %ptr) {1430entry:1431 %a = load <2 x i64>, ptr %ptr, align 161432 %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 161434 ret void1435}1436 1437define void @neg_binsri_d(ptr %ptr) {1438entry:1439 %a = load <2 x i64>, ptr %ptr, align 161440 %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 161442 ret void1443}1444 1445define void @neg_bnegi_d(ptr %ptr) {1446entry:1447 %a = load <2 x i64>, ptr %ptr, align 161448 %r = call <2 x i64> @llvm.mips.bnegi.d(<2 x i64> %a, i32 -25)1449 store <2 x i64> %r, ptr %ptr, align 161450 ret void1451}1452 1453define void @neg_bseti_d(ptr %ptr) {1454entry:1455 %a = load <2 x i64>, ptr %ptr, align 161456 %r = call <2 x i64> @llvm.mips.bseti.d(<2 x i64> %a, i32 -25)1457 store <2 x i64> %r, ptr %ptr, align 161458 ret void1459}1460 1461define void @neg_clei_s_d(ptr %ptr) {1462entry:1463 %a = load <2 x i64>, ptr %ptr, align 161464 %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 161466 ret void1467}1468 1469define void @neg_clei_u_d(ptr %ptr) {1470entry:1471 %a = load <2 x i64>, ptr %ptr, align 161472 %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 161474 ret void1475}1476 1477define void @neg_clti_s_d(ptr %ptr) {1478entry:1479 %a = load <2 x i64>, ptr %ptr, align 161480 %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 161482 ret void1483}1484 1485define void @neg_clti_u_d(ptr %ptr) {1486entry:1487 %a = load <2 x i64>, ptr %ptr, align 161488 %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 161490 ret void1491}1492 1493define void @neg_ldi_d(ptr %ptr) {1494entry:1495 %r = call <2 x i64> @llvm.mips.ldi.d(i32 -3)1496 store <2 x i64> %r, ptr %ptr, align 161497 ret void1498}1499 1500define void @neg_maxi_s_d(ptr %ptr) {1501entry:1502 %a = load <2 x i64>, ptr %ptr, align 161503 %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 161505 ret void1506}1507 1508define void @neg_maxi_u_d(ptr %ptr) {1509entry:1510 %a = load <2 x i64>, ptr %ptr, align 161511 %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 161513 ret void1514}1515 1516define void @neg_mini_s_d(ptr %ptr) {1517entry:1518 %a = load <2 x i64>, ptr %ptr, align 161519 %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 161521 ret void1522}1523 1524define void @neg_mini_u_d(ptr %ptr) {1525entry:1526 %a = load <2 x i64>, ptr %ptr, align 161527 %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 161529 ret void1530}1531 1532define void @neg_sldi_d(ptr %ptr) {1533entry:1534 %a = load <2 x i64>, ptr %ptr, align 161535 %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 161537 ret void1538}1539 1540define void @neg_slli_d(ptr %ptr) {1541entry:1542 %a = load <2 x i64>, ptr %ptr, align 161543 %r = call <2 x i64> @llvm.mips.slli.d(<2 x i64> %a, i32 -3)1544 store <2 x i64> %r, ptr %ptr, align 161545 ret void1546}1547 1548define void @neg_srai_d(ptr %ptr) {1549entry:1550 %a = load <2 x i64>, ptr %ptr, align 161551 %r = call <2 x i64> @llvm.mips.srai.d(<2 x i64> %a, i32 -3)1552 store <2 x i64> %r, ptr %ptr, align 161553 ret void1554}1555 1556define void @neg_srari_d(ptr %ptr) {1557entry:1558 %a = load <2 x i64>, ptr %ptr, align 161559 %r = call <2 x i64> @llvm.mips.srari.d(<2 x i64> %a, i32 -3)1560 store <2 x i64> %r, ptr %ptr, align 161561 ret void1562}1563 1564define void @neg_srli_d(ptr %ptr) {1565entry:1566 %a = load <2 x i64>, ptr %ptr, align 161567 %r = call <2 x i64> @llvm.mips.srli.d(<2 x i64> %a, i32 -3)1568 store <2 x i64> %r, ptr %ptr, align 161569 ret void1570}1571 1572define void @neg_srlri_d(ptr %ptr) {1573entry:1574 %a = load <2 x i64>, ptr %ptr, align 161575 %r = call <2 x i64> @llvm.mips.srlri.d(<2 x i64> %a, i32 -3)1576 store <2 x i64> %r, ptr %ptr, align 161577 ret void1578}1579 1580declare <8 x i16> @llvm.mips.ldi.h(i32)1581declare <8 x i16> @llvm.mips.addvi.h(<8 x i16>, i32)1582declare <8 x i16> @llvm.mips.bclri.h(<8 x i16>, i32)1583declare <8 x i16> @llvm.mips.binsli.h(<8 x i16>, <8 x i16>, i32)1584declare <8 x i16> @llvm.mips.binsri.h(<8 x i16>, <8 x i16>, i32)1585declare <8 x i16> @llvm.mips.bnegi.h(<8 x i16>, i32)1586declare <8 x i16> @llvm.mips.bseti.h(<8 x i16>, i32)1587declare <8 x i16> @llvm.mips.clei.s.h(<8 x i16>, i32)1588declare <8 x i16> @llvm.mips.clei.u.h(<8 x i16>, i32)1589declare <8 x i16> @llvm.mips.clti.s.h(<8 x i16>, i32)1590declare <8 x i16> @llvm.mips.clti.u.h(<8 x i16>, i32)1591declare <8 x i16> @llvm.mips.maxi.s.h(<8 x i16>, i32)1592declare <8 x i16> @llvm.mips.maxi.u.h(<8 x i16>, i32)1593declare <8 x i16> @llvm.mips.mini.s.h(<8 x i16>, i32)1594declare <8 x i16> @llvm.mips.mini.u.h(<8 x i16>, i32)1595declare <8 x i16> @llvm.mips.sldi.h(<8 x i16>, <8 x i16>, i32)1596declare <8 x i16> @llvm.mips.slli.h(<8 x i16>, i32)1597declare <8 x i16> @llvm.mips.splati.h(<8 x i16>, i32)1598declare <8 x i16> @llvm.mips.srai.h(<8 x i16>, i32)1599declare <8 x i16> @llvm.mips.srari.h(<8 x i16>, i32)1600declare <8 x i16> @llvm.mips.srli.h(<8 x i16>, i32)1601declare <8 x i16> @llvm.mips.srlri.h(<8 x i16>, i32)1602declare <4 x i32> @llvm.mips.addvi.w(<4 x i32>, i32)1603declare <4 x i32> @llvm.mips.bclri.w(<4 x i32>, i32)1604declare <4 x i32> @llvm.mips.binsli.w(<4 x i32>, <4 x i32>, i32)1605declare <4 x i32> @llvm.mips.binsri.w(<4 x i32>, <4 x i32>, i32)1606declare <4 x i32> @llvm.mips.bnegi.w(<4 x i32>, i32)1607declare <4 x i32> @llvm.mips.bseti.w(<4 x i32>, i32)1608declare <4 x i32> @llvm.mips.ldi.w(i32)1609declare <4 x i32> @llvm.mips.clei.s.w(<4 x i32>, i32)1610declare <4 x i32> @llvm.mips.clei.u.w(<4 x i32>, i32)1611declare <4 x i32> @llvm.mips.clti.s.w(<4 x i32>, i32)1612declare <4 x i32> @llvm.mips.clti.u.w(<4 x i32>, i32)1613declare <4 x i32> @llvm.mips.maxi.s.w(<4 x i32>, i32)1614declare <4 x i32> @llvm.mips.maxi.u.w(<4 x i32>, i32)1615declare <4 x i32> @llvm.mips.mini.s.w(<4 x i32>, i32)1616declare <4 x i32> @llvm.mips.mini.u.w(<4 x i32>, i32)1617declare <4 x i32> @llvm.mips.sldi.w(<4 x i32>, <4 x i32>, i32)1618declare <4 x i32> @llvm.mips.slli.w(<4 x i32>, i32)1619declare <4 x i32> @llvm.mips.splati.w(<4 x i32>, i32)1620declare <4 x i32> @llvm.mips.srai.w(<4 x i32>, i32)1621declare <4 x i32> @llvm.mips.srari.w(<4 x i32>, i32)1622declare <4 x i32> @llvm.mips.srli.w(<4 x i32>, i32)1623declare <4 x i32> @llvm.mips.srlri.w(<4 x i32>, i32)1624declare <2 x i64> @llvm.mips.ldi.d(i32)1625declare <2 x i64> @llvm.mips.addvi.d(<2 x i64>, i32)1626declare <2 x i64> @llvm.mips.bclri.d(<2 x i64>, i32)1627declare <2 x i64> @llvm.mips.binsli.d(<2 x i64>, <2 x i64>, i32)1628declare <2 x i64> @llvm.mips.binsri.d(<2 x i64>, <2 x i64>, i32)1629declare <2 x i64> @llvm.mips.bnegi.d(<2 x i64>, i32)1630declare <2 x i64> @llvm.mips.bseti.d(<2 x i64>, i32)1631declare <2 x i64> @llvm.mips.clei.s.d(<2 x i64>, i32)1632declare <2 x i64> @llvm.mips.clei.u.d(<2 x i64>, i32)1633declare <2 x i64> @llvm.mips.clti.s.d(<2 x i64>, i32)1634declare <2 x i64> @llvm.mips.clti.u.d(<2 x i64>, i32)1635declare <2 x i64> @llvm.mips.maxi.s.d(<2 x i64>, i32)1636declare <2 x i64> @llvm.mips.maxi.u.d(<2 x i64>, i32)1637declare <2 x i64> @llvm.mips.mini.s.d(<2 x i64>, i32)1638declare <2 x i64> @llvm.mips.mini.u.d(<2 x i64>, i32)1639declare <2 x i64> @llvm.mips.sldi.d(<2 x i64>, <2 x i64>, i32)1640declare <2 x i64> @llvm.mips.slli.d(<2 x i64>, i32)1641declare <2 x i64> @llvm.mips.splati.d(<2 x i64>, i32)1642declare <2 x i64> @llvm.mips.srai.d(<2 x i64>, i32)1643declare <2 x i64> @llvm.mips.srari.d(<2 x i64>, i32)1644declare <2 x i64> @llvm.mips.srli.d(<2 x i64>, i32)1645declare <2 x i64> @llvm.mips.srlri.d(<2 x i64>, i32)1646declare <16 x i8> @llvm.mips.ldi.b(i32)1647declare <16 x i8> @llvm.mips.addvi.b(<16 x i8>, i32)1648declare <16 x i8> @llvm.mips.andi.b(<16 x i8>, i32)1649declare <16 x i8> @llvm.mips.bclri.b(<16 x i8>, i32)1650declare <16 x i8> @llvm.mips.binsli.b(<16 x i8>, <16 x i8>, i32)1651declare <16 x i8> @llvm.mips.binsri.b(<16 x i8>, <16 x i8>, i32)1652declare <16 x i8> @llvm.mips.bmnzi.b(<16 x i8>, <16 x i8>, i32)1653declare <16 x i8> @llvm.mips.bnegi.b(<16 x i8>, i32)1654declare <16 x i8> @llvm.mips.bseli.b(<16 x i8>, <16 x i8>, i32)1655declare <16 x i8> @llvm.mips.bseti.b(<16 x i8>, i32)1656declare <16 x i8> @llvm.mips.clei.s.b(<16 x i8>, i32)1657declare <16 x i8> @llvm.mips.clei.u.b(<16 x i8>, i32)1658declare <16 x i8> @llvm.mips.clti.s.b(<16 x i8>, i32)1659declare <16 x i8> @llvm.mips.clti.u.b(<16 x i8>, i32)1660declare <16 x i8> @llvm.mips.maxi.s.b(<16 x i8>, i32)1661declare <16 x i8> @llvm.mips.maxi.u.b(<16 x i8>, i32)1662declare <16 x i8> @llvm.mips.mini.s.b(<16 x i8>, i32)1663declare <16 x i8> @llvm.mips.mini.u.b(<16 x i8>, i32)1664declare <16 x i8> @llvm.mips.nori.b(<16 x i8>, i32)1665declare <16 x i8> @llvm.mips.ori.b(<16 x i8>, i32)1666declare <16 x i8> @llvm.mips.sldi.b(<16 x i8>, <16 x i8>, i32)1667declare <16 x i8> @llvm.mips.slli.b(<16 x i8>, i32)1668declare <16 x i8> @llvm.mips.splati.b(<16 x i8>, i32)1669declare <16 x i8> @llvm.mips.srai.b(<16 x i8>, i32)1670declare <16 x i8> @llvm.mips.srari.b(<16 x i8>, i32)1671declare <16 x i8> @llvm.mips.srli.b(<16 x i8>, i32)1672declare <16 x i8> @llvm.mips.srlri.b(<16 x i8>, i32)1673declare i32 @llvm.mips.copy.s.h(<8 x i16>, i32)1674declare i32 @llvm.mips.copy.u.h(<8 x i16>, i32)1675declare i32 @llvm.mips.copy.s.w(<4 x i32>, i32)1676declare i32 @llvm.mips.copy.u.w(<4 x i32>, i32)1677declare i64 @llvm.mips.copy.s.d(<2 x i64>, i32)1678declare i64 @llvm.mips.copy.u.d(<2 x i64>, i32)1679declare i32 @llvm.mips.copy.s.b(<16 x i8>, i32)1680declare i32 @llvm.mips.copy.u.b(<16 x i8>, i32)1681declare <16 x i8> @llvm.mips.bmzi.b(<16 x i8>, <16 x i8>, i32)1682