123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268 |
- target triple = "x86_64-unknown-linux-gnu"
- target datalayout = ""
- define void @"main"()
- {
- entry:
- %".2" = bitcast [8 x i8]* @"fstr" to i8*
- %".3" = fmul double 0x4000000000000000, 0x4008000000000000
- %".4" = fdiv double %".3", 0x4010000000000000
- %".5" = fadd double 0x3ff0000000000000, %".4"
- %".6" = call i64 (i8*, ...) @"printf"(i8* %".2", double %".5")
- %".7" = sitofp i64 %".6" to double
- %".8" = call i64 (i8*, ...) @"printf"(i8* %".2", double %".7")
- %".9" = call double @"f_master"(i64 1, double 0x4024000000000000, double 0x0)
- %".10" = call i64 (i8*, ...) @"printf"(i8* %".2", double %".9")
- %".11" = call double @"f_master"(i64 2, double 0x3ff0000000000000, double 0x4000000000000000)
- %".12" = call i64 (i8*, ...) @"printf"(i8* %".2", double %".11")
- %".13" = call double @"fib_master"(i64 1, double 0x4034000000000000)
- %".14" = call i64 (i8*, ...) @"printf"(i8* %".2", double %".13")
- %".15" = call double @"square_master"(i64 1, double 0x4000000000000000)
- %".16" = call double @"exp_master"(i64 2, double 0x4000000000000000, double %".15")
- %".17" = call i64 (i8*, ...) @"printf"(i8* %".2", double %".16")
- %".18" = call double @"sqrt_master"(i64 1, double 0x4000000000000000, double 0x0, double 0x0, double 0x0)
- %".19" = call double @"sqrt_master"(i64 1, double 0x4000000000000000, double 0x0, double 0x0, double 0x0)
- %".20" = call double @"square_master"(i64 1, double %".19")
- %".21" = call i64 (i8*, ...) @"printf"(i8* %".2", double %".18", double %".20")
- ret void
- }
- declare i64 @"printf"(i8* %".1", ...)
- @"fstr" = internal constant [8 x i8] c"> %.8f\0a\00"
- @"cond_global_fmt" = internal constant [12 x i8] c"> cond: %d\0a\00"
- define double @"f_master"(i64 %".1", double %".2", double %".3")
- {
- entry:
- switch i64 %".1", label %"switch_default" [i64 1, label %"f_arg_1" i64 2, label %"f_arg_2"]
- exit:
- ret double 0xbff0000000000000
- switch_default:
- br label %"exit"
- f_arg_1:
- %".8" = bitcast [12 x i8]* @"cond_global_fmt" to i8*
- %"cmp_0" = fcmp ueq double %".2", 0x0
- %".9" = and i1 1, %"cmp_0"
- br i1 %".9", label %"f_arg_1.if", label %"f_arg_1.endif"
- f_arg_1.if:
- %".11" = call double @"f[CONST 0]"(double 0x0)
- ret double %".11"
- f_arg_1.endif:
- br i1 1, label %"f_arg_1.endif.if", label %"f_arg_1.endif.endif"
- f_arg_1.endif.if:
- %".14" = call double @"f[VAR x]"(double %".2")
- ret double %".14"
- f_arg_1.endif.endif:
- br label %"exit"
- f_arg_2:
- %".17" = bitcast [12 x i8]* @"cond_global_fmt" to i8*
- br i1 1, label %"f_arg_2.if", label %"f_arg_2.endif"
- f_arg_2.if:
- %".19" = call double @"f[VAR x, VAR y]"(double %".2", double %".3")
- ret double %".19"
- f_arg_2.endif:
- br label %"exit"
- }
- define double @"fib_master"(i64 %".1", double %".2")
- {
- entry:
- switch i64 %".1", label %"switch_default" [i64 1, label %"fib_arg_1"]
- exit:
- ret double 0xbff0000000000000
- switch_default:
- br label %"exit"
- fib_arg_1:
- %".7" = bitcast [12 x i8]* @"cond_global_fmt" to i8*
- %"cmp_1" = fcmp ueq double %".2", 0x3ff0000000000000
- %".8" = and i1 1, %"cmp_1"
- br i1 %".8", label %"fib_arg_1.if", label %"fib_arg_1.endif"
- fib_arg_1.if:
- %".10" = call double @"fib[CONST 1]"(double 0x3ff0000000000000)
- ret double %".10"
- fib_arg_1.endif:
- %"cmp_2" = fcmp ueq double %".2", 0x4000000000000000
- %".12" = and i1 1, %"cmp_2"
- br i1 %".12", label %"fib_arg_1.endif.if", label %"fib_arg_1.endif.endif"
- fib_arg_1.endif.if:
- %".14" = call double @"fib[CONST 2]"(double 0x4000000000000000)
- ret double %".14"
- fib_arg_1.endif.endif:
- br i1 1, label %"fib_arg_1.endif.endif.if", label %"fib_arg_1.endif.endif.endif"
- fib_arg_1.endif.endif.if:
- %".17" = call double @"fib[VAR x]"(double %".2")
- ret double %".17"
- fib_arg_1.endif.endif.endif:
- br label %"exit"
- }
- define double @"exp_master"(i64 %".1", double %".2", double %".3")
- {
- entry:
- switch i64 %".1", label %"switch_default" [i64 2, label %"exp_arg_2"]
- exit:
- ret double 0xbff0000000000000
- switch_default:
- br label %"exit"
- exp_arg_2:
- %".8" = bitcast [12 x i8]* @"cond_global_fmt" to i8*
- %"cmp_0" = fcmp ueq double %".3", 0x0
- %".9" = and i1 1, %"cmp_0"
- br i1 %".9", label %"exp_arg_2.if", label %"exp_arg_2.endif"
- exp_arg_2.if:
- %".11" = call double @"exp[VAR x, CONST 0]"(double %".2", double 0x0)
- ret double %".11"
- exp_arg_2.endif:
- br i1 1, label %"exp_arg_2.endif.if", label %"exp_arg_2.endif.endif"
- exp_arg_2.endif.if:
- %".14" = call double @"exp[VAR x, VAR y]"(double %".2", double %".3")
- ret double %".14"
- exp_arg_2.endif.endif:
- br label %"exit"
- }
- define double @"square_master"(i64 %".1", double %".2")
- {
- entry:
- switch i64 %".1", label %"switch_default" [i64 1, label %"square_arg_1"]
- exit:
- ret double 0xbff0000000000000
- switch_default:
- br label %"exit"
- square_arg_1:
- %".7" = bitcast [12 x i8]* @"cond_global_fmt" to i8*
- br i1 1, label %"square_arg_1.if", label %"square_arg_1.endif"
- square_arg_1.if:
- %".9" = call double @"square[VAR x]"(double %".2")
- ret double %".9"
- square_arg_1.endif:
- br label %"exit"
- }
- define double @"sqrt_master"(i64 %".1", double %".2", double %".3", double %".4", double %".5")
- {
- entry:
- switch i64 %".1", label %"switch_default" [i64 1, label %"sqrt_arg_1" i64 4, label %"sqrt_arg_4"]
- exit:
- ret double 0xbff0000000000000
- switch_default:
- br label %"exit"
- sqrt_arg_1:
- %".10" = bitcast [12 x i8]* @"cond_global_fmt" to i8*
- br i1 1, label %"sqrt_arg_1.if", label %"sqrt_arg_1.endif"
- sqrt_arg_1.if:
- %".12" = call double @"sqrt[VAR x]"(double %".2")
- ret double %".12"
- sqrt_arg_1.endif:
- br label %"exit"
- sqrt_arg_4:
- %".15" = bitcast [12 x i8]* @"cond_global_fmt" to i8*
- %"cmp_0" = fcmp ueq double %".5", 0x0
- %".16" = and i1 1, %"cmp_0"
- br i1 %".16", label %"sqrt_arg_4.if", label %"sqrt_arg_4.endif"
- sqrt_arg_4.if:
- %".18" = call double @"sqrt[VAR x, VAR s, VAR y, CONST 0]"(double %".2", double %".3", double %".4", double 0x0)
- ret double %".18"
- sqrt_arg_4.endif:
- br i1 1, label %"sqrt_arg_4.endif.if", label %"sqrt_arg_4.endif.endif"
- sqrt_arg_4.endif.if:
- %".21" = call double @"sqrt[VAR x, VAR s, VAR y, VAR n]"(double %".2", double %".3", double %".4", double %".5")
- ret double %".21"
- sqrt_arg_4.endif.endif:
- br label %"exit"
- }
- define double @"f[CONST 0]"(double %".1")
- {
- entry:
- ret double 0x0
- }
- define double @"f[VAR x]"(double %".1")
- {
- entry:
- %".3" = fsub double %".1", 0x3ff0000000000000
- %".4" = call double @"f_master"(i64 1, double %".3", double 0x0)
- %".5" = fadd double %".1", %".4"
- ret double %".5"
- }
- define double @"f[VAR x, VAR y]"(double %".1", double %".2")
- {
- entry:
- %".4" = fadd double %".1", %".2"
- ret double %".4"
- }
- define double @"fib[CONST 1]"(double %".1")
- {
- entry:
- ret double 0x3ff0000000000000
- }
- define double @"fib[CONST 2]"(double %".1")
- {
- entry:
- ret double 0x3ff0000000000000
- }
- define double @"fib[VAR x]"(double %".1")
- {
- entry:
- %".3" = fsub double %".1", 0x3ff0000000000000
- %".4" = call double @"fib_master"(i64 1, double %".3")
- %".5" = fsub double %".1", 0x4000000000000000
- %".6" = call double @"fib_master"(i64 1, double %".5")
- %".7" = fadd double %".4", %".6"
- ret double %".7"
- }
- define double @"exp[VAR x, CONST 0]"(double %".1", double %".2")
- {
- entry:
- ret double 0x3ff0000000000000
- }
- define double @"exp[VAR x, VAR y]"(double %".1", double %".2")
- {
- entry:
- %".4" = fsub double %".2", 0x3ff0000000000000
- %".5" = call double @"exp_master"(i64 2, double %".1", double %".4")
- %".6" = fmul double %".5", %".1"
- ret double %".6"
- }
- define double @"square[VAR x]"(double %".1")
- {
- entry:
- %".3" = fptosi double %".1" to i64
- %".4" = call double @"exp_master"(i64 %".3", double 0x4000000000000000, double 0x0)
- ret double %".4"
- }
- define double @"sqrt[VAR x]"(double %".1")
- {
- entry:
- %".3" = fdiv double %".1", 0x4000000000000000
- %".4" = call double @"sqrt_master"(i64 4, double %".1", double %".3", double 0x3ff0000000000000, double 0x4024000000000000)
- ret double %".4"
- }
- define double @"sqrt[VAR x, VAR s, VAR y, CONST 0]"(double %".1", double %".2", double %".3", double %".4")
- {
- entry:
- ret double %".2"
- }
- define double @"sqrt[VAR x, VAR s, VAR y, VAR n]"(double %".1", double %".2", double %".3", double %".4")
- {
- entry:
- %".6" = fadd double %".2", %".3"
- %".7" = fdiv double %".6", 0x4000000000000000
- %".8" = fadd double %".2", %".3"
- %".9" = fdiv double %".8", 0x4000000000000000
- %".10" = fdiv double %".1", %".9"
- %".11" = fsub double %".4", 0x3ff0000000000000
- %".12" = call double @"sqrt_master"(i64 4, double %".1", double %".7", double %".10", double %".11")
- ret double %".12"
- }
|