https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63679
--- Comment #13 from Tejas Belagod <belagod at gcc dot gnu.org> --- (In reply to rguent...@suse.de from comment #12) > On Fri, 21 Nov 2014, belagod at gcc dot gnu.org wrote: > > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63679 > > > > --- Comment #11 from Tejas Belagod <belagod at gcc dot gnu.org> --- > > (In reply to Andrew Pinski from comment #8) > > > (In reply to Tejas Belagod from comment #7) > > > > I tried this, but it still doesn't seem to fold for aarch64. > > > > > > > > So, here is the DOM trace for aarch64: > > > > > > > > Optimizing statement a = *.LC0; > > > > > > Why do we get LC0 in the first place? It seems like it is happening > > > because > > > of some cost model issue with MOVECOST. > > > > > > > Can the cost model affect something as early as gimple? > > Through CLEAR_RATIO and can_move_by_pieces (and for complex stuff > initializer_constant_valid_p). I think it's mostly can_move_by_pieces > here. Ah, jgreenhalgh just did some move_by_pieces restructuring recently.