1 /* { dg-do compile } */
2 /* { dg-options "-O2 -funroll-loops -fdump-tree-cunroll-optimized -fdump-tree-optimized" } */
3
Test(void)4 int Test(void)
5 {
6 int c = 0;
7 const int in[4] = {4,3,4,4};
8 for (unsigned i = 0; i < 4; i++) {
9 for (unsigned j = 0; j < i; j++) {
10 if (in[i] == in[j])
11 break;
12 else
13 ++c;
14 }
15 }
16 return c;
17 }
18
19 /* { dg-final { scan-tree-dump-times "note:\[^\n\r\]*completely unrolled" 2 "cunroll" } } */
20 /* When SLP vectorization is enabled the following will fail because DOM
21 doesn't know how to deal with the vectorized initializer of in. */
22 /* DOM also doesn't know to CSE in[1] with in = *.LC0 thus the list of targets this fails. */
23 /* { dg-final { scan-tree-dump "return 1;" "optimized" { xfail { arm*-*-* powerpc-*-* } } } } */
24