https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119145
--- Comment #1 from Tamar Christina <tnfchris at gcc dot gnu.org> --- The vectorizer seems confused. Vectorization fails, but seems to fail during SLP transform so the ifc loop is kept, but the statements not transformed. it then produces broken SSA: note: ***** Analysis succeeded with vector mode V4HI note: SLPing BB part note: Basic block will be vectorized using SLP optimized: basic block part vectorized using 8 byte vectors note: Vectorizing SLP tree: note: Root stmt: _21 = _15 + _20; note: node 0x275fc2f8 (max_nunits=2, refcnt=1) vector(2) int note: op template: _15 = _12 * _14; note: stmt 0 _15 = _12 * _14; note: stmt 1 _20 = _17 * _19; note: children 0x275fc000 0x275fc260 note: node (external) 0x275fc000 (max_nunits=1, refcnt=1) vector(2) int note: { _12, _19 } note: node (external) 0x275fc260 (max_nunits=2, refcnt=1) vector(2) int note: stmt 0 _14 = (int) _13; note: stmt 1 _17 = (int) _16; note: children 0x275fc428 note: node (external) 0x275fc428 (max_nunits=1, refcnt=1) note: { _13, _16 } note: ------>vectorizing SLP node starting from: _15 = _12 * _14; note: transform binary/unary operation. note: add new stmt: vect__15.15_35 = _24 * _30; note: vectorizing stmts using SLP. note: vectorized 0 loops in function. So it's kinda weird.. seems like it did partial BB vect during loop vect of an ifc'd loop.