Add support for select constant exprs
authorChris Lattner <sabre@nondot.org>
Fri, 12 Mar 2004 05:50:39 +0000 (05:50 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 12 Mar 2004 05:50:39 +0000 (05:50 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12309 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Constants.h

index 6a02c5df215bfa708ce975f4b931c968e3c69628..1d4892f118e94e40355d655a9ac51d3e40e39c86 100644 (file)
@@ -518,6 +518,8 @@ protected:
   ConstantExpr(unsigned Opcode, Constant *C, const Type *Ty);
   // Binary/Shift instruction creation ctor
   ConstantExpr(unsigned Opcode, Constant *C1, Constant *C2);
+  // Select instruction creation ctor
+  ConstantExpr(Constant *C, Constant *V1, Constant *V2);
   // GEP instruction creation ctor
   ConstantExpr(Constant *C, const std::vector<Constant*> &IdxList,
                const Type *DestTy);
@@ -528,6 +530,8 @@ protected:
                          Constant *C1, Constant *C2);
   static Constant *getShiftTy(const Type *Ty,
                               unsigned Opcode, Constant *C1, Constant *C2);
+  static Constant *getSelectTy(const Type *Ty,
+                               Constant *C1, Constant *C2, Constant *C3);
   static Constant *getGetElementPtrTy(const Type *Ty, Constant *C,
                                       const std::vector<Constant*> &IdxList);
   
@@ -541,6 +545,13 @@ public:
   ///
   static Constant *getCast(Constant *C, const Type *Ty);
 
+  /// Select constant expr
+  ///
+  static Constant *getSelect(Constant *C, Constant *V1, Constant *V2) {
+    return getSelectTy(V1->getType(), C, V1, V2);
+  }
+
+
   /// ConstantExpr::get - Return a binary or shift operator constant expression,
   /// folding if possible.
   ///