https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102393
--- Comment #3 from Gabriel Ravier <gabravier at gmail dot com> ---
It seems odd that the equivalent 32-bit pattern, i.e. this:
void HeaderWriteU32LE(int offset, uint32_t value, uint8_t *RomHeader)
{
RomHeader[offset] = value;
RomHeader[offset + 1] = value >> 8;
RomHeader[offset + 2] = value >> 16;
RomHeader[offset + 3] = value >> 24;
}
is optimized to a single store, though, even though the 32-bit pattern for PR
102391 doesn't. It's why I made this a separate bug report, as I thought it
indicated a likely difference in the cause of the bug.