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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|                            |2023-06-21
     Ever confirmed|0                           |1
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot 
gnu.org
            Summary|non-power-of-2 group size   |non-grouped load can be SLP
                   |can be vectorized for       |vectorized for 2-element
                   |2-element vectors case      |vectors case
             Status|UNCONFIRMED                 |ASSIGNED

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
typedef struct {
    double m1, m2, m3, m4, m5;
} the_struct_t;

double bar1 (the_struct_t*);

double foo (double* k, unsigned int n, the_struct_t* the_struct)
{
    unsigned int u;
    the_struct_t result;
    for (u=0; u < n; u++, k--) {
        result.m1 += (*k)*the_struct[u].m1;
        result.m2 += (*k)*the_struct[u].m2;
        result.m3 += (*k)*the_struct[u].m3;
        result.m4 += (*k)*the_struct[u].m4;
    }
    return bar1 (&result);
}

This has come up again as part of PR110062

Reply via email to