https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71670
--- Comment #3 from Segher Boessenkool <segher at gcc dot gnu.org> --- Author: segher Date: Mon Jul 4 09:52:38 2016 New Revision: 237958 URL: https://gcc.gnu.org/viewcvs?rev=237958&root=gcc&view=rev Log: rs6000: Fix split of ashdi3_extswsli_dot for memory (PR71670) The splitter for ashdi3_extswsli_dot for cr0 with memory uses emit_insn gen_ashdi3_extswsli_dot, which does not work because that emits a scratch, while the splitter runs after reload so there should be a real register instead. We can laboriously fix that up, or emit using gen_ashdi3_extswsli_dot2 instead. This patch does the latter. 2016-07-04 Segher Boessenkool <seg...@kernel.crashing.org> Backport from mainline 2016-06-27 Segher Boessenkool <seg...@kernel.crashing.org> PR target/71670 * config/rs6000/rs6000.md (ashdi3_extswsli_dot): Use gen_ashdi3_extswsli_dot2 instead of gen_ashdi3_extswsli_dot. gcc/testsuite/ PR target/71670 * gcc.target/powerpc/pr71670.c: New testcase. Added: branches/gcc-6-branch/gcc/testsuite/gcc.target/powerpc/pr71670.c Modified: branches/gcc-6-branch/gcc/ChangeLog branches/gcc-6-branch/gcc/config/rs6000/rs6000.md branches/gcc-6-branch/gcc/testsuite/ChangeLog