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.