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.