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