https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108992
--- Comment #6 from Nikita Kniazev <nok.raven at gmail dot com> ---
> Did you see this in real code or you just noticed this while looking at code
> generation?
If you mean do I have any benchmark - unfortunately no. I noticed it for a
while by poking different code to compare Clang codegen to GCC.
> In the first case GCC predicts that the cond is going to be true 66% of the
> time
The 66% thing is what I also noticed for a while.
> because there is comparison against 0 prediction going in the heurstics.
The duplication happens even if I make cond int and compare with any other
value
void use(int *);
void use2(int *);
void foo(int * p, int cond)
{
if (cond == 789) {
use(p);
}
use2(p);
}