23#ifndef LLVM_IR_CONSTANTFPRANGE_H
24#define LLVM_IR_CONSTANTFPRANGE_H
128 static std::optional<ConstantFPRange>
144 bool isNaNOnly()
const;
151 bool isFullSet()
const;
154 bool isEmptySet()
const;
164 const APFloat *getSingleElement(
bool ExcludesNaN =
false)
const;
170 return getSingleElement(ExcludesNaN) !=
nullptr;
176 std::optional<bool> getSignBit()
const;
This file declares a class to represent arbitrary precision floating point values and provide a varie...
static void print(raw_ostream &Out, object::Archive::Kind Kind, T Val)
std::optional< std::vector< StOtherPiece > > Other
static bool contains(SmallPtrSetImpl< ConstantExpr * > &Cache, ConstantExpr *Expr, Constant *C)
Predicate
This enumeration lists the possible predicates for CmpInst subclasses.
This class represents a range of floating-point values.
static ConstantFPRange getMayBeNaN(APFloat LowerVal, APFloat UpperVal)
Create a range which may contain NaNs.
static ConstantFPRange getFull(const fltSemantics &Sem)
Create full constant range with the given semantics.
bool containsQNaN() const
bool containsSNaN() const
bool isSingleElement(bool ExcludesNaN=false) const
Return true if this set contains exactly one member.
void print(raw_ostream &OS) const
Print out the bounds to a stream.
bool operator!=(const ConstantFPRange &CR) const
Return true if this range is not equal to another range.
static ConstantFPRange getEmpty(const fltSemantics &Sem)
Create empty constant range with the given semantics.
static ConstantFPRange getNonNaN(APFloat LowerVal, APFloat UpperVal)
Create a range which doesn't contain NaNs.
const APFloat & getUpper() const
Return the upper value for this range.
const APFloat & getLower() const
Return the lower value for this range.
const fltSemantics & getSemantics() const
Get the semantics of this ConstantFPRange.
LLVM Value Representation.
This class implements an extremely fast bulk output stream that can only output to a stream.
This is an optimization pass for GlobalISel generic memory operations.
void dump(const SparseBitVector< ElementSize > &LHS, raw_ostream &out)
bool operator==(const AddressRangeValuePair &LHS, const AddressRangeValuePair &RHS)
FPClassTest
Floating-point class tests, supported by 'is_fpclass' intrinsic.
raw_ostream & operator<<(raw_ostream &OS, const APFixedPoint &FX)