için tamsayı dizisi döküm için bir __m128i
öğe olarak __int16
diziyi temsil etmek deneyin. Döküm __m128i
öğesi __int16
dizisine güzel bir şekilde çalışır. Benim örnek kod: thisnasıl SIMD vektör
den
void example() {
__m128i v = _mm_set_epi16(1, 2, 3, 4, 5, 6, 7, 8);
__int16 *p_i = (__int16 *)&v;
for (int i = 0; i < 8; i++)
std::cout <<p_i[i] << " "; // 8 7 6 5 4 3 2 1
std::cout << "\n";
__int16 i2[8] = {1, 2, 3, 4, 5, 6, 7, 8};
__m128i *p_v2 = (__m128i *) i2;
std::cout << __m128i_toString<__int16>(p_v2[0])<< "\n"; //error here
}
__m128i_toString<>()
Ne kaçırdım? C
Hangi hatayı alıyorsunuz? Benim için iyi çalışıyor (ben __int16'dan 'int16_t'ye değiştirip gerekli' # include's'ı ekledikten sonra). –
Çalışma zamanı hatası. ": 0xC000005: IntelHi.exe içinde '0x000488d9' de işlenmeyen özel durum erişim ihlali '0xFFFFFFF' okuma" –
Oh - muhtemelen sadece hizalama sonra - Verilerinizi hizalamayı deneyin - __attribute __ ((hizalanmış (16))) 'eklemek' listenize ' __int16 dizisi bildirimi. –