[llvm] [X86] Lower mathlib call ldexp into scalef when avx512 is enabled (PR #69710)

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 14 06:50:47 PST 2023


================
@@ -31814,6 +31820,45 @@ static StringRef getInstrStrFromOpNo(const SmallVectorImpl<StringRef> &AsmStrs,
   return StringRef();
 }
 
+static SDValue LowerFLDEXP(SDValue Op, SelectionDAG &DAG) {
+  SDValue X = Op.getOperand(0);
+  EVT XScalarTy = X.getValueType();
+  SDValue Exp = Op.getOperand(1);
+
+  SDLoc DL(Op);
+  EVT XVT, ExpVT;
+  SDValue IID;
+  switch (Op.getSimpleValueType().SimpleTy) {
+  default:
+    return SDValue();
+  case MVT::f16:
+    X = DAG.getNode(ISD::FP_EXTEND, DL, MVT::f32, X);
----------------
RKSimon wrote:

Could we use value tracking to check the bounds of the EXP operand?

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


More information about the llvm-commits mailing list