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.
vabal-hi.patch
Description: vabal-hi.patch