Once fre5 resolves conditional of the guard block for the vectorized
loop, cfgcleanup removes the edge that bypasses it, adjusting the
other edge probability, but not the edge's dest's count. The blocks
get combined, and their counts are merged, but nothing adjusts the
counts of the block that lost an incoming edge.
The incoming counts remain inconsistent from that point on, and get
reported as "Invalid sum of incoming counts" in the tree dump where
vect-121.c checks for the absence of this error.
That was added in response to a fix for a vectorizer profile count
management problem. This is a different profile count management
problem, so it makes sense to silence this failure marking it as
expected.
for gcc/testsuite/ChangeLog
PR tree-optimization/119293
* gcc.dg/vect/vect-121.c: XFAIL on ia32.
}
/* { dg-final { scan-tree-dump "vectorized 1 loops" "vect" } } */
-/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" { xfail ia32 } } } */