The patch also adds expandVPCTLZ and expandVPCTTZ to expand vp.ctlz/cttz nodes
and the cost model of vp.ctlz/cttz.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/docs/LangRef.rst | ||
---|---|---|
22326 | llvm.cttz has 2 arguments. The second is an i1 the indicates the behavior for 0. Do we need that for vectors? |
llvm/lib/Target/RISCV/RISCVISelLowering.cpp | ||
---|---|---|
687 | Do you intend to have a VP_CTLZ_ZERO_UNDEF and VP_CTTZ_ZERO_UNDEF? |
Comment Actions
I think I need to implement the is_zero_poison for vp.ctlz/cttz. I missed it because I thought llvm.ctlz and llvm.cttz have same interfaces as llvm.ctpop. I will update the revision soon.
llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | ||
---|---|---|
7788 ↗ | (On Diff #484490) | Would it be better to skip Immarg argument in the below Request operands loop? |
llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | ||
---|---|---|
7441 ↗ | (On Diff #484719) | The name of this variable is confusing. It's called IsZeroUndef but you select ISD::VP_CTLZ when the bool is true. |
llvm.cttz has 2 arguments. The second is an i1 the indicates the behavior for 0. Do we need that for vectors?