declare i32 @puts(i8 *)
declare i32 @printf(i8 *, ...)
@s = internal constant [2 x i8] c"f\00"
@ps = internal constant [6 x i8] c"i %d\0A\00"
define void @loop() {
LoopHeader:
br label %Loop
Loop: ; Infinite loop that counts from 0 on up...
%indvar = phi i32 [ 0, %LoopHeader ], [ %nextindvar, %Loop ]
%nextindvar = add i32 %indvar, 1
%ptr = getelementptr [2 x i8]* @s, i64 0, i64 0
call i32 (i8*)* @puts(i8* %ptr);
%psptr = getelementptr [6 x i8]* @ps, i64 0, i64 0
call i32 (i8 *, ...)* @printf(i8* %psptr, i32 %indvar)
%cond = icmp eq i32 %indvar, 10
br i1 %cond, label %Exit, label %Loop
Exit:
ret void
}