class FPMathOperator

Declaration

class FPMathOperator : public Operator { /* full declaration omitted */ };

Description

Utility class for floating point operations which can have information about relaxed accuracy requirements attached to them.

Declared at: llvm/include/llvm/IR/Operator.h:167

Inherits from: Operator

Member Variables

Inherited from Value:

protected SubclassOptionalData
protected NumUserOperands
protected IsUsedByMD
protected HasName
protected HasMetadata
protected HasHungOffUses
protected HasDescriptor
public static MaxAlignmentExponent = 32
public static MaximumAlignment = 1ULL << MaxAlignmentExponent

Method Overview

Inherited from Operator:

Inherited from User:

Inherited from Value:

Methods

static bool classof(const llvm::Value* V)

Declared at: llvm/include/llvm/IR/Operator.h:294

Parameters

const llvm::Value* V

void copyFastMathFlags(llvm::FastMathFlags FMF)

Description

Convenience function for copying all fast-math flags. All values in FMF are transferred to this operator.

Declared at: llvm/include/llvm/IR/Operator.h:232

Parameters

llvm::FastMathFlags FMF

float getFPAccuracy() const

Description

Get the maximum error permitted by this operation in ULPs. An accuracy of 0.0 means that the operation should be performed with the default precision.

Declared at: llvm/include/llvm/IR/Operator.h:292

llvm::FastMathFlags getFastMathFlags() const

Description

Convenience function for getting all the fast-math flags

Declared at: llvm/include/llvm/IR/Operator.h:285

bool hasAllowContract() const

Description

Test if this operation can be floating-point contracted (FMA).

Declared at: llvm/include/llvm/IR/Operator.h:274

bool hasAllowReassoc() const

Description

Test if this operation may be simplified with reassociative transforms.

Declared at: llvm/include/llvm/IR/Operator.h:249

bool hasAllowReciprocal() const

Description

Test if this operation can use reciprocal multiply instead of division.

Declared at: llvm/include/llvm/IR/Operator.h:269

bool hasApproxFunc() const

Description

Test if this operation allows approximations of math library functions or intrinsics.

Declared at: llvm/include/llvm/IR/Operator.h:280

bool hasNoInfs() const

Description

Test if this operation's arguments and results are assumed not-infinite.

Declared at: llvm/include/llvm/IR/Operator.h:259

bool hasNoNaNs() const

Description

Test if this operation's arguments and results are assumed not-NaN.

Declared at: llvm/include/llvm/IR/Operator.h:254

bool hasNoSignedZeros() const

Description

Test if this operation can ignore the sign of zero.

Declared at: llvm/include/llvm/IR/Operator.h:264

bool isFast() const

Description

Test if this operation allows all non-strict floating-point transforms.

Declared at: llvm/include/llvm/IR/Operator.h:238

void setFast(bool B)

Description

'Fast' means all bits are set.

Declared at: llvm/include/llvm/IR/Operator.h:172

Parameters

bool B

void setFastMathFlags(llvm::FastMathFlags FMF)

Description

Convenience function for setting multiple fast-math flags. FMF is a mask of the bits to set.

Declared at: llvm/include/llvm/IR/Operator.h:226

Parameters

llvm::FastMathFlags FMF

void setHasAllowContract(bool B)

Declared at: llvm/include/llvm/IR/Operator.h:212

Parameters

bool B

void setHasAllowReassoc(bool B)

Declared at: llvm/include/llvm/IR/Operator.h:182

Parameters

bool B

void setHasAllowReciprocal(bool B)

Declared at: llvm/include/llvm/IR/Operator.h:206

Parameters

bool B

void setHasApproxFunc(bool B)

Declared at: llvm/include/llvm/IR/Operator.h:218

Parameters

bool B

void setHasNoInfs(bool B)

Declared at: llvm/include/llvm/IR/Operator.h:194

Parameters

bool B

void setHasNoNaNs(bool B)

Declared at: llvm/include/llvm/IR/Operator.h:188

Parameters

bool B

void setHasNoSignedZeros(bool B)

Declared at: llvm/include/llvm/IR/Operator.h:200

Parameters

bool B