|         |      1  | 
|         |      2 declare i32 @printf(i8*, ...) | 
|         |      3  | 
|         |      4 @.str_nl = private constant [2 x i8] c"\0A\00" | 
|         |      5 @.str_star = private constant [2 x i8] c"*\00" | 
|         |      6 @.str_space = private constant [2 x i8] c" \00" | 
|         |      7  | 
|         |      8 define void @new_line() #0 { | 
|         |      9   %t0 = getelementptr [2 x i8], [2 x i8]* @.str_nl, i32 0, i32 0 | 
|         |     10   %1 = call i32 (i8*, ...) @printf(i8* %t0) | 
|         |     11   ret void | 
|         |     12 } | 
|         |     13  | 
|         |     14 define void @print_star() #0 { | 
|         |     15   %t0 = getelementptr [2 x i8], [2 x i8]* @.str_star, i32 0, i32 0 | 
|         |     16   %1 = call i32 (i8*, ...) @printf(i8* %t0) | 
|         |     17   ret void | 
|         |     18 } | 
|         |     19  | 
|         |     20 define void @print_space() #0 { | 
|         |     21   %t0 = getelementptr [2 x i8], [2 x i8]* @.str_space, i32 0, i32 0 | 
|         |     22   %1 = call i32 (i8*, ...) @printf(i8* %t0) | 
|         |     23   ret void | 
|         |     24 } | 
|         |     25  | 
|         |     26 define void @skip() #0 { | 
|         |     27   ret void | 
|         |     28 } | 
|         |     29  | 
|         |     30 @.str = private constant [4 x i8] c"%d\0A\00" | 
|         |     31  | 
|         |     32 define void @print_int(i32 %x) { | 
|         |     33    %t0 = getelementptr [4 x i8], [4 x i8]* @.str, i32 0, i32 0 | 
|         |     34    call i32 (i8*, ...) @printf(i8* %t0, i32 %x)  | 
|         |     35    ret void | 
|         |     36 } | 
|         |     37  | 
|         |     38 ; END OF BUILD-IN FUNCTIONS (prelude) | 
|         |     39  | 
|         |     40 @Max = global i32 10 | 
|         |     41  | 
|         |     42 define i32 @sqr (i32 %x) { | 
|         |     43    %tmp_20 = mul i32  %x, %x | 
|         |     44    ret i32 %tmp_20 | 
|         |     45 } | 
|         |     46  | 
|         |     47 define void @all (i32 %n) { | 
|         |     48    %tmp_22 = load i32, i32* @Max | 
|         |     49    %tmp_21 = icmp sle i32  %n, %tmp_22 | 
|         |     50    br i1 %tmp_21, label %if_branch_28, label %else_branch_29 | 
|         |     51  | 
|         |     52 if_branch_28: | 
|         |     53    %tmp_23 = call i32 @sqr (i32 %n) | 
|         |     54    call void @print_int (i32 %tmp_23) | 
|         |     55    %tmp_25 = add i32  %n, 1 | 
|         |     56    call void @all (i32 %tmp_25) | 
|         |     57    ret void | 
|         |     58  | 
|         |     59 else_branch_29: | 
|         |     60    call void @skip () | 
|         |     61    ret void | 
|         |     62 } | 
|         |     63  | 
|         |     64 define i32 @main() { | 
|         |     65    call void @all (i32 0) | 
|         |     66    ret i32 0 | 
|         |     67 } | 
|         |     68  |