Hi all,

This patch reimplements the vabal intrinsics with builtins.
The RTL pattern is cleaned up to emit the right .8b suffixes for the inputs 
(though .16b is also accepted)
and iterate over the right modes. The pattern's only other use is through the 
sadv16qi expander, which is adjusted.

I've verified that the codegen for sadv16qi is not worse off.

Bootstrapped and tested on aarch64-none-linux-gnu and aarch64_be-none-elf.
Pushing to trunk.

Thanks,
Kyrill

gcc/ChangeLog:

        * config/aarch64/aarch64-simd-builtins.def (sabal): Define builtin.
        (uabal): Likewise.
        * config/aarch64/aarch64-simd.md (aarch64_<sur>abal<mode>_4): Rename 
to...
        (aarch64_<sur>abal<mode>): ... This
        (<sur>sadv16qi): Adust use of the above.
        * config/aarch64/arm_neon.h (vabal_s8): Reimplement using builtin.
        (vabal_s16): Likewise.
        (vabal_s32): Likewise.
        (vabal_u8): Likewise.
        (vabal_u16): Likewise.
        (vabal_u32): Likewise.

Attachment: vabal.patch
Description: vabal.patch

Reply via email to