LLVM: llvm::APFloatBase Class Reference (original) (raw)

#include "[llvm/ADT/APFloat.h](APFloat%5F8h%5Fsource.html)"

Public Types
enum cmpResult { cmpLessThan, cmpEqual, cmpGreaterThan, cmpUnordered }
IEEE-754R 5.11: Floating Point Comparison Relations. More...
enum opStatus { opOK = 0x00 , opInvalidOp = 0x01 , opDivByZero = 0x02 , opOverflow = 0x04 , opUnderflow = 0x08 , opInexact = 0x10 }
IEEE-754R 7: Default exception handling. More...
enum fltCategory { fcInfinity, fcNaN, fcNormal, fcZero }
Category of internally-represented number. More...
enum uninitializedTag { uninitialized }
Convenience enum used to construct an uninitialized APFloat. More...
enum IlogbErrorKinds { IEK_Zero = INT_MIN + 1 , IEK_NaN = INT_MIN , IEK_Inf = INT_MAX }
Enumeration of ilogb error results. More...
typedef APInt::WordType integerPart
using ExponentType = int32_t
A signed type to represent a floating point numbers unbiased exponent.
using roundingMode = llvm::RoundingMode
IEEE-754R 4.3: Rounding-direction attributes.
Static Public Member Functions
static LLVM_ABI unsigned int semanticsPrecision (const fltSemantics &)
static LLVM_ABI ExponentType semanticsMinExponent (const fltSemantics &)
static LLVM_ABI ExponentType semanticsMaxExponent (const fltSemantics &)
static LLVM_ABI unsigned int semanticsSizeInBits (const fltSemantics &)
static LLVM_ABI unsigned int semanticsIntSizeInBits (const fltSemantics &, bool)
static LLVM_ABI bool semanticsHasZero (const fltSemantics &)
static LLVM_ABI bool semanticsHasSignedRepr (const fltSemantics &)
static LLVM_ABI bool semanticsHasInf (const fltSemantics &)
static LLVM_ABI bool semanticsHasNaN (const fltSemantics &)
static LLVM_ABI bool isIEEELikeFP (const fltSemantics &)
static LLVM_ABI bool hasSignBitInMSB (const fltSemantics &)
static LLVM_ABI bool isRepresentableAsNormalIn (const fltSemantics &Src, const fltSemantics &Dst)
static LLVM_ABI unsigned getSizeInBits (const fltSemantics &Sem)
Returns the size of the floating point number (in bits) in the given semantics.
Static Public Attributes
static constexpr unsigned integerPartWidth = APInt::APINT_BITS_PER_WORD
static constexpr roundingMode rmNearestTiesToEven
static constexpr roundingMode rmTowardPositive = RoundingMode::TowardPositive
static constexpr roundingMode rmTowardNegative = RoundingMode::TowardNegative
static constexpr roundingMode rmTowardZero = RoundingMode::TowardZero
static constexpr roundingMode rmNearestTiesToAway
Floating Point Semantics.
enum Semantics { S_IEEEhalf, S_BFloat, S_IEEEsingle, S_IEEEdouble, S_IEEEquad, S_PPCDoubleDouble, S_PPCDoubleDoubleLegacy, S_Float8E5M2, S_Float8E5M2FNUZ, S_Float8E4M3, S_Float8E4M3FN, S_Float8E4M3FNUZ, S_Float8E4M3B11FNUZ, S_Float8E3M4, S_FloatTF32, S_Float8E8M0FNU, S_Float6E3M2FN, S_Float6E2M3FN, S_Float4E2M1FN, S_x87DoubleExtended, S_MaxSemantics = S_x87DoubleExtended }
class detail::IEEEFloat
class detail::DoubleAPFloat
class APFloat
static LLVM_ABI const llvm::fltSemantics & EnumToSemantics (Semantics S)
static LLVM_ABI Semantics SemanticsToEnum (const llvm::fltSemantics &Sem)
static const fltSemantics & IEEEhalf ()
static const fltSemantics & BFloat ()
static const fltSemantics & IEEEsingle ()
static const fltSemantics & IEEEdouble ()
static const fltSemantics & IEEEquad ()
static const fltSemantics & PPCDoubleDouble ()
static const fltSemantics & PPCDoubleDoubleLegacy ()
static const fltSemantics & Float8E5M2 ()
static const fltSemantics & Float8E5M2FNUZ ()
static const fltSemantics & Float8E4M3 ()
static const fltSemantics & Float8E4M3FN ()
static const fltSemantics & Float8E4M3FNUZ ()
static const fltSemantics & Float8E4M3B11FNUZ ()
static const fltSemantics & Float8E3M4 ()
static const fltSemantics & FloatTF32 ()
static const fltSemantics & Float8E8M0FNU ()
static const fltSemantics & Float6E3M2FN ()
static const fltSemantics & Float6E2M3FN ()
static const fltSemantics & Float4E2M1FN ()
static const fltSemantics & x87DoubleExtended ()
static const fltSemantics & Bogus ()
A Pseudo fltsemantic used to construct APFloats that cannot conflict with anything real.
static LLVM_ABI bool isRepresentableBy (const fltSemantics &A, const fltSemantics &B)

