Tracks which floating‐point classes a value may belong to.

Synopsis

Declared in <llvm/Support/KnownFPClass.h>

struct KnownFPClass;

Enums

Name

Description

MinMaxKind

Kind of IEEE min/max intrinsic without depending on IR.

Member Functions

Name

Description

KnownFPClass [constructor]

Constructors

cannotBeOrderedGreaterEqZero

Return true if it's know this can never be a negative value or a logical 0.

cannotBeOrderedGreaterThanZero

Return true if the value is NaN or never ordered greater than ‐0.0.

cannotBeOrderedLessEqZero

Return true if it's known this can never be a positive value or a logical 0.

cannotBeOrderedLessThanZero

Return true if we can prove that the analyzed floating‐point value is either NaN or never less than ‐0.0.

copysign

Copy the sign of Sign onto this magnitude in place.

fabs

Replace this with the absolute value, forcing a non‐negative sign.

fneg

Negate this value in place, flipping known classes and the sign bit.

intersectWith

Return the intersection of this and RHS known‐class information.

isKnownAlways

Return true if every possible class is covered by Mask.

isKnownAlwaysNaN

Return true if it's known this must always be a nan.

isKnownNever

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

isKnownNeverInfOrNaN

Return true if it's known this can never be an infinity or nan

isKnownNeverInfinity

Return true if it's known this can never be an infinity.

isKnownNeverLogicalNegZero

Return true if it's known this can never be interpreted as a negative zero.

isKnownNeverLogicalPosZero

Return true if it's known this can never be interpreted as a positive zero.

isKnownNeverLogicalZero

Return true if it's known this can never be interpreted as a zero.

isKnownNeverNaN

Return true if it's known this can never be a nan.

isKnownNeverNegInfinity

Return true if it's known this can never be ‐infinity.

isKnownNeverNegSubnormal

Return true if it's known this can never be a negative subnormal

isKnownNeverNegZero

Return true if it's known this can never be a negative zero. This means a literal ‐0 and does not include denormal inputs implicitly treated as ‐0.

isKnownNeverPosInfinity

Return true if it's known this can never be +infinity.

isKnownNeverPosSubnormal

Return true if it's known this can never be a positive subnormal

isKnownNeverPosZero

Return true if it's known this can never be a literal positive zero.

isKnownNeverSubnormal

Return true if it's known this can never be a subnormal

isKnownNeverZero

Return true if it's known this can never be a zero. This means a literal [+‐]0, and does not include denormal inputs implicitly treated as [+‐]0.

isUnknown

Return true if nothing is known about the class or sign bit.

knownNot

Rule out the floating‐point classes in RuleOut.

operator|=

Merge RHS into this by taking the union of possible classes.

propagateCanonicalizingSrc

Report known classes for a potentially canonicalizing operation on Src.

propagateDenormal

Propagate knowledge from a source that could be a denormal or zero.

propagateNonNaN

propagateNonNaN overloads

propagateNonSNaN

propagateNonSNaN overloads

propagateXorSign

Propagate sign knowledge for operations whose result sign is the xor of the operand signs.

resetAll

Reset all known‐class and sign information to unknown.

signBitIsZeroOrNaN

Return true if the sign bit must be 0, ignoring the sign of nans.

signBitMustBeOne

Assume the sign bit is one.

signBitMustBeZero

Assume the sign bit is zero.

toKnownBits

Report known bits for a float with provided semantics.

unionWith

Return the union of this and RHS known‐class information.

operator==

Return true if this and Other have the same known classes and sign.

Static Member Functions

Name

Description

acos

Report known values for acos.

asin

Report known values for asin.

atan

Report known values for atan.

atan2

Report known values for atan2.

bitcast

Report known values for a bitcast into a float with provided semantics.

canonicalize

Apply the canonicalize intrinsic to this value.

copysign

Return KnownMag with the sign taken from KnownSign.

cos

Report known values for cos.

cosh

Report known values for cosh.

exp

Report known values for exp, exp2 and exp10.

fabs

Return the absolute value of Src.

fadd

Report known values for fadd.

fadd_self

Report known values for fadd x, x.

fdiv

Report known values for fdiv.

fdiv_self

Report known values for fdiv x, x.

fma

Report known values for fma.

fma_square

Report known values for fma of a squared value plus an addend.

fmul

fmul overloads

fneg

Return the floating‐point negation of Src.

fpext

Propagate known class for fpext.

fptrunc

Propagate known class for fptrunc.

frem

Report known values for frem.

frem_self

Report known values for frem x, x.

frexp_mant

Propagate known class for mantissa component of frexp.

fsub

Report known values for fsub.

ldexp

ldexp overloads

log

Propagate known class for log/log2/log10.

minMaxLike

Report known classes for a min/max‐like operation on LHS and RHS.

pow

Propagate known class for pow.

powi

Propagate known class for powi.

roundToIntegral

Propagate known class for rounding intrinsics.

sin

Report known values for sin.

sinh

Report known values for sinh.

sqrt

Propagate known class for sqrt.

square

Report known values for squaring a floating‐point value.

tan

Report known values for tan.

tanh

Report known values for tanh.

Data Members

Name

Description

KnownFPClasses

Floating‐point classes the value could be one of.

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.

Static Data Members

Name

Description

OrderedGreaterThanZeroMask

Mask of classes that are ordered greater than zero.

OrderedLessThanZeroMask

Mask of classes that are ordered less than zero.

Non-Member Functions

Name

Description

adjustKnownFPClassForSelectArm

Adjust Known for the given select Arm to include information from the select Cond.

computeKnownFPClass

Wrapper to account for known fast math flags at the use instruction.

computeKnownFPClass

Determine known floating‐point classes for V.

computeKnownFPClass

Wrapper to account for known fast math flags at the use instruction.

computeKnownFPClass

Determine which floating‐point classes are valid for V, and return them in KnownFPClass bit sets.

computeKnownFPClass

Determine known floating‐point classes for V using explicit analysis context.

operator|

Return the union of known‐class information from LHS and RHS.

operator|

Return the union of known‐class information from LHS and RHS.

Created with MrDocs