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].

Reply via email to