2013-05-06 3 views
1

특히 SSD2 uptil SSE4.x 명령어 세트에서 SIMD 명령어 (내장 함수)를 사용하여 비 가정 (두 가지 데이터 유형이 동일하지 않음) 비교를 수행 할 수 있습니까? . 즉 float 및 double? 또는 32 비트 및 64 비트 정수? 심지어 정수 등이있는 부동 소수점?SIMD를 사용한 비 균질 비교

답변

2

당신은 말하자면, 정수의 배열을 의미하고 그것을 double의 배열에있는 값과 비교하기를 원하십니까? 불행히도이를 달성하기 위해 일종의 변환을 수행해야합니다. 이를 수행하는 cvtXX2YY 명령어 그룹이 있으며, 내장 함수에서 사용할 수 있어야합니다. 올바른 변환을 수행하는 예를 선택하면됩니다. _mm_cvtpi32_ps -이 예제에서 볼 수 있듯이 4 개의 정수를 4 개의 부동 소수점으로 변환 할 수는 없습니다 ... 한 번에 2 개만 가능합니다. 이유를 묻지 마시오.

"하나의 정수와 하나의 부동 소수점을 다른 정수로 변환 할 수 있습니까?"라고 물으면, 사용할 수 없습니다.

+0

_mm_cvtepi32_ps는 CVTDQ2PS에 내장되어 있으며 4 개의 정수를 변환 할 수 있습니다. – MBo