@sml_check_flag=external local_unnamed_addr global i32
@_SMLZN12BuiltinTypes8word32TyE=external local_unnamed_addr global i8*
@_SMLZN14BoundTypeVarID3Map5emptyE=external local_unnamed_addr global i8*
@_SMLZN3Bug3BugE=external local_unnamed_addr global i8*
@_SMLZN3Loc5nolocE=external local_unnamed_addr global i8*
@_SMLZ5Match=external unnamed_addr constant i8*
@a=private unnamed_addr constant<{[4x i8],i32,[83x i8]}><{[4x i8]zeroinitializer,i32 -2147483565,[83x i8]c"src/compiler/compilePhases/bitmapcompilation/main/BitmapCompilation.sml:69.6(2074)\00"}>,align 8
@b=private unnamed_addr constant<{[4x i8],i32,i32,i32,i32}><{[4x i8]zeroinitializer,i32 -805306360,i32 6,i32 35,i32 0}>,align 8
@c=private unnamed_addr constant<{[4x i8],i32,i32,[4x i8],i8*,i32}><{[4x i8]zeroinitializer,i32 -805306352,i32 5,[4x i8]zeroinitializer,i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,i32,i32,i32}>,<{[4x i8],i32,i32,i32,i32}>*@b,i32 0,i32 0,i32 0),i32 8),i32 2}>,align 8
@d=private unnamed_addr constant<{[4x i8],i32,i32,i32,i32}><{[4x i8]zeroinitializer,i32 -805306360,i32 6,i32 49,i32 0}>,align 8
@e=private unnamed_addr constant<{[4x i8],i32,i32,[4x i8],i8*,i32}><{[4x i8]zeroinitializer,i32 -805306352,i32 5,[4x i8]zeroinitializer,i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,i32,i32,i32}>,<{[4x i8],i32,i32,i32,i32}>*@d,i32 0,i32 0,i32 0),i32 8),i32 2}>,align 8
@f=private unnamed_addr constant<{[4x i8],i32,i32,i32,i32}><{[4x i8]zeroinitializer,i32 -805306360,i32 6,i32 38,i32 0}>,align 8
@g=private unnamed_addr constant<{[4x i8],i32,i32,[4x i8],i8*,i32}><{[4x i8]zeroinitializer,i32 -805306352,i32 5,[4x i8]zeroinitializer,i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,i32,i32,i32}>,<{[4x i8],i32,i32,i32,i32}>*@f,i32 0,i32 0,i32 0),i32 8),i32 2}>,align 8
@h=private unnamed_addr constant<{[4x i8],i32,i32,i32,i32}><{[4x i8]zeroinitializer,i32 -805306360,i32 6,i32 36,i32 0}>,align 8
@i=private unnamed_addr constant<{[4x i8],i32,i32,[4x i8],i8*,i32}><{[4x i8]zeroinitializer,i32 -805306352,i32 5,[4x i8]zeroinitializer,i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,i32,i32,i32}>,<{[4x i8],i32,i32,i32,i32}>*@h,i32 0,i32 0,i32 0),i32 8),i32 2}>,align 8
@j=private unnamed_addr constant<{[4x i8],i32,i32,i32,i32}><{[4x i8]zeroinitializer,i32 -805306360,i32 6,i32 46,i32 0}>,align 8
@k=private unnamed_addr constant<{[4x i8],i32,i32,[4x i8],i8*,i32}><{[4x i8]zeroinitializer,i32 -805306352,i32 5,[4x i8]zeroinitializer,i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,i32,i32,i32}>,<{[4x i8],i32,i32,i32,i32}>*@j,i32 0,i32 0,i32 0),i32 8),i32 2}>,align 8
@l=private unnamed_addr constant<{[4x i8],i32,i32,i32,i32}><{[4x i8]zeroinitializer,i32 -805306360,i32 6,i32 41,i32 0}>,align 8
@m=private unnamed_addr constant<{[4x i8],i32,i32,[4x i8],i8*,i32}><{[4x i8]zeroinitializer,i32 -805306352,i32 5,[4x i8]zeroinitializer,i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,i32,i32,i32}>,<{[4x i8],i32,i32,i32,i32}>*@l,i32 0,i32 0,i32 0),i32 8),i32 2}>,align 8
@n=private unnamed_addr constant<{[4x i8],i32,i32,i32,i32}><{[4x i8]zeroinitializer,i32 -805306360,i32 6,i32 47,i32 0}>,align 8
@o=private unnamed_addr constant<{[4x i8],i32,i32,[4x i8],i8*,i32}><{[4x i8]zeroinitializer,i32 -805306352,i32 5,[4x i8]zeroinitializer,i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,i32,i32,i32}>,<{[4x i8],i32,i32,i32,i32}>*@n,i32 0,i32 0,i32 0),i32 8),i32 2}>,align 8
@p=private unnamed_addr constant<{[4x i8],i32,[83x i8]}><{[4x i8]zeroinitializer,i32 -2147483565,[83x i8]c"src/compiler/compilePhases/bitmapcompilation/main/BitmapCompilation.sml:45.9(1049)\00"}>,align 8
@q=private unnamed_addr constant<{[4x i8],i32,[83x i8]}><{[4x i8]zeroinitializer,i32 -2147483565,[83x i8]c"src/compiler/compilePhases/bitmapcompilation/main/BitmapCompilation.sml:78.6(2395)\00"}>,align 8
@r=private unnamed_addr constant<{[4x i8],i32,[85x i8]}><{[4x i8]zeroinitializer,i32 -2147483563,[85x i8]c"src/compiler/compilePhases/bitmapcompilation/main/BitmapCompilation.sml:115.19(4096)\00"}>,align 8
@s=private unnamed_addr constant<{[4x i8],i32,[8x i8]}><{[4x i8]zeroinitializer,i32 -2147483640,[8x i8]c"toValue\00"}>,align 8
@t=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i8*)*@_SMLLLN17BitmapCompilation10compileExpE_174 to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN17BitmapCompilation10compileExpE_209 to void(...)*),i32 -2147483647}>,align 8
@u=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i8*)*@_SMLLLN17BitmapCompilation10compileExpE_191 to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN17BitmapCompilation10compileExpE_211 to void(...)*),i32 -2147483647}>,align 8
@v=private unnamed_addr constant<{[4x i8],i32,[84x i8]}><{[4x i8]zeroinitializer,i32 -2147483564,[84x i8]c"src/compiler/compilePhases/bitmapcompilation/main/BitmapCompilation.sml:118.6(4154)\00"}>,align 8
@w=private unnamed_addr constant<{[4x i8],i32,[85x i8]}><{[4x i8]zeroinitializer,i32 -2147483563,[85x i8]c"src/compiler/compilePhases/bitmapcompilation/main/BitmapCompilation.sml:153.41(5590)\00"}>,align 8
@x=private unnamed_addr constant<{[4x i8],i32,[22x i8]}><{[4x i8]zeroinitializer,i32 -2147483626,[22x i8]c"compileExp: RCINDEXOF\00"}>,align 8
@y=private unnamed_addr constant<{[4x i8],i32,[84x i8]}><{[4x i8]zeroinitializer,i32 -2147483564,[84x i8]c"src/compiler/compilePhases/bitmapcompilation/main/BitmapCompilation.sml:123.6(4336)\00"}>,align 8
@z=private unnamed_addr constant<{[4x i8],i32,[85x i8]}><{[4x i8]zeroinitializer,i32 -2147483563,[85x i8]c"src/compiler/compilePhases/bitmapcompilation/main/BitmapCompilation.sml:384.6(14666)\00"}>,align 8
@A=private unnamed_addr constant<{[4x i8],i32,[86x i8]}><{[4x i8]zeroinitializer,i32 -2147483562,[86x i8]c"src/compiler/compilePhases/bitmapcompilation/main/BitmapCompilation.sml:419.21(15798)\00"}>,align 8
@B=private unnamed_addr constant<{[4x i8],i32,[39x i8]}><{[4x i8]zeroinitializer,i32 -2147483609,[39x i8]c"compile: extra computation at toplevel\00"}>,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*)*@_SMLFN17BitmapCompilation7compileE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN17BitmapCompilation7compileE_214 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN17BitmapCompilation7compileE=local_unnamed_addr constant i8*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*)
@_SML_ftab5d84e2df3c390ef4_BitmapCompilation=external global i8
@D=private unnamed_addr global i8 0
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 void@sml_matchcomp_bug()local_unnamed_addr
declare i32@sml_obj_equal(i8*inreg,i8*inreg)local_unnamed_addr#0
declare void@sml_raise(i8*inreg)local_unnamed_addr#1
declare void@sml_write(i8*inreg,i8**inreg,i8*inreg)local_unnamed_addr#0
declare i8*@_SMLFN11RecordLabel3Map10listItemsiE(i32 inreg,i32 inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN11RecordLabel3Map3mapE(i32 inreg,i32 inreg,i32 inreg,i32 inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN12RecordLayout12computeIndexE(i8*inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN12RecordLayout12extractDeclsE(i8*inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN12RecordLayout13computeRecordE(i8*inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN12RecordLayout19newComputationAccumE(i32 inreg)local_unnamed_addr#2 gc"smlsharp"
declare i32@_SMLFN12RuntimeTypes7getSizeE(i8*inreg)local_unnamed_addr#2 gc"smlsharp"
declare i32@_SMLFN12RuntimeTypes8tagValueE(i32 inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN14BoundTypeVarID3Map5emptyE(i32 inreg,i32 inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN4List3mapE(i32 inreg,i32 inreg,i32 inreg,i32 inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN4List3revE(i32 inreg,i32 inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN4List5foldrE(i32 inreg,i32 inreg,i32 inreg,i32 inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN5VarID3Map4findE(i32 inreg,i32 inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN5VarID3Map5emptyE(i32 inreg,i32 inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN5VarID3Map6insertE(i32 inreg,i32 inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN6Option3mapE(i32 inreg,i32 inreg,i32 inreg,i32 inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN8ListPair5mapEqE(i32 inreg,i32 inreg,i32 inreg,i32 inreg,i32 inreg,i32 inreg)local_unnamed_addr#2 gc"smlsharp"
declare void@_SML_main03d87556ec7f64b2_List()local_unnamed_addr#2 gc"smlsharp"
declare void@_SML_main7aa263535439ee1c_ListPair()local_unnamed_addr#2 gc"smlsharp"
declare void@_SML_main3a60343781315c1e_Option()local_unnamed_addr#2 gc"smlsharp"
declare void@_SML_main67a5b28ff146c353_Loc()local_unnamed_addr#2 gc"smlsharp"
declare void@_SML_main22c101bff228a4a9_LocalID()local_unnamed_addr#2 gc"smlsharp"
declare void@_SML_maine083d42c5bce2b59_RecordLayout()local_unnamed_addr#2 gc"smlsharp"
declare void@_SML_maina142c315f12317c0_RecordLabel()local_unnamed_addr#2 gc"smlsharp"
declare void@_SML_mainc88dec21a8800496_RuntimeTypes_ppg()local_unnamed_addr#2 gc"smlsharp"
declare void@_SML_maineaa0aca8fbe4101a_Bug()local_unnamed_addr#2 gc"smlsharp"
declare void@_SML_mainda6ffe0fd6b6ac21_BuiltinTypes()local_unnamed_addr#2 gc"smlsharp"
declare void@_SML_load03d87556ec7f64b2_List(i8*)local_unnamed_addr
declare void@_SML_load7aa263535439ee1c_ListPair(i8*)local_unnamed_addr
declare void@_SML_load3a60343781315c1e_Option(i8*)local_unnamed_addr
declare void@_SML_load67a5b28ff146c353_Loc(i8*)local_unnamed_addr
declare void@_SML_load22c101bff228a4a9_LocalID(i8*)local_unnamed_addr
declare void@_SML_loade083d42c5bce2b59_RecordLayout(i8*)local_unnamed_addr
declare void@_SML_loada142c315f12317c0_RecordLabel(i8*)local_unnamed_addr
declare void@_SML_loadc88dec21a8800496_RuntimeTypes_ppg(i8*)local_unnamed_addr
declare void@_SML_loadeaa0aca8fbe4101a_Bug(i8*)local_unnamed_addr
declare void@_SML_loadda6ffe0fd6b6ac21_BuiltinTypes(i8*)local_unnamed_addr
define private void@_SML_tabb5d84e2df3c390ef4_BitmapCompilation()#3{
unreachable
}
define void@_SML_load5d84e2df3c390ef4_BitmapCompilation(i8*%a)local_unnamed_addr#0{
%b=load i8,i8*@D,align 1
%c=icmp eq i8%b,0
br i1%c,label%e,label%d
d:
ret void
e:
store i8 1,i8*@D,align 1
tail call void@_SML_load03d87556ec7f64b2_List(i8*%a)#0
tail call void@_SML_load7aa263535439ee1c_ListPair(i8*%a)#0
tail call void@_SML_load3a60343781315c1e_Option(i8*%a)#0
tail call void@_SML_load67a5b28ff146c353_Loc(i8*%a)#0
tail call void@_SML_load22c101bff228a4a9_LocalID(i8*%a)#0
tail call void@_SML_loade083d42c5bce2b59_RecordLayout(i8*%a)#0
tail call void@_SML_loada142c315f12317c0_RecordLabel(i8*%a)#0
tail call void@_SML_loadc88dec21a8800496_RuntimeTypes_ppg(i8*%a)#0
tail call void@_SML_loadeaa0aca8fbe4101a_Bug(i8*%a)#0
tail call void@_SML_loadda6ffe0fd6b6ac21_BuiltinTypes(i8*%a)#0
tail call void@sml_gcroot(i8*%a,void()*@_SML_tabb5d84e2df3c390ef4_BitmapCompilation,i8*@_SML_ftab5d84e2df3c390ef4_BitmapCompilation,i8*null)#0
ret void
}
define void@_SML_main5d84e2df3c390ef4_BitmapCompilation()local_unnamed_addr#2 gc"smlsharp"{
%a=load i8,i8*@D,align 1
%b=and i8%a,2
%c=icmp eq i8%b,0
br i1%c,label%e,label%d
d:
ret void
e:
store i8 3,i8*@D,align 1
tail call void@_SML_main03d87556ec7f64b2_List()#2
tail call void@_SML_main7aa263535439ee1c_ListPair()#2
tail call void@_SML_main3a60343781315c1e_Option()#2
tail call void@_SML_main67a5b28ff146c353_Loc()#2
tail call void@_SML_main22c101bff228a4a9_LocalID()#2
tail call void@_SML_maine083d42c5bce2b59_RecordLayout()#2
tail call void@_SML_maina142c315f12317c0_RecordLabel()#2
tail call void@_SML_mainc88dec21a8800496_RuntimeTypes_ppg()#2
tail call void@_SML_maineaa0aca8fbe4101a_Bug()#2
tail call void@_SML_mainda6ffe0fd6b6ac21_BuiltinTypes()#2
br label%d
}
define internal fastcc i8*@_SMLLLN17BitmapCompilation7toBcexpE_95(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
m:
%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**%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
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%g=load atomic i32,i32*@sml_check_flag unordered,align 4
%h=icmp eq i32%g,0
br i1%h,label%k,label%i
i:
call void@sml_check(i32 inreg%g)
%j=load i8*,i8**%c,align 8
br label%k
k:
%l=phi i8*[%j,%i],[%b,%m]
store i8*null,i8**%c,align 8
%n=bitcast i8*%l to i32*
%o=load i32,i32*%n,align 4
switch i32%o,label%p[
i32 0,label%aD
i32 1,label%H
]
p:
store i8*null,i8**%d,align 8
call void@sml_matchcomp_bug()
%q=load i8*,i8**@_SMLZ5Match,align 8
store i8*%q,i8**%c,align 8
%r=call i8*@sml_alloc(i32 inreg 20)#0
%s=getelementptr inbounds i8,i8*%r,i64 -4
%t=bitcast i8*%s to i32*
store i32 1342177296,i32*%t,align 4
store i8*%r,i8**%d,align 8
%u=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%v=bitcast i8*%r to i8**
store i8*%u,i8**%v,align 8
%w=getelementptr inbounds i8,i8*%r,i64 8
%x=bitcast i8*%w to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[83x i8]}>,<{[4x i8],i32,[83x i8]}>*@a,i64 0,i32 2,i64 0),i8**%x,align 8
%y=getelementptr inbounds i8,i8*%r,i64 16
%z=bitcast i8*%y to i32*
store i32 3,i32*%z,align 4
%A=call i8*@sml_alloc(i32 inreg 60)#0
%B=getelementptr inbounds i8,i8*%A,i64 -4
%C=bitcast i8*%B to i32*
store i32 1342177336,i32*%C,align 4
%D=getelementptr inbounds i8,i8*%A,i64 56
%E=bitcast i8*%D to i32*
store i32 1,i32*%E,align 4
%F=load i8*,i8**%d,align 8
%G=bitcast i8*%A to i8**
store i8*%F,i8**%G,align 8
call void@sml_raise(i8*inreg%A)#1
unreachable
H:
%I=getelementptr inbounds i8,i8*%l,i64 4
%J=bitcast i8*%I to i32*
%K=load i32,i32*%J,align 4
%L=call i8*@sml_alloc(i32 inreg 12)#0
%M=bitcast i8*%L to i32*
%N=getelementptr inbounds i8,i8*%L,i64 -4
%O=bitcast i8*%N to i32*
store i32 1342177288,i32*%O,align 4
store i8*%L,i8**%c,align 8
store i32 7,i32*%M,align 4
%P=getelementptr inbounds i8,i8*%L,i64 4
%Q=bitcast i8*%P to i32*
store i32%K,i32*%Q,align 4
%R=getelementptr inbounds i8,i8*%L,i64 8
%S=bitcast i8*%R to i32*
store i32 0,i32*%S,align 4
%T=call i8*@sml_alloc(i32 inreg 20)#0
%U=getelementptr inbounds i8,i8*%T,i64 -4
%V=bitcast i8*%U to i32*
store i32 1342177296,i32*%V,align 4
store i8*%T,i8**%e,align 8
%W=getelementptr inbounds i8,i8*%T,i64 4
%X=bitcast i8*%W to i32*
store i32 0,i32*%X,align 1
%Y=bitcast i8*%T to i32*
store i32 1,i32*%Y,align 4
%Z=load i8*,i8**%c,align 8
%aa=getelementptr inbounds i8,i8*%T,i64 8
%ab=bitcast i8*%aa to i8**
store i8*%Z,i8**%ab,align 8
%ac=getelementptr inbounds i8,i8*%T,i64 16
%ad=bitcast i8*%ac to i32*
store i32 2,i32*%ad,align 4
%ae=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%af=getelementptr inbounds i8,i8*%ae,i64 8
%ag=bitcast i8*%af to i8**
%ah=load i8*,i8**%ag,align 8
store i8*%ah,i8**%c,align 8
%ai=call i8*@sml_alloc(i32 inreg 20)#0
%aj=getelementptr inbounds i8,i8*%ai,i64 -4
%ak=bitcast i8*%aj to i32*
store i32 1342177296,i32*%ak,align 4
store i8*%ai,i8**%d,align 8
%al=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%am=bitcast i8*%ai to i8**
store i8*%al,i8**%am,align 8
%an=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%ao=getelementptr inbounds i8,i8*%ai,i64 8
%ap=bitcast i8*%ao to i8**
store i8*%an,i8**%ap,align 8
%aq=getelementptr inbounds i8,i8*%ai,i64 16
%ar=bitcast i8*%aq to i32*
store i32 3,i32*%ar,align 4
%as=call i8*@sml_alloc(i32 inreg 20)#0
%at=bitcast i8*%as to i32*
%au=getelementptr inbounds i8,i8*%as,i64 -4
%av=bitcast i8*%au to i32*
store i32 1342177296,i32*%av,align 4
%aw=getelementptr inbounds i8,i8*%as,i64 4
%ax=bitcast i8*%aw to i32*
store i32 0,i32*%ax,align 1
store i32 4,i32*%at,align 4
%ay=load i8*,i8**%d,align 8
%az=getelementptr inbounds i8,i8*%as,i64 8
%aA=bitcast i8*%az to i8**
store i8*%ay,i8**%aA,align 8
%aB=getelementptr inbounds i8,i8*%as,i64 16
%aC=bitcast i8*%aB to i32*
store i32 2,i32*%aC,align 4
ret i8*%as
aD:
%aE=getelementptr inbounds i8,i8*%l,i64 8
%aF=bitcast i8*%aE to i8**
%aG=load i8*,i8**%aF,align 8
store i8*%aG,i8**%c,align 8
%aH=call fastcc i8*@_SMLFN5VarID3Map4findE(i32 inreg 1,i32 inreg 8)
%aI=getelementptr inbounds i8,i8*%aH,i64 16
%aJ=bitcast i8*%aI to i8*(i8*,i8*)**
%aK=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%aJ,align 8
%aL=bitcast i8*%aH to i8**
%aM=load i8*,i8**%aL,align 8
store i8*%aM,i8**%f,align 8
%aN=bitcast i8**%d to i8****
%aO=load i8***,i8****%aN,align 8
%aP=load i8**,i8***%aO,align 8
%aQ=load i8*,i8**%aP,align 8
store i8*%aQ,i8**%e,align 8
%aR=bitcast i8**%c to i32**
%aS=load i32*,i32**%aR,align 8
%aT=load i32,i32*%aS,align 4
%aU=call i8*@sml_alloc(i32 inreg 20)#0
%aV=getelementptr inbounds i8,i8*%aU,i64 -4
%aW=bitcast i8*%aV to i32*
store i32 1342177296,i32*%aW,align 4
%aX=getelementptr inbounds i8,i8*%aU,i64 12
%aY=bitcast i8*%aX to i32*
store i32 0,i32*%aY,align 1
%aZ=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%a0=bitcast i8*%aU to i8**
store i8*%aZ,i8**%a0,align 8
%a1=getelementptr inbounds i8,i8*%aU,i64 8
%a2=bitcast i8*%a1 to i32*
store i32%aT,i32*%a2,align 4
%a3=getelementptr inbounds i8,i8*%aU,i64 16
%a4=bitcast i8*%a3 to i32*
store i32 1,i32*%a4,align 4
%a5=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%a6=call fastcc i8*%aK(i8*inreg%a5,i8*inreg%aU)
%a7=icmp eq i8*%a6,null
br i1%a7,label%a8,label%bT
a8:
%a9=load i8*,i8**%d,align 8
%ba=getelementptr inbounds i8,i8*%a9,i64 8
%bb=bitcast i8*%ba to i8**
%bc=load i8*,i8**%bb,align 8
store i8*%bc,i8**%d,align 8
%bd=load i8*,i8**%c,align 8
%be=bitcast i8*%bd to i32*
%bf=load i32,i32*%be,align 4
%bg=getelementptr inbounds i8,i8*%bd,i64 8
%bh=bitcast i8*%bg to i8**
%bi=load i8*,i8**%bh,align 8
store i8*%bi,i8**%c,align 8
%bj=load i8*,i8**@_SMLZN12BuiltinTypes8word32TyE,align 8
store i8*%bj,i8**%e,align 8
%bk=call i8*@sml_alloc(i32 inreg 28)#0
%bl=getelementptr inbounds i8,i8*%bk,i64 -4
%bm=bitcast i8*%bl to i32*
store i32 1342177304,i32*%bm,align 4
store i8*%bk,i8**%f,align 8
%bn=getelementptr inbounds i8,i8*%bk,i64 4
%bo=bitcast i8*%bn to i32*
store i32 0,i32*%bo,align 1
%bp=bitcast i8*%bk to i32*
store i32%bf,i32*%bp,align 4
%bq=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%br=getelementptr inbounds i8,i8*%bk,i64 8
%bs=bitcast i8*%br to i8**
store i8*%bq,i8**%bs,align 8
%bt=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%bu=getelementptr inbounds i8,i8*%bk,i64 16
%bv=bitcast i8*%bu to i8**
store i8*%bt,i8**%bv,align 8
%bw=getelementptr inbounds i8,i8*%bk,i64 24
%bx=bitcast i8*%bw to i32*
store i32 6,i32*%bx,align 4
%by=call i8*@sml_alloc(i32 inreg 20)#0
%bz=getelementptr inbounds i8,i8*%by,i64 -4
%bA=bitcast i8*%bz to i32*
store i32 1342177296,i32*%bA,align 4
store i8*%by,i8**%c,align 8
%bB=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bC=bitcast i8*%by to i8**
store i8*%bB,i8**%bC,align 8
%bD=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%bE=getelementptr inbounds i8,i8*%by,i64 8
%bF=bitcast i8*%bE to i8**
store i8*%bD,i8**%bF,align 8
%bG=getelementptr inbounds i8,i8*%by,i64 16
%bH=bitcast i8*%bG to i32*
store i32 3,i32*%bH,align 4
%bI=call i8*@sml_alloc(i32 inreg 20)#0
%bJ=bitcast i8*%bI to i32*
%bK=getelementptr inbounds i8,i8*%bI,i64 -4
%bL=bitcast i8*%bK to i32*
store i32 1342177296,i32*%bL,align 4
%bM=getelementptr inbounds i8,i8*%bI,i64 4
%bN=bitcast i8*%bM to i32*
store i32 0,i32*%bN,align 1
store i32 18,i32*%bJ,align 4
%bO=load i8*,i8**%c,align 8
%bP=getelementptr inbounds i8,i8*%bI,i64 8
%bQ=bitcast i8*%bP to i8**
store i8*%bO,i8**%bQ,align 8
%bR=getelementptr inbounds i8,i8*%bI,i64 16
%bS=bitcast i8*%bR to i32*
store i32 2,i32*%bS,align 4
ret i8*%bI
bT:
%bU=bitcast i8*%a6 to i8**
%bV=load i8*,i8**%bU,align 8
%bW=getelementptr inbounds i8,i8*%bV,i64 16
%bX=bitcast i8*%bW to i8*(i8*,i8*)**
%bY=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%bX,align 8
%bZ=bitcast i8*%bV to i8**
%b0=load i8*,i8**%bZ,align 8
%b1=load i8*,i8**%d,align 8
%b2=getelementptr inbounds i8,i8*%b1,i64 8
%b3=bitcast i8*%b2 to i8**
%b4=load i8*,i8**%b3,align 8
%b5=tail call fastcc i8*%bY(i8*inreg%b0,i8*inreg%b4)
ret i8*%b5
}
define internal fastcc i8*@_SMLLLN17BitmapCompilation7toBcexpE_96(i8*inreg%a,i8*inreg%b)#4 gc"smlsharp"{
%c=alloca i8*,align 8
%d=alloca i8*,align 8
%e=alloca i8*,align 8
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
store i8*%b,i8**%c,align 8
%f=bitcast i8*%a to i8**
%g=load i8*,i8**%f,align 8
store i8*%g,i8**%d,align 8
%h=call i8*@sml_alloc(i32 inreg 20)#0
%i=getelementptr inbounds i8,i8*%h,i64 -4
%j=bitcast i8*%i to i32*
store i32 1342177296,i32*%j,align 4
store i8*%h,i8**%e,align 8
%k=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%l=bitcast i8*%h to i8**
store i8*%k,i8**%l,align 8
%m=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%n=getelementptr inbounds i8,i8*%h,i64 8
%o=bitcast i8*%n to i8**
store i8*%m,i8**%o,align 8
%p=getelementptr inbounds i8,i8*%h,i64 16
%q=bitcast i8*%p to i32*
store i32 3,i32*%q,align 4
%r=call i8*@sml_alloc(i32 inreg 28)#0
%s=getelementptr inbounds i8,i8*%r,i64 -4
%t=bitcast i8*%s to i32*
store i32 1342177304,i32*%t,align 4
%u=load i8*,i8**%e,align 8
%v=bitcast i8*%r to i8**
store i8*%u,i8**%v,align 8
%w=getelementptr inbounds i8,i8*%r,i64 8
%x=bitcast i8*%w to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN17BitmapCompilation7toBcexpE_95 to void(...)*),void(...)**%x,align 8
%y=getelementptr inbounds i8,i8*%r,i64 16
%z=bitcast i8*%y to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN17BitmapCompilation7toBcexpE_95 to void(...)*),void(...)**%z,align 8
%A=getelementptr inbounds i8,i8*%r,i64 24
%B=bitcast i8*%A to i32*
store i32 -2147483647,i32*%B,align 4
ret i8*%r
}
define internal fastcc i8*@_SMLLLN17BitmapCompilation7toBcexpE_97(i8*inreg%a)unnamed_addr#4 gc"smlsharp"{
%b=alloca i8*,align 8
%c=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
call void@llvm.gcroot(i8**%c,i8*null)#0
%d=getelementptr inbounds i8,i8*%a,i64 8
%e=bitcast i8*%d to i8**
%f=load i8*,i8**%e,align 8
store i8*%f,i8**%b,align 8
%g=call i8*@sml_alloc(i32 inreg 12)#0
%h=getelementptr inbounds i8,i8*%g,i64 -4
%i=bitcast i8*%h to i32*
store i32 1342177288,i32*%i,align 4
store i8*%g,i8**%c,align 8
%j=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%k=bitcast i8*%g to i8**
store i8*%j,i8**%k,align 8
%l=getelementptr inbounds i8,i8*%g,i64 8
%m=bitcast i8*%l to i32*
store i32 1,i32*%m,align 4
%n=call i8*@sml_alloc(i32 inreg 28)#0
%o=getelementptr inbounds i8,i8*%n,i64 -4
%p=bitcast i8*%o to i32*
store i32 1342177304,i32*%p,align 4
%q=load i8*,i8**%c,align 8
%r=bitcast i8*%n to i8**
store i8*%q,i8**%r,align 8
%s=getelementptr inbounds i8,i8*%n,i64 8
%t=bitcast i8*%s to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN17BitmapCompilation7toBcexpE_96 to void(...)*),void(...)**%t,align 8
%u=getelementptr inbounds i8,i8*%n,i64 16
%v=bitcast i8*%u to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN17BitmapCompilation7toBcexpE_96 to void(...)*),void(...)**%v,align 8
%w=getelementptr inbounds i8,i8*%n,i64 24
%x=bitcast i8*%w to i32*
store i32 -2147483647,i32*%x,align 4
ret i8*%n
}
define internal fastcc i8*@_SMLLLN17BitmapCompilation12extractDeclsE_115(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
r:
%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
%i=alloca i8*,align 8
%j=alloca i8*,align 8
%k=alloca i8*,align 8
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
call void@llvm.gcroot(i8**%i,i8*null)#0
call void@llvm.gcroot(i8**%j,i8*null)#0
call void@llvm.gcroot(i8**%k,i8*null)#0
store i8*%a,i8**%h,align 8
store i8*%b,i8**%c,align 8
%l=load atomic i32,i32*@sml_check_flag unordered,align 4
%m=icmp eq i32%l,0
br i1%m,label%p,label%n
n:
call void@sml_check(i32 inreg%l)
%o=load i8*,i8**%c,align 8
br label%p
p:
%q=phi i8*[%o,%n],[%b,%r]
%s=bitcast i8*%q to i8**
%t=load i8*,i8**%s,align 8
%u=getelementptr inbounds i8,i8*%q,i64 8
%v=bitcast i8*%u to i8**
%w=load i8*,i8**%v,align 8
%x=bitcast i8*%w to i32*
%y=load i32,i32*%x,align 4
switch i32%y,label%z[
i32 1,label%d0
i32 0,label%R
]
z:
store i8*null,i8**%h,align 8
call void@sml_matchcomp_bug()
%A=load i8*,i8**@_SMLZ5Match,align 8
store i8*%A,i8**%c,align 8
%B=call i8*@sml_alloc(i32 inreg 20)#0
%C=getelementptr inbounds i8,i8*%B,i64 -4
%D=bitcast i8*%C to i32*
store i32 1342177296,i32*%D,align 4
store i8*%B,i8**%d,align 8
%E=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%F=bitcast i8*%B to i8**
store i8*%E,i8**%F,align 8
%G=getelementptr inbounds i8,i8*%B,i64 8
%H=bitcast i8*%G to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[83x i8]}>,<{[4x i8],i32,[83x i8]}>*@q,i64 0,i32 2,i64 0),i8**%H,align 8
%I=getelementptr inbounds i8,i8*%B,i64 16
%J=bitcast i8*%I to i32*
store i32 3,i32*%J,align 4
%K=call i8*@sml_alloc(i32 inreg 60)#0
%L=getelementptr inbounds i8,i8*%K,i64 -4
%M=bitcast i8*%L to i32*
store i32 1342177336,i32*%M,align 4
%N=getelementptr inbounds i8,i8*%K,i64 56
%O=bitcast i8*%N to i32*
store i32 1,i32*%O,align 4
%P=load i8*,i8**%d,align 8
%Q=bitcast i8*%K to i8**
store i8*%P,i8**%Q,align 8
call void@sml_raise(i8*inreg%K)#1
unreachable
R:
%S=getelementptr inbounds i8,i8*%w,i64 8
%T=bitcast i8*%S to i8**
%U=load i8*,i8**%T,align 8
%V=bitcast i8*%U to i32*
%W=load i32,i32*%V,align 4
%X=getelementptr inbounds i8,i8*%U,i64 8
%Y=bitcast i8*%X to i8**
%Z=load i8*,i8**%Y,align 8
%aa=bitcast i8*%Z to i8**
%ab=load i8*,i8**%aa,align 8
store i8*%ab,i8**%c,align 8
%ac=getelementptr inbounds i8,i8*%Z,i64 8
%ad=bitcast i8*%ac to i8**
%ae=load i8*,i8**%ad,align 8
store i8*%ae,i8**%d,align 8
%af=bitcast i8*%t to i32*
%ag=load i32,i32*%af,align 4
%ah=getelementptr inbounds i8,i8*%t,i64 8
%ai=bitcast i8*%ah to i8**
%aj=load i8*,i8**%ai,align 8
store i8*%aj,i8**%f,align 8
%ak=load i8*,i8**@_SMLZN12BuiltinTypes8word32TyE,align 8
store i8*%ak,i8**%g,align 8
%al=call i8*@sml_alloc(i32 inreg 28)#0
%am=getelementptr inbounds i8,i8*%al,i64 -4
%an=bitcast i8*%am to i32*
store i32 1342177304,i32*%an,align 4
store i8*%al,i8**%e,align 8
%ao=getelementptr inbounds i8,i8*%al,i64 4
%ap=bitcast i8*%ao to i32*
store i32 0,i32*%ap,align 1
%aq=bitcast i8*%al to i32*
store i32%ag,i32*%aq,align 4
%ar=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%as=getelementptr inbounds i8,i8*%al,i64 8
%at=bitcast i8*%as to i8**
store i8*%ar,i8**%at,align 8
%au=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%av=getelementptr inbounds i8,i8*%al,i64 16
%aw=bitcast i8*%av to i8**
store i8*%au,i8**%aw,align 8
%ax=getelementptr inbounds i8,i8*%al,i64 24
%ay=bitcast i8*%ax to i32*
store i32 6,i32*%ay,align 4
switch i32%W,label%az[
i32 0,label%aX
i32 6,label%aW
i32 2,label%aV
i32 1,label%aU
i32 4,label%aT
i32 3,label%aS
i32 5,label%aR
]
az:
store i8*null,i8**%d,align 8
store i8*null,i8**%e,align 8
store i8*null,i8**%h,align 8
call void@sml_matchcomp_bug()
%aA=load i8*,i8**@_SMLZ5Match,align 8
store i8*%aA,i8**%c,align 8
%aB=call i8*@sml_alloc(i32 inreg 20)#0
%aC=getelementptr inbounds i8,i8*%aB,i64 -4
%aD=bitcast i8*%aC to i32*
store i32 1342177296,i32*%aD,align 4
store i8*%aB,i8**%d,align 8
%aE=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aF=bitcast i8*%aB to i8**
store i8*%aE,i8**%aF,align 8
%aG=getelementptr inbounds i8,i8*%aB,i64 8
%aH=bitcast i8*%aG to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[83x i8]}>,<{[4x i8],i32,[83x i8]}>*@p,i64 0,i32 2,i64 0),i8**%aH,align 8
%aI=getelementptr inbounds i8,i8*%aB,i64 16
%aJ=bitcast i8*%aI to i32*
store i32 3,i32*%aJ,align 4
%aK=call i8*@sml_alloc(i32 inreg 60)#0
%aL=getelementptr inbounds i8,i8*%aK,i64 -4
%aM=bitcast i8*%aL to i32*
store i32 1342177336,i32*%aM,align 4
%aN=getelementptr inbounds i8,i8*%aK,i64 56
%aO=bitcast i8*%aN to i32*
store i32 1,i32*%aO,align 4
%aP=load i8*,i8**%d,align 8
%aQ=bitcast i8*%aK to i8**
store i8*%aP,i8**%aQ,align 8
call void@sml_raise(i8*inreg%aK)#1
unreachable
aR:
store i8*bitcast(i32*getelementptr inbounds(<{[4x i8],i32,i32,[4x i8],i8*,i32}>,<{[4x i8],i32,i32,[4x i8],i8*,i32}>*@o,i64 0,i32 2)to i8*),i8**%f,align 8
br label%aY
aS:
store i8*bitcast(i32*getelementptr inbounds(<{[4x i8],i32,i32,[4x i8],i8*,i32}>,<{[4x i8],i32,i32,[4x i8],i8*,i32}>*@m,i64 0,i32 2)to i8*),i8**%f,align 8
br label%aY
aT:
store i8*bitcast(i32*getelementptr inbounds(<{[4x i8],i32,i32,[4x i8],i8*,i32}>,<{[4x i8],i32,i32,[4x i8],i8*,i32}>*@k,i64 0,i32 2)to i8*),i8**%f,align 8
br label%aY
aU:
store i8*bitcast(i32*getelementptr inbounds(<{[4x i8],i32,i32,[4x i8],i8*,i32}>,<{[4x i8],i32,i32,[4x i8],i8*,i32}>*@i,i64 0,i32 2)to i8*),i8**%f,align 8
br label%aY
aV:
store i8*bitcast(i32*getelementptr inbounds(<{[4x i8],i32,i32,[4x i8],i8*,i32}>,<{[4x i8],i32,i32,[4x i8],i8*,i32}>*@g,i64 0,i32 2)to i8*),i8**%f,align 8
br label%aY
aW:
store i8*bitcast(i32*getelementptr inbounds(<{[4x i8],i32,i32,[4x i8],i8*,i32}>,<{[4x i8],i32,i32,[4x i8],i8*,i32}>*@e,i64 0,i32 2)to i8*),i8**%f,align 8
br label%aY
aX:
store i8*bitcast(i32*getelementptr inbounds(<{[4x i8],i32,i32,[4x i8],i8*,i32}>,<{[4x i8],i32,i32,[4x i8],i8*,i32}>*@c,i64 0,i32 2)to i8*),i8**%f,align 8
br label%aY
aY:
%aZ=load i8*,i8**@_SMLZN12BuiltinTypes8word32TyE,align 8
store i8*%aZ,i8**%i,align 8
store i8*%aZ,i8**%g,align 8
%a0=call i8*@sml_alloc(i32 inreg 20)#0
%a1=getelementptr inbounds i8,i8*%a0,i64 -4
%a2=bitcast i8*%a1 to i32*
store i32 1342177296,i32*%a2,align 4
store i8*%a0,i8**%j,align 8
%a3=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%a4=bitcast i8*%a0 to i8**
store i8*%a3,i8**%a4,align 8
%a5=getelementptr inbounds i8,i8*%a0,i64 8
%a6=bitcast i8*%a5 to i8**
store i8*null,i8**%a6,align 8
%a7=getelementptr inbounds i8,i8*%a0,i64 16
%a8=bitcast i8*%a7 to i32*
store i32 3,i32*%a8,align 4
%a9=call i8*@sml_alloc(i32 inreg 20)#0
%ba=getelementptr inbounds i8,i8*%a9,i64 -4
%bb=bitcast i8*%ba to i32*
store i32 1342177296,i32*%bb,align 4
store i8*%a9,i8**%g,align 8
%bc=load i8*,i8**%i,align 8
%bd=bitcast i8*%a9 to i8**
store i8*%bc,i8**%bd,align 8
%be=load i8*,i8**%j,align 8
%bf=getelementptr inbounds i8,i8*%a9,i64 8
%bg=bitcast i8*%bf to i8**
store i8*%be,i8**%bg,align 8
%bh=getelementptr inbounds i8,i8*%a9,i64 16
%bi=bitcast i8*%bh to i32*
store i32 3,i32*%bi,align 4
%bj=load i8*,i8**@_SMLZN14BoundTypeVarID3Map5emptyE,align 8
store i8*%bj,i8**%i,align 8
%bk=load i8*,i8**@_SMLZN12BuiltinTypes8word32TyE,align 8
store i8*%bk,i8**%j,align 8
%bl=call i8*@sml_alloc(i32 inreg 28)#0
%bm=getelementptr inbounds i8,i8*%bl,i64 -4
%bn=bitcast i8*%bm to i32*
store i32 1342177304,i32*%bn,align 4
store i8*%bl,i8**%k,align 8
%bo=load i8*,i8**%g,align 8
%bp=bitcast i8*%bl to i8**
store i8*%bo,i8**%bp,align 8
%bq=load i8*,i8**%i,align 8
store i8*null,i8**%i,align 8
%br=getelementptr inbounds i8,i8*%bl,i64 8
%bs=bitcast i8*%br to i8**
store i8*%bq,i8**%bs,align 8
%bt=load i8*,i8**%j,align 8
store i8*null,i8**%j,align 8
%bu=getelementptr inbounds i8,i8*%bl,i64 16
%bv=bitcast i8*%bu to i8**
store i8*%bt,i8**%bv,align 8
%bw=getelementptr inbounds i8,i8*%bl,i64 24
%bx=bitcast i8*%bw to i32*
store i32 7,i32*%bx,align 4
%by=call i8*@sml_alloc(i32 inreg 20)#0
%bz=getelementptr inbounds i8,i8*%by,i64 -4
%bA=bitcast i8*%bz to i32*
store i32 1342177296,i32*%bA,align 4
%bB=load i8*,i8**%f,align 8
%bC=bitcast i8*%by to i8**
store i8*%bB,i8**%bC,align 8
%bD=load i8*,i8**%k,align 8
store i8*null,i8**%k,align 8
%bE=getelementptr inbounds i8,i8*%by,i64 8
%bF=bitcast i8*%bE to i8**
store i8*%bD,i8**%bF,align 8
%bG=getelementptr inbounds i8,i8*%by,i64 16
%bH=bitcast i8*%bG to i32*
store i32 3,i32*%bH,align 4
%bI=bitcast i8**%h to i8***
%bJ=load i8**,i8***%bI,align 8
%bK=load i8*,i8**%bJ,align 8
%bL=call fastcc i8*@_SMLLLN17BitmapCompilation7toBcexpE_97(i8*inreg%bK)
%bM=getelementptr inbounds i8,i8*%bL,i64 16
%bN=bitcast i8*%bM to i8*(i8*,i8*)**
%bO=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%bN,align 8
%bP=bitcast i8*%bL to i8**
%bQ=load i8*,i8**%bP,align 8
%bR=load i8*,i8**%h,align 8
%bS=getelementptr inbounds i8,i8*%bR,i64 8
%bT=bitcast i8*%bS to i8**
%bU=load i8*,i8**%bT,align 8
%bV=call fastcc i8*%bO(i8*inreg%bQ,i8*inreg%bU)
%bW=getelementptr inbounds i8,i8*%bV,i64 16
%bX=bitcast i8*%bW to i8*(i8*,i8*)**
%bY=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%bX,align 8
%bZ=bitcast i8*%bV to i8**
%b0=load i8*,i8**%bZ,align 8
%b1=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%b2=call fastcc i8*%bY(i8*inreg%b0,i8*inreg%b1)
store i8*%b2,i8**%c,align 8
%b3=load i8**,i8***%bI,align 8
%b4=load i8*,i8**%b3,align 8
%b5=call fastcc i8*@_SMLLLN17BitmapCompilation7toBcexpE_97(i8*inreg%b4)
%b6=getelementptr inbounds i8,i8*%b5,i64 16
%b7=bitcast i8*%b6 to i8*(i8*,i8*)**
%b8=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%b7,align 8
%b9=bitcast i8*%b5 to i8**
%ca=load i8*,i8**%b9,align 8
%cb=load i8*,i8**%h,align 8
%cc=getelementptr inbounds i8,i8*%cb,i64 8
%cd=bitcast i8*%cc to i8**
%ce=load i8*,i8**%cd,align 8
%cf=call fastcc i8*%b8(i8*inreg%ca,i8*inreg%ce)
%cg=getelementptr inbounds i8,i8*%cf,i64 16
%ch=bitcast i8*%cg to i8*(i8*,i8*)**
%ci=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%ch,align 8
%cj=bitcast i8*%cf to i8**
%ck=load i8*,i8**%cj,align 8
%cl=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%cm=call fastcc i8*%ci(i8*inreg%ck,i8*inreg%cl)
store i8*%cm,i8**%d,align 8
%cn=call i8*@sml_alloc(i32 inreg 20)#0
%co=getelementptr inbounds i8,i8*%cn,i64 -4
%cp=bitcast i8*%co to i32*
store i32 1342177296,i32*%cp,align 4
store i8*%cn,i8**%i,align 8
%cq=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%cr=bitcast i8*%cn to i8**
store i8*%cq,i8**%cr,align 8
%cs=getelementptr inbounds i8,i8*%cn,i64 8
%ct=bitcast i8*%cs to i8**
store i8*null,i8**%ct,align 8
%cu=getelementptr inbounds i8,i8*%cn,i64 16
%cv=bitcast i8*%cu to i32*
store i32 3,i32*%cv,align 4
%cw=call i8*@sml_alloc(i32 inreg 20)#0
%cx=getelementptr inbounds i8,i8*%cw,i64 -4
%cy=bitcast i8*%cx to i32*
store i32 1342177296,i32*%cy,align 4
store i8*%cw,i8**%d,align 8
%cz=load i8*,i8**%c,align 8
%cA=bitcast i8*%cw to i8**
store i8*%cz,i8**%cA,align 8
%cB=load i8*,i8**%i,align 8
store i8*null,i8**%i,align 8
%cC=getelementptr inbounds i8,i8*%cw,i64 8
%cD=bitcast i8*%cC to i8**
store i8*%cB,i8**%cD,align 8
%cE=getelementptr inbounds i8,i8*%cw,i64 16
%cF=bitcast i8*%cE to i32*
store i32 3,i32*%cF,align 4
%cG=load i8*,i8**%h,align 8
%cH=getelementptr inbounds i8,i8*%cG,i64 8
%cI=bitcast i8*%cH to i8**
%cJ=load i8*,i8**%cI,align 8
store i8*%cJ,i8**%c,align 8
%cK=call fastcc i8*@_SMLFN14BoundTypeVarID3Map5emptyE(i32 inreg 1,i32 inreg 8)
store i8*%cK,i8**%i,align 8
%cL=load i8*,i8**@_SMLZN12BuiltinTypes8word32TyE,align 8
store i8*%cL,i8**%j,align 8
%cM=call i8*@sml_alloc(i32 inreg 28)#0
%cN=getelementptr inbounds i8,i8*%cM,i64 -4
%cO=bitcast i8*%cN to i32*
store i32 1342177304,i32*%cO,align 4
store i8*%cM,i8**%k,align 8
%cP=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%cQ=bitcast i8*%cM to i8**
store i8*%cP,i8**%cQ,align 8
%cR=load i8*,i8**%i,align 8
store i8*null,i8**%i,align 8
%cS=getelementptr inbounds i8,i8*%cM,i64 8
%cT=bitcast i8*%cS to i8**
store i8*%cR,i8**%cT,align 8
%cU=load i8*,i8**%j,align 8
store i8*null,i8**%j,align 8
%cV=getelementptr inbounds i8,i8*%cM,i64 16
%cW=bitcast i8*%cV to i8**
store i8*%cU,i8**%cW,align 8
%cX=getelementptr inbounds i8,i8*%cM,i64 24
%cY=bitcast i8*%cX to i32*
store i32 7,i32*%cY,align 4
%cZ=call i8*@sml_alloc(i32 inreg 20)#0
%c0=getelementptr inbounds i8,i8*%cZ,i64 -4
%c1=bitcast i8*%c0 to i32*
store i32 1342177296,i32*%c1,align 4
store i8*%cZ,i8**%g,align 8
%c2=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%c3=bitcast i8*%cZ to i8**
store i8*%c2,i8**%c3,align 8
%c4=load i8*,i8**%k,align 8
store i8*null,i8**%k,align 8
%c5=getelementptr inbounds i8,i8*%cZ,i64 8
%c6=bitcast i8*%c5 to i8**
store i8*%c4,i8**%c6,align 8
%c7=getelementptr inbounds i8,i8*%cZ,i64 16
%c8=bitcast i8*%c7 to i32*
store i32 3,i32*%c8,align 4
%c9=call i8*@sml_alloc(i32 inreg 52)#0
%da=getelementptr inbounds i8,i8*%c9,i64 -4
%db=bitcast i8*%da to i32*
store i32 1342177328,i32*%db,align 4
store i8*%c9,i8**%f,align 8
%dc=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%dd=bitcast i8*%c9 to i8**
store i8*%dc,i8**%dd,align 8
%de=getelementptr inbounds i8,i8*%c9,i64 8
call void@llvm.memset.p0i8.i64(i8*%de,i8 0,i64 24,i1 false)
%df=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%dg=getelementptr inbounds i8,i8*%c9,i64 32
%dh=bitcast i8*%dg to i8**
store i8*%df,i8**%dh,align 8
%di=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%dj=getelementptr inbounds i8,i8*%c9,i64 40
%dk=bitcast i8*%dj to i8**
store i8*%di,i8**%dk,align 8
%dl=getelementptr inbounds i8,i8*%c9,i64 48
%dm=bitcast i8*%dl to i32*
store i32 63,i32*%dm,align 4
%dn=call i8*@sml_alloc(i32 inreg 20)#0
%do=getelementptr inbounds i8,i8*%dn,i64 -4
%dp=bitcast i8*%do to i32*
store i32 1342177296,i32*%dp,align 4
store i8*%dn,i8**%g,align 8
%dq=getelementptr inbounds i8,i8*%dn,i64 4
%dr=bitcast i8*%dq to i32*
store i32 0,i32*%dr,align 1
%ds=bitcast i8*%dn to i32*
store i32 11,i32*%ds,align 4
%dt=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%du=getelementptr inbounds i8,i8*%dn,i64 8
%dv=bitcast i8*%du to i8**
store i8*%dt,i8**%dv,align 8
%dw=getelementptr inbounds i8,i8*%dn,i64 16
%dx=bitcast i8*%dw to i32*
store i32 2,i32*%dx,align 4
%dy=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%dz=getelementptr inbounds i8,i8*%dy,i64 8
%dA=bitcast i8*%dz to i8**
%dB=load i8*,i8**%dA,align 8
store i8*%dB,i8**%c,align 8
%dC=call i8*@sml_alloc(i32 inreg 28)#0
%dD=getelementptr inbounds i8,i8*%dC,i64 -4
%dE=bitcast i8*%dD to i32*
store i32 1342177304,i32*%dE,align 4
store i8*%dC,i8**%d,align 8
%dF=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%dG=bitcast i8*%dC to i8**
store i8*%dF,i8**%dG,align 8
%dH=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%dI=getelementptr inbounds i8,i8*%dC,i64 8
%dJ=bitcast i8*%dI to i8**
store i8*%dH,i8**%dJ,align 8
%dK=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%dL=getelementptr inbounds i8,i8*%dC,i64 16
%dM=bitcast i8*%dL to i8**
store i8*%dK,i8**%dM,align 8
%dN=getelementptr inbounds i8,i8*%dC,i64 24
%dO=bitcast i8*%dN to i32*
store i32 7,i32*%dO,align 4
%dP=call i8*@sml_alloc(i32 inreg 20)#0
%dQ=bitcast i8*%dP to i32*
%dR=getelementptr inbounds i8,i8*%dP,i64 -4
%dS=bitcast i8*%dR to i32*
store i32 1342177296,i32*%dS,align 4
%dT=getelementptr inbounds i8,i8*%dP,i64 4
%dU=bitcast i8*%dT to i32*
store i32 0,i32*%dU,align 1
store i32 2,i32*%dQ,align 4
%dV=load i8*,i8**%d,align 8
%dW=getelementptr inbounds i8,i8*%dP,i64 8
%dX=bitcast i8*%dW to i8**
store i8*%dV,i8**%dX,align 8
%dY=getelementptr inbounds i8,i8*%dP,i64 16
%dZ=bitcast i8*%dY to i32*
store i32 2,i32*%dZ,align 4
ret i8*%dP
d0:
%d1=getelementptr inbounds i8,i8*%w,i64 8
%d2=bitcast i8*%d1 to i8**
%d3=load i8*,i8**%d2,align 8
store i8*%d3,i8**%c,align 8
%d4=bitcast i8*%t to i32*
%d5=load i32,i32*%d4,align 4
%d6=getelementptr inbounds i8,i8*%t,i64 8
%d7=bitcast i8*%d6 to i8**
%d8=load i8*,i8**%d7,align 8
store i8*%d8,i8**%e,align 8
%d9=load i8*,i8**@_SMLZN12BuiltinTypes8word32TyE,align 8
store i8*%d9,i8**%f,align 8
%ea=call i8*@sml_alloc(i32 inreg 28)#0
%eb=getelementptr inbounds i8,i8*%ea,i64 -4
%ec=bitcast i8*%eb to i32*
store i32 1342177304,i32*%ec,align 4
store i8*%ea,i8**%d,align 8
%ed=getelementptr inbounds i8,i8*%ea,i64 4
%ee=bitcast i8*%ed to i32*
store i32 0,i32*%ee,align 1
%ef=bitcast i8*%ea to i32*
store i32%d5,i32*%ef,align 4
%eg=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%eh=getelementptr inbounds i8,i8*%ea,i64 8
%ei=bitcast i8*%eh to i8**
store i8*%eg,i8**%ei,align 8
%ej=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%ek=getelementptr inbounds i8,i8*%ea,i64 16
%el=bitcast i8*%ek to i8**
store i8*%ej,i8**%el,align 8
%em=getelementptr inbounds i8,i8*%ea,i64 24
%en=bitcast i8*%em to i32*
store i32 6,i32*%en,align 4
%eo=bitcast i8**%h to i8***
%ep=load i8**,i8***%eo,align 8
%eq=load i8*,i8**%ep,align 8
%er=call fastcc i8*@_SMLLLN17BitmapCompilation7toBcexpE_97(i8*inreg%eq)
%es=getelementptr inbounds i8,i8*%er,i64 16
%et=bitcast i8*%es to i8*(i8*,i8*)**
%eu=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%et,align 8
%ev=bitcast i8*%er to i8**
%ew=load i8*,i8**%ev,align 8
%ex=load i8*,i8**%h,align 8
%ey=getelementptr inbounds i8,i8*%ex,i64 8
%ez=bitcast i8*%ey to i8**
%eA=load i8*,i8**%ez,align 8
%eB=call fastcc i8*%eu(i8*inreg%ew,i8*inreg%eA)
%eC=getelementptr inbounds i8,i8*%eB,i64 16
%eD=bitcast i8*%eC to i8*(i8*,i8*)**
%eE=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%eD,align 8
%eF=bitcast i8*%eB to i8**
%eG=load i8*,i8**%eF,align 8
%eH=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%eI=call fastcc i8*%eE(i8*inreg%eG,i8*inreg%eH)
store i8*%eI,i8**%c,align 8
%eJ=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%eK=getelementptr inbounds i8,i8*%eJ,i64 8
%eL=bitcast i8*%eK to i8**
%eM=load i8*,i8**%eL,align 8
store i8*%eM,i8**%e,align 8
%eN=call i8*@sml_alloc(i32 inreg 28)#0
%eO=getelementptr inbounds i8,i8*%eN,i64 -4
%eP=bitcast i8*%eO to i32*
store i32 1342177304,i32*%eP,align 4
store i8*%eN,i8**%f,align 8
%eQ=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%eR=bitcast i8*%eN to i8**
store i8*%eQ,i8**%eR,align 8
%eS=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%eT=getelementptr inbounds i8,i8*%eN,i64 8
%eU=bitcast i8*%eT to i8**
store i8*%eS,i8**%eU,align 8
%eV=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%eW=getelementptr inbounds i8,i8*%eN,i64 16
%eX=bitcast i8*%eW to i8**
store i8*%eV,i8**%eX,align 8
%eY=getelementptr inbounds i8,i8*%eN,i64 24
%eZ=bitcast i8*%eY to i32*
store i32 7,i32*%eZ,align 4
%e0=call i8*@sml_alloc(i32 inreg 20)#0
%e1=bitcast i8*%e0 to i32*
%e2=getelementptr inbounds i8,i8*%e0,i64 -4
%e3=bitcast i8*%e2 to i32*
store i32 1342177296,i32*%e3,align 4
%e4=getelementptr inbounds i8,i8*%e0,i64 4
%e5=bitcast i8*%e4 to i32*
store i32 0,i32*%e5,align 1
store i32 2,i32*%e1,align 4
%e6=load i8*,i8**%f,align 8
%e7=getelementptr inbounds i8,i8*%e0,i64 8
%e8=bitcast i8*%e7 to i8**
store i8*%e6,i8**%e8,align 8
%e9=getelementptr inbounds i8,i8*%e0,i64 16
%fa=bitcast i8*%e9 to i32*
store i32 2,i32*%fa,align 4
ret i8*%e0
}
define internal fastcc i8*@_SMLLLN17BitmapCompilation12extractDeclsE_116(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
%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
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
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%h=load atomic i32,i32*@sml_check_flag unordered,align 4
%i=icmp eq i32%h,0
br i1%i,label%k,label%j
j:
call void@sml_check(i32 inreg%h)
br label%k
k:
%l=call fastcc i8*@_SMLFN4List3mapE(i32 inreg 1,i32 inreg 8,i32 inreg 1,i32 inreg 8)
%m=getelementptr inbounds i8,i8*%l,i64 16
%n=bitcast i8*%m to i8*(i8*,i8*)**
%o=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%n,align 8
%p=bitcast i8*%l to i8**
%q=load i8*,i8**%p,align 8
store i8*%q,i8**%f,align 8
%r=bitcast i8**%d to i8***
%s=load i8**,i8***%r,align 8
%t=load i8*,i8**%s,align 8
store i8*%t,i8**%e,align 8
%u=call i8*@sml_alloc(i32 inreg 20)#0
%v=getelementptr inbounds i8,i8*%u,i64 -4
%w=bitcast i8*%v to i32*
store i32 1342177296,i32*%w,align 4
store i8*%u,i8**%g,align 8
%x=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%y=bitcast i8*%u to i8**
store i8*%x,i8**%y,align 8
%z=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%A=getelementptr inbounds i8,i8*%u,i64 8
%B=bitcast i8*%A to i8**
store i8*%z,i8**%B,align 8
%C=getelementptr inbounds i8,i8*%u,i64 16
%D=bitcast i8*%C to i32*
store i32 3,i32*%D,align 4
%E=call i8*@sml_alloc(i32 inreg 28)#0
%F=getelementptr inbounds i8,i8*%E,i64 -4
%G=bitcast i8*%F to i32*
store i32 1342177304,i32*%G,align 4
%H=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%I=bitcast i8*%E to i8**
store i8*%H,i8**%I,align 8
%J=getelementptr inbounds i8,i8*%E,i64 8
%K=bitcast i8*%J to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN17BitmapCompilation12extractDeclsE_115 to void(...)*),void(...)**%K,align 8
%L=getelementptr inbounds i8,i8*%E,i64 16
%M=bitcast i8*%L to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN17BitmapCompilation12extractDeclsE_115 to void(...)*),void(...)**%M,align 8
%N=getelementptr inbounds i8,i8*%E,i64 24
%O=bitcast i8*%N to i32*
store i32 -2147483647,i32*%O,align 4
%P=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%Q=call fastcc i8*%o(i8*inreg%P,i8*inreg%E)
%R=getelementptr inbounds i8,i8*%Q,i64 16
%S=bitcast i8*%R to i8*(i8*,i8*)**
%T=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%S,align 8
%U=bitcast i8*%Q to i8**
%V=load i8*,i8**%U,align 8
store i8*%V,i8**%c,align 8
%W=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%X=getelementptr inbounds i8,i8*%W,i64 8
%Y=bitcast i8*%X to i8**
%Z=load i8*,i8**%Y,align 8
%aa=call fastcc i8*@_SMLFN12RecordLayout12extractDeclsE(i8*inreg%Z)
%ab=load i8*,i8**%c,align 8
%ac=tail call fastcc i8*%T(i8*inreg%ab,i8*inreg%aa)
ret i8*%ac
}
define internal fastcc i8*@_SMLLLN17BitmapCompilation12extractDeclsE_117(i8*inreg%a)unnamed_addr#4 gc"smlsharp"{
%b=alloca i8*,align 8
%c=alloca i8*,align 8
%d=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
store i8*%a,i8**%b,align 8
%e=bitcast i8*%a to i8**
%f=load i8*,i8**%e,align 8
store i8*%f,i8**%c,align 8
%g=call i8*@sml_alloc(i32 inreg 20)#0
%h=getelementptr inbounds i8,i8*%g,i64 -4
%i=bitcast i8*%h to i32*
store i32 1342177296,i32*%i,align 4
store i8*%g,i8**%d,align 8
%j=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%k=bitcast i8*%g to i8**
store i8*%j,i8**%k,align 8
%l=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%m=getelementptr inbounds i8,i8*%g,i64 8
%n=bitcast i8*%m to i8**
store i8*%l,i8**%n,align 8
%o=getelementptr inbounds i8,i8*%g,i64 16
%p=bitcast i8*%o to i32*
store i32 3,i32*%p,align 4
%q=call i8*@sml_alloc(i32 inreg 28)#0
%r=getelementptr inbounds i8,i8*%q,i64 -4
%s=bitcast i8*%r to i32*
store i32 1342177304,i32*%s,align 4
%t=load i8*,i8**%d,align 8
%u=bitcast i8*%q to i8**
store i8*%t,i8**%u,align 8
%v=getelementptr inbounds i8,i8*%q,i64 8
%w=bitcast i8*%v to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN17BitmapCompilation12extractDeclsE_116 to void(...)*),void(...)**%w,align 8
%x=getelementptr inbounds i8,i8*%q,i64 16
%y=bitcast i8*%x to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN17BitmapCompilation12extractDeclsE_116 to void(...)*),void(...)**%y,align 8
%z=getelementptr inbounds i8,i8*%q,i64 24
%A=bitcast i8*%z to i32*
store i32 -2147483647,i32*%A,align 4
ret i8*%q
}
define internal fastcc i8*@_SMLLL1e_121(i8*inreg%a,i8*inreg%b)#4 gc"smlsharp"{
%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
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
store i8*%b,i8**%c,align 8
%h=bitcast i8*%a to i8**
%i=load i8*,i8**%h,align 8
store i8*%i,i8**%d,align 8
%j=getelementptr inbounds i8,i8*%a,i64 8
%k=bitcast i8*%j to i8**
%l=load i8*,i8**%k,align 8
store i8*%l,i8**%e,align 8
%m=load i8*,i8**@_SMLZN12BuiltinTypes8word32TyE,align 8
store i8*%m,i8**%f,align 8
%n=call i8*@sml_alloc(i32 inreg 44)#0
%o=getelementptr inbounds i8,i8*%n,i64 -4
%p=bitcast i8*%o to i32*
store i32 1342177320,i32*%p,align 4
store i8*%n,i8**%g,align 8
%q=getelementptr inbounds i8,i8*%n,i64 4
%r=bitcast i8*%q to i32*
store i32 0,i32*%r,align 1
%s=bitcast i8*%n to i32*
store i32 1,i32*%s,align 4
%t=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%u=getelementptr inbounds i8,i8*%n,i64 8
%v=bitcast i8*%u to i8**
store i8*%t,i8**%v,align 8
%w=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%x=getelementptr inbounds i8,i8*%n,i64 16
%y=bitcast i8*%x to i8**
store i8*%w,i8**%y,align 8
%z=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%A=getelementptr inbounds i8,i8*%n,i64 24
%B=bitcast i8*%A to i8**
store i8*%z,i8**%B,align 8
%C=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%D=getelementptr inbounds i8,i8*%n,i64 32
%E=bitcast i8*%D to i8**
store i8*%C,i8**%E,align 8
%F=getelementptr inbounds i8,i8*%n,i64 40
%G=bitcast i8*%F to i32*
store i32 30,i32*%G,align 4
%H=call i8*@sml_alloc(i32 inreg 20)#0
%I=bitcast i8*%H to i32*
%J=getelementptr inbounds i8,i8*%H,i64 -4
%K=bitcast i8*%J to i32*
store i32 1342177296,i32*%K,align 4
%L=getelementptr inbounds i8,i8*%H,i64 4
%M=bitcast i8*%L to i32*
store i32 0,i32*%M,align 1
store i32 2,i32*%I,align 4
%N=load i8*,i8**%g,align 8
%O=getelementptr inbounds i8,i8*%H,i64 8
%P=bitcast i8*%O to i8**
store i8*%N,i8**%P,align 8
%Q=getelementptr inbounds i8,i8*%H,i64 16
%R=bitcast i8*%Q to i32*
store i32 2,i32*%R,align 4
ret i8*%H
}
define internal fastcc i8*@_SMLLLN17BitmapCompilation7toValueE_122(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
o:
%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**%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**%f,align 8
store i8*%b,i8**%c,align 8
%i=load atomic i32,i32*@sml_check_flag unordered,align 4
%j=icmp eq i32%i,0
br i1%j,label%m,label%k
k:
call void@sml_check(i32 inreg%i)
%l=load i8*,i8**%c,align 8
br label%m
m:
%n=phi i8*[%l,%k],[%b,%o]
%p=bitcast i8*%n to i32*
%q=load i32,i32*%p,align 4
switch i32%q,label%r[
i32 4,label%a1
i32 18,label%s
]
r:
store i8*null,i8**%f,align 8
br label%bA
s:
%t=getelementptr inbounds i8,i8*%n,i64 8
%u=bitcast i8*%t to i8**
%v=load i8*,i8**%u,align 8
%w=getelementptr inbounds i8,i8*%v,i64 8
%x=bitcast i8*%w to i8**
%y=load i8*,i8**%x,align 8
%z=bitcast i8*%y to i32*
%A=load i32,i32*%z,align 4
%B=getelementptr inbounds i8,i8*%y,i64 8
%C=bitcast i8*%B to i8**
%D=load i8*,i8**%C,align 8
store i8*%D,i8**%d,align 8
%E=getelementptr inbounds i8,i8*%y,i64 16
%F=bitcast i8*%E to i8**
%G=load i8*,i8**%F,align 8
store i8*%G,i8**%e,align 8
%H=call i8*@sml_alloc(i32 inreg 20)#0
%I=getelementptr inbounds i8,i8*%H,i64 -4
%J=bitcast i8*%I to i32*
store i32 1342177296,i32*%J,align 4
store i8*%H,i8**%g,align 8
%K=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%L=bitcast i8*%H to i8**
store i8*%K,i8**%L,align 8
%M=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%N=getelementptr inbounds i8,i8*%H,i64 8
%O=bitcast i8*%N to i8**
store i8*%M,i8**%O,align 8
%P=getelementptr inbounds i8,i8*%H,i64 16
%Q=bitcast i8*%P to i32*
store i32 3,i32*%Q,align 4
%R=call i8*@sml_alloc(i32 inreg 28)#0
%S=getelementptr inbounds i8,i8*%R,i64 -4
%T=bitcast i8*%S to i32*
store i32 1342177304,i32*%T,align 4
store i8*%R,i8**%h,align 8
%U=load i8*,i8**%g,align 8
%V=bitcast i8*%R to i8**
store i8*%U,i8**%V,align 8
%W=getelementptr inbounds i8,i8*%R,i64 8
%X=bitcast i8*%W to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL1e_121 to void(...)*),void(...)**%X,align 8
%Y=getelementptr inbounds i8,i8*%R,i64 16
%Z=bitcast i8*%Y to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL1e_121 to void(...)*),void(...)**%Z,align 8
%aa=getelementptr inbounds i8,i8*%R,i64 24
%ab=bitcast i8*%aa to i32*
store i32 -2147483647,i32*%ab,align 4
%ac=bitcast i8**%f to i8***
%ad=load i8**,i8***%ac,align 8
%ae=load i8*,i8**%ad,align 8
store i8*%ae,i8**%g,align 8
%af=call fastcc i8*@_SMLFN5VarID3Map6insertE(i32 inreg 1,i32 inreg 8)
%ag=getelementptr inbounds i8,i8*%af,i64 16
%ah=bitcast i8*%ag to i8*(i8*,i8*)**
%ai=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%ah,align 8
%aj=bitcast i8*%af to i8**
%ak=load i8*,i8**%aj,align 8
store i8*%ak,i8**%e,align 8
%al=bitcast i8**%f to i8****
%am=load i8***,i8****%al,align 8
store i8*null,i8**%f,align 8
%an=load i8**,i8***%am,align 8
%ao=load i8*,i8**%an,align 8
store i8*%ao,i8**%c,align 8
%ap=call i8*@sml_alloc(i32 inreg 28)#0
%aq=getelementptr inbounds i8,i8*%ap,i64 -4
%ar=bitcast i8*%aq to i32*
store i32 1342177304,i32*%ar,align 4
%as=getelementptr inbounds i8,i8*%ap,i64 12
%at=bitcast i8*%as to i32*
store i32 0,i32*%at,align 1
%au=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%av=bitcast i8*%ap to i8**
store i8*%au,i8**%av,align 8
%aw=getelementptr inbounds i8,i8*%ap,i64 8
%ax=bitcast i8*%aw to i32*
store i32%A,i32*%ax,align 4
%ay=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%az=getelementptr inbounds i8,i8*%ap,i64 16
%aA=bitcast i8*%az to i8**
store i8*%ay,i8**%aA,align 8
%aB=getelementptr inbounds i8,i8*%ap,i64 24
%aC=bitcast i8*%aB to i32*
store i32 5,i32*%aC,align 4
%aD=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%aE=call fastcc i8*%ai(i8*inreg%aD,i8*inreg%ap)
%aF=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%aG=bitcast i8*%aF to i8**
call void@sml_write(i8*inreg%aF,i8**inreg%aG,i8*inreg%aE)#0
%aH=call i8*@sml_alloc(i32 inreg 20)#0
%aI=getelementptr inbounds i8,i8*%aH,i64 -4
%aJ=bitcast i8*%aI to i32*
store i32 1342177296,i32*%aJ,align 4
store i8*%aH,i8**%c,align 8
%aK=getelementptr inbounds i8,i8*%aH,i64 4
%aL=bitcast i8*%aK to i32*
store i32 0,i32*%aL,align 1
%aM=bitcast i8*%aH to i32*
store i32%A,i32*%aM,align 4
%aN=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aO=getelementptr inbounds i8,i8*%aH,i64 8
%aP=bitcast i8*%aO to i8**
store i8*%aN,i8**%aP,align 8
%aQ=getelementptr inbounds i8,i8*%aH,i64 16
%aR=bitcast i8*%aQ to i32*
store i32 2,i32*%aR,align 4
%aS=call i8*@sml_alloc(i32 inreg 20)#0
%aT=getelementptr inbounds i8,i8*%aS,i64 -4
%aU=bitcast i8*%aT to i32*
store i32 1342177296,i32*%aU,align 4
%aV=bitcast i8*%aS to i64*
store i64 0,i64*%aV,align 4
%aW=load i8*,i8**%c,align 8
%aX=getelementptr inbounds i8,i8*%aS,i64 8
%aY=bitcast i8*%aX to i8**
store i8*%aW,i8**%aY,align 8
%aZ=getelementptr inbounds i8,i8*%aS,i64 16
%a0=bitcast i8*%aZ to i32*
store i32 2,i32*%a0,align 4
ret i8*%aS
a1:
store i8*null,i8**%f,align 8
store i8*null,i8**%c,align 8
%a2=getelementptr inbounds i8,i8*%n,i64 8
%a3=bitcast i8*%a2 to i8***
%a4=load i8**,i8***%a3,align 8
%a5=load i8*,i8**%a4,align 8
%a6=bitcast i8*%a5 to i32*
%a7=load i32,i32*%a6,align 4
switch i32%a7,label%bA[
i32 2,label%bm
i32 3,label%a8
]
a8:
%a9=getelementptr inbounds i8,i8*%a5,i64 8
%ba=bitcast i8*%a9 to i32**
%bb=load i32*,i32**%ba,align 8
%bc=load i32,i32*%bb,align 4
%bd=call fastcc i32@_SMLFN12RuntimeTypes8tagValueE(i32 inreg%bc)
%be=call i8*@sml_alloc(i32 inreg 12)#0
%bf=bitcast i8*%be to i32*
%bg=getelementptr inbounds i8,i8*%be,i64 -4
%bh=bitcast i8*%bg to i32*
store i32 1342177288,i32*%bh,align 4
store i32 1,i32*%bf,align 4
%bi=getelementptr inbounds i8,i8*%be,i64 4
%bj=bitcast i8*%bi to i32*
store i32%bd,i32*%bj,align 4
%bk=getelementptr inbounds i8,i8*%be,i64 8
%bl=bitcast i8*%bk to i32*
store i32 0,i32*%bl,align 4
ret i8*%be
bm:
%bn=getelementptr inbounds i8,i8*%a5,i64 8
%bo=bitcast i8*%bn to i8***
%bp=load i8**,i8***%bo,align 8
%bq=load i8*,i8**%bp,align 8
%br=call fastcc i32@_SMLFN12RuntimeTypes7getSizeE(i8*inreg%bq)
%bs=call i8*@sml_alloc(i32 inreg 12)#0
%bt=bitcast i8*%bs to i32*
%bu=getelementptr inbounds i8,i8*%bs,i64 -4
%bv=bitcast i8*%bu to i32*
store i32 1342177288,i32*%bv,align 4
store i32 1,i32*%bt,align 4
%bw=getelementptr inbounds i8,i8*%bs,i64 4
%bx=bitcast i8*%bw to i32*
store i32%br,i32*%bx,align 4
%by=getelementptr inbounds i8,i8*%bs,i64 8
%bz=bitcast i8*%by to i32*
store i32 0,i32*%bz,align 4
ret i8*%bs
bA:
%bB=load i8*,i8**@_SMLZN3Bug3BugE,align 8
store i8*%bB,i8**%c,align 8
%bC=call i8*@sml_alloc(i32 inreg 28)#0
%bD=getelementptr inbounds i8,i8*%bC,i64 -4
%bE=bitcast i8*%bD to i32*
store i32 1342177304,i32*%bE,align 4
store i8*%bC,i8**%d,align 8
%bF=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bG=bitcast i8*%bC to i8**
store i8*%bF,i8**%bG,align 8
%bH=getelementptr inbounds i8,i8*%bC,i64 8
%bI=bitcast i8*%bH to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[85x i8]}>,<{[4x i8],i32,[85x i8]}>*@r,i64 0,i32 2,i64 0),i8**%bI,align 8
%bJ=getelementptr inbounds i8,i8*%bC,i64 16
%bK=bitcast i8*%bJ to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[8x i8]}>,<{[4x i8],i32,[8x i8]}>*@s,i64 0,i32 2,i64 0),i8**%bK,align 8
%bL=getelementptr inbounds i8,i8*%bC,i64 24
%bM=bitcast i8*%bL to i32*
store i32 7,i32*%bM,align 4
%bN=call i8*@sml_alloc(i32 inreg 60)#0
%bO=getelementptr inbounds i8,i8*%bN,i64 -4
%bP=bitcast i8*%bO to i32*
store i32 1342177336,i32*%bP,align 4
%bQ=getelementptr inbounds i8,i8*%bN,i64 56
%bR=bitcast i8*%bQ to i32*
store i32 1,i32*%bR,align 4
%bS=load i8*,i8**%d,align 8
%bT=bitcast i8*%bN to i8**
store i8*%bS,i8**%bT,align 8
call void@sml_raise(i8*inreg%bN)#1
unreachable
}
define internal fastcc i8*@_SMLLLN17BitmapCompilation7toValueE_123(i8*inreg%a)unnamed_addr#4 gc"smlsharp"{
%b=alloca i8*,align 8
%c=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
call void@llvm.gcroot(i8**%c,i8*null)#0
%d=getelementptr inbounds i8,i8*%a,i64 8
%e=bitcast i8*%d to i8**
%f=load i8*,i8**%e,align 8
store i8*%f,i8**%b,align 8
%g=call i8*@sml_alloc(i32 inreg 12)#0
%h=getelementptr inbounds i8,i8*%g,i64 -4
%i=bitcast i8*%h to i32*
store i32 1342177288,i32*%i,align 4
store i8*%g,i8**%c,align 8
%j=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%k=bitcast i8*%g to i8**
store i8*%j,i8**%k,align 8
%l=getelementptr inbounds i8,i8*%g,i64 8
%m=bitcast i8*%l to i32*
store i32 1,i32*%m,align 4
%n=call i8*@sml_alloc(i32 inreg 28)#0
%o=getelementptr inbounds i8,i8*%n,i64 -4
%p=bitcast i8*%o to i32*
store i32 1342177304,i32*%p,align 4
%q=load i8*,i8**%c,align 8
%r=bitcast i8*%n to i8**
store i8*%q,i8**%r,align 8
%s=getelementptr inbounds i8,i8*%n,i64 8
%t=bitcast i8*%s to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN17BitmapCompilation7toValueE_122 to void(...)*),void(...)**%t,align 8
%u=getelementptr inbounds i8,i8*%n,i64 16
%v=bitcast i8*%u to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN17BitmapCompilation7toValueE_122 to void(...)*),void(...)**%v,align 8
%w=getelementptr inbounds i8,i8*%n,i64 24
%x=bitcast i8*%w to i32*
store i32 -2147483647,i32*%x,align 4
ret i8*%n
}
define internal fastcc i8*@_SMLLLN17BitmapCompilation10compileExpE_166(i8*inreg%a,i8*inreg%b)#4 gc"smlsharp"{
%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**%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
store i8*%h,i8**%c,align 8
%i=bitcast i8*%b to i8**
%j=load i8*,i8**%i,align 8
store i8*%j,i8**%d,align 8
%k=getelementptr inbounds i8,i8*%b,i64 8
%l=bitcast i8*%k to i8**
%m=load i8*,i8**%l,align 8
store i8*%m,i8**%e,align 8
%n=call i8*@sml_alloc(i32 inreg 28)#0
%o=getelementptr inbounds i8,i8*%n,i64 -4
%p=bitcast i8*%o to i32*
store i32 1342177304,i32*%p,align 4
store i8*%n,i8**%f,align 8
%q=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%r=bitcast i8*%n to i8**
store i8*%q,i8**%r,align 8
%s=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%t=getelementptr inbounds i8,i8*%n,i64 8
%u=bitcast i8*%t to i8**
store i8*%s,i8**%u,align 8
%v=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%w=getelementptr inbounds i8,i8*%n,i64 16
%x=bitcast i8*%w to i8**
store i8*%v,i8**%x,align 8
%y=getelementptr inbounds i8,i8*%n,i64 24
%z=bitcast i8*%y to i32*
store i32 7,i32*%z,align 4
%A=call i8*@sml_alloc(i32 inreg 20)#0
%B=bitcast i8*%A to i32*
%C=getelementptr inbounds i8,i8*%A,i64 -4
%D=bitcast i8*%C to i32*
store i32 1342177296,i32*%D,align 4
%E=getelementptr inbounds i8,i8*%A,i64 4
%F=bitcast i8*%E to i32*
store i32 0,i32*%F,align 1
store i32 9,i32*%B,align 4
%G=load i8*,i8**%f,align 8
%H=getelementptr inbounds i8,i8*%A,i64 8
%I=bitcast i8*%H to i8**
store i8*%G,i8**%I,align 8
%J=getelementptr inbounds i8,i8*%A,i64 16
%K=bitcast i8*%J to i32*
store i32 2,i32*%K,align 4
ret i8*%A
}
define internal fastcc i8*@_SMLLL10argExpList_167(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%c,align 8
store i8*%b,i8**%d,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%g,label%i
g:
%h=bitcast i8*%a to i8**
br label%m
i:
call void@sml_check(i32 inreg%e)
%j=load i8*,i8**%d,align 8
%k=bitcast i8**%c to i8***
%l=load i8**,i8***%k,align 8
br label%m
m:
%n=phi i8**[%l,%i],[%h,%g]
%o=phi i8*[%j,%i],[%b,%g]
%p=load i8*,i8**%n,align 8
%q=tail call fastcc i8*@_SMLLLN17BitmapCompilation10compileExpE_125(i8*inreg%p,i8*inreg%o)
ret i8*%q
}
define internal fastcc i8*@_SMLLL8branches_168(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%g,label%i
g:
%h=bitcast i8*%a to i8**
br label%m
i:
call void@sml_check(i32 inreg%e)
%j=load i8*,i8**%c,align 8
%k=bitcast i8**%d to i8***
%l=load i8**,i8***%k,align 8
br label%m
m:
%n=phi i8**[%l,%i],[%h,%g]
%o=phi i8*[%j,%i],[%b,%g]
%p=bitcast i8*%o to i8**
%q=load i8*,i8**%p,align 8
%r=getelementptr inbounds i8,i8*%o,i64 8
%s=bitcast i8*%r to i8**
%t=load i8*,i8**%s,align 8
store i8*%t,i8**%c,align 8
store i8*null,i8**%d,align 8
%u=load i8*,i8**%n,align 8
%v=call fastcc i8*@_SMLLLN17BitmapCompilation10compileExpE_125(i8*inreg%u,i8*inreg%q)
store i8*%v,i8**%d,align 8
%w=call i8*@sml_alloc(i32 inreg 20)#0
%x=getelementptr inbounds i8,i8*%w,i64 -4
%y=bitcast i8*%x to i32*
store i32 1342177296,i32*%y,align 4
%z=load i8*,i8**%d,align 8
%A=bitcast i8*%w to i8**
store i8*%z,i8**%A,align 8
%B=load i8*,i8**%c,align 8
%C=getelementptr inbounds i8,i8*%w,i64 8
%D=bitcast i8*%C to i8**
store i8*%B,i8**%D,align 8
%E=getelementptr inbounds i8,i8*%w,i64 16
%F=bitcast i8*%E to i32*
store i32 3,i32*%F,align 4
ret i8*%w
}
define internal fastcc i8*@_SMLLL10argExpList_169(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%c,align 8
store i8*%b,i8**%d,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%g,label%i
g:
%h=bitcast i8*%a to i8**
br label%m
i:
call void@sml_check(i32 inreg%e)
%j=load i8*,i8**%d,align 8
%k=bitcast i8**%c to i8***
%l=load i8**,i8***%k,align 8
br label%m
m:
%n=phi i8**[%l,%i],[%h,%g]
%o=phi i8*[%j,%i],[%b,%g]
%p=load i8*,i8**%n,align 8
%q=tail call fastcc i8*@_SMLLLN17BitmapCompilation10compileExpE_125(i8*inreg%p,i8*inreg%o)
ret i8*%q
}
define internal fastcc i8*@_SMLLL11instTagList_171(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
l:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
%e=alloca i8*,align 8
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
store i8*%a,i8**%c,align 8
store i8*%b,i8**%d,align 8
%f=load atomic i32,i32*@sml_check_flag unordered,align 4
%g=icmp eq i32%f,0
br i1%g,label%j,label%h
h:
call void@sml_check(i32 inreg%f)
%i=load i8*,i8**%d,align 8
br label%j
j:
%k=phi i8*[%i,%h],[%b,%l]
store i8*null,i8**%d,align 8
%m=bitcast i8*%k to i32*
%n=load i32,i32*%m,align 4
switch i32%n,label%o[
i32 0,label%ai
i32 1,label%G
]
o:
call void@sml_matchcomp_bug()
%p=load i8*,i8**@_SMLZ5Match,align 8
store i8*%p,i8**%c,align 8
%q=call i8*@sml_alloc(i32 inreg 20)#0
%r=getelementptr inbounds i8,i8*%q,i64 -4
%s=bitcast i8*%r to i32*
store i32 1342177296,i32*%s,align 4
store i8*%q,i8**%d,align 8
%t=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%u=bitcast i8*%q to i8**
store i8*%t,i8**%u,align 8
%v=getelementptr inbounds i8,i8*%q,i64 8
%w=bitcast i8*%v to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[84x i8]}>,<{[4x i8],i32,[84x i8]}>*@v,i64 0,i32 2,i64 0),i8**%w,align 8
%x=getelementptr inbounds i8,i8*%q,i64 16
%y=bitcast i8*%x to i32*
store i32 3,i32*%y,align 4
%z=call i8*@sml_alloc(i32 inreg 60)#0
%A=getelementptr inbounds i8,i8*%z,i64 -4
%B=bitcast i8*%A to i32*
store i32 1342177336,i32*%B,align 4
%C=getelementptr inbounds i8,i8*%z,i64 56
%D=bitcast i8*%C to i32*
store i32 1,i32*%D,align 4
%E=load i8*,i8**%d,align 8
%F=bitcast i8*%z to i8**
store i8*%E,i8**%F,align 8
call void@sml_raise(i8*inreg%z)#1
unreachable
G:
%H=bitcast i8**%c to i8***
%I=load i8**,i8***%H,align 8
%J=load i8*,i8**%I,align 8
store i8*%J,i8**%c,align 8
%K=getelementptr inbounds i8,i8*%k,i64 8
%L=bitcast i8*%K to i8**
%M=load i8*,i8**%L,align 8
store i8*%M,i8**%d,align 8
%N=call i8*@sml_alloc(i32 inreg 20)#0
%O=getelementptr inbounds i8,i8*%N,i64 -4
%P=bitcast i8*%O to i32*
store i32 1342177296,i32*%P,align 4
store i8*%N,i8**%e,align 8
%Q=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%R=bitcast i8*%N to i8**
store i8*%Q,i8**%R,align 8
%S=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%T=getelementptr inbounds i8,i8*%N,i64 8
%U=bitcast i8*%T to i8**
store i8*%S,i8**%U,align 8
%V=getelementptr inbounds i8,i8*%N,i64 16
%W=bitcast i8*%V to i32*
store i32 3,i32*%W,align 4
%X=call i8*@sml_alloc(i32 inreg 20)#0
%Y=bitcast i8*%X to i32*
%Z=getelementptr inbounds i8,i8*%X,i64 -4
%aa=bitcast i8*%Z to i32*
store i32 1342177296,i32*%aa,align 4
%ab=getelementptr inbounds i8,i8*%X,i64 4
%ac=bitcast i8*%ab to i32*
store i32 0,i32*%ac,align 1
store i32 18,i32*%Y,align 4
%ad=load i8*,i8**%e,align 8
%ae=getelementptr inbounds i8,i8*%X,i64 8
%af=bitcast i8*%ae to i8**
store i8*%ad,i8**%af,align 8
%ag=getelementptr inbounds i8,i8*%X,i64 16
%ah=bitcast i8*%ag to i32*
store i32 2,i32*%ah,align 4
ret i8*%X
ai:
%aj=getelementptr inbounds i8,i8*%k,i64 8
%ak=bitcast i8*%aj to i8**
%al=load i8*,i8**%ak,align 8
store i8*%al,i8**%d,align 8
%am=bitcast i8**%c to i8***
%an=load i8**,i8***%am,align 8
%ao=load i8*,i8**%an,align 8
store i8*%ao,i8**%c,align 8
%ap=call i8*@sml_alloc(i32 inreg 20)#0
%aq=getelementptr inbounds i8,i8*%ap,i64 -4
%ar=bitcast i8*%aq to i32*
store i32 1342177296,i32*%ar,align 4
store i8*%ap,i8**%e,align 8
%as=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%at=bitcast i8*%ap to i8**
store i8*%as,i8**%at,align 8
%au=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%av=getelementptr inbounds i8,i8*%ap,i64 8
%aw=bitcast i8*%av to i8**
store i8*%au,i8**%aw,align 8
%ax=getelementptr inbounds i8,i8*%ap,i64 16
%ay=bitcast i8*%ax to i32*
store i32 3,i32*%ay,align 4
%az=call i8*@sml_alloc(i32 inreg 20)#0
%aA=bitcast i8*%az to i32*
%aB=getelementptr inbounds i8,i8*%az,i64 -4
%aC=bitcast i8*%aB to i32*
store i32 1342177296,i32*%aC,align 4
%aD=getelementptr inbounds i8,i8*%az,i64 4
%aE=bitcast i8*%aD to i32*
store i32 0,i32*%aE,align 1
store i32 4,i32*%aA,align 4
%aF=load i8*,i8**%e,align 8
%aG=getelementptr inbounds i8,i8*%az,i64 8
%aH=bitcast i8*%aG to i8**
store i8*%aF,i8**%aH,align 8
%aI=getelementptr inbounds i8,i8*%az,i64 16
%aJ=bitcast i8*%aI to i32*
store i32 2,i32*%aJ,align 4
ret i8*%az
}
define internal fastcc i8*@_SMLLL12instSizeList_173(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
l:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
%e=alloca i8*,align 8
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
store i8*%a,i8**%c,align 8
store i8*%b,i8**%d,align 8
%f=load atomic i32,i32*@sml_check_flag unordered,align 4
%g=icmp eq i32%f,0
br i1%g,label%j,label%h
h:
call void@sml_check(i32 inreg%f)
%i=load i8*,i8**%d,align 8
br label%j
j:
%k=phi i8*[%i,%h],[%b,%l]
store i8*null,i8**%d,align 8
%m=bitcast i8*%k to i32*
%n=load i32,i32*%m,align 4
switch i32%n,label%o[
i32 0,label%ai
i32 1,label%G
]
o:
call void@sml_matchcomp_bug()
%p=load i8*,i8**@_SMLZ5Match,align 8
store i8*%p,i8**%c,align 8
%q=call i8*@sml_alloc(i32 inreg 20)#0
%r=getelementptr inbounds i8,i8*%q,i64 -4
%s=bitcast i8*%r to i32*
store i32 1342177296,i32*%s,align 4
store i8*%q,i8**%d,align 8
%t=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%u=bitcast i8*%q to i8**
store i8*%t,i8**%u,align 8
%v=getelementptr inbounds i8,i8*%q,i64 8
%w=bitcast i8*%v to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[84x i8]}>,<{[4x i8],i32,[84x i8]}>*@v,i64 0,i32 2,i64 0),i8**%w,align 8
%x=getelementptr inbounds i8,i8*%q,i64 16
%y=bitcast i8*%x to i32*
store i32 3,i32*%y,align 4
%z=call i8*@sml_alloc(i32 inreg 60)#0
%A=getelementptr inbounds i8,i8*%z,i64 -4
%B=bitcast i8*%A to i32*
store i32 1342177336,i32*%B,align 4
%C=getelementptr inbounds i8,i8*%z,i64 56
%D=bitcast i8*%C to i32*
store i32 1,i32*%D,align 4
%E=load i8*,i8**%d,align 8
%F=bitcast i8*%z to i8**
store i8*%E,i8**%F,align 8
call void@sml_raise(i8*inreg%z)#1
unreachable
G:
%H=bitcast i8**%c to i8***
%I=load i8**,i8***%H,align 8
%J=load i8*,i8**%I,align 8
store i8*%J,i8**%c,align 8
%K=getelementptr inbounds i8,i8*%k,i64 8
%L=bitcast i8*%K to i8**
%M=load i8*,i8**%L,align 8
store i8*%M,i8**%d,align 8
%N=call i8*@sml_alloc(i32 inreg 20)#0
%O=getelementptr inbounds i8,i8*%N,i64 -4
%P=bitcast i8*%O to i32*
store i32 1342177296,i32*%P,align 4
store i8*%N,i8**%e,align 8
%Q=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%R=bitcast i8*%N to i8**
store i8*%Q,i8**%R,align 8
%S=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%T=getelementptr inbounds i8,i8*%N,i64 8
%U=bitcast i8*%T to i8**
store i8*%S,i8**%U,align 8
%V=getelementptr inbounds i8,i8*%N,i64 16
%W=bitcast i8*%V to i32*
store i32 3,i32*%W,align 4
%X=call i8*@sml_alloc(i32 inreg 20)#0
%Y=bitcast i8*%X to i32*
%Z=getelementptr inbounds i8,i8*%X,i64 -4
%aa=bitcast i8*%Z to i32*
store i32 1342177296,i32*%aa,align 4
%ab=getelementptr inbounds i8,i8*%X,i64 4
%ac=bitcast i8*%ab to i32*
store i32 0,i32*%ac,align 1
store i32 18,i32*%Y,align 4
%ad=load i8*,i8**%e,align 8
%ae=getelementptr inbounds i8,i8*%X,i64 8
%af=bitcast i8*%ae to i8**
store i8*%ad,i8**%af,align 8
%ag=getelementptr inbounds i8,i8*%X,i64 16
%ah=bitcast i8*%ag to i32*
store i32 2,i32*%ah,align 4
ret i8*%X
ai:
%aj=getelementptr inbounds i8,i8*%k,i64 8
%ak=bitcast i8*%aj to i8**
%al=load i8*,i8**%ak,align 8
store i8*%al,i8**%d,align 8
%am=bitcast i8**%c to i8***
%an=load i8**,i8***%am,align 8
%ao=load i8*,i8**%an,align 8
store i8*%ao,i8**%c,align 8
%ap=call i8*@sml_alloc(i32 inreg 20)#0
%aq=getelementptr inbounds i8,i8*%ap,i64 -4
%ar=bitcast i8*%aq to i32*
store i32 1342177296,i32*%ar,align 4
store i8*%ap,i8**%e,align 8
%as=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%at=bitcast i8*%ap to i8**
store i8*%as,i8**%at,align 8
%au=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%av=getelementptr inbounds i8,i8*%ap,i64 8
%aw=bitcast i8*%av to i8**
store i8*%au,i8**%aw,align 8
%ax=getelementptr inbounds i8,i8*%ap,i64 16
%ay=bitcast i8*%ax to i32*
store i32 3,i32*%ay,align 4
%az=call i8*@sml_alloc(i32 inreg 20)#0
%aA=bitcast i8*%az to i32*
%aB=getelementptr inbounds i8,i8*%az,i64 -4
%aC=bitcast i8*%aB to i32*
store i32 1342177296,i32*%aC,align 4
%aD=getelementptr inbounds i8,i8*%az,i64 4
%aE=bitcast i8*%aD to i32*
store i32 0,i32*%aE,align 1
store i32 4,i32*%aA,align 4
%aF=load i8*,i8**%e,align 8
%aG=getelementptr inbounds i8,i8*%az,i64 8
%aH=bitcast i8*%aG to i8**
store i8*%aF,i8**%aH,align 8
%aI=getelementptr inbounds i8,i8*%az,i64 16
%aJ=bitcast i8*%aI to i32*
store i32 2,i32*%aJ,align 4
ret i8*%az
}
define internal fastcc i8*@_SMLLLN17BitmapCompilation10compileExpE_174(i8*inreg%a)#4 gc"smlsharp"{
%b=getelementptr inbounds i8,i8*%a,i64 24
%c=bitcast i8*%b to i8**
%d=load i8*,i8**%c,align 8
ret i8*%d
}
define internal fastcc i8*@_SMLLL6fields_178(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
q:
%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
%i=alloca i8*,align 8
%j=alloca i8*,align 8
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
call void@llvm.gcroot(i8**%i,i8*null)#0
call void@llvm.gcroot(i8**%j,i8*null)#0
store i8*%a,i8**%h,align 8
store i8*%b,i8**%c,align 8
%k=load atomic i32,i32*@sml_check_flag unordered,align 4
%l=icmp eq i32%k,0
br i1%l,label%o,label%m
m:
call void@sml_check(i32 inreg%k)
%n=load i8*,i8**%c,align 8
br label%o
o:
%p=phi i8*[%n,%m],[%b,%q]
%r=bitcast i8*%p to i8**
%s=load i8*,i8**%r,align 8
store i8*%s,i8**%c,align 8
%t=getelementptr inbounds i8,i8*%p,i64 8
%u=bitcast i8*%t to i8**
%v=load i8*,i8**%u,align 8
%w=bitcast i8*%v to i8**
%x=load i8*,i8**%w,align 8
store i8*%x,i8**%d,align 8
%y=getelementptr inbounds i8,i8*%v,i64 8
%z=bitcast i8*%y to i8**
%A=load i8*,i8**%z,align 8
store i8*%A,i8**%e,align 8
%B=getelementptr inbounds i8,i8*%v,i64 16
%C=bitcast i8*%B to i8**
%D=load i8*,i8**%C,align 8
%E=getelementptr inbounds i8,i8*%v,i64 24
%F=bitcast i8*%E to i8**
%G=load i8*,i8**%F,align 8
store i8*%G,i8**%f,align 8
%H=bitcast i8*%D to i32*
%I=load i32,i32*%H,align 4
switch i32%I,label%J[
i32 0,label%az
i32 1,label%ab
]
J:
store i8*null,i8**%d,align 8
store i8*null,i8**%e,align 8
store i8*null,i8**%f,align 8
store i8*null,i8**%h,align 8
call void@sml_matchcomp_bug()
%K=load i8*,i8**@_SMLZ5Match,align 8
store i8*%K,i8**%c,align 8
%L=call i8*@sml_alloc(i32 inreg 20)#0
%M=getelementptr inbounds i8,i8*%L,i64 -4
%N=bitcast i8*%M to i32*
store i32 1342177296,i32*%N,align 4
store i8*%L,i8**%d,align 8
%O=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%P=bitcast i8*%L to i8**
store i8*%O,i8**%P,align 8
%Q=getelementptr inbounds i8,i8*%L,i64 8
%R=bitcast i8*%Q to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[84x i8]}>,<{[4x i8],i32,[84x i8]}>*@v,i64 0,i32 2,i64 0),i8**%R,align 8
%S=getelementptr inbounds i8,i8*%L,i64 16
%T=bitcast i8*%S to i32*
store i32 3,i32*%T,align 4
%U=call i8*@sml_alloc(i32 inreg 60)#0
%V=getelementptr inbounds i8,i8*%U,i64 -4
%W=bitcast i8*%V to i32*
store i32 1342177336,i32*%W,align 4
%X=getelementptr inbounds i8,i8*%U,i64 56
%Y=bitcast i8*%X to i32*
store i32 1,i32*%Y,align 4
%Z=load i8*,i8**%d,align 8
%aa=bitcast i8*%U to i8**
store i8*%Z,i8**%aa,align 8
call void@sml_raise(i8*inreg%U)#1
unreachable
ab:
%ac=load i8*,i8**%h,align 8
%ad=getelementptr inbounds i8,i8*%ac,i64 8
%ae=bitcast i8*%ad to i8**
%af=load i8*,i8**%ae,align 8
store i8*%af,i8**%g,align 8
%ag=getelementptr inbounds i8,i8*%D,i64 8
%ah=bitcast i8*%ag to i8**
%ai=load i8*,i8**%ah,align 8
store i8*%ai,i8**%i,align 8
%aj=call i8*@sml_alloc(i32 inreg 20)#0
%ak=getelementptr inbounds i8,i8*%aj,i64 -4
%al=bitcast i8*%ak to i32*
store i32 1342177296,i32*%al,align 4
store i8*%aj,i8**%j,align 8
%am=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%an=bitcast i8*%aj to i8**
store i8*%am,i8**%an,align 8
%ao=load i8*,i8**%i,align 8
store i8*null,i8**%i,align 8
%ap=getelementptr inbounds i8,i8*%aj,i64 8
%aq=bitcast i8*%ap to i8**
store i8*%ao,i8**%aq,align 8
%ar=getelementptr inbounds i8,i8*%aj,i64 16
%as=bitcast i8*%ar to i32*
store i32 3,i32*%as,align 4
%at=call i8*@sml_alloc(i32 inreg 20)#0
%au=bitcast i8*%at to i32*
%av=getelementptr inbounds i8,i8*%at,i64 -4
%aw=bitcast i8*%av to i32*
store i32 1342177296,i32*%aw,align 4
%ax=getelementptr inbounds i8,i8*%at,i64 4
%ay=bitcast i8*%ax to i32*
store i32 0,i32*%ay,align 1
store i32 18,i32*%au,align 4
br label%aX
az:
%aA=getelementptr inbounds i8,i8*%D,i64 8
%aB=bitcast i8*%aA to i8**
%aC=load i8*,i8**%aB,align 8
store i8*%aC,i8**%g,align 8
%aD=load i8*,i8**%h,align 8
%aE=getelementptr inbounds i8,i8*%aD,i64 8
%aF=bitcast i8*%aE to i8**
%aG=load i8*,i8**%aF,align 8
store i8*%aG,i8**%i,align 8
%aH=call i8*@sml_alloc(i32 inreg 20)#0
%aI=getelementptr inbounds i8,i8*%aH,i64 -4
%aJ=bitcast i8*%aI to i32*
store i32 1342177296,i32*%aJ,align 4
store i8*%aH,i8**%j,align 8
%aK=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%aL=bitcast i8*%aH to i8**
store i8*%aK,i8**%aL,align 8
%aM=load i8*,i8**%i,align 8
store i8*null,i8**%i,align 8
%aN=getelementptr inbounds i8,i8*%aH,i64 8
%aO=bitcast i8*%aN to i8**
store i8*%aM,i8**%aO,align 8
%aP=getelementptr inbounds i8,i8*%aH,i64 16
%aQ=bitcast i8*%aP to i32*
store i32 3,i32*%aQ,align 4
%aR=call i8*@sml_alloc(i32 inreg 20)#0
%aS=bitcast i8*%aR to i32*
%aT=getelementptr inbounds i8,i8*%aR,i64 -4
%aU=bitcast i8*%aT to i32*
store i32 1342177296,i32*%aU,align 4
%aV=getelementptr inbounds i8,i8*%aR,i64 4
%aW=bitcast i8*%aV to i32*
store i32 0,i32*%aW,align 1
store i32 4,i32*%aS,align 4
br label%aX
aX:
%aY=phi i8*[%aR,%az],[%at,%ab]
%aZ=load i8*,i8**%j,align 8
store i8*null,i8**%j,align 8
%a0=getelementptr inbounds i8,i8*%aY,i64 8
%a1=bitcast i8*%a0 to i8**
store i8*%aZ,i8**%a1,align 8
%a2=getelementptr inbounds i8,i8*%aY,i64 16
%a3=bitcast i8*%a2 to i32*
store i32 2,i32*%a3,align 4
store i8*%aY,i8**%g,align 8
%a4=load i8*,i8**%e,align 8
%a5=bitcast i8*%a4 to i32*
%a6=load i32,i32*%a5,align 4
switch i32%a6,label%a7[
i32 0,label%bN
i32 1,label%bp
]
a7:
store i8*null,i8**%d,align 8
store i8*null,i8**%e,align 8
store i8*null,i8**%f,align 8
store i8*null,i8**%g,align 8
store i8*null,i8**%h,align 8
call void@sml_matchcomp_bug()
%a8=load i8*,i8**@_SMLZ5Match,align 8
store i8*%a8,i8**%c,align 8
%a9=call i8*@sml_alloc(i32 inreg 20)#0
%ba=getelementptr inbounds i8,i8*%a9,i64 -4
%bb=bitcast i8*%ba to i32*
store i32 1342177296,i32*%bb,align 4
store i8*%a9,i8**%d,align 8
%bc=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bd=bitcast i8*%a9 to i8**
store i8*%bc,i8**%bd,align 8
%be=getelementptr inbounds i8,i8*%a9,i64 8
%bf=bitcast i8*%be to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[84x i8]}>,<{[4x i8],i32,[84x i8]}>*@v,i64 0,i32 2,i64 0),i8**%bf,align 8
%bg=getelementptr inbounds i8,i8*%a9,i64 16
%bh=bitcast i8*%bg to i32*
store i32 3,i32*%bh,align 4
%bi=call i8*@sml_alloc(i32 inreg 60)#0
%bj=getelementptr inbounds i8,i8*%bi,i64 -4
%bk=bitcast i8*%bj to i32*
store i32 1342177336,i32*%bk,align 4
%bl=getelementptr inbounds i8,i8*%bi,i64 56
%bm=bitcast i8*%bl to i32*
store i32 1,i32*%bm,align 4
%bn=load i8*,i8**%d,align 8
%bo=bitcast i8*%bi to i8**
store i8*%bn,i8**%bo,align 8
call void@sml_raise(i8*inreg%bi)#1
unreachable
bp:
%bq=load i8*,i8**%h,align 8
%br=getelementptr inbounds i8,i8*%bq,i64 8
%bs=bitcast i8*%br to i8**
%bt=load i8*,i8**%bs,align 8
store i8*%bt,i8**%i,align 8
%bu=getelementptr inbounds i8,i8*%a4,i64 8
%bv=bitcast i8*%bu to i8**
%bw=load i8*,i8**%bv,align 8
store i8*%bw,i8**%e,align 8
%bx=call i8*@sml_alloc(i32 inreg 20)#0
%by=getelementptr inbounds i8,i8*%bx,i64 -4
%bz=bitcast i8*%by to i32*
store i32 1342177296,i32*%bz,align 4
store i8*%bx,i8**%j,align 8
%bA=load i8*,i8**%i,align 8
store i8*null,i8**%i,align 8
%bB=bitcast i8*%bx to i8**
store i8*%bA,i8**%bB,align 8
%bC=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%bD=getelementptr inbounds i8,i8*%bx,i64 8
%bE=bitcast i8*%bD to i8**
store i8*%bC,i8**%bE,align 8
%bF=getelementptr inbounds i8,i8*%bx,i64 16
%bG=bitcast i8*%bF to i32*
store i32 3,i32*%bG,align 4
%bH=call i8*@sml_alloc(i32 inreg 20)#0
%bI=bitcast i8*%bH to i32*
%bJ=getelementptr inbounds i8,i8*%bH,i64 -4
%bK=bitcast i8*%bJ to i32*
store i32 1342177296,i32*%bK,align 4
%bL=getelementptr inbounds i8,i8*%bH,i64 4
%bM=bitcast i8*%bL to i32*
store i32 0,i32*%bM,align 1
store i32 18,i32*%bI,align 4
br label%cb
bN:
%bO=getelementptr inbounds i8,i8*%a4,i64 8
%bP=bitcast i8*%bO to i8**
%bQ=load i8*,i8**%bP,align 8
store i8*%bQ,i8**%e,align 8
%bR=load i8*,i8**%h,align 8
%bS=getelementptr inbounds i8,i8*%bR,i64 8
%bT=bitcast i8*%bS to i8**
%bU=load i8*,i8**%bT,align 8
store i8*%bU,i8**%i,align 8
%bV=call i8*@sml_alloc(i32 inreg 20)#0
%bW=getelementptr inbounds i8,i8*%bV,i64 -4
%bX=bitcast i8*%bW to i32*
store i32 1342177296,i32*%bX,align 4
store i8*%bV,i8**%j,align 8
%bY=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%bZ=bitcast i8*%bV to i8**
store i8*%bY,i8**%bZ,align 8
%b0=load i8*,i8**%i,align 8
store i8*null,i8**%i,align 8
%b1=getelementptr inbounds i8,i8*%bV,i64 8
%b2=bitcast i8*%b1 to i8**
store i8*%b0,i8**%b2,align 8
%b3=getelementptr inbounds i8,i8*%bV,i64 16
%b4=bitcast i8*%b3 to i32*
store i32 3,i32*%b4,align 4
%b5=call i8*@sml_alloc(i32 inreg 20)#0
%b6=bitcast i8*%b5 to i32*
%b7=getelementptr inbounds i8,i8*%b5,i64 -4
%b8=bitcast i8*%b7 to i32*
store i32 1342177296,i32*%b8,align 4
%b9=getelementptr inbounds i8,i8*%b5,i64 4
%ca=bitcast i8*%b9 to i32*
store i32 0,i32*%ca,align 1
store i32 4,i32*%b6,align 4
br label%cb
cb:
%cc=phi i8*[%b5,%bN],[%bH,%bp]
%cd=load i8*,i8**%j,align 8
store i8*null,i8**%j,align 8
%ce=getelementptr inbounds i8,i8*%cc,i64 8
%cf=bitcast i8*%ce to i8**
store i8*%cd,i8**%cf,align 8
%cg=getelementptr inbounds i8,i8*%cc,i64 16
%ch=bitcast i8*%cg to i32*
store i32 2,i32*%ch,align 4
store i8*%cc,i8**%e,align 8
%ci=bitcast i8**%h to i8***
%cj=load i8**,i8***%ci,align 8
store i8*null,i8**%h,align 8
%ck=load i8*,i8**%cj,align 8
%cl=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%cm=call fastcc i8*@_SMLLLN17BitmapCompilation10compileExpE_125(i8*inreg%ck,i8*inreg%cl)
store i8*%cm,i8**%d,align 8
%cn=call i8*@sml_alloc(i32 inreg 44)#0
%co=getelementptr inbounds i8,i8*%cn,i64 -4
%cp=bitcast i8*%co to i32*
store i32 1342177320,i32*%cp,align 4
%cq=load i8*,i8**%d,align 8
%cr=bitcast i8*%cn to i8**
store i8*%cq,i8**%cr,align 8
%cs=load i8*,i8**%c,align 8
%ct=getelementptr inbounds i8,i8*%cn,i64 8
%cu=bitcast i8*%ct to i8**
store i8*%cs,i8**%cu,align 8
%cv=load i8*,i8**%e,align 8
%cw=getelementptr inbounds i8,i8*%cn,i64 16
%cx=bitcast i8*%cw to i8**
store i8*%cv,i8**%cx,align 8
%cy=load i8*,i8**%g,align 8
%cz=getelementptr inbounds i8,i8*%cn,i64 24
%cA=bitcast i8*%cz to i8**
store i8*%cy,i8**%cA,align 8
%cB=load i8*,i8**%f,align 8
%cC=getelementptr inbounds i8,i8*%cn,i64 32
%cD=bitcast i8*%cC to i8**
store i8*%cB,i8**%cD,align 8
%cE=getelementptr inbounds i8,i8*%cn,i64 40
%cF=bitcast i8*%cE to i32*
store i32 31,i32*%cF,align 4
ret i8*%cn
}
define internal fastcc i8*@_SMLLLN17BitmapCompilation10compileExpE_179(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
%c=alloca i8*,align 8
%d=alloca i8*,align 8
%e=alloca i8*,align 8
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
store i8*%a,i8**%e,align 8
store i8*%b,i8**%c,align 8
%f=load atomic i32,i32*@sml_check_flag unordered,align 4
%g=icmp eq i32%f,0
br i1%g,label%h,label%k
h:
%i=bitcast i8*%a to i8**
%j=bitcast i8**%e to i8***
br label%o
k:
call void@sml_check(i32 inreg%f)
%l=load i8*,i8**%c,align 8
%m=bitcast i8**%e to i8***
%n=load i8**,i8***%m,align 8
br label%o
o:
%p=phi i8***[%j,%h],[%m,%k]
%q=phi i8**[%i,%h],[%n,%k]
%r=phi i8*[%b,%h],[%l,%k]
%s=getelementptr inbounds i8,i8*%r,i64 16
%t=bitcast i8*%s to i8**
%u=load i8*,i8**%t,align 8
store i8*%u,i8**%c,align 8
%v=getelementptr inbounds i8,i8*%r,i64 24
%w=bitcast i8*%v to i8**
%x=load i8*,i8**%w,align 8
store i8*%x,i8**%d,align 8
%y=load i8*,i8**%q,align 8
%z=call fastcc i8*@_SMLLLN17BitmapCompilation7toValueE_123(i8*inreg%y)
%A=getelementptr inbounds i8,i8*%z,i64 16
%B=bitcast i8*%A to i8*(i8*,i8*)**
%C=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%B,align 8
%D=bitcast i8*%z to i8**
%E=load i8*,i8**%D,align 8
%F=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%G=call fastcc i8*%C(i8*inreg%E,i8*inreg%F)
store i8*%G,i8**%d,align 8
%H=load i8**,i8***%p,align 8
store i8*null,i8**%e,align 8
%I=load i8*,i8**%H,align 8
%J=call fastcc i8*@_SMLLLN17BitmapCompilation7toValueE_123(i8*inreg%I)
%K=getelementptr inbounds i8,i8*%J,i64 16
%L=bitcast i8*%K to i8*(i8*,i8*)**
%M=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%L,align 8
%N=bitcast i8*%J to i8**
%O=load i8*,i8**%N,align 8
%P=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%Q=call fastcc i8*%M(i8*inreg%O,i8*inreg%P)
store i8*%Q,i8**%c,align 8
%R=call i8*@sml_alloc(i32 inreg 20)#0
%S=getelementptr inbounds i8,i8*%R,i64 -4
%T=bitcast i8*%S to i32*
store i32 1342177296,i32*%T,align 4
%U=load i8*,i8**%c,align 8
%V=bitcast i8*%R to i8**
store i8*%U,i8**%V,align 8
%W=load i8*,i8**%d,align 8
%X=getelementptr inbounds i8,i8*%R,i64 8
%Y=bitcast i8*%X to i8**
store i8*%W,i8**%Y,align 8
%Z=getelementptr inbounds i8,i8*%R,i64 16
%aa=bitcast i8*%Z to i32*
store i32 3,i32*%aa,align 4
ret i8*%R
}
define internal fastcc i8*@_SMLLL9fieldList_180(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
%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
%i=alloca i8*,align 8
%j=alloca i8*,align 8
%k=alloca i8*,align 8
%l=alloca i8*,align 8
%m=alloca i8*,align 8
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
call void@llvm.gcroot(i8**%i,i8*null)#0
call void@llvm.gcroot(i8**%j,i8*null)#0
call void@llvm.gcroot(i8**%k,i8*null)#0
call void@llvm.gcroot(i8**%l,i8*null)#0
call void@llvm.gcroot(i8**%m,i8*null)#0
store i8*%a,i8**%i,align 8
store i8*%b,i8**%c,align 8
%n=load atomic i32,i32*@sml_check_flag unordered,align 4
%o=icmp eq i32%n,0
br i1%o,label%p,label%r
p:
%q=bitcast i8*%a to i8**
br label%v
r:
call void@sml_check(i32 inreg%n)
%s=load i8*,i8**%c,align 8
%t=bitcast i8**%i to i8***
%u=load i8**,i8***%t,align 8
br label%v
v:
%w=phi i8**[%u,%r],[%q,%p]
%x=phi i8*[%s,%r],[%b,%p]
%y=bitcast i8*%x to i8**
%z=load i8*,i8**%y,align 8
%A=bitcast i8*%z to i8**
%B=load i8*,i8**%A,align 8
store i8*%B,i8**%c,align 8
%C=getelementptr inbounds i8,i8*%z,i64 8
%D=bitcast i8*%C to i8**
%E=load i8*,i8**%D,align 8
store i8*%E,i8**%d,align 8
%F=getelementptr inbounds i8,i8*%z,i64 16
%G=bitcast i8*%F to i8**
%H=load i8*,i8**%G,align 8
store i8*%H,i8**%e,align 8
%I=getelementptr inbounds i8,i8*%z,i64 24
%J=bitcast i8*%I to i8**
%K=load i8*,i8**%J,align 8
store i8*%K,i8**%f,align 8
%L=getelementptr inbounds i8,i8*%z,i64 32
%M=bitcast i8*%L to i8**
%N=load i8*,i8**%M,align 8
store i8*%N,i8**%g,align 8
%O=getelementptr inbounds i8,i8*%x,i64 8
%P=bitcast i8*%O to i8**
%Q=load i8*,i8**%P,align 8
store i8*%Q,i8**%h,align 8
%R=load i8*,i8**%w,align 8
%S=call fastcc i8*@_SMLLLN17BitmapCompilation7toBcexpE_97(i8*inreg%R)
%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=load i8*,i8**%i,align 8
%Z=getelementptr inbounds i8,i8*%Y,i64 8
%aa=bitcast i8*%Z to i8**
%ab=load i8*,i8**%aa,align 8
%ac=call fastcc i8*%V(i8*inreg%X,i8*inreg%ab)
%ad=getelementptr inbounds i8,i8*%ac,i64 16
%ae=bitcast i8*%ad to i8*(i8*,i8*)**
%af=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%ae,align 8
%ag=bitcast i8*%ac to i8**
%ah=load i8*,i8**%ag,align 8
%ai=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%aj=call fastcc i8*%af(i8*inreg%ah,i8*inreg%ai)
store i8*%aj,i8**%h,align 8
%ak=load i8*,i8**@_SMLZN12BuiltinTypes8word32TyE,align 8
store i8*%ak,i8**%j,align 8
%al=load i8*,i8**%i,align 8
%am=getelementptr inbounds i8,i8*%al,i64 8
%an=bitcast i8*%am to i8**
%ao=load i8*,i8**%an,align 8
store i8*%ao,i8**%k,align 8
store i8*null,i8**%i,align 8
%ap=getelementptr inbounds i8,i8*%al,i64 16
%aq=bitcast i8*%ap to i8**
%ar=load i8*,i8**%aq,align 8
store i8*%ar,i8**%l,align 8
%as=call i8*@sml_alloc(i32 inreg 20)#0
%at=getelementptr inbounds i8,i8*%as,i64 -4
%au=bitcast i8*%at to i32*
store i32 1342177296,i32*%au,align 4
store i8*%as,i8**%i,align 8
%av=load i8*,i8**%d,align 8
%aw=bitcast i8*%as to i8**
store i8*%av,i8**%aw,align 8
%ax=load i8*,i8**%l,align 8
store i8*null,i8**%l,align 8
%ay=getelementptr inbounds i8,i8*%as,i64 8
%az=bitcast i8*%ay to i8**
store i8*%ax,i8**%az,align 8
%aA=getelementptr inbounds i8,i8*%as,i64 16
%aB=bitcast i8*%aA to i32*
store i32 3,i32*%aB,align 4
%aC=call i8*@sml_alloc(i32 inreg 20)#0
%aD=getelementptr inbounds i8,i8*%aC,i64 -4
%aE=bitcast i8*%aD to i32*
store i32 1342177296,i32*%aE,align 4
store i8*%aC,i8**%l,align 8
%aF=bitcast i8*%aC to i64*
store i64 0,i64*%aF,align 4
%aG=load i8*,i8**%i,align 8
store i8*null,i8**%i,align 8
%aH=getelementptr inbounds i8,i8*%aC,i64 8
%aI=bitcast i8*%aH to i8**
store i8*%aG,i8**%aI,align 8
%aJ=getelementptr inbounds i8,i8*%aC,i64 16
%aK=bitcast i8*%aJ to i32*
store i32 2,i32*%aK,align 4
%aL=call i8*@sml_alloc(i32 inreg 20)#0
%aM=getelementptr inbounds i8,i8*%aL,i64 -4
%aN=bitcast i8*%aM to i32*
store i32 1342177296,i32*%aN,align 4
store i8*%aL,i8**%m,align 8
%aO=getelementptr inbounds i8,i8*%aL,i64 4
%aP=bitcast i8*%aO to i32*
store i32 0,i32*%aP,align 1
%aQ=bitcast i8*%aL to i32*
store i32 9,i32*%aQ,align 4
%aR=load i8*,i8**%l,align 8
store i8*null,i8**%l,align 8
%aS=getelementptr inbounds i8,i8*%aL,i64 8
%aT=bitcast i8*%aS to i8**
store i8*%aR,i8**%aT,align 8
%aU=getelementptr inbounds i8,i8*%aL,i64 16
%aV=bitcast i8*%aU to i32*
store i32 2,i32*%aV,align 4
%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
store i8*%aW,i8**%i,align 8
%aZ=getelementptr inbounds i8,i8*%aW,i64 4
%a0=bitcast i8*%aZ to i32*
store i32 0,i32*%a0,align 1
%a1=bitcast i8*%aW to i32*
store i32 1,i32*%a1,align 4
%a2=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%a3=getelementptr inbounds i8,i8*%aW,i64 8
%a4=bitcast i8*%a3 to i8**
store i8*%a2,i8**%a4,align 8
%a5=load i8*,i8**%j,align 8
store i8*null,i8**%j,align 8
%a6=getelementptr inbounds i8,i8*%aW,i64 16
%a7=bitcast i8*%a6 to i8**
store i8*%a5,i8**%a7,align 8
%a8=load i8*,i8**%k,align 8
store i8*null,i8**%k,align 8
%a9=getelementptr inbounds i8,i8*%aW,i64 24
%ba=bitcast i8*%a9 to i8**
store i8*%a8,i8**%ba,align 8
%bb=load i8*,i8**%m,align 8
store i8*null,i8**%m,align 8
%bc=getelementptr inbounds i8,i8*%aW,i64 32
%bd=bitcast i8*%bc to i8**
store i8*%bb,i8**%bd,align 8
%be=getelementptr inbounds i8,i8*%aW,i64 40
%bf=bitcast i8*%be to i32*
store i32 30,i32*%bf,align 4
%bg=call i8*@sml_alloc(i32 inreg 20)#0
%bh=getelementptr inbounds i8,i8*%bg,i64 -4
%bi=bitcast i8*%bh to i32*
store i32 1342177296,i32*%bi,align 4
store i8*%bg,i8**%h,align 8
%bj=getelementptr inbounds i8,i8*%bg,i64 4
%bk=bitcast i8*%bj to i32*
store i32 0,i32*%bk,align 1
%bl=bitcast i8*%bg to i32*
store i32 2,i32*%bl,align 4
%bm=load i8*,i8**%i,align 8
store i8*null,i8**%i,align 8
%bn=getelementptr inbounds i8,i8*%bg,i64 8
%bo=bitcast i8*%bn to i8**
store i8*%bm,i8**%bo,align 8
%bp=getelementptr inbounds i8,i8*%bg,i64 16
%bq=bitcast i8*%bp to i32*
store i32 2,i32*%bq,align 4
%br=call i8*@sml_alloc(i32 inreg 52)#0
%bs=getelementptr inbounds i8,i8*%br,i64 -4
%bt=bitcast i8*%bs to i32*
store i32 1342177328,i32*%bt,align 4
%bu=load i8*,i8**%c,align 8
%bv=bitcast i8*%br to i8**
store i8*%bu,i8**%bv,align 8
%bw=load i8*,i8**%h,align 8
%bx=getelementptr inbounds i8,i8*%br,i64 8
%by=bitcast i8*%bx to i8**
store i8*%bw,i8**%by,align 8
%bz=load i8*,i8**%d,align 8
%bA=getelementptr inbounds i8,i8*%br,i64 16
%bB=bitcast i8*%bA to i8**
store i8*%bz,i8**%bB,align 8
%bC=load i8*,i8**%e,align 8
%bD=getelementptr inbounds i8,i8*%br,i64 24
%bE=bitcast i8*%bD to i8**
store i8*%bC,i8**%bE,align 8
%bF=load i8*,i8**%f,align 8
%bG=getelementptr inbounds i8,i8*%br,i64 32
%bH=bitcast i8*%bG to i8**
store i8*%bF,i8**%bH,align 8
%bI=load i8*,i8**%g,align 8
%bJ=getelementptr inbounds i8,i8*%br,i64 40
%bK=bitcast i8*%bJ to i8**
store i8*%bI,i8**%bK,align 8
%bL=getelementptr inbounds i8,i8*%br,i64 48
%bM=bitcast i8*%bL to i32*
store i32 63,i32*%bM,align 4
ret i8*%br
}
define internal fastcc i8*@_SMLLL1f_181(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
%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
%i=alloca i8*,align 8
%j=alloca i8*,align 8
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
call void@llvm.gcroot(i8**%i,i8*null)#0
call void@llvm.gcroot(i8**%j,i8*null)#0
store i8*%a,i8**%e,align 8
store i8*%b,i8**%c,align 8
%k=load atomic i32,i32*@sml_check_flag unordered,align 4
%l=icmp eq i32%k,0
br i1%l,label%m,label%p
m:
%n=bitcast i8*%a to i8**
%o=bitcast i8**%e to i8***
br label%t
p:
call void@sml_check(i32 inreg%k)
%q=load i8*,i8**%c,align 8
%r=bitcast i8**%e to i8***
%s=load i8**,i8***%r,align 8
br label%t
t:
%u=phi i8***[%o,%m],[%r,%p]
%v=phi i8**[%n,%m],[%s,%p]
%w=phi i8*[%b,%m],[%q,%p]
%x=bitcast i8*%w to i32*
%y=load i32,i32*%x,align 4
%z=getelementptr inbounds i8,i8*%w,i64 8
%A=bitcast i8*%z to i8**
%B=load i8*,i8**%A,align 8
%C=bitcast i8*%B to i8**
%D=load i8*,i8**%C,align 8
store i8*%D,i8**%c,align 8
%E=getelementptr inbounds i8,i8*%B,i64 8
%F=bitcast i8*%E to i8**
%G=load i8*,i8**%F,align 8
store i8*%G,i8**%d,align 8
%H=load i8*,i8**%v,align 8
%I=call fastcc i8*@_SMLLLN17BitmapCompilation7toBcexpE_97(i8*inreg%H)
%J=getelementptr inbounds i8,i8*%I,i64 16
%K=bitcast i8*%J to i8*(i8*,i8*)**
%L=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%K,align 8
%M=bitcast i8*%I to i8**
%N=load i8*,i8**%M,align 8
%O=load i8*,i8**%e,align 8
%P=getelementptr inbounds i8,i8*%O,i64 8
%Q=bitcast i8*%P to i8**
%R=load i8*,i8**%Q,align 8
%S=call fastcc i8*%L(i8*inreg%N,i8*inreg%R)
%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=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%Z=call fastcc i8*%V(i8*inreg%X,i8*inreg%Y)
store i8*%Z,i8**%d,align 8
%aa=load i8*,i8**@_SMLZN12BuiltinTypes8word32TyE,align 8
store i8*%aa,i8**%f,align 8
%ab=load i8*,i8**%e,align 8
%ac=getelementptr inbounds i8,i8*%ab,i64 8
%ad=bitcast i8*%ac to i8**
%ae=load i8*,i8**%ad,align 8
store i8*%ae,i8**%g,align 8
%af=getelementptr inbounds i8,i8*%ab,i64 16
%ag=bitcast i8*%af to i8**
%ah=load i8*,i8**%ag,align 8
store i8*%ah,i8**%i,align 8
%ai=call i8*@sml_alloc(i32 inreg 20)#0
%aj=getelementptr inbounds i8,i8*%ai,i64 -4
%ak=bitcast i8*%aj to i32*
store i32 1342177296,i32*%ak,align 4
store i8*%ai,i8**%h,align 8
%al=getelementptr inbounds i8,i8*%ai,i64 4
%am=bitcast i8*%al to i32*
store i32 0,i32*%am,align 1
%an=bitcast i8*%ai to i32*
store i32%y,i32*%an,align 4
%ao=load i8*,i8**%i,align 8
store i8*null,i8**%i,align 8
%ap=getelementptr inbounds i8,i8*%ai,i64 8
%aq=bitcast i8*%ap to i8**
store i8*%ao,i8**%aq,align 8
%ar=getelementptr inbounds i8,i8*%ai,i64 16
%as=bitcast i8*%ar to i32*
store i32 2,i32*%as,align 4
%at=call i8*@sml_alloc(i32 inreg 20)#0
%au=getelementptr inbounds i8,i8*%at,i64 -4
%av=bitcast i8*%au to i32*
store i32 1342177296,i32*%av,align 4
store i8*%at,i8**%i,align 8
%aw=getelementptr inbounds i8,i8*%at,i64 4
%ax=bitcast i8*%aw to i32*
store i32 0,i32*%ax,align 1
%ay=bitcast i8*%at to i32*
store i32 4,i32*%ay,align 4
%az=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%aA=getelementptr inbounds i8,i8*%at,i64 8
%aB=bitcast i8*%aA to i8**
store i8*%az,i8**%aB,align 8
%aC=getelementptr inbounds i8,i8*%at,i64 16
%aD=bitcast i8*%aC to i32*
store i32 2,i32*%aD,align 4
%aE=call i8*@sml_alloc(i32 inreg 20)#0
%aF=getelementptr inbounds i8,i8*%aE,i64 -4
%aG=bitcast i8*%aF to i32*
store i32 1342177296,i32*%aG,align 4
store i8*%aE,i8**%j,align 8
%aH=bitcast i8*%aE to i64*
store i64 0,i64*%aH,align 4
%aI=load i8*,i8**%i,align 8
store i8*null,i8**%i,align 8
%aJ=getelementptr inbounds i8,i8*%aE,i64 8
%aK=bitcast i8*%aJ to i8**
store i8*%aI,i8**%aK,align 8
%aL=getelementptr inbounds i8,i8*%aE,i64 16
%aM=bitcast i8*%aL to i32*
store i32 2,i32*%aM,align 4
%aN=call i8*@sml_alloc(i32 inreg 44)#0
%aO=getelementptr inbounds i8,i8*%aN,i64 -4
%aP=bitcast i8*%aO to i32*
store i32 1342177320,i32*%aP,align 4
store i8*%aN,i8**%h,align 8
%aQ=getelementptr inbounds i8,i8*%aN,i64 4
%aR=bitcast i8*%aQ to i32*
store i32 0,i32*%aR,align 1
%aS=bitcast i8*%aN to i32*
store i32 1,i32*%aS,align 4
%aT=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aU=getelementptr inbounds i8,i8*%aN,i64 8
%aV=bitcast i8*%aU to i8**
store i8*%aT,i8**%aV,align 8
%aW=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%aX=getelementptr inbounds i8,i8*%aN,i64 16
%aY=bitcast i8*%aX to i8**
store i8*%aW,i8**%aY,align 8
%aZ=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%a0=getelementptr inbounds i8,i8*%aN,i64 24
%a1=bitcast i8*%a0 to i8**
store i8*%aZ,i8**%a1,align 8
%a2=load i8*,i8**%j,align 8
store i8*null,i8**%j,align 8
%a3=getelementptr inbounds i8,i8*%aN,i64 32
%a4=bitcast i8*%a3 to i8**
store i8*%a2,i8**%a4,align 8
%a5=getelementptr inbounds i8,i8*%aN,i64 40
%a6=bitcast i8*%a5 to i32*
store i32 30,i32*%a6,align 4
%a7=call i8*@sml_alloc(i32 inreg 20)#0
%a8=getelementptr inbounds i8,i8*%a7,i64 -4
%a9=bitcast i8*%a8 to i32*
store i32 1342177296,i32*%a9,align 4
store i8*%a7,i8**%d,align 8
%ba=getelementptr inbounds i8,i8*%a7,i64 4
%bb=bitcast i8*%ba to i32*
store i32 0,i32*%bb,align 1
%bc=bitcast i8*%a7 to i32*
store i32 2,i32*%bc,align 4
%bd=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%be=getelementptr inbounds i8,i8*%a7,i64 8
%bf=bitcast i8*%be to i8**
store i8*%bd,i8**%bf,align 8
%bg=getelementptr inbounds i8,i8*%a7,i64 16
%bh=bitcast i8*%bg to i32*
store i32 2,i32*%bh,align 4
%bi=load i8**,i8***%u,align 8
%bj=load i8*,i8**%bi,align 8
%bk=call fastcc i8*@_SMLLLN17BitmapCompilation7toBcexpE_97(i8*inreg%bj)
%bl=getelementptr inbounds i8,i8*%bk,i64 16
%bm=bitcast i8*%bl to i8*(i8*,i8*)**
%bn=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%bm,align 8
%bo=bitcast i8*%bk to i8**
%bp=load i8*,i8**%bo,align 8
%bq=load i8*,i8**%e,align 8
%br=getelementptr inbounds i8,i8*%bq,i64 8
%bs=bitcast i8*%br to i8**
%bt=load i8*,i8**%bs,align 8
%bu=call fastcc i8*%bn(i8*inreg%bp,i8*inreg%bt)
%bv=getelementptr inbounds i8,i8*%bu,i64 16
%bw=bitcast i8*%bv to i8*(i8*,i8*)**
%bx=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%bw,align 8
%by=bitcast i8*%bu to i8**
%bz=load i8*,i8**%by,align 8
%bA=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bB=call fastcc i8*%bx(i8*inreg%bz,i8*inreg%bA)
store i8*%bB,i8**%c,align 8
%bC=load i8*,i8**@_SMLZN12BuiltinTypes8word32TyE,align 8
store i8*%bC,i8**%f,align 8
%bD=load i8*,i8**%e,align 8
%bE=getelementptr inbounds i8,i8*%bD,i64 8
%bF=bitcast i8*%bE to i8**
%bG=load i8*,i8**%bF,align 8
store i8*%bG,i8**%g,align 8
store i8*null,i8**%e,align 8
%bH=getelementptr inbounds i8,i8*%bD,i64 16
%bI=bitcast i8*%bH to i8**
%bJ=load i8*,i8**%bI,align 8
store i8*%bJ,i8**%h,align 8
%bK=call i8*@sml_alloc(i32 inreg 20)#0
%bL=getelementptr inbounds i8,i8*%bK,i64 -4
%bM=bitcast i8*%bL to i32*
store i32 1342177296,i32*%bM,align 4
store i8*%bK,i8**%e,align 8
%bN=getelementptr inbounds i8,i8*%bK,i64 4
%bO=bitcast i8*%bN to i32*
store i32 0,i32*%bO,align 1
%bP=bitcast i8*%bK to i32*
store i32%y,i32*%bP,align 4
%bQ=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%bR=getelementptr inbounds i8,i8*%bK,i64 8
%bS=bitcast i8*%bR to i8**
store i8*%bQ,i8**%bS,align 8
%bT=getelementptr inbounds i8,i8*%bK,i64 16
%bU=bitcast i8*%bT to i32*
store i32 2,i32*%bU,align 4
%bV=call i8*@sml_alloc(i32 inreg 20)#0
%bW=getelementptr inbounds i8,i8*%bV,i64 -4
%bX=bitcast i8*%bW to i32*
store i32 1342177296,i32*%bX,align 4
store i8*%bV,i8**%h,align 8
%bY=getelementptr inbounds i8,i8*%bV,i64 4
%bZ=bitcast i8*%bY to i32*
store i32 0,i32*%bZ,align 1
%b0=bitcast i8*%bV to i32*
store i32 5,i32*%b0,align 4
%b1=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%b2=getelementptr inbounds i8,i8*%bV,i64 8
%b3=bitcast i8*%b2 to i8**
store i8*%b1,i8**%b3,align 8
%b4=getelementptr inbounds i8,i8*%bV,i64 16
%b5=bitcast i8*%b4 to i32*
store i32 2,i32*%b5,align 4
%b6=call i8*@sml_alloc(i32 inreg 20)#0
%b7=getelementptr inbounds i8,i8*%b6,i64 -4
%b8=bitcast i8*%b7 to i32*
store i32 1342177296,i32*%b8,align 4
store i8*%b6,i8**%i,align 8
%b9=bitcast i8*%b6 to i64*
store i64 0,i64*%b9,align 4
%ca=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%cb=getelementptr inbounds i8,i8*%b6,i64 8
%cc=bitcast i8*%cb to i8**
store i8*%ca,i8**%cc,align 8
%cd=getelementptr inbounds i8,i8*%b6,i64 16
%ce=bitcast i8*%cd to i32*
store i32 2,i32*%ce,align 4
%cf=call i8*@sml_alloc(i32 inreg 44)#0
%cg=getelementptr inbounds i8,i8*%cf,i64 -4
%ch=bitcast i8*%cg to i32*
store i32 1342177320,i32*%ch,align 4
store i8*%cf,i8**%e,align 8
%ci=getelementptr inbounds i8,i8*%cf,i64 4
%cj=bitcast i8*%ci to i32*
store i32 0,i32*%cj,align 1
%ck=bitcast i8*%cf to i32*
store i32 1,i32*%ck,align 4
%cl=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%cm=getelementptr inbounds i8,i8*%cf,i64 8
%cn=bitcast i8*%cm to i8**
store i8*%cl,i8**%cn,align 8
%co=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%cp=getelementptr inbounds i8,i8*%cf,i64 16
%cq=bitcast i8*%cp to i8**
store i8*%co,i8**%cq,align 8
%cr=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%cs=getelementptr inbounds i8,i8*%cf,i64 24
%ct=bitcast i8*%cs to i8**
store i8*%cr,i8**%ct,align 8
%cu=load i8*,i8**%i,align 8
store i8*null,i8**%i,align 8
%cv=getelementptr inbounds i8,i8*%cf,i64 32
%cw=bitcast i8*%cv to i8**
store i8*%cu,i8**%cw,align 8
%cx=getelementptr inbounds i8,i8*%cf,i64 40
%cy=bitcast i8*%cx to i32*
store i32 30,i32*%cy,align 4
%cz=call i8*@sml_alloc(i32 inreg 20)#0
%cA=getelementptr inbounds i8,i8*%cz,i64 -4
%cB=bitcast i8*%cA to i32*
store i32 1342177296,i32*%cB,align 4
store i8*%cz,i8**%c,align 8
%cC=getelementptr inbounds i8,i8*%cz,i64 4
%cD=bitcast i8*%cC to i32*
store i32 0,i32*%cD,align 1
%cE=bitcast i8*%cz to i32*
store i32 2,i32*%cE,align 4
%cF=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%cG=getelementptr inbounds i8,i8*%cz,i64 8
%cH=bitcast i8*%cG to i8**
store i8*%cF,i8**%cH,align 8
%cI=getelementptr inbounds i8,i8*%cz,i64 16
%cJ=bitcast i8*%cI to i32*
store i32 2,i32*%cJ,align 4
%cK=call i8*@sml_alloc(i32 inreg 20)#0
%cL=getelementptr inbounds i8,i8*%cK,i64 -4
%cM=bitcast i8*%cL to i32*
store i32 1342177296,i32*%cM,align 4
%cN=load i8*,i8**%c,align 8
%cO=bitcast i8*%cK to i8**
store i8*%cN,i8**%cO,align 8
%cP=load i8*,i8**%d,align 8
%cQ=getelementptr inbounds i8,i8*%cK,i64 8
%cR=bitcast i8*%cQ to i8**
store i8*%cP,i8**%cR,align 8
%cS=getelementptr inbounds i8,i8*%cK,i64 16
%cT=bitcast i8*%cS to i32*
store i32 3,i32*%cT,align 4
ret i8*%cK
}
define internal fastcc i8*@_SMLLL4loop_182(i8*inreg%a,i32 inreg%b,i8*inreg%c)unnamed_addr#2 gc"smlsharp"{
n:
%d=alloca i8*,align 8
%e=alloca i8*,align 8
%f=alloca i8*,align 8
%g=alloca i8*,align 8
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
store i8*%a,i8**%d,align 8
store i8*%c,i8**%e,align 8
%h=load atomic i32,i32*@sml_check_flag unordered,align 4
%i=icmp eq i32%h,0
br i1%i,label%l,label%j
j:
call void@sml_check(i32 inreg%h)
%k=load i8*,i8**%e,align 8
br label%l
l:
%m=phi i8*[%k,%j],[%c,%n]
%o=icmp eq i8*%m,null
br i1%o,label%p,label%q
p:
ret i8*null
q:
%r=bitcast i8*%m to i8**
%s=load i8*,i8**%r,align 8
store i8*%s,i8**%e,align 8
%t=getelementptr inbounds i8,i8*%m,i64 8
%u=bitcast i8*%t to i8**
%v=load i8*,i8**%u,align 8
store i8*%v,i8**%f,align 8
%w=load i8*,i8**%d,align 8
%x=getelementptr inbounds i8,i8*%w,i64 16
%y=bitcast i8*%x to i8*(i8*,i8*)**
%z=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%y,align 8
%A=bitcast i8*%w to i8**
%B=load i8*,i8**%A,align 8
store i8*%B,i8**%g,align 8
%C=call i8*@sml_alloc(i32 inreg 20)#0
%D=bitcast i8*%C to i32*
%E=getelementptr inbounds i8,i8*%C,i64 -4
%F=bitcast i8*%E to i32*
store i32 1342177296,i32*%F,align 4
%G=getelementptr inbounds i8,i8*%C,i64 4
%H=bitcast i8*%G to i32*
store i32 0,i32*%H,align 1
store i32%b,i32*%D,align 4
%I=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%J=getelementptr inbounds i8,i8*%C,i64 8
%K=bitcast i8*%J to i8**
store i8*%I,i8**%K,align 8
%L=getelementptr inbounds i8,i8*%C,i64 16
%M=bitcast i8*%L to i32*
store i32 2,i32*%M,align 4
%N=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%O=call fastcc i8*%z(i8*inreg%N,i8*inreg%C)
store i8*%O,i8**%e,align 8
%P=add nsw i32%b,1
%Q=load i8*,i8**%d,align 8
%R=load i8*,i8**%f,align 8
store i8*null,i8**%d,align 8
store i8*null,i8**%f,align 8
%S=call fastcc i8*@_SMLLL4loop_182(i8*inreg%Q,i32 inreg%P,i8*inreg%R)
store i8*%S,i8**%d,align 8
%T=call i8*@sml_alloc(i32 inreg 20)#0
%U=getelementptr inbounds i8,i8*%T,i64 -4
%V=bitcast i8*%U to i32*
store i32 1342177296,i32*%V,align 4
%W=load i8*,i8**%e,align 8
%X=bitcast i8*%T to i8**
store i8*%W,i8**%X,align 8
%Y=load i8*,i8**%d,align 8
%Z=getelementptr inbounds i8,i8*%T,i64 8
%aa=bitcast i8*%Z to i8**
store i8*%Y,i8**%aa,align 8
%ab=getelementptr inbounds i8,i8*%T,i64 16
%ac=bitcast i8*%ab to i32*
store i32 3,i32*%ac,align 4
ret i8*%T
}
define internal fastcc i8*@_SMLLL10argExpList_188(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%c,align 8
store i8*%b,i8**%d,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%g,label%i
g:
%h=bitcast i8*%a to i8**
br label%m
i:
call void@sml_check(i32 inreg%e)
%j=load i8*,i8**%d,align 8
%k=bitcast i8**%c to i8***
%l=load i8**,i8***%k,align 8
br label%m
m:
%n=phi i8**[%l,%i],[%h,%g]
%o=phi i8*[%j,%i],[%b,%g]
%p=load i8*,i8**%n,align 8
%q=tail call fastcc i8*@_SMLLLN17BitmapCompilation10compileExpE_125(i8*inreg%p,i8*inreg%o)
ret i8*%q
}
define internal fastcc i8*@_SMLLL5rules_189(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
%c=alloca i8*,align 8
%d=alloca i8*,align 8
%e=alloca i8*,align 8
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
store i8*%a,i8**%e,align 8
store i8*%b,i8**%c,align 8
%f=load atomic i32,i32*@sml_check_flag unordered,align 4
%g=icmp eq i32%f,0
br i1%g,label%h,label%j
h:
%i=bitcast i8*%a to i8**
br label%n
j:
call void@sml_check(i32 inreg%f)
%k=load i8*,i8**%c,align 8
%l=bitcast i8**%e to i8***
%m=load i8**,i8***%l,align 8
br label%n
n:
%o=phi i8**[%m,%j],[%i,%h]
%p=phi i8*[%k,%j],[%b,%h]
%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*%p,i64 8
%t=bitcast i8*%s to i8**
%u=load i8*,i8**%t,align 8
%v=getelementptr inbounds i8,i8*%p,i64 16
%w=bitcast i8*%v to i8**
%x=load i8*,i8**%w,align 8
store i8*%x,i8**%d,align 8
store i8*null,i8**%e,align 8
%y=load i8*,i8**%o,align 8
%z=call fastcc i8*@_SMLLLN17BitmapCompilation10compileExpE_125(i8*inreg%y,i8*inreg%u)
store i8*%z,i8**%e,align 8
%A=call i8*@sml_alloc(i32 inreg 28)#0
%B=getelementptr inbounds i8,i8*%A,i64 -4
%C=bitcast i8*%B to i32*
store i32 1342177304,i32*%C,align 4
%D=load i8*,i8**%c,align 8
%E=bitcast i8*%A to i8**
store i8*%D,i8**%E,align 8
%F=load i8*,i8**%e,align 8
%G=getelementptr inbounds i8,i8*%A,i64 8
%H=bitcast i8*%G to i8**
store i8*%F,i8**%H,align 8
%I=load i8*,i8**%d,align 8
%J=getelementptr inbounds i8,i8*%A,i64 16
%K=bitcast i8*%J to i8**
store i8*%I,i8**%K,align 8
%L=getelementptr inbounds i8,i8*%A,i64 24
%M=bitcast i8*%L to i32*
store i32 7,i32*%M,align 4
ret i8*%A
}
define internal fastcc i8*@_SMLLL10argExpList_190(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%c,align 8
store i8*%b,i8**%d,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%g,label%i
g:
%h=bitcast i8*%a to i8**
br label%m
i:
call void@sml_check(i32 inreg%e)
%j=load i8*,i8**%d,align 8
%k=bitcast i8**%c to i8***
%l=load i8**,i8***%k,align 8
br label%m
m:
%n=phi i8**[%l,%i],[%h,%g]
%o=phi i8*[%j,%i],[%b,%g]
%p=load i8*,i8**%n,align 8
%q=tail call fastcc i8*@_SMLLLN17BitmapCompilation10compileExpE_125(i8*inreg%p,i8*inreg%o)
ret i8*%q
}
define internal fastcc i8*@_SMLLLN17BitmapCompilation10compileExpE_191(i8*inreg%a)#4 gc"smlsharp"{
%b=getelementptr inbounds i8,i8*%a,i64 8
%c=bitcast i8*%b to i8**
%d=load i8*,i8**%c,align 8
ret i8*%d
}
define internal fastcc i8*@_SMLLL6fields_194(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
%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
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
store i8*%a,i8**%e,align 8
store i8*%b,i8**%c,align 8
%h=load atomic i32,i32*@sml_check_flag unordered,align 4
%i=icmp eq i32%h,0
br i1%i,label%j,label%l
j:
%k=bitcast i8*%a to i8**
br label%p
l:
call void@sml_check(i32 inreg%h)
%m=load i8*,i8**%c,align 8
%n=bitcast i8**%e to i8***
%o=load i8**,i8***%n,align 8
br label%p
p:
%q=phi i8**[%o,%l],[%k,%j]
%r=phi i8*[%m,%l],[%b,%j]
%s=bitcast i8*%r to i8**
%t=load i8*,i8**%s,align 8
store i8*%t,i8**%c,align 8
%u=getelementptr inbounds i8,i8*%r,i64 8
%v=bitcast i8*%u to i8***
%w=load i8**,i8***%v,align 8
%x=load i8*,i8**%w,align 8
store i8*%x,i8**%d,align 8
%y=load i8*,i8**%q,align 8
%z=call fastcc i8*@_SMLLLN17BitmapCompilation7toValueE_123(i8*inreg%y)
%A=getelementptr inbounds i8,i8*%z,i64 16
%B=bitcast i8*%A to i8*(i8*,i8*)**
%C=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%B,align 8
%D=bitcast i8*%z to i8**
%E=load i8*,i8**%D,align 8
store i8*%E,i8**%g,align 8
%F=load i8*,i8**%d,align 8
%G=bitcast i8*%F to i32*
%H=load i32,i32*%G,align 4
switch i32%H,label%I[
i32 0,label%ay
i32 1,label%aa
]
I:
store i8*null,i8**%d,align 8
store i8*null,i8**%e,align 8
store i8*null,i8**%g,align 8
call void@sml_matchcomp_bug()
%J=load i8*,i8**@_SMLZ5Match,align 8
store i8*%J,i8**%c,align 8
%K=call i8*@sml_alloc(i32 inreg 20)#0
%L=getelementptr inbounds i8,i8*%K,i64 -4
%M=bitcast i8*%L to i32*
store i32 1342177296,i32*%M,align 4
store i8*%K,i8**%d,align 8
%N=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%O=bitcast i8*%K to i8**
store i8*%N,i8**%O,align 8
%P=getelementptr inbounds i8,i8*%K,i64 8
%Q=bitcast i8*%P to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[84x i8]}>,<{[4x i8],i32,[84x i8]}>*@v,i64 0,i32 2,i64 0),i8**%Q,align 8
%R=getelementptr inbounds i8,i8*%K,i64 16
%S=bitcast i8*%R to i32*
store i32 3,i32*%S,align 4
%T=call i8*@sml_alloc(i32 inreg 60)#0
%U=getelementptr inbounds i8,i8*%T,i64 -4
%V=bitcast i8*%U to i32*
store i32 1342177336,i32*%V,align 4
%W=getelementptr inbounds i8,i8*%T,i64 56
%X=bitcast i8*%W to i32*
store i32 1,i32*%X,align 4
%Y=load i8*,i8**%d,align 8
%Z=bitcast i8*%T to i8**
store i8*%Y,i8**%Z,align 8
call void@sml_raise(i8*inreg%T)#1
unreachable
aa:
%ab=load i8*,i8**%e,align 8
%ac=getelementptr inbounds i8,i8*%ab,i64 8
%ad=bitcast i8*%ac to i8**
%ae=load i8*,i8**%ad,align 8
store i8*%ae,i8**%e,align 8
%af=getelementptr inbounds i8,i8*%F,i64 8
%ag=bitcast i8*%af to i8**
%ah=load i8*,i8**%ag,align 8
store i8*%ah,i8**%d,align 8
%ai=call i8*@sml_alloc(i32 inreg 20)#0
%aj=getelementptr inbounds i8,i8*%ai,i64 -4
%ak=bitcast i8*%aj to i32*
store i32 1342177296,i32*%ak,align 4
store i8*%ai,i8**%f,align 8
%al=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%am=bitcast i8*%ai to i8**
store i8*%al,i8**%am,align 8
%an=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%ao=getelementptr inbounds i8,i8*%ai,i64 8
%ap=bitcast i8*%ao to i8**
store i8*%an,i8**%ap,align 8
%aq=getelementptr inbounds i8,i8*%ai,i64 16
%ar=bitcast i8*%aq to i32*
store i32 3,i32*%ar,align 4
%as=call i8*@sml_alloc(i32 inreg 20)#0
%at=bitcast i8*%as to i32*
%au=getelementptr inbounds i8,i8*%as,i64 -4
%av=bitcast i8*%au to i32*
store i32 1342177296,i32*%av,align 4
%aw=getelementptr inbounds i8,i8*%as,i64 4
%ax=bitcast i8*%aw to i32*
store i32 0,i32*%ax,align 1
store i32 18,i32*%at,align 4
br label%aW
ay:
%az=getelementptr inbounds i8,i8*%F,i64 8
%aA=bitcast i8*%az to i8**
%aB=load i8*,i8**%aA,align 8
store i8*%aB,i8**%d,align 8
%aC=load i8*,i8**%e,align 8
%aD=getelementptr inbounds i8,i8*%aC,i64 8
%aE=bitcast i8*%aD to i8**
%aF=load i8*,i8**%aE,align 8
store i8*%aF,i8**%e,align 8
%aG=call i8*@sml_alloc(i32 inreg 20)#0
%aH=getelementptr inbounds i8,i8*%aG,i64 -4
%aI=bitcast i8*%aH to i32*
store i32 1342177296,i32*%aI,align 4
store i8*%aG,i8**%f,align 8
%aJ=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aK=bitcast i8*%aG to i8**
store i8*%aJ,i8**%aK,align 8
%aL=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%aM=getelementptr inbounds i8,i8*%aG,i64 8
%aN=bitcast i8*%aM to i8**
store i8*%aL,i8**%aN,align 8
%aO=getelementptr inbounds i8,i8*%aG,i64 16
%aP=bitcast i8*%aO to i32*
store i32 3,i32*%aP,align 4
%aQ=call i8*@sml_alloc(i32 inreg 20)#0
%aR=bitcast i8*%aQ to i32*
%aS=getelementptr inbounds i8,i8*%aQ,i64 -4
%aT=bitcast i8*%aS to i32*
store i32 1342177296,i32*%aT,align 4
%aU=getelementptr inbounds i8,i8*%aQ,i64 4
%aV=bitcast i8*%aU to i32*
store i32 0,i32*%aV,align 1
store i32 4,i32*%aR,align 4
br label%aW
aW:
%aX=phi i8*[%aQ,%ay],[%as,%aa]
%aY=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%aZ=getelementptr inbounds i8,i8*%aX,i64 8
%a0=bitcast i8*%aZ to i8**
store i8*%aY,i8**%a0,align 8
%a1=getelementptr inbounds i8,i8*%aX,i64 16
%a2=bitcast i8*%a1 to i32*
store i32 2,i32*%a2,align 4
%a3=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%a4=call fastcc i8*%C(i8*inreg%a3,i8*inreg%aX)
store i8*%a4,i8**%d,align 8
%a5=call i8*@sml_alloc(i32 inreg 20)#0
%a6=getelementptr inbounds i8,i8*%a5,i64 -4
%a7=bitcast i8*%a6 to i32*
store i32 1342177296,i32*%a7,align 4
%a8=load i8*,i8**%c,align 8
%a9=bitcast i8*%a5 to i8**
store i8*%a8,i8**%a9,align 8
%ba=load i8*,i8**%d,align 8
%bb=getelementptr inbounds i8,i8*%a5,i64 8
%bc=bitcast i8*%bb to i8**
store i8*%ba,i8**%bc,align 8
%bd=getelementptr inbounds i8,i8*%a5,i64 16
%be=bitcast i8*%bd to i32*
store i32 3,i32*%be,align 4
ret i8*%a5
}
define internal fastcc i8*@_SMLLL11recbindList_198(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%g,label%i
g:
%h=bitcast i8*%a to i8**
br label%m
i:
call void@sml_check(i32 inreg%e)
%j=load i8*,i8**%c,align 8
%k=bitcast i8**%d to i8***
%l=load i8**,i8***%k,align 8
br label%m
m:
%n=phi i8**[%l,%i],[%h,%g]
%o=phi i8*[%j,%i],[%b,%g]
%p=bitcast i8*%o to i8**
%q=load i8*,i8**%p,align 8
%r=getelementptr inbounds i8,i8*%o,i64 8
%s=bitcast i8*%r to i8**
%t=load i8*,i8**%s,align 8
store i8*%t,i8**%c,align 8
store i8*null,i8**%d,align 8
%u=load i8*,i8**%n,align 8
%v=call fastcc i8*@_SMLLLN17BitmapCompilation10compileExpE_125(i8*inreg%u,i8*inreg%q)
store i8*%v,i8**%d,align 8
%w=call i8*@sml_alloc(i32 inreg 20)#0
%x=getelementptr inbounds i8,i8*%w,i64 -4
%y=bitcast i8*%x to i32*
store i32 1342177296,i32*%y,align 4
%z=load i8*,i8**%d,align 8
%A=bitcast i8*%w to i8**
store i8*%z,i8**%A,align 8
%B=load i8*,i8**%c,align 8
%C=getelementptr inbounds i8,i8*%w,i64 8
%D=bitcast i8*%C to i8**
store i8*%B,i8**%D,align 8
%E=getelementptr inbounds i8,i8*%w,i64 16
%F=bitcast i8*%E to i32*
store i32 3,i32*%F,align 4
ret i8*%w
}
define internal fastcc i8*@_SMLLLN17BitmapCompilation11compileDeclE_199(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%c,align 8
store i8*%b,i8**%d,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%g,label%i
g:
%h=bitcast i8*%a to i8**
br label%m
i:
call void@sml_check(i32 inreg%e)
%j=load i8*,i8**%d,align 8
%k=bitcast i8**%c to i8***
%l=load i8**,i8***%k,align 8
br label%m
m:
%n=phi i8**[%l,%i],[%h,%g]
%o=phi i8*[%j,%i],[%b,%g]
%p=load i8*,i8**%n,align 8
%q=tail call fastcc i8*@_SMLLLN17BitmapCompilation10compileExpE_125(i8*inreg%p,i8*inreg%o)
ret i8*%q
}
define internal fastcc i8*@_SMLLLN17BitmapCompilation10compileExpE_125(i8*inreg%a,i8*inreg%b)unnamed_addr#2 gc"smlsharp"{
s:
%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
%i=alloca i8*,align 8
%j=alloca i8*,align 8
%k=alloca i8*,align 8
%l=alloca i8*,align 8
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
call void@llvm.gcroot(i8**%i,i8*null)#0
call void@llvm.gcroot(i8**%j,i8*null)#0
call void@llvm.gcroot(i8**%k,i8*null)#0
call void@llvm.gcroot(i8**%l,i8*null)#0
store i8*%a,i8**%c,align 8
store i8*%b,i8**%d,align 8
%m=load atomic i32,i32*@sml_check_flag unordered,align 4
%n=icmp eq i32%m,0
br i1%n,label%q,label%o
o:
call void@sml_check(i32 inreg%m)
%p=load i8*,i8**%d,align 8
br label%q
q:
%r=phi i8*[%p,%o],[%b,%s]
store i8*null,i8**%d,align 8
%t=bitcast i8*%r to i32*
%u=load i32,i32*%t,align 4
switch i32%u,label%v[
i32 18,label%Ga
i32 15,label%FG
i32 4,label%Fc
i32 5,label%Dd
i32 0,label%BU
i32 16,label%Aq
i32 11,label%xX
i32 13,label%sW
i32 14,label%pB
i32 10,label%l7
i32 9,label%ls
i32 12,label%kQ
i32 7,label%jZ
i32 17,label%iM
i32 3,label%hp
i32 6,label%f4
i32 1,label%fg
i32 2,label%er
i32 8,label%N
]
v:
call void@sml_matchcomp_bug()
%w=load i8*,i8**@_SMLZ5Match,align 8
store i8*%w,i8**%c,align 8
%x=call i8*@sml_alloc(i32 inreg 20)#0
%y=getelementptr inbounds i8,i8*%x,i64 -4
%z=bitcast i8*%y to i32*
store i32 1342177296,i32*%z,align 4
store i8*%x,i8**%d,align 8
%A=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%B=bitcast i8*%x to i8**
store i8*%A,i8**%B,align 8
%C=getelementptr inbounds i8,i8*%x,i64 8
%D=bitcast i8*%C to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[84x i8]}>,<{[4x i8],i32,[84x i8]}>*@y,i64 0,i32 2,i64 0),i8**%D,align 8
%E=getelementptr inbounds i8,i8*%x,i64 16
%F=bitcast i8*%E to i32*
store i32 3,i32*%F,align 4
%G=call i8*@sml_alloc(i32 inreg 60)#0
%H=getelementptr inbounds i8,i8*%G,i64 -4
%I=bitcast i8*%H to i32*
store i32 1342177336,i32*%I,align 4
%J=getelementptr inbounds i8,i8*%G,i64 56
%K=bitcast i8*%J to i32*
store i32 1,i32*%K,align 4
%L=load i8*,i8**%d,align 8
%M=bitcast i8*%G to i8**
store i8*%L,i8**%M,align 8
call void@sml_raise(i8*inreg%G)#1
unreachable
N:
%O=getelementptr inbounds i8,i8*%r,i64 8
%P=bitcast i8*%O to i8**
%Q=load i8*,i8**%P,align 8
%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*%Q,i64 8
%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*%Q,i64 16
%X=bitcast i8*%W to i8**
%Y=load i8*,i8**%X,align 8
store i8*%Y,i8**%f,align 8
%Z=call fastcc i8*@_SMLFN11RecordLabel3Map3mapE(i32 inreg 1,i32 inreg 8,i32 inreg 1,i32 inreg 8)
%aa=getelementptr inbounds i8,i8*%Z,i64 16
%ab=bitcast i8*%aa to i8*(i8*,i8*)**
%ac=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%ab,align 8
%ad=bitcast i8*%Z to i8**
%ae=load i8*,i8**%ad,align 8
%af=call fastcc i8*%ac(i8*inreg%ae,i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@u,i64 0,i32 2)to i8*))
%ag=getelementptr inbounds i8,i8*%af,i64 16
%ah=bitcast i8*%ag to i8*(i8*,i8*)**
%ai=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%ah,align 8
%aj=bitcast i8*%af to i8**
%ak=load i8*,i8**%aj,align 8
%al=load i8*,i8**%d,align 8
%am=call fastcc i8*%ai(i8*inreg%ak,i8*inreg%al)
store i8*%am,i8**%h,align 8
%an=call i8*@sml_alloc(i32 inreg 20)#0
%ao=getelementptr inbounds i8,i8*%an,i64 -4
%ap=bitcast i8*%ao to i32*
store i32 1342177296,i32*%ap,align 4
store i8*%an,i8**%g,align 8
%aq=getelementptr inbounds i8,i8*%an,i64 4
%ar=bitcast i8*%aq to i32*
store i32 0,i32*%ar,align 1
%as=bitcast i8*%an to i32*
store i32 8,i32*%as,align 4
%at=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%au=getelementptr inbounds i8,i8*%an,i64 8
%av=bitcast i8*%au to i8**
store i8*%at,i8**%av,align 8
%aw=getelementptr inbounds i8,i8*%an,i64 16
%ax=bitcast i8*%aw to i32*
store i32 2,i32*%ax,align 4
%ay=call fastcc i8*@_SMLFN4List3mapE(i32 inreg 1,i32 inreg 8,i32 inreg 1,i32 inreg 8)
%az=getelementptr inbounds i8,i8*%ay,i64 16
%aA=bitcast i8*%az to i8*(i8*,i8*)**
%aB=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%aA,align 8
%aC=bitcast i8*%ay to i8**
%aD=load i8*,i8**%aC,align 8
store i8*%aD,i8**%h,align 8
%aE=call i8*@sml_alloc(i32 inreg 20)#0
%aF=getelementptr inbounds i8,i8*%aE,i64 -4
%aG=bitcast i8*%aF to i32*
store i32 1342177296,i32*%aG,align 4
store i8*%aE,i8**%i,align 8
%aH=load i8*,i8**%c,align 8
%aI=bitcast i8*%aE to i8**
store i8*%aH,i8**%aI,align 8
%aJ=load i8*,i8**%f,align 8
%aK=getelementptr inbounds i8,i8*%aE,i64 8
%aL=bitcast i8*%aK to i8**
store i8*%aJ,i8**%aL,align 8
%aM=getelementptr inbounds i8,i8*%aE,i64 16
%aN=bitcast i8*%aM to i32*
store i32 3,i32*%aN,align 4
%aO=call i8*@sml_alloc(i32 inreg 28)#0
%aP=getelementptr inbounds i8,i8*%aO,i64 -4
%aQ=bitcast i8*%aP to i32*
store i32 1342177304,i32*%aQ,align 4
%aR=load i8*,i8**%i,align 8
store i8*null,i8**%i,align 8
%aS=bitcast i8*%aO to i8**
store i8*%aR,i8**%aS,align 8
%aT=getelementptr inbounds i8,i8*%aO,i64 8
%aU=bitcast i8*%aT to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL6fields_194 to void(...)*),void(...)**%aU,align 8
%aV=getelementptr inbounds i8,i8*%aO,i64 16
%aW=bitcast i8*%aV to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL6fields_194 to void(...)*),void(...)**%aW,align 8
%aX=getelementptr inbounds i8,i8*%aO,i64 24
%aY=bitcast i8*%aX to i32*
store i32 -2147483647,i32*%aY,align 4
%aZ=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%a0=call fastcc i8*%aB(i8*inreg%aZ,i8*inreg%aO)
%a1=getelementptr inbounds i8,i8*%a0,i64 16
%a2=bitcast i8*%a1 to i8*(i8*,i8*)**
%a3=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%a2,align 8
%a4=bitcast i8*%a0 to i8**
%a5=load i8*,i8**%a4,align 8
store i8*%a5,i8**%h,align 8
%a6=call fastcc i8*@_SMLFN11RecordLabel3Map10listItemsiE(i32 inreg 1,i32 inreg 8)
%a7=getelementptr inbounds i8,i8*%a6,i64 16
%a8=bitcast i8*%a7 to i8*(i8*,i8*)**
%a9=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%a8,align 8
%ba=bitcast i8*%a6 to i8**
%bb=load i8*,i8**%ba,align 8
%bc=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bd=call fastcc i8*%a9(i8*inreg%bb,i8*inreg%bc)
%be=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%bf=call fastcc i8*%a3(i8*inreg%be,i8*inreg%bd)
store i8*%bf,i8**%d,align 8
%bg=call i8*@sml_alloc(i32 inreg 20)#0
%bh=getelementptr inbounds i8,i8*%bg,i64 -4
%bi=bitcast i8*%bh to i32*
store i32 1342177296,i32*%bi,align 4
%bj=bitcast i8*%bg to i8**
store i8*null,i8**%bj,align 8
%bk=load i8*,i8**%d,align 8
br label%bl
bl:
%bm=phi i8*[%el,%d3],[%bg,%N]
%bn=phi i8*[%eq,%d3],[%bk,%N]
%bo=phi i8*[%eo,%d3],[null,%N]
%bp=getelementptr inbounds i8,i8*%bm,i64 8
%bq=bitcast i8*%bp to i8**
store i8*%bn,i8**%bq,align 8
%br=getelementptr inbounds i8,i8*%bm,i64 16
%bs=bitcast i8*%br to i32*
store i32 3,i32*%bs,align 4
store i8*%bo,i8**%d,align 8
%bt=icmp eq i8*%bn,null
br i1%bt,label%bu,label%bO
bu:
store i8*null,i8**%e,align 8
store i8*null,i8**%f,align 8
store i8*null,i8**%g,align 8
store i8*null,i8**%d,align 8
%bv=load i8*,i8**@_SMLZN3Bug3BugE,align 8
store i8*%bv,i8**%c,align 8
%bw=call i8*@sml_alloc(i32 inreg 28)#0
%bx=getelementptr inbounds i8,i8*%bw,i64 -4
%by=bitcast i8*%bx to i32*
store i32 1342177304,i32*%by,align 4
store i8*%bw,i8**%d,align 8
%bz=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bA=bitcast i8*%bw to i8**
store i8*%bz,i8**%bA,align 8
%bB=getelementptr inbounds i8,i8*%bw,i64 8
%bC=bitcast i8*%bB to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[85x i8]}>,<{[4x i8],i32,[85x i8]}>*@w,i64 0,i32 2,i64 0),i8**%bC,align 8
%bD=getelementptr inbounds i8,i8*%bw,i64 16
%bE=bitcast i8*%bD to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[22x i8]}>,<{[4x i8],i32,[22x i8]}>*@x,i64 0,i32 2,i64 0),i8**%bE,align 8
%bF=getelementptr inbounds i8,i8*%bw,i64 24
%bG=bitcast i8*%bF to i32*
store i32 7,i32*%bG,align 4
%bH=call i8*@sml_alloc(i32 inreg 60)#0
%bI=getelementptr inbounds i8,i8*%bH,i64 -4
%bJ=bitcast i8*%bI to i32*
store i32 1342177336,i32*%bJ,align 4
%bK=getelementptr inbounds i8,i8*%bH,i64 56
%bL=bitcast i8*%bK to i32*
store i32 1,i32*%bL,align 4
%bM=load i8*,i8**%d,align 8
%bN=bitcast i8*%bH to i8**
store i8*%bM,i8**%bN,align 8
call void@sml_raise(i8*inreg%bH)#1
unreachable
bO:
%bP=bitcast i8*%bn to i8**
%bQ=load i8*,i8**%bP,align 8
%bR=bitcast i8*%bQ to i8**
%bS=load i8*,i8**%bR,align 8
%bT=getelementptr inbounds i8,i8*%bQ,i64 8
%bU=bitcast i8*%bT to i8**
%bV=load i8*,i8**%bU,align 8
store i8*%bV,i8**%h,align 8
%bW=getelementptr inbounds i8,i8*%bn,i64 8
%bX=bitcast i8*%bW to i8**
%bY=load i8*,i8**%bX,align 8
store i8*%bY,i8**%i,align 8
%bZ=load i8*,i8**%e,align 8
%b0=call i32@sml_obj_equal(i8*inreg%bS,i8*inreg%bZ)#0
%b1=icmp eq i32%b0,0
br i1%b1,label%d3,label%b2
b2:
store i8*null,i8**%i,align 8
%b3=call fastcc i8*@_SMLFN4List3revE(i32 inreg 1,i32 inreg 8)
%b4=getelementptr inbounds i8,i8*%b3,i64 16
%b5=bitcast i8*%b4 to i8*(i8*,i8*)**
%b6=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%b5,align 8
%b7=bitcast i8*%b3 to i8**
%b8=load i8*,i8**%b7,align 8
%b9=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%ca=call fastcc i8*%b6(i8*inreg%b8,i8*inreg%b9)
store i8*%ca,i8**%d,align 8
%cb=call i8*@sml_alloc(i32 inreg 12)#0
%cc=getelementptr inbounds i8,i8*%cb,i64 -4
%cd=bitcast i8*%cc to i32*
store i32 1342177288,i32*%cd,align 4
store i8*%cb,i8**%i,align 8
%ce=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%cf=bitcast i8*%cb to i8**
store i8*%ce,i8**%cf,align 8
%cg=getelementptr inbounds i8,i8*%cb,i64 8
%ch=bitcast i8*%cg to i32*
store i32 1,i32*%ch,align 4
%ci=call i8*@sml_alloc(i32 inreg 20)#0
%cj=getelementptr inbounds i8,i8*%ci,i64 -4
%ck=bitcast i8*%cj to i32*
store i32 1342177296,i32*%ck,align 4
%cl=load i8*,i8**%d,align 8
%cm=bitcast i8*%ci to i8**
store i8*%cl,i8**%cm,align 8
%cn=load i8*,i8**%i,align 8
store i8*null,i8**%i,align 8
%co=getelementptr inbounds i8,i8*%ci,i64 8
%cp=bitcast i8*%co to i8**
store i8*%cn,i8**%cp,align 8
%cq=getelementptr inbounds i8,i8*%ci,i64 16
%cr=bitcast i8*%cq to i32*
store i32 3,i32*%cr,align 4
store i8*%cn,i8**%h,align 8
%cs=bitcast i8**%c to i8***
%ct=load i8**,i8***%cs,align 8
%cu=load i8*,i8**%ct,align 8
%cv=call fastcc i8*@_SMLFN12RecordLayout12computeIndexE(i8*inreg%cu)
%cw=getelementptr inbounds i8,i8*%cv,i64 16
%cx=bitcast i8*%cw to i8*(i8*,i8*)**
%cy=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%cx,align 8
%cz=bitcast i8*%cv to i8**
%cA=load i8*,i8**%cz,align 8
store i8*%cA,i8**%i,align 8
%cB=call i8*@sml_alloc(i32 inreg 20)#0
%cC=getelementptr inbounds i8,i8*%cB,i64 -4
%cD=bitcast i8*%cC to i32*
store i32 1342177296,i32*%cD,align 4
%cE=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%cF=bitcast i8*%cB to i8**
store i8*%cE,i8**%cF,align 8
%cG=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%cH=getelementptr inbounds i8,i8*%cB,i64 8
%cI=bitcast i8*%cH to i8**
store i8*%cG,i8**%cI,align 8
%cJ=getelementptr inbounds i8,i8*%cB,i64 16
%cK=bitcast i8*%cJ to i32*
store i32 3,i32*%cK,align 4
%cL=load i8*,i8**%i,align 8
store i8*null,i8**%i,align 8
%cM=call fastcc i8*%cy(i8*inreg%cL,i8*inreg%cB)
store i8*%cM,i8**%d,align 8
%cN=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%cO=call fastcc i8*@_SMLLLN17BitmapCompilation7toBcexpE_97(i8*inreg%cN)
%cP=getelementptr inbounds i8,i8*%cO,i64 16
%cQ=bitcast i8*%cP to i8*(i8*,i8*)**
%cR=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%cQ,align 8
%cS=bitcast i8*%cO to i8**
%cT=load i8*,i8**%cS,align 8
%cU=load i8*,i8**%f,align 8
%cV=call fastcc i8*%cR(i8*inreg%cT,i8*inreg%cU)
%cW=getelementptr inbounds i8,i8*%cV,i64 16
%cX=bitcast i8*%cW to i8*(i8*,i8*)**
%cY=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%cX,align 8
%cZ=bitcast i8*%cV to i8**
%c0=load i8*,i8**%cZ,align 8
%c1=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%c2=call fastcc i8*%cY(i8*inreg%c0,i8*inreg%c1)
store i8*%c2,i8**%c,align 8
%c3=load i8*,i8**@_SMLZN12BuiltinTypes8word32TyE,align 8
store i8*%c3,i8**%d,align 8
%c4=call i8*@sml_alloc(i32 inreg 20)#0
%c5=getelementptr inbounds i8,i8*%c4,i64 -4
%c6=bitcast i8*%c5 to i32*
store i32 1342177296,i32*%c6,align 4
store i8*%c4,i8**%h,align 8
%c7=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%c8=bitcast i8*%c4 to i8**
store i8*%c7,i8**%c8,align 8
%c9=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%da=getelementptr inbounds i8,i8*%c4,i64 8
%db=bitcast i8*%da to i8**
store i8*%c9,i8**%db,align 8
%dc=getelementptr inbounds i8,i8*%c4,i64 16
%dd=bitcast i8*%dc to i32*
store i32 3,i32*%dd,align 4
%de=call i8*@sml_alloc(i32 inreg 20)#0
%df=getelementptr inbounds i8,i8*%de,i64 -4
%dg=bitcast i8*%df to i32*
store i32 1342177296,i32*%dg,align 4
store i8*%de,i8**%e,align 8
%dh=bitcast i8*%de to i64*
store i64 0,i64*%dh,align 4
%di=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%dj=getelementptr inbounds i8,i8*%de,i64 8
%dk=bitcast i8*%dj to i8**
store i8*%di,i8**%dk,align 8
%dl=getelementptr inbounds i8,i8*%de,i64 16
%dm=bitcast i8*%dl to i32*
store i32 2,i32*%dm,align 4
%dn=call i8*@sml_alloc(i32 inreg 20)#0
%do=getelementptr inbounds i8,i8*%dn,i64 -4
%dp=bitcast i8*%do to i32*
store i32 1342177296,i32*%dp,align 4
store i8*%dn,i8**%g,align 8
%dq=getelementptr inbounds i8,i8*%dn,i64 4
%dr=bitcast i8*%dq to i32*
store i32 0,i32*%dr,align 1
%ds=bitcast i8*%dn to i32*
store i32 9,i32*%ds,align 4
%dt=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%du=getelementptr inbounds i8,i8*%dn,i64 8
%dv=bitcast i8*%du to i8**
store i8*%dt,i8**%dv,align 8
%dw=getelementptr inbounds i8,i8*%dn,i64 16
%dx=bitcast i8*%dw to i32*
store i32 2,i32*%dx,align 4
%dy=call i8*@sml_alloc(i32 inreg 44)#0
%dz=getelementptr inbounds i8,i8*%dy,i64 -4
%dA=bitcast i8*%dz to i32*
store i32 1342177320,i32*%dA,align 4
store i8*%dy,i8**%e,align 8
%dB=getelementptr inbounds i8,i8*%dy,i64 4
%dC=bitcast i8*%dB to i32*
store i32 0,i32*%dC,align 1
%dD=bitcast i8*%dy to i32*
store i32 1,i32*%dD,align 4
%dE=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%dF=getelementptr inbounds i8,i8*%dy,i64 8
%dG=bitcast i8*%dF to i8**
store i8*%dE,i8**%dG,align 8
%dH=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%dI=getelementptr inbounds i8,i8*%dy,i64 16
%dJ=bitcast i8*%dI to i8**
store i8*%dH,i8**%dJ,align 8
%dK=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%dL=getelementptr inbounds i8,i8*%dy,i64 24
%dM=bitcast i8*%dL to i8**
store i8*%dK,i8**%dM,align 8
%dN=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%dO=getelementptr inbounds i8,i8*%dy,i64 32
%dP=bitcast i8*%dO to i8**
store i8*%dN,i8**%dP,align 8
%dQ=getelementptr inbounds i8,i8*%dy,i64 40
%dR=bitcast i8*%dQ to i32*
store i32 30,i32*%dR,align 4
%dS=call i8*@sml_alloc(i32 inreg 20)#0
%dT=bitcast i8*%dS to i32*
%dU=getelementptr inbounds i8,i8*%dS,i64 -4
%dV=bitcast i8*%dU to i32*
store i32 1342177296,i32*%dV,align 4
%dW=getelementptr inbounds i8,i8*%dS,i64 4
%dX=bitcast i8*%dW to i32*
store i32 0,i32*%dX,align 1
store i32 2,i32*%dT,align 4
%dY=load i8*,i8**%e,align 8
%dZ=getelementptr inbounds i8,i8*%dS,i64 8
%d0=bitcast i8*%dZ to i8**
store i8*%dY,i8**%d0,align 8
%d1=getelementptr inbounds i8,i8*%dS,i64 16
%d2=bitcast i8*%d1 to i32*
store i32 2,i32*%d2,align 4
ret i8*%dS
d3:
%d4=call i8*@sml_alloc(i32 inreg 12)#0
%d5=getelementptr inbounds i8,i8*%d4,i64 -4
%d6=bitcast i8*%d5 to i32*
store i32 1342177288,i32*%d6,align 4
store i8*%d4,i8**%j,align 8
%d7=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%d8=bitcast i8*%d4 to i8**
store i8*%d7,i8**%d8,align 8
%d9=getelementptr inbounds i8,i8*%d4,i64 8
%ea=bitcast i8*%d9 to i32*
store i32 1,i32*%ea,align 4
%eb=call i8*@sml_alloc(i32 inreg 20)#0
%ec=getelementptr inbounds i8,i8*%eb,i64 -4
%ed=bitcast i8*%ec to i32*
store i32 1342177296,i32*%ed,align 4
store i8*%eb,i8**%h,align 8
%ee=load i8*,i8**%j,align 8
store i8*null,i8**%j,align 8
%ef=bitcast i8*%eb to i8**
store i8*%ee,i8**%ef,align 8
%eg=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%eh=getelementptr inbounds i8,i8*%eb,i64 8
%ei=bitcast i8*%eh to i8**
store i8*%eg,i8**%ei,align 8
%ej=getelementptr inbounds i8,i8*%eb,i64 16
%ek=bitcast i8*%ej to i32*
store i32 3,i32*%ek,align 4
%el=call i8*@sml_alloc(i32 inreg 20)#0
%em=getelementptr inbounds i8,i8*%el,i64 -4
%en=bitcast i8*%em to i32*
store i32 1342177296,i32*%en,align 4
%eo=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%ep=bitcast i8*%el to i8**
store i8*%eo,i8**%ep,align 8
%eq=load i8*,i8**%i,align 8
store i8*null,i8**%i,align 8
br label%bl
er:
%es=getelementptr inbounds i8,i8*%r,i64 8
%et=bitcast i8*%es to i8**
%eu=load i8*,i8**%et,align 8
%ev=bitcast i8*%eu to i32*
%ew=load i32,i32*%ev,align 4
%ex=getelementptr inbounds i8,i8*%eu,i64 8
%ey=bitcast i8*%ex to i8**
%ez=load i8*,i8**%ey,align 8
%eA=getelementptr inbounds i8,i8*%eu,i64 16
%eB=bitcast i8*%eA to i8**
%eC=load i8*,i8**%eB,align 8
store i8*%eC,i8**%d,align 8
%eD=getelementptr inbounds i8,i8*%eu,i64 24
%eE=bitcast i8*%eD to i8**
%eF=load i8*,i8**%eE,align 8
store i8*%eF,i8**%e,align 8
%eG=getelementptr inbounds i8,i8*%eu,i64 32
%eH=bitcast i8*%eG to i8**
%eI=load i8*,i8**%eH,align 8
store i8*%eI,i8**%f,align 8
%eJ=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%eK=call fastcc i8*@_SMLLLN17BitmapCompilation10compileExpE_125(i8*inreg%eJ,i8*inreg%ez)
store i8*%eK,i8**%c,align 8
%eL=call i8*@sml_alloc(i32 inreg 44)#0
%eM=getelementptr inbounds i8,i8*%eL,i64 -4
%eN=bitcast i8*%eM to i32*
store i32 1342177320,i32*%eN,align 4
store i8*%eL,i8**%g,align 8
%eO=getelementptr inbounds i8,i8*%eL,i64 4
%eP=bitcast i8*%eO to i32*
store i32 0,i32*%eP,align 1
%eQ=bitcast i8*%eL to i32*
store i32%ew,i32*%eQ,align 4
%eR=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%eS=getelementptr inbounds i8,i8*%eL,i64 8
%eT=bitcast i8*%eS to i8**
store i8*%eR,i8**%eT,align 8
%eU=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%eV=getelementptr inbounds i8,i8*%eL,i64 16
%eW=bitcast i8*%eV to i8**
store i8*%eU,i8**%eW,align 8
%eX=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%eY=getelementptr inbounds i8,i8*%eL,i64 24
%eZ=bitcast i8*%eY to i8**
store i8*%eX,i8**%eZ,align 8
%e0=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%e1=getelementptr inbounds i8,i8*%eL,i64 32
%e2=bitcast i8*%e1 to i8**
store i8*%e0,i8**%e2,align 8
%e3=getelementptr inbounds i8,i8*%eL,i64 40
%e4=bitcast i8*%e3 to i32*
store i32 30,i32*%e4,align 4
%e5=call i8*@sml_alloc(i32 inreg 20)#0
%e6=bitcast i8*%e5 to i32*
%e7=getelementptr inbounds i8,i8*%e5,i64 -4
%e8=bitcast i8*%e7 to i32*
store i32 1342177296,i32*%e8,align 4
%e9=getelementptr inbounds i8,i8*%e5,i64 4
%fa=bitcast i8*%e9 to i32*
store i32 0,i32*%fa,align 1
store i32 2,i32*%e6,align 4
%fb=load i8*,i8**%g,align 8
%fc=getelementptr inbounds i8,i8*%e5,i64 8
%fd=bitcast i8*%fc to i8**
store i8*%fb,i8**%fd,align 8
%fe=getelementptr inbounds i8,i8*%e5,i64 16
%ff=bitcast i8*%fe to i32*
store i32 2,i32*%ff,align 4
ret i8*%e5
fg:
%fh=getelementptr inbounds i8,i8*%r,i64 8
%fi=bitcast i8*%fh to i8**
%fj=load i8*,i8**%fi,align 8
%fk=bitcast i8*%fj to i8**
%fl=load i8*,i8**%fk,align 8
store i8*%fl,i8**%d,align 8
%fm=getelementptr inbounds i8,i8*%fj,i64 8
%fn=bitcast i8*%fm to i8**
%fo=load i8*,i8**%fn,align 8
store i8*%fo,i8**%e,align 8
%fp=getelementptr inbounds i8,i8*%fj,i64 16
%fq=bitcast i8*%fp to i8**
%fr=load i8*,i8**%fq,align 8
%fs=getelementptr inbounds i8,i8*%fj,i64 24
%ft=bitcast i8*%fs to i8**
%fu=load i8*,i8**%ft,align 8
store i8*%fu,i8**%f,align 8
%fv=getelementptr inbounds i8,i8*%fj,i64 32
%fw=bitcast i8*%fv to i8**
%fx=load i8*,i8**%fw,align 8
store i8*%fx,i8**%g,align 8
%fy=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%fz=call fastcc i8*@_SMLLLN17BitmapCompilation10compileExpE_125(i8*inreg%fy,i8*inreg%fr)
store i8*%fz,i8**%c,align 8
%fA=call i8*@sml_alloc(i32 inreg 44)#0
%fB=getelementptr inbounds i8,i8*%fA,i64 -4
%fC=bitcast i8*%fB to i32*
store i32 1342177320,i32*%fC,align 4
store i8*%fA,i8**%h,align 8
%fD=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%fE=bitcast i8*%fA to i8**
store i8*%fD,i8**%fE,align 8
%fF=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%fG=getelementptr inbounds i8,i8*%fA,i64 8
%fH=bitcast i8*%fG to i8**
store i8*%fF,i8**%fH,align 8
%fI=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%fJ=getelementptr inbounds i8,i8*%fA,i64 16
%fK=bitcast i8*%fJ to i8**
store i8*%fI,i8**%fK,align 8
%fL=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%fM=getelementptr inbounds i8,i8*%fA,i64 24
%fN=bitcast i8*%fM to i8**
store i8*%fL,i8**%fN,align 8
%fO=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%fP=getelementptr inbounds i8,i8*%fA,i64 32
%fQ=bitcast i8*%fP to i8**
store i8*%fO,i8**%fQ,align 8
%fR=getelementptr inbounds i8,i8*%fA,i64 40
%fS=bitcast i8*%fR to i32*
store i32 31,i32*%fS,align 4
%fT=call i8*@sml_alloc(i32 inreg 20)#0
%fU=bitcast i8*%fT to i32*
%fV=getelementptr inbounds i8,i8*%fT,i64 -4
%fW=bitcast i8*%fV to i32*
store i32 1342177296,i32*%fW,align 4
%fX=getelementptr inbounds i8,i8*%fT,i64 4
%fY=bitcast i8*%fX to i32*
store i32 0,i32*%fY,align 1
store i32 1,i32*%fU,align 4
%fZ=load i8*,i8**%h,align 8
%f0=getelementptr inbounds i8,i8*%fT,i64 8
%f1=bitcast i8*%f0 to i8**
store i8*%fZ,i8**%f1,align 8
%f2=getelementptr inbounds i8,i8*%fT,i64 16
%f3=bitcast i8*%f2 to i32*
store i32 2,i32*%f3,align 4
ret i8*%fT
f4:
%f5=getelementptr inbounds i8,i8*%r,i64 8
%f6=bitcast i8*%f5 to i8**
%f7=load i8*,i8**%f6,align 8
%f8=bitcast i8*%f7 to i8**
%f9=load i8*,i8**%f8,align 8
store i8*%f9,i8**%d,align 8
%ga=getelementptr inbounds i8,i8*%f7,i64 8
%gb=bitcast i8*%ga to i8**
%gc=load i8*,i8**%gb,align 8
store i8*%gc,i8**%e,align 8
%gd=getelementptr inbounds i8,i8*%f7,i64 16
%ge=bitcast i8*%gd to i8**
%gf=load i8*,i8**%ge,align 8
%gg=getelementptr inbounds i8,i8*%f7,i64 24
%gh=bitcast i8*%gg to i8**
%gi=load i8*,i8**%gh,align 8
store i8*%gi,i8**%f,align 8
%gj=getelementptr inbounds i8,i8*%f7,i64 32
%gk=bitcast i8*%gj to i8**
%gl=load i8*,i8**%gk,align 8
store i8*%gl,i8**%g,align 8
%gm=load i8*,i8**%c,align 8
%gn=call fastcc i8*@_SMLLLN17BitmapCompilation10compileExpE_125(i8*inreg%gm,i8*inreg%gf)
store i8*%gn,i8**%h,align 8
%go=call fastcc i8*@_SMLFN4List3mapE(i32 inreg 1,i32 inreg 8,i32 inreg 1,i32 inreg 8)
%gp=getelementptr inbounds i8,i8*%go,i64 16
%gq=bitcast i8*%gp to i8*(i8*,i8*)**
%gr=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%gq,align 8
%gs=bitcast i8*%go to i8**
%gt=load i8*,i8**%gs,align 8
store i8*%gt,i8**%i,align 8
%gu=call i8*@sml_alloc(i32 inreg 12)#0
%gv=getelementptr inbounds i8,i8*%gu,i64 -4
%gw=bitcast i8*%gv to i32*
store i32 1342177288,i32*%gw,align 4
store i8*%gu,i8**%j,align 8
%gx=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%gy=bitcast i8*%gu to i8**
store i8*%gx,i8**%gy,align 8
%gz=getelementptr inbounds i8,i8*%gu,i64 8
%gA=bitcast i8*%gz to i32*
store i32 1,i32*%gA,align 4
%gB=call i8*@sml_alloc(i32 inreg 28)#0
%gC=getelementptr inbounds i8,i8*%gB,i64 -4
%gD=bitcast i8*%gC to i32*
store i32 1342177304,i32*%gD,align 4
%gE=load i8*,i8**%j,align 8
store i8*null,i8**%j,align 8
%gF=bitcast i8*%gB to i8**
store i8*%gE,i8**%gF,align 8
%gG=getelementptr inbounds i8,i8*%gB,i64 8
%gH=bitcast i8*%gG to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL10argExpList_190 to void(...)*),void(...)**%gH,align 8
%gI=getelementptr inbounds i8,i8*%gB,i64 16
%gJ=bitcast i8*%gI to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL10argExpList_190 to void(...)*),void(...)**%gJ,align 8
%gK=getelementptr inbounds i8,i8*%gB,i64 24
%gL=bitcast i8*%gK to i32*
store i32 -2147483647,i32*%gL,align 4
%gM=load i8*,i8**%i,align 8
store i8*null,i8**%i,align 8
%gN=call fastcc i8*%gr(i8*inreg%gM,i8*inreg%gB)
%gO=getelementptr inbounds i8,i8*%gN,i64 16
%gP=bitcast i8*%gO to i8*(i8*,i8*)**
%gQ=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%gP,align 8
%gR=bitcast i8*%gN to i8**
%gS=load i8*,i8**%gR,align 8
%gT=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%gU=call fastcc i8*%gQ(i8*inreg%gS,i8*inreg%gT)
store i8*%gU,i8**%c,align 8
%gV=call i8*@sml_alloc(i32 inreg 44)#0
%gW=getelementptr inbounds i8,i8*%gV,i64 -4
%gX=bitcast i8*%gW to i32*
store i32 1342177320,i32*%gX,align 4
store i8*%gV,i8**%d,align 8
%gY=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%gZ=bitcast i8*%gV to i8**
store i8*%gY,i8**%gZ,align 8
%g0=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%g1=getelementptr inbounds i8,i8*%gV,i64 8
%g2=bitcast i8*%g1 to i8**
store i8*%g0,i8**%g2,align 8
%g3=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%g4=getelementptr inbounds i8,i8*%gV,i64 16
%g5=bitcast i8*%g4 to i8**
store i8*%g3,i8**%g5,align 8
%g6=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%g7=getelementptr inbounds i8,i8*%gV,i64 24
%g8=bitcast i8*%g7 to i8**
store i8*%g6,i8**%g8,align 8
%g9=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%ha=getelementptr inbounds i8,i8*%gV,i64 32
%hb=bitcast i8*%ha to i8**
store i8*%g9,i8**%hb,align 8
%hc=getelementptr inbounds i8,i8*%gV,i64 40
%hd=bitcast i8*%hc to i32*
store i32 31,i32*%hd,align 4
%he=call i8*@sml_alloc(i32 inreg 20)#0
%hf=bitcast i8*%he to i32*
%hg=getelementptr inbounds i8,i8*%he,i64 -4
%hh=bitcast i8*%hg to i32*
store i32 1342177296,i32*%hh,align 4
%hi=getelementptr inbounds i8,i8*%he,i64 4
%hj=bitcast i8*%hi to i32*
store i32 0,i32*%hj,align 1
store i32 7,i32*%hf,align 4
%hk=load i8*,i8**%d,align 8
%hl=getelementptr inbounds i8,i8*%he,i64 8
%hm=bitcast i8*%hl to i8**
store i8*%hk,i8**%hm,align 8
%hn=getelementptr inbounds i8,i8*%he,i64 16
%ho=bitcast i8*%hn to i32*
store i32 2,i32*%ho,align 4
ret i8*%he
hp:
%hq=getelementptr inbounds i8,i8*%r,i64 8
%hr=bitcast i8*%hq to i8**
%hs=load i8*,i8**%hr,align 8
%ht=bitcast i8*%hs to i8**
%hu=load i8*,i8**%ht,align 8
store i8*%hu,i8**%d,align 8
%hv=getelementptr inbounds i8,i8*%hs,i64 8
%hw=bitcast i8*%hv to i32*
%hx=load i32,i32*%hw,align 4
%hy=getelementptr inbounds i8,i8*%hs,i64 16
%hz=bitcast i8*%hy to i8**
%hA=load i8*,i8**%hz,align 8
store i8*%hA,i8**%e,align 8
%hB=getelementptr inbounds i8,i8*%hs,i64 24
%hC=bitcast i8*%hB to i8**
%hD=load i8*,i8**%hC,align 8
store i8*%hD,i8**%f,align 8
%hE=getelementptr inbounds i8,i8*%hs,i64 32
%hF=bitcast i8*%hE to i8**
%hG=load i8*,i8**%hF,align 8
store i8*%hG,i8**%g,align 8
%hH=call fastcc i8*@_SMLFN4List3mapE(i32 inreg 1,i32 inreg 8,i32 inreg 1,i32 inreg 8)
%hI=getelementptr inbounds i8,i8*%hH,i64 16
%hJ=bitcast i8*%hI to i8*(i8*,i8*)**
%hK=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%hJ,align 8
%hL=bitcast i8*%hH to i8**
%hM=load i8*,i8**%hL,align 8
store i8*%hM,i8**%h,align 8
%hN=call i8*@sml_alloc(i32 inreg 12)#0
%hO=getelementptr inbounds i8,i8*%hN,i64 -4
%hP=bitcast i8*%hO to i32*
store i32 1342177288,i32*%hP,align 4
store i8*%hN,i8**%i,align 8
%hQ=load i8*,i8**%c,align 8
%hR=bitcast i8*%hN to i8**
store i8*%hQ,i8**%hR,align 8
%hS=getelementptr inbounds i8,i8*%hN,i64 8
%hT=bitcast i8*%hS to i32*
store i32 1,i32*%hT,align 4
%hU=call i8*@sml_alloc(i32 inreg 28)#0
%hV=getelementptr inbounds i8,i8*%hU,i64 -4
%hW=bitcast i8*%hV to i32*
store i32 1342177304,i32*%hW,align 4
%hX=load i8*,i8**%i,align 8
store i8*null,i8**%i,align 8
%hY=bitcast i8*%hU to i8**
store i8*%hX,i8**%hY,align 8
%hZ=getelementptr inbounds i8,i8*%hU,i64 8
%h0=bitcast i8*%hZ to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL5rules_189 to void(...)*),void(...)**%h0,align 8
%h1=getelementptr inbounds i8,i8*%hU,i64 16
%h2=bitcast i8*%h1 to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL5rules_189 to void(...)*),void(...)**%h2,align 8
%h3=getelementptr inbounds i8,i8*%hU,i64 24
%h4=bitcast i8*%h3 to i32*
store i32 -2147483647,i32*%h4,align 4
%h5=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%h6=call fastcc i8*%hK(i8*inreg%h5,i8*inreg%hU)
%h7=getelementptr inbounds i8,i8*%h6,i64 16
%h8=bitcast i8*%h7 to i8*(i8*,i8*)**
%h9=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%h8,align 8
%ia=bitcast i8*%h6 to i8**
%ib=load i8*,i8**%ia,align 8
%ic=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%id=call fastcc i8*%h9(i8*inreg%ib,i8*inreg%ic)
store i8*%id,i8**%f,align 8
%ie=load i8*,i8**%c,align 8
%if=load i8*,i8**%g,align 8
store i8*null,i8**%c,align 8
store i8*null,i8**%g,align 8
%ig=call fastcc i8*@_SMLLLN17BitmapCompilation10compileExpE_125(i8*inreg%ie,i8*inreg%if)
store i8*%ig,i8**%c,align 8
%ih=call i8*@sml_alloc(i32 inreg 44)#0
%ii=getelementptr inbounds i8,i8*%ih,i64 -4
%ij=bitcast i8*%ii to i32*
store i32 1342177320,i32*%ij,align 4
store i8*%ih,i8**%g,align 8
%ik=getelementptr inbounds i8,i8*%ih,i64 12
%il=bitcast i8*%ik to i32*
store i32 0,i32*%il,align 1
%im=load i8*,i8**%d,align 8
%in=bitcast i8*%ih to i8**
store i8*null,i8**%d,align 8
store i8*%im,i8**%in,align 8
%io=getelementptr inbounds i8,i8*%ih,i64 8
%ip=bitcast i8*%io to i32*
store i32%hx,i32*%ip,align 4
%iq=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%ir=getelementptr inbounds i8,i8*%ih,i64 16
%is=bitcast i8*%ir to i8**
store i8*%iq,i8**%is,align 8
%it=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%iu=getelementptr inbounds i8,i8*%ih,i64 24
%iv=bitcast i8*%iu to i8**
store i8*%it,i8**%iv,align 8
%iw=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%ix=getelementptr inbounds i8,i8*%ih,i64 32
%iy=bitcast i8*%ix to i8**
store i8*%iw,i8**%iy,align 8
%iz=getelementptr inbounds i8,i8*%ih,i64 40
%iA=bitcast i8*%iz to i32*
store i32 29,i32*%iA,align 4
%iB=call i8*@sml_alloc(i32 inreg 20)#0
%iC=bitcast i8*%iB to i32*
%iD=getelementptr inbounds i8,i8*%iB,i64 -4
%iE=bitcast i8*%iD to i32*
store i32 1342177296,i32*%iE,align 4
%iF=getelementptr inbounds i8,i8*%iB,i64 4
%iG=bitcast i8*%iF to i32*
store i32 0,i32*%iG,align 1
store i32 3,i32*%iC,align 4
%iH=load i8*,i8**%g,align 8
%iI=getelementptr inbounds i8,i8*%iB,i64 8
%iJ=bitcast i8*%iI to i8**
store i8*%iH,i8**%iJ,align 8
%iK=getelementptr inbounds i8,i8*%iB,i64 16
%iL=bitcast i8*%iK to i32*
store i32 2,i32*%iL,align 4
ret i8*%iB
iM:
%iN=getelementptr inbounds i8,i8*%r,i64 8
%iO=bitcast i8*%iN to i8**
%iP=load i8*,i8**%iO,align 8
%iQ=bitcast i8*%iP to i8**
%iR=load i8*,i8**%iQ,align 8
store i8*%iR,i8**%d,align 8
%iS=getelementptr inbounds i8,i8*%iP,i64 8
%iT=bitcast i8*%iS to i8**
%iU=load i8*,i8**%iT,align 8
store i8*%iU,i8**%e,align 8
%iV=getelementptr inbounds i8,i8*%iP,i64 16
%iW=bitcast i8*%iV to i8**
%iX=load i8*,i8**%iW,align 8
store i8*%iX,i8**%f,align 8
%iY=getelementptr inbounds i8,i8*%iP,i64 24
%iZ=bitcast i8*%iY to i8**
%i0=load i8*,i8**%iZ,align 8
store i8*%i0,i8**%g,align 8
%i1=call fastcc i8*@_SMLFN4List3mapE(i32 inreg 1,i32 inreg 8,i32 inreg 1,i32 inreg 8)
%i2=getelementptr inbounds i8,i8*%i1,i64 16
%i3=bitcast i8*%i2 to i8*(i8*,i8*)**
%i4=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%i3,align 8
%i5=bitcast i8*%i1 to i8**
%i6=load i8*,i8**%i5,align 8
store i8*%i6,i8**%h,align 8
%i7=call i8*@sml_alloc(i32 inreg 12)#0
%i8=getelementptr inbounds i8,i8*%i7,i64 -4
%i9=bitcast i8*%i8 to i32*
store i32 1342177288,i32*%i9,align 4
store i8*%i7,i8**%i,align 8
%ja=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%jb=bitcast i8*%i7 to i8**
store i8*%ja,i8**%jb,align 8
%jc=getelementptr inbounds i8,i8*%i7,i64 8
%jd=bitcast i8*%jc to i32*
store i32 1,i32*%jd,align 4
%je=call i8*@sml_alloc(i32 inreg 28)#0
%jf=getelementptr inbounds i8,i8*%je,i64 -4
%jg=bitcast i8*%jf to i32*
store i32 1342177304,i32*%jg,align 4
%jh=load i8*,i8**%i,align 8
store i8*null,i8**%i,align 8
%ji=bitcast i8*%je to i8**
store i8*%jh,i8**%ji,align 8
%jj=getelementptr inbounds i8,i8*%je,i64 8
%jk=bitcast i8*%jj to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL10argExpList_188 to void(...)*),void(...)**%jk,align 8
%jl=getelementptr inbounds i8,i8*%je,i64 16
%jm=bitcast i8*%jl to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL10argExpList_188 to void(...)*),void(...)**%jm,align 8
%jn=getelementptr inbounds i8,i8*%je,i64 24
%jo=bitcast i8*%jn to i32*
store i32 -2147483647,i32*%jo,align 4
%jp=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%jq=call fastcc i8*%i4(i8*inreg%jp,i8*inreg%je)
%jr=getelementptr inbounds i8,i8*%jq,i64 16
%js=bitcast i8*%jr to i8*(i8*,i8*)**
%jt=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%js,align 8
%ju=bitcast i8*%jq to i8**
%jv=load i8*,i8**%ju,align 8
%jw=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%jx=call fastcc i8*%jt(i8*inreg%jv,i8*inreg%jw)
store i8*%jx,i8**%c,align 8
%jy=call i8*@sml_alloc(i32 inreg 36)#0
%jz=getelementptr inbounds i8,i8*%jy,i64 -4
%jA=bitcast i8*%jz to i32*
store i32 1342177312,i32*%jA,align 4
store i8*%jy,i8**%d,align 8
%jB=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%jC=bitcast i8*%jy to i8**
store i8*%jB,i8**%jC,align 8
%jD=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%jE=getelementptr inbounds i8,i8*%jy,i64 8
%jF=bitcast i8*%jE to i8**
store i8*%jD,i8**%jF,align 8
%jG=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%jH=getelementptr inbounds i8,i8*%jy,i64 16
%jI=bitcast i8*%jH to i8**
store i8*%jG,i8**%jI,align 8
%jJ=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%jK=getelementptr inbounds i8,i8*%jy,i64 24
%jL=bitcast i8*%jK to i8**
store i8*%jJ,i8**%jL,align 8
%jM=getelementptr inbounds i8,i8*%jy,i64 32
%jN=bitcast i8*%jM to i32*
store i32 15,i32*%jN,align 4
%jO=call i8*@sml_alloc(i32 inreg 20)#0
%jP=bitcast i8*%jO to i32*
%jQ=getelementptr inbounds i8,i8*%jO,i64 -4
%jR=bitcast i8*%jQ to i32*
store i32 1342177296,i32*%jR,align 4
%jS=getelementptr inbounds i8,i8*%jO,i64 4
%jT=bitcast i8*%jS to i32*
store i32 0,i32*%jT,align 1
store i32 17,i32*%jP,align 4
%jU=load i8*,i8**%d,align 8
%jV=getelementptr inbounds i8,i8*%jO,i64 8
%jW=bitcast i8*%jV to i8**
store i8*%jU,i8**%jW,align 8
%jX=getelementptr inbounds i8,i8*%jO,i64 16
%jY=bitcast i8*%jX to i32*
store i32 2,i32*%jY,align 4
ret i8*%jO
jZ:
%j0=getelementptr inbounds i8,i8*%r,i64 8
%j1=bitcast i8*%j0 to i8**
%j2=load i8*,i8**%j1,align 8
%j3=bitcast i8*%j2 to i8**
%j4=load i8*,i8**%j3,align 8
store i8*%j4,i8**%d,align 8
%j5=getelementptr inbounds i8,i8*%j2,i64 8
%j6=bitcast i8*%j5 to i8**
%j7=load i8*,i8**%j6,align 8
%j8=getelementptr inbounds i8,i8*%j2,i64 16
%j9=bitcast i8*%j8 to i8**
%ka=load i8*,i8**%j9,align 8
store i8*%ka,i8**%e,align 8
%kb=getelementptr inbounds i8,i8*%j2,i64 24
%kc=bitcast i8*%kb to i8**
%kd=load i8*,i8**%kc,align 8
store i8*%kd,i8**%f,align 8
%ke=getelementptr inbounds i8,i8*%j2,i64 32
%kf=bitcast i8*%ke to i8**
%kg=load i8*,i8**%kf,align 8
store i8*%kg,i8**%g,align 8
%kh=load i8*,i8**%c,align 8
%ki=call fastcc i8*@_SMLLLN17BitmapCompilation10compileExpE_125(i8*inreg%kh,i8*inreg%j7)
store i8*%ki,i8**%h,align 8
%kj=load i8*,i8**%c,align 8
%kk=load i8*,i8**%e,align 8
store i8*null,i8**%c,align 8
store i8*null,i8**%e,align 8
%kl=call fastcc i8*@_SMLLLN17BitmapCompilation10compileExpE_125(i8*inreg%kj,i8*inreg%kk)
store i8*%kl,i8**%c,align 8
%km=call i8*@sml_alloc(i32 inreg 44)#0
%kn=getelementptr inbounds i8,i8*%km,i64 -4
%ko=bitcast i8*%kn to i32*
store i32 1342177320,i32*%ko,align 4
store i8*%km,i8**%e,align 8
%kp=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%kq=bitcast i8*%km to i8**
store i8*%kp,i8**%kq,align 8
%kr=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%ks=getelementptr inbounds i8,i8*%km,i64 8
%kt=bitcast i8*%ks to i8**
store i8*%kr,i8**%kt,align 8
%ku=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%kv=getelementptr inbounds i8,i8*%km,i64 16
%kw=bitcast i8*%kv to i8**
store i8*%ku,i8**%kw,align 8
%kx=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%ky=getelementptr inbounds i8,i8*%km,i64 24
%kz=bitcast i8*%ky to i8**
store i8*%kx,i8**%kz,align 8
%kA=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%kB=getelementptr inbounds i8,i8*%km,i64 32
%kC=bitcast i8*%kB to i8**
store i8*%kA,i8**%kC,align 8
%kD=getelementptr inbounds i8,i8*%km,i64 40
%kE=bitcast i8*%kD to i32*
store i32 31,i32*%kE,align 4
%kF=call i8*@sml_alloc(i32 inreg 20)#0
%kG=bitcast i8*%kF to i32*
%kH=getelementptr inbounds i8,i8*%kF,i64 -4
%kI=bitcast i8*%kH to i32*
store i32 1342177296,i32*%kI,align 4
%kJ=getelementptr inbounds i8,i8*%kF,i64 4
%kK=bitcast i8*%kJ to i32*
store i32 0,i32*%kK,align 1
store i32 8,i32*%kG,align 4
%kL=load i8*,i8**%e,align 8
%kM=getelementptr inbounds i8,i8*%kF,i64 8
%kN=bitcast i8*%kM to i8**
store i8*%kL,i8**%kN,align 8
%kO=getelementptr inbounds i8,i8*%kF,i64 16
%kP=bitcast i8*%kO to i32*
store i32 2,i32*%kP,align 4
ret i8*%kF
kQ:
%kR=getelementptr inbounds i8,i8*%r,i64 8
%kS=bitcast i8*%kR to i8**
%kT=load i8*,i8**%kS,align 8
%kU=bitcast i8*%kT to i8**
%kV=load i8*,i8**%kU,align 8
%kW=getelementptr inbounds i8,i8*%kT,i64 8
%kX=bitcast i8*%kW to i8**
%kY=load i8*,i8**%kX,align 8
store i8*%kY,i8**%d,align 8
%kZ=getelementptr inbounds i8,i8*%kT,i64 16
%k0=bitcast i8*%kZ to i8**
%k1=load i8*,i8**%k0,align 8
store i8*%k1,i8**%e,align 8
%k2=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%k3=call fastcc i8*@_SMLLLN17BitmapCompilation10compileExpE_125(i8*inreg%k2,i8*inreg%kV)
store i8*%k3,i8**%c,align 8
%k4=call i8*@sml_alloc(i32 inreg 28)#0
%k5=getelementptr inbounds i8,i8*%k4,i64 -4
%k6=bitcast i8*%k5 to i32*
store i32 1342177304,i32*%k6,align 4
store i8*%k4,i8**%f,align 8
%k7=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%k8=bitcast i8*%k4 to i8**
store i8*%k7,i8**%k8,align 8
%k9=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%la=getelementptr inbounds i8,i8*%k4,i64 8
%lb=bitcast i8*%la to i8**
store i8*%k9,i8**%lb,align 8
%lc=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%ld=getelementptr inbounds i8,i8*%k4,i64 16
%le=bitcast i8*%ld to i8**
store i8*%lc,i8**%le,align 8
%lf=getelementptr inbounds i8,i8*%k4,i64 24
%lg=bitcast i8*%lf to i32*
store i32 7,i32*%lg,align 4
%lh=call i8*@sml_alloc(i32 inreg 20)#0
%li=bitcast i8*%lh to i32*
%lj=getelementptr inbounds i8,i8*%lh,i64 -4
%lk=bitcast i8*%lj to i32*
store i32 1342177296,i32*%lk,align 4
%ll=getelementptr inbounds i8,i8*%lh,i64 4
%lm=bitcast i8*%ll to i32*
store i32 0,i32*%lm,align 1
store i32 12,i32*%li,align 4
%ln=load i8*,i8**%f,align 8
%lo=getelementptr inbounds i8,i8*%lh,i64 8
%lp=bitcast i8*%lo to i8**
store i8*%ln,i8**%lp,align 8
%lq=getelementptr inbounds i8,i8*%lh,i64 16
%lr=bitcast i8*%lq to i32*
store i32 2,i32*%lr,align 4
ret i8*%lh
ls:
%lt=getelementptr inbounds i8,i8*%r,i64 8
%lu=bitcast i8*%lt to i8**
%lv=load i8*,i8**%lu,align 8
%lw=bitcast i8*%lv to i8**
%lx=load i8*,i8**%lw,align 8
store i8*%lx,i8**%d,align 8
%ly=getelementptr inbounds i8,i8*%lv,i64 8
%lz=bitcast i8*%ly to i8**
%lA=load i8*,i8**%lz,align 8
%lB=getelementptr inbounds i8,i8*%lv,i64 16
%lC=bitcast i8*%lB to i8**
%lD=load i8*,i8**%lC,align 8
store i8*%lD,i8**%e,align 8
%lE=load i8*,i8**%c,align 8
%lF=call fastcc i8*@_SMLLLN17BitmapCompilation11compileDeclE_126(i8*inreg%lE,i8*inreg%lA)
store i8*%lF,i8**%f,align 8
%lG=load i8*,i8**%c,align 8
%lH=load i8*,i8**%d,align 8
store i8*null,i8**%c,align 8
store i8*null,i8**%d,align 8
%lI=call fastcc i8*@_SMLLLN17BitmapCompilation10compileExpE_125(i8*inreg%lG,i8*inreg%lH)
store i8*%lI,i8**%c,align 8
%lJ=call i8*@sml_alloc(i32 inreg 28)#0
%lK=getelementptr inbounds i8,i8*%lJ,i64 -4
%lL=bitcast i8*%lK to i32*
store i32 1342177304,i32*%lL,align 4
store i8*%lJ,i8**%d,align 8
%lM=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%lN=bitcast i8*%lJ to i8**
store i8*%lM,i8**%lN,align 8
%lO=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%lP=getelementptr inbounds i8,i8*%lJ,i64 8
%lQ=bitcast i8*%lP to i8**
store i8*%lO,i8**%lQ,align 8
%lR=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%lS=getelementptr inbounds i8,i8*%lJ,i64 16
%lT=bitcast i8*%lS to i8**
store i8*%lR,i8**%lT,align 8
%lU=getelementptr inbounds i8,i8*%lJ,i64 24
%lV=bitcast i8*%lU to i32*
store i32 7,i32*%lV,align 4
%lW=call i8*@sml_alloc(i32 inreg 20)#0
%lX=bitcast i8*%lW to i32*
%lY=getelementptr inbounds i8,i8*%lW,i64 -4
%lZ=bitcast i8*%lY to i32*
store i32 1342177296,i32*%lZ,align 4
%l0=getelementptr inbounds i8,i8*%lW,i64 4
%l1=bitcast i8*%l0 to i32*
store i32 0,i32*%l1,align 1
store i32 9,i32*%lX,align 4
%l2=load i8*,i8**%d,align 8
%l3=getelementptr inbounds i8,i8*%lW,i64 8
%l4=bitcast i8*%l3 to i8**
store i8*%l2,i8**%l4,align 8
%l5=getelementptr inbounds i8,i8*%lW,i64 16
%l6=bitcast i8*%l5 to i32*
store i32 2,i32*%l6,align 4
ret i8*%lW
l7:
%l8=getelementptr inbounds i8,i8*%r,i64 8
%l9=bitcast i8*%l8 to i8**
%ma=load i8*,i8**%l9,align 8
%mb=bitcast i8*%ma to i8**
%mc=load i8*,i8**%mb,align 8
store i8*%mc,i8**%d,align 8
%md=getelementptr inbounds i8,i8*%ma,i64 8
%me=bitcast i8*%md to i8**
%mf=load i8*,i8**%me,align 8
store i8*%mf,i8**%e,align 8
%mg=getelementptr inbounds i8,i8*%ma,i64 16
%mh=bitcast i8*%mg to i8**
%mi=load i8*,i8**%mh,align 8
store i8*%mi,i8**%f,align 8
%mj=getelementptr inbounds i8,i8*%ma,i64 24
%mk=bitcast i8*%mj to i8**
%ml=load i8*,i8**%mk,align 8
store i8*%ml,i8**%g,align 8
%mm=getelementptr inbounds i8,i8*%ma,i64 32
%mn=bitcast i8*%mm to i8**
%mo=load i8*,i8**%mn,align 8
store i8*%mo,i8**%h,align 8
%mp=getelementptr inbounds i8,i8*%ma,i64 40
%mq=bitcast i8*%mp to i8**
%mr=load i8*,i8**%mq,align 8
store i8*%mr,i8**%i,align 8
%ms=getelementptr inbounds i8,i8*%ma,i64 48
%mt=bitcast i8*%ms to i8**
%mu=load i8*,i8**%mt,align 8
store i8*%mu,i8**%j,align 8
%mv=getelementptr inbounds i8,i8*%ma,i64 56
%mw=bitcast i8*%mv to i8**
%mx=load i8*,i8**%mw,align 8
%my=getelementptr inbounds i8,i8*%ma,i64 64
%mz=bitcast i8*%my to i8**
%mA=load i8*,i8**%mz,align 8
store i8*%mA,i8**%k,align 8
%mB=load i8*,i8**%c,align 8
%mC=call fastcc i8*@_SMLLLN17BitmapCompilation10compileExpE_125(i8*inreg%mB,i8*inreg%mx)
store i8*%mC,i8**%l,align 8
%mD=load i8*,i8**%c,align 8
%mE=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%mF=call fastcc i8*@_SMLLLN17BitmapCompilation10compileExpE_125(i8*inreg%mD,i8*inreg%mE)
store i8*%mF,i8**%h,align 8
%mG=load i8*,i8**%c,align 8
%mH=load i8*,i8**%d,align 8
store i8*null,i8**%c,align 8
store i8*null,i8**%d,align 8
%mI=call fastcc i8*@_SMLLLN17BitmapCompilation10compileExpE_125(i8*inreg%mG,i8*inreg%mH)
store i8*%mI,i8**%c,align 8
%mJ=load i8*,i8**%f,align 8
%mK=bitcast i8*%mJ to i32*
%mL=load i32,i32*%mK,align 4
switch i32%mL,label%mM[
i32 0,label%no
i32 1,label%m4
]
mM:
store i8*null,i8**%e,align 8
store i8*null,i8**%f,align 8
store i8*null,i8**%g,align 8
store i8*null,i8**%i,align 8
store i8*null,i8**%j,align 8
store i8*null,i8**%k,align 8
store i8*null,i8**%l,align 8
store i8*null,i8**%h,align 8
call void@sml_matchcomp_bug()
%mN=load i8*,i8**@_SMLZ5Match,align 8
store i8*%mN,i8**%c,align 8
%mO=call i8*@sml_alloc(i32 inreg 20)#0
%mP=getelementptr inbounds i8,i8*%mO,i64 -4
%mQ=bitcast i8*%mP to i32*
store i32 1342177296,i32*%mQ,align 4
store i8*%mO,i8**%d,align 8
%mR=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%mS=bitcast i8*%mO to i8**
store i8*%mR,i8**%mS,align 8
%mT=getelementptr inbounds i8,i8*%mO,i64 8
%mU=bitcast i8*%mT to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[84x i8]}>,<{[4x i8],i32,[84x i8]}>*@v,i64 0,i32 2,i64 0),i8**%mU,align 8
%mV=getelementptr inbounds i8,i8*%mO,i64 16
%mW=bitcast i8*%mV to i32*
store i32 3,i32*%mW,align 4
%mX=call i8*@sml_alloc(i32 inreg 60)#0
%mY=getelementptr inbounds i8,i8*%mX,i64 -4
%mZ=bitcast i8*%mY to i32*
store i32 1342177336,i32*%mZ,align 4
%m0=getelementptr inbounds i8,i8*%mX,i64 56
%m1=bitcast i8*%m0 to i32*
store i32 1,i32*%m1,align 4
%m2=load i8*,i8**%d,align 8
%m3=bitcast i8*%mX to i8**
store i8*%m2,i8**%m3,align 8
call void@sml_raise(i8*inreg%mX)#1
unreachable
m4:
store i8*null,i8**%f,align 8
%m5=getelementptr inbounds i8,i8*%mJ,i64 8
%m6=bitcast i8*%m5 to i8**
%m7=load i8*,i8**%m6,align 8
store i8*%m7,i8**%d,align 8
%m8=call i8*@sml_alloc(i32 inreg 20)#0
%m9=getelementptr inbounds i8,i8*%m8,i64 -4
%na=bitcast i8*%m9 to i32*
store i32 1342177296,i32*%na,align 4
store i8*%m8,i8**%f,align 8
%nb=load i8*,i8**%j,align 8
%nc=bitcast i8*%m8 to i8**
store i8*%nb,i8**%nc,align 8
%nd=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%ne=getelementptr inbounds i8,i8*%m8,i64 8
%nf=bitcast i8*%ne to i8**
store i8*%nd,i8**%nf,align 8
%ng=getelementptr inbounds i8,i8*%m8,i64 16
%nh=bitcast i8*%ng to i32*
store i32 3,i32*%nh,align 4
%ni=call i8*@sml_alloc(i32 inreg 20)#0
%nj=bitcast i8*%ni to i32*
%nk=getelementptr inbounds i8,i8*%ni,i64 -4
%nl=bitcast i8*%nk to i32*
store i32 1342177296,i32*%nl,align 4
%nm=getelementptr inbounds i8,i8*%ni,i64 4
%nn=bitcast i8*%nm to i32*
store i32 0,i32*%nn,align 1
store i32 18,i32*%nj,align 4
br label%nI
no:
store i8*null,i8**%f,align 8
%np=getelementptr inbounds i8,i8*%mJ,i64 8
%nq=bitcast i8*%np to i8**
%nr=load i8*,i8**%nq,align 8
store i8*%nr,i8**%d,align 8
%ns=call i8*@sml_alloc(i32 inreg 20)#0
%nt=getelementptr inbounds i8,i8*%ns,i64 -4
%nu=bitcast i8*%nt to i32*
store i32 1342177296,i32*%nu,align 4
store i8*%ns,i8**%f,align 8
%nv=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%nw=bitcast i8*%ns to i8**
store i8*%nv,i8**%nw,align 8
%nx=load i8*,i8**%j,align 8
%ny=getelementptr inbounds i8,i8*%ns,i64 8
%nz=bitcast i8*%ny to i8**
store i8*%nx,i8**%nz,align 8
%nA=getelementptr inbounds i8,i8*%ns,i64 16
%nB=bitcast i8*%nA to i32*
store i32 3,i32*%nB,align 4
%nC=call i8*@sml_alloc(i32 inreg 20)#0
%nD=bitcast i8*%nC to i32*
%nE=getelementptr inbounds i8,i8*%nC,i64 -4
%nF=bitcast i8*%nE to i32*
store i32 1342177296,i32*%nF,align 4
%nG=getelementptr inbounds i8,i8*%nC,i64 4
%nH=bitcast i8*%nG to i32*
store i32 0,i32*%nH,align 1
store i32 4,i32*%nD,align 4
br label%nI
nI:
%nJ=phi i8*[%nC,%no],[%ni,%m4]
%nK=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%nL=getelementptr inbounds i8,i8*%nJ,i64 8
%nM=bitcast i8*%nL to i8**
store i8*%nK,i8**%nM,align 8
%nN=getelementptr inbounds i8,i8*%nJ,i64 16
%nO=bitcast i8*%nN to i32*
store i32 2,i32*%nO,align 4
store i8*%nJ,i8**%d,align 8
%nP=load i8*,i8**%e,align 8
%nQ=bitcast i8*%nP to i32*
%nR=load i32,i32*%nQ,align 4
switch i32%nR,label%nS[
i32 0,label%ou
i32 1,label%oa
]
nS:
store i8*null,i8**%e,align 8
store i8*null,i8**%g,align 8
store i8*null,i8**%i,align 8
store i8*null,i8**%j,align 8
store i8*null,i8**%k,align 8
store i8*null,i8**%l,align 8
store i8*null,i8**%h,align 8
store i8*null,i8**%d,align 8
call void@sml_matchcomp_bug()
%nT=load i8*,i8**@_SMLZ5Match,align 8
store i8*%nT,i8**%c,align 8
%nU=call i8*@sml_alloc(i32 inreg 20)#0
%nV=getelementptr inbounds i8,i8*%nU,i64 -4
%nW=bitcast i8*%nV to i32*
store i32 1342177296,i32*%nW,align 4
store i8*%nU,i8**%d,align 8
%nX=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%nY=bitcast i8*%nU to i8**
store i8*%nX,i8**%nY,align 8
%nZ=getelementptr inbounds i8,i8*%nU,i64 8
%n0=bitcast i8*%nZ to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[84x i8]}>,<{[4x i8],i32,[84x i8]}>*@v,i64 0,i32 2,i64 0),i8**%n0,align 8
%n1=getelementptr inbounds i8,i8*%nU,i64 16
%n2=bitcast i8*%n1 to i32*
store i32 3,i32*%n2,align 4
%n3=call i8*@sml_alloc(i32 inreg 60)#0
%n4=getelementptr inbounds i8,i8*%n3,i64 -4
%n5=bitcast i8*%n4 to i32*
store i32 1342177336,i32*%n5,align 4
%n6=getelementptr inbounds i8,i8*%n3,i64 56
%n7=bitcast i8*%n6 to i32*
store i32 1,i32*%n7,align 4
%n8=load i8*,i8**%d,align 8
%n9=bitcast i8*%n3 to i8**
store i8*%n8,i8**%n9,align 8
call void@sml_raise(i8*inreg%n3)#1
unreachable
oa:
%ob=getelementptr inbounds i8,i8*%nP,i64 8
%oc=bitcast i8*%ob to i8**
%od=load i8*,i8**%oc,align 8
store i8*%od,i8**%e,align 8
%oe=call i8*@sml_alloc(i32 inreg 20)#0
%of=getelementptr inbounds i8,i8*%oe,i64 -4
%og=bitcast i8*%of to i32*
store i32 1342177296,i32*%og,align 4
store i8*%oe,i8**%f,align 8
%oh=load i8*,i8**%j,align 8
%oi=bitcast i8*%oe to i8**
store i8*%oh,i8**%oi,align 8
%oj=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%ok=getelementptr inbounds i8,i8*%oe,i64 8
%ol=bitcast i8*%ok to i8**
store i8*%oj,i8**%ol,align 8
%om=getelementptr inbounds i8,i8*%oe,i64 16
%on=bitcast i8*%om to i32*
store i32 3,i32*%on,align 4
%oo=call i8*@sml_alloc(i32 inreg 20)#0
%op=bitcast i8*%oo to i32*
%oq=getelementptr inbounds i8,i8*%oo,i64 -4
%or=bitcast i8*%oq to i32*
store i32 1342177296,i32*%or,align 4
%os=getelementptr inbounds i8,i8*%oo,i64 4
%ot=bitcast i8*%os to i32*
store i32 0,i32*%ot,align 1
store i32 18,i32*%op,align 4
br label%oO
ou:
%ov=getelementptr inbounds i8,i8*%nP,i64 8
%ow=bitcast i8*%ov to i8**
%ox=load i8*,i8**%ow,align 8
store i8*%ox,i8**%e,align 8
%oy=call i8*@sml_alloc(i32 inreg 20)#0
%oz=getelementptr inbounds i8,i8*%oy,i64 -4
%oA=bitcast i8*%oz to i32*
store i32 1342177296,i32*%oA,align 4
store i8*%oy,i8**%f,align 8
%oB=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%oC=bitcast i8*%oy to i8**
store i8*%oB,i8**%oC,align 8
%oD=load i8*,i8**%j,align 8
%oE=getelementptr inbounds i8,i8*%oy,i64 8
%oF=bitcast i8*%oE to i8**
store i8*%oD,i8**%oF,align 8
%oG=getelementptr inbounds i8,i8*%oy,i64 16
%oH=bitcast i8*%oG to i32*
store i32 3,i32*%oH,align 4
%oI=call i8*@sml_alloc(i32 inreg 20)#0
%oJ=bitcast i8*%oI to i32*
%oK=getelementptr inbounds i8,i8*%oI,i64 -4
%oL=bitcast i8*%oK to i32*
store i32 1342177296,i32*%oL,align 4
%oM=getelementptr inbounds i8,i8*%oI,i64 4
%oN=bitcast i8*%oM to i32*
store i32 0,i32*%oN,align 1
store i32 4,i32*%oJ,align 4
br label%oO
oO:
%oP=phi i8*[%oI,%ou],[%oo,%oa]
%oQ=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%oR=getelementptr inbounds i8,i8*%oP,i64 8
%oS=bitcast i8*%oR to i8**
store i8*%oQ,i8**%oS,align 8
%oT=getelementptr inbounds i8,i8*%oP,i64 16
%oU=bitcast i8*%oT to i32*
store i32 2,i32*%oU,align 4
store i8*%oP,i8**%e,align 8
%oV=call i8*@sml_alloc(i32 inreg 76)#0
%oW=getelementptr inbounds i8,i8*%oV,i64 -4
%oX=bitcast i8*%oW to i32*
store i32 1342177352,i32*%oX,align 4
store i8*%oV,i8**%f,align 8
%oY=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%oZ=bitcast i8*%oV to i8**
store i8*%oY,i8**%oZ,align 8
%o0=load i8*,i8**%i,align 8
store i8*null,i8**%i,align 8
%o1=getelementptr inbounds i8,i8*%oV,i64 8
%o2=bitcast i8*%o1 to i8**
store i8*%o0,i8**%o2,align 8
%o3=load i8*,i8**%j,align 8
store i8*null,i8**%j,align 8
%o4=getelementptr inbounds i8,i8*%oV,i64 16
%o5=bitcast i8*%o4 to i8**
store i8*%o3,i8**%o5,align 8
%o6=load i8*,i8**%l,align 8
store i8*null,i8**%l,align 8
%o7=getelementptr inbounds i8,i8*%oV,i64 24
%o8=bitcast i8*%o7 to i8**
store i8*%o6,i8**%o8,align 8
%o9=load i8*,i8**%k,align 8
store i8*null,i8**%k,align 8
%pa=getelementptr inbounds i8,i8*%oV,i64 32
%pb=bitcast i8*%pa to i8**
store i8*%o9,i8**%pb,align 8
%pc=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%pd=getelementptr inbounds i8,i8*%oV,i64 40
%pe=bitcast i8*%pd to i8**
store i8*%pc,i8**%pe,align 8
%pf=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%pg=getelementptr inbounds i8,i8*%oV,i64 48
%ph=bitcast i8*%pg to i8**
store i8*%pf,i8**%ph,align 8
%pi=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%pj=getelementptr inbounds i8,i8*%oV,i64 56
%pk=bitcast i8*%pj to i8**
store i8*%pi,i8**%pk,align 8
%pl=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%pm=getelementptr inbounds i8,i8*%oV,i64 64
%pn=bitcast i8*%pm to i8**
store i8*%pl,i8**%pn,align 8
%po=getelementptr inbounds i8,i8*%oV,i64 72
%pp=bitcast i8*%po to i32*
store i32 511,i32*%pp,align 4
%pq=call i8*@sml_alloc(i32 inreg 20)#0
%pr=bitcast i8*%pq to i32*
%ps=getelementptr inbounds i8,i8*%pq,i64 -4
%pt=bitcast i8*%ps to i32*
store i32 1342177296,i32*%pt,align 4
%pu=getelementptr inbounds i8,i8*%pq,i64 4
%pv=bitcast i8*%pu to i32*
store i32 0,i32*%pv,align 1
store i32 10,i32*%pr,align 4
%pw=load i8*,i8**%f,align 8
%px=getelementptr inbounds i8,i8*%pq,i64 8
%py=bitcast i8*%px to i8**
store i8*%pw,i8**%py,align 8
%pz=getelementptr inbounds i8,i8*%pq,i64 16
%pA=bitcast i8*%pz to i32*
store i32 2,i32*%pA,align 4
ret i8*%pq
pB:
%pC=getelementptr inbounds i8,i8*%r,i64 8
%pD=bitcast i8*%pC to i8**
%pE=load i8*,i8**%pD,align 8
%pF=bitcast i8*%pE to i8**
%pG=load i8*,i8**%pF,align 8
store i8*%pG,i8**%d,align 8
%pH=getelementptr inbounds i8,i8*%pE,i64 8
%pI=bitcast i8*%pH to i8**
%pJ=load i8*,i8**%pI,align 8
store i8*%pJ,i8**%e,align 8
%pK=getelementptr inbounds i8,i8*%pE,i64 16
%pL=bitcast i8*%pK to i8**
%pM=load i8*,i8**%pL,align 8
store i8*%pM,i8**%f,align 8
%pN=getelementptr inbounds i8,i8*%pE,i64 24
%pO=bitcast i8*%pN to i8**
%pP=load i8*,i8**%pO,align 8
%pQ=getelementptr inbounds i8,i8*%pE,i64 32
%pR=bitcast i8*%pQ to i8**
%pS=load i8*,i8**%pR,align 8
store i8*%pS,i8**%g,align 8
%pT=getelementptr inbounds i8,i8*%pE,i64 40
%pU=bitcast i8*%pT to i8**
%pV=load i8*,i8**%pU,align 8
store i8*%pV,i8**%h,align 8
%pW=getelementptr inbounds i8,i8*%pE,i64 48
%pX=bitcast i8*%pW to i8**
%pY=load i8*,i8**%pX,align 8
store i8*%pY,i8**%i,align 8
%pZ=getelementptr inbounds i8,i8*%pE,i64 56
%p0=bitcast i8*%pZ to i8**
%p1=load i8*,i8**%p0,align 8
store i8*%p1,i8**%j,align 8
%p2=load i8*,i8**%c,align 8
%p3=call fastcc i8*@_SMLLLN17BitmapCompilation10compileExpE_125(i8*inreg%p2,i8*inreg%pP)
store i8*%p3,i8**%k,align 8
%p4=load i8*,i8**%c,align 8
%p5=load i8*,i8**%d,align 8
store i8*null,i8**%c,align 8
store i8*null,i8**%d,align 8
%p6=call fastcc i8*@_SMLLLN17BitmapCompilation10compileExpE_125(i8*inreg%p4,i8*inreg%p5)
store i8*%p6,i8**%c,align 8
%p7=load i8*,i8**%h,align 8
%p8=bitcast i8*%p7 to i32*
%p9=load i32,i32*%p8,align 4
switch i32%p9,label%qa[
i32 0,label%qM
i32 1,label%qs
]
qa:
store i8*null,i8**%e,align 8
store i8*null,i8**%f,align 8
store i8*null,i8**%g,align 8
store i8*null,i8**%h,align 8
store i8*null,i8**%i,align 8
store i8*null,i8**%j,align 8
store i8*null,i8**%k,align 8
call void@sml_matchcomp_bug()
%qb=load i8*,i8**@_SMLZ5Match,align 8
store i8*%qb,i8**%c,align 8
%qc=call i8*@sml_alloc(i32 inreg 20)#0
%qd=getelementptr inbounds i8,i8*%qc,i64 -4
%qe=bitcast i8*%qd to i32*
store i32 1342177296,i32*%qe,align 4
store i8*%qc,i8**%d,align 8
%qf=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%qg=bitcast i8*%qc to i8**
store i8*%qf,i8**%qg,align 8
%qh=getelementptr inbounds i8,i8*%qc,i64 8
%qi=bitcast i8*%qh to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[84x i8]}>,<{[4x i8],i32,[84x i8]}>*@v,i64 0,i32 2,i64 0),i8**%qi,align 8
%qj=getelementptr inbounds i8,i8*%qc,i64 16
%qk=bitcast i8*%qj to i32*
store i32 3,i32*%qk,align 4
%ql=call i8*@sml_alloc(i32 inreg 60)#0
%qm=getelementptr inbounds i8,i8*%ql,i64 -4
%qn=bitcast i8*%qm to i32*
store i32 1342177336,i32*%qn,align 4
%qo=getelementptr inbounds i8,i8*%ql,i64 56
%qp=bitcast i8*%qo to i32*
store i32 1,i32*%qp,align 4
%qq=load i8*,i8**%d,align 8
%qr=bitcast i8*%ql to i8**
store i8*%qq,i8**%qr,align 8
call void@sml_raise(i8*inreg%ql)#1
unreachable
qs:
store i8*null,i8**%h,align 8
%qt=getelementptr inbounds i8,i8*%p7,i64 8
%qu=bitcast i8*%qt to i8**
%qv=load i8*,i8**%qu,align 8
store i8*%qv,i8**%d,align 8
%qw=call i8*@sml_alloc(i32 inreg 20)#0
%qx=getelementptr inbounds i8,i8*%qw,i64 -4
%qy=bitcast i8*%qx to i32*
store i32 1342177296,i32*%qy,align 4
store i8*%qw,i8**%h,align 8
%qz=load i8*,i8**%f,align 8
%qA=bitcast i8*%qw to i8**
store i8*%qz,i8**%qA,align 8
%qB=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%qC=getelementptr inbounds i8,i8*%qw,i64 8
%qD=bitcast i8*%qC to i8**
store i8*%qB,i8**%qD,align 8
%qE=getelementptr inbounds i8,i8*%qw,i64 16
%qF=bitcast i8*%qE to i32*
store i32 3,i32*%qF,align 4
%qG=call i8*@sml_alloc(i32 inreg 20)#0
%qH=bitcast i8*%qG to i32*
%qI=getelementptr inbounds i8,i8*%qG,i64 -4
%qJ=bitcast i8*%qI to i32*
store i32 1342177296,i32*%qJ,align 4
%qK=getelementptr inbounds i8,i8*%qG,i64 4
%qL=bitcast i8*%qK to i32*
store i32 0,i32*%qL,align 1
store i32 18,i32*%qH,align 4
br label%q6
qM:
store i8*null,i8**%h,align 8
%qN=getelementptr inbounds i8,i8*%p7,i64 8
%qO=bitcast i8*%qN to i8**
%qP=load i8*,i8**%qO,align 8
store i8*%qP,i8**%d,align 8
%qQ=call i8*@sml_alloc(i32 inreg 20)#0
%qR=getelementptr inbounds i8,i8*%qQ,i64 -4
%qS=bitcast i8*%qR to i32*
store i32 1342177296,i32*%qS,align 4
store i8*%qQ,i8**%h,align 8
%qT=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%qU=bitcast i8*%qQ to i8**
store i8*%qT,i8**%qU,align 8
%qV=load i8*,i8**%f,align 8
%qW=getelementptr inbounds i8,i8*%qQ,i64 8
%qX=bitcast i8*%qW to i8**
store i8*%qV,i8**%qX,align 8
%qY=getelementptr inbounds i8,i8*%qQ,i64 16
%qZ=bitcast i8*%qY to i32*
store i32 3,i32*%qZ,align 4
%q0=call i8*@sml_alloc(i32 inreg 20)#0
%q1=bitcast i8*%q0 to i32*
%q2=getelementptr inbounds i8,i8*%q0,i64 -4
%q3=bitcast i8*%q2 to i32*
store i32 1342177296,i32*%q3,align 4
%q4=getelementptr inbounds i8,i8*%q0,i64 4
%q5=bitcast i8*%q4 to i32*
store i32 0,i32*%q5,align 1
store i32 4,i32*%q1,align 4
br label%q6
q6:
%q7=phi i8*[%q0,%qM],[%qG,%qs]
%q8=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%q9=getelementptr inbounds i8,i8*%q7,i64 8
%ra=bitcast i8*%q9 to i8**
store i8*%q8,i8**%ra,align 8
%rb=getelementptr inbounds i8,i8*%q7,i64 16
%rc=bitcast i8*%rb to i32*
store i32 2,i32*%rc,align 4
store i8*%q7,i8**%d,align 8
%rd=load i8*,i8**%i,align 8
%re=bitcast i8*%rd to i32*
%rf=load i32,i32*%re,align 4
switch i32%rf,label%rg[
i32 0,label%rS
i32 1,label%ry
]
rg:
store i8*null,i8**%e,align 8
store i8*null,i8**%f,align 8
store i8*null,i8**%g,align 8
store i8*null,i8**%i,align 8
store i8*null,i8**%j,align 8
store i8*null,i8**%k,align 8
store i8*null,i8**%d,align 8
call void@sml_matchcomp_bug()
%rh=load i8*,i8**@_SMLZ5Match,align 8
store i8*%rh,i8**%c,align 8
%ri=call i8*@sml_alloc(i32 inreg 20)#0
%rj=getelementptr inbounds i8,i8*%ri,i64 -4
%rk=bitcast i8*%rj to i32*
store i32 1342177296,i32*%rk,align 4
store i8*%ri,i8**%d,align 8
%rl=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%rm=bitcast i8*%ri to i8**
store i8*%rl,i8**%rm,align 8
%rn=getelementptr inbounds i8,i8*%ri,i64 8
%ro=bitcast i8*%rn to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[84x i8]}>,<{[4x i8],i32,[84x i8]}>*@v,i64 0,i32 2,i64 0),i8**%ro,align 8
%rp=getelementptr inbounds i8,i8*%ri,i64 16
%rq=bitcast i8*%rp to i32*
store i32 3,i32*%rq,align 4
%rr=call i8*@sml_alloc(i32 inreg 60)#0
%rs=getelementptr inbounds i8,i8*%rr,i64 -4
%rt=bitcast i8*%rs to i32*
store i32 1342177336,i32*%rt,align 4
%ru=getelementptr inbounds i8,i8*%rr,i64 56
%rv=bitcast i8*%ru to i32*
store i32 1,i32*%rv,align 4
%rw=load i8*,i8**%d,align 8
%rx=bitcast i8*%rr to i8**
store i8*%rw,i8**%rx,align 8
call void@sml_raise(i8*inreg%rr)#1
unreachable
ry:
store i8*null,i8**%i,align 8
%rz=getelementptr inbounds i8,i8*%rd,i64 8
%rA=bitcast i8*%rz to i8**
%rB=load i8*,i8**%rA,align 8
store i8*%rB,i8**%h,align 8
%rC=call i8*@sml_alloc(i32 inreg 20)#0
%rD=getelementptr inbounds i8,i8*%rC,i64 -4
%rE=bitcast i8*%rD to i32*
store i32 1342177296,i32*%rE,align 4
store i8*%rC,i8**%i,align 8
%rF=load i8*,i8**%f,align 8
%rG=bitcast i8*%rC to i8**
store i8*%rF,i8**%rG,align 8
%rH=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%rI=getelementptr inbounds i8,i8*%rC,i64 8
%rJ=bitcast i8*%rI to i8**
store i8*%rH,i8**%rJ,align 8
%rK=getelementptr inbounds i8,i8*%rC,i64 16
%rL=bitcast i8*%rK to i32*
store i32 3,i32*%rL,align 4
%rM=call i8*@sml_alloc(i32 inreg 20)#0
%rN=bitcast i8*%rM to i32*
%rO=getelementptr inbounds i8,i8*%rM,i64 -4
%rP=bitcast i8*%rO to i32*
store i32 1342177296,i32*%rP,align 4
%rQ=getelementptr inbounds i8,i8*%rM,i64 4
%rR=bitcast i8*%rQ to i32*
store i32 0,i32*%rR,align 1
store i32 18,i32*%rN,align 4
br label%sc
rS:
store i8*null,i8**%i,align 8
%rT=getelementptr inbounds i8,i8*%rd,i64 8
%rU=bitcast i8*%rT to i8**
%rV=load i8*,i8**%rU,align 8
store i8*%rV,i8**%h,align 8
%rW=call i8*@sml_alloc(i32 inreg 20)#0
%rX=getelementptr inbounds i8,i8*%rW,i64 -4
%rY=bitcast i8*%rX to i32*
store i32 1342177296,i32*%rY,align 4
store i8*%rW,i8**%i,align 8
%rZ=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%r0=bitcast i8*%rW to i8**
store i8*%rZ,i8**%r0,align 8
%r1=load i8*,i8**%f,align 8
%r2=getelementptr inbounds i8,i8*%rW,i64 8
%r3=bitcast i8*%r2 to i8**
store i8*%r1,i8**%r3,align 8
%r4=getelementptr inbounds i8,i8*%rW,i64 16
%r5=bitcast i8*%r4 to i32*
store i32 3,i32*%r5,align 4
%r6=call i8*@sml_alloc(i32 inreg 20)#0
%r7=bitcast i8*%r6 to i32*
%r8=getelementptr inbounds i8,i8*%r6,i64 -4
%r9=bitcast i8*%r8 to i32*
store i32 1342177296,i32*%r9,align 4
%sa=getelementptr inbounds i8,i8*%r6,i64 4
%sb=bitcast i8*%sa to i32*
store i32 0,i32*%sb,align 1
store i32 4,i32*%r7,align 4
br label%sc
sc:
%sd=phi i8*[%r6,%rS],[%rM,%ry]
%se=load i8*,i8**%i,align 8
store i8*null,i8**%i,align 8
%sf=getelementptr inbounds i8,i8*%sd,i64 8
%sg=bitcast i8*%sf to i8**
store i8*%se,i8**%sg,align 8
%sh=getelementptr inbounds i8,i8*%sd,i64 16
%si=bitcast i8*%sh to i32*
store i32 2,i32*%si,align 4
store i8*%sd,i8**%h,align 8
%sj=call i8*@sml_alloc(i32 inreg 68)#0
%sk=getelementptr inbounds i8,i8*%sj,i64 -4
%sl=bitcast i8*%sk to i32*
store i32 1342177344,i32*%sl,align 4
store i8*%sj,i8**%i,align 8
%sm=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%sn=bitcast i8*%sj to i8**
store i8*%sm,i8**%sn,align 8
%so=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%sp=getelementptr inbounds i8,i8*%sj,i64 8
%sq=bitcast i8*%sp to i8**
store i8*%so,i8**%sq,align 8
%sr=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%ss=getelementptr inbounds i8,i8*%sj,i64 16
%st=bitcast i8*%ss to i8**
store i8*%sr,i8**%st,align 8
%su=load i8*,i8**%k,align 8
store i8*null,i8**%k,align 8
%sv=getelementptr inbounds i8,i8*%sj,i64 24
%sw=bitcast i8*%sv to i8**
store i8*%su,i8**%sw,align 8
%sx=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%sy=getelementptr inbounds i8,i8*%sj,i64 32
%sz=bitcast i8*%sy to i8**
store i8*%sx,i8**%sz,align 8
%sA=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%sB=getelementptr inbounds i8,i8*%sj,i64 40
%sC=bitcast i8*%sB to i8**
store i8*%sA,i8**%sC,align 8
%sD=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%sE=getelementptr inbounds i8,i8*%sj,i64 48
%sF=bitcast i8*%sE to i8**
store i8*%sD,i8**%sF,align 8
%sG=load i8*,i8**%j,align 8
store i8*null,i8**%j,align 8
%sH=getelementptr inbounds i8,i8*%sj,i64 56
%sI=bitcast i8*%sH to i8**
store i8*%sG,i8**%sI,align 8
%sJ=getelementptr inbounds i8,i8*%sj,i64 64
%sK=bitcast i8*%sJ to i32*
store i32 255,i32*%sK,align 4
%sL=call i8*@sml_alloc(i32 inreg 20)#0
%sM=bitcast i8*%sL to i32*
%sN=getelementptr inbounds i8,i8*%sL,i64 -4
%sO=bitcast i8*%sN to i32*
store i32 1342177296,i32*%sO,align 4
%sP=getelementptr inbounds i8,i8*%sL,i64 4
%sQ=bitcast i8*%sP to i32*
store i32 0,i32*%sQ,align 1
store i32 14,i32*%sM,align 4
%sR=load i8*,i8**%i,align 8
%sS=getelementptr inbounds i8,i8*%sL,i64 8
%sT=bitcast i8*%sS to i8**
store i8*%sR,i8**%sT,align 8
%sU=getelementptr inbounds i8,i8*%sL,i64 16
%sV=bitcast i8*%sU to i32*
store i32 2,i32*%sV,align 4
ret i8*%sL
sW:
%sX=getelementptr inbounds i8,i8*%r,i64 8
%sY=bitcast i8*%sX to i8**
%sZ=load i8*,i8**%sY,align 8
%s0=bitcast i8*%sZ to i8**
%s1=load i8*,i8**%s0,align 8
store i8*%s1,i8**%d,align 8
%s2=getelementptr inbounds i8,i8*%sZ,i64 8
%s3=bitcast i8*%s2 to i8**
%s4=load i8*,i8**%s3,align 8
store i8*%s4,i8**%e,align 8
%s5=call fastcc i8*@_SMLFN11RecordLabel3Map3mapE(i32 inreg 1,i32 inreg 8,i32 inreg 1,i32 inreg 8)
%s6=getelementptr inbounds i8,i8*%s5,i64 16
%s7=bitcast i8*%s6 to i8*(i8*,i8*)**
%s8=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%s7,align 8
%s9=bitcast i8*%s5 to i8**
%ta=load i8*,i8**%s9,align 8
%tb=call fastcc i8*%s8(i8*inreg%ta,i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@t,i64 0,i32 2)to i8*))
%tc=getelementptr inbounds i8,i8*%tb,i64 16
%td=bitcast i8*%tc to i8*(i8*,i8*)**
%te=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%td,align 8
%tf=bitcast i8*%tb to i8**
%tg=load i8*,i8**%tf,align 8
%th=load i8*,i8**%d,align 8
%ti=call fastcc i8*%te(i8*inreg%tg,i8*inreg%th)
store i8*%ti,i8**%g,align 8
%tj=call i8*@sml_alloc(i32 inreg 20)#0
%tk=getelementptr inbounds i8,i8*%tj,i64 -4
%tl=bitcast i8*%tk to i32*
store i32 1342177296,i32*%tl,align 4
store i8*%tj,i8**%f,align 8
%tm=getelementptr inbounds i8,i8*%tj,i64 4
%tn=bitcast i8*%tm to i32*
store i32 0,i32*%tn,align 1
%to=bitcast i8*%tj to i32*
store i32 8,i32*%to,align 4
%tp=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%tq=getelementptr inbounds i8,i8*%tj,i64 8
%tr=bitcast i8*%tq to i8**
store i8*%tp,i8**%tr,align 8
%ts=getelementptr inbounds i8,i8*%tj,i64 16
%tt=bitcast i8*%ts to i32*
store i32 2,i32*%tt,align 4
%tu=call fastcc i8*@_SMLFN4List3mapE(i32 inreg 1,i32 inreg 8,i32 inreg 1,i32 inreg 8)
%tv=getelementptr inbounds i8,i8*%tu,i64 16
%tw=bitcast i8*%tv to i8*(i8*,i8*)**
%tx=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%tw,align 8
%ty=bitcast i8*%tu to i8**
%tz=load i8*,i8**%ty,align 8
store i8*%tz,i8**%g,align 8
%tA=call i8*@sml_alloc(i32 inreg 20)#0
%tB=getelementptr inbounds i8,i8*%tA,i64 -4
%tC=bitcast i8*%tB to i32*
store i32 1342177296,i32*%tC,align 4
store i8*%tA,i8**%h,align 8
%tD=load i8*,i8**%c,align 8
%tE=bitcast i8*%tA to i8**
store i8*%tD,i8**%tE,align 8
%tF=load i8*,i8**%e,align 8
%tG=getelementptr inbounds i8,i8*%tA,i64 8
%tH=bitcast i8*%tG to i8**
store i8*%tF,i8**%tH,align 8
%tI=getelementptr inbounds i8,i8*%tA,i64 16
%tJ=bitcast i8*%tI to i32*
store i32 3,i32*%tJ,align 4
%tK=call i8*@sml_alloc(i32 inreg 28)#0
%tL=getelementptr inbounds i8,i8*%tK,i64 -4
%tM=bitcast i8*%tL to i32*
store i32 1342177304,i32*%tM,align 4
%tN=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%tO=bitcast i8*%tK to i8**
store i8*%tN,i8**%tO,align 8
%tP=getelementptr inbounds i8,i8*%tK,i64 8
%tQ=bitcast i8*%tP to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL6fields_178 to void(...)*),void(...)**%tQ,align 8
%tR=getelementptr inbounds i8,i8*%tK,i64 16
%tS=bitcast i8*%tR to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL6fields_178 to void(...)*),void(...)**%tS,align 8
%tT=getelementptr inbounds i8,i8*%tK,i64 24
%tU=bitcast i8*%tT to i32*
store i32 -2147483647,i32*%tU,align 4
%tV=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%tW=call fastcc i8*%tx(i8*inreg%tV,i8*inreg%tK)
%tX=getelementptr inbounds i8,i8*%tW,i64 16
%tY=bitcast i8*%tX to i8*(i8*,i8*)**
%tZ=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%tY,align 8
%t0=bitcast i8*%tW to i8**
%t1=load i8*,i8**%t0,align 8
store i8*%t1,i8**%g,align 8
%t2=call fastcc i8*@_SMLFN11RecordLabel3Map10listItemsiE(i32 inreg 1,i32 inreg 8)
%t3=getelementptr inbounds i8,i8*%t2,i64 16
%t4=bitcast i8*%t3 to i8*(i8*,i8*)**
%t5=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%t4,align 8
%t6=bitcast i8*%t2 to i8**
%t7=load i8*,i8**%t6,align 8
%t8=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%t9=call fastcc i8*%t5(i8*inreg%t7,i8*inreg%t8)
%ua=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%ub=call fastcc i8*%tZ(i8*inreg%ua,i8*inreg%t9)
store i8*%ub,i8**%d,align 8
%uc=bitcast i8**%c to i8***
%ud=load i8**,i8***%uc,align 8
%ue=load i8*,i8**%ud,align 8
%uf=call fastcc i8*@_SMLFN12RecordLayout13computeRecordE(i8*inreg%ue)
%ug=getelementptr inbounds i8,i8*%uf,i64 16
%uh=bitcast i8*%ug to i8*(i8*,i8*)**
%ui=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%uh,align 8
%uj=bitcast i8*%uf to i8**
%uk=load i8*,i8**%uj,align 8
store i8*%uk,i8**%h,align 8
%ul=call fastcc i8*@_SMLFN4List3mapE(i32 inreg 1,i32 inreg 8,i32 inreg 1,i32 inreg 8)
%um=getelementptr inbounds i8,i8*%ul,i64 16
%un=bitcast i8*%um to i8*(i8*,i8*)**
%uo=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%un,align 8
%up=bitcast i8*%ul to i8**
%uq=load i8*,i8**%up,align 8
store i8*%uq,i8**%g,align 8
%ur=call i8*@sml_alloc(i32 inreg 12)#0
%us=getelementptr inbounds i8,i8*%ur,i64 -4
%ut=bitcast i8*%us to i32*
store i32 1342177288,i32*%ut,align 4
store i8*%ur,i8**%i,align 8
%uu=load i8*,i8**%c,align 8
%uv=bitcast i8*%ur to i8**
store i8*%uu,i8**%uv,align 8
%uw=getelementptr inbounds i8,i8*%ur,i64 8
%ux=bitcast i8*%uw to i32*
store i32 1,i32*%ux,align 4
%uy=call i8*@sml_alloc(i32 inreg 28)#0
%uz=getelementptr inbounds i8,i8*%uy,i64 -4
%uA=bitcast i8*%uz to i32*
store i32 1342177304,i32*%uA,align 4
%uB=load i8*,i8**%i,align 8
store i8*null,i8**%i,align 8
%uC=bitcast i8*%uy to i8**
store i8*%uB,i8**%uC,align 8
%uD=getelementptr inbounds i8,i8*%uy,i64 8
%uE=bitcast i8*%uD to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN17BitmapCompilation10compileExpE_179 to void(...)*),void(...)**%uE,align 8
%uF=getelementptr inbounds i8,i8*%uy,i64 16
%uG=bitcast i8*%uF to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN17BitmapCompilation10compileExpE_179 to void(...)*),void(...)**%uG,align 8
%uH=getelementptr inbounds i8,i8*%uy,i64 24
%uI=bitcast i8*%uH to i32*
store i32 -2147483647,i32*%uI,align 4
%uJ=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%uK=call fastcc i8*%uo(i8*inreg%uJ,i8*inreg%uy)
%uL=getelementptr inbounds i8,i8*%uK,i64 16
%uM=bitcast i8*%uL to i8*(i8*,i8*)**
%uN=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%uM,align 8
%uO=bitcast i8*%uK to i8**
%uP=load i8*,i8**%uO,align 8
%uQ=load i8*,i8**%d,align 8
%uR=call fastcc i8*%uN(i8*inreg%uP,i8*inreg%uQ)
%uS=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%uT=call fastcc i8*%ui(i8*inreg%uS,i8*inreg%uR)
%uU=bitcast i8*%uT to i8**
%uV=load i8*,i8**%uU,align 8
store i8*%uV,i8**%g,align 8
%uW=getelementptr inbounds i8,i8*%uT,i64 16
%uX=bitcast i8*%uW to i8**
%uY=load i8*,i8**%uX,align 8
store i8*%uY,i8**%h,align 8
%uZ=getelementptr inbounds i8,i8*%uT,i64 8
%u0=bitcast i8*%uZ to i8**
%u1=load i8*,i8**%u0,align 8
store i8*%u1,i8**%i,align 8
%u2=getelementptr inbounds i8,i8*%uT,i64 24
%u3=bitcast i8*%u2 to i32*
%u4=load i32,i32*%u3,align 4
%u5=load i8*,i8**%c,align 8
%u6=call fastcc i8*@_SMLLLN17BitmapCompilation7toBcexpE_97(i8*inreg%u5)
%u7=getelementptr inbounds i8,i8*%u6,i64 16
%u8=bitcast i8*%u7 to i8*(i8*,i8*)**
%u9=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%u8,align 8
%va=bitcast i8*%u6 to i8**
%vb=load i8*,i8**%va,align 8
%vc=load i8*,i8**%e,align 8
%vd=call fastcc i8*%u9(i8*inreg%vb,i8*inreg%vc)
%ve=getelementptr inbounds i8,i8*%vd,i64 16
%vf=bitcast i8*%ve to i8*(i8*,i8*)**
%vg=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%vf,align 8
%vh=bitcast i8*%vd to i8**
%vi=load i8*,i8**%vh,align 8
%vj=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%vk=call fastcc i8*%vg(i8*inreg%vi,i8*inreg%vj)
store i8*%vk,i8**%g,align 8
%vl=load i8*,i8**@_SMLZN12BuiltinTypes8word32TyE,align 8
store i8*%vl,i8**%j,align 8
%vm=call i8*@sml_alloc(i32 inreg 20)#0
%vn=getelementptr inbounds i8,i8*%vm,i64 -4
%vo=bitcast i8*%vn to i32*
store i32 1342177296,i32*%vo,align 4
store i8*%vm,i8**%k,align 8
%vp=getelementptr inbounds i8,i8*%vm,i64 4
%vq=bitcast i8*%vp to i32*
store i32 0,i32*%vq,align 1
%vr=bitcast i8*%vm to i32*
store i32 6,i32*%vr,align 4
%vs=load i8*,i8**%f,align 8
%vt=getelementptr inbounds i8,i8*%vm,i64 8
%vu=bitcast i8*%vt to i8**
store i8*%vs,i8**%vu,align 8
%vv=getelementptr inbounds i8,i8*%vm,i64 16
%vw=bitcast i8*%vv to i32*
store i32 2,i32*%vw,align 4
%vx=call i8*@sml_alloc(i32 inreg 20)#0
%vy=getelementptr inbounds i8,i8*%vx,i64 -4
%vz=bitcast i8*%vy to i32*
store i32 1342177296,i32*%vz,align 4
store i8*%vx,i8**%l,align 8
%vA=bitcast i8*%vx to i64*
store i64 0,i64*%vA,align 4
%vB=load i8*,i8**%k,align 8
store i8*null,i8**%k,align 8
%vC=getelementptr inbounds i8,i8*%vx,i64 8
%vD=bitcast i8*%vC to i8**
store i8*%vB,i8**%vD,align 8
%vE=getelementptr inbounds i8,i8*%vx,i64 16
%vF=bitcast i8*%vE to i32*
store i32 2,i32*%vF,align 4
%vG=call i8*@sml_alloc(i32 inreg 44)#0
%vH=getelementptr inbounds i8,i8*%vG,i64 -4
%vI=bitcast i8*%vH to i32*
store i32 1342177320,i32*%vI,align 4
store i8*%vG,i8**%k,align 8
%vJ=getelementptr inbounds i8,i8*%vG,i64 4
%vK=bitcast i8*%vJ to i32*
store i32 0,i32*%vK,align 1
%vL=bitcast i8*%vG to i32*
store i32 1,i32*%vL,align 4
%vM=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%vN=getelementptr inbounds i8,i8*%vG,i64 8
%vO=bitcast i8*%vN to i8**
store i8*%vM,i8**%vO,align 8
%vP=load i8*,i8**%j,align 8
store i8*null,i8**%j,align 8
%vQ=getelementptr inbounds i8,i8*%vG,i64 16
%vR=bitcast i8*%vQ to i8**
store i8*%vP,i8**%vR,align 8
%vS=load i8*,i8**%e,align 8
%vT=getelementptr inbounds i8,i8*%vG,i64 24
%vU=bitcast i8*%vT to i8**
store i8*%vS,i8**%vU,align 8
%vV=load i8*,i8**%l,align 8
store i8*null,i8**%l,align 8
%vW=getelementptr inbounds i8,i8*%vG,i64 32
%vX=bitcast i8*%vW to i8**
store i8*%vV,i8**%vX,align 8
%vY=getelementptr inbounds i8,i8*%vG,i64 40
%vZ=bitcast i8*%vY to i32*
store i32 30,i32*%vZ,align 4
%v0=call i8*@sml_alloc(i32 inreg 20)#0
%v1=getelementptr inbounds i8,i8*%v0,i64 -4
%v2=bitcast i8*%v1 to i32*
store i32 1342177296,i32*%v2,align 4
store i8*%v0,i8**%g,align 8
%v3=getelementptr inbounds i8,i8*%v0,i64 4
%v4=bitcast i8*%v3 to i32*
store i32 0,i32*%v4,align 1
%v5=bitcast i8*%v0 to i32*
store i32 2,i32*%v5,align 4
%v6=load i8*,i8**%k,align 8
store i8*null,i8**%k,align 8
%v7=getelementptr inbounds i8,i8*%v0,i64 8
%v8=bitcast i8*%v7 to i8**
store i8*%v6,i8**%v8,align 8
%v9=getelementptr inbounds i8,i8*%v0,i64 16
%wa=bitcast i8*%v9 to i32*
store i32 2,i32*%wa,align 4
%wb=call fastcc i8*@_SMLFN8ListPair5mapEqE(i32 inreg 1,i32 inreg 8,i32 inreg 1,i32 inreg 8,i32 inreg 1,i32 inreg 8)
%wc=getelementptr inbounds i8,i8*%wb,i64 16
%wd=bitcast i8*%wc to i8*(i8*,i8*)**
%we=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%wd,align 8
%wf=bitcast i8*%wb to i8**
%wg=load i8*,i8**%wf,align 8
store i8*%wg,i8**%j,align 8
%wh=call i8*@sml_alloc(i32 inreg 28)#0
%wi=getelementptr inbounds i8,i8*%wh,i64 -4
%wj=bitcast i8*%wi to i32*
store i32 1342177304,i32*%wj,align 4
store i8*%wh,i8**%k,align 8
%wk=load i8*,i8**%c,align 8
%wl=bitcast i8*%wh to i8**
store i8*%wk,i8**%wl,align 8
%wm=load i8*,i8**%e,align 8
%wn=getelementptr inbounds i8,i8*%wh,i64 8
%wo=bitcast i8*%wn to i8**
store i8*%wm,i8**%wo,align 8
%wp=load i8*,i8**%f,align 8
%wq=getelementptr inbounds i8,i8*%wh,i64 16
%wr=bitcast i8*%wq to i8**
store i8*%wp,i8**%wr,align 8
%ws=getelementptr inbounds i8,i8*%wh,i64 24
%wt=bitcast i8*%ws to i32*
store i32 7,i32*%wt,align 4
%wu=call i8*@sml_alloc(i32 inreg 28)#0
%wv=getelementptr inbounds i8,i8*%wu,i64 -4
%ww=bitcast i8*%wv to i32*
store i32 1342177304,i32*%ww,align 4
%wx=load i8*,i8**%k,align 8
store i8*null,i8**%k,align 8
%wy=bitcast i8*%wu to i8**
store i8*%wx,i8**%wy,align 8
%wz=getelementptr inbounds i8,i8*%wu,i64 8
%wA=bitcast i8*%wz to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL9fieldList_180 to void(...)*),void(...)**%wA,align 8
%wB=getelementptr inbounds i8,i8*%wu,i64 16
%wC=bitcast i8*%wB to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL9fieldList_180 to void(...)*),void(...)**%wC,align 8
%wD=getelementptr inbounds i8,i8*%wu,i64 24
%wE=bitcast i8*%wD to i32*
store i32 -2147483647,i32*%wE,align 4
%wF=load i8*,i8**%j,align 8
store i8*null,i8**%j,align 8
%wG=call fastcc i8*%we(i8*inreg%wF,i8*inreg%wu)
%wH=getelementptr inbounds i8,i8*%wG,i64 16
%wI=bitcast i8*%wH to i8*(i8*,i8*)**
%wJ=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%wI,align 8
%wK=bitcast i8*%wG to i8**
%wL=load i8*,i8**%wK,align 8
store i8*%wL,i8**%j,align 8
%wM=call i8*@sml_alloc(i32 inreg 20)#0
%wN=getelementptr inbounds i8,i8*%wM,i64 -4
%wO=bitcast i8*%wN to i32*
store i32 1342177296,i32*%wO,align 4
%wP=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%wQ=bitcast i8*%wM to i8**
store i8*%wP,i8**%wQ,align 8
%wR=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%wS=getelementptr inbounds i8,i8*%wM,i64 8
%wT=bitcast i8*%wS to i8**
store i8*%wR,i8**%wT,align 8
%wU=getelementptr inbounds i8,i8*%wM,i64 16
%wV=bitcast i8*%wU to i32*
store i32 3,i32*%wV,align 4
%wW=load i8*,i8**%j,align 8
store i8*null,i8**%j,align 8
%wX=call fastcc i8*%wJ(i8*inreg%wW,i8*inreg%wM)
store i8*%wX,i8**%d,align 8
%wY=call i8*@sml_alloc(i32 inreg 28)#0
%wZ=getelementptr inbounds i8,i8*%wY,i64 -4
%w0=bitcast i8*%wZ to i32*
store i32 1342177304,i32*%w0,align 4
store i8*%wY,i8**%h,align 8
%w1=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%w2=bitcast i8*%wY to i8**
store i8*%w1,i8**%w2,align 8
%w3=load i8*,i8**%e,align 8
%w4=getelementptr inbounds i8,i8*%wY,i64 8
%w5=bitcast i8*%w4 to i8**
store i8*%w3,i8**%w5,align 8
%w6=load i8*,i8**%f,align 8
%w7=getelementptr inbounds i8,i8*%wY,i64 16
%w8=bitcast i8*%w7 to i8**
store i8*%w6,i8**%w8,align 8
%w9=getelementptr inbounds i8,i8*%wY,i64 24
%xa=bitcast i8*%w9 to i32*
store i32 7,i32*%xa,align 4
%xb=call i8*@sml_alloc(i32 inreg 28)#0
%xc=getelementptr inbounds i8,i8*%xb,i64 -4
%xd=bitcast i8*%xc to i32*
store i32 1342177304,i32*%xd,align 4
%xe=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%xf=bitcast i8*%xb to i8**
store i8*%xe,i8**%xf,align 8
%xg=getelementptr inbounds i8,i8*%xb,i64 8
%xh=bitcast i8*%xg to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL1f_181 to void(...)*),void(...)**%xh,align 8
%xi=getelementptr inbounds i8,i8*%xb,i64 16
%xj=bitcast i8*%xi to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL1f_181 to void(...)*),void(...)**%xj,align 8
%xk=getelementptr inbounds i8,i8*%xb,i64 24
%xl=bitcast i8*%xk to i32*
store i32 -2147483647,i32*%xl,align 4
%xm=load i8*,i8**%i,align 8
store i8*null,i8**%i,align 8
%xn=call fastcc i8*@_SMLLL4loop_182(i8*inreg%xb,i32 inreg 0,i8*inreg%xm)
store i8*%xn,i8**%c,align 8
%xo=call i8*@sml_alloc(i32 inreg 60)#0
%xp=getelementptr inbounds i8,i8*%xo,i64 -4
%xq=bitcast i8*%xp to i32*
store i32 1342177336,i32*%xq,align 4
store i8*%xo,i8**%h,align 8
%xr=getelementptr inbounds i8,i8*%xo,i64 20
call void@llvm.memset.p0i8.i32(i8*%xr,i8 0,i32 20,i1 false)
%xs=load i8*,i8**%g,align 8
%xt=bitcast i8*%xo to i8**
store i8*null,i8**%g,align 8
store i8*%xs,i8**%xt,align 8
%xu=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%xv=getelementptr inbounds i8,i8*%xo,i64 8
%xw=bitcast i8*%xv to i8**
store i8*%xu,i8**%xw,align 8
%xx=getelementptr inbounds i8,i8*%xo,i64 16
%xy=bitcast i8*%xx to i32*
store i32%u4,i32*%xy,align 4
%xz=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%xA=getelementptr inbounds i8,i8*%xo,i64 24
%xB=bitcast i8*%xA to i8**
store i8*%xz,i8**%xB,align 8
%xC=getelementptr inbounds i8,i8*%xo,i64 32
%xD=bitcast i8*%xC to i32*
store i32 0,i32*%xD,align 4
%xE=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%xF=getelementptr inbounds i8,i8*%xo,i64 40
%xG=bitcast i8*%xF to i8**
store i8*%xE,i8**%xG,align 8
%xH=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%xI=getelementptr inbounds i8,i8*%xo,i64 48
%xJ=bitcast i8*%xI to i8**
store i8*%xH,i8**%xJ,align 8
%xK=getelementptr inbounds i8,i8*%xo,i64 56
%xL=bitcast i8*%xK to i32*
store i32 107,i32*%xL,align 4
%xM=call i8*@sml_alloc(i32 inreg 20)#0
%xN=bitcast i8*%xM to i32*
%xO=getelementptr inbounds i8,i8*%xM,i64 -4
%xP=bitcast i8*%xO to i32*
store i32 1342177296,i32*%xP,align 4
%xQ=getelementptr inbounds i8,i8*%xM,i64 4
%xR=bitcast i8*%xQ to i32*
store i32 0,i32*%xR,align 1
store i32 13,i32*%xN,align 4
%xS=load i8*,i8**%h,align 8
%xT=getelementptr inbounds i8,i8*%xM,i64 8
%xU=bitcast i8*%xT to i8**
store i8*%xS,i8**%xU,align 8
%xV=getelementptr inbounds i8,i8*%xM,i64 16
%xW=bitcast i8*%xV to i32*
store i32 2,i32*%xW,align 4
ret i8*%xM
xX:
%xY=getelementptr inbounds i8,i8*%r,i64 8
%xZ=bitcast i8*%xY to i8**
%x0=load i8*,i8**%xZ,align 8
%x1=bitcast i8*%x0 to i8**
%x2=load i8*,i8**%x1,align 8
store i8*%x2,i8**%d,align 8
%x3=getelementptr inbounds i8,i8*%x0,i64 8
%x4=bitcast i8*%x3 to i8**
%x5=load i8*,i8**%x4,align 8
store i8*%x5,i8**%e,align 8
%x6=getelementptr inbounds i8,i8*%x0,i64 16
%x7=bitcast i8*%x6 to i8**
%x8=load i8*,i8**%x7,align 8
store i8*%x8,i8**%f,align 8
%x9=getelementptr inbounds i8,i8*%x0,i64 24
%ya=bitcast i8*%x9 to i8**
%yb=load i8*,i8**%ya,align 8
store i8*%yb,i8**%g,align 8
%yc=getelementptr inbounds i8,i8*%x0,i64 32
%yd=bitcast i8*%yc to i8**
%ye=load i8*,i8**%yd,align 8
store i8*%ye,i8**%h,align 8
%yf=getelementptr inbounds i8,i8*%x0,i64 40
%yg=bitcast i8*%yf to i8**
%yh=load i8*,i8**%yg,align 8
store i8*%yh,i8**%i,align 8
%yi=call fastcc i8*@_SMLFN4List3mapE(i32 inreg 1,i32 inreg 8,i32 inreg 1,i32 inreg 8)
%yj=getelementptr inbounds i8,i8*%yi,i64 16
%yk=bitcast i8*%yj to i8*(i8*,i8*)**
%yl=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%yk,align 8
%ym=bitcast i8*%yi to i8**
%yn=load i8*,i8**%ym,align 8
store i8*%yn,i8**%j,align 8
%yo=call i8*@sml_alloc(i32 inreg 12)#0
%yp=getelementptr inbounds i8,i8*%yo,i64 -4
%yq=bitcast i8*%yp to i32*
store i32 1342177288,i32*%yq,align 4
store i8*%yo,i8**%k,align 8
%yr=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%ys=bitcast i8*%yo to i8**
store i8*%yr,i8**%ys,align 8
%yt=getelementptr inbounds i8,i8*%yo,i64 8
%yu=bitcast i8*%yt to i32*
store i32 1,i32*%yu,align 4
%yv=call i8*@sml_alloc(i32 inreg 28)#0
%yw=getelementptr inbounds i8,i8*%yv,i64 -4
%yx=bitcast i8*%yw to i32*
store i32 1342177304,i32*%yx,align 4
%yy=load i8*,i8**%k,align 8
store i8*null,i8**%k,align 8
%yz=bitcast i8*%yv to i8**
store i8*%yy,i8**%yz,align 8
%yA=getelementptr inbounds i8,i8*%yv,i64 8
%yB=bitcast i8*%yA to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL10argExpList_169 to void(...)*),void(...)**%yB,align 8
%yC=getelementptr inbounds i8,i8*%yv,i64 16
%yD=bitcast i8*%yC to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL10argExpList_169 to void(...)*),void(...)**%yD,align 8
%yE=getelementptr inbounds i8,i8*%yv,i64 24
%yF=bitcast i8*%yE to i32*
store i32 -2147483647,i32*%yF,align 4
%yG=load i8*,i8**%j,align 8
store i8*null,i8**%j,align 8
%yH=call fastcc i8*%yl(i8*inreg%yG,i8*inreg%yv)
%yI=getelementptr inbounds i8,i8*%yH,i64 16
%yJ=bitcast i8*%yI to i8*(i8*,i8*)**
%yK=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%yJ,align 8
%yL=bitcast i8*%yH to i8**
%yM=load i8*,i8**%yL,align 8
%yN=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%yO=call fastcc i8*%yK(i8*inreg%yM,i8*inreg%yN)
store i8*%yO,i8**%c,align 8
%yP=call fastcc i8*@_SMLFN4List3mapE(i32 inreg 1,i32 inreg 8,i32 inreg 1,i32 inreg 8)
%yQ=getelementptr inbounds i8,i8*%yP,i64 16
%yR=bitcast i8*%yQ to i8*(i8*,i8*)**
%yS=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%yR,align 8
%yT=bitcast i8*%yP to i8**
%yU=load i8*,i8**%yT,align 8
store i8*%yU,i8**%d,align 8
%yV=call i8*@sml_alloc(i32 inreg 12)#0
%yW=getelementptr inbounds i8,i8*%yV,i64 -4
%yX=bitcast i8*%yW to i32*
store i32 1342177288,i32*%yX,align 4
store i8*%yV,i8**%j,align 8
%yY=load i8*,i8**%h,align 8
%yZ=bitcast i8*%yV to i8**
store i8*%yY,i8**%yZ,align 8
%y0=getelementptr inbounds i8,i8*%yV,i64 8
%y1=bitcast i8*%y0 to i32*
store i32 1,i32*%y1,align 4
%y2=call i8*@sml_alloc(i32 inreg 28)#0
%y3=getelementptr inbounds i8,i8*%y2,i64 -4
%y4=bitcast i8*%y3 to i32*
store i32 1342177304,i32*%y4,align 4
%y5=load i8*,i8**%j,align 8
store i8*null,i8**%j,align 8
%y6=bitcast i8*%y2 to i8**
store i8*%y5,i8**%y6,align 8
%y7=getelementptr inbounds i8,i8*%y2,i64 8
%y8=bitcast i8*%y7 to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL11instTagList_171 to void(...)*),void(...)**%y8,align 8
%y9=getelementptr inbounds i8,i8*%y2,i64 16
%za=bitcast i8*%y9 to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL11instTagList_171 to void(...)*),void(...)**%za,align 8
%zb=getelementptr inbounds i8,i8*%y2,i64 24
%zc=bitcast i8*%zb to i32*
store i32 -2147483647,i32*%zc,align 4
%zd=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%ze=call fastcc i8*%yS(i8*inreg%zd,i8*inreg%y2)
%zf=getelementptr inbounds i8,i8*%ze,i64 16
%zg=bitcast i8*%zf to i8*(i8*,i8*)**
%zh=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%zg,align 8
%zi=bitcast i8*%ze to i8**
%zj=load i8*,i8**%zi,align 8
%zk=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%zl=call fastcc i8*%zh(i8*inreg%zj,i8*inreg%zk)
store i8*%zl,i8**%d,align 8
%zm=call fastcc i8*@_SMLFN4List3mapE(i32 inreg 1,i32 inreg 8,i32 inreg 1,i32 inreg 8)
%zn=getelementptr inbounds i8,i8*%zm,i64 16
%zo=bitcast i8*%zn to i8*(i8*,i8*)**
%zp=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%zo,align 8
%zq=bitcast i8*%zm to i8**
%zr=load i8*,i8**%zq,align 8
store i8*%zr,i8**%f,align 8
%zs=call i8*@sml_alloc(i32 inreg 12)#0
%zt=getelementptr inbounds i8,i8*%zs,i64 -4
%zu=bitcast i8*%zt to i32*
store i32 1342177288,i32*%zu,align 4
store i8*%zs,i8**%j,align 8
%zv=load i8*,i8**%h,align 8
%zw=bitcast i8*%zs to i8**
store i8*%zv,i8**%zw,align 8
%zx=getelementptr inbounds i8,i8*%zs,i64 8
%zy=bitcast i8*%zx to i32*
store i32 1,i32*%zy,align 4
%zz=call i8*@sml_alloc(i32 inreg 28)#0
%zA=getelementptr inbounds i8,i8*%zz,i64 -4
%zB=bitcast i8*%zA to i32*
store i32 1342177304,i32*%zB,align 4
%zC=load i8*,i8**%j,align 8
store i8*null,i8**%j,align 8
%zD=bitcast i8*%zz to i8**
store i8*%zC,i8**%zD,align 8
%zE=getelementptr inbounds i8,i8*%zz,i64 8
%zF=bitcast i8*%zE to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL12instSizeList_173 to void(...)*),void(...)**%zF,align 8
%zG=getelementptr inbounds i8,i8*%zz,i64 16
%zH=bitcast i8*%zG to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL12instSizeList_173 to void(...)*),void(...)**%zH,align 8
%zI=getelementptr inbounds i8,i8*%zz,i64 24
%zJ=bitcast i8*%zI to i32*
store i32 -2147483647,i32*%zJ,align 4
%zK=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%zL=call fastcc i8*%zp(i8*inreg%zK,i8*inreg%zz)
%zM=getelementptr inbounds i8,i8*%zL,i64 16
%zN=bitcast i8*%zM to i8*(i8*,i8*)**
%zO=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%zN,align 8
%zP=bitcast i8*%zL to i8**
%zQ=load i8*,i8**%zP,align 8
%zR=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%zS=call fastcc i8*%zO(i8*inreg%zQ,i8*inreg%zR)
store i8*%zS,i8**%e,align 8
%zT=call i8*@sml_alloc(i32 inreg 52)#0
%zU=getelementptr inbounds i8,i8*%zT,i64 -4
%zV=bitcast i8*%zU to i32*
store i32 1342177328,i32*%zV,align 4
store i8*%zT,i8**%f,align 8
%zW=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%zX=bitcast i8*%zT to i8**
store i8*%zW,i8**%zX,align 8
%zY=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%zZ=getelementptr inbounds i8,i8*%zT,i64 8
%z0=bitcast i8*%zZ to i8**
store i8*%zY,i8**%z0,align 8
%z1=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%z2=getelementptr inbounds i8,i8*%zT,i64 16
%z3=bitcast i8*%z2 to i8**
store i8*%z1,i8**%z3,align 8
%z4=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%z5=getelementptr inbounds i8,i8*%zT,i64 24
%z6=bitcast i8*%z5 to i8**
store i8*%z4,i8**%z6,align 8
%z7=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%z8=getelementptr inbounds i8,i8*%zT,i64 32
%z9=bitcast i8*%z8 to i8**
store i8*%z7,i8**%z9,align 8
%Aa=load i8*,i8**%i,align 8
store i8*null,i8**%i,align 8
%Ab=getelementptr inbounds i8,i8*%zT,i64 40
%Ac=bitcast i8*%Ab to i8**
store i8*%Aa,i8**%Ac,align 8
%Ad=getelementptr inbounds i8,i8*%zT,i64 48
%Ae=bitcast i8*%Ad to i32*
store i32 63,i32*%Ae,align 4
%Af=call i8*@sml_alloc(i32 inreg 20)#0
%Ag=bitcast i8*%Af to i32*
%Ah=getelementptr inbounds i8,i8*%Af,i64 -4
%Ai=bitcast i8*%Ah to i32*
store i32 1342177296,i32*%Ai,align 4
%Aj=getelementptr inbounds i8,i8*%Af,i64 4
%Ak=bitcast i8*%Aj to i32*
store i32 0,i32*%Ak,align 1
store i32 11,i32*%Ag,align 4
%Al=load i8*,i8**%f,align 8
%Am=getelementptr inbounds i8,i8*%Af,i64 8
%An=bitcast i8*%Am to i8**
store i8*%Al,i8**%An,align 8
%Ao=getelementptr inbounds i8,i8*%Af,i64 16
%Ap=bitcast i8*%Ao to i32*
store i32 2,i32*%Ap,align 4
ret i8*%Af
Aq:
%Ar=getelementptr inbounds i8,i8*%r,i64 8
%As=bitcast i8*%Ar to i8**
%At=load i8*,i8**%As,align 8
%Au=bitcast i8*%At to i8**
%Av=load i8*,i8**%Au,align 8
store i8*%Av,i8**%d,align 8
%Aw=getelementptr inbounds i8,i8*%At,i64 8
%Ax=bitcast i8*%Aw to i8**
%Ay=load i8*,i8**%Ax,align 8
store i8*%Ay,i8**%e,align 8
%Az=getelementptr inbounds i8,i8*%At,i64 16
%AA=bitcast i8*%Az to i8**
%AB=load i8*,i8**%AA,align 8
%AC=getelementptr inbounds i8,i8*%At,i64 24
%AD=bitcast i8*%AC to i8**
%AE=load i8*,i8**%AD,align 8
store i8*%AE,i8**%f,align 8
%AF=getelementptr inbounds i8,i8*%At,i64 32
%AG=bitcast i8*%AF to i8**
%AH=load i8*,i8**%AG,align 8
store i8*%AH,i8**%g,align 8
%AI=getelementptr inbounds i8,i8*%At,i64 40
%AJ=bitcast i8*%AI to i8**
%AK=load i8*,i8**%AJ,align 8
store i8*%AK,i8**%h,align 8
%AL=load i8*,i8**%c,align 8
%AM=call fastcc i8*@_SMLLLN17BitmapCompilation10compileExpE_125(i8*inreg%AL,i8*inreg%AB)
store i8*%AM,i8**%i,align 8
%AN=call fastcc i8*@_SMLFN4List3mapE(i32 inreg 1,i32 inreg 8,i32 inreg 1,i32 inreg 8)
%AO=getelementptr inbounds i8,i8*%AN,i64 16
%AP=bitcast i8*%AO to i8*(i8*,i8*)**
%AQ=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%AP,align 8
%AR=bitcast i8*%AN to i8**
%AS=load i8*,i8**%AR,align 8
store i8*%AS,i8**%j,align 8
%AT=call i8*@sml_alloc(i32 inreg 12)#0
%AU=getelementptr inbounds i8,i8*%AT,i64 -4
%AV=bitcast i8*%AU to i32*
store i32 1342177288,i32*%AV,align 4
store i8*%AT,i8**%k,align 8
%AW=load i8*,i8**%c,align 8
%AX=bitcast i8*%AT to i8**
store i8*%AW,i8**%AX,align 8
%AY=getelementptr inbounds i8,i8*%AT,i64 8
%AZ=bitcast i8*%AY to i32*
store i32 1,i32*%AZ,align 4
%A0=call i8*@sml_alloc(i32 inreg 28)#0
%A1=getelementptr inbounds i8,i8*%A0,i64 -4
%A2=bitcast i8*%A1 to i32*
store i32 1342177304,i32*%A2,align 4
%A3=load i8*,i8**%k,align 8
store i8*null,i8**%k,align 8
%A4=bitcast i8*%A0 to i8**
store i8*%A3,i8**%A4,align 8
%A5=getelementptr inbounds i8,i8*%A0,i64 8
%A6=bitcast i8*%A5 to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL8branches_168 to void(...)*),void(...)**%A6,align 8
%A7=getelementptr inbounds i8,i8*%A0,i64 16
%A8=bitcast i8*%A7 to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL8branches_168 to void(...)*),void(...)**%A8,align 8
%A9=getelementptr inbounds i8,i8*%A0,i64 24
%Ba=bitcast i8*%A9 to i32*
store i32 -2147483647,i32*%Ba,align 4
%Bb=load i8*,i8**%j,align 8
store i8*null,i8**%j,align 8
%Bc=call fastcc i8*%AQ(i8*inreg%Bb,i8*inreg%A0)
%Bd=getelementptr inbounds i8,i8*%Bc,i64 16
%Be=bitcast i8*%Bd to i8*(i8*,i8*)**
%Bf=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%Be,align 8
%Bg=bitcast i8*%Bc to i8**
%Bh=load i8*,i8**%Bg,align 8
%Bi=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%Bj=call fastcc i8*%Bf(i8*inreg%Bh,i8*inreg%Bi)
store i8*%Bj,i8**%d,align 8
%Bk=load i8*,i8**%c,align 8
%Bl=load i8*,i8**%e,align 8
store i8*null,i8**%c,align 8
store i8*null,i8**%e,align 8
%Bm=call fastcc i8*@_SMLLLN17BitmapCompilation10compileExpE_125(i8*inreg%Bk,i8*inreg%Bl)
store i8*%Bm,i8**%c,align 8
%Bn=call i8*@sml_alloc(i32 inreg 52)#0
%Bo=getelementptr inbounds i8,i8*%Bn,i64 -4
%Bp=bitcast i8*%Bo to i32*
store i32 1342177328,i32*%Bp,align 4
store i8*%Bn,i8**%e,align 8
%Bq=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%Br=bitcast i8*%Bn to i8**
store i8*%Bq,i8**%Br,align 8
%Bs=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%Bt=getelementptr inbounds i8,i8*%Bn,i64 8
%Bu=bitcast i8*%Bt to i8**
store i8*%Bs,i8**%Bu,align 8
%Bv=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%Bw=getelementptr inbounds i8,i8*%Bn,i64 16
%Bx=bitcast i8*%Bw to i8**
store i8*%Bv,i8**%Bx,align 8
%By=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%Bz=getelementptr inbounds i8,i8*%Bn,i64 24
%BA=bitcast i8*%Bz to i8**
store i8*%By,i8**%BA,align 8
%BB=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%BC=getelementptr inbounds i8,i8*%Bn,i64 32
%BD=bitcast i8*%BC to i8**
store i8*%BB,i8**%BD,align 8
%BE=load i8*,i8**%i,align 8
store i8*null,i8**%i,align 8
%BF=getelementptr inbounds i8,i8*%Bn,i64 40
%BG=bitcast i8*%BF to i8**
store i8*%BE,i8**%BG,align 8
%BH=getelementptr inbounds i8,i8*%Bn,i64 48
%BI=bitcast i8*%BH to i32*
store i32 63,i32*%BI,align 4
%BJ=call i8*@sml_alloc(i32 inreg 20)#0
%BK=bitcast i8*%BJ to i32*
%BL=getelementptr inbounds i8,i8*%BJ,i64 -4
%BM=bitcast i8*%BL to i32*
store i32 1342177296,i32*%BM,align 4
%BN=getelementptr inbounds i8,i8*%BJ,i64 4
%BO=bitcast i8*%BN to i32*
store i32 0,i32*%BO,align 1
store i32 16,i32*%BK,align 4
%BP=load i8*,i8**%e,align 8
%BQ=getelementptr inbounds i8,i8*%BJ,i64 8
%BR=bitcast i8*%BQ to i8**
store i8*%BP,i8**%BR,align 8
%BS=getelementptr inbounds i8,i8*%BJ,i64 16
%BT=bitcast i8*%BS to i32*
store i32 2,i32*%BT,align 4
ret i8*%BJ
BU:
%BV=getelementptr inbounds i8,i8*%r,i64 8
%BW=bitcast i8*%BV to i8**
%BX=load i8*,i8**%BW,align 8
%BY=bitcast i8*%BX to i8**
%BZ=load i8*,i8**%BY,align 8
store i8*%BZ,i8**%d,align 8
%B0=getelementptr inbounds i8,i8*%BX,i64 8
%B1=bitcast i8*%B0 to i8**
%B2=load i8*,i8**%B1,align 8
%B3=getelementptr inbounds i8,i8*%BX,i64 16
%B4=bitcast i8*%B3 to i8**
%B5=load i8*,i8**%B4,align 8
store i8*%B5,i8**%e,align 8
%B6=getelementptr inbounds i8,i8*%BX,i64 24
%B7=bitcast i8*%B6 to i8**
%B8=load i8*,i8**%B7,align 8
store i8*%B8,i8**%f,align 8
%B9=getelementptr inbounds i8,i8*%BX,i64 32
%Ca=bitcast i8*%B9 to i8**
%Cb=load i8*,i8**%Ca,align 8
store i8*%Cb,i8**%g,align 8
%Cc=load i8*,i8**%c,align 8
%Cd=call fastcc i8*@_SMLLLN17BitmapCompilation10compileExpE_125(i8*inreg%Cc,i8*inreg%B2)
store i8*%Cd,i8**%h,align 8
%Ce=call fastcc i8*@_SMLFN4List3mapE(i32 inreg 1,i32 inreg 8,i32 inreg 1,i32 inreg 8)
%Cf=getelementptr inbounds i8,i8*%Ce,i64 16
%Cg=bitcast i8*%Cf to i8*(i8*,i8*)**
%Ch=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%Cg,align 8
%Ci=bitcast i8*%Ce to i8**
%Cj=load i8*,i8**%Ci,align 8
store i8*%Cj,i8**%i,align 8
%Ck=call i8*@sml_alloc(i32 inreg 12)#0
%Cl=getelementptr inbounds i8,i8*%Ck,i64 -4
%Cm=bitcast i8*%Cl to i32*
store i32 1342177288,i32*%Cm,align 4
store i8*%Ck,i8**%j,align 8
%Cn=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%Co=bitcast i8*%Ck to i8**
store i8*%Cn,i8**%Co,align 8
%Cp=getelementptr inbounds i8,i8*%Ck,i64 8
%Cq=bitcast i8*%Cp to i32*
store i32 1,i32*%Cq,align 4
%Cr=call i8*@sml_alloc(i32 inreg 28)#0
%Cs=getelementptr inbounds i8,i8*%Cr,i64 -4
%Ct=bitcast i8*%Cs to i32*
store i32 1342177304,i32*%Ct,align 4
%Cu=load i8*,i8**%j,align 8
store i8*null,i8**%j,align 8
%Cv=bitcast i8*%Cr to i8**
store i8*%Cu,i8**%Cv,align 8
%Cw=getelementptr inbounds i8,i8*%Cr,i64 8
%Cx=bitcast i8*%Cw to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL10argExpList_167 to void(...)*),void(...)**%Cx,align 8
%Cy=getelementptr inbounds i8,i8*%Cr,i64 16
%Cz=bitcast i8*%Cy to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL10argExpList_167 to void(...)*),void(...)**%Cz,align 8
%CA=getelementptr inbounds i8,i8*%Cr,i64 24
%CB=bitcast i8*%CA to i32*
store i32 -2147483647,i32*%CB,align 4
%CC=load i8*,i8**%i,align 8
store i8*null,i8**%i,align 8
%CD=call fastcc i8*%Ch(i8*inreg%CC,i8*inreg%Cr)
%CE=getelementptr inbounds i8,i8*%CD,i64 16
%CF=bitcast i8*%CE to i8*(i8*,i8*)**
%CG=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%CF,align 8
%CH=bitcast i8*%CD to i8**
%CI=load i8*,i8**%CH,align 8
%CJ=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%CK=call fastcc i8*%CG(i8*inreg%CI,i8*inreg%CJ)
store i8*%CK,i8**%c,align 8
%CL=call i8*@sml_alloc(i32 inreg 44)#0
%CM=getelementptr inbounds i8,i8*%CL,i64 -4
%CN=bitcast i8*%CM to i32*
store i32 1342177320,i32*%CN,align 4
store i8*%CL,i8**%d,align 8
%CO=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%CP=bitcast i8*%CL to i8**
store i8*%CO,i8**%CP,align 8
%CQ=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%CR=getelementptr inbounds i8,i8*%CL,i64 8
%CS=bitcast i8*%CR to i8**
store i8*%CQ,i8**%CS,align 8
%CT=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%CU=getelementptr inbounds i8,i8*%CL,i64 16
%CV=bitcast i8*%CU to i8**
store i8*%CT,i8**%CV,align 8
%CW=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%CX=getelementptr inbounds i8,i8*%CL,i64 24
%CY=bitcast i8*%CX to i8**
store i8*%CW,i8**%CY,align 8
%CZ=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%C0=getelementptr inbounds i8,i8*%CL,i64 32
%C1=bitcast i8*%C0 to i8**
store i8*%CZ,i8**%C1,align 8
%C2=getelementptr inbounds i8,i8*%CL,i64 40
%C3=bitcast i8*%C2 to i32*
store i32 31,i32*%C3,align 4
%C4=call i8*@sml_alloc(i32 inreg 20)#0
%C5=getelementptr inbounds i8,i8*%C4,i64 -4
%C6=bitcast i8*%C5 to i32*
store i32 1342177296,i32*%C6,align 4
%C7=bitcast i8*%C4 to i64*
store i64 0,i64*%C7,align 4
%C8=load i8*,i8**%d,align 8
%C9=getelementptr inbounds i8,i8*%C4,i64 8
%Da=bitcast i8*%C9 to i8**
store i8*%C8,i8**%Da,align 8
%Db=getelementptr inbounds i8,i8*%C4,i64 16
%Dc=bitcast i8*%Db to i32*
store i32 2,i32*%Dc,align 4
ret i8*%C4
Dd:
%De=getelementptr inbounds i8,i8*%r,i64 8
%Df=bitcast i8*%De to i8**
%Dg=load i8*,i8**%Df,align 8
%Dh=bitcast i8*%Dg to i8**
%Di=load i8*,i8**%Dh,align 8
store i8*%Di,i8**%c,align 8
%Dj=getelementptr inbounds i8,i8*%Dg,i64 8
%Dk=bitcast i8*%Dj to i8**
%Dl=load i8*,i8**%Dk,align 8
store i8*%Dl,i8**%d,align 8
%Dm=getelementptr inbounds i8,i8*%Dg,i64 16
%Dn=bitcast i8*%Dm to i8**
%Do=load i8*,i8**%Dn,align 8
store i8*%Do,i8**%e,align 8
%Dp=getelementptr inbounds i8,i8*%Dg,i64 24
%Dq=bitcast i8*%Dp to i8**
%Dr=load i8*,i8**%Dq,align 8
store i8*%Dr,i8**%f,align 8
%Ds=getelementptr inbounds i8,i8*%Dg,i64 32
%Dt=bitcast i8*%Ds to i8**
%Du=load i8*,i8**%Dt,align 8
store i8*%Du,i8**%g,align 8
%Dv=getelementptr inbounds i8,i8*%Dg,i64 40
%Dw=bitcast i8*%Dv to i8**
%Dx=load i8*,i8**%Dw,align 8
store i8*%Dx,i8**%h,align 8
%Dy=call fastcc i8*@_SMLFN12RecordLayout19newComputationAccumE(i32 inreg 0)
store i8*%Dy,i8**%j,align 8
%Dz=call i8*@sml_alloc(i32 inreg 8)#0
%DA=getelementptr inbounds i8,i8*%Dz,i64 -4
%DB=bitcast i8*%DA to i32*
store i32 805306376,i32*%DB,align 4
store i8*%Dz,i8**%k,align 8
%DC=bitcast i8*%Dz to i64*
store i64 0,i64*%DC,align 1
%DD=call fastcc i8*@_SMLFN5VarID3Map5emptyE(i32 inreg 1,i32 inreg 8)
%DE=load i8*,i8**%k,align 8
%DF=bitcast i8*%DE to i8**
call void@sml_write(i8*inreg%DE,i8**inreg%DF,i8*inreg%DD)#0
%DG=call i8*@sml_alloc(i32 inreg 20)#0
%DH=getelementptr inbounds i8,i8*%DG,i64 -4
%DI=bitcast i8*%DH to i32*
store i32 1342177296,i32*%DI,align 4
store i8*%DG,i8**%i,align 8
%DJ=load i8*,i8**%j,align 8
store i8*null,i8**%j,align 8
%DK=bitcast i8*%DG to i8**
store i8*%DJ,i8**%DK,align 8
%DL=load i8*,i8**%k,align 8
store i8*null,i8**%k,align 8
%DM=getelementptr inbounds i8,i8*%DG,i64 8
%DN=bitcast i8*%DM to i8**
store i8*%DL,i8**%DN,align 8
%DO=getelementptr inbounds i8,i8*%DG,i64 16
%DP=bitcast i8*%DO to i32*
store i32 3,i32*%DP,align 4
%DQ=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%DR=call fastcc i8*@_SMLLLN17BitmapCompilation10compileExpE_125(i8*inreg%DG,i8*inreg%DQ)
store i8*%DR,i8**%d,align 8
%DS=load i8*,i8**%i,align 8
store i8*null,i8**%i,align 8
%DT=call fastcc i8*@_SMLLLN17BitmapCompilation12extractDeclsE_117(i8*inreg%DS)
%DU=getelementptr inbounds i8,i8*%DT,i64 16
%DV=bitcast i8*%DU to i8*(i8*,i8*)**
%DW=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%DV,align 8
%DX=bitcast i8*%DT to i8**
%DY=load i8*,i8**%DX,align 8
%DZ=load i8*,i8**%h,align 8
%D0=call fastcc i8*%DW(i8*inreg%DY,i8*inreg%DZ)
store i8*%D0,i8**%i,align 8
%D1=call fastcc i8*@_SMLFN4List5foldrE(i32 inreg 1,i32 inreg 8,i32 inreg 1,i32 inreg 8)
%D2=getelementptr inbounds i8,i8*%D1,i64 16
%D3=bitcast i8*%D2 to i8*(i8*,i8*)**
%D4=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%D3,align 8
%D5=bitcast i8*%D1 to i8**
%D6=load i8*,i8**%D5,align 8
store i8*%D6,i8**%j,align 8
%D7=call i8*@sml_alloc(i32 inreg 12)#0
%D8=getelementptr inbounds i8,i8*%D7,i64 -4
%D9=bitcast i8*%D8 to i32*
store i32 1342177288,i32*%D9,align 4
store i8*%D7,i8**%k,align 8
%Ea=load i8*,i8**%h,align 8
%Eb=bitcast i8*%D7 to i8**
store i8*%Ea,i8**%Eb,align 8
%Ec=getelementptr inbounds i8,i8*%D7,i64 8
%Ed=bitcast i8*%Ec to i32*
store i32 1,i32*%Ed,align 4
%Ee=call i8*@sml_alloc(i32 inreg 28)#0
%Ef=getelementptr inbounds i8,i8*%Ee,i64 -4
%Eg=bitcast i8*%Ef to i32*
store i32 1342177304,i32*%Eg,align 4
%Eh=load i8*,i8**%k,align 8
store i8*null,i8**%k,align 8
%Ei=bitcast i8*%Ee to i8**
store i8*%Eh,i8**%Ei,align 8
%Ej=getelementptr inbounds i8,i8*%Ee,i64 8
%Ek=bitcast i8*%Ej to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN17BitmapCompilation10compileExpE_166 to void(...)*),void(...)**%Ek,align 8
%El=getelementptr inbounds i8,i8*%Ee,i64 16
%Em=bitcast i8*%El to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN17BitmapCompilation10compileExpE_166 to void(...)*),void(...)**%Em,align 8
%En=getelementptr inbounds i8,i8*%Ee,i64 24
%Eo=bitcast i8*%En to i32*
store i32 -2147483647,i32*%Eo,align 4
%Ep=load i8*,i8**%j,align 8
store i8*null,i8**%j,align 8
%Eq=call fastcc i8*%D4(i8*inreg%Ep,i8*inreg%Ee)
%Er=getelementptr inbounds i8,i8*%Eq,i64 16
%Es=bitcast i8*%Er to i8*(i8*,i8*)**
%Et=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%Es,align 8
%Eu=bitcast i8*%Eq to i8**
%Ev=load i8*,i8**%Eu,align 8
%Ew=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%Ex=call fastcc i8*%Et(i8*inreg%Ev,i8*inreg%Ew)
%Ey=getelementptr inbounds i8,i8*%Ex,i64 16
%Ez=bitcast i8*%Ey to i8*(i8*,i8*)**
%EA=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%Ez,align 8
%EB=bitcast i8*%Ex to i8**
%EC=load i8*,i8**%EB,align 8
%ED=load i8*,i8**%i,align 8
store i8*null,i8**%i,align 8
%EE=call fastcc i8*%EA(i8*inreg%EC,i8*inreg%ED)
store i8*%EE,i8**%d,align 8
%EF=call i8*@sml_alloc(i32 inreg 52)#0
%EG=getelementptr inbounds i8,i8*%EF,i64 -4
%EH=bitcast i8*%EG to i32*
store i32 1342177328,i32*%EH,align 4
store i8*%EF,i8**%i,align 8
%EI=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%EJ=bitcast i8*%EF to i8**
store i8*%EI,i8**%EJ,align 8
%EK=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%EL=getelementptr inbounds i8,i8*%EF,i64 8
%EM=bitcast i8*%EL to i8**
store i8*%EK,i8**%EM,align 8
%EN=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%EO=getelementptr inbounds i8,i8*%EF,i64 16
%EP=bitcast i8*%EO to i8**
store i8*%EN,i8**%EP,align 8
%EQ=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%ER=getelementptr inbounds i8,i8*%EF,i64 24
%ES=bitcast i8*%ER to i8**
store i8*%EQ,i8**%ES,align 8
%ET=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%EU=getelementptr inbounds i8,i8*%EF,i64 32
%EV=bitcast i8*%EU to i8**
store i8*%ET,i8**%EV,align 8
%EW=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%EX=getelementptr inbounds i8,i8*%EF,i64 40
%EY=bitcast i8*%EX to i8**
store i8*%EW,i8**%EY,align 8
%EZ=getelementptr inbounds i8,i8*%EF,i64 48
%E0=bitcast i8*%EZ to i32*
store i32 63,i32*%E0,align 4
%E1=call i8*@sml_alloc(i32 inreg 20)#0
%E2=bitcast i8*%E1 to i32*
%E3=getelementptr inbounds i8,i8*%E1,i64 -4
%E4=bitcast i8*%E3 to i32*
store i32 1342177296,i32*%E4,align 4
%E5=getelementptr inbounds i8,i8*%E1,i64 4
%E6=bitcast i8*%E5 to i32*
store i32 0,i32*%E6,align 1
store i32 6,i32*%E2,align 4
%E7=load i8*,i8**%i,align 8
%E8=getelementptr inbounds i8,i8*%E1,i64 8
%E9=bitcast i8*%E8 to i8**
store i8*%E7,i8**%E9,align 8
%Fa=getelementptr inbounds i8,i8*%E1,i64 16
%Fb=bitcast i8*%Fa to i32*
store i32 2,i32*%Fb,align 4
ret i8*%E1
Fc:
%Fd=getelementptr inbounds i8,i8*%r,i64 8
%Fe=bitcast i8*%Fd to i8**
%Ff=load i8*,i8**%Fe,align 8
%Fg=bitcast i8*%Ff to i8**
%Fh=load i8*,i8**%Fg,align 8
store i8*%Fh,i8**%c,align 8
%Fi=getelementptr inbounds i8,i8*%Ff,i64 8
%Fj=bitcast i8*%Fi to i8**
%Fk=load i8*,i8**%Fj,align 8
store i8*%Fk,i8**%d,align 8
%Fl=call i8*@sml_alloc(i32 inreg 20)#0
%Fm=getelementptr inbounds i8,i8*%Fl,i64 -4
%Fn=bitcast i8*%Fm to i32*
store i32 1342177296,i32*%Fn,align 4
store i8*%Fl,i8**%e,align 8
%Fo=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%Fp=bitcast i8*%Fl to i8**
store i8*%Fo,i8**%Fp,align 8
%Fq=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%Fr=getelementptr inbounds i8,i8*%Fl,i64 8
%Fs=bitcast i8*%Fr to i8**
store i8*%Fq,i8**%Fs,align 8
%Ft=getelementptr inbounds i8,i8*%Fl,i64 16
%Fu=bitcast i8*%Ft to i32*
store i32 3,i32*%Fu,align 4
%Fv=call i8*@sml_alloc(i32 inreg 20)#0
%Fw=bitcast i8*%Fv to i32*
%Fx=getelementptr inbounds i8,i8*%Fv,i64 -4
%Fy=bitcast i8*%Fx to i32*
store i32 1342177296,i32*%Fy,align 4
%Fz=getelementptr inbounds i8,i8*%Fv,i64 4
%FA=bitcast i8*%Fz to i32*
store i32 0,i32*%FA,align 1
store i32 5,i32*%Fw,align 4
%FB=load i8*,i8**%e,align 8
%FC=getelementptr inbounds i8,i8*%Fv,i64 8
%FD=bitcast i8*%FC to i8**
store i8*%FB,i8**%FD,align 8
%FE=getelementptr inbounds i8,i8*%Fv,i64 16
%FF=bitcast i8*%FE to i32*
store i32 2,i32*%FF,align 4
ret i8*%Fv
FG:
%FH=getelementptr inbounds i8,i8*%r,i64 8
%FI=bitcast i8*%FH to i8**
%FJ=load i8*,i8**%FI,align 8
%FK=bitcast i8*%FJ to i8**
%FL=load i8*,i8**%FK,align 8
store i8*%FL,i8**%c,align 8
%FM=getelementptr inbounds i8,i8*%FJ,i64 8
%FN=bitcast i8*%FM to i8**
%FO=load i8*,i8**%FN,align 8
store i8*%FO,i8**%d,align 8
%FP=call i8*@sml_alloc(i32 inreg 20)#0
%FQ=getelementptr inbounds i8,i8*%FP,i64 -4
%FR=bitcast i8*%FQ to i32*
store i32 1342177296,i32*%FR,align 4
store i8*%FP,i8**%e,align 8
%FS=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%FT=bitcast i8*%FP to i8**
store i8*%FS,i8**%FT,align 8
%FU=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%FV=getelementptr inbounds i8,i8*%FP,i64 8
%FW=bitcast i8*%FV to i8**
store i8*%FU,i8**%FW,align 8
%FX=getelementptr inbounds i8,i8*%FP,i64 16
%FY=bitcast i8*%FX to i32*
store i32 3,i32*%FY,align 4
%FZ=call i8*@sml_alloc(i32 inreg 20)#0
%F0=bitcast i8*%FZ to i32*
%F1=getelementptr inbounds i8,i8*%FZ,i64 -4
%F2=bitcast i8*%F1 to i32*
store i32 1342177296,i32*%F2,align 4
%F3=getelementptr inbounds i8,i8*%FZ,i64 4
%F4=bitcast i8*%F3 to i32*
store i32 0,i32*%F4,align 1
store i32 15,i32*%F0,align 4
%F5=load i8*,i8**%e,align 8
%F6=getelementptr inbounds i8,i8*%FZ,i64 8
%F7=bitcast i8*%F6 to i8**
store i8*%F5,i8**%F7,align 8
%F8=getelementptr inbounds i8,i8*%FZ,i64 16
%F9=bitcast i8*%F8 to i32*
store i32 2,i32*%F9,align 4
ret i8*%FZ
Ga:
%Gb=getelementptr inbounds i8,i8*%r,i64 8
%Gc=bitcast i8*%Gb to i8**
%Gd=load i8*,i8**%Gc,align 8
%Ge=bitcast i8*%Gd to i8**
%Gf=load i8*,i8**%Ge,align 8
%Gg=getelementptr inbounds i8,i8*%Gd,i64 8
%Gh=bitcast i8*%Gg to i8**
%Gi=load i8*,i8**%Gh,align 8
store i8*%Gi,i8**%c,align 8
%Gj=bitcast i8*%Gf to i32*
%Gk=load i32,i32*%Gj,align 4
switch i32%Gk,label%Gl[
i32 0,label%G2
i32 1,label%GD
]
Gl:
call void@sml_matchcomp_bug()
%Gm=load i8*,i8**@_SMLZ5Match,align 8
store i8*%Gm,i8**%c,align 8
%Gn=call i8*@sml_alloc(i32 inreg 20)#0
%Go=getelementptr inbounds i8,i8*%Gn,i64 -4
%Gp=bitcast i8*%Go to i32*
store i32 1342177296,i32*%Gp,align 4
store i8*%Gn,i8**%d,align 8
%Gq=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%Gr=bitcast i8*%Gn to i8**
store i8*%Gq,i8**%Gr,align 8
%Gs=getelementptr inbounds i8,i8*%Gn,i64 8
%Gt=bitcast i8*%Gs to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[84x i8]}>,<{[4x i8],i32,[84x i8]}>*@v,i64 0,i32 2,i64 0),i8**%Gt,align 8
%Gu=getelementptr inbounds i8,i8*%Gn,i64 16
%Gv=bitcast i8*%Gu to i32*
store i32 3,i32*%Gv,align 4
%Gw=call i8*@sml_alloc(i32 inreg 60)#0
%Gx=getelementptr inbounds i8,i8*%Gw,i64 -4
%Gy=bitcast i8*%Gx to i32*
store i32 1342177336,i32*%Gy,align 4
%Gz=getelementptr inbounds i8,i8*%Gw,i64 56
%GA=bitcast i8*%Gz to i32*
store i32 1,i32*%GA,align 4
%GB=load i8*,i8**%d,align 8
%GC=bitcast i8*%Gw to i8**
store i8*%GB,i8**%GC,align 8
call void@sml_raise(i8*inreg%Gw)#1
unreachable
GD:
%GE=getelementptr inbounds i8,i8*%Gf,i64 8
%GF=bitcast i8*%GE to i8**
%GG=load i8*,i8**%GF,align 8
store i8*%GG,i8**%d,align 8
%GH=call i8*@sml_alloc(i32 inreg 20)#0
%GI=getelementptr inbounds i8,i8*%GH,i64 -4
%GJ=bitcast i8*%GI to i32*
store i32 1342177296,i32*%GJ,align 4
store i8*%GH,i8**%e,align 8
%GK=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%GL=bitcast i8*%GH to i8**
store i8*%GK,i8**%GL,align 8
%GM=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%GN=getelementptr inbounds i8,i8*%GH,i64 8
%GO=bitcast i8*%GN to i8**
store i8*%GM,i8**%GO,align 8
%GP=getelementptr inbounds i8,i8*%GH,i64 16
%GQ=bitcast i8*%GP to i32*
store i32 3,i32*%GQ,align 4
%GR=call i8*@sml_alloc(i32 inreg 20)#0
%GS=bitcast i8*%GR to i32*
%GT=getelementptr inbounds i8,i8*%GR,i64 -4
%GU=bitcast i8*%GT to i32*
store i32 1342177296,i32*%GU,align 4
%GV=getelementptr inbounds i8,i8*%GR,i64 4
%GW=bitcast i8*%GV to i32*
store i32 0,i32*%GW,align 1
store i32 18,i32*%GS,align 4
%GX=load i8*,i8**%e,align 8
%GY=getelementptr inbounds i8,i8*%GR,i64 8
%GZ=bitcast i8*%GY to i8**
store i8*%GX,i8**%GZ,align 8
%G0=getelementptr inbounds i8,i8*%GR,i64 16
%G1=bitcast i8*%G0 to i32*
store i32 2,i32*%G1,align 4
ret i8*%GR
G2:
%G3=getelementptr inbounds i8,i8*%Gf,i64 8
%G4=bitcast i8*%G3 to i8**
%G5=load i8*,i8**%G4,align 8
store i8*%G5,i8**%d,align 8
%G6=call i8*@sml_alloc(i32 inreg 20)#0
%G7=getelementptr inbounds i8,i8*%G6,i64 -4
%G8=bitcast i8*%G7 to i32*
store i32 1342177296,i32*%G8,align 4
store i8*%G6,i8**%e,align 8
%G9=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%Ha=bitcast i8*%G6 to i8**
store i8*%G9,i8**%Ha,align 8
%Hb=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%Hc=getelementptr inbounds i8,i8*%G6,i64 8
%Hd=bitcast i8*%Hc to i8**
store i8*%Hb,i8**%Hd,align 8
%He=getelementptr inbounds i8,i8*%G6,i64 16
%Hf=bitcast i8*%He to i32*
store i32 3,i32*%Hf,align 4
%Hg=call i8*@sml_alloc(i32 inreg 20)#0
%Hh=bitcast i8*%Hg to i32*
%Hi=getelementptr inbounds i8,i8*%Hg,i64 -4
%Hj=bitcast i8*%Hi to i32*
store i32 1342177296,i32*%Hj,align 4
%Hk=getelementptr inbounds i8,i8*%Hg,i64 4
%Hl=bitcast i8*%Hk to i32*
store i32 0,i32*%Hl,align 1
store i32 4,i32*%Hh,align 4
%Hm=load i8*,i8**%e,align 8
%Hn=getelementptr inbounds i8,i8*%Hg,i64 8
%Ho=bitcast i8*%Hn to i8**
store i8*%Hm,i8**%Ho,align 8
%Hp=getelementptr inbounds i8,i8*%Hg,i64 16
%Hq=bitcast i8*%Hp to i32*
store i32 2,i32*%Hq,align 4
ret i8*%Hg
}
define internal fastcc i8*@_SMLLLN17BitmapCompilation11compileDeclE_126(i8*inreg%a,i8*inreg%b)unnamed_addr#2 gc"smlsharp"{
n:
%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
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
store i8*%a,i8**%c,align 8
store i8*%b,i8**%d,align 8
%h=load atomic i32,i32*@sml_check_flag unordered,align 4
%i=icmp eq i32%h,0
br i1%i,label%l,label%j
j:
call void@sml_check(i32 inreg%h)
%k=load i8*,i8**%d,align 8
br label%l
l:
%m=phi i8*[%k,%j],[%b,%n]
store i8*null,i8**%d,align 8
%o=bitcast i8*%m to i32*
%p=load i32,i32*%o,align 4
switch i32%p,label%q[
i32 2,label%cB
i32 3,label%bA
i32 0,label%aq
i32 1,label%I
]
q:
call void@sml_matchcomp_bug()
%r=load i8*,i8**@_SMLZ5Match,align 8
store i8*%r,i8**%c,align 8
%s=call i8*@sml_alloc(i32 inreg 20)#0
%t=getelementptr inbounds i8,i8*%s,i64 -4
%u=bitcast i8*%t to i32*
store i32 1342177296,i32*%u,align 4
store i8*%s,i8**%d,align 8
%v=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%w=bitcast i8*%s to i8**
store i8*%v,i8**%w,align 8
%x=getelementptr inbounds i8,i8*%s,i64 8
%y=bitcast i8*%x to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[85x i8]}>,<{[4x i8],i32,[85x i8]}>*@z,i64 0,i32 2,i64 0),i8**%y,align 8
%z=getelementptr inbounds i8,i8*%s,i64 16
%A=bitcast i8*%z to i32*
store i32 3,i32*%A,align 4
%B=call i8*@sml_alloc(i32 inreg 60)#0
%C=getelementptr inbounds i8,i8*%B,i64 -4
%D=bitcast i8*%C to i32*
store i32 1342177336,i32*%D,align 4
%E=getelementptr inbounds i8,i8*%B,i64 56
%F=bitcast i8*%E to i32*
store i32 1,i32*%F,align 4
%G=load i8*,i8**%d,align 8
%H=bitcast i8*%B to i8**
store i8*%G,i8**%H,align 8
call void@sml_raise(i8*inreg%B)#1
unreachable
I:
%J=getelementptr inbounds i8,i8*%m,i64 8
%K=bitcast i8*%J to i8**
%L=load i8*,i8**%K,align 8
%M=bitcast i8*%L to i8**
%N=load i8*,i8**%M,align 8
store i8*%N,i8**%c,align 8
%O=load i8*,i8**@_SMLZN3Loc5nolocE,align 8
store i8*%O,i8**%d,align 8
%P=getelementptr inbounds i8,i8*%L,i64 8
%Q=bitcast i8*%P to i8**
%R=load i8*,i8**%Q,align 8
store i8*%R,i8**%e,align 8
%S=call i8*@sml_alloc(i32 inreg 28)#0
%T=getelementptr inbounds i8,i8*%S,i64 -4
%U=bitcast i8*%T to i32*
store i32 1342177304,i32*%U,align 4
store i8*%S,i8**%f,align 8
%V=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%W=bitcast i8*%S to i8**
store i8*%V,i8**%W,align 8
%X=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%Y=getelementptr inbounds i8,i8*%S,i64 8
%Z=bitcast i8*%Y to i8**
store i8*%X,i8**%Z,align 8
%aa=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%ab=getelementptr inbounds i8,i8*%S,i64 16
%ac=bitcast i8*%ab to i8**
store i8*%aa,i8**%ac,align 8
%ad=getelementptr inbounds i8,i8*%S,i64 24
%ae=bitcast i8*%ad to i32*
store i32 7,i32*%ae,align 4
%af=call i8*@sml_alloc(i32 inreg 20)#0
%ag=bitcast i8*%af to i32*
%ah=getelementptr inbounds i8,i8*%af,i64 -4
%ai=bitcast i8*%ah to i32*
store i32 1342177296,i32*%ai,align 4
%aj=getelementptr inbounds i8,i8*%af,i64 4
%ak=bitcast i8*%aj to i32*
store i32 0,i32*%ak,align 1
store i32 1,i32*%ag,align 4
%al=load i8*,i8**%f,align 8
%am=getelementptr inbounds i8,i8*%af,i64 8
%an=bitcast i8*%am to i8**
store i8*%al,i8**%an,align 8
%ao=getelementptr inbounds i8,i8*%af,i64 16
%ap=bitcast i8*%ao to i32*
store i32 2,i32*%ap,align 4
ret i8*%af
aq:
%ar=getelementptr inbounds i8,i8*%m,i64 8
%as=bitcast i8*%ar to i8**
%at=load i8*,i8**%as,align 8
%au=bitcast i8*%at to i8**
%av=load i8*,i8**%au,align 8
store i8*%av,i8**%d,align 8
%aw=getelementptr inbounds i8,i8*%at,i64 8
%ax=bitcast i8*%aw to i8**
%ay=load i8*,i8**%ax,align 8
store i8*%ay,i8**%e,align 8
%az=getelementptr inbounds i8,i8*%at,i64 16
%aA=bitcast i8*%az to i32*
%aB=load i32,i32*%aA,align 4
%aC=call fastcc i8*@_SMLFN6Option3mapE(i32 inreg 1,i32 inreg 8,i32 inreg 1,i32 inreg 8)
%aD=getelementptr inbounds i8,i8*%aC,i64 16
%aE=bitcast i8*%aD to i8*(i8*,i8*)**
%aF=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%aE,align 8
%aG=bitcast i8*%aC to i8**
%aH=load i8*,i8**%aG,align 8
store i8*%aH,i8**%f,align 8
%aI=call i8*@sml_alloc(i32 inreg 12)#0
%aJ=getelementptr inbounds i8,i8*%aI,i64 -4
%aK=bitcast i8*%aJ to i32*
store i32 1342177288,i32*%aK,align 4
store i8*%aI,i8**%g,align 8
%aL=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aM=bitcast i8*%aI to i8**
store i8*%aL,i8**%aM,align 8
%aN=getelementptr inbounds i8,i8*%aI,i64 8
%aO=bitcast i8*%aN to i32*
store i32 1,i32*%aO,align 4
%aP=call i8*@sml_alloc(i32 inreg 28)#0
%aQ=getelementptr inbounds i8,i8*%aP,i64 -4
%aR=bitcast i8*%aQ to i32*
store i32 1342177304,i32*%aR,align 4
%aS=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%aT=bitcast i8*%aP to i8**
store i8*%aS,i8**%aT,align 8
%aU=getelementptr inbounds i8,i8*%aP,i64 8
%aV=bitcast i8*%aU to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN17BitmapCompilation11compileDeclE_199 to void(...)*),void(...)**%aV,align 8
%aW=getelementptr inbounds i8,i8*%aP,i64 16
%aX=bitcast i8*%aW to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN17BitmapCompilation11compileDeclE_199 to void(...)*),void(...)**%aX,align 8
%aY=getelementptr inbounds i8,i8*%aP,i64 24
%aZ=bitcast i8*%aY to i32*
store i32 -2147483647,i32*%aZ,align 4
%a0=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%a1=call fastcc i8*%aF(i8*inreg%a0,i8*inreg%aP)
%a2=getelementptr inbounds i8,i8*%a1,i64 16
%a3=bitcast i8*%a2 to i8*(i8*,i8*)**
%a4=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%a3,align 8
%a5=bitcast i8*%a1 to i8**
%a6=load i8*,i8**%a5,align 8
%a7=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%a8=call fastcc i8*%a4(i8*inreg%a6,i8*inreg%a7)
store i8*%a8,i8**%c,align 8
%a9=load i8*,i8**@_SMLZN3Loc5nolocE,align 8
store i8*%a9,i8**%d,align 8
%ba=call i8*@sml_alloc(i32 inreg 36)#0
%bb=getelementptr inbounds i8,i8*%ba,i64 -4
%bc=bitcast i8*%bb to i32*
store i32 1342177312,i32*%bc,align 4
store i8*%ba,i8**%f,align 8
%bd=getelementptr inbounds i8,i8*%ba,i64 28
%be=bitcast i8*%bd to i32*
store i32 0,i32*%be,align 1
%bf=load i8*,i8**%e,align 8
%bg=bitcast i8*%ba to i8**
store i8*null,i8**%e,align 8
store i8*%bf,i8**%bg,align 8
%bh=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bi=getelementptr inbounds i8,i8*%ba,i64 8
%bj=bitcast i8*%bi to i8**
store i8*%bh,i8**%bj,align 8
%bk=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bl=getelementptr inbounds i8,i8*%ba,i64 16
%bm=bitcast i8*%bl to i8**
store i8*%bk,i8**%bm,align 8
%bn=getelementptr inbounds i8,i8*%ba,i64 24
%bo=bitcast i8*%bn to i32*
store i32%aB,i32*%bo,align 4
%bp=getelementptr inbounds i8,i8*%ba,i64 32
%bq=bitcast i8*%bp to i32*
store i32 7,i32*%bq,align 4
%br=call i8*@sml_alloc(i32 inreg 20)#0
%bs=getelementptr inbounds i8,i8*%br,i64 -4
%bt=bitcast i8*%bs to i32*
store i32 1342177296,i32*%bt,align 4
%bu=bitcast i8*%br to i64*
store i64 0,i64*%bu,align 4
%bv=load i8*,i8**%f,align 8
%bw=getelementptr inbounds i8,i8*%br,i64 8
%bx=bitcast i8*%bw to i8**
store i8*%bv,i8**%bx,align 8
%by=getelementptr inbounds i8,i8*%br,i64 16
%bz=bitcast i8*%by to i32*
store i32 2,i32*%bz,align 4
ret i8*%br
bA:
%bB=getelementptr inbounds i8,i8*%m,i64 8
%bC=bitcast i8*%bB to i8**
%bD=load i8*,i8**%bC,align 8
%bE=bitcast i8*%bD to i8**
%bF=load i8*,i8**%bE,align 8
store i8*%bF,i8**%d,align 8
%bG=getelementptr inbounds i8,i8*%bD,i64 8
%bH=bitcast i8*%bG to i8**
%bI=load i8*,i8**%bH,align 8
store i8*%bI,i8**%e,align 8
%bJ=call fastcc i8*@_SMLFN4List3mapE(i32 inreg 1,i32 inreg 8,i32 inreg 1,i32 inreg 8)
%bK=getelementptr inbounds i8,i8*%bJ,i64 16
%bL=bitcast i8*%bK to i8*(i8*,i8*)**
%bM=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%bL,align 8
%bN=bitcast i8*%bJ to i8**
%bO=load i8*,i8**%bN,align 8
store i8*%bO,i8**%f,align 8
%bP=call i8*@sml_alloc(i32 inreg 12)#0
%bQ=getelementptr inbounds i8,i8*%bP,i64 -4
%bR=bitcast i8*%bQ to i32*
store i32 1342177288,i32*%bR,align 4
store i8*%bP,i8**%g,align 8
%bS=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bT=bitcast i8*%bP to i8**
store i8*%bS,i8**%bT,align 8
%bU=getelementptr inbounds i8,i8*%bP,i64 8
%bV=bitcast i8*%bU to i32*
store i32 1,i32*%bV,align 4
%bW=call i8*@sml_alloc(i32 inreg 28)#0
%bX=getelementptr inbounds i8,i8*%bW,i64 -4
%bY=bitcast i8*%bX to i32*
store i32 1342177304,i32*%bY,align 4
%bZ=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%b0=bitcast i8*%bW to i8**
store i8*%bZ,i8**%b0,align 8
%b1=getelementptr inbounds i8,i8*%bW,i64 8
%b2=bitcast i8*%b1 to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL11recbindList_198 to void(...)*),void(...)**%b2,align 8
%b3=getelementptr inbounds i8,i8*%bW,i64 16
%b4=bitcast i8*%b3 to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL11recbindList_198 to void(...)*),void(...)**%b4,align 8
%b5=getelementptr inbounds i8,i8*%bW,i64 24
%b6=bitcast i8*%b5 to i32*
store i32 -2147483647,i32*%b6,align 4
%b7=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%b8=call fastcc i8*%bM(i8*inreg%b7,i8*inreg%bW)
%b9=getelementptr inbounds i8,i8*%b8,i64 16
%ca=bitcast i8*%b9 to i8*(i8*,i8*)**
%cb=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%ca,align 8
%cc=bitcast i8*%b8 to i8**
%cd=load i8*,i8**%cc,align 8
%ce=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%cf=call fastcc i8*%cb(i8*inreg%cd,i8*inreg%ce)
store i8*%cf,i8**%c,align 8
%cg=call i8*@sml_alloc(i32 inreg 20)#0
%ch=getelementptr inbounds i8,i8*%cg,i64 -4
%ci=bitcast i8*%ch to i32*
store i32 1342177296,i32*%ci,align 4
store i8*%cg,i8**%d,align 8
%cj=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%ck=bitcast i8*%cg to i8**
store i8*%cj,i8**%ck,align 8
%cl=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%cm=getelementptr inbounds i8,i8*%cg,i64 8
%cn=bitcast i8*%cm to i8**
store i8*%cl,i8**%cn,align 8
%co=getelementptr inbounds i8,i8*%cg,i64 16
%cp=bitcast i8*%co to i32*
store i32 3,i32*%cp,align 4
%cq=call i8*@sml_alloc(i32 inreg 20)#0
%cr=bitcast i8*%cq to i32*
%cs=getelementptr inbounds i8,i8*%cq,i64 -4
%ct=bitcast i8*%cs to i32*
store i32 1342177296,i32*%ct,align 4
%cu=getelementptr inbounds i8,i8*%cq,i64 4
%cv=bitcast i8*%cu to i32*
store i32 0,i32*%cv,align 1
store i32 3,i32*%cr,align 4
%cw=load i8*,i8**%d,align 8
%cx=getelementptr inbounds i8,i8*%cq,i64 8
%cy=bitcast i8*%cx to i8**
store i8*%cw,i8**%cy,align 8
%cz=getelementptr inbounds i8,i8*%cq,i64 16
%cA=bitcast i8*%cz to i32*
store i32 2,i32*%cA,align 4
ret i8*%cq
cB:
%cC=getelementptr inbounds i8,i8*%m,i64 8
%cD=bitcast i8*%cC to i8**
%cE=load i8*,i8**%cD,align 8
%cF=bitcast i8*%cE to i8**
%cG=load i8*,i8**%cF,align 8
%cH=getelementptr inbounds i8,i8*%cE,i64 8
%cI=bitcast i8*%cH to i8**
%cJ=load i8*,i8**%cI,align 8
store i8*%cJ,i8**%d,align 8
%cK=getelementptr inbounds i8,i8*%cE,i64 16
%cL=bitcast i8*%cK to i8**
%cM=load i8*,i8**%cL,align 8
store i8*%cM,i8**%e,align 8
%cN=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%cO=call fastcc i8*@_SMLLLN17BitmapCompilation10compileExpE_125(i8*inreg%cN,i8*inreg%cG)
store i8*%cO,i8**%c,align 8
%cP=call i8*@sml_alloc(i32 inreg 28)#0
%cQ=getelementptr inbounds i8,i8*%cP,i64 -4
%cR=bitcast i8*%cQ to i32*
store i32 1342177304,i32*%cR,align 4
store i8*%cP,i8**%f,align 8
%cS=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%cT=bitcast i8*%cP to i8**
store i8*%cS,i8**%cT,align 8
%cU=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%cV=getelementptr inbounds i8,i8*%cP,i64 8
%cW=bitcast i8*%cV to i8**
store i8*%cU,i8**%cW,align 8
%cX=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%cY=getelementptr inbounds i8,i8*%cP,i64 16
%cZ=bitcast i8*%cY to i8**
store i8*%cX,i8**%cZ,align 8
%c0=getelementptr inbounds i8,i8*%cP,i64 24
%c1=bitcast i8*%c0 to i32*
store i32 7,i32*%c1,align 4
%c2=call i8*@sml_alloc(i32 inreg 20)#0
%c3=bitcast i8*%c2 to i32*
%c4=getelementptr inbounds i8,i8*%c2,i64 -4
%c5=bitcast i8*%c4 to i32*
store i32 1342177296,i32*%c5,align 4
%c6=getelementptr inbounds i8,i8*%c2,i64 4
%c7=bitcast i8*%c6 to i32*
store i32 0,i32*%c7,align 1
store i32 2,i32*%c3,align 4
%c8=load i8*,i8**%f,align 8
%c9=getelementptr inbounds i8,i8*%c2,i64 8
%da=bitcast i8*%c9 to i8**
store i8*%c8,i8**%da,align 8
%db=getelementptr inbounds i8,i8*%c2,i64 16
%dc=bitcast i8*%db to i32*
store i32 2,i32*%dc,align 4
ret i8*%c2
}
define internal fastcc i8*@_SMLLL5decls_201(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%c,align 8
store i8*%b,i8**%d,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%g,label%i
g:
%h=bitcast i8*%a to i8**
br label%m
i:
call void@sml_check(i32 inreg%e)
%j=load i8*,i8**%d,align 8
%k=bitcast i8**%c to i8***
%l=load i8**,i8***%k,align 8
br label%m
m:
%n=phi i8**[%l,%i],[%h,%g]
%o=phi i8*[%j,%i],[%b,%g]
%p=load i8*,i8**%n,align 8
%q=tail call fastcc i8*@_SMLLLN17BitmapCompilation11compileDeclE_126(i8*inreg%p,i8*inreg%o)
ret i8*%q
}
define fastcc i8*@_SMLFN17BitmapCompilation7compileE(i8*inreg%a)#2 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
store i8*%a,i8**%b,align 8
%f=load atomic i32,i32*@sml_check_flag unordered,align 4
%g=icmp eq i32%f,0
br i1%g,label%i,label%h
h:
call void@sml_check(i32 inreg%f)
br label%i
i:
%j=call fastcc i8*@_SMLFN12RecordLayout19newComputationAccumE(i32 inreg 0)
store i8*%j,i8**%d,align 8
%k=call i8*@sml_alloc(i32 inreg 8)#0
%l=getelementptr inbounds i8,i8*%k,i64 -4
%m=bitcast i8*%l to i32*
store i32 805306376,i32*%m,align 4
store i8*%k,i8**%e,align 8
%n=bitcast i8*%k to i64*
store i64 0,i64*%n,align 1
%o=call fastcc i8*@_SMLFN5VarID3Map5emptyE(i32 inreg 1,i32 inreg 8)
%p=load i8*,i8**%e,align 8
%q=bitcast i8*%p to i8**
call void@sml_write(i8*inreg%p,i8**inreg%q,i8*inreg%o)#0
%r=call i8*@sml_alloc(i32 inreg 20)#0
%s=getelementptr inbounds i8,i8*%r,i64 -4
%t=bitcast i8*%s to i32*
store i32 1342177296,i32*%t,align 4
store i8*%r,i8**%c,align 8
%u=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%v=bitcast i8*%r to i8**
store i8*%u,i8**%v,align 8
%w=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%x=getelementptr inbounds i8,i8*%r,i64 8
%y=bitcast i8*%x to i8**
store i8*%w,i8**%y,align 8
%z=getelementptr inbounds i8,i8*%r,i64 16
%A=bitcast i8*%z to i32*
store i32 3,i32*%A,align 4
%B=call fastcc i8*@_SMLFN4List3mapE(i32 inreg 1,i32 inreg 8,i32 inreg 1,i32 inreg 8)
%C=getelementptr inbounds i8,i8*%B,i64 16
%D=bitcast i8*%C to i8*(i8*,i8*)**
%E=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%D,align 8
%F=bitcast i8*%B to i8**
%G=load i8*,i8**%F,align 8
store i8*%G,i8**%d,align 8
%H=call i8*@sml_alloc(i32 inreg 12)#0
%I=getelementptr inbounds i8,i8*%H,i64 -4
%J=bitcast i8*%I to i32*
store i32 1342177288,i32*%J,align 4
store i8*%H,i8**%e,align 8
%K=load i8*,i8**%c,align 8
%L=bitcast i8*%H to i8**
store i8*%K,i8**%L,align 8
%M=getelementptr inbounds i8,i8*%H,i64 8
%N=bitcast i8*%M to i32*
store i32 1,i32*%N,align 4
%O=call i8*@sml_alloc(i32 inreg 28)#0
%P=getelementptr inbounds i8,i8*%O,i64 -4
%Q=bitcast i8*%P to i32*
store i32 1342177304,i32*%Q,align 4
%R=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%S=bitcast i8*%O to i8**
store i8*%R,i8**%S,align 8
%T=getelementptr inbounds i8,i8*%O,i64 8
%U=bitcast i8*%T to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL5decls_201 to void(...)*),void(...)**%U,align 8
%V=getelementptr inbounds i8,i8*%O,i64 16
%W=bitcast i8*%V to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL5decls_201 to void(...)*),void(...)**%W,align 8
%X=getelementptr inbounds i8,i8*%O,i64 24
%Y=bitcast i8*%X to i32*
store i32 -2147483647,i32*%Y,align 4
%Z=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aa=call fastcc i8*%E(i8*inreg%Z,i8*inreg%O)
%ab=getelementptr inbounds i8,i8*%aa,i64 16
%ac=bitcast i8*%ab to i8*(i8*,i8*)**
%ad=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%ac,align 8
%ae=bitcast i8*%aa to i8**
%af=load i8*,i8**%ae,align 8
%ag=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%ah=call fastcc i8*%ad(i8*inreg%af,i8*inreg%ag)
store i8*%ah,i8**%b,align 8
%ai=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aj=call fastcc i8*@_SMLLLN17BitmapCompilation12extractDeclsE_117(i8*inreg%ai)
%ak=getelementptr inbounds i8,i8*%aj,i64 16
%al=bitcast i8*%ak to i8*(i8*,i8*)**
%am=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%al,align 8
%an=bitcast i8*%aj to i8**
%ao=load i8*,i8**%an,align 8
%ap=load i8*,i8**@_SMLZN3Loc5nolocE,align 8
%aq=call fastcc i8*%am(i8*inreg%ao,i8*inreg%ap)
%ar=icmp eq i8*%aq,null
br i1%ar,label%aM,label%as
as:
%at=load i8*,i8**@_SMLZN3Bug3BugE,align 8
store i8*%at,i8**%b,align 8
%au=call i8*@sml_alloc(i32 inreg 28)#0
%av=getelementptr inbounds i8,i8*%au,i64 -4
%aw=bitcast i8*%av to i32*
store i32 1342177304,i32*%aw,align 4
store i8*%au,i8**%c,align 8
%ax=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%ay=bitcast i8*%au to i8**
store i8*%ax,i8**%ay,align 8
%az=getelementptr inbounds i8,i8*%au,i64 8
%aA=bitcast i8*%az to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[86x i8]}>,<{[4x i8],i32,[86x i8]}>*@A,i64 0,i32 2,i64 0),i8**%aA,align 8
%aB=getelementptr inbounds i8,i8*%au,i64 16
%aC=bitcast i8*%aB to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[39x i8]}>,<{[4x i8],i32,[39x i8]}>*@B,i64 0,i32 2,i64 0),i8**%aC,align 8
%aD=getelementptr inbounds i8,i8*%au,i64 24
%aE=bitcast i8*%aD to i32*
store i32 7,i32*%aE,align 4
%aF=call i8*@sml_alloc(i32 inreg 60)#0
%aG=getelementptr inbounds i8,i8*%aF,i64 -4
%aH=bitcast i8*%aG to i32*
store i32 1342177336,i32*%aH,align 4
%aI=getelementptr inbounds i8,i8*%aF,i64 56
%aJ=bitcast i8*%aI to i32*
store i32 1,i32*%aJ,align 4
%aK=load i8*,i8**%c,align 8
%aL=bitcast i8*%aF to i8**
store i8*%aK,i8**%aL,align 8
call void@sml_raise(i8*inreg%aF)#1
unreachable
aM:
%aN=load i8*,i8**%b,align 8
ret i8*%aN
}
define internal fastcc i8*@_SMLLLN17BitmapCompilation10compileExpE_209(i8*inreg%a,i8*inreg%b)#4 gc"smlsharp"{
%c=getelementptr inbounds i8,i8*%b,i64 24
%d=bitcast i8*%c to i8**
%e=load i8*,i8**%d,align 8
ret i8*%e
}
define internal fastcc i8*@_SMLLLN17BitmapCompilation10compileExpE_211(i8*inreg%a,i8*inreg%b)#4 gc"smlsharp"{
%c=getelementptr inbounds i8,i8*%b,i64 8
%d=bitcast i8*%c to i8**
%e=load i8*,i8**%d,align 8
ret i8*%e
}
define internal fastcc i8*@_SMLLLN17BitmapCompilation7compileE_214(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN17BitmapCompilation7compileE(i8*inreg%b)
ret i8*%c
}
declare void@llvm.memset.p0i8.i32(i8*,i8,i32,i1)#0
declare void@llvm.memset.p0i8.i64(i8*,i8,i64,i1)#0
attributes#0={nounwind}
attributes#1={noreturn}
attributes#2={uwtable}
attributes#3={noreturn nounwind}
attributes#4={nounwind uwtable}
