aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/adaint.c
diff options
context:
space:
mode:
authorliuhongt <hongtao.liu@intel.com>2022-11-23 21:58:09 +0800
committerliuhongt <hongtao.liu@intel.com>2022-11-28 09:02:51 +0800
commita1ecc5600464f6a62faab246d522b6328badda90 (patch)
tree0a9e0bae6c2827b439590d8b1353d89f3c4a2334 /gcc/ada/adaint.c
parent14d11df96336e9d06a4c8108b61815ad94866519 (diff)
downloadgcc-a1ecc5600464f6a62faab246d522b6328badda90.zip
gcc-a1ecc5600464f6a62faab246d522b6328badda90.tar.gz
gcc-a1ecc5600464f6a62faab246d522b6328badda90.tar.bz2
Fix incorrect _mm_cvtsbh_ss.
After supporting real __bf16, the implementation of _mm_cvtsbh_ss went wrong. The patch add a builtin to generate pslld for the intrinsic, also extendbfsf2 is supported with pslld when !HONOR_NANS (BFmode). truncsfbf2 is supported with vcvtneps2bf16 when !HONOR_NANS (BFmode) && flag_unsafe_math_optimizations. gcc/ChangeLog: PR target/107748 * config/i386/avx512bf16intrin.h (_mm_cvtsbh_ss): Refined. * config/i386/i386-builtin-types.def (FLOAT_FTYPE_BFLOAT16): New function type. * config/i386/i386-builtin.def (BDESC): New builtin. * config/i386/i386-expand.cc (ix86_expand_args_builtin): Handle the builtin. * config/i386/i386.md (extendbfsf2): New expander. (extendbfsf2_1): New define_insn. (truncsfbf2): Ditto. gcc/testsuite/ChangeLog: * gcc.target/i386/avx512bf16-cvtsbh2ss-1.c: Scan pslld. * gcc.target/i386/extendbfsf.c: New test.
Diffstat (limited to 'gcc/ada/adaint.c')
0 files changed, 0 insertions, 0 deletions