]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/config/i386/i386-expand.cc
Enable vectorization for _Float16 floor/ceil/trunc/nearbyint/rint operations.
authorliuhongt <hongtao.liu@intel.com>
Mon, 25 Oct 2021 07:20:35 +0000 (15:20 +0800)
committerliuhongt <hongtao.liu@intel.com>
Fri, 29 Oct 2021 01:45:29 +0000 (09:45 +0800)
commit84bcefd5555af6d95e08cd980965098961289215
treedf515785707d201789b83ff112559f268df0c449
parent2322c8b1b4429e85aa1caa6c6bbc46bb41e80178
Enable vectorization for _Float16 floor/ceil/trunc/nearbyint/rint operations.

gcc/ChangeLog:

PR target/102464
* config/i386/i386-builtin-types.def (V8HF_FTYPE_V8HF): New
function type.
(V16HF_FTYPE_V16HF): Ditto.
(V32HF_FTYPE_V32HF): Ditto.
(V8HF_FTYPE_V8HF_ROUND): Ditto.
(V16HF_FTYPE_V16HF_ROUND): Ditto.
(V32HF_FTYPE_V32HF_ROUND): Ditto.
* config/i386/i386-builtin.def ( IX86_BUILTIN_FLOORPH,
IX86_BUILTIN_CEILPH, IX86_BUILTIN_TRUNCPH,
IX86_BUILTIN_FLOORPH256, IX86_BUILTIN_CEILPH256,
IX86_BUILTIN_TRUNCPH256, IX86_BUILTIN_FLOORPH512,
IX86_BUILTIN_CEILPH512, IX86_BUILTIN_TRUNCPH512): New builtin.
* config/i386/i386-builtins.c
(ix86_builtin_vectorized_function): Enable vectorization for
HFmode FLOOR/CEIL/TRUNC operation.
* config/i386/i386-expand.c (ix86_expand_args_builtin): Handle
new builtins.
* config/i386/sse.md (rint<mode>2, nearbyint<mode>2): Extend
to vector HFmodes.

gcc/testsuite/ChangeLog:

* gcc.target/i386/pr102464-vrndscaleph.c: New test.
gcc/config/i386/i386-builtin-types.def
gcc/config/i386/i386-builtin.def
gcc/config/i386/i386-builtins.c
gcc/config/i386/i386-expand.c
gcc/config/i386/sse.md
gcc/testsuite/gcc.target/i386/pr102464-vrndscaleph.c [new file with mode: 0644]