The F16C (previously/informally known as CVT16) instruction set is an
x86
x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel, based on the 8086 microprocessor and its 8-bit-external-bus variant, the 8088. Th ...
instruction set architecture
In computer science, an instruction set architecture (ISA) is an abstract model that generally defines how software controls the CPU in a computer or a family of computers. A device or program that executes instructions described by that ISA, ...
extension which provides support for converting between
half-precision and standard IEEE
single-precision floating-point format
Single-precision floating-point format (sometimes called FP32 or float32) is a computer number format, usually occupying 32 bits in computer memory; it represents a wide dynamic range of numeric values by using a floating radix point.
A floa ...
s.
History
The CVT16 instruction set, announced by
AMD
Advanced Micro Devices, Inc. (AMD) is an American multinational corporation and technology company headquartered in Santa Clara, California and maintains significant operations in Austin, Texas. AMD is a hardware and fabless company that de ...
on May 1, 2009, is an extension to the 128-bit
SSE core instructions in the
x86
x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel, based on the 8086 microprocessor and its 8-bit-external-bus variant, the 8088. Th ...
and
AMD64
x86-64 (also known as x64, x86_64, AMD64, and Intel 64) is a 64-bit extension of the x86 instruction set. It was announced in 1999 and first available in the AMD Opteron family in 2003. It introduces two new operating modes: 64-bit mode an ...
instruction sets.
CVT16 is a revision of part of the
SSE5 instruction set proposal announced on August 30, 2007, which is supplemented by the
XOP and
FMA4 instruction sets. This revision makes the binary coding of the proposed new instructions more compatible with
Intel
Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California, and Delaware General Corporation Law, incorporated in Delaware. Intel designs, manufactures, and sells computer compo ...
's
AVX instruction extensions, while the functionality of the instructions is unchanged.
In recent documents, the name F16C is formally used in both
Intel
Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California, and Delaware General Corporation Law, incorporated in Delaware. Intel designs, manufactures, and sells computer compo ...
and
AMD
Advanced Micro Devices, Inc. (AMD) is an American multinational corporation and technology company headquartered in Santa Clara, California and maintains significant operations in Austin, Texas. AMD is a hardware and fabless company that de ...
x86-64
x86-64 (also known as x64, x86_64, AMD64, and Intel 64) is a 64-bit extension of the x86 instruction set architecture, instruction set. It was announced in 1999 and first available in the AMD Opteron family in 2003. It introduces two new ope ...
architecture specifications.
Technical information
There are variants that convert four floating-point values in an
XMM register or 8 floating-point values in a
YMM register.
The instructions are abbreviations for "vector convert packed half to packed single" and vice versa:
*
VCVTPH2PS xmmreg,xmmrm64
convert four half-precision floating point values in memory or the bottom half of an XMM register to four single-precision floating-point values in an XMM register.
*
VCVTPH2PS ymmreg,xmmrm128
convert eight half-precision floating point values in memory or an XMM register (the bottom half of a YMM register) to eight single-precision floating-point values in a YMM register.
*
VCVTPS2PH xmmrm64,xmmreg,imm8
convert four single-precision floating point values in an XMM register to half-precision floating-point values in memory or the bottom half an XMM register.
*
VCVTPS2PH xmmrm128,ymmreg,imm8
convert eight single-precision floating point values in a YMM register to half-precision floating-point values in memory or an XMM register.
The 8-bit immediate argument to
VCVTPS2PH
selects the
rounding
Rounding or rounding off is the process of adjusting a number to an approximate, more convenient value, often with a shorter or simpler representation. For example, replacing $ with $, the fraction 312/937 with 1/3, or the expression √2 with ...
mode. Values 0–4 select nearest, down, up, truncate, and the mode set in
MXCSR.RC
.
Support for these instructions is indicated by bit 29 of ECX after
CPUID with EAX=1.
CPUs with F16C
*
AMD
Advanced Micro Devices, Inc. (AMD) is an American multinational corporation and technology company headquartered in Santa Clara, California and maintains significant operations in Austin, Texas. AMD is a hardware and fabless company that de ...
:
**
Jaguar-based processors
**
Puma-based processors
** "Heavy Equipment" processors
***
Piledriver-based processors, Q4 2012
***
Steamroller-based processors, Q1 2014
***
Excavator-based processors, Q2 2015
**
Zen-based processors, Q1 2017, and newer
*
Intel
Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California, and Delaware General Corporation Law, incorporated in Delaware. Intel designs, manufactures, and sells computer compo ...
:
**
Ivy Bridge processors and newer
References
External links
* New Bulldozer and Piledriver Instruction
* DirectX math F16C and FMA
* AMD64 Architecture Programmer's Manual Volume
* AMD64 Architecture Programmer's Manual Volume
* AMD64 Architecture Programmer's Manual Volume
* AMD64 Architecture Programmer's Manual Volume
* AMD64 Architecture Programmer's Manual Volume
* IA32 Architectures Software Developer Manua
{{Multimedia extensions, state=uncollapsed
X86 instructions
AMD technologies