[PATCH] D141693: [AArch64] turn extended vecreduce bigger than v16i8 into udot/sdot
Dave Green via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jan 31 00:09:40 PST 2023
dmgreen accepted this revision.
dmgreen added a comment.
This revision is now accepted and ready to land.
Thanks for the updates. This looks very general now. I you agree with the comment about the offset, then this LGTM with that change.
================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:15287
+ DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, MVT::v8i8, A.getOperand(0),
+ DAG.getConstant(I * 8, DL, MVT::i64));
+ SDValue Vec8Op1 = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, MVT::v8i8, B,
----------------
zjaffal wrote:
> dmgreen wrote:
> > -> `I * 16`
> this is for extracting the v8 chuck I think it should be 8 not 16
I was thinking this should be 16 because we have extracted `I` lots of v16 chunk above, and so should be going that far into the original vector. For example with 24x case should be getting this from offset `16` into the vector. (So in the tests it should be from an `ldr d` after the existing `ldr q`. They currently use an ext from the vector).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D141693/new/
https://reviews.llvm.org/D141693
More information about the llvm-commits
mailing list