Changes in directory llvm/lib/Transforms/Scalar:
InstructionCombining.cpp updated: 1.575 -> 1.576 --- Log message: For PR1066: http://llvm.org/PR1066 : Fix this by ensuring that a bitcast is inserted to do sign switching. This is only temporarily needed as the merging of signed and unsigned is next on the SignlessTypes plate. --- Diffs of the changes: (+8 -2) InstructionCombining.cpp | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-) Index: llvm/lib/Transforms/Scalar/InstructionCombining.cpp diff -u llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.575 llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.576 --- llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.575 Sat Dec 23 13:17:57 2006 +++ llvm/lib/Transforms/Scalar/InstructionCombining.cpp Sat Dec 23 18:40:59 2006 @@ -2002,8 +2002,14 @@ if (CU->getZExtValue() == SI->getType()->getPrimitiveSizeInBits()-1) { // Ok, the transformation is safe. Insert AShr. - return new ShiftInst(Instruction::AShr, SI->getOperand(0), - CU, SI->getName()); + // FIXME: Once integer types are signless, this cast should be + // removed. + Value *ShiftOp = SI->getOperand(0); + if (ShiftOp->getType() != I.getType()) + ShiftOp = InsertCastBefore(Instruction::BitCast, ShiftOp, + I.getType(), I); + return new ShiftInst(Instruction::AShr, ShiftOp, CU, + SI->getName()); } } } _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits