3.6.3 : Manual vectorization (by Intrinsic functions)
The idea is to force the compiler to do what you want and how you want it.The Intel intrinsics documentation : https://software.intel.com/en-us/node/523351
- Some changes (for AVX2) :
- Include : immintrin.h
- float : __m256 (= 8 float)
- Data loading : _mm256_load_ps
- Data Storage : _mm256_store_ps
- Multiply : _mm256_mul_ps
Only on aligned data of course.
Let's create a main_intrinsics.cpp file.