[PATCH] D122563: [RISCV] Add DAGCombine to fold base operation and reduction.

Yeting Kuo via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 14 02:57:10 PDT 2022


fakepaper56 added a comment.

In D122563#3438080 <https://reviews.llvm.org/D122563#3438080>, @craig.topper wrote:

> -Do we currently mark VP_REDUCE nodes as Expand on targets that don't support it? I don't see anything in TargetLoweringBase::initActions, but maybe I missed it. I think we would need that fixed to know if we could do the combine so that we only do it on targets that support it.

`VP_REDUCE` nodes are marked as Custom. `VP_REDUCE` opcodes are elements of `IntegerVPOps` and `FloatingPointVPOps`.

> -What would we use for VL for the VP_REDUCE from a generic combine? vscale * known minimum element count? Then we'd need to detect that and replace it with RISCV::X0 for RISCV?

I have another question. If we want to transform `VECREDUCE` to `VP_REDUCE` before legalization,  how to represent VL for `<vscale x 16 x i64>`?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D122563



More information about the llvm-commits mailing list