================ @@ -7071,14 +7071,23 @@ static SDValue LowerAsSplatVectorLoad(SDValue SrcOp, MVT VT, const SDLoc &dl, } // Recurse to find a LoadSDNode source and the accumulated ByteOffest. -static bool findEltLoadSrc(SDValue Elt, LoadSDNode *&Ld, int64_t &ByteOffset) { - if (ISD::isNON_EXTLoad(Elt.getNode())) { - auto *BaseLd = cast<LoadSDNode>(Elt); - if (!BaseLd->isSimple()) - return false; - Ld = BaseLd; - ByteOffset = 0; - return true; +template <typename T> +static bool findEltLoadSrc(SDValue Elt, T *&Ld, int64_t &ByteOffset) { ---------------- RKSimon wrote:
Can't you just replace the LoadSDNode with MemSDNode and use dyn_cast as necessary? https://github.com/llvm/llvm-project/pull/120640 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits