1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-rtl-loop2_invariant" } */
3
4 volatile int x;
5 void
6 bar (int, char *, char *);
7 void
8 foo (int *a, int n, int k)
9 {
10 int i;
11
12 for (i = 0; i < n; i++)
13 {
14 if (__builtin_expect (x, 0))
15 bar (k / 5, "one", "two");
16 a[i] = k;
17 }
18 }
19
20 /* { dg-final { scan-rtl-dump "Don't move invariant from bb: .*out of loop" "loop2_invariant" } } */