Hi! This has been fixed by the PR71311 r7-1170-g4618c453205f18 change.
Tested on x86_64-linux (also with gcc 6 where it ICEs), committed to trunk as obvious. 2020-04-21 Jakub Jelinek <ja...@redhat.com> PR c/94686 * gcc.c-torture/compile/pr94686.c: New test. --- gcc/testsuite/gcc.c-torture/compile/pr94686.c.jj 2020-04-21 12:44:51.039614140 +0200 +++ gcc/testsuite/gcc.c-torture/compile/pr94686.c 2020-04-21 12:44:11.444223427 +0200 @@ -0,0 +1,9 @@ +/* PR c/94686 */ + +int a = 0, b = 0; + +int +foo (void) +{ + return (int) (long) (b * 0 >= a & b * 0 >= a); +} Jakub