Hi all,

This patch reimplements the vabal_high* intrinsics using RTL builtins.
It's straightforward, defining new unspecs and a new pattern.

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

Pushing to master.
Thanks,
Kyrill

gcc/ChangeLog:

        * config/aarch64/aarch64-simd-builtins.def (sabal2): Define builtin.
        (uabal2): Likewise.
        * config/aarch64/aarch64-simd.md (aarch64_<sur>abal2<mode>): New 
pattern.
        * config/aarch64/aarch64.md (unspec): Add UNSPEC_SABAL2 and 
UNSPEC_UABAL2.
        * config/aarch64/arm_neon.h (vabal_high_s8): Reimplement using builtin.
        (vabal_high_s16): Likewise.
        (vabal_high_s32): Likewise.
        (vabal_high_u8): Likewise.
        (vabal_high_u16): Likewise.
        (vabal_high_u32): Likewise.
        * config/aarch64/iterators.md (ABAL2): New mode iterator.
        (sur): Handle UNSPEC_SABAL2, UNSPEC_UABAL2.

Attachment: vabal-hi.patch
Description: vabal-hi.patch

Reply via email to