You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
857 lines
38 KiB
857 lines
38 KiB
@global_fbb2 = global [5 x float] [float 0x3ff0000000000000, float 0x4000000000000000, float 0x4008000000000000, float 0x0, float 0x0]
|
|
@global_fca = constant float 0x4008147ae0000000
|
|
@global_fcaa = constant [5 x float] [float 0x3ff0000000000000, float 0x4000000000000000, float 0x4008000000000000, float 0x4010000000000000, float 0x0]
|
|
@global_ica = constant i32 3
|
|
@global_icaa = constant [10 x i32] [i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10]
|
|
@global_ia = global i32 zeroinitializer
|
|
@global_fb = global float zeroinitializer
|
|
@global_iaa = global [10 x i32] [i32 zeroinitializer, i32 zeroinitializer, i32 zeroinitializer, i32 zeroinitializer, i32 zeroinitializer, i32 zeroinitializer, i32 zeroinitializer, i32 zeroinitializer, i32 zeroinitializer, i32 zeroinitializer]
|
|
@global_fbb = global [5 x float] [float zeroinitializer, float zeroinitializer, float zeroinitializer, float zeroinitializer, float zeroinitializer]
|
|
@global_ia2 = global i32 1
|
|
@global_ia3 = global i32 5
|
|
@global_fb2 = global float 0x3ff0000000000000
|
|
@global_fb3 = global i32 7
|
|
@global_iaa2 = global [10 x i32] [i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10]
|
|
@global_iaa3 = global [10 x i32] [i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 8, i32 9, i32 0, i32 0]
|
|
@scope_test = global i32 1
|
|
@short_cut_flag = global i32 0
|
|
@check = global i32 99
|
|
declare i32 @get_int()
|
|
|
|
declare float @get_float()
|
|
|
|
declare i32 @get_char()
|
|
|
|
declare i32 @get_int_array(i32*)
|
|
|
|
declare i32 @get_float_array(float*)
|
|
|
|
declare void @put_int(i32)
|
|
|
|
declare void @put_float(float)
|
|
|
|
declare void @put_char(i32)
|
|
|
|
declare void @put_int_array(i32, i32*)
|
|
|
|
declare void @put_float_array(i32, float*)
|
|
|
|
define i32 @func1(i32 %arg0, i32 %arg1) {
|
|
label_func1funcBB:
|
|
%op2 = alloca i32
|
|
store i32 0, i32* %op2
|
|
%op3 = alloca i32
|
|
store i32 %arg0, i32* %op3
|
|
%op4 = alloca i32
|
|
store i32 %arg1, i32* %op4
|
|
%op5 = alloca i32
|
|
%op6 = load i32, i32* %op3
|
|
%op7 = load i32, i32* %op4
|
|
%op8 = add i32 %op6, %op7
|
|
store i32 %op8, i32* %op5
|
|
%op9 = load i32, i32* %op5
|
|
store i32 %op9, i32* %op2
|
|
br label %label_func1retBB
|
|
label_func1retBB: ; preds = %label_func1funcBB
|
|
%op10 = load i32, i32* %op2
|
|
ret i32 %op10
|
|
}
|
|
define i32 @func2(float %arg0, float %arg1) {
|
|
label_func2funcBB:
|
|
%op2 = alloca i32
|
|
store i32 0, i32* %op2
|
|
%op3 = alloca float
|
|
store float %arg0, float* %op3
|
|
%op4 = alloca float
|
|
store float %arg1, float* %op4
|
|
%op5 = load float, float* @global_fb2
|
|
%op6 = load float, float* %op3
|
|
%op7 = load float, float* %op4
|
|
%op8 = fadd float %op6, %op7
|
|
store float %op8, float* @global_fb2
|
|
br label %label_func2retBB
|
|
label_func2retBB: ; preds = %label_func2funcBB
|
|
%op9 = load i32, i32* %op2
|
|
ret i32 %op9
|
|
}
|
|
define i32 @func3(i32 %arg0, i32 %arg1) {
|
|
label_func3funcBB:
|
|
%op2 = alloca i32
|
|
store i32 0, i32* %op2
|
|
%op3 = alloca i32
|
|
store i32 %arg0, i32* %op3
|
|
%op4 = alloca i32
|
|
store i32 %arg1, i32* %op4
|
|
%op5 = load i32, i32* %op3
|
|
%op6 = load i32, i32* %op4
|
|
%op7 = add i32 %op5, %op6
|
|
store i32 %op7, i32* %op2
|
|
br label %label_func3retBB
|
|
label_func3retBB: ; preds = %label_func3funcBB
|
|
%op8 = load i32, i32* %op2
|
|
ret i32 %op8
|
|
}
|
|
define i32 @func4(float %arg0, float %arg1) {
|
|
label_func4funcBB:
|
|
%op2 = alloca i32
|
|
store i32 0, i32* %op2
|
|
%op3 = alloca float
|
|
store float %arg0, float* %op3
|
|
%op4 = alloca float
|
|
store float %arg1, float* %op4
|
|
%op5 = alloca float
|
|
%op6 = load float, float* %op3
|
|
%op7 = load float, float* %op4
|
|
%op8 = fadd float %op6, %op7
|
|
store float %op8, float* %op5
|
|
%op9 = load float, float* %op5
|
|
%op10 = fptosi float %op9 to i32
|
|
store i32 %op10, i32* %op2
|
|
br label %label_func4retBB
|
|
label_func4retBB: ; preds = %label_func4funcBB
|
|
%op11 = load i32, i32* %op2
|
|
ret i32 %op11
|
|
}
|
|
define i32 @func_5() {
|
|
label_func_5funcBB:
|
|
%op0 = alloca i32
|
|
store i32 0, i32* %op0
|
|
%op1 = alloca i32
|
|
store i32 1, i32* %op1
|
|
%op2 = alloca i32
|
|
store i32 zeroinitializer, i32* %op2
|
|
%op3 = alloca i32
|
|
store i32 2, i32* %op3
|
|
%op4 = load i32, i32* %op2
|
|
%op5 = load i32, i32* %op3
|
|
store i32 %op5, i32* %op2
|
|
%op6 = alloca i32
|
|
%op7 = load i32, i32* %op1
|
|
store i32 %op7, i32* %op6
|
|
%op8 = load i32, i32* %op6
|
|
%op9 = load i32, i32* %op2
|
|
%op10 = add i32 %op8, %op9
|
|
store i32 %op10, i32* %op0
|
|
br label %label_func_5retBB
|
|
label_func_5retBB: ; preds = %label_func_5funcBB
|
|
%op11 = load i32, i32* %op0
|
|
ret i32 %op11
|
|
}
|
|
define i32 @func_while() {
|
|
label_func_whilefuncBB:
|
|
%op0 = alloca i32
|
|
store i32 0, i32* %op0
|
|
%op1 = alloca i32
|
|
store i32 0, i32* %op1
|
|
%op2 = alloca i32
|
|
store i32 zeroinitializer, i32* %op2
|
|
br label %label_cond_while_0
|
|
label_func_whileretBB: ; preds = %label_after_while_2
|
|
%op3 = load i32, i32* %op0
|
|
ret i32 %op3
|
|
label_cond_while_0: ; preds = %label_func_whilefuncBB, %label_after_if_5
|
|
%op4 = load i32, i32* %op1
|
|
%op5 = icmp slt i32 %op4, 10
|
|
br i1 %op5, label %label_while_1, label %label_after_while_2
|
|
label_while_1: ; preds = %label_cond_while_0
|
|
%op6 = load i32, i32* %op1
|
|
%op7 = load i32, i32* %op1
|
|
%op8 = add i32 %op7, 1
|
|
store i32 %op8, i32* %op1
|
|
%op9 = load i32, i32* %op1
|
|
%op10 = icmp eq i32 %op9, 7
|
|
br i1 %op10, label %label_true_if_3, label %label_false_if_4
|
|
label_after_while_2: ; preds = %label_cond_while_0, %label_true_if_3
|
|
%op11 = load i32, i32* %op2
|
|
%op12 = load i32, i32* %op1
|
|
%op13 = add i32 %op11, %op12
|
|
store i32 %op13, i32* %op0
|
|
br label %label_func_whileretBB
|
|
label_true_if_3: ; preds = %label_while_1
|
|
br label %label_after_while_2
|
|
label_false_if_4: ; preds = %label_while_1
|
|
%op14 = load i32, i32* %op1
|
|
%op15 = icmp eq i32 %op14, 6
|
|
br i1 %op15, label %label_true_if_7, label %label_false_if_8
|
|
label_after_if_5: ; preds = %label_after_break_6, %label_after_if_9
|
|
br label %label_cond_while_0
|
|
label_after_break_6:
|
|
br label %label_after_if_5
|
|
label_true_if_7: ; preds = %label_false_if_4
|
|
%op16 = load i32, i32* %op2
|
|
%op17 = load i32, i32* %op1
|
|
store i32 %op17, i32* %op2
|
|
br label %label_after_if_9
|
|
label_false_if_8: ; preds = %label_false_if_4
|
|
br label %label_after_if_9
|
|
label_after_if_9: ; preds = %label_true_if_7, %label_false_if_8
|
|
br label %label_after_if_5
|
|
}
|
|
define i32 @func_while_if() {
|
|
label_func_while_iffuncBB:
|
|
%op0 = alloca i32
|
|
store i32 0, i32* %op0
|
|
%op1 = alloca i32
|
|
store i32 0, i32* %op1
|
|
%op2 = alloca i32
|
|
store i32 0, i32* %op2
|
|
br label %label_cond_while_10
|
|
label_func_while_ifretBB: ; preds = %label_after_while_12
|
|
%op3 = load i32, i32* %op0
|
|
ret i32 %op3
|
|
label_cond_while_10: ; preds = %label_func_while_iffuncBB, %label_false_if_17, %label_after_if_15
|
|
%op4 = load i32, i32* %op2
|
|
%op5 = icmp slt i32 %op4, 20
|
|
br i1 %op5, label %label_while_11, label %label_after_while_12
|
|
label_while_11: ; preds = %label_cond_while_10
|
|
%op6 = load i32, i32* %op2
|
|
%op7 = load i32, i32* %op2
|
|
%op8 = add i32 %op7, 1
|
|
store i32 %op8, i32* %op2
|
|
%op9 = load i32, i32* %op2
|
|
%op10 = icmp slt i32 %op9, 5
|
|
br i1 %op10, label %label_true_if_13, label %label_false_if_14
|
|
label_after_while_12: ; preds = %label_cond_while_10
|
|
%op11 = load i32, i32* %op1
|
|
store i32 %op11, i32* %op0
|
|
br label %label_func_while_ifretBB
|
|
label_true_if_13: ; preds = %label_while_11
|
|
%op12 = load i32, i32* %op2
|
|
%op13 = load i32, i32* %op2
|
|
%op14 = add i32 %op13, 1
|
|
store i32 %op14, i32* %op2
|
|
br label %label_after_if_15
|
|
label_false_if_14: ; preds = %label_while_11
|
|
%op15 = load i32, i32* %op2
|
|
%op16 = icmp sgt i32 %op15, 10
|
|
br i1 %op16, label %label_true_if_16, label %label_false_if_17
|
|
label_after_if_15: ; preds = %label_true_if_13, %label_after_if_18
|
|
%op17 = load i32, i32* %op1
|
|
%op18 = load i32, i32* %op1
|
|
%op19 = add i32 %op18, 1
|
|
store i32 %op19, i32* %op1
|
|
br label %label_cond_while_10
|
|
label_true_if_16: ; preds = %label_false_if_14
|
|
%op20 = load i32, i32* %op2
|
|
%op21 = load i32, i32* %op2
|
|
%op22 = add i32 %op21, 2
|
|
store i32 %op22, i32* %op2
|
|
br label %label_after_if_18
|
|
label_false_if_17: ; preds = %label_false_if_14
|
|
br label %label_cond_while_10
|
|
label_after_if_18: ; preds = %label_true_if_16, %label_after_continue_19
|
|
br label %label_after_if_15
|
|
label_after_continue_19:
|
|
br label %label_after_if_18
|
|
}
|
|
define void @func_febonacci(i32* %arg0) {
|
|
label_func_febonaccifuncBB:
|
|
%op1 = alloca i32*
|
|
store i32* %arg0, i32** %op1
|
|
%op2 = alloca i32
|
|
store i32 2, i32* %op2
|
|
%op3 = load i32*, i32** %op1
|
|
%op4 = getelementptr i32, i32* %op3, i32 0
|
|
%op5 = load i32, i32* %op4
|
|
store i32 0, i32* %op4
|
|
%op6 = load i32*, i32** %op1
|
|
%op7 = getelementptr i32, i32* %op6, i32 1
|
|
%op8 = load i32, i32* %op7
|
|
store i32 1, i32* %op7
|
|
br label %label_cond_while_20
|
|
label_func_febonacciretBB: ; preds = %label_after_while_22
|
|
ret void
|
|
label_cond_while_20: ; preds = %label_func_febonaccifuncBB, %label_while_21
|
|
%op9 = load i32, i32* %op2
|
|
%op10 = icmp slt i32 %op9, 10
|
|
br i1 %op10, label %label_while_21, label %label_after_while_22
|
|
label_while_21: ; preds = %label_cond_while_20
|
|
%op11 = load i32, i32* %op2
|
|
%op12 = load i32*, i32** %op1
|
|
%op13 = getelementptr i32, i32* %op12, i32 %op11
|
|
%op14 = load i32, i32* %op13
|
|
%op15 = load i32, i32* %op2
|
|
%op16 = sub i32 %op15, 1
|
|
%op17 = load i32*, i32** %op1
|
|
%op18 = getelementptr i32, i32* %op17, i32 %op16
|
|
%op19 = load i32, i32* %op18
|
|
%op20 = load i32, i32* %op2
|
|
%op21 = sub i32 %op20, 2
|
|
%op22 = load i32*, i32** %op1
|
|
%op23 = getelementptr i32, i32* %op22, i32 %op21
|
|
%op24 = load i32, i32* %op23
|
|
%op25 = add i32 %op19, %op24
|
|
store i32 %op25, i32* %op13
|
|
%op26 = load i32, i32* %op2
|
|
%op27 = load i32, i32* %op2
|
|
%op28 = add i32 %op27, 1
|
|
store i32 %op28, i32* %op2
|
|
br label %label_cond_while_20
|
|
label_after_while_22: ; preds = %label_cond_while_20
|
|
br label %label_func_febonacciretBB
|
|
}
|
|
define i32 @sort(i32* %arg0, i32 %arg1) {
|
|
label_sortfuncBB:
|
|
%op2 = alloca i32
|
|
store i32 0, i32* %op2
|
|
%op3 = alloca i32*
|
|
store i32* %arg0, i32** %op3
|
|
%op4 = alloca i32
|
|
store i32 %arg1, i32* %op4
|
|
%op5 = alloca i32
|
|
store i32 zeroinitializer, i32* %op5
|
|
%op6 = alloca i32
|
|
store i32 zeroinitializer, i32* %op6
|
|
%op7 = alloca i32
|
|
store i32 zeroinitializer, i32* %op7
|
|
%op8 = load i32, i32* %op5
|
|
store i32 0, i32* %op5
|
|
br label %label_cond_while_23
|
|
label_sortretBB: ; preds = %label_after_while_25
|
|
%op9 = load i32, i32* %op2
|
|
ret i32 %op9
|
|
label_cond_while_23: ; preds = %label_sortfuncBB, %label_after_while_28
|
|
%op10 = load i32, i32* %op5
|
|
%op11 = load i32, i32* %op4
|
|
%op12 = icmp slt i32 %op10, %op11
|
|
br i1 %op12, label %label_while_24, label %label_after_while_25
|
|
label_while_24: ; preds = %label_cond_while_23
|
|
%op13 = load i32, i32* %op6
|
|
store i32 0, i32* %op6
|
|
br label %label_cond_while_26
|
|
label_after_while_25: ; preds = %label_cond_while_23
|
|
store i32 0, i32* %op2
|
|
br label %label_sortretBB
|
|
label_cond_while_26: ; preds = %label_while_24, %label_after_if_30
|
|
%op14 = load i32, i32* %op6
|
|
%op15 = load i32, i32* %op4
|
|
%op16 = load i32, i32* %op5
|
|
%op17 = sub i32 %op15, %op16
|
|
%op18 = sub i32 %op17, 1
|
|
%op19 = icmp slt i32 %op14, %op18
|
|
br i1 %op19, label %label_while_27, label %label_after_while_28
|
|
label_while_27: ; preds = %label_cond_while_26
|
|
%op20 = load i32, i32* %op6
|
|
%op21 = load i32*, i32** %op3
|
|
%op22 = getelementptr i32, i32* %op21, i32 %op20
|
|
%op23 = load i32, i32* %op22
|
|
%op24 = load i32, i32* %op6
|
|
%op25 = add i32 %op24, 1
|
|
%op26 = load i32*, i32** %op3
|
|
%op27 = getelementptr i32, i32* %op26, i32 %op25
|
|
%op28 = load i32, i32* %op27
|
|
%op29 = icmp sgt i32 %op23, %op28
|
|
br i1 %op29, label %label_true_if_29, label %label_after_if_30
|
|
label_after_while_28: ; preds = %label_cond_while_26
|
|
%op30 = load i32, i32* %op5
|
|
%op31 = load i32, i32* %op5
|
|
%op32 = add i32 %op31, 1
|
|
store i32 %op32, i32* %op5
|
|
br label %label_cond_while_23
|
|
label_true_if_29: ; preds = %label_while_27
|
|
%op33 = load i32, i32* %op7
|
|
%op34 = load i32, i32* %op6
|
|
%op35 = add i32 %op34, 1
|
|
%op36 = load i32*, i32** %op3
|
|
%op37 = getelementptr i32, i32* %op36, i32 %op35
|
|
%op38 = load i32, i32* %op37
|
|
store i32 %op38, i32* %op7
|
|
%op39 = load i32, i32* %op6
|
|
%op40 = add i32 %op39, 1
|
|
%op41 = load i32*, i32** %op3
|
|
%op42 = getelementptr i32, i32* %op41, i32 %op40
|
|
%op43 = load i32, i32* %op42
|
|
%op44 = load i32, i32* %op6
|
|
%op45 = load i32*, i32** %op3
|
|
%op46 = getelementptr i32, i32* %op45, i32 %op44
|
|
%op47 = load i32, i32* %op46
|
|
store i32 %op47, i32* %op42
|
|
%op48 = load i32, i32* %op6
|
|
%op49 = load i32*, i32** %op3
|
|
%op50 = getelementptr i32, i32* %op49, i32 %op48
|
|
%op51 = load i32, i32* %op50
|
|
%op52 = load i32, i32* %op7
|
|
store i32 %op52, i32* %op50
|
|
br label %label_after_if_30
|
|
label_after_if_30: ; preds = %label_while_27, %label_true_if_29
|
|
%op53 = load i32, i32* %op6
|
|
%op54 = load i32, i32* %op6
|
|
%op55 = add i32 %op54, 1
|
|
store i32 %op55, i32* %op6
|
|
br label %label_cond_while_26
|
|
}
|
|
define i32 @short_cut() {
|
|
label_short_cutfuncBB:
|
|
%op0 = alloca i32
|
|
store i32 0, i32* %op0
|
|
%op1 = load i32, i32* @short_cut_flag
|
|
store i32 1, i32* @short_cut_flag
|
|
store i32 1, i32* %op0
|
|
br label %label_short_cutretBB
|
|
label_short_cutretBB: ; preds = %label_short_cutfuncBB
|
|
%op2 = load i32, i32* %op0
|
|
ret i32 %op2
|
|
}
|
|
define i32 @main() {
|
|
label_mainfuncBB:
|
|
%op0 = alloca i32
|
|
store i32 0, i32* %op0
|
|
%op1 = load i32, i32* @global_ia3
|
|
%op2 = icmp ne i32 %op1, 5
|
|
br i1 %op2, label %label_true_if_31, label %label_after_if_32
|
|
label_mainretBB: ; preds = %label_true_if_31, %label_true_if_33, %label_true_if_38, %label_true_if_40, %label_true_if_42, %label_true_if_44, %label_true_if_46, %label_true_if_48, %label_true_if_50, %label_true_if_52, %label_true_if_54, %label_true_if_56, %label_true_if_58, %label_true_if_60, %label_true_if_62, %label_true_if_64, %label_true_if_74, %label_true_if_84, %label_true_if_90, %label_true_if_92, %label_true_if_98, %label_true_if_104, %label_true_if_110, %label_true_if_112, %label_true_if_114, %label_after_if_115
|
|
%op3 = load i32, i32* %op0
|
|
ret i32 %op3
|
|
label_true_if_31: ; preds = %label_mainfuncBB
|
|
%op4 = load i32, i32* @check
|
|
%op5 = sub i32 0, 1
|
|
store i32 %op5, i32* @check
|
|
store i32 1, i32* %op0
|
|
br label %label_mainretBB
|
|
label_after_if_32: ; preds = %label_mainfuncBB
|
|
%op6 = load i32, i32* @global_fb3
|
|
%op7 = icmp ne i32 %op6, 7
|
|
br i1 %op7, label %label_true_if_33, label %label_after_if_34
|
|
label_true_if_33: ; preds = %label_after_if_32
|
|
%op8 = load i32, i32* @check
|
|
%op9 = sub i32 0, 1
|
|
store i32 %op9, i32* @check
|
|
store i32 2, i32* %op0
|
|
br label %label_mainretBB
|
|
label_after_if_34: ; preds = %label_after_if_32
|
|
%op10 = alloca i32
|
|
store i32 0, i32* %op10
|
|
br label %label_cond_while_35
|
|
label_cond_while_35: ; preds = %label_after_if_34, %label_after_if_39
|
|
%op11 = load i32, i32* %op10
|
|
%op12 = icmp slt i32 %op11, 10
|
|
br i1 %op12, label %label_while_36, label %label_after_while_37
|
|
label_while_36: ; preds = %label_cond_while_35
|
|
%op13 = load i32, i32* %op10
|
|
%op14 = getelementptr [10 x i32], [10 x i32]* @global_iaa2, i32 0, i32 %op13
|
|
%op15 = load i32, i32* %op14
|
|
%op16 = load i32, i32* %op10
|
|
%op17 = add i32 %op16, 1
|
|
%op18 = icmp ne i32 %op15, %op17
|
|
br i1 %op18, label %label_true_if_38, label %label_after_if_39
|
|
label_after_while_37: ; preds = %label_cond_while_35
|
|
%op19 = getelementptr [5 x float], [5 x float]* @global_fbb2, i32 0, i32 4
|
|
%op20 = load float, float* %op19
|
|
%op21 = sitofp i32 0 to float
|
|
%op22 = fcmp une float %op20, %op21
|
|
br i1 %op22, label %label_true_if_40, label %label_after_if_41
|
|
label_true_if_38: ; preds = %label_while_36
|
|
%op23 = load i32, i32* @check
|
|
%op24 = sub i32 0, 1
|
|
store i32 %op24, i32* @check
|
|
store i32 3, i32* %op0
|
|
br label %label_mainretBB
|
|
label_after_if_39: ; preds = %label_while_36
|
|
%op25 = load i32, i32* %op10
|
|
%op26 = load i32, i32* %op10
|
|
%op27 = add i32 %op26, 1
|
|
store i32 %op27, i32* %op10
|
|
br label %label_cond_while_35
|
|
label_true_if_40: ; preds = %label_after_while_37
|
|
%op28 = load i32, i32* @check
|
|
%op29 = sub i32 0, 1
|
|
store i32 %op29, i32* @check
|
|
store i32 4, i32* %op0
|
|
br label %label_mainretBB
|
|
label_after_if_41: ; preds = %label_after_while_37
|
|
%op30 = call i32 @func1(i32 1, i32 2)
|
|
%op31 = icmp ne i32 %op30, 3
|
|
br i1 %op31, label %label_true_if_42, label %label_after_if_43
|
|
label_true_if_42: ; preds = %label_after_if_41
|
|
%op32 = load i32, i32* @check
|
|
%op33 = sub i32 0, 1
|
|
store i32 %op33, i32* @check
|
|
store i32 5, i32* %op0
|
|
br label %label_mainretBB
|
|
label_after_if_43: ; preds = %label_after_if_41
|
|
%op34 = load i32, i32* @scope_test
|
|
%op35 = icmp ne i32 %op34, 1
|
|
br i1 %op35, label %label_true_if_44, label %label_after_if_45
|
|
label_true_if_44: ; preds = %label_after_if_43
|
|
%op36 = load i32, i32* @check
|
|
%op37 = sub i32 0, 1
|
|
store i32 %op37, i32* @check
|
|
store i32 6, i32* %op0
|
|
br label %label_mainretBB
|
|
label_after_if_45: ; preds = %label_after_if_43
|
|
%op38 = alloca i32
|
|
store i32 2, i32* %op38
|
|
%op39 = load i32, i32* %op38
|
|
%op40 = icmp ne i32 %op39, 2
|
|
br i1 %op40, label %label_true_if_46, label %label_after_if_47
|
|
label_true_if_46: ; preds = %label_after_if_45
|
|
%op41 = load i32, i32* @check
|
|
%op42 = sub i32 0, 1
|
|
store i32 %op42, i32* @check
|
|
store i32 7, i32* %op0
|
|
br label %label_mainretBB
|
|
label_after_if_47: ; preds = %label_after_if_45
|
|
%op43 = load i32, i32* @scope_test
|
|
%op44 = icmp ne i32 %op43, 1
|
|
br i1 %op44, label %label_true_if_48, label %label_after_if_49
|
|
label_true_if_48: ; preds = %label_after_if_47
|
|
%op45 = load i32, i32* @check
|
|
%op46 = sub i32 0, 1
|
|
store i32 %op46, i32* @check
|
|
store i32 8, i32* %op0
|
|
br label %label_mainretBB
|
|
label_after_if_49: ; preds = %label_after_if_47
|
|
%op47 = call i32 @func2(float 0x4001333340000000, float 0x4008147ae0000000)
|
|
%op48 = icmp ne i32 %op47, 0
|
|
br i1 %op48, label %label_true_if_50, label %label_after_if_51
|
|
label_true_if_50: ; preds = %label_after_if_49
|
|
%op49 = load i32, i32* @check
|
|
%op50 = sub i32 0, 1
|
|
store i32 %op50, i32* @check
|
|
store i32 9, i32* %op0
|
|
br label %label_mainretBB
|
|
label_after_if_51: ; preds = %label_after_if_49
|
|
%op51 = load float, float* @global_fb2
|
|
%op52 = fcmp une float %op51, 0x4014a3d700000000
|
|
br i1 %op52, label %label_true_if_52, label %label_after_if_53
|
|
label_true_if_52: ; preds = %label_after_if_51
|
|
%op53 = load i32, i32* @check
|
|
%op54 = sub i32 0, 1
|
|
store i32 %op54, i32* @check
|
|
store i32 10, i32* %op0
|
|
br label %label_mainretBB
|
|
label_after_if_53: ; preds = %label_after_if_51
|
|
%op55 = call i32 @func3(i32 1, i32 2)
|
|
%op56 = icmp ne i32 %op55, 3
|
|
br i1 %op56, label %label_true_if_54, label %label_after_if_55
|
|
label_true_if_54: ; preds = %label_after_if_53
|
|
%op57 = load i32, i32* @check
|
|
%op58 = sub i32 0, 1
|
|
store i32 %op58, i32* @check
|
|
store i32 11, i32* %op0
|
|
br label %label_mainretBB
|
|
label_after_if_55: ; preds = %label_after_if_53
|
|
%op59 = call i32 @func4(float 0x3ff19999a0000000, float 0x4000147ae0000000)
|
|
%op60 = icmp ne i32 %op59, 3
|
|
br i1 %op60, label %label_true_if_56, label %label_after_if_57
|
|
label_true_if_56: ; preds = %label_after_if_55
|
|
%op61 = load i32, i32* @check
|
|
%op62 = sub i32 0, 1
|
|
store i32 %op62, i32* @check
|
|
store i32 12, i32* %op0
|
|
br label %label_mainretBB
|
|
label_after_if_57: ; preds = %label_after_if_55
|
|
%op63 = call i32 @func_5()
|
|
%op64 = icmp ne i32 %op63, 3
|
|
br i1 %op64, label %label_true_if_58, label %label_after_if_59
|
|
label_true_if_58: ; preds = %label_after_if_57
|
|
%op65 = load i32, i32* @check
|
|
%op66 = sub i32 0, 1
|
|
store i32 %op66, i32* @check
|
|
store i32 13, i32* %op0
|
|
br label %label_mainretBB
|
|
label_after_if_59: ; preds = %label_after_if_57
|
|
%op67 = call i32 @func_while()
|
|
%op68 = icmp ne i32 %op67, 13
|
|
br i1 %op68, label %label_true_if_60, label %label_after_if_61
|
|
label_true_if_60: ; preds = %label_after_if_59
|
|
%op69 = load i32, i32* @check
|
|
%op70 = sub i32 0, 1
|
|
store i32 %op70, i32* @check
|
|
store i32 14, i32* %op0
|
|
br label %label_mainretBB
|
|
label_after_if_61: ; preds = %label_after_if_59
|
|
%op71 = alloca [10 x i32]
|
|
%op72 = getelementptr [10 x i32], [10 x i32]* %op71, i32 0, i32 0
|
|
call void @func_febonacci(i32* %op72)
|
|
%op73 = getelementptr [10 x i32], [10 x i32]* %op71, i32 0, i32 9
|
|
%op74 = load i32, i32* %op73
|
|
%op75 = icmp ne i32 %op74, 34
|
|
br i1 %op75, label %label_true_if_62, label %label_after_if_63
|
|
label_true_if_62: ; preds = %label_after_if_61
|
|
%op76 = load i32, i32* @check
|
|
%op77 = sub i32 0, 1
|
|
store i32 %op77, i32* @check
|
|
store i32 15, i32* %op0
|
|
br label %label_mainretBB
|
|
label_after_if_63: ; preds = %label_after_if_61
|
|
%op78 = alloca [10 x i32]
|
|
%op79 = getelementptr [10 x i32], [10 x i32]* %op78, i32 0, i32 0
|
|
store i32 1, i32* %op79
|
|
%op80 = getelementptr [10 x i32], [10 x i32]* %op78, i32 0, i32 1
|
|
store i32 33, i32* %op80
|
|
%op81 = sub i32 0, 5
|
|
%op82 = getelementptr [10 x i32], [10 x i32]* %op78, i32 0, i32 2
|
|
store i32 %op81, i32* %op82
|
|
%op83 = getelementptr [10 x i32], [10 x i32]* %op78, i32 0, i32 3
|
|
store i32 7, i32* %op83
|
|
%op84 = sub i32 0, 1
|
|
%op85 = getelementptr [10 x i32], [10 x i32]* %op78, i32 0, i32 4
|
|
store i32 %op84, i32* %op85
|
|
%op86 = sub i32 0, 2
|
|
%op87 = getelementptr [10 x i32], [10 x i32]* %op78, i32 0, i32 5
|
|
store i32 %op86, i32* %op87
|
|
%op88 = getelementptr [10 x i32], [10 x i32]* %op78, i32 0, i32 6
|
|
store i32 4, i32* %op88
|
|
%op89 = getelementptr [10 x i32], [10 x i32]* %op78, i32 0, i32 7
|
|
store i32 6, i32* %op89
|
|
%op90 = getelementptr [10 x i32], [10 x i32]* %op78, i32 0, i32 8
|
|
store i32 28, i32* %op90
|
|
%op91 = getelementptr [10 x i32], [10 x i32]* %op78, i32 0, i32 9
|
|
store i32 10, i32* %op91
|
|
%op92 = getelementptr [10 x i32], [10 x i32]* %op78, i32 0, i32 0
|
|
%op93 = call i32 @sort(i32* %op92, i32 10)
|
|
%op94 = getelementptr [10 x i32], [10 x i32]* %op78, i32 0, i32 0
|
|
%op95 = load i32, i32* %op94
|
|
%op96 = sub i32 0, 5
|
|
%op97 = icmp ne i32 %op95, %op96
|
|
br i1 %op97, label %label_after_lor_bb_67, label %label_next_lor_bb_66
|
|
label_true_if_64: ; preds = %label_after_lor_bb_73
|
|
%op98 = load i32, i32* @check
|
|
%op99 = sub i32 0, 1
|
|
store i32 %op99, i32* @check
|
|
store i32 16, i32* %op0
|
|
br label %label_mainretBB
|
|
label_after_if_65: ; preds = %label_after_lor_bb_73
|
|
%op100 = getelementptr [10 x i32], [10 x i32]* %op78, i32 0, i32 5
|
|
%op101 = load i32, i32* %op100
|
|
%op102 = icmp ne i32 %op101, 6
|
|
br i1 %op102, label %label_after_lor_bb_77, label %label_next_lor_bb_76
|
|
label_next_lor_bb_66: ; preds = %label_after_if_63
|
|
%op103 = getelementptr [10 x i32], [10 x i32]* %op78, i32 0, i32 1
|
|
%op104 = load i32, i32* %op103
|
|
%op105 = sub i32 0, 2
|
|
%op106 = icmp ne i32 %op104, %op105
|
|
br label %label_after_lor_bb_67
|
|
label_after_lor_bb_67: ; preds = %label_after_if_63, %label_next_lor_bb_66
|
|
br i1 %op106, label %label_after_lor_bb_69, label %label_next_lor_bb_68
|
|
label_next_lor_bb_68: ; preds = %label_after_lor_bb_67
|
|
%op107 = getelementptr [10 x i32], [10 x i32]* %op78, i32 0, i32 2
|
|
%op108 = load i32, i32* %op107
|
|
%op109 = sub i32 0, 1
|
|
%op110 = icmp ne i32 %op108, %op109
|
|
br label %label_after_lor_bb_69
|
|
label_after_lor_bb_69: ; preds = %label_after_lor_bb_67, %label_next_lor_bb_68
|
|
br i1 %op110, label %label_after_lor_bb_71, label %label_next_lor_bb_70
|
|
label_next_lor_bb_70: ; preds = %label_after_lor_bb_69
|
|
%op111 = getelementptr [10 x i32], [10 x i32]* %op78, i32 0, i32 3
|
|
%op112 = load i32, i32* %op111
|
|
%op113 = icmp ne i32 %op112, 1
|
|
br label %label_after_lor_bb_71
|
|
label_after_lor_bb_71: ; preds = %label_after_lor_bb_69, %label_next_lor_bb_70
|
|
br i1 %op113, label %label_after_lor_bb_73, label %label_next_lor_bb_72
|
|
label_next_lor_bb_72: ; preds = %label_after_lor_bb_71
|
|
%op114 = getelementptr [10 x i32], [10 x i32]* %op78, i32 0, i32 4
|
|
%op115 = load i32, i32* %op114
|
|
%op116 = icmp ne i32 %op115, 4
|
|
br label %label_after_lor_bb_73
|
|
label_after_lor_bb_73: ; preds = %label_after_lor_bb_71, %label_next_lor_bb_72
|
|
br i1 %op116, label %label_true_if_64, label %label_after_if_65
|
|
label_true_if_74: ; preds = %label_after_lor_bb_83
|
|
%op117 = load i32, i32* @check
|
|
%op118 = sub i32 0, 1
|
|
store i32 %op118, i32* @check
|
|
store i32 17, i32* %op0
|
|
br label %label_mainretBB
|
|
label_after_if_75: ; preds = %label_after_lor_bb_83
|
|
%op119 = alloca [3 x i32]
|
|
%op120 = getelementptr [10 x i32], [10 x i32]* @global_iaa2, i32 0, i32 0
|
|
%op121 = load i32, i32* %op120
|
|
%op122 = getelementptr [10 x i32], [10 x i32]* @global_iaa2, i32 0, i32 1
|
|
%op123 = load i32, i32* %op122
|
|
%op124 = sub i32 %op121, %op123
|
|
%op125 = getelementptr [3 x i32], [3 x i32]* %op119, i32 0, i32 0
|
|
store i32 %op124, i32* %op125
|
|
%op126 = getelementptr [10 x i32], [10 x i32]* @global_iaa2, i32 0, i32 2
|
|
%op127 = load i32, i32* %op126
|
|
%op128 = getelementptr [10 x i32], [10 x i32]* @global_iaa2, i32 0, i32 3
|
|
%op129 = load i32, i32* %op128
|
|
%op130 = mul i32 %op127, %op129
|
|
%op131 = getelementptr [3 x i32], [3 x i32]* %op119, i32 0, i32 1
|
|
store i32 %op130, i32* %op131
|
|
%op132 = getelementptr [10 x i32], [10 x i32]* @global_iaa2, i32 0, i32 4
|
|
%op133 = load i32, i32* %op132
|
|
%op134 = getelementptr [10 x i32], [10 x i32]* @global_iaa2, i32 0, i32 5
|
|
%op135 = load i32, i32* %op134
|
|
%op136 = add i32 %op133, %op135
|
|
%op137 = getelementptr [3 x i32], [3 x i32]* %op119, i32 0, i32 2
|
|
store i32 %op136, i32* %op137
|
|
%op138 = getelementptr [3 x i32], [3 x i32]* %op119, i32 0, i32 0
|
|
%op139 = load i32, i32* %op138
|
|
%op140 = sub i32 0, 1
|
|
%op141 = icmp ne i32 %op139, %op140
|
|
br i1 %op141, label %label_after_lor_bb_87, label %label_next_lor_bb_86
|
|
label_next_lor_bb_76: ; preds = %label_after_if_65
|
|
%op142 = getelementptr [10 x i32], [10 x i32]* %op78, i32 0, i32 6
|
|
%op143 = load i32, i32* %op142
|
|
%op144 = icmp ne i32 %op143, 7
|
|
br label %label_after_lor_bb_77
|
|
label_after_lor_bb_77: ; preds = %label_after_if_65, %label_next_lor_bb_76
|
|
br i1 %op144, label %label_after_lor_bb_79, label %label_next_lor_bb_78
|
|
label_next_lor_bb_78: ; preds = %label_after_lor_bb_77
|
|
%op145 = getelementptr [10 x i32], [10 x i32]* %op78, i32 0, i32 7
|
|
%op146 = load i32, i32* %op145
|
|
%op147 = icmp ne i32 %op146, 10
|
|
br label %label_after_lor_bb_79
|
|
label_after_lor_bb_79: ; preds = %label_after_lor_bb_77, %label_next_lor_bb_78
|
|
br i1 %op147, label %label_after_lor_bb_81, label %label_next_lor_bb_80
|
|
label_next_lor_bb_80: ; preds = %label_after_lor_bb_79
|
|
%op148 = getelementptr [10 x i32], [10 x i32]* %op78, i32 0, i32 8
|
|
%op149 = load i32, i32* %op148
|
|
%op150 = icmp ne i32 %op149, 28
|
|
br label %label_after_lor_bb_81
|
|
label_after_lor_bb_81: ; preds = %label_after_lor_bb_79, %label_next_lor_bb_80
|
|
br i1 %op150, label %label_after_lor_bb_83, label %label_next_lor_bb_82
|
|
label_next_lor_bb_82: ; preds = %label_after_lor_bb_81
|
|
%op151 = getelementptr [10 x i32], [10 x i32]* %op78, i32 0, i32 9
|
|
%op152 = load i32, i32* %op151
|
|
%op153 = icmp ne i32 %op152, 33
|
|
br label %label_after_lor_bb_83
|
|
label_after_lor_bb_83: ; preds = %label_after_lor_bb_81, %label_next_lor_bb_82
|
|
br i1 %op153, label %label_true_if_74, label %label_after_if_75
|
|
label_true_if_84: ; preds = %label_after_lor_bb_89
|
|
%op154 = load i32, i32* @check
|
|
%op155 = sub i32 0, 1
|
|
store i32 %op155, i32* @check
|
|
store i32 18, i32* %op0
|
|
br label %label_mainretBB
|
|
label_after_if_85: ; preds = %label_after_lor_bb_89
|
|
%op156 = alloca i32
|
|
%op157 = add i32 16, 1
|
|
store i32 %op157, i32* %op156
|
|
%op158 = load i32, i32* %op156
|
|
%op159 = icmp ne i32 %op158, 17
|
|
br i1 %op159, label %label_true_if_90, label %label_after_if_91
|
|
label_next_lor_bb_86: ; preds = %label_after_if_75
|
|
%op160 = getelementptr [3 x i32], [3 x i32]* %op119, i32 0, i32 1
|
|
%op161 = load i32, i32* %op160
|
|
%op162 = icmp ne i32 %op161, 12
|
|
br label %label_after_lor_bb_87
|
|
label_after_lor_bb_87: ; preds = %label_after_if_75, %label_next_lor_bb_86
|
|
br i1 %op162, label %label_after_lor_bb_89, label %label_next_lor_bb_88
|
|
label_next_lor_bb_88: ; preds = %label_after_lor_bb_87
|
|
%op163 = getelementptr [3 x i32], [3 x i32]* %op119, i32 0, i32 2
|
|
%op164 = load i32, i32* %op163
|
|
%op165 = icmp ne i32 %op164, 11
|
|
br label %label_after_lor_bb_89
|
|
label_after_lor_bb_89: ; preds = %label_after_lor_bb_87, %label_next_lor_bb_88
|
|
br i1 %op165, label %label_true_if_84, label %label_after_if_85
|
|
label_true_if_90: ; preds = %label_after_if_85
|
|
%op166 = load i32, i32* @check
|
|
%op167 = sub i32 0, 1
|
|
store i32 %op167, i32* @check
|
|
store i32 19, i32* %op0
|
|
br label %label_mainretBB
|
|
label_after_if_91: ; preds = %label_after_if_85
|
|
%op168 = alloca i32
|
|
%op169 = add i32 15, 9
|
|
store i32 %op169, i32* %op168
|
|
%op170 = load i32, i32* %op168
|
|
%op171 = icmp ne i32 %op170, 24
|
|
br i1 %op171, label %label_true_if_92, label %label_after_if_93
|
|
label_true_if_92: ; preds = %label_after_if_91
|
|
%op172 = load i32, i32* @check
|
|
%op173 = sub i32 0, 1
|
|
store i32 %op173, i32* @check
|
|
store i32 20, i32* %op0
|
|
br label %label_mainretBB
|
|
label_after_if_93: ; preds = %label_after_if_91
|
|
%op174 = load i32, i32* @short_cut_flag
|
|
store i32 0, i32* @short_cut_flag
|
|
%op175 = load i32, i32* @short_cut_flag
|
|
%op176 = icmp slt i32 %op175, 7
|
|
br i1 %op176, label %label_after_lor_bb_97, label %label_next_lor_bb_96
|
|
label_true_if_94: ; preds = %label_after_lor_bb_97
|
|
%op177 = load i32, i32* @short_cut_flag
|
|
%op178 = icmp ne i32 %op177, 0
|
|
br i1 %op178, label %label_true_if_98, label %label_after_if_99
|
|
label_after_if_95: ; preds = %label_after_lor_bb_97, %label_after_if_99
|
|
%op179 = load i32, i32* @short_cut_flag
|
|
store i32 0, i32* @short_cut_flag
|
|
%op180 = icmp eq i32 5, 5
|
|
br i1 %op180, label %label_next_land_bb_102, label %label_after_land_bb_103
|
|
label_next_lor_bb_96: ; preds = %label_after_if_93
|
|
%op181 = call i32 @short_cut()
|
|
%op182 = icmp ne i32 %op181, 0
|
|
br label %label_after_lor_bb_97
|
|
label_after_lor_bb_97: ; preds = %label_after_if_93, %label_next_lor_bb_96
|
|
br i1 %op182, label %label_true_if_94, label %label_after_if_95
|
|
label_true_if_98: ; preds = %label_true_if_94
|
|
%op183 = load i32, i32* @check
|
|
%op184 = sub i32 0, 1
|
|
store i32 %op184, i32* @check
|
|
store i32 21, i32* %op0
|
|
br label %label_mainretBB
|
|
label_after_if_99: ; preds = %label_true_if_94
|
|
br label %label_after_if_95
|
|
label_true_if_100: ; preds = %label_after_land_bb_103
|
|
%op185 = load i32, i32* @short_cut_flag
|
|
%op186 = icmp ne i32 %op185, 1
|
|
br i1 %op186, label %label_true_if_104, label %label_after_if_105
|
|
label_after_if_101: ; preds = %label_after_land_bb_103, %label_after_if_105
|
|
%op187 = load i32, i32* @short_cut_flag
|
|
store i32 0, i32* @short_cut_flag
|
|
%op188 = icmp eq i32 5, 6
|
|
br i1 %op188, label %label_next_land_bb_108, label %label_after_land_bb_109
|
|
label_next_land_bb_102: ; preds = %label_after_if_95
|
|
%op189 = call i32 @short_cut()
|
|
%op190 = icmp ne i32 %op189, 0
|
|
br label %label_after_land_bb_103
|
|
label_after_land_bb_103: ; preds = %label_after_if_95, %label_next_land_bb_102
|
|
br i1 %op190, label %label_true_if_100, label %label_after_if_101
|
|
label_true_if_104: ; preds = %label_true_if_100
|
|
%op191 = load i32, i32* @check
|
|
%op192 = sub i32 0, 1
|
|
store i32 %op192, i32* @check
|
|
store i32 22, i32* %op0
|
|
br label %label_mainretBB
|
|
label_after_if_105: ; preds = %label_true_if_100
|
|
br label %label_after_if_101
|
|
label_true_if_106: ; preds = %label_after_land_bb_109
|
|
%op193 = load i32, i32* @short_cut_flag
|
|
%op194 = icmp ne i32 %op193, 0
|
|
br i1 %op194, label %label_true_if_110, label %label_after_if_111
|
|
label_after_if_107: ; preds = %label_after_land_bb_109, %label_after_if_111
|
|
%op195 = alloca i32
|
|
store i32 12, i32* %op195
|
|
%op196 = load i32, i32* %op195
|
|
%op197 = sub i32 0, %op196
|
|
%op198 = sub i32 0, 12
|
|
%op199 = icmp ne i32 %op197, %op198
|
|
br i1 %op199, label %label_true_if_112, label %label_after_if_113
|
|
label_next_land_bb_108: ; preds = %label_after_if_101
|
|
%op200 = call i32 @short_cut()
|
|
%op201 = icmp ne i32 %op200, 0
|
|
br label %label_after_land_bb_109
|
|
label_after_land_bb_109: ; preds = %label_after_if_101, %label_next_land_bb_108
|
|
br i1 %op201, label %label_true_if_106, label %label_after_if_107
|
|
label_true_if_110: ; preds = %label_true_if_106
|
|
%op202 = load i32, i32* @check
|
|
%op203 = sub i32 0, 1
|
|
store i32 %op203, i32* @check
|
|
store i32 23, i32* %op0
|
|
br label %label_mainretBB
|
|
label_after_if_111: ; preds = %label_true_if_106
|
|
br label %label_after_if_107
|
|
label_true_if_112: ; preds = %label_after_if_107
|
|
%op204 = load i32, i32* @check
|
|
%op205 = sub i32 0, 1
|
|
store i32 %op205, i32* @check
|
|
store i32 24, i32* %op0
|
|
br label %label_mainretBB
|
|
label_after_if_113: ; preds = %label_after_if_107
|
|
%op206 = load i32, i32* %op195
|
|
%op207 = icmp eq i32 %op206, 0
|
|
br i1 %op207, label %label_true_if_114, label %label_after_if_115
|
|
label_true_if_114: ; preds = %label_after_if_113
|
|
%op208 = load i32, i32* @check
|
|
%op209 = sub i32 0, 1
|
|
store i32 %op209, i32* @check
|
|
store i32 25, i32* %op0
|
|
br label %label_mainretBB
|
|
label_after_if_115: ; preds = %label_after_if_113
|
|
%op210 = load i32, i32* @check
|
|
store i32 %op210, i32* %op0
|
|
br label %label_mainretBB
|
|
}
|