diff options
author | Richard Biener <rguenther@suse.de> | 2018-01-08 08:16:19 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2018-01-08 08:16:19 +0000 |
commit | 55d84e61f3e929af53e1c29321c5fc031f071d13 (patch) | |
tree | 4c29b976efb959422cb385359bf2cdc7c9e26d54 | |
parent | 2af5fc623507d92326ae8b4203742722baafb865 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/match.pd | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr83517.c | 9 |
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" } } */ |