From: Chris Lattner Date: Wed, 14 Aug 2002 17:52:27 +0000 (+0000) Subject: Implement two constructor functions for "unary" instructions X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=a9261ff5b7c22d51578d5b2670f7ae8c205db748;p=oota-llvm.git Implement two constructor functions for "unary" instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3317 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/VMCore/iOperators.cpp b/lib/VMCore/iOperators.cpp index bc37df5cb7f..f520ff52f5b 100644 --- a/lib/VMCore/iOperators.cpp +++ b/lib/VMCore/iOperators.cpp @@ -6,6 +6,7 @@ #include "llvm/iOperators.h" #include "llvm/Type.h" +#include "llvm/Constants.h" using std::cerr; //===----------------------------------------------------------------------===// @@ -40,6 +41,18 @@ BinaryOperator *BinaryOperator::create(BinaryOps Op, Value *S1, Value *S2, } } +BinaryOperator *BinaryOperator::createNeg(Value *Op, const std::string &Name) { + return new GenericBinaryInst(Instruction::Sub, + Constant::getNullValue(Op->getType()), Op, Name); +} + +BinaryOperator *BinaryOperator::createNot(Value *Op, const std::string &Name) { + return new GenericBinaryInst(Instruction::Xor, Op, + ConstantIntegral::getAllOnesValue(Op->getType()), + Name); +} + + // swapOperands - Exchange the two operands to this instruction. This // instruction is safe to use on any binary instruction and does not // modify the semantics of the instruction. If the instruction is