brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.6 KiB · e7f9500 Raw
246 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=riscv64 -mattr=+d -run-pass=regbankselect \3# RUN:   -simplify-mir -verify-machineinstrs %s \4# RUN:   -o - | FileCheck -check-prefix=RV32I %s5 6---7name:            fp_select_s328legalized:       true9tracksRegLiveness: true10body:             |11  bb.0.entry:12    liveins: $x10, $f10_f, $f11_f13 14    ; RV32I-LABEL: name: fp_select_s3215    ; RV32I: liveins: $x10, $f10_f, $f11_f16    ; RV32I-NEXT: {{  $}}17    ; RV32I-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x1018    ; RV32I-NEXT: [[COPY1:%[0-9]+]]:fprb(s32) = COPY $f10_f19    ; RV32I-NEXT: [[COPY2:%[0-9]+]]:fprb(s32) = COPY $f11_f20    ; RV32I-NEXT: [[C:%[0-9]+]]:gprb(s64) = G_CONSTANT i64 121    ; RV32I-NEXT: [[AND:%[0-9]+]]:gprb(s64) = G_AND [[COPY]], [[C]]22    ; RV32I-NEXT: [[SELECT:%[0-9]+]]:fprb(s32) = G_SELECT [[AND]](s64), [[COPY1]], [[COPY2]]23    ; RV32I-NEXT: $f10_f = COPY [[SELECT]](s32)24    ; RV32I-NEXT: PseudoRET implicit $f10_f25    %3:_(s64) = COPY $x1026    %4:_(s32) = COPY $f10_f27    %5:_(s32) = COPY $f11_f28    %12:_(s64) = G_CONSTANT i64 129    %11:_(s64) = G_AND %3, %1230    %10:_(s32) = G_SELECT %11(s64), %4(s32), %531    $f10_f = COPY %10(s32)32    PseudoRET implicit $f10_f33 34...35---36name:            fp_select_s6437legalized:       true38tracksRegLiveness: true39body:             |40  bb.0.entry:41    liveins: $x10, $f10_d, $f11_d42 43    ; RV32I-LABEL: name: fp_select_s6444    ; RV32I: liveins: $x10, $f10_d, $f11_d45    ; RV32I-NEXT: {{  $}}46    ; RV32I-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x1047    ; RV32I-NEXT: [[COPY1:%[0-9]+]]:fprb(s64) = COPY $f10_d48    ; RV32I-NEXT: [[COPY2:%[0-9]+]]:fprb(s64) = COPY $f11_d49    ; RV32I-NEXT: [[C:%[0-9]+]]:gprb(s64) = G_CONSTANT i64 150    ; RV32I-NEXT: [[AND:%[0-9]+]]:gprb(s64) = G_AND [[COPY]], [[C]]51    ; RV32I-NEXT: [[SELECT:%[0-9]+]]:fprb(s64) = G_SELECT [[AND]](s64), [[COPY1]], [[COPY2]]52    ; RV32I-NEXT: $f10_d = COPY [[SELECT]](s64)53    ; RV32I-NEXT: PseudoRET implicit $f10_d54    %3:_(s64) = COPY $x1055    %4:_(s64) = COPY $f10_d56    %5:_(s64) = COPY $f11_d57    %12:_(s64) = G_CONSTANT i64 158    %11:_(s64) = G_AND %3, %1259    %10:_(s64) = G_SELECT %11(s64), %4, %560    $f10_d = COPY %10(s64)61    PseudoRET implicit $f10_d62 63...64---65name:            fp_select_gpr_use_s3266legalized:       true67tracksRegLiveness: true68body:             |69  bb.0.entry:70    liveins: $x10, $f10_f, $f11_f71 72    ; RV32I-LABEL: name: fp_select_gpr_use_s3273    ; RV32I: liveins: $x10, $f10_f, $f11_f74    ; RV32I-NEXT: {{  $}}75    ; RV32I-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x1076    ; RV32I-NEXT: [[COPY1:%[0-9]+]]:fprb(s32) = COPY $f10_f77    ; RV32I-NEXT: [[COPY2:%[0-9]+]]:fprb(s32) = COPY $f11_f78    ; RV32I-NEXT: [[C:%[0-9]+]]:gprb(s64) = G_CONSTANT i64 179    ; RV32I-NEXT: [[AND:%[0-9]+]]:gprb(s64) = G_AND [[COPY]], [[C]]80    ; RV32I-NEXT: [[SELECT:%[0-9]+]]:fprb(s32) = G_SELECT [[AND]](s64), [[COPY1]], [[COPY2]]81    ; RV32I-NEXT: [[COPY3:%[0-9]+]]:gprb(s32) = COPY [[SELECT]](s32)82    ; RV32I-NEXT: [[ANYEXT:%[0-9]+]]:gprb(s64) = G_ANYEXT [[COPY3]](s32)83    ; RV32I-NEXT: $x10 = COPY [[ANYEXT]](s64)84    ; RV32I-NEXT: PseudoRET implicit $x1085    %3:_(s64) = COPY $x1086    %4:_(s32) = COPY $f10_f87    %5:_(s32) = COPY $f11_f88    %12:_(s64) = G_CONSTANT i64 189    %11:_(s64) = G_AND %3, %1290    %10:_(s32) = G_SELECT %11(s64), %4(s32), %591    %13:_(s64) = G_ANYEXT %10(s32)92    $x10 = COPY %13(s64)93    PseudoRET implicit $x1094 95...96---97name:            fp_select_gpr_use_s6498legalized:       true99tracksRegLiveness: true100body:             |101  bb.0.entry:102    liveins: $x10, $f10_d, $f11_d103 104    ; RV32I-LABEL: name: fp_select_gpr_use_s64105    ; RV32I: liveins: $x10, $f10_d, $f11_d106    ; RV32I-NEXT: {{  $}}107    ; RV32I-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x10108    ; RV32I-NEXT: [[COPY1:%[0-9]+]]:fprb(s64) = COPY $f10_d109    ; RV32I-NEXT: [[COPY2:%[0-9]+]]:fprb(s64) = COPY $f11_d110    ; RV32I-NEXT: [[C:%[0-9]+]]:gprb(s64) = G_CONSTANT i64 1111    ; RV32I-NEXT: [[AND:%[0-9]+]]:gprb(s64) = G_AND [[COPY]], [[C]]112    ; RV32I-NEXT: [[SELECT:%[0-9]+]]:fprb(s64) = G_SELECT [[AND]](s64), [[COPY1]], [[COPY2]]113    ; RV32I-NEXT: $x10 = COPY [[SELECT]](s64)114    ; RV32I-NEXT: PseudoRET implicit $x10115    %3:_(s64) = COPY $x10116    %4:_(s64) = COPY $f10_d117    %5:_(s64) = COPY $f11_d118    %12:_(s64) = G_CONSTANT i64 1119    %11:_(s64) = G_AND %3, %12120    %10:_(s64) = G_SELECT %11(s64), %4, %5121    $x10 = COPY %10(s64)122    PseudoRET implicit $x10123 124...125---126name:            fp_select_gpr_def_s32127legalized:       true128tracksRegLiveness: true129body:             |130  bb.0.entry:131    liveins: $x10, $x11, $f10_f132 133    ; RV32I-LABEL: name: fp_select_gpr_def_s32134    ; RV32I: liveins: $x10, $x11, $f10_f135    ; RV32I-NEXT: {{  $}}136    ; RV32I-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x10137    ; RV32I-NEXT: [[COPY1:%[0-9]+]]:fprb(s32) = COPY $f10_f138    ; RV32I-NEXT: [[COPY2:%[0-9]+]]:gprb(s64) = COPY $x11139    ; RV32I-NEXT: [[TRUNC:%[0-9]+]]:gprb(s32) = G_TRUNC [[COPY2]](s64)140    ; RV32I-NEXT: [[C:%[0-9]+]]:gprb(s64) = G_CONSTANT i64 1141    ; RV32I-NEXT: [[AND:%[0-9]+]]:gprb(s64) = G_AND [[COPY]], [[C]]142    ; RV32I-NEXT: [[COPY3:%[0-9]+]]:fprb(s32) = COPY [[TRUNC]](s32)143    ; RV32I-NEXT: [[SELECT:%[0-9]+]]:fprb(s32) = G_SELECT [[AND]](s64), [[COPY3]], [[COPY1]]144    ; RV32I-NEXT: $f10_f = COPY [[SELECT]](s32)145    ; RV32I-NEXT: PseudoRET implicit $f10_f146    %3:_(s64) = COPY $x10147    %4:_(s32) = COPY $f10_f148    %5:_(s64) = COPY $x11149    %6:_(s32) = G_TRUNC %5(s64)150    %12:_(s64) = G_CONSTANT i64 1151    %11:_(s64) = G_AND %3, %12152    %10:_(s32) = G_SELECT %11(s64), %6(s32), %4153    $f10_f = COPY %10(s32)154    PseudoRET implicit $f10_f155 156...157---158name:            fp_select_gpr_def_s64159legalized:       true160tracksRegLiveness: true161body:             |162  bb.0.entry:163    liveins: $x10, $x11, $f10_d164 165    ; RV32I-LABEL: name: fp_select_gpr_def_s64166    ; RV32I: liveins: $x10, $x11, $f10_d167    ; RV32I-NEXT: {{  $}}168    ; RV32I-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x10169    ; RV32I-NEXT: [[COPY1:%[0-9]+]]:fprb(s64) = COPY $f10_d170    ; RV32I-NEXT: [[COPY2:%[0-9]+]]:gprb(s64) = COPY $x11171    ; RV32I-NEXT: [[C:%[0-9]+]]:gprb(s64) = G_CONSTANT i64 1172    ; RV32I-NEXT: [[AND:%[0-9]+]]:gprb(s64) = G_AND [[COPY]], [[C]]173    ; RV32I-NEXT: [[COPY3:%[0-9]+]]:fprb(s64) = COPY [[COPY2]](s64)174    ; RV32I-NEXT: [[SELECT:%[0-9]+]]:fprb(s64) = G_SELECT [[AND]](s64), [[COPY1]], [[COPY3]]175    ; RV32I-NEXT: $f10_d = COPY [[SELECT]](s64)176    ; RV32I-NEXT: PseudoRET implicit $f10_d177    %3:_(s64) = COPY $x10178    %4:_(s64) = COPY $f10_d179    %5:_(s64) = COPY $x11180    %12:_(s64) = G_CONSTANT i64 1181    %11:_(s64) = G_AND %3, %12182    %10:_(s64) = G_SELECT %11(s64), %4, %5183    $f10_d = COPY %10(s64)184    PseudoRET implicit $f10_d185 186...187---188name:            fp_select_only_fpr_use_s64189legalized:       true190tracksRegLiveness: true191body:             |192  bb.0.entry:193    liveins: $x10, $x11, $x12194 195    ; RV32I-LABEL: name: fp_select_only_fpr_use_s64196    ; RV32I: liveins: $x10, $x11, $x12197    ; RV32I-NEXT: {{  $}}198    ; RV32I-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x10199    ; RV32I-NEXT: [[COPY1:%[0-9]+]]:gprb(s64) = COPY $x11200    ; RV32I-NEXT: [[COPY2:%[0-9]+]]:gprb(s64) = COPY $x12201    ; RV32I-NEXT: [[C:%[0-9]+]]:gprb(s64) = G_CONSTANT i64 1202    ; RV32I-NEXT: [[AND:%[0-9]+]]:gprb(s64) = G_AND [[COPY]], [[C]]203    ; RV32I-NEXT: [[SELECT:%[0-9]+]]:gprb(s64) = G_SELECT [[AND]](s64), [[COPY1]], [[COPY2]]204    ; RV32I-NEXT: $f10_d = COPY [[SELECT]](s64)205    ; RV32I-NEXT: PseudoRET implicit $f10_d206    %3:_(s64) = COPY $x10207    %4:_(s64) = COPY $x11208    %5:_(s64) = COPY $x12209    %12:_(s64) = G_CONSTANT i64 1210    %11:_(s64) = G_AND %3, %12211    %10:_(s64) = G_SELECT %11(s64), %4, %5212    $f10_d = COPY %10(s64)213    PseudoRET implicit $f10_d214 215...216---217name:            fp_select_only_one_fpr_def_s64218legalized:       true219tracksRegLiveness: true220body:             |221  bb.0.entry:222    liveins: $x10, $x11, $f10_d223 224    ; RV32I-LABEL: name: fp_select_only_one_fpr_def_s64225    ; RV32I: liveins: $x10, $x11, $f10_d226    ; RV32I-NEXT: {{  $}}227    ; RV32I-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x10228    ; RV32I-NEXT: [[COPY1:%[0-9]+]]:fprb(s64) = COPY $f10_d229    ; RV32I-NEXT: [[COPY2:%[0-9]+]]:gprb(s64) = COPY $x11230    ; RV32I-NEXT: [[C:%[0-9]+]]:gprb(s64) = G_CONSTANT i64 1231    ; RV32I-NEXT: [[AND:%[0-9]+]]:gprb(s64) = G_AND [[COPY]], [[C]]232    ; RV32I-NEXT: [[COPY3:%[0-9]+]]:gprb(s64) = COPY [[COPY1]](s64)233    ; RV32I-NEXT: [[SELECT:%[0-9]+]]:gprb(s64) = G_SELECT [[AND]](s64), [[COPY3]], [[COPY2]]234    ; RV32I-NEXT: $x10 = COPY [[SELECT]](s64)235    ; RV32I-NEXT: PseudoRET implicit $x10236    %3:_(s64) = COPY $x10237    %4:_(s64) = COPY $f10_d238    %5:_(s64) = COPY $x11239    %12:_(s64) = G_CONSTANT i64 1240    %11:_(s64) = G_AND %3, %12241    %10:_(s64) = G_SELECT %11(s64), %4, %5242    $x10 = COPY %10(s64)243    PseudoRET implicit $x10244 245...246