https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118950
--- Comment #4 from Robin Dapp <rdapp at gcc dot gnu.org> --- It indeed appears is if we need zeroing of the loaded gather values but bool type_mode_padding_p = TYPE_PRECISION (scalar_type) < GET_MODE_PRECISION (GET_MODE_INNER (mode)); is false. The last of the gathers has stale values which makes the final max reduction return a stale value as well. scalar_type is from a pattern here and unsigned char, same as mode. Maybe it's the bool pattern recognizer and we're looking at the wrong scalar type? Need to have a closer look.