Use TImode for piecewise move in 64-bit mode
commit350f354acdd2224797f93a979fff38cb631548a3
authorhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 11 Aug 2016 15:51:01 +0000 (11 15:51 +0000)
committerhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 11 Aug 2016 15:51:01 +0000 (11 15:51 +0000)
tree6b52fc64727c944242444e0addb30cbb1af05030
parent37b2e7a1c2a753f3210751e1719060a57d3749e7
Use TImode for piecewise move in 64-bit mode

Use TImode for piecewise move in 64-bit mode.  We should use TImode in
32-bit mode and use OImode or XImode if they are available.  But since
by_pieces_ninsns determines the widest mode with MAX_FIXED_MODE_SIZE,
we can only use TImode in 64-bit mode.

gcc/

* config/i386/i386.h (MOVE_MAX_PIECES): Use TImode in 64-bit
mode if unaligned SSE load and store are optimal.

gcc/testsuite/

* gcc.target/i386/pieces-memcpy-1.c: New test.
* gcc.target/i386/pieces-memcpy-2.c: Likewise.
* gcc.target/i386/pieces-memcpy-3.c: Likewise.
* gcc.target/i386/pieces-memcpy-4.c: Likewise.
* gcc.target/i386/pieces-memcpy-5.c: Likewise.
* gcc.target/i386/pieces-memcpy-6.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239378 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/i386/i386.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pieces-memcpy-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pieces-memcpy-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pieces-memcpy-3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pieces-memcpy-4.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pieces-memcpy-5.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pieces-memcpy-6.c [new file with mode: 0644]