On Fri, Aug 16, 2013 at 04:18:18PM -0500, Peter Bergner wrote: > --- gcc/config/rs6000/dfp.md (revision 201779) > +++ gcc/config/rs6000/dfp.md (working copy) > @@ -132,11 +132,14 @@ (define_expand "negtd2" > "") > > (define_insn "*negtd2_fpr" > - [(set (match_operand:TD 0 "gpc_reg_operand" "=d") > - (neg:TD (match_operand:TD 1 "gpc_reg_operand" "d")))] > + [(set (match_operand:TD 0 "gpc_reg_operand" "=d,d") > + (neg:TD (match_operand:TD 1 "gpc_reg_operand" "d,0")))]
I'm surprised if it works in this order, I'd expect that alternative 0 would match even for the same regno and that the second alternative wouldn't be tried. Jakub