I have a question for you my dear C++ experts: in order to take advantage of SIMD it's enough to use some high level vectorised types, or compilers are not that good at inlining and you have to rely on intrinsics to do the ops?
I have generally only cared about simd for math. Having math types laid out in contiguous memory and implementing operations as loops tends to best hint to all compilers to auto vectorize. I find VS auto vectorizes the worst. I rarely feel perf pressure to write manually.