タグ

ブックマーク / qiita.com/fukushima1981 (1)

  • AVX/AVX2による整数のShuffleとPermute - Qiita

    Zen2,Zen3のメモリからのshuffleはUopsが1です.他は2になります. 説明 floatとは異なり,1つのレジスタの値を,128ビットの壁を超えずにintの整数を並べ替えます. floatの場合のpermute_psと同じ挙動をするため,immによる指定によってXMMとYMMの並びは同じになります. 同様に_MM_SHUFFLEでの指定が便利です. 以下にサンプルコードを示します. void test_shuffle_epi32() { __m256i a, d; a = _mm256_setr_epi32(0, 1, 2, 3, 4, 5, 6, 7); print_m256i_int(a); printf("\n"); d = _mm256_shuffle_epi32(a, _MM_SHUFFLE(3, 2, 1, 0)); print_m256i_int(d); d =

    AVX/AVX2による整数のShuffleとPermute - Qiita
  • 1