re PR target/66866 (incorrect load address on manual vector shuffle)
authorUros Bizjak <ubizjak@gmail.com>
Wed, 15 Jul 2015 22:20:17 +0000 (00:20 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Wed, 15 Jul 2015 22:20:17 +0000 (00:20 +0200)
commitbaca1278a30eeb2bfca4c6aa0b7fbd9a1882a860
tree8768a99f04c1798812178ec21dc41147b6aeb533
parent1f8ba82489f40b751fdb8c0c5a6f6208e888be4a
re PR target/66866 (incorrect load address on manual vector shuffle)

PR target/66866
* config/i386/i386-protos.h (ix86_expand_pextr): New prototype.
* config/i386/i386.c (ix86_expand_pextr): New function.
(ix86_expand_pinsr): Handle V1TI and TI modes.  Call ix86_expand_pextr
for non-lowpart subregs.
* config/i386/i386.md (extzv<mode>): Expand with ix86_expand_pextr.
(insv<mode>): Use SWI248 mode iterator.
(insv<mode>_1): Ditto.

testsuite/ChangeLog:

PR target/66866
* g++.dg/pr66866.C: New test.

From-SVN: r225852
gcc/ChangeLog
gcc/config/i386/i386-protos.h
gcc/config/i386/i386.c
gcc/config/i386/i386.md
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/pr66866.C [new file with mode: 0644]