1 /* Verify that do_work is detected as being loop invariant.  */
2 /* { dg-do compile } */
3 /* { dg-options "-O3 -c -fdump-ipa-inline-details -fno-early-inlining"  } */
4 
5 struct bah {int a,b,d;};
6 
do_work(struct bah s)7 static int do_work (struct bah s)
8 {
9   return s.a*s.b/s.d;
10 }
foo(int invariant)11 int foo (int invariant)
12 {
13   int i;
14   struct bah s = {invariant,invariant,invariant};
15   int sum = 0;
16   for (i = 0; i<10; i++)
17     {
18       sum += do_work (s);
19     }
20   return sum;
21 }
22 
23 
24 /* { dg-final { scan-ipa-dump "Scaling time by probability:0.099900"  "inline"  } } */
25