aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-data-ref.c
diff options
context:
space:
mode:
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>2021-01-12 10:07:19 +0000
committerKyrylo Tkachov <kyrylo.tkachov@arm.com>2021-01-14 08:36:19 +0000
commitc7f1ff01a2342ffd2873528018e5c3650b791d7e (patch)
tree26df14b4c978d2685b68214e74c7670a2ed3d3c4 /gcc/tree-data-ref.c
parentbe0851b8e934dfe95881f97dcf98518f92e7508c (diff)
downloadgcc-c7f1ff01a2342ffd2873528018e5c3650b791d7e.zip
gcc-c7f1ff01a2342ffd2873528018e5c3650b791d7e.tar.gz
gcc-c7f1ff01a2342ffd2873528018e5c3650b791d7e.tar.bz2
aarch64: Reimplement vmovn_high_* intrinsics using builtins
The vmovn_high* intrinsics are supposed to map to XTN2 instructions that narrow their source vector and instert it into the top half of the destination vector. This patch reimplements them away from inline assembly to an RTL builtin that performs a vec_concat with a truncate. gcc/ * config/aarch64/aarch64-simd.md (aarch64_xtn2<mode>_le): Define. (aarch64_xtn2<mode>_be): Likewise. (aarch64_xtn2<mode>): Likewise. * config/aarch64/aarch64-simd-builtins.def (xtn2): Define builtins. * config/aarch64/arm_neon.h (vmovn_high_s16): Reimplement using builtins. (vmovn_high_s32): Likewise. (vmovn_high_s64): Likewise. (vmovn_high_u16): Likewise. (vmovn_high_u32): Likewise. (vmovn_high_u64): Likewise. gcc/testsuite/ * gcc.target/aarch64/narrow_high-intrinsics.c: Adjust scan-assembler-times for xtn2.
Diffstat (limited to 'gcc/tree-data-ref.c')
0 files changed, 0 insertions, 0 deletions