Modernize ix86_builtin_vectorized_function with corresponding expanders.
authorliuhongt <hongtao.liu@intel.com>
Thu, 15 Sep 2022 10:43:16 +0000 (18:43 +0800)
committerliuhongt <hongtao.liu@intel.com>
Fri, 16 Sep 2022 07:44:42 +0000 (15:44 +0800)
commit3e8c4b925a9825fdb8c81f47b621f63108894362
tree779d3110db768415119fad8b27f820a9a3f3e35e
parentd0fc05e86027463eef60ffe16fb8d1fe74acc4e8
Modernize ix86_builtin_vectorized_function with corresponding expanders.

For ifloor/lfloor/iceil/lceil/irint/lrint/iround/lround when size of
in_mode is not equal out_mode, vectorizer doesn't go to internal fn
way,still left that part in the ix86_builtin_vectorized_function.

Remove others builtins and add corresponding expanders.

gcc/ChangeLog:

PR target/106910
* config/i386/i386-builtins.cc
(ix86_builtin_vectorized_function): Modernized with
corresponding expanders.
* config/i386/sse.md (lrint<mode><sseintvecmodelower>2): New
expander.
(floor<mode>2): Ditto.
(lfloor<mode><sseintvecmodelower>2): Ditto.
(ceil<mode>2): Ditto.
(lceil<mode><sseintvecmodelower>2): Ditto.
(btrunc<mode>2): Ditto.
(lround<mode><sseintvecmodelower>2): Ditto.
(exp2<mode>2): Ditto.
gcc/config/i386/i386-builtins.cc
gcc/config/i386/sse.md