On Mon, Nov 26, 2018 at 11:36:47AM -0600, Kyrill Tkachov wrote:
> Hi all,
> 
> On some cores the X-register MADD/MSUB (and hence MUL and MNEG) instructions 
> may behave differently
> than the W-register forms and the scheduling models may want to reflect that.
> That is currently not possible because both sizes use the mla scheduling type.
> 
> This patch introduces the mla64 type that is used to represent the 64-bit 
> MADD,MSUB,MUL,MNEG instructions.
> It annotates the necessary aarch64.md patterns and updates the existing 
> aarch64 scheduling models to handle it.
> It is currently handled the same way as the 32-bit forms so as not to 
> introduce a difference in behaviour.
> However, now we have the freedom to model it differently, if we so choose.
> Sameera, Steve, Philipp, this is an FYI that you can update the relevant .md 
> files to model these instructions
> in a more precise way, if warranted (if this is approved.)
> 
> Bootstrapped and tested on aarch64-none-linux (and tested on arm-none-eabi).
> 
> Ok for trunk?

OK for AArch64. You can self-approve the Arm part.

James

> 2018-11-26  Kyrylo Tkachov  <kyrylo.tkac...@arm.com>
> 
>      * config/arm/types.md (mla64): New type.
>      * config/arm/xgene1.md: Handle mla64.
>      * config/arm/cortex-a57.md: Likewise.
>      * config/arm/cortex-a53.md: Likewise.
>      * config/aarch64/thunderx2t99.md: Likewise.
>      * config/aarch64/thunderx.md: Likewise.
>      * config/aarch64/falkor.md: Likewise.
>      * config/aarch64/saphira.md: Likewise.
>      * config/aarch64/iterators.md (is_64_suf): New mode attribute.
>      * config/aarch64/aarch64.md (mul<mode>3): Use is_64_suf in type.
>      (madd<mode>): Likewise.
>      (*msub<mode>): Likewise.
>      (*mul<mode>_neg): Likewise.

Reply via email to