rs6000.md: Require operand inequality in one of the peepholes.
authorSegher Boessenkool <segher@kernel.crashing.org>
Fri, 8 May 2015 14:34:11 +0000 (16:34 +0200)
committerSegher Boessenkool <segher@gcc.gnu.org>
Fri, 8 May 2015 14:34:11 +0000 (16:34 +0200)
* config/rs6000/rs6000.md: Require operand inequality in one
of the peepholes.

From-SVN: r222912

gcc/ChangeLog
gcc/config/rs6000/rs6000.md

index e85dc316d12fbd056fa2261482c4bf2e37838a3e..5f1575504f9595b87881c434b723dfa6208e7f40 100644 (file)
@@ -1,3 +1,8 @@
+2015-05-08  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       * config/rs6000/rs6000.md: Require operand inequality in one
+       of the peepholes.
+
 2015-05-08  Richard Sandiford  <richard.sandiford@arm.com>
            Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
 
index 09099861266096b384329d9d30650bd8fc2c4245..acf890cbdf4f72cf1d37d2fb91406b20be8fbba8 100644 (file)
                       (match_operand 7 "" "")
                       (match_operand 8 "" "")))]
   "peep2_reg_dead_p (3, operands[0])
-   && peep2_reg_dead_p (4, operands[4])"
+   && peep2_reg_dead_p (4, operands[4])
+   && REGNO (operands[0]) != REGNO (operands[5])"
  [(set (match_dup 0) (xor:SI (match_dup 5) (match_dup 9)))
   (set (match_dup 4) (compare:CC (match_dup 0) (match_dup 10)))
   (set (pc) (if_then_else (match_dup 6) (match_dup 7) (match_dup 8)))]