https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64032
--- Comment #2 from Andrew Stubbs <ams at gcc dot gnu.org> --- When I configure for powerpc-linux-gnu, undefined-loop-2.c.003t.original contains this: if (((p != 0 ? (unsigned char) array1[i] != 0 : (unsigned char) array2[i] != 0) && i <= 4) && i <= 99) goto <D.2332>; else goto <D.2334>; When I configure for x86_64-linux-gnu, the same command and dump file contains this: if ((p != 0 ? (signed char) array1[i] != 0 : (signed char) array2[i] != 0) && i <= 4) goto <D.1837>; else goto <D.1839>; It looks like something has started optimizing the code really very early. This surprises me!