Commit dea60b59 by Jakub Jelinek Committed by Jakub Jelinek

re PR tree-optimization/70916 (gcc ICE at -O3 on valid code on x86_64-linux-gnu…

re PR tree-optimization/70916 (gcc ICE at -O3 on valid code on x86_64-linux-gnu in "tree_operand_check")

	PR tree-optimization/70916
	* tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
	if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.

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

From-SVN: r235814
parent adedd5c1
2016-05-03 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/70916
* tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
PR target/49244
* tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
(optimize_atomic_bit_test_and): New function.
......
2016-05-03 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/70916
* gcc.c-torture/compile/pr70916.c: New test.
PR target/49244
* gcc.target/i386/pr49244-1.c: New test.
* gcc.target/i386/pr49244-2.c: New test.
......
/* PR tree-optimization/70916 */
int a, b, c, d, i, k;
int static *e = &b, *j;
int **f;
int static ***g = &f;
int *h;
void
fn1 ()
{
for (;;)
{
int l[1] = { };
int m = (__UINTPTR_TYPE__) l;
for (; d; d--)
{
int ****n;
int *****o = &n;
i = a & 7 ? : a;
*e = (((*o = &g) != (int ****) g) < h[c], 0) || k;
if (*e)
{
**n = &j;
*e = (__UINTPTR_TYPE__) h;
}
}
}
}
......@@ -3673,8 +3673,10 @@ vect_recog_mask_conversion_pattern (vec<gimple *> *stmts, tree *type_in,
if (!rhs1_type)
return NULL;
}
else
else if (COMPARISON_CLASS_P (rhs1))
rhs1_type = TREE_TYPE (TREE_OPERAND (rhs1, 0));
else
return NULL;
vectype2 = get_mask_type_for_scalar_type (rhs1_type);
......
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