[llvm] [X86][GlobalISel] Support fp80 for G_FPTRUNC and G_FPEXT (PR #141611)

Evgenii Kudriashov via llvm-commits llvm-commits at lists.llvm.org
Tue May 27 07:50:32 PDT 2025


e-kud wrote:

> > We intentionally omit s32->s64 and s64->s32 variants of stores and loads for X87 because during legalization we can't determine whether it is a floating point store or an integer one.
> 
> But you shouldn't need this? The FP-ness should be encoded in the load/store directly. i.e. are we missing FP ext load and store?

Yes, we don't have them: https://github.com/llvm/llvm-project/blob/062353d1f506f9a381030b099e4dee23b84d5501/llvm/include/llvm/Target/GenericOpcodes.td#L1250 
IIUC it should be resolved once FP types are added https://discourse.llvm.org/t/rfc-globalisel-adding-fp-type-information-to-llt/83349. After this LLT types will show whether store or load is a float or integer operation. And MMO will show whether it is extending or truncating.

https://github.com/llvm/llvm-project/pull/141611


More information about the llvm-commits mailing list