; AILang generated workspace; entry: sum source_filename = "sum.ail" target triple = "" @.str_sum_fmt_int_0 = private unnamed_addr constant [6 x i8] c"%lld\0A\00", align 1 declare i32 @printf(ptr, ...) declare i32 @puts(ptr) declare ptr @malloc(i64) @ail_sum_sum_clos = private unnamed_addr constant { ptr, ptr } { ptr @ail_sum_sum_adapter, ptr null } @ail_sum_main_clos = private unnamed_addr constant { ptr, ptr } { ptr @ail_sum_main_adapter, ptr null } define i64 @ail_sum_sum(i64 %arg_n) { entry: %v1 = icmp eq i64 %arg_n, 0 br i1 %v1, label %then.2, label %else.2 then.2: br label %join.2 else.2: %v3 = sub i64 %arg_n, 1 %v4 = call i64 @ail_sum_sum(i64 %v3) %v5 = add i64 %arg_n, %v4 br label %join.2 join.2: %v6 = phi i64 [ 0, %then.2 ], [ %v5, %else.2 ] ret i64 %v6 } define i64 @ail_sum_sum_adapter(ptr %_env, i64 %a0) { entry: %r = call i64 @ail_sum_sum(i64 %a0) ret i64 %r } define i8 @ail_sum_main() { entry: %v1 = call i64 @ail_sum_sum(i64 10) call i32 (ptr, ...) @printf(ptr @.str_sum_fmt_int_0, i64 %v1) ret i8 0 } define i8 @ail_sum_main_adapter(ptr %_env) { entry: %r = call i8 @ail_sum_main() ret i8 %r } define i32 @main() { call i8 @ail_sum_main() ret i32 0 }