mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-19 04:32:19 +00:00
Add testcase for raise opportunity missed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2930 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
b3ce2f99fc
commit
c2c5a6428d
25
test/Transforms/LevelRaise/2002-07-16-MissedRaise.ll
Normal file
25
test/Transforms/LevelRaise/2002-07-16-MissedRaise.ll
Normal file
@ -0,0 +1,25 @@
|
||||
; This case fails raise because the store requires that it's argument is of a
|
||||
; particular type, but the gep is unable to propogate types backwards through
|
||||
; it, because it doesn't know what type to ask it's operand to be.
|
||||
;
|
||||
; This could be fixed by making all stores add themselves to a list, and check
|
||||
; their arguments are consistent AFTER all other values are propogated.
|
||||
|
||||
; RUN: if as < %s | opt -raise | dis | grep '= cast'
|
||||
; RUN: then exit 1
|
||||
; RUN: else exit 0
|
||||
; RUN: fi
|
||||
|
||||
%Tree = type %struct.tree*
|
||||
%struct.tree = type { int, double, double, %Tree, %Tree, %Tree, %Tree }
|
||||
|
||||
void %reverse(%Tree %t) {
|
||||
bb0: ;[#uses=0]
|
||||
%cast219 = cast %Tree %t to sbyte*** ; <sbyte***> [#uses=2]
|
||||
%reg2221 = getelementptr sbyte*** %cast219, uint 6 ; <sbyte***> [#uses=1]
|
||||
%reg108 = load sbyte*** %reg2221 ; <sbyte**> [#uses=2]
|
||||
%reg247 = getelementptr sbyte*** %cast219, uint 5 ; <sbyte***> [#uses=1]
|
||||
store sbyte** %reg108, sbyte*** %reg247
|
||||
ret void
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user