; AILang generated workspace; entry: max3 source_filename = "max3.ail" target triple = "" @.str_max3_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 @GC_malloc(i64) declare i32 @strcmp(ptr, ptr) declare zeroext i1 @ail_str_eq(ptr, ptr) declare i32 @ail_str_compare(ptr, ptr) declare ptr @ailang_int_to_str(i64) declare ptr @ailang_float_to_str(double) declare ptr @ailang_bool_to_str(i1) declare ptr @ailang_str_clone(ptr) declare i64 @llvm.fptosi.sat.i64.f64(double) @ail_max3_max_clos = private unnamed_addr constant { ptr, ptr } { ptr @ail_max3_max_adapter, ptr null } @ail_max3_max3_clos = private unnamed_addr constant { ptr, ptr } { ptr @ail_max3_max3_adapter, ptr null } @ail_max3_main_clos = private unnamed_addr constant { ptr, ptr } { ptr @ail_max3_main_adapter, ptr null } define i64 @ail_max3_max(i64 %arg_a, i64 %arg_b) { entry: %v1 = icmp sgt i64 %arg_a, %arg_b br i1 %v1, label %then.2, label %else.2 then.2: br label %join.2 else.2: br label %join.2 join.2: %v3 = phi i64 [ %arg_a, %then.2 ], [ %arg_b, %else.2 ] ret i64 %v3 } define i64 @ail_max3_max_adapter(ptr %_env, i64 %a0, i64 %a1) { entry: %r = call i64 @ail_max3_max(i64 %a0, i64 %a1) ret i64 %r } define i64 @ail_max3_max3(i64 %arg_a, i64 %arg_b, i64 %arg_c) { entry: %v1 = icmp sgt i64 %arg_a, %arg_b br i1 %v1, label %then.2, label %else.2 then.2: %v3 = icmp sgt i64 %arg_a, %arg_c br i1 %v3, label %then.4, label %else.4 then.4: br label %join.4 else.4: br label %join.4 join.4: %v5 = phi i64 [ %arg_a, %then.4 ], [ %arg_c, %else.4 ] br label %join.2 else.2: %v6 = icmp sgt i64 %arg_b, %arg_c br i1 %v6, label %then.7, label %else.7 then.7: br label %join.7 else.7: br label %join.7 join.7: %v8 = phi i64 [ %arg_b, %then.7 ], [ %arg_c, %else.7 ] br label %join.2 join.2: %v9 = phi i64 [ %v5, %join.4 ], [ %v8, %join.7 ] ret i64 %v9 } define i64 @ail_max3_max3_adapter(ptr %_env, i64 %a0, i64 %a1, i64 %a2) { entry: %r = call i64 @ail_max3_max3(i64 %a0, i64 %a1, i64 %a2) ret i64 %r } define i8 @ail_max3_main() { entry: %v1 = call i64 @ail_max3_max3(i64 3, i64 17, i64 9) call i32 (ptr, ...) @printf(ptr @.str_max3_fmt_int_0, i64 %v1) ret i8 0 } define i8 @ail_max3_main_adapter(ptr %_env) { entry: %r = call i8 @ail_max3_main() ret i8 %r } define i32 @main() { call i8 @ail_max3_main() ret i32 0 }