http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49833

--- Comment #4 from Uros Bizjak <ubizjak at gmail dot com> 2011-07-25 15:20:42 
UTC ---
A shot-in-the-dark change:

(define_insn "*add<mode>_1"
  [(set (match_operand:SWI48 0 "nonimmediate_operand" "=r,rm,r,r")
    (plus:SWI48
      (match_operand:SWI48 1 "nonimmediate_operand" "%0,0,r,r")
      (match_operand:SWI48 2 "<add_operand>" "rme,re,0,le")))
   (clobber (reg:CC FLAGS_REG))]

and

(define_insn "addsi_1_zext"
  [(set (match_operand:DI 0 "register_operand" "=r,r,r")
    (zero_extend:DI
      (plus:SI (match_operand:SI 1 "nonimmediate_operand" "%0,r,r")
           (match_operand:SI 2 "addsi_operand" "rme,0,le"))))
   (clobber (reg:CC FLAGS_REG))]

The constraints of operand 2 now fully follow addsi_operand predicate.

Reply via email to