aarch64: Reimplement vmovl*/vmovn* intrinsics using __builtin_convertvector
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>
Fri, 8 Jan 2021 13:20:49 +0000 (13:20 +0000)
committerKyrylo Tkachov <kyrylo.tkachov@arm.com>
Mon, 11 Jan 2021 09:12:22 +0000 (09:12 +0000)
commit64dc013853b5a414bfe70727010942e3f872c402
treefb2ba674df12bf74dd0e9f9448c92f03f56901e5
parent4e275dccfc2467b3fe39012a3dd2a80bac257dd0
aarch64: Reimplement vmovl*/vmovn* intrinsics using __builtin_convertvector

__builtin_convertvector seems well-suited to implementing the vmovl and
vmovn intrinsics that widen and narrow
the integer elements in a vector.

This removes some more inline assembly from the intrinsics.

gcc/
* config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
__builtin_convertvector.
(vmovl_s16): Likewise.
(vmovl_s32): Likewise.
(vmovl_u8): Likewise.
(vmovl_u16): Likewise.
(vmovl_u32): Likewise.
(vmovn_s16): Likewise.
(vmovn_s32): Likewise.
(vmovn_s64): Likewise.
(vmovn_u16): Likewise.
(vmovn_u32): Likewise.
(vmovn_u64): Likewise.
gcc/config/aarch64/arm_neon.h