There is an obvious bug in the lowering code when non-boolean integer value is expected. The existing code wrongly assumes the NE comparison's constant operand is always zero and also skips EQ predicate. This either produces wrong profile annotation or misses annotation.
Other predicate kinds should also be supported (separately).