diff options
author | Craig Topper <craig.topper@sifive.com> | 2024-12-10 22:21:49 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-10 22:21:49 -0800 |
commit | 839c8217b989a22908fdd1ec48105ff22d655fb2 (patch) | |
tree | 3141a825916a58c35412596db397a8ec842f5a73 /llvm/lib/CodeGen/MachineBasicBlock.cpp | |
parent | 5797ed660ab0c1847bd6229af262f841b2f753ae (diff) | |
download | llvm-839c8217b989a22908fdd1ec48105ff22d655fb2.zip llvm-839c8217b989a22908fdd1ec48105ff22d655fb2.tar.gz llvm-839c8217b989a22908fdd1ec48105ff22d655fb2.tar.bz2 |
[LegalizeTypes][RISCV][X86] Legalize FP_ROUND to libcall in SoftPromoteHalfRes_FP_ROUND if the input type is softened. (#119481)
Previously we created an FP_TO_FP16 and legalized it in
SoftenFloatOp_FP_ROUND. This caused i16 to be sent to call lowering
instead of f16. This results in the ABI not being followed if f16 is
supposed to be passed in a different register than i16.
Looking at the libgcc binary for the library function it appears the value
is returned in xmm0 so the X86 test was being miscompiled before.
Fixes #107607.
Diffstat (limited to 'llvm/lib/CodeGen/MachineBasicBlock.cpp')
0 files changed, 0 insertions, 0 deletions