The VLMaxSentinel is represented as TargetConstant, but that's included
in isa<ConstantSDNode>. To keep constant VLs and VLMax separate as long
as possible use the X0 register during lowering and only convert to
VLMaxSentinel during isel.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
To clarify I understand the motivation of this: lowering won't have to special case every constant in the AVL operand just in case it is VLMaxSentinel, right?
If this is the intent, LGTM.
Comment Actions
Thanks for a clarifying; I was also unsure as to the motivation, if I'm honest. LGTM too.
llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td | ||
---|---|---|
652–653 | I was curious when this landed: can't we use true_mask here? If the length of this vmset isn't VLMax we can still choose the undefined lanes to be 1, can't we? |
I was curious when this landed: can't we use true_mask here? If the length of this vmset isn't VLMax we can still choose the undefined lanes to be 1, can't we?