Definition at line 149 of file APFloat.h.

ExponentType

using llvm::APFloatBase::ExponentType = int32_t

A signed type to represent a floating point numbers unbiased exponent.

Definition at line 155 of file APFloat.h.

integerPart

roundingMode

IEEE-754R 4.3: Rounding-direction attributes.

Definition at line 342 of file APFloat.h.

cmpResult

IEEE-754R 5.11: Floating Point Comparison Relations.

Enumerator
cmpLessThan
cmpEqual
cmpGreaterThan
cmpUnordered

Definition at line 334 of file APFloat.h.

fltCategory

Category of internally-represented number.

Enumerator
fcInfinity
fcNaN
fcNormal
fcZero

Definition at line 370 of file APFloat.h.

IlogbErrorKinds

Enumeration of ilogb error results.

Enumerator
IEK_Zero
IEK_NaN
IEK_Inf

Definition at line 383 of file APFloat.h.

opStatus

IEEE-754R 7: Default exception handling.

opUnderflow or opOverflow are always returned or-ed with opInexact.

APFloat models this behavior specified by IEEE-754: "For operations producing results in floating-point format, the default result of an operation that signals the invalid operation exception shall be a quiet NaN."

Enumerator
opOK
opInvalidOp
opDivByZero
opOverflow
opUnderflow
opInexact

Definition at line 360 of file APFloat.h.

Semantics

Enumerator
S_IEEEhalf
S_BFloat
S_IEEEsingle
S_IEEEdouble
S_IEEEquad
S_PPCDoubleDouble
S_PPCDoubleDoubleLegacy
S_Float8E5M2
S_Float8E5M2FNUZ
S_Float8E4M3
S_Float8E4M3FN
S_Float8E4M3FNUZ
S_Float8E4M3B11FNUZ
S_Float8E3M4
S_FloatTF32
S_Float8E8M0FNU
S_Float6E3M2FN
S_Float6E2M3FN
S_Float4E2M1FN
S_x87DoubleExtended
S_MaxSemantics

Definition at line 159 of file APFloat.h.

uninitializedTag

Convenience enum used to construct an uninitialized APFloat.

Enumerator
uninitialized

Definition at line 378 of file APFloat.h.

BFloat()

Definition at line 295 of file APFloat.h.

Referenced by EnumToSemantics(), llvm::SelectionDAG::FoldConstantArithmetic(), llvm::ConstantDataSequential::getElementAsAPFloat(), llvm::MVT::getFltSemantics(), getOpFltSemantics(), llvm::ConstantFP::isValueValidForType(), llvm::NVPTXFloatMCExpr::printImpl(), llvm::APFixedPoint::promoteFloatSemantics(), SemanticsToEnum(), shrinkFPConstant(), writeAPFloatInternal(), and llvm::X86TargetLowering::X86TargetLowering().

Bogus()

EnumToSemantics()

Definition at line 174 of file APFloat.cpp.

