target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
target triple = "x86_64-linux-gnu"
!0 = metadata !{metadata !"top"}
!1 = metadata !{metadata !"stack",metadata !0}
!2 = metadata !{metadata !"heap",metadata !0}
!3 = metadata !{metadata !"rx",metadata !2}
!4 = metadata !{metadata !"base",metadata !0}
!5 = metadata !{metadata !"other",metadata !0}
%__stginit_Main_struct = type <{}>
%Main_zdwfactorial_closure_struct = type <{i64}>
@Main_zdwfactorial_closure = global %Main_zdwfactorial_closure_struct<{i64 ptrtoint (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @Main_zdwfactorial_info to i64)}>
%Main_factorial_closure_struct = type <{i64}>
@Main_factorial_closure = global %Main_factorial_closure_struct<{i64 ptrtoint (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @Main_factorial_info to i64)}>
@Main_main2_closure = global %Main_main2_closure_struct<{i64 ptrtoint (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @Main_main2_info to i64), i64 0, i64 0, i64 0}>
%Main_main1_srt_struct = type <{i64, i64, i64}>
%Main_main1_closure_struct = type <{i64, i64}>
@Main_main1_closure = global %Main_main1_closure_struct<{i64 ptrtoint (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @Main_main1_info to i64), i64 0}>
%Main_main_srt_struct = type <{i64}>
%Main_main_closure_struct = type <{i64, i64}>
@Main_main_closure = global %Main_main_closure_struct<{i64 ptrtoint (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @Main_main_info to i64), i64 0}>
%Main_main3_srt_struct = type <{i64, i64}>
%Main_main3_closure_struct = type <{i64, i64}>
@Main_main3_closure = global %Main_main3_closure_struct<{i64 ptrtoint (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @Main_main3_info to i64), i64 0}>
%ZCMain_main_srt_struct = type <{i64}>
%ZCMain_main_closure_struct = type <{i64, i64}>
@ZCMain_main_closure = global %ZCMain_main_closure_struct<{i64 ptrtoint (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @ZCMain_main_info to i64), i64 0}>
%s1Ip_ret_struct = type <{i64, i64}>
define internal cc 10 void @s1Ip_info(i64* noalias nocapture %Base_Arg, i64* noalias nocapture %Sp_Arg, i64* noalias nocapture %Hp_Arg, i64 %R1_Arg, i64 %R2_Arg, i64 %R3_Arg, i64 %R4_Arg, i64 %R5_Arg, i64 %R6_Arg, i64 %SpLim_Arg, float %F1_Arg, float %F2_Arg, float %F3_Arg, float %F4_Arg, double %D1_Arg, double %D2_Arg) align 8 nounwind section "X98A__STRIP,__me1"
{
c1JJ:
%Base_Var = alloca i64*, i32 1
store i64* %Base_Arg, i64** %Base_Var
store i64* %Sp_Arg, i64** %Sp_Var
store i64* %Hp_Arg, i64** %Hp_Var
store i64 %R1_Arg, i64* %R1_Var
store i64 %R2_Arg, i64* %R2_Var
store i64 %R3_Arg, i64* %R3_Var
store i64 %R4_Arg, i64* %R4_Var
store i64 %R5_Arg, i64* %R5_Var
store i64 %R6_Arg, i64* %R6_Var
%SpLim_Var = alloca i64, i32 1
store i64 %SpLim_Arg, i64* %SpLim_Var
%F1_Var = alloca float, i32 1
store float %F1_Arg, float* %F1_Var
%F2_Var = alloca float, i32 1
store float %F2_Arg, float* %F2_Var
%F3_Var = alloca float, i32 1
store float %F3_Arg, float* %F3_Var
%F4_Var = alloca float, i32 1
store float %F4_Arg, float* %F4_Var
%D1_Var = alloca double, i32 1
store double %D1_Arg, double* %D1_Var
%D2_Var = alloca double, i32 1
store double %D2_Arg, double* %D2_Var
%ln1JK = load i64** %Sp_Var
%ln1JL = getelementptr inbounds i64* %ln1JK, i32 1
%ln1JM = bitcast i64* %ln1JL to i64*
%ln1JN = load i64* %ln1JM, !tbaa
!1
%ln1JO = load i64* %R1_Var
%ln1JP = mul i64 %ln1JN, %ln1JO
%ln1JQ = load i64* %lc1Jm
store i64 %ln1JQ, i64* %R1_Var
%ln1JR = load i64** %Sp_Var
%ln1JS = getelementptr inbounds i64* %ln1JR, i32 2
%ln1JT = ptrtoint i64* %ln1JS to i64
%ln1JU = inttoptr i64 %ln1JT to i64*
store i64* %ln1JU, i64** %Sp_Var
%ln1JV = load i64** %Sp_Var
%ln1JW = getelementptr inbounds i64* %ln1JV, i32 0
%ln1JX = bitcast i64* %ln1JW to i64*
%ln1JY = load i64* %ln1JX, !tbaa
!1
%ln1JZ = inttoptr i64 %ln1JY to void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)*
%ln1K0 = load i64** %Base_Var
%ln1K1 = load i64** %Sp_Var
%ln1K2 = load i64** %Hp_Var
%ln1K3 = load i64* %R1_Var
%ln1K4 = load i64* %SpLim_Var
tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* %ln1JZ( i64* %ln1K0, i64* %ln1K1, i64* %ln1K2, i64 %ln1K3, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 %ln1K4, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
ret void
}
%Main_zdwfactorial_info_struct = type <{i64, i64, i64}>
define cc 10 void @Main_zdwfactorial_info(i64* noalias nocapture %Base_Arg, i64* noalias nocapture %Sp_Arg, i64* noalias nocapture %Hp_Arg, i64 %R1_Arg, i64 %R2_Arg, i64 %R3_Arg, i64 %R4_Arg, i64 %R5_Arg, i64 %R6_Arg, i64 %SpLim_Arg, float %F1_Arg, float %F2_Arg, float %F3_Arg, float %F4_Arg, double %D1_Arg, double %D2_Arg) align 8 nounwind section "X98A__STRIP,__me1"
{
c1KV:
%Base_Var = alloca i64*, i32 1
store i64* %Base_Arg, i64** %Base_Var
store i64* %Sp_Arg, i64** %Sp_Var
store i64* %Hp_Arg, i64** %Hp_Var
store i64 %R1_Arg, i64* %R1_Var
store i64 %R2_Arg, i64* %R2_Var
store i64 %R3_Arg, i64* %R3_Var
store i64 %R4_Arg, i64* %R4_Var
store i64 %R5_Arg, i64* %R5_Var
store i64 %R6_Arg, i64* %R6_Var
%SpLim_Var = alloca i64, i32 1
store i64 %SpLim_Arg, i64* %SpLim_Var
%F1_Var = alloca float, i32 1
store float %F1_Arg, float* %F1_Var
%F2_Var = alloca float, i32 1
store float %F2_Arg, float* %F2_Var
%F3_Var = alloca float, i32 1
store float %F3_Arg, float* %F3_Var
%F4_Var = alloca float, i32 1
store float %F4_Arg, float* %F4_Var
%D1_Var = alloca double, i32 1
store double %D1_Arg, double* %D1_Var
%D2_Var = alloca double, i32 1
store double %D2_Arg, double* %D2_Var
%ln1KW = load i64** %Sp_Var
%ln1KX = getelementptr inbounds i64* %ln1KW, i32 -2
%ln1KY = ptrtoint i64* %ln1KX to i64
%ln1KZ = load i64* %SpLim_Var
%ln1L0 = icmp ult
i64 %ln1KY, %ln1KZ
br i1 %ln1L0, label %c1L2, label %n1L3
n1L3:
%ln1L4 = load i64* %R2_Var
%ln1L5 = load i64* %ls1Im
%ln1L6 = icmp ne
i64 %ln1L5, 0
br i1 %ln1L6, label %c1L8, label %n1L9
n1L9:
%ln1La = load i64** %Sp_Var
%ln1Lb = getelementptr inbounds i64* %ln1La, i32 0
%ln1Lc = bitcast i64* %ln1Lb to i64*
%ln1Ld = load i64* %ln1Lc, !tbaa
!1
%ln1Le = inttoptr i64 %ln1Ld to void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)*
%ln1Lf = load i64** %Base_Var
%ln1Lg = load i64** %Sp_Var
%ln1Lh = load i64** %Hp_Var
%ln1Li = load i64* %R1_Var
%ln1Lj = load i64* %SpLim_Var
tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* %ln1Le( i64* %ln1Lf, i64* %ln1Lg, i64* %ln1Lh, i64 %ln1Li, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 %ln1Lj, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
ret void
c1L2:
store i64 %ln1Lk, i64* %R1_Var
%ln1Ll = load i64** %Base_Var
%ln1Lm = getelementptr inbounds i64* %ln1Ll, i32 -1
%ln1Ln = bitcast i64* %ln1Lm to i64*
%ln1Lo = load i64* %ln1Ln, !tbaa
!4
%ln1Lp = inttoptr i64 %ln1Lo to void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)*
%ln1Lq = load i64** %Base_Var
%ln1Lr = load i64** %Sp_Var
%ln1Ls = load i64** %Hp_Var
%ln1Lt = load i64* %R1_Var
%ln1Lu = load i64* %R2_Var
%ln1Lv = load i64* %SpLim_Var
tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* %ln1Lp( i64* %ln1Lq, i64* %ln1Lr, i64* %ln1Ls, i64 %ln1Lt, i64 %ln1Lu, i64 undef, i64 undef, i64 undef, i64 undef, i64 %ln1Lv, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
ret void
c1L8:
%ln1Lw = load i64* %ls1Im
%ln1Lx = sub i64 %ln1Lw, 1
%ln1Ly = load i64* %ls1Im
%ln1Lz = load i64** %Sp_Var
%ln1LA = getelementptr inbounds i64* %ln1Lz, i32 -1
store i64 %ln1Ly, i64* %ln1LA, !tbaa
!1
%ln1LB = load i64* %ls1IE
store i64 %ln1LB, i64* %R2_Var
%ln1LC = ptrtoint void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @s1Ip_info to i64
%ln1LD = load i64** %Sp_Var
%ln1LE = getelementptr inbounds i64* %ln1LD, i32 -2
store i64 %ln1LC, i64* %ln1LE, !tbaa
!1
%ln1LF = load i64** %Sp_Var
%ln1LG = getelementptr inbounds i64* %ln1LF, i32 -2
%ln1LH = ptrtoint i64* %ln1LG to i64
%ln1LI = inttoptr i64 %ln1LH to i64*
store i64* %ln1LI, i64** %Sp_Var
%ln1LJ = load i64** %Base_Var
%ln1LK = load i64** %Sp_Var
%ln1LL = load i64** %Hp_Var
%ln1LM = load i64* %R1_Var
%ln1LN = load i64* %R2_Var
%ln1LO = load i64* %SpLim_Var
tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* @Main_zdwfactorial_info( i64* %ln1LJ, i64* %ln1LK, i64* %ln1LL, i64 %ln1LM, i64 %ln1LN, i64 undef, i64 undef, i64 undef, i64 undef, i64 %ln1LO, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
ret void
}
%s1Iw_ret_struct = type <{i64, i64}>
define internal cc 10 void @s1Iw_info(i64* noalias nocapture %Base_Arg, i64* noalias nocapture %Sp_Arg, i64* noalias nocapture %Hp_Arg, i64 %R1_Arg, i64 %R2_Arg, i64 %R3_Arg, i64 %R4_Arg, i64 %R5_Arg, i64 %R6_Arg, i64 %SpLim_Arg, float %F1_Arg, float %F2_Arg, float %F3_Arg, float %F4_Arg, double %D1_Arg, double %D2_Arg) align 8 nounwind section "X98A__STRIP,__me1"
{
c1MG:
%Base_Var = alloca i64*, i32 1
store i64* %Base_Arg, i64** %Base_Var
store i64* %Sp_Arg, i64** %Sp_Var
store i64* %Hp_Arg, i64** %Hp_Var
store i64 %R1_Arg, i64* %R1_Var
store i64 %R2_Arg, i64* %R2_Var
store i64 %R3_Arg, i64* %R3_Var
store i64 %R4_Arg, i64* %R4_Var
store i64 %R5_Arg, i64* %R5_Var
store i64 %R6_Arg, i64* %R6_Var
%SpLim_Var = alloca i64, i32 1
store i64 %SpLim_Arg, i64* %SpLim_Var
%F1_Var = alloca float, i32 1
store float %F1_Arg, float* %F1_Var
%F2_Var = alloca float, i32 1
store float %F2_Arg, float* %F2_Var
%F3_Var = alloca float, i32 1
store float %F3_Arg, float* %F3_Var
%F4_Var = alloca float, i32 1
store float %F4_Arg, float* %F4_Var
%D1_Var = alloca double, i32 1
store double %D1_Arg, double* %D1_Var
%D2_Var = alloca double, i32 1
store double %D2_Arg, double* %D2_Var
%ln1MH = load i64** %Hp_Var
%ln1MI = getelementptr inbounds i64* %ln1MH, i32 2
%ln1MJ = ptrtoint i64* %ln1MI to i64
%ln1MK = inttoptr i64 %ln1MJ to i64*
store i64* %ln1MK, i64** %Hp_Var
%ln1ML = load i64** %Hp_Var
%ln1MM = ptrtoint i64* %ln1ML to i64
%ln1MN = load i64** %Base_Var
%ln1MO = getelementptr inbounds i64* %ln1MN, i32 18
%ln1MP = bitcast i64* %ln1MO to i64*
%ln1MQ = load i64* %ln1MP, !tbaa
!4
%ln1MR = icmp ugt
i64 %ln1MM, %ln1MQ
br i1 %ln1MR, label %c1MX, label %n1MY
n1MY:
%ln1N0 = load i64** %Hp_Var
%ln1N1 = getelementptr inbounds i64* %ln1N0, i32 -1
store i64 %ln1MZ, i64* %ln1N1, !tbaa
!2
%ln1N2 = load i64* %R1_Var
%ln1N3 = load i64** %Hp_Var
%ln1N4 = getelementptr inbounds i64* %ln1N3, i32 0
store i64 %ln1N2, i64* %ln1N4, !tbaa
!2
%ln1N5 = load i64** %Hp_Var
%ln1N6 = ptrtoint i64* %ln1N5 to i64
%ln1N7 = add i64 %ln1N6, -7
store i64 %ln1N7, i64* %R1_Var
%ln1N8 = load i64** %Sp_Var
%ln1N9 = getelementptr inbounds i64* %ln1N8, i32 1
%ln1Na = ptrtoint i64* %ln1N9 to i64
%ln1Nb = inttoptr i64 %ln1Na to i64*
store i64* %ln1Nb, i64** %Sp_Var
%ln1Nc = load i64** %Sp_Var
%ln1Nd = getelementptr inbounds i64* %ln1Nc, i32 0
%ln1Ne = bitcast i64* %ln1Nd to i64*
%ln1Nf = load i64* %ln1Ne, !tbaa
!1
%ln1Ng = inttoptr i64 %ln1Nf to void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)*
%ln1Nh = load i64** %Base_Var
%ln1Ni = load i64** %Sp_Var
%ln1Nj = load i64** %Hp_Var
%ln1Nk = load i64* %R1_Var
%ln1Nl = load i64* %SpLim_Var
tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* %ln1Ng( i64* %ln1Nh, i64* %ln1Ni, i64* %ln1Nj, i64 %ln1Nk, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 %ln1Nl, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
ret void
c1Nm:
%ln1Nn = load i64** %Base_Var
%ln1No = load i64** %Sp_Var
%ln1Np = load i64** %Hp_Var
%ln1Nq = load i64* %R1_Var
%ln1Nr = load i64* %SpLim_Var
tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* @stg_gc_unbx_r1( i64* %ln1Nn, i64* %ln1No, i64* %ln1Np, i64 %ln1Nq, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 %ln1Nr, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
ret void
c1MX:
%ln1Ns = load i64** %Base_Var
%ln1Nt = getelementptr inbounds i64* %ln1Ns, i32 24
store i64 16, i64* %ln1Nt, !tbaa
!4
br label %c1Nm
}
declare cc 10 void @stg_gc_unbx_r1(i64* noalias nocapture, i64* noalias nocapture, i64* noalias nocapture, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double) align 8
%s1IR_ret_struct = type <{i64, i64}>
define internal cc 10 void @s1IR_info(i64* noalias nocapture %Base_Arg, i64* noalias nocapture %Sp_Arg, i64* noalias nocapture %Hp_Arg, i64 %R1_Arg, i64 %R2_Arg, i64 %R3_Arg, i64 %R4_Arg, i64 %R5_Arg, i64 %R6_Arg, i64 %SpLim_Arg, float %F1_Arg, float %F2_Arg, float %F3_Arg, float %F4_Arg, double %D1_Arg, double %D2_Arg) align 8 nounwind section "X98A__STRIP,__me1"
{
c1NI:
%Base_Var = alloca i64*, i32 1
store i64* %Base_Arg, i64** %Base_Var
store i64* %Sp_Arg, i64** %Sp_Var
store i64* %Hp_Arg, i64** %Hp_Var
store i64 %R1_Arg, i64* %R1_Var
store i64 %R2_Arg, i64* %R2_Var
store i64 %R3_Arg, i64* %R3_Var
store i64 %R4_Arg, i64* %R4_Var
store i64 %R5_Arg, i64* %R5_Var
store i64 %R6_Arg, i64* %R6_Var
%SpLim_Var = alloca i64, i32 1
store i64 %SpLim_Arg, i64* %SpLim_Var
%F1_Var = alloca float, i32 1
store float %F1_Arg, float* %F1_Var
%F2_Var = alloca float, i32 1
store float %F2_Arg, float* %F2_Var
%F3_Var = alloca float, i32 1
store float %F3_Arg, float* %F3_Var
%F4_Var = alloca float, i32 1
store float %F4_Arg, float* %F4_Var
%D1_Var = alloca double, i32 1
store double %D1_Arg, double* %D1_Var
%D2_Var = alloca double, i32 1
store double %D2_Arg, double* %D2_Var
%ln1NJ = load i64* %R1_Var
%ln1NK = add i64 %ln1NJ, 7
%ln1NL = inttoptr i64 %ln1NK to i64*
%ln1NM = load i64* %ln1NL, !tbaa
!3
store i64 %ln1NM, i64* %R2_Var
%ln1NN = ptrtoint void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @s1Iw_info to i64
%ln1NO = load i64** %Sp_Var
%ln1NP = getelementptr inbounds i64* %ln1NO, i32 0
store i64 %ln1NN, i64* %ln1NP, !tbaa
!1
%ln1NQ = load i64** %Base_Var
%ln1NR = load i64** %Sp_Var
%ln1NS = load i64** %Hp_Var
%ln1NT = load i64* %R1_Var
%ln1NU = load i64* %R2_Var
%ln1NV = load i64* %SpLim_Var
tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* @Main_zdwfactorial_info( i64* %ln1NQ, i64* %ln1NR, i64* %ln1NS, i64 %ln1NT, i64 %ln1NU, i64 undef, i64 undef, i64 undef, i64 undef, i64 %ln1NV, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
ret void
}
%Main_factorial_info_struct = type <{i64, i64, i64}>
define cc 10 void @Main_factorial_info(i64* noalias nocapture %Base_Arg, i64* noalias nocapture %Sp_Arg, i64* noalias nocapture %Hp_Arg, i64 %R1_Arg, i64 %R2_Arg, i64 %R3_Arg, i64 %R4_Arg, i64 %R5_Arg, i64 %R6_Arg, i64 %SpLim_Arg, float %F1_Arg, float %F2_Arg, float %F3_Arg, float %F4_Arg, double %D1_Arg, double %D2_Arg) align 8 nounwind section "X98A__STRIP,__me1"
{
c1OF:
%Base_Var = alloca i64*, i32 1
store i64* %Base_Arg, i64** %Base_Var
store i64* %Sp_Arg, i64** %Sp_Var
store i64* %Hp_Arg, i64** %Hp_Var
store i64 %R1_Arg, i64* %R1_Var
store i64 %R2_Arg, i64* %R2_Var
store i64 %R3_Arg, i64* %R3_Var
store i64 %R4_Arg, i64* %R4_Var
store i64 %R5_Arg, i64* %R5_Var
store i64 %R6_Arg, i64* %R6_Var
%SpLim_Var = alloca i64, i32 1
store i64 %SpLim_Arg, i64* %SpLim_Var
%F1_Var = alloca float, i32 1
store float %F1_Arg, float* %F1_Var
%F2_Var = alloca float, i32 1
store float %F2_Arg, float* %F2_Var
%F3_Var = alloca float, i32 1
store float %F3_Arg, float* %F3_Var
%F4_Var = alloca float, i32 1
store float %F4_Arg, float* %F4_Var
%D1_Var = alloca double, i32 1
store double %D1_Arg, double* %D1_Var
%D2_Var = alloca double, i32 1
store double %D2_Arg, double* %D2_Var
%ln1OG = load i64** %Sp_Var
%ln1OH = getelementptr inbounds i64* %ln1OG, i32 -1
%ln1OI = ptrtoint i64* %ln1OH to i64
%ln1OJ = load i64* %SpLim_Var
%ln1OK = icmp ult
i64 %ln1OI, %ln1OJ
br i1 %ln1OK, label %c1OM, label %n1ON
n1ON:
%ln1OO = load i64* %R2_Var
store i64 %ln1OO, i64* %R1_Var
%ln1OP = ptrtoint void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @s1IR_info to i64
%ln1OQ = load i64** %Sp_Var
%ln1OR = getelementptr inbounds i64* %ln1OQ, i32 -1
store i64 %ln1OP, i64* %ln1OR, !tbaa
!1
%ln1OS = load i64** %Sp_Var
%ln1OT = getelementptr inbounds i64* %ln1OS, i32 -1
%ln1OU = ptrtoint i64* %ln1OT to i64
%ln1OV = inttoptr i64 %ln1OU to i64*
store i64* %ln1OV, i64** %Sp_Var
%ln1OW = load i64* %R1_Var
%ln1OX = and i64 %ln1OW, 7
%ln1OY = icmp ne
i64 %ln1OX, 0
br i1 %ln1OY, label %c1P1, label %n1P2
n1P2:
%ln1P3 = load i64* %R1_Var
%ln1P4 = inttoptr i64 %ln1P3 to i64*
%ln1P5 = load i64* %ln1P4, !tbaa
!3
%ln1P6 = inttoptr i64 %ln1P5 to void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)*
%ln1P7 = load i64** %Base_Var
%ln1P8 = load i64** %Sp_Var
%ln1P9 = load i64** %Hp_Var
%ln1Pa = load i64* %R1_Var
%ln1Pb = load i64* %SpLim_Var
tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* %ln1P6( i64* %ln1P7, i64* %ln1P8, i64* %ln1P9, i64 %ln1Pa, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 %ln1Pb, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
ret void
c1OM:
store i64 %ln1Pc, i64* %R1_Var
%ln1Pd = load i64** %Base_Var
%ln1Pe = getelementptr inbounds i64* %ln1Pd, i32 -1
%ln1Pf = bitcast i64* %ln1Pe to i64*
%ln1Pg = load i64* %ln1Pf, !tbaa
!4
%ln1Ph = inttoptr i64 %ln1Pg to void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)*
%ln1Pi = load i64** %Base_Var
%ln1Pj = load i64** %Sp_Var
%ln1Pk = load i64** %Hp_Var
%ln1Pl = load i64* %R1_Var
%ln1Pm = load i64* %R2_Var
%ln1Pn = load i64* %SpLim_Var
tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* %ln1Ph( i64* %ln1Pi, i64* %ln1Pj, i64* %ln1Pk, i64 %ln1Pl, i64 %ln1Pm, i64 undef, i64 undef, i64 undef, i64 undef, i64 %ln1Pn, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
ret void
c1P1:
%ln1Po = load i64** %Base_Var
%ln1Pp = load i64** %Sp_Var
%ln1Pq = load i64** %Hp_Var
%ln1Pr = load i64* %R1_Var
%ln1Ps = load i64* %SpLim_Var
tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* @s1IR_info( i64* %ln1Po, i64* %ln1Pp, i64* %ln1Pq, i64 %ln1Pr, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 %ln1Ps, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
ret void
}
%s1Iy_ret_struct = type <{i64, i64}>
define internal cc 10 void @s1Iy_info(i64* noalias nocapture %Base_Arg, i64* noalias nocapture %Sp_Arg, i64* noalias nocapture %Hp_Arg, i64 %R1_Arg, i64 %R2_Arg, i64 %R3_Arg, i64 %R4_Arg, i64 %R5_Arg, i64 %R6_Arg, i64 %SpLim_Arg, float %F1_Arg, float %F2_Arg, float %F3_Arg, float %F4_Arg, double %D1_Arg, double %D2_Arg) align 8 nounwind section "X98A__STRIP,__me1"
{
c1PR:
%Base_Var = alloca i64*, i32 1
store i64* %Base_Arg, i64** %Base_Var
store i64* %Sp_Arg, i64** %Sp_Var
store i64* %Hp_Arg, i64** %Hp_Var
store i64 %R1_Arg, i64* %R1_Var
store i64 %R2_Arg, i64* %R2_Var
store i64 %R3_Arg, i64* %R3_Var
store i64 %R4_Arg, i64* %R4_Var
store i64 %R5_Arg, i64* %R5_Var
store i64 %R6_Arg, i64* %R6_Var
%SpLim_Var = alloca i64, i32 1
store i64 %SpLim_Arg, i64* %SpLim_Var
%F1_Var = alloca float, i32 1
store float %F1_Arg, float* %F1_Var
%F2_Var = alloca float, i32 1
store float %F2_Arg, float* %F2_Var
%F3_Var = alloca float, i32 1
store float %F3_Arg, float* %F3_Var
%F4_Var = alloca float, i32 1
store float %F4_Arg, float* %F4_Var
%D1_Var = alloca double, i32 1
store double %D1_Arg, double* %D1_Var
%D2_Var = alloca double, i32 1
store double %D2_Arg, double* %D2_Var
%ln1PS = load i64* %R1_Var
store i64 %ln1PS, i64* %R3_Var
%ln1PU = add i64 %ln1PT, 1
store i64 %ln1PU, i64* %R4_Var
%ln1PV = load i64** %Sp_Var
%ln1PW = getelementptr inbounds i64* %ln1PV, i32 1
%ln1PX = ptrtoint i64* %ln1PW to i64
%ln1PY = inttoptr i64 %ln1PX to i64*
store i64* %ln1PY, i64** %Sp_Var
%ln1PZ = load i64** %Base_Var
%ln1Q0 = load i64** %Sp_Var
%ln1Q1 = load i64** %Hp_Var
%ln1Q2 = load i64* %R1_Var
%ln1Q3 = load i64* %R2_Var
%ln1Q4 = load i64* %R3_Var
%ln1Q5 = load i64* %R4_Var
%ln1Q6 = load i64* %SpLim_Var
tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* @base_GHCziShow_zdwshowSignedInt_info( i64* %ln1PZ, i64* %ln1Q0, i64* %ln1Q1, i64 %ln1Q2, i64 %ln1Q3, i64 %ln1Q4, i64 %ln1Q5, i64 undef, i64 undef, i64 %ln1Q6, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
ret void
}
declare cc 10 void @base_GHCziShow_zdwshowSignedInt_info(i64* noalias nocapture, i64* noalias nocapture, i64* noalias nocapture, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double) align 8
%Main_main2_info_struct = type <{i64, i64}>
define cc 10 void @Main_main2_info(i64* noalias nocapture %Base_Arg, i64* noalias nocapture %Sp_Arg, i64* noalias nocapture %Hp_Arg, i64 %R1_Arg, i64 %R2_Arg, i64 %R3_Arg, i64 %R4_Arg, i64 %R5_Arg, i64 %R6_Arg, i64 %SpLim_Arg, float %F1_Arg, float %F2_Arg, float %F3_Arg, float %F4_Arg, double %D1_Arg, double %D2_Arg) align 8 nounwind section "X98A__STRIP,__me1"
{
c1Ru:
%Base_Var = alloca i64*, i32 1
store i64* %Base_Arg, i64** %Base_Var
store i64* %Sp_Arg, i64** %Sp_Var
store i64* %Hp_Arg, i64** %Hp_Var
store i64 %R1_Arg, i64* %R1_Var
store i64 %R2_Arg, i64* %R2_Var
store i64 %R3_Arg, i64* %R3_Var
store i64 %R4_Arg, i64* %R4_Var
store i64 %R5_Arg, i64* %R5_Var
store i64 %R6_Arg, i64* %R6_Var
%SpLim_Var = alloca i64, i32 1
store i64 %SpLim_Arg, i64* %SpLim_Var
%F1_Var = alloca float, i32 1
store float %F1_Arg, float* %F1_Var
%F2_Var = alloca float, i32 1
store float %F2_Arg, float* %F2_Var
%F3_Var = alloca float, i32 1
store float %F3_Arg, float* %F3_Var
%F4_Var = alloca float, i32 1
store float %F4_Arg, float* %F4_Var
%D1_Var = alloca double, i32 1
store double %D1_Arg, double* %D1_Var
%D2_Var = alloca double, i32 1
store double %D2_Arg, double* %D2_Var
%ln1Rv = load i64** %Sp_Var
%ln1Rw = getelementptr inbounds i64* %ln1Rv, i32 -3
%ln1Rx = ptrtoint i64* %ln1Rw to i64
%ln1Ry = load i64* %SpLim_Var
%ln1Rz = icmp ult
i64 %ln1Rx, %ln1Ry
br i1 %ln1Rz, label %c1RB, label %n1RC
n1RC:
%ln1RD = load i64** %Hp_Var
%ln1RE = getelementptr inbounds i64* %ln1RD, i32 2
%ln1RF = ptrtoint i64* %ln1RE to i64
%ln1RG = inttoptr i64 %ln1RF to i64*
store i64* %ln1RG, i64** %Hp_Var
%ln1RH = load i64** %Hp_Var
%ln1RI = ptrtoint i64* %ln1RH to i64
%ln1RJ = load i64** %Base_Var
%ln1RK = getelementptr inbounds i64* %ln1RJ, i32 18
%ln1RL = bitcast i64* %ln1RK to i64*
%ln1RM = load i64* %ln1RL, !tbaa
!4
%ln1RN = icmp ugt
i64 %ln1RI, %ln1RM
br i1 %ln1RN, label %c1RP, label %n1RQ
n1RQ:
%ln1RS = load i64** %Hp_Var
%ln1RT = getelementptr inbounds i64* %ln1RS, i32 -1
store i64 %ln1RR, i64* %ln1RT, !tbaa
!2
%ln1RU = load i64** %Base_Var
%ln1RV = getelementptr inbounds i64* %ln1RU, i32 20
%ln1RW = bitcast i64* %ln1RV to i64*
%ln1RX = load i64* %ln1RW, !tbaa
!4
%ln1RY = load i64** %Hp_Var
%ln1RZ = getelementptr inbounds i64* %ln1RY, i32 0
store i64 %ln1RX, i64* %ln1RZ, !tbaa
!2
%ln1S0 = load i64** %Base_Var
%ln1S1 = ptrtoint i64* %ln1S0 to i64
%ln1S2 = inttoptr i64 %ln1S1 to i8*
%ln1S3 = load i64* %R1_Var
%ln1S4 = inttoptr i64 %ln1S3 to i8*
%ln1S5 = load i64** %Hp_Var
%ln1S6 = getelementptr inbounds i64* %ln1S5, i32 -1
%ln1S7 = ptrtoint i64* %ln1S6 to i64
%ln1S8 = inttoptr i64 %ln1S7 to i8*
store float undef, float* %F1_Var
store float undef, float* %F2_Var
store float undef, float* %F3_Var
store float undef, float* %F4_Var
store double undef, double* %D1_Var
store double undef, double* %D2_Var
%ln1Sa = load i64* %lc1QH
%ln1Sb = icmp eq
i64 %ln1Sa, 0
br i1 %ln1Sb, label %c1Sc, label %n1Sd
n1Sd:
br label %c1Se
c1RB:
%ln1Sf = load i64** %Base_Var
%ln1Sg = getelementptr inbounds i64* %ln1Sf, i32 -2
%ln1Sh = bitcast i64* %ln1Sg to i64*
%ln1Si = load i64* %ln1Sh, !tbaa
!4
%ln1Sj = inttoptr i64 %ln1Si to void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)*
%ln1Sk = load i64** %Base_Var
%ln1Sl = load i64** %Sp_Var
%ln1Sm = load i64** %Hp_Var
%ln1Sn = load i64* %R1_Var
%ln1So = load i64* %SpLim_Var
tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* %ln1Sj( i64* %ln1Sk, i64* %ln1Sl, i64* %ln1Sm, i64 %ln1Sn, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 %ln1So, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
ret void
c1RP:
%ln1Sp = load i64** %Base_Var
%ln1Sq = getelementptr inbounds i64* %ln1Sp, i32 24
store i64 16, i64* %ln1Sq, !tbaa
!4
br label %c1RB
c1Sc:
%ln1Sr = load i64* %R1_Var
%ln1Ss = inttoptr i64 %ln1Sr to i64*
%ln1St = load i64* %ln1Ss, !tbaa
!3
%ln1Su = inttoptr i64 %ln1St to void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)*
%ln1Sv = load i64** %Base_Var
%ln1Sw = load i64** %Sp_Var
%ln1Sx = load i64** %Hp_Var
%ln1Sy = load i64* %R1_Var
%ln1Sz = load i64* %SpLim_Var
tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* %ln1Su( i64* %ln1Sv, i64* %ln1Sw, i64* %ln1Sx, i64 %ln1Sy, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 %ln1Sz, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
ret void
c1Se:
%ln1SB = load i64** %Sp_Var
%ln1SC = getelementptr inbounds i64* %ln1SB, i32 -2
store i64 %ln1SA, i64* %ln1SC, !tbaa
!1
%ln1SD = load i64** %Hp_Var
%ln1SE = getelementptr inbounds i64* %ln1SD, i32 -1
%ln1SF = ptrtoint i64* %ln1SE to i64
%ln1SG = load i64** %Sp_Var
%ln1SH = getelementptr inbounds i64* %ln1SG, i32 -1
store i64 %ln1SF, i64* %ln1SH, !tbaa
!1
%ln1SI = ptrtoint void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @s1Iy_info to i64
%ln1SJ = load i64** %Sp_Var
%ln1SK = getelementptr inbounds i64* %ln1SJ, i32 -3
store i64 %ln1SI, i64* %ln1SK, !tbaa
!1
%ln1SL = load i64** %Sp_Var
%ln1SM = getelementptr inbounds i64* %ln1SL, i32 -3
%ln1SN = ptrtoint i64* %ln1SM to i64
%ln1SO = inttoptr i64 %ln1SN to i64*
store i64* %ln1SO, i64** %Sp_Var
%ln1SP = load i64** %Base_Var
%ln1SQ = load i64** %Sp_Var
%ln1SR = load i64** %Hp_Var
%ln1SS = load i64* %R1_Var
%ln1ST = load i64* %R2_Var
%ln1SU = load i64* %SpLim_Var
tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* @Main_zdwfactorial_info( i64* %ln1SP, i64* %ln1SQ, i64* %ln1SR, i64 %ln1SS, i64 %ln1ST, i64 undef, i64 undef, i64 undef, i64 undef, i64 %ln1SU, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
ret void
}
@Main_main1_info_itable = constant %Main_main1_info_struct<{i64 add (i64 sub (i64 ptrtoint (%Main_main1_srt_struct* @Main_main1_srt to i64),i64 ptrtoint (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @Main_main1_info to i64)),i64 0), i64 4294967299, i64 0, i64 30064771087}>, section "X98A__STRIP,__me0", align 8
define cc 10 void @Main_main1_info(i64* noalias nocapture %Base_Arg, i64* noalias nocapture %Sp_Arg, i64* noalias nocapture %Hp_Arg, i64 %R1_Arg, i64 %R2_Arg, i64 %R3_Arg, i64 %R4_Arg, i64 %R5_Arg, i64 %R6_Arg, i64 %SpLim_Arg, float %F1_Arg, float %F2_Arg, float %F3_Arg, float %F4_Arg, double %D1_Arg, double %D2_Arg) align 8 nounwind section "X98A__STRIP,__me1"
{
c1Tb:
%Base_Var = alloca i64*, i32 1
store i64* %Base_Arg, i64** %Base_Var
store i64* %Sp_Arg, i64** %Sp_Var
store i64* %Hp_Arg, i64** %Hp_Var
store i64 %R1_Arg, i64* %R1_Var
store i64 %R2_Arg, i64* %R2_Var
store i64 %R3_Arg, i64* %R3_Var
store i64 %R4_Arg, i64* %R4_Var
store i64 %R5_Arg, i64* %R5_Var
store i64 %R6_Arg, i64* %R6_Var
%SpLim_Var = alloca i64, i32 1
store i64 %SpLim_Arg, i64* %SpLim_Var
%F1_Var = alloca float, i32 1
store float %F1_Arg, float* %F1_Var
%F2_Var = alloca float, i32 1
store float %F2_Arg, float* %F2_Var
%F3_Var = alloca float, i32 1
store float %F3_Arg, float* %F3_Var
%F4_Var = alloca float, i32 1
store float %F4_Arg, float* %F4_Var
%D1_Var = alloca double, i32 1
store double %D1_Arg, double* %D1_Var
%D2_Var = alloca double, i32 1
store double %D2_Arg, double* %D2_Var
store i64 %ln1Tc, i64* %R2_Var
store i64 %ln1Td, i64* %R3_Var
%ln1Tf = add i64 %ln1Te, 2
store i64 %ln1Tf, i64* %R4_Var
%ln1Tg = load i64** %Base_Var
%ln1Th = load i64** %Sp_Var
%ln1Ti = load i64** %Hp_Var
%ln1Tj = load i64* %R1_Var
%ln1Tk = load i64* %R2_Var
%ln1Tl = load i64* %R3_Var
%ln1Tm = load i64* %R4_Var
%ln1Tn = load i64* %SpLim_Var
tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* @base_GHCziIOziHandleziText_hPutStr2_info( i64* %ln1Tg, i64* %ln1Th, i64* %ln1Ti, i64 %ln1Tj, i64 %ln1Tk, i64 %ln1Tl, i64 %ln1Tm, i64 undef, i64 undef, i64 %ln1Tn, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
ret void
}
declare cc 10 void @base_GHCziIOziHandleziText_hPutStr2_info(i64* noalias nocapture, i64* noalias nocapture, i64* noalias nocapture, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double) align 8
@Main_main_info_itable = constant %Main_main_info_struct<{i64 add (i64 sub (i64 ptrtoint (%Main_main_srt_struct* @Main_main_srt to i64),i64 ptrtoint (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @Main_main_info to i64)),i64 0), i64 4294967299, i64 0, i64 4294967311}>, section "X98A__STRIP,__me0", align 8
define cc 10 void @Main_main_info(i64* noalias nocapture %Base_Arg, i64* noalias nocapture %Sp_Arg, i64* noalias nocapture %Hp_Arg, i64 %R1_Arg, i64 %R2_Arg, i64 %R3_Arg, i64 %R4_Arg, i64 %R5_Arg, i64 %R6_Arg, i64 %SpLim_Arg, float %F1_Arg, float %F2_Arg, float %F3_Arg, float %F4_Arg, double %D1_Arg, double %D2_Arg) align 8 nounwind section "X98A__STRIP,__me1"
{
c1Tx:
%Base_Var = alloca i64*, i32 1
store i64* %Base_Arg, i64** %Base_Var
store i64* %Sp_Arg, i64** %Sp_Var
store i64* %Hp_Arg, i64** %Hp_Var
store i64 %R1_Arg, i64* %R1_Var
store i64 %R2_Arg, i64* %R2_Var
store i64 %R3_Arg, i64* %R3_Var
store i64 %R4_Arg, i64* %R4_Var
store i64 %R5_Arg, i64* %R5_Var
store i64 %R6_Arg, i64* %R6_Var
%SpLim_Var = alloca i64, i32 1
store i64 %SpLim_Arg, i64* %SpLim_Var
%F1_Var = alloca float, i32 1
store float %F1_Arg, float* %F1_Var
%F2_Var = alloca float, i32 1
store float %F2_Arg, float* %F2_Var
%F3_Var = alloca float, i32 1
store float %F3_Arg, float* %F3_Var
%F4_Var = alloca float, i32 1
store float %F4_Arg, float* %F4_Var
%D1_Var = alloca double, i32 1
store double %D1_Arg, double* %D1_Var
%D2_Var = alloca double, i32 1
store double %D2_Arg, double* %D2_Var
%ln1Ty = load i64** %Base_Var
%ln1Tz = load i64** %Sp_Var
%ln1TA = load i64** %Hp_Var
%ln1TB = load i64* %R1_Var
%ln1TC = load i64* %SpLim_Var
tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* @Main_main1_info( i64* %ln1Ty, i64* %ln1Tz, i64* %ln1TA, i64 %ln1TB, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 %ln1TC, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
ret void
}
@Main_main3_info_itable = constant %Main_main3_info_struct<{i64 add (i64 sub (i64 ptrtoint (%Main_main3_srt_struct* @Main_main3_srt to i64),i64 ptrtoint (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @Main_main3_info to i64)),i64 0), i64 4294967299, i64 0, i64 12884901903}>, section "X98A__STRIP,__me0", align 8
define cc 10 void @Main_main3_info(i64* noalias nocapture %Base_Arg, i64* noalias nocapture %Sp_Arg, i64* noalias nocapture %Hp_Arg, i64 %R1_Arg, i64 %R2_Arg, i64 %R3_Arg, i64 %R4_Arg, i64 %R5_Arg, i64 %R6_Arg, i64 %SpLim_Arg, float %F1_Arg, float %F2_Arg, float %F3_Arg, float %F4_Arg, double %D1_Arg, double %D2_Arg) align 8 nounwind section "X98A__STRIP,__me1"
{
c1TP:
%Base_Var = alloca i64*, i32 1
store i64* %Base_Arg, i64** %Base_Var
store i64* %Sp_Arg, i64** %Sp_Var
store i64* %Hp_Arg, i64** %Hp_Var
store i64 %R1_Arg, i64* %R1_Var
store i64 %R2_Arg, i64* %R2_Var
store i64 %R3_Arg, i64* %R3_Var
store i64 %R4_Arg, i64* %R4_Var
store i64 %R5_Arg, i64* %R5_Var
store i64 %R6_Arg, i64* %R6_Var
%SpLim_Var = alloca i64, i32 1
store i64 %SpLim_Arg, i64* %SpLim_Var
%F1_Var = alloca float, i32 1
store float %F1_Arg, float* %F1_Var
%F2_Var = alloca float, i32 1
store float %F2_Arg, float* %F2_Var
%F3_Var = alloca float, i32 1
store float %F3_Arg, float* %F3_Var
%F4_Var = alloca float, i32 1
store float %F4_Arg, float* %F4_Var
%D1_Var = alloca double, i32 1
store double %D1_Arg, double* %D1_Var
%D2_Var = alloca double, i32 1
store double %D2_Arg, double* %D2_Var
%ln1TR = add i64 %ln1TQ, 1
store i64 %ln1TR, i64* %R2_Var
%ln1TS = load i64** %Base_Var
%ln1TT = load i64** %Sp_Var
%ln1TU = load i64** %Hp_Var
%ln1TV = load i64* %R1_Var
%ln1TW = load i64* %R2_Var
%ln1TX = load i64* %SpLim_Var
tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* @base_GHCziTopHandler_runMainIO1_info( i64* %ln1TS, i64* %ln1TT, i64* %ln1TU, i64 %ln1TV, i64 %ln1TW, i64 undef, i64 undef, i64 undef, i64 undef, i64 %ln1TX, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
ret void
}
declare cc 10 void @base_GHCziTopHandler_runMainIO1_info(i64* noalias nocapture, i64* noalias nocapture, i64* noalias nocapture, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double) align 8
@ZCMain_main_info_itable = constant %ZCMain_main_info_struct<{i64 add (i64 sub (i64 ptrtoint (%ZCMain_main_srt_struct* @ZCMain_main_srt to i64),i64 ptrtoint (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64, float, float, float, float, double, double)* @ZCMain_main_info to i64)),i64 0), i64 4294967299, i64 0, i64 4294967311}>, section "X98A__STRIP,__me0", align 8
define cc 10 void @ZCMain_main_info(i64* noalias nocapture %Base_Arg, i64* noalias nocapture %Sp_Arg, i64* noalias nocapture %Hp_Arg, i64 %R1_Arg, i64 %R2_Arg, i64 %R3_Arg, i64 %R4_Arg, i64 %R5_Arg, i64 %R6_Arg, i64 %SpLim_Arg, float %F1_Arg, float %F2_Arg, float %F3_Arg, float %F4_Arg, double %D1_Arg, double %D2_Arg) align 8 nounwind section "X98A__STRIP,__me1"
{
c1U7:
%Base_Var = alloca i64*, i32 1
store i64* %Base_Arg, i64** %Base_Var
store i64* %Sp_Arg, i64** %Sp_Var
store i64* %Hp_Arg, i64** %Hp_Var
store i64 %R1_Arg, i64* %R1_Var
store i64 %R2_Arg, i64* %R2_Var
store i64 %R3_Arg, i64* %R3_Var
store i64 %R4_Arg, i64* %R4_Var
store i64 %R5_Arg, i64* %R5_Var
store i64 %R6_Arg, i64* %R6_Var
%SpLim_Var = alloca i64, i32 1
store i64 %SpLim_Arg, i64* %SpLim_Var
%F1_Var = alloca float, i32 1
store float %F1_Arg, float* %F1_Var
%F2_Var = alloca float, i32 1
store float %F2_Arg, float* %F2_Var
%F3_Var = alloca float, i32 1
store float %F3_Arg, float* %F3_Var
%F4_Var = alloca float, i32 1
store float %F4_Arg, float* %F4_Var
%D1_Var = alloca double, i32 1
store double %D1_Arg, double* %D1_Var
%D2_Var = alloca double, i32 1
store double %D2_Arg, double* %D2_Var
%ln1U8 = load i64** %Base_Var
%ln1U9 = load i64** %Sp_Var
%ln1Ua = load i64** %Hp_Var
%ln1Ub = load i64* %R1_Var
%ln1Uc = load i64* %SpLim_Var
tail call cc 10 void (i64*,i64*,i64*,i64,i64,i64,i64,i64,i64,i64,float,float,float,float,double,double)* @Main_main3_info( i64* %ln1U8, i64* %ln1U9, i64* %ln1Ua, i64 %ln1Ub, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 %ln1Uc, float undef, float undef, float undef, float undef, double undef, double undef ) nounwind
ret void
}