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.