SSE では、4 つの float を含む 128 ビットのレジスタがある場合、つまり
A = a b c d ('a','b','c','d' are floats and 'A' is a 128-bit SSE register)
と
B = e f g h
私が望むなら
C = a e b f
私は簡単に行うことができます:
C = _mm_unpacklo_ps(A,B);
同様に、私が望むなら
D = c g d h
できます:
D = _mm_unpackhi_ps(A,B);
double を含む AVX レジスタがある場合、単一の命令で同じことを行うことは可能ですか?
これらの組み込み関数がどのように機能するかに基づいて_mm256_unpacklo_pd()
、 、_mm256_shuffle_pd()
、_mm256_permute2f128_pd()
またはを使用できないことがわかっています_mm256_blend_pd()
。これら以外に使用できる指示はありますか、または上記の指示を組み合わせて使用する必要がありますか?