SSE2 を使用して 16 x 8 ビットの符号なし整数をロードする次のコード行があるとします。
// ptr is a pointer to uint8_t array
__m128i b = _mm_load_si128((const __m128i*) ptr);
b
各 8 ビットの符号なし整数(合計 16 個) を 4 ビットの上位部分と 4 ビットの下位部分に分割したいと思います。どうやってやるの?
SSE2 を使用して 16 x 8 ビットの符号なし整数をロードする次のコード行があるとします。
// ptr is a pointer to uint8_t array
__m128i b = _mm_load_si128((const __m128i*) ptr);
b
各 8 ビットの符号なし整数(合計 16 個) を 4 ビットの上位部分と 4 ビットの下位部分に分割したいと思います。どうやってやるの?