diff options
author | Ian Lance Taylor <ian@airs.com> | 2006-01-07 22:23:27 +0000 |
---|---|---|
committer | David Edelsohn <dje@gcc.gnu.org> | 2006-01-07 17:23:27 -0500 |
commit | 68162a976669a165633f4905f0ab1d60962b0666 (patch) | |
tree | 1fe479be7d0037272b7c2cdc78e67963de5da542 /gcc/simplify-rtx.c | |
parent | 8c7ffa93a8988b2e10d7b49913f55201575d3ca5 (diff) | |
download | gcc-68162a976669a165633f4905f0ab1d60962b0666.zip gcc-68162a976669a165633f4905f0ab1d60962b0666.tar.gz gcc-68162a976669a165633f4905f0ab1d60962b0666.tar.bz2 |
re PR target/25662 (Unrecognizable insn with -O on PPC)
2005-01-07 Ian Lance Taylor <ian@airs.com>
David Edelsohn <edelsohn@gnu.org>
PR rtl-optimization/25662
* optabs.c (simplify_expand_binop): Use simplify_binary_operation
for constant operands instead of simplify_gen_binary.
* simplify-rtx.c (simplify_gen_binary): Swap commutative operands
after trying simplify_binary_operation
Co-Authored-By: David Edelsohn <edelsohn@gnu.org>
From-SVN: r109456
Diffstat (limited to 'gcc/simplify-rtx.c')
-rw-r--r-- | gcc/simplify-rtx.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c index c773900..5a5c5ca 100644 --- a/gcc/simplify-rtx.c +++ b/gcc/simplify-rtx.c @@ -114,16 +114,16 @@ simplify_gen_binary (enum rtx_code code, enum machine_mode mode, rtx op0, { rtx tem; - /* Put complex operands first and constants second if commutative. */ - if (GET_RTX_CLASS (code) == RTX_COMM_ARITH - && swap_commutative_operands_p (op0, op1)) - tem = op0, op0 = op1, op1 = tem; - /* If this simplifies, do it. */ tem = simplify_binary_operation (code, mode, op0, op1); if (tem) return tem; + /* Put complex operands first and constants second if commutative. */ + if (GET_RTX_CLASS (code) == RTX_COMM_ARITH + && swap_commutative_operands_p (op0, op1)) + tem = op0, op0 = op1, op1 = tem; + return gen_rtx_fmt_ee (code, mode, op0, op1); } |