llvm-mirror/test/Feature/basictest.ll
Chris Lattner 848c35ed1f Updates to support
* Changes in PHI node structure
* We now run DCE after inlining because it helps clean up LOTS of inlining
  gunk.

llvm-svn: 26
2001-06-11 15:05:02 +00:00

54 lines
1.2 KiB
LLVM

implementation
void "test function"(int %i0, int %j0)
%x = int 1
begin
Startup: ; Basic block #0
%i1 = add int %i0, 1
%j1 = add int %j0, 1
%x = setle int %i1, %j1
br bool %x, label %Increment, label %Decrement
Merge: ; Basic block #3
%i4 = phi int [%i2, %Increment], [%i3,%Decrement] ; Forward ref vars...
%j2 = add int %j1, %i4
ret void
Increment: ; Basic block #1
%i2 = add int %i1, 1
br label %Merge
Decrement: ; Basic block #2
%i3 = sub int %i1, %x
br label %Merge
end
; Test "stripped" format where nothing is symbolic... this is how the bytecode
; format looks anyways (except for negative vs positive offsets)...
;
void "void"(int, int) ; Def %0, %1
int 0 ; Def 2
int -4 ; Def 3
begin
add int %0, %1 ; Def 4
sub int %4, %3 ; Def 5
setle int %5, %2 ; Def 0 - bool plane
br bool %0, label %1, label %0
add int %0, %1 ; Def 6
sub int %4, %3 ; Def 7
setle int %7, %2 ; Def 1 - bool plane
ret void
end
; This function always returns zero
int "zarro"()
uint 4000000000 ; Def 0 - uint plane
int 0 ; Def 0 - int plane
begin
Startup:
ret int %0
end