diff options
author | Jan Hubicka <jh@suse.cz> | 2003-02-01 14:16:29 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2003-02-01 13:16:29 +0000 |
commit | 434c87d422b306c985a1c4e67ebba27d24bd50b7 (patch) | |
tree | caf6da448f14a24291c429a078aa69f184ca1c21 /gcc/combine.c | |
parent | 271bd540d12af3d965059fb09b5311224fb3214c (diff) | |
download | gcc-434c87d422b306c985a1c4e67ebba27d24bd50b7.zip gcc-434c87d422b306c985a1c4e67ebba27d24bd50b7.tar.gz gcc-434c87d422b306c985a1c4e67ebba27d24bd50b7.tar.bz2 |
* combine.c (combine_simplify_rtx): Use reversed_comparison_code_parts.
From-SVN: r62246
Diffstat (limited to 'gcc/combine.c')
-rw-r--r-- | gcc/combine.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/gcc/combine.c b/gcc/combine.c index d3203fe..d6915c1 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -3708,6 +3708,8 @@ combine_simplify_rtx (x, op0_mode, last, in_dest) if (general_operand (true_rtx, VOIDmode) && general_operand (false_rtx, VOIDmode)) { + enum rtx_code reversed; + /* Restarting if we generate a store-flag expression will cause us to loop. Just drop through in this case. */ @@ -3716,9 +3718,10 @@ combine_simplify_rtx (x, op0_mode, last, in_dest) if (true_rtx == const_true_rtx && false_rtx == const0_rtx) x = gen_binary (cond_code, mode, cond, cop1); else if (true_rtx == const0_rtx && false_rtx == const_true_rtx - && reverse_condition (cond_code) != UNKNOWN) - x = gen_binary (reverse_condition (cond_code), - mode, cond, cop1); + && ((reversed = reversed_comparison_code_parts + (cond_code, cond, cop1, NULL)) + != UNKNOWN)) + x = gen_binary (reversed, mode, cond, cop1); /* Likewise, we can make the negate of a comparison operation if the result values are - STORE_FLAG_VALUE and zero. */ @@ -3731,11 +3734,13 @@ combine_simplify_rtx (x, op0_mode, last, in_dest) mode); else if (GET_CODE (false_rtx) == CONST_INT && INTVAL (false_rtx) == - STORE_FLAG_VALUE - && true_rtx == const0_rtx) + && true_rtx == const0_rtx + && ((reversed = reversed_comparison_code_parts + (cond_code, cond, cop1, NULL)) + != UNKNOWN)) x = simplify_gen_unary (NEG, mode, - gen_binary (reverse_condition - (cond_code), - mode, cond, cop1), + gen_binary (reversed, mode, + cond, cop1), mode); else return gen_rtx_IF_THEN_ELSE (mode, |