_mm_maccd_epi16
업데이트: 2011년 3월
Visual Studio 2010 SP1이 필요합니다.
Microsoft 전용
XOP 명령 vpmacswd를 생성하여 소스의 정수 곱하기-더하기를 수행합니다.
__m128i _mm_maccd_epi16 (
__m128i src1,
__m128i src2,
__m128i src3
);
매개 변수
[in] src1
짝수로 인덱싱된 워드에 4개의 16비트 부호 있는 정수를 포함하는 128비트 매개 변수입니다.[in] src2
짝수로 인덱싱된 워드에 4개의 16비트 부호 있는 정수를 포함하는 128비트 매개 변수입니다.[in] src3
4개의 32비트 부호 있는 정수를 포함하는 128비트 매개 변수입니다.
반환 값
4개의 32비트 부호 있는 정수를 포함하는 128비트 결과 r입니다.
r[i] := src1[2*i] * src2[2*i] + src3[i];
요구 사항
내장 |
아키텍처 |
---|---|
_mm_maccd_epi16 |
XOP |
헤더 파일 <intrin.h>
설명
src1에서 각 짝수로 인덱싱된 16비트 부호 있는 정수 값을 src2에서 해당 16비트 부호 있는 정수 값에 곱하고, 32비트 부호 있는 정수 곱을 src3의 해당 32비트 부호 있는 정수 값에 더하고 32비트 정수 결과는 대상에 해당 값으로 저장됩니다. src1 및 src2의 홀수 인덱스 값은 무시됩니다.
오버플로는 무시됩니다.
vpmacswd 명령은 XOP 명령군의 일부입니다. 이 intrinsic을 사용하기 전에 프로세서가 이 명령을 지원하는지 확인해야 합니다. 이 명령에 대한 하드웨어 지원을 확인하려면 InfoType = 0x80000001을 사용하여 __cpuid intrinsic을 호출하고 CPUInfo[2] (ECX)의 비트 11을 확인합니다. 명령이 지원되는 경우 비트는 1이고, 그렇지 않으면 0입니다.
예제
#include <stdio.h>
#include <intrin.h>
int main()
{
__m128i a, b, c, d;
int i;
for (i = 0; i < 8; i++) {
a.m128i_i16[i] = 30000;
b.m128i_i16[i] = 8000*(i-4);
}
for (i = 0; i < 4; i++) {
c.m128i_i32[i] = 1300000000*i - 2000000000;
}
d = _mm_maccd_epi16(a, b, c);
for (i = 0; i < 4; i++) printf_s(" %d", d.m128i_i32[i]);
printf_s("\n");
}
참고 항목
참조
기타 리소스
Visual Studio 2010 SP1용으로 추가된 XOP 내장 함수
변경 기록
날짜 |
변경 내용 |
이유 |
---|---|---|
2011년 3월 |
이 내용이 추가되었습니다. |
SP1 기능 변경 |