blob: 1c7d5e07fb9e23097b263739a1af641de8ac4829 [file] [log] [blame]
/* PR target/59003 */
/* { dg-options "-O2" } */
/* { dg-options "-O2 -mtune=amdfam10" { target i?86-*-* x86_64-*-* } } */
/* { dg-options "-O2 -fno-common" { target hppa*-*-hpux* } } */
__attribute__((noinline, noclone)) void *
foo (void *p, unsigned int q)
{
return __builtin_memset (p, 0, q * 4UL);
}
char buf[128] __attribute__((aligned (32)));
int
main ()
{
int i;
for (i = 0; i < 100000; i++)
foo (buf + 4, 1 + (i & 1));
for (i = 0; i < 128; i++)
{
buf[i] = 'X';
asm volatile ("" : : : "memory");
}
foo (buf + 32, 7);
for (i = 0; i < 128; i++)
if (buf[i] != ((i < 32 || i >= 32 + 28) ? 'X' : 0))
__builtin_abort ();
return 0;
}