1
如果我在內存中有以下雙打(按順序),我希望能夠執行以下操作:在avx中執行等效於_mm_loaddup_pd的功能的最快方法是什麼?
A-> a1 | B1 | A2 | B2
__m256d r1,im1;
/*Perform operation here*/
r1-> |a2|a2|a1|a1|
im1-> |b2|b2|b1|b1|
一種方法我能想到的是:
t1 = _mm256_load_pd(&A);t1->|b2|a2|b1|a1|
r1 = _mm256_movedup_pd(t1);
t1 = _mm256_permute_pd(&A,0x0101);
im1 = _mm256_movedup_pd(t1);
AVX沒有_mm_loaddup_pd()或_mm_load1_pd()。那麼,我可以執行此操作的最快捷方式是什麼(就延遲而言,不一定是指令數量而言)?
你有什麼有相當不錯的了。我不確定是否有可能做得更好。 – Mysticial 2013-02-28 08:56:24