LLVM: llvm::KnownFPClass Struct Reference (original) (raw)

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

Public Member Functions
bool operator== (KnownFPClass Other) const
bool isKnownNever (FPClassTest Mask) const
Return true if it's known this can never be one of the mask entries.
bool isKnownAlways (FPClassTest Mask) const
bool isUnknown () const
bool isKnownNeverNaN () const
Return true if it's known this can never be a nan.
bool isKnownAlwaysNaN () const
Return true if it's known this must always be a nan.
bool isKnownNeverInfinity () const
Return true if it's known this can never be an infinity.
bool isKnownNeverPosInfinity () const
Return true if it's known this can never be +infinity.
bool isKnownNeverNegInfinity () const
Return true if it's known this can never be -infinity.
bool isKnownNeverSubnormal () const
Return true if it's known this can never be a subnormal.
bool isKnownNeverPosSubnormal () const
Return true if it's known this can never be a positive subnormal.
bool isKnownNeverNegSubnormal () const
Return true if it's known this can never be a negative subnormal.
bool isKnownNeverZero () const
Return true if it's known this can never be a zero.
bool isKnownNeverPosZero () const
Return true if it's known this can never be a literal positive zero.
bool isKnownNeverNegZero () const
Return true if it's known this can never be a negative zero.
LLVM_ABI bool isKnownNeverLogicalZero (DenormalMode Mode) const
Return true if it's know this can never be interpreted as a zero.
LLVM_ABI bool isKnownNeverLogicalNegZero (DenormalMode Mode) const
Return true if it's know this can never be interpreted as a negative zero.
LLVM_ABI bool isKnownNeverLogicalPosZero (DenormalMode Mode) const
Return true if it's know this can never be interpreted as a positive zero.
bool cannotBeOrderedLessThanZero () const
Return true if we can prove that the analyzed floating-point value is either NaN or never less than -0.0.
bool cannotBeOrderedGreaterThanZero () const
Return true if we can prove that the analyzed floating-point value is either NaN or never greater than -0.0.
KnownFPClass & operator|= (const KnownFPClass &RHS)
void knownNot (FPClassTest RuleOut)
void fneg ()
void fabs ()
bool signBitIsZeroOrNaN () const
Return true if the sign bit must be 0, ignoring the sign of nans.
void signBitMustBeZero ()
Assume the sign bit is zero.
void signBitMustBeOne ()
Assume the sign bit is one.
void copysign (const KnownFPClass &Sign)
void propagateNaN (const KnownFPClass &Src, bool PreserveSign=false)
LLVM_ABI void propagateDenormal (const KnownFPClass &Src, DenormalMode Mode)
Propagate knowledge from a source value that could be a denormal or zero.
LLVM_ABI void propagateCanonicalizingSrc (const KnownFPClass &Src, DenormalMode Mode)
Report known classes if Src is evaluated through a potentially canonicalizing operation.
void resetAll ()
Public Attributes
FPClassTest KnownFPClasses = fcAllFlags
Floating-point classes the value could be one of.
std::optional< bool > SignBit
std::nullopt if the sign bit is unknown, true if the sign bit is definitely set or false if the sign bit is definitely unset.

Definition at line 23 of file KnownFPClass.h.

cannotBeOrderedGreaterThanZero()

bool llvm::KnownFPClass::cannotBeOrderedGreaterThanZero ( ) const inline

cannotBeOrderedLessThanZero()

bool llvm::KnownFPClass::cannotBeOrderedLessThanZero ( ) const inline

copysign()

Definition at line 173 of file KnownFPClass.h.

References llvm::fcInf, llvm::fcNan, llvm::fcNegative, llvm::fcNormal, llvm::fcPositive, llvm::fcSubnormal, llvm::fcZero, isKnownNever(), KnownFPClasses, and SignBit.

Referenced by computeKnownFPClass(), and llvm::InstCombinerImpl::SimplifyDemandedUseFPClass().

fabs()

void llvm::KnownFPClass::fabs ( ) inline

Definition at line 142 of file KnownFPClass.h.

References llvm::fcNegInf, llvm::fcNegNormal, llvm::fcNegSubnormal, llvm::fcNegZero, llvm::fcPosInf, llvm::fcPosNormal, llvm::fcPosSubnormal, llvm::fcPosZero, KnownFPClasses, and signBitMustBeZero().

Referenced by computeKnownFPClass(), and llvm::InstCombinerImpl::SimplifyDemandedUseFPClass().

fneg()

void llvm::KnownFPClass::fneg ( ) inline

isKnownAlways()

isKnownAlwaysNaN()

