Make ScalarEvolution actually use a ZeroExtend expression instead of
having SCZeroExtendExpr be equivalent to SCTruncate


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31355 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Analysis/ScalarEvolution.cpp b/lib/Analysis/ScalarEvolution.cpp
index 20e3859..d555a14 100644
--- a/lib/Analysis/ScalarEvolution.cpp
+++ b/lib/Analysis/ScalarEvolution.cpp
@@ -229,7 +229,7 @@
                      SCEVZeroExtendExpr*> > SCEVZeroExtends;
 
 SCEVZeroExtendExpr::SCEVZeroExtendExpr(const SCEVHandle &op, const Type *ty)
-  : SCEV(scTruncate), Op(op), Ty(ty) {
+  : SCEV(scZeroExtend), Op(op), Ty(ty) {
   assert(Op->getType()->isInteger() && Ty->isInteger() &&
          Ty->isUnsigned() &&
          "Cannot zero extend non-integer value!");
@@ -1359,7 +1359,7 @@
       return SCEVTruncateExpr::get(getSCEV(CI->getOperand(0)),
                                    CI->getType()->getUnsignedVersion());
     if (SrcTy->isUnsigned() &&
-        SrcTy->getPrimitiveSize() > DestTy->getPrimitiveSize())
+        SrcTy->getPrimitiveSize() <= DestTy->getPrimitiveSize())
       return SCEVZeroExtendExpr::get(getSCEV(CI->getOperand(0)),
                                      CI->getType()->getUnsignedVersion());
   }