[PATCH] AArch64 Neon scalar saturating accumulated of unsigned value instructions
mcrosier at codeaurora.org
mcrosier at codeaurora.org
Tue Oct 8 08:51:38 PDT 2013
> Hi Chad,
>
>> This patch is for scalar saturating accmulated of unsigned value
>> (SUQADD/USQADD). According to the documentation I have it only has two
>> operands, one input and one output, but perhaps I'm missing something.
>
> There's only two registers in the assembly, but the destination is an
> accumulator. Ignoring saturation they calculate "Rd = Rd + Rn" and for
> CodeGen purposes (and to actually be useful as intrinsics) LLVM has to
> know what the LHS is. Think about "return vuqaddb_s8(a);". What's
> being added to 'a'?
>
> This is usually handled by having instructions and intrinsics with all
> 3 operands and then using "let Constraints = "..." on the Instructions
> so that the register-allocator knows that "lhs" and "val" actually
> have to be in the same register.
That was the part I was missing. Thank you for the clarification. Should
be fairly straight forward to fix. Thanks, Tim.
> Cheers.
>
> Tim.
>
More information about the llvm-commits
mailing list