F16C(이전/비공식적으로 CVT16으로 알려짐) 명령어 집합은 반정밀도와 표준 IEEE 단정밀도 부동소수점 형식 간의 변환을 지원하는 X86 명령어 집합 확장이다.
2009년 5월 1일 AMD가 발표한 CVT16 명령어 집합은 X86 및 AMD64 명령어 집합의 128비트 스트리밍 SIMD 확장 코어 명령어의 확장이다.
CVT16은 2007년 8월 30일에 발표된 SSE5 명령어 집합 제안의 일부를 수정한 것으로, XOP 명령어 집합 및 FMA 명령어 집합으로 보완된다. 이 수정은 제안된 새 명령어의 이진 코딩을 인텔의 고급 벡터 확장 명령어 확장과 더 호환되도록 만들었으며, 명령어의 기능은 변경되지 않았다.
최근 문서에서는 인텔과 AMD의 X86-64 아키텍처 사양 모두에서 F16C라는 이름이 공식적으로 사용된다.
XMM 레지스터의 4개 부동소수점 값 또는 YMM 레지스터의 8개 부동소수점 값을 변환하는 변형이 있다.
이 명령어는 "팩 반정밀도를 팩 단정밀도로 벡터 변환"과 그 반대의 약어이다.
VCVTPH2PS xmmreg,xmmrm64 – 메모리 또는 XMM 레지스터의 하위 절반에 있는 4개의 반정밀도 부동소수점 값을 XMM 레지스터의 4개 단정밀도 부동소수점 값으로 변환한다.VCVTPH2PS ymmreg,xmmrm128 – 메모리 또는 XMM 레지스터(YMM 레지스터의 하위 절반)에 있는 8개의 반정밀도 부동소수점 값을 YMM 레지스터의 8개 단정밀도 부동소수점 값으로 변환한다.VCVTPS2PH xmmrm64,xmmreg,imm8 – XMM 레지스터의 4개 단정밀도 부동소수점 값을 메모리 또는 XMM 레지스터의 하위 절반에 있는 반정밀도 부동소수점 값으로 변환한다.VCVTPS2PH xmmrm128,ymmreg,imm8 – YMM 레지스터의 8개 단정밀도 부동소수점 값을 메모리 또는 XMM 레지스터에 있는 반정밀도 부동소수점 값으로 변환한다.VCVTPS2PH의 8비트 즉시 인수는 반올림 모드를 선택한다. 값 0-4는 가장 가까운 값, 내림, 올림, 잘라내기, MXCSR.RC에 설정된 모드를 선택한다.
이 명령어에 대한 지원은 CPUID (EAX=1) 후 ECX의 비트 29로 표시된다.