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.

Reply via email to