Commit 554f1948 by Jakub Jelinek Committed by Jakub Jelinek

re PR tree-optimization/48377 (miscompilation at -O3)

	PR tree-optimization/48377
	* tree-vect-data-refs.c (vector_alignment_reachable_p): Set
	is_packed to true even for types with smaller TYPE_ALIGN than
	TYPE_SIZE.

	* gcc.dg/vect/pr48377.c: New test.

From-SVN: r172172
parent ddf72388
2011-04-08 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/48377
* tree-vect-data-refs.c (vector_alignment_reachable_p): Set
is_packed to true even for types with smaller TYPE_ALIGN than
TYPE_SIZE.
2011-04-08 Richard Guenther <rguenther@suse.de>
PR bootstrap/48513
......
2011-04-08 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/48377
* gcc.dg/vect/pr48377.c: New test.
2011-04-07 Jason Merrill <jason@redhat.com>
* g++.dg/cpp0x/regress/call1.C: New.
......
/* PR tree-optimization/48377 */
/* { dg-do run } */
typedef unsigned int U __attribute__((__aligned__ (1), __may_alias__));
__attribute__((noinline, noclone)) unsigned int
foo (const char *s, int len)
{
const U *p = (const U *) s;
unsigned int f = len / sizeof (unsigned int), hash = len, i;
for (i = 0; i < f; ++i)
hash += *p++;
return hash;
}
char buf[64] __attribute__((aligned (32)));
int
main (void)
{
return foo (buf + 1, 26) != 26;
}
/* { dg-final { cleanup-tree-dump "vect" } } */
/* Data References Analysis and Manipulation Utilities for Vectorization.
Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
Free Software Foundation, Inc.
Contributed by Dorit Naishlos <dorit@il.ibm.com>
and Ira Rosen <irar@il.ibm.com>
......@@ -1110,6 +1110,9 @@ vector_alignment_reachable_p (struct data_reference *dr)
if (ba)
is_packed = contains_packed_reference (ba);
if (compare_tree_int (TYPE_SIZE (type), TYPE_ALIGN (type)) > 0)
is_packed = true;
if (vect_print_dump_info (REPORT_DETAILS))
fprintf (vect_dump, "Unknown misalignment, is_packed = %d",is_packed);
if (targetm.vectorize.vector_alignment_reachable (type, is_packed))
......
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