aarch64: Reimplement vaba* intrinsics using builtins
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>
Thu, 7 Jan 2021 14:49:08 +0000 (14:49 +0000)
committerKyrylo Tkachov <kyrylo.tkachov@arm.com>
Fri, 8 Jan 2021 10:29:25 +0000 (10:29 +0000)
commitcab822d4ea7694e7c77fd713ebcfde66ba6e2c25
tree98b711f8a0199729b87f8837ff2d3ff7125bcbbf
parentc9d25aa7489fd478098e0ef098438e797d597d3b
aarch64: Reimplement vaba* intrinsics using builtins

This patch reimplements the vaba* arm_neon.h intrinsics using RTL
builtins that expand to proper RTL patterns
rather than using inline asm.
The implementation is fairly straightforward by defining new builtins
and using them in the header.

gcc/
* config/aarch64/aarch64-simd-builtins.def (saba, uaba): Define
builtins.
* config/aarch64/arm_neon.h (vaba_s8): Implement using builtin.
(vaba_s16): Likewise.
(vaba_s32): Likewise.
(vaba_u8): Likewise.
(vaba_u16): Likewise.
(vaba_u32): Likewise.
(vabaq_s8): Likewise.
(vabaq_s16): Likewise.
(vabaq_s32): Likewise.
(vabaq_u8): Likewise.
(vabaq_u16): Likewise.
(vabaq_u32): Likewise.
gcc/config/aarch64/aarch64-simd-builtins.def
gcc/config/aarch64/arm_neon.h