[llvm] r192908 - [AArch64] Add support for NEON scalar three register different instruction

mcrosier at codeaurora.org mcrosier at codeaurora.org
Mon Oct 21 13:20:20 PDT 2013


Hi Tim,
I've added the constraints in r193117/r193118, but I'm not sure I follow
your point about replacing the mla/mls with "(vqadd accum, (vqdmull lhs,
rhs))."  Are you suggesting a combine?  Please expound on your point when
you have a moment.  Thanks again for the feedback.

 Chad

> Hi Chad,
>
> I think you've missed the Constraint field again. The mla/mls versions
> both read and write the destination (accumulator).
>
> Once that's been accounted for you can replace these:
>
>> +// Signed Saturating Doubling Multiply-Add Long
>> +def int_aarch64_neon_vqdmlal : Neon_2Arg_Long_Intrinsic;
>> +
>> +// Signed Saturating Doubling Multiply-Subtract Long
>> +def int_aarch64_neon_vqdmlsl : Neon_2Arg_Long_Intrinsic;
>
> with the two operations "(vqadd accum, (vqdmull lhs, rhs))". If you
> don't have an appropriate scalar "vqadd" you'll be needing one soon
> anyway so it's probably best to just add it.
>
> Cheers.
>
> Tim.
>





More information about the llvm-commits mailing list