https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110280
--- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> --- I think this part of match is incorrect: (if (sel.series_p (0, 1, 0, 1)) { op0; } (if (sel.series_p (0, 1, nelts, 1)) { op1; } This is only true if type == TREE_TYPE (op0) (well compatible) ...