: _mm_srl_epi32를 잘못 사용하고 있습니까? 이 작은 코드 예제
__m128i twos = _mm_set_epi32(2,3,1,2);
__m128i foo = _mm_set_epi32(128,128,128,128);
__m128i shifted = _mm_srl_epi32(foo,twos);
는 "이동"은 각각 I가 두 값 32,16,64 4 개의 32 비트 정수 가득 기대하면서, 제로 가득, 32. 내재적 인 잘못을 사용하고 있습니까?
요소 별 이동을 원한다면 AMD의 XOP 또는 Intel의 AVX2 명령어가 필요합니다. – Mysticial
@Mysticial 필자는 SIMD가 기대하는 어떤 것들이 초기 SSE 버전에서는 사용 가능하지 않았으므로 (지금도 일부는 사용 가능하지 않음), 간단한 것 SSE 4.1에서만 사용할 수 있었던 32 비트 요소에 대한 4 요소 승수. 나는 이것이 단순히 비용 요소 (SIMD ALU를 CPU에 통합하기에는 너무 비싸다) 일지 궁금해한다 ... 분명히 그들은 이런 종류의 것들을 가져야 만한다. – TravisG