brintos

brintos / llvm-project-archived public Read only

0
0
Text · 27.5 KiB · 6e6a47c Raw
574 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 52# RUN: llc -mtriple=riscv32 -run-pass=legalizer %s -o - \3# RUN: | FileCheck %s --check-prefixes=CHECK,RV32I4# RUN: llc -mtriple=riscv32 -mattr=+zbb -run-pass=legalizer %s -o - \5# RUN: | FileCheck %s --check-prefixes=CHECK,RV32ZBB6 7---8name:            uaddsat_i329body:             |10  bb.1:11    liveins: $x10, $x1112 13    ; RV32I-LABEL: name: uaddsat_i3214    ; RV32I: liveins: $x10, $x1115    ; RV32I-NEXT: {{  $}}16    ; RV32I-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x1017    ; RV32I-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1118    ; RV32I-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[COPY]], [[COPY1]]19    ; RV32I-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[ADD]](s32), [[COPY1]]20    ; RV32I-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY [[ADD]](s32)21    ; RV32I-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 -122    ; RV32I-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s32), [[C]], [[COPY2]]23    ; RV32I-NEXT: $x10 = COPY [[SELECT]](s32)24    ; RV32I-NEXT: PseudoRET implicit $x1025    ;26    ; RV32ZBB-LABEL: name: uaddsat_i3227    ; RV32ZBB: liveins: $x10, $x1128    ; RV32ZBB-NEXT: {{  $}}29    ; RV32ZBB-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x1030    ; RV32ZBB-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1131    ; RV32ZBB-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 -132    ; RV32ZBB-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[COPY]], [[C]]33    ; RV32ZBB-NEXT: [[UMIN:%[0-9]+]]:_(s32) = G_UMIN [[XOR]], [[COPY1]]34    ; RV32ZBB-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[COPY]], [[UMIN]]35    ; RV32ZBB-NEXT: $x10 = COPY [[ADD]](s32)36    ; RV32ZBB-NEXT: PseudoRET implicit $x1037    %0:_(s32) = COPY $x1038    %1:_(s32) = COPY $x1139    %2:_(s32) = G_UADDSAT %0, %1(s32)40    $x10 = COPY %2(s32)41    PseudoRET implicit $x1042 43...44---45name:            uaddsat_i6446body:             |47  bb.1:48    liveins: $x10, $x1149    ; CHECK-LABEL: name: uaddsat_i6450    ; CHECK: liveins: $x10, $x1151    ; CHECK-NEXT: {{  $}}52    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x1053    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1154    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x1255    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $x1356    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[COPY]], [[COPY2]]57    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[ADD]](s32), [[COPY2]]58    ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY [[ADD]](s32)59    ; CHECK-NEXT: [[ADD1:%[0-9]+]]:_(s32) = G_ADD [[COPY1]], [[COPY3]]60    ; CHECK-NEXT: [[ADD2:%[0-9]+]]:_(s32) = G_ADD [[ADD1]], [[ICMP]]61    ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY [[ADD2]](s32)62    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY4]](s32), [[COPY2]]63    ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY5]](s32), [[COPY3]]64    ; CHECK-NEXT: [[ICMP3:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY5]](s32), [[COPY3]]65    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP3]](s32), [[ICMP1]], [[ICMP2]]66    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 -167    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s32) = G_SELECT [[SELECT]](s32), [[C]], [[COPY4]]68    ; CHECK-NEXT: [[SELECT2:%[0-9]+]]:_(s32) = G_SELECT [[SELECT]](s32), [[C]], [[COPY5]]69    ; CHECK-NEXT: $x10 = COPY [[SELECT1]](s32)70    ; CHECK-NEXT: $x11 = COPY [[SELECT2]](s32)71    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x1172    %2:_(s32) = COPY $x1073    %3:_(s32) = COPY $x1174    %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)75    %4:_(s32) = COPY $x1276    %5:_(s32) = COPY $x1377    %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)78    %6:_(s64) = G_UADDSAT %0, %1(s64)79    %7:_(s32), %8:_(s32) = G_UNMERGE_VALUES %6(s64)80    $x10 = COPY %7(s32)81    $x11 = COPY %8(s32)82    PseudoRET implicit $x10, implicit $x1183 84...85---86name:            saddsat_i3287body:             |88  bb.1:89    liveins: $x10, $x1190 91    ; RV32I-LABEL: name: saddsat_i3292    ; RV32I: liveins: $x10, $x1193    ; RV32I-NEXT: {{  $}}94    ; RV32I-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x1095    ; RV32I-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1196    ; RV32I-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[COPY]], [[COPY1]]97    ; RV32I-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 098    ; RV32I-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(slt), [[ADD]](s32), [[COPY]]99    ; RV32I-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(slt), [[COPY1]](s32), [[C]]100    ; RV32I-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[ICMP1]], [[ICMP]]101    ; RV32I-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY [[ADD]](s32)102    ; RV32I-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 31103    ; RV32I-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[COPY2]], [[C1]](s32)104    ; RV32I-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 -2147483648105    ; RV32I-NEXT: [[ADD1:%[0-9]+]]:_(s32) = G_ADD [[ASHR]], [[C2]]106    ; RV32I-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[XOR]](s32), [[ADD1]], [[COPY2]]107    ; RV32I-NEXT: $x10 = COPY [[SELECT]](s32)108    ; RV32I-NEXT: PseudoRET implicit $x10109    ;110    ; RV32ZBB-LABEL: name: saddsat_i32111    ; RV32ZBB: liveins: $x10, $x11112    ; RV32ZBB-NEXT: {{  $}}113    ; RV32ZBB-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10114    ; RV32ZBB-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11115    ; RV32ZBB-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2147483647116    ; RV32ZBB-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 -2147483648117    ; RV32ZBB-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 0118    ; RV32ZBB-NEXT: [[SMAX:%[0-9]+]]:_(s32) = G_SMAX [[COPY]], [[C2]]119    ; RV32ZBB-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[C]], [[SMAX]]120    ; RV32ZBB-NEXT: [[SMIN:%[0-9]+]]:_(s32) = G_SMIN [[COPY]], [[C2]]121    ; RV32ZBB-NEXT: [[SUB1:%[0-9]+]]:_(s32) = G_SUB [[C1]], [[SMIN]]122    ; RV32ZBB-NEXT: [[SMAX1:%[0-9]+]]:_(s32) = G_SMAX [[SUB1]], [[COPY1]]123    ; RV32ZBB-NEXT: [[SMIN1:%[0-9]+]]:_(s32) = G_SMIN [[SMAX1]], [[SUB]]124    ; RV32ZBB-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[COPY]], [[SMIN1]]125    ; RV32ZBB-NEXT: $x10 = COPY [[ADD]](s32)126    ; RV32ZBB-NEXT: PseudoRET implicit $x10127    %0:_(s32) = COPY $x10128    %1:_(s32) = COPY $x11129    %2:_(s32) = G_SADDSAT %0, %1(s32)130    $x10 = COPY %2(s32)131    PseudoRET implicit $x10132 133...134---135name:            saddsat_i64136body:             |137  bb.1:138    liveins: $x10, $x11139    ; CHECK-LABEL: name: saddsat_i64140    ; CHECK: liveins: $x10, $x11141    ; CHECK-NEXT: {{  $}}142    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10143    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11144    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x12145    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $x13146    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[COPY]], [[COPY2]]147    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[ADD]](s32), [[COPY2]]148    ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY [[ADD]](s32)149    ; CHECK-NEXT: [[ADD1:%[0-9]+]]:_(s32) = G_ADD [[COPY1]], [[COPY3]]150    ; CHECK-NEXT: [[ADD2:%[0-9]+]]:_(s32) = G_ADD [[ADD1]], [[ICMP]]151    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0152    ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY [[ADD2]](s32)153    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY4]](s32), [[COPY]]154    ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(slt), [[COPY5]](s32), [[COPY1]]155    ; CHECK-NEXT: [[ICMP3:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY5]](s32), [[COPY1]]156    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP3]](s32), [[ICMP1]], [[ICMP2]]157    ; CHECK-NEXT: [[ICMP4:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY2]](s32), [[C]]158    ; CHECK-NEXT: [[ICMP5:%[0-9]+]]:_(s32) = G_ICMP intpred(slt), [[COPY3]](s32), [[C]]159    ; CHECK-NEXT: [[ICMP6:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY3]](s32), [[C]]160    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s32) = G_SELECT [[ICMP6]](s32), [[ICMP4]], [[ICMP5]]161    ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[SELECT1]], [[SELECT]]162    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 31163    ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[COPY5]], [[C1]](s32)164    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 -2147483648165    ; CHECK-NEXT: [[ADD3:%[0-9]+]]:_(s32) = G_ADD [[ASHR]], [[C]]166    ; CHECK-NEXT: [[ICMP7:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[ADD3]](s32), [[C]]167    ; CHECK-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY [[ADD3]](s32)168    ; CHECK-NEXT: [[ADD4:%[0-9]+]]:_(s32) = G_ADD [[ASHR]], [[C2]]169    ; CHECK-NEXT: [[ADD5:%[0-9]+]]:_(s32) = G_ADD [[ADD4]], [[ICMP7]]170    ; CHECK-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY [[ADD5]](s32)171    ; CHECK-NEXT: [[SELECT2:%[0-9]+]]:_(s32) = G_SELECT [[XOR]](s32), [[COPY6]], [[COPY4]]172    ; CHECK-NEXT: [[SELECT3:%[0-9]+]]:_(s32) = G_SELECT [[XOR]](s32), [[COPY7]], [[COPY5]]173    ; CHECK-NEXT: $x10 = COPY [[SELECT2]](s32)174    ; CHECK-NEXT: $x11 = COPY [[SELECT3]](s32)175    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11176    %2:_(s32) = COPY $x10177    %3:_(s32) = COPY $x11178    %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)179    %4:_(s32) = COPY $x12180    %5:_(s32) = COPY $x13181    %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)182    %6:_(s64) = G_SADDSAT %0, %1(s64)183    %7:_(s32), %8:_(s32) = G_UNMERGE_VALUES %6(s64)184    $x10 = COPY %7(s32)185    $x11 = COPY %8(s32)186    PseudoRET implicit $x10, implicit $x11187 188...189---190name:            usubsat_i32191body:             |192  bb.1:193    liveins: $x10, $x11194 195    ; RV32I-LABEL: name: usubsat_i32196    ; RV32I: liveins: $x10, $x11197    ; RV32I-NEXT: {{  $}}198    ; RV32I-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10199    ; RV32I-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11200    ; RV32I-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[COPY]], [[COPY1]]201    ; RV32I-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY]](s32), [[COPY1]]202    ; RV32I-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0203    ; RV32I-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s32), [[C]], [[SUB]]204    ; RV32I-NEXT: $x10 = COPY [[SELECT]](s32)205    ; RV32I-NEXT: PseudoRET implicit $x10206    ;207    ; RV32ZBB-LABEL: name: usubsat_i32208    ; RV32ZBB: liveins: $x10, $x11209    ; RV32ZBB-NEXT: {{  $}}210    ; RV32ZBB-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10211    ; RV32ZBB-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11212    ; RV32ZBB-NEXT: [[UMIN:%[0-9]+]]:_(s32) = G_UMIN [[COPY]], [[COPY1]]213    ; RV32ZBB-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[COPY]], [[UMIN]]214    ; RV32ZBB-NEXT: $x10 = COPY [[SUB]](s32)215    ; RV32ZBB-NEXT: PseudoRET implicit $x10216    %0:_(s32) = COPY $x10217    %1:_(s32) = COPY $x11218    %2:_(s32) = G_USUBSAT %0, %1(s32)219    $x10 = COPY %2(s32)220    PseudoRET implicit $x10221 222...223---224name:            usubsat_i64225body:             |226  bb.1:227    liveins: $x10, $x11228    ; CHECK-LABEL: name: usubsat_i64229    ; 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: [[COPY2:%[0-9]+]]:_(s32) = COPY $x12234    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $x13235    ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[COPY]], [[COPY2]]236    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY]](s32), [[COPY2]]237    ; CHECK-NEXT: [[SUB1:%[0-9]+]]:_(s32) = G_SUB [[COPY1]], [[COPY3]]238    ; CHECK-NEXT: [[SUB2:%[0-9]+]]:_(s32) = G_SUB [[SUB1]], [[ICMP]]239    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0240    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY]](s32), [[COPY2]]241    ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY1]](s32), [[COPY3]]242    ; CHECK-NEXT: [[ICMP3:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY3]]243    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP3]](s32), [[ICMP1]], [[ICMP2]]244    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s32) = G_SELECT [[SELECT]](s32), [[C]], [[SUB]]245    ; CHECK-NEXT: [[SELECT2:%[0-9]+]]:_(s32) = G_SELECT [[SELECT]](s32), [[C]], [[SUB2]]246    ; CHECK-NEXT: $x10 = COPY [[SELECT1]](s32)247    ; CHECK-NEXT: $x11 = COPY [[SELECT2]](s32)248    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11249    %2:_(s32) = COPY $x10250    %3:_(s32) = COPY $x11251    %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)252    %4:_(s32) = COPY $x12253    %5:_(s32) = COPY $x13254    %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)255    %6:_(s64) = G_USUBSAT %0, %1(s64)256    %7:_(s32), %8:_(s32) = G_UNMERGE_VALUES %6(s64)257    $x10 = COPY %7(s32)258    $x11 = COPY %8(s32)259    PseudoRET implicit $x10, implicit $x11260 261...262---263name:            ssubsat_i32264body:             |265  bb.1:266    liveins: $x10, $x11267 268    ; RV32I-LABEL: name: ssubsat_i32269    ; RV32I: liveins: $x10, $x11270    ; RV32I-NEXT: {{  $}}271    ; RV32I-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10272    ; RV32I-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11273    ; RV32I-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[COPY]], [[COPY1]]274    ; RV32I-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0275    ; RV32I-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(slt), [[SUB]](s32), [[COPY]]276    ; RV32I-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(sgt), [[COPY1]](s32), [[C]]277    ; RV32I-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[ICMP1]], [[ICMP]]278    ; RV32I-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY [[SUB]](s32)279    ; RV32I-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 31280    ; RV32I-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[COPY2]], [[C1]](s32)281    ; RV32I-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 -2147483648282    ; RV32I-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[ASHR]], [[C2]]283    ; RV32I-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[XOR]](s32), [[ADD]], [[COPY2]]284    ; RV32I-NEXT: $x10 = COPY [[SELECT]](s32)285    ; RV32I-NEXT: PseudoRET implicit $x10286    ;287    ; RV32ZBB-LABEL: name: ssubsat_i32288    ; RV32ZBB: liveins: $x10, $x11289    ; RV32ZBB-NEXT: {{  $}}290    ; RV32ZBB-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10291    ; RV32ZBB-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11292    ; RV32ZBB-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2147483647293    ; RV32ZBB-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 -2147483648294    ; RV32ZBB-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 -1295    ; RV32ZBB-NEXT: [[SMAX:%[0-9]+]]:_(s32) = G_SMAX [[COPY]], [[C2]]296    ; RV32ZBB-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[SMAX]], [[C]]297    ; RV32ZBB-NEXT: [[SMIN:%[0-9]+]]:_(s32) = G_SMIN [[COPY]], [[C2]]298    ; RV32ZBB-NEXT: [[SUB1:%[0-9]+]]:_(s32) = G_SUB [[SMIN]], [[C1]]299    ; RV32ZBB-NEXT: [[SMAX1:%[0-9]+]]:_(s32) = G_SMAX [[SUB]], [[COPY1]]300    ; RV32ZBB-NEXT: [[SMIN1:%[0-9]+]]:_(s32) = G_SMIN [[SMAX1]], [[SUB1]]301    ; RV32ZBB-NEXT: [[SUB2:%[0-9]+]]:_(s32) = G_SUB [[COPY]], [[SMIN1]]302    ; RV32ZBB-NEXT: $x10 = COPY [[SUB2]](s32)303    ; RV32ZBB-NEXT: PseudoRET implicit $x10304    %0:_(s32) = COPY $x10305    %1:_(s32) = COPY $x11306    %2:_(s32) = G_SSUBSAT %0, %1(s32)307    $x10 = COPY %2(s32)308    PseudoRET implicit $x10309 310...311---312name:            ssubsat_i64313body:             |314  bb.1:315    liveins: $x10, $x11316    ; CHECK-LABEL: name: ssubsat_i64317    ; CHECK: liveins: $x10, $x11318    ; CHECK-NEXT: {{  $}}319    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10320    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11321    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x12322    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $x13323    ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[COPY]], [[COPY2]]324    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY]](s32), [[COPY2]]325    ; CHECK-NEXT: [[SUB1:%[0-9]+]]:_(s32) = G_SUB [[COPY1]], [[COPY3]]326    ; CHECK-NEXT: [[SUB2:%[0-9]+]]:_(s32) = G_SUB [[SUB1]], [[ICMP]]327    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0328    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[SUB]](s32), [[COPY]]329    ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(slt), [[SUB2]](s32), [[COPY1]]330    ; CHECK-NEXT: [[ICMP3:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[SUB2]](s32), [[COPY1]]331    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP3]](s32), [[ICMP1]], [[ICMP2]]332    ; CHECK-NEXT: [[ICMP4:%[0-9]+]]:_(s32) = G_ICMP intpred(ugt), [[COPY2]](s32), [[C]]333    ; CHECK-NEXT: [[ICMP5:%[0-9]+]]:_(s32) = G_ICMP intpred(sgt), [[COPY3]](s32), [[C]]334    ; CHECK-NEXT: [[ICMP6:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY3]](s32), [[C]]335    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s32) = G_SELECT [[ICMP6]](s32), [[ICMP4]], [[ICMP5]]336    ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[SELECT1]], [[SELECT]]337    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 31338    ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SUB2]], [[C1]](s32)339    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 -2147483648340    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[ASHR]], [[C]]341    ; CHECK-NEXT: [[ICMP7:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[ADD]](s32), [[C]]342    ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY [[ADD]](s32)343    ; CHECK-NEXT: [[ADD1:%[0-9]+]]:_(s32) = G_ADD [[ASHR]], [[C2]]344    ; CHECK-NEXT: [[ADD2:%[0-9]+]]:_(s32) = G_ADD [[ADD1]], [[ICMP7]]345    ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY [[ADD2]](s32)346    ; CHECK-NEXT: [[SELECT2:%[0-9]+]]:_(s32) = G_SELECT [[XOR]](s32), [[COPY4]], [[SUB]]347    ; CHECK-NEXT: [[SELECT3:%[0-9]+]]:_(s32) = G_SELECT [[XOR]](s32), [[COPY5]], [[SUB2]]348    ; CHECK-NEXT: $x10 = COPY [[SELECT2]](s32)349    ; CHECK-NEXT: $x11 = COPY [[SELECT3]](s32)350    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11351    %2:_(s32) = COPY $x10352    %3:_(s32) = COPY $x11353    %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)354    %4:_(s32) = COPY $x12355    %5:_(s32) = COPY $x13356    %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)357    %6:_(s64) = G_SSUBSAT %0, %1(s64)358    %7:_(s32), %8:_(s32) = G_UNMERGE_VALUES %6(s64)359    $x10 = COPY %7(s32)360    $x11 = COPY %8(s32)361    PseudoRET implicit $x10, implicit $x11362 363...364---365name:            uaddsat_i8366body:             |367  bb.1:368    liveins: $x10, $x11369 370    ; CHECK-LABEL: name: uaddsat_i8371    ; CHECK: liveins: $x10, $x11372    ; CHECK-NEXT: {{  $}}373    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10374    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11375    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[COPY]], [[COPY1]]376    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 255377    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[ADD]], [[C]]378    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]379    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[AND]](s32), [[AND1]]380    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 -1381    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s32), [[C1]], [[ADD]]382    ; CHECK-NEXT: $x10 = COPY [[SELECT]](s32)383    ; CHECK-NEXT: PseudoRET implicit $x10384    %2:_(s32) = COPY $x10385    %0:_(s8) = G_TRUNC %2(s32)386    %3:_(s32) = COPY $x11387    %1:_(s8) = G_TRUNC %3(s32)388    %4:_(s8) = G_UADDSAT %0, %1(s8)389    %5:_(s32) = G_ANYEXT %4(s8)390    $x10 = COPY %5(s32)391    PseudoRET implicit $x10392 393...394---395name:            sshlsat_i32396body:             |397  bb.1:398    liveins: $x10, $x11399 400    ; CHECK-LABEL: name: sshlsat_i32401    ; CHECK: liveins: $x10, $x11402    ; CHECK-NEXT: {{  $}}403    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10404    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11405    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[COPY1]](s32)406    ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[COPY1]](s32)407    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 -2147483648408    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2147483647409    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 0410    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(slt), [[COPY]](s32), [[C2]]411    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s32), [[C]], [[C1]]412    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(ne), [[COPY]](s32), [[ASHR]]413    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s32) = G_SELECT [[ICMP1]](s32), [[SELECT]], [[SHL]]414    ; CHECK-NEXT: $x10 = COPY [[SELECT1]](s32)415    ; CHECK-NEXT: PseudoRET implicit $x10416    %0:_(s32) = COPY $x10417    %1:_(s32) = COPY $x11418    %2:_(s32) = G_SSHLSAT %0, %1(s32)419    $x10 = COPY %2(s32)420    PseudoRET implicit $x10421 422...423---424name:            sshlsat_i64425body:             |426  bb.1:427    liveins: $x10, $x11428    ; CHECK-LABEL: name: sshlsat_i64429    ; CHECK: liveins: $x10, $x11430    ; CHECK-NEXT: {{  $}}431    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10432    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11433    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x12434    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 32435    ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[COPY2]], [[C]]436    ; CHECK-NEXT: [[SUB1:%[0-9]+]]:_(s32) = G_SUB [[C]], [[COPY2]]437    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 0438    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY2]](s32), [[C]]439    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C1]]440    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[COPY2]](s32)441    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[COPY]], [[SUB1]](s32)442    ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[COPY2]](s32)443    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[LSHR]], [[SHL1]]444    ; CHECK-NEXT: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[SUB]](s32)445    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s32), [[SHL]], [[C1]]446    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s32), [[OR]], [[SHL2]]447    ; CHECK-NEXT: [[SELECT2:%[0-9]+]]:_(s32) = G_SELECT [[ICMP1]](s32), [[COPY1]], [[SELECT1]]448    ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY2]](s32), [[C]]449    ; CHECK-NEXT: [[ICMP3:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C1]]450    ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SELECT2]], [[COPY2]](s32)451    ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[SELECT]], [[COPY2]](s32)452    ; CHECK-NEXT: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[SELECT2]], [[SUB1]](s32)453    ; CHECK-NEXT: [[OR1:%[0-9]+]]:_(s32) = G_OR [[LSHR1]], [[SHL3]]454    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 31455    ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SELECT2]], [[C2]](s32)456    ; CHECK-NEXT: [[ASHR2:%[0-9]+]]:_(s32) = G_ASHR [[SELECT2]], [[SUB]](s32)457    ; CHECK-NEXT: [[SELECT3:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[OR1]], [[ASHR2]]458    ; CHECK-NEXT: [[SELECT4:%[0-9]+]]:_(s32) = G_SELECT [[ICMP3]](s32), [[SELECT]], [[SELECT3]]459    ; CHECK-NEXT: [[SELECT5:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[ASHR]], [[ASHR1]]460    ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 -2147483648461    ; CHECK-NEXT: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 -1462    ; CHECK-NEXT: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 2147483647463    ; CHECK-NEXT: [[ICMP4:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY]](s32), [[C1]]464    ; CHECK-NEXT: [[ICMP5:%[0-9]+]]:_(s32) = G_ICMP intpred(slt), [[COPY1]](s32), [[C1]]465    ; CHECK-NEXT: [[ICMP6:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[C1]]466    ; CHECK-NEXT: [[SELECT6:%[0-9]+]]:_(s32) = G_SELECT [[ICMP6]](s32), [[ICMP4]], [[ICMP5]]467    ; CHECK-NEXT: [[SELECT7:%[0-9]+]]:_(s32) = G_SELECT [[SELECT6]](s32), [[C1]], [[C4]]468    ; CHECK-NEXT: [[SELECT8:%[0-9]+]]:_(s32) = G_SELECT [[SELECT6]](s32), [[C3]], [[C5]]469    ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[COPY]], [[SELECT4]]470    ; CHECK-NEXT: [[XOR1:%[0-9]+]]:_(s32) = G_XOR [[COPY1]], [[SELECT5]]471    ; CHECK-NEXT: [[OR2:%[0-9]+]]:_(s32) = G_OR [[XOR]], [[XOR1]]472    ; CHECK-NEXT: [[ICMP7:%[0-9]+]]:_(s32) = G_ICMP intpred(ne), [[OR2]](s32), [[C1]]473    ; CHECK-NEXT: [[SELECT9:%[0-9]+]]:_(s32) = G_SELECT [[ICMP7]](s32), [[SELECT7]], [[SELECT]]474    ; CHECK-NEXT: [[SELECT10:%[0-9]+]]:_(s32) = G_SELECT [[ICMP7]](s32), [[SELECT8]], [[SELECT2]]475    ; CHECK-NEXT: $x10 = COPY [[SELECT9]](s32)476    ; CHECK-NEXT: $x11 = COPY [[SELECT10]](s32)477    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11478    %2:_(s32) = COPY $x10479    %3:_(s32) = COPY $x11480    %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)481    %4:_(s32) = COPY $x12482    %5:_(s32) = COPY $x13483    %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)484    %6:_(s64) = G_SSHLSAT %0, %1(s64)485    %7:_(s32), %8:_(s32) = G_UNMERGE_VALUES %6(s64)486    $x10 = COPY %7(s32)487    $x11 = COPY %8(s32)488    PseudoRET implicit $x10, implicit $x11489 490...491---492name:            ushlsat_i32493body:             |494  bb.1:495    liveins: $x10, $x11496 497    ; CHECK-LABEL: name: ushlsat_i32498    ; CHECK: liveins: $x10, $x11499    ; CHECK-NEXT: {{  $}}500    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10501    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11502    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[COPY1]](s32)503    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[SHL]], [[COPY1]](s32)504    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 -1505    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ne), [[COPY]](s32), [[LSHR]]506    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s32), [[C]], [[SHL]]507    ; CHECK-NEXT: $x10 = COPY [[SELECT]](s32)508    ; CHECK-NEXT: PseudoRET implicit $x10509    %0:_(s32) = COPY $x10510    %1:_(s32) = COPY $x11511    %2:_(s32) = G_USHLSAT %0, %1(s32)512    $x10 = COPY %2(s32)513    PseudoRET implicit $x10514 515...516---517name:            ushlsat_i64518body:             |519  bb.1:520    liveins: $x10, $x11521    ; CHECK-LABEL: name: ushlsat_i64522    ; CHECK: liveins: $x10, $x11523    ; CHECK-NEXT: {{  $}}524    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10525    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11526    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x12527    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 32528    ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[COPY2]], [[C]]529    ; CHECK-NEXT: [[SUB1:%[0-9]+]]:_(s32) = G_SUB [[C]], [[COPY2]]530    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 0531    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY2]](s32), [[C]]532    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C1]]533    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[COPY2]](s32)534    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[COPY]], [[SUB1]](s32)535    ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[COPY2]](s32)536    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[LSHR]], [[SHL1]]537    ; CHECK-NEXT: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[SUB]](s32)538    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s32), [[SHL]], [[C1]]539    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s32), [[OR]], [[SHL2]]540    ; CHECK-NEXT: [[SELECT2:%[0-9]+]]:_(s32) = G_SELECT [[ICMP1]](s32), [[COPY1]], [[SELECT1]]541    ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY2]](s32), [[C]]542    ; CHECK-NEXT: [[ICMP3:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C1]]543    ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[SELECT2]], [[COPY2]](s32)544    ; CHECK-NEXT: [[LSHR2:%[0-9]+]]:_(s32) = G_LSHR [[SELECT]], [[COPY2]](s32)545    ; CHECK-NEXT: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[SELECT2]], [[SUB1]](s32)546    ; CHECK-NEXT: [[OR1:%[0-9]+]]:_(s32) = G_OR [[LSHR2]], [[SHL3]]547    ; CHECK-NEXT: [[LSHR3:%[0-9]+]]:_(s32) = G_LSHR [[SELECT2]], [[SUB]](s32)548    ; CHECK-NEXT: [[SELECT3:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[OR1]], [[LSHR3]]549    ; CHECK-NEXT: [[SELECT4:%[0-9]+]]:_(s32) = G_SELECT [[ICMP3]](s32), [[SELECT]], [[SELECT3]]550    ; CHECK-NEXT: [[SELECT5:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[LSHR1]], [[C1]]551    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 -1552    ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[COPY]], [[SELECT4]]553    ; CHECK-NEXT: [[XOR1:%[0-9]+]]:_(s32) = G_XOR [[COPY1]], [[SELECT5]]554    ; CHECK-NEXT: [[OR2:%[0-9]+]]:_(s32) = G_OR [[XOR]], [[XOR1]]555    ; CHECK-NEXT: [[ICMP4:%[0-9]+]]:_(s32) = G_ICMP intpred(ne), [[OR2]](s32), [[C1]]556    ; CHECK-NEXT: [[SELECT6:%[0-9]+]]:_(s32) = G_SELECT [[ICMP4]](s32), [[C2]], [[SELECT]]557    ; CHECK-NEXT: [[SELECT7:%[0-9]+]]:_(s32) = G_SELECT [[ICMP4]](s32), [[C2]], [[SELECT2]]558    ; CHECK-NEXT: $x10 = COPY [[SELECT6]](s32)559    ; CHECK-NEXT: $x11 = COPY [[SELECT7]](s32)560    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11561    %2:_(s32) = COPY $x10562    %3:_(s32) = COPY $x11563    %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)564    %4:_(s32) = COPY $x12565    %5:_(s32) = COPY $x13566    %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32)567    %6:_(s64) = G_USHLSAT %0, %1(s64)568    %7:_(s32), %8:_(s32) = G_UNMERGE_VALUES %6(s64)569    $x10 = COPY %7(s32)570    $x11 = COPY %8(s32)571    PseudoRET implicit $x10, implicit $x11572 573...574