[RISCV] Use movImm went multiplying by simm12 in getVLENFactoredAmount.

No reason to special case simm12, movImm handles all immediates.

This also fixe a bug that we weren't passing the frame-setup/destroy
flag to movImm when we were calling it.
This commit is contained in:
Craig Topper 2022-05-04 17:19:43 -07:00
parent 640f1e0829
commit 60cb489685
2 changed files with 4 additions and 11 deletions

View File

@ -1816,14 +1816,7 @@ Register RISCVInstrInfo::getVLENFactoredAmount(MachineFunction &MF,
.setMIFlag(Flag);
} else {
Register N = MRI.createVirtualRegister(&RISCV::GPRRegClass);
if (!isInt<12>(NumOfVReg))
movImm(MBB, II, DL, N, NumOfVReg);
else {
BuildMI(MBB, II, DL, get(RISCV::ADDI), N)
.addReg(RISCV::X0)
.addImm(NumOfVReg)
.setMIFlag(Flag);
}
movImm(MBB, II, DL, N, NumOfVReg, Flag);
if (!STI.hasStdExtM())
MF.getFunction().getContext().diagnose(DiagnosticInfoUnsupported{
MF.getFunction(),

View File

@ -83,14 +83,14 @@ body: |
; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa $x8, 0
; CHECK-NEXT: $x2 = frame-setup ADDI $x2, -272
; CHECK-NEXT: $x10 = frame-setup PseudoReadVLENB
; CHECK-NEXT: $x11 = frame-setup ADDI $x0, 51
; CHECK-NEXT: $x11 = frame-setup ADDI killed $x0, 51
; CHECK-NEXT: $x10 = frame-setup MUL killed $x10, killed $x11
; CHECK-NEXT: $x2 = frame-setup SUB $x2, killed $x10
; CHECK-NEXT: $x2 = frame-setup ANDI $x2, -128
; CHECK-NEXT: dead renamable $x15 = PseudoVSETIVLI 1, 72 /* e16, m1, ta, mu */, implicit-def $vl, implicit-def $vtype
; CHECK-NEXT: renamable $v25 = PseudoVMV_V_X_M1 killed renamable $x12, $noreg, 4 /* e16 */, implicit $vl, implicit $vtype
; CHECK-NEXT: $x11 = PseudoReadVLENB
; CHECK-NEXT: $x10 = ADDI $x0, 50
; CHECK-NEXT: $x10 = ADDI killed $x0, 50
; CHECK-NEXT: $x11 = MUL killed $x11, killed $x10
; CHECK-NEXT: $x10 = LUI 1
; CHECK-NEXT: $x10 = ADDIW killed $x10, -1888
@ -132,7 +132,7 @@ body: |
; CHECK-NEXT: dead renamable $x13 = PseudoVSETIVLI 1, 64 /* e8, m1, ta, mu */, implicit-def $vl, implicit-def $vtype
; CHECK-NEXT: renamable $x13 = nsw ADDI renamable $x16, -2
; CHECK-NEXT: $x5 = PseudoReadVLENB
; CHECK-NEXT: $x1 = ADDI $x0, 50
; CHECK-NEXT: $x1 = ADDI killed $x0, 50
; CHECK-NEXT: $x5 = MUL killed $x5, killed $x1
; CHECK-NEXT: $x1 = LUI 1
; CHECK-NEXT: $x1 = ADDIW killed $x1, -1888