
MaximYanchenko <MaximYanchenko@yandex.ru> writes:
Does that seem like a reasonable use case?
In theory, yes. In practice, the code can stop working when you change a compiler (sometimes just a new version of the same compiler)
Oh yes. We are not immune to introducing bugs. :)
or something changes in the code around the loop, not mentioning the very usual case when somebody makes a simple and innocent-looking change to the loop code, and the auto-vectorizer silently switches off.
So "silently" sounds to me like a compiler bug. Most vectorizing compilers have ways of telling the user exactly what they did or did not do. In my opinion, a compiler that does not have this capability is of little use to the HPC user. In that case, she should use boost.simd. :)
I think explicitly using Boost.SIMD (or any other explicit solution like BLAS/MKL/whatever) is much more robust in practice.
For certain cases I would agree. But in most cases I would hope the compiler would do just as good a job, if not better. There are always counter-examples. :) -Dave