This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
r212267 - in /trunk/gcc: ChangeLog config/rs600...
- From: segher at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: Thu, 03 Jul 2014 16:39:58 -0000
- Subject: r212267 - in /trunk/gcc: ChangeLog config/rs600...
Author: segher
Date: Thu Jul 3 16:39:58 2014
New Revision: 212267
URL: https://gcc.gnu.org/viewcvs?rev=212267&root=gcc&view=rev
Log:
Fix the shift patterns, and add test
Firstly, it adds back the split conditions that I accidentally removed.
Without it the dot insns are never generated, or rather, always split
back to a separate compare instruction.
Secondly, the shift amount should be SI always, not GPR, or GCC will
insert a zero-extend at expand time that it cannot get rid of later.
The test tests whether dot-form instructions are generated for both
"dot" and "dot2" cases, that is, with just a CC output or also a GPR
output; for all four basic shifts, with a register amount or an
immediate amount. It also tests for superfluous zero-extends. This
also tests if combine "simplifies" the rotates to right-rotates, which
it shouldn't do anymore.
Added:
trunk/gcc/testsuite/gcc.target/powerpc/shift-dot.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/rs6000/rs6000.md
trunk/gcc/testsuite/ChangeLog