Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > Аналоги intrin.h и emmintrin.h


Автор: marcusmae 30.6.2008, 01:43
Всем привет,

До сегодняшнего дня я не сомневался, что современные компиляторы поддерживают интринсики, т.е. в данном случае наборы функций для работы с процессорными расширениями SSE при возможности эмуляции на более старой технике. А, собственно, где же они у g++?  Если эти хедеры есть, то где их искать?

Автор: MAKCim 30.6.2008, 09:08
http://gcc.gnu.org/onlinedocs/gcc-3.4.0/gcc/X86-Built-in-Functions.html

Автор: marcusmae 1.7.2008, 00:12
Приветствую, MAKCim,

Спасибо за ценное указание. Нашёл некоторое соответствие :

Код

_mm_add_pd    __builtin_ia32_addpd
_mm_sub_pd    __builtin_ia32_subpd
_mm_mul_pd    __builtin_ia32_mulpd
_mm_div_pd    __builtin_ia32_divpd
_mm_loadu_pd    __builtin_ia32_loadupd
_mm_loaddup_pd    __builtin_ia32_loadddup
_mm_stream_pd    __builtin_ia32_movntpd


Всё объявил через #define. Аргументы вроде все такие же. Опции указал -msse, -msse2 и -msse3, однако на все __buildin компилятор говорит was not declared in this scope. Что-то забыл?..


Автор: marcusmae 1.7.2008, 00:42
Нее. Всё оказалось проще! Не нужно buildin-ов, они и так алиасятся с названиями _mm_<command>_<type>, но в других хедерах, а именно в http://www.google.com/search?hl=en&client=opera&rls=ru&hs=SCR&q=pmmintrin.h+__builtin_ia32_loadddup&btnG=Search для прескотовской _buildin_loadddup, а остальные - в http://www.google.com/search?hl=en&client=opera&rls=ru&hs=Dsl&q=xmmintrin.h+__builtin_ia32_addpd&btnG=Search. По кр мере с этим ошибки компиляции исчезли, надеюсь и с линкованием будет нормально.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)