Безопасно/возможно/рекомендуется ли приводить числа с плавающей запятой непосредственно к __m128
, если они выровнены по 16 байтам?
Я заметил, что использование _mm_load_ps
и _mm_store_ps
для «обертывания» необработанного массива добавляет значительные накладные расходы.
О каких потенциальных подводных камнях я должен знать?
РЕДАКТИРОВАТЬ:
На самом деле нет накладных расходов при использовании инструкций загрузки и сохранения, я перепутал некоторые числа, и поэтому я получил лучшую производительность. Даже несмотря на то, что мне удалось совершить УЖАСНОЕ манипулирование необработанными адресами памяти в экземпляре __m128
, когда я запускал тест, его завершение заняло В ДВА РАЗА БОЛЬШЕ без инструкции _mm_load_ps
, вероятно, возвращаясь к какому-то отказоустойчивому пути кода.