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