Commit 3c9dbe18 by Ira Rosen Committed by Ira Rosen

re PR tree-optimization/37474 (vect_supported_slp_permutation_p memory corruption)

	PR tree-optimization/37474
	* tree-vect-analyze.c (vect_supported_load_permutation_p): Check the
	length of load permutation.

From-SVN: r140276
parent 5e9bd142
2008-09-11 Ira Rosen <irar@il.ibm.com>
PR tree-optimization/37474
* tree-vect-analyze.c (vect_supported_load_permutation_p): Check the
length of load permutation.
2008-09-11 Andreas Schwab <schwab@suse.de>
* config/m68k/m68k.h (IRA_COVER_CLASSES): Define.
......
2008-09-11 Ira Rosen <irar@il.ibm.com>
PR tree-optimization/37474
* gcc.dg/vect/pr37474.c: New test.
2008-09-11 Andreas Schwab <schwab@suse.de>
* gcc.target/m68k/xgot-1.c: Add -mcpu=5206 to select a ColdFire
......
/* { dg-do compile } */
/* { dg-require-effective-target vect_int } */
#include <stdarg.h>
#define M00 100
#define M10 216
#define M01 1322
#define M11 13
#define M02 74
#define M12 191
#define N 16
void foo (unsigned int *__restrict__ pInput, unsigned int *__restrict__ pOutput)
{
unsigned int i, a, b, c, d, e, f;
for (i = 0; i < N / 3; i++)
{
a = *pInput++;
b = *pInput++;
c = *pInput++;
d = *pInput++;
e = *pInput++;
f = *pInput++;
a = a + d;
b = b + e;
c = c + f;
*pOutput++ = M00 * a + M01 * b + M02 * c;
*pOutput++ = M10 * a + M11 * b + M12 * c;
}
}
/* { dg-final { cleanup-tree-dump "vect" } } */
......@@ -3200,6 +3200,10 @@ vect_supported_load_permutation_p (slp_instance slp_instn, int group_size,
/* FORNOW: the only supported permutation is 0..01..1.. of length equal to
GROUP_SIZE and where each sequence of same drs is of GROUP_SIZE length as
well. */
if (VEC_length (int, load_permutation)
!= (unsigned int) (group_size * group_size))
return false;
supported = true;
for (j = 0; j < group_size; j++)
{
......
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