------- Comment #5 from schwab at suse dot de 2008-09-16 21:00 ------- Reverting this change in commutative_operand_precedence fixes the testcase:
case RTX_OBJ: /* Complex expressions should be the first, so decrease priority - of objects. */ - return -1; + of objects. Prefer pointer objects over non pointer objects. */ + if ((REG_P (op) && REG_POINTER (op)) + || (MEM_P (op) && MEM_POINTER (op))) + return -1; + return -2; case RTX_COMM_ARITH: /* Prefer operands that are themselves commutative to be first. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37053