Minor cleanup and docs.
authorNadav Rotem <nadav.rotem@intel.com>
Mon, 16 Jul 2012 18:56:39 +0000 (18:56 +0000)
committerNadav Rotem <nadav.rotem@intel.com>
Mon, 16 Jul 2012 18:56:39 +0000 (18:56 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160311 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp

index 88479e30bd74f7df29b0bd22aa73f8ea4e6bb6af..4b631b699a468e59128e6f21e255fe412041b7fd 100644 (file)
@@ -155,7 +155,9 @@ SDValue DAGTypeLegalizer::ScalarizeVecRes_BITCAST(SDNode *N) {
 SDValue DAGTypeLegalizer::ScalarizeVecRes_BUILD_VECTOR(SDNode *N) {
   EVT EltVT = N->getValueType(0).getVectorElementType();
   SDValue InOp = N->getOperand(0);
-  if (InOp.getValueType() != EltVT)
+  // The BUILD_VECTOR operands may be of wider element types and
+  // we may need to truncate them back to the requested return type.
+  if (EltVT.isInteger())
     return DAG.getNode(ISD::TRUNCATE, N->getDebugLoc(), EltVT, InOp);
   return InOp;
 }