diff --git a/llvm/tools/llvm2cpp/CppWriter.cpp b/llvm/tools/llvm2cpp/CppWriter.cpp
index 79c3d9d..b1f717d 100644
--- a/llvm/tools/llvm2cpp/CppWriter.cpp
+++ b/llvm/tools/llvm2cpp/CppWriter.cpp
@@ -757,7 +757,7 @@
           << " = ConstantExpr::getGetElementPtr(" 
           << getCppName(CE->getOperand(0)) << ", " 
           << constName << "_indices);";
-    } else if (CE->getOpcode() == Instruction::Cast) {
+    } else if (CE->isCast()) {
       printConstant(CE->getOperand(0));
       Out << "Constant* " << constName << " = ConstantExpr::getCast(";
       Out << getCppName(CE->getOperand(0)) << ", " << getCppName(CE->getType())
@@ -1174,10 +1174,36 @@
       }
       break;
     }
-    case Instruction::Cast: {
+    case Instruction::Trunc: 
+    case Instruction::ZExt:
+    case Instruction::SExt:
+    case Instruction::FPTrunc:
+    case Instruction::FPExt:
+    case Instruction::FPToUI:
+    case Instruction::FPToSI:
+    case Instruction::UIToFP:
+    case Instruction::SIToFP:
+    case Instruction::PtrToInt:
+    case Instruction::IntToPtr:
+    case Instruction::BitCast: {
       const CastInst* cst = cast<CastInst>(I);
-      Out << "CastInst* " << iName << " = new CastInst("
-          << opNames[0] << ", "
+      Out << "CastInst* " << iName << " = new ";
+      switch (I->getOpcode()) {
+        case Instruction::Trunc:    Out << "TruncInst";
+        case Instruction::ZExt:     Out << "ZExtInst";
+        case Instruction::SExt:     Out << "SExtInst";
+        case Instruction::FPTrunc:  Out << "FPTruncInst";
+        case Instruction::FPExt:    Out << "FPExtInst";
+        case Instruction::FPToUI:   Out << "FPToUIInst";
+        case Instruction::FPToSI:   Out << "FPToSIInst";
+        case Instruction::UIToFP:   Out << "UIToFPInst";
+        case Instruction::SIToFP:   Out << "SIToFPInst";
+        case Instruction::PtrToInt: Out << "PtrToInst";
+        case Instruction::IntToPtr: Out << "IntToPtrInst";
+        case Instruction::BitCast:  Out << "BitCastInst";
+        default: assert(!"Unreachable"); break;
+      }
+      Out << "(" << opNames[0] << ", "
           << getCppName(cst->getType()) << ", \"";
       printEscapedString(cst->getName());
       Out << "\", " << bbname << ");";
