보다 큼,보다 작거나 같음에 대한 명령어가 이러한 함수와 함께 호출됨을 발견했습니다.mmintrin.h 또는 emmintrin.h에서 SSE 비교 명령어를 찾을 수 없습니까?
emmintrin
_mm_cmpeq_epi8 (__m128i __A, __m128i __B)
_mm_cmplt_epi8 (__m128i __A, __m128i __B)
_mm_cmpgt_epi8 (__m128i __A, __m128i __B)
mmintrin
_mm_cmpeq_pi8 (__m64 __m1, __m64 __m2)
_m_pcmpeqb (__m64 __m1, __m64 __m2)
_mm_cmpgt_pi8 (__m64 __m1, __m64 __m2)
_m_pcmpgtb (__m64 __m1, __m64 __m2)
하지만 이것들은 어떨까요? 그들은 어딘가에 SSE 내장 헤더에 있거나 인라인 어셈블러를 사용합니다. GCC를 제 컴파일러로 사용하기 때문에 다음과 같은 지시 사항이 좋은 예가 될 수 있습니다.
pcmpxxb - Compares 16 8bit integers.
코드 (위의 XX 부품) 비교 : 정수의 경우
le - Less than or equal to.
ne - Not equal.
nlt - Not less than.
nle - Not less than or equal to.
'작거나 같음'은 어떨까요? 그러면 인라인 어셈블리에서 코딩 될 것입니까? – pandoragami
'le'은 단지'gt'의 논리적 부정입니다. '_mm_cmgpt_epi8' 그리고 결과를 반전시킵니다 (필요한 경우). '_mm_xor_si128'을 사용합니다. –
단 하나가 아닌 두 가지 조작이 아닌가요? – pandoragami