re PR tree-optimization/50727 (ICE with segfault in flow_bb_inside_loop_p)

PR tree-optimization/50727
        * tree-vect-patterns.c (vect_operation_fits_smaller_type): Add
        DEF_STMT to the list of statements to be replaced by the
        pattern statements.

From-SVN: r180060
This commit is contained in:
Ira Rosen 2011-10-16 13:47:54 +00:00 committed by Ira Rosen
parent a1f6ecb6d6
commit aede122782
4 changed files with 34 additions and 0 deletions

View File

@ -1,3 +1,10 @@
2011-10-16 Ira Rosen <ira.rosen@linaro.org>
PR tree-optimization/50727
* tree-vect-patterns.c (vect_operation_fits_smaller_type): Add
DEF_STMT to the list of statements to be replaced by the
pattern statements.
2011-10-16 Eric Botcazou <ebotcazou@adacore.com>
PR rtl-optimization/50615

View File

@ -1,3 +1,8 @@
2011-10-16 Ira Rosen <ira.rosen@linaro.org>
PR tree-optimization/50727
* gcc.dg/vect/pr50727.c: New test.
2011-10-16 Eric Botcazou <ebotcazou@adacore.com>
* gcc.dg/vla-23.c: New test.

View File

@ -0,0 +1,21 @@
/* { dg-do compile } */
typedef unsigned char uint8_t;
typedef unsigned long uint32_t;
void
f0a (uint32_t * __restrict__ result, uint32_t * arg2,
uint8_t * __restrict__ arg4)
{
int idx;
for (idx = 0; idx < 429; idx += 1)
{
uint32_t temp_9;
uint32_t temp_11;
temp_9 = ((-19 | arg4[idx]) >> arg2[idx]);
temp_11 = (((-19 ^ arg4[idx]) & arg2[idx]) ^ temp_9);
result[idx] = temp_11;
}
}
/* { dg-final { cleanup-tree-dump "vect" } } */

View File

@ -1003,6 +1003,7 @@ vect_operation_fits_smaller_type (gimple stmt, tree def, tree *new_type,
|| TREE_TYPE (gimple_assign_lhs (new_stmt)) != interm_type)
return false;
VEC_safe_push (gimple, heap, *stmts, def_stmt);
oprnd = gimple_assign_lhs (new_stmt);
}
else