aarch64: Move vmull_<high_>* to intrinsics
commit71c82d0e18de01a3b439a77f0e28ae8c0d5247b5
authorJames Greenhalgh <james.greenhalgh@arm.com>
Tue, 18 Feb 2020 14:45:49 +0000 (18 14:45 +0000)
committerRichard Sandiford <richard.sandiford@arm.com>
Tue, 18 Feb 2020 21:25:33 +0000 (18 21:25 +0000)
tree7c2ffb1ce1aa570fd17ceae865f1bb1861fb440d
parentb02719918d7bfa224b7caa38fdb9be095cd3f4ad
aarch64: Move vmull_<high_>* to intrinsics

Move some arm_neon.h functions which currently use assembly over
to intrinsics.

2020-02-18  James Greenhalgh  <james.greenhalgh@arm.com>

gcc/
* config/aarch64/aarch64-simd-builtins.def
(intrinsic_vec_smult_lo_): New.
(intrinsic_vec_umult_lo_): Likewise.
(vec_widen_smult_hi_): Likewise.
(vec_widen_umult_hi_): Likewise.
* config/aarch64/aarch64-simd.md
(aarch64_intrinsic_vec_<su>mult_lo_<mode>): New.
* config/aarch64/arm_neon.h (vmull_high_s8): Use intrinsics.
(vmull_high_s16): Likewise.
(vmull_high_s32): Likewise.
(vmull_high_u8): Likewise.
(vmull_high_u16): Likewise.
(vmull_high_u32): Likewise.
(vmull_s8): Likewise.
(vmull_s16): Likewise.
(vmull_s32): Likewise.
(vmull_u8): Likewise.
(vmull_u16): Likewise.
(vmull_u32): Likewise.

gcc/testsuite/
* gcc.target/aarch64/vmull_high.c: New.
gcc/ChangeLog
gcc/config/aarch64/aarch64-simd-builtins.def
gcc/config/aarch64/aarch64-simd.md
gcc/config/aarch64/arm_neon.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/vmull_high.c [new file with mode: 0644]