]> git.ipfire.org Git - thirdparty/gcc.git/commit
aarch64: Use type-qualified builtins for vcombine_* Neon intrinsics
authorJonathan Wright <jonathan.wright@arm.com>
Wed, 10 Nov 2021 15:16:24 +0000 (15:16 +0000)
committerJonathan Wright <jonathan.wright@arm.com>
Thu, 11 Nov 2021 15:34:52 +0000 (15:34 +0000)
commite1b218d1748136d02c99a5e5f3f664e9c5a563ed
treeb97ecae894d211287d90f59571068963f0b6ef45
parent1716ddd1e9e7a5c63062e07ac3ca41364fea9917
aarch64: Use type-qualified builtins for vcombine_* Neon intrinsics

Declare unsigned and polynomial type-qualified builtins for
vcombine_* Neon intrinsics. Using these builtins removes the need for
many casts in arm_neon.h.

gcc/ChangeLog:

2021-11-10  Jonathan Wright  <jonathan.wright@arm.com>

* config/aarch64/aarch64-builtins.c (TYPES_COMBINE): Delete.
(TYPES_COMBINEP): Delete.
* config/aarch64/aarch64-simd-builtins.def: Declare type-
qualified builtins for vcombine_* intrinsics.
* config/aarch64/arm_neon.h (vcombine_s8): Remove unnecessary
cast.
(vcombine_s16): Likewise.
(vcombine_s32): Likewise.
(vcombine_f32): Likewise.
(vcombine_u8): Use type-qualified builtin and remove casts.
(vcombine_u16): Likewise.
(vcombine_u32): Likewise.
(vcombine_u64): Likewise.
(vcombine_p8): Likewise.
(vcombine_p16): Likewise.
(vcombine_p64): Likewise.
(vcombine_bf16): Remove unnecessary cast.
* config/aarch64/iterators.md (VD_I): New mode iterator.
(VDC_P): New mode iterator.
gcc/config/aarch64/aarch64-builtins.c
gcc/config/aarch64/aarch64-simd-builtins.def
gcc/config/aarch64/arm_neon.h
gcc/config/aarch64/iterators.md