Kann ich einen Funktionszeiger für _mm_load_ps
, _mm_store_ps
und dergleichen definieren?Intel intrinsics - Funktionszeiger laden/speichern
Ich denke an so etwas wie
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;
aber das führt zu
undefined reference to
_mm_load_ps
undefined reference to
_mm_loadu_ps
Interessant. Ich nutze also die ausgerichtete Last, wenn es möglich ist, muss aber einen Overhead für einen zusätzlichen Funktionsaufruf bezahlen. Glaubst du, dass sich das auszahlen wird? – User1291
@ User1291 Nein, wird es nicht. Es gibt keinen Unterschied zwischen ausgerichteten und nicht ausgerichteten Instruktionen (wenn sie auf ausgerichteten Daten verwendet werden) auf allen außer einigen sehr alten Mikroarchitekturen. – fuz
@ User1291 Verwenden Sie einfach nicht ausgerichtete Lasten für alles und es wird alles gut. Benchmark im Zweifelsfall. – fuz