diff options
| author | Roger Sayle <roger@eyesopen.com> | 2002-05-25 16:09:20 +0000 |
|---|---|---|
| committer | Roger Sayle <sayle@gcc.gnu.org> | 2002-05-25 16:09:20 +0000 |
| commit | fb2c68414e698e8901a522fbc007e3cd0a201a22 (patch) | |
| tree | 83dcd1058b54834aa9344d686af7700546f5642e /gcc/simplify-rtx.c | |
| parent | da7ac8f11b20711283ab7120d07863e73708b03a (diff) | |
| download | gcc-fb2c68414e698e8901a522fbc007e3cd0a201a22.zip gcc-fb2c68414e698e8901a522fbc007e3cd0a201a22.tar.gz gcc-fb2c68414e698e8901a522fbc007e3cd0a201a22.tar.bz2 | |
simplify-rtx.c (simplify_gen_relational): Simplify the RTX (cond (compare x y) 0) into the equivalent (cond x y).
* simplify-rtx.c (simplify_gen_relational): Simplify the RTX
(cond (compare x y) 0) into the equivalent (cond x y).
From-SVN: r53870
Diffstat (limited to 'gcc/simplify-rtx.c')
| -rw-r--r-- | gcc/simplify-rtx.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c index 36bcc1a..6ec33a3 100644 --- a/gcc/simplify-rtx.c +++ b/gcc/simplify-rtx.c @@ -232,6 +232,10 @@ simplify_gen_relational (code, mode, cmp_mode, op0, op1) if ((tem = simplify_relational_operation (code, cmp_mode, op0, op1)) != 0) return tem; + /* If op0 is a compare, extract the comparison arguments from it. */ + if (GET_CODE (op0) == COMPARE && op1 == const0_rtx) + op1 = XEXP (op0, 1), op0 = XEXP (op0, 0); + /* Put complex operands first and constants second. */ if (swap_commutative_operands_p (op0, op1)) tem = op0, op0 = op1, op1 = tem, code = swap_condition (code); |
