https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121726
--- Comment #8 from Andrew Pinski <pinskia at gcc dot gnu.org> --- The other thing to note is SRA is doing something wrong after the call to thashx4.part.0.constprop. ``` MEM <uint128_t> [(char * {ref-all})&ctx] = _2; thashx4.part.0.constprop (sg_7(D), sg_7(D), sg_7(D), sg_7(D), &ctx.pub_seed[0]); ... _25 = MEM <uint128_t> [(char * {ref-all})&ctx]; ``` SRA does not reload ctx after thashx4.part.0.constprop either: ``` _2 = MEM <uint128_t> [(char * {ref-all})sk_5(D)]; ctx_14 = _2; MEM[(struct *)&ctx] = ctx_14; thashx4.part.0.constprop (sg_7(D), sg_7(D), sg_7(D), sg_7(D), &ctx.pub_seed[0]); ... _25 = ctx_14; ``` I think this is due to modref saying that won't store to the aliasing sets of ctx.