diff options
author | Segher Boessenkool <segher@kernel.crashing.org> | 2016-06-28 07:56:41 +0200 |
---|---|---|
committer | Segher Boessenkool <segher@gcc.gnu.org> | 2016-06-28 07:56:41 +0200 |
commit | a826405801ce4e28d534e3f693f236405d886caf (patch) | |
tree | b92fe8cfd230d1136925b46281769fb3bcbfe626 /gcc/config/rs6000/rs6000.md | |
parent | 7c788ce223bef845356773178b64de69e753c1b8 (diff) | |
download | gcc-a826405801ce4e28d534e3f693f236405d886caf.zip gcc-a826405801ce4e28d534e3f693f236405d886caf.tar.gz gcc-a826405801ce4e28d534e3f693f236405d886caf.tar.bz2 |
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.
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.
From-SVN: r237813
Diffstat (limited to 'gcc/config/rs6000/rs6000.md')
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index bb31e41..e8a6205 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -4094,7 +4094,7 @@ if (REGNO (cr) == CR0_REGNO) { - emit_insn (gen_ashdi3_extswsli_dot (dest, src2, shift, cr)); + emit_insn (gen_ashdi3_extswsli_dot2 (dest, src2, shift, cr)); DONE; } |