Handle ext(ext(x)) -> ext(x) immediately, since it's simple.
authorDan Gohman <gohman@apple.com>
Fri, 18 Jun 2010 00:08:30 +0000 (00:08 +0000)
committerDan Gohman <gohman@apple.com>
Fri, 18 Jun 2010 00:08:30 +0000 (00:08 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106256 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/SelectionDAG.cpp

index eac3865371dc46b8a450f87be1ed9d3b61fddeaf..49f31012a39221a5f46b7d1cff789a86e71a4d4a 100644 (file)
@@ -2474,7 +2474,8 @@ SDValue SelectionDAG::getNode(unsigned Opcode, DebugLoc DL,
             VT.getVectorNumElements() ==
             Operand.getValueType().getVectorNumElements()) &&
            "Vector element count mismatch!");
-    if (OpOpcode == ISD::ZERO_EXTEND || OpOpcode == ISD::SIGN_EXTEND)
+    if (OpOpcode == ISD::ZERO_EXTEND || OpOpcode == ISD::SIGN_EXTEND ||
+        OpOpcode == ISD::ANY_EXTEND)
       // (ext (zext x)) -> (zext x)  and  (ext (sext x)) -> (sext x)
       return getNode(OpOpcode, DL, VT, Operand.getNode()->getOperand(0));
     break;