mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-29 16:12:44 +00:00
Fix PR571, removing code that does just the WRONG thing :)
llvm-svn: 22225
This commit is contained in:
parent
b99bf21182
commit
4af04a8d54
@ -3102,33 +3102,7 @@ Instruction *InstCombiner::visitSetCondInstWithCastAndCast(SetCondInst &SCI) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 0; //The rest of this function is broken. See bug 571
|
||||
|
||||
// Okay, we have the two reduced sized operands. If we are doing a <,>
|
||||
// comparison, make sure we perform the compare with the same signedness as
|
||||
// the DestTy. We don't have to do this if the comparison is !=/== or if the
|
||||
// source is a bool.
|
||||
if (isSignSrc != isSignDest && SrcTy != Type::BoolTy &&
|
||||
SCI.getOpcode() != Instruction::SetEQ &&
|
||||
SCI.getOpcode() != Instruction::SetNE) {
|
||||
// Insert noop casts of the two operands to change the sign of the
|
||||
// comparison.
|
||||
const Type *NewSrcTy;
|
||||
if (isSignDest)
|
||||
NewSrcTy = SrcTy->getSignedVersion();
|
||||
else
|
||||
NewSrcTy = SrcTy->getUnsignedVersion();
|
||||
|
||||
// Insert the new casts.
|
||||
LHSCIOp = InsertNewInstBefore(new CastInst(LHSCIOp, NewSrcTy,
|
||||
LHSCIOp->getName()), SCI);
|
||||
if (Constant *RHSC = dyn_cast<Constant>(RHSCIOp))
|
||||
RHSCIOp = ConstantExpr::getCast(RHSC, NewSrcTy);
|
||||
else
|
||||
RHSCIOp = InsertNewInstBefore(new CastInst(RHSCIOp, NewSrcTy,
|
||||
RHSCIOp->getName()), SCI);
|
||||
}
|
||||
|
||||
// Okay, just insert a compare of the reduced operands now!
|
||||
return BinaryOperator::create(SCI.getOpcode(), LHSCIOp, RHSCIOp);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user