[PATCH] D107657: [RISCV][VP] Add support for VP_REDUCE_* operations

Fraser Cormack via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 10 09:25:13 PDT 2021


frasercrmck added inline comments.


================
Comment at: llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp:2115
+SDValue DAGTypeLegalizer::PromoteIntOp_VP_REDUCE(SDNode *N, unsigned OpNo) {
+  SDLoc DL(N);
+  SDValue Op = PromoteIntOpVectorReduction(N, N->getOperand(OpNo));
----------------
craig.topper wrote:
> What values of OpNo do we expect here? 0 shouldn't happen since it was handled in result promotion. 1 clearly will happen. I'm not sure about 2 and 3, but using PromoteIntOpVectorReduction for them would be incorrect.
Yeah you're right, thanks. I think 0 is out of the runnings after the latest round of changes. I don't think we can get 3 because EVL is promoted early to a target-specific type which is assumed/required to be legal.

So yeah, looking at the handling of `MGATHER` I think I need to update this function to handle the mask at `OpNo` 2. We won't have tests for it but I can maybe manufacture something locally to make sure it's not obviously bad.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D107657/new/

https://reviews.llvm.org/D107657



More information about the llvm-commits mailing list