diff options
Diffstat (limited to 'lib/Analysis/ValueTracking.cpp')
| -rw-r--r-- | lib/Analysis/ValueTracking.cpp | 5 | 
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/Analysis/ValueTracking.cpp b/lib/Analysis/ValueTracking.cpp index 7509e91bdc85..07a18fe4de42 100644 --- a/lib/Analysis/ValueTracking.cpp +++ b/lib/Analysis/ValueTracking.cpp @@ -249,7 +249,10 @@ void llvm::ComputeMaskedBits(Value *V, const APInt &Mask,    }    case Instruction::BitCast: {      const Type *SrcTy = I->getOperand(0)->getType(); -    if (SrcTy->isInteger() || isa<PointerType>(SrcTy)) { +    if ((SrcTy->isInteger() || isa<PointerType>(SrcTy)) && +        // TODO: For now, not handling conversions like: +        // (bitcast i64 %x to <2 x i32>) +        !isa<VectorType>(I->getType())) {        ComputeMaskedBits(I->getOperand(0), Mask, KnownZero, KnownOne, TD,                          Depth+1);        return;  | 
