brintos

brintos / llvm-project-archived public Read only

0
0
Text · 13.4 KiB · 2d6ee62 Raw
457 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 32# RUN: llc -mtriple=riscv64 -mattr=+d -run-pass=legalizer %s -o - \3# RUN: | FileCheck %s4 5---6name:            sitofp_s32_s17tracksRegLiveness: true8body:             |9  bb.1:10    liveins: $x1011 12    ; CHECK-LABEL: name: sitofp_s32_s113    ; CHECK: liveins: $x1014    ; CHECK-NEXT: {{  $}}15    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x1016    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 6317    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)18    ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)19    ; CHECK-NEXT: [[SITOFP:%[0-9]+]]:_(s32) = G_SITOFP [[ASHR]](s64)20    ; CHECK-NEXT: $f10_f = COPY [[SITOFP]](s32)21    ; CHECK-NEXT: PseudoRET implicit $f10_f22    %1:_(s64) = COPY $x1023    %0:_(s1) = G_TRUNC %1(s64)24    %2:_(s32) = G_SITOFP %0(s1)25    $f10_f = COPY %2(s32)26    PseudoRET implicit $f10_f27 28...29---30name:            uitofp_s32_s131tracksRegLiveness: true32body:             |33  bb.1:34    liveins: $x1035 36    ; CHECK-LABEL: name: uitofp_s32_s137    ; CHECK: liveins: $x1038    ; CHECK-NEXT: {{  $}}39    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x1040    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 141    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]42    ; CHECK-NEXT: [[UITOFP:%[0-9]+]]:_(s32) = G_UITOFP [[AND]](s64)43    ; CHECK-NEXT: $f10_f = COPY [[UITOFP]](s32)44    ; CHECK-NEXT: PseudoRET implicit $f10_f45    %1:_(s64) = COPY $x1046    %0:_(s1) = G_TRUNC %1(s64)47    %2:_(s32) = G_UITOFP %0(s1)48    $f10_f = COPY %2(s32)49    PseudoRET implicit $f10_f50 51...52---53name:            sitofp_s32_s854tracksRegLiveness: true55body:             |56  bb.1:57    liveins: $x1058 59    ; CHECK-LABEL: name: sitofp_s32_s860    ; CHECK: liveins: $x1061    ; CHECK-NEXT: {{  $}}62    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x1063    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 5664    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)65    ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)66    ; CHECK-NEXT: [[SITOFP:%[0-9]+]]:_(s32) = G_SITOFP [[ASHR]](s64)67    ; CHECK-NEXT: $f10_f = COPY [[SITOFP]](s32)68    ; CHECK-NEXT: PseudoRET implicit $f10_f69    %1:_(s64) = COPY $x1070    %0:_(s8) = G_TRUNC %1(s64)71    %2:_(s32) = G_SITOFP %0(s8)72    $f10_f = COPY %2(s32)73    PseudoRET implicit $f10_f74 75...76---77name:            uitofp_s32_s878tracksRegLiveness: true79body:             |80  bb.1:81    liveins: $x1082 83    ; CHECK-LABEL: name: uitofp_s32_s884    ; CHECK: liveins: $x1085    ; CHECK-NEXT: {{  $}}86    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x1087    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 25588    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]89    ; CHECK-NEXT: [[UITOFP:%[0-9]+]]:_(s32) = G_UITOFP [[AND]](s64)90    ; CHECK-NEXT: $f10_f = COPY [[UITOFP]](s32)91    ; CHECK-NEXT: PseudoRET implicit $f10_f92    %1:_(s64) = COPY $x1093    %0:_(s8) = G_TRUNC %1(s64)94    %2:_(s32) = G_UITOFP %0(s8)95    $f10_f = COPY %2(s32)96    PseudoRET implicit $f10_f97 98...99---100name:            sitofp_s32_s16101tracksRegLiveness: true102body:             |103  bb.1:104    liveins: $x10105 106    ; CHECK-LABEL: name: sitofp_s32_s16107    ; CHECK: liveins: $x10108    ; CHECK-NEXT: {{  $}}109    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10110    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 48111    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)112    ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)113    ; CHECK-NEXT: [[SITOFP:%[0-9]+]]:_(s32) = G_SITOFP [[ASHR]](s64)114    ; CHECK-NEXT: $f10_f = COPY [[SITOFP]](s32)115    ; CHECK-NEXT: PseudoRET implicit $f10_f116    %1:_(s64) = COPY $x10117    %0:_(s16) = G_TRUNC %1(s64)118    %2:_(s32) = G_SITOFP %0(s16)119    $f10_f = COPY %2(s32)120    PseudoRET implicit $f10_f121 122...123---124name:            uitofp_s32_s16125tracksRegLiveness: true126body:             |127  bb.1:128    liveins: $x10129 130    ; CHECK-LABEL: name: uitofp_s32_s16131    ; CHECK: liveins: $x10132    ; CHECK-NEXT: {{  $}}133    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10134    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 65535135    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]136    ; CHECK-NEXT: [[UITOFP:%[0-9]+]]:_(s32) = G_UITOFP [[AND]](s64)137    ; CHECK-NEXT: $f10_f = COPY [[UITOFP]](s32)138    ; CHECK-NEXT: PseudoRET implicit $f10_f139    %1:_(s64) = COPY $x10140    %0:_(s16) = G_TRUNC %1(s64)141    %2:_(s32) = G_UITOFP %0(s16)142    $f10_f = COPY %2(s32)143    PseudoRET implicit $f10_f144 145...146---147name:            sitofp_s32_s32148tracksRegLiveness: true149body:             |150  bb.1:151    liveins: $x10152 153    ; CHECK-LABEL: name: sitofp_s32_s32154    ; CHECK: liveins: $x10155    ; CHECK-NEXT: {{  $}}156    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10157    ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY]], 32158    ; CHECK-NEXT: [[SITOFP:%[0-9]+]]:_(s32) = G_SITOFP [[SEXT_INREG]](s64)159    ; CHECK-NEXT: $f10_f = COPY [[SITOFP]](s32)160    ; CHECK-NEXT: PseudoRET implicit $f10_f161    %1:_(s64) = COPY $x10162    %0:_(s32) = G_TRUNC %1(s64)163    %2:_(s32) = G_SITOFP %0(s32)164    $f10_f = COPY %2(s32)165    PseudoRET implicit $f10_f166 167...168---169name:            uitofp_s32_s32170tracksRegLiveness: true171body:             |172  bb.1:173    liveins: $x10174 175    ; CHECK-LABEL: name: uitofp_s32_s32176    ; CHECK: liveins: $x10177    ; CHECK-NEXT: {{  $}}178    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10179    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 4294967295180    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]181    ; CHECK-NEXT: [[UITOFP:%[0-9]+]]:_(s32) = G_UITOFP [[AND]](s64)182    ; CHECK-NEXT: $f10_f = COPY [[UITOFP]](s32)183    ; CHECK-NEXT: PseudoRET implicit $f10_f184    %1:_(s64) = COPY $x10185    %0:_(s32) = G_TRUNC %1(s64)186    %2:_(s32) = G_UITOFP %0(s32)187    $f10_f = COPY %2(s32)188    PseudoRET implicit $f10_f189 190...191---192name:            sitofp_s32_s64193tracksRegLiveness: true194body:             |195  bb.1:196    liveins: $x10197 198    ; CHECK-LABEL: name: sitofp_s32_s64199    ; CHECK: liveins: $x10200    ; CHECK-NEXT: {{  $}}201    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10202    ; CHECK-NEXT: [[SITOFP:%[0-9]+]]:_(s32) = G_SITOFP [[COPY]](s64)203    ; CHECK-NEXT: $f10_f = COPY [[SITOFP]](s32)204    ; CHECK-NEXT: PseudoRET implicit $f10_f205    %0:_(s64) = COPY $x10206    %1:_(s32) = G_SITOFP %0(s64)207    $f10_f = COPY %1(s32)208    PseudoRET implicit $f10_f209 210...211---212name:            uitofp_s32_s64213tracksRegLiveness: true214body:             |215  bb.1:216    liveins: $x10217 218    ; CHECK-LABEL: name: uitofp_s32_s64219    ; CHECK: liveins: $x10220    ; CHECK-NEXT: {{  $}}221    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10222    ; CHECK-NEXT: [[UITOFP:%[0-9]+]]:_(s32) = G_UITOFP [[COPY]](s64)223    ; CHECK-NEXT: $f10_f = COPY [[UITOFP]](s32)224    ; CHECK-NEXT: PseudoRET implicit $f10_f225    %0:_(s64) = COPY $x10226    %1:_(s32) = G_UITOFP %0(s64)227    $f10_f = COPY %1(s32)228    PseudoRET implicit $f10_f229 230...231---232name:            sitofp_s64_s1233tracksRegLiveness: true234body:             |235  bb.1:236    liveins: $x10237 238    ; CHECK-LABEL: name: sitofp_s64_s1239    ; CHECK: liveins: $x10240    ; CHECK-NEXT: {{  $}}241    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10242    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 63243    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)244    ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)245    ; CHECK-NEXT: [[SITOFP:%[0-9]+]]:_(s64) = G_SITOFP [[ASHR]](s64)246    ; CHECK-NEXT: $f10_d = COPY [[SITOFP]](s64)247    ; CHECK-NEXT: PseudoRET implicit $f10_d248    %1:_(s64) = COPY $x10249    %0:_(s1) = G_TRUNC %1(s64)250    %2:_(s64) = G_SITOFP %0(s1)251    $f10_d = COPY %2(s64)252    PseudoRET implicit $f10_d253 254...255---256name:            uitofp_s64_s1257tracksRegLiveness: true258body:             |259  bb.1:260    liveins: $x10261 262    ; CHECK-LABEL: name: uitofp_s64_s1263    ; CHECK: liveins: $x10264    ; CHECK-NEXT: {{  $}}265    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10266    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1267    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]268    ; CHECK-NEXT: [[UITOFP:%[0-9]+]]:_(s64) = G_UITOFP [[AND]](s64)269    ; CHECK-NEXT: $f10_d = COPY [[UITOFP]](s64)270    ; CHECK-NEXT: PseudoRET implicit $f10_d271    %1:_(s64) = COPY $x10272    %0:_(s1) = G_TRUNC %1(s64)273    %2:_(s64) = G_UITOFP %0(s1)274    $f10_d = COPY %2(s64)275    PseudoRET implicit $f10_d276 277...278---279name:            sitofp_s64_s8280tracksRegLiveness: true281body:             |282  bb.1:283    liveins: $x10284 285    ; CHECK-LABEL: name: sitofp_s64_s8286    ; CHECK: liveins: $x10287    ; CHECK-NEXT: {{  $}}288    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10289    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 56290    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)291    ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)292    ; CHECK-NEXT: [[SITOFP:%[0-9]+]]:_(s64) = G_SITOFP [[ASHR]](s64)293    ; CHECK-NEXT: $f10_d = COPY [[SITOFP]](s64)294    ; CHECK-NEXT: PseudoRET implicit $f10_d295    %1:_(s64) = COPY $x10296    %0:_(s8) = G_TRUNC %1(s64)297    %2:_(s64) = G_SITOFP %0(s8)298    $f10_d = COPY %2(s64)299    PseudoRET implicit $f10_d300 301...302---303name:            uitofp_s64_s8304tracksRegLiveness: true305body:             |306  bb.1:307    liveins: $x10308 309    ; CHECK-LABEL: name: uitofp_s64_s8310    ; CHECK: liveins: $x10311    ; CHECK-NEXT: {{  $}}312    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10313    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 255314    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]315    ; CHECK-NEXT: [[UITOFP:%[0-9]+]]:_(s64) = G_UITOFP [[AND]](s64)316    ; CHECK-NEXT: $f10_d = COPY [[UITOFP]](s64)317    ; CHECK-NEXT: PseudoRET implicit $f10_d318    %1:_(s64) = COPY $x10319    %0:_(s8) = G_TRUNC %1(s64)320    %2:_(s64) = G_UITOFP %0(s8)321    $f10_d = COPY %2(s64)322    PseudoRET implicit $f10_d323 324...325---326name:            sitofp_s64_s16327tracksRegLiveness: true328body:             |329  bb.1:330    liveins: $x10331 332    ; CHECK-LABEL: name: sitofp_s64_s16333    ; CHECK: liveins: $x10334    ; CHECK-NEXT: {{  $}}335    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10336    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 48337    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)338    ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)339    ; CHECK-NEXT: [[SITOFP:%[0-9]+]]:_(s64) = G_SITOFP [[ASHR]](s64)340    ; CHECK-NEXT: $f10_d = COPY [[SITOFP]](s64)341    ; CHECK-NEXT: PseudoRET implicit $f10_d342    %1:_(s64) = COPY $x10343    %0:_(s16) = G_TRUNC %1(s64)344    %2:_(s64) = G_SITOFP %0(s16)345    $f10_d = COPY %2(s64)346    PseudoRET implicit $f10_d347 348...349---350name:            uitofp_s64_s16351tracksRegLiveness: true352body:             |353  bb.1:354    liveins: $x10355 356    ; CHECK-LABEL: name: uitofp_s64_s16357    ; CHECK: liveins: $x10358    ; CHECK-NEXT: {{  $}}359    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10360    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 65535361    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]362    ; CHECK-NEXT: [[UITOFP:%[0-9]+]]:_(s64) = G_UITOFP [[AND]](s64)363    ; CHECK-NEXT: $f10_d = COPY [[UITOFP]](s64)364    ; CHECK-NEXT: PseudoRET implicit $f10_d365    %1:_(s64) = COPY $x10366    %0:_(s16) = G_TRUNC %1(s64)367    %2:_(s64) = G_UITOFP %0(s16)368    $f10_d = COPY %2(s64)369    PseudoRET implicit $f10_d370 371...372---373name:            sitofp_s64_s32374tracksRegLiveness: true375body:             |376  bb.1:377    liveins: $x10378 379    ; CHECK-LABEL: name: sitofp_s64_s32380    ; CHECK: liveins: $x10381    ; CHECK-NEXT: {{  $}}382    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10383    ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY]], 32384    ; CHECK-NEXT: [[SITOFP:%[0-9]+]]:_(s64) = G_SITOFP [[SEXT_INREG]](s64)385    ; CHECK-NEXT: $f10_d = COPY [[SITOFP]](s64)386    ; CHECK-NEXT: PseudoRET implicit $f10_d387    %1:_(s64) = COPY $x10388    %0:_(s32) = G_TRUNC %1(s64)389    %2:_(s64) = G_SITOFP %0(s32)390    $f10_d = COPY %2(s64)391    PseudoRET implicit $f10_d392 393...394---395name:            uitofp_s64_s32396tracksRegLiveness: true397body:             |398  bb.1:399    liveins: $x10400 401    ; CHECK-LABEL: name: uitofp_s64_s32402    ; CHECK: liveins: $x10403    ; CHECK-NEXT: {{  $}}404    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10405    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 4294967295406    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]407    ; CHECK-NEXT: [[UITOFP:%[0-9]+]]:_(s64) = G_UITOFP [[AND]](s64)408    ; CHECK-NEXT: $f10_d = COPY [[UITOFP]](s64)409    ; CHECK-NEXT: PseudoRET implicit $f10_d410    %1:_(s64) = COPY $x10411    %0:_(s32) = G_TRUNC %1(s64)412    %2:_(s64) = G_UITOFP %0(s32)413    $f10_d = COPY %2(s64)414    PseudoRET implicit $f10_d415 416...417---418name:            sitofp_s64_s64419tracksRegLiveness: true420body:             |421  bb.1:422    liveins: $x10423 424    ; CHECK-LABEL: name: sitofp_s64_s64425    ; CHECK: liveins: $x10426    ; CHECK-NEXT: {{  $}}427    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10428    ; CHECK-NEXT: [[SITOFP:%[0-9]+]]:_(s64) = G_SITOFP [[COPY]](s64)429    ; CHECK-NEXT: $f10_d = COPY [[SITOFP]](s64)430    ; CHECK-NEXT: PseudoRET implicit $f10_d431    %0:_(s64) = COPY $x10432    %1:_(s64) = G_SITOFP %0(s64)433    $f10_d = COPY %1(s64)434    PseudoRET implicit $f10_d435 436...437---438name:            uitofp_s64_s64439tracksRegLiveness: true440body:             |441  bb.1:442    liveins: $x10443 444    ; CHECK-LABEL: name: uitofp_s64_s64445    ; CHECK: liveins: $x10446    ; CHECK-NEXT: {{  $}}447    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10448    ; CHECK-NEXT: [[UITOFP:%[0-9]+]]:_(s64) = G_UITOFP [[COPY]](s64)449    ; CHECK-NEXT: $f10_d = COPY [[UITOFP]](s64)450    ; CHECK-NEXT: PseudoRET implicit $f10_d451    %0:_(s64) = COPY $x10452    %1:_(s64) = G_UITOFP %0(s64)453    $f10_d = COPY %1(s64)454    PseudoRET implicit $f10_d455 456...457