[llvm] [AArch64] Lower extending sitofp using tbl (PR #92528)

David Green via llvm-commits llvm-commits at lists.llvm.org
Mon May 20 00:56:01 PDT 2024


================
@@ -17840,13 +17887,39 @@ static SDValue performVectorCompareAndMaskUnaryOpCombine(SDNode *N,
   return SDValue();
 }
 
+static SDValue performVectorIntToFpCombine(SDNode *N, SelectionDAG &DAG) {
+  if (N->getOpcode() != ISD::SINT_TO_FP || N->getValueType(0) != MVT::v4f32)
+    return SDValue();
+
+  SDNode *VASHR = N->getOperand(0).getNode();
+  if (VASHR->getOpcode() != AArch64ISD::VASHR ||
----------------
davemgreen wrote:

> Im not sure if this should be matched from shifts in general

I think the shift would need to be exact. https://alive2.llvm.org/ce/z/F9usML. From what I can tell we are trying to add this: https://alive2.llvm.org/ce/z/82h6nn, where the shift would be exact, but that wouldn't be true for other cases.

It would probably be good to get the scvtf_fixed working in one patch first with some testing, and have the tbl loop transform in a second.

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


More information about the llvm-commits mailing list