http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46232
Richard Guenther <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Priority|P3 |P1 CC| |jamborm at gcc dot gnu.org --- Comment #5 from Richard Guenther <rguenth at gcc dot gnu.org> 2010-11-15 12:18:04 UTC --- On x86_64-linux early SRA manages to look through the single copy t = r_2(D)->v; D.2695_4 = t.e[1]; when scalarizing t and thus loads indirectly from r_2. On sparc we instead see D.1987 = r_2(D)->v; D.1986 = D.1987; D.2695_4 = D.1986.e[1]; and SRA doesn't manage to look through both. One might be able to create an equivalent testcase on x86_64 that doesn't rely on inlining or return-value optimization.