diff options
-rw-r--r-- | lib/Bitcode/Reader/BitcodeReader.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/Bitcode/Reader/BitcodeReader.cpp b/lib/Bitcode/Reader/BitcodeReader.cpp index 8b333bc..4098266 100644 --- a/lib/Bitcode/Reader/BitcodeReader.cpp +++ b/lib/Bitcode/Reader/BitcodeReader.cpp @@ -818,7 +818,7 @@ bool BitcodeReader::ParseConstants() { if (OpTy->isFloatingPoint()) V = ConstantExpr::getFCmp(Record[3], Op0, Op1); - else if (OpTy->isInteger() || isa<PointerType>(OpTy)) + else if (!isa<VectorType>(OpTy)) V = ConstantExpr::getICmp(Record[3], Op0, Op1); else if (OpTy->isFPOrFPVector()) V = ConstantExpr::getVFCmp(Record[3], Op0, Op1); @@ -1359,10 +1359,10 @@ bool BitcodeReader::ParseFunctionBody(Function *F) { OpNum+1 != Record.size()) return Error("Invalid CMP record"); - if (LHS->getType()->isInteger() || isa<PointerType>(LHS->getType())) - I = new ICmpInst((ICmpInst::Predicate)Record[OpNum], LHS, RHS); - else if (LHS->getType()->isFloatingPoint()) + if (LHS->getType()->isFloatingPoint()) I = new FCmpInst((FCmpInst::Predicate)Record[OpNum], LHS, RHS); + else if (!isa<VectorType>(LHS->getType())) + I = new ICmpInst((ICmpInst::Predicate)Record[OpNum], LHS, RHS); else if (LHS->getType()->isFPOrFPVector()) I = new VFCmpInst((FCmpInst::Predicate)Record[OpNum], LHS, RHS); else |