aarch64: Reimplement vabd* intrinsics using builtins
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>
Thu, 7 Jan 2021 15:09:43 +0000 (15:09 +0000)
committerKyrylo Tkachov <kyrylo.tkachov@arm.com>
Fri, 8 Jan 2021 10:29:25 +0000 (10:29 +0000)
commit79db5945ade4480d7500dac6bea64f49331e0cde
treef6b32cee19e9332b2a8e7bef46f3357fca41c57c
parentcab822d4ea7694e7c77fd713ebcfde66ba6e2c25
aarch64: Reimplement vabd* intrinsics using builtins

This patch reimplements the vabd* intrinsics using RTL builtins.
It's fairly straightforward with new builtins + arm_neon.h changes.

gcc/
* config/aarch64/aarch64-simd.md (aarch64_<su>abd<mode>_3):
Rename to...
(aarch64_<su>abd<mode>): ... This.
(<sur>sadv16qi): Adjust callsite of the above.
* config/aarch64/aarch64-simd-builtins.def (sabd, uabd): Define
builtins.
* config/aarch64/arm_neon.h (vabd_s8): Reimplement using
builtin.
(vabd_s16): Likewise.
(vabd_s32): Likewise.
(vabd_u8): Likewise.
(vabd_u16): Likewise.
(vabd_u32): Likewise.
(vabdq_s8): Likewise.
(vabdq_s16): Likewise.
(vabdq_s32): Likewise.
(vabdq_u8): Likewise.
(vabdq_u16): Likewise.
(vabdq_u32): Likewise.
gcc/config/aarch64/aarch64-simd-builtins.def
gcc/config/aarch64/aarch64-simd.md
gcc/config/aarch64/arm_neon.h