brintos

brintos / llvm-project-archived public Read only

0
0
Text · 21.7 KiB · 5288bb5 Raw
554 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 %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]+]]:_(s32) = COPY $x1015    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1116    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2417    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C]](s32)18    ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)19    ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)20    ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)21    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[ASHR]], [[ASHR1]]22    ; CHECK-NEXT: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ADD]], [[C]](s32)23    ; CHECK-NEXT: [[ASHR2:%[0-9]+]]:_(s32) = G_ASHR [[SHL2]], [[C]](s32)24    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ne), [[ADD]](s32), [[ASHR2]]25    ; CHECK-NEXT: $x10 = COPY [[ADD]](s32)26    ; CHECK-NEXT: $x11 = COPY [[ICMP]](s32)27    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x1128    %2:_(s32) = COPY $x1029    %0:_(s8) = G_TRUNC %2(s32)30    %3:_(s32) = COPY $x1131    %1:_(s8) = G_TRUNC %3(s32)32    %4:_(s8), %5:_(s1) = G_SADDO %0, %133    %6:_(s32) = G_ANYEXT %4(s8)34    %7:_(s32) = G_ANYEXT %5(s1)35    $x10 = COPY %6(s32)36    $x11 = COPY %7(s32)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]+]]:_(s32) = COPY $x1050    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1151    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1652    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C]](s32)53    ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)54    ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)55    ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)56    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[ASHR]], [[ASHR1]]57    ; CHECK-NEXT: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ADD]], [[C]](s32)58    ; CHECK-NEXT: [[ASHR2:%[0-9]+]]:_(s32) = G_ASHR [[SHL2]], [[C]](s32)59    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ne), [[ADD]](s32), [[ASHR2]]60    ; CHECK-NEXT: $x10 = COPY [[ADD]](s32)61    ; CHECK-NEXT: $x11 = COPY [[ICMP]](s32)62    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x1163    %2:_(s32) = COPY $x1064    %0:_(s16) = G_TRUNC %2(s32)65    %3:_(s32) = COPY $x1166    %1:_(s16) = G_TRUNC %3(s32)67    %4:_(s16), %5:_(s1) = G_SADDO %0, %168    %6:_(s32) = G_ANYEXT %4(s16)69    %7:_(s32) = G_ANYEXT %5(s1)70    $x10 = COPY %6(s32)71    $x11 = COPY %7(s32)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]+]]:_(s32) = COPY $x1085    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1186    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[COPY]], [[COPY1]]87    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 088    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(slt), [[ADD]](s32), [[COPY]]89    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(slt), [[COPY1]](s32), [[C]]90    ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[ICMP1]], [[ICMP]]91    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY [[ADD]](s32)92    ; CHECK-NEXT: $x10 = COPY [[COPY2]](s32)93    ; CHECK-NEXT: $x11 = COPY [[XOR]](s32)94    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x1195    %0:_(s32) = COPY $x1096    %1:_(s32) = COPY $x1197    %2:_(s32), %3:_(s1) = G_SADDO %0, %198    %4:_(s32) = G_ANYEXT %3(s1)99    $x10 = COPY %2(s32)100    $x11 = COPY %4(s32)101    PseudoRET implicit $x10, implicit $x11102 103...104---105name:            saddo_i64106body:             |107  bb.1:108    liveins: $x10, $x11, $x12, $x13109 110    ; CHECK-LABEL: name: saddo_i64111    ; CHECK: liveins: $x10, $x11, $x12, $x13112    ; CHECK-NEXT: {{  $}}113    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10114    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11115    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x12116    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $x13117    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[COPY]], [[COPY2]]118    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[ADD]](s32), [[COPY2]]119    ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY [[ADD]](s32)120    ; CHECK-NEXT: [[ADD1:%[0-9]+]]:_(s32) = G_ADD [[COPY1]], [[COPY3]]121    ; CHECK-NEXT: [[ADD2:%[0-9]+]]:_(s32) = G_ADD [[ADD1]], [[ICMP]]122    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0123    ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY [[ADD2]](s32)124    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY4]](s32), [[COPY]]125    ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(slt), [[COPY5]](s32), [[COPY1]]126    ; CHECK-NEXT: [[ICMP3:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY5]](s32), [[COPY1]]127    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP3]](s32), [[ICMP1]], [[ICMP2]]128    ; CHECK-NEXT: [[ICMP4:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY2]](s32), [[C]]129    ; CHECK-NEXT: [[ICMP5:%[0-9]+]]:_(s32) = G_ICMP intpred(slt), [[COPY3]](s32), [[C]]130    ; CHECK-NEXT: [[ICMP6:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY3]](s32), [[C]]131    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s32) = G_SELECT [[ICMP6]](s32), [[ICMP4]], [[ICMP5]]132    ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[SELECT1]], [[SELECT]]133    ; CHECK-NEXT: $x10 = COPY [[COPY4]](s32)134    ; CHECK-NEXT: $x11 = COPY [[COPY5]](s32)135    ; CHECK-NEXT: $x12 = COPY [[XOR]](s32)136    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11, implicit $x12137    %2:_(s32) = COPY $x10138    %3:_(s32) = COPY $x11139    %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)140    %4:_(s32) = COPY $x12141    %5:_(s32) = COPY $x13142    %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)143    %6:_(s64), %7:_(s1) = G_SADDO %0, %1144    %8:_(s32), %9:_(s32) = G_UNMERGE_VALUES %6(s64)145    %10:_(s32) = G_ANYEXT %7(s1)146    $x10 = COPY %8(s32)147    $x11 = COPY %9(s32)148    $x12 = COPY %10(s32)149    PseudoRET implicit $x10, implicit $x11, implicit $x12150 151...152---153name:            ssubo_i8154body:             |155  bb.1:156    liveins: $x10, $x11157 158    ; CHECK-LABEL: name: ssubo_i8159    ; CHECK: liveins: $x10, $x11160    ; CHECK-NEXT: {{  $}}161    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10162    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11163    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 24164    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C]](s32)165    ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)166    ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)167    ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)168    ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[ASHR]], [[ASHR1]]169    ; CHECK-NEXT: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[SUB]], [[C]](s32)170    ; CHECK-NEXT: [[ASHR2:%[0-9]+]]:_(s32) = G_ASHR [[SHL2]], [[C]](s32)171    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ne), [[SUB]](s32), [[ASHR2]]172    ; CHECK-NEXT: $x10 = COPY [[SUB]](s32)173    ; CHECK-NEXT: $x11 = COPY [[ICMP]](s32)174    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11175    %2:_(s32) = COPY $x10176    %0:_(s8) = G_TRUNC %2(s32)177    %3:_(s32) = COPY $x11178    %1:_(s8) = G_TRUNC %3(s32)179    %4:_(s8), %5:_(s1) = G_SSUBO %0, %1180    %6:_(s32) = G_ANYEXT %4(s8)181    %7:_(s32) = G_ANYEXT %5(s1)182    $x10 = COPY %6(s32)183    $x11 = COPY %7(s32)184    PseudoRET implicit $x10, implicit $x11185 186...187---188name:            ssubo_i16189body:             |190  bb.1:191    liveins: $x10, $x11192 193    ; CHECK-LABEL: name: ssubo_i16194    ; CHECK: liveins: $x10, $x11195    ; CHECK-NEXT: {{  $}}196    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10197    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11198    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16199    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C]](s32)200    ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)201    ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32)202    ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)203    ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[ASHR]], [[ASHR1]]204    ; CHECK-NEXT: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[SUB]], [[C]](s32)205    ; CHECK-NEXT: [[ASHR2:%[0-9]+]]:_(s32) = G_ASHR [[SHL2]], [[C]](s32)206    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ne), [[SUB]](s32), [[ASHR2]]207    ; CHECK-NEXT: $x10 = COPY [[SUB]](s32)208    ; CHECK-NEXT: $x11 = COPY [[ICMP]](s32)209    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11210    %2:_(s32) = COPY $x10211    %0:_(s16) = G_TRUNC %2(s32)212    %3:_(s32) = COPY $x11213    %1:_(s16) = G_TRUNC %3(s32)214    %4:_(s16), %5:_(s1) = G_SSUBO %0, %1215    %6:_(s32) = G_ANYEXT %4(s16)216    %7:_(s32) = G_ANYEXT %5(s1)217    $x10 = COPY %6(s32)218    $x11 = COPY %7(s32)219    PseudoRET implicit $x10, implicit $x11220 221...222---223name:            ssubo_i32224body:             |225  bb.1:226    liveins: $x10, $x11227 228    ; CHECK-LABEL: name: ssubo_i32229    ; CHECK: liveins: $x10, $x11230    ; CHECK-NEXT: {{  $}}231    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10232    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11233    ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[COPY]], [[COPY1]]234    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0235    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(slt), [[SUB]](s32), [[COPY]]236    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(sgt), [[COPY1]](s32), [[C]]237    ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[ICMP1]], [[ICMP]]238    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY [[SUB]](s32)239    ; CHECK-NEXT: $x10 = COPY [[COPY2]](s32)240    ; CHECK-NEXT: $x11 = COPY [[XOR]](s32)241    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11242    %0:_(s32) = COPY $x10243    %1:_(s32) = COPY $x11244    %2:_(s32), %3:_(s1) = G_SSUBO %0, %1245    %4:_(s32) = G_ANYEXT %3(s1)246    $x10 = COPY %2(s32)247    $x11 = COPY %4(s32)248    PseudoRET implicit $x10, implicit $x11249 250...251---252name:            ssubo_i64253body:             |254  bb.1:255    liveins: $x10, $x11, $x12, $x13256 257    ; CHECK-LABEL: name: ssubo_i64258    ; CHECK: liveins: $x10, $x11, $x12, $x13259    ; CHECK-NEXT: {{  $}}260    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10261    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11262    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x12263    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $x13264    ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[COPY]], [[COPY2]]265    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY]](s32), [[COPY2]]266    ; CHECK-NEXT: [[SUB1:%[0-9]+]]:_(s32) = G_SUB [[COPY1]], [[COPY3]]267    ; CHECK-NEXT: [[SUB2:%[0-9]+]]:_(s32) = G_SUB [[SUB1]], [[ICMP]]268    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0269    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[SUB]](s32), [[COPY]]270    ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(slt), [[SUB2]](s32), [[COPY1]]271    ; CHECK-NEXT: [[ICMP3:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[SUB2]](s32), [[COPY1]]272    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP3]](s32), [[ICMP1]], [[ICMP2]]273    ; CHECK-NEXT: [[ICMP4:%[0-9]+]]:_(s32) = G_ICMP intpred(ugt), [[COPY2]](s32), [[C]]274    ; CHECK-NEXT: [[ICMP5:%[0-9]+]]:_(s32) = G_ICMP intpred(sgt), [[COPY3]](s32), [[C]]275    ; CHECK-NEXT: [[ICMP6:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY3]](s32), [[C]]276    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s32) = G_SELECT [[ICMP6]](s32), [[ICMP4]], [[ICMP5]]277    ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[SELECT1]], [[SELECT]]278    ; CHECK-NEXT: $x10 = COPY [[SUB]](s32)279    ; CHECK-NEXT: $x11 = COPY [[SUB2]](s32)280    ; CHECK-NEXT: $x12 = COPY [[XOR]](s32)281    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11, implicit $x12282    %2:_(s32) = COPY $x10283    %3:_(s32) = COPY $x11284    %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)285    %4:_(s32) = COPY $x12286    %5:_(s32) = COPY $x13287    %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)288    %6:_(s64), %7:_(s1) = G_SSUBO %0, %1289    %8:_(s32), %9:_(s32) = G_UNMERGE_VALUES %6(s64)290    %10:_(s32) = G_ANYEXT %7(s1)291    $x10 = COPY %8(s32)292    $x11 = COPY %9(s32)293    $x12 = COPY %10(s32)294    PseudoRET implicit $x10, implicit $x11, implicit $x12295 296...297---298name:            uaddo_i8299body:             |300  bb.1:301    liveins: $x10, $x11302 303    ; CHECK-LABEL: name: uaddo_i8304    ; CHECK: liveins: $x10, $x11305    ; CHECK-NEXT: {{  $}}306    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10307    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11308    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[COPY]], [[COPY1]]309    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 255310    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[ADD]], [[C]]311    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]312    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[AND]](s32), [[AND1]]313    ; CHECK-NEXT: $x10 = COPY [[ADD]](s32)314    ; CHECK-NEXT: $x11 = COPY [[ICMP]](s32)315    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11316    %2:_(s32) = COPY $x10317    %0:_(s8) = G_TRUNC %2(s32)318    %3:_(s32) = COPY $x11319    %1:_(s8) = G_TRUNC %3(s32)320    %4:_(s8), %5:_(s1) = G_UADDO %0, %1321    %6:_(s32) = G_ANYEXT %4(s8)322    %7:_(s32) = G_ANYEXT %5(s1)323    $x10 = COPY %6(s32)324    $x11 = COPY %7(s32)325    PseudoRET implicit $x10, implicit $x11326 327...328---329name:            uaddo_i16330body:             |331  bb.1:332    liveins: $x10, $x11333 334    ; CHECK-LABEL: name: uaddo_i16335    ; CHECK: liveins: $x10, $x11336    ; CHECK-NEXT: {{  $}}337    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10338    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11339    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[COPY]], [[COPY1]]340    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535341    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[ADD]], [[C]]342    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]343    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[AND]](s32), [[AND1]]344    ; CHECK-NEXT: $x10 = COPY [[ADD]](s32)345    ; CHECK-NEXT: $x11 = COPY [[ICMP]](s32)346    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11347    %2:_(s32) = COPY $x10348    %0:_(s16) = G_TRUNC %2(s32)349    %3:_(s32) = COPY $x11350    %1:_(s16) = G_TRUNC %3(s32)351    %4:_(s16), %5:_(s1) = G_UADDO %0, %1352    %6:_(s32) = G_ANYEXT %4(s16)353    %7:_(s32) = G_ANYEXT %5(s1)354    $x10 = COPY %6(s32)355    $x11 = COPY %7(s32)356    PseudoRET implicit $x10, implicit $x11357 358...359---360name:            uaddo_i32361body:             |362  bb.1:363    liveins: $x10, $x11364 365    ; CHECK-LABEL: name: uaddo_i32366    ; CHECK: liveins: $x10, $x11367    ; CHECK-NEXT: {{  $}}368    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10369    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11370    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[COPY]], [[COPY1]]371    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[ADD]](s32), [[COPY1]]372    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY [[ADD]](s32)373    ; CHECK-NEXT: $x10 = COPY [[COPY2]](s32)374    ; CHECK-NEXT: $x11 = COPY [[ICMP]](s32)375    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11376    %0:_(s32) = COPY $x10377    %1:_(s32) = COPY $x11378    %2:_(s32), %3:_(s1) = G_UADDO %0, %1379    %4:_(s32) = G_ANYEXT %3(s1)380    $x10 = COPY %2(s32)381    $x11 = COPY %4(s32)382    PseudoRET implicit $x10, implicit $x11383 384...385---386name:            uaddo_i64387body:             |388  bb.1:389    liveins: $x10, $x11, $x12, $x13390 391    ; CHECK-LABEL: name: uaddo_i64392    ; CHECK: liveins: $x10, $x11, $x12, $x13393    ; CHECK-NEXT: {{  $}}394    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10395    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11396    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x12397    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $x13398    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[COPY]], [[COPY2]]399    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[ADD]](s32), [[COPY2]]400    ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY [[ADD]](s32)401    ; CHECK-NEXT: [[ADD1:%[0-9]+]]:_(s32) = G_ADD [[COPY1]], [[COPY3]]402    ; CHECK-NEXT: [[ADD2:%[0-9]+]]:_(s32) = G_ADD [[ADD1]], [[ICMP]]403    ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY [[ADD2]](s32)404    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY4]](s32), [[COPY2]]405    ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY5]](s32), [[COPY3]]406    ; CHECK-NEXT: [[ICMP3:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY5]](s32), [[COPY3]]407    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP3]](s32), [[ICMP1]], [[ICMP2]]408    ; CHECK-NEXT: $x10 = COPY [[COPY4]](s32)409    ; CHECK-NEXT: $x11 = COPY [[COPY5]](s32)410    ; CHECK-NEXT: $x12 = COPY [[SELECT]](s32)411    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11, implicit $x12412    %2:_(s32) = COPY $x10413    %3:_(s32) = COPY $x11414    %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)415    %4:_(s32) = COPY $x12416    %5:_(s32) = COPY $x13417    %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)418    %6:_(s64), %7:_(s1) = G_UADDO %0, %1419    %8:_(s32), %9:_(s32) = G_UNMERGE_VALUES %6(s64)420    %10:_(s32) = G_ANYEXT %7(s1)421    $x10 = COPY %8(s32)422    $x11 = COPY %9(s32)423    $x12 = COPY %10(s32)424    PseudoRET implicit $x10, implicit $x11, implicit $x12425 426...427---428name:            usubo_i8429body:             |430  bb.1:431    liveins: $x10, $x11432 433    ; CHECK-LABEL: name: usubo_i8434    ; CHECK: liveins: $x10, $x11435    ; CHECK-NEXT: {{  $}}436    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10437    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11438    ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[COPY]], [[COPY1]]439    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 255440    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]441    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]442    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[AND]](s32), [[AND1]]443    ; CHECK-NEXT: $x10 = COPY [[SUB]](s32)444    ; CHECK-NEXT: $x11 = COPY [[ICMP]](s32)445    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11446    %2:_(s32) = COPY $x10447    %0:_(s8) = G_TRUNC %2(s32)448    %3:_(s32) = COPY $x11449    %1:_(s8) = G_TRUNC %3(s32)450    %4:_(s8), %5:_(s1) = G_USUBO %0, %1451    %6:_(s32) = G_ANYEXT %4(s8)452    %7:_(s32) = G_ANYEXT %5(s1)453    $x10 = COPY %6(s32)454    $x11 = COPY %7(s32)455    PseudoRET implicit $x10, implicit $x11456 457...458---459name:            usubo_i16460body:             |461  bb.1:462    liveins: $x10, $x11463 464    ; CHECK-LABEL: name: usubo_i16465    ; CHECK: liveins: $x10, $x11466    ; CHECK-NEXT: {{  $}}467    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10468    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11469    ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[COPY]], [[COPY1]]470    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535471    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]472    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]473    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[AND]](s32), [[AND1]]474    ; CHECK-NEXT: $x10 = COPY [[SUB]](s32)475    ; CHECK-NEXT: $x11 = COPY [[ICMP]](s32)476    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11477    %2:_(s32) = COPY $x10478    %0:_(s16) = G_TRUNC %2(s32)479    %3:_(s32) = COPY $x11480    %1:_(s16) = G_TRUNC %3(s32)481    %4:_(s16), %5:_(s1) = G_USUBO %0, %1482    %6:_(s32) = G_ANYEXT %4(s16)483    %7:_(s32) = G_ANYEXT %5(s1)484    $x10 = COPY %6(s32)485    $x11 = COPY %7(s32)486    PseudoRET implicit $x10, implicit $x11487 488...489---490name:            usubo_i32491body:             |492  bb.1:493    liveins: $x10, $x11494 495    ; CHECK-LABEL: name: usubo_i32496    ; CHECK: liveins: $x10, $x11497    ; CHECK-NEXT: {{  $}}498    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10499    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11500    ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[COPY]], [[COPY1]]501    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY]](s32), [[COPY1]]502    ; CHECK-NEXT: $x10 = COPY [[SUB]](s32)503    ; CHECK-NEXT: $x11 = COPY [[ICMP]](s32)504    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11505    %0:_(s32) = COPY $x10506    %1:_(s32) = COPY $x11507    %2:_(s32), %3:_(s1) = G_USUBO %0, %1508    %4:_(s32) = G_ANYEXT %3(s1)509    $x10 = COPY %2(s32)510    $x11 = COPY %4(s32)511    PseudoRET implicit $x10, implicit $x11512 513...514---515name:            usubo_i64516body:             |517  bb.1:518    liveins: $x10, $x11, $x12, $x13519 520    ; CHECK-LABEL: name: usubo_i64521    ; CHECK: liveins: $x10, $x11, $x12, $x13522    ; CHECK-NEXT: {{  $}}523    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10524    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11525    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x12526    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $x13527    ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[COPY]], [[COPY2]]528    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY]](s32), [[COPY2]]529    ; CHECK-NEXT: [[SUB1:%[0-9]+]]:_(s32) = G_SUB [[COPY1]], [[COPY3]]530    ; CHECK-NEXT: [[SUB2:%[0-9]+]]:_(s32) = G_SUB [[SUB1]], [[ICMP]]531    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY]](s32), [[COPY2]]532    ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY1]](s32), [[COPY3]]533    ; CHECK-NEXT: [[ICMP3:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY3]]534    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP3]](s32), [[ICMP1]], [[ICMP2]]535    ; CHECK-NEXT: $x10 = COPY [[SUB]](s32)536    ; CHECK-NEXT: $x11 = COPY [[SUB2]](s32)537    ; CHECK-NEXT: $x12 = COPY [[SELECT]](s32)538    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11, implicit $x12539    %2:_(s32) = COPY $x10540    %3:_(s32) = COPY $x11541    %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)542    %4:_(s32) = COPY $x12543    %5:_(s32) = COPY $x13544    %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)545    %6:_(s64), %7:_(s1) = G_USUBO %0, %1546    %8:_(s32), %9:_(s32) = G_UNMERGE_VALUES %6(s64)547    %10:_(s32) = G_ANYEXT %7(s1)548    $x10 = COPY %8(s32)549    $x11 = COPY %9(s32)550    $x12 = COPY %10(s32)551    PseudoRET implicit $x10, implicit $x11, implicit $x12552 553...554