Fix a case where constantexprs could leak into the PPC isel.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15661 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/PowerPC/PPC32ISelSimple.cpp b/lib/Target/PowerPC/PPC32ISelSimple.cpp
index 8fd947f..96067f6 100644
--- a/lib/Target/PowerPC/PPC32ISelSimple.cpp
+++ b/lib/Target/PowerPC/PPC32ISelSimple.cpp
@@ -1260,7 +1260,10 @@
   if (Val) {
     if (Constant *C = dyn_cast<Constant>(Val)) {
       Val = ConstantExpr::getCast(C, Type::IntTy);
-      Ty = Type::IntTy;
+      if (isa<ConstantExpr>(Val))   // Could not fold
+        Val = C;
+      else
+        Ty = Type::IntTy;           // Folded!
     }
 
     // If this is a simple constant, just emit a load directly to avoid the copy