Changes in directory llvm/lib/Transforms/Scalar:
InstructionCombining.cpp updated: 1.715 -> 1.716 --- Log message: For PR1297: http://llvm.org/PR1297 : Support overloaded intrinsics bswap, ctpop, cttz, ctlz. --- Diffs of the changes: (+7 -25) InstructionCombining.cpp | 32 +++++++------------------------- 1 files changed, 7 insertions(+), 25 deletions(-) Index: llvm/lib/Transforms/Scalar/InstructionCombining.cpp diff -u llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.715 llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.716 --- llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.715 Sun Apr 1 00:36:37 2007 +++ llvm/lib/Transforms/Scalar/InstructionCombining.cpp Sun Apr 1 02:35:23 2007 @@ -3624,11 +3624,11 @@ Module *M = I.getParent()->getParent()->getParent(); const char *FnName = 0; if (I.getType() == Type::Int16Ty) - FnName = "llvm.bswap.i16"; + FnName = "llvm.bswap.i16.i16"; else if (I.getType() == Type::Int32Ty) - FnName = "llvm.bswap.i32"; + FnName = "llvm.bswap.i32.i32"; else if (I.getType() == Type::Int64Ty) - FnName = "llvm.bswap.i64"; + FnName = "llvm.bswap.i64.i64"; else assert(0 && "Unknown integer type!"); Constant *F = M->getOrInsertFunction(FnName, I.getType(), I.getType(), NULL); @@ -5173,29 +5173,11 @@ default: break; } } else if (IntrinsicInst *II = dyn_cast<IntrinsicInst>(Op0)) { - // Handle set{eq|ne} <intrinsic>, intcst. - switch (II->getIntrinsicID()) { - default: break; - case Intrinsic::bswap_i16: - // icmp eq (bswap(x)), c -> icmp eq (x,bswap(c)) - AddToWorkList(II); // Dead? - I.setOperand(0, II->getOperand(1)); - I.setOperand(1, ConstantInt::get(Type::Int16Ty, - ByteSwap_16(CI->getZExtValue()))); - return &I; - case Intrinsic::bswap_i32: - // icmp eq (bswap(x)), c -> icmp eq (x,bswap(c)) - AddToWorkList(II); // Dead? - I.setOperand(0, II->getOperand(1)); - I.setOperand(1, ConstantInt::get(Type::Int32Ty, - ByteSwap_32(CI->getZExtValue()))); - return &I; - case Intrinsic::bswap_i64: - // icmp eq (bswap(x)), c -> icmp eq (x,bswap(c)) - AddToWorkList(II); // Dead? + // Handle icmp {eq|ne} <intrinsic>, intcst. + if (II->getIntrinsicID() == Intrinsic::bswap) { + AddToWorkList(II); I.setOperand(0, II->getOperand(1)); - I.setOperand(1, ConstantInt::get(Type::Int64Ty, - ByteSwap_64(CI->getZExtValue()))); + I.setOperand(1, ConstantInt::get(CI->getValue().byteSwap())); return &I; } } _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits