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