diff --git a/llvm/lib/IR/Constants.cpp b/llvm/lib/IR/Constants.cpp --- a/llvm/lib/IR/Constants.cpp +++ b/llvm/lib/IR/Constants.cpp @@ -2601,8 +2601,7 @@ Constant *ConstantExpr::getNeg(Constant *C, bool HasNUW, bool HasNSW) { assert(C->getType()->isIntOrIntVectorTy() && "Cannot NEG a nonintegral value!"); - return getSub(ConstantFP::getZeroValueForNegation(C->getType()), - C, HasNUW, HasNSW); + return getSub(ConstantInt::get(C->getType(), 0), C, HasNUW, HasNSW); } Constant *ConstantExpr::getNot(Constant *C) { diff --git a/llvm/lib/IR/Instructions.cpp b/llvm/lib/IR/Instructions.cpp --- a/llvm/lib/IR/Instructions.cpp +++ b/llvm/lib/IR/Instructions.cpp @@ -3073,42 +3073,42 @@ BinaryOperator *BinaryOperator::CreateNeg(Value *Op, const Twine &Name, Instruction *InsertBefore) { - Value *zero = ConstantFP::getZeroValueForNegation(Op->getType()); + Value *Zero = ConstantInt::get(Op->getType(), 0); return new BinaryOperator(Instruction::Sub, - zero, Op, + Zero, Op, Op->getType(), Name, InsertBefore); } BinaryOperator *BinaryOperator::CreateNeg(Value *Op, const Twine &Name, BasicBlock *InsertAtEnd) { - Value *zero = ConstantFP::getZeroValueForNegation(Op->getType()); + Value *Zero = ConstantInt::get(Op->getType(), 0); return new BinaryOperator(Instruction::Sub, - zero, Op, + Zero, Op, Op->getType(), Name, InsertAtEnd); } BinaryOperator *BinaryOperator::CreateNSWNeg(Value *Op, const Twine &Name, Instruction *InsertBefore) { - Value *zero = ConstantFP::getZeroValueForNegation(Op->getType()); - return BinaryOperator::CreateNSWSub(zero, Op, Name, InsertBefore); + Value *Zero = ConstantInt::get(Op->getType(), 0); + return BinaryOperator::CreateNSWSub(Zero, Op, Name, InsertBefore); } BinaryOperator *BinaryOperator::CreateNSWNeg(Value *Op, const Twine &Name, BasicBlock *InsertAtEnd) { - Value *zero = ConstantFP::getZeroValueForNegation(Op->getType()); - return BinaryOperator::CreateNSWSub(zero, Op, Name, InsertAtEnd); + Value *Zero = ConstantInt::get(Op->getType(), 0); + return BinaryOperator::CreateNSWSub(Zero, Op, Name, InsertAtEnd); } BinaryOperator *BinaryOperator::CreateNUWNeg(Value *Op, const Twine &Name, Instruction *InsertBefore) { - Value *zero = ConstantFP::getZeroValueForNegation(Op->getType()); - return BinaryOperator::CreateNUWSub(zero, Op, Name, InsertBefore); + Value *Zero = ConstantInt::get(Op->getType(), 0); + return BinaryOperator::CreateNUWSub(Zero, Op, Name, InsertBefore); } BinaryOperator *BinaryOperator::CreateNUWNeg(Value *Op, const Twine &Name, BasicBlock *InsertAtEnd) { - Value *zero = ConstantFP::getZeroValueForNegation(Op->getType()); - return BinaryOperator::CreateNUWSub(zero, Op, Name, InsertAtEnd); + Value *Zero = ConstantInt::get(Op->getType(), 0); + return BinaryOperator::CreateNUWSub(Zero, Op, Name, InsertAtEnd); } BinaryOperator *BinaryOperator::CreateNot(Value *Op, const Twine &Name,