re PR target/36992 (Very stange code for _mm_move_epi64)
authorUros Bizjak <uros@gcc.gnu.org>
Sun, 3 Aug 2008 06:13:04 +0000 (08:13 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Sun, 3 Aug 2008 06:13:04 +0000 (08:13 +0200)
commit5617c135e7fe4ea4d67bdf3fbe94acfacfa87b16
tree56be5e1a2f0236eb84f46e1fb1388f1d95be1d9c
parentd6833cf9a69f8b88e36a37f06d0c038161f5c0fb
re PR target/36992 (Very stange code for _mm_move_epi64)

PR target/36992
* config/i386/sse.md (vec_concatv2di): Add Y2 constraint to
alternative 0 of operand 1.
(*vec_concatv2di_rex64_sse): Ditto.
(*vec_concatv2di_rex64_sse4_1): Add x constraint to alternative 0
of operand 1.
(*sse2_storeq_rex64): Penalize allocation of "r" registers.
* config/i386/mmx.md (*mov<mode>_internal_rex64): Penalize allocation
of "Y2" registers to avoid SSE <-> MMX conversions for DImode moves.
(*movv2sf_internal_rex64): Ditto.

testsuite/ChangeLog:

PR target/36992
* gcc.target/i386/pr36992-1.c: New test.
* gcc.target/i386/pr36992-2.c: Ditto.

From-SVN: r138564
gcc/ChangeLog
gcc/config/i386/mmx.md
gcc/config/i386/sse.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr36992-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr36992-2.c [new file with mode: 0644]