@sml_check_flag=external local_unnamed_addr global i32
@a=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i8*)*@_SMLLLN16PrinterParameter7convertE_41 to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN16PrinterParameter7convertE_62 to void(...)*),i32 -2147483647}>,align 8
@b=private unnamed_addr constant<{[4x i8],i32,i8*,i8*,i8*,i8*,i8*,i32}><{[4x i8]zeroinitializer,i32 -805306328,i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,[2x i8]}>,<{[4x i8],i32,[2x i8]}>*@i,i32 0,i32 0,i32 0),i32 8),i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,[2x i8]}>,<{[4x i8],i32,[2x i8]}>*@j,i32 0,i32 0,i32 0),i32 8),i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,[2x i8]}>,<{[4x i8],i32,[2x i8]}>*@k,i32 0,i32 0,i32 0),i32 8),i8*null,i8*null,i32 31}>,align 8
@c=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i8*)*@_SMLLLN16PrinterParameter7convertE_47 to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN16PrinterParameter7convertE_63 to void(...)*),i32 -2147483647}>,align 8
@d=private unnamed_addr constant<{[4x i8],i32,i32,[4x i8],i8*,i8*,i32,[4x i8],i8*,i32}><{[4x i8]zeroinitializer,i32 -805306328,i32 80,[4x i8]zeroinitializer,i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,[2x i8]}>,<{[4x i8],i32,[2x i8]}>*@i,i32 0,i32 0,i32 0),i32 8),i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,[2x i8]}>,<{[4x i8],i32,[2x i8]}>*@h,i32 0,i32 0,i32 0),i32 8),i32 0,[4x i8]zeroinitializer,i8*null,i32 22}>,align 8
@e=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i8*)*@_SMLFN16PrinterParameter7convertE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN16PrinterParameter7convertE_64 to void(...)*),i32 -2147483647}>,align 8
@f=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32)*@_SMLFN16PrinterParameter23defaultMaxDepthOfGuardsE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*)*@_SMLLLN16PrinterParameter23defaultMaxDepthOfGuardsE_65 to void(...)*),i32 -2147483647}>,align 8
@g=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32)*@_SMLFN16PrinterParameter23defaultMaxWidthOfGuardsE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*)*@_SMLLLN16PrinterParameter23defaultMaxWidthOfGuardsE_66 to void(...)*),i32 -2147483647}>,align 8
@h=private unnamed_addr constant<{[4x i8],i32,[2x i8]}><{[4x i8]zeroinitializer,i32 -2147483646,[2x i8]c"\0A\00"}>,align 8
@_SMLZN16PrinterParameter14defaultNewlineE=local_unnamed_addr constant i8*getelementptr inbounds(<{[4x i8],i32,[2x i8]}>,<{[4x i8],i32,[2x i8]}>*@h,i64 0,i32 2,i64 0)
@i=private unnamed_addr constant<{[4x i8],i32,[2x i8]}><{[4x i8]zeroinitializer,i32 -2147483646,[2x i8]c" \00"}>,align 8
@_SMLZN16PrinterParameter12defaultSpaceE=local_unnamed_addr constant i8*getelementptr inbounds(<{[4x i8],i32,[2x i8]}>,<{[4x i8],i32,[2x i8]}>*@i,i64 0,i32 2,i64 0)
@_SMLZN16PrinterParameter14defaultColumnsE=local_unnamed_addr constant i32 80
@j=private unnamed_addr constant<{[4x i8],i32,[2x i8]}><{[4x i8]zeroinitializer,i32 -2147483646,[2x i8]c"(\00"}>,align 8
@_SMLZN16PrinterParameter16defaultGuardLeftE=local_unnamed_addr constant i8*getelementptr inbounds(<{[4x i8],i32,[2x i8]}>,<{[4x i8],i32,[2x i8]}>*@j,i64 0,i32 2,i64 0)
@k=private unnamed_addr constant<{[4x i8],i32,[2x i8]}><{[4x i8]zeroinitializer,i32 -2147483646,[2x i8]c")\00"}>,align 8
@_SMLZN16PrinterParameter17defaultGuardRightE=local_unnamed_addr constant i8*getelementptr inbounds(<{[4x i8],i32,[2x i8]}>,<{[4x i8],i32,[2x i8]}>*@k,i64 0,i32 2,i64 0)
@_SMLZN16PrinterParameter23defaultMaxDepthOfGuardsE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@f,i64 0,i32 2)to i8*)
@_SMLZN16PrinterParameter23defaultMaxWidthOfGuardsE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@g,i64 0,i32 2)to i8*)
@_SMLZN16PrinterParameter18defaultCutOverTailE=local_unnamed_addr constant i32 0
@_SMLZN16PrinterParameter21defaultOutputFunctionE=local_unnamed_addr constant i8*null
@_SMLZN16PrinterParameter7convertE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@e,i64 0,i32 2)to i8*)
@_SML_ftaba70fd6418471567a_PrinterParameter=external global i8
@l=internal unnamed_addr global i1 false
declare void@llvm.gcroot(i8**,i8*)#0
declare i8*@sml_alloc(i32 inreg)local_unnamed_addr#0
declare void@sml_check(i32 inreg)local_unnamed_addr
declare void@sml_gcroot(i8*,void()*,i8*,i8*)local_unnamed_addr#0
declare i8*@_SMLFN4List5foldlE(i32 inreg,i32 inreg,i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare void@_SML_main03d87556ec7f64b2_List()local_unnamed_addr#1 gc"smlsharp"
declare void@_SML_load03d87556ec7f64b2_List(i8*)local_unnamed_addr
define private void@_SML_tabba70fd6418471567a_PrinterParameter()#2{
unreachable
}
define void@_SML_loada70fd6418471567a_PrinterParameter(i8*%a)local_unnamed_addr#0{
%b=load i1,i1*@l,align 1
br i1%b,label%c,label%d
c:
ret void
d:
store i1 true,i1*@l,align 1
tail call void@_SML_load03d87556ec7f64b2_List(i8*%a)#0
tail call void@sml_gcroot(i8*%a,void()*@_SML_tabba70fd6418471567a_PrinterParameter,i8*@_SML_ftaba70fd6418471567a_PrinterParameter,i8*null)#0
ret void
}
define void@_SML_maina70fd6418471567a_PrinterParameter()local_unnamed_addr#1 gc"smlsharp"{
tail call void@_SML_main03d87556ec7f64b2_List()#1
ret void
}
define internal fastcc i8*@_SMLLLN16PrinterParameter7convertE_41(i8*inreg%a)#3 gc"smlsharp"{
%b=alloca i8*,align 8
%c=alloca i8*,align 8
%d=alloca i8*,align 8
%e=alloca i8*,align 8
%f=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
call void@llvm.gcroot(i8**%e,i8*null)#0
call void@llvm.gcroot(i8**%f,i8*null)#0
%g=bitcast i8*%a to i8**
%h=load i8*,i8**%g,align 8
%i=getelementptr inbounds i8,i8*%a,i64 8
%j=bitcast i8*%i to i8**
%k=load i8*,i8**%j,align 8
%l=bitcast i8*%k to i8**
%m=load i8*,i8**%l,align 8
store i8*%m,i8**%b,align 8
%n=getelementptr inbounds i8,i8*%k,i64 8
%o=bitcast i8*%n to i8**
%p=load i8*,i8**%o,align 8
store i8*%p,i8**%c,align 8
%q=getelementptr inbounds i8,i8*%k,i64 16
%r=bitcast i8*%q to i8**
%s=load i8*,i8**%r,align 8
store i8*%s,i8**%d,align 8
%t=getelementptr inbounds i8,i8*%k,i64 24
%u=bitcast i8*%t to i8**
%v=load i8*,i8**%u,align 8
store i8*%v,i8**%e,align 8
%w=getelementptr inbounds i8,i8*%k,i64 32
%x=bitcast i8*%w to i8**
%y=load i8*,i8**%x,align 8
store i8*%y,i8**%f,align 8
%z=bitcast i8*%h to i32*
%A=load i32,i32*%z,align 4
switch i32%A,label%B[
i32 8,label%bz
i32 2,label%bc
i32 3,label%aP
i32 4,label%as
i32 5,label%V
]
B:
%C=call i8*@sml_alloc(i32 inreg 44)#0
%D=getelementptr inbounds i8,i8*%C,i64 -4
%E=bitcast i8*%D to i32*
store i32 1342177320,i32*%E,align 4
%F=load i8*,i8**%b,align 8
%G=bitcast i8*%C to i8**
store i8*%F,i8**%G,align 8
%H=load i8*,i8**%c,align 8
%I=getelementptr inbounds i8,i8*%C,i64 8
%J=bitcast i8*%I to i8**
store i8*%H,i8**%J,align 8
%K=load i8*,i8**%d,align 8
%L=getelementptr inbounds i8,i8*%C,i64 16
%M=bitcast i8*%L to i8**
store i8*%K,i8**%M,align 8
%N=load i8*,i8**%e,align 8
%O=getelementptr inbounds i8,i8*%C,i64 24
%P=bitcast i8*%O to i8**
store i8*%N,i8**%P,align 8
%Q=load i8*,i8**%f,align 8
%R=getelementptr inbounds i8,i8*%C,i64 32
%S=bitcast i8*%R to i8**
store i8*%Q,i8**%S,align 8
%T=getelementptr inbounds i8,i8*%C,i64 40
%U=bitcast i8*%T to i32*
store i32 31,i32*%U,align 4
ret i8*%C
V:
%W=getelementptr inbounds i8,i8*%h,i64 8
%X=bitcast i8*%W to i8**
%Y=load i8*,i8**%X,align 8
store i8*%Y,i8**%f,align 8
%Z=call i8*@sml_alloc(i32 inreg 44)#0
%aa=getelementptr inbounds i8,i8*%Z,i64 -4
%ab=bitcast i8*%aa to i32*
store i32 1342177320,i32*%ab,align 4
%ac=load i8*,i8**%b,align 8
%ad=bitcast i8*%Z to i8**
store i8*%ac,i8**%ad,align 8
%ae=load i8*,i8**%c,align 8
%af=getelementptr inbounds i8,i8*%Z,i64 8
%ag=bitcast i8*%af to i8**
store i8*%ae,i8**%ag,align 8
%ah=load i8*,i8**%d,align 8
%ai=getelementptr inbounds i8,i8*%Z,i64 16
%aj=bitcast i8*%ai to i8**
store i8*%ah,i8**%aj,align 8
%ak=load i8*,i8**%e,align 8
%al=getelementptr inbounds i8,i8*%Z,i64 24
%am=bitcast i8*%al to i8**
store i8*%ak,i8**%am,align 8
%an=load i8*,i8**%f,align 8
%ao=getelementptr inbounds i8,i8*%Z,i64 32
%ap=bitcast i8*%ao to i8**
store i8*%an,i8**%ap,align 8
%aq=getelementptr inbounds i8,i8*%Z,i64 40
%ar=bitcast i8*%aq to i32*
store i32 31,i32*%ar,align 4
ret i8*%Z
as:
%at=getelementptr inbounds i8,i8*%h,i64 8
%au=bitcast i8*%at to i8**
%av=load i8*,i8**%au,align 8
store i8*%av,i8**%e,align 8
%aw=call i8*@sml_alloc(i32 inreg 44)#0
%ax=getelementptr inbounds i8,i8*%aw,i64 -4
%ay=bitcast i8*%ax to i32*
store i32 1342177320,i32*%ay,align 4
%az=load i8*,i8**%b,align 8
%aA=bitcast i8*%aw to i8**
store i8*%az,i8**%aA,align 8
%aB=load i8*,i8**%c,align 8
%aC=getelementptr inbounds i8,i8*%aw,i64 8
%aD=bitcast i8*%aC to i8**
store i8*%aB,i8**%aD,align 8
%aE=load i8*,i8**%d,align 8
%aF=getelementptr inbounds i8,i8*%aw,i64 16
%aG=bitcast i8*%aF to i8**
store i8*%aE,i8**%aG,align 8
%aH=load i8*,i8**%e,align 8
%aI=getelementptr inbounds i8,i8*%aw,i64 24
%aJ=bitcast i8*%aI to i8**
store i8*%aH,i8**%aJ,align 8
%aK=load i8*,i8**%f,align 8
%aL=getelementptr inbounds i8,i8*%aw,i64 32
%aM=bitcast i8*%aL to i8**
store i8*%aK,i8**%aM,align 8
%aN=getelementptr inbounds i8,i8*%aw,i64 40
%aO=bitcast i8*%aN to i32*
store i32 31,i32*%aO,align 4
ret i8*%aw
aP:
%aQ=getelementptr inbounds i8,i8*%h,i64 8
%aR=bitcast i8*%aQ to i8**
%aS=load i8*,i8**%aR,align 8
store i8*%aS,i8**%d,align 8
%aT=call i8*@sml_alloc(i32 inreg 44)#0
%aU=getelementptr inbounds i8,i8*%aT,i64 -4
%aV=bitcast i8*%aU to i32*
store i32 1342177320,i32*%aV,align 4
%aW=load i8*,i8**%b,align 8
%aX=bitcast i8*%aT to i8**
store i8*%aW,i8**%aX,align 8
%aY=load i8*,i8**%c,align 8
%aZ=getelementptr inbounds i8,i8*%aT,i64 8
%a0=bitcast i8*%aZ to i8**
store i8*%aY,i8**%a0,align 8
%a1=load i8*,i8**%d,align 8
%a2=getelementptr inbounds i8,i8*%aT,i64 16
%a3=bitcast i8*%a2 to i8**
store i8*%a1,i8**%a3,align 8
%a4=load i8*,i8**%e,align 8
%a5=getelementptr inbounds i8,i8*%aT,i64 24
%a6=bitcast i8*%a5 to i8**
store i8*%a4,i8**%a6,align 8
%a7=load i8*,i8**%f,align 8
%a8=getelementptr inbounds i8,i8*%aT,i64 32
%a9=bitcast i8*%a8 to i8**
store i8*%a7,i8**%a9,align 8
%ba=getelementptr inbounds i8,i8*%aT,i64 40
%bb=bitcast i8*%ba to i32*
store i32 31,i32*%bb,align 4
ret i8*%aT
bc:
%bd=getelementptr inbounds i8,i8*%h,i64 8
%be=bitcast i8*%bd to i8**
%bf=load i8*,i8**%be,align 8
store i8*%bf,i8**%c,align 8
%bg=call i8*@sml_alloc(i32 inreg 44)#0
%bh=getelementptr inbounds i8,i8*%bg,i64 -4
%bi=bitcast i8*%bh to i32*
store i32 1342177320,i32*%bi,align 4
%bj=load i8*,i8**%b,align 8
%bk=bitcast i8*%bg to i8**
store i8*%bj,i8**%bk,align 8
%bl=load i8*,i8**%c,align 8
%bm=getelementptr inbounds i8,i8*%bg,i64 8
%bn=bitcast i8*%bm to i8**
store i8*%bl,i8**%bn,align 8
%bo=load i8*,i8**%d,align 8
%bp=getelementptr inbounds i8,i8*%bg,i64 16
%bq=bitcast i8*%bp to i8**
store i8*%bo,i8**%bq,align 8
%br=load i8*,i8**%e,align 8
%bs=getelementptr inbounds i8,i8*%bg,i64 24
%bt=bitcast i8*%bs to i8**
store i8*%br,i8**%bt,align 8
%bu=load i8*,i8**%f,align 8
%bv=getelementptr inbounds i8,i8*%bg,i64 32
%bw=bitcast i8*%bv to i8**
store i8*%bu,i8**%bw,align 8
%bx=getelementptr inbounds i8,i8*%bg,i64 40
%by=bitcast i8*%bx to i32*
store i32 31,i32*%by,align 4
ret i8*%bg
bz:
%bA=getelementptr inbounds i8,i8*%h,i64 8
%bB=bitcast i8*%bA to i8**
%bC=load i8*,i8**%bB,align 8
store i8*%bC,i8**%b,align 8
%bD=call i8*@sml_alloc(i32 inreg 44)#0
%bE=getelementptr inbounds i8,i8*%bD,i64 -4
%bF=bitcast i8*%bE to i32*
store i32 1342177320,i32*%bF,align 4
%bG=load i8*,i8**%b,align 8
%bH=bitcast i8*%bD to i8**
store i8*%bG,i8**%bH,align 8
%bI=load i8*,i8**%c,align 8
%bJ=getelementptr inbounds i8,i8*%bD,i64 8
%bK=bitcast i8*%bJ to i8**
store i8*%bI,i8**%bK,align 8
%bL=load i8*,i8**%d,align 8
%bM=getelementptr inbounds i8,i8*%bD,i64 16
%bN=bitcast i8*%bM to i8**
store i8*%bL,i8**%bN,align 8
%bO=load i8*,i8**%e,align 8
%bP=getelementptr inbounds i8,i8*%bD,i64 24
%bQ=bitcast i8*%bP to i8**
store i8*%bO,i8**%bQ,align 8
%bR=load i8*,i8**%f,align 8
%bS=getelementptr inbounds i8,i8*%bD,i64 32
%bT=bitcast i8*%bS to i8**
store i8*%bR,i8**%bT,align 8
%bU=getelementptr inbounds i8,i8*%bD,i64 40
%bV=bitcast i8*%bU to i32*
store i32 31,i32*%bV,align 4
ret i8*%bD
}
define internal fastcc i8*@_SMLLLN16PrinterParameter7convertE_47(i8*inreg%a)#3 gc"smlsharp"{
%b=alloca i8*,align 8
%c=alloca i8*,align 8
%d=alloca i8*,align 8
%e=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
call void@llvm.gcroot(i8**%e,i8*null)#0
%f=bitcast i8*%a to i8**
%g=load i8*,i8**%f,align 8
%h=getelementptr inbounds i8,i8*%a,i64 8
%i=bitcast i8*%h to i8**
%j=load i8*,i8**%i,align 8
%k=bitcast i8*%j to i32*
%l=load i32,i32*%k,align 4
%m=getelementptr inbounds i8,i8*%j,i64 8
%n=bitcast i8*%m to i8**
%o=load i8*,i8**%n,align 8
store i8*%o,i8**%b,align 8
%p=getelementptr inbounds i8,i8*%j,i64 16
%q=bitcast i8*%p to i8**
%r=load i8*,i8**%q,align 8
store i8*%r,i8**%c,align 8
%s=getelementptr inbounds i8,i8*%j,i64 24
%t=bitcast i8*%s to i32*
%u=load i32,i32*%t,align 4
%v=getelementptr inbounds i8,i8*%j,i64 32
%w=bitcast i8*%v to i8**
%x=load i8*,i8**%w,align 8
store i8*%x,i8**%d,align 8
%y=bitcast i8*%g to i32*
%z=load i32,i32*%y,align 4
switch i32%z,label%A[
i32 6,label%bA
i32 8,label%be
i32 0,label%aS
i32 1,label%aw
i32 7,label%T
]
A:
%B=call i8*@sml_alloc(i32 inreg 44)#0
%C=bitcast i8*%B to i32*
%D=getelementptr inbounds i8,i8*%B,i64 -4
%E=bitcast i8*%D to i32*
store i32 1342177320,i32*%E,align 4
%F=getelementptr inbounds i8,i8*%B,i64 4
call void@llvm.memset.p0i8.i32(i8*%F,i8 0,i32 28,i1 false)
store i32%l,i32*%C,align 4
%G=load i8*,i8**%b,align 8
%H=getelementptr inbounds i8,i8*%B,i64 8
%I=bitcast i8*%H to i8**
store i8*%G,i8**%I,align 8
%J=load i8*,i8**%c,align 8
%K=getelementptr inbounds i8,i8*%B,i64 16
%L=bitcast i8*%K to i8**
store i8*%J,i8**%L,align 8
%M=getelementptr inbounds i8,i8*%B,i64 24
%N=bitcast i8*%M to i32*
store i32%u,i32*%N,align 4
%O=load i8*,i8**%d,align 8
%P=getelementptr inbounds i8,i8*%B,i64 32
%Q=bitcast i8*%P to i8**
store i8*%O,i8**%Q,align 8
%R=getelementptr inbounds i8,i8*%B,i64 40
%S=bitcast i8*%R to i32*
store i32 22,i32*%S,align 4
ret i8*%B
T:
%U=getelementptr inbounds i8,i8*%g,i64 8
%V=bitcast i8*%U to i8**
%W=load i8*,i8**%V,align 8
store i8*%W,i8**%d,align 8
%X=call i8*@sml_alloc(i32 inreg 12)#0
%Y=getelementptr inbounds i8,i8*%X,i64 -4
%Z=bitcast i8*%Y to i32*
store i32 1342177288,i32*%Z,align 4
store i8*%X,i8**%e,align 8
%aa=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%ab=bitcast i8*%X to i8**
store i8*%aa,i8**%ab,align 8
%ac=getelementptr inbounds i8,i8*%X,i64 8
%ad=bitcast i8*%ac to i32*
store i32 1,i32*%ad,align 4
%ae=call i8*@sml_alloc(i32 inreg 44)#0
%af=bitcast i8*%ae to i32*
%ag=getelementptr inbounds i8,i8*%ae,i64 -4
%ah=bitcast i8*%ag to i32*
store i32 1342177320,i32*%ah,align 4
%ai=getelementptr inbounds i8,i8*%ae,i64 4
call void@llvm.memset.p0i8.i32(i8*%ai,i8 0,i32 28,i1 false)
store i32%l,i32*%af,align 4
%aj=load i8*,i8**%b,align 8
%ak=getelementptr inbounds i8,i8*%ae,i64 8
%al=bitcast i8*%ak to i8**
store i8*%aj,i8**%al,align 8
%am=load i8*,i8**%c,align 8
%an=getelementptr inbounds i8,i8*%ae,i64 16
%ao=bitcast i8*%an to i8**
store i8*%am,i8**%ao,align 8
%ap=getelementptr inbounds i8,i8*%ae,i64 24
%aq=bitcast i8*%ap to i32*
store i32%u,i32*%aq,align 4
%ar=load i8*,i8**%e,align 8
%as=getelementptr inbounds i8,i8*%ae,i64 32
%at=bitcast i8*%as to i8**
store i8*%ar,i8**%at,align 8
%au=getelementptr inbounds i8,i8*%ae,i64 40
%av=bitcast i8*%au to i32*
store i32 22,i32*%av,align 4
ret i8*%ae
aw:
%ax=getelementptr inbounds i8,i8*%g,i64 4
%ay=bitcast i8*%ax to i32*
%az=load i32,i32*%ay,align 4
%aA=call i8*@sml_alloc(i32 inreg 44)#0
%aB=bitcast i8*%aA to i32*
%aC=getelementptr inbounds i8,i8*%aA,i64 -4
%aD=bitcast i8*%aC to i32*
store i32 1342177320,i32*%aD,align 4
%aE=getelementptr inbounds i8,i8*%aA,i64 4
call void@llvm.memset.p0i8.i32(i8*%aE,i8 0,i32 28,i1 false)
store i32%l,i32*%aB,align 4
%aF=load i8*,i8**%b,align 8
%aG=getelementptr inbounds i8,i8*%aA,i64 8
%aH=bitcast i8*%aG to i8**
store i8*%aF,i8**%aH,align 8
%aI=load i8*,i8**%c,align 8
%aJ=getelementptr inbounds i8,i8*%aA,i64 16
%aK=bitcast i8*%aJ to i8**
store i8*%aI,i8**%aK,align 8
%aL=getelementptr inbounds i8,i8*%aA,i64 24
%aM=bitcast i8*%aL to i32*
store i32%az,i32*%aM,align 4
%aN=load i8*,i8**%d,align 8
%aO=getelementptr inbounds i8,i8*%aA,i64 32
%aP=bitcast i8*%aO to i8**
store i8*%aN,i8**%aP,align 8
%aQ=getelementptr inbounds i8,i8*%aA,i64 40
%aR=bitcast i8*%aQ to i32*
store i32 22,i32*%aR,align 4
ret i8*%aA
aS:
%aT=getelementptr inbounds i8,i8*%g,i64 4
%aU=bitcast i8*%aT to i32*
%aV=load i32,i32*%aU,align 4
%aW=call i8*@sml_alloc(i32 inreg 44)#0
%aX=bitcast i8*%aW to i32*
%aY=getelementptr inbounds i8,i8*%aW,i64 -4
%aZ=bitcast i8*%aY to i32*
store i32 1342177320,i32*%aZ,align 4
%a0=getelementptr inbounds i8,i8*%aW,i64 4
call void@llvm.memset.p0i8.i32(i8*%a0,i8 0,i32 28,i1 false)
store i32%aV,i32*%aX,align 4
%a1=load i8*,i8**%b,align 8
%a2=getelementptr inbounds i8,i8*%aW,i64 8
%a3=bitcast i8*%a2 to i8**
store i8*%a1,i8**%a3,align 8
%a4=load i8*,i8**%c,align 8
%a5=getelementptr inbounds i8,i8*%aW,i64 16
%a6=bitcast i8*%a5 to i8**
store i8*%a4,i8**%a6,align 8
%a7=getelementptr inbounds i8,i8*%aW,i64 24
%a8=bitcast i8*%a7 to i32*
store i32%u,i32*%a8,align 4
%a9=load i8*,i8**%d,align 8
%ba=getelementptr inbounds i8,i8*%aW,i64 32
%bb=bitcast i8*%ba to i8**
store i8*%a9,i8**%bb,align 8
%bc=getelementptr inbounds i8,i8*%aW,i64 40
%bd=bitcast i8*%bc to i32*
store i32 22,i32*%bd,align 4
ret i8*%aW
be:
%bf=getelementptr inbounds i8,i8*%g,i64 8
%bg=bitcast i8*%bf to i8**
%bh=load i8*,i8**%bg,align 8
store i8*%bh,i8**%b,align 8
%bi=call i8*@sml_alloc(i32 inreg 44)#0
%bj=bitcast i8*%bi to i32*
%bk=getelementptr inbounds i8,i8*%bi,i64 -4
%bl=bitcast i8*%bk to i32*
store i32 1342177320,i32*%bl,align 4
%bm=getelementptr inbounds i8,i8*%bi,i64 4
call void@llvm.memset.p0i8.i32(i8*%bm,i8 0,i32 28,i1 false)
store i32%l,i32*%bj,align 4
%bn=load i8*,i8**%b,align 8
%bo=getelementptr inbounds i8,i8*%bi,i64 8
%bp=bitcast i8*%bo to i8**
store i8*%bn,i8**%bp,align 8
%bq=load i8*,i8**%c,align 8
%br=getelementptr inbounds i8,i8*%bi,i64 16
%bs=bitcast i8*%br to i8**
store i8*%bq,i8**%bs,align 8
%bt=getelementptr inbounds i8,i8*%bi,i64 24
%bu=bitcast i8*%bt to i32*
store i32%u,i32*%bu,align 4
%bv=load i8*,i8**%d,align 8
%bw=getelementptr inbounds i8,i8*%bi,i64 32
%bx=bitcast i8*%bw to i8**
store i8*%bv,i8**%bx,align 8
%by=getelementptr inbounds i8,i8*%bi,i64 40
%bz=bitcast i8*%by to i32*
store i32 22,i32*%bz,align 4
ret i8*%bi
bA:
%bB=getelementptr inbounds i8,i8*%g,i64 8
%bC=bitcast i8*%bB to i8**
%bD=load i8*,i8**%bC,align 8
store i8*%bD,i8**%c,align 8
%bE=call i8*@sml_alloc(i32 inreg 44)#0
%bF=bitcast i8*%bE to i32*
%bG=getelementptr inbounds i8,i8*%bE,i64 -4
%bH=bitcast i8*%bG to i32*
store i32 1342177320,i32*%bH,align 4
%bI=getelementptr inbounds i8,i8*%bE,i64 4
call void@llvm.memset.p0i8.i32(i8*%bI,i8 0,i32 28,i1 false)
store i32%l,i32*%bF,align 4
%bJ=load i8*,i8**%b,align 8
%bK=getelementptr inbounds i8,i8*%bE,i64 8
%bL=bitcast i8*%bK to i8**
store i8*%bJ,i8**%bL,align 8
%bM=load i8*,i8**%c,align 8
%bN=getelementptr inbounds i8,i8*%bE,i64 16
%bO=bitcast i8*%bN to i8**
store i8*%bM,i8**%bO,align 8
%bP=getelementptr inbounds i8,i8*%bE,i64 24
%bQ=bitcast i8*%bP to i32*
store i32%u,i32*%bQ,align 4
%bR=load i8*,i8**%d,align 8
%bS=getelementptr inbounds i8,i8*%bE,i64 32
%bT=bitcast i8*%bS to i8**
store i8*%bR,i8**%bT,align 8
%bU=getelementptr inbounds i8,i8*%bE,i64 40
%bV=bitcast i8*%bU to i32*
store i32 22,i32*%bV,align 4
ret i8*%bE
}
define fastcc i8*@_SMLFN16PrinterParameter7convertE(i8*inreg%a)#1 gc"smlsharp"{
%b=alloca i8*,align 8
%c=alloca i8*,align 8
%d=alloca i8*,align 8
%e=alloca i8*,align 8
%f=alloca i8*,align 8
%g=alloca i8*,align 8
%h=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
call void@llvm.gcroot(i8**%e,i8*null)#0
call void@llvm.gcroot(i8**%f,i8*null)#0
call void@llvm.gcroot(i8**%g,i8*null)#0
call void@llvm.gcroot(i8**%h,i8*null)#0
store i8*%a,i8**%b,align 8
%i=load atomic i32,i32*@sml_check_flag unordered,align 4
%j=icmp eq i32%i,0
br i1%j,label%l,label%k
k:
call void@sml_check(i32 inreg%i)
br label%l
l:
%m=call fastcc i8*@_SMLFN4List5foldlE(i32 inreg 1,i32 inreg 8,i32 inreg 1,i32 inreg 8)
%n=getelementptr inbounds i8,i8*%m,i64 16
%o=bitcast i8*%n to i8*(i8*,i8*)**
%p=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%o,align 8
%q=bitcast i8*%m to i8**
%r=load i8*,i8**%q,align 8
%s=call fastcc i8*%p(i8*inreg%r,i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@a,i64 0,i32 2)to i8*))
%t=getelementptr inbounds i8,i8*%s,i64 16
%u=bitcast i8*%t to i8*(i8*,i8*)**
%v=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%u,align 8
%w=bitcast i8*%s to i8**
%x=load i8*,i8**%w,align 8
%y=call fastcc i8*%v(i8*inreg%x,i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,i8*,i8*,i8*,i8*,i32}>,<{[4x i8],i32,i8*,i8*,i8*,i8*,i8*,i32}>*@b,i64 0,i32 2)to i8*))
%z=getelementptr inbounds i8,i8*%y,i64 16
%A=bitcast i8*%z to i8*(i8*,i8*)**
%B=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%A,align 8
%C=bitcast i8*%y to i8**
%D=load i8*,i8**%C,align 8
%E=load i8*,i8**%b,align 8
%F=call fastcc i8*%B(i8*inreg%D,i8*inreg%E)
%G=getelementptr inbounds i8,i8*%F,i64 8
%H=bitcast i8*%G to i8**
%I=load i8*,i8**%H,align 8
store i8*%I,i8**%c,align 8
%J=getelementptr inbounds i8,i8*%F,i64 16
%K=bitcast i8*%J to i8**
%L=load i8*,i8**%K,align 8
store i8*%L,i8**%d,align 8
%M=getelementptr inbounds i8,i8*%F,i64 24
%N=bitcast i8*%M to i8**
%O=load i8*,i8**%N,align 8
store i8*%O,i8**%e,align 8
%P=getelementptr inbounds i8,i8*%F,i64 32
%Q=bitcast i8*%P to i8**
%R=load i8*,i8**%Q,align 8
store i8*%R,i8**%f,align 8
%S=call fastcc i8*@_SMLFN4List5foldlE(i32 inreg 1,i32 inreg 8,i32 inreg 1,i32 inreg 8)
%T=getelementptr inbounds i8,i8*%S,i64 16
%U=bitcast i8*%T to i8*(i8*,i8*)**
%V=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%U,align 8
%W=bitcast i8*%S to i8**
%X=load i8*,i8**%W,align 8
%Y=call fastcc i8*%V(i8*inreg%X,i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@c,i64 0,i32 2)to i8*))
%Z=getelementptr inbounds i8,i8*%Y,i64 16
%aa=bitcast i8*%Z to i8*(i8*,i8*)**
%ab=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%aa,align 8
%ac=bitcast i8*%Y to i8**
%ad=load i8*,i8**%ac,align 8
%ae=call fastcc i8*%ab(i8*inreg%ad,i8*inreg bitcast(i32*getelementptr inbounds(<{[4x i8],i32,i32,[4x i8],i8*,i8*,i32,[4x i8],i8*,i32}>,<{[4x i8],i32,i32,[4x i8],i8*,i8*,i32,[4x i8],i8*,i32}>*@d,i64 0,i32 2)to i8*))
%af=getelementptr inbounds i8,i8*%ae,i64 16
%ag=bitcast i8*%af to i8*(i8*,i8*)**
%ah=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%ag,align 8
%ai=bitcast i8*%ae to i8**
%aj=load i8*,i8**%ai,align 8
%ak=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%al=call fastcc i8*%ah(i8*inreg%aj,i8*inreg%ak)
%am=bitcast i8*%al to i32*
%an=load i32,i32*%am,align 4
%ao=getelementptr inbounds i8,i8*%al,i64 8
%ap=bitcast i8*%ao to i8**
%aq=load i8*,i8**%ap,align 8
store i8*%aq,i8**%b,align 8
%ar=getelementptr inbounds i8,i8*%al,i64 16
%as=bitcast i8*%ar to i8**
%at=load i8*,i8**%as,align 8
store i8*%at,i8**%g,align 8
%au=getelementptr inbounds i8,i8*%al,i64 24
%av=bitcast i8*%au to i32*
%aw=load i32,i32*%av,align 4
%ax=getelementptr inbounds i8,i8*%al,i64 32
%ay=bitcast i8*%ax to i8**
%az=load i8*,i8**%ay,align 8
store i8*%az,i8**%h,align 8
%aA=call i8*@sml_alloc(i32 inreg 68)#0
%aB=bitcast i8*%aA to i32*
%aC=getelementptr inbounds i8,i8*%aA,i64 -4
%aD=bitcast i8*%aC to i32*
store i32 1342177344,i32*%aD,align 4
store i32%an,i32*%aB,align 4
%aE=getelementptr inbounds i8,i8*%aA,i64 4
%aF=bitcast i8*%aE to i32*
store i32%aw,i32*%aF,align 4
%aG=load i8*,i8**%c,align 8
%aH=getelementptr inbounds i8,i8*%aA,i64 8
%aI=bitcast i8*%aH to i8**
store i8*%aG,i8**%aI,align 8
%aJ=load i8*,i8**%d,align 8
%aK=getelementptr inbounds i8,i8*%aA,i64 16
%aL=bitcast i8*%aK to i8**
store i8*%aJ,i8**%aL,align 8
%aM=load i8*,i8**%e,align 8
%aN=getelementptr inbounds i8,i8*%aA,i64 24
%aO=bitcast i8*%aN to i8**
store i8*%aM,i8**%aO,align 8
%aP=load i8*,i8**%f,align 8
%aQ=getelementptr inbounds i8,i8*%aA,i64 32
%aR=bitcast i8*%aQ to i8**
store i8*%aP,i8**%aR,align 8
%aS=load i8*,i8**%g,align 8
%aT=getelementptr inbounds i8,i8*%aA,i64 40
%aU=bitcast i8*%aT to i8**
store i8*%aS,i8**%aU,align 8
%aV=load i8*,i8**%h,align 8
%aW=getelementptr inbounds i8,i8*%aA,i64 48
%aX=bitcast i8*%aW to i8**
store i8*%aV,i8**%aX,align 8
%aY=load i8*,i8**%b,align 8
%aZ=getelementptr inbounds i8,i8*%aA,i64 56
%a0=bitcast i8*%aZ to i8**
store i8*%aY,i8**%a0,align 8
%a1=getelementptr inbounds i8,i8*%aA,i64 64
%a2=bitcast i8*%a1 to i32*
store i32 254,i32*%a2,align 4
ret i8*%aA
}
define fastcc i8*@_SMLFN16PrinterParameter23defaultMaxDepthOfGuardsE(i32 inreg%a,i32 inreg%b)#3 gc"smlsharp"{
ret i8*null
}
define fastcc i8*@_SMLFN16PrinterParameter23defaultMaxWidthOfGuardsE(i32 inreg%a,i32 inreg%b)#3 gc"smlsharp"{
ret i8*null
}
define internal fastcc i8*@_SMLLLN16PrinterParameter7convertE_62(i8*inreg%a,i8*inreg%b)#3 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLLLN16PrinterParameter7convertE_41(i8*inreg%b)
ret i8*%c
}
define internal fastcc i8*@_SMLLLN16PrinterParameter7convertE_63(i8*inreg%a,i8*inreg%b)#3 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLLLN16PrinterParameter7convertE_47(i8*inreg%b)
ret i8*%c
}
define internal fastcc i8*@_SMLLLN16PrinterParameter7convertE_64(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN16PrinterParameter7convertE(i8*inreg%b)
ret i8*%c
}
define internal fastcc i8*@_SMLLLN16PrinterParameter23defaultMaxDepthOfGuardsE_65(i8*inreg%a,i8*inreg%b,i8*inreg%c)#3 gc"smlsharp"{
ret i8*null
}
define internal fastcc i8*@_SMLLLN16PrinterParameter23defaultMaxWidthOfGuardsE_66(i8*inreg%a,i8*inreg%b,i8*inreg%c)#3 gc"smlsharp"{
ret i8*null
}
declare void@llvm.memset.p0i8.i32(i8*,i8,i32,i1)#0
attributes#0={nounwind}
attributes#1={uwtable}
attributes#2={noreturn nounwind}
attributes#3={nounwind uwtable}
