Вход
Наше всё
Теги
codebook
无线电组件
Поиск
Опросы
Закон
Суббота
10 мая
О смысле всего сущего
0xFF
Средства и методы разработки
Мобильная и беспроводная связь
Блошиный рынок
Объявления
Микроконтроллеры
PLD, FPGA, DSP
AVR
PIC
ARM, RISC-V
Технологии
Кибернетика, автоматика, протоколы
Схемы, платы, компоненты
Средства и методы разработки
706492
Топик полностью
fk0
легенда
(18.10.2016 00:48, просмотров: 223)
ответил
Ксения
на
Так не годится, т.к. исходные массивы должны быть типа double. Т.е. каждый элемент в них - число, а вовсе не пакет из 4-х чисел. Правильно - копировать числа четверками из double-массивов в регистры ymm, а потом использовать параллельную пакетную
Ну у тебя-то на входе пакеты! vmovupd и vfmadd231pd работают с пакетами. А иначе есть vmovusd и vfmadd231sd.
[ZX]
Ответить
vmovusd и vmovapd грузят в длинный регистр данные с указанного им адреса, с ними как раз всё правильно. Проблема в ином - компилятор должен был сам догадаться о том, что double-массив можно обрабатывать четверками. При этом число элементов в
Ксения
(625 знак., 18.10.2016 01:04 - 01:11
)
Блин, только открыл ответ сказать, что происходит фактическое использование компилятора как туго управляемого ассемблера с попытками ему вталдычить, как именно он должен поступить — а всё уже сказано :-D
-
Николай Коровин
(18.10.2016 01:11
)