Здравствуйте крутые програмеры! У меня такой вопрос - как оптимальнее умножить 2 комплексных числа используя инструкции sse2 movapd xmm0, qword ptr [eax] ; *p1r | *p1i movapd xmm1, qword ptr [eax+ebx*8] ; *p2r | *p2i загрузил 2 числа. Далее надо выполнить следующую последовательность действий: tr = p1r * p2r - p1i * p2i; ti = p1r * p2i + p1i * p2r; то есть перемножить числа: movapd xmm2, xmm0 mulpd xmm2, xmm1 вычесть из младшей половины старшую поменять местами старшую и младшую половины xmm1 опять перемножить сложить Как это все лучше всего осуществить? или есть более простой способ чем я описал?
Спасибо - уже сделал. Причем в 2-х выриантах и с sse2 и sse3 - последний вариант работает почти в 2 раза быстрее (есть такая волшебная команда addsubpd - как раз наверно для этого и создавали)
vital792 да там их всего-то не больше десятка. Именно А точнее содрали с 3DNow!+ Хотя я не помню точно, но 3днау кажется тоже с чего-то содрали