brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.5 KiB · 9c3e96d Raw
171 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 32# RUN: llc %s -o - -mtriple=riscv64 -mattr=+v -run-pass=riscv-vector-peephole \3# RUN:     -verify-machineinstrs | FileCheck %s4 5---6name: move_src7body: |8  bb.0:9    liveins: $v810    ; CHECK-LABEL: name: move_src11    ; CHECK: liveins: $v812    ; CHECK-NEXT: {{  $}}13    ; CHECK-NEXT: %passthru:vr = COPY $v814    ; CHECK-NEXT: %x:vr = PseudoVADD_VV_M1 %passthru, $noreg, $noreg, 4, 5 /* e32 */, 0 /* tu, mu */15    ; CHECK-NEXT: %y:gpr = ADDI $x0, 116    %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, 4, 5 /* e32 */, 0 /* tu, mu */17    %passthru:vr = COPY $v818    %y:gpr = ADDI $x0, 119    %z:vr = PseudoVMV_V_V_M1 %passthru, %x, 4, 5 /* e32 */, 0 /* tu, mu */20...21---22name: tail_agnostic23body: |24  bb.0:25    liveins: $v826    ; CHECK-LABEL: name: tail_agnostic27    ; CHECK: liveins: $v828    ; CHECK-NEXT: {{  $}}29    ; CHECK-NEXT: %passthru:vr = COPY $v830    ; CHECK-NEXT: %x:vr = PseudoVADD_VV_M1 %passthru, $noreg, $noreg, 4, 5 /* e32 */, 1 /* ta, mu */31    %passthru:vr = COPY $v832    %x:vr = PseudoVADD_VV_M1 %passthru, $noreg, $noreg, 4, 5 /* e32 */, 0 /* tu, mu */33    %y:vr = PseudoVMV_V_V_M1 %passthru, %x, 4, 5 /* e32 */, 1 /* ta, mu */34...35---36name: tail_agnostic_larger_vl37body: |38  bb.0:39    liveins: $v840    ; CHECK-LABEL: name: tail_agnostic_larger_vl41    ; CHECK: liveins: $v842    ; CHECK-NEXT: {{  $}}43    ; CHECK-NEXT: %passthru:vr = COPY $v844    ; CHECK-NEXT: %x:vr = PseudoVADD_VV_M1 %passthru, $noreg, $noreg, 4, 5 /* e32 */, 0 /* tu, mu */45    %passthru:vr = COPY $v846    %x:vr = PseudoVADD_VV_M1 %passthru, $noreg, $noreg, 4, 5 /* e32 */, 0 /* tu, mu */47    %y:vr = PseudoVMV_V_V_M1 %passthru, %x, 5, 5 /* e32 */, 1 /* ta, mu */48...49---50name: undef_passthru_src_undef_passthru51body: |52  bb.0:53    liveins: $v854    ; CHECK-LABEL: name: undef_passthru_src_undef_passthru55    ; CHECK: liveins: $v856    ; CHECK-NEXT: {{  $}}57    ; CHECK-NEXT: %passthru:vr = COPY $v858    ; CHECK-NEXT: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, 4, 5 /* e32 */, 1 /* ta, mu */59    %passthru:vr = COPY $v860    %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, 4, 5 /* e32 */, 0 /* tu, mu */61    %y:vr = PseudoVMV_V_V_M1 $noreg, %x, 4, 5 /* e32 */, 0 /* tu, mu */62...63---64name: undef_passthru65body: |66  bb.0:67    liveins: $v868    ; CHECK-LABEL: name: undef_passthru69    ; CHECK: liveins: $v870    ; CHECK-NEXT: {{  $}}71    ; CHECK-NEXT: %passthru:vr = COPY $v872    ; CHECK-NEXT: %x:vr = PseudoVADD_VV_M1 %passthru, $noreg, $noreg, 4, 5 /* e32 */, 1 /* ta, mu */73    %passthru:vr = COPY $v874    %x:vr = PseudoVADD_VV_M1 %passthru, $noreg, $noreg, 4, 5 /* e32 */, 0 /* tu, mu */75    %y:vr = PseudoVMV_V_V_M1 $noreg, %x, 4, 5 /* e32 */, 1 /* ta, mu */76...77---78# Shouldn't be folded because the EEWs don't match79name: different_eew80body: |81  bb.0:82    liveins: $v883    ; CHECK-LABEL: name: different_eew84    ; CHECK: liveins: $v885    ; CHECK-NEXT: {{  $}}86    ; CHECK-NEXT: %passthru:vr = COPY $v887    ; CHECK-NEXT: %x:vr = PseudoVADD_VV_MF4 %passthru, $noreg, $noreg, 4, 4 /* e16 */, 0 /* tu, mu */88    ; CHECK-NEXT: %y:vr = PseudoVMV_V_V_MF8 %passthru, %x, 4, 3 /* e8 */, 0 /* tu, mu */89    %passthru:vr = COPY $v890    %x:vr = PseudoVADD_VV_MF4 %passthru, $noreg, $noreg, 4, 4 /* e16 */, 0 /* tu, mu */91    %y:vr = PseudoVMV_V_V_MF8 %passthru, %x, 4, 3 /* e8 */, 0 /* tu, mu */92...93---94name: kill_flag95tracksRegLiveness: true96body: |97  bb.0:98    ; CHECK-LABEL: name: kill_flag99    ; CHECK: [[PseudoVADD_VV_M1_:%[0-9]+]]:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 4 /* e16 */, 0 /* tu, mu */100    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vr = COPY [[PseudoVADD_VV_M1_]]101    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vr = COPY [[PseudoVADD_VV_M1_]]102    %0:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 4 /* e16 */, 0 /* tu, mu */103    %1:vr = PseudoVMV_V_V_M1 $noreg, %0, -1, 4 /* e16 */, 0 /* tu, mu */104    %2:vr = COPY killed %1105    %3:vr = COPY %0106...107---108name: diff_regclass109body: |110  bb.0.entry:111    liveins: $v8112    ; CHECK-LABEL: name: diff_regclass113    ; CHECK: liveins: $v8114    ; CHECK-NEXT: {{  $}}115    ; CHECK-NEXT: [[PseudoVMV_V_I_MF2_:%[0-9]+]]:vrnov0 = PseudoVMV_V_I_MF2 $noreg, 0, 0, 5 /* e32 */, 1 /* ta, mu */116    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vmv0 = COPY $v8117    ; CHECK-NEXT: [[PseudoVADD_VV_M1_MASK:%[0-9]+]]:vrnov0 = PseudoVADD_VV_M1_MASK [[PseudoVMV_V_I_MF2_]], $noreg, $noreg, [[COPY]], 0, 5 /* e32 */, 0 /* tu, mu */118    %0:vr = PseudoVMV_V_I_MF2 $noreg, 0, -1, 5 /* e32 */, 0 /* tu, mu */119    %1:vrnov0 = PseudoVMV_V_V_MF2 $noreg, %0, 0, 5 /* e32 */, 0 /* tu, mu */120    %2:vmv0 = COPY $v8121    %3:vrnov0 = PseudoVADD_VV_M1_MASK %1, $noreg, $noreg, %2, 0, 5 /* e32 */, 0 /* tu, mu */122...123---124name: diff_regclass_passthru125body: |126  bb.0.entry:127    liveins: $v8128    ; CHECK-LABEL: name: diff_regclass_passthru129    ; CHECK: liveins: $v8130    ; CHECK-NEXT: {{  $}}131    ; CHECK-NEXT: [[PseudoVMV_V_I_MF2_:%[0-9]+]]:vrnov0 = PseudoVMV_V_I_MF2 $noreg, 0, 0, 5 /* e32 */, 1 /* ta, mu */132    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vmv0 = COPY $v8133    ; CHECK-NEXT: [[PseudoVLSE32_V_MF2_MASK:%[0-9]+]]:vrnov0 = PseudoVLSE32_V_MF2_MASK [[PseudoVMV_V_I_MF2_]], $noreg, $noreg, [[COPY]], 0, 5 /* e32 */, 0 /* tu, mu */ :: (load unknown-size, align 4)134    %2:vr = PseudoVMV_V_I_MF2 $noreg, 0, -1, 5 /* e32 */, 0 /* tu, mu */135    %3:vrnov0 = PseudoVMV_V_V_MF2 $noreg, %2, 0, 5 /* e32 */, 0 /* tu, mu */136    %7:vmv0 = COPY $v8137    %6:vrnov0 = PseudoVLSE32_V_MF2_MASK %3, $noreg, $noreg, %7, 0, 5 /* e32 */, 0 /* tu, mu */ :: (load unknown-size, align 4)138...139---140name: move_vleff141body: |142  bb.0:143    liveins: $v8144    ; CHECK-LABEL: name: move_vleff145    ; CHECK: liveins: $v8146    ; CHECK-NEXT: {{  $}}147    ; CHECK-NEXT: %passthru:vr = COPY $v8148    ; CHECK-NEXT: %x:vr, %vl:gpr = PseudoVLE32FF_V_M1 %passthru, $noreg, 4, 5 /* e32 */, 0 /* tu, mu */ :: (load unknown-size, align 1)149    ; CHECK-NEXT: %y:gpr = ADDI $x0, 1150    %x:vr, %vl:gpr = PseudoVLE32FF_V_M1 $noreg, $noreg, 4, 5 /* e32 */, 0 /* tu, mu */ :: (load unknown-size)151    %passthru:vr = COPY $v8152    %y:gpr = ADDI $x0, 1153    %z:vr = PseudoVMV_V_V_M1 %passthru, %x, 4, 5 /* e32 */, 0 /* tu, mu */154...155---156name: vmerge_vvm157body: |158  bb.0:159    liveins: $v8, $v0160    ; CHECK-LABEL: name: vmerge_vvm161    ; CHECK: liveins: $v8, $v0162    ; CHECK-NEXT: {{  $}}163    ; CHECK-NEXT: %passthru:vrnov0 = COPY $v8164    ; CHECK-NEXT: %mask:vmv0 = COPY $v0165    ; CHECK-NEXT: %x:vrnov0 = PseudoVMERGE_VVM_M1 %passthru, %passthru, $noreg, %mask, 4, 5 /* e32 */166    %passthru:vr = COPY $v8167    %mask:vmv0 = COPY $v0168    %x:vrnov0 = PseudoVMERGE_VVM_M1 $noreg, %passthru, $noreg, %mask, 4, 5 /* e32 */169    %z:vr = PseudoVMV_V_V_M1 %passthru, %x, 4, 5 /* e32 */, 0 /* tu, mu */170...171