Comment by spockz
2 months ago
Is there some way to write unit tests for cases where you know vectorisation should have been applied? I guess micro benchmarks should cover the performance part. We have ArchUnit to cover code structures, it would be nice if something similar exists for generated assembly.
I've been begging for years for a a [[must_vectorize]] annotation that I can place before a loop I care about, and turn it into a compile error if the compiler can't figure it out.
Just don't do it like Rust inlining annotations:
<No annotation> – Gently suggests inlining
#[inline] - Really suggests inlining
#[inline(always)] – Really Really suggests inlining (still not guaranteed!)
https://nnethercote.github.io/perf-book/inlining.html
this would be amazing
The gcc torture test suite has for most vect/ tests ast checks to see such regressions. LLVM missed it.