References BFloat(), Float4E2M1FN(), Float6E2M3FN(), Float6E3M2FN(), Float8E3M4(), Float8E4M3(), Float8E4M3B11FNUZ(), Float8E4M3FN(), Float8E4M3FNUZ(), Float8E5M2(), Float8E5M2FNUZ(), Float8E8M0FNU(), FloatTF32(), IEEEdouble(), IEEEhalf(), IEEEquad(), IEEEsingle(), llvm_unreachable, PPCDoubleDouble(), PPCDoubleDoubleLegacy(), S_BFloat, S_Float4E2M1FN, S_Float6E2M3FN, S_Float6E3M2FN, S_Float8E3M4, S_Float8E4M3, S_Float8E4M3B11FNUZ, S_Float8E4M3FN, S_Float8E4M3FNUZ, S_Float8E5M2, S_Float8E5M2FNUZ, S_Float8E8M0FNU, S_FloatTF32, S_IEEEdouble, S_IEEEhalf, S_IEEEquad, S_IEEEsingle, S_PPCDoubleDouble, S_PPCDoubleDoubleLegacy, S_x87DoubleExtended, and x87DoubleExtended().

Float4E2M1FN()

Float6E2M3FN()

Float6E3M2FN()

Float8E3M4()

Float8E4M3()

Float8E4M3B11FNUZ()

Float8E4M3FN()

Float8E4M3FNUZ()

Float8E5M2()

Float8E5M2FNUZ()

Float8E8M0FNU()

FloatTF32()

getSizeInBits()

hasSignBitInMSB()

IEEEdouble()

Definition at line 297 of file APFloat.h.

Referenced by llvm::APFloat::APFloat(), combineBitcast(), constantFoldFpUnary(), convertIntToDoubleImm(), emitDebugValueComment(), EnumToSemantics(), fixFuncEntryCount(), llvm::SelectionDAG::FoldConstantArithmetic(), getConstantVector(), getConstantVector(), llvm::ConstantDataSequential::getElementAsAPFloat(), llvm::getFltSemanticForLLT(), getFltSemantics(), llvm::MVT::getFltSemantics(), llvm::RISCVLoadFPImm::getLoadFPImm(), getOneFP(), getOpFltSemantics(), getZeroFP(), isInv2Pi(), isInv2Pi(), llvm::ConstantFP::isValueValidForType(), llvm::AMDGPULegalizerInfo::legalizeFroundeven(), llvm::AMDGPULegalizerInfo::legalizeRsqClampIntrinsic(), LLVMConstRealGetDouble(), llvm::LegalizerHelper::lowerFPTOUI(), llvm::AMDGPUTargetLowering::LowerFROUNDEVEN(), llvm::ARMAsmPrinter::lowerOperand(), LowerUINT_TO_FP_i64(), lowerUINT_TO_FP_vXi32(), llvm::SDNode::print_details(), llvm::NVPTXFloatMCExpr::printImpl(), llvm::WebAssemblyInstPrinter::printOperand(), llvm::APFixedPoint::promoteFloatSemantics(), SemanticsToEnum(), shrinkFPConstant(), and writeAPFloatInternal().

IEEEhalf()

Definition at line 294 of file APFloat.h.

Referenced by canSafelyConvertTo16Bit(), convertNvvmIntrinsicToLlvm(), EnumToSemantics(), llvm::SelectionDAG::FoldConstantArithmetic(), llvm::getAPFloatFromSize(), getConstantVector(), getConstantVector(), llvm::ConstantDataSequential::getElementAsAPFloat(), llvm::getFltSemanticForLLT(), getFltSemantics(), llvm::MVT::getFltSemantics(), llvm::RISCVLoadFPImm::getLoadFPImm(), getOneFP(), getOpFltSemantics(), getZeroFP(), llvm::GCNTTIImpl::instCombineIntrinsic(), isFPExtFromF16OrConst(), isInv2Pi(), isInv2Pi(), llvm::ConstantFP::isValueValidForType(), matchFPExtFromF16(), llvm::NVPTXFloatMCExpr::printImpl(), llvm::APFixedPoint::promoteFloatSemantics(), SemanticsToEnum(), shrinkFPConstant(), strictFPExtFromF16(), writeAPFloatInternal(), and llvm::X86TargetLowering::X86TargetLowering().

IEEEquad()

IEEEsingle()

Definition at line 296 of file APFloat.h.

