Test case for this issue:
public class app {
public static void main(String[] args) {
Integer cnt = 100;
if (args.length > 0) {
cnt = Integer.parseInt(args[0]);
}
for (int i = 0; i < cnt; i++) {
test(4558828911L,
4294967296L);
}
}
private static void test(long one, long two) {
while (true) {
if (one >= two) {
break;
}
}
}
}
OPTS="-XX:+PrintCompilation -XX:CompileOnly=app.test -XX:CompileCommand=quiet"
$JAVA_HOME/bin/java $OPTS app 10000
The issue is specific to 32-bit where C1 generated code enters infinite loop.