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