4 パックfloat
( __m128
) で、SSE 組み込み関数を使用できます
__m128 X;
__m128 H = _mm_shuffle_ps(X,X,_MM_SHUFFLE(3,3,3,3));
のすべての要素H
を の 3 番目の要素に設定しますX
(これが最速の方法ですか?)
double
今、私は 4 パック( )で同じことをしたいです__m256d
。私は素朴にコーディングしました
__m256d X;
__m256d H = _mm256_shuffle_pd(X,X,_MM_SHUFFLE(3,3,3,3));
しかし、これは正しいことではありません。代わりに、H={X[1],X[1],X[3],X[3]} を設定します。
それで、それを正しく行う方法は?
編集
Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz を使用