Use getZExtOrTrunc instead of repeating the same logic.
authorMatt Arsenault <Matthew.Arsenault@amd.com>
Sun, 17 Nov 2013 02:24:21 +0000 (02:24 +0000)
committerMatt Arsenault <Matthew.Arsenault@amd.com>
Sun, 17 Nov 2013 02:24:21 +0000 (02:24 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194944 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/LegalizeDAG.cpp

index 10852bff92db177e69f37cabeb2e35dae4704538..763edb338c425dad8e1ffb2aabe1fdc2ae5797f0 100644 (file)
@@ -1394,11 +1394,7 @@ SDValue SelectionDAGLegalize::ExpandExtractFromVectorThroughStack(SDValue Op) {
   Idx = DAG.getNode(ISD::MUL, dl, Idx.getValueType(), Idx,
                     DAG.getConstant(EltSize, Idx.getValueType()));
 
-  if (Idx.getValueType().bitsGT(TLI.getPointerTy()))
-    Idx = DAG.getNode(ISD::TRUNCATE, dl, TLI.getPointerTy(), Idx);
-  else
-    Idx = DAG.getNode(ISD::ZERO_EXTEND, dl, TLI.getPointerTy(), Idx);
-
+  Idx = DAG.getZExtOrTrunc(Idx, dl, TLI.getPointerTy());
   StackPtr = DAG.getNode(ISD::ADD, dl, Idx.getValueType(), Idx, StackPtr);
 
   if (Op.getValueType().isVector())