mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-12 17:32:19 +00:00
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:
parent
210e45af3a
commit
e4968a4b9d
@ -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
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user