Neg instruction removed. Cast instruction implemented.
[oota-llvm.git] / include / llvm / iOperators.h
1 //===-- llvm/iBinary.h - Binary Operator node definitions --------*- C++ -*--=//
2 //
3 // This file contains the declarations of all of the Binary Operator classes.
4 //
5 //===----------------------------------------------------------------------===//
6
7 #ifndef LLVM_IBINARY_H
8 #define LLVM_IBINARY_H
9
10 #include "llvm/InstrTypes.h"
11
12 //===----------------------------------------------------------------------===//
13 //                   Class to represent Unary operators
14 //===----------------------------------------------------------------------===//
15 //
16 class GenericUnaryInst : public UnaryOperator {
17 public:
18   GenericUnaryInst(UnaryOps Opcode, Value *S1, const Type *ResultTy = 0,
19                    const string &Name = "")
20     : UnaryOperator(S1, Opcode, ResultTy, Name) {
21   }
22
23   virtual const char *getOpcodeName() const;
24 };
25
26 //===----------------------------------------------------------------------===//
27 //                 Classes to represent Binary operators
28 //===----------------------------------------------------------------------===//
29 //
30 // All of these classes are subclasses of the BinaryOperator class...
31 //
32
33 class GenericBinaryInst : public BinaryOperator {
34 public:
35   GenericBinaryInst(BinaryOps Opcode, Value *S1, Value *S2, 
36                     const string &Name = "")
37     : BinaryOperator(Opcode, S1, S2, Name) {
38   }
39
40   virtual const char *getOpcodeName() const;
41 };
42
43 class SetCondInst : public BinaryOperator {
44   BinaryOps OpType;
45 public:
46   SetCondInst(BinaryOps opType, Value *S1, Value *S2, 
47               const string &Name = "");
48
49   virtual const char *getOpcodeName() const;
50 };
51
52 #endif