diff options
author | Marc Glisse <marc.glisse@inria.fr> | 2016-11-20 16:32:37 +0100 |
---|---|---|
committer | Marc Glisse <glisse@gcc.gnu.org> | 2016-11-20 15:32:37 +0000 |
commit | 40fd269ab128d1f5fa7688d7d5e7298744c08cdd (patch) | |
tree | 24fa579ac055b2df237950de895300575de9cbe4 /gcc/fold-const.c | |
parent | 8294f55513cd9f15b6ac729265c45a7a6837898f (diff) | |
download | gcc-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.c | 3 |
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)) |