]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: re PR tree-optimization/60502 (ICE reassociation and vector types.)
authorJakub Jelinek <jakub@gcc.gnu.org>
Mon, 5 May 2014 08:07:35 +0000 (10:07 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Mon, 5 May 2014 08:07:35 +0000 (10:07 +0200)
Backport from mainline
2014-03-12  Jakub Jelinek  <jakub@redhat.com>
    Marc Glisse  <marc.glisse@inria.fr>

PR tree-optimization/60502
* tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
instead of build_low_bits_mask.

* gcc.c-torture/compile/pr60502.c: New test.

2013-06-13  Marc Glisse  <marc.glisse@inria.fr>

* tree.c (build_all_ones_cst): New function.
* tree.h (build_all_ones_cst): Declare it.

2013-05-10  Marc Glisse  <marc.glisse@inria.fr>

* tree.c (build_minus_one_cst): New function.
* tree.h (build_minus_one_cst): Declare new function.

From-SVN: r210062

gcc/testsuite/gcc.c-torture/compile/pr60502.c [new file with mode: 0644]

diff --git a/gcc/testsuite/gcc.c-torture/compile/pr60502.c b/gcc/testsuite/gcc.c-torture/compile/pr60502.c
new file mode 100644 (file)
index 0000000..8dd2de4
--- /dev/null
@@ -0,0 +1,18 @@
+/* PR tree-optimization/60502 */
+
+typedef signed char v16i8 __attribute__ ((vector_size (16)));
+typedef unsigned char v16u8 __attribute__ ((vector_size (16)));
+
+void
+foo (v16i8 *x)
+{
+  v16i8 m1 = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 };
+  *x |= *x ^ m1;
+}
+
+void
+bar (v16u8 *x)
+{
+  v16u8 m1 = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 };
+  *x |= *x ^ m1;
+}