私だけ__m256i
のためである、_mm256_stream_load_si256()
を見つけることができます。 __m256d
をストリームロードする方法がないのですか?非時間ストリーミング・ロード組み込み関数(_mm256_stream_load_si256)の浮動小数点(__m256d)バージョンとは何ですか? AVX/AVX2で
次(積極的な鋳造)を行うための任意の障害物がある(私は、CPUのキャッシュを汚染することなく、それをロードしたいと思いますか)?
__m256d *pDest = /* ... */;
__m256d *pSrc = /* ... */;
/* ... */
const __m256i iWeight = _mm256_stream_load_si256(reinterpret_cast<const __m256i*>(pSrc));
const __m256d prior = _mm256_div_pd(*reinterpret_cast<const __m256d*>(&iWeight), divisor);
_mm256_stream_pd(reinterpret_cast<double*>(pDest), prior);
__m256dと__m256iの違いは何ですか? –
@MarekVitek、 '__m256d'は4つの' double'を含んでいます。 '__m256i'はuint8_t' /' int8_t' 32 '、16' uint16_t'/'int16_t'、8' uint32_t'/'int32_t'及び4 'uint64_t' /' int64_t'ための組合を含んでいます。したがって、これらは32バイト長であり、1 YMMレジスタを占有します。 –