Commit a989bcc3 by Ilya Enkovich Committed by Ilya Enkovich

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

re PR tree-optimization/68305 (ICE on valid code at -O3 on x86_64-linux-gnu: tree check: expected class ‘expression’, have ‘exceptional’ (ssa_name) in tree_operand_check, at tree.h:3436)

gcc/

	PR tree-optimization/68305
	* tree-vect-slp.c (vect_get_constant_vectors): Support
	COND_EXPR with SSA_NAME as a condition.

gcc/testsuite/

	PR tree-optimization/68305
	* gcc.dg/vect/pr68305.c: New test.

From-SVN: r230252
parent 02215d8f
2015-11-12 Ilya Enkovich <enkovich.gnu@gmail.com>
PR tree-optimization/68305
* tree-vect-slp.c (vect_get_constant_vectors): Support
COND_EXPR with SSA_NAME as a condition.
2015-11-12 Eric Botcazou <ebotcazou@adacore.com>
* config/visium/visium-protos.h (notice_update_cc): Delete.
2015-11-12 Ilya Enkovich <enkovich.gnu@gmail.com>
PR tree-optimization/68305
* gcc.dg/vect/pr68305.c: New test.
2015-11-12 Eric Botcazou <ebotcazou@adacore.com>
* gcc.target/i386/pr67265-2.c: New test.
......
/* { dg-do compile } */
/* { dg-additional-options "-O3" } */
/* { dg-additional-options "-mavx2" { target avx_runtime } } */
int a, b;
void
fn1 ()
{
int c, d;
for (; b; b++)
a = a ^ !c ^ !d;
}
......@@ -2740,18 +2740,20 @@ vect_get_constant_vectors (tree op, slp_tree slp_node,
switch (code)
{
case COND_EXPR:
if (op_num == 0 || op_num == 1)
{
tree cond = gimple_assign_rhs1 (stmt);
{
tree cond = gimple_assign_rhs1 (stmt);
if (TREE_CODE (cond) == SSA_NAME)
op = gimple_op (stmt, op_num + 1);
else if (op_num == 0 || op_num == 1)
op = TREE_OPERAND (cond, op_num);
}
else
{
if (op_num == 2)
op = gimple_assign_rhs2 (stmt);
else
op = gimple_assign_rhs3 (stmt);
}
else
{
if (op_num == 2)
op = gimple_assign_rhs2 (stmt);
else
op = gimple_assign_rhs3 (stmt);
}
}
break;
case CALL_EXPR:
......
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