rs6000: Update conditional jump patterns, no more (pc) (label_ref)
authorSegher Boessenkool <segher@kernel.crashing.org>
Sun, 8 Oct 2017 22:36:36 +0000 (00:36 +0200)
committerSegher Boessenkool <segher@gcc.gnu.org>
Sun, 8 Oct 2017 22:36:36 +0000 (00:36 +0200)
commit0c791c59386785c32eb3cff33466ab4576ca75b5
tree1ebc56794599776a243c1ff3da9a5dd74c8820b1
parent561593c104a3fcce354d644b12072b1da8690baa
rs6000: Update conditional jump patterns, no more (pc) (label_ref)

Currently we have two patterns for every conditional jump: one jumping
if some condition is met, and the other jumping if it is not met.  We
don't need that second form because all our conditions have an opposite
already, and the generic code can deal with that just fine.

This patch deletes that second form.  We generated it directly in one
case; adjusted here.

* config/rs6000/rs6000-string.c (expand_strncmp_align_check): Invert
a conditional jump (and the compare for it) so that pc_rtx is the
last operand.
* config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Adjust
for the deleted and renamed ctr<mode>_internal[234] patterns.
* config/rs6000/rs6000.md: Delete second conditional branch pattern.
Delete second conditional return pattern.
(ctr<mode>_internal2): Delete this second bdnz pattern.
(ctr<mode>_internal3): Rename to ctr<mode>_internal2.
(ctr<mode>_internal4): Delete this second bdz pattern.

From-SVN: r253531
gcc/ChangeLog
gcc/config/rs6000/rs6000-string.c
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/rs6000.md