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

luxufan via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 22 19:36:41 PST 2021


StephenFan added a comment.

In D95214#2517303 <https://reviews.llvm.org/D95214#2517303>, @craig.topper wrote:

> 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.

Get it.


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