brintos

brintos / llvm-project-archived public Read only

0
0
Text · 16.5 KiB · 1b77262 Raw
365 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:            fshl_i87body:             |8  bb.1:9    liveins: $x10, $x11, $x1210 11    ; CHECK-LABEL: name: fshl_i812    ; CHECK: liveins: $x10, $x11, $x1213    ; CHECK-NEXT: {{  $}}14    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x1015    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1116    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x1217    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 718    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C]]19    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 -120    ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[COPY2]], [[C1]]21    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[XOR]], [[C]]22    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 123    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[AND]](s32)24    ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 25525    ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C3]]26    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[AND2]], [[C2]](s32)27    ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[LSHR]], [[AND1]](s32)28    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = disjoint G_OR [[SHL]], [[LSHR1]]29    ; CHECK-NEXT: $x10 = COPY [[OR]](s32)30    ; CHECK-NEXT: PseudoRET implicit $x1031    %3:_(s32) = COPY $x1032    %0:_(s8) = G_TRUNC %3(s32)33    %4:_(s32) = COPY $x1134    %1:_(s8) = G_TRUNC %4(s32)35    %5:_(s32) = COPY $x1236    %2:_(s8) = G_TRUNC %5(s32)37    %6:_(s8) = G_FSHL %0, %1, %2(s8)38    %7:_(s32) = G_ANYEXT %6(s8)39    $x10 = COPY %7(s32)40    PseudoRET implicit $x1041 42...43---44name:            fshl_i1645body:             |46  bb.1:47    liveins: $x10, $x11, $x1248 49    ; CHECK-LABEL: name: fshl_i1650    ; CHECK: liveins: $x10, $x11, $x1251    ; 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: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1556    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C]]57    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 -158    ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[COPY2]], [[C1]]59    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[XOR]], [[C]]60    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 161    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[AND]](s32)62    ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 6553563    ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C3]]64    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[AND2]], [[C2]](s32)65    ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[LSHR]], [[AND1]](s32)66    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = disjoint G_OR [[SHL]], [[LSHR1]]67    ; CHECK-NEXT: $x10 = COPY [[OR]](s32)68    ; CHECK-NEXT: PseudoRET implicit $x1069    %3:_(s32) = COPY $x1070    %0:_(s16) = G_TRUNC %3(s32)71    %4:_(s32) = COPY $x1172    %1:_(s16) = G_TRUNC %4(s32)73    %5:_(s32) = COPY $x1274    %2:_(s16) = G_TRUNC %5(s32)75    %6:_(s16) = G_FSHL %0, %1, %2(s16)76    %7:_(s32) = G_ANYEXT %6(s16)77    $x10 = COPY %7(s32)78    PseudoRET implicit $x1079 80...81---82name:            fshl_i3283body:             |84  bb.1:85    liveins: $x10, $x11, $x1286 87    ; CHECK-LABEL: name: fshl_i3288    ; CHECK: liveins: $x10, $x11, $x1289    ; CHECK-NEXT: {{  $}}90    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x1091    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x1192    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x1293    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 3194    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C]]95    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 -196    ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[COPY2]], [[C1]]97    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[XOR]], [[C]]98    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 199    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[AND]](s32)100    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[COPY1]], [[C2]](s32)101    ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[LSHR]], [[AND1]](s32)102    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = disjoint G_OR [[SHL]], [[LSHR1]]103    ; CHECK-NEXT: $x10 = COPY [[OR]](s32)104    ; CHECK-NEXT: PseudoRET implicit $x10105    %0:_(s32) = COPY $x10106    %1:_(s32) = COPY $x11107    %2:_(s32) = COPY $x12108    %3:_(s32) = G_FSHL %0, %1, %2(s32)109    $x10 = COPY %3(s32)110    PseudoRET implicit $x10111 112...113---114name:            fshl_i64115body:             |116  bb.1:117    liveins: $x10, $x11, $x12, $x13, $x14, $x15118 119    ; CHECK-LABEL: name: fshl_i64120    ; CHECK: liveins: $x10, $x11, $x12, $x13, $x14, $x15121    ; CHECK-NEXT: {{  $}}122    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10123    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11124    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x12125    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $x13126    ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $x14127    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 63128    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 0129    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C]]130    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 -1131    ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[COPY4]], [[C2]]132    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[XOR]], [[C]]133    ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 1134    ; CHECK-NEXT: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 32135    ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[AND]], [[C4]]136    ; CHECK-NEXT: [[SUB1:%[0-9]+]]:_(s32) = G_SUB [[C4]], [[AND]]137    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[AND]](s32), [[C4]]138    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[AND]](s32), [[C1]]139    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[AND]](s32)140    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[COPY]], [[SUB1]](s32)141    ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[AND]](s32)142    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[LSHR]], [[SHL1]]143    ; CHECK-NEXT: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[SUB]](s32)144    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s32), [[SHL]], [[C1]]145    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s32), [[OR]], [[SHL2]]146    ; CHECK-NEXT: [[SELECT2:%[0-9]+]]:_(s32) = G_SELECT [[ICMP1]](s32), [[COPY1]], [[SELECT1]]147    ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[COPY2]], [[C3]](s32)148    ; CHECK-NEXT: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 31149    ; CHECK-NEXT: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[COPY3]], [[C5]](s32)150    ; CHECK-NEXT: [[OR1:%[0-9]+]]:_(s32) = G_OR [[LSHR1]], [[SHL3]]151    ; CHECK-NEXT: [[LSHR2:%[0-9]+]]:_(s32) = G_LSHR [[COPY3]], [[C3]](s32)152    ; CHECK-NEXT: [[SUB2:%[0-9]+]]:_(s32) = G_SUB [[AND1]], [[C4]]153    ; CHECK-NEXT: [[SUB3:%[0-9]+]]:_(s32) = G_SUB [[C4]], [[AND1]]154    ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[AND1]](s32), [[C4]]155    ; CHECK-NEXT: [[ICMP3:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[AND1]](s32), [[C1]]156    ; CHECK-NEXT: [[LSHR3:%[0-9]+]]:_(s32) = G_LSHR [[LSHR2]], [[AND1]](s32)157    ; CHECK-NEXT: [[LSHR4:%[0-9]+]]:_(s32) = G_LSHR [[OR1]], [[AND1]](s32)158    ; CHECK-NEXT: [[SHL4:%[0-9]+]]:_(s32) = G_SHL [[LSHR2]], [[SUB3]](s32)159    ; CHECK-NEXT: [[OR2:%[0-9]+]]:_(s32) = G_OR [[LSHR4]], [[SHL4]]160    ; CHECK-NEXT: [[LSHR5:%[0-9]+]]:_(s32) = G_LSHR [[LSHR2]], [[SUB2]](s32)161    ; CHECK-NEXT: [[SELECT3:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[OR2]], [[LSHR5]]162    ; CHECK-NEXT: [[SELECT4:%[0-9]+]]:_(s32) = G_SELECT [[ICMP3]](s32), [[OR1]], [[SELECT3]]163    ; CHECK-NEXT: [[SELECT5:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[LSHR3]], [[C1]]164    ; CHECK-NEXT: [[OR3:%[0-9]+]]:_(s32) = G_OR [[SELECT]], [[SELECT4]]165    ; CHECK-NEXT: [[OR4:%[0-9]+]]:_(s32) = G_OR [[SELECT2]], [[SELECT5]]166    ; CHECK-NEXT: $x10 = COPY [[OR3]](s32)167    ; CHECK-NEXT: $x11 = COPY [[OR4]](s32)168    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11169    %3:_(s32) = COPY $x10170    %4:_(s32) = COPY $x11171    %0:_(s64) = G_MERGE_VALUES %3(s32), %4(s32)172    %5:_(s32) = COPY $x12173    %6:_(s32) = COPY $x13174    %1:_(s64) = G_MERGE_VALUES %5(s32), %6(s32)175    %7:_(s32) = COPY $x14176    %8:_(s32) = COPY $x15177    %2:_(s64) = G_MERGE_VALUES %7(s32), %8(s32)178    %9:_(s64) = G_FSHL %0, %1, %2(s64)179    %10:_(s32), %11:_(s32) = G_UNMERGE_VALUES %9(s64)180    $x10 = COPY %10(s32)181    $x11 = COPY %11(s32)182    PseudoRET implicit $x10, implicit $x11183 184...185---186name:            fshr_i8187body:             |188  bb.1:189    liveins: $x10, $x11, $x12190 191    ; CHECK-LABEL: name: fshr_i8192    ; CHECK: liveins: $x10, $x11, $x12193    ; CHECK-NEXT: {{  $}}194    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10195    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11196    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x12197    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 7198    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C]]199    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 -1200    ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[COPY2]], [[C1]]201    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[XOR]], [[C]]202    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 1203    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C2]](s32)204    ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[SHL]], [[AND1]](s32)205    ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 255206    ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C3]]207    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[AND2]], [[AND]](s32)208    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = disjoint G_OR [[SHL1]], [[LSHR]]209    ; CHECK-NEXT: $x10 = COPY [[OR]](s32)210    ; CHECK-NEXT: PseudoRET implicit $x10211    %3:_(s32) = COPY $x10212    %0:_(s8) = G_TRUNC %3(s32)213    %4:_(s32) = COPY $x11214    %1:_(s8) = G_TRUNC %4(s32)215    %5:_(s32) = COPY $x12216    %2:_(s8) = G_TRUNC %5(s32)217    %6:_(s8) = G_FSHR %0, %1, %2(s8)218    %7:_(s32) = G_ANYEXT %6(s8)219    $x10 = COPY %7(s32)220    PseudoRET implicit $x10221 222...223---224name:            fshr_i16225body:             |226  bb.1:227    liveins: $x10, $x11, $x12228 229    ; CHECK-LABEL: name: fshr_i16230    ; CHECK: liveins: $x10, $x11, $x12231    ; CHECK-NEXT: {{  $}}232    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10233    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11234    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x12235    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 15236    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C]]237    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 -1238    ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[COPY2]], [[C1]]239    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[XOR]], [[C]]240    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 1241    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C2]](s32)242    ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[SHL]], [[AND1]](s32)243    ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535244    ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C3]]245    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[AND2]], [[AND]](s32)246    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = disjoint G_OR [[SHL1]], [[LSHR]]247    ; CHECK-NEXT: $x10 = COPY [[OR]](s32)248    ; CHECK-NEXT: PseudoRET implicit $x10249    %3:_(s32) = COPY $x10250    %0:_(s16) = G_TRUNC %3(s32)251    %4:_(s32) = COPY $x11252    %1:_(s16) = G_TRUNC %4(s32)253    %5:_(s32) = COPY $x12254    %2:_(s16) = G_TRUNC %5(s32)255    %6:_(s16) = G_FSHR %0, %1, %2(s16)256    %7:_(s32) = G_ANYEXT %6(s16)257    $x10 = COPY %7(s32)258    PseudoRET implicit $x10259 260...261---262name:            fshr_i32263body:             |264  bb.1:265    liveins: $x10, $x11, $x12266 267    ; CHECK-LABEL: name: fshr_i32268    ; CHECK: liveins: $x10, $x11, $x12269    ; CHECK-NEXT: {{  $}}270    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10271    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11272    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x12273    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 31274    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C]]275    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 -1276    ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[COPY2]], [[C1]]277    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[XOR]], [[C]]278    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 1279    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C2]](s32)280    ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[SHL]], [[AND1]](s32)281    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[COPY1]], [[AND]](s32)282    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = disjoint G_OR [[SHL1]], [[LSHR]]283    ; CHECK-NEXT: $x10 = COPY [[OR]](s32)284    ; CHECK-NEXT: PseudoRET implicit $x10285    %0:_(s32) = COPY $x10286    %1:_(s32) = COPY $x11287    %2:_(s32) = COPY $x12288    %3:_(s32) = G_FSHR %0, %1, %2(s32)289    $x10 = COPY %3(s32)290    PseudoRET implicit $x10291 292...293---294name:            fshr_i64295body:             |296  bb.1:297    liveins: $x10, $x11, $x12, $x13, $x14, $x15298 299    ; CHECK-LABEL: name: fshr_i64300    ; CHECK: liveins: $x10, $x11, $x12, $x13, $x14, $x15301    ; CHECK-NEXT: {{  $}}302    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10303    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11304    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $x12305    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $x13306    ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $x14307    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 63308    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 0309    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C]]310    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 -1311    ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[COPY4]], [[C2]]312    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[XOR]], [[C]]313    ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 1314    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C3]](s32)315    ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C3]](s32)316    ; CHECK-NEXT: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 31317    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[COPY]], [[C4]](s32)318    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[SHL1]], [[LSHR]]319    ; CHECK-NEXT: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 32320    ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[AND1]], [[C5]]321    ; CHECK-NEXT: [[SUB1:%[0-9]+]]:_(s32) = G_SUB [[C5]], [[AND1]]322    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[AND1]](s32), [[C5]]323    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[AND1]](s32), [[C1]]324    ; CHECK-NEXT: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[SHL]], [[AND1]](s32)325    ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[SHL]], [[SUB1]](s32)326    ; CHECK-NEXT: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[OR]], [[AND1]](s32)327    ; CHECK-NEXT: [[OR1:%[0-9]+]]:_(s32) = G_OR [[LSHR1]], [[SHL3]]328    ; CHECK-NEXT: [[SHL4:%[0-9]+]]:_(s32) = G_SHL [[SHL]], [[SUB]](s32)329    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s32), [[SHL2]], [[C1]]330    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s32), [[OR1]], [[SHL4]]331    ; CHECK-NEXT: [[SELECT2:%[0-9]+]]:_(s32) = G_SELECT [[ICMP1]](s32), [[OR]], [[SELECT1]]332    ; CHECK-NEXT: [[SUB2:%[0-9]+]]:_(s32) = G_SUB [[AND]], [[C5]]333    ; CHECK-NEXT: [[SUB3:%[0-9]+]]:_(s32) = G_SUB [[C5]], [[AND]]334    ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[AND]](s32), [[C5]]335    ; CHECK-NEXT: [[ICMP3:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[AND]](s32), [[C1]]336    ; CHECK-NEXT: [[LSHR2:%[0-9]+]]:_(s32) = G_LSHR [[COPY3]], [[AND]](s32)337    ; CHECK-NEXT: [[LSHR3:%[0-9]+]]:_(s32) = G_LSHR [[COPY2]], [[AND]](s32)338    ; CHECK-NEXT: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[COPY3]], [[SUB3]](s32)339    ; CHECK-NEXT: [[OR2:%[0-9]+]]:_(s32) = G_OR [[LSHR3]], [[SHL5]]340    ; CHECK-NEXT: [[LSHR4:%[0-9]+]]:_(s32) = G_LSHR [[COPY3]], [[SUB2]](s32)341    ; CHECK-NEXT: [[SELECT3:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[OR2]], [[LSHR4]]342    ; CHECK-NEXT: [[SELECT4:%[0-9]+]]:_(s32) = G_SELECT [[ICMP3]](s32), [[COPY2]], [[SELECT3]]343    ; CHECK-NEXT: [[SELECT5:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[LSHR2]], [[C1]]344    ; CHECK-NEXT: [[OR3:%[0-9]+]]:_(s32) = G_OR [[SELECT]], [[SELECT4]]345    ; CHECK-NEXT: [[OR4:%[0-9]+]]:_(s32) = G_OR [[SELECT2]], [[SELECT5]]346    ; CHECK-NEXT: $x10 = COPY [[OR3]](s32)347    ; CHECK-NEXT: $x11 = COPY [[OR4]](s32)348    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11349    %3:_(s32) = COPY $x10350    %4:_(s32) = COPY $x11351    %0:_(s64) = G_MERGE_VALUES %3(s32), %4(s32)352    %5:_(s32) = COPY $x12353    %6:_(s32) = COPY $x13354    %1:_(s64) = G_MERGE_VALUES %5(s32), %6(s32)355    %7:_(s32) = COPY $x14356    %8:_(s32) = COPY $x15357    %2:_(s64) = G_MERGE_VALUES %7(s32), %8(s32)358    %9:_(s64) = G_FSHR %0, %1, %2(s64)359    %10:_(s32), %11:_(s32) = G_UNMERGE_VALUES %9(s64)360    $x10 = COPY %10(s32)361    $x11 = COPY %11(s32)362    PseudoRET implicit $x10, implicit $x11363 364...365