https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106688
--- Comment #10 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #4) > Oh yes out of ssa used the wrong coalescing: > Coalesce list: (24)buf_24 & (33)_33 [map: 9, 16] : Success -> 9 > > Just by accident. It's not by accident but triggered by # buf_25 = PHI <_33(6), buf_6(D)(2)> # size_27 = PHI <size_12(6), size_7(D)(2)> _10 = foo (buf_25, size_27); [tail call] return _10; the main issue is that we're not good at performing the right coalescing at RA time, esp. around IVs and sequences we want to if-convert. We could see to avoid coalescing vars defined in different loop levels, good heuristics are always welcome.