aarch64: Reimplement vabdl_high* intrinsics using builtins
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>
Fri, 29 Jan 2021 13:10:46 +0000 (13:10 +0000)
committerKyrylo Tkachov <kyrylo.tkachov@arm.com>
Fri, 29 Jan 2021 13:49:19 +0000 (13:49 +0000)
commit9b588cfb4288ef41eb59edc6ab8cb83056b3b6a4
treeeabd274e2c16c87769a72cace42d6e96ebd5aff7
parent9f499a86b29507e9afbb28dde537ee2609859510
aarch64: Reimplement vabdl_high* intrinsics using builtins

This patch reimplements the vabdl_high intrinsics using builtins.
It slightly cleans up the RTL pattern (the mode iterators) but nothing
interesting apart from that.

gcc/ChangeLog:

* config/aarch64/aarch64-simd-builtins.def (sabdl2, uabdl2):
Define builtins.
* config/aarch64/aarch64-simd.md (aarch64_<sur>abdl2<mode>_3):
Rename to...
(aarch64_<sur>abdl2<mode>): ... This.
(<sur>sadv16qi): Adjust use of above.
* config/aarch64/arm_neon.h (vabdl_high_s8): Reimplement using
builtin.
(vabdl_high_s16): Likewise.
(vabdl_high_s32): Likewise.
(vabdl_high_u8): Likewise.
(vabdl_high_u16): Likewise.
(vabdl_high_u32): Likewise.
gcc/config/aarch64/aarch64-simd-builtins.def
gcc/config/aarch64/aarch64-simd.md
gcc/config/aarch64/arm_neon.h