bool isExactlyValue(const APFloat& V) const;
bool isExactlyValue(double V) const {
+ bool ignored;
// convert is not supported on this type
if (&Val.getSemantics() == &APFloat::PPCDoubleDouble)
return false;
APFloat FV(V);
- FV.convert(Val.getSemantics(), APFloat::rmNearestTiesToEven);
+ FV.convert(Val.getSemantics(), APFloat::rmNearestTiesToEven, &ignored);
return isExactlyValue(FV);
}
/// Methods for support type inquiry through isa, cast, and dyn_cast:
// ConstantExprs in intermediate forms.
static Constant *getTy(const Type *Ty, unsigned Opcode,
Constant *C1, Constant *C2);
- static Constant *getCompareTy(unsigned short pred, Constant *C1,
- Constant *C2, bool isVecCmp = false);
+ static Constant *getCompareTy(unsigned short pred, Constant *C1,
+ Constant *C2);
static Constant *getSelectTy(const Type *Ty,
Constant *C1, Constant *C2, Constant *C3);
static Constant *getGetElementPtrTy(const Type *Ty, Constant *C,
/// getWithOperands - This returns the current constant expression with the
/// operands replaced with the specified values. The specified operands must
/// match count and type with the existing ones.
- Constant *getWithOperands(const std::vector<Constant*> &Ops) const;
+ Constant *getWithOperands(const std::vector<Constant*> &Ops) const {
+ return getWithOperands(&Ops[0], (unsigned)Ops.size());
+ }
+ Constant *getWithOperands(Constant* const *Ops, unsigned NumOps) const;
virtual void destroyConstant();
virtual void replaceUsesOfWithOnConstant(Value *From, Value *To, Use *U);