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 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 |
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:
- include/llvm/ADT/APFloat.h
- lib/Support/APFloat.cpp