#include "llvm/iOther.h"
#include "llvm/iTerminators.h"
#include "llvm/Tools/STLExtras.h"
-//#include "llvm/Assembly/Writer.h"
+#include "llvm/Assembly/Writer.h"
#include <algorithm>
#include <map>
#include <set>
//===-------------------------------------------------------------------===//
// Handle Unary instructions...
//
- if (I->isUnaryOp()) {
+ if (I->isUnaryOp() || I->getOpcode() == Instruction::Cast) {
Value *V = I->getOperand(0);
InstVal &VState = getValueState(V);
if (VState.isOverdefined()) { // Inherit overdefinedness of operand
//===-----------------------------------------------------------------===//
// Handle Binary instructions...
//
- if (I->isBinaryOp()) {
+ if (I->isBinaryOp() || I->getOpcode() == Instruction::Shl ||
+ I->getOpcode() == Instruction::Shr) {
Value *V1 = I->getOperand(0);
Value *V2 = I->getOperand(1);