내장 함수를 시작하고 내 무지가 노출 된 것을 누르십시오. 여기에 내가보고있는 무슨의 인공 버전 (VS2015)입니다 :인텔 내장 팩 명령에 오해가 있습니다
__m128i test;
//test.m128i_u16[0] = 127;
//test.m128i_u16[1] = 128;
//test.m128i_u16[2] = 129;
//test.m128i_u16[3] = 130;
//test.m128i_u16[4] = 131;
//test.m128i_u16[5] = 132;
//test.m128i_u16[6] = 133;
//test.m128i_u16[7] = 134;
test.m128i_u16[0] = 50;
test.m128i_u16[1] = 70;
test.m128i_u16[2] = 90;
test.m128i_u16[3] = 110;
test.m128i_u16[4] = 50;
test.m128i_u16[5] = 70;
test.m128i_u16[6] = 90;
test.m128i_u16[7] = 110;
__m128i result = _mm_packus_epi16 (test, test);
그래서 마지막 명령 "개종자가에서 16 비트 정수를 포장와 b의 부호없는 포화를 사용하여 8 비트 정수를 포장하기 위해, 그리고 그 결과를 저장 in dst ".
- m128i_i8 char[16]
[0] 50 char
[1] 70 char
[2] 90 chara
[3] 110 char
[4] 50 char
[5] 70 char
[6] 90 char
[7] 110 char
[8] 50 char
[9] 70 char
[10] 90 char
[11] 110 char
[12] 50 char
[13] 70 char
[14] 90 char
[15] 110 char
을하지만 난 (주석 값 세트를 사용) 위의 입력을 교환하면, 그때 정수 결과 포화 보인다 것을 얻을 : I가 표시된대로 실행하면, 내가 기대하는 것을 얻을 -
을m128i_i8 char[16]
[0] 127 char
[1] -128 char
[2] -127 char
[3] -126 char
[4] -125 char
[5] -124 char
[6] -123 char
[7] -122 char
[8] 127 char
[9] -128 char
[10] -127 char
[11] -126 char
[12] -125 char
[13] -124 char
[14] -123 char
[15] -122 char
무엇이 여기에 있습니까? 해석, 잘못된 명령?
해당 입력 및 출력이 (가로 또는 세로로) 늘어서있는 테이블을 만들면 귀하의 질문이 훨씬 짧아지고 읽기 쉬워집니다. –