brintos

brintos / llvm-project-archived public Read only

0
0
Text · 31.6 KiB · 657dd3c Raw
699 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=riscv64 -run-pass=legalizer %s -o - \3# RUN: | FileCheck %s -check-prefix=CHECK-I4# RUN: llc -mattr=+m -mtriple=riscv64 -run-pass=legalizer %s -o - \5# RUN: | FileCheck %s -check-prefix=CHECK-M6---7name:            sdiv_i88body:             |9  bb.0.entry:10    ; CHECK-I-LABEL: name: sdiv_i811    ; CHECK-I: [[COPY:%[0-9]+]]:_(s64) = COPY $x1012    ; CHECK-I-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1113    ; CHECK-I-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 5614    ; CHECK-I-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)15    ; CHECK-I-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)16    ; CHECK-I-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL [[COPY1]], [[C]](s64)17    ; CHECK-I-NEXT: [[ASHR1:%[0-9]+]]:_(s64) = G_ASHR [[SHL1]], [[C]](s64)18    ; CHECK-I-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x219    ; CHECK-I-NEXT: $x10 = COPY [[ASHR]](s64)20    ; CHECK-I-NEXT: $x11 = COPY [[ASHR1]](s64)21    ; CHECK-I-NEXT: PseudoCALL target-flags(riscv-call) &__divdi3, 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]+]]:_(s64) = COPY $x1024    ; CHECK-I-NEXT: $x10 = COPY [[COPY2]](s64)25    ; CHECK-I-NEXT: PseudoRET implicit $x1026    ;27    ; CHECK-M-LABEL: name: sdiv_i828    ; CHECK-M: [[COPY:%[0-9]+]]:_(s64) = COPY $x1029    ; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1130    ; CHECK-M-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 5631    ; CHECK-M-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)32    ; CHECK-M-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)33    ; CHECK-M-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL [[COPY1]], [[C]](s64)34    ; CHECK-M-NEXT: [[ASHR1:%[0-9]+]]:_(s64) = G_ASHR [[SHL1]], [[C]](s64)35    ; CHECK-M-NEXT: [[DIVW:%[0-9]+]]:_(s64) = G_DIVW [[ASHR]], [[ASHR1]]36    ; CHECK-M-NEXT: $x10 = COPY [[DIVW]](s64)37    ; CHECK-M-NEXT: PseudoRET implicit $x1038    %0:_(s64) = COPY $x1039    %1:_(s64) = COPY $x1140    %2:_(s8) = G_TRUNC %0(s64)41    %3:_(s8) = G_TRUNC %1(s64)42    %4:_(s8) = G_SDIV %2, %343    %5:_(s64) = G_ANYEXT %4(s8)44    $x10 = COPY %5(s64)45    PseudoRET implicit $x1046 47...48---49name:            sdiv_i1550body:             |51  bb.0.entry:52    ; CHECK-I-LABEL: name: sdiv_i1553    ; CHECK-I: [[COPY:%[0-9]+]]:_(s64) = COPY $x1054    ; CHECK-I-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1155    ; CHECK-I-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 4956    ; CHECK-I-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)57    ; CHECK-I-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)58    ; CHECK-I-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL [[COPY1]], [[C]](s64)59    ; CHECK-I-NEXT: [[ASHR1:%[0-9]+]]:_(s64) = G_ASHR [[SHL1]], [[C]](s64)60    ; CHECK-I-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x261    ; CHECK-I-NEXT: $x10 = COPY [[ASHR]](s64)62    ; CHECK-I-NEXT: $x11 = COPY [[ASHR1]](s64)63    ; CHECK-I-NEXT: PseudoCALL target-flags(riscv-call) &__divdi3, 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]+]]:_(s64) = COPY $x1066    ; CHECK-I-NEXT: $x10 = COPY [[COPY2]](s64)67    ; CHECK-I-NEXT: PseudoRET implicit $x1068    ;69    ; CHECK-M-LABEL: name: sdiv_i1570    ; CHECK-M: [[COPY:%[0-9]+]]:_(s64) = COPY $x1071    ; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1172    ; CHECK-M-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 4973    ; CHECK-M-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)74    ; CHECK-M-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)75    ; CHECK-M-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL [[COPY1]], [[C]](s64)76    ; CHECK-M-NEXT: [[ASHR1:%[0-9]+]]:_(s64) = G_ASHR [[SHL1]], [[C]](s64)77    ; CHECK-M-NEXT: [[DIVW:%[0-9]+]]:_(s64) = G_DIVW [[ASHR]], [[ASHR1]]78    ; CHECK-M-NEXT: $x10 = COPY [[DIVW]](s64)79    ; CHECK-M-NEXT: PseudoRET implicit $x1080    %0:_(s64) = COPY $x1081    %1:_(s64) = COPY $x1182    %2:_(s15) = G_TRUNC %0(s64)83    %3:_(s15) = G_TRUNC %1(s64)84    %4:_(s15) = G_SDIV %2, %385    %5:_(s64) = G_ANYEXT %4(s15)86    $x10 = COPY %5(s64)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]+]]:_(s64) = COPY $x1096    ; CHECK-I-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1197    ; CHECK-I-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 4898    ; CHECK-I-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)99    ; CHECK-I-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)100    ; CHECK-I-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL [[COPY1]], [[C]](s64)101    ; CHECK-I-NEXT: [[ASHR1:%[0-9]+]]:_(s64) = G_ASHR [[SHL1]], [[C]](s64)102    ; CHECK-I-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2103    ; CHECK-I-NEXT: $x10 = COPY [[ASHR]](s64)104    ; CHECK-I-NEXT: $x11 = COPY [[ASHR1]](s64)105    ; CHECK-I-NEXT: PseudoCALL target-flags(riscv-call) &__divdi3, 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]+]]:_(s64) = COPY $x10108    ; CHECK-I-NEXT: $x10 = COPY [[COPY2]](s64)109    ; CHECK-I-NEXT: PseudoRET implicit $x10110    ;111    ; CHECK-M-LABEL: name: sdiv_i16112    ; CHECK-M: [[COPY:%[0-9]+]]:_(s64) = COPY $x10113    ; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11114    ; CHECK-M-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 48115    ; CHECK-M-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)116    ; CHECK-M-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)117    ; CHECK-M-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL [[COPY1]], [[C]](s64)118    ; CHECK-M-NEXT: [[ASHR1:%[0-9]+]]:_(s64) = G_ASHR [[SHL1]], [[C]](s64)119    ; CHECK-M-NEXT: [[DIVW:%[0-9]+]]:_(s64) = G_DIVW [[ASHR]], [[ASHR1]]120    ; CHECK-M-NEXT: $x10 = COPY [[DIVW]](s64)121    ; CHECK-M-NEXT: PseudoRET implicit $x10122    %0:_(s64) = COPY $x10123    %1:_(s64) = COPY $x11124    %2:_(s16) = G_TRUNC %0(s64)125    %3:_(s16) = G_TRUNC %1(s64)126    %4:_(s16) = G_SDIV %2, %3127    %5:_(s64) = G_ANYEXT %4(s16)128    $x10 = COPY %5(s64)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]+]]:_(s64) = COPY $x10138    ; CHECK-I-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11139    ; CHECK-I-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY]], 32140    ; CHECK-I-NEXT: [[SEXT_INREG1:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY1]], 32141    ; CHECK-I-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2142    ; CHECK-I-NEXT: $x10 = COPY [[SEXT_INREG]](s64)143    ; CHECK-I-NEXT: $x11 = COPY [[SEXT_INREG1]](s64)144    ; CHECK-I-NEXT: PseudoCALL target-flags(riscv-call) &__divdi3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit-def $x10145    ; CHECK-I-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2146    ; CHECK-I-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $x10147    ; CHECK-I-NEXT: $x10 = COPY [[COPY2]](s64)148    ; CHECK-I-NEXT: PseudoRET implicit $x10149    ;150    ; CHECK-M-LABEL: name: sdiv_i32151    ; CHECK-M: [[COPY:%[0-9]+]]:_(s64) = COPY $x10152    ; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11153    ; CHECK-M-NEXT: [[DIVW:%[0-9]+]]:_(s64) = G_DIVW [[COPY]], [[COPY1]]154    ; CHECK-M-NEXT: $x10 = COPY [[DIVW]](s64)155    ; CHECK-M-NEXT: PseudoRET implicit $x10156    %0:_(s64) = COPY $x10157    %1:_(s64) = COPY $x11158    %2:_(s32) = G_TRUNC %0(s64)159    %3:_(s32) = G_TRUNC %1(s64)160    %4:_(s32) = G_SDIV %2, %3161    %5:_(s64) = G_ANYEXT %4(s32)162    $x10 = COPY %5(s64)163    PseudoRET implicit $x10164 165...166---167name:            sdiv_i64168body:             |169  bb.0.entry:170    ; CHECK-I-LABEL: name: sdiv_i64171    ; CHECK-I: [[COPY:%[0-9]+]]:_(s64) = COPY $x10172    ; CHECK-I-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11173    ; CHECK-I-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2174    ; CHECK-I-NEXT: $x10 = COPY [[COPY]](s64)175    ; CHECK-I-NEXT: $x11 = COPY [[COPY1]](s64)176    ; CHECK-I-NEXT: PseudoCALL target-flags(riscv-call) &__divdi3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit-def $x10177    ; CHECK-I-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2178    ; CHECK-I-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $x10179    ; CHECK-I-NEXT: $x10 = COPY [[COPY2]](s64)180    ; CHECK-I-NEXT: PseudoRET implicit $x10181    ;182    ; CHECK-M-LABEL: name: sdiv_i64183    ; CHECK-M: [[COPY:%[0-9]+]]:_(s64) = COPY $x10184    ; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11185    ; CHECK-M-NEXT: [[SDIV:%[0-9]+]]:_(s64) = G_SDIV [[COPY]], [[COPY1]]186    ; CHECK-M-NEXT: $x10 = COPY [[SDIV]](s64)187    ; CHECK-M-NEXT: PseudoRET implicit $x10188    %0:_(s64) = COPY $x10189    %1:_(s64) = COPY $x11190    %2:_(s64) = G_SDIV %0, %1191    $x10 = COPY %2(s64)192    PseudoRET implicit $x10193 194...195---196name:            sdiv_i72197body:             |198  bb.0.entry:199    ; CHECK-I-LABEL: name: sdiv_i72200    ; CHECK-I: %xlo:_(s64) = COPY $x10201    ; CHECK-I-NEXT: %xhi:_(s64) = COPY $x11202    ; CHECK-I-NEXT: %ylo:_(s64) = COPY $x12203    ; CHECK-I-NEXT: %yhi:_(s64) = COPY $x13204    ; CHECK-I-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 56205    ; CHECK-I-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL %xhi, [[C]](s64)206    ; CHECK-I-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)207    ; CHECK-I-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL %yhi, [[C]](s64)208    ; CHECK-I-NEXT: [[ASHR1:%[0-9]+]]:_(s64) = G_ASHR [[SHL1]], [[C]](s64)209    ; CHECK-I-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2210    ; CHECK-I-NEXT: $x10 = COPY %xlo(s64)211    ; CHECK-I-NEXT: $x11 = COPY [[ASHR]](s64)212    ; CHECK-I-NEXT: $x12 = COPY %ylo(s64)213    ; CHECK-I-NEXT: $x13 = COPY [[ASHR1]](s64)214    ; CHECK-I-NEXT: PseudoCALL target-flags(riscv-call) &__divti3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit $x12, implicit $x13, implicit-def $x10, implicit-def $x11215    ; CHECK-I-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2216    ; CHECK-I-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10217    ; CHECK-I-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11218    ; CHECK-I-NEXT: $x10 = COPY [[COPY]](s64)219    ; CHECK-I-NEXT: $x11 = COPY [[COPY1]](s64)220    ; CHECK-I-NEXT: PseudoRET implicit $x10, implicit $x11221    ;222    ; CHECK-M-LABEL: name: sdiv_i72223    ; CHECK-M: %xlo:_(s64) = COPY $x10224    ; CHECK-M-NEXT: %xhi:_(s64) = COPY $x11225    ; CHECK-M-NEXT: %ylo:_(s64) = COPY $x12226    ; CHECK-M-NEXT: %yhi:_(s64) = COPY $x13227    ; CHECK-M-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 56228    ; CHECK-M-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL %xhi, [[C]](s64)229    ; CHECK-M-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)230    ; CHECK-M-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL %yhi, [[C]](s64)231    ; CHECK-M-NEXT: [[ASHR1:%[0-9]+]]:_(s64) = G_ASHR [[SHL1]], [[C]](s64)232    ; CHECK-M-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2233    ; CHECK-M-NEXT: $x10 = COPY %xlo(s64)234    ; CHECK-M-NEXT: $x11 = COPY [[ASHR]](s64)235    ; CHECK-M-NEXT: $x12 = COPY %ylo(s64)236    ; CHECK-M-NEXT: $x13 = COPY [[ASHR1]](s64)237    ; CHECK-M-NEXT: PseudoCALL target-flags(riscv-call) &__divti3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit $x12, implicit $x13, implicit-def $x10, implicit-def $x11238    ; CHECK-M-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2239    ; CHECK-M-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10240    ; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11241    ; CHECK-M-NEXT: $x10 = COPY [[COPY]](s64)242    ; CHECK-M-NEXT: $x11 = COPY [[COPY1]](s64)243    ; CHECK-M-NEXT: PseudoRET implicit $x10, implicit $x11244    %xlo:_(s64) = COPY $x10245    %xhi:_(s64) = COPY $x11246    %ylo:_(s64) = COPY $x12247    %yhi:_(s64) = COPY $x13248    %x0:_(s128) = G_MERGE_VALUES %xlo(s64), %xhi(s64)249    %y0:_(s128) = G_MERGE_VALUES %ylo(s64), %yhi(s64)250    %x:_(s72) = G_TRUNC %x0251    %y:_(s72) = G_TRUNC %y0252    %z:_(s72) = G_SDIV %x, %y253    %z0:_(s128) = G_ANYEXT %z254    %zlo:_(s64), %zhi:_(s64) = G_UNMERGE_VALUES %z0(s128)255    $x10 = COPY %zlo(s64)256    $x11 = COPY %zhi(s64)257    PseudoRET implicit $x10, implicit $x11258 259...260---261name:            sdiv_i128262body:             |263  bb.0.entry:264    ; CHECK-I-LABEL: name: sdiv_i128265    ; CHECK-I: %lo1:_(s64) = COPY $x10266    ; CHECK-I-NEXT: %hi1:_(s64) = COPY $x11267    ; CHECK-I-NEXT: %lo2:_(s64) = COPY $x12268    ; CHECK-I-NEXT: %hi2:_(s64) = COPY $x13269    ; CHECK-I-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2270    ; CHECK-I-NEXT: $x10 = COPY %lo1(s64)271    ; CHECK-I-NEXT: $x11 = COPY %hi1(s64)272    ; CHECK-I-NEXT: $x12 = COPY %lo2(s64)273    ; CHECK-I-NEXT: $x13 = COPY %hi2(s64)274    ; CHECK-I-NEXT: PseudoCALL target-flags(riscv-call) &__divti3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit $x12, implicit $x13, implicit-def $x10, implicit-def $x11275    ; CHECK-I-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2276    ; CHECK-I-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10277    ; CHECK-I-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11278    ; CHECK-I-NEXT: $x10 = COPY [[COPY]](s64)279    ; CHECK-I-NEXT: $x11 = COPY [[COPY1]](s64)280    ; CHECK-I-NEXT: PseudoRET implicit $x10, implicit $x11281    ;282    ; CHECK-M-LABEL: name: sdiv_i128283    ; CHECK-M: %lo1:_(s64) = COPY $x10284    ; CHECK-M-NEXT: %hi1:_(s64) = COPY $x11285    ; CHECK-M-NEXT: %lo2:_(s64) = COPY $x12286    ; CHECK-M-NEXT: %hi2:_(s64) = COPY $x13287    ; CHECK-M-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2288    ; CHECK-M-NEXT: $x10 = COPY %lo1(s64)289    ; CHECK-M-NEXT: $x11 = COPY %hi1(s64)290    ; CHECK-M-NEXT: $x12 = COPY %lo2(s64)291    ; CHECK-M-NEXT: $x13 = COPY %hi2(s64)292    ; CHECK-M-NEXT: PseudoCALL target-flags(riscv-call) &__divti3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit $x12, implicit $x13, implicit-def $x10, implicit-def $x11293    ; CHECK-M-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2294    ; CHECK-M-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10295    ; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11296    ; CHECK-M-NEXT: $x10 = COPY [[COPY]](s64)297    ; CHECK-M-NEXT: $x11 = COPY [[COPY1]](s64)298    ; CHECK-M-NEXT: PseudoRET implicit $x10, implicit $x11299    %lo1:_(s64) = COPY $x10300    %hi1:_(s64) = COPY $x11301    %lo2:_(s64) = COPY $x12302    %hi2:_(s64) = COPY $x13303    %x1:_(s128) = G_MERGE_VALUES %lo1(s64), %hi1(s64)304    %x2:_(s128) = G_MERGE_VALUES %lo2(s64), %hi2(s64)305    %y:_(s128) = G_SDIV %x1, %x2306    %loy:_(s64), %hiy:_(s64) = G_UNMERGE_VALUES %y(s128)307    $x10 = COPY %loy(s64)308    $x11 = COPY %hiy(s64)309    PseudoRET implicit $x10, implicit $x11310 311...312---313name:            udiv_i8314body:             |315  bb.0.entry:316    ; CHECK-I-LABEL: name: udiv_i8317    ; CHECK-I: [[COPY:%[0-9]+]]:_(s64) = COPY $x10318    ; CHECK-I-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11319    ; CHECK-I-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 255320    ; CHECK-I-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]321    ; CHECK-I-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]322    ; CHECK-I-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2323    ; CHECK-I-NEXT: $x10 = COPY [[AND]](s64)324    ; CHECK-I-NEXT: $x11 = COPY [[AND1]](s64)325    ; CHECK-I-NEXT: PseudoCALL target-flags(riscv-call) &__udivdi3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit-def $x10326    ; CHECK-I-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2327    ; CHECK-I-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $x10328    ; CHECK-I-NEXT: $x10 = COPY [[COPY2]](s64)329    ; CHECK-I-NEXT: PseudoRET implicit $x10330    ;331    ; CHECK-M-LABEL: name: udiv_i8332    ; CHECK-M: [[COPY:%[0-9]+]]:_(s64) = COPY $x10333    ; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11334    ; CHECK-M-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 255335    ; CHECK-M-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]336    ; CHECK-M-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]337    ; CHECK-M-NEXT: [[DIVUW:%[0-9]+]]:_(s64) = G_DIVUW [[AND]], [[AND1]]338    ; CHECK-M-NEXT: $x10 = COPY [[DIVUW]](s64)339    ; CHECK-M-NEXT: PseudoRET implicit $x10340    %0:_(s64) = COPY $x10341    %1:_(s64) = COPY $x11342    %2:_(s8) = G_TRUNC %0(s64)343    %3:_(s8) = G_TRUNC %1(s64)344    %4:_(s8) = G_UDIV %2, %3345    %5:_(s64) = G_ANYEXT %4(s8)346    $x10 = COPY %5(s64)347    PseudoRET implicit $x10348 349...350---351name:            udiv_i15352body:             |353  bb.0.entry:354    ; CHECK-I-LABEL: name: udiv_i15355    ; CHECK-I: [[COPY:%[0-9]+]]:_(s64) = COPY $x10356    ; CHECK-I-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11357    ; CHECK-I-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 32767358    ; CHECK-I-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]359    ; CHECK-I-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]360    ; CHECK-I-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2361    ; CHECK-I-NEXT: $x10 = COPY [[AND]](s64)362    ; CHECK-I-NEXT: $x11 = COPY [[AND1]](s64)363    ; CHECK-I-NEXT: PseudoCALL target-flags(riscv-call) &__udivdi3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit-def $x10364    ; CHECK-I-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2365    ; CHECK-I-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $x10366    ; CHECK-I-NEXT: $x10 = COPY [[COPY2]](s64)367    ; CHECK-I-NEXT: PseudoRET implicit $x10368    ;369    ; CHECK-M-LABEL: name: udiv_i15370    ; CHECK-M: [[COPY:%[0-9]+]]:_(s64) = COPY $x10371    ; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11372    ; CHECK-M-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 32767373    ; CHECK-M-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]374    ; CHECK-M-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]375    ; CHECK-M-NEXT: [[DIVUW:%[0-9]+]]:_(s64) = G_DIVUW [[AND]], [[AND1]]376    ; CHECK-M-NEXT: $x10 = COPY [[DIVUW]](s64)377    ; CHECK-M-NEXT: PseudoRET implicit $x10378    %0:_(s64) = COPY $x10379    %1:_(s64) = COPY $x11380    %2:_(s15) = G_TRUNC %0(s64)381    %3:_(s15) = G_TRUNC %1(s64)382    %4:_(s15) = G_UDIV %2, %3383    %5:_(s64) = G_ANYEXT %4(s15)384    $x10 = COPY %5(s64)385    PseudoRET implicit $x10386 387...388---389name:            udiv_i16390body:             |391  bb.0.entry:392    ; CHECK-I-LABEL: name: udiv_i16393    ; CHECK-I: [[COPY:%[0-9]+]]:_(s64) = COPY $x10394    ; CHECK-I-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11395    ; CHECK-I-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 65535396    ; CHECK-I-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]397    ; CHECK-I-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]398    ; CHECK-I-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2399    ; CHECK-I-NEXT: $x10 = COPY [[AND]](s64)400    ; CHECK-I-NEXT: $x11 = COPY [[AND1]](s64)401    ; CHECK-I-NEXT: PseudoCALL target-flags(riscv-call) &__udivdi3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit-def $x10402    ; CHECK-I-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2403    ; CHECK-I-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $x10404    ; CHECK-I-NEXT: $x10 = COPY [[COPY2]](s64)405    ; CHECK-I-NEXT: PseudoRET implicit $x10406    ;407    ; CHECK-M-LABEL: name: udiv_i16408    ; CHECK-M: [[COPY:%[0-9]+]]:_(s64) = COPY $x10409    ; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11410    ; CHECK-M-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 65535411    ; CHECK-M-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]412    ; CHECK-M-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]413    ; CHECK-M-NEXT: [[DIVUW:%[0-9]+]]:_(s64) = G_DIVUW [[AND]], [[AND1]]414    ; CHECK-M-NEXT: $x10 = COPY [[DIVUW]](s64)415    ; CHECK-M-NEXT: PseudoRET implicit $x10416    %0:_(s64) = COPY $x10417    %1:_(s64) = COPY $x11418    %2:_(s16) = G_TRUNC %0(s64)419    %3:_(s16) = G_TRUNC %1(s64)420    %4:_(s16) = G_UDIV %2, %3421    %5:_(s64) = G_ANYEXT %4(s16)422    $x10 = COPY %5(s64)423    PseudoRET implicit $x10424 425...426---427name:            udiv_i32428body:             |429  bb.0.entry:430    ; CHECK-I-LABEL: name: udiv_i32431    ; CHECK-I: [[COPY:%[0-9]+]]:_(s64) = COPY $x10432    ; CHECK-I-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11433    ; CHECK-I-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 4294967295434    ; CHECK-I-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]435    ; CHECK-I-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]436    ; CHECK-I-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2437    ; CHECK-I-NEXT: $x10 = COPY [[AND]](s64)438    ; CHECK-I-NEXT: $x11 = COPY [[AND1]](s64)439    ; CHECK-I-NEXT: PseudoCALL target-flags(riscv-call) &__udivdi3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit-def $x10440    ; CHECK-I-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2441    ; CHECK-I-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $x10442    ; CHECK-I-NEXT: $x10 = COPY [[COPY2]](s64)443    ; CHECK-I-NEXT: PseudoRET implicit $x10444    ;445    ; CHECK-M-LABEL: name: udiv_i32446    ; CHECK-M: [[COPY:%[0-9]+]]:_(s64) = COPY $x10447    ; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11448    ; CHECK-M-NEXT: [[DIVUW:%[0-9]+]]:_(s64) = G_DIVUW [[COPY]], [[COPY1]]449    ; CHECK-M-NEXT: $x10 = COPY [[DIVUW]](s64)450    ; CHECK-M-NEXT: PseudoRET implicit $x10451    %0:_(s64) = COPY $x10452    %1:_(s64) = COPY $x11453    %2:_(s32) = G_TRUNC %0(s64)454    %3:_(s32) = G_TRUNC %1(s64)455    %4:_(s32) = G_UDIV %2, %3456    %5:_(s64) = G_ANYEXT %4(s32)457    $x10 = COPY %5(s64)458    PseudoRET implicit $x10459 460...461---462name:            udiv_i64463body:             |464  bb.0.entry:465    ; CHECK-I-LABEL: name: udiv_i64466    ; CHECK-I: [[COPY:%[0-9]+]]:_(s64) = COPY $x10467    ; CHECK-I-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11468    ; CHECK-I-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2469    ; CHECK-I-NEXT: $x10 = COPY [[COPY]](s64)470    ; CHECK-I-NEXT: $x11 = COPY [[COPY1]](s64)471    ; CHECK-I-NEXT: PseudoCALL target-flags(riscv-call) &__udivdi3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit-def $x10472    ; CHECK-I-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2473    ; CHECK-I-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $x10474    ; CHECK-I-NEXT: $x10 = COPY [[COPY2]](s64)475    ; CHECK-I-NEXT: PseudoRET implicit $x10476    ;477    ; CHECK-M-LABEL: name: udiv_i64478    ; CHECK-M: [[COPY:%[0-9]+]]:_(s64) = COPY $x10479    ; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11480    ; CHECK-M-NEXT: [[UDIV:%[0-9]+]]:_(s64) = G_UDIV [[COPY]], [[COPY1]]481    ; CHECK-M-NEXT: $x10 = COPY [[UDIV]](s64)482    ; CHECK-M-NEXT: PseudoRET implicit $x10483    %0:_(s64) = COPY $x10484    %1:_(s64) = COPY $x11485    %2:_(s64) = G_UDIV %0, %1486    $x10 = COPY %2(s64)487    PseudoRET implicit $x10488 489...490---491name:            udiv_i72492body:             |493  bb.0.entry:494    ; CHECK-I-LABEL: name: udiv_i72495    ; CHECK-I: %xlo:_(s64) = COPY $x10496    ; CHECK-I-NEXT: %xhi:_(s64) = COPY $x11497    ; CHECK-I-NEXT: %ylo:_(s64) = COPY $x12498    ; CHECK-I-NEXT: %yhi:_(s64) = COPY $x13499    ; CHECK-I-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -1500    ; CHECK-I-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 255501    ; CHECK-I-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND %xlo, [[C]]502    ; CHECK-I-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND %xhi, [[C1]]503    ; CHECK-I-NEXT: [[AND2:%[0-9]+]]:_(s64) = G_AND %ylo, [[C]]504    ; CHECK-I-NEXT: [[AND3:%[0-9]+]]:_(s64) = G_AND %yhi, [[C1]]505    ; CHECK-I-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2506    ; CHECK-I-NEXT: $x10 = COPY [[AND]](s64)507    ; CHECK-I-NEXT: $x11 = COPY [[AND1]](s64)508    ; CHECK-I-NEXT: $x12 = COPY [[AND2]](s64)509    ; CHECK-I-NEXT: $x13 = COPY [[AND3]](s64)510    ; CHECK-I-NEXT: PseudoCALL target-flags(riscv-call) &__udivti3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit $x12, implicit $x13, implicit-def $x10, implicit-def $x11511    ; CHECK-I-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2512    ; CHECK-I-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10513    ; CHECK-I-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11514    ; CHECK-I-NEXT: $x10 = COPY [[COPY]](s64)515    ; CHECK-I-NEXT: $x11 = COPY [[COPY1]](s64)516    ; CHECK-I-NEXT: PseudoRET implicit $x10, implicit $x11517    ;518    ; CHECK-M-LABEL: name: udiv_i72519    ; CHECK-M: %xlo:_(s64) = COPY $x10520    ; CHECK-M-NEXT: %xhi:_(s64) = COPY $x11521    ; CHECK-M-NEXT: %ylo:_(s64) = COPY $x12522    ; CHECK-M-NEXT: %yhi:_(s64) = COPY $x13523    ; CHECK-M-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -1524    ; CHECK-M-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 255525    ; CHECK-M-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND %xlo, [[C]]526    ; CHECK-M-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND %xhi, [[C1]]527    ; CHECK-M-NEXT: [[AND2:%[0-9]+]]:_(s64) = G_AND %ylo, [[C]]528    ; CHECK-M-NEXT: [[AND3:%[0-9]+]]:_(s64) = G_AND %yhi, [[C1]]529    ; CHECK-M-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2530    ; CHECK-M-NEXT: $x10 = COPY [[AND]](s64)531    ; CHECK-M-NEXT: $x11 = COPY [[AND1]](s64)532    ; CHECK-M-NEXT: $x12 = COPY [[AND2]](s64)533    ; CHECK-M-NEXT: $x13 = COPY [[AND3]](s64)534    ; CHECK-M-NEXT: PseudoCALL target-flags(riscv-call) &__udivti3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit $x12, implicit $x13, implicit-def $x10, implicit-def $x11535    ; CHECK-M-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2536    ; CHECK-M-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10537    ; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11538    ; CHECK-M-NEXT: $x10 = COPY [[COPY]](s64)539    ; CHECK-M-NEXT: $x11 = COPY [[COPY1]](s64)540    ; CHECK-M-NEXT: PseudoRET implicit $x10, implicit $x11541    %xlo:_(s64) = COPY $x10542    %xhi:_(s64) = COPY $x11543    %ylo:_(s64) = COPY $x12544    %yhi:_(s64) = COPY $x13545    %x0:_(s128) = G_MERGE_VALUES %xlo(s64), %xhi(s64)546    %y0:_(s128) = G_MERGE_VALUES %ylo(s64), %yhi(s64)547    %x:_(s72) = G_TRUNC %x0548    %y:_(s72) = G_TRUNC %y0549    %z:_(s72) = G_UDIV %x, %y550    %z0:_(s128) = G_ANYEXT %z551    %zlo:_(s64), %zhi:_(s64) = G_UNMERGE_VALUES %z0(s128)552    $x10 = COPY %zlo(s64)553    $x11 = COPY %zhi(s64)554    PseudoRET implicit $x10, implicit $x11555 556...557---558name:            udiv_i128559body:             |560  bb.0.entry:561    ; CHECK-I-LABEL: name: udiv_i128562    ; CHECK-I: %lo1:_(s64) = COPY $x10563    ; CHECK-I-NEXT: %hi1:_(s64) = COPY $x11564    ; CHECK-I-NEXT: %lo2:_(s64) = COPY $x12565    ; CHECK-I-NEXT: %hi2:_(s64) = COPY $x13566    ; CHECK-I-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2567    ; CHECK-I-NEXT: $x10 = COPY %lo1(s64)568    ; CHECK-I-NEXT: $x11 = COPY %hi1(s64)569    ; CHECK-I-NEXT: $x12 = COPY %lo2(s64)570    ; CHECK-I-NEXT: $x13 = COPY %hi2(s64)571    ; CHECK-I-NEXT: PseudoCALL target-flags(riscv-call) &__udivti3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit $x12, implicit $x13, implicit-def $x10, implicit-def $x11572    ; CHECK-I-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2573    ; CHECK-I-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10574    ; CHECK-I-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11575    ; CHECK-I-NEXT: $x10 = COPY [[COPY]](s64)576    ; CHECK-I-NEXT: $x11 = COPY [[COPY1]](s64)577    ; CHECK-I-NEXT: PseudoRET implicit $x10, implicit $x11578    ;579    ; CHECK-M-LABEL: name: udiv_i128580    ; CHECK-M: %lo1:_(s64) = COPY $x10581    ; CHECK-M-NEXT: %hi1:_(s64) = COPY $x11582    ; CHECK-M-NEXT: %lo2:_(s64) = COPY $x12583    ; CHECK-M-NEXT: %hi2:_(s64) = COPY $x13584    ; CHECK-M-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2585    ; CHECK-M-NEXT: $x10 = COPY %lo1(s64)586    ; CHECK-M-NEXT: $x11 = COPY %hi1(s64)587    ; CHECK-M-NEXT: $x12 = COPY %lo2(s64)588    ; CHECK-M-NEXT: $x13 = COPY %hi2(s64)589    ; CHECK-M-NEXT: PseudoCALL target-flags(riscv-call) &__udivti3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit $x12, implicit $x13, implicit-def $x10, implicit-def $x11590    ; CHECK-M-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2591    ; CHECK-M-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10592    ; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11593    ; CHECK-M-NEXT: $x10 = COPY [[COPY]](s64)594    ; CHECK-M-NEXT: $x11 = COPY [[COPY1]](s64)595    ; CHECK-M-NEXT: PseudoRET implicit $x10, implicit $x11596    %lo1:_(s64) = COPY $x10597    %hi1:_(s64) = COPY $x11598    %lo2:_(s64) = COPY $x12599    %hi2:_(s64) = COPY $x13600    %x1:_(s128) = G_MERGE_VALUES %lo1(s64), %hi1(s64)601    %x2:_(s128) = G_MERGE_VALUES %lo2(s64), %hi2(s64)602    %y:_(s128) = G_UDIV %x1, %x2603    %loy:_(s64), %hiy:_(s64) = G_UNMERGE_VALUES %y(s128)604    $x10 = COPY %loy(s64)605    $x11 = COPY %hiy(s64)606    PseudoRET implicit $x10, implicit $x11607 608...609---610name:            udivrem_i64611body:             |612  bb.1.entry:613    liveins: $x10, $x11614 615    ; CHECK-I-LABEL: name: udivrem_i64616    ; CHECK-I: liveins: $x10, $x11617    ; CHECK-I-NEXT: {{  $}}618    ; CHECK-I-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10619    ; CHECK-I-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11620    ; CHECK-I-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2621    ; CHECK-I-NEXT: $x10 = COPY [[COPY]](s64)622    ; CHECK-I-NEXT: $x11 = COPY [[COPY1]](s64)623    ; CHECK-I-NEXT: PseudoCALL target-flags(riscv-call) &__udivdi3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit-def $x10624    ; CHECK-I-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2625    ; CHECK-I-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $x10626    ; CHECK-I-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2627    ; CHECK-I-NEXT: $x10 = COPY [[COPY]](s64)628    ; CHECK-I-NEXT: $x11 = COPY [[COPY1]](s64)629    ; CHECK-I-NEXT: PseudoCALL target-flags(riscv-call) &__umoddi3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit-def $x10630    ; CHECK-I-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2631    ; CHECK-I-NEXT: [[COPY3:%[0-9]+]]:_(s64) = COPY $x10632    ; CHECK-I-NEXT: [[ADD:%[0-9]+]]:_(s64) = G_ADD [[COPY2]], [[COPY3]]633    ; CHECK-I-NEXT: $x10 = COPY [[ADD]](s64)634    ; CHECK-I-NEXT: PseudoRET implicit $x10635    ;636    ; CHECK-M-LABEL: name: udivrem_i64637    ; CHECK-M: liveins: $x10, $x11638    ; CHECK-M-NEXT: {{  $}}639    ; CHECK-M-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10640    ; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11641    ; CHECK-M-NEXT: [[UDIV:%[0-9]+]]:_(s64) = G_UDIV [[COPY]], [[COPY1]]642    ; CHECK-M-NEXT: [[UREM:%[0-9]+]]:_(s64) = G_UREM [[COPY]], [[COPY1]]643    ; CHECK-M-NEXT: [[ADD:%[0-9]+]]:_(s64) = G_ADD [[UDIV]], [[UREM]]644    ; CHECK-M-NEXT: $x10 = COPY [[ADD]](s64)645    ; CHECK-M-NEXT: PseudoRET implicit $x10646    %0:_(s64) = COPY $x10647    %1:_(s64) = COPY $x11648    %2:_(s64), %3:_(s64) = G_UDIVREM %0, %1649    %4:_(s64) = G_ADD %2, %3650    $x10 = COPY %4(s64)651    PseudoRET implicit $x10652 653...654---655name:            sdivrem_i64656body:             |657  bb.1.entry:658    liveins: $x10, $x11659 660    ; CHECK-I-LABEL: name: sdivrem_i64661    ; CHECK-I: liveins: $x10, $x11662    ; CHECK-I-NEXT: {{  $}}663    ; CHECK-I-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10664    ; CHECK-I-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11665    ; CHECK-I-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2666    ; CHECK-I-NEXT: $x10 = COPY [[COPY]](s64)667    ; CHECK-I-NEXT: $x11 = COPY [[COPY1]](s64)668    ; CHECK-I-NEXT: PseudoCALL target-flags(riscv-call) &__divdi3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit-def $x10669    ; CHECK-I-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2670    ; CHECK-I-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $x10671    ; CHECK-I-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $x2, implicit $x2672    ; CHECK-I-NEXT: $x10 = COPY [[COPY]](s64)673    ; CHECK-I-NEXT: $x11 = COPY [[COPY1]](s64)674    ; CHECK-I-NEXT: PseudoCALL target-flags(riscv-call) &__moddi3, csr_ilp32_lp64, implicit-def $x1, implicit $x10, implicit $x11, implicit-def $x10675    ; CHECK-I-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $x2, implicit $x2676    ; CHECK-I-NEXT: [[COPY3:%[0-9]+]]:_(s64) = COPY $x10677    ; CHECK-I-NEXT: [[ADD:%[0-9]+]]:_(s64) = G_ADD [[COPY2]], [[COPY3]]678    ; CHECK-I-NEXT: $x10 = COPY [[ADD]](s64)679    ; CHECK-I-NEXT: PseudoRET implicit $x10680    ;681    ; CHECK-M-LABEL: name: sdivrem_i64682    ; CHECK-M: liveins: $x10, $x11683    ; CHECK-M-NEXT: {{  $}}684    ; CHECK-M-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10685    ; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11686    ; CHECK-M-NEXT: [[SDIV:%[0-9]+]]:_(s64) = G_SDIV [[COPY]], [[COPY1]]687    ; CHECK-M-NEXT: [[SREM:%[0-9]+]]:_(s64) = G_SREM [[COPY]], [[COPY1]]688    ; CHECK-M-NEXT: [[ADD:%[0-9]+]]:_(s64) = G_ADD [[SDIV]], [[SREM]]689    ; CHECK-M-NEXT: $x10 = COPY [[ADD]](s64)690    ; CHECK-M-NEXT: PseudoRET implicit $x10691    %0:_(s64) = COPY $x10692    %1:_(s64) = COPY $x11693    %2:_(s64), %3:_(s64) = G_SDIVREM %0, %1694    %4:_(s64) = G_ADD %2, %3695    $x10 = COPY %4(s64)696    PseudoRET implicit $x10697 698...699