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:246

Inherits from: Operator

Member Variables

Inherited from Value:

protected SubclassOptionalData
protected NumUserOperands
protected IsUsedByMD
protected HasName
protected HasHungOffUses
protected HasDescriptor
public static MaxAlignmentExponent = 29
public static MaximumAlignment = 1U << 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:373

Parameters

const llvm::Value* V

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:371

llvm::FastMathFlags getFastMathFlags() const

Description

Convenience function for getting all the fast-math flags

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

bool hasAllowContract() const

Description

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

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

bool hasAllowReassoc() const

Description

Test if this operation may be simplified with reassociative transforms.

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

bool hasAllowReciprocal() const

Description

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

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

bool hasApproxFunc() const

Description

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

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

bool hasNoInfs() const

Description

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

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

bool hasNoNaNs() const

Description

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

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

bool hasNoSignedZeros() const

Description

Test if this operation can ignore the sign of zero.

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

bool isFast() const

Description

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

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