[PATCH] D70867: [FPEnv] [PowerPC] Alternative lowering ppc_fp128 StrictFP Nodes to libcalls

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 3 11:10:44 PST 2019


craig.topper marked an inline comment as done.
craig.topper added inline comments.


================
Comment at: llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp:1405
+    Hi = DAG.getNode(ISD::STRICT_FP_EXTEND, dl, { NVT, MVT::Other },
+                     { N->getOperand(0), N->getOperand(1) });
+  else
----------------
uweigand wrote:
> Do we need to short-circuit this if the source type is already double (like below in the FP_ROUND case)?
We do. The test accidentally worked without failing because isel isn't doing full type checking of this pattern

def : Pat<(f64 (fpextend f32:$src)),
          (COPY_TO_REGCLASS $src, SPERC)>;
}

The type constraint says the input must be smaller than the output and f32 is the only legal type smaller than f64. So I think it just checked the f64 result type and skipped the input type check.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D70867/new/

https://reviews.llvm.org/D70867





More information about the llvm-commits mailing list