aboutsummaryrefslogtreecommitdiff
path: root/libcpp
diff options
context:
space:
mode:
authorDennis Zhang <denzha01@e124712.cambridge.arm.com>2020-11-03 16:56:02 +0000
committerDennis Zhang <denzha01@e124712.cambridge.arm.com>2020-11-03 16:56:02 +0000
commit3553c658533e430b232997bdfd97faf6606fb102 (patch)
tree366d78e9ad002496d287d08adc51592a9e584d0a /libcpp
parentcee45e49126d18fe2dc8efc83c190662cd41914d (diff)
downloadgcc-3553c658533e430b232997bdfd97faf6606fb102.zip
gcc-3553c658533e430b232997bdfd97faf6606fb102.tar.gz
gcc-3553c658533e430b232997bdfd97faf6606fb102.tar.bz2
aarch64: intrinsics extract half of bf16 vector
This patch implements ACLE intrinsics vget_low_bf16 and vget_high_bf16 to extract lower or higher half from a bfloat16x8 vector. The vget_high_bf16 is done by 'dup' instruction. The vget_low_bf16 is just to return the lower half of a vector register. Tests include both big- and little-endian cases. gcc/ChangeLog: 2020-11-03 Dennis Zhang <dennis.zhang@arm.com> * config/aarch64/aarch64-simd-builtins.def (vget_lo_half): New entry. (vget_hi_half): Likewise. * config/aarch64/aarch64-simd.md (aarch64_vget_lo_halfv8bf): New entry. (aarch64_vget_hi_halfv8bf): Likewise. * config/aarch64/arm_neon.h (vget_low_bf16): New intrinsic. (vget_high_bf16): Likewise. gcc/testsuite/ChangeLog * gcc.target/aarch64/advsimd-intrinsics/bf16_get.c: New test. * gcc.target/aarch64/advsimd-intrinsics/bf16_get-be.c: New test.
Diffstat (limited to 'libcpp')
0 files changed, 0 insertions, 0 deletions