brintos

brintos / llvm-project-archived public Read only

0
0
Text · 11.5 KiB · f3d95d3 Raw
295 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:            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]+]]:_(s64) = COPY $x1015    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1116    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $x1217    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 718    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY2]], [[C]]19    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 -120    ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s64) = G_XOR [[COPY2]], [[C1]]21    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[XOR]], [[C]]22    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 123    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[AND]](s64)24    ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s64) = G_CONSTANT i64 25525    ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C3]]26    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s64) = G_LSHR [[AND2]], [[C2]](s64)27    ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s64) = G_LSHR [[LSHR]], [[AND1]](s64)28    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s64) = disjoint G_OR [[SHL]], [[LSHR1]]29    ; CHECK-NEXT: $x10 = COPY [[OR]](s64)30    ; CHECK-NEXT: PseudoRET implicit $x1031    %3:_(s64) = COPY $x1032    %0:_(s8) = G_TRUNC %3(s64)33    %4:_(s64) = COPY $x1134    %1:_(s8) = G_TRUNC %4(s64)35    %5:_(s64) = COPY $x1236    %2:_(s8) = G_TRUNC %5(s64)37    %6:_(s8) = G_FSHL %0, %1, %2(s8)38    %7:_(s64) = G_ANYEXT %6(s8)39    $x10 = COPY %7(s64)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]+]]:_(s64) = COPY $x1053    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1154    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $x1255    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1556    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY2]], [[C]]57    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 -158    ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s64) = G_XOR [[COPY2]], [[C1]]59    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[XOR]], [[C]]60    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 161    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[AND]](s64)62    ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s64) = G_CONSTANT i64 6553563    ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C3]]64    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s64) = G_LSHR [[AND2]], [[C2]](s64)65    ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s64) = G_LSHR [[LSHR]], [[AND1]](s64)66    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s64) = disjoint G_OR [[SHL]], [[LSHR1]]67    ; CHECK-NEXT: $x10 = COPY [[OR]](s64)68    ; CHECK-NEXT: PseudoRET implicit $x1069    %3:_(s64) = COPY $x1070    %0:_(s16) = G_TRUNC %3(s64)71    %4:_(s64) = COPY $x1172    %1:_(s16) = G_TRUNC %4(s64)73    %5:_(s64) = COPY $x1274    %2:_(s16) = G_TRUNC %5(s64)75    %6:_(s16) = G_FSHL %0, %1, %2(s16)76    %7:_(s64) = G_ANYEXT %6(s16)77    $x10 = COPY %7(s64)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]+]]:_(s64) = COPY $x1091    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1192    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $x1293    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 3194    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY2]], [[C]]95    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 -196    ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s64) = G_XOR [[COPY2]], [[C1]]97    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[XOR]], [[C]]98    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 199    ; CHECK-NEXT: [[SLLW:%[0-9]+]]:_(s64) = G_SLLW [[COPY]], [[AND]]100    ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s64) = G_CONSTANT i64 4294967295101    ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C3]]102    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s64) = G_LSHR [[AND2]], [[C2]](s64)103    ; CHECK-NEXT: [[SRLW:%[0-9]+]]:_(s64) = G_SRLW [[LSHR]], [[AND1]]104    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s64) = disjoint G_OR [[SLLW]], [[SRLW]]105    ; CHECK-NEXT: $x10 = COPY [[OR]](s64)106    ; CHECK-NEXT: PseudoRET implicit $x10107    %3:_(s64) = COPY $x10108    %0:_(s32) = G_TRUNC %3(s64)109    %4:_(s64) = COPY $x11110    %1:_(s32) = G_TRUNC %4(s64)111    %5:_(s64) = COPY $x12112    %2:_(s32) = G_TRUNC %5(s64)113    %6:_(s32) = G_FSHL %0, %1, %2(s32)114    %7:_(s64) = G_ANYEXT %6(s32)115    $x10 = COPY %7(s64)116    PseudoRET implicit $x10117 118...119---120name:            fshl_i64121body:             |122  bb.1:123    liveins: $x10, $x11, $x12124 125    ; CHECK-LABEL: name: fshl_i64126    ; CHECK: liveins: $x10, $x11, $x12127    ; CHECK-NEXT: {{  $}}128    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10129    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11130    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $x12131    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 63132    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY2]], [[C]]133    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 -1134    ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s64) = G_XOR [[COPY2]], [[C1]]135    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[XOR]], [[C]]136    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 1137    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[AND]](s64)138    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s64) = G_LSHR [[COPY1]], [[C2]](s64)139    ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s64) = G_LSHR [[LSHR]], [[AND1]](s64)140    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s64) = disjoint G_OR [[SHL]], [[LSHR1]]141    ; CHECK-NEXT: $x10 = COPY [[OR]](s64)142    ; CHECK-NEXT: PseudoRET implicit $x10143    %0:_(s64) = COPY $x10144    %1:_(s64) = COPY $x11145    %2:_(s64) = COPY $x12146    %3:_(s64) = G_FSHL %0, %1, %2(s64)147    $x10 = COPY %3(s64)148    PseudoRET implicit $x10149 150...151---152name:            fshr_i8153body:             |154  bb.1:155    liveins: $x10, $x11, $x12156 157    ; CHECK-LABEL: name: fshr_i8158    ; CHECK: liveins: $x10, $x11, $x12159    ; CHECK-NEXT: {{  $}}160    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10161    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11162    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $x12163    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 7164    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY2]], [[C]]165    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 -1166    ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s64) = G_XOR [[COPY2]], [[C1]]167    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[XOR]], [[C]]168    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 1169    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C2]](s64)170    ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL [[SHL]], [[AND1]](s64)171    ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s64) = G_CONSTANT i64 255172    ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C3]]173    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s64) = G_LSHR [[AND2]], [[AND]](s64)174    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s64) = disjoint G_OR [[SHL1]], [[LSHR]]175    ; CHECK-NEXT: $x10 = COPY [[OR]](s64)176    ; CHECK-NEXT: PseudoRET implicit $x10177    %3:_(s64) = COPY $x10178    %0:_(s8) = G_TRUNC %3(s64)179    %4:_(s64) = COPY $x11180    %1:_(s8) = G_TRUNC %4(s64)181    %5:_(s64) = COPY $x12182    %2:_(s8) = G_TRUNC %5(s64)183    %6:_(s8) = G_FSHR %0, %1, %2(s8)184    %7:_(s64) = G_ANYEXT %6(s8)185    $x10 = COPY %7(s64)186    PseudoRET implicit $x10187 188...189---190name:            fshr_i16191body:             |192  bb.1:193    liveins: $x10, $x11, $x12194 195    ; CHECK-LABEL: name: fshr_i16196    ; CHECK: liveins: $x10, $x11, $x12197    ; CHECK-NEXT: {{  $}}198    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10199    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11200    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $x12201    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 15202    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY2]], [[C]]203    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 -1204    ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s64) = G_XOR [[COPY2]], [[C1]]205    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[XOR]], [[C]]206    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 1207    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C2]](s64)208    ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL [[SHL]], [[AND1]](s64)209    ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s64) = G_CONSTANT i64 65535210    ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C3]]211    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s64) = G_LSHR [[AND2]], [[AND]](s64)212    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s64) = disjoint G_OR [[SHL1]], [[LSHR]]213    ; CHECK-NEXT: $x10 = COPY [[OR]](s64)214    ; CHECK-NEXT: PseudoRET implicit $x10215    %3:_(s64) = COPY $x10216    %0:_(s16) = G_TRUNC %3(s64)217    %4:_(s64) = COPY $x11218    %1:_(s16) = G_TRUNC %4(s64)219    %5:_(s64) = COPY $x12220    %2:_(s16) = G_TRUNC %5(s64)221    %6:_(s16) = G_FSHR %0, %1, %2(s16)222    %7:_(s64) = G_ANYEXT %6(s16)223    $x10 = COPY %7(s64)224    PseudoRET implicit $x10225 226...227---228name:            fshr_i32229body:             |230  bb.1:231    liveins: $x10, $x11, $x12232 233    ; CHECK-LABEL: name: fshr_i32234    ; CHECK: liveins: $x10, $x11, $x12235    ; CHECK-NEXT: {{  $}}236    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10237    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11238    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $x12239    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 31240    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY2]], [[C]]241    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 -1242    ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s64) = G_XOR [[COPY2]], [[C1]]243    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[XOR]], [[C]]244    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 1245    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C2]](s64)246    ; CHECK-NEXT: [[SLLW:%[0-9]+]]:_(s64) = G_SLLW [[SHL]], [[AND1]]247    ; CHECK-NEXT: [[SRLW:%[0-9]+]]:_(s64) = G_SRLW [[COPY1]], [[AND]]248    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s64) = disjoint G_OR [[SLLW]], [[SRLW]]249    ; CHECK-NEXT: $x10 = COPY [[OR]](s64)250    ; CHECK-NEXT: PseudoRET implicit $x10251    %3:_(s64) = COPY $x10252    %0:_(s32) = G_TRUNC %3(s64)253    %4:_(s64) = COPY $x11254    %1:_(s32) = G_TRUNC %4(s64)255    %5:_(s64) = COPY $x12256    %2:_(s32) = G_TRUNC %5(s64)257    %6:_(s32) = G_FSHR %0, %1, %2(s32)258    %7:_(s64) = G_ANYEXT %6(s32)259    $x10 = COPY %7(s64)260    PseudoRET implicit $x10261 262...263---264name:            fshr_i64265body:             |266  bb.1:267    liveins: $x10, $x11, $x12268 269    ; CHECK-LABEL: name: fshr_i64270    ; CHECK: liveins: $x10, $x11, $x12271    ; CHECK-NEXT: {{  $}}272    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10273    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11274    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $x12275    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 63276    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY2]], [[C]]277    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 -1278    ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s64) = G_XOR [[COPY2]], [[C1]]279    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[XOR]], [[C]]280    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 1281    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C2]](s64)282    ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL [[SHL]], [[AND1]](s64)283    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s64) = G_LSHR [[COPY1]], [[AND]](s64)284    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s64) = disjoint G_OR [[SHL1]], [[LSHR]]285    ; CHECK-NEXT: $x10 = COPY [[OR]](s64)286    ; CHECK-NEXT: PseudoRET implicit $x10287    %0:_(s64) = COPY $x10288    %1:_(s64) = COPY $x11289    %2:_(s64) = COPY $x12290    %3:_(s64) = G_FSHR %0, %1, %2(s64)291    $x10 = COPY %3(s64)292    PseudoRET implicit $x10293 294...295