mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-04-01 03:33:42 +00:00
Fix PR571, removing code that does just the WRONG thing :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22225 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
aa457ac2e7
commit
8d7089e1d5
@ -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