[PATCH] D95214: [RISCV]A bug when llc -O0 vfmv.f.s.ll

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 22 19:30:42 PST 2021


craig.topper added a comment.

In D95214#2517296 <https://reviews.llvm.org/D95214#2517296>, @StephenFan wrote:

> In D95214#2517277 <https://reviews.llvm.org/D95214#2517277>, @craig.topper wrote:
>
>> @StephenFan  thank you for the bug report. I had a feeling that converting FPR32 to FPR64 with a SUBREG_TO_REG could cause a problem.
>
> I have a question that why not make the scalar float point as FPR64 (not FPR32) then when encounter the FPR32  or FPR16, use the EXTRACT_SUBREG opcode.

If you look at the current output for the fpr-spill-scalar.ll test added in D95234 <https://reviews.llvm.org/D95234>, you'll see that we would generate a 8 byte spill slot for float and half if we use FPR64. But the instruction to store an 8 byte F register isn't supported without the D extension.

In D95214#2517296 <https://reviews.llvm.org/D95214#2517296>, @StephenFan wrote:

> In D95214#2517277 <https://reviews.llvm.org/D95214#2517277>, @craig.topper wrote:
>
>> @StephenFan  thank you for the bug report. I had a feeling that converting FPR32 to FPR64 with a SUBREG_TO_REG could cause a problem.
>
> I have a question that why not make the scalar float point as FPR64 (not FPR32) then when encounter the FPR32  or FPR16, use the EXTRACT_SUBREG opcode.




Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D95214/new/

https://reviews.llvm.org/D95214



More information about the llvm-commits mailing list