https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98908
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Known to fail| |11.2.0 Known to work| |10.3.0, 12.0 --- Comment #11 from Andrew Pinski <pinskia at gcc dot gnu.org> --- How this was fixed on the trunk was SLP is now able to do: _8 = {_1, _3}; vect__2.4_9 = _8 & { 254, 128 }; Where it only did the store SLP and not the & before. SLP does it because we know vect-lowering will change it to: _7 = VIEW_CONVERT_EXPR<short unsigned int>(_8); _6 = _7 & 33022; _11 = VIEW_CONVERT_EXPR<vector(2) unsigned char>(_6); Next time when you file a bug please add what options you are using.