aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1993-05-01 16:55:51 +0000
committerRichard Stallman <rms@gnu.org>1993-05-01 16:55:51 +0000
commit709ab4fc49e3356c4e99a5cc22a4c5f3c5473eb3 (patch)
tree1c3e0d3d78bd465ae5ab0c7d70812ddf87ab6162 /gcc
parenta878dab7efe69318fa71d9c7249eaaf4e150b6c8 (diff)
downloadgcc-709ab4fc49e3356c4e99a5cc22a4c5f3c5473eb3.zip
gcc-709ab4fc49e3356c4e99a5cc22a4c5f3c5473eb3.tar.gz
gcc-709ab4fc49e3356c4e99a5cc22a4c5f3c5473eb3.tar.bz2
(simplify_binary_operation): Reject CCmode in A & (~A) -> 0.
Also fix typos in previous change. From-SVN: r4295
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cse.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/cse.c b/gcc/cse.c
index 077a921..2cb9e55 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -3599,7 +3599,7 @@ simplify_binary_operation (code, mode, op0, op1)
if (((GET_CODE (op0) == NOT && rtx_equal_p (XEXP (op0, 0), op1))
|| (GET_CODE (op1) == NOT && rtx_equal_p (XEXP (op1, 0), op0)))
&& ! side_effects_p (op0)
- && mode == CCmode)
+ && mode != CCmode)
return constm1_rtx;
break;
@@ -3610,7 +3610,7 @@ simplify_binary_operation (code, mode, op0, op1)
&& (INTVAL (op1) & GET_MODE_MASK (mode)) == GET_MODE_MASK (mode))
return gen_rtx (NOT, mode, op0);
if (op0 == op1 && ! side_effects_p (op0)
- && mode == CCmode)
+ && mode != CCmode)
return const0_rtx;
break;
@@ -3621,12 +3621,13 @@ simplify_binary_operation (code, mode, op0, op1)
&& (INTVAL (op1) & GET_MODE_MASK (mode)) == GET_MODE_MASK (mode))
return op0;
if (op0 == op1 && ! side_effects_p (op0)
- && mode == CCmode)
+ && mode != CCmode)
return op0;
/* A & (~A) -> 0 */
if (((GET_CODE (op0) == NOT && rtx_equal_p (XEXP (op0, 0), op1))
|| (GET_CODE (op1) == NOT && rtx_equal_p (XEXP (op1, 0), op0)))
- && ! side_effects_p (op0))
+ && ! side_effects_p (op0)
+ && mode != CCmode)
return const0_rtx;
break;