Skip to content

Commit c90d5b8

Browse files
fixup! add indexed loads to the mix
1 parent 3ae4b43 commit c90d5b8

File tree

2 files changed

+39
-1
lines changed

2 files changed

+39
-1
lines changed

llvm/lib/Target/RISCV/RISCVVLOptimizer.cpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -761,7 +761,15 @@ static bool isSupportedInstr(const MachineInstr &MI) {
761761
case RISCV::VLE64_V:
762762
case RISCV::VLSE64_V:
763763
case RISCV::VLE64FF_V:
764-
764+
// Vector Indexed Instructions
765+
case RISCV::VLUXEI8_V:
766+
case RISCV::VLOXEI8_V:
767+
case RISCV::VLUXEI16_V:
768+
case RISCV::VLOXEI16_V:
769+
case RISCV::VLUXEI32_V:
770+
case RISCV::VLOXEI32_V:
771+
case RISCV::VLUXEI64_V:
772+
case RISCV::VLOXEI64_V:
765773
// Vector Single-Width Integer Add and Subtract
766774
case RISCV::VADD_VI:
767775
case RISCV::VADD_VV:

llvm/test/CodeGen/RISCV/rvv/vl-opt-op-info.mir

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -735,6 +735,36 @@ body: |
735735
%y:vr = PseudoVLUXEI8_V_MF2_M1 $noreg, $noreg, %x, 1, 4 /* e16 */, 0
736736
...
737737
---
738+
name: vluxeiN_v_vd
739+
body: |
740+
bb.0:
741+
; CHECK-LABEL: name: vluxeiN_v_vd
742+
; CHECK: %x:vr = PseudoVLUXEI8_V_M1_M1 $noreg, $noreg, $noreg, 1, 3 /* e8 */, 0 /* tu, mu */
743+
; CHECK-NEXT: %y:vr = PseudoVADD_VV_M1 $noreg, %x, $noreg, 1, 3 /* e8 */, 0 /* tu, mu */
744+
%x:vr = PseudoVLUXEI8_V_M1_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
745+
%y:vr = PseudoVADD_VV_M1 $noreg, %x, $noreg, 1, 3 /* e8 */, 0
746+
...
747+
---
748+
name: vluxeiN_v_vd_incompatible_eew
749+
body: |
750+
bb.0:
751+
; CHECK-LABEL: name: vluxeiN_v_vd_incompatible_eew
752+
; CHECK: %x:vr = PseudoVLUXEI8_V_M1_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0 /* tu, mu */
753+
; CHECK-NEXT: %y:vr = PseudoVADD_VV_M1 $noreg, %x, $noreg, 1, 4 /* e16 */, 0 /* tu, mu */
754+
%x:vr = PseudoVLUXEI8_V_M1_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
755+
%y:vr = PseudoVADD_VV_M1 $noreg, %x, $noreg, 1, 4 /* e16 */, 0
756+
...
757+
---
758+
name: vluxeiN_vd_incompatible_emul
759+
body: |
760+
bb.0:
761+
; CHECK-LABEL: name: vluxeiN_vd_incompatible_emul
762+
; CHECK: early-clobber %x:vr = PseudoVLUXEI8_V_MF2_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0 /* tu, mu */
763+
; CHECK-NEXT: %y:vr = PseudoVADD_VV_MF2 $noreg, %x, $noreg, 1, 3 /* e8 */, 0 /* tu, mu */
764+
%x:vr = PseudoVLUXEI8_V_MF2_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
765+
%y:vr = PseudoVADD_VV_MF2 $noreg, %x, $noreg, 1, 3 /* e8 */, 0
766+
...
767+
---
738768
name: vmop_mm
739769
body: |
740770
bb.0:

0 commit comments

Comments
 (0)