]> git.ipfire.org Git - thirdparty/gcc.git/commit
re PR tree-optimization/24659 (Conversions are not vectorized)
authorUros Bizjak <ubizjak@gmail.com>
Fri, 29 Jun 2007 10:30:06 +0000 (12:30 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Fri, 29 Jun 2007 10:30:06 +0000 (12:30 +0200)
commitb40c4f68160a4b556135185e8b5e013ab77ba2ec
tree332c2a8a980e60c5f65e31276d3aa5472059f7e9
parent690f48b1b48b5626cb9b78944f1da201d11e00ec
re PR tree-optimization/24659 (Conversions are not vectorized)

PR tree-optimization/24659
* tree-vect-transform.c (vectorizable_call): Handle
(nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.

* config/i386/sse.md (vec_pack_sfix_v2df): New expander.
* config/i386/i386.c (enum ix86_builtins)
[IX86_BUILTIN_VEC_PACK_SFIX]: New constant.
(struct bdesc_2arg) [__builtin_ia32_vec_pack_sfix]: New builtin
description.
(ix86_init_mmx_sse_builtins): Define all builtins with 2 arguments as
const using def_builtin_const.
(ix86_expand_binop_builtin): Remove bogus assert() that insn wants
input operands in the same modes as the result.
(ix86_builtin_vectorized_function): Handle BUILT_IN_LRINT.

testsuite/ChangeLog:

PR tree-optimization/24659
* gcc.target/i386/vectorize2.c: New test.
* gcc.target/i386/sse2-lrint-vec.c: New runtime test.
* gcc.target/i386/sse2-lrintf-vec.c: Ditto.

From-SVN: r126111
gcc/ChangeLog
gcc/config/i386/i386.c
gcc/config/i386/sse.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/sse2-lrint-vec.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/sse2-lrintf-vec.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/vectorize2.c [new file with mode: 0644]
gcc/tree-vect-transform.c