Skip to content

Commit d938a67

Browse files
fixup! improve tests and variable naming
1 parent cf9c153 commit d938a67

File tree

2 files changed

+62
-13
lines changed

2 files changed

+62
-13
lines changed

llvm/lib/Target/RISCV/RISCVVLOptimizer.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -272,36 +272,37 @@ static OperandInfo getOperandInfo(const MachineOperand &MO,
272272

273273
// Vector Indexed Instructions
274274
// vs(o|u)xei<eew>.v
275-
// Dest EEW=SEW, EMUL=LMUL. Source EEW=<eew> and EMUL=(EEW/SEW)*LMUL
275+
// Dest/Data (operand 0) EEW=SEW, EMUL=LMUL. Source EEW=<eew> and
276+
// EMUL=(EEW/SEW)*LMUL.
276277
case RISCV::VLUXEI8_V:
277278
case RISCV::VLOXEI8_V:
278279
case RISCV::VSUXEI8_V:
279280
case RISCV::VSOXEI8_V: {
280-
if (IsMODef)
281+
if (MO.getOperandNo() == 0)
281282
return OperandInfo(MIVLMul, MILog2SEW);
282283
return OperandInfo(RISCVVType::getEMULEqualsEEWDivSEWTimesLMUL(3, MI), 3);
283284
}
284285
case RISCV::VLUXEI16_V:
285286
case RISCV::VLOXEI16_V:
286287
case RISCV::VSUXEI16_V:
287288
case RISCV::VSOXEI16_V: {
288-
if (IsMODef)
289+
if (MO.getOperandNo() == 0)
289290
return OperandInfo(MIVLMul, MILog2SEW);
290291
return OperandInfo(RISCVVType::getEMULEqualsEEWDivSEWTimesLMUL(4, MI), 4);
291292
}
292293
case RISCV::VLUXEI32_V:
293294
case RISCV::VLOXEI32_V:
294295
case RISCV::VSUXEI32_V:
295296
case RISCV::VSOXEI32_V: {
296-
if (IsMODef)
297+
if (MO.getOperandNo() == 0)
297298
return OperandInfo(MIVLMul, MILog2SEW);
298299
return OperandInfo(RISCVVType::getEMULEqualsEEWDivSEWTimesLMUL(5, MI), 5);
299300
}
300301
case RISCV::VLUXEI64_V:
301302
case RISCV::VLOXEI64_V:
302303
case RISCV::VSUXEI64_V:
303304
case RISCV::VSOXEI64_V: {
304-
if (IsMODef)
305+
if (MO.getOperandNo() == 0)
305306
return OperandInfo(MIVLMul, MILog2SEW);
306307
return OperandInfo(RISCVVType::getEMULEqualsEEWDivSEWTimesLMUL(6, MI), 6);
307308
}

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

Lines changed: 56 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -573,30 +573,30 @@ body: |
573573
PseudoVSSE8_V_MF2 %x, $noreg, $noreg, 1, 3 /* e8 */
574574
...
575575
---
576-
name: vsuxeiN_v
576+
name: vsuxeiN_v_data
577577
body: |
578578
bb.0:
579-
; CHECK-LABEL: name: vsuxeiN_v
579+
; CHECK-LABEL: name: vsuxeiN_v_data
580580
; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, 1, 3 /* e8 */, 0 /* tu, mu */
581581
; CHECK-NEXT: PseudoVSUXEI8_V_M1_M1 %x, $noreg, $noreg, 1, 3 /* e8 */
582582
%x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
583583
PseudoVSUXEI8_V_M1_M1 %x, $noreg, $noreg, 1, 3 /* e8 */
584584
...
585585
---
586-
name: vsuxeiN_v_incompatible_eew
586+
name: vsuxeiN_v_data_incompatible_eew
587587
body: |
588588
bb.0:
589-
; CHECK-LABEL: name: vsuxeiN_v_incompatible_eew
589+
; CHECK-LABEL: name: vsuxeiN_v_data_incompatible_eew
590590
; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 4 /* e16 */, 0 /* tu, mu */
591591
; CHECK-NEXT: PseudoVSUXEI8_V_M1_M1 %x, $noreg, $noreg, 1, 3 /* e8 */
592592
%x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 4 /* e16 */, 0
593593
PseudoVSUXEI8_V_M1_M1 %x, $noreg, $noreg, 1, 3 /* e8 */
594594
...
595595
---
596-
name: vsuxeiN_v_incompatible_emul
596+
name: vsuxeiN_v_data_incompatible_emul
597597
body: |
598598
bb.0:
599-
; CHECK-LABEL: name: vsuxeiN_v_incompatible_emul
599+
; CHECK-LABEL: name: vsuxeiN_v_data_incompatible_emul
600600
; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0 /* tu, mu */
601601
; CHECK-NEXT: PseudoVSUXEI8_V_MF2_MF2 %x, $noreg, $noreg, 1, 3 /* e8 */
602602
%x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
@@ -613,6 +613,42 @@ body: |
613613
%y:vr = PseudoVMAND_MM_B8 $noreg, %x, 1, 0
614614
...
615615
---
616+
name: vsuxeiN_v_idx
617+
body: |
618+
bb.0:
619+
; CHECK-LABEL: name: vsuxeiN_v_idx
620+
; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, 1, 3 /* e8 */, 0 /* tu, mu */
621+
; CHECK-NEXT: %y:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, 1, 3 /* e8 */, 0 /* tu, mu */
622+
; CHECK-NEXT: PseudoVSUXEI8_V_M1_M1 %y, $noreg, %x, 1, 3 /* e8 */
623+
%x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
624+
%y:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
625+
PseudoVSUXEI8_V_M1_M1 %y, $noreg, %x, 1, 3 /* e8 */
626+
...
627+
---
628+
name: vsuxeiN_v_idx_incompatible_eew
629+
body: |
630+
bb.0:
631+
; CHECK-LABEL: name: vsuxeiN_v_idx_incompatible_eew
632+
; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 4 /* e16 */, 0 /* tu, mu */
633+
; CHECK-NEXT: %y:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, 1, 3 /* e8 */, 0 /* tu, mu */
634+
; CHECK-NEXT: PseudoVSUXEI8_V_M1_M1 %y, $noreg, %x, 1, 3 /* e8 */
635+
%x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 4 /* e16 */, 0
636+
%y:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
637+
PseudoVSUXEI8_V_M1_M1 %y, $noreg, %x, 1, 3 /* e8 */
638+
...
639+
---
640+
name: vsuxeiN_v_idx_incompatible_emul
641+
body: |
642+
bb.0:
643+
; CHECK-LABEL: name: vsuxeiN_v_idx_incompatible_emul
644+
; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0 /* tu, mu */
645+
; CHECK-NEXT: %y:vr = PseudoVADD_VV_MF2 $noreg, $noreg, $noreg, 1, 3 /* e8 */, 0 /* tu, mu */
646+
; CHECK-NEXT: PseudoVSUXEI8_V_MF2_MF2 %y, $noreg, %x, 1, 3 /* e8 */
647+
%x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
648+
%y:vr = PseudoVADD_VV_MF2 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0
649+
PseudoVSUXEI8_V_MF2_MF2 %y, $noreg, %x, 1, 3 /* e8 */
650+
...
651+
---
616652
name: vluxeiN_v
617653
body: |
618654
bb.0:
@@ -637,10 +673,10 @@ body: |
637673
%z:vr = PseudoVADD_VV_M1 $noreg, %y, $noreg, 1, 3 /* e8 */, 0
638674
...
639675
---
640-
name: vluxeiN_v_incompatible_emul
676+
name: vluxeiN_v_data_incompatible_emul
641677
body: |
642678
bb.0:
643-
; CHECK-LABEL: name: vluxeiN_v_incompatible_emul
679+
; CHECK-LABEL: name: vluxeiN_v_data_incompatible_emul
644680
; CHECK: %x:vr = PseudoVADD_VV_M1 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0 /* tu, mu */
645681
; CHECK-NEXT: %y:vr = PseudoVLUXEI8_V_MF2_MF2 $noreg, $noreg, %x, 1, 3 /* e8 */, 0 /* tu, mu */
646682
; CHECK-NEXT: %z:vr = PseudoVADD_VV_MF2 $noreg, %y, $noreg, 1, 3 /* e8 */, 0 /* tu, mu */
@@ -649,6 +685,18 @@ body: |
649685
%z:vr = PseudoVADD_VV_MF2 $noreg, %y, $noreg, 1, 3 /* e8 */, 0
650686
...
651687
---
688+
name: vluxeiN_v_idx_incompatible_emul
689+
body: |
690+
bb.0:
691+
; CHECK-LABEL: name: vluxeiN_v_idx_incompatible_emul
692+
; CHECK: %x:vr = PseudoVADD_VV_MF2 $noreg, $noreg, $noreg, -1, 4 /* e16 */, 0 /* tu, mu */
693+
; CHECK-NEXT: %y:vr = PseudoVLUXEI8_V_MF2_MF2 $noreg, $noreg, %x, 1, 3 /* e8 */, 0 /* tu, mu */
694+
; CHECK-NEXT: %z:vr = PseudoVADD_VV_MF2 $noreg, %y, $noreg, 1, 3 /* e8 */, 0 /* tu, mu */
695+
%x:vr = PseudoVADD_VV_MF2 $noreg, $noreg, $noreg, -1, 4 /* e16 */, 0
696+
%y:vr = PseudoVLUXEI8_V_MF2_MF2 $noreg, $noreg, %x, 1, 3 /* e8 */, 0
697+
%z:vr = PseudoVADD_VV_MF2 $noreg, %y, $noreg, 1, 3 /* e8 */, 0
698+
...
699+
---
652700
name: vmop_mm_incompatible_eew
653701
body: |
654702
bb.0:

0 commit comments

Comments
 (0)