https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93737
--- Comment #3 from Martin Sebor <msebor at gcc dot gnu.org> --- I was thinking for small N, the middle-end could make it work by emitting copies of the sequences using MEM_REFs, along these lines: char _2[N - 2]; _2 = MEM <char[N - 2]> [(char * {ref-all})&a + 1]; MEM <char[N - 2]> [(char * {ref-all})&a + 2] = _2;