https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102517
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|rguenth at gcc dot gnu.org |rearnsha at gcc dot gnu.org CC| |rguenth at gcc dot gnu.org --- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- So gcc.target/aarch64/cpymem-q-reg_1.c remains - since it all started with your patch Richard, can you please see how to adjust the testcase? For me it now produces foo: .LFB0: .cfi_startproc adrp x1, src add x1, x1, :lo12:src adrp x0, dst add x0, x0, :lo12:dst ld1 {v0.16b - v1.16b}, [x1] st1 {v0.16b - v1.16b}, [x0] ret using OImode moves with "uint256_t" type. _2 = MEM <uint256_t> [(char * {ref-all})&src]; MEM <uint256_t> [(char * {ref-all})&dst] = _2; previously the C frontend didn't have such type and thus langhooks.type_for_size returned NULL. But now we do have the OImode integer mode and support for moving it [but the actual move ends up using vector registers].