Rewrite multiple return value handling in SCCP. Before, the -sccp pass

would turn every getresult instruction into undef.  This helps with
rdar://5778210


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50140 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2008-04-23 05:38:20 +00:00
parent a925a14698
commit c6ee00b8ee
2 changed files with 130 additions and 117 deletions

View File

@@ -0,0 +1,11 @@
; RUN: llvm-as < %s | opt -sccp | llvm-dis | grep {ret i32 %Z}
; rdar://5778210
declare {i32, i32} @bar(i32 %A)
define i32 @foo() {
%X = call {i32, i32} @bar(i32 17)
%Y = getresult {i32, i32} %X, 0
%Z = add i32 %Y, %Y
ret i32 %Z
}