[llvm] [X86][GlobalISel] Added support for FNEG (PR #167919)

Evgenii Kudriashov via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 17 01:47:37 PDT 2026


================
@@ -109,6 +109,9 @@ struct X86OutgoingValueHandler : public CallLowering::OutgoingValueHandler {
                         const CCValAssign &VA) override {
     MIB.addUse(PhysReg, RegState::Implicit);
     Register ExtReg = extendRegister(ValVReg, VA);
+    if ((VA.getLocReg() == X86::FP0 || VA.getLocReg() == X86::FP1) &&
+        STI.getTargetLowering()->isScalarFPTypeInSSEReg(VA.getValVT()))
+      ExtReg = MIRBuilder.buildFPExt(LLT::scalar(80), ExtReg).getReg(0);
----------------
e-kud wrote:

@arsenm, AFAIK @JaydeepChauhan14 has experimented with moving this case into calling conventions but it will create more explicit `G_FPEXT` that need to be handled for `fp80` type which returns us to https://github.com/llvm/llvm-project/pull/141611.

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


More information about the llvm-commits mailing list