re PR tree-optimization/91665 (ICE in build_vector_from_val, at tree.c:1904)
PR tree-optimization/91665 * tree-vect-loop.c (vectorizable_reduction): Punt if base has type incompatible with the type of PHI result. * gcc.dg/vect/pr91665.c: New test. From-SVN: r275486
This commit is contained in:
parent
8b2d8beb9f
commit
44a06a7095
4 changed files with 30 additions and 1 deletions
|
@ -1,3 +1,9 @@
|
|||
2019-09-07 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR tree-optimization/91665
|
||||
* tree-vect-loop.c (vectorizable_reduction): Punt if base has type
|
||||
incompatible with the type of PHI result.
|
||||
|
||||
2019-09-07 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
||||
|
||||
PR target/91684
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2019-09-07 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR tree-optimization/91665
|
||||
* gcc.dg/vect/pr91665.c: New test.
|
||||
|
||||
2019-09-07 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
||||
|
||||
PR target/91684
|
||||
|
|
15
gcc/testsuite/gcc.dg/vect/pr91665.c
Normal file
15
gcc/testsuite/gcc.dg/vect/pr91665.c
Normal file
|
@ -0,0 +1,15 @@
|
|||
/* PR tree-optimization/91665 */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-additional-options "-Ofast" } */
|
||||
|
||||
short int v;
|
||||
|
||||
void
|
||||
foo (short int x, short int y)
|
||||
{
|
||||
short int *p = &v;
|
||||
|
||||
x = 1;
|
||||
while (x != 0)
|
||||
x += ++y || (*p = x);
|
||||
}
|
|
@ -6656,10 +6656,13 @@ vectorizable_reduction (stmt_vec_info stmt_info, gimple_stmt_iterator *gsi,
|
|||
gcc_assert (TREE_CODE (base) == INTEGER_CST
|
||||
&& TREE_CODE (step) == INTEGER_CST);
|
||||
cond_reduc_val = NULL_TREE;
|
||||
tree res = PHI_RESULT (STMT_VINFO_STMT (cond_stmt_vinfo));
|
||||
if (!types_compatible_p (TREE_TYPE (res), TREE_TYPE (base)))
|
||||
;
|
||||
/* Find a suitable value, for MAX_EXPR below base, for MIN_EXPR
|
||||
above base; punt if base is the minimum value of the type for
|
||||
MAX_EXPR or maximum value of the type for MIN_EXPR for now. */
|
||||
if (tree_int_cst_sgn (step) == -1)
|
||||
else if (tree_int_cst_sgn (step) == -1)
|
||||
{
|
||||
cond_reduc_op_code = MIN_EXPR;
|
||||
if (tree_int_cst_sgn (base) == -1)
|
||||
|
|
Loading…
Add table
Reference in a new issue