https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69403
--- Comment #3 from ktkachov at gcc dot gnu.org --- Self-contained testcase that works form -O2 -march=armv7-a -mthumb but aborts for -O2 -march=armv8-a -mthumb: int a, b, c; __attribute__ ((__noinline__)) int fn1 () { if ((b | (a != (a & c))) == 1) __builtin_abort (); return 0; } int main (void) { a = 5; c = 1; b = 6; return fn1 (); }