shift X, 0 -> X

llvm-svn: 19453
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
index d173a95..ef0b076 100644
--- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
@@ -612,6 +612,12 @@
       }
       break;
 
+    case ISD::SHL:
+    case ISD::SRL:
+    case ISD::SRA:
+      if (C2 == 0) return N1;
+      break;
+
     case ISD::AND:
       if (!C2) return N2;         // X and 0 -> 0
       if (N2C->isAllOnesValue())