F16C
F16C![]() |
F16C[1](기존/비공식적으로 CVT16으로 알려진) 명령 집합은 반정밀과 표준 IEEE 단일정밀 부동 소수점 형식 간의 변환을 지원하는 x86 명령 집합 아키텍처 확장이다.
역사
2009년 5월 1일 AMD가 발표한 CVT16 명령 집합은 x86 및 AMD64 명령 집합에 있는 128비트 SSE 핵심 지시사항의 확장이다.
CVT16은 2007년 8월 30일에 발표된 SSE5 명령 집합 제안서의 일부를 개정한 것으로, XOP와 FMA4 명령 집합으로 보충한다.이 개정은 제안된 새로운 지침의 이진 코딩을 인텔의 AVX 명령 확장과 더 호환되도록 하는 한편 지침의 기능성은 변경되지 않는다.
최근 문서에서 F16C라는 이름은 Intel과 AMD x86-64 아키텍처 규격에서 모두 공식적으로 사용된다.
기술정보
XMM 레지스터에서 4개의 부동 소수점 값을 변환하거나 YMM 레지스터에서 8개의 부동 소수점 값을 변환하는 변형이 있다.
지침은 "벡터 포장 반을 포장된 싱글로 변환"을 위한 약어로, 그 반대의 경우도 마찬가지다.
VCVTPH2PS xmmreg,xmmrm64
– 메모리에 있는 4개의 반정밀 부동소수점 값 또는 XMM 레지스터의 하단 절반 값을 XM 레지스터에 있는 4개의 단일정밀 부동소수 값으로 변환한다.VCVTPH2PS ymmreg,xmmrm128
– 메모리 또는 XMM 레지스터(YMM 레지스터의 하단 절반)의 반정밀 부동소수점 값 8개를 YMM 레지스터의 단일정밀 부동소수값 8개로 변환VCVTPS2PH xmmrm64,xmmreg,imm8
– XMM 레지스터의 4개의 단일 정밀 부동소수 값을 메모리 내 반정밀 부동소수 값 또는 XM 레지스터의 하단 반정밀 부동소수 값으로 변환.VCVTPS2PH xmmrm128,ymmreg,imm8
– YMM 레지스터에서 8개의 단일 정밀한 부동소수점 값을 메모리 또는 XMM 레지스터의 절반 정밀한 부동소수 값으로 변환한다.
다음에 대한 8비트 즉시 인수VCVTPS2PH
라운딩 모드를 선택한다.값 0–4 가장 가까운 값, 아래쪽, 위쪽, 잘라내기 및 설정된 모드 선택MXCSR.RC
.
이러한 지침에 대한 지원은 EAX=1이 있는 CPUID 다음에 ECX의 비트 29로 표시된다.
F16C가 있는 CPU
참조
- ^ Chuck Walbourn (September 11, 2012). "DirectXMath: F16C and FMA".
- ^ Dave Christie (2009-05-07), Striking a balance, AMD Developer blogs, archived from the original on 2013-11-09, retrieved 2012-01-17
- ^ New "Bulldozer" and "Piledriver" Instructions (PDF), AMD, October 2012
외부 링크
- 새로운 불도저 및 적층강 지침[1]
- DirectX 산술 F16C 및 FMA [2]
- AMD64 Architecture Programmer's Manual Volume 1 [3]
- AMD64 Architecture Programmer's Manual 2 [4]
- AMD64 Architecture Programmer's Manual Volume 3 [5]
- AMD64 Architecture Programmer's Manual Volume [6]
- AMD64 Architecture Programmer's Manual Volume [7]
- IA32 Architects 소프트웨어 개발자 설명서 [8]