https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63679
--- Comment #12 from rguenther at suse dot de <rguenther at suse dot de> --- 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.