target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-apple-darwin"
!0 = !{!"root"}
!1 = !{!"top", !0}
!2 = !{!"stack", !1}
!3 = !{!"heap", !1}
!4 = !{!"rx", !3}
!5 = !{!"base", !1}
%S1dD_srt_struct = type <{i64}>
%c1dz_str_struct = type <{[2 x
i8]}>
@s1ds_closure$def = internal global %s1ds_closure_struct<{i64 ptrtoint (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64)* @s1ds_info$def to i64), i64 0, i64 0, i64 0}>
@s1ds_info = internal alias
i8, bitcast (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64)* @s1ds_info$def to i8*)
define internal ghccc
void @s1ds_info$def(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) align 8 nounwind prefix
<{i64, i64, i64}><{i64 add (i64 sub (i64 ptrtoint (%S1dD_srt_struct* @S1dD_srt$def to i64),i64 ptrtoint (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64)* @s1ds_info$def to i64)),i64 0), i64 0, i64 4294967317}>
{
c1dA:
%F1_Var = alloca float, i32 1
store float undef, float* %F1_Var
%D1_Var = alloca double, i32 1
store double undef, double* %D1_Var
%F2_Var = alloca float, i32 1
store float undef, float* %F2_Var
%D2_Var = alloca double, i32 1
store double undef, double* %D2_Var
%F3_Var = alloca float, i32 1
store float undef, float* %F3_Var
%D3_Var = alloca double, i32 1
store double undef, double* %D3_Var
%F4_Var = alloca float, i32 1
store float undef, float* %F4_Var
%D4_Var = alloca double, i32 1
store double undef, double* %D4_Var
%F5_Var = alloca float, i32 1
store float undef, float* %F5_Var
%D5_Var = alloca double, i32 1
store double undef, double* %D5_Var
%F6_Var = alloca float, i32 1
store float undef, float* %F6_Var
%D6_Var = alloca double, i32 1
store double undef, double* %D6_Var
store i64 %R1_Arg, i64* %R1_Var
store i64* %Sp_Arg, i64** %Sp_Var
%ln1dE = load i64, i64* %R1_Var
%ln1dF = load i64*, i64** %Sp_Var
%ln1dG = getelementptr inbounds i64, i64* %ln1dF, i32 1
%ln1dH = ptrtoint i64* %ln1dG to i64
%ln1dI = sub i64 %ln1dH, 24
%ln1dJ = icmp ult
i64 %ln1dI, %SpLim_Arg
br i1 %ln1dL, label %c1dB, label %c1dC
c1dC:
%ln1dM = ptrtoint i64* %Base_Arg to i64
%ln1dN = inttoptr i64 %ln1dM to i8*
%ln1dO = load i64, i64* %ls1ds
%ln1dP = inttoptr i64 %ln1dO to i8*
store float undef, float* %F1_Var
store double undef, double* %D1_Var
store float undef, float* %F2_Var
store double undef, double* %D2_Var
store float undef, float* %F3_Var
store double undef, double* %D3_Var
store float undef, float* %F4_Var
store double undef, double* %D4_Var
store float undef, float* %F5_Var
store double undef, double* %D5_Var
store float undef, float* %F6_Var
store double undef, double* %D6_Var
%ln1dR = call ccc i8* (i8*, i8*) %ln1dQ( i8* %ln1dN, i8* %ln1dP ) nounwind
%ln1dS = ptrtoint i8* %ln1dR to i64
%ln1dT = load i64, i64* %lc1dw
%ln1dU = icmp eq
i64 %ln1dT, 0
br i1 %ln1dU, label %c1dy, label %c1dx
c1dx:
%ln1dV = load i64*, i64** %Sp_Var
%ln1dX = getelementptr inbounds i64, i64* %ln1dV, i32 -2
store i64 %ln1dW, i64* %ln1dX, !tbaa
!2
%ln1dZ = load i64, i64* %lc1dw
%ln1dY = load i64*, i64** %Sp_Var
%ln1e0 = getelementptr inbounds i64, i64* %ln1dY, i32 -1
store i64 %ln1dZ, i64* %ln1e0, !tbaa
!2
store i64 %ln1e1, i64* %R2_Var
store i64 %ln1e2, i64* %R1_Var
%ln1e3 = load i64*, i64** %Sp_Var
%ln1e4 = getelementptr inbounds i64, i64* %ln1e3, i32 -2
%ln1e5 = ptrtoint i64* %ln1e4 to i64
%ln1e6 = inttoptr i64 %ln1e5 to i64*
store i64* %ln1e6, i64** %Sp_Var
%ln1e8 = load i64*, i64** %Sp_Var
%ln1e9 = load i64, i64* %R1_Var
%ln1ea = load i64, i64* %R2_Var
tail call ghccc
void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64) %ln1e7( i64* %Base_Arg, i64* %ln1e8, i64* %Hp_Arg, i64 %ln1e9, i64 %ln1ea, i64 undef, i64 undef, i64 undef, i64 undef, i64 %SpLim_Arg ) nounwind
ret void
c1dy:
%ln1eb = load i64, i64* %ls1ds
%ln1ec = inttoptr i64 %ln1eb to i64*
%ln1ed = load i64, i64* %ln1ec, !tbaa
!1
%ln1ef = load i64*, i64** %Sp_Var
%ln1eg = load i64, i64* %R1_Var
tail call ghccc
void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64) %ln1ee( i64* %Base_Arg, i64* %ln1ef, i64* %Hp_Arg, i64 %ln1eg, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 %SpLim_Arg ) nounwind
ret void
c1dB:
%ln1eh = load i64, i64* %ls1ds
store i64 %ln1eh, i64* %R1_Var
%ln1ei = getelementptr inbounds i64, i64* %Base_Arg, i32 -2
%ln1ej = bitcast i64* %ln1ei to i64*
%ln1ek = load i64, i64* %ln1ej, !tbaa
!5
%ln1em = load i64*, i64** %Sp_Var
%ln1en = load i64, i64* %R1_Var
tail call ghccc
void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64) %ln1el( i64* %Base_Arg, i64* %ln1em, i64* %Hp_Arg, i64 %ln1en, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 %SpLim_Arg ) nounwind
ret void
}
%S1ey_srt_struct = type <{i64, i64}>
@Main_main_closure$def = internal global %Main_main_closure_struct<{i64 ptrtoint (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64)* @Main_main_info$def to i64), i64 0, i64 0, i64 0}>
@Main_main_info = alias
i8, bitcast (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64)* @Main_main_info$def to i8*)
define ghccc
void @Main_main_info$def(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) align 8 nounwind prefix
<{i64, i64, i64}><{i64 add (i64 sub (i64 ptrtoint (%S1ey_srt_struct* @S1ey_srt$def to i64),i64 ptrtoint (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64)* @Main_main_info$def to i64)),i64 0), i64 0, i64 12884901909}>
{
c1ev:
%F1_Var = alloca float, i32 1
store float undef, float* %F1_Var
%D1_Var = alloca double, i32 1
store double undef, double* %D1_Var
%F2_Var = alloca float, i32 1
store float undef, float* %F2_Var
%D2_Var = alloca double, i32 1
store double undef, double* %D2_Var
%F3_Var = alloca float, i32 1
store float undef, float* %F3_Var
%D3_Var = alloca double, i32 1
store double undef, double* %D3_Var
%F4_Var = alloca float, i32 1
store float undef, float* %F4_Var
%D4_Var = alloca double, i32 1
store double undef, double* %D4_Var
%F5_Var = alloca float, i32 1
store float undef, float* %F5_Var
%D5_Var = alloca double, i32 1
store double undef, double* %D5_Var
%F6_Var = alloca float, i32 1
store float undef, float* %F6_Var
%D6_Var = alloca double, i32 1
store double undef, double* %D6_Var
store i64 %R1_Arg, i64* %R1_Var
store i64* %Sp_Arg, i64** %Sp_Var
%ln1ez = load i64, i64* %R1_Var
%ln1eA = load i64*, i64** %Sp_Var
%ln1eB = getelementptr inbounds i64, i64* %ln1eA, i32 1
%ln1eC = ptrtoint i64* %ln1eB to i64
%ln1eD = sub i64 %ln1eC, 24
%ln1eE = icmp ult
i64 %ln1eD, %SpLim_Arg
br i1 %ln1eF, label %c1ew, label %c1ex
c1ex:
%ln1eG = ptrtoint i64* %Base_Arg to i64
%ln1eH = inttoptr i64 %ln1eG to i8*
%ln1eJ = inttoptr i64 %ln1eI to i8*
store float undef, float* %F1_Var
store double undef, double* %D1_Var
store float undef, float* %F2_Var
store double undef, double* %D2_Var
store float undef, float* %F3_Var
store double undef, double* %D3_Var
store float undef, float* %F4_Var
store double undef, double* %D4_Var
store float undef, float* %F5_Var
store double undef, double* %D5_Var
store float undef, float* %F6_Var
store double undef, double* %D6_Var
%ln1eL = call ccc i8* (i8*, i8*) %ln1eK( i8* %ln1eH, i8* %ln1eJ ) nounwind
%ln1eM = ptrtoint i8* %ln1eL to i64
%ln1eN = load i64, i64* %lc1es
%ln1eO = icmp eq
i64 %ln1eN, 0
br i1 %ln1eO, label %c1eu, label %c1et
c1et:
%ln1eP = load i64*, i64** %Sp_Var
%ln1eR = getelementptr inbounds i64, i64* %ln1eP, i32 -2
store i64 %ln1eQ, i64* %ln1eR, !tbaa
!2
%ln1eT = load i64, i64* %lc1es
%ln1eS = load i64*, i64** %Sp_Var
%ln1eU = getelementptr inbounds i64, i64* %ln1eS, i32 -1
store i64 %ln1eT, i64* %ln1eU, !tbaa
!2
store i64 %ln1eV, i64* %R2_Var
store i64 %ln1eW, i64* %R1_Var
%ln1eX = load i64*, i64** %Sp_Var
%ln1eY = getelementptr inbounds i64, i64* %ln1eX, i32 -2
%ln1eZ = ptrtoint i64* %ln1eY to i64
%ln1f0 = inttoptr i64 %ln1eZ to i64*
store i64* %ln1f0, i64** %Sp_Var
%ln1f2 = load i64*, i64** %Sp_Var
%ln1f3 = load i64, i64* %R1_Var
%ln1f4 = load i64, i64* %R2_Var
tail call ghccc
void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64) %ln1f1( i64* %Base_Arg, i64* %ln1f2, i64* %Hp_Arg, i64 %ln1f3, i64 %ln1f4, i64 undef, i64 undef, i64 undef, i64 undef, i64 %SpLim_Arg ) nounwind
ret void
c1eu:
%ln1f6 = inttoptr i64 %ln1f5 to i64*
%ln1f7 = load i64, i64* %ln1f6, !tbaa
!1
%ln1f9 = load i64*, i64** %Sp_Var
%ln1fa = load i64, i64* %R1_Var
tail call ghccc
void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64) %ln1f8( i64* %Base_Arg, i64* %ln1f9, i64* %Hp_Arg, i64 %ln1fa, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 %SpLim_Arg ) nounwind
ret void
c1ew:
store i64 %ln1fb, i64* %R1_Var
%ln1fc = getelementptr inbounds i64, i64* %Base_Arg, i32 -2
%ln1fd = bitcast i64* %ln1fc to i64*
%ln1fe = load i64, i64* %ln1fd, !tbaa
!5
%ln1fg = load i64*, i64** %Sp_Var
%ln1fh = load i64, i64* %R1_Var
tail call ghccc
void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64) %ln1ff( i64* %Base_Arg, i64* %ln1fg, i64* %Hp_Arg, i64 %ln1fh, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 %SpLim_Arg ) nounwind
ret void
}
%S1fr_srt_struct = type <{i64, i64}>
@ZCMain_main_closure$def = internal global %ZCMain_main_closure_struct<{i64 ptrtoint (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64)* @ZCMain_main_info$def to i64), i64 0, i64 0, i64 0}>
@ZCMain_main_info = alias
i8, bitcast (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64)* @ZCMain_main_info$def to i8*)
define ghccc
void @ZCMain_main_info$def(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) align 8 nounwind prefix
<{i64, i64, i64}><{i64 add (i64 sub (i64 ptrtoint (%S1fr_srt_struct* @S1fr_srt$def to i64),i64 ptrtoint (void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64)* @ZCMain_main_info$def to i64)),i64 0), i64 0, i64 12884901909}>
{
c1fo:
%F1_Var = alloca float, i32 1
store float undef, float* %F1_Var
%D1_Var = alloca double, i32 1
store double undef, double* %D1_Var
%F2_Var = alloca float, i32 1
store float undef, float* %F2_Var
%D2_Var = alloca double, i32 1
store double undef, double* %D2_Var
%F3_Var = alloca float, i32 1
store float undef, float* %F3_Var
%D3_Var = alloca double, i32 1
store double undef, double* %D3_Var
%F4_Var = alloca float, i32 1
store float undef, float* %F4_Var
%D4_Var = alloca double, i32 1
store double undef, double* %D4_Var
%F5_Var = alloca float, i32 1
store float undef, float* %F5_Var
%D5_Var = alloca double, i32 1
store double undef, double* %D5_Var
%F6_Var = alloca float, i32 1
store float undef, float* %F6_Var
%D6_Var = alloca double, i32 1
store double undef, double* %D6_Var
store i64 %R1_Arg, i64* %R1_Var
store i64* %Sp_Arg, i64** %Sp_Var
%ln1fs = load i64, i64* %R1_Var
%ln1ft = load i64*, i64** %Sp_Var
%ln1fu = getelementptr inbounds i64, i64* %ln1ft, i32 1
%ln1fv = ptrtoint i64* %ln1fu to i64
%ln1fw = sub i64 %ln1fv, 24
%ln1fx = icmp ult
i64 %ln1fw, %SpLim_Arg
br i1 %ln1fy, label %c1fp, label %c1fq
c1fq:
%ln1fz = ptrtoint i64* %Base_Arg to i64
%ln1fA = inttoptr i64 %ln1fz to i8*
%ln1fC = inttoptr i64 %ln1fB to i8*
store float undef, float* %F1_Var
store double undef, double* %D1_Var
store float undef, float* %F2_Var
store double undef, double* %D2_Var
store float undef, float* %F3_Var
store double undef, double* %D3_Var
store float undef, float* %F4_Var
store double undef, double* %D4_Var
store float undef, float* %F5_Var
store double undef, double* %D5_Var
store float undef, float* %F6_Var
store double undef, double* %D6_Var
%ln1fE = call ccc i8* (i8*, i8*) %ln1fD( i8* %ln1fA, i8* %ln1fC ) nounwind
%ln1fF = ptrtoint i8* %ln1fE to i64
%ln1fG = load i64, i64* %lc1fl
%ln1fH = icmp eq
i64 %ln1fG, 0
br i1 %ln1fH, label %c1fn, label %c1fm
c1fm:
%ln1fI = load i64*, i64** %Sp_Var
%ln1fK = getelementptr inbounds i64, i64* %ln1fI, i32 -2
store i64 %ln1fJ, i64* %ln1fK, !tbaa
!2
%ln1fM = load i64, i64* %lc1fl
%ln1fL = load i64*, i64** %Sp_Var
%ln1fN = getelementptr inbounds i64, i64* %ln1fL, i32 -1
store i64 %ln1fM, i64* %ln1fN, !tbaa
!2
store i64 %ln1fO, i64* %R2_Var
store i64 %ln1fP, i64* %R1_Var
%ln1fQ = load i64*, i64** %Sp_Var
%ln1fR = getelementptr inbounds i64, i64* %ln1fQ, i32 -2
%ln1fS = ptrtoint i64* %ln1fR to i64
%ln1fT = inttoptr i64 %ln1fS to i64*
store i64* %ln1fT, i64** %Sp_Var
%ln1fV = load i64*, i64** %Sp_Var
%ln1fW = load i64, i64* %R1_Var
%ln1fX = load i64, i64* %R2_Var
tail call ghccc
void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64) %ln1fU( i64* %Base_Arg, i64* %ln1fV, i64* %Hp_Arg, i64 %ln1fW, i64 %ln1fX, i64 undef, i64 undef, i64 undef, i64 undef, i64 %SpLim_Arg ) nounwind
ret void
c1fn:
%ln1fZ = inttoptr i64 %ln1fY to i64*
%ln1g0 = load i64, i64* %ln1fZ, !tbaa
!1
%ln1g2 = load i64*, i64** %Sp_Var
%ln1g3 = load i64, i64* %R1_Var
tail call ghccc
void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64) %ln1g1( i64* %Base_Arg, i64* %ln1g2, i64* %Hp_Arg, i64 %ln1g3, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 %SpLim_Arg ) nounwind
ret void
c1fp:
store i64 %ln1g4, i64* %R1_Var
%ln1g5 = getelementptr inbounds i64, i64* %Base_Arg, i32 -2
%ln1g6 = bitcast i64* %ln1g5 to i64*
%ln1g7 = load i64, i64* %ln1g6, !tbaa
!5
%ln1g9 = load i64*, i64** %Sp_Var
%ln1ga = load i64, i64* %R1_Var
tail call ghccc
void (i64*, i64*, i64*, i64, i64, i64, i64, i64, i64, i64) %ln1g8( i64* %Base_Arg, i64* %ln1g9, i64* %Hp_Arg, i64 %ln1ga, i64 undef, i64 undef, i64 undef, i64 undef, i64 undef, i64 %SpLim_Arg ) nounwind
ret void
}
%r12I_bytes_struct = type <{[5 x
i8]}>
%r130_closure_struct = type <{i64, i64}>
%r131_bytes_struct = type <{[5 x
i8]}>
%r132_closure_struct = type <{i64, i64}>
%Main_zdtrModule_closure_struct = type <{i64, i64, i64, i64}>
@llvm.used = appending constant [12 x
i8*] [i8* bitcast (%Main_zdtrModule_closure_struct* @Main_zdtrModule_closure$def to i8*), i8* bitcast (%r132_closure_struct* @r132_closure$def to i8*), i8* bitcast (%r131_bytes_struct* @r131_bytes$def to i8*), i8* bitcast (%r130_closure_struct* @r130_closure$def to i8*), i8* bitcast (%r12I_bytes_struct* @r12I_bytes$def to i8*), i8* bitcast (%ZCMain_main_closure_struct* @ZCMain_main_closure$def to i8*), i8* bitcast (%S1fr_srt_struct* @S1fr_srt$def to i8*), i8* bitcast (%Main_main_closure_struct* @Main_main_closure$def to i8*), i8* bitcast (%S1ey_srt_struct* @S1ey_srt$def to i8*), i8* bitcast (%c1dz_str_struct* @c1dz_str$def to i8*), i8* bitcast (%s1ds_closure_struct* @s1ds_closure$def to i8*), i8* bitcast (%S1dD_srt_struct* @S1dD_srt$def to i8*)], section "llvm.metadata"