501 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 %s4 5---6name: saddo_i87body: |8 bb.1:9 liveins: $x10, $x1110 11 ; CHECK-LABEL: name: saddo_i812 ; CHECK: liveins: $x10, $x1113 ; CHECK-NEXT: {{ $}}14 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x1015 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1116 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 5617 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)18 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)19 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL [[COPY1]], [[C]](s64)20 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s64) = G_ASHR [[SHL1]], [[C]](s64)21 ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s64) = G_ADD [[ASHR]], [[ASHR1]]22 ; CHECK-NEXT: [[SHL2:%[0-9]+]]:_(s64) = G_SHL [[ADD]], [[C]](s64)23 ; CHECK-NEXT: [[ASHR2:%[0-9]+]]:_(s64) = G_ASHR [[SHL2]], [[C]](s64)24 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ne), [[ADD]](s64), [[ASHR2]]25 ; CHECK-NEXT: $x10 = COPY [[ADD]](s64)26 ; CHECK-NEXT: $x11 = COPY [[ICMP]](s64)27 ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x1128 %2:_(s64) = COPY $x1029 %0:_(s8) = G_TRUNC %2(s64)30 %3:_(s64) = COPY $x1131 %1:_(s8) = G_TRUNC %3(s64)32 %4:_(s8), %5:_(s1) = G_SADDO %0, %133 %6:_(s64) = G_ANYEXT %4(s8)34 %7:_(s64) = G_ANYEXT %5(s1)35 $x10 = COPY %6(s64)36 $x11 = COPY %7(s64)37 PseudoRET implicit $x10, implicit $x1138 39...40---41name: saddo_i1642body: |43 bb.1:44 liveins: $x10, $x1145 46 ; CHECK-LABEL: name: saddo_i1647 ; CHECK: liveins: $x10, $x1148 ; CHECK-NEXT: {{ $}}49 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x1050 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1151 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 4852 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)53 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)54 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL [[COPY1]], [[C]](s64)55 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s64) = G_ASHR [[SHL1]], [[C]](s64)56 ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s64) = G_ADD [[ASHR]], [[ASHR1]]57 ; CHECK-NEXT: [[SHL2:%[0-9]+]]:_(s64) = G_SHL [[ADD]], [[C]](s64)58 ; CHECK-NEXT: [[ASHR2:%[0-9]+]]:_(s64) = G_ASHR [[SHL2]], [[C]](s64)59 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ne), [[ADD]](s64), [[ASHR2]]60 ; CHECK-NEXT: $x10 = COPY [[ADD]](s64)61 ; CHECK-NEXT: $x11 = COPY [[ICMP]](s64)62 ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x1163 %2:_(s64) = COPY $x1064 %0:_(s16) = G_TRUNC %2(s64)65 %3:_(s64) = COPY $x1166 %1:_(s16) = G_TRUNC %3(s64)67 %4:_(s16), %5:_(s1) = G_SADDO %0, %168 %6:_(s64) = G_ANYEXT %4(s16)69 %7:_(s64) = G_ANYEXT %5(s1)70 $x10 = COPY %6(s64)71 $x11 = COPY %7(s64)72 PseudoRET implicit $x10, implicit $x1173 74...75---76name: saddo_i3277body: |78 bb.1:79 liveins: $x10, $x1180 81 ; CHECK-LABEL: name: saddo_i3282 ; CHECK: liveins: $x10, $x1183 ; CHECK-NEXT: {{ $}}84 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x1085 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1186 ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY]], 3287 ; CHECK-NEXT: [[SEXT_INREG1:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY1]], 3288 ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s64) = G_ADD [[SEXT_INREG]], [[SEXT_INREG1]]89 ; CHECK-NEXT: [[SEXT_INREG2:%[0-9]+]]:_(s64) = G_SEXT_INREG [[ADD]], 3290 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ne), [[ADD]](s64), [[SEXT_INREG2]]91 ; CHECK-NEXT: $x10 = COPY [[ADD]](s64)92 ; CHECK-NEXT: $x11 = COPY [[ICMP]](s64)93 ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x1194 %2:_(s64) = COPY $x1095 %0:_(s32) = G_TRUNC %2(s64)96 %3:_(s64) = COPY $x1197 %1:_(s32) = G_TRUNC %3(s64)98 %4:_(s32), %5:_(s1) = G_SADDO %0, %199 %6:_(s64) = G_ANYEXT %4(s32)100 %7:_(s64) = G_ANYEXT %5(s1)101 $x10 = COPY %6(s64)102 $x11 = COPY %7(s64)103 PseudoRET implicit $x10, implicit $x11104 105...106---107name: saddo_i64108body: |109 bb.1:110 liveins: $x10, $x11111 112 ; CHECK-LABEL: name: saddo_i64113 ; CHECK: liveins: $x10, $x11114 ; CHECK-NEXT: {{ $}}115 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10116 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11117 ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s64) = G_ADD [[COPY]], [[COPY1]]118 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0119 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(slt), [[ADD]](s64), [[COPY]]120 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s64) = G_ICMP intpred(slt), [[COPY1]](s64), [[C]]121 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s64) = G_XOR [[ICMP1]], [[ICMP]]122 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY [[ADD]](s64)123 ; CHECK-NEXT: $x10 = COPY [[COPY2]](s64)124 ; CHECK-NEXT: $x11 = COPY [[XOR]](s64)125 ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11126 %0:_(s64) = COPY $x10127 %1:_(s64) = COPY $x11128 %2:_(s64), %3:_(s1) = G_SADDO %0, %1129 %4:_(s64) = G_ANYEXT %3(s1)130 $x10 = COPY %2(s64)131 $x11 = COPY %4(s64)132 PseudoRET implicit $x10, implicit $x11133 134...135---136name: ssubo_i8137body: |138 bb.1:139 liveins: $x10, $x11140 141 ; CHECK-LABEL: name: ssubo_i8142 ; CHECK: liveins: $x10, $x11143 ; CHECK-NEXT: {{ $}}144 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10145 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11146 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 56147 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)148 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)149 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL [[COPY1]], [[C]](s64)150 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s64) = G_ASHR [[SHL1]], [[C]](s64)151 ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s64) = G_SUB [[ASHR]], [[ASHR1]]152 ; CHECK-NEXT: [[SHL2:%[0-9]+]]:_(s64) = G_SHL [[SUB]], [[C]](s64)153 ; CHECK-NEXT: [[ASHR2:%[0-9]+]]:_(s64) = G_ASHR [[SHL2]], [[C]](s64)154 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ne), [[SUB]](s64), [[ASHR2]]155 ; CHECK-NEXT: $x10 = COPY [[SUB]](s64)156 ; CHECK-NEXT: $x11 = COPY [[ICMP]](s64)157 ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11158 %2:_(s64) = COPY $x10159 %0:_(s8) = G_TRUNC %2(s64)160 %3:_(s64) = COPY $x11161 %1:_(s8) = G_TRUNC %3(s64)162 %4:_(s8), %5:_(s1) = G_SSUBO %0, %1163 %6:_(s64) = G_ANYEXT %4(s8)164 %7:_(s64) = G_ANYEXT %5(s1)165 $x10 = COPY %6(s64)166 $x11 = COPY %7(s64)167 PseudoRET implicit $x10, implicit $x11168 169...170---171name: ssubo_i16172body: |173 bb.1:174 liveins: $x10, $x11175 176 ; CHECK-LABEL: name: ssubo_i16177 ; CHECK: liveins: $x10, $x11178 ; CHECK-NEXT: {{ $}}179 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10180 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11181 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 48182 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)183 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)184 ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL [[COPY1]], [[C]](s64)185 ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s64) = G_ASHR [[SHL1]], [[C]](s64)186 ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s64) = G_SUB [[ASHR]], [[ASHR1]]187 ; CHECK-NEXT: [[SHL2:%[0-9]+]]:_(s64) = G_SHL [[SUB]], [[C]](s64)188 ; CHECK-NEXT: [[ASHR2:%[0-9]+]]:_(s64) = G_ASHR [[SHL2]], [[C]](s64)189 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ne), [[SUB]](s64), [[ASHR2]]190 ; CHECK-NEXT: $x10 = COPY [[SUB]](s64)191 ; CHECK-NEXT: $x11 = COPY [[ICMP]](s64)192 ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11193 %2:_(s64) = COPY $x10194 %0:_(s16) = G_TRUNC %2(s64)195 %3:_(s64) = COPY $x11196 %1:_(s16) = G_TRUNC %3(s64)197 %4:_(s16), %5:_(s1) = G_SSUBO %0, %1198 %6:_(s64) = G_ANYEXT %4(s16)199 %7:_(s64) = G_ANYEXT %5(s1)200 $x10 = COPY %6(s64)201 $x11 = COPY %7(s64)202 PseudoRET implicit $x10, implicit $x11203 204...205---206name: ssubo_i32207body: |208 bb.1:209 liveins: $x10, $x11210 211 ; CHECK-LABEL: name: ssubo_i32212 ; CHECK: liveins: $x10, $x11213 ; CHECK-NEXT: {{ $}}214 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10215 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11216 ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY]], 32217 ; CHECK-NEXT: [[SEXT_INREG1:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY1]], 32218 ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s64) = G_SUB [[SEXT_INREG]], [[SEXT_INREG1]]219 ; CHECK-NEXT: [[SEXT_INREG2:%[0-9]+]]:_(s64) = G_SEXT_INREG [[SUB]], 32220 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ne), [[SUB]](s64), [[SEXT_INREG2]]221 ; CHECK-NEXT: $x10 = COPY [[SUB]](s64)222 ; CHECK-NEXT: $x11 = COPY [[ICMP]](s64)223 ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11224 %2:_(s64) = COPY $x10225 %0:_(s32) = G_TRUNC %2(s64)226 %3:_(s64) = COPY $x11227 %1:_(s32) = G_TRUNC %3(s64)228 %4:_(s32), %5:_(s1) = G_SSUBO %0, %1229 %6:_(s64) = G_ANYEXT %4(s32)230 %7:_(s64) = G_ANYEXT %5(s1)231 $x10 = COPY %6(s64)232 $x11 = COPY %7(s64)233 PseudoRET implicit $x10, implicit $x11234 235...236---237name: ssubo_i64238body: |239 bb.1:240 liveins: $x10, $x11241 242 ; CHECK-LABEL: name: ssubo_i64243 ; CHECK: liveins: $x10, $x11244 ; CHECK-NEXT: {{ $}}245 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10246 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11247 ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s64) = G_SUB [[COPY]], [[COPY1]]248 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0249 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(slt), [[SUB]](s64), [[COPY]]250 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s64) = G_ICMP intpred(sgt), [[COPY1]](s64), [[C]]251 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s64) = G_XOR [[ICMP1]], [[ICMP]]252 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY [[SUB]](s64)253 ; CHECK-NEXT: $x10 = COPY [[COPY2]](s64)254 ; CHECK-NEXT: $x11 = COPY [[XOR]](s64)255 ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11256 %0:_(s64) = COPY $x10257 %1:_(s64) = COPY $x11258 %2:_(s64), %3:_(s1) = G_SSUBO %0, %1259 %4:_(s64) = G_ANYEXT %3(s1)260 $x10 = COPY %2(s64)261 $x11 = COPY %4(s64)262 PseudoRET implicit $x10, implicit $x11263 264...265---266name: uaddo_i8267body: |268 bb.1:269 liveins: $x10, $x11270 271 ; CHECK-LABEL: name: uaddo_i8272 ; CHECK: liveins: $x10, $x11273 ; CHECK-NEXT: {{ $}}274 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10275 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11276 ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s64) = G_ADD [[COPY]], [[COPY1]]277 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 255278 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[ADD]], [[C]]279 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]280 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ult), [[AND]](s64), [[AND1]]281 ; CHECK-NEXT: $x10 = COPY [[ADD]](s64)282 ; CHECK-NEXT: $x11 = COPY [[ICMP]](s64)283 ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11284 %2:_(s64) = COPY $x10285 %0:_(s8) = G_TRUNC %2(s64)286 %3:_(s64) = COPY $x11287 %1:_(s8) = G_TRUNC %3(s64)288 %4:_(s8), %5:_(s1) = G_UADDO %0, %1289 %6:_(s64) = G_ANYEXT %4(s8)290 %7:_(s64) = G_ANYEXT %5(s1)291 $x10 = COPY %6(s64)292 $x11 = COPY %7(s64)293 PseudoRET implicit $x10, implicit $x11294 295...296---297name: uaddo_i16298body: |299 bb.1:300 liveins: $x10, $x11301 302 ; CHECK-LABEL: name: uaddo_i16303 ; CHECK: liveins: $x10, $x11304 ; CHECK-NEXT: {{ $}}305 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10306 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11307 ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s64) = G_ADD [[COPY]], [[COPY1]]308 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 65535309 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[ADD]], [[C]]310 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]311 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ult), [[AND]](s64), [[AND1]]312 ; CHECK-NEXT: $x10 = COPY [[ADD]](s64)313 ; CHECK-NEXT: $x11 = COPY [[ICMP]](s64)314 ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11315 %2:_(s64) = COPY $x10316 %0:_(s16) = G_TRUNC %2(s64)317 %3:_(s64) = COPY $x11318 %1:_(s16) = G_TRUNC %3(s64)319 %4:_(s16), %5:_(s1) = G_UADDO %0, %1320 %6:_(s64) = G_ANYEXT %4(s16)321 %7:_(s64) = G_ANYEXT %5(s1)322 $x10 = COPY %6(s64)323 $x11 = COPY %7(s64)324 PseudoRET implicit $x10, implicit $x11325 326...327---328name: uaddo_i32329body: |330 bb.1:331 liveins: $x10, $x11332 333 ; CHECK-LABEL: name: uaddo_i32334 ; CHECK: liveins: $x10, $x11335 ; CHECK-NEXT: {{ $}}336 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10337 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11338 ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s64) = G_ADD [[COPY]], [[COPY1]]339 ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG [[ADD]], 32340 ; CHECK-NEXT: [[SEXT_INREG1:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY1]], 32341 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ult), [[SEXT_INREG]](s64), [[SEXT_INREG1]]342 ; CHECK-NEXT: $x10 = COPY [[SEXT_INREG]](s64)343 ; CHECK-NEXT: $x11 = COPY [[ICMP]](s64)344 ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11345 %2:_(s64) = COPY $x10346 %0:_(s32) = G_TRUNC %2(s64)347 %3:_(s64) = COPY $x11348 %1:_(s32) = G_TRUNC %3(s64)349 %4:_(s32), %5:_(s1) = G_UADDO %0, %1350 %6:_(s64) = G_ANYEXT %4(s32)351 %7:_(s64) = G_ANYEXT %5(s1)352 $x10 = COPY %6(s64)353 $x11 = COPY %7(s64)354 PseudoRET implicit $x10, implicit $x11355 356...357---358name: uaddo_i64359body: |360 bb.1:361 liveins: $x10, $x11362 363 ; CHECK-LABEL: name: uaddo_i64364 ; CHECK: liveins: $x10, $x11365 ; CHECK-NEXT: {{ $}}366 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10367 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11368 ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s64) = G_ADD [[COPY]], [[COPY1]]369 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ult), [[ADD]](s64), [[COPY1]]370 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY [[ADD]](s64)371 ; CHECK-NEXT: $x10 = COPY [[COPY2]](s64)372 ; CHECK-NEXT: $x11 = COPY [[ICMP]](s64)373 ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11374 %0:_(s64) = COPY $x10375 %1:_(s64) = COPY $x11376 %2:_(s64), %3:_(s1) = G_UADDO %0, %1377 %4:_(s64) = G_ANYEXT %3(s1)378 $x10 = COPY %2(s64)379 $x11 = COPY %4(s64)380 PseudoRET implicit $x10, implicit $x11381 382...383---384name: usubo_i8385body: |386 bb.1:387 liveins: $x10, $x11388 389 ; CHECK-LABEL: name: usubo_i8390 ; CHECK: liveins: $x10, $x11391 ; CHECK-NEXT: {{ $}}392 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10393 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11394 ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s64) = G_SUB [[COPY]], [[COPY1]]395 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 255396 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]397 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]398 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ult), [[AND]](s64), [[AND1]]399 ; CHECK-NEXT: $x10 = COPY [[SUB]](s64)400 ; CHECK-NEXT: $x11 = COPY [[ICMP]](s64)401 ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11402 %2:_(s64) = COPY $x10403 %0:_(s8) = G_TRUNC %2(s64)404 %3:_(s64) = COPY $x11405 %1:_(s8) = G_TRUNC %3(s64)406 %4:_(s8), %5:_(s1) = G_USUBO %0, %1407 %6:_(s64) = G_ANYEXT %4(s8)408 %7:_(s64) = G_ANYEXT %5(s1)409 $x10 = COPY %6(s64)410 $x11 = COPY %7(s64)411 PseudoRET implicit $x10, implicit $x11412 413...414---415name: usubo_i16416body: |417 bb.1:418 liveins: $x10, $x11419 420 ; CHECK-LABEL: name: usubo_i16421 ; CHECK: liveins: $x10, $x11422 ; CHECK-NEXT: {{ $}}423 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10424 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11425 ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s64) = G_SUB [[COPY]], [[COPY1]]426 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 65535427 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]428 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]429 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ult), [[AND]](s64), [[AND1]]430 ; CHECK-NEXT: $x10 = COPY [[SUB]](s64)431 ; CHECK-NEXT: $x11 = COPY [[ICMP]](s64)432 ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11433 %2:_(s64) = COPY $x10434 %0:_(s16) = G_TRUNC %2(s64)435 %3:_(s64) = COPY $x11436 %1:_(s16) = G_TRUNC %3(s64)437 %4:_(s16), %5:_(s1) = G_USUBO %0, %1438 %6:_(s64) = G_ANYEXT %4(s16)439 %7:_(s64) = G_ANYEXT %5(s1)440 $x10 = COPY %6(s64)441 $x11 = COPY %7(s64)442 PseudoRET implicit $x10, implicit $x11443 444...445---446name: usubo_i32447body: |448 bb.1:449 liveins: $x10, $x11450 451 ; CHECK-LABEL: name: usubo_i32452 ; CHECK: liveins: $x10, $x11453 ; CHECK-NEXT: {{ $}}454 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10455 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11456 ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s64) = G_SUB [[COPY]], [[COPY1]]457 ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG [[SUB]], 32458 ; CHECK-NEXT: [[SEXT_INREG1:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY]], 32459 ; CHECK-NEXT: [[SEXT_INREG2:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY1]], 32460 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ult), [[SEXT_INREG1]](s64), [[SEXT_INREG2]]461 ; CHECK-NEXT: $x10 = COPY [[SEXT_INREG]](s64)462 ; CHECK-NEXT: $x11 = COPY [[ICMP]](s64)463 ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11464 %2:_(s64) = COPY $x10465 %0:_(s32) = G_TRUNC %2(s64)466 %3:_(s64) = COPY $x11467 %1:_(s32) = G_TRUNC %3(s64)468 %4:_(s32), %5:_(s1) = G_USUBO %0, %1469 %6:_(s64) = G_ANYEXT %4(s32)470 %7:_(s64) = G_ANYEXT %5(s1)471 $x10 = COPY %6(s64)472 $x11 = COPY %7(s64)473 PseudoRET implicit $x10, implicit $x11474 475...476---477name: usubo_i64478body: |479 bb.1:480 liveins: $x10, $x11481 482 ; CHECK-LABEL: name: usubo_i64483 ; CHECK: liveins: $x10, $x11484 ; CHECK-NEXT: {{ $}}485 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10486 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11487 ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s64) = G_SUB [[COPY]], [[COPY1]]488 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ult), [[COPY]](s64), [[COPY1]]489 ; CHECK-NEXT: $x10 = COPY [[SUB]](s64)490 ; CHECK-NEXT: $x11 = COPY [[ICMP]](s64)491 ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11492 %0:_(s64) = COPY $x10493 %1:_(s64) = COPY $x11494 %2:_(s64), %3:_(s1) = G_USUBO %0, %1495 %4:_(s64) = G_ANYEXT %3(s1)496 $x10 = COPY %2(s64)497 $x11 = COPY %4(s64)498 PseudoRET implicit $x10, implicit $x11499 500...501