Use TImode for piecewise move in 64-bit mode
authorH.J. Lu <hongjiu.lu@intel.com>
Thu, 11 Aug 2016 15:51:01 +0000 (15:51 +0000)
committerH.J. Lu <hjl@gcc.gnu.org>
Thu, 11 Aug 2016 15:51:01 +0000 (08:51 -0700)
commitdf7ec09f1209a33b35af3b798e6ff6ead5de8570
tree6b52fc64727c944242444e0addb30cbb1af05030
parent4200a7231e1ad67dc5476b7b6ab9ea015ccaa65d
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.

From-SVN: r239378
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]