https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100000

            Bug ID: 100000
           Summary: arm: Missed optimisation storing V4DF vector
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: acoplan at gcc dot gnu.org
  Target Milestone: ---

typedef float __attribute((vector_size(16))) v4sf;

v4sf f(v4sf *p)
{
    return *p;
}

gives:

f:
        vldrw.32        q0, [r0]
        sub     sp, sp, #32
        add     sp, sp, #32
        bx      lr

with -march=armv8.1-m.main+mve -mfloat-abi=hard -O2 but the sub/add is
redundant.

Reply via email to