Commit 10b96810 by Andrew Pinski

re PR tree-optimization/28952 (tree check: expected class 'expression', have…

re PR tree-optimization/28952 (tree check: expected class 'expression', have 'exceptional' (ssa_name) in vectorizable_condition, at tree-vect-transform.c:2122)

2006-09-05  Andrew Pinski  <pinskia@physics.uc.edu>

        PR tree-opt/28952
        * tree-vect-transform.c (vectorizable_condition): Move the check
        for the type after the check for simple condition.
2006-09-05  Andrew Pinski  <pinskia@physics.uc.edu>

        PR tree-opt/28952
        * gcc.dg/vect/pr28952.c: New test.

From-SVN: r116716
parent 5df1740d
2006-09-05 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/28952
* tree-vect-transform.c (vectorizable_condition): Move the check
for the type after the check for simple condition.
2006-09-05 J"orn Rennecke <joern.rennecke@st.com>
Kaz Kojima <kkojima@gcc.gnu.org>
......@@ -20,10 +26,10 @@
2006-09-05 Anatoly Sokolov <aesok@post.ru>
* config/avr/avr.c (avr_mcu_types): Add support for at90pwm1 device.
* config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
(avr_rtx_costs): Mark 'outer_code' argument with ATTRIBUTE_UNUSED.
* config/avr/avr.c (avr_mcu_types): Add support for at90pwm1 device.
* config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
(avr_rtx_costs): Mark 'outer_code' argument with ATTRIBUTE_UNUSED.
2006-09-05 Richard Guenther <rguenther@suse.de>
......
2006-09-05 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/28952
* gcc.dg/vect/pr28952.c: New test.
2006-09-05 Richard Guenther <rguenther@suse.de>
PR tree-optimization/28900
/* { dg-do compile } */
/* We were ICE because we wanted to check the type of the
elements of a conditional before we knew it was a conditional. */
struct player_spaceship
{
_Bool structure[32];
};
struct player
{
struct player_spaceship spaceship;
};
struct packet_spaceship_info
{
char structure[32 + 1];
};
send_spaceship_info (void)
{
int j;
struct player *pplayer;
struct packet_spaceship_info info;
struct player_spaceship *ship = &pplayer->spaceship;
for (j = 0; j < 32; j++)
{
info.structure[j] = ship->structure[j] ? '1' : '0';
}
lsend_packet_spaceship_info (&info);
}
......@@ -2117,14 +2117,14 @@ vectorizable_condition (tree stmt, block_stmt_iterator *bsi, tree *vec_stmt)
then_clause = TREE_OPERAND (op, 1);
else_clause = TREE_OPERAND (op, 2);
if (!vect_is_simple_cond (cond_expr, loop_vinfo))
return false;
/* We do not handle two different vector types for the condition
and the values. */
if (TREE_TYPE (TREE_OPERAND (cond_expr, 0)) != TREE_TYPE (vectype))
return false;
if (!vect_is_simple_cond (cond_expr, loop_vinfo))
return false;
if (TREE_CODE (then_clause) == SSA_NAME)
{
tree then_def_stmt = SSA_NAME_DEF_STMT (then_clause);
......
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