1

次のように定義された構造体があります。

struct HorStruct {
    uint64_t v[2][4];
    typedef uint64_t value_type;
    typedef uint64_t* iterator;
    typedef const uint64_t* const_iterator;
    typedef value_type& reference;
    typedef const value_type& const_reference;
    typedef size_t size_type;
    typedef ptrdiff_t difference_type;
    typedef uint64_t* pointer;
    typedef const uint64_t* const_pointer;
    typedef std::reverse_iterator<iterator> reverse_iterator;
    typedef std::reverse_iterator<const_iterator> const_reverse_iterator;};

AVX2 の _m256i 変数に最初の行をロードするにはどうすればよいですか?

4

1 に答える 1

4

_mm256_load_si256組み込みを使用します。Intel Intrinsics Guideの引用:

__m256i _mm256_load_si256 (__m256i const * mem_addr)

#include "immintrin.h"

[...] 説明256 ビットの整数データをメモリから dst にロードします。mem_addr は 32 バイト境界に揃える必要があります。そうしないと、一般保護例外が生成される場合があります。

アライメント要件が問題になる場合は、アライメントされていないバージョンを使用できます_mm256_loadu_si256。ただし、整列されたロードは大幅に高速になる可能性があることに注意してください。

于 2015-07-02T15:36:30.567 に答える