x86: Use SET operation in MOVDIRI and MOVDIR64B
authorH.J. Lu <hjl.tools@gmail.com>
Wed, 23 Sep 2020 19:11:45 +0000 (12:11 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Wed, 30 Sep 2020 12:34:37 +0000 (05:34 -0700)
commit46183c96d2aea8181efb6bc3cfdb221987fe002d
tree1e4fce32da5981a4c7bf6e62dcb6167563d9b80e
parent4c0eb14bc8553d6e97f1cf70276c6a4fa67b7c38
x86: Use SET operation in MOVDIRI and MOVDIR64B

Since MOVDIRI and MOVDIR64B write to memory, similar to UNSPEC_MOVNT,
use SET operation in MOVDIRI and MOVDIR64B patterns with UNSPEC instead
of UNSPECV.

gcc/

PR target/97184
* config/i386/i386.md (UNSPECV_MOVDIRI): Renamed to ...
(UNSPEC_MOVDIRI): This.
(UNSPECV_MOVDIR64B): Renamed to ...
(UNSPEC_MOVDIR64B): This.
(movdiri<mode>): Use SET operation.
(@movdir64b_<mode>): Likewise.

gcc/testsuite/

PR target/97184
* gcc.target/i386/movdir64b.c: New test.
* gcc.target/i386/movdiri32.c: Likewise.
* gcc.target/i386/movdiri64.c: Likewise.
* lib/target-supports.exp (check_effective_target_movdir): New.
gcc/config/i386/i386.md
gcc/testsuite/gcc.target/i386/movdir64b.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/movdiri32.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/movdiri64.c [new file with mode: 0644]
gcc/testsuite/lib/target-supports.exp