Author: lattner Date: Wed Nov 28 12:44:47 2007 New Revision: 44407 URL: http://llvm.org/viewvc/llvm-project?rev=44407&view=rev Log: Implement ExpandOperationResult for ppc i64 fp->int, which fixes CodeGen/Generic/fp_to_int.ll among others. Its unclear why this just started failing...
Modified: llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp llvm/trunk/lib/Target/PowerPC/PPCISelLowering.h Modified: llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp?rev=44407&r1=44406&r2=44407&view=diff ============================================================================== --- llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp (original) +++ llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp Wed Nov 28 12:44:47 2007 @@ -2076,6 +2076,7 @@ return SDOperand(); } +// FIXME: Split this code up when LegalizeDAGTypes lands. static SDOperand LowerFP_TO_SINT(SDOperand Op, SelectionDAG &DAG) { assert(MVT::isFloatingPoint(Op.getOperand(0).getValueType())); SDOperand Src = Op.getOperand(0); @@ -3042,6 +3043,14 @@ return SDOperand(); } +SDNode *PPCTargetLowering::ExpandOperationResult(SDNode *N, SelectionDAG &DAG) { + switch (N->getOpcode()) { + default: assert(0 && "Wasn't expecting to be able to lower this!"); + case ISD::FP_TO_SINT: return LowerFP_TO_SINT(SDOperand(N, 0), DAG).Val; + } +} + + //===----------------------------------------------------------------------===// // Other Lowering Code //===----------------------------------------------------------------------===// Modified: llvm/trunk/lib/Target/PowerPC/PPCISelLowering.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCISelLowering.h?rev=44407&r1=44406&r2=44407&view=diff ============================================================================== --- llvm/trunk/lib/Target/PowerPC/PPCISelLowering.h (original) +++ llvm/trunk/lib/Target/PowerPC/PPCISelLowering.h Wed Nov 28 12:44:47 2007 @@ -248,6 +248,8 @@ /// LowerOperation - Provide custom lowering hooks for some operations. /// virtual SDOperand LowerOperation(SDOperand Op, SelectionDAG &DAG); + + virtual SDNode *ExpandOperationResult(SDNode *N, SelectionDAG &DAG); virtual SDOperand PerformDAGCombine(SDNode *N, DAGCombinerInfo &DCI) const; _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits