brintos

brintos / llvm-project-archived public Read only

0
0
Text · 11.7 KiB · 2ee4520 Raw
281 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---5name:            shl_i86body:             |7  bb.0.entry:8    ; CHECK-LABEL: name: shl_i89    ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x1010    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1111    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 25512    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]13    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[AND]](s64)14    ; CHECK-NEXT: $x10 = COPY [[SHL]](s64)15    ; CHECK-NEXT: PseudoRET implicit $x1016    %0:_(s64) = COPY $x1017    %1:_(s64) = COPY $x1118    %2:_(s8) = G_TRUNC %0(s64)19    %3:_(s8) = G_TRUNC %1(s64)20    %4:_(s8) = G_SHL %2, %321    %5:_(s64) = G_ANYEXT %4(s8)22    $x10 = COPY %5(s64)23    PseudoRET implicit $x1024 25...26---27name:            shl_i1528body:             |29  bb.0.entry:30    ; CHECK-LABEL: name: shl_i1531    ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x1032    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1133    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 3276734    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]35    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[AND]](s64)36    ; CHECK-NEXT: $x10 = COPY [[SHL]](s64)37    ; CHECK-NEXT: PseudoRET implicit $x1038    %0:_(s64) = COPY $x1039    %1:_(s64) = COPY $x1140    %2:_(s15) = G_TRUNC %0(s64)41    %3:_(s15) = G_TRUNC %1(s64)42    %4:_(s15) = G_SHL %2, %343    %5:_(s64) = G_ANYEXT %4(s15)44    $x10 = COPY %5(s64)45    PseudoRET implicit $x1046 47...48---49name:            shl_i1650body:             |51  bb.0.entry:52    ; CHECK-LABEL: name: shl_i1653    ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x1054    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1155    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 6553556    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]57    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[AND]](s64)58    ; CHECK-NEXT: $x10 = COPY [[SHL]](s64)59    ; CHECK-NEXT: PseudoRET implicit $x1060    %0:_(s64) = COPY $x1061    %1:_(s64) = COPY $x1162    %2:_(s16) = G_TRUNC %0(s64)63    %3:_(s16) = G_TRUNC %1(s64)64    %4:_(s16) = G_SHL %2, %365    %5:_(s64) = G_ANYEXT %4(s16)66    $x10 = COPY %5(s64)67    PseudoRET implicit $x1068 69...70---71name:            shl_i3272body:             |73  bb.0.entry:74    ; CHECK-LABEL: name: shl_i3275    ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x1076    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1177    ; CHECK-NEXT: [[SLLW:%[0-9]+]]:_(s64) = G_SLLW [[COPY]], [[COPY1]]78    ; CHECK-NEXT: $x10 = COPY [[SLLW]](s64)79    ; CHECK-NEXT: PseudoRET implicit $x1080    %0:_(s64) = COPY $x1081    %1:_(s64) = COPY $x1182    %2:_(s32) = G_TRUNC %0(s64)83    %3:_(s32) = G_TRUNC %1(s64)84    %4:_(s32) = G_SHL %2, %385    %5:_(s64) = G_ANYEXT %4(s32)86    $x10 = COPY %5(s64)87    PseudoRET implicit $x1088 89...90---91name:            shl_i6492body:             |93  bb.0.entry:94    ; CHECK-LABEL: name: shl_i6495    ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x1096    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1197    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[COPY1]](s64)98    ; CHECK-NEXT: $x10 = COPY [[SHL]](s64)99    ; CHECK-NEXT: PseudoRET implicit $x10100    %0:_(s64) = COPY $x10101    %1:_(s64) = COPY $x11102    %2:_(s64) = G_SHL %0, %1103    $x10 = COPY %2(s64)104    PseudoRET implicit $x10105 106...107---108name:            shl_i72109body:             |110  bb.0.entry:111    ; CHECK-LABEL: name: shl_i72112    ; CHECK: %x00:_(s64) = COPY $x10113    ; CHECK-NEXT: %x01:_(s64) = COPY $x11114    ; CHECK-NEXT: %y00:_(s64) = COPY $x12115    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 64116    ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s64) = G_SUB %y00, [[C]]117    ; CHECK-NEXT: [[SUB1:%[0-9]+]]:_(s64) = G_SUB [[C]], %y00118    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 0119    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ult), %y00(s64), [[C]]120    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s64) = G_ICMP intpred(eq), %y00(s64), [[C1]]121    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL %x00, %y00(s64)122    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s64) = G_LSHR %x00, [[SUB1]](s64)123    ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL %x01, %y00(s64)124    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s64) = G_OR [[LSHR]], [[SHL1]]125    ; CHECK-NEXT: [[SHL2:%[0-9]+]]:_(s64) = G_SHL %x00, [[SUB]](s64)126    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s64) = G_SELECT [[ICMP]](s64), [[SHL]], [[C1]]127    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s64) = G_SELECT [[ICMP]](s64), [[OR]], [[SHL2]]128    ; CHECK-NEXT: [[SELECT2:%[0-9]+]]:_(s64) = G_SELECT [[ICMP1]](s64), %x01, [[SELECT1]]129    ; CHECK-NEXT: $x10 = COPY [[SELECT]](s64)130    ; CHECK-NEXT: $x11 = COPY [[SELECT2]](s64)131    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11132    %x00:_(s64) = COPY $x10133    %x01:_(s64) = COPY $x11134    %y00:_(s64) = COPY $x12135    %y01:_(s64) = COPY $x13136    %x0:_(s128) = G_MERGE_VALUES %x00(s64), %x01137    %y0:_(s128) = G_MERGE_VALUES %y00(s64), %y01138    %x:_(s72) = G_TRUNC %x0(s128)139    %y:_(s72) = G_TRUNC %y0(s128)140    %z:_(s72) = G_SHL %x, %y141    %z0:_(s128) = G_ANYEXT %z(s72)142    %z00:_(s64), %z01:_(s64) = G_UNMERGE_VALUES %z0(s128)143    $x10 = COPY %z00(s64)144    $x11 = COPY %z01(s64)145    PseudoRET implicit $x10, implicit $x11146 147...148---149name:            shl_i128150body:             |151  bb.0.entry:152    ; CHECK-LABEL: name: shl_i128153    ; CHECK: %lo1:_(s64) = COPY $x10154    ; CHECK-NEXT: %hi1:_(s64) = COPY $x11155    ; CHECK-NEXT: %lo2:_(s64) = COPY $x12156    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 64157    ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s64) = G_SUB %lo2, [[C]]158    ; CHECK-NEXT: [[SUB1:%[0-9]+]]:_(s64) = G_SUB [[C]], %lo2159    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 0160    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ult), %lo2(s64), [[C]]161    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s64) = G_ICMP intpred(eq), %lo2(s64), [[C1]]162    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL %lo1, %lo2(s64)163    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s64) = G_LSHR %lo1, [[SUB1]](s64)164    ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL %hi1, %lo2(s64)165    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s64) = G_OR [[LSHR]], [[SHL1]]166    ; CHECK-NEXT: [[SHL2:%[0-9]+]]:_(s64) = G_SHL %lo1, [[SUB]](s64)167    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s64) = G_SELECT [[ICMP]](s64), [[SHL]], [[C1]]168    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s64) = G_SELECT [[ICMP]](s64), [[OR]], [[SHL2]]169    ; CHECK-NEXT: [[SELECT2:%[0-9]+]]:_(s64) = G_SELECT [[ICMP1]](s64), %hi1, [[SELECT1]]170    ; CHECK-NEXT: $x10 = COPY [[SELECT]](s64)171    ; CHECK-NEXT: $x11 = COPY [[SELECT2]](s64)172    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11173    %lo1:_(s64) = COPY $x10174    %hi1:_(s64) = COPY $x11175    %lo2:_(s64) = COPY $x12176    %hi2:_(s64) = COPY $x13177    %x1:_(s128) = G_MERGE_VALUES %lo1(s64), %hi1(s64)178    %x2:_(s128) = G_MERGE_VALUES %lo2(s64), %hi2(s64)179    %y:_(s128) = G_SHL %x1, %x2180    %loy:_(s64), %hiy:_(s64) = G_UNMERGE_VALUES %y(s128)181    $x10 = COPY %loy(s64)182    $x11 = COPY %hiy(s64)183    PseudoRET implicit $x10, implicit $x11184 185...186---187name:            shl_i192188body:             |189  bb.0.entry:190    ; CHECK-LABEL: name: shl_i192191    ; CHECK: %lo1:_(s64) = COPY $x10192    ; CHECK-NEXT: %mid1:_(s64) = COPY $x11193    ; CHECK-NEXT: %hi1:_(s64) = COPY $x12194    ; CHECK-NEXT: %lo2:_(s64) = COPY $x13195    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 128196    ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s64) = G_SUB %lo2, [[C]]197    ; CHECK-NEXT: [[SUB1:%[0-9]+]]:_(s64) = G_SUB [[C]], %lo2198    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 0199    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s64) = G_ICMP intpred(ult), %lo2(s64), [[C]]200    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s64) = G_ICMP intpred(eq), %lo2(s64), [[C1]]201    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 64202    ; CHECK-NEXT: [[SUB2:%[0-9]+]]:_(s64) = G_SUB %lo2, [[C2]]203    ; CHECK-NEXT: [[SUB3:%[0-9]+]]:_(s64) = G_SUB [[C2]], %lo2204    ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s64) = G_ICMP intpred(ult), %lo2(s64), [[C2]]205    ; CHECK-NEXT: [[ICMP3:%[0-9]+]]:_(s64) = G_ICMP intpred(eq), %lo2(s64), [[C1]]206    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL %lo1, %lo2(s64)207    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s64) = G_LSHR %lo1, [[SUB3]](s64)208    ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL %mid1, %lo2(s64)209    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s64) = G_OR [[LSHR]], [[SHL1]]210    ; CHECK-NEXT: [[SHL2:%[0-9]+]]:_(s64) = G_SHL %lo1, [[SUB2]](s64)211    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s64) = G_SELECT [[ICMP2]](s64), [[SHL]], [[C1]]212    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s64) = G_SELECT [[ICMP2]](s64), [[OR]], [[SHL2]]213    ; CHECK-NEXT: [[SELECT2:%[0-9]+]]:_(s64) = G_SELECT [[ICMP3]](s64), %mid1, [[SELECT1]]214    ; CHECK-NEXT: [[SUB4:%[0-9]+]]:_(s64) = G_SUB [[SUB1]], [[C2]]215    ; CHECK-NEXT: [[SUB5:%[0-9]+]]:_(s64) = G_SUB [[C2]], [[SUB1]]216    ; CHECK-NEXT: [[ICMP4:%[0-9]+]]:_(s64) = G_ICMP intpred(ult), [[SUB1]](s64), [[C2]]217    ; CHECK-NEXT: [[ICMP5:%[0-9]+]]:_(s64) = G_ICMP intpred(eq), [[SUB1]](s64), [[C1]]218    ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s64) = G_LSHR %lo1, [[SUB1]](s64)219    ; CHECK-NEXT: [[SHL3:%[0-9]+]]:_(s64) = G_SHL %mid1, [[SUB5]](s64)220    ; CHECK-NEXT: [[OR1:%[0-9]+]]:_(s64) = G_OR [[LSHR1]], [[SHL3]]221    ; CHECK-NEXT: [[LSHR2:%[0-9]+]]:_(s64) = G_LSHR %mid1, [[SUB4]](s64)222    ; CHECK-NEXT: [[SELECT3:%[0-9]+]]:_(s64) = G_SELECT [[ICMP4]](s64), [[OR1]], [[LSHR2]]223    ; CHECK-NEXT: [[SELECT4:%[0-9]+]]:_(s64) = G_SELECT [[ICMP5]](s64), %lo1, [[SELECT3]]224    ; CHECK-NEXT: [[ICMP6:%[0-9]+]]:_(s64) = G_ICMP intpred(ult), %lo2(s64), [[C2]]225    ; CHECK-NEXT: [[SHL4:%[0-9]+]]:_(s64) = G_SHL %hi1, %lo2(s64)226    ; CHECK-NEXT: [[SELECT5:%[0-9]+]]:_(s64) = G_SELECT [[ICMP6]](s64), [[SHL4]], [[C1]]227    ; CHECK-NEXT: [[OR2:%[0-9]+]]:_(s64) = G_OR [[SELECT4]], [[SELECT5]]228    ; CHECK-NEXT: [[ICMP7:%[0-9]+]]:_(s64) = G_ICMP intpred(ult), [[SUB]](s64), [[C2]]229    ; CHECK-NEXT: [[SHL5:%[0-9]+]]:_(s64) = G_SHL %lo1, [[SUB]](s64)230    ; CHECK-NEXT: [[SELECT6:%[0-9]+]]:_(s64) = G_SELECT [[ICMP7]](s64), [[SHL5]], [[C1]]231    ; CHECK-NEXT: [[SELECT7:%[0-9]+]]:_(s64) = G_SELECT [[ICMP]](s64), [[SELECT]], [[C1]]232    ; CHECK-NEXT: [[SELECT8:%[0-9]+]]:_(s64) = G_SELECT [[ICMP]](s64), [[SELECT2]], [[C1]]233    ; CHECK-NEXT: [[SELECT9:%[0-9]+]]:_(s64) = G_SELECT [[ICMP]](s64), [[OR2]], [[SELECT6]]234    ; CHECK-NEXT: [[SELECT10:%[0-9]+]]:_(s64) = G_SELECT [[ICMP1]](s64), %hi1, [[SELECT9]]235    ; CHECK-NEXT: $x10 = COPY [[SELECT7]](s64)236    ; CHECK-NEXT: $x11 = COPY [[SELECT8]](s64)237    ; CHECK-NEXT: $x12 = COPY [[SELECT10]](s64)238    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11, implicit $x12239    %lo1:_(s64) = COPY $x10240    %mid1:_(s64) = COPY $x11241    %hi1:_(s64) = COPY $x12242    %lo2:_(s64) = COPY $x13243    %mid2:_(s64) = COPY $x14244    %hi2:_(s64) = COPY $x15245    %x1:_(s192) = G_MERGE_VALUES %lo1(s64), %mid1(s64), %hi1(s64)246    %x2:_(s192) = G_MERGE_VALUES %lo2(s64), %mid2(s64), %hi2(s64)247    %y:_(s192) = G_SHL %x1, %x2248    %lo:_(s64), %mid:_(s64), %hi:_(s64) = G_UNMERGE_VALUES %y(s192)249    $x10 = COPY %lo(s64)250    $x11 = COPY %mid(s64)251    $x12 = COPY %hi(s64)252    PseudoRET implicit $x10, implicit $x11, implicit $x12253 254...255---256name:            shl_i48257body:             |258  bb.0:259    liveins: $x10, $x11260 261    ; CHECK-LABEL: name: shl_i48262    ; CHECK: liveins: $x10, $x11263    ; CHECK-NEXT: {{  $}}264    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10265    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11266    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 281474976710655267    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]268    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[AND]](s64)269    ; CHECK-NEXT: $x10 = COPY [[SHL]](s64)270    ; CHECK-NEXT: PseudoRET implicit $x10271    %2:_(s64) = COPY $x10272    %0:_(s48) = G_TRUNC %2(s64)273    %3:_(s64) = COPY $x11274    %1:_(s48) = G_TRUNC %3(s64)275    %4:_(s48) = G_SHL %0, %1(s48)276    %5:_(s64) = G_ANYEXT %4(s48)277    $x10 = COPY %5(s64)278    PseudoRET implicit $x10279 280...281