[PATCH] Fix PR83517
Richard Biener
rguenther@suse.de
Mon Jan 8 08:20:00 GMT 2018
Bootstrapped and tested on x86_64-unknown-linux-gnu, applied to trunk.
Richard.
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.
Index: gcc/match.pd
===================================================================
--- gcc/match.pd (revision 256275)
+++ gcc/match.pd (working copy)
@@ -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)))
Index: gcc/testsuite/gcc.dg/pr83517.c
===================================================================
--- gcc/testsuite/gcc.dg/pr83517.c (nonexistent)
+++ gcc/testsuite/gcc.dg/pr83517.c (working copy)
@@ -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" } } */
More information about the Gcc-patches
mailing list