Pointer comparisons should be handled by icmp, not vicmp :)

llvm-svn: 50994
This commit is contained in:
Nate Begeman 2008-05-12 20:11:05 +00:00
parent 5f52142ee0
commit 66d0a0e8f4
2 changed files with 3 additions and 3 deletions

View File

@ -1359,7 +1359,7 @@ bool BitcodeReader::ParseFunctionBody(Function *F) {
OpNum+1 != Record.size())
return Error("Invalid CMP record");
if (LHS->getType()->isInteger())
if (LHS->getType()->isInteger() || isa<PointerType>(LHS->getType()))
I = new ICmpInst((ICmpInst::Predicate)Record[OpNum], LHS, RHS);
else if (LHS->getType()->isFloatingPoint())
I = new FCmpInst((FCmpInst::Predicate)Record[OpNum], LHS, RHS);

View File

@ -2335,7 +2335,7 @@ BitCastInst::BitCastInst(
CmpInst::CmpInst(const Type *ty, OtherOps op, unsigned short predicate,
Value *LHS, Value *RHS, const std::string &Name,
Instruction *InsertBefore)
: Instruction(Type::Int1Ty, op,
: Instruction(ty, op,
OperandTraits<CmpInst>::op_begin(this),
OperandTraits<CmpInst>::operands(this),
InsertBefore) {
@ -2348,7 +2348,7 @@ CmpInst::CmpInst(const Type *ty, OtherOps op, unsigned short predicate,
CmpInst::CmpInst(const Type *ty, OtherOps op, unsigned short predicate,
Value *LHS, Value *RHS, const std::string &Name,
BasicBlock *InsertAtEnd)
: Instruction(Type::Int1Ty, op,
: Instruction(ty, op,
OperandTraits<CmpInst>::op_begin(this),
OperandTraits<CmpInst>::operands(this),
InsertAtEnd) {