Referenced by llvm::APFloat::APFloat(), llvm::checkConvertToNonDenormSingle(), convertNvvmIntrinsicToLlvm(), llvm::convertToNonDenormSingle(), EnumToSemantics(), llvm::SelectionDAG::FoldConstantArithmetic(), llvm::generateReadImageInst(), getConstantVector(), getConstantVector(), llvm::ConstantDataSequential::getElementAsAPFloat(), getF32Constant(), llvm::getFltSemanticForLLT(), getFltSemantics(), llvm::MVT::getFltSemantics(), llvm::RISCVLoadFPImm::getLoadFPImm(), getOneFP(), getOpFltSemantics(), llvm::AMDGPULegalizerInfo::getScaledLogInput(), llvm::AMDGPUTargetLowering::getScaledLogInput(), getZeroFP(), llvm::Attributor::identifyDefaultAbstractAttributes(), isInv2Pi(), isInv2Pi(), llvm::ConstantFP::isValueValidForType(), llvm::AMDGPULegalizerInfo::legalizeFExp(), llvm::AMDGPULegalizerInfo::legalizeFlogCommon(), llvm::AMDGPULegalizerInfo::legalizeRsqClampIntrinsic(), llvm::AMDGPUTargetLowering::lowerFEXP(), llvm::LegalizerHelper::lowerFPTOUI(), lowerUINT_TO_FP_vXi32(), llvm::AMDGPUTargetLowering::needsDenormHandlingF32(), needsDenormHandlingF32(), llvm::SDNode::print_details(), llvm::NVPTXFloatMCExpr::printImpl(), llvm::WebAssemblyInstPrinter::printOperand(), llvm::APFixedPoint::promoteFloatSemantics(), SemanticsToEnum(), shrinkFPConstant(), llvm::pdb::Variant::toAPFloat(), llvm::NVPTXTargetLowering::useF32FTZ(), valueHasFloatPrecision(), and writeAPFloatInternal().

isIEEELikeFP()

isRepresentableAsNormalIn()

isRepresentableBy()

PPCDoubleDouble()

PPCDoubleDoubleLegacy()

semanticsHasInf()

semanticsHasNaN()

semanticsHasSignedRepr()

semanticsHasZero()

semanticsIntSizeInBits()

semanticsMaxExponent()

semanticsMinExponent()

semanticsPrecision()

semanticsSizeInBits()

SemanticsToEnum()

Definition at line 221 of file APFloat.cpp.

References BFloat(), Float4E2M1FN(), Float6E2M3FN(), Float6E3M2FN(), Float8E3M4(), Float8E4M3(), Float8E4M3B11FNUZ(), Float8E4M3FN(), Float8E4M3FNUZ(), Float8E5M2(), Float8E5M2FNUZ(), Float8E8M0FNU(), FloatTF32(), IEEEdouble(), IEEEhalf(), IEEEquad(), IEEEsingle(), llvm_unreachable, PPCDoubleDouble(), PPCDoubleDoubleLegacy(), S_BFloat, S_Float4E2M1FN, S_Float6E2M3FN, S_Float6E3M2FN, S_Float8E3M4, S_Float8E4M3, S_Float8E4M3B11FNUZ, S_Float8E4M3FN, S_Float8E4M3FNUZ, S_Float8E5M2, S_Float8E5M2FNUZ, S_Float8E8M0FNU, S_FloatTF32, S_IEEEdouble, S_IEEEhalf, S_IEEEquad, S_IEEEsingle, S_PPCDoubleDouble, S_PPCDoubleDoubleLegacy, S_x87DoubleExtended, and x87DoubleExtended().

Referenced by isIEEELikeFP(), and llvm::SIInstrInfo::isInlineConstant().

x87DoubleExtended()

APFloat

detail::DoubleAPFloat

detail::IEEEFloat

integerPartWidth

rmNearestTiesToAway

rmNearestTiesToEven

Initial value:

=

@ NearestTiesToEven

roundTiesToEven.

Definition at line 344 of file APFloat.h.

