diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d61b4946aa8..3e88c0421ec 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2013-11-18 Andrew Pinski + Steve Ellcey + + PR target/56552 + * config/mips/mips.md (*mov_on_): Remove + type restriction from equality_operator on conditonal move. + (*mov_on_): Ditto. + (*mov_on__ne): New. + 2013-11-18 Jeff Law * tree-ssa-threadupdate.c: Fix file block comment. diff --git a/gcc/config/mips/mips.md b/gcc/config/mips/mips.md index 3554beb3033..6991f203df4 100644 --- a/gcc/config/mips/mips.md +++ b/gcc/config/mips/mips.md @@ -6776,7 +6776,7 @@ (define_insn "*mov_on_" [(set (match_operand:GPR 0 "register_operand" "=d,d") (if_then_else:GPR - (match_operator:MOVECC 4 "equality_operator" + (match_operator 4 "equality_operator" [(match_operand:MOVECC 1 "register_operand" ",") (const_int 0)]) (match_operand:GPR 2 "reg_or_0_operand" "dJ,0") @@ -6788,10 +6788,23 @@ [(set_attr "type" "condmove") (set_attr "mode" "")]) +(define_insn "*mov_on__ne" + [(set (match_operand:GPR 0 "register_operand" "=d,d") + (if_then_else:GPR + (match_operand:GPR2 1 "register_operand" ",") + (match_operand:GPR 2 "reg_or_0_operand" "dJ,0") + (match_operand:GPR 3 "reg_or_0_operand" "0,dJ")))] + "ISA_HAS_CONDMOVE" + "@ + movn\t%0,%z2,%1 + movz\t%0,%z3,%1" + [(set_attr "type" "condmove") + (set_attr "mode" "")]) + (define_insn "*mov_on_" [(set (match_operand:SCALARF 0 "register_operand" "=f,f") (if_then_else:SCALARF - (match_operator:MOVECC 4 "equality_operator" + (match_operator 4 "equality_operator" [(match_operand:MOVECC 1 "register_operand" ",") (const_int 0)]) (match_operand:SCALARF 2 "register_operand" "f,0")