_mm_hsubw_epi8

업데이트: 2011년 3월

Visual Studio 2010 SP1이 필요합니다.

Microsoft 전용

XOP 명령 vphsubbw를 생성하여 소스의 정수 가로 빼기를 수행합니다.

__m128i _mm_hsubw_epi8 (
   __m128i src
); 

매개 변수

  • [in] src
    16개의 8비트 부호 있는 정수를 포함하는 128비트 매개 변수입니다.

반환 값

8개의 16비트 부호 있는 정수를 포함하는 128비트 결과 r입니다.

r[i] := src[2*i] - src[2*i+1];

요구 사항

내장

아키텍처

_mm_hsubw_epi8

XOP

헤더 파일 <intrin.h>

설명

src의 8비트 부호 있는 정수 값의 각 8개 짝수-홀수 인덱싱된 쌍에 대해 대상에 해당 값으로 저장되는 16비트 부호 있는 정수 결과를 생성하도록 하위 값에서 상위 값을 뺍니다.

vphsubbw 명령은 XOP 명령군의 일부입니다. 이 intrinsic을 사용하기 전에 프로세서가 이 명령을 지원하는지 확인해야 합니다. 이 명령에 대한 하드웨어 지원을 확인하려면 InfoType = 0x80000001을 사용하여 __cpuid intrinsic을 호출하고 CPUInfo[2] (ECX)의 비트 11을 확인합니다. 명령이 지원되는 경우 비트는 1이고, 그렇지 않으면 0입니다.

예제

#include <stdio.h>
#include <intrin.h>
int main()
{
    __m128i a, d;
    int i;
    for (i = 0; i < 16; i++) {
        a.m128i_i8[i] = ((11*i) % 31) - 16;
    }
    d = _mm_hsubw_epi8(a);
    for (i = 0; i < 16; i++) printf_s(" %3d", a.m128i_i8[i]);
    printf_s("\n");
    for (i = 0; i < 8; i++) printf_s(" %7d", d.m128i_i16[i]);
    printf_s("\n");
}
  -16  -5   6 -14  -3   8 -12  -1  10 -10   1  12  -8   3  14  -6
    -11      20     -11     -11      20     -11     -11      20

참고 항목

참조

__cpuid, __cpuidex

기타 리소스

_mm_hsubd_epi16

_mm_hsubq_epi32

_mm_haddw_epi8

Visual Studio 2010 SP1용으로 추가된 XOP 내장 함수

변경 기록

날짜

변경 내용

이유

2011년 3월

이 내용이 추가되었습니다.

SP1 기능 변경