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> 2015-11-12 Eric Botcazou <ebotcazou@adacore.com>
* config/visium/visium-protos.h (notice_update_cc): Delete. * 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> 2015-11-12 Eric Botcazou <ebotcazou@adacore.com>
* gcc.target/i386/pr67265-2.c: New test. * 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,11 +2740,12 @@ vect_get_constant_vectors (tree op, slp_tree slp_node, ...@@ -2740,11 +2740,12 @@ vect_get_constant_vectors (tree op, slp_tree slp_node,
switch (code) switch (code)
{ {
case COND_EXPR: 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); op = TREE_OPERAND (cond, op_num);
}
else else
{ {
if (op_num == 2) if (op_num == 2)
...@@ -2752,6 +2753,7 @@ vect_get_constant_vectors (tree op, slp_tree slp_node, ...@@ -2752,6 +2753,7 @@ vect_get_constant_vectors (tree op, slp_tree slp_node,
else else
op = gimple_assign_rhs3 (stmt); op = gimple_assign_rhs3 (stmt);
} }
}
break; break;
case CALL_EXPR: 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