https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92596
--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Richard Biener from comment #6) > The second testcase still ICEs though, so investigating that. Which is more fun. We have group_size == vf == 1 here but V2SI as vectype. t2.c:17:1: note: Build SLP for _1 = b_2(D) == 0; t2.c:17:1: note: get vectype for scalar type (group size 2): int t2.c:17:1: note: vectype: vector(2) int ... t2.c:17:1: note: Final SLP tree for instance: t2.c:17:1: note: node 0x3721280 (max_nunits=2) t2.c:17:1: note: stmt 0 a.n[0] = _4; t2.c:17:1: note: stmt 1 a.n[1] = _4; t2.c:17:1: note: children 0x38dc8c0 t2.c:17:1: note: node 0x38dc8c0 (max_nunits=2) t2.c:17:1: note: stmt 0 _4 = (long int) _1; t2.c:17:1: note: stmt 1 _4 = (long int) _1; t2.c:17:1: note: children 0x38dcb10 t2.c:17:1: note: node 0x38dcb10 (max_nunits=2) t2.c:17:1: note: stmt 0 _1 = b_2(D) == 0; t2.c:17:1: note: stmt 1 _1 = b_2(D) == 0; t2.c:17:1: note: children 0x370ef50 0x371de80 t2.c:17:1: note: node (external) 0x370ef50 (max_nunits=1) t2.c:17:1: note: { b_2(D), b_2(D) } t2.c:17:1: note: node (constant) 0x371de80 (max_nunits=1) t2.c:17:1: note: { 0, 0 } t2.c:17:1: note: Build SLP for _1 = b_2(D) == 0; t2.c:17:1: note: get vectype for scalar type (group size 1): int t2.c:17:1: note: vectype: vector(1) int t2.c:17:1: note: nunits = 1 ... t2.c:17:1: note: Final SLP tree for instance: t2.c:17:1: note: node 0x38e3760 (max_nunits=1) t2.c:17:1: note: stmt 0 a.n[2] = _4; t2.c:17:1: note: children 0x38e3710 t2.c:17:1: note: node 0x38e3710 (max_nunits=1) t2.c:17:1: note: stmt 0 _4 = (long int) _1; t2.c:17:1: note: children 0x38e36c0 t2.c:17:1: note: node 0x38e36c0 (max_nunits=1) t2.c:17:1: note: stmt 0 _1 = b_2(D) == 0; t2.c:17:1: note: children 0x3721340 0x38e3670 t2.c:17:1: note: node (external) 0x3721340 (max_nunits=1) t2.c:17:1: note: { b_2(D) } t2.c:17:1: note: node (constant) 0x38e3670 (max_nunits=1) t2.c:17:1: note: { 0 } shoudn't updating of the shared vector type have failed? Ah, it gets QImode (boolean_type_node). Isn't that a bug? Anyway, will continue to dig next week unless somebody beats me to it.