Referenced by llvm::APFloat::APFloat(), canLosslesslyConvertToFPType(), llvm::checkConvertToNonDenormSingle(), llvm::ConstantFoldBinaryInstruction(), llvm::ConstantFoldCastInstruction(), llvm::ConstantFoldFPBinOp(), constantFoldFpUnary(), llvm::ConstantFoldIntToFloat(), llvm::APFloat::convertToDouble(), llvm::APFixedPoint::convertToFloat(), llvm::APFloat::convertToFloat(), llvm::convertToNonDenormSingle(), emitDebugValueComment(), llvm::TargetLowering::expandFP_TO_UINT(), fitsInFPType(), fixFuncEntryCount(), llvm::SelectionDAG::FoldConstantArithmetic(), llvm::SelectionDAG::foldConstantFPMath(), foldFCmpFpTrunc(), llvm::InstCombinerImpl::foldFCmpIntToFPConst(), foldFrexpOfSelect(), llvm::ConstantFP::get(), llvm::getAPFloatFromSize(), llvm::StringRef::getAsDouble(), llvm::SelectionDAG::getConstantFP(), llvm::ExecutionEngine::getConstantValue(), llvm::nvvm::GetFAddRoundingMode(), llvm::nvvm::GetFDivRoundingMode(), llvm::nvvm::GetFMARoundingMode(), llvm::nvvm::GetFMulRoundingMode(), llvm::nvvm::GetFPToIntegerRoundingMode(), llvm::RISCVLoadFPImm::getLoadFPImm(), llvm::SelectionDAG::getNode(), llvm::nvvm::GetRCPRoundingMode(), llvm::harrisonUlp(), llvm::detail::IEEEFloat::ilogb, llvm::GCNTTIImpl::instCombineIntrinsic(), llvm::APFloat::isExactlyValue(), llvm::ConstantFP::isExactlyValue(), isFPExtFromF16OrConst(), llvm::ConstantFP::isValueValidForType(), llvm::ConstantFPSDNode::isValueValidForType(), LLVMConstRealGetDouble(), llvm::LegalizerHelper::lowerFPTOUI(), LowerFROUND(), lowerFTRUNC_FCEIL_FFLOOR_FROUND(), lowerVectorFTRUNC_FCEIL_FFLOOR_FROUND(), lowerVectorStrictFTRUNC_FCEIL_FFLOOR_FROUND(), llvm::CombinerHelper::matchConstantFoldFMA(), matchFPExtFromF16(), llvm::APFloat::operator*(), llvm::APFloat::operator+(), llvm::APFloat::operator-(), llvm::APFloat::operator/(), llvm::AMDGPUTargetLowering::PerformDAGCombine(), llvm::NVPTXFloatMCExpr::printImpl(), strictFPExtFromF16(), toString(), valueHasFloatPrecision(), llvm::InstCombinerImpl::visitFCmpInst(), writeAPFloatInternal(), and llvm::X86TargetLowering::X86TargetLowering().

rmTowardNegative

rmTowardPositive

rmTowardZero

Definition at line 348 of file APFloat.h.

Referenced by canSafelyConvertTo16Bit(), checkCVTFixedPointOperandWithFBits(), llvm::ConstantFoldCastInstruction(), llvm::APFixedPoint::convertToFloat(), ConvertToSInt(), llvm::TargetLowering::expandFP_TO_INT_SAT(), llvm::SelectionDAG::FoldConstantArithmetic(), llvm::InstCombinerImpl::foldFCmpIntToFPConst(), llvm::BuildVectorSDNode::getConstantFPSplatPow2ToLog2Int(), llvm::ExecutionEngine::getConstantValue(), llvm::APFloat::getExactInverse(), llvm::nvvm::GetFAddRoundingMode(), llvm::nvvm::GetFDivRoundingMode(), llvm::nvvm::GetFMARoundingMode(), llvm::nvvm::GetFMulRoundingMode(), llvm::nvvm::GetFPToIntegerRoundingMode(), llvm::APFixedPoint::getFromFloatValue(), llvm::nvvm::GetRCPRoundingMode(), llvm::GCNTTIImpl::instCombineIntrinsic(), llvm::PPCTargetLowering::isFPImmLegal(), llvm::LegalizerHelper::lowerFPTOINT_SAT(), llvm::ARMAsmPrinter::lowerOperand(), and PerformVMulVCTPCombine().


The documentation for this class was generated from the following files: