LegalizeTypesGeneric.cpp (193323) | LegalizeTypesGeneric.cpp (193724) |
---|---|
1//===-------- LegalizeTypesGeneric.cpp - Generic type legalization --------===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// --- 78 unchanged lines hidden (view full) --- 87 if (TLI.isBigEndian()) 88 std::swap(Lo, Hi); 89 Lo = DAG.getNode(ISD::BIT_CONVERT, dl, NOutVT, Lo); 90 Hi = DAG.getNode(ISD::BIT_CONVERT, dl, NOutVT, Hi); 91 return; 92 } 93 } 94 | 1//===-------- LegalizeTypesGeneric.cpp - Generic type legalization --------===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// --- 78 unchanged lines hidden (view full) --- 87 if (TLI.isBigEndian()) 88 std::swap(Lo, Hi); 89 Lo = DAG.getNode(ISD::BIT_CONVERT, dl, NOutVT, Lo); 90 Hi = DAG.getNode(ISD::BIT_CONVERT, dl, NOutVT, Hi); 91 return; 92 } 93 } 94 |
95 if (InVT.isVector() && OutVT.isInteger()) { 96 // Handle cases like i64 = BIT_CONVERT v1i64 on x86, where the operand 97 // is legal but the result is not. 98 MVT NVT = MVT::getVectorVT(TLI.getTypeToTransformTo(OutVT), 2); 99 100 if (isTypeLegal(NVT)) { 101 SDValue CastInOp = DAG.getNode(ISD::BIT_CONVERT, dl, NVT, InOp); 102 MVT EltNVT = NVT.getVectorElementType(); 103 Lo = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, EltNVT, CastInOp, 104 DAG.getIntPtrConstant(0)); 105 Hi = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, EltNVT, CastInOp, 106 DAG.getIntPtrConstant(1)); 107 108 if (TLI.isBigEndian()) 109 std::swap(Lo, Hi); 110 111 return; 112 } 113 } 114 |
|
95 // Lower the bit-convert to a store/load from the stack. 96 assert(NOutVT.isByteSized() && "Expanded type not byte sized!"); 97 98 // Create the stack frame object. Make sure it is aligned for both 99 // the source and expanded destination types. 100 unsigned Alignment = 101 TLI.getTargetData()->getPrefTypeAlignment(NOutVT.getTypeForMVT()); 102 SDValue StackPtr = DAG.CreateStackTemporary(InVT, Alignment); --- 351 unchanged lines hidden --- | 115 // Lower the bit-convert to a store/load from the stack. 116 assert(NOutVT.isByteSized() && "Expanded type not byte sized!"); 117 118 // Create the stack frame object. Make sure it is aligned for both 119 // the source and expanded destination types. 120 unsigned Alignment = 121 TLI.getTargetData()->getPrefTypeAlignment(NOutVT.getTypeForMVT()); 122 SDValue StackPtr = DAG.CreateStackTemporary(InVT, Alignment); --- 351 unchanged lines hidden --- |