LINUX.ORG.RU

История изменений

Исправление SZT, (текущая версия) :

Это слишком низкоуровневая фигня. Сейчас мне приходится для некоторых функций иметь 2 варианта — с SSE-шнягой из этих хедеров и «обычный», где я работаю с массивами. А хотелось бы более кроссплатформенно и высокоуровнево. Чтобы если на машине нет SIMD-инструкций компилялся «обычный» код, если есть — SIMD

У GCC есть vector extension, который поддерживается также и в clang. https://gcc.gnu.org/onlinedocs/gcc/Vector-Extensions.html https://clang.llvm.org/docs/LanguageExtensions.html#vector-literals. Но это не годится т.к. этот vector extension опять-таки работает далеко не на всех платформах, и надо будет мутить какие-то костыли с ифдефами

Интеловский компилятор ICC этого не поддерживает. Интели изобретали какой-то свой особый Intel® Cilk™ Plus https://habr.com/ru/company/intel/blog/204838/, однако из GCC его в итоге выпилили https://www.phoronix.com/scan.php?page=news_item&px=Cilk-Plus-GCC-Dropping

В Clang этот cilk никогда вроде бы и не поддерживался официально, http://cilk.mit.edu/download/ https://cilkplus.github.io/ вот что-то нагуглилось, там патченный LLVM используют.

Про всякие вижуалстудии и прочие проприетарные компиляторы ничего сказать не могу. Стандартного решения вроде как нет

Исходная версия SZT, :

Это слишком низкоуровневая фигня. Сейчас мне приходится для некоторых функций иметь 2 варианта — с SSE-шнягой из этих хедеров и «обычный», где я работаю с массивами. А хотелось бы более кроссплатформенно и высокоуровнево. Чтобы если на машине нет SIMD-инструкций компилялся «обычный» код, если есть — SIMD

У GCC есть vector extension, который поддерживается также и в clang. https://gcc.gnu.org/onlinedocs/gcc/Vector-Extensions.html https://clang.llvm.org/docs/LanguageExtensions.html#vector-literals

Интеловский компилятор ICC этого не поддерживает. Интели изобретали какой-то свой особый Intel® Cilk™ Plus https://habr.com/ru/company/intel/blog/204838/, однако из GCC его в итоге выпилили https://www.phoronix.com/scan.php?page=news_item&px=Cilk-Plus-GCC-Dropping

В Clang этот cilk никогда вроде бы и не поддерживался официально, http://cilk.mit.edu/download/ https://cilkplus.github.io/ вот что-то нагуглилось, там патченный LLVM используют.

Про всякие вижуалстудии и прочие проприетарные компиляторы ничего сказать не могу. Стандартного решения вроде как нет