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

Reply via email to