https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87358
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Here is a reduced testcase: void f(unsigned char timestamp, unsigned char * a) { while (1) { int check = (timestamp && *a); if (__builtin_expect((check == 0),1)) continue; } } ---- CUT --- Compile with -O3 -mcpu=thunderx2t99 . NOTE I can't reproduce it with a NON-UBUNTU GCC 7.3.0. Please report this to Ubuntu instead.