https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97292
--- Comment #14 from Jan Hubicka <hubicka at gcc dot gnu.org> --- So this really seems that the alias set 6 is not conflicting with alias sets 11 or 13. active_cell is struct active_cell_iterator active_cell; and the code around seems SRA injected MEM[(struct TriaRawIterator *)&active_cell] ={v} {CLOBBER}; MEM <struct DoFHandler *> [(struct DoFCellAccessor *)&active_cell] = cell$dof_handler_253; MEM <int> [(struct DoFCellAccessor *)&active_cell + 8B] = cell$8$present_level_242; MEM <int> [(struct DoFCellAccessor *)&active_cell + 12B] = cell$8$present_index_245; MEM <const struct Triangulation *> [(struct DoFCellAccessor *)&active_cell + 16B] = cell$8$tria_244; operator++ (&active_cell); MEM[(struct TriaRawIterator *)&D.17355].accessor = MEM[(const struct TriaRawIterator &)&active_cell].accessor; and we CSE is acrss the call Honza