https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126053
--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> --- I'll note that there's SLP nodes with quite some redundancy: namd557_pair_fail.cpp:113:20: note: op template: p_i_x_122 = _3 + _4; namd557_pair_fail.cpp:113:20: note: stmt 0 p_i_x_122 = _3 + _4; namd557_pair_fail.cpp:113:20: note: stmt 1 p_i_x_122 = _3 + _4; namd557_pair_fail.cpp:113:20: note: stmt 2 p_i_x_122 = _3 + _4; namd557_pair_fail.cpp:113:20: note: stmt 3 p_i_y_123 = _5 + _6; namd557_pair_fail.cpp:113:20: note: stmt 4 p_i_y_123 = _5 + _6; namd557_pair_fail.cpp:113:20: note: stmt 5 p_i_z_124 = _7 + _8; namd557_pair_fail.cpp:113:20: note: children 0x54bccb0 0x54bcd60 this is another side-effect of how we perform discovery. We also have SLP sub-graph overlaps like namd557_pair_fail.cpp:113:20: note: node 0x54bb600 (max_nunits=2, refcnt=1) const vector(2) double namd557_pair_fail.cpp:113:20: note: op template: _40 = *p_j_145.position.x; namd557_pair_fail.cpp:113:20: note: stmt 0 _40 = *p_j_145.position.x; namd557_pair_fail.cpp:113:20: note: stmt 1 _41 = *p_j_145.position.y; ... namd557_pair_fail.cpp:117:20: note: node (external) 0x54bca90 (max_nunits=4, refcnt=1) const vector(4) double namd557_pair_fail.cpp:117:20: note: stmt 0 _40 = *p_j_145.position.x; namd557_pair_fail.cpp:117:20: note: stmt 1 _41 = *p_j_145.position.y; namd557_pair_fail.cpp:117:20: note: stmt 2 _42 = *p_j_145.position.z; namd557_pair_fail.cpp:117:20: note: stmt 3 _41 = *p_j_145.position.y; where those are from different discovery roots, but we cost them together because they overlap but we do not attempt to merge the actual graphs.
