blob: 51e1080b9f4ae281b077fb9ec0cd71d08806fcec [file] [log] [blame]
/* { dg-options "-O2 -fdump-tree-optimized -fdump-ipa-profile-optimized" } */
int a[1000];
int b[1000];
int size=1;
int max=10000;
int
main()
{
int i;
for (i=0;i<max; i++)
{
__builtin_memcpy (a, b, size * sizeof (a[0]));
asm("");
}
return 0;
}
/* autofdo doesn't support value profiling for now: */
/* { dg-final-use-not-autofdo { scan-ipa-dump "Transformation done: single value 4 stringop" "profile"} } */
/* Really this ought to simplify into assignment, but we are not there yet. */
/* a[0] = b[0] is what we fold the resulting memcpy into. */
/* { dg-final-use-not-autofdo { scan-tree-dump " = MEM.*&b" "optimized"} } */
/* { dg-final-use-not-autofdo { scan-tree-dump "MEM.*&a\\\] = " "optimized"} } */