mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
e78760e179
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8558 91177308-0d34-0410-b5e6-96231b3b80d8
54 lines
2.2 KiB
LLVM
54 lines
2.2 KiB
LLVM
; RUN: llvm-as < %s | opt -raise
|
|
|
|
%Tree = type %struct.tree*
|
|
%struct.tree = type { int, double, double, %Tree, %Tree, %Tree, %Tree }
|
|
|
|
implementation ; Functions:
|
|
|
|
void %reverse(%Tree %t) {
|
|
bb0: ;[#uses=0]
|
|
%cast219 = cast %Tree %t to sbyte*** ; <sbyte***> [#uses=7]
|
|
%cond220 = seteq sbyte*** %cast219, null ; <bool> [#uses=1]
|
|
br bool %cond220, label %bb5, label %bb2
|
|
|
|
bb2: ;[#uses=3]
|
|
%reg2221 = getelementptr sbyte*** %cast219, long 6 ; <sbyte***> [#uses=1]
|
|
%reg108 = load sbyte*** %reg2221 ; <sbyte**> [#uses=3]
|
|
%reg2251 = getelementptr sbyte** %reg108, long 5 ; <sbyte**> [#uses=1]
|
|
store sbyte* null, sbyte** %reg2251
|
|
%reg2281 = getelementptr sbyte*** %cast219, long 6 ; <sbyte***> [#uses=1]
|
|
store sbyte** null, sbyte*** %reg2281
|
|
%reg2311 = getelementptr sbyte*** %cast219, long 5 ; <sbyte***> [#uses=1]
|
|
%reg114 = load sbyte*** %reg2311 ; <sbyte**> [#uses=2]
|
|
%cond234 = seteq sbyte** %reg114, null ; <bool> [#uses=1]
|
|
br bool %cond234, label %bb4, label %bb3
|
|
|
|
bb3: ;[#uses=4]
|
|
%reg115 = phi sbyte*** [ %cast117, %bb3 ], [ %cast219, %bb2 ] ; <sbyte***> [#uses=2]
|
|
%reg116 = phi sbyte** [ %cast118, %bb3 ], [ %reg114, %bb2 ] ; <sbyte**> [#uses=4]
|
|
%reg236 = getelementptr sbyte** %reg116, long 5 ; <sbyte**> [#uses=1]
|
|
%reg110 = load sbyte** %reg236 ; <sbyte*> [#uses=1]
|
|
%reg239 = getelementptr sbyte** %reg116, long 5 ; <sbyte**> [#uses=1]
|
|
%cast241 = cast sbyte*** %reg115 to sbyte* ; <sbyte*> [#uses=1]
|
|
store sbyte* %cast241, sbyte** %reg239
|
|
%reg242 = getelementptr sbyte*** %reg115, long 6 ; <sbyte***> [#uses=1]
|
|
store sbyte** %reg116, sbyte*** %reg242
|
|
%cast117 = cast sbyte** %reg116 to sbyte*** ; <sbyte***> [#uses=1]
|
|
%cast118 = cast sbyte* %reg110 to sbyte** ; <sbyte**> [#uses=2]
|
|
%cond245 = setne sbyte** %cast118, null ; <bool> [#uses=1]
|
|
br bool %cond245, label %bb3, label %bb4
|
|
|
|
bb4: ;[#uses=2]
|
|
%reg247 = getelementptr sbyte*** %cast219, long 5 ; <sbyte***> [#uses=1]
|
|
store sbyte** %reg108, sbyte*** %reg247
|
|
%reg250 = getelementptr sbyte** %reg108, long 6 ; <sbyte**> [#uses=2]
|
|
cast sbyte** %reg250 to sbyte**** ; <sbyte****>:0 [#uses=0]
|
|
%cast252 = cast sbyte*** %cast219 to sbyte* ; <sbyte*> [#uses=1]
|
|
store sbyte* %cast252, sbyte** %reg250
|
|
br label %bb5
|
|
|
|
bb5: ;[#uses=2]
|
|
ret void
|
|
}
|
|
|