re PR target/22076 (Strange code for MMX register moves)
authorUros Bizjak <ubizjak@gmail.com>
Sat, 23 Feb 2008 15:24:02 +0000 (16:24 +0100)
committerUros Bizjak <uros@gcc.gnu.org>
Sat, 23 Feb 2008 15:24:02 +0000 (16:24 +0100)
commit84495fd9b77ce40bcde7604dda738738bb52cd27
tree61717b288287207bcc2612ca43f910d60cae39cf
parent73c17ad2c832470c7313551258e1c8e2ee0c8bb7
re PR target/22076 (Strange code for MMX register moves)

        PR target/22076
        PR target/34256

        * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
        prevent reload from using MMX registers.
        (*mov<mode>_internal): Ditto.
        (*movv2sf_internal_rex64): Ditto.
        (*movv2sf_internal): Ditto.

testsuite/ChangeLog:

        PR target/22076
        PR target/34256
        * gcc.target/i386/pr22076.c: New test.
        * gcc.target/i386/pr34256.c: New test.
        * gcc.target/i386/vecinit-5.c: New test.
        * gcc.target/i386/vecinit-6.c: New test.
        * gcc.target/i386/vecinit-[1-4].c: Check that no MMX register is used.

        * g++.dg/compat/struct-layout-1.h: Do not include <mmintrin.h> and
        <xmmintrin.h>, define __m64 and __m128 directly.
        * g++.dg/compat/struct-layout-1_generate.c: Add -mno-mmx for x86.

From-SVN: r132572
13 files changed:
gcc/ChangeLog
gcc/config/i386/mmx.md
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/compat/struct-layout-1.h
gcc/testsuite/g++.dg/compat/struct-layout-1_generate.c
gcc/testsuite/gcc.target/i386/pr22076.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr34256.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/vecinit-1.c
gcc/testsuite/gcc.target/i386/vecinit-2.c
gcc/testsuite/gcc.target/i386/vecinit-3.c
gcc/testsuite/gcc.target/i386/vecinit-4.c
gcc/testsuite/gcc.target/i386/vecinit-5.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/vecinit-6.c [new file with mode: 0644]