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:
- include/llvm/ADT/FloatingPointMode.h