aboutsummaryrefslogtreecommitdiff
path: root/gcc/fold-const.c
diff options
context:
space:
mode:
authorMarc Glisse <marc.glisse@inria.fr>2016-11-20 16:32:37 +0100
committerMarc Glisse <glisse@gcc.gnu.org>2016-11-20 15:32:37 +0000
commit40fd269ab128d1f5fa7688d7d5e7298744c08cdd (patch)
tree24fa579ac055b2df237950de895300575de9cbe4 /gcc/fold-const.c
parent8294f55513cd9f15b6ac729265c45a7a6837898f (diff)
downloadgcc-40fd269ab128d1f5fa7688d7d5e7298744c08cdd.zip
gcc-40fd269ab128d1f5fa7688d7d5e7298744c08cdd.tar.gz
gcc-40fd269ab128d1f5fa7688d7d5e7298744c08cdd.tar.bz2
Simplify X /[ex] 8 == 0
2016-11-20 Marc Glisse <marc.glisse@inria.fr> gcc/ * fold-const.c (fold_comparison): Ignore EXACT_DIV_EXPR. * match.pd (A /[ex] B CMP C): New simplifications. gcc/testsuite/ * gcc.dg/tree-ssa/cmpexactdiv.c: New file. From-SVN: r242638
Diffstat (limited to 'gcc/fold-const.c')
-rw-r--r--gcc/fold-const.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index f4b2cfa..3c5a77e 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -8700,8 +8700,7 @@ fold_comparison (location_t loc, enum tree_code code, tree type,
/* We can fold X/C1 op C2 where C1 and C2 are integer constants
into a single range test. */
- if ((TREE_CODE (arg0) == TRUNC_DIV_EXPR
- || TREE_CODE (arg0) == EXACT_DIV_EXPR)
+ if (TREE_CODE (arg0) == TRUNC_DIV_EXPR
&& TREE_CODE (arg1) == INTEGER_CST
&& TREE_CODE (TREE_OPERAND (arg0, 1)) == INTEGER_CST
&& !integer_zerop (TREE_OPERAND (arg0, 1))