[PATCH] D141693: [AArch64] turn extended vecreduce bigger than v16i8 into udot/sdot

Zain Jaffal via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Jan 29 07:41:25 PST 2023


zjaffal added inline comments.


================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:15277
+  SDValue VecReduceAdd16 =
+      DAG.getNode(DotOpcode, DL, N->getValueType(0), ConcatSDot16);
+  unsigned VecReduce8Num = (Op0VT.getVectorNumElements() % 16) / 8;
----------------
dmgreen wrote:
> DotOpcode -> ISD::VECREDUCE_ADD I think?
yeah that is correct I will change it now


================
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,
----------------
dmgreen wrote:
> -> `I * 16`
this is for extracting the v8 chuck I think it should be 8 not 16


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