https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111268
--- Comment #10 from Richard Biener <rguenth at gcc dot gnu.org> --- Btw, we have (gdb) p debug (node) t.c:3:6: note: node 0x3f341d0 (max_nunits=1, refcnt=1) vector(2) long unsigned int t.c:3:6: note: op: VEC_PERM_EXPR t.c:3:6: note: stmt 0 _1 = BIT_FIELD_REF <values_7(D), 64, 0>; t.c:3:6: note: stmt 1 _4 = BIT_FIELD_REF <values_7(D), 64, 64>; t.c:3:6: note: lane permutation { 0[0] 0[1] } t.c:3:6: note: children 0x3f34260 $1 = void (gdb) p vtype $2 = <vector_type 0x7ffff6ca6bd0 svuint64_t> it looks like "compatibility" somehow requires/allows us to V_C_E the permuted argument to a fixed length vector? Otherwise vect_build_slp_tree_1 of course could check the BIT_FIELD_REF args are fixed length.