bool llvm::KnownFPClass::isKnownAlwaysNaN ( ) const inline

isKnownNever()

Return true if it's known this can never be one of the mask entries.

Definition at line 36 of file KnownFPClass.h.

References llvm::fcNone, and KnownFPClasses.

Referenced by cannotBeOrderedGreaterThanZero(), cannotBeOrderedLessThanZero(), computeKnownFPClass(), copysign(), foldFPtoI(), isKnownAlways(), isKnownNeverInfinity(), isKnownNeverNaN(), isKnownNeverNegInfinity(), isKnownNeverNegSubnormal(), isKnownNeverNegZero(), isKnownNeverPosInfinity(), isKnownNeverPosSubnormal(), isKnownNeverPosZero(), isKnownNeverSubnormal(), isKnownNeverZero(), knownNot(), signBitIsZeroOrNaN(), llvm::InstCombinerImpl::SimplifyDemandedUseFPClass(), and simplifyFMAFMul().

isKnownNeverInfinity()

bool llvm::KnownFPClass::isKnownNeverInfinity ( ) const inline

isKnownNeverLogicalNegZero()

isKnownNeverLogicalPosZero()

isKnownNeverLogicalZero()

isKnownNeverNaN()

bool llvm::KnownFPClass::isKnownNeverNaN ( ) const inline

isKnownNeverNegInfinity()

bool llvm::KnownFPClass::isKnownNeverNegInfinity ( ) const inline

isKnownNeverNegSubnormal()

bool llvm::KnownFPClass::isKnownNeverNegSubnormal ( ) const inline

isKnownNeverNegZero()

bool llvm::KnownFPClass::isKnownNeverNegZero ( ) const inline

isKnownNeverPosInfinity()

bool llvm::KnownFPClass::isKnownNeverPosInfinity ( ) const inline

isKnownNeverPosSubnormal()

bool llvm::KnownFPClass::isKnownNeverPosSubnormal ( ) const inline

isKnownNeverPosZero()

bool llvm::KnownFPClass::isKnownNeverPosZero ( ) const inline

isKnownNeverSubnormal()

bool llvm::KnownFPClass::isKnownNeverSubnormal ( ) const inline

isKnownNeverZero()

bool llvm::KnownFPClass::isKnownNeverZero ( ) const inline

isUnknown()

bool llvm::KnownFPClass::isUnknown ( ) const inline

knownNot()

void llvm::KnownFPClass::knownNot ( FPClassTest RuleOut) inline

operator==()

operator|=()

propagateCanonicalizingSrc()

Report known classes if Src is evaluated through a potentially canonicalizing operation.

We can assume signaling nans will not be introduced, but cannot assume a denormal will be flushed under FTZ/DAZ.

This assumes a copy-like operation and will replace any currently known information.

Definition at line 90 of file KnownFPClass.cpp.

References propagateDenormal(), and propagateNaN().

Referenced by computeKnownFPClass().

propagateDenormal()

propagateNaN()

resetAll()

void llvm::KnownFPClass::resetAll ( ) inline

signBitIsZeroOrNaN()

bool llvm::KnownFPClass::signBitIsZeroOrNaN ( ) const inline

signBitMustBeOne()

void llvm::KnownFPClass::signBitMustBeOne ( ) inline

signBitMustBeZero()

void llvm::KnownFPClass::signBitMustBeZero ( ) inline

KnownFPClasses

Floating-point classes the value could be one of.

Definition at line 25 of file KnownFPClass.h.

Referenced by computeKnownFPClass(), copysign(), fabs(), fneg(), isKnownNever(), isUnknown(), knownNot(), operator==(), operator|=(), propagateDenormal(), signBitMustBeOne(), signBitMustBeZero(), and llvm::InstCombinerImpl::SimplifyDemandedUseFPClass().

OrderedGreaterThanZeroMask

FPClassTest llvm::KnownFPClass::OrderedGreaterThanZeroMask staticconstexpr

OrderedLessThanZeroMask

FPClassTest llvm::KnownFPClass::OrderedLessThanZeroMask staticconstexpr

SignBit

std::optional<bool> llvm::KnownFPClass::SignBit

std::nullopt if the sign bit is unknown, true if the sign bit is definitely set or false if the sign bit is definitely unset.

Definition at line 29 of file KnownFPClass.h.

Referenced by computeKnownFPClass(), llvm::computeKnownFPSignBit(), copysign(), fneg(), isUnknown(), knownNot(), operator==(), operator|=(), propagateNaN(), signBitMustBeOne(), signBitMustBeZero(), and simplifyFMAFMul().


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