Для того чтобы использовать всю прелесть SSE2 для работы с упакованными вещественными числами двойной точности нужно использовать __builtin_ia32_.... инструкции, сам компилер упаковывать данные неумеет (как я понял). так вот инструкцию запаковки я нашел:
v2df __builtin_ia32_loadhpd (v2df, double *)
1) мне не понятен смысл первого аргумента, кто знает нафига он там?
а вот распаковка получается как-то криво:
v2df __builtin_ia32_unpckhpd (v2df, v2df)
void __builtin_ia32_storeupd (double *, v2df)
2) с последней все понятно, а вот с unpckhpd не совсем понятно - зачем третий аргумент, и каково вообще их предназначение? Я кое о чем догадываюсь но только кое о чем..
3) На сколько мне изветно movhpd которую генерит __builtin_ia32_loadhpd двухсторянняя - ей можно как загружать в верхнюю часть xmm регистра 8 байт (подразумевается число с плавающей точкой двойной точности) так и выгружать вершние 8 байт регистра xmm в память. Внимание вопрос - это можно сделать при помощи __builtin_ia32_.... или нет? что-то я не нашел нужной инструкции в http://gcc.gnu.org/onlinedocs/gcc-4.3.0/gcc/X86-Built_002din-Functions.html#X...
4) Может кто знает где есть более менее нормальный хелпак по применению __builtin_ia32? Они конечно с ассемблером совпадают но как оказалось не всегда...
Ответ на:
А инструкцию читать не пробовали?
от Dselect
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
Каков вопрос, таков ответ.
от Dselect
Ответ на:
комментарий
от Dselect
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от Dselect
Ответ на:
комментарий
от anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Граждане девелоперы, поясните про опции gcc и SSE2 (2011)
- Форум [sse2]Пересборка GTK (2012)
- Форум Google Chromium, собирается без sse2, Gentoo (2012)
- Форум GCC без gcc :) (2007)
- Форум gcc (2021)