https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123316
--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> --- This is a nested cycle involving bools which we somehow mishandle. t.c:4:10: note: Analyze phi: b_I_lsm.5_22 = PHI <_5(9), b_I_lsm.5_18(6)> t.c:4:10: note: detected nested cycle: _5 = _4 != 0; t.c:4:10: note: Detected vectorizable nested cycle. t.c:4:10: note: using normal nonmask vectors for b_I_lsm.5_22 = PHI <_5(9), b_I_lsm.5_18(6)> t.c:4:10: note: using boolean precision 32 for _5 = _4 != 0; t.c:4:10: note: using boolean precision 32 for _7 = PHI <_5(4)> t.c:4:10: note: using boolean precision 32 for b_I_lsm.5_22 = PHI <_5(9), b_I_lsm.5_18(6)> but the load/store are data and we do t.c:4:10: note: vect_recog_bool_pattern: detected: _2 = (int) b_I_lsm.5_22; t.c:4:10: note: bool pattern recognized: patt_30 = b_I_lsm.5_22 ? 1 : 0; t.c:4:10: note: vect_recog_bool_pattern: detected: b[c_19] = _7; t.c:4:10: note: bool pattern recognized: VIEW_CONVERT_EXPR<unsigned char>(b[c_19]) = patt_28; t.c:4:10: note: extra pattern stmt: patt_29 = (<signed-boolean:8>) _7; t.c:4:10: note: extra pattern stmt: patt_28 = patt_29 ? 1 : 0; That seems correct, but we fail to detect a required bool pattern for the PHI use of the b_I_lsm.5_18 = b[c_19] load.
