https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101012
--- Comment #1 from David Binderman <dcb314 at hotmail dot com> --- Reduced C code seems to be: putRGBAAseparate8bittile_w(int *cp, unsigned char *g) { char *a, *r; unsigned *b; int _x; for (; _x; _x -= 8) { *cp++ = *r++ | (unsigned)*g++ << 8 | *b++ << 16 | (unsigned)*a++ << 24; *cp++ = *r++ | (unsigned)*g++ << 8 | *b++ << 16 | (unsigned)*a++ << 24; } } This bug seems strongly related to gcc bugzilla # 86179, which was # 446 on my list of 724.