__m256 foo = mm256_fmadd_ps(a,b,c);
< /code>
Теперь я хочу вызвать inline void print (float) {...} < /code> для всех 8 поплавок. Похоже, что Intel < /em> AVX Innsicics сделает это довольно сложным: < /p>
print(_castu32_f32(_mm256_extract_epi32(foo, 0)));
print(_castu32_f32(_mm256_extract_epi32(foo, 1)));
print(_castu32_f32(_mm256_extract_epi32(foo, 2)));
// ...
< /code>
Но MSVC даже не имеет ни одной из этих двух внутренней. Конечно, я мог бы написать значения в память и загрузку оттуда, но я подозреваю, что на уровне сборки нет необходимости пропускать регистр.for(int i = 0; i !=8; ++i)
print(_castu32_f32(_mm256_extract_epi32(foo, i)))
< /code>
Но MSVC не понимает, что многие внутренние требуют < /em> цикла разворота. Как написать цикл по плаванию 8x32 в __m256 foo
Теперь я хочу вызвать inline void print (float) {...} < /code> для всех 8 поплавок. Похоже, что Intel < /em> AVX Innsicics сделает это довольно сложным: < /p>
Но MSVC даже не имеет ни одной из этих двух внутренней. Конечно, я мог бы написать значения в память и загрузку оттуда, но я подозреваю, что на уровне сборки нет необходимости пропускать регистр.for(int i = 0; i !=8; ++i) print(_castu32_f32(_mm256_extract_epi32(foo, i))) < /code>
Но MSVC не понимает, что многие внутренние требуют < /em> цикла разворота. Как написать цикл по плаванию 8x32 в __m256 foo [/code]?