Могу ли я определить указатель на функцию для _mm_load_ps
, _mm_store_ps
и т.п.?intel intrinsics - указатели функций для загрузки/хранения
Я думаю о чем-то вроде
float* x0; //param
...
__m128 (*load_x0)(float const *mem);
if((unsigned long)x0 & 15) load_x0 = &_mm_loadu_ps;
else load_x0 = &_mm_load_ps;
, но это приводит к
неопределенная ссылка на
_mm_load_ps
неопределенная ссылка на
_mm_loadu_ps
Интересно. Поэтому я получаю от использования выравниваемой нагрузки, когда это возможно, но вам нужно заплатить дополнительные накладные расходы за дополнительный вызов функции. Вы думаете, что окупится? – User1291
@ User1291 Нет, не будет. Нет никакой разницы между выровненными и невыложенными инструкциями (при использовании на выровненных данных) на всех, кроме нескольких очень старых микроархитектур. – fuz
@ User1291 Просто используйте неуравновешенные нагрузки для всего, и все будет хорошо. Контрольный показатель, когда есть сомнения. – fuz