Commit c888139c by Jakub Jelinek Committed by Jakub Jelinek

re PR tree-optimization/60502 (ICE reassociation and vector types.)

	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.

Co-Authored-By: Marc Glisse <marc.glisse@inria.fr>

From-SVN: r208507
parent b24ca895
2014-03-12 Jakub Jelinek <jakub@redhat.com> 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.
2014-03-12 Jakub Jelinek <jakub@redhat.com>
PR middle-end/60482 PR middle-end/60482
* tree-vrp.c (register_edge_assert_for_1): Don't add assert * tree-vrp.c (register_edge_assert_for_1): Don't add assert
......
2014-03-12 Jakub Jelinek <jakub@redhat.com> 2014-03-12 Jakub Jelinek <jakub@redhat.com>
Marc Glisse <marc.glisse@inria.fr>
PR tree-optimization/60502
* gcc.c-torture/compile/pr60502.c: New test.
2014-03-12 Jakub Jelinek <jakub@redhat.com>
PR middle-end/60482 PR middle-end/60482
* gcc.dg/vect/pr60482.c: New test. * gcc.dg/vect/pr60482.c: New test.
......
/* 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;
}
...@@ -806,8 +806,7 @@ eliminate_not_pairs (enum tree_code opcode, ...@@ -806,8 +806,7 @@ eliminate_not_pairs (enum tree_code opcode,
if (opcode == BIT_AND_EXPR) if (opcode == BIT_AND_EXPR)
oe->op = build_zero_cst (TREE_TYPE (oe->op)); oe->op = build_zero_cst (TREE_TYPE (oe->op));
else if (opcode == BIT_IOR_EXPR) else if (opcode == BIT_IOR_EXPR)
oe->op = build_low_bits_mask (TREE_TYPE (oe->op), oe->op = build_all_ones_cst (TREE_TYPE (oe->op));
TYPE_PRECISION (TREE_TYPE (oe->op)));
reassociate_stats.ops_eliminated += ops->length () - 1; reassociate_stats.ops_eliminated += ops->length () - 1;
ops->truncate (0); ops->truncate (0);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment