Small and carefully crafted testcase showing a miscompilation by GVN

that I'm working on.  This is manifesting as a miscompile of 255.vortex
on some targets.  No check lines yet because it fails.

llvm-svn: 90520
This commit is contained in:
Chris Lattner 2009-12-04 02:12:12 +00:00
parent 167f1dc040
commit 0876163071

View File

@ -280,3 +280,36 @@ Cont:
}
declare i1 @cond() readonly
declare i1 @cond2() readonly
define i32 @phi_trans2() {
entry:
%P = alloca i32, i32 400
br label %F1
F1:
%A = phi i32 [1, %entry], [2, %F]
%cond2 = call i1 @cond()
br i1 %cond2, label %T1, label %TY
T1:
%P2 = getelementptr i32* %P, i32 %A
%x = load i32* %P2
%cond = call i1 @cond2()
br i1 %cond, label %TX, label %F
F:
%P3 = getelementptr i32* %P, i32 2
store i32 17, i32* %P3
store i32 42, i32* %P2 ; Provides "P[A]".
br label %F1
TX:
ret i32 %x ;; SHOULD NOT BE COMPILED TO 'ret i32 42'.
TY:
ret i32 0
}