https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88149
--- Comment #9 from Richard Biener <rguenth at gcc dot gnu.org> --- So it's a very old issue. We have t.ii:54:24: note: node 0x3d755c0 t.ii:54:24: note: stmt 0 _32 = _12 unord _42 ? _34 : _42; t.ii:54:24: note: stmt 1 _7 = _12 unord _42 ? _36 : _12; t.ii:54:24: note: children 0x3d74f40 0x3d8a180 0x3d75580 0x3d8a3c0 t.ii:54:24: note: node 0x3d8a180 t.ii:54:24: note: stmt 0 _42 = _5 - _3; t.ii:54:24: note: stmt 1 _42 = _5 - _3; t.ii:54:24: note: children 0x3d74f80 0x3d8a140 t.ii:54:24: note: node (external) 0x3d8a3c0 t.ii:54:24: note: stmt 0 _42 = _5 - _3; t.ii:54:24: note: stmt 1 _12 = _38 + _46; so you can see that the same scalar stmt _42 = _5 - _3 is used in two SLP nodes (that's fine) but the two nodes have different DEF type. That's only fine if they are not "live" at the same time... Testing patch.