[llvm] [X86][GlobalIsel] Support IS_FP_CLASS intrinsic 1/4 (PR #151084)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 5 06:54:25 PDT 2025


================
@@ -853,10 +857,236 @@ bool X86LegalizerInfo::legalizeGETROUNDING(MachineInstr &MI,
   auto RetValTrunc = MIRBuilder.buildZExtOrTrunc(DstTy, RetVal);
 
   MIRBuilder.buildCopy(Dst, RetValTrunc);
+  MI.eraseFromParent();
+  return true;
+}
+
+bool X86LegalizerInfo::expandFPClassTestForF32OrF64(
+    MachineInstr &MI, MachineRegisterInfo &MRI, LegalizerHelper &Helper) const {
+  MachineIRBuilder &MIRBuilder = Helper.MIRBuilder;
+  auto [DstReg, DstTy, SrcReg, SrcTy] = MI.getFirst2RegLLTs();
+  FPClassTest Test = static_cast<FPClassTest>(MI.getOperand(2).getImm());
+  assert(!SrcTy.isVector() && "G_IS_FPCLASS does not support vectors yet");
----------------
arsenm wrote:

This should not be an assertion. You can always trivially scalarize in the rules, or return false to fallback 

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


More information about the llvm-commits mailing list