From 36e663d6e1db6d21075d869e82eec12bf2e71cd3 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Fri, 23 Dec 2005 00:16:34 +0000 Subject: add very simple support for the BIT_CONVERT node llvm-svn: 24970 --- llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp') diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp index c17937d05eb..ec75dfee32a 100644 --- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp @@ -889,6 +889,12 @@ SDOperand SelectionDAG::getNode(unsigned Opcode, MVT::ValueType VT, return Operand.Val->getOperand(0); } break; + case ISD::BIT_CONVERT: + // Basic sanity checking. + assert(MVT::getSizeInBits(VT)==MVT::getSizeInBits(Operand.getValueType()) && + "Cannot BIT_CONVERT between two different types!"); + if (VT == Operand.getValueType()) return Operand; // noop conversion. + break; case ISD::FNEG: if (OpOpcode == ISD::FSUB) // -(X-Y) -> (Y-X) return getNode(ISD::FSUB, VT, Operand.Val->getOperand(1), @@ -1931,6 +1937,7 @@ const char *SDNode::getOperationName(const SelectionDAG *G) const { case ISD::UINT_TO_FP: return "uint_to_fp"; case ISD::FP_TO_SINT: return "fp_to_sint"; case ISD::FP_TO_UINT: return "fp_to_uint"; + case ISD::BIT_CONVERT: return "bit_convert"; // Control flow instructions case ISD::BR: return "br"; -- cgit v1.2.3