forked from OSchip/llvm-project
[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:
parent
640f1e0829
commit
60cb489685
|
@ -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(),
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue