1

Intelの記事から:

整数形式の変換は、画像およびビデオ アプリケーションで一般的に使用されます。たとえば、ピクセルの計算の前に RGBA を 4 バイトから 4 つの float に変換するときに使用できます。示されているように、1 つの SSE4 変換命令は、以前に 4 つの SIMD 命令が行ったのと同じことを行うことができます。

SSE2: 
pmovd xmm0, m32 
pxor xmm7, xmm7 
punpcklbw xmm0, xmm7 
punpcklwd xmm0, xmm7 
cvtdq2ps xmm0, xmm0

SSE4: 
pmovzxbd xmm0, m32 
cvtdq2ps xmm0, xmm0

誰かが私に完全な例を見せてもらえますか? どうもありがとう!

4

1 に答える 1

2

pmovzxbdは 32 ビット メモリ オペランドまたは 128 ビット sse レジスタでのみ機能し、汎用レジスタでは機能しないため、GPR から SSE への型変換または明示的なロードを挿入する必要があります。

__m128 convert_RGBA_to_float(float* rgba) {
    return  _mm_cvtepi32_ps( _mm_cvtepu8_epi32 ( *(__m128i*)rgba) );
}
于 2012-06-21T07:56:30.393 に答える