brintos

brintos / llvm-project-archived public Read only

0
0
Text · 44.3 KiB · f8bb5b3 Raw
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