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

--- Comment #3 from Drea Pinski <pinskia at gcc dot gnu.org> ---
Another example:
```
double f(double* expr0, double* expr1, double* expr2, double* expr3, double*
c1, double* c2) {
    double t = 0.0;
    for (int i = 0; i < 1024; i++) {
        double distance = 0.0;
        double cc2 = c2[i];
        double t0 = expr0[i];
        double t1 = expr1[i];
        double t2 = expr2[i];
        double t3 = expr3[i];
        if (c1[i] <= 0.0)
            distance = t0/t1;
        else if (cc2 <= c1[i])
            distance = t0/t2;
        else
            distance = t0/t3;
        t += distance;
    }
    return t;
}
```

This can be vectorized with -march=armv9-a (on aarch64) but using a masked fdiv
but we should be able to vectorize with just neon too.

Reply via email to