Merge from trunk
[official-gcc.git] / gcc / testsuite / gcc.dg / tree-prof / pr59003.c
blobb4ca9ea856ec760e878f83db68090461354f6855
1 /* PR target/59003 */
2 /* { dg-options "-O2" } */
3 /* { dg-options "-O2 -mtune=amdfam10" { target i?86-*-* x86_64-*-* } } */
5 __attribute__((noinline, noclone)) void *
6 foo (void *p, unsigned int q)
8 return __builtin_memset (p, 0, q * 4UL);
11 char buf[128] __attribute__((aligned (32)));
13 int
14 main ()
16 int i;
17 for (i = 0; i < 100000; i++)
18 foo (buf + 4, 1 + (i & 1));
19 for (i = 0; i < 128; i++)
21 buf[i] = 'X';
22 asm volatile ("" : : : "memory");
24 foo (buf + 32, 7);
25 for (i = 0; i < 128; i++)
26 if (buf[i] != ((i < 32 || i >= 32 + 28) ? 'X' : 0))
27 __builtin_abort ();
28 return 0;