aboutsummaryrefslogtreecommitdiff
path: root/libcpp
diff options
context:
space:
mode:
authorDennis Zhang <denzha01@e124712.cambridge.arm.com>2020-11-03 13:00:51 +0000
committerDennis Zhang <denzha01@e124712.cambridge.arm.com>2020-11-03 13:00:51 +0000
commitf7d6961126a7f06c8089d8a58bd21be43bc16806 (patch)
treef6ca6a1732decea47982001254f5e9df3572f9ef /libcpp
parent9d1b813d0f7c9a8d80b0aee6eb1418b0afdf0f84 (diff)
downloadgcc-f7d6961126a7f06c8089d8a58bd21be43bc16806.zip
gcc-f7d6961126a7f06c8089d8a58bd21be43bc16806.tar.gz
gcc-f7d6961126a7f06c8089d8a58bd21be43bc16806.tar.bz2
aarch64: ACLE intrinsics convert BF16 to Float32
This patch enables intrinsics to convert BFloat16 scalar and vector operands to Float32 modes. The intrinsics are implemented by shifting each BFloat16 item 16 bits to left using shl/shll/shll2 instructions. gcc/ChangeLog: 2020-11-03 Dennis Zhang <dennis.zhang@arm.com> * config/aarch64/aarch64-simd-builtins.def(vbfcvt): New entry. (vbfcvt_high, bfcvt): Likewise. * config/aarch64/aarch64-simd.md(aarch64_vbfcvt<mode>): New entry. (aarch64_vbfcvt_highv8bf, aarch64_bfcvtsf): Likewise. * config/aarch64/arm_bf16.h (vcvtah_f32_bf16): New intrinsic. * config/aarch64/arm_neon.h (vcvt_f32_bf16): Likewise. (vcvtq_low_f32_bf16, vcvtq_high_f32_bf16): Likewise. gcc/testsuite/ChangeLog * gcc.target/aarch64/advsimd-intrinsics/bfcvt-compile.c (test_vcvt_f32_bf16, test_vcvtq_low_f32_bf16): New tests. (test_vcvtq_high_f32_bf16, test_vcvth_f32_bf16): Likewise.
Diffstat (limited to 'libcpp')
0 files changed, 0 insertions, 0 deletions