_mm_extract_si64, _mm_extracti_si64
Microsoft 전용
첫 번째 인수의 extrq
하위 64비트에서 지정된 비트를 추출하는 명령을 생성합니다.
구문
__m128i _mm_extract_si64(
__m128i Source,
__m128i Descriptor
);
__m128i _mm_extracti_si64(
__m128i Source,
int Length,
int Index
);
매개 변수
Source
[in] 하위 64비트에서 입력 데이터가 있는 128비트 필드입니다.
설명자
[in] 추출할 비트 필드를 설명하는 128비트 필드입니다.
길이
[in] 추출할 필드의 길이를 지정하는 정수입니다.
Index
[in] 추출할 필드의 인덱스를 지정하는 정수입니다.
반환 값
추출된 필드가 가장 중요한 비트인 128비트 필드입니다.
요구 사항
Intrinsic | 아키텍처 |
---|---|
_mm_extract_si64 |
SSE4a |
_mm_extracti_si64 |
SSE4a |
헤더 파일<intrin.h>
설명
이러한 내장 함수는 원본에서 비트를 추출하는 명령을 생성 extrq
합니다. 두 가지 버전 _mm_extracti_si64
이 있습니다. 바로 실행 버전이며 _mm_extract_si64
직접 실행되지 않는 버전입니다. 각 버전은 원본에서 해당 길이 및 가장 중요한 비트의 인덱스로 정의된 비트 필드를 추출합니다. 길이 및 인덱스의 값은 모드 64로 설정되므로 -1과 127은 모두 63으로 해석됩니다. (축소된) 인덱스 및 (축소된) 필드 길이의 합계가 64보다 크면 결과가 정의되지 않습니다. 필드 길이에 대해 0의 값은 64로 해석됩니다. 필드 길이와 비트 인덱스가 모두 0이면 원본의 비트 63:0이 추출됩니다. 필드 길이가 0이지만 비트 인덱스가 0이 아니면 결과가 정의되지 않습니다.
호출_mm_extract_si64
에서 설명자는 비트 13:8의 인덱스와 비트 5:0에서 추출할 데이터의 필드 길이를 포함합니다.
컴파일러에서 정수 상수로 확인할 수 없는 인수를 사용하여 호출 _mm_extracti_si64
하는 경우 컴파일러는 해당 값을 XMM 레지스터(설명자)로 압축하고 호출 _mm_extract_si64
하는 코드를 생성합니다.
명령에 대한 extrq
하드웨어 지원을 확인하려면 내장 InfoType=0x80000001
함수를 __cpuid
호출하고 6의 CPUInfo[2] (ECX)
비트 6을 확인합니다. 명령이 지원되는 경우 이 비트는 1이고, 그렇지 않으면 0이 됩니다. 명령을 지원하지 extrq
않는 이 내장 하드웨어를 사용하는 코드를 실행하면 결과를 예측할 수 없습니다.
예시
// Compile this sample with: /EHsc
#include <iostream>
#include <intrin.h>
using namespace std;
union {
__m128i m;
unsigned __int64 ui64[2];
} source, descriptor, result1, result2, result3;
int
main()
{
source.ui64[0] = 0xfedcba9876543210ll;
descriptor.ui64[0] = 0x0000000000000b1bll;
result1.m = _mm_extract_si64 (source.m, descriptor.m);
result2.m = _mm_extracti_si64(source.m, 27, 11);
result3.ui64[0] = (source.ui64[0] >> 11) & 0x7ffffff;
cout << hex << "result1 = 0x" << result1.ui64[0] << endl;
cout << "result2 = 0x" << result2.ui64[0] << endl;
cout << "result3 = 0x" << result3.ui64[0] << endl;
}
result1 = 0x30eca86
result2 = 0x30eca86
result3 = 0x30eca86
Microsoft 전용 종료
부분 저작권 2007 고급 마이크로 디바이스, Inc. 모든 권한이 예약되어 있습니다. 고급 마이크로 디바이스, Inc.의 권한으로 재현