mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-24 16:30:53 +08:00
re PR tree-optimization/64493 (ICE at -O3 on x86_64-linux-gnu)
2015-01-14 Richard Biener <rguenther@suse.de> PR tree-optimization/64493 PR tree-optimization/64495 * tree-vect-loop.c (vect_finalize_reduction): For double-reductions assign the proper vectorized PHI to the inner loop exit PHIs. * gcc.dg/vect/pr64493.c: New testcase. * gcc.dg/vect/pr64495.c: Likewise. From-SVN: r219579
This commit is contained in:
parent
f7d2b51386
commit
46b622cc24
@ -1,3 +1,10 @@
|
||||
2015-01-14 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/64493
|
||||
PR tree-optimization/64495
|
||||
* tree-vect-loop.c (vect_finalize_reduction): For double-reductions
|
||||
assign the proper vectorized PHI to the inner loop exit PHIs.
|
||||
|
||||
2015-01-14 Joey Ye <joey.ye@arm.com>
|
||||
|
||||
* config/arm/arm.c (arm_compute_save_reg_mask):
|
||||
|
@ -1,3 +1,10 @@
|
||||
2015-01-14 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/64493
|
||||
PR tree-optimization/64495
|
||||
* gcc.dg/vect/pr64493.c: New testcase.
|
||||
* gcc.dg/vect/pr64495.c: Likewise.
|
||||
|
||||
2015-01-13 Martin Uecker <uecker@eecs.berkeley.edu>
|
||||
|
||||
* gcc.dg/Warray-bounds-11.c: New test-case.
|
||||
|
31
gcc/testsuite/gcc.dg/vect/pr64493.c
Normal file
31
gcc/testsuite/gcc.dg/vect/pr64493.c
Normal file
@ -0,0 +1,31 @@
|
||||
/* { dg-do run } */
|
||||
|
||||
#include "tree-vect.h"
|
||||
|
||||
int a, b, c, d, e, f, g, h;
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
check_vect ();
|
||||
|
||||
for (; a; a--)
|
||||
for (d = 1; d <= 0; d++)
|
||||
for (; d;)
|
||||
if (h)
|
||||
{
|
||||
if (!g) __builtin_abort ();
|
||||
if (!0) __builtin_abort ();
|
||||
}
|
||||
|
||||
for (f = 4; f; f--)
|
||||
{
|
||||
for (b = 0; b < 2; b++)
|
||||
c |= 1;
|
||||
e |= c;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* { dg-final { cleanup-tree-dump "vect" } } */
|
35
gcc/testsuite/gcc.dg/vect/pr64495.c
Normal file
35
gcc/testsuite/gcc.dg/vect/pr64495.c
Normal file
@ -0,0 +1,35 @@
|
||||
/* { dg-do run } */
|
||||
|
||||
#include <assert.h>
|
||||
#include "tree-vect.h"
|
||||
|
||||
int a, b, c, d, e, f, g, i, j;
|
||||
static int *h = &e;
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
check_vect ();
|
||||
|
||||
for (; a;)
|
||||
for (; g; g++)
|
||||
for (; f; f++)
|
||||
if (j)
|
||||
{
|
||||
assert(b);
|
||||
assert(0);
|
||||
}
|
||||
for (i = 24; i; i--)
|
||||
{
|
||||
for (c = 0; c < 6; c++)
|
||||
d |= 1;
|
||||
*h |= d;
|
||||
}
|
||||
|
||||
if (e != 1)
|
||||
__builtin_abort ();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* { dg-final { cleanup-tree-dump "vect" } } */
|
@ -4580,7 +4580,10 @@ vect_finalize_reduction:
|
||||
&& !STMT_VINFO_LIVE_P (exit_phi_vinfo))
|
||||
|| double_reduc);
|
||||
|
||||
STMT_VINFO_VEC_STMT (exit_phi_vinfo) = epilog_stmt;
|
||||
if (double_reduc)
|
||||
STMT_VINFO_VEC_STMT (exit_phi_vinfo) = inner_phi;
|
||||
else
|
||||
STMT_VINFO_VEC_STMT (exit_phi_vinfo) = epilog_stmt;
|
||||
if (!double_reduc
|
||||
|| STMT_VINFO_DEF_TYPE (exit_phi_vinfo)
|
||||
!= vect_double_reduction_def)
|
||||
|
Loading…
x
Reference in New Issue
Block a user