On 2012-11-06 06:37, Naveen H. S wrote: > +(define_insn "iorbset_mem" > + [(set (match_operand:QI 0 "rx_restricted_mem_operand" "=Q") > + (ior:QI (match_operand:QI 1 "rx_restricted_mem_operand" "%0") > + (match_operand 2 "const_int_operand" "Intso")))] > + "satisfies_constraint_Intso (operands[2])" > + "bset\\t%D2,%0.B" > + [(set_attr "length" "3")]
You need to use match_dup instead of a matching constraint. If there are two totally separate memory operands, reload will not be able to fix them up. Further, I think most of these pattern names are not used. Every one that isn't explicitly invoked should have a leading "*" in the name. r~