> Index: llvm/lib/Transforms/Scalar/InstructionCombining.cpp > diff -u llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.557 > llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.558 > --- llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.557 Fri > Dec 1 18:13:08 2006 > +++ llvm/lib/Transforms/Scalar/InstructionCombining.cpp Sun Dec 3 > 20:48:01 2006 > @@ -388,7 +388,8 @@ > > // If this is another cast that can be eliminated, it isn't > codegen either. > if (const CastInst *CI = dyn_cast<CastInst>(V)) > - if (isEliminableCastPair(CI, CastInst::getCastOpcode(V, Ty), > Ty, TD)) > + if (isEliminableCastPair(CI, CastInst::getCastOpcode( > + V, V->getType()->isSigned(), Ty, Ty->isSigned()), Ty, > TD)) > return false; > return true; > }
Won't this miscompile stuff like: %B = zext sbyte %A to ushort %C = zext ushort %B to uint into a sext? -Chris _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits