/* { dg-options "-O2 -fdump-tree-optimized -fdump-ipa-profile-optimized" } */ unsigned int a[1000]; unsigned int b = 256; unsigned int c = 1024; unsigned int d = 17; int main () { int i; unsigned int n; for (i = 0; i < 1000; i++) { a[i]=100*i; } for (i = 0; i < 1000; i++) { if (i % 2) n = b; else if (i % 3) n = c; else n = d; a[i] %= n; } return 0; } /* autofdo does not do value profiling so far */ /* { dg-final-use-not-autofdo { scan-ipa-dump "Transformation done: div/mod by constant 256" "profile" } } */ /* { dg-final-use { scan-tree-dump-not "Invalid sum" "optimized"} } */