Hi!

LRA likes to use CTR and LR to store CCmode values.  Not such a good
idea.  All other similar patterns disparage using CTR and LR; do so
here, too.

Committing to trunk.


Segher


2016-09-27  Segher Boessenkool  <seg...@kernel.crashing.org>

        * config/rs6000/rs6000.md (movcc_internal1): Disparage using CTR or LR.

---
 gcc/config/rs6000/rs6000.md | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 7b995ac..a9fabc1 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -6653,8 +6653,10 @@ (define_expand "movcc"
   "")
 
 (define_insn "*movcc_internal1"
-  [(set (match_operand:CC 0 "nonimmediate_operand" 
"=y,x,?y,y,r,r,r,r,r,cl,r,m")
-       (match_operand:CC 1 "general_operand" "y,r,r,O,x,y,r,I,h,r,m,r"))]
+  [(set (match_operand:CC 0 "nonimmediate_operand"
+                           "=y,x,?y,y,r,r,r,r,r,*c*l,r,m")
+       (match_operand:CC 1 "general_operand"
+                           " y,r, r,O,x,y,r,I,h,   r,m,r"))]
   "register_operand (operands[0], CCmode)
    || register_operand (operands[1], CCmode)"
   "@
-- 
1.9.3

Reply via email to