https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117484
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- So we're trying to check whether we can generate { 0, ?, 0 } where '?' is from the gap lane (d[j-1]) mask part, so we don't really care. I'm going to try the optimistic route here and ignore the gap for the uniform check but that gets us to #1 0x0000000001cbc18a in vect_build_slp_tree_2 (vinfo=0x4647160, node=0x46d7da0, stmts=..., group_size=3, max_nunits=0x7fffffff66f0, matches=0x7fffffff9040, limit=0x7fffffffc330, tree_size=0x7fffffff6b9c, bst_map=0x468d710) at /home/rguenther/src/gcc/gcc/tree-vect-slp.cc:2024 2024 gcc_assert (!any_permute); the assert is only considering the unpermuted load we create but not the SLP sub-graph we build for the mask which could end in a permute even when there are do-not-care lanes involved. I'm testing a slight re-org there.