add checking intentionally elided for vfcmp/vicmp since they should really

just be removed.  However, this fixes PR3281:crash04.ll, diagnosing it with:

lvm-as: crash04.ll:2:13: vfcmp requires vector floating point operands
  vfcmp uno double* undef, undef
            ^



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61680 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2009-01-05 08:09:48 +00:00
parent d77d04c323
commit 4a1c4a414c

View File

@ -2677,8 +2677,12 @@ bool LLParser::ParseCompare(Instruction *&Inst, PerFunctionState &PFS,
return Error(Loc, "icmp requires integer operands");
Inst = new ICmpInst(CmpInst::Predicate(Pred), LHS, RHS);
} else if (Opc == Instruction::VFCmp) {
if (!LHS->getType()->isFPOrFPVector() || !isa<VectorType>(LHS->getType()))
return Error(Loc, "vfcmp requires vector floating point operands");
Inst = new VFCmpInst(CmpInst::Predicate(Pred), LHS, RHS);
} else if (Opc == Instruction::VICmp) {
if (!LHS->getType()->isIntOrIntVector() || !isa<VectorType>(LHS->getType()))
return Error(Loc, "vicmp requires vector floating point operands");
Inst = new VICmpInst(CmpInst::Predicate(Pred), LHS, RHS);
}
return false;