From ce16339930a2b03e53b4e6399ef59c092a7f2cfa Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Sat, 17 Dec 2011 00:04:22 +0000 Subject: The powers that be have decided that LLVM IR should now support 16-bit "half precision" floating-point with a first-class type. This patch adds basic IR support (but not codegen support). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146786 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/LangRef.html | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'docs/LangRef.html') diff --git a/docs/LangRef.html b/docs/LangRef.html index 90308a45d2..58ebbc3f05 100644 --- a/docs/LangRef.html +++ b/docs/LangRef.html @@ -1709,7 +1709,7 @@ in signal handlers).

floating point - float, double, x86_fp80, fp128, ppc_fp128 + half, float, double, x86_fp80, fp128, ppc_fp128 first class @@ -1809,6 +1809,7 @@ in signal handlers).

+ @@ -2268,10 +2269,11 @@ in signal handlers).

represented in their IEEE hexadecimal format so that assembly and disassembly do not cause any bits to change in the constants.

-

When using the hexadecimal form, constants of types float and double are +

When using the hexadecimal form, constants of types half, float, and double are represented using the 16-digit form shown above (which matches the IEEE754 - representation for double); float values must, however, be exactly - representable as IEE754 single precision. Hexadecimal format is always used + representation for double); half and float values must, however, be exactly + representable as IEE754 half and single precision, respectively. + Hexadecimal format is always used for long double, and there are three forms of long double. The 80-bit format used by x86 is represented as 0xK followed by 20 hexadecimal digits. The 128-bit format used by PowerPC (two adjacent doubles) is represented -- cgit v1.2.3-18-g5258

TypeDescription
half16-bit floating point value
float32-bit floating point value
double64-bit floating point value
fp128128-bit floating point value (112-bit mantissa)