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

Represent subnormal handling kind for floating point instruction inputs and outputs. More...

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

Public Types
enum DenormalModeKind : int8_t { Invalid = -1 , IEEE, PreserveSign, PositiveZero, Dynamic }
Represent handled modes for denormal (aka subnormal) modes in the floating point environment. More...
Public Member Functions
constexpr DenormalMode ()=default
constexpr DenormalMode (const DenormalMode &)=default
constexpr DenormalMode (DenormalModeKind Out, DenormalModeKind In)
DenormalMode & operator= (const DenormalMode &)=default
bool operator== (DenormalMode Other) const
bool operator!= (DenormalMode Other) const
bool isSimple () const
bool isValid () const
constexpr bool inputsAreZero () const
Return true if input denormals must be implicitly treated as 0.
constexpr bool outputsAreZero () const
Return true if output denormals should be flushed to 0.
DenormalMode mergeCalleeMode (DenormalMode Callee) const
Get the effective denormal mode if the mode if this caller calls into a function with Callee.
void print (raw_ostream &OS) const
std::string str () const
Static Public Member Functions
static constexpr DenormalMode getInvalid ()
static constexpr DenormalMode getDefault ()
Return the assumed default mode for a function without denormal-fp-math.
static constexpr DenormalMode getIEEE ()
static constexpr DenormalMode getPreserveSign ()
static constexpr DenormalMode getPositiveZero ()
static constexpr DenormalMode getDynamic ()
Public Attributes
DenormalModeKind Output = DenormalModeKind::Invalid
Denormal flushing mode for floating point instruction results in the default floating point environment.
DenormalModeKind Input = DenormalModeKind::Invalid
Denormal treatment kind for floating point instruction inputs in the default floating-point environment.

Represent subnormal handling kind for floating point instruction inputs and outputs.

Definition at line 71 of file FloatingPointMode.h.

DenormalModeKind

Represent handled modes for denormal (aka subnormal) modes in the floating point environment.

Enumerator
Invalid
IEEE IEEE-754 denormal numbers preserved.
PreserveSign The sign of a flushed-to-zero number is preserved in the sign of 0.
PositiveZero Denormals are flushed to positive zero.
Dynamic Denormals have unknown treatment.

Definition at line 74 of file FloatingPointMode.h.

llvm::DenormalMode::DenormalMode ( ) constexprdefault

Referenced by DenormalMode(), getDefault(), getDynamic(), getIEEE(), getInvalid(), getPositiveZero(), getPreserveSign(), mergeCalleeMode(), operator!=(), operator=(), and operator==().

DenormalMode() [2/3]

References DenormalMode().

DenormalMode() [3/3]

llvm::DenormalMode::DenormalMode ( DenormalModeKind Out, DenormalModeKind In ) inlineconstexpr

getDefault()

constexpr DenormalMode llvm::DenormalMode::getDefault ( ) inlinestaticconstexpr

getDynamic()

constexpr DenormalMode llvm::DenormalMode::getDynamic ( ) inlinestaticconstexpr

getIEEE()

constexpr DenormalMode llvm::DenormalMode::getIEEE ( ) inlinestaticconstexpr

getInvalid()

constexpr DenormalMode llvm::DenormalMode::getInvalid ( ) inlinestaticconstexpr

getPositiveZero()

constexpr DenormalMode llvm::DenormalMode::getPositiveZero ( ) inlinestaticconstexpr

getPreserveSign()

constexpr DenormalMode llvm::DenormalMode::getPreserveSign ( ) inlinestaticconstexpr

Definition at line 119 of file FloatingPointMode.h.

References DenormalMode(), and PreserveSign.

Referenced by atomicIgnoresDenormalModeOrFPModeIsFTZ(), denormalModeIsFlushAllF32(), denormalModeIsFlushAllF64F16(), llvm::SIModeRegisterDefaults::fpDenormModeDPValue(), llvm::SIModeRegisterDefaults::fpDenormModeSPValue(), llvm::GCNTTIImpl::GCNTTIImpl(), llvm::nvvm::GetNVVMDenormMode(), llvm::AMDGPULegalizerInfo::legalizeFMad(), llvm::AMDGPUTargetLowering::LowerDIVREM24(), and llvm::AMDGPUTargetLowering::LowerUDIVREM64().

inputsAreZero()

bool llvm::DenormalMode::inputsAreZero ( ) const inlineconstexpr

isSimple()

bool llvm::DenormalMode::isSimple ( ) const inline

isValid()

bool llvm::DenormalMode::isValid ( ) const inline

mergeCalleeMode()

Get the effective denormal mode if the mode if this caller calls into a function with Callee.

This promotes dynamic modes to the mode of the caller.

Definition at line 165 of file FloatingPointMode.h.

References DenormalMode(), Dynamic, Input, and Output.

operator!=()

operator=()

References DenormalMode().

operator==()

outputsAreZero()

bool llvm::DenormalMode::outputsAreZero ( ) const inlineconstexpr

print()

void llvm::DenormalMode::print ( raw_ostream & OS) const inline

str()

std::string llvm::DenormalMode::str ( ) const inline

Input

DenormalModeKind llvm::DenormalMode::Input = DenormalModeKind::Invalid

Denormal treatment kind for floating point instruction inputs in the default floating-point environment.

If this is not DenormalModeKind::IEEE, floating-point instructions implicitly treat the input value as 0.

Definition at line 97 of file FloatingPointMode.h.

Referenced by computeKnownFPClass(), DenormalMode(), denormModeCompatible(), inputsAreZero(), isFCmpEqualZero(), isSimple(), isValid(), mergeCalleeMode(), llvm::AMDGPUTargetLowering::needsDenormHandlingF32(), needsDenormHandlingF32(), operator==(), llvm::GCNTargetMachine::parseMachineFunctionInfo(), and print().

Output

DenormalModeKind llvm::DenormalMode::Output = DenormalModeKind::Invalid

Denormal flushing mode for floating point instruction results in the default floating point environment.

Definition at line 92 of file FloatingPointMode.h.

Referenced by computeKnownFPClass(), DenormalMode(), denormModeCompatible(), isSimple(), isValid(), mergeCalleeMode(), operator==(), outputsAreZero(), llvm::GCNTargetMachine::parseMachineFunctionInfo(), print(), and llvm::NVPTXTargetLowering::useF32FTZ().


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