On Tue, Jun 27, 2006 at 11:53:52AM +0200, Roland Persson wrote: > I've been trying patterns like this one: > > (define_insn "*pip_add_di_sesi" > [(set (match_operand:DI 0 "register_operand" "=r") > (plus:DI (match_operand:DI 1 "register_operand" "r") > (sign_extend:DI (match_operand:SI "register_operand" > "r"))))] > ... > )
My first bet would be to place the sign_extend operand first of the two operands to plus. Also, the output from -fdump-rtl-combine will tell you if combine is rejecting the pattern because the cost is too high. -- Rask Ingemann Lambertsen