disable IPSCCP support for multiple return values, it is buggy, so just
disable it until I can fix it.

llvm-svn: 85810
diff --git a/llvm/lib/Transforms/Scalar/SCCP.cpp b/llvm/lib/Transforms/Scalar/SCCP.cpp
index 384b0ba..42791d6 100644
--- a/llvm/lib/Transforms/Scalar/SCCP.cpp
+++ b/llvm/lib/Transforms/Scalar/SCCP.cpp
@@ -1650,7 +1650,8 @@
     
     // If this is a strong or ODR definition of this function, then we can
     // propagate information about its result into callsites of it.
-    if (!F->mayBeOverridden())
+    if (!F->mayBeOverridden() &&
+        !isa<StructType>(F->getReturnType()))
       Solver.AddTrackedFunction(F);
     
     // If this function only has direct calls that we can see, we can track its
diff --git a/llvm/test/Transforms/SCCP/2008-03-10-sret.ll b/llvm/test/Transforms/SCCP/2008-03-10-sret.ll
index 85bcaf4..ec99e29 100644
--- a/llvm/test/Transforms/SCCP/2008-03-10-sret.ll
+++ b/llvm/test/Transforms/SCCP/2008-03-10-sret.ll
@@ -4,6 +4,8 @@
 ; RUN: grep {%mrv1 = insertvalue %T %mrv, i32 17, 1} %t
 ; RUN: grep {ret %T %mrv1} %t
 
+; XFAIL: *
+
 %T = type {i32,i32}
 
 define internal {i32, i32} @bar(i32 %A) {
diff --git a/llvm/test/Transforms/SCCP/ipsccp-basic.ll b/llvm/test/Transforms/SCCP/ipsccp-basic.ll
index 4c3c1cf..f015834 100644
--- a/llvm/test/Transforms/SCCP/ipsccp-basic.ll
+++ b/llvm/test/Transforms/SCCP/ipsccp-basic.ll
@@ -1,4 +1,5 @@
 ; RUN: opt < %s -ipsccp -S | FileCheck %s
+; XFAIL: *
 
 ;;======================== test1