https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97706

--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
OK, so for the stores in the loop we end up with a bool pattern for the store
we don't support (eh):

t.i:24:14: note:   Starting SLP discovery for
t.i:24:14: note:     VIEW_CONVERT_EXPR<unsigned char>(arr[0]) = patt_88;
t.i:24:14: note:     VIEW_CONVERT_EXPR<unsigned char>(arr[1]) = patt_87;
t.i:24:14: note:     VIEW_CONVERT_EXPR<unsigned char>(arr[2]) = patt_30;
t.i:24:14: note:     VIEW_CONVERT_EXPR<unsigned char>(arr[3]) = patt_28;
t.i:24:14: note:     VIEW_CONVERT_EXPR<unsigned char>(arr[4]) = patt_26;
t.i:24:14: note:     VIEW_CONVERT_EXPR<unsigned char>(arr[5]) = patt_24;
t.i:24:14: note:     VIEW_CONVERT_EXPR<unsigned char>(arr[6]) = patt_22;
t.i:24:14: note:     VIEW_CONVERT_EXPR<unsigned char>(arr[7]) = patt_20;
t.i:24:14: note:     VIEW_CONVERT_EXPR<unsigned char>(arr[8]) = patt_18;
t.i:24:14: note:     VIEW_CONVERT_EXPR<unsigned char>(arr[9]) = patt_16;
t.i:24:14: note:     VIEW_CONVERT_EXPR<unsigned char>(arr[10]) = patt_14;
t.i:24:14: note:     VIEW_CONVERT_EXPR<unsigned char>(arr[11]) = patt_12;
t.i:24:14: note:     VIEW_CONVERT_EXPR<unsigned char>(arr[12]) = patt_10;
t.i:24:14: note:     VIEW_CONVERT_EXPR<unsigned char>(arr[13]) = patt_8;
t.i:24:14: note:     VIEW_CONVERT_EXPR<unsigned char>(arr[14]) = patt_6;
t.i:24:14: note:     VIEW_CONVERT_EXPR<unsigned char>(arr[15]) = patt_4;
t.i:24:14: note:   Build SLP for VIEW_CONVERT_EXPR<unsigned char>(arr[0]) =
patt_88;
t.i:24:14: note:   get vectype for scalar type (group size 16): _Bool
t.i:24:14: note:   vectype: vector(16) unsigned char
t.i:24:14: note:   nunits = 16
t.i:24:14: missed:   Build SLP failed: operation unsupported
VIEW_CONVERT_EXPR<unsigned char>(arr[0]) = patt_88;
t.i:24:14: note:   SLP discovery failed

where the issue is that we have pattern detection follow DR group analysis
for SLP vectorization so the above do not look as DR group to
vect_analyze_slp_instance_1.

Reply via email to