aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMarc Glisse <marc.glisse@inria.fr>2016-08-31 20:22:58 +0200
committerMarc Glisse <glisse@gcc.gnu.org>2016-08-31 18:22:58 +0000
commit9ff6fb6ede9ac2902088514067aca53e1133cc80 (patch)
treeab0dd8972582fd2e1422c762dc2a4ee39528897a /gcc
parent8e95a6740883dc268f757173f98e9afdf786db80 (diff)
downloadgcc-9ff6fb6ede9ac2902088514067aca53e1133cc80.zip
gcc-9ff6fb6ede9ac2902088514067aca53e1133cc80.tar.gz
gcc-9ff6fb6ede9ac2902088514067aca53e1133cc80.tar.bz2
match.pd: Revert a * (1 << b) relaxation.
2016-08-31 Marc Glisse <marc.glisse@inria.fr> PR tree-optimization/73714 gcc/ * match.pd (a * (1 << b)): Revert change from 2016-05-23. gcc/testsuite/ * gcc.dg/tree-ssa/pr73714.c: New test. From-SVN: r239902
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/match.pd3
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr73714.c8
4 files changed, 19 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4f11321..2d50833 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2016-08-31 Marc Glisse <marc.glisse@inria.fr>
+
+ PR tree-optimization/73714
+ * match.pd (a * (1 << b)): Revert change from 2016-05-23.
+
2016-08-31 David Malcolm <dmalcolm@redhat.com>
* selftest.c: Move "namespace selftest {" to top of file,
diff --git a/gcc/match.pd b/gcc/match.pd
index 123e754..786cf4c 100644
--- a/gcc/match.pd
+++ b/gcc/match.pd
@@ -468,8 +468,7 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
(simplify
(mult:c @0 (convert? (lshift integer_onep@1 @2)))
(if (! FLOAT_TYPE_P (type)
- && (element_precision (type) <= element_precision (TREE_TYPE (@1))
- || TYPE_UNSIGNED (TREE_TYPE (@1))))
+ && tree_nop_conversion_p (type, TREE_TYPE (@1)))
(lshift @0 @2)))
/* Fold (C1/X)*C2 into (C1*C2)/X. */
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 20535a1..4a9043c 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2016-08-31 Marc Glisse <marc.glisse@inria.fr>
+
+ PR tree-optimization/73714
+ * gcc.dg/tree-ssa/pr73714.c: New test.
+
2016-08-31 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/77393
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr73714.c b/gcc/testsuite/gcc.dg/tree-ssa/pr73714.c
new file mode 100644
index 0000000..40604b8
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr73714.c
@@ -0,0 +1,8 @@
+/* { dg-do compile { target lp64 } } */
+/* { dg-options "-O2 -fdump-tree-optimized-raw" } */
+
+int f(int a, int b){
+ return a * (int)(1L << b);
+}
+
+/* { dg-final { scan-tree-dump "mult_expr" "optimized" } } */