brintos

brintos / llvm-project-archived public Read only

0
0
Text · 17.2 KiB · e728364 Raw
519 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -O0 -mtriple=mipsel-linux-gnu -run-pass=legalizer -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=MIPS323--- |4 5  define void @sdiv_i8() {entry: ret void}6  define void @sdiv_i16() {entry: ret void}7  define void @sdiv_i32() {entry: ret void}8  define void @sdiv_i64() {entry: ret void}9  define void @srem_i8() {entry: ret void}10  define void @srem_i16() {entry: ret void}11  define void @srem_i32() {entry: ret void}12  define void @srem_i64() {entry: ret void}13  define void @udiv_i8() {entry: ret void}14  define void @udiv_i16() {entry: ret void}15  define void @udiv_i32() {entry: ret void}16  define void @udiv_i64() {entry: ret void}17  define void @urem_i8() {entry: ret void}18  define void @urem_i16() {entry: ret void}19  define void @urem_i32() {entry: ret void}20  define void @urem_i64() {entry: ret void}21 22...23---24name:            sdiv_i825alignment:       426tracksRegLiveness: true27body:             |28  bb.1.entry:29    liveins: $a0, $a130 31    ; MIPS32-LABEL: name: sdiv_i832    ; MIPS32: liveins: $a0, $a133    ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a034    ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a135    ; MIPS32: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2436    ; MIPS32: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)37    ; MIPS32: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)38    ; MIPS32: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C]](s32)39    ; MIPS32: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)40    ; MIPS32: [[SDIV:%[0-9]+]]:_(s32) = G_SDIV [[ASHR]], [[ASHR1]]41    ; MIPS32: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[SDIV]], [[C]](s32)42    ; MIPS32: [[ASHR2:%[0-9]+]]:_(s32) = G_ASHR [[SHL2]], [[C]](s32)43    ; MIPS32: $v0 = COPY [[ASHR2]](s32)44    ; MIPS32: RetRA implicit $v045    %2:_(s32) = COPY $a046    %0:_(s8) = G_TRUNC %2(s32)47    %3:_(s32) = COPY $a148    %1:_(s8) = G_TRUNC %3(s32)49    %4:_(s8) = G_SDIV %1, %050    %5:_(s32) = G_SEXT %4(s8)51    $v0 = COPY %5(s32)52    RetRA implicit $v053 54...55---56name:            sdiv_i1657alignment:       458tracksRegLiveness: true59body:             |60  bb.1.entry:61    liveins: $a0, $a162 63    ; MIPS32-LABEL: name: sdiv_i1664    ; MIPS32: liveins: $a0, $a165    ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a066    ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a167    ; MIPS32: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1668    ; MIPS32: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)69    ; MIPS32: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)70    ; MIPS32: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C]](s32)71    ; MIPS32: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)72    ; MIPS32: [[SDIV:%[0-9]+]]:_(s32) = G_SDIV [[ASHR]], [[ASHR1]]73    ; MIPS32: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[SDIV]], [[C]](s32)74    ; MIPS32: [[ASHR2:%[0-9]+]]:_(s32) = G_ASHR [[SHL2]], [[C]](s32)75    ; MIPS32: $v0 = COPY [[ASHR2]](s32)76    ; MIPS32: RetRA implicit $v077    %2:_(s32) = COPY $a078    %0:_(s16) = G_TRUNC %2(s32)79    %3:_(s32) = COPY $a180    %1:_(s16) = G_TRUNC %3(s32)81    %4:_(s16) = G_SDIV %1, %082    %5:_(s32) = G_SEXT %4(s16)83    $v0 = COPY %5(s32)84    RetRA implicit $v085 86...87---88name:            sdiv_i3289alignment:       490tracksRegLiveness: true91body:             |92  bb.1.entry:93    liveins: $a0, $a194 95    ; MIPS32-LABEL: name: sdiv_i3296    ; MIPS32: liveins: $a0, $a197    ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a098    ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a199    ; MIPS32: [[SDIV:%[0-9]+]]:_(s32) = G_SDIV [[COPY1]], [[COPY]]100    ; MIPS32: $v0 = COPY [[SDIV]](s32)101    ; MIPS32: RetRA implicit $v0102    %0:_(s32) = COPY $a0103    %1:_(s32) = COPY $a1104    %2:_(s32) = G_SDIV %1, %0105    $v0 = COPY %2(s32)106    RetRA implicit $v0107 108...109---110name:            sdiv_i64111alignment:       4112tracksRegLiveness: true113body:             |114  bb.1.entry:115    liveins: $a0, $a1, $a2, $a3116 117    ; MIPS32-LABEL: name: sdiv_i64118    ; MIPS32: liveins: $a0, $a1, $a2, $a3119    ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0120    ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1121    ; MIPS32: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2122    ; MIPS32: [[COPY3:%[0-9]+]]:_(s32) = COPY $a3123    ; MIPS32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp124    ; MIPS32: $a0 = COPY [[COPY2]](s32)125    ; MIPS32: $a1 = COPY [[COPY3]](s32)126    ; MIPS32: $a2 = COPY [[COPY]](s32)127    ; MIPS32: $a3 = COPY [[COPY1]](s32)128    ; MIPS32: JAL &__divdi3, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0, implicit-def $v1129    ; MIPS32: [[COPY4:%[0-9]+]]:_(s32) = COPY $v0130    ; MIPS32: [[COPY5:%[0-9]+]]:_(s32) = COPY $v1131    ; MIPS32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp132    ; MIPS32: $v0 = COPY [[COPY4]](s32)133    ; MIPS32: $v1 = COPY [[COPY5]](s32)134    ; MIPS32: RetRA implicit $v0, implicit $v1135    %2:_(s32) = COPY $a0136    %3:_(s32) = COPY $a1137    %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)138    %4:_(s32) = COPY $a2139    %5:_(s32) = COPY $a3140    %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)141    %6:_(s64) = G_SDIV %1, %0142    %7:_(s32), %8:_(s32) = G_UNMERGE_VALUES %6(s64)143    $v0 = COPY %7(s32)144    $v1 = COPY %8(s32)145    RetRA implicit $v0, implicit $v1146 147...148---149name:            srem_i8150alignment:       4151tracksRegLiveness: true152body:             |153  bb.1.entry:154    liveins: $a0, $a1155 156    ; MIPS32-LABEL: name: srem_i8157    ; MIPS32: liveins: $a0, $a1158    ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0159    ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1160    ; MIPS32: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 24161    ; MIPS32: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)162    ; MIPS32: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)163    ; MIPS32: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C]](s32)164    ; MIPS32: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)165    ; MIPS32: [[SREM:%[0-9]+]]:_(s32) = G_SREM [[ASHR]], [[ASHR1]]166    ; MIPS32: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[SREM]], [[C]](s32)167    ; MIPS32: [[ASHR2:%[0-9]+]]:_(s32) = G_ASHR [[SHL2]], [[C]](s32)168    ; MIPS32: $v0 = COPY [[ASHR2]](s32)169    ; MIPS32: RetRA implicit $v0170    %2:_(s32) = COPY $a0171    %0:_(s8) = G_TRUNC %2(s32)172    %3:_(s32) = COPY $a1173    %1:_(s8) = G_TRUNC %3(s32)174    %4:_(s8) = G_SREM %1, %0175    %5:_(s32) = G_SEXT %4(s8)176    $v0 = COPY %5(s32)177    RetRA implicit $v0178 179...180---181name:            srem_i16182alignment:       4183tracksRegLiveness: true184body:             |185  bb.1.entry:186    liveins: $a0, $a1187 188    ; MIPS32-LABEL: name: srem_i16189    ; MIPS32: liveins: $a0, $a1190    ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0191    ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1192    ; MIPS32: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16193    ; MIPS32: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)194    ; MIPS32: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)195    ; MIPS32: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C]](s32)196    ; MIPS32: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)197    ; MIPS32: [[SREM:%[0-9]+]]:_(s32) = G_SREM [[ASHR]], [[ASHR1]]198    ; MIPS32: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[SREM]], [[C]](s32)199    ; MIPS32: [[ASHR2:%[0-9]+]]:_(s32) = G_ASHR [[SHL2]], [[C]](s32)200    ; MIPS32: $v0 = COPY [[ASHR2]](s32)201    ; MIPS32: RetRA implicit $v0202    %2:_(s32) = COPY $a0203    %0:_(s16) = G_TRUNC %2(s32)204    %3:_(s32) = COPY $a1205    %1:_(s16) = G_TRUNC %3(s32)206    %4:_(s16) = G_SREM %1, %0207    %5:_(s32) = G_SEXT %4(s16)208    $v0 = COPY %5(s32)209    RetRA implicit $v0210 211...212---213name:            srem_i32214alignment:       4215tracksRegLiveness: true216body:             |217  bb.1.entry:218    liveins: $a0, $a1219 220    ; MIPS32-LABEL: name: srem_i32221    ; MIPS32: liveins: $a0, $a1222    ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0223    ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1224    ; MIPS32: [[SREM:%[0-9]+]]:_(s32) = G_SREM [[COPY1]], [[COPY]]225    ; MIPS32: $v0 = COPY [[SREM]](s32)226    ; MIPS32: RetRA implicit $v0227    %0:_(s32) = COPY $a0228    %1:_(s32) = COPY $a1229    %2:_(s32) = G_SREM %1, %0230    $v0 = COPY %2(s32)231    RetRA implicit $v0232 233...234---235name:            srem_i64236alignment:       4237tracksRegLiveness: true238body:             |239  bb.1.entry:240    liveins: $a0, $a1, $a2, $a3241 242    ; MIPS32-LABEL: name: srem_i64243    ; MIPS32: liveins: $a0, $a1, $a2, $a3244    ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0245    ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1246    ; MIPS32: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2247    ; MIPS32: [[COPY3:%[0-9]+]]:_(s32) = COPY $a3248    ; MIPS32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp249    ; MIPS32: $a0 = COPY [[COPY2]](s32)250    ; MIPS32: $a1 = COPY [[COPY3]](s32)251    ; MIPS32: $a2 = COPY [[COPY]](s32)252    ; MIPS32: $a3 = COPY [[COPY1]](s32)253    ; MIPS32: JAL &__moddi3, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0, implicit-def $v1254    ; MIPS32: [[COPY4:%[0-9]+]]:_(s32) = COPY $v0255    ; MIPS32: [[COPY5:%[0-9]+]]:_(s32) = COPY $v1256    ; MIPS32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp257    ; MIPS32: $v0 = COPY [[COPY4]](s32)258    ; MIPS32: $v1 = COPY [[COPY5]](s32)259    ; MIPS32: RetRA implicit $v0, implicit $v1260    %2:_(s32) = COPY $a0261    %3:_(s32) = COPY $a1262    %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)263    %4:_(s32) = COPY $a2264    %5:_(s32) = COPY $a3265    %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)266    %6:_(s64) = G_SREM %1, %0267    %7:_(s32), %8:_(s32) = G_UNMERGE_VALUES %6(s64)268    $v0 = COPY %7(s32)269    $v1 = COPY %8(s32)270    RetRA implicit $v0, implicit $v1271 272...273---274name:            udiv_i8275alignment:       4276tracksRegLiveness: true277body:             |278  bb.1.entry:279    liveins: $a0, $a1280 281    ; MIPS32-LABEL: name: udiv_i8282    ; MIPS32: liveins: $a0, $a1283    ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0284    ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1285    ; MIPS32: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 255286    ; MIPS32: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]287    ; MIPS32: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]288    ; MIPS32: [[UDIV:%[0-9]+]]:_(s32) = G_UDIV [[AND]], [[AND1]]289    ; MIPS32: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 24290    ; MIPS32: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[UDIV]], [[C1]](s32)291    ; MIPS32: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C1]](s32)292    ; MIPS32: $v0 = COPY [[ASHR]](s32)293    ; MIPS32: RetRA implicit $v0294    %2:_(s32) = COPY $a0295    %0:_(s8) = G_TRUNC %2(s32)296    %3:_(s32) = COPY $a1297    %1:_(s8) = G_TRUNC %3(s32)298    %4:_(s8) = G_UDIV %1, %0299    %5:_(s32) = G_SEXT %4(s8)300    $v0 = COPY %5(s32)301    RetRA implicit $v0302 303...304---305name:            udiv_i16306alignment:       4307tracksRegLiveness: true308body:             |309  bb.1.entry:310    liveins: $a0, $a1311 312    ; MIPS32-LABEL: name: udiv_i16313    ; MIPS32: liveins: $a0, $a1314    ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0315    ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1316    ; MIPS32: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535317    ; MIPS32: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]318    ; MIPS32: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]319    ; MIPS32: [[UDIV:%[0-9]+]]:_(s32) = G_UDIV [[AND]], [[AND1]]320    ; MIPS32: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 16321    ; MIPS32: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[UDIV]], [[C1]](s32)322    ; MIPS32: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C1]](s32)323    ; MIPS32: $v0 = COPY [[ASHR]](s32)324    ; MIPS32: RetRA implicit $v0325    %2:_(s32) = COPY $a0326    %0:_(s16) = G_TRUNC %2(s32)327    %3:_(s32) = COPY $a1328    %1:_(s16) = G_TRUNC %3(s32)329    %4:_(s16) = G_UDIV %1, %0330    %5:_(s32) = G_SEXT %4(s16)331    $v0 = COPY %5(s32)332    RetRA implicit $v0333 334...335---336name:            udiv_i32337alignment:       4338tracksRegLiveness: true339body:             |340  bb.1.entry:341    liveins: $a0, $a1342 343    ; MIPS32-LABEL: name: udiv_i32344    ; MIPS32: liveins: $a0, $a1345    ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0346    ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1347    ; MIPS32: [[UDIV:%[0-9]+]]:_(s32) = G_UDIV [[COPY1]], [[COPY]]348    ; MIPS32: $v0 = COPY [[UDIV]](s32)349    ; MIPS32: RetRA implicit $v0350    %0:_(s32) = COPY $a0351    %1:_(s32) = COPY $a1352    %2:_(s32) = G_UDIV %1, %0353    $v0 = COPY %2(s32)354    RetRA implicit $v0355 356...357---358name:            udiv_i64359alignment:       4360tracksRegLiveness: true361body:             |362  bb.1.entry:363    liveins: $a0, $a1, $a2, $a3364 365    ; MIPS32-LABEL: name: udiv_i64366    ; MIPS32: liveins: $a0, $a1, $a2, $a3367    ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0368    ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1369    ; MIPS32: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2370    ; MIPS32: [[COPY3:%[0-9]+]]:_(s32) = COPY $a3371    ; MIPS32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp372    ; MIPS32: $a0 = COPY [[COPY2]](s32)373    ; MIPS32: $a1 = COPY [[COPY3]](s32)374    ; MIPS32: $a2 = COPY [[COPY]](s32)375    ; MIPS32: $a3 = COPY [[COPY1]](s32)376    ; MIPS32: JAL &__udivdi3, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0, implicit-def $v1377    ; MIPS32: [[COPY4:%[0-9]+]]:_(s32) = COPY $v0378    ; MIPS32: [[COPY5:%[0-9]+]]:_(s32) = COPY $v1379    ; MIPS32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp380    ; MIPS32: $v0 = COPY [[COPY4]](s32)381    ; MIPS32: $v1 = COPY [[COPY5]](s32)382    ; MIPS32: RetRA implicit $v0, implicit $v1383    %2:_(s32) = COPY $a0384    %3:_(s32) = COPY $a1385    %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)386    %4:_(s32) = COPY $a2387    %5:_(s32) = COPY $a3388    %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)389    %6:_(s64) = G_UDIV %1, %0390    %7:_(s32), %8:_(s32) = G_UNMERGE_VALUES %6(s64)391    $v0 = COPY %7(s32)392    $v1 = COPY %8(s32)393    RetRA implicit $v0, implicit $v1394 395...396---397name:            urem_i8398alignment:       4399tracksRegLiveness: true400body:             |401  bb.1.entry:402    liveins: $a0, $a1403 404    ; MIPS32-LABEL: name: urem_i8405    ; MIPS32: liveins: $a0, $a1406    ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0407    ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1408    ; MIPS32: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 255409    ; MIPS32: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]410    ; MIPS32: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]411    ; MIPS32: [[UREM:%[0-9]+]]:_(s32) = G_UREM [[AND]], [[AND1]]412    ; MIPS32: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 24413    ; MIPS32: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[UREM]], [[C1]](s32)414    ; MIPS32: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C1]](s32)415    ; MIPS32: $v0 = COPY [[ASHR]](s32)416    ; MIPS32: RetRA implicit $v0417    %2:_(s32) = COPY $a0418    %0:_(s8) = G_TRUNC %2(s32)419    %3:_(s32) = COPY $a1420    %1:_(s8) = G_TRUNC %3(s32)421    %4:_(s8) = G_UREM %1, %0422    %5:_(s32) = G_SEXT %4(s8)423    $v0 = COPY %5(s32)424    RetRA implicit $v0425 426...427---428name:            urem_i16429alignment:       4430tracksRegLiveness: true431body:             |432  bb.1.entry:433    liveins: $a0, $a1434 435    ; MIPS32-LABEL: name: urem_i16436    ; MIPS32: liveins: $a0, $a1437    ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0438    ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1439    ; MIPS32: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535440    ; MIPS32: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]441    ; MIPS32: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]442    ; MIPS32: [[UREM:%[0-9]+]]:_(s32) = G_UREM [[AND]], [[AND1]]443    ; MIPS32: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 16444    ; MIPS32: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[UREM]], [[C1]](s32)445    ; MIPS32: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C1]](s32)446    ; MIPS32: $v0 = COPY [[ASHR]](s32)447    ; MIPS32: RetRA implicit $v0448    %2:_(s32) = COPY $a0449    %0:_(s16) = G_TRUNC %2(s32)450    %3:_(s32) = COPY $a1451    %1:_(s16) = G_TRUNC %3(s32)452    %4:_(s16) = G_UREM %1, %0453    %5:_(s32) = G_SEXT %4(s16)454    $v0 = COPY %5(s32)455    RetRA implicit $v0456 457...458---459name:            urem_i32460alignment:       4461tracksRegLiveness: true462body:             |463  bb.1.entry:464    liveins: $a0, $a1465 466    ; MIPS32-LABEL: name: urem_i32467    ; MIPS32: liveins: $a0, $a1468    ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0469    ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1470    ; MIPS32: [[UREM:%[0-9]+]]:_(s32) = G_UREM [[COPY1]], [[COPY]]471    ; MIPS32: $v0 = COPY [[UREM]](s32)472    ; MIPS32: RetRA implicit $v0473    %0:_(s32) = COPY $a0474    %1:_(s32) = COPY $a1475    %2:_(s32) = G_UREM %1, %0476    $v0 = COPY %2(s32)477    RetRA implicit $v0478 479...480---481name:            urem_i64482alignment:       4483tracksRegLiveness: true484body:             |485  bb.1.entry:486    liveins: $a0, $a1, $a2, $a3487 488    ; MIPS32-LABEL: name: urem_i64489    ; MIPS32: liveins: $a0, $a1, $a2, $a3490    ; MIPS32: [[COPY:%[0-9]+]]:_(s32) = COPY $a0491    ; MIPS32: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1492    ; MIPS32: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2493    ; MIPS32: [[COPY3:%[0-9]+]]:_(s32) = COPY $a3494    ; MIPS32: ADJCALLSTACKDOWN 16, 0, implicit-def $sp, implicit $sp495    ; MIPS32: $a0 = COPY [[COPY2]](s32)496    ; MIPS32: $a1 = COPY [[COPY3]](s32)497    ; MIPS32: $a2 = COPY [[COPY]](s32)498    ; MIPS32: $a3 = COPY [[COPY1]](s32)499    ; MIPS32: JAL &__umoddi3, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0, implicit-def $v1500    ; MIPS32: [[COPY4:%[0-9]+]]:_(s32) = COPY $v0501    ; MIPS32: [[COPY5:%[0-9]+]]:_(s32) = COPY $v1502    ; MIPS32: ADJCALLSTACKUP 16, 0, implicit-def $sp, implicit $sp503    ; MIPS32: $v0 = COPY [[COPY4]](s32)504    ; MIPS32: $v1 = COPY [[COPY5]](s32)505    ; MIPS32: RetRA implicit $v0, implicit $v1506    %2:_(s32) = COPY $a0507    %3:_(s32) = COPY $a1508    %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)509    %4:_(s32) = COPY $a2510    %5:_(s32) = COPY $a3511    %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)512    %6:_(s64) = G_UREM %1, %0513    %7:_(s32), %8:_(s32) = G_UNMERGE_VALUES %6(s64)514    $v0 = COPY %7(s32)515    $v1 = COPY %8(s32)516    RetRA implicit $v0, implicit $v1517 518...519