i386: Fix *vec_extractv2sf_1 and *vec_extractv2sf_1 shufps alternative [PR93828]
authorUros Bizjak <ubizjak@gmail.com>
Thu, 20 Feb 2020 20:06:18 +0000 (21:06 +0100)
committerUros Bizjak <ubizjak@gmail.com>
Thu, 20 Feb 2020 20:06:18 +0000 (21:06 +0100)
commitd56779b8ae587c599bf46b20587afcd6ee51fcaa
tree186a6e3dee264a5a076c9c2d2cb4c2ac944635e1
parentf6088573d81d52e8573b704984fdb515e4391b1a
i386: Fix *vec_extractv2sf_1 and *vec_extractv2sf_1 shufps alternative [PR93828]

shufps moves two of the four packed single-precision floating-point values
from *destination* operand (first operand) into the low quadword of the
destination operand.  Match source operand to the destination.

PR target/93828
* config/i386/mmx.md (*vec_extractv2sf_1): Match source operand
to destination operand for shufps alternative.
(*vec_extractv2si_1): Ditto.

testsuite/ChangeLog:

PR target/93828
* g++.target/i386/pr93828.C: New test.
gcc/ChangeLog
gcc/config/i386/mmx.md
gcc/testsuite/ChangeLog