aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorNaveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>2015-08-13 04:37:22 +0000
committerNaveen H.S <naveenh@gcc.gnu.org>2015-08-13 04:37:22 +0000
commit95765f369f6f6ee15399d352593cb6912a024d28 (patch)
tree2f6a15f91ae9b1b82eaf233377b1fd50bfd9e252 /gcc
parentb02520e94037d26226a0d8da3c577e6ff6d4ffb7 (diff)
downloadgcc-95765f369f6f6ee15399d352593cb6912a024d28.zip
gcc-95765f369f6f6ee15399d352593cb6912a024d28.tar.gz
gcc-95765f369f6f6ee15399d352593cb6912a024d28.tar.bz2
re PR middle-end/25529 ((unsigned * 2)/2 is not changed into unsigned &0x7FFFFFFF)
2015-08-13 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com> PR middle-end/25529 * match.pd (div (mult @0 @1) @1) : New simplifier. From-SVN: r226847
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/match.pd8
2 files changed, 13 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 65a4f2a..67f9a11 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2015-08-13 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
+
+ PR middle-end/25529
+ * match.pd (div (mult @0 @1) @1) : New simplifier.
+
2015-08-12 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/67071
diff --git a/gcc/match.pd b/gcc/match.pd
index 4230f9a..42b9951 100644
--- a/gcc/match.pd
+++ b/gcc/match.pd
@@ -296,6 +296,14 @@ along with GCC; see the file COPYING3. If not see
(if (TYPE_UNSIGNED (TREE_TYPE (@0)))
(bit_and @0 (negate @1))))
+/* Simplify (t * 2) / 2) -> t. */
+(for div (trunc_div ceil_div floor_div round_div exact_div)
+ (simplify
+ (div (mult @0 @1) @1)
+ (if (ANY_INTEGRAL_TYPE_P (type)
+ && TYPE_OVERFLOW_UNDEFINED (type))
+ @0)))
+
/* X % Y is smaller than Y. */
(for cmp (lt ge)
(simplify