/* { dg-do compile { target aarch64*-*-* } } */ /* { dg-options "-O2 -ftree-loop-vectorize -funsafe-math-optimizations -march=armv8.2-a+sve -msve-vector-bits=256" } */ float foo(long n, float *x, int inc_x, float *y, int inc_y) { float dot = 0.0; int ix = 0, iy = 0; if (n < 0) { return dot; } int i = 0; while (i < n) { dot += y[iy] * x[ix]; ix += inc_x; iy += inc_y; i++; } return dot; } /* { dg-final { scan-assembler-not "smaddl" { target aarch64*-*-* } } } */