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