diff options
author | Jeffrey A Law <law@cygnus.com> | 1998-01-23 23:06:03 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1998-01-23 16:06:03 -0700 |
commit | ed1ecb19301902f8f245b301534820e8c9bf7a60 (patch) | |
tree | ed67b6a1f37230177099d0ed978173edd15252cb /gcc/cse.c | |
parent | b4b04bf97f57d04a47f6c86a68b15b4bf5d6d245 (diff) | |
download | gcc-ed1ecb19301902f8f245b301534820e8c9bf7a60.zip gcc-ed1ecb19301902f8f245b301534820e8c9bf7a60.tar.gz gcc-ed1ecb19301902f8f245b301534820e8c9bf7a60.tar.bz2 |
cse.c (simplify_ternary_operation): Handle more IF_THEN_ELSE simplifications.
* cse.c (simplify_ternary_operation): Handle more IF_THEN_ELSE
simplifications.
From-SVN: r17465
Diffstat (limited to 'gcc/cse.c')
-rw-r--r-- | gcc/cse.c | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -4713,6 +4713,17 @@ simplify_ternary_operation (code, mode, op0_mode, op0, op1, op2) && rtx_equal_p (XEXP (op0, 1), op1) && rtx_equal_p (XEXP (op0, 0), op2)) return op2; + else if (! side_effects_p (op0)) + { + rtx temp; + temp = simplify_relational_operation (GET_CODE (op0), op0_mode, + XEXP (op0, 0), XEXP (op0, 1)); + /* See if any simplifications were possible. */ + if (temp == const0_rtx) + return op2; + else if (temp == const1_rtx) + return op1; + } break; default: |