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.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90520 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2009-12-04 02:12:12 +00:00
parent 210e45af3a
commit e4968a4b9d

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
}