https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69709
--- Comment #14 from Andreas Krebbel <krebbel at gcc dot gnu.org> --- Author: krebbel Date: Fri Feb 26 18:03:51 2016 New Revision: 233752 URL: https://gcc.gnu.org/viewcvs?rev=233752&root=gcc&view=rev Log: S/390: PR69709 Fix risbg splitter This fixes a wrong code generation problem with the splitters introduced with that patch: https://gcc.gnu.org/ml/gcc-patches/2015-07/msg01840.html The target operand is used as temporary. This fails if it matches the source of the left shift which is read after writing the temporary. Thanks to Dominik for debugging it and thanks to Richard for the fix! Bootstrapped and regtested on s390x with-arch=z13. Bye, -Andreas- gcc/ChangeLog: 2016-02-26 Richard Henderson <r...@redhat.com> PR target/69709 * config/s390/s390.md (risbg and risbgn splitters): Allocate new pseudo in case the target rtx matches the source of the left shift. gcc/testsuite/ChangeLog: 2016-02-26 Andreas Krebbel <kreb...@linux.vnet.ibm.com> PR target/69709 * gcc.target/s390/pr69709.c: New test. Added: trunk/gcc/testsuite/gcc.target/s390/pr69709.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/s390/s390.md trunk/gcc/testsuite/ChangeLog