On 29/09/2022 10:24, Richard Sandiford wrote:
Otherwise:
operand0[0] = operand1 < operand2;
for (i = 1; i < operand3; i++)
operand0[i] = operand0[i - 1] && (operand1 + i < operand2);
looks like a "length and mask" operation, which IIUC is also what
RVV wanted? (Wasn't at the Cauldron, so not entirely sure.)
Perhaps the difference is that in this case the length must be constant.
(Or is that true for RVV as well?)
I too saw that presentation and I have compared notes with Juzhe before
posting this.
As he has posted, what they want is different because their config
register has an explicit length field whereas GCN just uses a mask to
limit the length (more like AArch64, I think).
The RVV solution uses different logic in the gimple IR; this proposal is
indistinguishable from the status quo at that point.
Andrew