コンパイラの警告 (レベル 1) C4556
組み込みイミディエイト引数 'value' は 'lowerbound - upperbound' の範囲を超えています
解説
組み込みはハードウェア命令に一致します。 ハードウェア命令では、定数をエンコードするためのビット数は固定です。 value が範囲外の場合、適切にエンコードされません。 コンパイラは余分なビットを切り捨てます。
例
次の例では C4556 が生成されます。
// C4556.cpp
// compile with: /W1
// processor: x86 IPF
#include <xmmintrin.h>
void test()
{
__m64 m;
_m_pextrw(m, 5); // C4556
}
int main()
{
}