aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2018-01-08 08:16:19 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2018-01-08 08:16:19 +0000
commit55d84e61f3e929af53e1c29321c5fc031f071d13 (patch)
tree4c29b976efb959422cb385359bf2cdc7c9e26d54
parent2af5fc623507d92326ae8b4203742722baafb865 (diff)
downloadgcc-55d84e61f3e929af53e1c29321c5fc031f071d13.zip
gcc-55d84e61f3e929af53e1c29321c5fc031f071d13.tar.gz
gcc-55d84e61f3e929af53e1c29321c5fc031f071d13.tar.bz2
re PR tree-optimization/83517 (Missed optimization in math expression: (x+x)/x == 2)
2018-01-08 Richard Biener <rguenther@suse.de> PR middle-end/83517 * match.pd ((t * 2) / 2) -> t): Add missing :c. * gcc.dg/pr83517.c: New testcase. From-SVN: r256328
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/match.pd2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/pr83517.c9
4 files changed, 20 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f6fe407..5de2348 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2018-01-08 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/83517
+ * match.pd ((t * 2) / 2) -> t): Add missing :c.
+
2018-01-06 Aldy Hernandez <aldyh@redhat.com>
PR middle-end/81897
diff --git a/gcc/match.pd b/gcc/match.pd
index f189cb1..915c20f 100644
--- a/gcc/match.pd
+++ b/gcc/match.pd
@@ -510,7 +510,7 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
/* Simplify (t * 2) / 2) -> t. */
(for div (trunc_div ceil_div floor_div round_div exact_div)
(simplify
- (div (mult @0 @1) @1)
+ (div (mult:c @0 @1) @1)
(if (ANY_INTEGRAL_TYPE_P (type)
&& TYPE_OVERFLOW_UNDEFINED (type))
@0)))
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 218e782..9ec2e81 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2018-01-08 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/83517
+ * gcc.dg/pr83517.c: New testcase.
+
2018-01-06 Aldy Hernandez <aldyh@redhat.com>
PR middle-end/81897
diff --git a/gcc/testsuite/gcc.dg/pr83517.c b/gcc/testsuite/gcc.dg/pr83517.c
new file mode 100644
index 0000000..9dadbde
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr83517.c
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-options "-fdump-tree-original" } */
+
+int test(int x)
+{
+ return (x+x)/x;
+}
+
+/* { dg-final { scan-tree-dump "return 2;" "original" } } */