1 /* { dg-do compile } */
2 /* { dg-options "-O3 -fdump-tree-ifcvt-blocks-details" } */
3 
foo(long * a)4 void foo (long *a)
5 {
6   int i;
7   for (i = 0; i < 100; i+=2)
8     {
9       long *p = &a[i+1];
10       if (a[i] == 0)
11 	{
12 	  *p = 2;
13 	  a[i] = 3;
14 	}
15       else
16 	{
17 	  *p = 3;
18 	  a[i] = 4;
19 	}
20     }
21 }
22 
23 /* { dg-final { scan-tree-dump "Applying if-conversion" "ifcvt" } } */
24 /* We insert into code
25    if (LOOP_VECTORIZED (...))
26    which is folded by vectorizer.  Both outgoing edges must have probability
27    100% so the resulting profile match after folding.  */
28 /* { dg-final { scan-tree-dump-times "Invalid sum of outgoing probabilities 200.0" 1 "ifcvt" } } */
29 /* { dg-final { scan-tree-dump-times "Invalid sum of incoming counts" 1 "ifcvt" } } */
30 
31