https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96015
--- Comment #23 from Sergei Trofimovich <slyfox at inbox dot ru> --- cvise managed to shrink example down to the following: """ int b, c; int a() __attribute__((noipa)); int a(int *d, int *f, int g) { int e; if (d == f) e = 0; else e = 1; switch (g) { case 0: return e; case 1: case 3: case 5: if (e) return 10; default: __builtin_unreachable(); } } int main() { return a(&b, &c, 0); } """ $ hppa2.0-unknown-linux-gnu-gcc -O2 bug_test.c -o bad; ./bad; echo $? 0 $ hppa2.0-unknown-linux-gnu-gcc -O2 bug_test.c -o good -fno-delayed-branch; ./good; echo $? 1 gcc-9.2.0 returns '1' in both cases. I'll bisect gcc against this example.