re PR middle-end/56443 (internal compiler error: verify_gimple failed at -O[1-2] -ftree-vectorize)
PR tree-optimization/56443 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument to type_for_mode langhook. * gcc.dg/torture/pr56443.c: New test. From-SVN: r196277
This commit is contained in:
parent
bed152e374
commit
aca43c6c06
@ -1,3 +1,10 @@
|
||||
2013-02-26 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR tree-optimization/56443
|
||||
* tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
|
||||
overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
|
||||
to type_for_mode langhook.
|
||||
|
||||
2013-02-25 Matt Turner <mattst88@gmail.com>
|
||||
|
||||
* doc/invoke.texi: Document r4700.
|
||||
|
@ -1,3 +1,8 @@
|
||||
2013-02-26 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR tree-optimization/56443
|
||||
* gcc.dg/torture/pr56443.c: New test.
|
||||
|
||||
2013-02-25 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/56175
|
||||
|
29
gcc/testsuite/gcc.dg/torture/pr56443.c
Normal file
29
gcc/testsuite/gcc.dg/torture/pr56443.c
Normal file
@ -0,0 +1,29 @@
|
||||
/* PR tree-optimization/56443 */
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-ftree-vectorize" } */
|
||||
|
||||
extern void abort (void);
|
||||
typedef int myint __attribute__ ((__aligned__ (16)));
|
||||
|
||||
int a1[1024] __attribute__ ((__aligned__ (16)));
|
||||
int a2[1024] __attribute__ ((__aligned__ (16)));
|
||||
|
||||
__attribute__((noinline, noclone)) void
|
||||
test (int n, myint * __restrict__ p1, myint * __restrict__ p2)
|
||||
{
|
||||
while (n--)
|
||||
*p1++ = *p2++ + 1;
|
||||
}
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
int n;
|
||||
for (n = 0; n < 1024; n++)
|
||||
a2[n] = n;
|
||||
test (1024, a1, a2);
|
||||
for (n = 0; n < 1024; n++)
|
||||
if (a1[n] != a2[n] + 1)
|
||||
abort ();
|
||||
return 0;
|
||||
}
|
@ -6071,7 +6071,8 @@ get_vectype_for_scalar_type_and_size (tree scalar_type, unsigned size)
|
||||
/* We can't build a vector type of elements with alignment bigger than
|
||||
their size. */
|
||||
else if (nbytes < TYPE_ALIGN_UNIT (scalar_type))
|
||||
scalar_type = lang_hooks.types.type_for_mode (inner_mode, 1);
|
||||
scalar_type = lang_hooks.types.type_for_mode (inner_mode,
|
||||
TYPE_UNSIGNED (scalar_type));
|
||||
|
||||
/* If we felt back to using the mode fail if there was
|
||||
no scalar type for it. */
|
||||
|
Loading…
Reference in New Issue
Block a user