brintos

brintos / llvm-project-archived public Read only

0
0
Text · 28.6 KiB · 3733a92 Raw
630 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=riscv32 -run-pass=legalizer %s -o - \3# RUN: | FileCheck %s -check-prefix=CHECK-I4# RUN: llc -mattr=+m -mtriple=riscv32 -run-pass=legalizer %s -o - \5# RUN: | FileCheck %s -check-prefix=CHECK-M6---7name:            sdiv_i78body:             |9  bb.0.entry:10    ; CHECK-I-LABEL: name: sdiv_i711    ; CHECK-I: [[COPY:%[0-9]+]]:_(s32) = COPY $x1012    ; CHECK-I-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1113    ; CHECK-I-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2514    ; CHECK-I-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C]](s32)15    ; CHECK-I-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)16    ; CHECK-I-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)17    ; CHECK-I-NEXT: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)18    ; CHECK-I-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x219    ; CHECK-I-NEXT: $x10 = COPY [[ASHR]](s32)20    ; CHECK-I-NEXT: $x11 = COPY [[ASHR1]](s32)21    ; CHECK-I-NEXT: PseudoCALL target-flags(riscv-call) &__divsi3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit-def $x1022    ; CHECK-I-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x223    ; CHECK-I-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x1024    ; CHECK-I-NEXT: $x10 = COPY [[COPY2]](s32)25    ; CHECK-I-NEXT: PseudoRET implicit $x1026    ;27    ; CHECK-M-LABEL: name: sdiv_i728    ; CHECK-M: [[COPY:%[0-9]+]]:_(s32) = COPY $x1029    ; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1130    ; CHECK-M-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2531    ; CHECK-M-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C]](s32)32    ; CHECK-M-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)33    ; CHECK-M-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)34    ; CHECK-M-NEXT: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)35    ; CHECK-M-NEXT: [[SDIV:%[0-9]+]]:_(s32) = G_SDIV [[ASHR]], [[ASHR1]]36    ; CHECK-M-NEXT: $x10 = COPY [[SDIV]](s32)37    ; CHECK-M-NEXT: PseudoRET implicit $x1038    %0:_(s32) = COPY $x1039    %1:_(s32) = COPY $x1140    %2:_(s7) = G_TRUNC %0(s32)41    %3:_(s7) = G_TRUNC %1(s32)42    %4:_(s7) = G_SDIV %2, %343    %5:_(s32) = G_ANYEXT %4(s7)44    $x10 = COPY %5(s32)45    PseudoRET implicit $x1046 47...48---49name:            sdiv_i850body:             |51  bb.0.entry:52    ; CHECK-I-LABEL: name: sdiv_i853    ; CHECK-I: [[COPY:%[0-9]+]]:_(s32) = COPY $x1054    ; CHECK-I-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1155    ; CHECK-I-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2456    ; CHECK-I-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C]](s32)57    ; CHECK-I-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)58    ; CHECK-I-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)59    ; CHECK-I-NEXT: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)60    ; CHECK-I-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x261    ; CHECK-I-NEXT: $x10 = COPY [[ASHR]](s32)62    ; CHECK-I-NEXT: $x11 = COPY [[ASHR1]](s32)63    ; CHECK-I-NEXT: PseudoCALL target-flags(riscv-call) &__divsi3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit-def $x1064    ; CHECK-I-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x265    ; CHECK-I-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x1066    ; CHECK-I-NEXT: $x10 = COPY [[COPY2]](s32)67    ; CHECK-I-NEXT: PseudoRET implicit $x1068    ;69    ; CHECK-M-LABEL: name: sdiv_i870    ; CHECK-M: [[COPY:%[0-9]+]]:_(s32) = COPY $x1071    ; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1172    ; CHECK-M-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2473    ; CHECK-M-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C]](s32)74    ; CHECK-M-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)75    ; CHECK-M-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)76    ; CHECK-M-NEXT: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)77    ; CHECK-M-NEXT: [[SDIV:%[0-9]+]]:_(s32) = G_SDIV [[ASHR]], [[ASHR1]]78    ; CHECK-M-NEXT: $x10 = COPY [[SDIV]](s32)79    ; CHECK-M-NEXT: PseudoRET implicit $x1080    %0:_(s32) = COPY $x1081    %1:_(s32) = COPY $x1182    %2:_(s8) = G_TRUNC %0(s32)83    %3:_(s8) = G_TRUNC %1(s32)84    %4:_(s8) = G_SDIV %2, %385    %5:_(s32) = G_ANYEXT %4(s8)86    $x10 = COPY %5(s32)87    PseudoRET implicit $x1088 89...90---91name:            sdiv_i1692body:             |93  bb.0.entry:94    ; CHECK-I-LABEL: name: sdiv_i1695    ; CHECK-I: [[COPY:%[0-9]+]]:_(s32) = COPY $x1096    ; CHECK-I-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1197    ; CHECK-I-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1698    ; CHECK-I-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C]](s32)99    ; CHECK-I-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)100    ; CHECK-I-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)101    ; CHECK-I-NEXT: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)102    ; CHECK-I-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2103    ; CHECK-I-NEXT: $x10 = COPY [[ASHR]](s32)104    ; CHECK-I-NEXT: $x11 = COPY [[ASHR1]](s32)105    ; CHECK-I-NEXT: PseudoCALL target-flags(riscv-call) &__divsi3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit-def $x10106    ; CHECK-I-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2107    ; CHECK-I-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x10108    ; CHECK-I-NEXT: $x10 = COPY [[COPY2]](s32)109    ; CHECK-I-NEXT: PseudoRET implicit $x10110    ;111    ; CHECK-M-LABEL: name: sdiv_i16112    ; CHECK-M: [[COPY:%[0-9]+]]:_(s32) = COPY $x10113    ; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11114    ; CHECK-M-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16115    ; CHECK-M-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C]](s32)116    ; CHECK-M-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)117    ; CHECK-M-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)118    ; CHECK-M-NEXT: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)119    ; CHECK-M-NEXT: [[SDIV:%[0-9]+]]:_(s32) = G_SDIV [[ASHR]], [[ASHR1]]120    ; CHECK-M-NEXT: $x10 = COPY [[SDIV]](s32)121    ; CHECK-M-NEXT: PseudoRET implicit $x10122    %0:_(s32) = COPY $x10123    %1:_(s32) = COPY $x11124    %2:_(s16) = G_TRUNC %0(s32)125    %3:_(s16) = G_TRUNC %1(s32)126    %4:_(s16) = G_SDIV %2, %3127    %5:_(s32) = G_ANYEXT %4(s16)128    $x10 = COPY %5(s32)129    PseudoRET implicit $x10130 131...132---133name:            sdiv_i32134body:             |135  bb.0.entry:136    ; CHECK-I-LABEL: name: sdiv_i32137    ; CHECK-I: [[COPY:%[0-9]+]]:_(s32) = COPY $x10138    ; CHECK-I-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11139    ; CHECK-I-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2140    ; CHECK-I-NEXT: $x10 = COPY [[COPY]](s32)141    ; CHECK-I-NEXT: $x11 = COPY [[COPY1]](s32)142    ; CHECK-I-NEXT: PseudoCALL target-flags(riscv-call) &__divsi3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit-def $x10143    ; CHECK-I-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2144    ; CHECK-I-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x10145    ; CHECK-I-NEXT: $x10 = COPY [[COPY2]](s32)146    ; CHECK-I-NEXT: PseudoRET implicit $x10147    ;148    ; CHECK-M-LABEL: name: sdiv_i32149    ; CHECK-M: [[COPY:%[0-9]+]]:_(s32) = COPY $x10150    ; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11151    ; CHECK-M-NEXT: [[SDIV:%[0-9]+]]:_(s32) = G_SDIV [[COPY]], [[COPY1]]152    ; CHECK-M-NEXT: $x10 = COPY [[SDIV]](s32)153    ; CHECK-M-NEXT: PseudoRET implicit $x10154    %0:_(s32) = COPY $x10155    %1:_(s32) = COPY $x11156    %2:_(s32) = G_SDIV %0, %1157    $x10 = COPY %2(s32)158    PseudoRET implicit $x10159 160...161---162name:            sdiv_i48163body:             |164  bb.0.entry:165    ; CHECK-I-LABEL: name: sdiv_i48166    ; CHECK-I: %xlo:_(s32) = COPY $x10167    ; CHECK-I-NEXT: %xhi:_(s32) = COPY $x11168    ; CHECK-I-NEXT: %ylo:_(s32) = COPY $x12169    ; CHECK-I-NEXT: %yhi:_(s32) = COPY $x13170    ; CHECK-I-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16171    ; CHECK-I-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL %xhi, [[C]](s32)172    ; CHECK-I-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)173    ; CHECK-I-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL %yhi, [[C]](s32)174    ; CHECK-I-NEXT: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)175    ; CHECK-I-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2176    ; CHECK-I-NEXT: $x10 = COPY %xlo(s32)177    ; CHECK-I-NEXT: $x11 = COPY [[ASHR]](s32)178    ; CHECK-I-NEXT: $x12 = COPY %ylo(s32)179    ; CHECK-I-NEXT: $x13 = COPY [[ASHR1]](s32)180    ; CHECK-I-NEXT: PseudoCALL target-flags(riscv-call) &__divdi3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit $x12, implicit $x13, implicit-def $x10, implicit-def $x11181    ; CHECK-I-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2182    ; CHECK-I-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10183    ; CHECK-I-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11184    ; CHECK-I-NEXT: $x10 = COPY [[COPY]](s32)185    ; CHECK-I-NEXT: $x11 = COPY [[COPY1]](s32)186    ; CHECK-I-NEXT: PseudoRET implicit $x10, implicit $x11187    ;188    ; CHECK-M-LABEL: name: sdiv_i48189    ; CHECK-M: %xlo:_(s32) = COPY $x10190    ; CHECK-M-NEXT: %xhi:_(s32) = COPY $x11191    ; CHECK-M-NEXT: %ylo:_(s32) = COPY $x12192    ; CHECK-M-NEXT: %yhi:_(s32) = COPY $x13193    ; CHECK-M-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16194    ; CHECK-M-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL %xhi, [[C]](s32)195    ; CHECK-M-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)196    ; CHECK-M-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL %yhi, [[C]](s32)197    ; CHECK-M-NEXT: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)198    ; CHECK-M-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2199    ; CHECK-M-NEXT: $x10 = COPY %xlo(s32)200    ; CHECK-M-NEXT: $x11 = COPY [[ASHR]](s32)201    ; CHECK-M-NEXT: $x12 = COPY %ylo(s32)202    ; CHECK-M-NEXT: $x13 = COPY [[ASHR1]](s32)203    ; CHECK-M-NEXT: PseudoCALL target-flags(riscv-call) &__divdi3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit $x12, implicit $x13, implicit-def $x10, implicit-def $x11204    ; CHECK-M-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2205    ; CHECK-M-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10206    ; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11207    ; CHECK-M-NEXT: $x10 = COPY [[COPY]](s32)208    ; CHECK-M-NEXT: $x11 = COPY [[COPY1]](s32)209    ; CHECK-M-NEXT: PseudoRET implicit $x10, implicit $x11210    %xlo:_(s32) = COPY $x10211    %xhi:_(s32) = COPY $x11212    %ylo:_(s32) = COPY $x12213    %yhi:_(s32) = COPY $x13214    %x0:_(s64) = G_MERGE_VALUES %xlo(s32), %xhi(s32)215    %y0:_(s64) = G_MERGE_VALUES %ylo(s32), %yhi(s32)216    %x:_(s48) = G_TRUNC %x0217    %y:_(s48) = G_TRUNC %y0218    %z:_(s48) = G_SDIV %x, %y219    %z0:_(s64) = G_ANYEXT %z220    %zlo:_(s32), %zhi:_(s32) = G_UNMERGE_VALUES %z0(s64)221    $x10 = COPY %zlo(s32)222    $x11 = COPY %zhi(s32)223    PseudoRET implicit $x10, implicit $x11224 225...226---227name:            sdiv_i64228body:             |229  bb.0.entry:230    ; CHECK-I-LABEL: name: sdiv_i64231    ; CHECK-I: %lo1:_(s32) = COPY $x10232    ; CHECK-I-NEXT: %hi1:_(s32) = COPY $x11233    ; CHECK-I-NEXT: %lo2:_(s32) = COPY $x12234    ; CHECK-I-NEXT: %hi2:_(s32) = COPY $x13235    ; CHECK-I-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2236    ; CHECK-I-NEXT: $x10 = COPY %lo1(s32)237    ; CHECK-I-NEXT: $x11 = COPY %hi1(s32)238    ; CHECK-I-NEXT: $x12 = COPY %lo2(s32)239    ; CHECK-I-NEXT: $x13 = COPY %hi2(s32)240    ; CHECK-I-NEXT: PseudoCALL target-flags(riscv-call) &__divdi3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit $x12, implicit $x13, implicit-def $x10, implicit-def $x11241    ; CHECK-I-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2242    ; CHECK-I-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10243    ; CHECK-I-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11244    ; CHECK-I-NEXT: $x10 = COPY [[COPY]](s32)245    ; CHECK-I-NEXT: $x11 = COPY [[COPY1]](s32)246    ; CHECK-I-NEXT: PseudoRET implicit $x10, implicit $x11247    ;248    ; CHECK-M-LABEL: name: sdiv_i64249    ; CHECK-M: %lo1:_(s32) = COPY $x10250    ; CHECK-M-NEXT: %hi1:_(s32) = COPY $x11251    ; CHECK-M-NEXT: %lo2:_(s32) = COPY $x12252    ; CHECK-M-NEXT: %hi2:_(s32) = COPY $x13253    ; CHECK-M-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2254    ; CHECK-M-NEXT: $x10 = COPY %lo1(s32)255    ; CHECK-M-NEXT: $x11 = COPY %hi1(s32)256    ; CHECK-M-NEXT: $x12 = COPY %lo2(s32)257    ; CHECK-M-NEXT: $x13 = COPY %hi2(s32)258    ; CHECK-M-NEXT: PseudoCALL target-flags(riscv-call) &__divdi3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit $x12, implicit $x13, implicit-def $x10, implicit-def $x11259    ; CHECK-M-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2260    ; CHECK-M-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10261    ; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11262    ; CHECK-M-NEXT: $x10 = COPY [[COPY]](s32)263    ; CHECK-M-NEXT: $x11 = COPY [[COPY1]](s32)264    ; CHECK-M-NEXT: PseudoRET implicit $x10, implicit $x11265    %lo1:_(s32) = COPY $x10266    %hi1:_(s32) = COPY $x11267    %lo2:_(s32) = COPY $x12268    %hi2:_(s32) = COPY $x13269    %x1:_(s64) = G_MERGE_VALUES %lo1(s32), %hi1(s32)270    %x2:_(s64) = G_MERGE_VALUES %lo2(s32), %hi2(s32)271    %y:_(s64) = G_SDIV %x1, %x2272    %loy:_(s32), %hiy:_(s32) = G_UNMERGE_VALUES %y(s64)273    $x10 = COPY %loy(s32)274    $x11 = COPY %hiy(s32)275    PseudoRET implicit $x10, implicit $x11276 277...278---279name:            udiv_i7280body:             |281  bb.0.entry:282    ; CHECK-I-LABEL: name: udiv_i7283    ; CHECK-I: [[COPY:%[0-9]+]]:_(s32) = COPY $x10284    ; CHECK-I-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11285    ; CHECK-I-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 127286    ; CHECK-I-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]287    ; CHECK-I-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]288    ; CHECK-I-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2289    ; CHECK-I-NEXT: $x10 = COPY [[AND]](s32)290    ; CHECK-I-NEXT: $x11 = COPY [[AND1]](s32)291    ; CHECK-I-NEXT: PseudoCALL target-flags(riscv-call) &__udivsi3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit-def $x10292    ; CHECK-I-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2293    ; CHECK-I-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x10294    ; CHECK-I-NEXT: $x10 = COPY [[COPY2]](s32)295    ; CHECK-I-NEXT: PseudoRET implicit $x10296    ;297    ; CHECK-M-LABEL: name: udiv_i7298    ; CHECK-M: [[COPY:%[0-9]+]]:_(s32) = COPY $x10299    ; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11300    ; CHECK-M-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 127301    ; CHECK-M-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]302    ; CHECK-M-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]303    ; CHECK-M-NEXT: [[UDIV:%[0-9]+]]:_(s32) = G_UDIV [[AND]], [[AND1]]304    ; CHECK-M-NEXT: $x10 = COPY [[UDIV]](s32)305    ; CHECK-M-NEXT: PseudoRET implicit $x10306    %0:_(s32) = COPY $x10307    %1:_(s32) = COPY $x11308    %2:_(s7) = G_TRUNC %0(s32)309    %3:_(s7) = G_TRUNC %1(s32)310    %4:_(s7) = G_UDIV %2, %3311    %5:_(s32) = G_ANYEXT %4(s7)312    $x10 = COPY %5(s32)313    PseudoRET implicit $x10314 315...316---317name:            udiv_i8318body:             |319  bb.0.entry:320    ; CHECK-I-LABEL: name: udiv_i8321    ; CHECK-I: [[COPY:%[0-9]+]]:_(s32) = COPY $x10322    ; CHECK-I-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11323    ; CHECK-I-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 255324    ; CHECK-I-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]325    ; CHECK-I-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]326    ; CHECK-I-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2327    ; CHECK-I-NEXT: $x10 = COPY [[AND]](s32)328    ; CHECK-I-NEXT: $x11 = COPY [[AND1]](s32)329    ; CHECK-I-NEXT: PseudoCALL target-flags(riscv-call) &__udivsi3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit-def $x10330    ; CHECK-I-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2331    ; CHECK-I-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x10332    ; CHECK-I-NEXT: $x10 = COPY [[COPY2]](s32)333    ; CHECK-I-NEXT: PseudoRET implicit $x10334    ;335    ; CHECK-M-LABEL: name: udiv_i8336    ; CHECK-M: [[COPY:%[0-9]+]]:_(s32) = COPY $x10337    ; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11338    ; CHECK-M-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 255339    ; CHECK-M-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]340    ; CHECK-M-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]341    ; CHECK-M-NEXT: [[UDIV:%[0-9]+]]:_(s32) = G_UDIV [[AND]], [[AND1]]342    ; CHECK-M-NEXT: $x10 = COPY [[UDIV]](s32)343    ; CHECK-M-NEXT: PseudoRET implicit $x10344    %0:_(s32) = COPY $x10345    %1:_(s32) = COPY $x11346    %2:_(s8) = G_TRUNC %0(s32)347    %3:_(s8) = G_TRUNC %1(s32)348    %4:_(s8) = G_UDIV %2, %3349    %5:_(s32) = G_ANYEXT %4(s8)350    $x10 = COPY %5(s32)351    PseudoRET implicit $x10352 353...354---355name:            udiv_i16356body:             |357  bb.0.entry:358    ; CHECK-I-LABEL: name: udiv_i16359    ; CHECK-I: [[COPY:%[0-9]+]]:_(s32) = COPY $x10360    ; CHECK-I-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11361    ; CHECK-I-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535362    ; CHECK-I-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]363    ; CHECK-I-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]364    ; CHECK-I-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2365    ; CHECK-I-NEXT: $x10 = COPY [[AND]](s32)366    ; CHECK-I-NEXT: $x11 = COPY [[AND1]](s32)367    ; CHECK-I-NEXT: PseudoCALL target-flags(riscv-call) &__udivsi3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit-def $x10368    ; CHECK-I-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2369    ; CHECK-I-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x10370    ; CHECK-I-NEXT: $x10 = COPY [[COPY2]](s32)371    ; CHECK-I-NEXT: PseudoRET implicit $x10372    ;373    ; CHECK-M-LABEL: name: udiv_i16374    ; CHECK-M: [[COPY:%[0-9]+]]:_(s32) = COPY $x10375    ; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11376    ; CHECK-M-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535377    ; CHECK-M-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]378    ; CHECK-M-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]379    ; CHECK-M-NEXT: [[UDIV:%[0-9]+]]:_(s32) = G_UDIV [[AND]], [[AND1]]380    ; CHECK-M-NEXT: $x10 = COPY [[UDIV]](s32)381    ; CHECK-M-NEXT: PseudoRET implicit $x10382    %0:_(s32) = COPY $x10383    %1:_(s32) = COPY $x11384    %2:_(s16) = G_TRUNC %0(s32)385    %3:_(s16) = G_TRUNC %1(s32)386    %4:_(s16) = G_UDIV %2, %3387    %5:_(s32) = G_ANYEXT %4(s16)388    $x10 = COPY %5(s32)389    PseudoRET implicit $x10390 391...392---393name:            udiv_i32394body:             |395  bb.0.entry:396    ; CHECK-I-LABEL: name: udiv_i32397    ; CHECK-I: [[COPY:%[0-9]+]]:_(s32) = COPY $x10398    ; CHECK-I-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11399    ; CHECK-I-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2400    ; CHECK-I-NEXT: $x10 = COPY [[COPY]](s32)401    ; CHECK-I-NEXT: $x11 = COPY [[COPY1]](s32)402    ; CHECK-I-NEXT: PseudoCALL target-flags(riscv-call) &__udivsi3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit-def $x10403    ; CHECK-I-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2404    ; CHECK-I-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x10405    ; CHECK-I-NEXT: $x10 = COPY [[COPY2]](s32)406    ; CHECK-I-NEXT: PseudoRET implicit $x10407    ;408    ; CHECK-M-LABEL: name: udiv_i32409    ; CHECK-M: [[COPY:%[0-9]+]]:_(s32) = COPY $x10410    ; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11411    ; CHECK-M-NEXT: [[UDIV:%[0-9]+]]:_(s32) = G_UDIV [[COPY]], [[COPY1]]412    ; CHECK-M-NEXT: $x10 = COPY [[UDIV]](s32)413    ; CHECK-M-NEXT: PseudoRET implicit $x10414    %0:_(s32) = COPY $x10415    %1:_(s32) = COPY $x11416    %2:_(s32) = G_UDIV %0, %1417    $x10 = COPY %2(s32)418    PseudoRET implicit $x10419 420...421---422name:            udiv_i48423body:             |424  bb.0.entry:425    ; CHECK-I-LABEL: name: udiv_i48426    ; CHECK-I: %xlo:_(s32) = COPY $x10427    ; CHECK-I-NEXT: %xhi:_(s32) = COPY $x11428    ; CHECK-I-NEXT: %ylo:_(s32) = COPY $x12429    ; CHECK-I-NEXT: %yhi:_(s32) = COPY $x13430    ; CHECK-I-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 -1431    ; CHECK-I-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535432    ; CHECK-I-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND %xlo, [[C]]433    ; CHECK-I-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND %xhi, [[C1]]434    ; CHECK-I-NEXT: [[AND2:%[0-9]+]]:_(s32) = G_AND %ylo, [[C]]435    ; CHECK-I-NEXT: [[AND3:%[0-9]+]]:_(s32) = G_AND %yhi, [[C1]]436    ; CHECK-I-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2437    ; CHECK-I-NEXT: $x10 = COPY [[AND]](s32)438    ; CHECK-I-NEXT: $x11 = COPY [[AND1]](s32)439    ; CHECK-I-NEXT: $x12 = COPY [[AND2]](s32)440    ; CHECK-I-NEXT: $x13 = COPY [[AND3]](s32)441    ; CHECK-I-NEXT: PseudoCALL target-flags(riscv-call) &__udivdi3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit $x12, implicit $x13, implicit-def $x10, implicit-def $x11442    ; CHECK-I-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2443    ; CHECK-I-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10444    ; CHECK-I-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11445    ; CHECK-I-NEXT: $x10 = COPY [[COPY]](s32)446    ; CHECK-I-NEXT: $x11 = COPY [[COPY1]](s32)447    ; CHECK-I-NEXT: PseudoRET implicit $x10, implicit $x11448    ;449    ; CHECK-M-LABEL: name: udiv_i48450    ; CHECK-M: %xlo:_(s32) = COPY $x10451    ; CHECK-M-NEXT: %xhi:_(s32) = COPY $x11452    ; CHECK-M-NEXT: %ylo:_(s32) = COPY $x12453    ; CHECK-M-NEXT: %yhi:_(s32) = COPY $x13454    ; CHECK-M-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 -1455    ; CHECK-M-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535456    ; CHECK-M-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND %xlo, [[C]]457    ; CHECK-M-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND %xhi, [[C1]]458    ; CHECK-M-NEXT: [[AND2:%[0-9]+]]:_(s32) = G_AND %ylo, [[C]]459    ; CHECK-M-NEXT: [[AND3:%[0-9]+]]:_(s32) = G_AND %yhi, [[C1]]460    ; CHECK-M-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2461    ; CHECK-M-NEXT: $x10 = COPY [[AND]](s32)462    ; CHECK-M-NEXT: $x11 = COPY [[AND1]](s32)463    ; CHECK-M-NEXT: $x12 = COPY [[AND2]](s32)464    ; CHECK-M-NEXT: $x13 = COPY [[AND3]](s32)465    ; CHECK-M-NEXT: PseudoCALL target-flags(riscv-call) &__udivdi3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit $x12, implicit $x13, implicit-def $x10, implicit-def $x11466    ; CHECK-M-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2467    ; CHECK-M-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10468    ; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11469    ; CHECK-M-NEXT: $x10 = COPY [[COPY]](s32)470    ; CHECK-M-NEXT: $x11 = COPY [[COPY1]](s32)471    ; CHECK-M-NEXT: PseudoRET implicit $x10, implicit $x11472    %xlo:_(s32) = COPY $x10473    %xhi:_(s32) = COPY $x11474    %ylo:_(s32) = COPY $x12475    %yhi:_(s32) = COPY $x13476    %x0:_(s64) = G_MERGE_VALUES %xlo(s32), %xhi(s32)477    %y0:_(s64) = G_MERGE_VALUES %ylo(s32), %yhi(s32)478    %x:_(s48) = G_TRUNC %x0479    %y:_(s48) = G_TRUNC %y0480    %z:_(s48) = G_UDIV %x, %y481    %z0:_(s64) = G_ANYEXT %z482    %zlo:_(s32), %zhi:_(s32) = G_UNMERGE_VALUES %z0(s64)483    $x10 = COPY %zlo(s32)484    $x11 = COPY %zhi(s32)485    PseudoRET implicit $x10, implicit $x11486 487...488---489name:            udiv_i64490body:             |491  bb.0.entry:492    ; CHECK-I-LABEL: name: udiv_i64493    ; CHECK-I: %lo1:_(s32) = COPY $x10494    ; CHECK-I-NEXT: %hi1:_(s32) = COPY $x11495    ; CHECK-I-NEXT: %lo2:_(s32) = COPY $x12496    ; CHECK-I-NEXT: %hi2:_(s32) = COPY $x13497    ; CHECK-I-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2498    ; CHECK-I-NEXT: $x10 = COPY %lo1(s32)499    ; CHECK-I-NEXT: $x11 = COPY %hi1(s32)500    ; CHECK-I-NEXT: $x12 = COPY %lo2(s32)501    ; CHECK-I-NEXT: $x13 = COPY %hi2(s32)502    ; CHECK-I-NEXT: PseudoCALL target-flags(riscv-call) &__udivdi3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit $x12, implicit $x13, implicit-def $x10, implicit-def $x11503    ; CHECK-I-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2504    ; CHECK-I-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10505    ; CHECK-I-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11506    ; CHECK-I-NEXT: $x10 = COPY [[COPY]](s32)507    ; CHECK-I-NEXT: $x11 = COPY [[COPY1]](s32)508    ; CHECK-I-NEXT: PseudoRET implicit $x10, implicit $x11509    ;510    ; CHECK-M-LABEL: name: udiv_i64511    ; CHECK-M: %lo1:_(s32) = COPY $x10512    ; CHECK-M-NEXT: %hi1:_(s32) = COPY $x11513    ; CHECK-M-NEXT: %lo2:_(s32) = COPY $x12514    ; CHECK-M-NEXT: %hi2:_(s32) = COPY $x13515    ; CHECK-M-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2516    ; CHECK-M-NEXT: $x10 = COPY %lo1(s32)517    ; CHECK-M-NEXT: $x11 = COPY %hi1(s32)518    ; CHECK-M-NEXT: $x12 = COPY %lo2(s32)519    ; CHECK-M-NEXT: $x13 = COPY %hi2(s32)520    ; CHECK-M-NEXT: PseudoCALL target-flags(riscv-call) &__udivdi3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit $x12, implicit $x13, implicit-def $x10, implicit-def $x11521    ; CHECK-M-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2522    ; CHECK-M-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10523    ; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11524    ; CHECK-M-NEXT: $x10 = COPY [[COPY]](s32)525    ; CHECK-M-NEXT: $x11 = COPY [[COPY1]](s32)526    ; CHECK-M-NEXT: PseudoRET implicit $x10, implicit $x11527    %lo1:_(s32) = COPY $x10528    %hi1:_(s32) = COPY $x11529    %lo2:_(s32) = COPY $x12530    %hi2:_(s32) = COPY $x13531    %x1:_(s64) = G_MERGE_VALUES %lo1(s32), %hi1(s32)532    %x2:_(s64) = G_MERGE_VALUES %lo2(s32), %hi2(s32)533    %y:_(s64) = G_UDIV %x1, %x2534    %loy:_(s32), %hiy:_(s32) = G_UNMERGE_VALUES %y(s64)535    $x10 = COPY %loy(s32)536    $x11 = COPY %hiy(s32)537    PseudoRET implicit $x10, implicit $x11538 539...540---541name:            udivrem_i32542body:             |543  bb.1.entry:544    liveins: $x10, $x11545 546    ; CHECK-I-LABEL: name: udivrem_i32547    ; CHECK-I: liveins: $x10, $x11548    ; CHECK-I-NEXT: {{  $}}549    ; CHECK-I-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10550    ; CHECK-I-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11551    ; CHECK-I-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2552    ; CHECK-I-NEXT: $x10 = COPY [[COPY]](s32)553    ; CHECK-I-NEXT: $x11 = COPY [[COPY1]](s32)554    ; CHECK-I-NEXT: PseudoCALL target-flags(riscv-call) &__udivsi3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit-def $x10555    ; CHECK-I-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2556    ; CHECK-I-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x10557    ; CHECK-I-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2558    ; CHECK-I-NEXT: $x10 = COPY [[COPY]](s32)559    ; CHECK-I-NEXT: $x11 = COPY [[COPY1]](s32)560    ; CHECK-I-NEXT: PseudoCALL target-flags(riscv-call) &__umodsi3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit-def $x10561    ; CHECK-I-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2562    ; CHECK-I-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $x10563    ; CHECK-I-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[COPY2]], [[COPY3]]564    ; CHECK-I-NEXT: $x10 = COPY [[ADD]](s32)565    ; CHECK-I-NEXT: PseudoRET implicit $x10566    ;567    ; CHECK-M-LABEL: name: udivrem_i32568    ; CHECK-M: liveins: $x10, $x11569    ; CHECK-M-NEXT: {{  $}}570    ; CHECK-M-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10571    ; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11572    ; CHECK-M-NEXT: [[UDIV:%[0-9]+]]:_(s32) = G_UDIV [[COPY]], [[COPY1]]573    ; CHECK-M-NEXT: [[UREM:%[0-9]+]]:_(s32) = G_UREM [[COPY]], [[COPY1]]574    ; CHECK-M-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[UDIV]], [[UREM]]575    ; CHECK-M-NEXT: $x10 = COPY [[ADD]](s32)576    ; CHECK-M-NEXT: PseudoRET implicit $x10577    %0:_(s32) = COPY $x10578    %1:_(s32) = COPY $x11579    %2:_(s32), %3:_(s32) = G_UDIVREM %0, %1580    %4:_(s32) = G_ADD %2, %3581    $x10 = COPY %4(s32)582    PseudoRET implicit $x10583 584...585---586name:            sdivrem_i32587body:             |588  bb.1.entry:589    liveins: $x10, $x11590 591    ; CHECK-I-LABEL: name: sdivrem_i32592    ; CHECK-I: liveins: $x10, $x11593    ; CHECK-I-NEXT: {{  $}}594    ; CHECK-I-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10595    ; CHECK-I-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11596    ; CHECK-I-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2597    ; CHECK-I-NEXT: $x10 = COPY [[COPY]](s32)598    ; CHECK-I-NEXT: $x11 = COPY [[COPY1]](s32)599    ; CHECK-I-NEXT: PseudoCALL target-flags(riscv-call) &__divsi3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit-def $x10600    ; CHECK-I-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2601    ; CHECK-I-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x10602    ; CHECK-I-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2603    ; CHECK-I-NEXT: $x10 = COPY [[COPY]](s32)604    ; CHECK-I-NEXT: $x11 = COPY [[COPY1]](s32)605    ; CHECK-I-NEXT: PseudoCALL target-flags(riscv-call) &__modsi3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit-def $x10606    ; CHECK-I-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2607    ; CHECK-I-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $x10608    ; CHECK-I-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[COPY2]], [[COPY3]]609    ; CHECK-I-NEXT: $x10 = COPY [[ADD]](s32)610    ; CHECK-I-NEXT: PseudoRET implicit $x10611    ;612    ; CHECK-M-LABEL: name: sdivrem_i32613    ; CHECK-M: liveins: $x10, $x11614    ; CHECK-M-NEXT: {{  $}}615    ; CHECK-M-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10616    ; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11617    ; CHECK-M-NEXT: [[SDIV:%[0-9]+]]:_(s32) = G_SDIV [[COPY]], [[COPY1]]618    ; CHECK-M-NEXT: [[SREM:%[0-9]+]]:_(s32) = G_SREM [[COPY]], [[COPY1]]619    ; CHECK-M-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[SDIV]], [[SREM]]620    ; CHECK-M-NEXT: $x10 = COPY [[ADD]](s32)621    ; CHECK-M-NEXT: PseudoRET implicit $x10622    %0:_(s32) = COPY $x10623    %1:_(s32) = COPY $x11624    %2:_(s32), %3:_(s32) = G_SDIVREM %0, %1625    %4:_(s32) = G_ADD %2, %3626    $x10 = COPY %4(s32)627    PseudoRET implicit $x10628 629...630