@sml_check_flag=external local_unnamed_addr global i32
@_SMLZN9Substring4getcE=external local_unnamed_addr global i8*
@_SMLZ4Bind=external unnamed_addr constant i8*
@_SMLZ4Fail=external unnamed_addr constant i8*
@_SMLDL722=private global<{[4x i8],i32,i8*}><{[4x i8]zeroinitializer,i32 -1342177272,i8*null}>,align 8
@a=private unnamed_addr constant<{[4x i8],i32,i32,[4x i8],i32}><{[4x i8]zeroinitializer,i32 -805306360,i32 2,[4x i8]zeroinitializer,i32 0}>,align 8
@b=private unnamed_addr constant<{[4x i8],i32,[44x i8]}><{[4x i8]zeroinitializer,i32 -2147483604,[44x i8]c"src/smlnj-lib/JSON/json.lex.sml:94.45(3122)\00"}>,align 8
@c=private unnamed_addr constant<{[4x i8],i32,[28x i8]}><{[4x i8]zeroinitializer,i32 -2147483620,[28x i8]c"lexer reached a stuck state\00"}>,align 8
@d=private unnamed_addr constant<{[4x i8],i32,i32,[4x i8],i32}><{[4x i8]zeroinitializer,i32 -805306360,i32 10,[4x i8]zeroinitializer,i32 0}>,align 8
@e=private unnamed_addr constant<{[4x i8],i32,i32,[4x i8],i32}><{[4x i8]zeroinitializer,i32 -805306360,i32 12,[4x i8]zeroinitializer,i32 0}>,align 8
@f=private unnamed_addr constant<{[4x i8],i32,i32,[4x i8],i32}><{[4x i8]zeroinitializer,i32 -805306360,i32 9,[4x i8]zeroinitializer,i32 0}>,align 8
@g=private unnamed_addr constant<{[4x i8],i32,i32,[4x i8],i32}><{[4x i8]zeroinitializer,i32 -805306360,i32 11,[4x i8]zeroinitializer,i32 0}>,align 8
@h=private unnamed_addr constant<{[4x i8],i32,i32,[4x i8],i32}><{[4x i8]zeroinitializer,i32 -805306360,i32 1,[4x i8]zeroinitializer,i32 0}>,align 8
@i=private unnamed_addr constant<{[4x i8],i32,i32,[4x i8],i32}><{[4x i8]zeroinitializer,i32 -805306360,i32 0,[4x i8]zeroinitializer,i32 0}>,align 8
@j=private unnamed_addr constant<{[4x i8],i32,i32,[4x i8],i32}><{[4x i8]zeroinitializer,i32 -805306360,i32 7,[4x i8]zeroinitializer,i32 0}>,align 8
@k=private unnamed_addr constant<{[4x i8],i32,i32,[4x i8],i32}><{[4x i8]zeroinitializer,i32 -805306360,i32 8,[4x i8]zeroinitializer,i32 0}>,align 8
@l=private unnamed_addr constant<{[4x i8],i32,i32,[4x i8],i32}><{[4x i8]zeroinitializer,i32 -805306360,i32 6,[4x i8]zeroinitializer,i32 0}>,align 8
@m=private unnamed_addr constant<{[4x i8],i32,[2x i8]}><{[4x i8]zeroinitializer,i32 -2147483646,[2x i8]c"\5C\00"}>,align 8
@n=private unnamed_addr constant<{[4x i8],i32,[2x i8]}><{[4x i8]zeroinitializer,i32 -2147483646,[2x i8]c"\22\00"}>,align 8
@o=private unnamed_addr constant<{[4x i8],i32,[2x i8]}><{[4x i8]zeroinitializer,i32 -2147483646,[2x i8]c"/\00"}>,align 8
@p=private unnamed_addr constant<{[4x i8],i32,[2x i8]}><{[4x i8]zeroinitializer,i32 -2147483646,[2x i8]c"\08\00"}>,align 8
@q=private unnamed_addr constant<{[4x i8],i32,[2x i8]}><{[4x i8]zeroinitializer,i32 -2147483646,[2x i8]c"\0C\00"}>,align 8
@r=private unnamed_addr constant<{[4x i8],i32,[2x i8]}><{[4x i8]zeroinitializer,i32 -2147483646,[2x i8]c"\0A\00"}>,align 8
@s=private unnamed_addr constant<{[4x i8],i32,[2x i8]}><{[4x i8]zeroinitializer,i32 -2147483646,[2x i8]c"\0D\00"}>,align 8
@t=private unnamed_addr constant<{[4x i8],i32,[2x i8]}><{[4x i8]zeroinitializer,i32 -2147483646,[2x i8]c"\09\00"}>,align 8
@u=private unnamed_addr constant<{[4x i8],i32,[42x i8]}><{[4x i8]zeroinitializer,i32 -2147483606,[42x i8]c"src/smlnj-lib/JSON/json.lex.sml:22.5(556)\00"}>,align 8
@v=private unnamed_addr constant<{[4x i8],i32,[16x i8]}><{[4x i8]zeroinitializer,i32 -2147483632,[16x i8]c"bad character '\00"}>,align 8
@w=private unnamed_addr constant<{[4x i8],i32,[2x i8]}><{[4x i8]zeroinitializer,i32 -2147483646,[2x i8]c"'\00"}>,align 8
@x=private unnamed_addr constant<{[4x i8],i32,i8*,i8*,i32}><{[4x i8]zeroinitializer,i32 -805306352,i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,[2x i8]}>,<{[4x i8],i32,[2x i8]}>*@w,i32 0,i32 0,i32 0),i32 8),i8*null,i32 3}>,align 8
@y=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i8*)*@_SMLFN9JSONLexer3lexE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN9JSONLexer3lexE_813 to void(...)*),i32 -2147483647}>,align 8
@z=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i8*)*@_SMLFN9JSONLexer9streamifyE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN9JSONLexer9streamifyE_814 to void(...)*),i32 -2147483647}>,align 8
@A=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i8*)*@_SMLFN9JSONLexer17streamifyInstreamE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN9JSONLexer17streamifyInstreamE_816 to void(...)*),i32 -2147483647}>,align 8
@B=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32)*@_SMLFN9JSONLexer15streamifyReaderE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*)*@_SMLLLN9JSONLexer15streamifyReaderE_818 to void(...)*),i32 -2147483647}>,align 8
@C=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i32(i8*)*@_SMLLLN9JSONLexer6getPosE_808 to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN9JSONLexer6getPosE_819 to void(...)*),i32 -2147483647}>,align 8
@D=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32)*@_SMLFN9JSONLexer6getPosE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*)*@_SMLLLN9JSONLexer6getPosE_820 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN9JSONLexer3lexE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@y,i64 0,i32 2)to i8*)
@_SMLZN9JSONLexer9streamifyE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@z,i64 0,i32 2)to i8*)
@_SMLZN9JSONLexer15streamifyReaderE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@B,i64 0,i32 2)to i8*)
@_SMLZN9JSONLexer17streamifyInstreamE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@A,i64 0,i32 2)to i8*)
@_SMLZN9JSONLexer6getPosE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@D,i64 0,i32 2)to i8*)
@E=private unnamed_addr global[2x i64][i64 1,i64 sub(i64 ptrtoint(i8*getelementptr inbounds(i8,i8*getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i32 0,i32 0,i32 0),i32 8)to i64),i64 ptrtoint([2x i64]*@E to i64))]
@_SML_ftaba7af6f5db7f24fae_json_lex=external global i8
@F=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_end()local_unnamed_addr#0
declare void@sml_gcroot(i8*,void()*,i8*,i8*)local_unnamed_addr#0
declare i32@sml_personality(...)#0
declare void@sml_raise(i8*inreg)local_unnamed_addr#1
declare void@sml_save_exn(i8*inreg)local_unnamed_addr#0
declare void@sml_start(i8*inreg)local_unnamed_addr#0
declare void@sml_write(i8*inreg,i8**inreg,i8*inreg)local_unnamed_addr#0
declare i8*@_SMLFN10CharVector6concatE(i8*inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN10CharVector8fromListE(i8*inreg)local_unnamed_addr#2 gc"smlsharp"
declare i32@_SMLFN10ULexBuffer3eofE(i8*inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN10ULexBuffer4getuE(i8*inreg)local_unnamed_addr#2 gc"smlsharp"
declare i32@_SMLFN10ULexBuffer6getposE(i8*inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN10ULexBuffer8mkStreamE(i8*inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg)local_unnamed_addr#2 gc"smlsharp"
declare i32@_SMLFN10ULexBuffer9lastWasNLE(i8*inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN14AntlrStreamPos5colNoE(i8*inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN14AntlrStreamPos6lineNoE(i8*inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN4List3revE(i32 inreg,i32 inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN4UTF86encodeE(i32 inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN6IntInf10fromStringE(i8*inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN6Option5valOfE(i32 inreg,i32 inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN6Real6410fromStringE(i8*inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN6String8toStringE(i8*inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN6TextIO5inputE(i8*inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN6Vector8fromListE(i32 inreg,i32 inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN6Word324scanE(i32 inreg,i32 inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN9Substring4fullE(i8*inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN9Substring5trimlE(i32 inreg)local_unnamed_addr#2 gc"smlsharp"
declare i8*@_SMLFN9Substring6stringE(i8*inreg)local_unnamed_addr#2 gc"smlsharp"
declare void@_SML_main9d24bdf03f9e5ec9_Real64()local_unnamed_addr#2 gc"smlsharp"
declare void@_SML_main5d4c3ea7bd6f9540_IntInf()local_unnamed_addr#2 gc"smlsharp"
declare void@_SML_main145db56e6796da5b_Substring()local_unnamed_addr#2 gc"smlsharp"
declare void@_SML_mainadbb5309e852b68c_CharVector()local_unnamed_addr#2 gc"smlsharp"
declare void@_SML_main03d87556ec7f64b2_List()local_unnamed_addr#2 gc"smlsharp"
declare void@_SML_main3a60343781315c1e_Option()local_unnamed_addr#2 gc"smlsharp"
declare void@_SML_main1ef93e13728790b1_String()local_unnamed_addr#2 gc"smlsharp"
declare void@_SML_main3446b7b079949ccf_text_io()local_unnamed_addr#2 gc"smlsharp"
declare void@_SML_maincbf81bea2bc04eab_Vector()local_unnamed_addr#2 gc"smlsharp"
declare void@_SML_mainf19563e8df97169c_Word32()local_unnamed_addr#2 gc"smlsharp"
declare void@_SML_maindc75c24a45712161_utf8()local_unnamed_addr#2 gc"smlsharp"
declare void@_SML_main5ce8eb658c69eaff_antlr_stream_pos()local_unnamed_addr#2 gc"smlsharp"
declare void@_SML_main298d094f01131b0a_ulex_buffer()local_unnamed_addr#2 gc"smlsharp"
declare void@_SML_load9d24bdf03f9e5ec9_Real64(i8*)local_unnamed_addr
declare void@_SML_load5d4c3ea7bd6f9540_IntInf(i8*)local_unnamed_addr
declare void@_SML_load145db56e6796da5b_Substring(i8*)local_unnamed_addr
declare void@_SML_loadadbb5309e852b68c_CharVector(i8*)local_unnamed_addr
declare void@_SML_load03d87556ec7f64b2_List(i8*)local_unnamed_addr
declare void@_SML_load3a60343781315c1e_Option(i8*)local_unnamed_addr
declare void@_SML_load1ef93e13728790b1_String(i8*)local_unnamed_addr
declare void@_SML_load3446b7b079949ccf_text_io(i8*)local_unnamed_addr
declare void@_SML_loadcbf81bea2bc04eab_Vector(i8*)local_unnamed_addr
declare void@_SML_loadf19563e8df97169c_Word32(i8*)local_unnamed_addr
declare void@_SML_loaddc75c24a45712161_utf8(i8*)local_unnamed_addr
declare void@_SML_load5ce8eb658c69eaff_antlr_stream_pos(i8*)local_unnamed_addr
declare void@_SML_load298d094f01131b0a_ulex_buffer(i8*)local_unnamed_addr
define private void@_SML_tabba7af6f5db7f24fae_json_lex()#3{
unreachable
}
define void@_SML_loada7af6f5db7f24fae_json_lex(i8*%a)local_unnamed_addr#0{
%b=load i8,i8*@F,align 1
%c=icmp eq i8%b,0
br i1%c,label%e,label%d
d:
ret void
e:
store i8 1,i8*@F,align 1
tail call void@_SML_load9d24bdf03f9e5ec9_Real64(i8*%a)#0
tail call void@_SML_load5d4c3ea7bd6f9540_IntInf(i8*%a)#0
tail call void@_SML_load145db56e6796da5b_Substring(i8*%a)#0
tail call void@_SML_loadadbb5309e852b68c_CharVector(i8*%a)#0
tail call void@_SML_load03d87556ec7f64b2_List(i8*%a)#0
tail call void@_SML_load3a60343781315c1e_Option(i8*%a)#0
tail call void@_SML_load1ef93e13728790b1_String(i8*%a)#0
tail call void@_SML_load3446b7b079949ccf_text_io(i8*%a)#0
tail call void@_SML_loadcbf81bea2bc04eab_Vector(i8*%a)#0
tail call void@_SML_loadf19563e8df97169c_Word32(i8*%a)#0
tail call void@_SML_loaddc75c24a45712161_utf8(i8*%a)#0
tail call void@_SML_load5ce8eb658c69eaff_antlr_stream_pos(i8*%a)#0
tail call void@_SML_load298d094f01131b0a_ulex_buffer(i8*%a)#0
tail call void@sml_gcroot(i8*%a,void()*@_SML_tabba7af6f5db7f24fae_json_lex,i8*@_SML_ftaba7af6f5db7f24fae_json_lex,i8*bitcast([2x i64]*@E to i8*))#0
ret void
}
define void@_SML_maina7af6f5db7f24fae_json_lex()local_unnamed_addr#2 gc"smlsharp"personality i32(...)*@sml_personality{
%a=alloca[3x i8*],align 8
%b=load i8,i8*@F,align 1
%c=and i8%b,2
%d=icmp eq i8%c,0
br i1%d,label%f,label%e
e:
ret void
f:
store i8 3,i8*@F,align 1
tail call void@_SML_main9d24bdf03f9e5ec9_Real64()#2
tail call void@_SML_main5d4c3ea7bd6f9540_IntInf()#2
tail call void@_SML_main145db56e6796da5b_Substring()#2
tail call void@_SML_mainadbb5309e852b68c_CharVector()#2
tail call void@_SML_main03d87556ec7f64b2_List()#2
tail call void@_SML_main3a60343781315c1e_Option()#2
tail call void@_SML_main1ef93e13728790b1_String()#2
tail call void@_SML_main3446b7b079949ccf_text_io()#2
tail call void@_SML_maincbf81bea2bc04eab_Vector()#2
tail call void@_SML_mainf19563e8df97169c_Word32()#2
tail call void@_SML_maindc75c24a45712161_utf8()#2
tail call void@_SML_main5ce8eb658c69eaff_antlr_stream_pos()#2
tail call void@_SML_main298d094f01131b0a_ulex_buffer()#2
%g=bitcast[3x i8*]*%a to i8*
call void@sml_start(i8*inreg%g)#0
%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:
invoke void@sml_check(i32 inreg%h)
to label%k unwind label%u
k:
%l=invoke fastcc i8*@_SMLFN6Vector8fromListE(i32 inreg 1,i32 inreg 8)
to label%m unwind label%u
m:
%n=getelementptr inbounds i8,i8*%l,i64 16
%o=bitcast i8*%n to i8*(i8*,i8*)**
%p=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%o,align 8
%q=bitcast i8*%l to i8**
%r=load i8*,i8**%q,align 8
%s=invoke fastcc i8*%p(i8*inreg%r,i8*inreg null)
to label%t unwind label%u
t:
call void@sml_end()#0
ret void
u:
%v=landingpad{i8*,i8*}
cleanup
%w=extractvalue{i8*,i8*}%v,1
call void@sml_save_exn(i8*inreg%w)#0
call void@sml_end()#0
resume{i8*,i8*}%v
}
define internal fastcc i8*@_SMLLL9yyAction0_727(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%j
g:
%h=bitcast i8*%a to i8**
%i=bitcast i8*%b to i8**
br label%o
j:
call void@sml_check(i32 inreg%e)
%k=bitcast i8**%d to i8***
%l=load i8**,i8***%k,align 8
%m=bitcast i8**%c to i8***
%n=load i8**,i8***%m,align 8
br label%o
o:
%p=phi i8**[%n,%j],[%h,%g]
%q=phi i8**[%l,%j],[%i,%g]
%r=load i8*,i8**%p,align 8
%s=load i8*,i8**%q,align 8
%t=bitcast i8*%r to i8**
call void@sml_write(i8*inreg%r,i8**inreg%t,i8*inreg%s)#0
%u=load i8*,i8**%c,align 8
%v=getelementptr inbounds i8,i8*%u,i64 8
%w=bitcast i8*%v to i8**
%x=load i8*,i8**%w,align 8
store i8*%x,i8**%d,align 8
%y=bitcast i8*%u to i8***
%z=load i8**,i8***%y,align 8
%A=load i8*,i8**%z,align 8
%B=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%A)
%C=bitcast i8**%d to i32**
%D=load i32*,i32**%C,align 8
store i32%B,i32*%D,align 4
%E=load i8*,i8**%c,align 8
%F=getelementptr inbounds i8,i8*%E,i64 16
%G=bitcast i8*%F to i8**
%H=load i8*,i8**%G,align 8
store i8*%H,i8**%d,align 8
%I=bitcast i8*%E to i8***
%J=load i8**,i8***%I,align 8
%K=load i8*,i8**%J,align 8
%L=call fastcc i32@_SMLFN10ULexBuffer9lastWasNLE(i8*inreg%K)
%M=load i32*,i32**%C,align 8
store i32%L,i32*%M,align 4
%N=load i8*,i8**%c,align 8
%O=getelementptr inbounds i8,i8*%N,i64 24
%P=bitcast i8*%O to i8**
%Q=load i8*,i8**%P,align 8
%R=tail call fastcc i8*@_SMLLL8continue_723(i8*inreg%Q,i32 inreg 0)
ret i8*%R
}
define internal fastcc i8*@_SMLLL10yyAction10_737(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*%b to i8**
br label%p
k:
call void@sml_check(i32 inreg%f)
%l=bitcast i8**%c to i8***
%m=load i8**,i8***%l,align 8
%n=bitcast i8**%e to i8****
%o=load i8***,i8****%n,align 8
br label%p
p:
%q=phi i8***[%o,%k],[%i,%h]
%r=phi i8**[%m,%k],[%j,%h]
%s=load i8*,i8**%r,align 8
store i8*%s,i8**%c,align 8
%t=load i8**,i8***%q,align 8
%u=load i8*,i8**%t,align 8
store i8*%u,i8**%d,align 8
%v=call i8*@sml_alloc(i32 inreg 20)#0
%w=getelementptr inbounds i8,i8*%v,i64 -4
%x=bitcast i8*%w to i32*
store i32 1342177296,i32*%x,align 4
%y=load i8*,i8**%c,align 8
%z=bitcast i8*%v to i8**
store i8*%y,i8**%z,align 8
%A=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%B=getelementptr inbounds i8,i8*%v,i64 8
%C=bitcast i8*%B to i8**
store i8*%A,i8**%C,align 8
%D=getelementptr inbounds i8,i8*%v,i64 16
%E=bitcast i8*%D to i32*
store i32 3,i32*%E,align 4
%F=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%v)
%G=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%F)
store i8*%G,i8**%d,align 8
%H=bitcast i8**%e to i8***
%I=load i8**,i8***%H,align 8
store i8*null,i8**%e,align 8
%J=load i8*,i8**%I,align 8
%K=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%L=bitcast i8*%J to i8**
call void@sml_write(i8*inreg%J,i8**inreg%L,i8*inreg%K)#0
%M=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 1,i32 inreg 8)
%N=getelementptr inbounds i8,i8*%M,i64 16
%O=bitcast i8*%N to i8*(i8*,i8*)**
%P=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%O,align 8
%Q=bitcast i8*%M to i8**
%R=load i8*,i8**%Q,align 8
store i8*%R,i8**%c,align 8
%S=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%T=call fastcc i8*@_SMLFN6IntInf10fromStringE(i8*inreg%S)
%U=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%V=call fastcc i8*%P(i8*inreg%U,i8*inreg%T)
store i8*%V,i8**%c,align 8
%W=call i8*@sml_alloc(i32 inreg 20)#0
%X=bitcast i8*%W to i32*
%Y=getelementptr inbounds i8,i8*%W,i64 -4
%Z=bitcast i8*%Y to i32*
store i32 1342177296,i32*%Z,align 4
%aa=getelementptr inbounds i8,i8*%W,i64 4
%ab=bitcast i8*%aa to i32*
store i32 0,i32*%ab,align 1
store i32 5,i32*%X,align 4
%ac=load i8*,i8**%c,align 8
%ad=getelementptr inbounds i8,i8*%W,i64 8
%ae=bitcast i8*%ad to i8**
store i8*%ac,i8**%ae,align 8
%af=getelementptr inbounds i8,i8*%W,i64 16
%ag=bitcast i8*%af to i32*
store i32 2,i32*%ag,align 4
ret i8*%W
}
define internal fastcc i8*@_SMLLL10yyAction11_738(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*%b to i8**
br label%p
k:
call void@sml_check(i32 inreg%f)
%l=bitcast i8**%c to i8***
%m=load i8**,i8***%l,align 8
%n=bitcast i8**%e to i8****
%o=load i8***,i8****%n,align 8
br label%p
p:
%q=phi i8***[%o,%k],[%i,%h]
%r=phi i8**[%m,%k],[%j,%h]
%s=load i8*,i8**%r,align 8
store i8*%s,i8**%c,align 8
%t=load i8**,i8***%q,align 8
%u=load i8*,i8**%t,align 8
store i8*%u,i8**%d,align 8
%v=call i8*@sml_alloc(i32 inreg 20)#0
%w=getelementptr inbounds i8,i8*%v,i64 -4
%x=bitcast i8*%w to i32*
store i32 1342177296,i32*%x,align 4
%y=load i8*,i8**%c,align 8
%z=bitcast i8*%v to i8**
store i8*%y,i8**%z,align 8
%A=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%B=getelementptr inbounds i8,i8*%v,i64 8
%C=bitcast i8*%B to i8**
store i8*%A,i8**%C,align 8
%D=getelementptr inbounds i8,i8*%v,i64 16
%E=bitcast i8*%D to i32*
store i32 3,i32*%E,align 4
%F=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%v)
%G=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%F)
store i8*%G,i8**%d,align 8
%H=bitcast i8**%e to i8***
%I=load i8**,i8***%H,align 8
store i8*null,i8**%e,align 8
%J=load i8*,i8**%I,align 8
%K=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%L=bitcast i8*%J to i8**
call void@sml_write(i8*inreg%J,i8**inreg%L,i8*inreg%K)#0
%M=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 0,i32 inreg 8)
%N=getelementptr inbounds i8,i8*%M,i64 16
%O=bitcast i8*%N to i8*(i8*,i8*)**
%P=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%O,align 8
%Q=bitcast i8*%M to i8**
%R=load i8*,i8**%Q,align 8
store i8*%R,i8**%c,align 8
%S=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%T=call fastcc i8*@_SMLFN6Real6410fromStringE(i8*inreg%S)
%U=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%V=call fastcc i8*%P(i8*inreg%U,i8*inreg%T)
%W=bitcast i8*%V to double*
%X=load double,double*%W,align 8
%Y=call i8*@sml_alloc(i32 inreg 20)#0
%Z=bitcast i8*%Y to i32*
%aa=getelementptr inbounds i8,i8*%Y,i64 -4
%ab=bitcast i8*%aa to i32*
store i32 1342177296,i32*%ab,align 4
%ac=getelementptr inbounds i8,i8*%Y,i64 4
%ad=bitcast i8*%ac to i32*
store i32 0,i32*%ad,align 1
store i32 4,i32*%Z,align 4
%ae=getelementptr inbounds i8,i8*%Y,i64 8
%af=bitcast i8*%ae to double*
store double%X,double*%af,align 8
%ag=getelementptr inbounds i8,i8*%Y,i64 16
%ah=bitcast i8*%ag to i32*
store i32 0,i32*%ah,align 4
ret i8*%Y
}
define internal fastcc i8*@_SMLLL10yyAction12_739(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*%b to i8**
br label%p
k:
call void@sml_check(i32 inreg%f)
%l=bitcast i8**%c to i8***
%m=load i8**,i8***%l,align 8
%n=bitcast i8**%e to i8****
%o=load i8***,i8****%n,align 8
br label%p
p:
%q=phi i8***[%o,%k],[%i,%h]
%r=phi i8**[%m,%k],[%j,%h]
%s=load i8*,i8**%r,align 8
store i8*%s,i8**%c,align 8
%t=load i8**,i8***%q,align 8
%u=load i8*,i8**%t,align 8
store i8*%u,i8**%d,align 8
%v=call i8*@sml_alloc(i32 inreg 20)#0
%w=getelementptr inbounds i8,i8*%v,i64 -4
%x=bitcast i8*%w to i32*
store i32 1342177296,i32*%x,align 4
%y=load i8*,i8**%c,align 8
%z=bitcast i8*%v to i8**
store i8*%y,i8**%z,align 8
%A=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%B=getelementptr inbounds i8,i8*%v,i64 8
%C=bitcast i8*%B to i8**
store i8*%A,i8**%C,align 8
%D=getelementptr inbounds i8,i8*%v,i64 16
%E=bitcast i8*%D to i32*
store i32 3,i32*%E,align 4
%F=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%v)
%G=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%F)
store i8*%G,i8**%d,align 8
%H=bitcast i8**%e to i8***
%I=load i8**,i8***%H,align 8
store i8*null,i8**%e,align 8
%J=load i8*,i8**%I,align 8
%K=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%L=bitcast i8*%J to i8**
call void@sml_write(i8*inreg%J,i8**inreg%L,i8*inreg%K)#0
%M=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 0,i32 inreg 8)
%N=getelementptr inbounds i8,i8*%M,i64 16
%O=bitcast i8*%N to i8*(i8*,i8*)**
%P=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%O,align 8
%Q=bitcast i8*%M to i8**
%R=load i8*,i8**%Q,align 8
store i8*%R,i8**%c,align 8
%S=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%T=call fastcc i8*@_SMLFN6Real6410fromStringE(i8*inreg%S)
%U=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%V=call fastcc i8*%P(i8*inreg%U,i8*inreg%T)
%W=bitcast i8*%V to double*
%X=load double,double*%W,align 8
%Y=call i8*@sml_alloc(i32 inreg 20)#0
%Z=bitcast i8*%Y to i32*
%aa=getelementptr inbounds i8,i8*%Y,i64 -4
%ab=bitcast i8*%aa to i32*
store i32 1342177296,i32*%ab,align 4
%ac=getelementptr inbounds i8,i8*%Y,i64 4
%ad=bitcast i8*%ac to i32*
store i32 0,i32*%ad,align 1
store i32 4,i32*%Z,align 4
%ae=getelementptr inbounds i8,i8*%Y,i64 8
%af=bitcast i8*%ae to double*
store double%X,double*%af,align 8
%ag=getelementptr inbounds i8,i8*%Y,i64 16
%ah=bitcast i8*%ag to i32*
store i32 0,i32*%ah,align 4
ret i8*%Y
}
define internal fastcc i8*@_SMLLL10yyAction13_740(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*%b to i8**
br label%p
k:
call void@sml_check(i32 inreg%f)
%l=bitcast i8**%c to i8***
%m=load i8**,i8***%l,align 8
%n=bitcast i8**%e to i8****
%o=load i8***,i8****%n,align 8
br label%p
p:
%q=phi i8***[%o,%k],[%i,%h]
%r=phi i8**[%m,%k],[%j,%h]
%s=load i8*,i8**%r,align 8
store i8*%s,i8**%c,align 8
%t=load i8**,i8***%q,align 8
%u=load i8*,i8**%t,align 8
store i8*%u,i8**%d,align 8
%v=call i8*@sml_alloc(i32 inreg 20)#0
%w=getelementptr inbounds i8,i8*%v,i64 -4
%x=bitcast i8*%w to i32*
store i32 1342177296,i32*%x,align 4
%y=load i8*,i8**%c,align 8
%z=bitcast i8*%v to i8**
store i8*%y,i8**%z,align 8
%A=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%B=getelementptr inbounds i8,i8*%v,i64 8
%C=bitcast i8*%B to i8**
store i8*%A,i8**%C,align 8
%D=getelementptr inbounds i8,i8*%v,i64 16
%E=bitcast i8*%D to i32*
store i32 3,i32*%E,align 4
%F=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%v)
%G=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%F)
store i8*%G,i8**%d,align 8
%H=bitcast i8**%e to i8***
%I=load i8**,i8***%H,align 8
store i8*null,i8**%e,align 8
%J=load i8*,i8**%I,align 8
%K=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%L=bitcast i8*%J to i8**
call void@sml_write(i8*inreg%J,i8**inreg%L,i8*inreg%K)#0
%M=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 0,i32 inreg 8)
%N=getelementptr inbounds i8,i8*%M,i64 16
%O=bitcast i8*%N to i8*(i8*,i8*)**
%P=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%O,align 8
%Q=bitcast i8*%M to i8**
%R=load i8*,i8**%Q,align 8
store i8*%R,i8**%c,align 8
%S=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%T=call fastcc i8*@_SMLFN6Real6410fromStringE(i8*inreg%S)
%U=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%V=call fastcc i8*%P(i8*inreg%U,i8*inreg%T)
%W=bitcast i8*%V to double*
%X=load double,double*%W,align 8
%Y=call i8*@sml_alloc(i32 inreg 20)#0
%Z=bitcast i8*%Y to i32*
%aa=getelementptr inbounds i8,i8*%Y,i64 -4
%ab=bitcast i8*%aa to i32*
store i32 1342177296,i32*%ab,align 4
%ac=getelementptr inbounds i8,i8*%Y,i64 4
%ad=bitcast i8*%ac to i32*
store i32 0,i32*%ad,align 1
store i32 4,i32*%Z,align 4
%ae=getelementptr inbounds i8,i8*%Y,i64 8
%af=bitcast i8*%ae to double*
store double%X,double*%af,align 8
%ag=getelementptr inbounds i8,i8*%Y,i64 16
%ah=bitcast i8*%ag to i32*
store i32 0,i32*%ah,align 4
ret i8*%Y
}
define internal fastcc i8*@_SMLLL10yyAction24_750(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*%b to i8**
br label%p
k:
call void@sml_check(i32 inreg%f)
%l=bitcast i8**%c to i8***
%m=load i8**,i8***%l,align 8
%n=bitcast i8**%e to i8****
%o=load i8***,i8****%n,align 8
br label%p
p:
%q=phi i8***[%o,%k],[%i,%h]
%r=phi i8**[%m,%k],[%j,%h]
%s=load i8*,i8**%r,align 8
store i8*%s,i8**%c,align 8
%t=load i8**,i8***%q,align 8
%u=load i8*,i8**%t,align 8
store i8*%u,i8**%d,align 8
%v=call i8*@sml_alloc(i32 inreg 20)#0
%w=getelementptr inbounds i8,i8*%v,i64 -4
%x=bitcast i8*%w to i32*
store i32 1342177296,i32*%x,align 4
%y=load i8*,i8**%c,align 8
%z=bitcast i8*%v to i8**
store i8*%y,i8**%z,align 8
%A=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%B=getelementptr inbounds i8,i8*%v,i64 8
%C=bitcast i8*%B to i8**
store i8*%A,i8**%C,align 8
%D=getelementptr inbounds i8,i8*%v,i64 16
%E=bitcast i8*%D to i32*
store i32 3,i32*%E,align 4
%F=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%v)
%G=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%F)
store i8*%G,i8**%d,align 8
%H=bitcast i8**%e to i8***
%I=load i8**,i8***%H,align 8
%J=load i8*,i8**%I,align 8
%K=load i8*,i8**%c,align 8
%L=bitcast i8*%J to i8**
call void@sml_write(i8*inreg%J,i8**inreg%L,i8*inreg%K)#0
%M=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2),align 8
store i8*%M,i8**%c,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
%Q=load i8*,i8**%d,align 8
%R=bitcast i8*%N to i8**
store i8*%Q,i8**%R,align 8
%S=load i8*,i8**%c,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
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2),i8*inreg%N)#0
%X=load i8*,i8**%e,align 8
%Y=getelementptr inbounds i8,i8*%X,i64 8
%Z=bitcast i8*%Y to i8**
%aa=load i8*,i8**%Z,align 8
%ab=tail call fastcc i8*@_SMLLL8continue_723(i8*inreg%aa,i32 inreg 0)
ret i8*%ab
}
define internal fastcc i8*@_SMLLL10yyAction26_751(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%j
g:
%h=bitcast i8*%a to i8**
%i=bitcast i8*%b to i8**
br label%o
j:
call void@sml_check(i32 inreg%e)
%k=bitcast i8**%d to i8***
%l=load i8**,i8***%k,align 8
%m=bitcast i8**%c to i8***
%n=load i8**,i8***%m,align 8
br label%o
o:
%p=phi i8**[%n,%j],[%h,%g]
%q=phi i8**[%l,%j],[%i,%g]
%r=load i8*,i8**%p,align 8
%s=load i8*,i8**%q,align 8
%t=bitcast i8*%r to i8**
call void@sml_write(i8*inreg%r,i8**inreg%t,i8*inreg%s)#0
%u=load i8*,i8**%c,align 8
%v=getelementptr inbounds i8,i8*%u,i64 8
%w=bitcast i8*%v to i8**
%x=load i8*,i8**%w,align 8
store i8*%x,i8**%d,align 8
%y=bitcast i8*%u to i8***
%z=load i8**,i8***%y,align 8
%A=load i8*,i8**%z,align 8
%B=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%A)
%C=bitcast i8**%d to i32**
%D=load i32*,i32**%C,align 8
store i32%B,i32*%D,align 4
%E=load i8*,i8**%c,align 8
%F=getelementptr inbounds i8,i8*%E,i64 16
%G=bitcast i8*%F to i8**
%H=load i8*,i8**%G,align 8
store i8*%H,i8**%d,align 8
%I=bitcast i8*%E to i8***
%J=load i8**,i8***%I,align 8
%K=load i8*,i8**%J,align 8
%L=call fastcc i32@_SMLFN10ULexBuffer9lastWasNLE(i8*inreg%K)
%M=load i32*,i32**%C,align 8
store i32%L,i32*%M,align 4
%N=load i8*,i8**%c,align 8
%O=getelementptr inbounds i8,i8*%N,i64 24
%P=bitcast i8*%O to i8**
%Q=load i8*,i8**%P,align 8
%R=tail call fastcc i8*@_SMLLL8continue_723(i8*inreg%Q,i32 inreg 0)
ret i8*%R
}
define internal fastcc i8*@_SMLLL10yyAction27_755(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**%d,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*%b to i8**
br label%p
k:
call void@sml_check(i32 inreg%f)
%l=bitcast i8**%c to i8***
%m=load i8**,i8***%l,align 8
%n=bitcast i8**%d to i8****
%o=load i8***,i8****%n,align 8
br label%p
p:
%q=phi i8***[%o,%k],[%i,%h]
%r=phi i8**[%m,%k],[%j,%h]
%s=load i8*,i8**%r,align 8
store i8*%s,i8**%c,align 8
%t=load i8**,i8***%q,align 8
%u=load i8*,i8**%t,align 8
store i8*%u,i8**%e,align 8
%v=call i8*@sml_alloc(i32 inreg 20)#0
%w=getelementptr inbounds i8,i8*%v,i64 -4
%x=bitcast i8*%w to i32*
store i32 1342177296,i32*%x,align 4
%y=load i8*,i8**%c,align 8
%z=bitcast i8*%v to i8**
store i8*%y,i8**%z,align 8
%A=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%B=getelementptr inbounds i8,i8*%v,i64 8
%C=bitcast i8*%B to i8**
store i8*%A,i8**%C,align 8
%D=getelementptr inbounds i8,i8*%v,i64 16
%E=bitcast i8*%D to i32*
store i32 3,i32*%E,align 4
%F=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%v)
%G=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%F)
%H=bitcast i8**%d to i8***
%I=load i8**,i8***%H,align 8
store i8*null,i8**%d,align 8
%J=load i8*,i8**%I,align 8
%K=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%L=bitcast i8*%J to i8**
call void@sml_write(i8*inreg%J,i8**inreg%L,i8*inreg%K)#0
%M=call fastcc i8*@_SMLFN6String8toStringE(i8*inreg%G)
store i8*%M,i8**%c,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**%d,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=getelementptr inbounds i8,i8*%N,i64 8
%T=bitcast i8*%S to i8**
store i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,i8*,i32}>,<{[4x i8],i32,i8*,i8*,i32}>*@x,i64 0,i32 2)to i8*),i8**%T,align 8
%U=getelementptr inbounds i8,i8*%N,i64 16
%V=bitcast i8*%U to i32*
store i32 3,i32*%V,align 4
%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
store i8*%W,i8**%c,align 8
%Z=bitcast i8*%W to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[16x i8]}>,<{[4x i8],i32,[16x i8]}>*@v,i64 0,i32 2,i64 0),i8**%Z,align 8
%aa=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%ab=getelementptr inbounds i8,i8*%W,i64 8
%ac=bitcast i8*%ab to i8**
store i8*%aa,i8**%ac,align 8
%ad=getelementptr inbounds i8,i8*%W,i64 16
%ae=bitcast i8*%ad to i32*
store i32 3,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 3,i32*%ag,align 4
%al=load i8*,i8**%c,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
}
define internal fastcc i8*@_SMLLL8continue_723(i8*inreg%a,i32 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
%n=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
call void@llvm.gcroot(i8**%n,i8*null)#0
store i8*%a,i8**%f,align 8
%o=bitcast i8**%f to i8***
%p=bitcast i8**%c to i8***
%q=bitcast i8**%c to i32**
br label%r
r:
%s=load atomic i32,i32*@sml_check_flag unordered,align 4
%t=icmp eq i32%s,0
br i1%t,label%v,label%u
u:
call void@sml_check(i32 inreg%s)
br label%v
v:
br label%w
w:
%x=load atomic i32,i32*@sml_check_flag unordered,align 4
%y=icmp eq i32%x,0
br i1%y,label%A,label%z
z:
call void@sml_check(i32 inreg%x)
br label%A
A:
%B=load i8*,i8**%f,align 8
%C=getelementptr inbounds i8,i8*%B,i64 16
%D=bitcast i8*%C to i8**
%E=load i8*,i8**%D,align 8
store i8*%E,i8**%c,align 8
%F=getelementptr inbounds i8,i8*%B,i64 24
%G=bitcast i8*%F to i8**
%H=load i8*,i8**%G,align 8
store i8*%H,i8**%d,align 8
%I=getelementptr inbounds i8,i8*%B,i64 32
%J=bitcast i8*%I to i8**
%K=load i8*,i8**%J,align 8
store i8*%K,i8**%e,align 8
%L=call i8*@sml_alloc(i32 inreg 36)#0
%M=getelementptr inbounds i8,i8*%L,i64 -4
%N=bitcast i8*%M to i32*
store i32 1342177312,i32*%N,align 4
store i8*%L,i8**%g,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=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%R=getelementptr inbounds i8,i8*%L,i64 8
%S=bitcast i8*%R to i8**
store i8*%Q,i8**%S,align 8
%T=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%U=getelementptr inbounds i8,i8*%L,i64 16
%V=bitcast i8*%U to i8**
store i8*%T,i8**%V,align 8
%W=load i8*,i8**%f,align 8
%X=getelementptr inbounds i8,i8*%L,i64 24
%Y=bitcast i8*%X to i8**
store i8*%W,i8**%Y,align 8
%Z=getelementptr inbounds i8,i8*%L,i64 32
%aa=bitcast i8*%Z to i32*
store i32 15,i32*%aa,align 4
%ab=call i8*@sml_alloc(i32 inreg 28)#0
%ac=getelementptr inbounds i8,i8*%ab,i64 -4
%ad=bitcast i8*%ac to i32*
store i32 1342177304,i32*%ad,align 4
store i8*%ab,i8**%h,align 8
%ae=load i8*,i8**%g,align 8
store i8*null,i8**%g,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 void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL9yyAction0_727 to void(...)*),void(...)**%ah,align 8
%ai=getelementptr inbounds i8,i8*%ab,i64 16
%aj=bitcast i8*%ai to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL9yyAction0_727 to void(...)*),void(...)**%aj,align 8
%ak=getelementptr inbounds i8,i8*%ab,i64 24
%al=bitcast i8*%ak to i32*
store i32 -2147483647,i32*%al,align 4
%am=load i8*,i8**%f,align 8
%an=getelementptr inbounds i8,i8*%am,i64 16
%ao=bitcast i8*%an to i8**
%ap=load i8*,i8**%ao,align 8
store i8*%ap,i8**%c,align 8
%aq=call i8*@sml_alloc(i32 inreg 12)#0
%ar=getelementptr inbounds i8,i8*%aq,i64 -4
%as=bitcast i8*%ar to i32*
store i32 1342177288,i32*%as,align 4
store i8*%aq,i8**%d,align 8
%at=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%au=bitcast i8*%aq to i8**
store i8*%at,i8**%au,align 8
%av=getelementptr inbounds i8,i8*%aq,i64 8
%aw=bitcast i8*%av to i32*
store i32 1,i32*%aw,align 4
%ax=call i8*@sml_alloc(i32 inreg 28)#0
%ay=getelementptr inbounds i8,i8*%ax,i64 -4
%az=bitcast i8*%ay to i32*
store i32 1342177304,i32*%az,align 4
store i8*%ax,i8**%g,align 8
%aA=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aB=bitcast i8*%ax to i8**
store i8*%aA,i8**%aB,align 8
%aC=getelementptr inbounds i8,i8*%ax,i64 8
%aD=bitcast i8*%aC to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL10yyAction10_737 to void(...)*),void(...)**%aD,align 8
%aE=getelementptr inbounds i8,i8*%ax,i64 16
%aF=bitcast i8*%aE to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL10yyAction10_737 to void(...)*),void(...)**%aF,align 8
%aG=getelementptr inbounds i8,i8*%ax,i64 24
%aH=bitcast i8*%aG to i32*
store i32 -2147483647,i32*%aH,align 4
%aI=load i8*,i8**%f,align 8
%aJ=getelementptr inbounds i8,i8*%aI,i64 16
%aK=bitcast i8*%aJ to i8**
%aL=load i8*,i8**%aK,align 8
store i8*%aL,i8**%c,align 8
%aM=call i8*@sml_alloc(i32 inreg 12)#0
%aN=getelementptr inbounds i8,i8*%aM,i64 -4
%aO=bitcast i8*%aN to i32*
store i32 1342177288,i32*%aO,align 4
store i8*%aM,i8**%d,align 8
%aP=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aQ=bitcast i8*%aM to i8**
store i8*%aP,i8**%aQ,align 8
%aR=getelementptr inbounds i8,i8*%aM,i64 8
%aS=bitcast i8*%aR to i32*
store i32 1,i32*%aS,align 4
%aT=call i8*@sml_alloc(i32 inreg 28)#0
%aU=getelementptr inbounds i8,i8*%aT,i64 -4
%aV=bitcast i8*%aU to i32*
store i32 1342177304,i32*%aV,align 4
store i8*%aT,i8**%i,align 8
%aW=load i8*,i8**%d,align 8
store i8*null,i8**%d,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 void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL10yyAction11_738 to void(...)*),void(...)**%aZ,align 8
%a0=getelementptr inbounds i8,i8*%aT,i64 16
%a1=bitcast i8*%a0 to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL10yyAction11_738 to void(...)*),void(...)**%a1,align 8
%a2=getelementptr inbounds i8,i8*%aT,i64 24
%a3=bitcast i8*%a2 to i32*
store i32 -2147483647,i32*%a3,align 4
%a4=load i8*,i8**%f,align 8
%a5=getelementptr inbounds i8,i8*%a4,i64 16
%a6=bitcast i8*%a5 to i8**
%a7=load i8*,i8**%a6,align 8
store i8*%a7,i8**%c,align 8
%a8=call i8*@sml_alloc(i32 inreg 12)#0
%a9=getelementptr inbounds i8,i8*%a8,i64 -4
%ba=bitcast i8*%a9 to i32*
store i32 1342177288,i32*%ba,align 4
store i8*%a8,i8**%d,align 8
%bb=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bc=bitcast i8*%a8 to i8**
store i8*%bb,i8**%bc,align 8
%bd=getelementptr inbounds i8,i8*%a8,i64 8
%be=bitcast i8*%bd to i32*
store i32 1,i32*%be,align 4
%bf=call i8*@sml_alloc(i32 inreg 28)#0
%bg=getelementptr inbounds i8,i8*%bf,i64 -4
%bh=bitcast i8*%bg to i32*
store i32 1342177304,i32*%bh,align 4
store i8*%bf,i8**%j,align 8
%bi=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bj=bitcast i8*%bf to i8**
store i8*%bi,i8**%bj,align 8
%bk=getelementptr inbounds i8,i8*%bf,i64 8
%bl=bitcast i8*%bk to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL10yyAction12_739 to void(...)*),void(...)**%bl,align 8
%bm=getelementptr inbounds i8,i8*%bf,i64 16
%bn=bitcast i8*%bm to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL10yyAction12_739 to void(...)*),void(...)**%bn,align 8
%bo=getelementptr inbounds i8,i8*%bf,i64 24
%bp=bitcast i8*%bo to i32*
store i32 -2147483647,i32*%bp,align 4
%bq=load i8*,i8**%f,align 8
%br=getelementptr inbounds i8,i8*%bq,i64 16
%bs=bitcast i8*%br to i8**
%bt=load i8*,i8**%bs,align 8
store i8*%bt,i8**%c,align 8
%bu=call i8*@sml_alloc(i32 inreg 12)#0
%bv=getelementptr inbounds i8,i8*%bu,i64 -4
%bw=bitcast i8*%bv to i32*
store i32 1342177288,i32*%bw,align 4
store i8*%bu,i8**%d,align 8
%bx=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%by=bitcast i8*%bu to i8**
store i8*%bx,i8**%by,align 8
%bz=getelementptr inbounds i8,i8*%bu,i64 8
%bA=bitcast i8*%bz to i32*
store i32 1,i32*%bA,align 4
%bB=call i8*@sml_alloc(i32 inreg 28)#0
%bC=getelementptr inbounds i8,i8*%bB,i64 -4
%bD=bitcast i8*%bC to i32*
store i32 1342177304,i32*%bD,align 4
store i8*%bB,i8**%k,align 8
%bE=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bF=bitcast i8*%bB to i8**
store i8*%bE,i8**%bF,align 8
%bG=getelementptr inbounds i8,i8*%bB,i64 8
%bH=bitcast i8*%bG to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL10yyAction13_740 to void(...)*),void(...)**%bH,align 8
%bI=getelementptr inbounds i8,i8*%bB,i64 16
%bJ=bitcast i8*%bI to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL10yyAction13_740 to void(...)*),void(...)**%bJ,align 8
%bK=getelementptr inbounds i8,i8*%bB,i64 24
%bL=bitcast i8*%bK to i32*
store i32 -2147483647,i32*%bL,align 4
%bM=load i8*,i8**%f,align 8
%bN=getelementptr inbounds i8,i8*%bM,i64 16
%bO=bitcast i8*%bN to i8**
%bP=load i8*,i8**%bO,align 8
store i8*%bP,i8**%c,align 8
%bQ=call i8*@sml_alloc(i32 inreg 20)#0
%bR=getelementptr inbounds i8,i8*%bQ,i64 -4
%bS=bitcast i8*%bR to i32*
store i32 1342177296,i32*%bS,align 4
store i8*%bQ,i8**%d,align 8
%bT=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bU=bitcast i8*%bQ to i8**
store i8*%bT,i8**%bU,align 8
%bV=load i8*,i8**%f,align 8
%bW=getelementptr inbounds i8,i8*%bQ,i64 8
%bX=bitcast i8*%bW to i8**
store i8*%bV,i8**%bX,align 8
%bY=getelementptr inbounds i8,i8*%bQ,i64 16
%bZ=bitcast i8*%bY to i32*
store i32 3,i32*%bZ,align 4
%b0=call i8*@sml_alloc(i32 inreg 28)#0
%b1=getelementptr inbounds i8,i8*%b0,i64 -4
%b2=bitcast i8*%b1 to i32*
store i32 1342177304,i32*%b2,align 4
store i8*%b0,i8**%l,align 8
%b3=load i8*,i8**%d,align 8
%b4=bitcast i8*%b0 to i8**
store i8*%b3,i8**%b4,align 8
%b5=getelementptr inbounds i8,i8*%b0,i64 8
%b6=bitcast i8*%b5 to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL10yyAction24_750 to void(...)*),void(...)**%b6,align 8
%b7=getelementptr inbounds i8,i8*%b0,i64 16
%b8=bitcast i8*%b7 to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL10yyAction24_750 to void(...)*),void(...)**%b8,align 8
%b9=getelementptr inbounds i8,i8*%b0,i64 24
%ca=bitcast i8*%b9 to i32*
store i32 -2147483647,i32*%ca,align 4
%cb=load i8*,i8**%f,align 8
%cc=getelementptr inbounds i8,i8*%cb,i64 16
%cd=bitcast i8*%cc to i8**
%ce=load i8*,i8**%cd,align 8
store i8*%ce,i8**%c,align 8
%cf=getelementptr inbounds i8,i8*%cb,i64 24
%cg=bitcast i8*%cf to i8**
%ch=load i8*,i8**%cg,align 8
store i8*%ch,i8**%d,align 8
%ci=getelementptr inbounds i8,i8*%cb,i64 32
%cj=bitcast i8*%ci to i8**
%ck=load i8*,i8**%cj,align 8
store i8*%ck,i8**%e,align 8
%cl=call i8*@sml_alloc(i32 inreg 36)#0
%cm=getelementptr inbounds i8,i8*%cl,i64 -4
%cn=bitcast i8*%cm to i32*
store i32 1342177312,i32*%cn,align 4
store i8*%cl,i8**%m,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**%d,align 8
store i8*null,i8**%d,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
%cx=getelementptr inbounds i8,i8*%cl,i64 24
%cy=bitcast i8*%cx to i8**
store i8*%cw,i8**%cy,align 8
%cz=getelementptr inbounds i8,i8*%cl,i64 32
%cA=bitcast i8*%cz to i32*
store i32 15,i32*%cA,align 4
%cB=call i8*@sml_alloc(i32 inreg 28)#0
%cC=getelementptr inbounds i8,i8*%cB,i64 -4
%cD=bitcast i8*%cC to i32*
store i32 1342177304,i32*%cD,align 4
store i8*%cB,i8**%n,align 8
%cE=load i8*,i8**%m,align 8
store i8*null,i8**%m,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 void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL10yyAction26_751 to void(...)*),void(...)**%cH,align 8
%cI=getelementptr inbounds i8,i8*%cB,i64 16
%cJ=bitcast i8*%cI to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL10yyAction26_751 to void(...)*),void(...)**%cJ,align 8
%cK=getelementptr inbounds i8,i8*%cB,i64 24
%cL=bitcast i8*%cK to i32*
store i32 -2147483647,i32*%cL,align 4
%cM=load i8*,i8**%f,align 8
%cN=getelementptr inbounds i8,i8*%cM,i64 16
%cO=bitcast i8*%cN to i8**
%cP=load i8*,i8**%cO,align 8
store i8*%cP,i8**%c,align 8
%cQ=call i8*@sml_alloc(i32 inreg 12)#0
%cR=getelementptr inbounds i8,i8*%cQ,i64 -4
%cS=bitcast i8*%cR to i32*
store i32 1342177288,i32*%cS,align 4
store i8*%cQ,i8**%d,align 8
%cT=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%cU=bitcast i8*%cQ to i8**
store i8*%cT,i8**%cU,align 8
%cV=getelementptr inbounds i8,i8*%cQ,i64 8
%cW=bitcast i8*%cV to i32*
store i32 1,i32*%cW,align 4
%cX=call i8*@sml_alloc(i32 inreg 28)#0
%cY=getelementptr inbounds i8,i8*%cX,i64 -4
%cZ=bitcast i8*%cY to i32*
store i32 1342177304,i32*%cZ,align 4
store i8*%cX,i8**%m,align 8
%c0=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%c1=bitcast i8*%cX to i8**
store i8*%c0,i8**%c1,align 8
%c2=getelementptr inbounds i8,i8*%cX,i64 8
%c3=bitcast i8*%c2 to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL10yyAction27_755 to void(...)*),void(...)**%c3,align 8
%c4=getelementptr inbounds i8,i8*%cX,i64 16
%c5=bitcast i8*%c4 to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL10yyAction27_755 to void(...)*),void(...)**%c5,align 8
%c6=getelementptr inbounds i8,i8*%cX,i64 24
%c7=bitcast i8*%c6 to i32*
store i32 -2147483647,i32*%c7,align 4
%c8=load i8*,i8**%f,align 8
%c9=getelementptr inbounds i8,i8*%c8,i64 8
%da=bitcast i8*%c9 to i32**
%db=load i32*,i32**%da,align 8
%dc=load i32,i32*%db,align 4
%dd=icmp eq i32%dc,0
br i1%dd,label%t5,label%de
de:
store i8*null,i8**%h,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**%n,align 8
store i8*null,i8**%m,align 8
%df=getelementptr inbounds i8,i8*%c8,i64 16
%dg=bitcast i8*%df to i8***
%dh=load i8**,i8***%dg,align 8
%di=load i8*,i8**%dh,align 8
store i8*%di,i8**%c,align 8
%dj=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%di)
%dk=icmp eq i8*%dj,null
br i1%dk,label%dl,label%dm
dl:
store i8*null,i8**%c,align 8
br label%d7
dm:
%dn=bitcast i8*%dj to i8**
%do=load i8*,i8**%dn,align 8
%dp=bitcast i8*%do to i32*
%dq=load i32,i32*%dp,align 4
%dr=icmp eq i32%dq,10
br i1%dr,label%du,label%ds
ds:
store i8*null,i8**%c,align 8
%dt=load i8*,i8**%dn,align 8
br label%fa
du:
%dv=getelementptr inbounds i8,i8*%do,i64 8
%dw=bitcast i8*%dv to i8**
%dx=load i8*,i8**%dw,align 8
store i8*%dx,i8**%d,align 8
%dy=load i8**,i8***%o,align 8
%dz=load i8*,i8**%dy,align 8
%dA=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%dz)
%dB=getelementptr inbounds i8,i8*%dA,i64 16
%dC=bitcast i8*%dB to i8*(i8*,i8*)**
%dD=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%dC,align 8
%dE=bitcast i8*%dA to i8**
%dF=load i8*,i8**%dE,align 8
store i8*%dF,i8**%e,align 8
%dG=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%dH=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%dG)
%dI=call i8*@sml_alloc(i32 inreg 4)#0
%dJ=bitcast i8*%dI to i32*
%dK=getelementptr inbounds i8,i8*%dI,i64 -4
%dL=bitcast i8*%dK to i32*
store i32 4,i32*%dL,align 4
store i32%dH,i32*%dJ,align 4
%dM=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%dN=call fastcc i8*%dD(i8*inreg%dM,i8*inreg%dI)
%dO=call i8*@sml_alloc(i32 inreg 20)#0
%dP=getelementptr inbounds i8,i8*%dO,i64 -4
%dQ=bitcast i8*%dP to i32*
store i32 1342177296,i32*%dQ,align 4
store i8*%dO,i8**%c,align 8
%dR=getelementptr inbounds i8,i8*%dO,i64 4
%dS=bitcast i8*%dR to i32*
store i32 0,i32*%dS,align 1
%dT=bitcast i8*%dO to i32*
store i32 10,i32*%dT,align 4
%dU=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%dV=getelementptr inbounds i8,i8*%dO,i64 8
%dW=bitcast i8*%dV to i8**
store i8*%dU,i8**%dW,align 8
%dX=getelementptr inbounds i8,i8*%dO,i64 16
%dY=bitcast i8*%dX to i32*
store i32 2,i32*%dY,align 4
%dZ=call i8*@sml_alloc(i32 inreg 12)#0
%d0=getelementptr inbounds i8,i8*%dZ,i64 -4
%d1=bitcast i8*%d0 to i32*
store i32 1342177288,i32*%d1,align 4
%d2=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%d3=bitcast i8*%dZ to i8**
store i8*%d2,i8**%d3,align 8
%d4=getelementptr inbounds i8,i8*%dZ,i64 8
%d5=bitcast i8*%d4 to i32*
store i32 1,i32*%d5,align 4
%d6=icmp eq i8*%dZ,null
br i1%d6,label%d7,label%fa
d7:
store i8*null,i8**%l,align 8
%d8=load i8*,i8**%f,align 8
%d9=getelementptr inbounds i8,i8*%d8,i64 16
%ea=bitcast i8*%d9 to i8***
%eb=load i8**,i8***%ea,align 8
%ec=load i8*,i8**%eb,align 8
%ed=call fastcc i32@_SMLFN10ULexBuffer3eofE(i8*inreg%ec)
%ee=icmp eq i32%ed,0
br i1%ee,label%e9,label%ef
ef:
%eg=load i8*,i8**%f,align 8
%eh=getelementptr inbounds i8,i8*%eg,i64 16
%ei=bitcast i8*%eh to i8***
%ej=load i8**,i8***%ei,align 8
%ek=load i8*,i8**%ej,align 8
store i8*%ek,i8**%c,align 8
%el=call i8*@sml_alloc(i32 inreg 4)#0
%em=getelementptr inbounds i8,i8*%el,i64 -4
%en=bitcast i8*%em to i32*
store i32 536870916,i32*%en,align 4
store i8*%el,i8**%e,align 8
%eo=load i8**,i8***%o,align 8
%ep=load i8*,i8**%eo,align 8
%eq=call fastcc i8*@_SMLFN14AntlrStreamPos5colNoE(i8*inreg%ep)
%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
store i8*%ev,i8**%d,align 8
%ew=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%ex=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%ew)
%ey=call i8*@sml_alloc(i32 inreg 4)#0
%ez=bitcast i8*%ey to i32*
%eA=getelementptr inbounds i8,i8*%ey,i64 -4
%eB=bitcast i8*%eA to i32*
store i32 4,i32*%eB,align 4
store i32%ex,i32*%ez,align 4
%eC=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%eD=call fastcc i8*%et(i8*inreg%eC,i8*inreg%ey)
%eE=bitcast i8*%eD to i32*
%eF=load i32,i32*%eE,align 4
%eG=bitcast i8**%e to i32**
%eH=load i32*,i32**%eG,align 8
store i8*null,i8**%e,align 8
store i32%eF,i32*%eH,align 4
%eI=load i8*,i8**%f,align 8
%eJ=getelementptr inbounds i8,i8*%eI,i64 16
%eK=bitcast i8*%eJ to i8***
%eL=load i8**,i8***%eK,align 8
%eM=load i8*,i8**%eL,align 8
store i8*%eM,i8**%c,align 8
%eN=call i8*@sml_alloc(i32 inreg 4)#0
%eO=getelementptr inbounds i8,i8*%eN,i64 -4
%eP=bitcast i8*%eO to i32*
store i32 536870916,i32*%eP,align 4
store i8*%eN,i8**%e,align 8
%eQ=load i8**,i8***%o,align 8
%eR=load i8*,i8**%eQ,align 8
%eS=call fastcc i8*@_SMLFN14AntlrStreamPos6lineNoE(i8*inreg%eR)
%eT=getelementptr inbounds i8,i8*%eS,i64 16
%eU=bitcast i8*%eT to i8*(i8*,i8*)**
%eV=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%eU,align 8
%eW=bitcast i8*%eS to i8**
%eX=load i8*,i8**%eW,align 8
store i8*%eX,i8**%d,align 8
%eY=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%eZ=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%eY)
%e0=call i8*@sml_alloc(i32 inreg 4)#0
%e1=bitcast i8*%e0 to i32*
%e2=getelementptr inbounds i8,i8*%e0,i64 -4
%e3=bitcast i8*%e2 to i32*
store i32 4,i32*%e3,align 4
store i32%eZ,i32*%e1,align 4
%e4=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%e5=call fastcc i8*%eV(i8*inreg%e4,i8*inreg%e0)
%e6=bitcast i8*%e5 to i32*
%e7=load i32,i32*%e6,align 4
%e8=load i32*,i32**%eG,align 8
store i8*null,i8**%e,align 8
store i32%e7,i32*%e8,align 4
br label%bBN
e9:
store i8*null,i8**%f,align 8
store i8*null,i8**%c,align 8
br label%bBS
fa:
%fb=phi i8*[%dt,%ds],[%d2,%du]
%fc=bitcast i8*%fb to i32*
%fd=load i32,i32*%fc,align 4
%fe=getelementptr inbounds i8,i8*%fb,i64 8
%ff=bitcast i8*%fe to i8**
%fg=load i8*,i8**%ff,align 8
store i8*%fg,i8**%c,align 8
%fh=icmp eq i32%fd,35
br i1%fh,label%fi,label%fs
fi:
%fj=call i8*@sml_alloc(i32 inreg 20)#0
%fk=getelementptr inbounds i8,i8*%fj,i64 -4
%fl=bitcast i8*%fk to i32*
store i32 1342177296,i32*%fl,align 4
%fm=load i8*,i8**%c,align 8
%fn=bitcast i8*%fj to i8**
store i8*%fm,i8**%fn,align 8
%fo=getelementptr inbounds i8,i8*%fj,i64 8
%fp=bitcast i8*%fo to i8**
store i8*null,i8**%fp,align 8
%fq=getelementptr inbounds i8,i8*%fj,i64 16
%fr=bitcast i8*%fq to i32*
store i32 3,i32*%fr,align 4
store i8*%fj,i8**%c,align 8
br label%t3
fs:
%ft=icmp ugt i32%fd,34
br i1%ft,label%g4,label%fu
fu:
%fv=icmp eq i32%fd,34
br i1%fv,label%fw,label%gU
fw:
store i8*null,i8**%l,align 8
%fx=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%fg)
%fy=icmp eq i8*%fx,null
br i1%fy,label%gh,label%fz
fz:
%fA=bitcast i8*%fx to i8**
%fB=load i8*,i8**%fA,align 8
%fC=bitcast i8*%fB to i32*
%fD=load i32,i32*%fC,align 4
%fE=icmp eq i32%fD,10
br i1%fE,label%fF,label%gh
fF:
%fG=getelementptr inbounds i8,i8*%fB,i64 8
%fH=bitcast i8*%fG to i8**
%fI=load i8*,i8**%fH,align 8
store i8*%fI,i8**%d,align 8
%fJ=load i8**,i8***%o,align 8
%fK=load i8*,i8**%fJ,align 8
%fL=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%fK)
%fM=getelementptr inbounds i8,i8*%fL,i64 16
%fN=bitcast i8*%fM to i8*(i8*,i8*)**
%fO=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%fN,align 8
%fP=bitcast i8*%fL to i8**
%fQ=load i8*,i8**%fP,align 8
store i8*%fQ,i8**%e,align 8
%fR=load i8*,i8**%c,align 8
%fS=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%fR)
%fT=call i8*@sml_alloc(i32 inreg 4)#0
%fU=bitcast i8*%fT to i32*
%fV=getelementptr inbounds i8,i8*%fT,i64 -4
%fW=bitcast i8*%fV to i32*
store i32 4,i32*%fW,align 4
store i32%fS,i32*%fU,align 4
%fX=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%fY=call fastcc i8*%fO(i8*inreg%fX,i8*inreg%fT)
%fZ=call i8*@sml_alloc(i32 inreg 20)#0
%f0=getelementptr inbounds i8,i8*%fZ,i64 -4
%f1=bitcast i8*%f0 to i32*
store i32 1342177296,i32*%f1,align 4
store i8*%fZ,i8**%e,align 8
%f2=getelementptr inbounds i8,i8*%fZ,i64 4
%f3=bitcast i8*%f2 to i32*
store i32 0,i32*%f3,align 1
%f4=bitcast i8*%fZ to i32*
store i32 10,i32*%f4,align 4
%f5=load i8*,i8**%d,align 8
store i8*null,i8**%d,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
%ga=call i8*@sml_alloc(i32 inreg 12)#0
%gb=getelementptr inbounds i8,i8*%ga,i64 -4
%gc=bitcast i8*%gb to i32*
store i32 1342177288,i32*%gc,align 4
%gd=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%ge=bitcast i8*%ga to i8**
store i8*%gd,i8**%ge,align 8
%gf=getelementptr inbounds i8,i8*%ga,i64 8
%gg=bitcast i8*%gf to i32*
store i32 1,i32*%gg,align 4
br label%gh
gh:
%gi=call i8*@sml_alloc(i32 inreg 20)#0
%gj=getelementptr inbounds i8,i8*%gi,i64 -4
%gk=bitcast i8*%gj to i32*
store i32 1342177296,i32*%gk,align 4
%gl=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%gm=bitcast i8*%gi to i8**
store i8*%gl,i8**%gm,align 8
%gn=getelementptr inbounds i8,i8*%gi,i64 8
%go=bitcast i8*%gn to i8**
store i8*null,i8**%go,align 8
%gp=getelementptr inbounds i8,i8*%gi,i64 16
%gq=bitcast i8*%gp to i32*
store i32 3,i32*%gq,align 4
%gr=load i8*,i8**%f,align 8
%gs=getelementptr inbounds i8,i8*%gr,i64 16
%gt=bitcast i8*%gs to i8**
%gu=load i8*,i8**%gt,align 8
%gv=bitcast i8*%gu to i8**
call void@sml_write(i8*inreg%gu,i8**inreg%gv,i8*inreg%gl)#0
%gw=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%gx=getelementptr inbounds i8,i8*%gw,i64 8
%gy=bitcast i8*%gx to i32**
%gz=load i32*,i32**%gy,align 8
store i32 0,i32*%gz,align 4
%gA=call fastcc i8*@_SMLFN4List3revE(i32 inreg 1,i32 inreg 8)
%gB=getelementptr inbounds i8,i8*%gA,i64 16
%gC=bitcast i8*%gB to i8*(i8*,i8*)**
%gD=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%gC,align 8
%gE=bitcast i8*%gA to i8**
%gF=load i8*,i8**%gE,align 8
%gG=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2),align 8
%gH=call fastcc i8*%gD(i8*inreg%gF,i8*inreg%gG)
%gI=call fastcc i8*@_SMLFN10CharVector6concatE(i8*inreg%gH)
store i8*%gI,i8**%c,align 8
%gJ=call i8*@sml_alloc(i32 inreg 20)#0
%gK=bitcast i8*%gJ to i32*
%gL=getelementptr inbounds i8,i8*%gJ,i64 -4
%gM=bitcast i8*%gL to i32*
store i32 1342177296,i32*%gM,align 4
%gN=getelementptr inbounds i8,i8*%gJ,i64 4
%gO=bitcast i8*%gN to i32*
store i32 0,i32*%gO,align 1
store i32 13,i32*%gK,align 4
%gP=load i8*,i8**%c,align 8
%gQ=getelementptr inbounds i8,i8*%gJ,i64 8
%gR=bitcast i8*%gQ to i8**
store i8*%gP,i8**%gR,align 8
%gS=getelementptr inbounds i8,i8*%gJ,i64 16
%gT=bitcast i8*%gS to i32*
store i32 2,i32*%gT,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2),i8*inreg null)#0
ret i8*%gJ
gU:
%gV=call i8*@sml_alloc(i32 inreg 20)#0
%gW=getelementptr inbounds i8,i8*%gV,i64 -4
%gX=bitcast i8*%gW to i32*
store i32 1342177296,i32*%gX,align 4
%gY=load i8*,i8**%c,align 8
%gZ=bitcast i8*%gV to i8**
store i8*%gY,i8**%gZ,align 8
%g0=getelementptr inbounds i8,i8*%gV,i64 8
%g1=bitcast i8*%g0 to i8**
store i8*null,i8**%g1,align 8
%g2=getelementptr inbounds i8,i8*%gV,i64 16
%g3=bitcast i8*%g2 to i32*
store i32 3,i32*%g3,align 4
store i8*%gV,i8**%c,align 8
br label%t3
g4:
%g5=icmp eq i32%fd,92
br i1%g5,label%g6,label%tT
g6:
store i8*null,i8**%l,align 8
%g7=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%fg)
%g8=icmp eq i8*%g7,null
br i1%g8,label%g9,label%ha
g9:
store i8*null,i8**%c,align 8
br label%hV
ha:
%hb=bitcast i8*%g7 to i8**
%hc=load i8*,i8**%hb,align 8
%hd=bitcast i8*%hc to i32*
%he=load i32,i32*%hd,align 4
%hf=icmp eq i32%he,10
br i1%hf,label%hi,label%hg
hg:
store i8*null,i8**%c,align 8
%hh=load i8*,i8**%hb,align 8
br label%hW
hi:
%hj=getelementptr inbounds i8,i8*%hc,i64 8
%hk=bitcast i8*%hj to i8**
%hl=load i8*,i8**%hk,align 8
store i8*%hl,i8**%d,align 8
%hm=load i8**,i8***%o,align 8
%hn=load i8*,i8**%hm,align 8
%ho=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%hn)
%hp=getelementptr inbounds i8,i8*%ho,i64 16
%hq=bitcast i8*%hp to i8*(i8*,i8*)**
%hr=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%hq,align 8
%hs=bitcast i8*%ho to i8**
%ht=load i8*,i8**%hs,align 8
store i8*%ht,i8**%e,align 8
%hu=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%hv=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%hu)
%hw=call i8*@sml_alloc(i32 inreg 4)#0
%hx=bitcast i8*%hw to i32*
%hy=getelementptr inbounds i8,i8*%hw,i64 -4
%hz=bitcast i8*%hy to i32*
store i32 4,i32*%hz,align 4
store i32%hv,i32*%hx,align 4
%hA=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%hB=call fastcc i8*%hr(i8*inreg%hA,i8*inreg%hw)
%hC=call i8*@sml_alloc(i32 inreg 20)#0
%hD=getelementptr inbounds i8,i8*%hC,i64 -4
%hE=bitcast i8*%hD to i32*
store i32 1342177296,i32*%hE,align 4
store i8*%hC,i8**%c,align 8
%hF=getelementptr inbounds i8,i8*%hC,i64 4
%hG=bitcast i8*%hF to i32*
store i32 0,i32*%hG,align 1
%hH=bitcast i8*%hC to i32*
store i32 10,i32*%hH,align 4
%hI=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%hJ=getelementptr inbounds i8,i8*%hC,i64 8
%hK=bitcast i8*%hJ to i8**
store i8*%hI,i8**%hK,align 8
%hL=getelementptr inbounds i8,i8*%hC,i64 16
%hM=bitcast i8*%hL to i32*
store i32 2,i32*%hM,align 4
%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
%hQ=load i8*,i8**%c,align 8
store i8*null,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=icmp eq i8*%hN,null
br i1%hU,label%hV,label%hW
hV:
store i8*null,i8**%f,align 8
store i8*null,i8**%c,align 8
br label%bBS
hW:
%hX=phi i8*[%hh,%hg],[%hQ,%hi]
%hY=bitcast i8*%hX to i32*
%hZ=load i32,i32*%hY,align 4
%h0=getelementptr inbounds i8,i8*%hX,i64 8
%h1=bitcast i8*%h0 to i8**
%h2=load i8*,i8**%h1,align 8
store i8*%h2,i8**%c,align 8
%h3=icmp eq i32%hZ,102
br i1%h3,label%h4,label%je
h4:
%h5=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%h2)
%h6=icmp eq i8*%h5,null
br i1%h6,label%iP,label%h7
h7:
%h8=bitcast i8*%h5 to i8**
%h9=load i8*,i8**%h8,align 8
%ia=bitcast i8*%h9 to i32*
%ib=load i32,i32*%ia,align 4
%ic=icmp eq i32%ib,10
br i1%ic,label%id,label%iP
id:
%ie=getelementptr inbounds i8,i8*%h9,i64 8
%if=bitcast i8*%ie to i8**
%ig=load i8*,i8**%if,align 8
store i8*%ig,i8**%d,align 8
%ih=load i8**,i8***%o,align 8
%ii=load i8*,i8**%ih,align 8
%ij=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%ii)
%ik=getelementptr inbounds i8,i8*%ij,i64 16
%il=bitcast i8*%ik to i8*(i8*,i8*)**
%im=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%il,align 8
%in=bitcast i8*%ij to i8**
%io=load i8*,i8**%in,align 8
store i8*%io,i8**%e,align 8
%ip=load i8*,i8**%c,align 8
%iq=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%ip)
%ir=call i8*@sml_alloc(i32 inreg 4)#0
%is=bitcast i8*%ir to i32*
%it=getelementptr inbounds i8,i8*%ir,i64 -4
%iu=bitcast i8*%it to i32*
store i32 4,i32*%iu,align 4
store i32%iq,i32*%is,align 4
%iv=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%iw=call fastcc i8*%im(i8*inreg%iv,i8*inreg%ir)
%ix=call i8*@sml_alloc(i32 inreg 20)#0
%iy=getelementptr inbounds i8,i8*%ix,i64 -4
%iz=bitcast i8*%iy to i32*
store i32 1342177296,i32*%iz,align 4
store i8*%ix,i8**%e,align 8
%iA=getelementptr inbounds i8,i8*%ix,i64 4
%iB=bitcast i8*%iA to i32*
store i32 0,i32*%iB,align 1
%iC=bitcast i8*%ix to i32*
store i32 10,i32*%iC,align 4
%iD=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%iE=getelementptr inbounds i8,i8*%ix,i64 8
%iF=bitcast i8*%iE to i8**
store i8*%iD,i8**%iF,align 8
%iG=getelementptr inbounds i8,i8*%ix,i64 16
%iH=bitcast i8*%iG to i32*
store i32 2,i32*%iH,align 4
%iI=call i8*@sml_alloc(i32 inreg 12)#0
%iJ=getelementptr inbounds i8,i8*%iI,i64 -4
%iK=bitcast i8*%iJ to i32*
store i32 1342177288,i32*%iK,align 4
%iL=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%iM=bitcast i8*%iI to i8**
store i8*%iL,i8**%iM,align 8
%iN=getelementptr inbounds i8,i8*%iI,i64 8
%iO=bitcast i8*%iN to i32*
store i32 1,i32*%iO,align 4
br label%iP
iP:
%iQ=call i8*@sml_alloc(i32 inreg 20)#0
%iR=getelementptr inbounds i8,i8*%iQ,i64 -4
%iS=bitcast i8*%iR to i32*
store i32 1342177296,i32*%iS,align 4
%iT=load i8*,i8**%c,align 8
%iU=bitcast i8*%iQ to i8**
store i8*%iT,i8**%iU,align 8
%iV=getelementptr inbounds i8,i8*%iQ,i64 8
%iW=bitcast i8*%iV to i8**
store i8*null,i8**%iW,align 8
%iX=getelementptr inbounds i8,i8*%iQ,i64 16
%iY=bitcast i8*%iX to i32*
store i32 3,i32*%iY,align 4
%iZ=load i8*,i8**%f,align 8
%i0=getelementptr inbounds i8,i8*%iZ,i64 16
%i1=bitcast i8*%i0 to i8**
%i2=load i8*,i8**%i1,align 8
%i3=bitcast i8*%i2 to i8**
call void@sml_write(i8*inreg%i2,i8**inreg%i3,i8*inreg%iT)#0
%i4=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2),align 8
store i8*%i4,i8**%c,align 8
%i5=call i8*@sml_alloc(i32 inreg 20)#0
%i6=getelementptr inbounds i8,i8*%i5,i64 -4
%i7=bitcast i8*%i6 to i32*
store i32 1342177296,i32*%i7,align 4
%i8=bitcast i8*%i5 to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[2x i8]}>,<{[4x i8],i32,[2x i8]}>*@q,i64 0,i32 2,i64 0),i8**%i8,align 8
%i9=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%ja=getelementptr inbounds i8,i8*%i5,i64 8
%jb=bitcast i8*%ja to i8**
store i8*%i9,i8**%jb,align 8
%jc=getelementptr inbounds i8,i8*%i5,i64 16
%jd=bitcast i8*%jc to i32*
store i32 3,i32*%jd,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2),i8*inreg%i5)#0
br label%bBM
je:
%jf=icmp ugt i32%hZ,101
br i1%jf,label%ol,label%jg
jg:
%jh=icmp eq i32%hZ,48
br i1%jh,label%ji,label%jj
ji:
store i8*null,i8**%f,align 8
store i8*null,i8**%c,align 8
br label%bBS
jj:
%jk=icmp ugt i32%hZ,47
br i1%jk,label%lQ,label%jl
jl:
%jm=icmp eq i32%hZ,35
br i1%jm,label%jn,label%jo
jn:
store i8*null,i8**%f,align 8
store i8*null,i8**%c,align 8
br label%bBS
jo:
%jp=icmp ugt i32%hZ,34
br i1%jp,label%kD,label%jq
jq:
%jr=icmp eq i32%hZ,34
br i1%jr,label%js,label%kC
js:
%jt=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%h2)
%ju=icmp eq i8*%jt,null
br i1%ju,label%kd,label%jv
jv:
%jw=bitcast i8*%jt to i8**
%jx=load i8*,i8**%jw,align 8
%jy=bitcast i8*%jx to i32*
%jz=load i32,i32*%jy,align 4
%jA=icmp eq i32%jz,10
br i1%jA,label%jB,label%kd
jB:
%jC=getelementptr inbounds i8,i8*%jx,i64 8
%jD=bitcast i8*%jC to i8**
%jE=load i8*,i8**%jD,align 8
store i8*%jE,i8**%d,align 8
%jF=load i8**,i8***%o,align 8
%jG=load i8*,i8**%jF,align 8
%jH=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%jG)
%jI=getelementptr inbounds i8,i8*%jH,i64 16
%jJ=bitcast i8*%jI to i8*(i8*,i8*)**
%jK=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%jJ,align 8
%jL=bitcast i8*%jH to i8**
%jM=load i8*,i8**%jL,align 8
store i8*%jM,i8**%e,align 8
%jN=load i8*,i8**%c,align 8
%jO=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%jN)
%jP=call i8*@sml_alloc(i32 inreg 4)#0
%jQ=bitcast i8*%jP to i32*
%jR=getelementptr inbounds i8,i8*%jP,i64 -4
%jS=bitcast i8*%jR to i32*
store i32 4,i32*%jS,align 4
store i32%jO,i32*%jQ,align 4
%jT=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%jU=call fastcc i8*%jK(i8*inreg%jT,i8*inreg%jP)
%jV=call i8*@sml_alloc(i32 inreg 20)#0
%jW=getelementptr inbounds i8,i8*%jV,i64 -4
%jX=bitcast i8*%jW to i32*
store i32 1342177296,i32*%jX,align 4
store i8*%jV,i8**%e,align 8
%jY=getelementptr inbounds i8,i8*%jV,i64 4
%jZ=bitcast i8*%jY to i32*
store i32 0,i32*%jZ,align 1
%j0=bitcast i8*%jV to i32*
store i32 10,i32*%j0,align 4
%j1=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%j2=getelementptr inbounds i8,i8*%jV,i64 8
%j3=bitcast i8*%j2 to i8**
store i8*%j1,i8**%j3,align 8
%j4=getelementptr inbounds i8,i8*%jV,i64 16
%j5=bitcast i8*%j4 to i32*
store i32 2,i32*%j5,align 4
%j6=call i8*@sml_alloc(i32 inreg 12)#0
%j7=getelementptr inbounds i8,i8*%j6,i64 -4
%j8=bitcast i8*%j7 to i32*
store i32 1342177288,i32*%j8,align 4
%j9=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%ka=bitcast i8*%j6 to i8**
store i8*%j9,i8**%ka,align 8
%kb=getelementptr inbounds i8,i8*%j6,i64 8
%kc=bitcast i8*%kb to i32*
store i32 1,i32*%kc,align 4
br label%kd
kd:
%ke=call i8*@sml_alloc(i32 inreg 20)#0
%kf=getelementptr inbounds i8,i8*%ke,i64 -4
%kg=bitcast i8*%kf to i32*
store i32 1342177296,i32*%kg,align 4
%kh=load i8*,i8**%c,align 8
%ki=bitcast i8*%ke to i8**
store i8*%kh,i8**%ki,align 8
%kj=getelementptr inbounds i8,i8*%ke,i64 8
%kk=bitcast i8*%kj to i8**
store i8*null,i8**%kk,align 8
%kl=getelementptr inbounds i8,i8*%ke,i64 16
%km=bitcast i8*%kl to i32*
store i32 3,i32*%km,align 4
%kn=load i8*,i8**%f,align 8
%ko=getelementptr inbounds i8,i8*%kn,i64 16
%kp=bitcast i8*%ko to i8**
%kq=load i8*,i8**%kp,align 8
%kr=bitcast i8*%kq to i8**
call void@sml_write(i8*inreg%kq,i8**inreg%kr,i8*inreg%kh)#0
%ks=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2),align 8
store i8*%ks,i8**%c,align 8
%kt=call i8*@sml_alloc(i32 inreg 20)#0
%ku=getelementptr inbounds i8,i8*%kt,i64 -4
%kv=bitcast i8*%ku to i32*
store i32 1342177296,i32*%kv,align 4
%kw=bitcast i8*%kt to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[2x i8]}>,<{[4x i8],i32,[2x i8]}>*@n,i64 0,i32 2,i64 0),i8**%kw,align 8
%kx=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%ky=getelementptr inbounds i8,i8*%kt,i64 8
%kz=bitcast i8*%ky to i8**
store i8*%kx,i8**%kz,align 8
%kA=getelementptr inbounds i8,i8*%kt,i64 16
%kB=bitcast i8*%kA to i32*
store i32 3,i32*%kB,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2),i8*inreg%kt)#0
br label%bBM
kC:
store i8*null,i8**%f,align 8
store i8*null,i8**%c,align 8
br label%bBS
kD:
%kE=icmp eq i32%hZ,47
br i1%kE,label%kF,label%lP
kF:
%kG=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%h2)
%kH=icmp eq i8*%kG,null
br i1%kH,label%lq,label%kI
kI:
%kJ=bitcast i8*%kG to i8**
%kK=load i8*,i8**%kJ,align 8
%kL=bitcast i8*%kK to i32*
%kM=load i32,i32*%kL,align 4
%kN=icmp eq i32%kM,10
br i1%kN,label%kO,label%lq
kO:
%kP=getelementptr inbounds i8,i8*%kK,i64 8
%kQ=bitcast i8*%kP to i8**
%kR=load i8*,i8**%kQ,align 8
store i8*%kR,i8**%d,align 8
%kS=load i8**,i8***%o,align 8
%kT=load i8*,i8**%kS,align 8
%kU=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%kT)
%kV=getelementptr inbounds i8,i8*%kU,i64 16
%kW=bitcast i8*%kV to i8*(i8*,i8*)**
%kX=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%kW,align 8
%kY=bitcast i8*%kU to i8**
%kZ=load i8*,i8**%kY,align 8
store i8*%kZ,i8**%e,align 8
%k0=load i8*,i8**%c,align 8
%k1=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%k0)
%k2=call i8*@sml_alloc(i32 inreg 4)#0
%k3=bitcast i8*%k2 to i32*
%k4=getelementptr inbounds i8,i8*%k2,i64 -4
%k5=bitcast i8*%k4 to i32*
store i32 4,i32*%k5,align 4
store i32%k1,i32*%k3,align 4
%k6=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%k7=call fastcc i8*%kX(i8*inreg%k6,i8*inreg%k2)
%k8=call i8*@sml_alloc(i32 inreg 20)#0
%k9=getelementptr inbounds i8,i8*%k8,i64 -4
%la=bitcast i8*%k9 to i32*
store i32 1342177296,i32*%la,align 4
store i8*%k8,i8**%e,align 8
%lb=getelementptr inbounds i8,i8*%k8,i64 4
%lc=bitcast i8*%lb to i32*
store i32 0,i32*%lc,align 1
%ld=bitcast i8*%k8 to i32*
store i32 10,i32*%ld,align 4
%le=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%lf=getelementptr inbounds i8,i8*%k8,i64 8
%lg=bitcast i8*%lf to i8**
store i8*%le,i8**%lg,align 8
%lh=getelementptr inbounds i8,i8*%k8,i64 16
%li=bitcast i8*%lh to i32*
store i32 2,i32*%li,align 4
%lj=call i8*@sml_alloc(i32 inreg 12)#0
%lk=getelementptr inbounds i8,i8*%lj,i64 -4
%ll=bitcast i8*%lk to i32*
store i32 1342177288,i32*%ll,align 4
%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=getelementptr inbounds i8,i8*%lj,i64 8
%lp=bitcast i8*%lo to i32*
store i32 1,i32*%lp,align 4
br label%lq
lq:
%lr=call i8*@sml_alloc(i32 inreg 20)#0
%ls=getelementptr inbounds i8,i8*%lr,i64 -4
%lt=bitcast i8*%ls to i32*
store i32 1342177296,i32*%lt,align 4
%lu=load i8*,i8**%c,align 8
%lv=bitcast i8*%lr to i8**
store i8*%lu,i8**%lv,align 8
%lw=getelementptr inbounds i8,i8*%lr,i64 8
%lx=bitcast i8*%lw to i8**
store i8*null,i8**%lx,align 8
%ly=getelementptr inbounds i8,i8*%lr,i64 16
%lz=bitcast i8*%ly to i32*
store i32 3,i32*%lz,align 4
%lA=load i8*,i8**%f,align 8
%lB=getelementptr inbounds i8,i8*%lA,i64 16
%lC=bitcast i8*%lB to i8**
%lD=load i8*,i8**%lC,align 8
%lE=bitcast i8*%lD to i8**
call void@sml_write(i8*inreg%lD,i8**inreg%lE,i8*inreg%lu)#0
%lF=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2),align 8
store i8*%lF,i8**%c,align 8
%lG=call i8*@sml_alloc(i32 inreg 20)#0
%lH=getelementptr inbounds i8,i8*%lG,i64 -4
%lI=bitcast i8*%lH to i32*
store i32 1342177296,i32*%lI,align 4
%lJ=bitcast i8*%lG to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[2x i8]}>,<{[4x i8],i32,[2x i8]}>*@o,i64 0,i32 2,i64 0),i8**%lJ,align 8
%lK=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%lL=getelementptr inbounds i8,i8*%lG,i64 8
%lM=bitcast i8*%lL to i8**
store i8*%lK,i8**%lM,align 8
%lN=getelementptr inbounds i8,i8*%lG,i64 16
%lO=bitcast i8*%lN to i32*
store i32 3,i32*%lO,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2),i8*inreg%lG)#0
br label%bBM
lP:
store i8*null,i8**%f,align 8
store i8*null,i8**%c,align 8
br label%bBS
lQ:
%lR=icmp eq i32%hZ,93
br i1%lR,label%lS,label%lT
lS:
store i8*null,i8**%f,align 8
store i8*null,i8**%c,align 8
br label%bBS
lT:
%lU=icmp ugt i32%hZ,92
br i1%lU,label%m8,label%lV
lV:
%lW=icmp eq i32%hZ,92
br i1%lW,label%lX,label%m7
lX:
%lY=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%h2)
%lZ=icmp eq i8*%lY,null
br i1%lZ,label%mI,label%l0
l0:
%l1=bitcast i8*%lY to i8**
%l2=load i8*,i8**%l1,align 8
%l3=bitcast i8*%l2 to i32*
%l4=load i32,i32*%l3,align 4
%l5=icmp eq i32%l4,10
br i1%l5,label%l6,label%mI
l6:
%l7=getelementptr inbounds i8,i8*%l2,i64 8
%l8=bitcast i8*%l7 to i8**
%l9=load i8*,i8**%l8,align 8
store i8*%l9,i8**%d,align 8
%ma=load i8**,i8***%o,align 8
%mb=load i8*,i8**%ma,align 8
%mc=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%mb)
%md=getelementptr inbounds i8,i8*%mc,i64 16
%me=bitcast i8*%md to i8*(i8*,i8*)**
%mf=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%me,align 8
%mg=bitcast i8*%mc to i8**
%mh=load i8*,i8**%mg,align 8
store i8*%mh,i8**%e,align 8
%mi=load i8*,i8**%c,align 8
%mj=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%mi)
%mk=call i8*@sml_alloc(i32 inreg 4)#0
%ml=bitcast i8*%mk to i32*
%mm=getelementptr inbounds i8,i8*%mk,i64 -4
%mn=bitcast i8*%mm to i32*
store i32 4,i32*%mn,align 4
store i32%mj,i32*%ml,align 4
%mo=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%mp=call fastcc i8*%mf(i8*inreg%mo,i8*inreg%mk)
%mq=call i8*@sml_alloc(i32 inreg 20)#0
%mr=getelementptr inbounds i8,i8*%mq,i64 -4
%ms=bitcast i8*%mr to i32*
store i32 1342177296,i32*%ms,align 4
store i8*%mq,i8**%e,align 8
%mt=getelementptr inbounds i8,i8*%mq,i64 4
%mu=bitcast i8*%mt to i32*
store i32 0,i32*%mu,align 1
%mv=bitcast i8*%mq to i32*
store i32 10,i32*%mv,align 4
%mw=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%mx=getelementptr inbounds i8,i8*%mq,i64 8
%my=bitcast i8*%mx to i8**
store i8*%mw,i8**%my,align 8
%mz=getelementptr inbounds i8,i8*%mq,i64 16
%mA=bitcast i8*%mz to i32*
store i32 2,i32*%mA,align 4
%mB=call i8*@sml_alloc(i32 inreg 12)#0
%mC=getelementptr inbounds i8,i8*%mB,i64 -4
%mD=bitcast i8*%mC to i32*
store i32 1342177288,i32*%mD,align 4
%mE=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%mF=bitcast i8*%mB to i8**
store i8*%mE,i8**%mF,align 8
%mG=getelementptr inbounds i8,i8*%mB,i64 8
%mH=bitcast i8*%mG to i32*
store i32 1,i32*%mH,align 4
br label%mI
mI:
%mJ=call i8*@sml_alloc(i32 inreg 20)#0
%mK=getelementptr inbounds i8,i8*%mJ,i64 -4
%mL=bitcast i8*%mK to i32*
store i32 1342177296,i32*%mL,align 4
%mM=load i8*,i8**%c,align 8
%mN=bitcast i8*%mJ to i8**
store i8*%mM,i8**%mN,align 8
%mO=getelementptr inbounds i8,i8*%mJ,i64 8
%mP=bitcast i8*%mO to i8**
store i8*null,i8**%mP,align 8
%mQ=getelementptr inbounds i8,i8*%mJ,i64 16
%mR=bitcast i8*%mQ to i32*
store i32 3,i32*%mR,align 4
%mS=load i8*,i8**%f,align 8
%mT=getelementptr inbounds i8,i8*%mS,i64 16
%mU=bitcast i8*%mT to i8**
%mV=load i8*,i8**%mU,align 8
%mW=bitcast i8*%mV to i8**
call void@sml_write(i8*inreg%mV,i8**inreg%mW,i8*inreg%mM)#0
%mX=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2),align 8
store i8*%mX,i8**%c,align 8
%mY=call i8*@sml_alloc(i32 inreg 20)#0
%mZ=getelementptr inbounds i8,i8*%mY,i64 -4
%m0=bitcast i8*%mZ to i32*
store i32 1342177296,i32*%m0,align 4
%m1=bitcast i8*%mY to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[2x i8]}>,<{[4x i8],i32,[2x i8]}>*@m,i64 0,i32 2,i64 0),i8**%m1,align 8
%m2=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%m3=getelementptr inbounds i8,i8*%mY,i64 8
%m4=bitcast i8*%m3 to i8**
store i8*%m2,i8**%m4,align 8
%m5=getelementptr inbounds i8,i8*%mY,i64 16
%m6=bitcast i8*%m5 to i32*
store i32 3,i32*%m6,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2),i8*inreg%mY)#0
br label%bBM
m7:
store i8*null,i8**%f,align 8
store i8*null,i8**%c,align 8
br label%bBS
m8:
%m9=icmp eq i32%hZ,98
br i1%m9,label%na,label%ok
na:
%nb=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%h2)
%nc=icmp eq i8*%nb,null
br i1%nc,label%nV,label%nd
nd:
%ne=bitcast i8*%nb to i8**
%nf=load i8*,i8**%ne,align 8
%ng=bitcast i8*%nf to i32*
%nh=load i32,i32*%ng,align 4
%ni=icmp eq i32%nh,10
br i1%ni,label%nj,label%nV
nj:
%nk=getelementptr inbounds i8,i8*%nf,i64 8
%nl=bitcast i8*%nk to i8**
%nm=load i8*,i8**%nl,align 8
store i8*%nm,i8**%d,align 8
%nn=load i8**,i8***%o,align 8
%no=load i8*,i8**%nn,align 8
%np=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%no)
%nq=getelementptr inbounds i8,i8*%np,i64 16
%nr=bitcast i8*%nq to i8*(i8*,i8*)**
%ns=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%nr,align 8
%nt=bitcast i8*%np to i8**
%nu=load i8*,i8**%nt,align 8
store i8*%nu,i8**%e,align 8
%nv=load i8*,i8**%c,align 8
%nw=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%nv)
%nx=call i8*@sml_alloc(i32 inreg 4)#0
%ny=bitcast i8*%nx to i32*
%nz=getelementptr inbounds i8,i8*%nx,i64 -4
%nA=bitcast i8*%nz to i32*
store i32 4,i32*%nA,align 4
store i32%nw,i32*%ny,align 4
%nB=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%nC=call fastcc i8*%ns(i8*inreg%nB,i8*inreg%nx)
%nD=call i8*@sml_alloc(i32 inreg 20)#0
%nE=getelementptr inbounds i8,i8*%nD,i64 -4
%nF=bitcast i8*%nE to i32*
store i32 1342177296,i32*%nF,align 4
store i8*%nD,i8**%e,align 8
%nG=getelementptr inbounds i8,i8*%nD,i64 4
%nH=bitcast i8*%nG to i32*
store i32 0,i32*%nH,align 1
%nI=bitcast i8*%nD to i32*
store i32 10,i32*%nI,align 4
%nJ=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%nK=getelementptr inbounds i8,i8*%nD,i64 8
%nL=bitcast i8*%nK to i8**
store i8*%nJ,i8**%nL,align 8
%nM=getelementptr inbounds i8,i8*%nD,i64 16
%nN=bitcast i8*%nM to i32*
store i32 2,i32*%nN,align 4
%nO=call i8*@sml_alloc(i32 inreg 12)#0
%nP=getelementptr inbounds i8,i8*%nO,i64 -4
%nQ=bitcast i8*%nP to i32*
store i32 1342177288,i32*%nQ,align 4
%nR=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%nS=bitcast i8*%nO to i8**
store i8*%nR,i8**%nS,align 8
%nT=getelementptr inbounds i8,i8*%nO,i64 8
%nU=bitcast i8*%nT to i32*
store i32 1,i32*%nU,align 4
br label%nV
nV:
%nW=call i8*@sml_alloc(i32 inreg 20)#0
%nX=getelementptr inbounds i8,i8*%nW,i64 -4
%nY=bitcast i8*%nX to i32*
store i32 1342177296,i32*%nY,align 4
%nZ=load i8*,i8**%c,align 8
%n0=bitcast i8*%nW to i8**
store i8*%nZ,i8**%n0,align 8
%n1=getelementptr inbounds i8,i8*%nW,i64 8
%n2=bitcast i8*%n1 to i8**
store i8*null,i8**%n2,align 8
%n3=getelementptr inbounds i8,i8*%nW,i64 16
%n4=bitcast i8*%n3 to i32*
store i32 3,i32*%n4,align 4
%n5=load i8*,i8**%f,align 8
%n6=getelementptr inbounds i8,i8*%n5,i64 16
%n7=bitcast i8*%n6 to i8**
%n8=load i8*,i8**%n7,align 8
%n9=bitcast i8*%n8 to i8**
call void@sml_write(i8*inreg%n8,i8**inreg%n9,i8*inreg%nZ)#0
%oa=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2),align 8
store i8*%oa,i8**%c,align 8
%ob=call i8*@sml_alloc(i32 inreg 20)#0
%oc=getelementptr inbounds i8,i8*%ob,i64 -4
%od=bitcast i8*%oc to i32*
store i32 1342177296,i32*%od,align 4
%oe=bitcast i8*%ob to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[2x i8]}>,<{[4x i8],i32,[2x i8]}>*@p,i64 0,i32 2,i64 0),i8**%oe,align 8
%of=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%og=getelementptr inbounds i8,i8*%ob,i64 8
%oh=bitcast i8*%og to i8**
store i8*%of,i8**%oh,align 8
%oi=getelementptr inbounds i8,i8*%ob,i64 16
%oj=bitcast i8*%oi to i32*
store i32 3,i32*%oj,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2),i8*inreg%ob)#0
br label%bBM
ok:
store i8*null,i8**%f,align 8
store i8*null,i8**%c,align 8
br label%bBS
ol:
%om=icmp eq i32%hZ,115
br i1%om,label%on,label%oo
on:
store i8*null,i8**%f,align 8
store i8*null,i8**%c,align 8
br label%bBS
oo:
%op=icmp ugt i32%hZ,114
br i1%op,label%qV,label%oq
oq:
%or=icmp eq i32%hZ,111
br i1%or,label%os,label%ot
os:
store i8*null,i8**%f,align 8
store i8*null,i8**%c,align 8
br label%bBS
ot:
%ou=icmp ugt i32%hZ,110
br i1%ou,label%pI,label%ov
ov:
%ow=icmp eq i32%hZ,110
br i1%ow,label%ox,label%pH
ox:
%oy=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%h2)
%oz=icmp eq i8*%oy,null
br i1%oz,label%pi,label%oA
oA:
%oB=bitcast i8*%oy to i8**
%oC=load i8*,i8**%oB,align 8
%oD=bitcast i8*%oC to i32*
%oE=load i32,i32*%oD,align 4
%oF=icmp eq i32%oE,10
br i1%oF,label%oG,label%pi
oG:
%oH=getelementptr inbounds i8,i8*%oC,i64 8
%oI=bitcast i8*%oH to i8**
%oJ=load i8*,i8**%oI,align 8
store i8*%oJ,i8**%d,align 8
%oK=load i8**,i8***%o,align 8
%oL=load i8*,i8**%oK,align 8
%oM=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%oL)
%oN=getelementptr inbounds i8,i8*%oM,i64 16
%oO=bitcast i8*%oN to i8*(i8*,i8*)**
%oP=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%oO,align 8
%oQ=bitcast i8*%oM to i8**
%oR=load i8*,i8**%oQ,align 8
store i8*%oR,i8**%e,align 8
%oS=load i8*,i8**%c,align 8
%oT=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%oS)
%oU=call i8*@sml_alloc(i32 inreg 4)#0
%oV=bitcast i8*%oU to i32*
%oW=getelementptr inbounds i8,i8*%oU,i64 -4
%oX=bitcast i8*%oW to i32*
store i32 4,i32*%oX,align 4
store i32%oT,i32*%oV,align 4
%oY=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%oZ=call fastcc i8*%oP(i8*inreg%oY,i8*inreg%oU)
%o0=call i8*@sml_alloc(i32 inreg 20)#0
%o1=getelementptr inbounds i8,i8*%o0,i64 -4
%o2=bitcast i8*%o1 to i32*
store i32 1342177296,i32*%o2,align 4
store i8*%o0,i8**%e,align 8
%o3=getelementptr inbounds i8,i8*%o0,i64 4
%o4=bitcast i8*%o3 to i32*
store i32 0,i32*%o4,align 1
%o5=bitcast i8*%o0 to i32*
store i32 10,i32*%o5,align 4
%o6=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%o7=getelementptr inbounds i8,i8*%o0,i64 8
%o8=bitcast i8*%o7 to i8**
store i8*%o6,i8**%o8,align 8
%o9=getelementptr inbounds i8,i8*%o0,i64 16
%pa=bitcast i8*%o9 to i32*
store i32 2,i32*%pa,align 4
%pb=call i8*@sml_alloc(i32 inreg 12)#0
%pc=getelementptr inbounds i8,i8*%pb,i64 -4
%pd=bitcast i8*%pc to i32*
store i32 1342177288,i32*%pd,align 4
%pe=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%pf=bitcast i8*%pb to i8**
store i8*%pe,i8**%pf,align 8
%pg=getelementptr inbounds i8,i8*%pb,i64 8
%ph=bitcast i8*%pg to i32*
store i32 1,i32*%ph,align 4
br label%pi
pi:
%pj=call i8*@sml_alloc(i32 inreg 20)#0
%pk=getelementptr inbounds i8,i8*%pj,i64 -4
%pl=bitcast i8*%pk to i32*
store i32 1342177296,i32*%pl,align 4
%pm=load i8*,i8**%c,align 8
%pn=bitcast i8*%pj to i8**
store i8*%pm,i8**%pn,align 8
%po=getelementptr inbounds i8,i8*%pj,i64 8
%pp=bitcast i8*%po to i8**
store i8*null,i8**%pp,align 8
%pq=getelementptr inbounds i8,i8*%pj,i64 16
%pr=bitcast i8*%pq to i32*
store i32 3,i32*%pr,align 4
%ps=load i8*,i8**%f,align 8
%pt=getelementptr inbounds i8,i8*%ps,i64 16
%pu=bitcast i8*%pt to i8**
%pv=load i8*,i8**%pu,align 8
%pw=bitcast i8*%pv to i8**
call void@sml_write(i8*inreg%pv,i8**inreg%pw,i8*inreg%pm)#0
%px=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2),align 8
store i8*%px,i8**%c,align 8
%py=call i8*@sml_alloc(i32 inreg 20)#0
%pz=getelementptr inbounds i8,i8*%py,i64 -4
%pA=bitcast i8*%pz to i32*
store i32 1342177296,i32*%pA,align 4
%pB=bitcast i8*%py to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[2x i8]}>,<{[4x i8],i32,[2x i8]}>*@r,i64 0,i32 2,i64 0),i8**%pB,align 8
%pC=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%pD=getelementptr inbounds i8,i8*%py,i64 8
%pE=bitcast i8*%pD to i8**
store i8*%pC,i8**%pE,align 8
%pF=getelementptr inbounds i8,i8*%py,i64 16
%pG=bitcast i8*%pF to i32*
store i32 3,i32*%pG,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2),i8*inreg%py)#0
br label%bBM
pH:
store i8*null,i8**%f,align 8
store i8*null,i8**%c,align 8
br label%bBS
pI:
%pJ=icmp eq i32%hZ,114
br i1%pJ,label%pK,label%qU
pK:
%pL=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%h2)
%pM=icmp eq i8*%pL,null
br i1%pM,label%qv,label%pN
pN:
%pO=bitcast i8*%pL to i8**
%pP=load i8*,i8**%pO,align 8
%pQ=bitcast i8*%pP to i32*
%pR=load i32,i32*%pQ,align 4
%pS=icmp eq i32%pR,10
br i1%pS,label%pT,label%qv
pT:
%pU=getelementptr inbounds i8,i8*%pP,i64 8
%pV=bitcast i8*%pU to i8**
%pW=load i8*,i8**%pV,align 8
store i8*%pW,i8**%d,align 8
%pX=load i8**,i8***%o,align 8
%pY=load i8*,i8**%pX,align 8
%pZ=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%pY)
%p0=getelementptr inbounds i8,i8*%pZ,i64 16
%p1=bitcast i8*%p0 to i8*(i8*,i8*)**
%p2=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%p1,align 8
%p3=bitcast i8*%pZ to i8**
%p4=load i8*,i8**%p3,align 8
store i8*%p4,i8**%e,align 8
%p5=load i8*,i8**%c,align 8
%p6=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%p5)
%p7=call i8*@sml_alloc(i32 inreg 4)#0
%p8=bitcast i8*%p7 to i32*
%p9=getelementptr inbounds i8,i8*%p7,i64 -4
%qa=bitcast i8*%p9 to i32*
store i32 4,i32*%qa,align 4
store i32%p6,i32*%p8,align 4
%qb=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%qc=call fastcc i8*%p2(i8*inreg%qb,i8*inreg%p7)
%qd=call i8*@sml_alloc(i32 inreg 20)#0
%qe=getelementptr inbounds i8,i8*%qd,i64 -4
%qf=bitcast i8*%qe to i32*
store i32 1342177296,i32*%qf,align 4
store i8*%qd,i8**%e,align 8
%qg=getelementptr inbounds i8,i8*%qd,i64 4
%qh=bitcast i8*%qg to i32*
store i32 0,i32*%qh,align 1
%qi=bitcast i8*%qd to i32*
store i32 10,i32*%qi,align 4
%qj=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%qk=getelementptr inbounds i8,i8*%qd,i64 8
%ql=bitcast i8*%qk to i8**
store i8*%qj,i8**%ql,align 8
%qm=getelementptr inbounds i8,i8*%qd,i64 16
%qn=bitcast i8*%qm to i32*
store i32 2,i32*%qn,align 4
%qo=call i8*@sml_alloc(i32 inreg 12)#0
%qp=getelementptr inbounds i8,i8*%qo,i64 -4
%qq=bitcast i8*%qp to i32*
store i32 1342177288,i32*%qq,align 4
%qr=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%qs=bitcast i8*%qo to i8**
store i8*%qr,i8**%qs,align 8
%qt=getelementptr inbounds i8,i8*%qo,i64 8
%qu=bitcast i8*%qt to i32*
store i32 1,i32*%qu,align 4
br label%qv
qv:
%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
%qz=load i8*,i8**%c,align 8
%qA=bitcast i8*%qw to i8**
store i8*%qz,i8**%qA,align 8
%qB=getelementptr inbounds i8,i8*%qw,i64 8
%qC=bitcast i8*%qB to i8**
store i8*null,i8**%qC,align 8
%qD=getelementptr inbounds i8,i8*%qw,i64 16
%qE=bitcast i8*%qD to i32*
store i32 3,i32*%qE,align 4
%qF=load i8*,i8**%f,align 8
%qG=getelementptr inbounds i8,i8*%qF,i64 16
%qH=bitcast i8*%qG to i8**
%qI=load i8*,i8**%qH,align 8
%qJ=bitcast i8*%qI to i8**
call void@sml_write(i8*inreg%qI,i8**inreg%qJ,i8*inreg%qz)#0
%qK=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2),align 8
store i8*%qK,i8**%c,align 8
%qL=call i8*@sml_alloc(i32 inreg 20)#0
%qM=getelementptr inbounds i8,i8*%qL,i64 -4
%qN=bitcast i8*%qM to i32*
store i32 1342177296,i32*%qN,align 4
%qO=bitcast i8*%qL to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[2x i8]}>,<{[4x i8],i32,[2x i8]}>*@s,i64 0,i32 2,i64 0),i8**%qO,align 8
%qP=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%qQ=getelementptr inbounds i8,i8*%qL,i64 8
%qR=bitcast i8*%qQ to i8**
store i8*%qP,i8**%qR,align 8
%qS=getelementptr inbounds i8,i8*%qL,i64 16
%qT=bitcast i8*%qS to i32*
store i32 3,i32*%qT,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2),i8*inreg%qL)#0
br label%bBM
qU:
store i8*null,i8**%f,align 8
store i8*null,i8**%c,align 8
br label%bBS
qV:
switch i32%hZ,label%tS[
i32 117,label%qW
i32 116,label%sI
]
qW:
%qX=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%h2)
%qY=icmp eq i8*%qX,null
br i1%qY,label%qZ,label%q0
qZ:
store i8*null,i8**%c,align 8
br label%rL
q0:
%q1=bitcast i8*%qX to i8**
%q2=load i8*,i8**%q1,align 8
%q3=bitcast i8*%q2 to i32*
%q4=load i32,i32*%q3,align 4
%q5=icmp eq i32%q4,10
br i1%q5,label%q8,label%q6
q6:
store i8*null,i8**%c,align 8
%q7=load i8*,i8**%q1,align 8
br label%rM
q8:
%q9=getelementptr inbounds i8,i8*%q2,i64 8
%ra=bitcast i8*%q9 to i8**
%rb=load i8*,i8**%ra,align 8
store i8*%rb,i8**%d,align 8
%rc=load i8**,i8***%o,align 8
%rd=load i8*,i8**%rc,align 8
%re=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%rd)
%rf=getelementptr inbounds i8,i8*%re,i64 16
%rg=bitcast i8*%rf to i8*(i8*,i8*)**
%rh=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%rg,align 8
%ri=bitcast i8*%re to i8**
%rj=load i8*,i8**%ri,align 8
store i8*%rj,i8**%e,align 8
%rk=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%rl=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%rk)
%rm=call i8*@sml_alloc(i32 inreg 4)#0
%rn=bitcast i8*%rm to i32*
%ro=getelementptr inbounds i8,i8*%rm,i64 -4
%rp=bitcast i8*%ro to i32*
store i32 4,i32*%rp,align 4
store i32%rl,i32*%rn,align 4
%rq=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%rr=call fastcc i8*%rh(i8*inreg%rq,i8*inreg%rm)
%rs=call i8*@sml_alloc(i32 inreg 20)#0
%rt=getelementptr inbounds i8,i8*%rs,i64 -4
%ru=bitcast i8*%rt to i32*
store i32 1342177296,i32*%ru,align 4
store i8*%rs,i8**%c,align 8
%rv=getelementptr inbounds i8,i8*%rs,i64 4
%rw=bitcast i8*%rv to i32*
store i32 0,i32*%rw,align 1
%rx=bitcast i8*%rs to i32*
store i32 10,i32*%rx,align 4
%ry=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%rz=getelementptr inbounds i8,i8*%rs,i64 8
%rA=bitcast i8*%rz to i8**
store i8*%ry,i8**%rA,align 8
%rB=getelementptr inbounds i8,i8*%rs,i64 16
%rC=bitcast i8*%rB to i32*
store i32 2,i32*%rC,align 4
%rD=call i8*@sml_alloc(i32 inreg 12)#0
%rE=getelementptr inbounds i8,i8*%rD,i64 -4
%rF=bitcast i8*%rE to i32*
store i32 1342177288,i32*%rF,align 4
%rG=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%rH=bitcast i8*%rD to i8**
store i8*%rG,i8**%rH,align 8
%rI=getelementptr inbounds i8,i8*%rD,i64 8
%rJ=bitcast i8*%rI to i32*
store i32 1,i32*%rJ,align 4
%rK=icmp eq i8*%rD,null
br i1%rK,label%rL,label%rM
rL:
store i8*null,i8**%f,align 8
store i8*null,i8**%c,align 8
br label%bBS
rM:
%rN=phi i8*[%q7,%q6],[%rG,%q8]
%rO=bitcast i8*%rN to i32*
%rP=load i32,i32*%rO,align 4
%rQ=getelementptr inbounds i8,i8*%rN,i64 8
%rR=bitcast i8*%rQ to i8**
%rS=load i8*,i8**%rR,align 8
store i8*%rS,i8**%c,align 8
%rT=icmp eq i32%rP,65
br i1%rT,label%rU,label%rZ
rU:
%rV=call i8*@sml_alloc(i32 inreg 20)#0
%rW=getelementptr inbounds i8,i8*%rV,i64 -4
%rX=bitcast i8*%rW to i32*
store i32 1342177296,i32*%rX,align 4
%rY=load i8*,i8**%c,align 8
br label%ayM
rZ:
%r0=icmp ugt i32%rP,64
br i1%r0,label%sj,label%r1
r1:
%r2=icmp eq i32%rP,48
br i1%r2,label%r3,label%r8
r3:
%r4=call i8*@sml_alloc(i32 inreg 20)#0
%r5=getelementptr inbounds i8,i8*%r4,i64 -4
%r6=bitcast i8*%r5 to i32*
store i32 1342177296,i32*%r6,align 4
%r7=load i8*,i8**%c,align 8
br label%ayM
r8:
%r9=icmp ugt i32%rP,47
br i1%r9,label%sb,label%sa
sa:
store i8*null,i8**%f,align 8
store i8*null,i8**%c,align 8
br label%bBS
sb:
%sc=icmp ugt i32%rP,57
br i1%sc,label%si,label%sd
sd:
%se=call i8*@sml_alloc(i32 inreg 20)#0
%sf=getelementptr inbounds i8,i8*%se,i64 -4
%sg=bitcast i8*%sf to i32*
store i32 1342177296,i32*%sg,align 4
%sh=load i8*,i8**%c,align 8
br label%ayM
si:
store i8*null,i8**%f,align 8
store i8*null,i8**%c,align 8
br label%bBS
sj:
%sk=icmp eq i32%rP,97
br i1%sk,label%sl,label%sq
sl:
%sm=call i8*@sml_alloc(i32 inreg 20)#0
%sn=getelementptr inbounds i8,i8*%sm,i64 -4
%so=bitcast i8*%sn to i32*
store i32 1342177296,i32*%so,align 4
%sp=load i8*,i8**%c,align 8
br label%ayM
sq:
%sr=icmp ugt i32%rP,96
br i1%sr,label%sA,label%ss
ss:
%st=icmp ugt i32%rP,70
br i1%st,label%sz,label%su
su:
%sv=call i8*@sml_alloc(i32 inreg 20)#0
%sw=getelementptr inbounds i8,i8*%sv,i64 -4
%sx=bitcast i8*%sw to i32*
store i32 1342177296,i32*%sx,align 4
%sy=load i8*,i8**%c,align 8
br label%ayM
sz:
store i8*null,i8**%f,align 8
store i8*null,i8**%c,align 8
br label%bBS
sA:
%sB=icmp ugt i32%rP,102
br i1%sB,label%sH,label%sC
sC:
%sD=call i8*@sml_alloc(i32 inreg 20)#0
%sE=getelementptr inbounds i8,i8*%sD,i64 -4
%sF=bitcast i8*%sE to i32*
store i32 1342177296,i32*%sF,align 4
%sG=load i8*,i8**%c,align 8
br label%ayM
sH:
store i8*null,i8**%f,align 8
store i8*null,i8**%c,align 8
br label%bBS
sI:
%sJ=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%h2)
%sK=icmp eq i8*%sJ,null
br i1%sK,label%tt,label%sL
sL:
%sM=bitcast i8*%sJ to i8**
%sN=load i8*,i8**%sM,align 8
%sO=bitcast i8*%sN to i32*
%sP=load i32,i32*%sO,align 4
%sQ=icmp eq i32%sP,10
br i1%sQ,label%sR,label%tt
sR:
%sS=getelementptr inbounds i8,i8*%sN,i64 8
%sT=bitcast i8*%sS to i8**
%sU=load i8*,i8**%sT,align 8
store i8*%sU,i8**%d,align 8
%sV=load i8**,i8***%o,align 8
%sW=load i8*,i8**%sV,align 8
%sX=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%sW)
%sY=getelementptr inbounds i8,i8*%sX,i64 16
%sZ=bitcast i8*%sY to i8*(i8*,i8*)**
%s0=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%sZ,align 8
%s1=bitcast i8*%sX to i8**
%s2=load i8*,i8**%s1,align 8
store i8*%s2,i8**%e,align 8
%s3=load i8*,i8**%c,align 8
%s4=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%s3)
%s5=call i8*@sml_alloc(i32 inreg 4)#0
%s6=bitcast i8*%s5 to i32*
%s7=getelementptr inbounds i8,i8*%s5,i64 -4
%s8=bitcast i8*%s7 to i32*
store i32 4,i32*%s8,align 4
store i32%s4,i32*%s6,align 4
%s9=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%ta=call fastcc i8*%s0(i8*inreg%s9,i8*inreg%s5)
%tb=call i8*@sml_alloc(i32 inreg 20)#0
%tc=getelementptr inbounds i8,i8*%tb,i64 -4
%td=bitcast i8*%tc to i32*
store i32 1342177296,i32*%td,align 4
store i8*%tb,i8**%e,align 8
%te=getelementptr inbounds i8,i8*%tb,i64 4
%tf=bitcast i8*%te to i32*
store i32 0,i32*%tf,align 1
%tg=bitcast i8*%tb to i32*
store i32 10,i32*%tg,align 4
%th=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%ti=getelementptr inbounds i8,i8*%tb,i64 8
%tj=bitcast i8*%ti to i8**
store i8*%th,i8**%tj,align 8
%tk=getelementptr inbounds i8,i8*%tb,i64 16
%tl=bitcast i8*%tk to i32*
store i32 2,i32*%tl,align 4
%tm=call i8*@sml_alloc(i32 inreg 12)#0
%tn=getelementptr inbounds i8,i8*%tm,i64 -4
%to=bitcast i8*%tn to i32*
store i32 1342177288,i32*%to,align 4
%tp=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%tq=bitcast i8*%tm to i8**
store i8*%tp,i8**%tq,align 8
%tr=getelementptr inbounds i8,i8*%tm,i64 8
%ts=bitcast i8*%tr to i32*
store i32 1,i32*%ts,align 4
br label%tt
tt:
%tu=call i8*@sml_alloc(i32 inreg 20)#0
%tv=getelementptr inbounds i8,i8*%tu,i64 -4
%tw=bitcast i8*%tv to i32*
store i32 1342177296,i32*%tw,align 4
%tx=load i8*,i8**%c,align 8
%ty=bitcast i8*%tu to i8**
store i8*%tx,i8**%ty,align 8
%tz=getelementptr inbounds i8,i8*%tu,i64 8
%tA=bitcast i8*%tz to i8**
store i8*null,i8**%tA,align 8
%tB=getelementptr inbounds i8,i8*%tu,i64 16
%tC=bitcast i8*%tB to i32*
store i32 3,i32*%tC,align 4
%tD=load i8*,i8**%f,align 8
%tE=getelementptr inbounds i8,i8*%tD,i64 16
%tF=bitcast i8*%tE to i8**
%tG=load i8*,i8**%tF,align 8
%tH=bitcast i8*%tG to i8**
call void@sml_write(i8*inreg%tG,i8**inreg%tH,i8*inreg%tx)#0
%tI=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2),align 8
store i8*%tI,i8**%c,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
%tM=bitcast i8*%tJ to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[2x i8]}>,<{[4x i8],i32,[2x i8]}>*@t,i64 0,i32 2,i64 0),i8**%tM,align 8
%tN=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%tO=getelementptr inbounds i8,i8*%tJ,i64 8
%tP=bitcast i8*%tO to i8**
store i8*%tN,i8**%tP,align 8
%tQ=getelementptr inbounds i8,i8*%tJ,i64 16
%tR=bitcast i8*%tQ to i32*
store i32 3,i32*%tR,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2),i8*inreg%tJ)#0
br label%bBM
tS:
store i8*null,i8**%f,align 8
store i8*null,i8**%c,align 8
br label%bBS
tT:
%tU=call i8*@sml_alloc(i32 inreg 20)#0
%tV=getelementptr inbounds i8,i8*%tU,i64 -4
%tW=bitcast i8*%tV to i32*
store i32 1342177296,i32*%tW,align 4
%tX=load i8*,i8**%c,align 8
%tY=bitcast i8*%tU to i8**
store i8*%tX,i8**%tY,align 8
%tZ=getelementptr inbounds i8,i8*%tU,i64 8
%t0=bitcast i8*%tZ to i8**
store i8*null,i8**%t0,align 8
%t1=getelementptr inbounds i8,i8*%tU,i64 16
%t2=bitcast i8*%t1 to i32*
store i32 3,i32*%t2,align 4
store i8*%tU,i8**%c,align 8
br label%t3
t3:
%t4=phi i8*[%tX,%tT],[%gY,%gU],[%fm,%fi]
br label%auL
t5:
store i8*null,i8**%l,align 8
%t6=getelementptr inbounds i8,i8*%c8,i64 16
%t7=bitcast i8*%t6 to i8***
%t8=load i8**,i8***%t7,align 8
%t9=load i8*,i8**%t8,align 8
store i8*%t9,i8**%c,align 8
%ua=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%t9)
%ub=icmp eq i8*%ua,null
br i1%ub,label%uc,label%ud
uc:
store i8*null,i8**%c,align 8
br label%uY
ud:
%ue=bitcast i8*%ua to i8**
%uf=load i8*,i8**%ue,align 8
%ug=bitcast i8*%uf to i32*
%uh=load i32,i32*%ug,align 4
%ui=icmp eq i32%uh,10
br i1%ui,label%ul,label%uj
uj:
store i8*null,i8**%c,align 8
%uk=load i8*,i8**%ue,align 8
br label%v1
ul:
%um=getelementptr inbounds i8,i8*%uf,i64 8
%un=bitcast i8*%um to i8**
%uo=load i8*,i8**%un,align 8
store i8*%uo,i8**%d,align 8
%up=load i8**,i8***%o,align 8
%uq=load i8*,i8**%up,align 8
%ur=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%uq)
%us=getelementptr inbounds i8,i8*%ur,i64 16
%ut=bitcast i8*%us to i8*(i8*,i8*)**
%uu=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%ut,align 8
%uv=bitcast i8*%ur to i8**
%uw=load i8*,i8**%uv,align 8
store i8*%uw,i8**%e,align 8
%ux=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%uy=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%ux)
%uz=call i8*@sml_alloc(i32 inreg 4)#0
%uA=bitcast i8*%uz to i32*
%uB=getelementptr inbounds i8,i8*%uz,i64 -4
%uC=bitcast i8*%uB to i32*
store i32 4,i32*%uC,align 4
store i32%uy,i32*%uA,align 4
%uD=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%uE=call fastcc i8*%uu(i8*inreg%uD,i8*inreg%uz)
%uF=call i8*@sml_alloc(i32 inreg 20)#0
%uG=getelementptr inbounds i8,i8*%uF,i64 -4
%uH=bitcast i8*%uG to i32*
store i32 1342177296,i32*%uH,align 4
store i8*%uF,i8**%c,align 8
%uI=getelementptr inbounds i8,i8*%uF,i64 4
%uJ=bitcast i8*%uI to i32*
store i32 0,i32*%uJ,align 1
%uK=bitcast i8*%uF to i32*
store i32 10,i32*%uK,align 4
%uL=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%uM=getelementptr inbounds i8,i8*%uF,i64 8
%uN=bitcast i8*%uM to i8**
store i8*%uL,i8**%uN,align 8
%uO=getelementptr inbounds i8,i8*%uF,i64 16
%uP=bitcast i8*%uO to i32*
store i32 2,i32*%uP,align 4
%uQ=call i8*@sml_alloc(i32 inreg 12)#0
%uR=getelementptr inbounds i8,i8*%uQ,i64 -4
%uS=bitcast i8*%uR to i32*
store i32 1342177288,i32*%uS,align 4
%uT=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%uU=bitcast i8*%uQ to i8**
store i8*%uT,i8**%uU,align 8
%uV=getelementptr inbounds i8,i8*%uQ,i64 8
%uW=bitcast i8*%uV to i32*
store i32 1,i32*%uW,align 4
%uX=icmp eq i8*%uQ,null
br i1%uX,label%uY,label%v1
uY:
store i8*null,i8**%h,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**%n,align 8
store i8*null,i8**%m,align 8
%uZ=load i8*,i8**%f,align 8
%u0=getelementptr inbounds i8,i8*%uZ,i64 16
%u1=bitcast i8*%u0 to i8***
%u2=load i8**,i8***%u1,align 8
%u3=load i8*,i8**%u2,align 8
%u4=call fastcc i32@_SMLFN10ULexBuffer3eofE(i8*inreg%u3)
%u5=icmp eq i32%u4,0
br i1%u5,label%v0,label%u6
u6:
%u7=load i8*,i8**%f,align 8
%u8=getelementptr inbounds i8,i8*%u7,i64 16
%u9=bitcast i8*%u8 to i8***
%va=load i8**,i8***%u9,align 8
%vb=load i8*,i8**%va,align 8
store i8*%vb,i8**%c,align 8
%vc=call i8*@sml_alloc(i32 inreg 4)#0
%vd=getelementptr inbounds i8,i8*%vc,i64 -4
%ve=bitcast i8*%vd to i32*
store i32 536870916,i32*%ve,align 4
store i8*%vc,i8**%e,align 8
%vf=load i8**,i8***%o,align 8
%vg=load i8*,i8**%vf,align 8
%vh=call fastcc i8*@_SMLFN14AntlrStreamPos5colNoE(i8*inreg%vg)
%vi=getelementptr inbounds i8,i8*%vh,i64 16
%vj=bitcast i8*%vi to i8*(i8*,i8*)**
%vk=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%vj,align 8
%vl=bitcast i8*%vh to i8**
%vm=load i8*,i8**%vl,align 8
store i8*%vm,i8**%d,align 8
%vn=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%vo=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%vn)
%vp=call i8*@sml_alloc(i32 inreg 4)#0
%vq=bitcast i8*%vp to i32*
%vr=getelementptr inbounds i8,i8*%vp,i64 -4
%vs=bitcast i8*%vr to i32*
store i32 4,i32*%vs,align 4
store i32%vo,i32*%vq,align 4
%vt=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%vu=call fastcc i8*%vk(i8*inreg%vt,i8*inreg%vp)
%vv=bitcast i8*%vu to i32*
%vw=load i32,i32*%vv,align 4
%vx=bitcast i8**%e to i32**
%vy=load i32*,i32**%vx,align 8
store i8*null,i8**%e,align 8
store i32%vw,i32*%vy,align 4
%vz=load i8*,i8**%f,align 8
%vA=getelementptr inbounds i8,i8*%vz,i64 16
%vB=bitcast i8*%vA to i8***
%vC=load i8**,i8***%vB,align 8
%vD=load i8*,i8**%vC,align 8
store i8*%vD,i8**%c,align 8
%vE=call i8*@sml_alloc(i32 inreg 4)#0
%vF=getelementptr inbounds i8,i8*%vE,i64 -4
%vG=bitcast i8*%vF to i32*
store i32 536870916,i32*%vG,align 4
store i8*%vE,i8**%e,align 8
%vH=load i8**,i8***%o,align 8
%vI=load i8*,i8**%vH,align 8
%vJ=call fastcc i8*@_SMLFN14AntlrStreamPos6lineNoE(i8*inreg%vI)
%vK=getelementptr inbounds i8,i8*%vJ,i64 16
%vL=bitcast i8*%vK to i8*(i8*,i8*)**
%vM=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%vL,align 8
%vN=bitcast i8*%vJ to i8**
%vO=load i8*,i8**%vN,align 8
store i8*%vO,i8**%d,align 8
%vP=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%vQ=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%vP)
%vR=call i8*@sml_alloc(i32 inreg 4)#0
%vS=bitcast i8*%vR to i32*
%vT=getelementptr inbounds i8,i8*%vR,i64 -4
%vU=bitcast i8*%vT to i32*
store i32 4,i32*%vU,align 4
store i32%vQ,i32*%vS,align 4
%vV=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%vW=call fastcc i8*%vM(i8*inreg%vV,i8*inreg%vR)
%vX=bitcast i8*%vW to i32*
%vY=load i32,i32*%vX,align 4
%vZ=load i32*,i32**%vx,align 8
store i8*null,i8**%e,align 8
store i32%vY,i32*%vZ,align 4
br label%bBN
v0:
store i8*null,i8**%f,align 8
store i8*null,i8**%c,align 8
br label%bBS
v1:
%v2=phi i8*[%uk,%uj],[%uT,%ul]
%v3=bitcast i8*%v2 to i32*
%v4=load i32,i32*%v3,align 4
%v5=getelementptr inbounds i8,i8*%v2,i64 8
%v6=bitcast i8*%v5 to i8**
%v7=load i8*,i8**%v6,align 8
store i8*%v7,i8**%c,align 8
%v8=icmp eq i32%v4,58
br i1%v8,label%v9,label%w9
v9:
store i8*null,i8**%h,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**%n,align 8
store i8*null,i8**%m,align 8
%wa=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%v7)
%wb=icmp eq i8*%wa,null
br i1%wb,label%wU,label%wc
wc:
%wd=bitcast i8*%wa to i8**
%we=load i8*,i8**%wd,align 8
%wf=bitcast i8*%we to i32*
%wg=load i32,i32*%wf,align 4
%wh=icmp eq i32%wg,10
br i1%wh,label%wi,label%wU
wi:
%wj=getelementptr inbounds i8,i8*%we,i64 8
%wk=bitcast i8*%wj to i8**
%wl=load i8*,i8**%wk,align 8
store i8*%wl,i8**%d,align 8
%wm=load i8**,i8***%o,align 8
%wn=load i8*,i8**%wm,align 8
%wo=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%wn)
%wp=getelementptr inbounds i8,i8*%wo,i64 16
%wq=bitcast i8*%wp to i8*(i8*,i8*)**
%wr=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%wq,align 8
%ws=bitcast i8*%wo to i8**
%wt=load i8*,i8**%ws,align 8
store i8*%wt,i8**%e,align 8
%wu=load i8*,i8**%c,align 8
%wv=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%wu)
%ww=call i8*@sml_alloc(i32 inreg 4)#0
%wx=bitcast i8*%ww to i32*
%wy=getelementptr inbounds i8,i8*%ww,i64 -4
%wz=bitcast i8*%wy to i32*
store i32 4,i32*%wz,align 4
store i32%wv,i32*%wx,align 4
%wA=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%wB=call fastcc i8*%wr(i8*inreg%wA,i8*inreg%ww)
%wC=call i8*@sml_alloc(i32 inreg 20)#0
%wD=getelementptr inbounds i8,i8*%wC,i64 -4
%wE=bitcast i8*%wD to i32*
store i32 1342177296,i32*%wE,align 4
store i8*%wC,i8**%e,align 8
%wF=getelementptr inbounds i8,i8*%wC,i64 4
%wG=bitcast i8*%wF to i32*
store i32 0,i32*%wG,align 1
%wH=bitcast i8*%wC to i32*
store i32 10,i32*%wH,align 4
%wI=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%wJ=getelementptr inbounds i8,i8*%wC,i64 8
%wK=bitcast i8*%wJ to i8**
store i8*%wI,i8**%wK,align 8
%wL=getelementptr inbounds i8,i8*%wC,i64 16
%wM=bitcast i8*%wL to i32*
store i32 2,i32*%wM,align 4
%wN=call i8*@sml_alloc(i32 inreg 12)#0
%wO=getelementptr inbounds i8,i8*%wN,i64 -4
%wP=bitcast i8*%wO to i32*
store i32 1342177288,i32*%wP,align 4
%wQ=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%wR=bitcast i8*%wN to i8**
store i8*%wQ,i8**%wR,align 8
%wS=getelementptr inbounds i8,i8*%wN,i64 8
%wT=bitcast i8*%wS to i32*
store i32 1,i32*%wT,align 4
br label%wU
wU:
%wV=call i8*@sml_alloc(i32 inreg 20)#0
%wW=getelementptr inbounds i8,i8*%wV,i64 -4
%wX=bitcast i8*%wW to i32*
store i32 1342177296,i32*%wX,align 4
%wY=load i8*,i8**%c,align 8
%wZ=bitcast i8*%wV to i8**
store i8*%wY,i8**%wZ,align 8
%w0=getelementptr inbounds i8,i8*%wV,i64 8
%w1=bitcast i8*%w0 to i8**
store i8*null,i8**%w1,align 8
%w2=getelementptr inbounds i8,i8*%wV,i64 16
%w3=bitcast i8*%w2 to i32*
store i32 3,i32*%w3,align 4
%w4=load i8*,i8**%f,align 8
%w5=getelementptr inbounds i8,i8*%w4,i64 16
%w6=bitcast i8*%w5 to i8**
%w7=load i8*,i8**%w6,align 8
%w8=bitcast i8*%w7 to i8**
call void@sml_write(i8*inreg%w7,i8**inreg%w8,i8*inreg%wY)#0
ret i8*bitcast(i32*getelementptr inbounds(<{[4x i8],i32,i32,[4x i8],i32}>,<{[4x i8],i32,i32,[4x i8],i32}>*@i,i64 0,i32 2)to i8*)
w9:
%xa=icmp ugt i32%v4,57
br i1%xa,label%Xl,label%xb
xb:
%xc=icmp eq i32%v4,34
br i1%xc,label%xd,label%yh
xd:
store i8*null,i8**%h,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**%n,align 8
store i8*null,i8**%m,align 8
%xe=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%v7)
%xf=icmp eq i8*%xe,null
br i1%xf,label%xY,label%xg
xg:
%xh=bitcast i8*%xe to i8**
%xi=load i8*,i8**%xh,align 8
%xj=bitcast i8*%xi to i32*
%xk=load i32,i32*%xj,align 4
%xl=icmp eq i32%xk,10
br i1%xl,label%xm,label%xY
xm:
%xn=getelementptr inbounds i8,i8*%xi,i64 8
%xo=bitcast i8*%xn to i8**
%xp=load i8*,i8**%xo,align 8
store i8*%xp,i8**%d,align 8
%xq=load i8**,i8***%o,align 8
%xr=load i8*,i8**%xq,align 8
%xs=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%xr)
%xt=getelementptr inbounds i8,i8*%xs,i64 16
%xu=bitcast i8*%xt to i8*(i8*,i8*)**
%xv=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%xu,align 8
%xw=bitcast i8*%xs to i8**
%xx=load i8*,i8**%xw,align 8
store i8*%xx,i8**%e,align 8
%xy=load i8*,i8**%c,align 8
%xz=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%xy)
%xA=call i8*@sml_alloc(i32 inreg 4)#0
%xB=bitcast i8*%xA to i32*
%xC=getelementptr inbounds i8,i8*%xA,i64 -4
%xD=bitcast i8*%xC to i32*
store i32 4,i32*%xD,align 4
store i32%xz,i32*%xB,align 4
%xE=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%xF=call fastcc i8*%xv(i8*inreg%xE,i8*inreg%xA)
%xG=call i8*@sml_alloc(i32 inreg 20)#0
%xH=getelementptr inbounds i8,i8*%xG,i64 -4
%xI=bitcast i8*%xH to i32*
store i32 1342177296,i32*%xI,align 4
store i8*%xG,i8**%e,align 8
%xJ=getelementptr inbounds i8,i8*%xG,i64 4
%xK=bitcast i8*%xJ to i32*
store i32 0,i32*%xK,align 1
%xL=bitcast i8*%xG to i32*
store i32 10,i32*%xL,align 4
%xM=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%xN=getelementptr inbounds i8,i8*%xG,i64 8
%xO=bitcast i8*%xN to i8**
store i8*%xM,i8**%xO,align 8
%xP=getelementptr inbounds i8,i8*%xG,i64 16
%xQ=bitcast i8*%xP to i32*
store i32 2,i32*%xQ,align 4
%xR=call i8*@sml_alloc(i32 inreg 12)#0
%xS=getelementptr inbounds i8,i8*%xR,i64 -4
%xT=bitcast i8*%xS to i32*
store i32 1342177288,i32*%xT,align 4
%xU=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%xV=bitcast i8*%xR to i8**
store i8*%xU,i8**%xV,align 8
%xW=getelementptr inbounds i8,i8*%xR,i64 8
%xX=bitcast i8*%xW to i32*
store i32 1,i32*%xX,align 4
br label%xY
xY:
%xZ=call i8*@sml_alloc(i32 inreg 20)#0
%x0=getelementptr inbounds i8,i8*%xZ,i64 -4
%x1=bitcast i8*%x0 to i32*
store i32 1342177296,i32*%x1,align 4
%x2=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x3=bitcast i8*%xZ to i8**
store i8*%x2,i8**%x3,align 8
%x4=getelementptr inbounds i8,i8*%xZ,i64 8
%x5=bitcast i8*%x4 to i8**
store i8*null,i8**%x5,align 8
%x6=getelementptr inbounds i8,i8*%xZ,i64 16
%x7=bitcast i8*%x6 to i32*
store i32 3,i32*%x7,align 4
%x8=load i8*,i8**%f,align 8
%x9=getelementptr inbounds i8,i8*%x8,i64 16
%ya=bitcast i8*%x9 to i8**
%yb=load i8*,i8**%ya,align 8
%yc=bitcast i8*%yb to i8**
call void@sml_write(i8*inreg%yb,i8**inreg%yc,i8*inreg%x2)#0
%yd=load i8*,i8**%f,align 8
%ye=getelementptr inbounds i8,i8*%yd,i64 8
%yf=bitcast i8*%ye to i32**
%yg=load i32*,i32**%yf,align 8
store i32 1,i32*%yg,align 4
br label%bBM
yh:
%yi=icmp ugt i32%v4,33
br i1%yi,label%y4,label%yj
yj:
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**%n,align 8
store i8*null,i8**%m,align 8
%yk=icmp eq i32%v4,13
br i1%yk,label%yl,label%yq
yl:
%ym=call i8*@sml_alloc(i32 inreg 20)#0
%yn=getelementptr inbounds i8,i8*%ym,i64 -4
%yo=bitcast i8*%yn to i32*
store i32 1342177296,i32*%yo,align 4
%yp=load i8*,i8**%c,align 8
br label%aI0
yq:
%yr=icmp ugt i32%v4,12
br i1%yr,label%yS,label%ys
ys:
%yt=icmp eq i32%v4,9
br i1%yt,label%yu,label%yz
yu:
%yv=call i8*@sml_alloc(i32 inreg 20)#0
%yw=getelementptr inbounds i8,i8*%yv,i64 -4
%yx=bitcast i8*%yw to i32*
store i32 1342177296,i32*%yx,align 4
%yy=load i8*,i8**%c,align 8
br label%aI0
yz:
%yA=icmp ugt i32%v4,8
br i1%yA,label%yG,label%yB
yB:
store i8*null,i8**%h,align 8
%yC=call i8*@sml_alloc(i32 inreg 20)#0
%yD=getelementptr inbounds i8,i8*%yC,i64 -4
%yE=bitcast i8*%yD to i32*
store i32 1342177296,i32*%yE,align 4
%yF=load i8*,i8**%c,align 8
br label%aHg
yG:
%yH=icmp ugt i32%v4,10
br i1%yH,label%yN,label%yI
yI:
%yJ=call i8*@sml_alloc(i32 inreg 20)#0
%yK=getelementptr inbounds i8,i8*%yJ,i64 -4
%yL=bitcast i8*%yK to i32*
store i32 1342177296,i32*%yL,align 4
%yM=load i8*,i8**%c,align 8
br label%aI0
yN:
store i8*null,i8**%h,align 8
%yO=call i8*@sml_alloc(i32 inreg 20)#0
%yP=getelementptr inbounds i8,i8*%yO,i64 -4
%yQ=bitcast i8*%yP to i32*
store i32 1342177296,i32*%yQ,align 4
%yR=load i8*,i8**%c,align 8
br label%aHg
yS:
%yT=icmp eq i32%v4,32
br i1%yT,label%yU,label%yZ
yU:
%yV=call i8*@sml_alloc(i32 inreg 20)#0
%yW=getelementptr inbounds i8,i8*%yV,i64 -4
%yX=bitcast i8*%yW to i32*
store i32 1342177296,i32*%yX,align 4
%yY=load i8*,i8**%c,align 8
br label%aI0
yZ:
store i8*null,i8**%h,align 8
%y0=call i8*@sml_alloc(i32 inreg 20)#0
%y1=getelementptr inbounds i8,i8*%y0,i64 -4
%y2=bitcast i8*%y1 to i32*
store i32 1342177296,i32*%y2,align 4
%y3=load i8*,i8**%c,align 8
br label%aHg
y4:
store i8*null,i8**%h,align 8
%y5=icmp eq i32%v4,46
br i1%y5,label%y6,label%zb
y6:
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**%n,align 8
store i8*null,i8**%m,align 8
%y7=call i8*@sml_alloc(i32 inreg 20)#0
%y8=getelementptr inbounds i8,i8*%y7,i64 -4
%y9=bitcast i8*%y8 to i32*
store i32 1342177296,i32*%y9,align 4
%za=load i8*,i8**%c,align 8
br label%aHg
zb:
%zc=icmp ugt i32%v4,45
br i1%zc,label%IF,label%zd
zd:
store i8*null,i8**%n,align 8
switch i32%v4,label%IA[
i32 44,label%ze
i32 45,label%Ae
]
ze:
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**%m,align 8
%zf=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%v7)
%zg=icmp eq i8*%zf,null
br i1%zg,label%zZ,label%zh
zh:
%zi=bitcast i8*%zf to i8**
%zj=load i8*,i8**%zi,align 8
%zk=bitcast i8*%zj to i32*
%zl=load i32,i32*%zk,align 4
%zm=icmp eq i32%zl,10
br i1%zm,label%zn,label%zZ
zn:
%zo=getelementptr inbounds i8,i8*%zj,i64 8
%zp=bitcast i8*%zo to i8**
%zq=load i8*,i8**%zp,align 8
store i8*%zq,i8**%d,align 8
%zr=load i8**,i8***%o,align 8
%zs=load i8*,i8**%zr,align 8
%zt=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%zs)
%zu=getelementptr inbounds i8,i8*%zt,i64 16
%zv=bitcast i8*%zu to i8*(i8*,i8*)**
%zw=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%zv,align 8
%zx=bitcast i8*%zt to i8**
%zy=load i8*,i8**%zx,align 8
store i8*%zy,i8**%e,align 8
%zz=load i8*,i8**%c,align 8
%zA=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%zz)
%zB=call i8*@sml_alloc(i32 inreg 4)#0
%zC=bitcast i8*%zB to i32*
%zD=getelementptr inbounds i8,i8*%zB,i64 -4
%zE=bitcast i8*%zD to i32*
store i32 4,i32*%zE,align 4
store i32%zA,i32*%zC,align 4
%zF=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%zG=call fastcc i8*%zw(i8*inreg%zF,i8*inreg%zB)
%zH=call i8*@sml_alloc(i32 inreg 20)#0
%zI=getelementptr inbounds i8,i8*%zH,i64 -4
%zJ=bitcast i8*%zI to i32*
store i32 1342177296,i32*%zJ,align 4
store i8*%zH,i8**%e,align 8
%zK=getelementptr inbounds i8,i8*%zH,i64 4
%zL=bitcast i8*%zK to i32*
store i32 0,i32*%zL,align 1
%zM=bitcast i8*%zH to i32*
store i32 10,i32*%zM,align 4
%zN=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%zO=getelementptr inbounds i8,i8*%zH,i64 8
%zP=bitcast i8*%zO to i8**
store i8*%zN,i8**%zP,align 8
%zQ=getelementptr inbounds i8,i8*%zH,i64 16
%zR=bitcast i8*%zQ to i32*
store i32 2,i32*%zR,align 4
%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
%zV=load i8*,i8**%e,align 8
store i8*null,i8**%e,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
br label%zZ
zZ:
%z0=call i8*@sml_alloc(i32 inreg 20)#0
%z1=getelementptr inbounds i8,i8*%z0,i64 -4
%z2=bitcast i8*%z1 to i32*
store i32 1342177296,i32*%z2,align 4
%z3=load i8*,i8**%c,align 8
%z4=bitcast i8*%z0 to i8**
store i8*%z3,i8**%z4,align 8
%z5=getelementptr inbounds i8,i8*%z0,i64 8
%z6=bitcast i8*%z5 to i8**
store i8*null,i8**%z6,align 8
%z7=getelementptr inbounds i8,i8*%z0,i64 16
%z8=bitcast i8*%z7 to i32*
store i32 3,i32*%z8,align 4
%z9=load i8*,i8**%f,align 8
%Aa=getelementptr inbounds i8,i8*%z9,i64 16
%Ab=bitcast i8*%Aa to i8**
%Ac=load i8*,i8**%Ab,align 8
%Ad=bitcast i8*%Ac to i8**
call void@sml_write(i8*inreg%Ac,i8**inreg%Ad,i8*inreg%z3)#0
ret i8*bitcast(i32*getelementptr inbounds(<{[4x i8],i32,i32,[4x i8],i32}>,<{[4x i8],i32,i32,[4x i8],i32}>*@h,i64 0,i32 2)to i8*)
Ae:
%Af=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%v7)
%Ag=icmp eq i8*%Af,null
br i1%Ag,label%A3,label%Ah
Ah:
%Ai=bitcast i8*%Af to i8**
%Aj=load i8*,i8**%Ai,align 8
%Ak=bitcast i8*%Aj to i32*
%Al=load i32,i32*%Ak,align 4
%Am=icmp eq i32%Al,10
br i1%Am,label%An,label%BV
An:
%Ao=getelementptr inbounds i8,i8*%Aj,i64 8
%Ap=bitcast i8*%Ao to i8**
%Aq=load i8*,i8**%Ap,align 8
store i8*%Aq,i8**%d,align 8
%Ar=load i8**,i8***%o,align 8
%As=load i8*,i8**%Ar,align 8
%At=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%As)
%Au=getelementptr inbounds i8,i8*%At,i64 16
%Av=bitcast i8*%Au to i8*(i8*,i8*)**
%Aw=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%Av,align 8
%Ax=bitcast i8*%At to i8**
%Ay=load i8*,i8**%Ax,align 8
store i8*%Ay,i8**%e,align 8
%Az=load i8*,i8**%c,align 8
%AA=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%Az)
%AB=call i8*@sml_alloc(i32 inreg 4)#0
%AC=bitcast i8*%AB to i32*
%AD=getelementptr inbounds i8,i8*%AB,i64 -4
%AE=bitcast i8*%AD to i32*
store i32 4,i32*%AE,align 4
store i32%AA,i32*%AC,align 4
%AF=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%AG=call fastcc i8*%Aw(i8*inreg%AF,i8*inreg%AB)
%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**%e,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 10,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 12)#0
%AT=getelementptr inbounds i8,i8*%AS,i64 -4
%AU=bitcast i8*%AT to i32*
store i32 1342177288,i32*%AU,align 4
%AV=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%AW=bitcast i8*%AS to i8**
store i8*%AV,i8**%AW,align 8
%AX=getelementptr inbounds i8,i8*%AS,i64 8
%AY=bitcast i8*%AX to i32*
store i32 1,i32*%AY,align 4
%AZ=icmp eq i8*%AS,null
br i1%AZ,label%A3,label%A0
A0:
%A1=bitcast i8*%AV to i32*
%A2=load i32,i32*%A1,align 4
br label%BV
A3:
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**%m,align 8
%A4=load i8*,i8**%f,align 8
%A5=getelementptr inbounds i8,i8*%A4,i64 16
%A6=bitcast i8*%A5 to i8***
%A7=load i8**,i8***%A6,align 8
%A8=load i8*,i8**%A7,align 8
store i8*%A8,i8**%d,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
%Bc=load i8*,i8**%c,align 8
%Bd=bitcast i8*%A9 to i8**
store i8*%Bc,i8**%Bd,align 8
%Be=load i8*,i8**%d,align 8
store i8*null,i8**%d,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=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%A9)
%Bk=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%Bj)
%Bl=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%Bm=getelementptr inbounds i8,i8*%Bl,i64 16
%Bn=bitcast i8*%Bm to i8**
%Bo=load i8*,i8**%Bn,align 8
%Bp=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%Bq=bitcast i8*%Bo to i8**
call void@sml_write(i8*inreg%Bo,i8**inreg%Bq,i8*inreg%Bp)#0
%Br=call fastcc i8*@_SMLFN6String8toStringE(i8*inreg%Bk)
store i8*%Br,i8**%c,align 8
%Bs=call i8*@sml_alloc(i32 inreg 20)#0
%Bt=getelementptr inbounds i8,i8*%Bs,i64 -4
%Bu=bitcast i8*%Bt to i32*
store i32 1342177296,i32*%Bu,align 4
store i8*%Bs,i8**%d,align 8
%Bv=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%Bw=bitcast i8*%Bs to i8**
store i8*%Bv,i8**%Bw,align 8
%Bx=getelementptr inbounds i8,i8*%Bs,i64 8
%By=bitcast i8*%Bx to i8**
store i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,i8*,i32}>,<{[4x i8],i32,i8*,i8*,i32}>*@x,i64 0,i32 2)to i8*),i8**%By,align 8
%Bz=getelementptr inbounds i8,i8*%Bs,i64 16
%BA=bitcast i8*%Bz to i32*
store i32 3,i32*%BA,align 4
%BB=call i8*@sml_alloc(i32 inreg 20)#0
%BC=getelementptr inbounds i8,i8*%BB,i64 -4
%BD=bitcast i8*%BC to i32*
store i32 1342177296,i32*%BD,align 4
store i8*%BB,i8**%c,align 8
%BE=bitcast i8*%BB to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[16x i8]}>,<{[4x i8],i32,[16x i8]}>*@v,i64 0,i32 2,i64 0),i8**%BE,align 8
%BF=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%BG=getelementptr inbounds i8,i8*%BB,i64 8
%BH=bitcast i8*%BG to i8**
store i8*%BF,i8**%BH,align 8
%BI=getelementptr inbounds i8,i8*%BB,i64 16
%BJ=bitcast i8*%BI to i32*
store i32 3,i32*%BJ,align 4
%BK=call i8*@sml_alloc(i32 inreg 20)#0
%BL=bitcast i8*%BK to i32*
%BM=getelementptr inbounds i8,i8*%BK,i64 -4
%BN=bitcast i8*%BM to i32*
store i32 1342177296,i32*%BN,align 4
%BO=getelementptr inbounds i8,i8*%BK,i64 4
%BP=bitcast i8*%BO to i32*
store i32 0,i32*%BP,align 1
store i32 3,i32*%BL,align 4
%BQ=load i8*,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=getelementptr inbounds i8,i8*%BK,i64 16
%BU=bitcast i8*%BT to i32*
store i32 2,i32*%BU,align 4
ret i8*%BK
BV:
%BW=phi i32[%A2,%A0],[%Al,%Ah]
%BX=phi i8*[%AV,%A0],[%Aj,%Ah]
%BY=getelementptr inbounds i8,i8*%BX,i64 8
%BZ=bitcast i8*%BY to i8**
%B0=load i8*,i8**%BZ,align 8
store i8*%B0,i8**%d,align 8
%B1=icmp eq i32%BW,49
br i1%B1,label%B2,label%Ck
B2:
%B3=call i8*@sml_alloc(i32 inreg 28)#0
%B4=getelementptr inbounds i8,i8*%B3,i64 -4
%B5=bitcast i8*%B4 to i32*
store i32 1342177304,i32*%B5,align 4
store i8*%B3,i8**%e,align 8
%B6=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%B7=bitcast i8*%B3 to i8**
store i8*%B6,i8**%B7,align 8
%B8=load i8*,i8**%m,align 8
store i8*null,i8**%m,align 8
%B9=getelementptr inbounds i8,i8*%B3,i64 8
%Ca=bitcast i8*%B9 to i8**
store i8*%B8,i8**%Ca,align 8
%Cb=getelementptr inbounds i8,i8*%B3,i64 16
%Cc=bitcast i8*%Cb to i8**
store i8*null,i8**%Cc,align 8
%Cd=getelementptr inbounds i8,i8*%B3,i64 24
%Ce=bitcast i8*%Cd to i32*
store i32 7,i32*%Ce,align 4
%Cf=call i8*@sml_alloc(i32 inreg 20)#0
%Cg=getelementptr inbounds i8,i8*%Cf,i64 -4
%Ch=bitcast i8*%Cg to i32*
store i32 1342177296,i32*%Ch,align 4
%Ci=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%Cj=bitcast i8*%Cf to i8**
store i8*%Ci,i8**%Cj,align 8
br label%aRX
Ck:
%Cl=icmp ugt i32%BW,48
br i1%Cl,label%Ho,label%Cm
Cm:
store i8*null,i8**%m,align 8
%Cn=icmp eq i32%BW,48
br i1%Cn,label%Co,label%Gw
Co:
store i8*null,i8**%c,align 8
%Cp=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%B0)
%Cq=icmp eq i8*%Cp,null
br i1%Cq,label%Dd,label%Cr
Cr:
%Cs=bitcast i8*%Cp to i8**
%Ct=load i8*,i8**%Cs,align 8
%Cu=bitcast i8*%Ct to i32*
%Cv=load i32,i32*%Cu,align 4
%Cw=icmp eq i32%Cv,10
br i1%Cw,label%Cx,label%DW
Cx:
%Cy=getelementptr inbounds i8,i8*%Ct,i64 8
%Cz=bitcast i8*%Cy to i8**
%CA=load i8*,i8**%Cz,align 8
store i8*%CA,i8**%c,align 8
%CB=load i8**,i8***%o,align 8
%CC=load i8*,i8**%CB,align 8
%CD=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%CC)
%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
store i8*%CI,i8**%e,align 8
%CJ=load i8*,i8**%d,align 8
%CK=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%CJ)
%CL=call i8*@sml_alloc(i32 inreg 4)#0
%CM=bitcast i8*%CL to i32*
%CN=getelementptr inbounds i8,i8*%CL,i64 -4
%CO=bitcast i8*%CN to i32*
store i32 4,i32*%CO,align 4
store i32%CK,i32*%CM,align 4
%CP=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%CQ=call fastcc i8*%CG(i8*inreg%CP,i8*inreg%CL)
%CR=call i8*@sml_alloc(i32 inreg 20)#0
%CS=getelementptr inbounds i8,i8*%CR,i64 -4
%CT=bitcast i8*%CS to i32*
store i32 1342177296,i32*%CT,align 4
store i8*%CR,i8**%e,align 8
%CU=getelementptr inbounds i8,i8*%CR,i64 4
%CV=bitcast i8*%CU to i32*
store i32 0,i32*%CV,align 1
%CW=bitcast i8*%CR to i32*
store i32 10,i32*%CW,align 4
%CX=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%CY=getelementptr inbounds i8,i8*%CR,i64 8
%CZ=bitcast i8*%CY to i8**
store i8*%CX,i8**%CZ,align 8
%C0=getelementptr inbounds i8,i8*%CR,i64 16
%C1=bitcast i8*%C0 to i32*
store i32 2,i32*%C1,align 4
%C2=call i8*@sml_alloc(i32 inreg 12)#0
%C3=getelementptr inbounds i8,i8*%C2,i64 -4
%C4=bitcast i8*%C3 to i32*
store i32 1342177288,i32*%C4,align 4
%C5=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%C6=bitcast i8*%C2 to i8**
store i8*%C5,i8**%C6,align 8
%C7=getelementptr inbounds i8,i8*%C2,i64 8
%C8=bitcast i8*%C7 to i32*
store i32 1,i32*%C8,align 4
%C9=icmp eq i8*%C2,null
br i1%C9,label%Dd,label%Da
Da:
%Db=bitcast i8*%C5 to i32*
%Dc=load i32,i32*%Db,align 4
br label%DW
Dd:
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
%De=load i8*,i8**%f,align 8
%Df=getelementptr inbounds i8,i8*%De,i64 16
%Dg=bitcast i8*%Df to i8***
%Dh=load i8**,i8***%Dg,align 8
%Di=load i8*,i8**%Dh,align 8
store i8*%Di,i8**%c,align 8
%Dj=call i8*@sml_alloc(i32 inreg 20)#0
%Dk=getelementptr inbounds i8,i8*%Dj,i64 -4
%Dl=bitcast i8*%Dk to i32*
store i32 1342177296,i32*%Dl,align 4
%Dm=load i8*,i8**%d,align 8
%Dn=bitcast i8*%Dj to i8**
store i8*%Dm,i8**%Dn,align 8
%Do=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%Dp=getelementptr inbounds i8,i8*%Dj,i64 8
%Dq=bitcast i8*%Dp to i8**
store i8*%Do,i8**%Dq,align 8
%Dr=getelementptr inbounds i8,i8*%Dj,i64 16
%Ds=bitcast i8*%Dr to i32*
store i32 3,i32*%Ds,align 4
%Dt=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%Dj)
%Du=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%Dt)
store i8*%Du,i8**%c,align 8
%Dv=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%Dw=getelementptr inbounds i8,i8*%Dv,i64 16
%Dx=bitcast i8*%Dw to i8**
%Dy=load i8*,i8**%Dx,align 8
%Dz=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%DA=bitcast i8*%Dy to i8**
call void@sml_write(i8*inreg%Dy,i8**inreg%DA,i8*inreg%Dz)#0
%DB=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 1,i32 inreg 8)
%DC=getelementptr inbounds i8,i8*%DB,i64 16
%DD=bitcast i8*%DC to i8*(i8*,i8*)**
%DE=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%DD,align 8
%DF=bitcast i8*%DB to i8**
%DG=load i8*,i8**%DF,align 8
store i8*%DG,i8**%d,align 8
%DH=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%DI=call fastcc i8*@_SMLFN6IntInf10fromStringE(i8*inreg%DH)
%DJ=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%DK=call fastcc i8*%DE(i8*inreg%DJ,i8*inreg%DI)
store i8*%DK,i8**%c,align 8
%DL=call i8*@sml_alloc(i32 inreg 20)#0
%DM=bitcast i8*%DL to i32*
%DN=getelementptr inbounds i8,i8*%DL,i64 -4
%DO=bitcast i8*%DN to i32*
store i32 1342177296,i32*%DO,align 4
%DP=getelementptr inbounds i8,i8*%DL,i64 4
%DQ=bitcast i8*%DP to i32*
store i32 0,i32*%DQ,align 1
store i32 5,i32*%DM,align 4
%DR=load i8*,i8**%c,align 8
%DS=getelementptr inbounds i8,i8*%DL,i64 8
%DT=bitcast i8*%DS to i8**
store i8*%DR,i8**%DT,align 8
%DU=getelementptr inbounds i8,i8*%DL,i64 16
%DV=bitcast i8*%DU to i32*
store i32 2,i32*%DV,align 4
ret i8*%DL
DW:
%DX=phi i32[%Dc,%Da],[%Cv,%Cr]
%DY=phi i8*[%C5,%Da],[%Ct,%Cr]
%DZ=getelementptr inbounds i8,i8*%DY,i64 8
%D0=bitcast i8*%DZ to i8**
%D1=load i8*,i8**%D0,align 8
store i8*%D1,i8**%c,align 8
%D2=icmp eq i32%DX,69
br i1%D2,label%D3,label%Em
D3:
store i8*null,i8**%i,align 8
store i8*null,i8**%k,align 8
%D4=call i8*@sml_alloc(i32 inreg 28)#0
%D5=getelementptr inbounds i8,i8*%D4,i64 -4
%D6=bitcast i8*%D5 to i32*
store i32 1342177304,i32*%D6,align 4
store i8*%D4,i8**%e,align 8
%D7=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%D8=bitcast i8*%D4 to i8**
store i8*%D7,i8**%D8,align 8
%D9=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%Ea=getelementptr inbounds i8,i8*%D4,i64 8
%Eb=bitcast i8*%Ea to i8**
store i8*%D9,i8**%Eb,align 8
%Ec=getelementptr inbounds i8,i8*%D4,i64 16
%Ed=bitcast i8*%Ec to i8**
store i8*null,i8**%Ed,align 8
%Ee=getelementptr inbounds i8,i8*%D4,i64 24
%Ef=bitcast i8*%Ee to i32*
store i32 7,i32*%Ef,align 4
%Eg=call i8*@sml_alloc(i32 inreg 20)#0
%Eh=getelementptr inbounds i8,i8*%Eg,i64 -4
%Ei=bitcast i8*%Eh to i32*
store i32 1342177296,i32*%Ei,align 4
%Ej=load i8*,i8**%c,align 8
%Ek=bitcast i8*%Eg to i8**
store i8*%Ej,i8**%Ek,align 8
%El=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
br label%btC
Em:
%En=icmp ugt i32%DX,68
br i1%En,label%Fs,label%Eo
Eo:
store i8*null,i8**%j,align 8
%Ep=icmp eq i32%DX,46
br i1%Ep,label%Eq,label%EJ
Eq:
%Er=call i8*@sml_alloc(i32 inreg 28)#0
%Es=getelementptr inbounds i8,i8*%Er,i64 -4
%Et=bitcast i8*%Es to i32*
store i32 1342177304,i32*%Et,align 4
store i8*%Er,i8**%e,align 8
%Eu=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%Ev=bitcast i8*%Er to i8**
store i8*%Eu,i8**%Ev,align 8
%Ew=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%Ex=getelementptr inbounds i8,i8*%Er,i64 8
%Ey=bitcast i8*%Ex to i8**
store i8*%Ew,i8**%Ey,align 8
%Ez=getelementptr inbounds i8,i8*%Er,i64 16
%EA=bitcast i8*%Ez to i8**
store i8*null,i8**%EA,align 8
%EB=getelementptr inbounds i8,i8*%Er,i64 24
%EC=bitcast i8*%EB to i32*
store i32 7,i32*%EC,align 4
%ED=call i8*@sml_alloc(i32 inreg 20)#0
%EE=getelementptr inbounds i8,i8*%ED,i64 -4
%EF=bitcast i8*%EE to i32*
store i32 1342177296,i32*%EF,align 4
%EG=load i8*,i8**%c,align 8
%EH=bitcast i8*%ED to i8**
store i8*%EG,i8**%EH,align 8
%EI=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
br label%be0
EJ:
store i8*null,i8**%g,align 8
store i8*null,i8**%i,align 8
store i8*null,i8**%k,align 8
%EK=load i8*,i8**%f,align 8
%EL=getelementptr inbounds i8,i8*%EK,i64 16
%EM=bitcast i8*%EL to i8***
%EN=load i8**,i8***%EM,align 8
%EO=load i8*,i8**%EN,align 8
store i8*%EO,i8**%c,align 8
%EP=call i8*@sml_alloc(i32 inreg 20)#0
%EQ=getelementptr inbounds i8,i8*%EP,i64 -4
%ER=bitcast i8*%EQ to i32*
store i32 1342177296,i32*%ER,align 4
%ES=load i8*,i8**%d,align 8
%ET=bitcast i8*%EP to i8**
store i8*%ES,i8**%ET,align 8
%EU=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%EV=getelementptr inbounds i8,i8*%EP,i64 8
%EW=bitcast i8*%EV to i8**
store i8*%EU,i8**%EW,align 8
%EX=getelementptr inbounds i8,i8*%EP,i64 16
%EY=bitcast i8*%EX to i32*
store i32 3,i32*%EY,align 4
%EZ=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%EP)
%E0=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%EZ)
store i8*%E0,i8**%c,align 8
%E1=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%E2=getelementptr inbounds i8,i8*%E1,i64 16
%E3=bitcast i8*%E2 to i8**
%E4=load i8*,i8**%E3,align 8
%E5=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%E6=bitcast i8*%E4 to i8**
call void@sml_write(i8*inreg%E4,i8**inreg%E6,i8*inreg%E5)#0
%E7=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 1,i32 inreg 8)
%E8=getelementptr inbounds i8,i8*%E7,i64 16
%E9=bitcast i8*%E8 to i8*(i8*,i8*)**
%Fa=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%E9,align 8
%Fb=bitcast i8*%E7 to i8**
%Fc=load i8*,i8**%Fb,align 8
store i8*%Fc,i8**%d,align 8
%Fd=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%Fe=call fastcc i8*@_SMLFN6IntInf10fromStringE(i8*inreg%Fd)
%Ff=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%Fg=call fastcc i8*%Fa(i8*inreg%Ff,i8*inreg%Fe)
store i8*%Fg,i8**%c,align 8
%Fh=call i8*@sml_alloc(i32 inreg 20)#0
%Fi=bitcast i8*%Fh to i32*
%Fj=getelementptr inbounds i8,i8*%Fh,i64 -4
%Fk=bitcast i8*%Fj to i32*
store i32 1342177296,i32*%Fk,align 4
%Fl=getelementptr inbounds i8,i8*%Fh,i64 4
%Fm=bitcast i8*%Fl to i32*
store i32 0,i32*%Fm,align 1
store i32 5,i32*%Fi,align 4
%Fn=load i8*,i8**%c,align 8
%Fo=getelementptr inbounds i8,i8*%Fh,i64 8
%Fp=bitcast i8*%Fo to i8**
store i8*%Fn,i8**%Fp,align 8
%Fq=getelementptr inbounds i8,i8*%Fh,i64 16
%Fr=bitcast i8*%Fq to i32*
store i32 2,i32*%Fr,align 4
ret i8*%Fh
Fs:
store i8*null,i8**%i,align 8
store i8*null,i8**%k,align 8
%Ft=icmp eq i32%DX,101
br i1%Ft,label%Fu,label%FN
Fu:
%Fv=call i8*@sml_alloc(i32 inreg 28)#0
%Fw=getelementptr inbounds i8,i8*%Fv,i64 -4
%Fx=bitcast i8*%Fw to i32*
store i32 1342177304,i32*%Fx,align 4
store i8*%Fv,i8**%e,align 8
%Fy=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%Fz=bitcast i8*%Fv to i8**
store i8*%Fy,i8**%Fz,align 8
%FA=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%FB=getelementptr inbounds i8,i8*%Fv,i64 8
%FC=bitcast i8*%FB to i8**
store i8*%FA,i8**%FC,align 8
%FD=getelementptr inbounds i8,i8*%Fv,i64 16
%FE=bitcast i8*%FD to i8**
store i8*null,i8**%FE,align 8
%FF=getelementptr inbounds i8,i8*%Fv,i64 24
%FG=bitcast i8*%FF to i32*
store i32 7,i32*%FG,align 4
%FH=call i8*@sml_alloc(i32 inreg 20)#0
%FI=getelementptr inbounds i8,i8*%FH,i64 -4
%FJ=bitcast i8*%FI to i32*
store i32 1342177296,i32*%FJ,align 4
%FK=load i8*,i8**%c,align 8
%FL=bitcast i8*%FH to i8**
store i8*%FK,i8**%FL,align 8
%FM=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
br label%btC
FN:
store i8*null,i8**%g,align 8
store i8*null,i8**%j,align 8
%FO=load i8*,i8**%f,align 8
%FP=getelementptr inbounds i8,i8*%FO,i64 16
%FQ=bitcast i8*%FP to i8***
%FR=load i8**,i8***%FQ,align 8
%FS=load i8*,i8**%FR,align 8
store i8*%FS,i8**%c,align 8
%FT=call i8*@sml_alloc(i32 inreg 20)#0
%FU=getelementptr inbounds i8,i8*%FT,i64 -4
%FV=bitcast i8*%FU to i32*
store i32 1342177296,i32*%FV,align 4
%FW=load i8*,i8**%d,align 8
%FX=bitcast i8*%FT to i8**
store i8*%FW,i8**%FX,align 8
%FY=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%FZ=getelementptr inbounds i8,i8*%FT,i64 8
%F0=bitcast i8*%FZ to i8**
store i8*%FY,i8**%F0,align 8
%F1=getelementptr inbounds i8,i8*%FT,i64 16
%F2=bitcast i8*%F1 to i32*
store i32 3,i32*%F2,align 4
%F3=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%FT)
%F4=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%F3)
store i8*%F4,i8**%c,align 8
%F5=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%F6=getelementptr inbounds i8,i8*%F5,i64 16
%F7=bitcast i8*%F6 to i8**
%F8=load i8*,i8**%F7,align 8
%F9=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%Ga=bitcast i8*%F8 to i8**
call void@sml_write(i8*inreg%F8,i8**inreg%Ga,i8*inreg%F9)#0
%Gb=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 1,i32 inreg 8)
%Gc=getelementptr inbounds i8,i8*%Gb,i64 16
%Gd=bitcast i8*%Gc to i8*(i8*,i8*)**
%Ge=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%Gd,align 8
%Gf=bitcast i8*%Gb to i8**
%Gg=load i8*,i8**%Gf,align 8
store i8*%Gg,i8**%d,align 8
%Gh=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%Gi=call fastcc i8*@_SMLFN6IntInf10fromStringE(i8*inreg%Gh)
%Gj=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%Gk=call fastcc i8*%Ge(i8*inreg%Gj,i8*inreg%Gi)
store i8*%Gk,i8**%c,align 8
%Gl=call i8*@sml_alloc(i32 inreg 20)#0
%Gm=bitcast i8*%Gl to i32*
%Gn=getelementptr inbounds i8,i8*%Gl,i64 -4
%Go=bitcast i8*%Gn to i32*
store i32 1342177296,i32*%Go,align 4
%Gp=getelementptr inbounds i8,i8*%Gl,i64 4
%Gq=bitcast i8*%Gp to i32*
store i32 0,i32*%Gq,align 1
store i32 5,i32*%Gm,align 4
%Gr=load i8*,i8**%c,align 8
%Gs=getelementptr inbounds i8,i8*%Gl,i64 8
%Gt=bitcast i8*%Gs to i8**
store i8*%Gr,i8**%Gt,align 8
%Gu=getelementptr inbounds i8,i8*%Gl,i64 16
%Gv=bitcast i8*%Gu to i32*
store i32 2,i32*%Gv,align 4
ret i8*%Gl
Gw:
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
%Gx=load i8*,i8**%f,align 8
%Gy=getelementptr inbounds i8,i8*%Gx,i64 16
%Gz=bitcast i8*%Gy to i8***
%GA=load i8**,i8***%Gz,align 8
%GB=load i8*,i8**%GA,align 8
store i8*%GB,i8**%d,align 8
%GC=call i8*@sml_alloc(i32 inreg 20)#0
%GD=getelementptr inbounds i8,i8*%GC,i64 -4
%GE=bitcast i8*%GD to i32*
store i32 1342177296,i32*%GE,align 4
%GF=load i8*,i8**%c,align 8
%GG=bitcast i8*%GC to i8**
store i8*%GF,i8**%GG,align 8
%GH=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%GI=getelementptr inbounds i8,i8*%GC,i64 8
%GJ=bitcast i8*%GI to i8**
store i8*%GH,i8**%GJ,align 8
%GK=getelementptr inbounds i8,i8*%GC,i64 16
%GL=bitcast i8*%GK to i32*
store i32 3,i32*%GL,align 4
%GM=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%GC)
%GN=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%GM)
%GO=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%GP=getelementptr inbounds i8,i8*%GO,i64 16
%GQ=bitcast i8*%GP to i8**
%GR=load i8*,i8**%GQ,align 8
%GS=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%GT=bitcast i8*%GR to i8**
call void@sml_write(i8*inreg%GR,i8**inreg%GT,i8*inreg%GS)#0
%GU=call fastcc i8*@_SMLFN6String8toStringE(i8*inreg%GN)
store i8*%GU,i8**%c,align 8
%GV=call i8*@sml_alloc(i32 inreg 20)#0
%GW=getelementptr inbounds i8,i8*%GV,i64 -4
%GX=bitcast i8*%GW to i32*
store i32 1342177296,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=getelementptr inbounds i8,i8*%GV,i64 8
%G1=bitcast i8*%G0 to i8**
store i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,i8*,i32}>,<{[4x i8],i32,i8*,i8*,i32}>*@x,i64 0,i32 2)to i8*),i8**%G1,align 8
%G2=getelementptr inbounds i8,i8*%GV,i64 16
%G3=bitcast i8*%G2 to i32*
store i32 3,i32*%G3,align 4
%G4=call i8*@sml_alloc(i32 inreg 20)#0
%G5=getelementptr inbounds i8,i8*%G4,i64 -4
%G6=bitcast i8*%G5 to i32*
store i32 1342177296,i32*%G6,align 4
store i8*%G4,i8**%c,align 8
%G7=bitcast i8*%G4 to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[16x i8]}>,<{[4x i8],i32,[16x i8]}>*@v,i64 0,i32 2,i64 0),i8**%G7,align 8
%G8=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%G9=getelementptr inbounds i8,i8*%G4,i64 8
%Ha=bitcast i8*%G9 to i8**
store i8*%G8,i8**%Ha,align 8
%Hb=getelementptr inbounds i8,i8*%G4,i64 16
%Hc=bitcast i8*%Hb to i32*
store i32 3,i32*%Hc,align 4
%Hd=call i8*@sml_alloc(i32 inreg 20)#0
%He=bitcast i8*%Hd to i32*
%Hf=getelementptr inbounds i8,i8*%Hd,i64 -4
%Hg=bitcast i8*%Hf to i32*
store i32 1342177296,i32*%Hg,align 4
%Hh=getelementptr inbounds i8,i8*%Hd,i64 4
%Hi=bitcast i8*%Hh to i32*
store i32 0,i32*%Hi,align 1
store i32 3,i32*%He,align 4
%Hj=load i8*,i8**%c,align 8
%Hk=getelementptr inbounds i8,i8*%Hd,i64 8
%Hl=bitcast i8*%Hk to i8**
store i8*%Hj,i8**%Hl,align 8
%Hm=getelementptr inbounds i8,i8*%Hd,i64 16
%Hn=bitcast i8*%Hm to i32*
store i32 2,i32*%Hn,align 4
ret i8*%Hd
Ho:
%Hp=icmp ugt i32%BW,57
br i1%Hp,label%HI,label%Hq
Hq:
%Hr=call i8*@sml_alloc(i32 inreg 28)#0
%Hs=getelementptr inbounds i8,i8*%Hr,i64 -4
%Ht=bitcast i8*%Hs to i32*
store i32 1342177304,i32*%Ht,align 4
store i8*%Hr,i8**%e,align 8
%Hu=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%Hv=bitcast i8*%Hr to i8**
store i8*%Hu,i8**%Hv,align 8
%Hw=load i8*,i8**%m,align 8
store i8*null,i8**%m,align 8
%Hx=getelementptr inbounds i8,i8*%Hr,i64 8
%Hy=bitcast i8*%Hx to i8**
store i8*%Hw,i8**%Hy,align 8
%Hz=getelementptr inbounds i8,i8*%Hr,i64 16
%HA=bitcast i8*%Hz to i8**
store i8*null,i8**%HA,align 8
%HB=getelementptr inbounds i8,i8*%Hr,i64 24
%HC=bitcast i8*%HB to i32*
store i32 7,i32*%HC,align 4
%HD=call i8*@sml_alloc(i32 inreg 20)#0
%HE=getelementptr inbounds i8,i8*%HD,i64 -4
%HF=bitcast i8*%HE to i32*
store i32 1342177296,i32*%HF,align 4
%HG=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%HH=bitcast i8*%HD to i8**
store i8*%HG,i8**%HH,align 8
br label%aRX
HI:
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**%m,align 8
%HJ=load i8*,i8**%f,align 8
%HK=getelementptr inbounds i8,i8*%HJ,i64 16
%HL=bitcast i8*%HK to i8***
%HM=load i8**,i8***%HL,align 8
%HN=load i8*,i8**%HM,align 8
store i8*%HN,i8**%d,align 8
%HO=call i8*@sml_alloc(i32 inreg 20)#0
%HP=getelementptr inbounds i8,i8*%HO,i64 -4
%HQ=bitcast i8*%HP to i32*
store i32 1342177296,i32*%HQ,align 4
%HR=load i8*,i8**%c,align 8
%HS=bitcast i8*%HO to i8**
store i8*%HR,i8**%HS,align 8
%HT=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%HU=getelementptr inbounds i8,i8*%HO,i64 8
%HV=bitcast i8*%HU to i8**
store i8*%HT,i8**%HV,align 8
%HW=getelementptr inbounds i8,i8*%HO,i64 16
%HX=bitcast i8*%HW to i32*
store i32 3,i32*%HX,align 4
%HY=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%HO)
%HZ=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%HY)
%H0=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%H1=getelementptr inbounds i8,i8*%H0,i64 16
%H2=bitcast i8*%H1 to i8**
%H3=load i8*,i8**%H2,align 8
%H4=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%H5=bitcast i8*%H3 to i8**
call void@sml_write(i8*inreg%H3,i8**inreg%H5,i8*inreg%H4)#0
%H6=call fastcc i8*@_SMLFN6String8toStringE(i8*inreg%HZ)
store i8*%H6,i8**%c,align 8
%H7=call i8*@sml_alloc(i32 inreg 20)#0
%H8=getelementptr inbounds i8,i8*%H7,i64 -4
%H9=bitcast i8*%H8 to i32*
store i32 1342177296,i32*%H9,align 4
store i8*%H7,i8**%d,align 8
%Ia=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%Ib=bitcast i8*%H7 to i8**
store i8*%Ia,i8**%Ib,align 8
%Ic=getelementptr inbounds i8,i8*%H7,i64 8
%Id=bitcast i8*%Ic to i8**
store i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,i8*,i32}>,<{[4x i8],i32,i8*,i8*,i32}>*@x,i64 0,i32 2)to i8*),i8**%Id,align 8
%Ie=getelementptr inbounds i8,i8*%H7,i64 16
%If=bitcast i8*%Ie to i32*
store i32 3,i32*%If,align 4
%Ig=call i8*@sml_alloc(i32 inreg 20)#0
%Ih=getelementptr inbounds i8,i8*%Ig,i64 -4
%Ii=bitcast i8*%Ih to i32*
store i32 1342177296,i32*%Ii,align 4
store i8*%Ig,i8**%c,align 8
%Ij=bitcast i8*%Ig to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[16x i8]}>,<{[4x i8],i32,[16x i8]}>*@v,i64 0,i32 2,i64 0),i8**%Ij,align 8
%Ik=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%Il=getelementptr inbounds i8,i8*%Ig,i64 8
%Im=bitcast i8*%Il to i8**
store i8*%Ik,i8**%Im,align 8
%In=getelementptr inbounds i8,i8*%Ig,i64 16
%Io=bitcast i8*%In to i32*
store i32 3,i32*%Io,align 4
%Ip=call i8*@sml_alloc(i32 inreg 20)#0
%Iq=bitcast i8*%Ip to i32*
%Ir=getelementptr inbounds i8,i8*%Ip,i64 -4
%Is=bitcast i8*%Ir to i32*
store i32 1342177296,i32*%Is,align 4
%It=getelementptr inbounds i8,i8*%Ip,i64 4
%Iu=bitcast i8*%It to i32*
store i32 0,i32*%Iu,align 1
store i32 3,i32*%Iq,align 4
%Iv=load i8*,i8**%c,align 8
%Iw=getelementptr inbounds i8,i8*%Ip,i64 8
%Ix=bitcast i8*%Iw to i8**
store i8*%Iv,i8**%Ix,align 8
%Iy=getelementptr inbounds i8,i8*%Ip,i64 16
%Iz=bitcast i8*%Iy to i32*
store i32 2,i32*%Iz,align 4
ret i8*%Ip
IA:
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**%m,align 8
%IB=call i8*@sml_alloc(i32 inreg 20)#0
%IC=getelementptr inbounds i8,i8*%IB,i64 -4
%ID=bitcast i8*%IC to i32*
store i32 1342177296,i32*%ID,align 4
%IE=load i8*,i8**%c,align 8
br label%aHg
IF:
switch i32%v4,label%PR[
i32 48,label%IG
i32 47,label%MO
]
IG:
store i8*null,i8**%n,align 8
store i8*null,i8**%m,align 8
%IH=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%v7)
%II=icmp eq i8*%IH,null
br i1%II,label%Jv,label%IJ
IJ:
%IK=bitcast i8*%IH to i8**
%IL=load i8*,i8**%IK,align 8
%IM=bitcast i8*%IL to i32*
%IN=load i32,i32*%IM,align 4
%IO=icmp eq i32%IN,10
br i1%IO,label%IP,label%Ke
IP:
%IQ=getelementptr inbounds i8,i8*%IL,i64 8
%IR=bitcast i8*%IQ to i8**
%IS=load i8*,i8**%IR,align 8
store i8*%IS,i8**%d,align 8
%IT=load i8**,i8***%o,align 8
%IU=load i8*,i8**%IT,align 8
%IV=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%IU)
%IW=getelementptr inbounds i8,i8*%IV,i64 16
%IX=bitcast i8*%IW to i8*(i8*,i8*)**
%IY=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%IX,align 8
%IZ=bitcast i8*%IV to i8**
%I0=load i8*,i8**%IZ,align 8
store i8*%I0,i8**%e,align 8
%I1=load i8*,i8**%c,align 8
%I2=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%I1)
%I3=call i8*@sml_alloc(i32 inreg 4)#0
%I4=bitcast i8*%I3 to i32*
%I5=getelementptr inbounds i8,i8*%I3,i64 -4
%I6=bitcast i8*%I5 to i32*
store i32 4,i32*%I6,align 4
store i32%I2,i32*%I4,align 4
%I7=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%I8=call fastcc i8*%IY(i8*inreg%I7,i8*inreg%I3)
%I9=call i8*@sml_alloc(i32 inreg 20)#0
%Ja=getelementptr inbounds i8,i8*%I9,i64 -4
%Jb=bitcast i8*%Ja to i32*
store i32 1342177296,i32*%Jb,align 4
store i8*%I9,i8**%e,align 8
%Jc=getelementptr inbounds i8,i8*%I9,i64 4
%Jd=bitcast i8*%Jc to i32*
store i32 0,i32*%Jd,align 1
%Je=bitcast i8*%I9 to i32*
store i32 10,i32*%Je,align 4
%Jf=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%Jg=getelementptr inbounds i8,i8*%I9,i64 8
%Jh=bitcast i8*%Jg to i8**
store i8*%Jf,i8**%Jh,align 8
%Ji=getelementptr inbounds i8,i8*%I9,i64 16
%Jj=bitcast i8*%Ji to i32*
store i32 2,i32*%Jj,align 4
%Jk=call i8*@sml_alloc(i32 inreg 12)#0
%Jl=getelementptr inbounds i8,i8*%Jk,i64 -4
%Jm=bitcast i8*%Jl to i32*
store i32 1342177288,i32*%Jm,align 4
%Jn=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%Jo=bitcast i8*%Jk to i8**
store i8*%Jn,i8**%Jo,align 8
%Jp=getelementptr inbounds i8,i8*%Jk,i64 8
%Jq=bitcast i8*%Jp to i32*
store i32 1,i32*%Jq,align 4
%Jr=icmp eq i8*%Jk,null
br i1%Jr,label%Jv,label%Js
Js:
%Jt=bitcast i8*%Jn to i32*
%Ju=load i32,i32*%Jt,align 4
br label%Ke
Jv:
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
%Jw=load i8*,i8**%f,align 8
%Jx=getelementptr inbounds i8,i8*%Jw,i64 16
%Jy=bitcast i8*%Jx to i8***
%Jz=load i8**,i8***%Jy,align 8
%JA=load i8*,i8**%Jz,align 8
store i8*%JA,i8**%d,align 8
%JB=call i8*@sml_alloc(i32 inreg 20)#0
%JC=getelementptr inbounds i8,i8*%JB,i64 -4
%JD=bitcast i8*%JC to i32*
store i32 1342177296,i32*%JD,align 4
%JE=load i8*,i8**%c,align 8
%JF=bitcast i8*%JB to i8**
store i8*%JE,i8**%JF,align 8
%JG=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%JH=getelementptr inbounds i8,i8*%JB,i64 8
%JI=bitcast i8*%JH to i8**
store i8*%JG,i8**%JI,align 8
%JJ=getelementptr inbounds i8,i8*%JB,i64 16
%JK=bitcast i8*%JJ to i32*
store i32 3,i32*%JK,align 4
%JL=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%JB)
%JM=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%JL)
store i8*%JM,i8**%d,align 8
%JN=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%JO=getelementptr inbounds i8,i8*%JN,i64 16
%JP=bitcast i8*%JO to i8**
%JQ=load i8*,i8**%JP,align 8
%JR=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%JS=bitcast i8*%JQ to i8**
call void@sml_write(i8*inreg%JQ,i8**inreg%JS,i8*inreg%JR)#0
%JT=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 1,i32 inreg 8)
%JU=getelementptr inbounds i8,i8*%JT,i64 16
%JV=bitcast i8*%JU to i8*(i8*,i8*)**
%JW=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%JV,align 8
%JX=bitcast i8*%JT to i8**
%JY=load i8*,i8**%JX,align 8
store i8*%JY,i8**%c,align 8
%JZ=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%J0=call fastcc i8*@_SMLFN6IntInf10fromStringE(i8*inreg%JZ)
%J1=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%J2=call fastcc i8*%JW(i8*inreg%J1,i8*inreg%J0)
store i8*%J2,i8**%c,align 8
%J3=call i8*@sml_alloc(i32 inreg 20)#0
%J4=bitcast i8*%J3 to i32*
%J5=getelementptr inbounds i8,i8*%J3,i64 -4
%J6=bitcast i8*%J5 to i32*
store i32 1342177296,i32*%J6,align 4
%J7=getelementptr inbounds i8,i8*%J3,i64 4
%J8=bitcast i8*%J7 to i32*
store i32 0,i32*%J8,align 1
store i32 5,i32*%J4,align 4
%J9=load i8*,i8**%c,align 8
%Ka=getelementptr inbounds i8,i8*%J3,i64 8
%Kb=bitcast i8*%Ka to i8**
store i8*%J9,i8**%Kb,align 8
%Kc=getelementptr inbounds i8,i8*%J3,i64 16
%Kd=bitcast i8*%Kc to i32*
store i32 2,i32*%Kd,align 4
ret i8*%J3
Ke:
%Kf=phi i32[%Ju,%Js],[%IN,%IJ]
%Kg=phi i8*[%Jn,%Js],[%IL,%IJ]
%Kh=getelementptr inbounds i8,i8*%Kg,i64 8
%Ki=bitcast i8*%Kh to i8**
%Kj=load i8*,i8**%Ki,align 8
store i8*%Kj,i8**%d,align 8
%Kk=icmp eq i32%Kf,69
br i1%Kk,label%Kl,label%KE
Kl:
store i8*null,i8**%i,align 8
store i8*null,i8**%k,align 8
%Km=call i8*@sml_alloc(i32 inreg 28)#0
%Kn=getelementptr inbounds i8,i8*%Km,i64 -4
%Ko=bitcast i8*%Kn to i32*
store i32 1342177304,i32*%Ko,align 4
store i8*%Km,i8**%e,align 8
%Kp=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%Kq=bitcast i8*%Km to i8**
store i8*%Kp,i8**%Kq,align 8
%Kr=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%Ks=getelementptr inbounds i8,i8*%Km,i64 8
%Kt=bitcast i8*%Ks to i8**
store i8*%Kr,i8**%Kt,align 8
%Ku=getelementptr inbounds i8,i8*%Km,i64 16
%Kv=bitcast i8*%Ku to i8**
store i8*null,i8**%Kv,align 8
%Kw=getelementptr inbounds i8,i8*%Km,i64 24
%Kx=bitcast i8*%Kw to i32*
store i32 7,i32*%Kx,align 4
%Ky=call i8*@sml_alloc(i32 inreg 20)#0
%Kz=getelementptr inbounds i8,i8*%Ky,i64 -4
%KA=bitcast i8*%Kz to i32*
store i32 1342177296,i32*%KA,align 4
%KB=load i8*,i8**%d,align 8
%KC=bitcast i8*%Ky to i8**
store i8*%KB,i8**%KC,align 8
%KD=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
br label%btC
KE:
%KF=icmp ugt i32%Kf,68
br i1%KF,label%LK,label%KG
KG:
store i8*null,i8**%j,align 8
%KH=icmp eq i32%Kf,46
br i1%KH,label%KI,label%K1
KI:
%KJ=call i8*@sml_alloc(i32 inreg 28)#0
%KK=getelementptr inbounds i8,i8*%KJ,i64 -4
%KL=bitcast i8*%KK to i32*
store i32 1342177304,i32*%KL,align 4
store i8*%KJ,i8**%e,align 8
%KM=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%KN=bitcast i8*%KJ to i8**
store i8*%KM,i8**%KN,align 8
%KO=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%KP=getelementptr inbounds i8,i8*%KJ,i64 8
%KQ=bitcast i8*%KP to i8**
store i8*%KO,i8**%KQ,align 8
%KR=getelementptr inbounds i8,i8*%KJ,i64 16
%KS=bitcast i8*%KR to i8**
store i8*null,i8**%KS,align 8
%KT=getelementptr inbounds i8,i8*%KJ,i64 24
%KU=bitcast i8*%KT to i32*
store i32 7,i32*%KU,align 4
%KV=call i8*@sml_alloc(i32 inreg 20)#0
%KW=getelementptr inbounds i8,i8*%KV,i64 -4
%KX=bitcast i8*%KW to i32*
store i32 1342177296,i32*%KX,align 4
%KY=load i8*,i8**%d,align 8
%KZ=bitcast i8*%KV to i8**
store i8*%KY,i8**%KZ,align 8
%K0=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
br label%be0
K1:
store i8*null,i8**%g,align 8
store i8*null,i8**%i,align 8
store i8*null,i8**%k,align 8
%K2=load i8*,i8**%f,align 8
%K3=getelementptr inbounds i8,i8*%K2,i64 16
%K4=bitcast i8*%K3 to i8***
%K5=load i8**,i8***%K4,align 8
%K6=load i8*,i8**%K5,align 8
store i8*%K6,i8**%d,align 8
%K7=call i8*@sml_alloc(i32 inreg 20)#0
%K8=getelementptr inbounds i8,i8*%K7,i64 -4
%K9=bitcast i8*%K8 to i32*
store i32 1342177296,i32*%K9,align 4
%La=load i8*,i8**%c,align 8
%Lb=bitcast i8*%K7 to i8**
store i8*%La,i8**%Lb,align 8
%Lc=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%Ld=getelementptr inbounds i8,i8*%K7,i64 8
%Le=bitcast i8*%Ld to i8**
store i8*%Lc,i8**%Le,align 8
%Lf=getelementptr inbounds i8,i8*%K7,i64 16
%Lg=bitcast i8*%Lf to i32*
store i32 3,i32*%Lg,align 4
%Lh=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%K7)
%Li=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%Lh)
store i8*%Li,i8**%d,align 8
%Lj=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%Lk=getelementptr inbounds i8,i8*%Lj,i64 16
%Ll=bitcast i8*%Lk to i8**
%Lm=load i8*,i8**%Ll,align 8
%Ln=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%Lo=bitcast i8*%Lm to i8**
call void@sml_write(i8*inreg%Lm,i8**inreg%Lo,i8*inreg%Ln)#0
%Lp=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 1,i32 inreg 8)
%Lq=getelementptr inbounds i8,i8*%Lp,i64 16
%Lr=bitcast i8*%Lq to i8*(i8*,i8*)**
%Ls=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%Lr,align 8
%Lt=bitcast i8*%Lp to i8**
%Lu=load i8*,i8**%Lt,align 8
store i8*%Lu,i8**%c,align 8
%Lv=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%Lw=call fastcc i8*@_SMLFN6IntInf10fromStringE(i8*inreg%Lv)
%Lx=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%Ly=call fastcc i8*%Ls(i8*inreg%Lx,i8*inreg%Lw)
store i8*%Ly,i8**%c,align 8
%Lz=call i8*@sml_alloc(i32 inreg 20)#0
%LA=bitcast i8*%Lz to i32*
%LB=getelementptr inbounds i8,i8*%Lz,i64 -4
%LC=bitcast i8*%LB to i32*
store i32 1342177296,i32*%LC,align 4
%LD=getelementptr inbounds i8,i8*%Lz,i64 4
%LE=bitcast i8*%LD to i32*
store i32 0,i32*%LE,align 1
store i32 5,i32*%LA,align 4
%LF=load i8*,i8**%c,align 8
%LG=getelementptr inbounds i8,i8*%Lz,i64 8
%LH=bitcast i8*%LG to i8**
store i8*%LF,i8**%LH,align 8
%LI=getelementptr inbounds i8,i8*%Lz,i64 16
%LJ=bitcast i8*%LI to i32*
store i32 2,i32*%LJ,align 4
ret i8*%Lz
LK:
store i8*null,i8**%i,align 8
store i8*null,i8**%k,align 8
%LL=icmp eq i32%Kf,101
br i1%LL,label%LM,label%L5
LM:
%LN=call i8*@sml_alloc(i32 inreg 28)#0
%LO=getelementptr inbounds i8,i8*%LN,i64 -4
%LP=bitcast i8*%LO to i32*
store i32 1342177304,i32*%LP,align 4
store i8*%LN,i8**%e,align 8
%LQ=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%LR=bitcast i8*%LN to i8**
store i8*%LQ,i8**%LR,align 8
%LS=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%LT=getelementptr inbounds i8,i8*%LN,i64 8
%LU=bitcast i8*%LT to i8**
store i8*%LS,i8**%LU,align 8
%LV=getelementptr inbounds i8,i8*%LN,i64 16
%LW=bitcast i8*%LV to i8**
store i8*null,i8**%LW,align 8
%LX=getelementptr inbounds i8,i8*%LN,i64 24
%LY=bitcast i8*%LX to i32*
store i32 7,i32*%LY,align 4
%LZ=call i8*@sml_alloc(i32 inreg 20)#0
%L0=getelementptr inbounds i8,i8*%LZ,i64 -4
%L1=bitcast i8*%L0 to i32*
store i32 1342177296,i32*%L1,align 4
%L2=load i8*,i8**%d,align 8
%L3=bitcast i8*%LZ to i8**
store i8*%L2,i8**%L3,align 8
%L4=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
br label%btC
L5:
store i8*null,i8**%g,align 8
store i8*null,i8**%j,align 8
%L6=load i8*,i8**%f,align 8
%L7=getelementptr inbounds i8,i8*%L6,i64 16
%L8=bitcast i8*%L7 to i8***
%L9=load i8**,i8***%L8,align 8
%Ma=load i8*,i8**%L9,align 8
store i8*%Ma,i8**%d,align 8
%Mb=call i8*@sml_alloc(i32 inreg 20)#0
%Mc=getelementptr inbounds i8,i8*%Mb,i64 -4
%Md=bitcast i8*%Mc to i32*
store i32 1342177296,i32*%Md,align 4
%Me=load i8*,i8**%c,align 8
%Mf=bitcast i8*%Mb to i8**
store i8*%Me,i8**%Mf,align 8
%Mg=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%Mh=getelementptr inbounds i8,i8*%Mb,i64 8
%Mi=bitcast i8*%Mh to i8**
store i8*%Mg,i8**%Mi,align 8
%Mj=getelementptr inbounds i8,i8*%Mb,i64 16
%Mk=bitcast i8*%Mj to i32*
store i32 3,i32*%Mk,align 4
%Ml=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%Mb)
%Mm=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%Ml)
store i8*%Mm,i8**%d,align 8
%Mn=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%Mo=getelementptr inbounds i8,i8*%Mn,i64 16
%Mp=bitcast i8*%Mo to i8**
%Mq=load i8*,i8**%Mp,align 8
%Mr=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%Ms=bitcast i8*%Mq to i8**
call void@sml_write(i8*inreg%Mq,i8**inreg%Ms,i8*inreg%Mr)#0
%Mt=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 1,i32 inreg 8)
%Mu=getelementptr inbounds i8,i8*%Mt,i64 16
%Mv=bitcast i8*%Mu to i8*(i8*,i8*)**
%Mw=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%Mv,align 8
%Mx=bitcast i8*%Mt to i8**
%My=load i8*,i8**%Mx,align 8
store i8*%My,i8**%c,align 8
%Mz=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%MA=call fastcc i8*@_SMLFN6IntInf10fromStringE(i8*inreg%Mz)
%MB=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%MC=call fastcc i8*%Mw(i8*inreg%MB,i8*inreg%MA)
store i8*%MC,i8**%c,align 8
%MD=call i8*@sml_alloc(i32 inreg 20)#0
%ME=bitcast i8*%MD to i32*
%MF=getelementptr inbounds i8,i8*%MD,i64 -4
%MG=bitcast i8*%MF to i32*
store i32 1342177296,i32*%MG,align 4
%MH=getelementptr inbounds i8,i8*%MD,i64 4
%MI=bitcast i8*%MH to i32*
store i32 0,i32*%MI,align 1
store i32 5,i32*%ME,align 4
%MJ=load i8*,i8**%c,align 8
%MK=getelementptr inbounds i8,i8*%MD,i64 8
%ML=bitcast i8*%MK to i8**
store i8*%MJ,i8**%ML,align 8
%MM=getelementptr inbounds i8,i8*%MD,i64 16
%MN=bitcast i8*%MM to i32*
store i32 2,i32*%MN,align 4
ret i8*%MD
MO:
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
%MP=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%v7)
%MQ=icmp eq i8*%MP,null
br i1%MQ,label%ND,label%MR
MR:
%MS=bitcast i8*%MP to i8**
%MT=load i8*,i8**%MS,align 8
%MU=bitcast i8*%MT to i32*
%MV=load i32,i32*%MU,align 4
%MW=icmp eq i32%MV,10
br i1%MW,label%MX,label%Ov
MX:
%MY=getelementptr inbounds i8,i8*%MT,i64 8
%MZ=bitcast i8*%MY to i8**
%M0=load i8*,i8**%MZ,align 8
store i8*%M0,i8**%d,align 8
%M1=load i8**,i8***%o,align 8
%M2=load i8*,i8**%M1,align 8
%M3=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%M2)
%M4=getelementptr inbounds i8,i8*%M3,i64 16
%M5=bitcast i8*%M4 to i8*(i8*,i8*)**
%M6=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%M5,align 8
%M7=bitcast i8*%M3 to i8**
%M8=load i8*,i8**%M7,align 8
store i8*%M8,i8**%e,align 8
%M9=load i8*,i8**%c,align 8
%Na=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%M9)
%Nb=call i8*@sml_alloc(i32 inreg 4)#0
%Nc=bitcast i8*%Nb to i32*
%Nd=getelementptr inbounds i8,i8*%Nb,i64 -4
%Ne=bitcast i8*%Nd to i32*
store i32 4,i32*%Ne,align 4
store i32%Na,i32*%Nc,align 4
%Nf=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%Ng=call fastcc i8*%M6(i8*inreg%Nf,i8*inreg%Nb)
%Nh=call i8*@sml_alloc(i32 inreg 20)#0
%Ni=getelementptr inbounds i8,i8*%Nh,i64 -4
%Nj=bitcast i8*%Ni to i32*
store i32 1342177296,i32*%Nj,align 4
store i8*%Nh,i8**%e,align 8
%Nk=getelementptr inbounds i8,i8*%Nh,i64 4
%Nl=bitcast i8*%Nk to i32*
store i32 0,i32*%Nl,align 1
%Nm=bitcast i8*%Nh to i32*
store i32 10,i32*%Nm,align 4
%Nn=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%No=getelementptr inbounds i8,i8*%Nh,i64 8
%Np=bitcast i8*%No to i8**
store i8*%Nn,i8**%Np,align 8
%Nq=getelementptr inbounds i8,i8*%Nh,i64 16
%Nr=bitcast i8*%Nq to i32*
store i32 2,i32*%Nr,align 4
%Ns=call i8*@sml_alloc(i32 inreg 12)#0
%Nt=getelementptr inbounds i8,i8*%Ns,i64 -4
%Nu=bitcast i8*%Nt to i32*
store i32 1342177288,i32*%Nu,align 4
%Nv=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%Nw=bitcast i8*%Ns to i8**
store i8*%Nv,i8**%Nw,align 8
%Nx=getelementptr inbounds i8,i8*%Ns,i64 8
%Ny=bitcast i8*%Nx to i32*
store i32 1,i32*%Ny,align 4
%Nz=icmp eq i8*%Ns,null
br i1%Nz,label%ND,label%NA
NA:
%NB=bitcast i8*%Nv to i32*
%NC=load i32,i32*%NB,align 4
br label%Ov
ND:
store i8*null,i8**%n,align 8
store i8*null,i8**%m,align 8
%NE=load i8*,i8**%f,align 8
%NF=getelementptr inbounds i8,i8*%NE,i64 16
%NG=bitcast i8*%NF to i8***
%NH=load i8**,i8***%NG,align 8
%NI=load i8*,i8**%NH,align 8
store i8*%NI,i8**%d,align 8
%NJ=call i8*@sml_alloc(i32 inreg 20)#0
%NK=getelementptr inbounds i8,i8*%NJ,i64 -4
%NL=bitcast i8*%NK to i32*
store i32 1342177296,i32*%NL,align 4
%NM=load i8*,i8**%c,align 8
%NN=bitcast i8*%NJ to i8**
store i8*%NM,i8**%NN,align 8
%NO=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%NP=getelementptr inbounds i8,i8*%NJ,i64 8
%NQ=bitcast i8*%NP to i8**
store i8*%NO,i8**%NQ,align 8
%NR=getelementptr inbounds i8,i8*%NJ,i64 16
%NS=bitcast i8*%NR to i32*
store i32 3,i32*%NS,align 4
%NT=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%NJ)
%NU=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%NT)
%NV=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%NW=getelementptr inbounds i8,i8*%NV,i64 16
%NX=bitcast i8*%NW to i8**
%NY=load i8*,i8**%NX,align 8
%NZ=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%N0=bitcast i8*%NY to i8**
call void@sml_write(i8*inreg%NY,i8**inreg%N0,i8*inreg%NZ)#0
%N1=call fastcc i8*@_SMLFN6String8toStringE(i8*inreg%NU)
store i8*%N1,i8**%c,align 8
%N2=call i8*@sml_alloc(i32 inreg 20)#0
%N3=getelementptr inbounds i8,i8*%N2,i64 -4
%N4=bitcast i8*%N3 to i32*
store i32 1342177296,i32*%N4,align 4
store i8*%N2,i8**%d,align 8
%N5=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%N6=bitcast i8*%N2 to i8**
store i8*%N5,i8**%N6,align 8
%N7=getelementptr inbounds i8,i8*%N2,i64 8
%N8=bitcast i8*%N7 to i8**
store i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,i8*,i32}>,<{[4x i8],i32,i8*,i8*,i32}>*@x,i64 0,i32 2)to i8*),i8**%N8,align 8
%N9=getelementptr inbounds i8,i8*%N2,i64 16
%Oa=bitcast i8*%N9 to i32*
store i32 3,i32*%Oa,align 4
%Ob=call i8*@sml_alloc(i32 inreg 20)#0
%Oc=getelementptr inbounds i8,i8*%Ob,i64 -4
%Od=bitcast i8*%Oc to i32*
store i32 1342177296,i32*%Od,align 4
store i8*%Ob,i8**%c,align 8
%Oe=bitcast i8*%Ob to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[16x i8]}>,<{[4x i8],i32,[16x i8]}>*@v,i64 0,i32 2,i64 0),i8**%Oe,align 8
%Of=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%Og=getelementptr inbounds i8,i8*%Ob,i64 8
%Oh=bitcast i8*%Og to i8**
store i8*%Of,i8**%Oh,align 8
%Oi=getelementptr inbounds i8,i8*%Ob,i64 16
%Oj=bitcast i8*%Oi to i32*
store i32 3,i32*%Oj,align 4
%Ok=call i8*@sml_alloc(i32 inreg 20)#0
%Ol=bitcast i8*%Ok to i32*
%Om=getelementptr inbounds i8,i8*%Ok,i64 -4
%On=bitcast i8*%Om to i32*
store i32 1342177296,i32*%On,align 4
%Oo=getelementptr inbounds i8,i8*%Ok,i64 4
%Op=bitcast i8*%Oo to i32*
store i32 0,i32*%Op,align 1
store i32 3,i32*%Ol,align 4
%Oq=load i8*,i8**%c,align 8
%Or=getelementptr inbounds i8,i8*%Ok,i64 8
%Os=bitcast i8*%Or to i8**
store i8*%Oq,i8**%Os,align 8
%Ot=getelementptr inbounds i8,i8*%Ok,i64 16
%Ou=bitcast i8*%Ot to i32*
store i32 2,i32*%Ou,align 4
ret i8*%Ok
Ov:
%Ow=phi i32[%NC,%NA],[%MV,%MR]
%Ox=phi i8*[%Nv,%NA],[%MT,%MR]
%Oy=getelementptr inbounds i8,i8*%Ox,i64 8
%Oz=bitcast i8*%Oy to i8**
%OA=load i8*,i8**%Oz,align 8
store i8*%OA,i8**%d,align 8
%OB=icmp eq i32%Ow,42
br i1%OB,label%OC,label%OZ
OC:
%OD=call i8*@sml_alloc(i32 inreg 28)#0
%OE=getelementptr inbounds i8,i8*%OD,i64 -4
%OF=bitcast i8*%OE to i32*
store i32 1342177304,i32*%OF,align 4
store i8*%OD,i8**%e,align 8
%OG=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%OH=bitcast i8*%OD to i8**
store i8*%OG,i8**%OH,align 8
%OI=load i8*,i8**%m,align 8
store i8*null,i8**%m,align 8
%OJ=getelementptr inbounds i8,i8*%OD,i64 8
%OK=bitcast i8*%OJ to i8**
store i8*%OI,i8**%OK,align 8
%OL=getelementptr inbounds i8,i8*%OD,i64 16
%OM=bitcast i8*%OL to i8**
store i8*null,i8**%OM,align 8
%ON=getelementptr inbounds i8,i8*%OD,i64 24
%OO=bitcast i8*%ON to i32*
store i32 7,i32*%OO,align 4
%OP=call i8*@sml_alloc(i32 inreg 20)#0
%OQ=getelementptr inbounds i8,i8*%OP,i64 -4
%OR=bitcast i8*%OQ to i32*
store i32 1342177296,i32*%OR,align 4
%OS=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%OT=bitcast i8*%OP to i8**
store i8*%OS,i8**%OT,align 8
%OU=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%OV=getelementptr inbounds i8,i8*%OP,i64 8
%OW=bitcast i8*%OV to i8**
store i8*%OU,i8**%OW,align 8
%OX=getelementptr inbounds i8,i8*%OP,i64 16
%OY=bitcast i8*%OX to i32*
store i32 3,i32*%OY,align 4
store i8*%OP,i8**%c,align 8
br label%aZA
OZ:
store i8*null,i8**%n,align 8
store i8*null,i8**%m,align 8
%O0=load i8*,i8**%f,align 8
%O1=getelementptr inbounds i8,i8*%O0,i64 16
%O2=bitcast i8*%O1 to i8***
%O3=load i8**,i8***%O2,align 8
%O4=load i8*,i8**%O3,align 8
store i8*%O4,i8**%d,align 8
%O5=call i8*@sml_alloc(i32 inreg 20)#0
%O6=getelementptr inbounds i8,i8*%O5,i64 -4
%O7=bitcast i8*%O6 to i32*
store i32 1342177296,i32*%O7,align 4
%O8=load i8*,i8**%c,align 8
%O9=bitcast i8*%O5 to i8**
store i8*%O8,i8**%O9,align 8
%Pa=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%Pb=getelementptr inbounds i8,i8*%O5,i64 8
%Pc=bitcast i8*%Pb to i8**
store i8*%Pa,i8**%Pc,align 8
%Pd=getelementptr inbounds i8,i8*%O5,i64 16
%Pe=bitcast i8*%Pd to i32*
store i32 3,i32*%Pe,align 4
%Pf=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%O5)
%Pg=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%Pf)
%Ph=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%Pi=getelementptr inbounds i8,i8*%Ph,i64 16
%Pj=bitcast i8*%Pi to i8**
%Pk=load i8*,i8**%Pj,align 8
%Pl=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%Pm=bitcast i8*%Pk to i8**
call void@sml_write(i8*inreg%Pk,i8**inreg%Pm,i8*inreg%Pl)#0
%Pn=call fastcc i8*@_SMLFN6String8toStringE(i8*inreg%Pg)
store i8*%Pn,i8**%c,align 8
%Po=call i8*@sml_alloc(i32 inreg 20)#0
%Pp=getelementptr inbounds i8,i8*%Po,i64 -4
%Pq=bitcast i8*%Pp to i32*
store i32 1342177296,i32*%Pq,align 4
store i8*%Po,i8**%d,align 8
%Pr=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%Ps=bitcast i8*%Po to i8**
store i8*%Pr,i8**%Ps,align 8
%Pt=getelementptr inbounds i8,i8*%Po,i64 8
%Pu=bitcast i8*%Pt to i8**
store i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,i8*,i32}>,<{[4x i8],i32,i8*,i8*,i32}>*@x,i64 0,i32 2)to i8*),i8**%Pu,align 8
%Pv=getelementptr inbounds i8,i8*%Po,i64 16
%Pw=bitcast i8*%Pv to i32*
store i32 3,i32*%Pw,align 4
%Px=call i8*@sml_alloc(i32 inreg 20)#0
%Py=getelementptr inbounds i8,i8*%Px,i64 -4
%Pz=bitcast i8*%Py to i32*
store i32 1342177296,i32*%Pz,align 4
store i8*%Px,i8**%c,align 8
%PA=bitcast i8*%Px to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[16x i8]}>,<{[4x i8],i32,[16x i8]}>*@v,i64 0,i32 2,i64 0),i8**%PA,align 8
%PB=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%PC=getelementptr inbounds i8,i8*%Px,i64 8
%PD=bitcast i8*%PC to i8**
store i8*%PB,i8**%PD,align 8
%PE=getelementptr inbounds i8,i8*%Px,i64 16
%PF=bitcast i8*%PE to i32*
store i32 3,i32*%PF,align 4
%PG=call i8*@sml_alloc(i32 inreg 20)#0
%PH=bitcast i8*%PG to i32*
%PI=getelementptr inbounds i8,i8*%PG,i64 -4
%PJ=bitcast i8*%PI to i32*
store i32 1342177296,i32*%PJ,align 4
%PK=getelementptr inbounds i8,i8*%PG,i64 4
%PL=bitcast i8*%PK to i32*
store i32 0,i32*%PL,align 1
store i32 3,i32*%PH,align 4
%PM=load i8*,i8**%c,align 8
%PN=getelementptr inbounds i8,i8*%PG,i64 8
%PO=bitcast i8*%PN to i8**
store i8*%PM,i8**%PO,align 8
%PP=getelementptr inbounds i8,i8*%PG,i64 16
%PQ=bitcast i8*%PP to i32*
store i32 2,i32*%PQ,align 4
ret i8*%PG
PR:
store i8*null,i8**%n,align 8
store i8*null,i8**%m,align 8
%PS=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%v7)
%PT=icmp eq i8*%PS,null
br i1%PT,label%QG,label%PU
PU:
%PV=bitcast i8*%PS to i8**
%PW=load i8*,i8**%PV,align 8
%PX=bitcast i8*%PW to i32*
%PY=load i32,i32*%PX,align 4
%PZ=icmp eq i32%PY,10
br i1%PZ,label%P0,label%Rp
P0:
%P1=getelementptr inbounds i8,i8*%PW,i64 8
%P2=bitcast i8*%P1 to i8**
%P3=load i8*,i8**%P2,align 8
store i8*%P3,i8**%d,align 8
%P4=load i8**,i8***%o,align 8
%P5=load i8*,i8**%P4,align 8
%P6=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%P5)
%P7=getelementptr inbounds i8,i8*%P6,i64 16
%P8=bitcast i8*%P7 to i8*(i8*,i8*)**
%P9=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%P8,align 8
%Qa=bitcast i8*%P6 to i8**
%Qb=load i8*,i8**%Qa,align 8
store i8*%Qb,i8**%e,align 8
%Qc=load i8*,i8**%c,align 8
%Qd=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%Qc)
%Qe=call i8*@sml_alloc(i32 inreg 4)#0
%Qf=bitcast i8*%Qe to i32*
%Qg=getelementptr inbounds i8,i8*%Qe,i64 -4
%Qh=bitcast i8*%Qg to i32*
store i32 4,i32*%Qh,align 4
store i32%Qd,i32*%Qf,align 4
%Qi=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%Qj=call fastcc i8*%P9(i8*inreg%Qi,i8*inreg%Qe)
%Qk=call i8*@sml_alloc(i32 inreg 20)#0
%Ql=getelementptr inbounds i8,i8*%Qk,i64 -4
%Qm=bitcast i8*%Ql to i32*
store i32 1342177296,i32*%Qm,align 4
store i8*%Qk,i8**%e,align 8
%Qn=getelementptr inbounds i8,i8*%Qk,i64 4
%Qo=bitcast i8*%Qn to i32*
store i32 0,i32*%Qo,align 1
%Qp=bitcast i8*%Qk to i32*
store i32 10,i32*%Qp,align 4
%Qq=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%Qr=getelementptr inbounds i8,i8*%Qk,i64 8
%Qs=bitcast i8*%Qr to i8**
store i8*%Qq,i8**%Qs,align 8
%Qt=getelementptr inbounds i8,i8*%Qk,i64 16
%Qu=bitcast i8*%Qt to i32*
store i32 2,i32*%Qu,align 4
%Qv=call i8*@sml_alloc(i32 inreg 12)#0
%Qw=getelementptr inbounds i8,i8*%Qv,i64 -4
%Qx=bitcast i8*%Qw to i32*
store i32 1342177288,i32*%Qx,align 4
%Qy=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%Qz=bitcast i8*%Qv to i8**
store i8*%Qy,i8**%Qz,align 8
%QA=getelementptr inbounds i8,i8*%Qv,i64 8
%QB=bitcast i8*%QA to i32*
store i32 1,i32*%QB,align 4
%QC=icmp eq i8*%Qv,null
br i1%QC,label%QG,label%QD
QD:
%QE=bitcast i8*%Qy to i32*
%QF=load i32,i32*%QE,align 4
br label%Rp
QG:
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
%QH=load i8*,i8**%f,align 8
%QI=getelementptr inbounds i8,i8*%QH,i64 16
%QJ=bitcast i8*%QI to i8***
%QK=load i8**,i8***%QJ,align 8
%QL=load i8*,i8**%QK,align 8
store i8*%QL,i8**%d,align 8
%QM=call i8*@sml_alloc(i32 inreg 20)#0
%QN=getelementptr inbounds i8,i8*%QM,i64 -4
%QO=bitcast i8*%QN to i32*
store i32 1342177296,i32*%QO,align 4
%QP=load i8*,i8**%c,align 8
%QQ=bitcast i8*%QM to i8**
store i8*%QP,i8**%QQ,align 8
%QR=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%QS=getelementptr inbounds i8,i8*%QM,i64 8
%QT=bitcast i8*%QS to i8**
store i8*%QR,i8**%QT,align 8
%QU=getelementptr inbounds i8,i8*%QM,i64 16
%QV=bitcast i8*%QU to i32*
store i32 3,i32*%QV,align 4
%QW=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%QM)
%QX=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%QW)
store i8*%QX,i8**%d,align 8
%QY=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%QZ=getelementptr inbounds i8,i8*%QY,i64 16
%Q0=bitcast i8*%QZ to i8**
%Q1=load i8*,i8**%Q0,align 8
%Q2=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%Q3=bitcast i8*%Q1 to i8**
call void@sml_write(i8*inreg%Q1,i8**inreg%Q3,i8*inreg%Q2)#0
%Q4=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 1,i32 inreg 8)
%Q5=getelementptr inbounds i8,i8*%Q4,i64 16
%Q6=bitcast i8*%Q5 to i8*(i8*,i8*)**
%Q7=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%Q6,align 8
%Q8=bitcast i8*%Q4 to i8**
%Q9=load i8*,i8**%Q8,align 8
store i8*%Q9,i8**%c,align 8
%Ra=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%Rb=call fastcc i8*@_SMLFN6IntInf10fromStringE(i8*inreg%Ra)
%Rc=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%Rd=call fastcc i8*%Q7(i8*inreg%Rc,i8*inreg%Rb)
store i8*%Rd,i8**%c,align 8
%Re=call i8*@sml_alloc(i32 inreg 20)#0
%Rf=bitcast i8*%Re to i32*
%Rg=getelementptr inbounds i8,i8*%Re,i64 -4
%Rh=bitcast i8*%Rg to i32*
store i32 1342177296,i32*%Rh,align 4
%Ri=getelementptr inbounds i8,i8*%Re,i64 4
%Rj=bitcast i8*%Ri to i32*
store i32 0,i32*%Rj,align 1
store i32 5,i32*%Rf,align 4
%Rk=load i8*,i8**%c,align 8
%Rl=getelementptr inbounds i8,i8*%Re,i64 8
%Rm=bitcast i8*%Rl to i8**
store i8*%Rk,i8**%Rm,align 8
%Rn=getelementptr inbounds i8,i8*%Re,i64 16
%Ro=bitcast i8*%Rn to i32*
store i32 2,i32*%Ro,align 4
ret i8*%Re
Rp:
%Rq=phi i32[%QF,%QD],[%PY,%PU]
%Rr=phi i8*[%Qy,%QD],[%PW,%PU]
%Rs=getelementptr inbounds i8,i8*%Rr,i64 8
%Rt=bitcast i8*%Rs to i8**
%Ru=load i8*,i8**%Rt,align 8
store i8*%Ru,i8**%d,align 8
%Rv=icmp eq i32%Rq,58
br i1%Rv,label%Rw,label%Sf
Rw:
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
%Rx=load i8*,i8**%f,align 8
%Ry=getelementptr inbounds i8,i8*%Rx,i64 16
%Rz=bitcast i8*%Ry to i8***
%RA=load i8**,i8***%Rz,align 8
%RB=load i8*,i8**%RA,align 8
store i8*%RB,i8**%d,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
%RF=load i8*,i8**%c,align 8
%RG=bitcast i8*%RC to i8**
store i8*%RF,i8**%RG,align 8
%RH=load i8*,i8**%d,align 8
store i8*null,i8**%d,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 fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%RC)
%RN=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%RM)
store i8*%RN,i8**%d,align 8
%RO=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%RP=getelementptr inbounds i8,i8*%RO,i64 16
%RQ=bitcast i8*%RP to i8**
%RR=load i8*,i8**%RQ,align 8
%RS=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%RT=bitcast i8*%RR to i8**
call void@sml_write(i8*inreg%RR,i8**inreg%RT,i8*inreg%RS)#0
%RU=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 1,i32 inreg 8)
%RV=getelementptr inbounds i8,i8*%RU,i64 16
%RW=bitcast i8*%RV to i8*(i8*,i8*)**
%RX=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%RW,align 8
%RY=bitcast i8*%RU to i8**
%RZ=load i8*,i8**%RY,align 8
store i8*%RZ,i8**%c,align 8
%R0=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%R1=call fastcc i8*@_SMLFN6IntInf10fromStringE(i8*inreg%R0)
%R2=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%R3=call fastcc i8*%RX(i8*inreg%R2,i8*inreg%R1)
store i8*%R3,i8**%c,align 8
%R4=call i8*@sml_alloc(i32 inreg 20)#0
%R5=bitcast i8*%R4 to i32*
%R6=getelementptr inbounds i8,i8*%R4,i64 -4
%R7=bitcast i8*%R6 to i32*
store i32 1342177296,i32*%R7,align 4
%R8=getelementptr inbounds i8,i8*%R4,i64 4
%R9=bitcast i8*%R8 to i32*
store i32 0,i32*%R9,align 1
store i32 5,i32*%R5,align 4
%Sa=load i8*,i8**%c,align 8
%Sb=getelementptr inbounds i8,i8*%R4,i64 8
%Sc=bitcast i8*%Sb to i8**
store i8*%Sa,i8**%Sc,align 8
%Sd=getelementptr inbounds i8,i8*%R4,i64 16
%Se=bitcast i8*%Sd to i32*
store i32 2,i32*%Se,align 4
ret i8*%R4
Sf:
%Sg=icmp ugt i32%Rq,57
br i1%Sg,label%Uq,label%Sh
Sh:
%Si=icmp eq i32%Rq,47
br i1%Si,label%Sj,label%S2
Sj:
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
%Sk=load i8*,i8**%f,align 8
%Sl=getelementptr inbounds i8,i8*%Sk,i64 16
%Sm=bitcast i8*%Sl to i8***
%Sn=load i8**,i8***%Sm,align 8
%So=load i8*,i8**%Sn,align 8
store i8*%So,i8**%d,align 8
%Sp=call i8*@sml_alloc(i32 inreg 20)#0
%Sq=getelementptr inbounds i8,i8*%Sp,i64 -4
%Sr=bitcast i8*%Sq to i32*
store i32 1342177296,i32*%Sr,align 4
%Ss=load i8*,i8**%c,align 8
%St=bitcast i8*%Sp to i8**
store i8*%Ss,i8**%St,align 8
%Su=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%Sv=getelementptr inbounds i8,i8*%Sp,i64 8
%Sw=bitcast i8*%Sv to i8**
store i8*%Su,i8**%Sw,align 8
%Sx=getelementptr inbounds i8,i8*%Sp,i64 16
%Sy=bitcast i8*%Sx to i32*
store i32 3,i32*%Sy,align 4
%Sz=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%Sp)
%SA=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%Sz)
store i8*%SA,i8**%d,align 8
%SB=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%SC=getelementptr inbounds i8,i8*%SB,i64 16
%SD=bitcast i8*%SC to i8**
%SE=load i8*,i8**%SD,align 8
%SF=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%SG=bitcast i8*%SE to i8**
call void@sml_write(i8*inreg%SE,i8**inreg%SG,i8*inreg%SF)#0
%SH=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 1,i32 inreg 8)
%SI=getelementptr inbounds i8,i8*%SH,i64 16
%SJ=bitcast i8*%SI to i8*(i8*,i8*)**
%SK=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%SJ,align 8
%SL=bitcast i8*%SH to i8**
%SM=load i8*,i8**%SL,align 8
store i8*%SM,i8**%c,align 8
%SN=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%SO=call fastcc i8*@_SMLFN6IntInf10fromStringE(i8*inreg%SN)
%SP=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%SQ=call fastcc i8*%SK(i8*inreg%SP,i8*inreg%SO)
store i8*%SQ,i8**%c,align 8
%SR=call i8*@sml_alloc(i32 inreg 20)#0
%SS=bitcast i8*%SR to i32*
%ST=getelementptr inbounds i8,i8*%SR,i64 -4
%SU=bitcast i8*%ST to i32*
store i32 1342177296,i32*%SU,align 4
%SV=getelementptr inbounds i8,i8*%SR,i64 4
%SW=bitcast i8*%SV to i32*
store i32 0,i32*%SW,align 1
store i32 5,i32*%SS,align 4
%SX=load i8*,i8**%c,align 8
%SY=getelementptr inbounds i8,i8*%SR,i64 8
%SZ=bitcast i8*%SY to i8**
store i8*%SX,i8**%SZ,align 8
%S0=getelementptr inbounds i8,i8*%SR,i64 16
%S1=bitcast i8*%S0 to i32*
store i32 2,i32*%S1,align 4
ret i8*%SR
S2:
%S3=icmp ugt i32%Rq,46
br i1%S3,label%T8,label%S4
S4:
store i8*null,i8**%j,align 8
%S5=icmp eq i32%Rq,46
br i1%S5,label%S6,label%Tp
S6:
%S7=call i8*@sml_alloc(i32 inreg 28)#0
%S8=getelementptr inbounds i8,i8*%S7,i64 -4
%S9=bitcast i8*%S8 to i32*
store i32 1342177304,i32*%S9,align 4
store i8*%S7,i8**%e,align 8
%Ta=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%Tb=bitcast i8*%S7 to i8**
store i8*%Ta,i8**%Tb,align 8
%Tc=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%Td=getelementptr inbounds i8,i8*%S7,i64 8
%Te=bitcast i8*%Td to i8**
store i8*%Tc,i8**%Te,align 8
%Tf=getelementptr inbounds i8,i8*%S7,i64 16
%Tg=bitcast i8*%Tf to i8**
store i8*null,i8**%Tg,align 8
%Th=getelementptr inbounds i8,i8*%S7,i64 24
%Ti=bitcast i8*%Th to i32*
store i32 7,i32*%Ti,align 4
%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
%Tm=load i8*,i8**%d,align 8
%Tn=bitcast i8*%Tj to i8**
store i8*%Tm,i8**%Tn,align 8
%To=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
br label%be0
Tp:
store i8*null,i8**%g,align 8
store i8*null,i8**%i,align 8
store i8*null,i8**%k,align 8
%Tq=load i8*,i8**%f,align 8
%Tr=getelementptr inbounds i8,i8*%Tq,i64 16
%Ts=bitcast i8*%Tr to i8***
%Tt=load i8**,i8***%Ts,align 8
%Tu=load i8*,i8**%Tt,align 8
store i8*%Tu,i8**%d,align 8
%Tv=call i8*@sml_alloc(i32 inreg 20)#0
%Tw=getelementptr inbounds i8,i8*%Tv,i64 -4
%Tx=bitcast i8*%Tw to i32*
store i32 1342177296,i32*%Tx,align 4
%Ty=load i8*,i8**%c,align 8
%Tz=bitcast i8*%Tv to i8**
store i8*%Ty,i8**%Tz,align 8
%TA=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%TB=getelementptr inbounds i8,i8*%Tv,i64 8
%TC=bitcast i8*%TB to i8**
store i8*%TA,i8**%TC,align 8
%TD=getelementptr inbounds i8,i8*%Tv,i64 16
%TE=bitcast i8*%TD to i32*
store i32 3,i32*%TE,align 4
%TF=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%Tv)
%TG=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%TF)
store i8*%TG,i8**%d,align 8
%TH=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%TI=getelementptr inbounds i8,i8*%TH,i64 16
%TJ=bitcast i8*%TI to i8**
%TK=load i8*,i8**%TJ,align 8
%TL=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%TM=bitcast i8*%TK to i8**
call void@sml_write(i8*inreg%TK,i8**inreg%TM,i8*inreg%TL)#0
%TN=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 1,i32 inreg 8)
%TO=getelementptr inbounds i8,i8*%TN,i64 16
%TP=bitcast i8*%TO to i8*(i8*,i8*)**
%TQ=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%TP,align 8
%TR=bitcast i8*%TN to i8**
%TS=load i8*,i8**%TR,align 8
store i8*%TS,i8**%c,align 8
%TT=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%TU=call fastcc i8*@_SMLFN6IntInf10fromStringE(i8*inreg%TT)
%TV=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%TW=call fastcc i8*%TQ(i8*inreg%TV,i8*inreg%TU)
store i8*%TW,i8**%c,align 8
%TX=call i8*@sml_alloc(i32 inreg 20)#0
%TY=bitcast i8*%TX to i32*
%TZ=getelementptr inbounds i8,i8*%TX,i64 -4
%T0=bitcast i8*%TZ to i32*
store i32 1342177296,i32*%T0,align 4
%T1=getelementptr inbounds i8,i8*%TX,i64 4
%T2=bitcast i8*%T1 to i32*
store i32 0,i32*%T2,align 1
store i32 5,i32*%TY,align 4
%T3=load i8*,i8**%c,align 8
%T4=getelementptr inbounds i8,i8*%TX,i64 8
%T5=bitcast i8*%T4 to i8**
store i8*%T3,i8**%T5,align 8
%T6=getelementptr inbounds i8,i8*%TX,i64 16
%T7=bitcast i8*%T6 to i32*
store i32 2,i32*%T7,align 4
ret i8*%TX
T8:
%T9=call i8*@sml_alloc(i32 inreg 28)#0
%Ua=getelementptr inbounds i8,i8*%T9,i64 -4
%Ub=bitcast i8*%Ua to i32*
store i32 1342177304,i32*%Ub,align 4
store i8*%T9,i8**%e,align 8
%Uc=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%Ud=bitcast i8*%T9 to i8**
store i8*%Uc,i8**%Ud,align 8
%Ue=load i8*,i8**%g,align 8
%Uf=getelementptr inbounds i8,i8*%T9,i64 8
%Ug=bitcast i8*%Uf to i8**
store i8*%Ue,i8**%Ug,align 8
%Uh=getelementptr inbounds i8,i8*%T9,i64 16
%Ui=bitcast i8*%Uh to i8**
store i8*null,i8**%Ui,align 8
%Uj=getelementptr inbounds i8,i8*%T9,i64 24
%Uk=bitcast i8*%Uj to i32*
store i32 7,i32*%Uk,align 4
%Ul=call i8*@sml_alloc(i32 inreg 20)#0
%Um=getelementptr inbounds i8,i8*%Ul,i64 -4
%Un=bitcast i8*%Um to i32*
store i32 1342177296,i32*%Un,align 4
%Uo=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%Up=bitcast i8*%Ul to i8**
store i8*%Uo,i8**%Up,align 8
br label%aWD
Uq:
store i8*null,i8**%i,align 8
store i8*null,i8**%k,align 8
%Ur=icmp eq i32%Rq,70
br i1%Ur,label%Us,label%Vb
Us:
store i8*null,i8**%g,align 8
store i8*null,i8**%j,align 8
%Ut=load i8*,i8**%f,align 8
%Uu=getelementptr inbounds i8,i8*%Ut,i64 16
%Uv=bitcast i8*%Uu to i8***
%Uw=load i8**,i8***%Uv,align 8
%Ux=load i8*,i8**%Uw,align 8
store i8*%Ux,i8**%d,align 8
%Uy=call i8*@sml_alloc(i32 inreg 20)#0
%Uz=getelementptr inbounds i8,i8*%Uy,i64 -4
%UA=bitcast i8*%Uz to i32*
store i32 1342177296,i32*%UA,align 4
%UB=load i8*,i8**%c,align 8
%UC=bitcast i8*%Uy to i8**
store i8*%UB,i8**%UC,align 8
%UD=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%UE=getelementptr inbounds i8,i8*%Uy,i64 8
%UF=bitcast i8*%UE to i8**
store i8*%UD,i8**%UF,align 8
%UG=getelementptr inbounds i8,i8*%Uy,i64 16
%UH=bitcast i8*%UG to i32*
store i32 3,i32*%UH,align 4
%UI=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%Uy)
%UJ=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%UI)
store i8*%UJ,i8**%d,align 8
%UK=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%UL=getelementptr inbounds i8,i8*%UK,i64 16
%UM=bitcast i8*%UL to i8**
%UN=load i8*,i8**%UM,align 8
%UO=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%UP=bitcast i8*%UN to i8**
call void@sml_write(i8*inreg%UN,i8**inreg%UP,i8*inreg%UO)#0
%UQ=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 1,i32 inreg 8)
%UR=getelementptr inbounds i8,i8*%UQ,i64 16
%US=bitcast i8*%UR to i8*(i8*,i8*)**
%UT=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%US,align 8
%UU=bitcast i8*%UQ to i8**
%UV=load i8*,i8**%UU,align 8
store i8*%UV,i8**%c,align 8
%UW=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%UX=call fastcc i8*@_SMLFN6IntInf10fromStringE(i8*inreg%UW)
%UY=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%UZ=call fastcc i8*%UT(i8*inreg%UY,i8*inreg%UX)
store i8*%UZ,i8**%c,align 8
%U0=call i8*@sml_alloc(i32 inreg 20)#0
%U1=bitcast i8*%U0 to i32*
%U2=getelementptr inbounds i8,i8*%U0,i64 -4
%U3=bitcast i8*%U2 to i32*
store i32 1342177296,i32*%U3,align 4
%U4=getelementptr inbounds i8,i8*%U0,i64 4
%U5=bitcast i8*%U4 to i32*
store i32 0,i32*%U5,align 1
store i32 5,i32*%U1,align 4
%U6=load i8*,i8**%c,align 8
%U7=getelementptr inbounds i8,i8*%U0,i64 8
%U8=bitcast i8*%U7 to i8**
store i8*%U6,i8**%U8,align 8
%U9=getelementptr inbounds i8,i8*%U0,i64 16
%Va=bitcast i8*%U9 to i32*
store i32 2,i32*%Va,align 4
ret i8*%U0
Vb:
%Vc=icmp ugt i32%Rq,69
br i1%Vc,label%Wh,label%Vd
Vd:
%Ve=icmp eq i32%Rq,69
br i1%Ve,label%Vf,label%Vy
Vf:
%Vg=call i8*@sml_alloc(i32 inreg 28)#0
%Vh=getelementptr inbounds i8,i8*%Vg,i64 -4
%Vi=bitcast i8*%Vh to i32*
store i32 1342177304,i32*%Vi,align 4
store i8*%Vg,i8**%e,align 8
%Vj=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%Vk=bitcast i8*%Vg to i8**
store i8*%Vj,i8**%Vk,align 8
%Vl=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%Vm=getelementptr inbounds i8,i8*%Vg,i64 8
%Vn=bitcast i8*%Vm to i8**
store i8*%Vl,i8**%Vn,align 8
%Vo=getelementptr inbounds i8,i8*%Vg,i64 16
%Vp=bitcast i8*%Vo to i8**
store i8*null,i8**%Vp,align 8
%Vq=getelementptr inbounds i8,i8*%Vg,i64 24
%Vr=bitcast i8*%Vq to i32*
store i32 7,i32*%Vr,align 4
%Vs=call i8*@sml_alloc(i32 inreg 20)#0
%Vt=getelementptr inbounds i8,i8*%Vs,i64 -4
%Vu=bitcast i8*%Vt to i32*
store i32 1342177296,i32*%Vu,align 4
%Vv=load i8*,i8**%d,align 8
%Vw=bitcast i8*%Vs to i8**
store i8*%Vv,i8**%Vw,align 8
%Vx=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
br label%btC
Vy:
store i8*null,i8**%g,align 8
store i8*null,i8**%j,align 8
%Vz=load i8*,i8**%f,align 8
%VA=getelementptr inbounds i8,i8*%Vz,i64 16
%VB=bitcast i8*%VA to i8***
%VC=load i8**,i8***%VB,align 8
%VD=load i8*,i8**%VC,align 8
store i8*%VD,i8**%d,align 8
%VE=call i8*@sml_alloc(i32 inreg 20)#0
%VF=getelementptr inbounds i8,i8*%VE,i64 -4
%VG=bitcast i8*%VF to i32*
store i32 1342177296,i32*%VG,align 4
%VH=load i8*,i8**%c,align 8
%VI=bitcast i8*%VE to i8**
store i8*%VH,i8**%VI,align 8
%VJ=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%VK=getelementptr inbounds i8,i8*%VE,i64 8
%VL=bitcast i8*%VK to i8**
store i8*%VJ,i8**%VL,align 8
%VM=getelementptr inbounds i8,i8*%VE,i64 16
%VN=bitcast i8*%VM to i32*
store i32 3,i32*%VN,align 4
%VO=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%VE)
%VP=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%VO)
store i8*%VP,i8**%d,align 8
%VQ=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%VR=getelementptr inbounds i8,i8*%VQ,i64 16
%VS=bitcast i8*%VR to i8**
%VT=load i8*,i8**%VS,align 8
%VU=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%VV=bitcast i8*%VT to i8**
call void@sml_write(i8*inreg%VT,i8**inreg%VV,i8*inreg%VU)#0
%VW=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 1,i32 inreg 8)
%VX=getelementptr inbounds i8,i8*%VW,i64 16
%VY=bitcast i8*%VX to i8*(i8*,i8*)**
%VZ=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%VY,align 8
%V0=bitcast i8*%VW to i8**
%V1=load i8*,i8**%V0,align 8
store i8*%V1,i8**%c,align 8
%V2=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%V3=call fastcc i8*@_SMLFN6IntInf10fromStringE(i8*inreg%V2)
%V4=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%V5=call fastcc i8*%VZ(i8*inreg%V4,i8*inreg%V3)
store i8*%V5,i8**%c,align 8
%V6=call i8*@sml_alloc(i32 inreg 20)#0
%V7=bitcast i8*%V6 to i32*
%V8=getelementptr inbounds i8,i8*%V6,i64 -4
%V9=bitcast i8*%V8 to i32*
store i32 1342177296,i32*%V9,align 4
%Wa=getelementptr inbounds i8,i8*%V6,i64 4
%Wb=bitcast i8*%Wa to i32*
store i32 0,i32*%Wb,align 1
store i32 5,i32*%V7,align 4
%Wc=load i8*,i8**%c,align 8
%Wd=getelementptr inbounds i8,i8*%V6,i64 8
%We=bitcast i8*%Wd to i8**
store i8*%Wc,i8**%We,align 8
%Wf=getelementptr inbounds i8,i8*%V6,i64 16
%Wg=bitcast i8*%Wf to i32*
store i32 2,i32*%Wg,align 4
ret i8*%V6
Wh:
%Wi=icmp eq i32%Rq,101
br i1%Wi,label%Wj,label%WC
Wj:
%Wk=call i8*@sml_alloc(i32 inreg 28)#0
%Wl=getelementptr inbounds i8,i8*%Wk,i64 -4
%Wm=bitcast i8*%Wl to i32*
store i32 1342177304,i32*%Wm,align 4
store i8*%Wk,i8**%e,align 8
%Wn=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%Wo=bitcast i8*%Wk to i8**
store i8*%Wn,i8**%Wo,align 8
%Wp=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%Wq=getelementptr inbounds i8,i8*%Wk,i64 8
%Wr=bitcast i8*%Wq to i8**
store i8*%Wp,i8**%Wr,align 8
%Ws=getelementptr inbounds i8,i8*%Wk,i64 16
%Wt=bitcast i8*%Ws to i8**
store i8*null,i8**%Wt,align 8
%Wu=getelementptr inbounds i8,i8*%Wk,i64 24
%Wv=bitcast i8*%Wu to i32*
store i32 7,i32*%Wv,align 4
%Ww=call i8*@sml_alloc(i32 inreg 20)#0
%Wx=getelementptr inbounds i8,i8*%Ww,i64 -4
%Wy=bitcast i8*%Wx to i32*
store i32 1342177296,i32*%Wy,align 4
%Wz=load i8*,i8**%d,align 8
%WA=bitcast i8*%Ww to i8**
store i8*%Wz,i8**%WA,align 8
%WB=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
br label%btC
WC:
store i8*null,i8**%g,align 8
store i8*null,i8**%j,align 8
%WD=load i8*,i8**%f,align 8
%WE=getelementptr inbounds i8,i8*%WD,i64 16
%WF=bitcast i8*%WE to i8***
%WG=load i8**,i8***%WF,align 8
%WH=load i8*,i8**%WG,align 8
store i8*%WH,i8**%d,align 8
%WI=call i8*@sml_alloc(i32 inreg 20)#0
%WJ=getelementptr inbounds i8,i8*%WI,i64 -4
%WK=bitcast i8*%WJ to i32*
store i32 1342177296,i32*%WK,align 4
%WL=load i8*,i8**%c,align 8
%WM=bitcast i8*%WI to i8**
store i8*%WL,i8**%WM,align 8
%WN=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%WO=getelementptr inbounds i8,i8*%WI,i64 8
%WP=bitcast i8*%WO to i8**
store i8*%WN,i8**%WP,align 8
%WQ=getelementptr inbounds i8,i8*%WI,i64 16
%WR=bitcast i8*%WQ to i32*
store i32 3,i32*%WR,align 4
%WS=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%WI)
%WT=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%WS)
store i8*%WT,i8**%d,align 8
%WU=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%WV=getelementptr inbounds i8,i8*%WU,i64 16
%WW=bitcast i8*%WV to i8**
%WX=load i8*,i8**%WW,align 8
%WY=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%WZ=bitcast i8*%WX to i8**
call void@sml_write(i8*inreg%WX,i8**inreg%WZ,i8*inreg%WY)#0
%W0=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 1,i32 inreg 8)
%W1=getelementptr inbounds i8,i8*%W0,i64 16
%W2=bitcast i8*%W1 to i8*(i8*,i8*)**
%W3=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%W2,align 8
%W4=bitcast i8*%W0 to i8**
%W5=load i8*,i8**%W4,align 8
store i8*%W5,i8**%c,align 8
%W6=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%W7=call fastcc i8*@_SMLFN6IntInf10fromStringE(i8*inreg%W6)
%W8=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%W9=call fastcc i8*%W3(i8*inreg%W8,i8*inreg%W7)
store i8*%W9,i8**%c,align 8
%Xa=call i8*@sml_alloc(i32 inreg 20)#0
%Xb=bitcast i8*%Xa to i32*
%Xc=getelementptr inbounds i8,i8*%Xa,i64 -4
%Xd=bitcast i8*%Xc to i32*
store i32 1342177296,i32*%Xd,align 4
%Xe=getelementptr inbounds i8,i8*%Xa,i64 4
%Xf=bitcast i8*%Xe to i32*
store i32 0,i32*%Xf,align 1
store i32 5,i32*%Xb,align 4
%Xg=load i8*,i8**%c,align 8
%Xh=getelementptr inbounds i8,i8*%Xa,i64 8
%Xi=bitcast i8*%Xh to i8**
store i8*%Xg,i8**%Xi,align 8
%Xj=getelementptr inbounds i8,i8*%Xa,i64 16
%Xk=bitcast i8*%Xj to i32*
store i32 2,i32*%Xk,align 4
ret i8*%Xa
Xl:
store i8*null,i8**%h,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**%n,align 8
%Xm=icmp eq i32%v4,110
br i1%Xm,label%Xn,label%adi
Xn:
%Xo=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%v7)
%Xp=icmp eq i8*%Xo,null
br i1%Xp,label%Yc,label%Xq
Xq:
%Xr=bitcast i8*%Xo to i8**
%Xs=load i8*,i8**%Xr,align 8
%Xt=bitcast i8*%Xs to i32*
%Xu=load i32,i32*%Xt,align 4
%Xv=icmp eq i32%Xu,10
br i1%Xv,label%Xw,label%Y4
Xw:
%Xx=getelementptr inbounds i8,i8*%Xs,i64 8
%Xy=bitcast i8*%Xx to i8**
%Xz=load i8*,i8**%Xy,align 8
store i8*%Xz,i8**%d,align 8
%XA=load i8**,i8***%o,align 8
%XB=load i8*,i8**%XA,align 8
%XC=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%XB)
%XD=getelementptr inbounds i8,i8*%XC,i64 16
%XE=bitcast i8*%XD to i8*(i8*,i8*)**
%XF=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%XE,align 8
%XG=bitcast i8*%XC to i8**
%XH=load i8*,i8**%XG,align 8
store i8*%XH,i8**%e,align 8
%XI=load i8*,i8**%c,align 8
%XJ=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%XI)
%XK=call i8*@sml_alloc(i32 inreg 4)#0
%XL=bitcast i8*%XK to i32*
%XM=getelementptr inbounds i8,i8*%XK,i64 -4
%XN=bitcast i8*%XM to i32*
store i32 4,i32*%XN,align 4
store i32%XJ,i32*%XL,align 4
%XO=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%XP=call fastcc i8*%XF(i8*inreg%XO,i8*inreg%XK)
%XQ=call i8*@sml_alloc(i32 inreg 20)#0
%XR=getelementptr inbounds i8,i8*%XQ,i64 -4
%XS=bitcast i8*%XR to i32*
store i32 1342177296,i32*%XS,align 4
store i8*%XQ,i8**%e,align 8
%XT=getelementptr inbounds i8,i8*%XQ,i64 4
%XU=bitcast i8*%XT to i32*
store i32 0,i32*%XU,align 1
%XV=bitcast i8*%XQ to i32*
store i32 10,i32*%XV,align 4
%XW=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%XX=getelementptr inbounds i8,i8*%XQ,i64 8
%XY=bitcast i8*%XX to i8**
store i8*%XW,i8**%XY,align 8
%XZ=getelementptr inbounds i8,i8*%XQ,i64 16
%X0=bitcast i8*%XZ to i32*
store i32 2,i32*%X0,align 4
%X1=call i8*@sml_alloc(i32 inreg 12)#0
%X2=getelementptr inbounds i8,i8*%X1,i64 -4
%X3=bitcast i8*%X2 to i32*
store i32 1342177288,i32*%X3,align 4
%X4=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%X5=bitcast i8*%X1 to i8**
store i8*%X4,i8**%X5,align 8
%X6=getelementptr inbounds i8,i8*%X1,i64 8
%X7=bitcast i8*%X6 to i32*
store i32 1,i32*%X7,align 4
%X8=icmp eq i8*%X1,null
br i1%X8,label%Yc,label%X9
X9:
%Ya=bitcast i8*%X4 to i32*
%Yb=load i32,i32*%Ya,align 4
br label%Y4
Yc:
store i8*null,i8**%m,align 8
%Yd=load i8*,i8**%f,align 8
%Ye=getelementptr inbounds i8,i8*%Yd,i64 16
%Yf=bitcast i8*%Ye to i8***
%Yg=load i8**,i8***%Yf,align 8
%Yh=load i8*,i8**%Yg,align 8
store i8*%Yh,i8**%d,align 8
%Yi=call i8*@sml_alloc(i32 inreg 20)#0
%Yj=getelementptr inbounds i8,i8*%Yi,i64 -4
%Yk=bitcast i8*%Yj to i32*
store i32 1342177296,i32*%Yk,align 4
%Yl=load i8*,i8**%c,align 8
%Ym=bitcast i8*%Yi to i8**
store i8*%Yl,i8**%Ym,align 8
%Yn=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%Yo=getelementptr inbounds i8,i8*%Yi,i64 8
%Yp=bitcast i8*%Yo to i8**
store i8*%Yn,i8**%Yp,align 8
%Yq=getelementptr inbounds i8,i8*%Yi,i64 16
%Yr=bitcast i8*%Yq to i32*
store i32 3,i32*%Yr,align 4
%Ys=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%Yi)
%Yt=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%Ys)
%Yu=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%Yv=getelementptr inbounds i8,i8*%Yu,i64 16
%Yw=bitcast i8*%Yv to i8**
%Yx=load i8*,i8**%Yw,align 8
%Yy=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%Yz=bitcast i8*%Yx to i8**
call void@sml_write(i8*inreg%Yx,i8**inreg%Yz,i8*inreg%Yy)#0
%YA=call fastcc i8*@_SMLFN6String8toStringE(i8*inreg%Yt)
store i8*%YA,i8**%c,align 8
%YB=call i8*@sml_alloc(i32 inreg 20)#0
%YC=getelementptr inbounds i8,i8*%YB,i64 -4
%YD=bitcast i8*%YC to i32*
store i32 1342177296,i32*%YD,align 4
store i8*%YB,i8**%d,align 8
%YE=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%YF=bitcast i8*%YB to i8**
store i8*%YE,i8**%YF,align 8
%YG=getelementptr inbounds i8,i8*%YB,i64 8
%YH=bitcast i8*%YG to i8**
store i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,i8*,i32}>,<{[4x i8],i32,i8*,i8*,i32}>*@x,i64 0,i32 2)to i8*),i8**%YH,align 8
%YI=getelementptr inbounds i8,i8*%YB,i64 16
%YJ=bitcast i8*%YI to i32*
store i32 3,i32*%YJ,align 4
%YK=call i8*@sml_alloc(i32 inreg 20)#0
%YL=getelementptr inbounds i8,i8*%YK,i64 -4
%YM=bitcast i8*%YL to i32*
store i32 1342177296,i32*%YM,align 4
store i8*%YK,i8**%c,align 8
%YN=bitcast i8*%YK to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[16x i8]}>,<{[4x i8],i32,[16x i8]}>*@v,i64 0,i32 2,i64 0),i8**%YN,align 8
%YO=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%YP=getelementptr inbounds i8,i8*%YK,i64 8
%YQ=bitcast i8*%YP to i8**
store i8*%YO,i8**%YQ,align 8
%YR=getelementptr inbounds i8,i8*%YK,i64 16
%YS=bitcast i8*%YR to i32*
store i32 3,i32*%YS,align 4
%YT=call i8*@sml_alloc(i32 inreg 20)#0
%YU=bitcast i8*%YT to i32*
%YV=getelementptr inbounds i8,i8*%YT,i64 -4
%YW=bitcast i8*%YV to i32*
store i32 1342177296,i32*%YW,align 4
%YX=getelementptr inbounds i8,i8*%YT,i64 4
%YY=bitcast i8*%YX to i32*
store i32 0,i32*%YY,align 1
store i32 3,i32*%YU,align 4
%YZ=load i8*,i8**%c,align 8
%Y0=getelementptr inbounds i8,i8*%YT,i64 8
%Y1=bitcast i8*%Y0 to i8**
store i8*%YZ,i8**%Y1,align 8
%Y2=getelementptr inbounds i8,i8*%YT,i64 16
%Y3=bitcast i8*%Y2 to i32*
store i32 2,i32*%Y3,align 4
ret i8*%YT
Y4:
%Y5=phi i32[%Yb,%X9],[%Xu,%Xq]
%Y6=phi i8*[%X4,%X9],[%Xs,%Xq]
%Y7=getelementptr inbounds i8,i8*%Y6,i64 8
%Y8=bitcast i8*%Y7 to i8**
%Y9=load i8*,i8**%Y8,align 8
store i8*%Y9,i8**%d,align 8
%Za=icmp eq i32%Y5,117
br i1%Za,label%Zb,label%acq
Zb:
%Zc=call i8*@sml_alloc(i32 inreg 28)#0
%Zd=getelementptr inbounds i8,i8*%Zc,i64 -4
%Ze=bitcast i8*%Zd to i32*
store i32 1342177304,i32*%Ze,align 4
store i8*%Zc,i8**%e,align 8
%Zf=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%Zg=bitcast i8*%Zc to i8**
store i8*%Zf,i8**%Zg,align 8
%Zh=load i8*,i8**%m,align 8
store i8*null,i8**%m,align 8
%Zi=getelementptr inbounds i8,i8*%Zc,i64 8
%Zj=bitcast i8*%Zi to i8**
store i8*%Zh,i8**%Zj,align 8
%Zk=getelementptr inbounds i8,i8*%Zc,i64 16
%Zl=bitcast i8*%Zk to i8**
store i8*null,i8**%Zl,align 8
%Zm=getelementptr inbounds i8,i8*%Zc,i64 24
%Zn=bitcast i8*%Zm to i32*
store i32 7,i32*%Zn,align 4
%Zo=load i8*,i8**%d,align 8
%Zp=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%Zo)
%Zq=icmp eq i8*%Zp,null
br i1%Zq,label%Zr,label%Zs
Zr:
store i8*null,i8**%d,align 8
br label%aad
Zs:
%Zt=bitcast i8*%Zp to i8**
%Zu=load i8*,i8**%Zt,align 8
%Zv=bitcast i8*%Zu to i32*
%Zw=load i32,i32*%Zv,align 4
%Zx=icmp eq i32%Zw,10
br i1%Zx,label%ZA,label%Zy
Zy:
store i8*null,i8**%d,align 8
%Zz=load i8*,i8**%Zt,align 8
br label%aaf
ZA:
%ZB=getelementptr inbounds i8,i8*%Zu,i64 8
%ZC=bitcast i8*%ZB to i8**
%ZD=load i8*,i8**%ZC,align 8
store i8*%ZD,i8**%c,align 8
%ZE=load i8**,i8***%o,align 8
%ZF=load i8*,i8**%ZE,align 8
%ZG=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%ZF)
%ZH=getelementptr inbounds i8,i8*%ZG,i64 16
%ZI=bitcast i8*%ZH to i8*(i8*,i8*)**
%ZJ=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%ZI,align 8
%ZK=bitcast i8*%ZG to i8**
%ZL=load i8*,i8**%ZK,align 8
store i8*%ZL,i8**%g,align 8
%ZM=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%ZN=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%ZM)
%ZO=call i8*@sml_alloc(i32 inreg 4)#0
%ZP=bitcast i8*%ZO to i32*
%ZQ=getelementptr inbounds i8,i8*%ZO,i64 -4
%ZR=bitcast i8*%ZQ to i32*
store i32 4,i32*%ZR,align 4
store i32%ZN,i32*%ZP,align 4
%ZS=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%ZT=call fastcc i8*%ZJ(i8*inreg%ZS,i8*inreg%ZO)
%ZU=call i8*@sml_alloc(i32 inreg 20)#0
%ZV=getelementptr inbounds i8,i8*%ZU,i64 -4
%ZW=bitcast i8*%ZV to i32*
store i32 1342177296,i32*%ZW,align 4
store i8*%ZU,i8**%d,align 8
%ZX=getelementptr inbounds i8,i8*%ZU,i64 4
%ZY=bitcast i8*%ZX to i32*
store i32 0,i32*%ZY,align 1
%ZZ=bitcast i8*%ZU to i32*
store i32 10,i32*%ZZ,align 4
%Z0=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%Z1=getelementptr inbounds i8,i8*%ZU,i64 8
%Z2=bitcast i8*%Z1 to i8**
store i8*%Z0,i8**%Z2,align 8
%Z3=getelementptr inbounds i8,i8*%ZU,i64 16
%Z4=bitcast i8*%Z3 to i32*
store i32 2,i32*%Z4,align 4
%Z5=call i8*@sml_alloc(i32 inreg 12)#0
%Z6=getelementptr inbounds i8,i8*%Z5,i64 -4
%Z7=bitcast i8*%Z6 to i32*
store i32 1342177288,i32*%Z7,align 4
%Z8=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%Z9=bitcast i8*%Z5 to i8**
store i8*%Z8,i8**%Z9,align 8
%aaa=getelementptr inbounds i8,i8*%Z5,i64 8
%aab=bitcast i8*%aaa to i32*
store i32 1,i32*%aab,align 4
%aac=icmp eq i8*%Z5,null
br i1%aac,label%aad,label%aaf
aad:
store i8*null,i8**%f,align 8
%aae=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
store i8*%aae,i8**%c,align 8
br label%bBS
aaf:
%aag=phi i8*[%Zz,%Zy],[%Z8,%ZA]
%aah=bitcast i8*%aag to i32*
%aai=load i32,i32*%aah,align 4
%aaj=getelementptr inbounds i8,i8*%aag,i64 8
%aak=bitcast i8*%aaj to i8**
%aal=load i8*,i8**%aak,align 8
store i8*%aal,i8**%c,align 8
%aam=icmp eq i32%aai,108
br i1%aam,label%aan,label%aco
aan:
%aao=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%aal)
%aap=icmp eq i8*%aao,null
br i1%aap,label%aaq,label%aar
aaq:
store i8*null,i8**%c,align 8
br label%abc
aar:
%aas=bitcast i8*%aao to i8**
%aat=load i8*,i8**%aas,align 8
%aau=bitcast i8*%aat to i32*
%aav=load i32,i32*%aau,align 4
%aaw=icmp eq i32%aav,10
br i1%aaw,label%aaz,label%aax
aax:
store i8*null,i8**%c,align 8
%aay=load i8*,i8**%aas,align 8
br label%abe
aaz:
%aaA=getelementptr inbounds i8,i8*%aat,i64 8
%aaB=bitcast i8*%aaA to i8**
%aaC=load i8*,i8**%aaB,align 8
store i8*%aaC,i8**%d,align 8
%aaD=load i8**,i8***%o,align 8
%aaE=load i8*,i8**%aaD,align 8
%aaF=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%aaE)
%aaG=getelementptr inbounds i8,i8*%aaF,i64 16
%aaH=bitcast i8*%aaG to i8*(i8*,i8*)**
%aaI=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%aaH,align 8
%aaJ=bitcast i8*%aaF to i8**
%aaK=load i8*,i8**%aaJ,align 8
store i8*%aaK,i8**%g,align 8
%aaL=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aaM=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%aaL)
%aaN=call i8*@sml_alloc(i32 inreg 4)#0
%aaO=bitcast i8*%aaN to i32*
%aaP=getelementptr inbounds i8,i8*%aaN,i64 -4
%aaQ=bitcast i8*%aaP to i32*
store i32 4,i32*%aaQ,align 4
store i32%aaM,i32*%aaO,align 4
%aaR=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%aaS=call fastcc i8*%aaI(i8*inreg%aaR,i8*inreg%aaN)
%aaT=call i8*@sml_alloc(i32 inreg 20)#0
%aaU=getelementptr inbounds i8,i8*%aaT,i64 -4
%aaV=bitcast i8*%aaU to i32*
store i32 1342177296,i32*%aaV,align 4
store i8*%aaT,i8**%c,align 8
%aaW=getelementptr inbounds i8,i8*%aaT,i64 4
%aaX=bitcast i8*%aaW to i32*
store i32 0,i32*%aaX,align 1
%aaY=bitcast i8*%aaT to i32*
store i32 10,i32*%aaY,align 4
%aaZ=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aa0=getelementptr inbounds i8,i8*%aaT,i64 8
%aa1=bitcast i8*%aa0 to i8**
store i8*%aaZ,i8**%aa1,align 8
%aa2=getelementptr inbounds i8,i8*%aaT,i64 16
%aa3=bitcast i8*%aa2 to i32*
store i32 2,i32*%aa3,align 4
%aa4=call i8*@sml_alloc(i32 inreg 12)#0
%aa5=getelementptr inbounds i8,i8*%aa4,i64 -4
%aa6=bitcast i8*%aa5 to i32*
store i32 1342177288,i32*%aa6,align 4
%aa7=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aa8=bitcast i8*%aa4 to i8**
store i8*%aa7,i8**%aa8,align 8
%aa9=getelementptr inbounds i8,i8*%aa4,i64 8
%aba=bitcast i8*%aa9 to i32*
store i32 1,i32*%aba,align 4
%abb=icmp eq i8*%aa4,null
br i1%abb,label%abc,label%abe
abc:
store i8*null,i8**%f,align 8
%abd=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
store i8*%abd,i8**%c,align 8
br label%bBS
abe:
%abf=phi i8*[%aay,%aax],[%aa7,%aaz]
%abg=bitcast i8*%abf to i32*
%abh=load i32,i32*%abg,align 4
%abi=getelementptr inbounds i8,i8*%abf,i64 8
%abj=bitcast i8*%abi to i8**
%abk=load i8*,i8**%abj,align 8
store i8*%abk,i8**%c,align 8
%abl=icmp eq i32%abh,108
br i1%abl,label%abm,label%acm
abm:
store i8*null,i8**%e,align 8
%abn=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%abk)
%abo=icmp eq i8*%abn,null
br i1%abo,label%ab7,label%abp
abp:
%abq=bitcast i8*%abn to i8**
%abr=load i8*,i8**%abq,align 8
%abs=bitcast i8*%abr to i32*
%abt=load i32,i32*%abs,align 4
%abu=icmp eq i32%abt,10
br i1%abu,label%abv,label%ab7
abv:
%abw=getelementptr inbounds i8,i8*%abr,i64 8
%abx=bitcast i8*%abw to i8**
%aby=load i8*,i8**%abx,align 8
store i8*%aby,i8**%d,align 8
%abz=load i8**,i8***%o,align 8
%abA=load i8*,i8**%abz,align 8
%abB=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%abA)
%abC=getelementptr inbounds i8,i8*%abB,i64 16
%abD=bitcast i8*%abC to i8*(i8*,i8*)**
%abE=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%abD,align 8
%abF=bitcast i8*%abB to i8**
%abG=load i8*,i8**%abF,align 8
store i8*%abG,i8**%e,align 8
%abH=load i8*,i8**%c,align 8
%abI=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%abH)
%abJ=call i8*@sml_alloc(i32 inreg 4)#0
%abK=bitcast i8*%abJ to i32*
%abL=getelementptr inbounds i8,i8*%abJ,i64 -4
%abM=bitcast i8*%abL to i32*
store i32 4,i32*%abM,align 4
store i32%abI,i32*%abK,align 4
%abN=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%abO=call fastcc i8*%abE(i8*inreg%abN,i8*inreg%abJ)
%abP=call i8*@sml_alloc(i32 inreg 20)#0
%abQ=getelementptr inbounds i8,i8*%abP,i64 -4
%abR=bitcast i8*%abQ to i32*
store i32 1342177296,i32*%abR,align 4
store i8*%abP,i8**%e,align 8
%abS=getelementptr inbounds i8,i8*%abP,i64 4
%abT=bitcast i8*%abS to i32*
store i32 0,i32*%abT,align 1
%abU=bitcast i8*%abP to i32*
store i32 10,i32*%abU,align 4
%abV=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%abW=getelementptr inbounds i8,i8*%abP,i64 8
%abX=bitcast i8*%abW to i8**
store i8*%abV,i8**%abX,align 8
%abY=getelementptr inbounds i8,i8*%abP,i64 16
%abZ=bitcast i8*%abY to i32*
store i32 2,i32*%abZ,align 4
%ab0=call i8*@sml_alloc(i32 inreg 12)#0
%ab1=getelementptr inbounds i8,i8*%ab0,i64 -4
%ab2=bitcast i8*%ab1 to i32*
store i32 1342177288,i32*%ab2,align 4
%ab3=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%ab4=bitcast i8*%ab0 to i8**
store i8*%ab3,i8**%ab4,align 8
%ab5=getelementptr inbounds i8,i8*%ab0,i64 8
%ab6=bitcast i8*%ab5 to i32*
store i32 1,i32*%ab6,align 4
br label%ab7
ab7:
%ab8=call i8*@sml_alloc(i32 inreg 20)#0
%ab9=getelementptr inbounds i8,i8*%ab8,i64 -4
%aca=bitcast i8*%ab9 to i32*
store i32 1342177296,i32*%aca,align 4
%acb=load i8*,i8**%c,align 8
%acc=bitcast i8*%ab8 to i8**
store i8*%acb,i8**%acc,align 8
%acd=getelementptr inbounds i8,i8*%ab8,i64 8
%ace=bitcast i8*%acd to i8**
store i8*null,i8**%ace,align 8
%acf=getelementptr inbounds i8,i8*%ab8,i64 16
%acg=bitcast i8*%acf to i32*
store i32 3,i32*%acg,align 4
%ach=load i8*,i8**%f,align 8
%aci=getelementptr inbounds i8,i8*%ach,i64 16
%acj=bitcast i8*%aci to i8**
%ack=load i8*,i8**%acj,align 8
%acl=bitcast i8*%ack to i8**
call void@sml_write(i8*inreg%ack,i8**inreg%acl,i8*inreg%acb)#0
ret i8*bitcast(i32*getelementptr inbounds(<{[4x i8],i32,i32,[4x i8],i32}>,<{[4x i8],i32,i32,[4x i8],i32}>*@j,i64 0,i32 2)to i8*)
acm:
store i8*null,i8**%f,align 8
%acn=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
store i8*%acn,i8**%c,align 8
br label%bBS
aco:
store i8*null,i8**%f,align 8
%acp=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
store i8*%acp,i8**%c,align 8
br label%bBS
acq:
store i8*null,i8**%m,align 8
%acr=load i8*,i8**%f,align 8
%acs=getelementptr inbounds i8,i8*%acr,i64 16
%act=bitcast i8*%acs to i8***
%acu=load i8**,i8***%act,align 8
%acv=load i8*,i8**%acu,align 8
store i8*%acv,i8**%d,align 8
%acw=call i8*@sml_alloc(i32 inreg 20)#0
%acx=getelementptr inbounds i8,i8*%acw,i64 -4
%acy=bitcast i8*%acx to i32*
store i32 1342177296,i32*%acy,align 4
%acz=load i8*,i8**%c,align 8
%acA=bitcast i8*%acw to i8**
store i8*%acz,i8**%acA,align 8
%acB=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%acC=getelementptr inbounds i8,i8*%acw,i64 8
%acD=bitcast i8*%acC to i8**
store i8*%acB,i8**%acD,align 8
%acE=getelementptr inbounds i8,i8*%acw,i64 16
%acF=bitcast i8*%acE to i32*
store i32 3,i32*%acF,align 4
%acG=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%acw)
%acH=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%acG)
%acI=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%acJ=getelementptr inbounds i8,i8*%acI,i64 16
%acK=bitcast i8*%acJ to i8**
%acL=load i8*,i8**%acK,align 8
%acM=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%acN=bitcast i8*%acL to i8**
call void@sml_write(i8*inreg%acL,i8**inreg%acN,i8*inreg%acM)#0
%acO=call fastcc i8*@_SMLFN6String8toStringE(i8*inreg%acH)
store i8*%acO,i8**%c,align 8
%acP=call i8*@sml_alloc(i32 inreg 20)#0
%acQ=getelementptr inbounds i8,i8*%acP,i64 -4
%acR=bitcast i8*%acQ to i32*
store i32 1342177296,i32*%acR,align 4
store i8*%acP,i8**%d,align 8
%acS=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%acT=bitcast i8*%acP to i8**
store i8*%acS,i8**%acT,align 8
%acU=getelementptr inbounds i8,i8*%acP,i64 8
%acV=bitcast i8*%acU to i8**
store i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,i8*,i32}>,<{[4x i8],i32,i8*,i8*,i32}>*@x,i64 0,i32 2)to i8*),i8**%acV,align 8
%acW=getelementptr inbounds i8,i8*%acP,i64 16
%acX=bitcast i8*%acW to i32*
store i32 3,i32*%acX,align 4
%acY=call i8*@sml_alloc(i32 inreg 20)#0
%acZ=getelementptr inbounds i8,i8*%acY,i64 -4
%ac0=bitcast i8*%acZ to i32*
store i32 1342177296,i32*%ac0,align 4
store i8*%acY,i8**%c,align 8
%ac1=bitcast i8*%acY to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[16x i8]}>,<{[4x i8],i32,[16x i8]}>*@v,i64 0,i32 2,i64 0),i8**%ac1,align 8
%ac2=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%ac3=getelementptr inbounds i8,i8*%acY,i64 8
%ac4=bitcast i8*%ac3 to i8**
store i8*%ac2,i8**%ac4,align 8
%ac5=getelementptr inbounds i8,i8*%acY,i64 16
%ac6=bitcast i8*%ac5 to i32*
store i32 3,i32*%ac6,align 4
%ac7=call i8*@sml_alloc(i32 inreg 20)#0
%ac8=bitcast i8*%ac7 to i32*
%ac9=getelementptr inbounds i8,i8*%ac7,i64 -4
%ada=bitcast i8*%ac9 to i32*
store i32 1342177296,i32*%ada,align 4
%adb=getelementptr inbounds i8,i8*%ac7,i64 4
%adc=bitcast i8*%adb to i32*
store i32 0,i32*%adc,align 1
store i32 3,i32*%ac8,align 4
%add=load i8*,i8**%c,align 8
%ade=getelementptr inbounds i8,i8*%ac7,i64 8
%adf=bitcast i8*%ade to i8**
store i8*%add,i8**%adf,align 8
%adg=getelementptr inbounds i8,i8*%ac7,i64 16
%adh=bitcast i8*%adg to i32*
store i32 2,i32*%adh,align 4
ret i8*%ac7
adi:
%adj=icmp ugt i32%v4,109
br i1%adj,label%amy,label%adk
adk:
%adl=icmp eq i32%v4,93
br i1%adl,label%adm,label%aem
adm:
store i8*null,i8**%m,align 8
%adn=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%v7)
%ado=icmp eq i8*%adn,null
br i1%ado,label%ad7,label%adp
adp:
%adq=bitcast i8*%adn to i8**
%adr=load i8*,i8**%adq,align 8
%ads=bitcast i8*%adr to i32*
%adt=load i32,i32*%ads,align 4
%adu=icmp eq i32%adt,10
br i1%adu,label%adv,label%ad7
adv:
%adw=getelementptr inbounds i8,i8*%adr,i64 8
%adx=bitcast i8*%adw to i8**
%ady=load i8*,i8**%adx,align 8
store i8*%ady,i8**%d,align 8
%adz=load i8**,i8***%o,align 8
%adA=load i8*,i8**%adz,align 8
%adB=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%adA)
%adC=getelementptr inbounds i8,i8*%adB,i64 16
%adD=bitcast i8*%adC to i8*(i8*,i8*)**
%adE=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%adD,align 8
%adF=bitcast i8*%adB to i8**
%adG=load i8*,i8**%adF,align 8
store i8*%adG,i8**%e,align 8
%adH=load i8*,i8**%c,align 8
%adI=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%adH)
%adJ=call i8*@sml_alloc(i32 inreg 4)#0
%adK=bitcast i8*%adJ to i32*
%adL=getelementptr inbounds i8,i8*%adJ,i64 -4
%adM=bitcast i8*%adL to i32*
store i32 4,i32*%adM,align 4
store i32%adI,i32*%adK,align 4
%adN=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%adO=call fastcc i8*%adE(i8*inreg%adN,i8*inreg%adJ)
%adP=call i8*@sml_alloc(i32 inreg 20)#0
%adQ=getelementptr inbounds i8,i8*%adP,i64 -4
%adR=bitcast i8*%adQ to i32*
store i32 1342177296,i32*%adR,align 4
store i8*%adP,i8**%e,align 8
%adS=getelementptr inbounds i8,i8*%adP,i64 4
%adT=bitcast i8*%adS to i32*
store i32 0,i32*%adT,align 1
%adU=bitcast i8*%adP to i32*
store i32 10,i32*%adU,align 4
%adV=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%adW=getelementptr inbounds i8,i8*%adP,i64 8
%adX=bitcast i8*%adW to i8**
store i8*%adV,i8**%adX,align 8
%adY=getelementptr inbounds i8,i8*%adP,i64 16
%adZ=bitcast i8*%adY to i32*
store i32 2,i32*%adZ,align 4
%ad0=call i8*@sml_alloc(i32 inreg 12)#0
%ad1=getelementptr inbounds i8,i8*%ad0,i64 -4
%ad2=bitcast i8*%ad1 to i32*
store i32 1342177288,i32*%ad2,align 4
%ad3=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%ad4=bitcast i8*%ad0 to i8**
store i8*%ad3,i8**%ad4,align 8
%ad5=getelementptr inbounds i8,i8*%ad0,i64 8
%ad6=bitcast i8*%ad5 to i32*
store i32 1,i32*%ad6,align 4
br label%ad7
ad7:
%ad8=call i8*@sml_alloc(i32 inreg 20)#0
%ad9=getelementptr inbounds i8,i8*%ad8,i64 -4
%aea=bitcast i8*%ad9 to i32*
store i32 1342177296,i32*%aea,align 4
%aeb=load i8*,i8**%c,align 8
%aec=bitcast i8*%ad8 to i8**
store i8*%aeb,i8**%aec,align 8
%aed=getelementptr inbounds i8,i8*%ad8,i64 8
%aee=bitcast i8*%aed to i8**
store i8*null,i8**%aee,align 8
%aef=getelementptr inbounds i8,i8*%ad8,i64 16
%aeg=bitcast i8*%aef to i32*
store i32 3,i32*%aeg,align 4
%aeh=load i8*,i8**%f,align 8
%aei=getelementptr inbounds i8,i8*%aeh,i64 16
%aej=bitcast i8*%aei to i8**
%aek=load i8*,i8**%aej,align 8
%ael=bitcast i8*%aek to i8**
call void@sml_write(i8*inreg%aek,i8**inreg%ael,i8*inreg%aeb)#0
ret i8*bitcast(i32*getelementptr inbounds(<{[4x i8],i32,i32,[4x i8],i32}>,<{[4x i8],i32,i32,[4x i8],i32}>*@g,i64 0,i32 2)to i8*)
aem:
%aen=icmp ugt i32%v4,92
br i1%aen,label%afv,label%aeo
aeo:
store i8*null,i8**%m,align 8
%aep=icmp eq i32%v4,91
br i1%aep,label%aeq,label%afq
aeq:
%aer=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%v7)
%aes=icmp eq i8*%aer,null
br i1%aes,label%afb,label%aet
aet:
%aeu=bitcast i8*%aer to i8**
%aev=load i8*,i8**%aeu,align 8
%aew=bitcast i8*%aev to i32*
%aex=load i32,i32*%aew,align 4
%aey=icmp eq i32%aex,10
br i1%aey,label%aez,label%afb
aez:
%aeA=getelementptr inbounds i8,i8*%aev,i64 8
%aeB=bitcast i8*%aeA to i8**
%aeC=load i8*,i8**%aeB,align 8
store i8*%aeC,i8**%d,align 8
%aeD=load i8**,i8***%o,align 8
%aeE=load i8*,i8**%aeD,align 8
%aeF=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%aeE)
%aeG=getelementptr inbounds i8,i8*%aeF,i64 16
%aeH=bitcast i8*%aeG to i8*(i8*,i8*)**
%aeI=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%aeH,align 8
%aeJ=bitcast i8*%aeF to i8**
%aeK=load i8*,i8**%aeJ,align 8
store i8*%aeK,i8**%e,align 8
%aeL=load i8*,i8**%c,align 8
%aeM=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%aeL)
%aeN=call i8*@sml_alloc(i32 inreg 4)#0
%aeO=bitcast i8*%aeN to i32*
%aeP=getelementptr inbounds i8,i8*%aeN,i64 -4
%aeQ=bitcast i8*%aeP to i32*
store i32 4,i32*%aeQ,align 4
store i32%aeM,i32*%aeO,align 4
%aeR=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%aeS=call fastcc i8*%aeI(i8*inreg%aeR,i8*inreg%aeN)
%aeT=call i8*@sml_alloc(i32 inreg 20)#0
%aeU=getelementptr inbounds i8,i8*%aeT,i64 -4
%aeV=bitcast i8*%aeU to i32*
store i32 1342177296,i32*%aeV,align 4
store i8*%aeT,i8**%e,align 8
%aeW=getelementptr inbounds i8,i8*%aeT,i64 4
%aeX=bitcast i8*%aeW to i32*
store i32 0,i32*%aeX,align 1
%aeY=bitcast i8*%aeT to i32*
store i32 10,i32*%aeY,align 4
%aeZ=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%ae0=getelementptr inbounds i8,i8*%aeT,i64 8
%ae1=bitcast i8*%ae0 to i8**
store i8*%aeZ,i8**%ae1,align 8
%ae2=getelementptr inbounds i8,i8*%aeT,i64 16
%ae3=bitcast i8*%ae2 to i32*
store i32 2,i32*%ae3,align 4
%ae4=call i8*@sml_alloc(i32 inreg 12)#0
%ae5=getelementptr inbounds i8,i8*%ae4,i64 -4
%ae6=bitcast i8*%ae5 to i32*
store i32 1342177288,i32*%ae6,align 4
%ae7=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%ae8=bitcast i8*%ae4 to i8**
store i8*%ae7,i8**%ae8,align 8
%ae9=getelementptr inbounds i8,i8*%ae4,i64 8
%afa=bitcast i8*%ae9 to i32*
store i32 1,i32*%afa,align 4
br label%afb
afb:
%afc=call i8*@sml_alloc(i32 inreg 20)#0
%afd=getelementptr inbounds i8,i8*%afc,i64 -4
%afe=bitcast i8*%afd to i32*
store i32 1342177296,i32*%afe,align 4
%aff=load i8*,i8**%c,align 8
%afg=bitcast i8*%afc to i8**
store i8*%aff,i8**%afg,align 8
%afh=getelementptr inbounds i8,i8*%afc,i64 8
%afi=bitcast i8*%afh to i8**
store i8*null,i8**%afi,align 8
%afj=getelementptr inbounds i8,i8*%afc,i64 16
%afk=bitcast i8*%afj to i32*
store i32 3,i32*%afk,align 4
%afl=load i8*,i8**%f,align 8
%afm=getelementptr inbounds i8,i8*%afl,i64 16
%afn=bitcast i8*%afm to i8**
%afo=load i8*,i8**%afn,align 8
%afp=bitcast i8*%afo to i8**
call void@sml_write(i8*inreg%afo,i8**inreg%afp,i8*inreg%aff)#0
ret i8*bitcast(i32*getelementptr inbounds(<{[4x i8],i32,i32,[4x i8],i32}>,<{[4x i8],i32,i32,[4x i8],i32}>*@f,i64 0,i32 2)to i8*)
afq:
%afr=call i8*@sml_alloc(i32 inreg 20)#0
%afs=getelementptr inbounds i8,i8*%afr,i64 -4
%aft=bitcast i8*%afs to i32*
store i32 1342177296,i32*%aft,align 4
%afu=load i8*,i8**%c,align 8
br label%aHg
afv:
%afw=icmp eq i32%v4,102
br i1%afw,label%afx,label%amt
afx:
%afy=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%v7)
%afz=icmp eq i8*%afy,null
br i1%afz,label%agm,label%afA
afA:
%afB=bitcast i8*%afy to i8**
%afC=load i8*,i8**%afB,align 8
%afD=bitcast i8*%afC to i32*
%afE=load i32,i32*%afD,align 4
%afF=icmp eq i32%afE,10
br i1%afF,label%afG,label%ahe
afG:
%afH=getelementptr inbounds i8,i8*%afC,i64 8
%afI=bitcast i8*%afH to i8**
%afJ=load i8*,i8**%afI,align 8
store i8*%afJ,i8**%d,align 8
%afK=load i8**,i8***%o,align 8
%afL=load i8*,i8**%afK,align 8
%afM=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%afL)
%afN=getelementptr inbounds i8,i8*%afM,i64 16
%afO=bitcast i8*%afN to i8*(i8*,i8*)**
%afP=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%afO,align 8
%afQ=bitcast i8*%afM to i8**
%afR=load i8*,i8**%afQ,align 8
store i8*%afR,i8**%e,align 8
%afS=load i8*,i8**%c,align 8
%afT=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%afS)
%afU=call i8*@sml_alloc(i32 inreg 4)#0
%afV=bitcast i8*%afU to i32*
%afW=getelementptr inbounds i8,i8*%afU,i64 -4
%afX=bitcast i8*%afW to i32*
store i32 4,i32*%afX,align 4
store i32%afT,i32*%afV,align 4
%afY=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%afZ=call fastcc i8*%afP(i8*inreg%afY,i8*inreg%afU)
%af0=call i8*@sml_alloc(i32 inreg 20)#0
%af1=getelementptr inbounds i8,i8*%af0,i64 -4
%af2=bitcast i8*%af1 to i32*
store i32 1342177296,i32*%af2,align 4
store i8*%af0,i8**%e,align 8
%af3=getelementptr inbounds i8,i8*%af0,i64 4
%af4=bitcast i8*%af3 to i32*
store i32 0,i32*%af4,align 1
%af5=bitcast i8*%af0 to i32*
store i32 10,i32*%af5,align 4
%af6=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%af7=getelementptr inbounds i8,i8*%af0,i64 8
%af8=bitcast i8*%af7 to i8**
store i8*%af6,i8**%af8,align 8
%af9=getelementptr inbounds i8,i8*%af0,i64 16
%aga=bitcast i8*%af9 to i32*
store i32 2,i32*%aga,align 4
%agb=call i8*@sml_alloc(i32 inreg 12)#0
%agc=getelementptr inbounds i8,i8*%agb,i64 -4
%agd=bitcast i8*%agc to i32*
store i32 1342177288,i32*%agd,align 4
%age=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%agf=bitcast i8*%agb to i8**
store i8*%age,i8**%agf,align 8
%agg=getelementptr inbounds i8,i8*%agb,i64 8
%agh=bitcast i8*%agg to i32*
store i32 1,i32*%agh,align 4
%agi=icmp eq i8*%agb,null
br i1%agi,label%agm,label%agj
agj:
%agk=bitcast i8*%age to i32*
%agl=load i32,i32*%agk,align 4
br label%ahe
agm:
store i8*null,i8**%m,align 8
%agn=load i8*,i8**%f,align 8
%ago=getelementptr inbounds i8,i8*%agn,i64 16
%agp=bitcast i8*%ago to i8***
%agq=load i8**,i8***%agp,align 8
%agr=load i8*,i8**%agq,align 8
store i8*%agr,i8**%d,align 8
%ags=call i8*@sml_alloc(i32 inreg 20)#0
%agt=getelementptr inbounds i8,i8*%ags,i64 -4
%agu=bitcast i8*%agt to i32*
store i32 1342177296,i32*%agu,align 4
%agv=load i8*,i8**%c,align 8
%agw=bitcast i8*%ags to i8**
store i8*%agv,i8**%agw,align 8
%agx=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%agy=getelementptr inbounds i8,i8*%ags,i64 8
%agz=bitcast i8*%agy to i8**
store i8*%agx,i8**%agz,align 8
%agA=getelementptr inbounds i8,i8*%ags,i64 16
%agB=bitcast i8*%agA to i32*
store i32 3,i32*%agB,align 4
%agC=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%ags)
%agD=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%agC)
%agE=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%agF=getelementptr inbounds i8,i8*%agE,i64 16
%agG=bitcast i8*%agF to i8**
%agH=load i8*,i8**%agG,align 8
%agI=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%agJ=bitcast i8*%agH to i8**
call void@sml_write(i8*inreg%agH,i8**inreg%agJ,i8*inreg%agI)#0
%agK=call fastcc i8*@_SMLFN6String8toStringE(i8*inreg%agD)
store i8*%agK,i8**%c,align 8
%agL=call i8*@sml_alloc(i32 inreg 20)#0
%agM=getelementptr inbounds i8,i8*%agL,i64 -4
%agN=bitcast i8*%agM to i32*
store i32 1342177296,i32*%agN,align 4
store i8*%agL,i8**%d,align 8
%agO=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%agP=bitcast i8*%agL to i8**
store i8*%agO,i8**%agP,align 8
%agQ=getelementptr inbounds i8,i8*%agL,i64 8
%agR=bitcast i8*%agQ to i8**
store i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,i8*,i32}>,<{[4x i8],i32,i8*,i8*,i32}>*@x,i64 0,i32 2)to i8*),i8**%agR,align 8
%agS=getelementptr inbounds i8,i8*%agL,i64 16
%agT=bitcast i8*%agS to i32*
store i32 3,i32*%agT,align 4
%agU=call i8*@sml_alloc(i32 inreg 20)#0
%agV=getelementptr inbounds i8,i8*%agU,i64 -4
%agW=bitcast i8*%agV to i32*
store i32 1342177296,i32*%agW,align 4
store i8*%agU,i8**%c,align 8
%agX=bitcast i8*%agU to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[16x i8]}>,<{[4x i8],i32,[16x i8]}>*@v,i64 0,i32 2,i64 0),i8**%agX,align 8
%agY=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%agZ=getelementptr inbounds i8,i8*%agU,i64 8
%ag0=bitcast i8*%agZ to i8**
store i8*%agY,i8**%ag0,align 8
%ag1=getelementptr inbounds i8,i8*%agU,i64 16
%ag2=bitcast i8*%ag1 to i32*
store i32 3,i32*%ag2,align 4
%ag3=call i8*@sml_alloc(i32 inreg 20)#0
%ag4=bitcast i8*%ag3 to i32*
%ag5=getelementptr inbounds i8,i8*%ag3,i64 -4
%ag6=bitcast i8*%ag5 to i32*
store i32 1342177296,i32*%ag6,align 4
%ag7=getelementptr inbounds i8,i8*%ag3,i64 4
%ag8=bitcast i8*%ag7 to i32*
store i32 0,i32*%ag8,align 1
store i32 3,i32*%ag4,align 4
%ag9=load i8*,i8**%c,align 8
%aha=getelementptr inbounds i8,i8*%ag3,i64 8
%ahb=bitcast i8*%aha to i8**
store i8*%ag9,i8**%ahb,align 8
%ahc=getelementptr inbounds i8,i8*%ag3,i64 16
%ahd=bitcast i8*%ahc to i32*
store i32 2,i32*%ahd,align 4
ret i8*%ag3
ahe:
%ahf=phi i32[%agl,%agj],[%afE,%afA]
%ahg=phi i8*[%age,%agj],[%afC,%afA]
%ahh=getelementptr inbounds i8,i8*%ahg,i64 8
%ahi=bitcast i8*%ahh to i8**
%ahj=load i8*,i8**%ahi,align 8
store i8*%ahj,i8**%d,align 8
%ahk=icmp eq i32%ahf,97
br i1%ahk,label%ahl,label%alB
ahl:
%ahm=call i8*@sml_alloc(i32 inreg 28)#0
%ahn=getelementptr inbounds i8,i8*%ahm,i64 -4
%aho=bitcast i8*%ahn to i32*
store i32 1342177304,i32*%aho,align 4
store i8*%ahm,i8**%e,align 8
%ahp=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%ahq=bitcast i8*%ahm to i8**
store i8*%ahp,i8**%ahq,align 8
%ahr=load i8*,i8**%m,align 8
store i8*null,i8**%m,align 8
%ahs=getelementptr inbounds i8,i8*%ahm,i64 8
%aht=bitcast i8*%ahs to i8**
store i8*%ahr,i8**%aht,align 8
%ahu=getelementptr inbounds i8,i8*%ahm,i64 16
%ahv=bitcast i8*%ahu to i8**
store i8*null,i8**%ahv,align 8
%ahw=getelementptr inbounds i8,i8*%ahm,i64 24
%ahx=bitcast i8*%ahw to i32*
store i32 7,i32*%ahx,align 4
%ahy=load i8*,i8**%d,align 8
%ahz=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%ahy)
%ahA=icmp eq i8*%ahz,null
br i1%ahA,label%ahB,label%ahC
ahB:
store i8*null,i8**%d,align 8
br label%ain
ahC:
%ahD=bitcast i8*%ahz to i8**
%ahE=load i8*,i8**%ahD,align 8
%ahF=bitcast i8*%ahE to i32*
%ahG=load i32,i32*%ahF,align 4
%ahH=icmp eq i32%ahG,10
br i1%ahH,label%ahK,label%ahI
ahI:
store i8*null,i8**%d,align 8
%ahJ=load i8*,i8**%ahD,align 8
br label%aip
ahK:
%ahL=getelementptr inbounds i8,i8*%ahE,i64 8
%ahM=bitcast i8*%ahL to i8**
%ahN=load i8*,i8**%ahM,align 8
store i8*%ahN,i8**%c,align 8
%ahO=load i8**,i8***%o,align 8
%ahP=load i8*,i8**%ahO,align 8
%ahQ=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%ahP)
%ahR=getelementptr inbounds i8,i8*%ahQ,i64 16
%ahS=bitcast i8*%ahR to i8*(i8*,i8*)**
%ahT=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%ahS,align 8
%ahU=bitcast i8*%ahQ to i8**
%ahV=load i8*,i8**%ahU,align 8
store i8*%ahV,i8**%g,align 8
%ahW=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%ahX=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%ahW)
%ahY=call i8*@sml_alloc(i32 inreg 4)#0
%ahZ=bitcast i8*%ahY to i32*
%ah0=getelementptr inbounds i8,i8*%ahY,i64 -4
%ah1=bitcast i8*%ah0 to i32*
store i32 4,i32*%ah1,align 4
store i32%ahX,i32*%ahZ,align 4
%ah2=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%ah3=call fastcc i8*%ahT(i8*inreg%ah2,i8*inreg%ahY)
%ah4=call i8*@sml_alloc(i32 inreg 20)#0
%ah5=getelementptr inbounds i8,i8*%ah4,i64 -4
%ah6=bitcast i8*%ah5 to i32*
store i32 1342177296,i32*%ah6,align 4
store i8*%ah4,i8**%d,align 8
%ah7=getelementptr inbounds i8,i8*%ah4,i64 4
%ah8=bitcast i8*%ah7 to i32*
store i32 0,i32*%ah8,align 1
%ah9=bitcast i8*%ah4 to i32*
store i32 10,i32*%ah9,align 4
%aia=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aib=getelementptr inbounds i8,i8*%ah4,i64 8
%aic=bitcast i8*%aib to i8**
store i8*%aia,i8**%aic,align 8
%aid=getelementptr inbounds i8,i8*%ah4,i64 16
%aie=bitcast i8*%aid to i32*
store i32 2,i32*%aie,align 4
%aif=call i8*@sml_alloc(i32 inreg 12)#0
%aig=getelementptr inbounds i8,i8*%aif,i64 -4
%aih=bitcast i8*%aig to i32*
store i32 1342177288,i32*%aih,align 4
%aii=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aij=bitcast i8*%aif to i8**
store i8*%aii,i8**%aij,align 8
%aik=getelementptr inbounds i8,i8*%aif,i64 8
%ail=bitcast i8*%aik to i32*
store i32 1,i32*%ail,align 4
%aim=icmp eq i8*%aif,null
br i1%aim,label%ain,label%aip
ain:
store i8*null,i8**%f,align 8
%aio=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
store i8*%aio,i8**%c,align 8
br label%bBS
aip:
%aiq=phi i8*[%ahJ,%ahI],[%aii,%ahK]
%air=bitcast i8*%aiq to i32*
%ais=load i32,i32*%air,align 4
%ait=getelementptr inbounds i8,i8*%aiq,i64 8
%aiu=bitcast i8*%ait to i8**
%aiv=load i8*,i8**%aiu,align 8
store i8*%aiv,i8**%c,align 8
%aiw=icmp eq i32%ais,108
br i1%aiw,label%aix,label%alz
aix:
%aiy=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%aiv)
%aiz=icmp eq i8*%aiy,null
br i1%aiz,label%aiA,label%aiB
aiA:
store i8*null,i8**%c,align 8
br label%ajm
aiB:
%aiC=bitcast i8*%aiy to i8**
%aiD=load i8*,i8**%aiC,align 8
%aiE=bitcast i8*%aiD to i32*
%aiF=load i32,i32*%aiE,align 4
%aiG=icmp eq i32%aiF,10
br i1%aiG,label%aiJ,label%aiH
aiH:
store i8*null,i8**%c,align 8
%aiI=load i8*,i8**%aiC,align 8
br label%ajo
aiJ:
%aiK=getelementptr inbounds i8,i8*%aiD,i64 8
%aiL=bitcast i8*%aiK to i8**
%aiM=load i8*,i8**%aiL,align 8
store i8*%aiM,i8**%d,align 8
%aiN=load i8**,i8***%o,align 8
%aiO=load i8*,i8**%aiN,align 8
%aiP=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%aiO)
%aiQ=getelementptr inbounds i8,i8*%aiP,i64 16
%aiR=bitcast i8*%aiQ to i8*(i8*,i8*)**
%aiS=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%aiR,align 8
%aiT=bitcast i8*%aiP to i8**
%aiU=load i8*,i8**%aiT,align 8
store i8*%aiU,i8**%g,align 8
%aiV=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aiW=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%aiV)
%aiX=call i8*@sml_alloc(i32 inreg 4)#0
%aiY=bitcast i8*%aiX to i32*
%aiZ=getelementptr inbounds i8,i8*%aiX,i64 -4
%ai0=bitcast i8*%aiZ to i32*
store i32 4,i32*%ai0,align 4
store i32%aiW,i32*%aiY,align 4
%ai1=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%ai2=call fastcc i8*%aiS(i8*inreg%ai1,i8*inreg%aiX)
%ai3=call i8*@sml_alloc(i32 inreg 20)#0
%ai4=getelementptr inbounds i8,i8*%ai3,i64 -4
%ai5=bitcast i8*%ai4 to i32*
store i32 1342177296,i32*%ai5,align 4
store i8*%ai3,i8**%c,align 8
%ai6=getelementptr inbounds i8,i8*%ai3,i64 4
%ai7=bitcast i8*%ai6 to i32*
store i32 0,i32*%ai7,align 1
%ai8=bitcast i8*%ai3 to i32*
store i32 10,i32*%ai8,align 4
%ai9=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aja=getelementptr inbounds i8,i8*%ai3,i64 8
%ajb=bitcast i8*%aja to i8**
store i8*%ai9,i8**%ajb,align 8
%ajc=getelementptr inbounds i8,i8*%ai3,i64 16
%ajd=bitcast i8*%ajc to i32*
store i32 2,i32*%ajd,align 4
%aje=call i8*@sml_alloc(i32 inreg 12)#0
%ajf=getelementptr inbounds i8,i8*%aje,i64 -4
%ajg=bitcast i8*%ajf to i32*
store i32 1342177288,i32*%ajg,align 4
%ajh=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aji=bitcast i8*%aje to i8**
store i8*%ajh,i8**%aji,align 8
%ajj=getelementptr inbounds i8,i8*%aje,i64 8
%ajk=bitcast i8*%ajj to i32*
store i32 1,i32*%ajk,align 4
%ajl=icmp eq i8*%aje,null
br i1%ajl,label%ajm,label%ajo
ajm:
store i8*null,i8**%f,align 8
%ajn=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
store i8*%ajn,i8**%c,align 8
br label%bBS
ajo:
%ajp=phi i8*[%aiI,%aiH],[%ajh,%aiJ]
%ajq=bitcast i8*%ajp to i32*
%ajr=load i32,i32*%ajq,align 4
%ajs=getelementptr inbounds i8,i8*%ajp,i64 8
%ajt=bitcast i8*%ajs to i8**
%aju=load i8*,i8**%ajt,align 8
store i8*%aju,i8**%c,align 8
%ajv=icmp eq i32%ajr,115
br i1%ajv,label%ajw,label%alx
ajw:
%ajx=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%aju)
%ajy=icmp eq i8*%ajx,null
br i1%ajy,label%ajz,label%ajA
ajz:
store i8*null,i8**%c,align 8
br label%akl
ajA:
%ajB=bitcast i8*%ajx to i8**
%ajC=load i8*,i8**%ajB,align 8
%ajD=bitcast i8*%ajC to i32*
%ajE=load i32,i32*%ajD,align 4
%ajF=icmp eq i32%ajE,10
br i1%ajF,label%ajI,label%ajG
ajG:
store i8*null,i8**%c,align 8
%ajH=load i8*,i8**%ajB,align 8
br label%akn
ajI:
%ajJ=getelementptr inbounds i8,i8*%ajC,i64 8
%ajK=bitcast i8*%ajJ to i8**
%ajL=load i8*,i8**%ajK,align 8
store i8*%ajL,i8**%d,align 8
%ajM=load i8**,i8***%o,align 8
%ajN=load i8*,i8**%ajM,align 8
%ajO=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%ajN)
%ajP=getelementptr inbounds i8,i8*%ajO,i64 16
%ajQ=bitcast i8*%ajP to i8*(i8*,i8*)**
%ajR=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%ajQ,align 8
%ajS=bitcast i8*%ajO to i8**
%ajT=load i8*,i8**%ajS,align 8
store i8*%ajT,i8**%g,align 8
%ajU=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%ajV=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%ajU)
%ajW=call i8*@sml_alloc(i32 inreg 4)#0
%ajX=bitcast i8*%ajW to i32*
%ajY=getelementptr inbounds i8,i8*%ajW,i64 -4
%ajZ=bitcast i8*%ajY to i32*
store i32 4,i32*%ajZ,align 4
store i32%ajV,i32*%ajX,align 4
%aj0=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%aj1=call fastcc i8*%ajR(i8*inreg%aj0,i8*inreg%ajW)
%aj2=call i8*@sml_alloc(i32 inreg 20)#0
%aj3=getelementptr inbounds i8,i8*%aj2,i64 -4
%aj4=bitcast i8*%aj3 to i32*
store i32 1342177296,i32*%aj4,align 4
store i8*%aj2,i8**%c,align 8
%aj5=getelementptr inbounds i8,i8*%aj2,i64 4
%aj6=bitcast i8*%aj5 to i32*
store i32 0,i32*%aj6,align 1
%aj7=bitcast i8*%aj2 to i32*
store i32 10,i32*%aj7,align 4
%aj8=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aj9=getelementptr inbounds i8,i8*%aj2,i64 8
%aka=bitcast i8*%aj9 to i8**
store i8*%aj8,i8**%aka,align 8
%akb=getelementptr inbounds i8,i8*%aj2,i64 16
%akc=bitcast i8*%akb to i32*
store i32 2,i32*%akc,align 4
%akd=call i8*@sml_alloc(i32 inreg 12)#0
%ake=getelementptr inbounds i8,i8*%akd,i64 -4
%akf=bitcast i8*%ake to i32*
store i32 1342177288,i32*%akf,align 4
%akg=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%akh=bitcast i8*%akd to i8**
store i8*%akg,i8**%akh,align 8
%aki=getelementptr inbounds i8,i8*%akd,i64 8
%akj=bitcast i8*%aki to i32*
store i32 1,i32*%akj,align 4
%akk=icmp eq i8*%akd,null
br i1%akk,label%akl,label%akn
akl:
store i8*null,i8**%f,align 8
%akm=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
store i8*%akm,i8**%c,align 8
br label%bBS
akn:
%ako=phi i8*[%ajH,%ajG],[%akg,%ajI]
%akp=bitcast i8*%ako to i32*
%akq=load i32,i32*%akp,align 4
%akr=getelementptr inbounds i8,i8*%ako,i64 8
%aks=bitcast i8*%akr to i8**
%akt=load i8*,i8**%aks,align 8
store i8*%akt,i8**%c,align 8
%aku=icmp eq i32%akq,101
br i1%aku,label%akv,label%alv
akv:
store i8*null,i8**%e,align 8
%akw=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%akt)
%akx=icmp eq i8*%akw,null
br i1%akx,label%alg,label%aky
aky:
%akz=bitcast i8*%akw to i8**
%akA=load i8*,i8**%akz,align 8
%akB=bitcast i8*%akA to i32*
%akC=load i32,i32*%akB,align 4
%akD=icmp eq i32%akC,10
br i1%akD,label%akE,label%alg
akE:
%akF=getelementptr inbounds i8,i8*%akA,i64 8
%akG=bitcast i8*%akF to i8**
%akH=load i8*,i8**%akG,align 8
store i8*%akH,i8**%d,align 8
%akI=load i8**,i8***%o,align 8
%akJ=load i8*,i8**%akI,align 8
%akK=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%akJ)
%akL=getelementptr inbounds i8,i8*%akK,i64 16
%akM=bitcast i8*%akL to i8*(i8*,i8*)**
%akN=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%akM,align 8
%akO=bitcast i8*%akK to i8**
%akP=load i8*,i8**%akO,align 8
store i8*%akP,i8**%e,align 8
%akQ=load i8*,i8**%c,align 8
%akR=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%akQ)
%akS=call i8*@sml_alloc(i32 inreg 4)#0
%akT=bitcast i8*%akS to i32*
%akU=getelementptr inbounds i8,i8*%akS,i64 -4
%akV=bitcast i8*%akU to i32*
store i32 4,i32*%akV,align 4
store i32%akR,i32*%akT,align 4
%akW=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%akX=call fastcc i8*%akN(i8*inreg%akW,i8*inreg%akS)
%akY=call i8*@sml_alloc(i32 inreg 20)#0
%akZ=getelementptr inbounds i8,i8*%akY,i64 -4
%ak0=bitcast i8*%akZ to i32*
store i32 1342177296,i32*%ak0,align 4
store i8*%akY,i8**%e,align 8
%ak1=getelementptr inbounds i8,i8*%akY,i64 4
%ak2=bitcast i8*%ak1 to i32*
store i32 0,i32*%ak2,align 1
%ak3=bitcast i8*%akY to i32*
store i32 10,i32*%ak3,align 4
%ak4=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%ak5=getelementptr inbounds i8,i8*%akY,i64 8
%ak6=bitcast i8*%ak5 to i8**
store i8*%ak4,i8**%ak6,align 8
%ak7=getelementptr inbounds i8,i8*%akY,i64 16
%ak8=bitcast i8*%ak7 to i32*
store i32 2,i32*%ak8,align 4
%ak9=call i8*@sml_alloc(i32 inreg 12)#0
%ala=getelementptr inbounds i8,i8*%ak9,i64 -4
%alb=bitcast i8*%ala to i32*
store i32 1342177288,i32*%alb,align 4
%alc=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%ald=bitcast i8*%ak9 to i8**
store i8*%alc,i8**%ald,align 8
%ale=getelementptr inbounds i8,i8*%ak9,i64 8
%alf=bitcast i8*%ale to i32*
store i32 1,i32*%alf,align 4
br label%alg
alg:
%alh=call i8*@sml_alloc(i32 inreg 20)#0
%ali=getelementptr inbounds i8,i8*%alh,i64 -4
%alj=bitcast i8*%ali to i32*
store i32 1342177296,i32*%alj,align 4
%alk=load i8*,i8**%c,align 8
%all=bitcast i8*%alh to i8**
store i8*%alk,i8**%all,align 8
%alm=getelementptr inbounds i8,i8*%alh,i64 8
%aln=bitcast i8*%alm to i8**
store i8*null,i8**%aln,align 8
%alo=getelementptr inbounds i8,i8*%alh,i64 16
%alp=bitcast i8*%alo to i32*
store i32 3,i32*%alp,align 4
%alq=load i8*,i8**%f,align 8
%alr=getelementptr inbounds i8,i8*%alq,i64 16
%als=bitcast i8*%alr to i8**
%alt=load i8*,i8**%als,align 8
%alu=bitcast i8*%alt to i8**
call void@sml_write(i8*inreg%alt,i8**inreg%alu,i8*inreg%alk)#0
ret i8*bitcast(i32*getelementptr inbounds(<{[4x i8],i32,i32,[4x i8],i32}>,<{[4x i8],i32,i32,[4x i8],i32}>*@l,i64 0,i32 2)to i8*)
alv:
store i8*null,i8**%f,align 8
%alw=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
store i8*%alw,i8**%c,align 8
br label%bBS
alx:
store i8*null,i8**%f,align 8
%aly=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
store i8*%aly,i8**%c,align 8
br label%bBS
alz:
store i8*null,i8**%f,align 8
%alA=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
store i8*%alA,i8**%c,align 8
br label%bBS
alB:
store i8*null,i8**%m,align 8
%alC=load i8*,i8**%f,align 8
%alD=getelementptr inbounds i8,i8*%alC,i64 16
%alE=bitcast i8*%alD to i8***
%alF=load i8**,i8***%alE,align 8
%alG=load i8*,i8**%alF,align 8
store i8*%alG,i8**%d,align 8
%alH=call i8*@sml_alloc(i32 inreg 20)#0
%alI=getelementptr inbounds i8,i8*%alH,i64 -4
%alJ=bitcast i8*%alI to i32*
store i32 1342177296,i32*%alJ,align 4
%alK=load i8*,i8**%c,align 8
%alL=bitcast i8*%alH to i8**
store i8*%alK,i8**%alL,align 8
%alM=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%alN=getelementptr inbounds i8,i8*%alH,i64 8
%alO=bitcast i8*%alN to i8**
store i8*%alM,i8**%alO,align 8
%alP=getelementptr inbounds i8,i8*%alH,i64 16
%alQ=bitcast i8*%alP to i32*
store i32 3,i32*%alQ,align 4
%alR=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%alH)
%alS=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%alR)
%alT=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%alU=getelementptr inbounds i8,i8*%alT,i64 16
%alV=bitcast i8*%alU to i8**
%alW=load i8*,i8**%alV,align 8
%alX=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%alY=bitcast i8*%alW to i8**
call void@sml_write(i8*inreg%alW,i8**inreg%alY,i8*inreg%alX)#0
%alZ=call fastcc i8*@_SMLFN6String8toStringE(i8*inreg%alS)
store i8*%alZ,i8**%c,align 8
%al0=call i8*@sml_alloc(i32 inreg 20)#0
%al1=getelementptr inbounds i8,i8*%al0,i64 -4
%al2=bitcast i8*%al1 to i32*
store i32 1342177296,i32*%al2,align 4
store i8*%al0,i8**%d,align 8
%al3=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%al4=bitcast i8*%al0 to i8**
store i8*%al3,i8**%al4,align 8
%al5=getelementptr inbounds i8,i8*%al0,i64 8
%al6=bitcast i8*%al5 to i8**
store i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,i8*,i32}>,<{[4x i8],i32,i8*,i8*,i32}>*@x,i64 0,i32 2)to i8*),i8**%al6,align 8
%al7=getelementptr inbounds i8,i8*%al0,i64 16
%al8=bitcast i8*%al7 to i32*
store i32 3,i32*%al8,align 4
%al9=call i8*@sml_alloc(i32 inreg 20)#0
%ama=getelementptr inbounds i8,i8*%al9,i64 -4
%amb=bitcast i8*%ama to i32*
store i32 1342177296,i32*%amb,align 4
store i8*%al9,i8**%c,align 8
%amc=bitcast i8*%al9 to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[16x i8]}>,<{[4x i8],i32,[16x i8]}>*@v,i64 0,i32 2,i64 0),i8**%amc,align 8
%amd=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%ame=getelementptr inbounds i8,i8*%al9,i64 8
%amf=bitcast i8*%ame to i8**
store i8*%amd,i8**%amf,align 8
%amg=getelementptr inbounds i8,i8*%al9,i64 16
%amh=bitcast i8*%amg to i32*
store i32 3,i32*%amh,align 4
%ami=call i8*@sml_alloc(i32 inreg 20)#0
%amj=bitcast i8*%ami to i32*
%amk=getelementptr inbounds i8,i8*%ami,i64 -4
%aml=bitcast i8*%amk to i32*
store i32 1342177296,i32*%aml,align 4
%amm=getelementptr inbounds i8,i8*%ami,i64 4
%amn=bitcast i8*%amm to i32*
store i32 0,i32*%amn,align 1
store i32 3,i32*%amj,align 4
%amo=load i8*,i8**%c,align 8
%amp=getelementptr inbounds i8,i8*%ami,i64 8
%amq=bitcast i8*%amp to i8**
store i8*%amo,i8**%amq,align 8
%amr=getelementptr inbounds i8,i8*%ami,i64 16
%ams=bitcast i8*%amr to i32*
store i32 2,i32*%ams,align 4
ret i8*%ami
amt:
store i8*null,i8**%m,align 8
%amu=call i8*@sml_alloc(i32 inreg 20)#0
%amv=getelementptr inbounds i8,i8*%amu,i64 -4
%amw=bitcast i8*%amv to i32*
store i32 1342177296,i32*%amw,align 4
%amx=load i8*,i8**%c,align 8
br label%aHg
amy:
%amz=icmp eq i32%v4,123
br i1%amz,label%amA,label%anA
amA:
store i8*null,i8**%m,align 8
%amB=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%v7)
%amC=icmp eq i8*%amB,null
br i1%amC,label%anl,label%amD
amD:
%amE=bitcast i8*%amB to i8**
%amF=load i8*,i8**%amE,align 8
%amG=bitcast i8*%amF to i32*
%amH=load i32,i32*%amG,align 4
%amI=icmp eq i32%amH,10
br i1%amI,label%amJ,label%anl
amJ:
%amK=getelementptr inbounds i8,i8*%amF,i64 8
%amL=bitcast i8*%amK to i8**
%amM=load i8*,i8**%amL,align 8
store i8*%amM,i8**%d,align 8
%amN=load i8**,i8***%o,align 8
%amO=load i8*,i8**%amN,align 8
%amP=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%amO)
%amQ=getelementptr inbounds i8,i8*%amP,i64 16
%amR=bitcast i8*%amQ to i8*(i8*,i8*)**
%amS=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%amR,align 8
%amT=bitcast i8*%amP to i8**
%amU=load i8*,i8**%amT,align 8
store i8*%amU,i8**%e,align 8
%amV=load i8*,i8**%c,align 8
%amW=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%amV)
%amX=call i8*@sml_alloc(i32 inreg 4)#0
%amY=bitcast i8*%amX to i32*
%amZ=getelementptr inbounds i8,i8*%amX,i64 -4
%am0=bitcast i8*%amZ to i32*
store i32 4,i32*%am0,align 4
store i32%amW,i32*%amY,align 4
%am1=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%am2=call fastcc i8*%amS(i8*inreg%am1,i8*inreg%amX)
%am3=call i8*@sml_alloc(i32 inreg 20)#0
%am4=getelementptr inbounds i8,i8*%am3,i64 -4
%am5=bitcast i8*%am4 to i32*
store i32 1342177296,i32*%am5,align 4
store i8*%am3,i8**%e,align 8
%am6=getelementptr inbounds i8,i8*%am3,i64 4
%am7=bitcast i8*%am6 to i32*
store i32 0,i32*%am7,align 1
%am8=bitcast i8*%am3 to i32*
store i32 10,i32*%am8,align 4
%am9=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%ana=getelementptr inbounds i8,i8*%am3,i64 8
%anb=bitcast i8*%ana to i8**
store i8*%am9,i8**%anb,align 8
%anc=getelementptr inbounds i8,i8*%am3,i64 16
%and=bitcast i8*%anc to i32*
store i32 2,i32*%and,align 4
%ane=call i8*@sml_alloc(i32 inreg 12)#0
%anf=getelementptr inbounds i8,i8*%ane,i64 -4
%ang=bitcast i8*%anf to i32*
store i32 1342177288,i32*%ang,align 4
%anh=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%ani=bitcast i8*%ane to i8**
store i8*%anh,i8**%ani,align 8
%anj=getelementptr inbounds i8,i8*%ane,i64 8
%ank=bitcast i8*%anj to i32*
store i32 1,i32*%ank,align 4
br label%anl
anl:
%anm=call i8*@sml_alloc(i32 inreg 20)#0
%ann=getelementptr inbounds i8,i8*%anm,i64 -4
%ano=bitcast i8*%ann to i32*
store i32 1342177296,i32*%ano,align 4
%anp=load i8*,i8**%c,align 8
%anq=bitcast i8*%anm to i8**
store i8*%anp,i8**%anq,align 8
%anr=getelementptr inbounds i8,i8*%anm,i64 8
%ans=bitcast i8*%anr to i8**
store i8*null,i8**%ans,align 8
%ant=getelementptr inbounds i8,i8*%anm,i64 16
%anu=bitcast i8*%ant to i32*
store i32 3,i32*%anu,align 4
%anv=load i8*,i8**%f,align 8
%anw=getelementptr inbounds i8,i8*%anv,i64 16
%anx=bitcast i8*%anw to i8**
%any=load i8*,i8**%anx,align 8
%anz=bitcast i8*%any to i8**
call void@sml_write(i8*inreg%any,i8**inreg%anz,i8*inreg%anp)#0
ret i8*bitcast(i32*getelementptr inbounds(<{[4x i8],i32,i32,[4x i8],i32}>,<{[4x i8],i32,i32,[4x i8],i32}>*@d,i64 0,i32 2)to i8*)
anA:
%anB=icmp ugt i32%v4,122
br i1%anB,label%atE,label%anC
anC:
%anD=icmp eq i32%v4,116
br i1%anD,label%anE,label%atz
anE:
%anF=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%v7)
%anG=icmp eq i8*%anF,null
br i1%anG,label%aot,label%anH
anH:
%anI=bitcast i8*%anF to i8**
%anJ=load i8*,i8**%anI,align 8
%anK=bitcast i8*%anJ to i32*
%anL=load i32,i32*%anK,align 4
%anM=icmp eq i32%anL,10
br i1%anM,label%anN,label%apl
anN:
%anO=getelementptr inbounds i8,i8*%anJ,i64 8
%anP=bitcast i8*%anO to i8**
%anQ=load i8*,i8**%anP,align 8
store i8*%anQ,i8**%d,align 8
%anR=load i8**,i8***%o,align 8
%anS=load i8*,i8**%anR,align 8
%anT=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%anS)
%anU=getelementptr inbounds i8,i8*%anT,i64 16
%anV=bitcast i8*%anU to i8*(i8*,i8*)**
%anW=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%anV,align 8
%anX=bitcast i8*%anT to i8**
%anY=load i8*,i8**%anX,align 8
store i8*%anY,i8**%e,align 8
%anZ=load i8*,i8**%c,align 8
%an0=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%anZ)
%an1=call i8*@sml_alloc(i32 inreg 4)#0
%an2=bitcast i8*%an1 to i32*
%an3=getelementptr inbounds i8,i8*%an1,i64 -4
%an4=bitcast i8*%an3 to i32*
store i32 4,i32*%an4,align 4
store i32%an0,i32*%an2,align 4
%an5=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%an6=call fastcc i8*%anW(i8*inreg%an5,i8*inreg%an1)
%an7=call i8*@sml_alloc(i32 inreg 20)#0
%an8=getelementptr inbounds i8,i8*%an7,i64 -4
%an9=bitcast i8*%an8 to i32*
store i32 1342177296,i32*%an9,align 4
store i8*%an7,i8**%e,align 8
%aoa=getelementptr inbounds i8,i8*%an7,i64 4
%aob=bitcast i8*%aoa to i32*
store i32 0,i32*%aob,align 1
%aoc=bitcast i8*%an7 to i32*
store i32 10,i32*%aoc,align 4
%aod=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aoe=getelementptr inbounds i8,i8*%an7,i64 8
%aof=bitcast i8*%aoe to i8**
store i8*%aod,i8**%aof,align 8
%aog=getelementptr inbounds i8,i8*%an7,i64 16
%aoh=bitcast i8*%aog to i32*
store i32 2,i32*%aoh,align 4
%aoi=call i8*@sml_alloc(i32 inreg 12)#0
%aoj=getelementptr inbounds i8,i8*%aoi,i64 -4
%aok=bitcast i8*%aoj to i32*
store i32 1342177288,i32*%aok,align 4
%aol=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%aom=bitcast i8*%aoi to i8**
store i8*%aol,i8**%aom,align 8
%aon=getelementptr inbounds i8,i8*%aoi,i64 8
%aoo=bitcast i8*%aon to i32*
store i32 1,i32*%aoo,align 4
%aop=icmp eq i8*%aoi,null
br i1%aop,label%aot,label%aoq
aoq:
%aor=bitcast i8*%aol to i32*
%aos=load i32,i32*%aor,align 4
br label%apl
aot:
store i8*null,i8**%m,align 8
%aou=load i8*,i8**%f,align 8
%aov=getelementptr inbounds i8,i8*%aou,i64 16
%aow=bitcast i8*%aov to i8***
%aox=load i8**,i8***%aow,align 8
%aoy=load i8*,i8**%aox,align 8
store i8*%aoy,i8**%d,align 8
%aoz=call i8*@sml_alloc(i32 inreg 20)#0
%aoA=getelementptr inbounds i8,i8*%aoz,i64 -4
%aoB=bitcast i8*%aoA to i32*
store i32 1342177296,i32*%aoB,align 4
%aoC=load i8*,i8**%c,align 8
%aoD=bitcast i8*%aoz to i8**
store i8*%aoC,i8**%aoD,align 8
%aoE=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aoF=getelementptr inbounds i8,i8*%aoz,i64 8
%aoG=bitcast i8*%aoF to i8**
store i8*%aoE,i8**%aoG,align 8
%aoH=getelementptr inbounds i8,i8*%aoz,i64 16
%aoI=bitcast i8*%aoH to i32*
store i32 3,i32*%aoI,align 4
%aoJ=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%aoz)
%aoK=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%aoJ)
%aoL=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%aoM=getelementptr inbounds i8,i8*%aoL,i64 16
%aoN=bitcast i8*%aoM to i8**
%aoO=load i8*,i8**%aoN,align 8
%aoP=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aoQ=bitcast i8*%aoO to i8**
call void@sml_write(i8*inreg%aoO,i8**inreg%aoQ,i8*inreg%aoP)#0
%aoR=call fastcc i8*@_SMLFN6String8toStringE(i8*inreg%aoK)
store i8*%aoR,i8**%c,align 8
%aoS=call i8*@sml_alloc(i32 inreg 20)#0
%aoT=getelementptr inbounds i8,i8*%aoS,i64 -4
%aoU=bitcast i8*%aoT to i32*
store i32 1342177296,i32*%aoU,align 4
store i8*%aoS,i8**%d,align 8
%aoV=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aoW=bitcast i8*%aoS to i8**
store i8*%aoV,i8**%aoW,align 8
%aoX=getelementptr inbounds i8,i8*%aoS,i64 8
%aoY=bitcast i8*%aoX to i8**
store i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,i8*,i32}>,<{[4x i8],i32,i8*,i8*,i32}>*@x,i64 0,i32 2)to i8*),i8**%aoY,align 8
%aoZ=getelementptr inbounds i8,i8*%aoS,i64 16
%ao0=bitcast i8*%aoZ to i32*
store i32 3,i32*%ao0,align 4
%ao1=call i8*@sml_alloc(i32 inreg 20)#0
%ao2=getelementptr inbounds i8,i8*%ao1,i64 -4
%ao3=bitcast i8*%ao2 to i32*
store i32 1342177296,i32*%ao3,align 4
store i8*%ao1,i8**%c,align 8
%ao4=bitcast i8*%ao1 to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[16x i8]}>,<{[4x i8],i32,[16x i8]}>*@v,i64 0,i32 2,i64 0),i8**%ao4,align 8
%ao5=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%ao6=getelementptr inbounds i8,i8*%ao1,i64 8
%ao7=bitcast i8*%ao6 to i8**
store i8*%ao5,i8**%ao7,align 8
%ao8=getelementptr inbounds i8,i8*%ao1,i64 16
%ao9=bitcast i8*%ao8 to i32*
store i32 3,i32*%ao9,align 4
%apa=call i8*@sml_alloc(i32 inreg 20)#0
%apb=bitcast i8*%apa to i32*
%apc=getelementptr inbounds i8,i8*%apa,i64 -4
%apd=bitcast i8*%apc to i32*
store i32 1342177296,i32*%apd,align 4
%ape=getelementptr inbounds i8,i8*%apa,i64 4
%apf=bitcast i8*%ape to i32*
store i32 0,i32*%apf,align 1
store i32 3,i32*%apb,align 4
%apg=load i8*,i8**%c,align 8
%aph=getelementptr inbounds i8,i8*%apa,i64 8
%api=bitcast i8*%aph to i8**
store i8*%apg,i8**%api,align 8
%apj=getelementptr inbounds i8,i8*%apa,i64 16
%apk=bitcast i8*%apj to i32*
store i32 2,i32*%apk,align 4
ret i8*%apa
apl:
%apm=phi i32[%aos,%aoq],[%anL,%anH]
%apn=phi i8*[%aol,%aoq],[%anJ,%anH]
%apo=getelementptr inbounds i8,i8*%apn,i64 8
%app=bitcast i8*%apo to i8**
%apq=load i8*,i8**%app,align 8
store i8*%apq,i8**%d,align 8
%apr=icmp eq i32%apm,114
br i1%apr,label%aps,label%asH
aps:
%apt=call i8*@sml_alloc(i32 inreg 28)#0
%apu=getelementptr inbounds i8,i8*%apt,i64 -4
%apv=bitcast i8*%apu to i32*
store i32 1342177304,i32*%apv,align 4
store i8*%apt,i8**%e,align 8
%apw=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%apx=bitcast i8*%apt to i8**
store i8*%apw,i8**%apx,align 8
%apy=load i8*,i8**%m,align 8
store i8*null,i8**%m,align 8
%apz=getelementptr inbounds i8,i8*%apt,i64 8
%apA=bitcast i8*%apz to i8**
store i8*%apy,i8**%apA,align 8
%apB=getelementptr inbounds i8,i8*%apt,i64 16
%apC=bitcast i8*%apB to i8**
store i8*null,i8**%apC,align 8
%apD=getelementptr inbounds i8,i8*%apt,i64 24
%apE=bitcast i8*%apD to i32*
store i32 7,i32*%apE,align 4
%apF=load i8*,i8**%d,align 8
%apG=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%apF)
%apH=icmp eq i8*%apG,null
br i1%apH,label%apI,label%apJ
apI:
store i8*null,i8**%d,align 8
br label%aqu
apJ:
%apK=bitcast i8*%apG to i8**
%apL=load i8*,i8**%apK,align 8
%apM=bitcast i8*%apL to i32*
%apN=load i32,i32*%apM,align 4
%apO=icmp eq i32%apN,10
br i1%apO,label%apR,label%apP
apP:
store i8*null,i8**%d,align 8
%apQ=load i8*,i8**%apK,align 8
br label%aqw
apR:
%apS=getelementptr inbounds i8,i8*%apL,i64 8
%apT=bitcast i8*%apS to i8**
%apU=load i8*,i8**%apT,align 8
store i8*%apU,i8**%c,align 8
%apV=load i8**,i8***%o,align 8
%apW=load i8*,i8**%apV,align 8
%apX=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%apW)
%apY=getelementptr inbounds i8,i8*%apX,i64 16
%apZ=bitcast i8*%apY to i8*(i8*,i8*)**
%ap0=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%apZ,align 8
%ap1=bitcast i8*%apX to i8**
%ap2=load i8*,i8**%ap1,align 8
store i8*%ap2,i8**%g,align 8
%ap3=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%ap4=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%ap3)
%ap5=call i8*@sml_alloc(i32 inreg 4)#0
%ap6=bitcast i8*%ap5 to i32*
%ap7=getelementptr inbounds i8,i8*%ap5,i64 -4
%ap8=bitcast i8*%ap7 to i32*
store i32 4,i32*%ap8,align 4
store i32%ap4,i32*%ap6,align 4
%ap9=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%aqa=call fastcc i8*%ap0(i8*inreg%ap9,i8*inreg%ap5)
%aqb=call i8*@sml_alloc(i32 inreg 20)#0
%aqc=getelementptr inbounds i8,i8*%aqb,i64 -4
%aqd=bitcast i8*%aqc to i32*
store i32 1342177296,i32*%aqd,align 4
store i8*%aqb,i8**%d,align 8
%aqe=getelementptr inbounds i8,i8*%aqb,i64 4
%aqf=bitcast i8*%aqe to i32*
store i32 0,i32*%aqf,align 1
%aqg=bitcast i8*%aqb to i32*
store i32 10,i32*%aqg,align 4
%aqh=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aqi=getelementptr inbounds i8,i8*%aqb,i64 8
%aqj=bitcast i8*%aqi to i8**
store i8*%aqh,i8**%aqj,align 8
%aqk=getelementptr inbounds i8,i8*%aqb,i64 16
%aql=bitcast i8*%aqk to i32*
store i32 2,i32*%aql,align 4
%aqm=call i8*@sml_alloc(i32 inreg 12)#0
%aqn=getelementptr inbounds i8,i8*%aqm,i64 -4
%aqo=bitcast i8*%aqn to i32*
store i32 1342177288,i32*%aqo,align 4
%aqp=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aqq=bitcast i8*%aqm to i8**
store i8*%aqp,i8**%aqq,align 8
%aqr=getelementptr inbounds i8,i8*%aqm,i64 8
%aqs=bitcast i8*%aqr to i32*
store i32 1,i32*%aqs,align 4
%aqt=icmp eq i8*%aqm,null
br i1%aqt,label%aqu,label%aqw
aqu:
store i8*null,i8**%f,align 8
%aqv=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
store i8*%aqv,i8**%c,align 8
br label%bBS
aqw:
%aqx=phi i8*[%apQ,%apP],[%aqp,%apR]
%aqy=bitcast i8*%aqx to i32*
%aqz=load i32,i32*%aqy,align 4
%aqA=getelementptr inbounds i8,i8*%aqx,i64 8
%aqB=bitcast i8*%aqA to i8**
%aqC=load i8*,i8**%aqB,align 8
store i8*%aqC,i8**%c,align 8
%aqD=icmp eq i32%aqz,117
br i1%aqD,label%aqE,label%asF
aqE:
%aqF=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%aqC)
%aqG=icmp eq i8*%aqF,null
br i1%aqG,label%aqH,label%aqI
aqH:
store i8*null,i8**%c,align 8
br label%art
aqI:
%aqJ=bitcast i8*%aqF to i8**
%aqK=load i8*,i8**%aqJ,align 8
%aqL=bitcast i8*%aqK to i32*
%aqM=load i32,i32*%aqL,align 4
%aqN=icmp eq i32%aqM,10
br i1%aqN,label%aqQ,label%aqO
aqO:
store i8*null,i8**%c,align 8
%aqP=load i8*,i8**%aqJ,align 8
br label%arv
aqQ:
%aqR=getelementptr inbounds i8,i8*%aqK,i64 8
%aqS=bitcast i8*%aqR to i8**
%aqT=load i8*,i8**%aqS,align 8
store i8*%aqT,i8**%d,align 8
%aqU=load i8**,i8***%o,align 8
%aqV=load i8*,i8**%aqU,align 8
%aqW=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%aqV)
%aqX=getelementptr inbounds i8,i8*%aqW,i64 16
%aqY=bitcast i8*%aqX to i8*(i8*,i8*)**
%aqZ=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%aqY,align 8
%aq0=bitcast i8*%aqW to i8**
%aq1=load i8*,i8**%aq0,align 8
store i8*%aq1,i8**%g,align 8
%aq2=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aq3=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%aq2)
%aq4=call i8*@sml_alloc(i32 inreg 4)#0
%aq5=bitcast i8*%aq4 to i32*
%aq6=getelementptr inbounds i8,i8*%aq4,i64 -4
%aq7=bitcast i8*%aq6 to i32*
store i32 4,i32*%aq7,align 4
store i32%aq3,i32*%aq5,align 4
%aq8=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%aq9=call fastcc i8*%aqZ(i8*inreg%aq8,i8*inreg%aq4)
%ara=call i8*@sml_alloc(i32 inreg 20)#0
%arb=getelementptr inbounds i8,i8*%ara,i64 -4
%arc=bitcast i8*%arb to i32*
store i32 1342177296,i32*%arc,align 4
store i8*%ara,i8**%c,align 8
%ard=getelementptr inbounds i8,i8*%ara,i64 4
%are=bitcast i8*%ard to i32*
store i32 0,i32*%are,align 1
%arf=bitcast i8*%ara to i32*
store i32 10,i32*%arf,align 4
%arg=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%arh=getelementptr inbounds i8,i8*%ara,i64 8
%ari=bitcast i8*%arh to i8**
store i8*%arg,i8**%ari,align 8
%arj=getelementptr inbounds i8,i8*%ara,i64 16
%ark=bitcast i8*%arj to i32*
store i32 2,i32*%ark,align 4
%arl=call i8*@sml_alloc(i32 inreg 12)#0
%arm=getelementptr inbounds i8,i8*%arl,i64 -4
%arn=bitcast i8*%arm to i32*
store i32 1342177288,i32*%arn,align 4
%aro=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%arp=bitcast i8*%arl to i8**
store i8*%aro,i8**%arp,align 8
%arq=getelementptr inbounds i8,i8*%arl,i64 8
%arr=bitcast i8*%arq to i32*
store i32 1,i32*%arr,align 4
%ars=icmp eq i8*%arl,null
br i1%ars,label%art,label%arv
art:
store i8*null,i8**%f,align 8
%aru=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
store i8*%aru,i8**%c,align 8
br label%bBS
arv:
%arw=phi i8*[%aqP,%aqO],[%aro,%aqQ]
%arx=bitcast i8*%arw to i32*
%ary=load i32,i32*%arx,align 4
%arz=getelementptr inbounds i8,i8*%arw,i64 8
%arA=bitcast i8*%arz to i8**
%arB=load i8*,i8**%arA,align 8
store i8*%arB,i8**%c,align 8
%arC=icmp eq i32%ary,101
br i1%arC,label%arD,label%asD
arD:
store i8*null,i8**%e,align 8
%arE=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%arB)
%arF=icmp eq i8*%arE,null
br i1%arF,label%aso,label%arG
arG:
%arH=bitcast i8*%arE to i8**
%arI=load i8*,i8**%arH,align 8
%arJ=bitcast i8*%arI to i32*
%arK=load i32,i32*%arJ,align 4
%arL=icmp eq i32%arK,10
br i1%arL,label%arM,label%aso
arM:
%arN=getelementptr inbounds i8,i8*%arI,i64 8
%arO=bitcast i8*%arN to i8**
%arP=load i8*,i8**%arO,align 8
store i8*%arP,i8**%d,align 8
%arQ=load i8**,i8***%o,align 8
%arR=load i8*,i8**%arQ,align 8
%arS=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%arR)
%arT=getelementptr inbounds i8,i8*%arS,i64 16
%arU=bitcast i8*%arT to i8*(i8*,i8*)**
%arV=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%arU,align 8
%arW=bitcast i8*%arS to i8**
%arX=load i8*,i8**%arW,align 8
store i8*%arX,i8**%e,align 8
%arY=load i8*,i8**%c,align 8
%arZ=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%arY)
%ar0=call i8*@sml_alloc(i32 inreg 4)#0
%ar1=bitcast i8*%ar0 to i32*
%ar2=getelementptr inbounds i8,i8*%ar0,i64 -4
%ar3=bitcast i8*%ar2 to i32*
store i32 4,i32*%ar3,align 4
store i32%arZ,i32*%ar1,align 4
%ar4=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%ar5=call fastcc i8*%arV(i8*inreg%ar4,i8*inreg%ar0)
%ar6=call i8*@sml_alloc(i32 inreg 20)#0
%ar7=getelementptr inbounds i8,i8*%ar6,i64 -4
%ar8=bitcast i8*%ar7 to i32*
store i32 1342177296,i32*%ar8,align 4
store i8*%ar6,i8**%e,align 8
%ar9=getelementptr inbounds i8,i8*%ar6,i64 4
%asa=bitcast i8*%ar9 to i32*
store i32 0,i32*%asa,align 1
%asb=bitcast i8*%ar6 to i32*
store i32 10,i32*%asb,align 4
%asc=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%asd=getelementptr inbounds i8,i8*%ar6,i64 8
%ase=bitcast i8*%asd to i8**
store i8*%asc,i8**%ase,align 8
%asf=getelementptr inbounds i8,i8*%ar6,i64 16
%asg=bitcast i8*%asf to i32*
store i32 2,i32*%asg,align 4
%ash=call i8*@sml_alloc(i32 inreg 12)#0
%asi=getelementptr inbounds i8,i8*%ash,i64 -4
%asj=bitcast i8*%asi to i32*
store i32 1342177288,i32*%asj,align 4
%ask=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%asl=bitcast i8*%ash to i8**
store i8*%ask,i8**%asl,align 8
%asm=getelementptr inbounds i8,i8*%ash,i64 8
%asn=bitcast i8*%asm to i32*
store i32 1,i32*%asn,align 4
br label%aso
aso:
%asp=call i8*@sml_alloc(i32 inreg 20)#0
%asq=getelementptr inbounds i8,i8*%asp,i64 -4
%asr=bitcast i8*%asq to i32*
store i32 1342177296,i32*%asr,align 4
%ass=load i8*,i8**%c,align 8
%ast=bitcast i8*%asp to i8**
store i8*%ass,i8**%ast,align 8
%asu=getelementptr inbounds i8,i8*%asp,i64 8
%asv=bitcast i8*%asu to i8**
store i8*null,i8**%asv,align 8
%asw=getelementptr inbounds i8,i8*%asp,i64 16
%asx=bitcast i8*%asw to i32*
store i32 3,i32*%asx,align 4
%asy=load i8*,i8**%f,align 8
%asz=getelementptr inbounds i8,i8*%asy,i64 16
%asA=bitcast i8*%asz to i8**
%asB=load i8*,i8**%asA,align 8
%asC=bitcast i8*%asB to i8**
call void@sml_write(i8*inreg%asB,i8**inreg%asC,i8*inreg%ass)#0
ret i8*bitcast(i32*getelementptr inbounds(<{[4x i8],i32,i32,[4x i8],i32}>,<{[4x i8],i32,i32,[4x i8],i32}>*@k,i64 0,i32 2)to i8*)
asD:
store i8*null,i8**%f,align 8
%asE=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
store i8*%asE,i8**%c,align 8
br label%bBS
asF:
store i8*null,i8**%f,align 8
%asG=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
store i8*%asG,i8**%c,align 8
br label%bBS
asH:
store i8*null,i8**%m,align 8
%asI=load i8*,i8**%f,align 8
%asJ=getelementptr inbounds i8,i8*%asI,i64 16
%asK=bitcast i8*%asJ to i8***
%asL=load i8**,i8***%asK,align 8
%asM=load i8*,i8**%asL,align 8
store i8*%asM,i8**%d,align 8
%asN=call i8*@sml_alloc(i32 inreg 20)#0
%asO=getelementptr inbounds i8,i8*%asN,i64 -4
%asP=bitcast i8*%asO to i32*
store i32 1342177296,i32*%asP,align 4
%asQ=load i8*,i8**%c,align 8
%asR=bitcast i8*%asN to i8**
store i8*%asQ,i8**%asR,align 8
%asS=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%asT=getelementptr inbounds i8,i8*%asN,i64 8
%asU=bitcast i8*%asT to i8**
store i8*%asS,i8**%asU,align 8
%asV=getelementptr inbounds i8,i8*%asN,i64 16
%asW=bitcast i8*%asV to i32*
store i32 3,i32*%asW,align 4
%asX=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%asN)
%asY=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%asX)
%asZ=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%as0=getelementptr inbounds i8,i8*%asZ,i64 16
%as1=bitcast i8*%as0 to i8**
%as2=load i8*,i8**%as1,align 8
%as3=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%as4=bitcast i8*%as2 to i8**
call void@sml_write(i8*inreg%as2,i8**inreg%as4,i8*inreg%as3)#0
%as5=call fastcc i8*@_SMLFN6String8toStringE(i8*inreg%asY)
store i8*%as5,i8**%c,align 8
%as6=call i8*@sml_alloc(i32 inreg 20)#0
%as7=getelementptr inbounds i8,i8*%as6,i64 -4
%as8=bitcast i8*%as7 to i32*
store i32 1342177296,i32*%as8,align 4
store i8*%as6,i8**%d,align 8
%as9=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%ata=bitcast i8*%as6 to i8**
store i8*%as9,i8**%ata,align 8
%atb=getelementptr inbounds i8,i8*%as6,i64 8
%atc=bitcast i8*%atb to i8**
store i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,i8*,i32}>,<{[4x i8],i32,i8*,i8*,i32}>*@x,i64 0,i32 2)to i8*),i8**%atc,align 8
%atd=getelementptr inbounds i8,i8*%as6,i64 16
%ate=bitcast i8*%atd to i32*
store i32 3,i32*%ate,align 4
%atf=call i8*@sml_alloc(i32 inreg 20)#0
%atg=getelementptr inbounds i8,i8*%atf,i64 -4
%ath=bitcast i8*%atg to i32*
store i32 1342177296,i32*%ath,align 4
store i8*%atf,i8**%c,align 8
%ati=bitcast i8*%atf to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[16x i8]}>,<{[4x i8],i32,[16x i8]}>*@v,i64 0,i32 2,i64 0),i8**%ati,align 8
%atj=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%atk=getelementptr inbounds i8,i8*%atf,i64 8
%atl=bitcast i8*%atk to i8**
store i8*%atj,i8**%atl,align 8
%atm=getelementptr inbounds i8,i8*%atf,i64 16
%atn=bitcast i8*%atm to i32*
store i32 3,i32*%atn,align 4
%ato=call i8*@sml_alloc(i32 inreg 20)#0
%atp=bitcast i8*%ato to i32*
%atq=getelementptr inbounds i8,i8*%ato,i64 -4
%atr=bitcast i8*%atq to i32*
store i32 1342177296,i32*%atr,align 4
%ats=getelementptr inbounds i8,i8*%ato,i64 4
%att=bitcast i8*%ats to i32*
store i32 0,i32*%att,align 1
store i32 3,i32*%atp,align 4
%atu=load i8*,i8**%c,align 8
%atv=getelementptr inbounds i8,i8*%ato,i64 8
%atw=bitcast i8*%atv to i8**
store i8*%atu,i8**%atw,align 8
%atx=getelementptr inbounds i8,i8*%ato,i64 16
%aty=bitcast i8*%atx to i32*
store i32 2,i32*%aty,align 4
ret i8*%ato
atz:
store i8*null,i8**%m,align 8
%atA=call i8*@sml_alloc(i32 inreg 20)#0
%atB=getelementptr inbounds i8,i8*%atA,i64 -4
%atC=bitcast i8*%atB to i32*
store i32 1342177296,i32*%atC,align 4
%atD=load i8*,i8**%c,align 8
br label%aHg
atE:
store i8*null,i8**%m,align 8
%atF=icmp eq i32%v4,125
br i1%atF,label%atG,label%auG
atG:
%atH=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%v7)
%atI=icmp eq i8*%atH,null
br i1%atI,label%aur,label%atJ
atJ:
%atK=bitcast i8*%atH to i8**
%atL=load i8*,i8**%atK,align 8
%atM=bitcast i8*%atL to i32*
%atN=load i32,i32*%atM,align 4
%atO=icmp eq i32%atN,10
br i1%atO,label%atP,label%aur
atP:
%atQ=getelementptr inbounds i8,i8*%atL,i64 8
%atR=bitcast i8*%atQ to i8**
%atS=load i8*,i8**%atR,align 8
store i8*%atS,i8**%d,align 8
%atT=load i8**,i8***%o,align 8
%atU=load i8*,i8**%atT,align 8
%atV=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%atU)
%atW=getelementptr inbounds i8,i8*%atV,i64 16
%atX=bitcast i8*%atW to i8*(i8*,i8*)**
%atY=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%atX,align 8
%atZ=bitcast i8*%atV to i8**
%at0=load i8*,i8**%atZ,align 8
store i8*%at0,i8**%e,align 8
%at1=load i8*,i8**%c,align 8
%at2=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%at1)
%at3=call i8*@sml_alloc(i32 inreg 4)#0
%at4=bitcast i8*%at3 to i32*
%at5=getelementptr inbounds i8,i8*%at3,i64 -4
%at6=bitcast i8*%at5 to i32*
store i32 4,i32*%at6,align 4
store i32%at2,i32*%at4,align 4
%at7=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%at8=call fastcc i8*%atY(i8*inreg%at7,i8*inreg%at3)
%at9=call i8*@sml_alloc(i32 inreg 20)#0
%aua=getelementptr inbounds i8,i8*%at9,i64 -4
%aub=bitcast i8*%aua to i32*
store i32 1342177296,i32*%aub,align 4
store i8*%at9,i8**%e,align 8
%auc=getelementptr inbounds i8,i8*%at9,i64 4
%aud=bitcast i8*%auc to i32*
store i32 0,i32*%aud,align 1
%aue=bitcast i8*%at9 to i32*
store i32 10,i32*%aue,align 4
%auf=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aug=getelementptr inbounds i8,i8*%at9,i64 8
%auh=bitcast i8*%aug to i8**
store i8*%auf,i8**%auh,align 8
%aui=getelementptr inbounds i8,i8*%at9,i64 16
%auj=bitcast i8*%aui to i32*
store i32 2,i32*%auj,align 4
%auk=call i8*@sml_alloc(i32 inreg 12)#0
%aul=getelementptr inbounds i8,i8*%auk,i64 -4
%aum=bitcast i8*%aul to i32*
store i32 1342177288,i32*%aum,align 4
%aun=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%auo=bitcast i8*%auk to i8**
store i8*%aun,i8**%auo,align 8
%aup=getelementptr inbounds i8,i8*%auk,i64 8
%auq=bitcast i8*%aup to i32*
store i32 1,i32*%auq,align 4
br label%aur
aur:
%aus=call i8*@sml_alloc(i32 inreg 20)#0
%aut=getelementptr inbounds i8,i8*%aus,i64 -4
%auu=bitcast i8*%aut to i32*
store i32 1342177296,i32*%auu,align 4
%auv=load i8*,i8**%c,align 8
%auw=bitcast i8*%aus to i8**
store i8*%auv,i8**%auw,align 8
%aux=getelementptr inbounds i8,i8*%aus,i64 8
%auy=bitcast i8*%aux to i8**
store i8*null,i8**%auy,align 8
%auz=getelementptr inbounds i8,i8*%aus,i64 16
%auA=bitcast i8*%auz to i32*
store i32 3,i32*%auA,align 4
%auB=load i8*,i8**%f,align 8
%auC=getelementptr inbounds i8,i8*%auB,i64 16
%auD=bitcast i8*%auC to i8**
%auE=load i8*,i8**%auD,align 8
%auF=bitcast i8*%auE to i8**
call void@sml_write(i8*inreg%auE,i8**inreg%auF,i8*inreg%auv)#0
ret i8*bitcast(i32*getelementptr inbounds(<{[4x i8],i32,i32,[4x i8],i32}>,<{[4x i8],i32,i32,[4x i8],i32}>*@e,i64 0,i32 2)to i8*)
auG:
%auH=call i8*@sml_alloc(i32 inreg 20)#0
%auI=getelementptr inbounds i8,i8*%auH,i64 -4
%auJ=bitcast i8*%auI to i32*
store i32 1342177296,i32*%auJ,align 4
%auK=load i8*,i8**%c,align 8
br label%aHg
auL:
%auM=phi i8*[%t4,%t3],[%awN,%awM]
%auN=load atomic i32,i32*@sml_check_flag unordered,align 4
%auO=icmp eq i32%auN,0
br i1%auO,label%auS,label%auP
auP:
call void@sml_check(i32 inreg%auN)
%auQ=load i8**,i8***%p,align 8
%auR=load i8*,i8**%auQ,align 8
br label%auS
auS:
%auT=phi i8*[%auR,%auP],[%auM,%auL]
store i8*%auT,i8**%c,align 8
%auU=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%auT)
%auV=icmp eq i8*%auU,null
br i1%auV,label%avI,label%auW
auW:
%auX=bitcast i8*%auU to i8**
%auY=load i8*,i8**%auX,align 8
%auZ=bitcast i8*%auY to i32*
%au0=load i32,i32*%auZ,align 4
%au1=icmp eq i32%au0,10
br i1%au1,label%au2,label%awi
au2:
%au3=getelementptr inbounds i8,i8*%auY,i64 8
%au4=bitcast i8*%au3 to i8**
%au5=load i8*,i8**%au4,align 8
store i8*%au5,i8**%d,align 8
%au6=load i8**,i8***%o,align 8
%au7=load i8*,i8**%au6,align 8
%au8=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%au7)
%au9=getelementptr inbounds i8,i8*%au8,i64 16
%ava=bitcast i8*%au9 to i8*(i8*,i8*)**
%avb=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%ava,align 8
%avc=bitcast i8*%au8 to i8**
%avd=load i8*,i8**%avc,align 8
store i8*%avd,i8**%e,align 8
%ave=load i8*,i8**%c,align 8
%avf=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%ave)
%avg=call i8*@sml_alloc(i32 inreg 4)#0
%avh=bitcast i8*%avg to i32*
%avi=getelementptr inbounds i8,i8*%avg,i64 -4
%avj=bitcast i8*%avi to i32*
store i32 4,i32*%avj,align 4
store i32%avf,i32*%avh,align 4
%avk=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%avl=call fastcc i8*%avb(i8*inreg%avk,i8*inreg%avg)
%avm=call i8*@sml_alloc(i32 inreg 20)#0
%avn=getelementptr inbounds i8,i8*%avm,i64 -4
%avo=bitcast i8*%avn to i32*
store i32 1342177296,i32*%avo,align 4
store i8*%avm,i8**%e,align 8
%avp=getelementptr inbounds i8,i8*%avm,i64 4
%avq=bitcast i8*%avp to i32*
store i32 0,i32*%avq,align 1
%avr=bitcast i8*%avm to i32*
store i32 10,i32*%avr,align 4
%avs=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%avt=getelementptr inbounds i8,i8*%avm,i64 8
%avu=bitcast i8*%avt to i8**
store i8*%avs,i8**%avu,align 8
%avv=getelementptr inbounds i8,i8*%avm,i64 16
%avw=bitcast i8*%avv to i32*
store i32 2,i32*%avw,align 4
%avx=call i8*@sml_alloc(i32 inreg 12)#0
%avy=getelementptr inbounds i8,i8*%avx,i64 -4
%avz=bitcast i8*%avy to i32*
store i32 1342177288,i32*%avz,align 4
%avA=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%avB=bitcast i8*%avx to i8**
store i8*%avA,i8**%avB,align 8
%avC=getelementptr inbounds i8,i8*%avx,i64 8
%avD=bitcast i8*%avC to i32*
store i32 1,i32*%avD,align 4
%avE=icmp eq i8*%avx,null
br i1%avE,label%avI,label%avF
avF:
%avG=bitcast i8*%avA to i32*
%avH=load i32,i32*%avG,align 4
br label%awi
avI:
store i8*null,i8**%l,align 8
%avJ=load i8*,i8**%f,align 8
%avK=getelementptr inbounds i8,i8*%avJ,i64 16
%avL=bitcast i8*%avK to i8***
%avM=load i8**,i8***%avL,align 8
%avN=load i8*,i8**%avM,align 8
store i8*%avN,i8**%d,align 8
%avO=call i8*@sml_alloc(i32 inreg 20)#0
%avP=getelementptr inbounds i8,i8*%avO,i64 -4
%avQ=bitcast i8*%avP to i32*
store i32 1342177296,i32*%avQ,align 4
%avR=load i8*,i8**%c,align 8
%avS=bitcast i8*%avO to i8**
store i8*%avR,i8**%avS,align 8
%avT=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%avU=getelementptr inbounds i8,i8*%avO,i64 8
%avV=bitcast i8*%avU to i8**
store i8*%avT,i8**%avV,align 8
%avW=getelementptr inbounds i8,i8*%avO,i64 16
%avX=bitcast i8*%avW to i32*
store i32 3,i32*%avX,align 4
%avY=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%avO)
%avZ=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%avY)
store i8*%avZ,i8**%d,align 8
%av0=load i8*,i8**%f,align 8
%av1=getelementptr inbounds i8,i8*%av0,i64 16
%av2=bitcast i8*%av1 to i8**
%av3=load i8*,i8**%av2,align 8
%av4=load i8*,i8**%c,align 8
%av5=bitcast i8*%av3 to i8**
call void@sml_write(i8*inreg%av3,i8**inreg%av5,i8*inreg%av4)#0
%av6=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2),align 8
store i8*%av6,i8**%c,align 8
%av7=call i8*@sml_alloc(i32 inreg 20)#0
%av8=getelementptr inbounds i8,i8*%av7,i64 -4
%av9=bitcast i8*%av8 to i32*
store i32 1342177296,i32*%av9,align 4
%awa=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%awb=bitcast i8*%av7 to i8**
store i8*%awa,i8**%awb,align 8
%awc=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%awd=getelementptr inbounds i8,i8*%av7,i64 8
%awe=bitcast i8*%awd to i8**
store i8*%awc,i8**%awe,align 8
%awf=getelementptr inbounds i8,i8*%av7,i64 16
%awg=bitcast i8*%awf to i32*
store i32 3,i32*%awg,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2),i8*inreg%av7)#0
br label%awh
awh:
br label%r
awi:
%awj=phi i32[%avH,%avF],[%au0,%auW]
%awk=phi i8*[%avA,%avF],[%auY,%auW]
%awl=getelementptr inbounds i8,i8*%awk,i64 8
%awm=bitcast i8*%awl to i8**
%awn=load i8*,i8**%awm,align 8
store i8*%awn,i8**%d,align 8
%awo=icmp eq i32%awj,35
br i1%awo,label%awp,label%awO
awp:
%awq=call i8*@sml_alloc(i32 inreg 28)#0
%awr=getelementptr inbounds i8,i8*%awq,i64 -4
%aws=bitcast i8*%awr to i32*
store i32 1342177304,i32*%aws,align 4
store i8*%awq,i8**%e,align 8
%awt=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%awu=bitcast i8*%awq to i8**
store i8*%awt,i8**%awu,align 8
%awv=load i8*,i8**%l,align 8
%aww=getelementptr inbounds i8,i8*%awq,i64 8
%awx=bitcast i8*%aww to i8**
store i8*%awv,i8**%awx,align 8
%awy=getelementptr inbounds i8,i8*%awq,i64 16
%awz=bitcast i8*%awy to i8**
store i8*null,i8**%awz,align 8
%awA=getelementptr inbounds i8,i8*%awq,i64 24
%awB=bitcast i8*%awA to i32*
store i32 7,i32*%awB,align 4
%awC=call i8*@sml_alloc(i32 inreg 20)#0
%awD=getelementptr inbounds i8,i8*%awC,i64 -4
%awE=bitcast i8*%awD to i32*
store i32 1342177296,i32*%awE,align 4
%awF=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%awG=bitcast i8*%awC to i8**
store i8*%awF,i8**%awG,align 8
%awH=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%awI=getelementptr inbounds i8,i8*%awC,i64 8
%awJ=bitcast i8*%awI to i8**
store i8*%awH,i8**%awJ,align 8
%awK=getelementptr inbounds i8,i8*%awC,i64 16
%awL=bitcast i8*%awK to i32*
store i32 3,i32*%awL,align 4
store i8*%awC,i8**%c,align 8
br label%awM
awM:
%awN=phi i8*[%awF,%awp],[%axH,%axr],[%ayF,%ayp]
br label%auL
awO:
%awP=icmp ugt i32%awj,34
br i1%awP,label%axO,label%awQ
awQ:
%awR=icmp eq i32%awj,34
br i1%awR,label%awS,label%axr
awS:
store i8*null,i8**%l,align 8
%awT=load i8*,i8**%f,align 8
%awU=getelementptr inbounds i8,i8*%awT,i64 16
%awV=bitcast i8*%awU to i8***
%awW=load i8**,i8***%awV,align 8
%awX=load i8*,i8**%awW,align 8
store i8*%awX,i8**%d,align 8
%awY=call i8*@sml_alloc(i32 inreg 20)#0
%awZ=getelementptr inbounds i8,i8*%awY,i64 -4
%aw0=bitcast i8*%awZ to i32*
store i32 1342177296,i32*%aw0,align 4
%aw1=load i8*,i8**%c,align 8
%aw2=bitcast i8*%awY to i8**
store i8*%aw1,i8**%aw2,align 8
%aw3=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aw4=getelementptr inbounds i8,i8*%awY,i64 8
%aw5=bitcast i8*%aw4 to i8**
store i8*%aw3,i8**%aw5,align 8
%aw6=getelementptr inbounds i8,i8*%awY,i64 16
%aw7=bitcast i8*%aw6 to i32*
store i32 3,i32*%aw7,align 4
%aw8=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%awY)
%aw9=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%aw8)
store i8*%aw9,i8**%d,align 8
%axa=load i8*,i8**%f,align 8
%axb=getelementptr inbounds i8,i8*%axa,i64 16
%axc=bitcast i8*%axb to i8**
%axd=load i8*,i8**%axc,align 8
%axe=load i8*,i8**%c,align 8
%axf=bitcast i8*%axd to i8**
call void@sml_write(i8*inreg%axd,i8**inreg%axf,i8*inreg%axe)#0
%axg=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2),align 8
store i8*%axg,i8**%c,align 8
%axh=call i8*@sml_alloc(i32 inreg 20)#0
%axi=getelementptr inbounds i8,i8*%axh,i64 -4
%axj=bitcast i8*%axi to i32*
store i32 1342177296,i32*%axj,align 4
%axk=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%axl=bitcast i8*%axh to i8**
store i8*%axk,i8**%axl,align 8
%axm=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%axn=getelementptr inbounds i8,i8*%axh,i64 8
%axo=bitcast i8*%axn to i8**
store i8*%axm,i8**%axo,align 8
%axp=getelementptr inbounds i8,i8*%axh,i64 16
%axq=bitcast i8*%axp to i32*
store i32 3,i32*%axq,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2),i8*inreg%axh)#0
br label%awh
axr:
%axs=call i8*@sml_alloc(i32 inreg 28)#0
%axt=getelementptr inbounds i8,i8*%axs,i64 -4
%axu=bitcast i8*%axt to i32*
store i32 1342177304,i32*%axu,align 4
store i8*%axs,i8**%e,align 8
%axv=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%axw=bitcast i8*%axs to i8**
store i8*%axv,i8**%axw,align 8
%axx=load i8*,i8**%l,align 8
%axy=getelementptr inbounds i8,i8*%axs,i64 8
%axz=bitcast i8*%axy to i8**
store i8*%axx,i8**%axz,align 8
%axA=getelementptr inbounds i8,i8*%axs,i64 16
%axB=bitcast i8*%axA to i8**
store i8*null,i8**%axB,align 8
%axC=getelementptr inbounds i8,i8*%axs,i64 24
%axD=bitcast i8*%axC to i32*
store i32 7,i32*%axD,align 4
%axE=call i8*@sml_alloc(i32 inreg 20)#0
%axF=getelementptr inbounds i8,i8*%axE,i64 -4
%axG=bitcast i8*%axF to i32*
store i32 1342177296,i32*%axG,align 4
%axH=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%axI=bitcast i8*%axE to i8**
store i8*%axH,i8**%axI,align 8
%axJ=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%axK=getelementptr inbounds i8,i8*%axE,i64 8
%axL=bitcast i8*%axK to i8**
store i8*%axJ,i8**%axL,align 8
%axM=getelementptr inbounds i8,i8*%axE,i64 16
%axN=bitcast i8*%axM to i32*
store i32 3,i32*%axN,align 4
store i8*%axE,i8**%c,align 8
br label%awM
axO:
%axP=icmp eq i32%awj,92
br i1%axP,label%axQ,label%ayp
axQ:
store i8*null,i8**%l,align 8
%axR=load i8*,i8**%f,align 8
%axS=getelementptr inbounds i8,i8*%axR,i64 16
%axT=bitcast i8*%axS to i8***
%axU=load i8**,i8***%axT,align 8
%axV=load i8*,i8**%axU,align 8
store i8*%axV,i8**%d,align 8
%axW=call i8*@sml_alloc(i32 inreg 20)#0
%axX=getelementptr inbounds i8,i8*%axW,i64 -4
%axY=bitcast i8*%axX to i32*
store i32 1342177296,i32*%axY,align 4
%axZ=load i8*,i8**%c,align 8
%ax0=bitcast i8*%axW to i8**
store i8*%axZ,i8**%ax0,align 8
%ax1=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%ax2=getelementptr inbounds i8,i8*%axW,i64 8
%ax3=bitcast i8*%ax2 to i8**
store i8*%ax1,i8**%ax3,align 8
%ax4=getelementptr inbounds i8,i8*%axW,i64 16
%ax5=bitcast i8*%ax4 to i32*
store i32 3,i32*%ax5,align 4
%ax6=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%axW)
%ax7=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%ax6)
store i8*%ax7,i8**%d,align 8
%ax8=load i8*,i8**%f,align 8
%ax9=getelementptr inbounds i8,i8*%ax8,i64 16
%aya=bitcast i8*%ax9 to i8**
%ayb=load i8*,i8**%aya,align 8
%ayc=load i8*,i8**%c,align 8
%ayd=bitcast i8*%ayb to i8**
call void@sml_write(i8*inreg%ayb,i8**inreg%ayd,i8*inreg%ayc)#0
%aye=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2),align 8
store i8*%aye,i8**%c,align 8
%ayf=call i8*@sml_alloc(i32 inreg 20)#0
%ayg=getelementptr inbounds i8,i8*%ayf,i64 -4
%ayh=bitcast i8*%ayg to i32*
store i32 1342177296,i32*%ayh,align 4
%ayi=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%ayj=bitcast i8*%ayf to i8**
store i8*%ayi,i8**%ayj,align 8
%ayk=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%ayl=getelementptr inbounds i8,i8*%ayf,i64 8
%aym=bitcast i8*%ayl to i8**
store i8*%ayk,i8**%aym,align 8
%ayn=getelementptr inbounds i8,i8*%ayf,i64 16
%ayo=bitcast i8*%ayn to i32*
store i32 3,i32*%ayo,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2),i8*inreg%ayf)#0
br label%awh
ayp:
%ayq=call i8*@sml_alloc(i32 inreg 28)#0
%ayr=getelementptr inbounds i8,i8*%ayq,i64 -4
%ays=bitcast i8*%ayr to i32*
store i32 1342177304,i32*%ays,align 4
store i8*%ayq,i8**%e,align 8
%ayt=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%ayu=bitcast i8*%ayq to i8**
store i8*%ayt,i8**%ayu,align 8
%ayv=load i8*,i8**%l,align 8
%ayw=getelementptr inbounds i8,i8*%ayq,i64 8
%ayx=bitcast i8*%ayw to i8**
store i8*%ayv,i8**%ayx,align 8
%ayy=getelementptr inbounds i8,i8*%ayq,i64 16
%ayz=bitcast i8*%ayy to i8**
store i8*null,i8**%ayz,align 8
%ayA=getelementptr inbounds i8,i8*%ayq,i64 24
%ayB=bitcast i8*%ayA to i32*
store i32 7,i32*%ayB,align 4
%ayC=call i8*@sml_alloc(i32 inreg 20)#0
%ayD=getelementptr inbounds i8,i8*%ayC,i64 -4
%ayE=bitcast i8*%ayD to i32*
store i32 1342177296,i32*%ayE,align 4
%ayF=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%ayG=bitcast i8*%ayC to i8**
store i8*%ayF,i8**%ayG,align 8
%ayH=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%ayI=getelementptr inbounds i8,i8*%ayC,i64 8
%ayJ=bitcast i8*%ayI to i8**
store i8*%ayH,i8**%ayJ,align 8
%ayK=getelementptr inbounds i8,i8*%ayC,i64 16
%ayL=bitcast i8*%ayK to i32*
store i32 3,i32*%ayL,align 4
store i8*%ayC,i8**%c,align 8
br label%awM
ayM:
%ayN=phi i8*[%sD,%sC],[%sv,%su],[%sm,%sl],[%se,%sd],[%r4,%r3],[%rV,%rU]
%ayO=phi i8*[%sG,%sC],[%sy,%su],[%sp,%sl],[%sh,%sd],[%r7,%r3],[%rY,%rU]
%ayP=bitcast i8*%ayN to i8**
store i8*%ayO,i8**%ayP,align 8
%ayQ=getelementptr inbounds i8,i8*%ayN,i64 8
%ayR=bitcast i8*%ayQ to i8**
store i8*null,i8**%ayR,align 8
%ayS=getelementptr inbounds i8,i8*%ayN,i64 16
%ayT=bitcast i8*%ayS to i32*
store i32 3,i32*%ayT,align 4
store i8*%ayO,i8**%c,align 8
store i8*null,i8**%d,align 8
%ayU=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%ayO)
%ayV=icmp eq i8*%ayU,null
br i1%ayV,label%ayW,label%ayX
ayW:
store i8*null,i8**%c,align 8
br label%azI
ayX:
%ayY=bitcast i8*%ayU to i8**
%ayZ=load i8*,i8**%ayY,align 8
%ay0=bitcast i8*%ayZ to i32*
%ay1=load i32,i32*%ay0,align 4
%ay2=icmp eq i32%ay1,10
br i1%ay2,label%ay5,label%ay3
ay3:
store i8*null,i8**%c,align 8
%ay4=load i8*,i8**%ayY,align 8
br label%azK
ay5:
%ay6=getelementptr inbounds i8,i8*%ayZ,i64 8
%ay7=bitcast i8*%ay6 to i8**
%ay8=load i8*,i8**%ay7,align 8
store i8*%ay8,i8**%e,align 8
%ay9=load i8**,i8***%o,align 8
%aza=load i8*,i8**%ay9,align 8
%azb=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%aza)
%azc=getelementptr inbounds i8,i8*%azb,i64 16
%azd=bitcast i8*%azc to i8*(i8*,i8*)**
%aze=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%azd,align 8
%azf=bitcast i8*%azb to i8**
%azg=load i8*,i8**%azf,align 8
store i8*%azg,i8**%g,align 8
%azh=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%azi=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%azh)
%azj=call i8*@sml_alloc(i32 inreg 4)#0
%azk=bitcast i8*%azj to i32*
%azl=getelementptr inbounds i8,i8*%azj,i64 -4
%azm=bitcast i8*%azl to i32*
store i32 4,i32*%azm,align 4
store i32%azi,i32*%azk,align 4
%azn=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%azo=call fastcc i8*%aze(i8*inreg%azn,i8*inreg%azj)
%azp=call i8*@sml_alloc(i32 inreg 20)#0
%azq=getelementptr inbounds i8,i8*%azp,i64 -4
%azr=bitcast i8*%azq to i32*
store i32 1342177296,i32*%azr,align 4
store i8*%azp,i8**%c,align 8
%azs=getelementptr inbounds i8,i8*%azp,i64 4
%azt=bitcast i8*%azs to i32*
store i32 0,i32*%azt,align 1
%azu=bitcast i8*%azp to i32*
store i32 10,i32*%azu,align 4
%azv=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%azw=getelementptr inbounds i8,i8*%azp,i64 8
%azx=bitcast i8*%azw to i8**
store i8*%azv,i8**%azx,align 8
%azy=getelementptr inbounds i8,i8*%azp,i64 16
%azz=bitcast i8*%azy to i32*
store i32 2,i32*%azz,align 4
%azA=call i8*@sml_alloc(i32 inreg 12)#0
%azB=getelementptr inbounds i8,i8*%azA,i64 -4
%azC=bitcast i8*%azB to i32*
store i32 1342177288,i32*%azC,align 4
%azD=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%azE=bitcast i8*%azA to i8**
store i8*%azD,i8**%azE,align 8
%azF=getelementptr inbounds i8,i8*%azA,i64 8
%azG=bitcast i8*%azF to i32*
store i32 1,i32*%azG,align 4
%azH=icmp eq i8*%azA,null
br i1%azH,label%azI,label%azK
azI:
store i8*null,i8**%f,align 8
%azJ=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
store i8*%azJ,i8**%c,align 8
br label%bBS
azK:
%azL=phi i8*[%ay4,%ay3],[%azD,%ay5]
%azM=bitcast i8*%azL to i32*
%azN=load i32,i32*%azM,align 4
%azO=getelementptr inbounds i8,i8*%azL,i64 8
%azP=bitcast i8*%azO to i8**
%azQ=load i8*,i8**%azP,align 8
store i8*%azQ,i8**%c,align 8
%azR=icmp eq i32%azN,65
br i1%azR,label%azS,label%azZ
azS:
%azT=call i8*@sml_alloc(i32 inreg 20)#0
%azU=getelementptr inbounds i8,i8*%azT,i64 -4
%azV=bitcast i8*%azU to i32*
store i32 1342177296,i32*%azV,align 4
%azW=load i8*,i8**%c,align 8
%azX=bitcast i8*%azT to i8**
store i8*%azW,i8**%azX,align 8
%azY=load i8*,i8**%d,align 8
br label%aAW
azZ:
%az0=icmp ugt i32%azN,64
br i1%az0,label%aAp,label%az1
az1:
%az2=icmp eq i32%azN,48
br i1%az2,label%az3,label%aAa
az3:
%az4=call i8*@sml_alloc(i32 inreg 20)#0
%az5=getelementptr inbounds i8,i8*%az4,i64 -4
%az6=bitcast i8*%az5 to i32*
store i32 1342177296,i32*%az6,align 4
%az7=load i8*,i8**%c,align 8
%az8=bitcast i8*%az4 to i8**
store i8*%az7,i8**%az8,align 8
%az9=load i8*,i8**%d,align 8
br label%aAW
aAa:
%aAb=icmp ugt i32%azN,47
br i1%aAb,label%aAe,label%aAc
aAc:
store i8*null,i8**%f,align 8
%aAd=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
store i8*%aAd,i8**%c,align 8
br label%bBS
aAe:
%aAf=icmp ugt i32%azN,57
br i1%aAf,label%aAn,label%aAg
aAg:
%aAh=call i8*@sml_alloc(i32 inreg 20)#0
%aAi=getelementptr inbounds i8,i8*%aAh,i64 -4
%aAj=bitcast i8*%aAi to i32*
store i32 1342177296,i32*%aAj,align 4
%aAk=load i8*,i8**%c,align 8
%aAl=bitcast i8*%aAh to i8**
store i8*%aAk,i8**%aAl,align 8
%aAm=load i8*,i8**%d,align 8
br label%aAW
aAn:
store i8*null,i8**%f,align 8
%aAo=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
store i8*%aAo,i8**%c,align 8
br label%bBS
aAp:
%aAq=icmp eq i32%azN,97
br i1%aAq,label%aAr,label%aAy
aAr:
%aAs=call i8*@sml_alloc(i32 inreg 20)#0
%aAt=getelementptr inbounds i8,i8*%aAs,i64 -4
%aAu=bitcast i8*%aAt to i32*
store i32 1342177296,i32*%aAu,align 4
%aAv=load i8*,i8**%c,align 8
%aAw=bitcast i8*%aAs to i8**
store i8*%aAv,i8**%aAw,align 8
%aAx=load i8*,i8**%d,align 8
br label%aAW
aAy:
%aAz=icmp ugt i32%azN,96
br i1%aAz,label%aAL,label%aAA
aAA:
%aAB=icmp ugt i32%azN,70
br i1%aAB,label%aAJ,label%aAC
aAC:
%aAD=call i8*@sml_alloc(i32 inreg 20)#0
%aAE=getelementptr inbounds i8,i8*%aAD,i64 -4
%aAF=bitcast i8*%aAE to i32*
store i32 1342177296,i32*%aAF,align 4
%aAG=load i8*,i8**%c,align 8
%aAH=bitcast i8*%aAD to i8**
store i8*%aAG,i8**%aAH,align 8
%aAI=load i8*,i8**%d,align 8
br label%aAW
aAJ:
store i8*null,i8**%f,align 8
%aAK=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
store i8*%aAK,i8**%c,align 8
br label%bBS
aAL:
%aAM=icmp ugt i32%azN,102
br i1%aAM,label%aAU,label%aAN
aAN:
%aAO=call i8*@sml_alloc(i32 inreg 20)#0
%aAP=getelementptr inbounds i8,i8*%aAO,i64 -4
%aAQ=bitcast i8*%aAP to i32*
store i32 1342177296,i32*%aAQ,align 4
%aAR=load i8*,i8**%c,align 8
%aAS=bitcast i8*%aAO to i8**
store i8*%aAR,i8**%aAS,align 8
%aAT=load i8*,i8**%d,align 8
br label%aAW
aAU:
store i8*null,i8**%f,align 8
%aAV=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
store i8*%aAV,i8**%c,align 8
br label%bBS
aAW:
%aAX=phi i8*[%aAO,%aAN],[%aAD,%aAC],[%aAs,%aAr],[%aAh,%aAg],[%az4,%az3],[%azT,%azS]
%aAY=phi i8*[%aAT,%aAN],[%aAI,%aAC],[%aAx,%aAr],[%aAm,%aAg],[%az9,%az3],[%azY,%azS]
%aAZ=phi i8*[%aAR,%aAN],[%aAG,%aAC],[%aAv,%aAr],[%aAk,%aAg],[%az7,%az3],[%azW,%azS]
%aA0=getelementptr inbounds i8,i8*%aAX,i64 8
%aA1=bitcast i8*%aA0 to i8**
store i8*%aAY,i8**%aA1,align 8
%aA2=getelementptr inbounds i8,i8*%aAX,i64 16
%aA3=bitcast i8*%aA2 to i32*
store i32 3,i32*%aA3,align 4
store i8*%aAZ,i8**%c,align 8
store i8*%aAY,i8**%d,align 8
%aA4=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%aAZ)
%aA5=icmp eq i8*%aA4,null
br i1%aA5,label%aA6,label%aA7
aA6:
store i8*null,i8**%c,align 8
br label%aBS
aA7:
%aA8=bitcast i8*%aA4 to i8**
%aA9=load i8*,i8**%aA8,align 8
%aBa=bitcast i8*%aA9 to i32*
%aBb=load i32,i32*%aBa,align 4
%aBc=icmp eq i32%aBb,10
br i1%aBc,label%aBf,label%aBd
aBd:
store i8*null,i8**%c,align 8
%aBe=load i8*,i8**%aA8,align 8
br label%aBU
aBf:
%aBg=getelementptr inbounds i8,i8*%aA9,i64 8
%aBh=bitcast i8*%aBg to i8**
%aBi=load i8*,i8**%aBh,align 8
store i8*%aBi,i8**%e,align 8
%aBj=load i8**,i8***%o,align 8
%aBk=load i8*,i8**%aBj,align 8
%aBl=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%aBk)
%aBm=getelementptr inbounds i8,i8*%aBl,i64 16
%aBn=bitcast i8*%aBm to i8*(i8*,i8*)**
%aBo=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%aBn,align 8
%aBp=bitcast i8*%aBl to i8**
%aBq=load i8*,i8**%aBp,align 8
store i8*%aBq,i8**%g,align 8
%aBr=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aBs=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%aBr)
%aBt=call i8*@sml_alloc(i32 inreg 4)#0
%aBu=bitcast i8*%aBt to i32*
%aBv=getelementptr inbounds i8,i8*%aBt,i64 -4
%aBw=bitcast i8*%aBv to i32*
store i32 4,i32*%aBw,align 4
store i32%aBs,i32*%aBu,align 4
%aBx=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%aBy=call fastcc i8*%aBo(i8*inreg%aBx,i8*inreg%aBt)
%aBz=call i8*@sml_alloc(i32 inreg 20)#0
%aBA=getelementptr inbounds i8,i8*%aBz,i64 -4
%aBB=bitcast i8*%aBA to i32*
store i32 1342177296,i32*%aBB,align 4
store i8*%aBz,i8**%c,align 8
%aBC=getelementptr inbounds i8,i8*%aBz,i64 4
%aBD=bitcast i8*%aBC to i32*
store i32 0,i32*%aBD,align 1
%aBE=bitcast i8*%aBz to i32*
store i32 10,i32*%aBE,align 4
%aBF=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%aBG=getelementptr inbounds i8,i8*%aBz,i64 8
%aBH=bitcast i8*%aBG to i8**
store i8*%aBF,i8**%aBH,align 8
%aBI=getelementptr inbounds i8,i8*%aBz,i64 16
%aBJ=bitcast i8*%aBI to i32*
store i32 2,i32*%aBJ,align 4
%aBK=call i8*@sml_alloc(i32 inreg 12)#0
%aBL=getelementptr inbounds i8,i8*%aBK,i64 -4
%aBM=bitcast i8*%aBL to i32*
store i32 1342177288,i32*%aBM,align 4
%aBN=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aBO=bitcast i8*%aBK to i8**
store i8*%aBN,i8**%aBO,align 8
%aBP=getelementptr inbounds i8,i8*%aBK,i64 8
%aBQ=bitcast i8*%aBP to i32*
store i32 1,i32*%aBQ,align 4
%aBR=icmp eq i8*%aBK,null
br i1%aBR,label%aBS,label%aBU
aBS:
store i8*null,i8**%f,align 8
%aBT=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
store i8*%aBT,i8**%c,align 8
br label%bBS
aBU:
%aBV=phi i8*[%aBe,%aBd],[%aBN,%aBf]
%aBW=bitcast i8*%aBV to i32*
%aBX=load i32,i32*%aBW,align 4
%aBY=getelementptr inbounds i8,i8*%aBV,i64 8
%aBZ=bitcast i8*%aBY to i8**
%aB0=load i8*,i8**%aBZ,align 8
store i8*%aB0,i8**%c,align 8
%aB1=icmp eq i32%aBX,65
br i1%aB1,label%aB2,label%aB9
aB2:
%aB3=call i8*@sml_alloc(i32 inreg 20)#0
%aB4=getelementptr inbounds i8,i8*%aB3,i64 -4
%aB5=bitcast i8*%aB4 to i32*
store i32 1342177296,i32*%aB5,align 4
%aB6=load i8*,i8**%c,align 8
%aB7=bitcast i8*%aB3 to i8**
store i8*%aB6,i8**%aB7,align 8
%aB8=load i8*,i8**%d,align 8
br label%aC6
aB9:
%aCa=icmp ugt i32%aBX,64
br i1%aCa,label%aCz,label%aCb
aCb:
%aCc=icmp eq i32%aBX,48
br i1%aCc,label%aCd,label%aCk
aCd:
%aCe=call i8*@sml_alloc(i32 inreg 20)#0
%aCf=getelementptr inbounds i8,i8*%aCe,i64 -4
%aCg=bitcast i8*%aCf to i32*
store i32 1342177296,i32*%aCg,align 4
%aCh=load i8*,i8**%c,align 8
%aCi=bitcast i8*%aCe to i8**
store i8*%aCh,i8**%aCi,align 8
%aCj=load i8*,i8**%d,align 8
br label%aC6
aCk:
%aCl=icmp ugt i32%aBX,47
br i1%aCl,label%aCo,label%aCm
aCm:
store i8*null,i8**%f,align 8
%aCn=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
store i8*%aCn,i8**%c,align 8
br label%bBS
aCo:
%aCp=icmp ugt i32%aBX,57
br i1%aCp,label%aCx,label%aCq
aCq:
%aCr=call i8*@sml_alloc(i32 inreg 20)#0
%aCs=getelementptr inbounds i8,i8*%aCr,i64 -4
%aCt=bitcast i8*%aCs to i32*
store i32 1342177296,i32*%aCt,align 4
%aCu=load i8*,i8**%c,align 8
%aCv=bitcast i8*%aCr to i8**
store i8*%aCu,i8**%aCv,align 8
%aCw=load i8*,i8**%d,align 8
br label%aC6
aCx:
store i8*null,i8**%f,align 8
%aCy=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
store i8*%aCy,i8**%c,align 8
br label%bBS
aCz:
%aCA=icmp eq i32%aBX,97
br i1%aCA,label%aCB,label%aCI
aCB:
%aCC=call i8*@sml_alloc(i32 inreg 20)#0
%aCD=getelementptr inbounds i8,i8*%aCC,i64 -4
%aCE=bitcast i8*%aCD to i32*
store i32 1342177296,i32*%aCE,align 4
%aCF=load i8*,i8**%c,align 8
%aCG=bitcast i8*%aCC to i8**
store i8*%aCF,i8**%aCG,align 8
%aCH=load i8*,i8**%d,align 8
br label%aC6
aCI:
%aCJ=icmp ugt i32%aBX,96
br i1%aCJ,label%aCV,label%aCK
aCK:
%aCL=icmp ugt i32%aBX,70
br i1%aCL,label%aCT,label%aCM
aCM:
%aCN=call i8*@sml_alloc(i32 inreg 20)#0
%aCO=getelementptr inbounds i8,i8*%aCN,i64 -4
%aCP=bitcast i8*%aCO to i32*
store i32 1342177296,i32*%aCP,align 4
%aCQ=load i8*,i8**%c,align 8
%aCR=bitcast i8*%aCN to i8**
store i8*%aCQ,i8**%aCR,align 8
%aCS=load i8*,i8**%d,align 8
br label%aC6
aCT:
store i8*null,i8**%f,align 8
%aCU=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
store i8*%aCU,i8**%c,align 8
br label%bBS
aCV:
%aCW=icmp ugt i32%aBX,102
br i1%aCW,label%aC4,label%aCX
aCX:
%aCY=call i8*@sml_alloc(i32 inreg 20)#0
%aCZ=getelementptr inbounds i8,i8*%aCY,i64 -4
%aC0=bitcast i8*%aCZ to i32*
store i32 1342177296,i32*%aC0,align 4
%aC1=load i8*,i8**%c,align 8
%aC2=bitcast i8*%aCY to i8**
store i8*%aC1,i8**%aC2,align 8
%aC3=load i8*,i8**%d,align 8
br label%aC6
aC4:
store i8*null,i8**%f,align 8
%aC5=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
store i8*%aC5,i8**%c,align 8
br label%bBS
aC6:
%aC7=phi i8*[%aCY,%aCX],[%aCN,%aCM],[%aCC,%aCB],[%aCr,%aCq],[%aCe,%aCd],[%aB3,%aB2]
%aC8=phi i8*[%aC3,%aCX],[%aCS,%aCM],[%aCH,%aCB],[%aCw,%aCq],[%aCj,%aCd],[%aB8,%aB2]
%aC9=phi i8*[%aC1,%aCX],[%aCQ,%aCM],[%aCF,%aCB],[%aCu,%aCq],[%aCh,%aCd],[%aB6,%aB2]
%aDa=getelementptr inbounds i8,i8*%aC7,i64 8
%aDb=bitcast i8*%aDa to i8**
store i8*%aC8,i8**%aDb,align 8
%aDc=getelementptr inbounds i8,i8*%aC7,i64 16
%aDd=bitcast i8*%aDc to i32*
store i32 3,i32*%aDd,align 4
store i8*%aC9,i8**%c,align 8
store i8*%aC8,i8**%d,align 8
%aDe=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%aC9)
%aDf=icmp eq i8*%aDe,null
br i1%aDf,label%aDg,label%aDh
aDg:
store i8*null,i8**%c,align 8
br label%aD2
aDh:
%aDi=bitcast i8*%aDe to i8**
%aDj=load i8*,i8**%aDi,align 8
%aDk=bitcast i8*%aDj to i32*
%aDl=load i32,i32*%aDk,align 4
%aDm=icmp eq i32%aDl,10
br i1%aDm,label%aDp,label%aDn
aDn:
store i8*null,i8**%c,align 8
%aDo=load i8*,i8**%aDi,align 8
br label%aD4
aDp:
%aDq=getelementptr inbounds i8,i8*%aDj,i64 8
%aDr=bitcast i8*%aDq to i8**
%aDs=load i8*,i8**%aDr,align 8
store i8*%aDs,i8**%e,align 8
%aDt=load i8**,i8***%o,align 8
%aDu=load i8*,i8**%aDt,align 8
%aDv=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%aDu)
%aDw=getelementptr inbounds i8,i8*%aDv,i64 16
%aDx=bitcast i8*%aDw to i8*(i8*,i8*)**
%aDy=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%aDx,align 8
%aDz=bitcast i8*%aDv to i8**
%aDA=load i8*,i8**%aDz,align 8
store i8*%aDA,i8**%g,align 8
%aDB=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aDC=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%aDB)
%aDD=call i8*@sml_alloc(i32 inreg 4)#0
%aDE=bitcast i8*%aDD to i32*
%aDF=getelementptr inbounds i8,i8*%aDD,i64 -4
%aDG=bitcast i8*%aDF to i32*
store i32 4,i32*%aDG,align 4
store i32%aDC,i32*%aDE,align 4
%aDH=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%aDI=call fastcc i8*%aDy(i8*inreg%aDH,i8*inreg%aDD)
%aDJ=call i8*@sml_alloc(i32 inreg 20)#0
%aDK=getelementptr inbounds i8,i8*%aDJ,i64 -4
%aDL=bitcast i8*%aDK to i32*
store i32 1342177296,i32*%aDL,align 4
store i8*%aDJ,i8**%c,align 8
%aDM=getelementptr inbounds i8,i8*%aDJ,i64 4
%aDN=bitcast i8*%aDM to i32*
store i32 0,i32*%aDN,align 1
%aDO=bitcast i8*%aDJ to i32*
store i32 10,i32*%aDO,align 4
%aDP=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%aDQ=getelementptr inbounds i8,i8*%aDJ,i64 8
%aDR=bitcast i8*%aDQ to i8**
store i8*%aDP,i8**%aDR,align 8
%aDS=getelementptr inbounds i8,i8*%aDJ,i64 16
%aDT=bitcast i8*%aDS to i32*
store i32 2,i32*%aDT,align 4
%aDU=call i8*@sml_alloc(i32 inreg 12)#0
%aDV=getelementptr inbounds i8,i8*%aDU,i64 -4
%aDW=bitcast i8*%aDV to i32*
store i32 1342177288,i32*%aDW,align 4
%aDX=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aDY=bitcast i8*%aDU to i8**
store i8*%aDX,i8**%aDY,align 8
%aDZ=getelementptr inbounds i8,i8*%aDU,i64 8
%aD0=bitcast i8*%aDZ to i32*
store i32 1,i32*%aD0,align 4
%aD1=icmp eq i8*%aDU,null
br i1%aD1,label%aD2,label%aD4
aD2:
store i8*null,i8**%f,align 8
%aD3=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
store i8*%aD3,i8**%c,align 8
br label%bBS
aD4:
%aD5=phi i8*[%aDo,%aDn],[%aDX,%aDp]
%aD6=bitcast i8*%aD5 to i32*
%aD7=load i32,i32*%aD6,align 4
%aD8=getelementptr inbounds i8,i8*%aD5,i64 8
%aD9=bitcast i8*%aD8 to i8**
%aEa=load i8*,i8**%aD9,align 8
store i8*%aEa,i8**%c,align 8
%aEb=icmp eq i32%aD7,65
br i1%aEb,label%aEc,label%aEj
aEc:
%aEd=call i8*@sml_alloc(i32 inreg 20)#0
%aEe=getelementptr inbounds i8,i8*%aEd,i64 -4
%aEf=bitcast i8*%aEe to i32*
store i32 1342177296,i32*%aEf,align 4
%aEg=load i8*,i8**%c,align 8
%aEh=bitcast i8*%aEd to i8**
store i8*%aEg,i8**%aEh,align 8
%aEi=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
br label%aFg
aEj:
%aEk=icmp ugt i32%aD7,64
br i1%aEk,label%aEJ,label%aEl
aEl:
%aEm=icmp eq i32%aD7,48
br i1%aEm,label%aEn,label%aEu
aEn:
%aEo=call i8*@sml_alloc(i32 inreg 20)#0
%aEp=getelementptr inbounds i8,i8*%aEo,i64 -4
%aEq=bitcast i8*%aEp to i32*
store i32 1342177296,i32*%aEq,align 4
%aEr=load i8*,i8**%c,align 8
%aEs=bitcast i8*%aEo to i8**
store i8*%aEr,i8**%aEs,align 8
%aEt=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
br label%aFg
aEu:
%aEv=icmp ugt i32%aD7,47
br i1%aEv,label%aEy,label%aEw
aEw:
store i8*null,i8**%f,align 8
%aEx=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
store i8*%aEx,i8**%c,align 8
br label%bBS
aEy:
%aEz=icmp ugt i32%aD7,57
br i1%aEz,label%aEH,label%aEA
aEA:
%aEB=call i8*@sml_alloc(i32 inreg 20)#0
%aEC=getelementptr inbounds i8,i8*%aEB,i64 -4
%aED=bitcast i8*%aEC to i32*
store i32 1342177296,i32*%aED,align 4
%aEE=load i8*,i8**%c,align 8
%aEF=bitcast i8*%aEB to i8**
store i8*%aEE,i8**%aEF,align 8
%aEG=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
br label%aFg
aEH:
store i8*null,i8**%f,align 8
%aEI=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
store i8*%aEI,i8**%c,align 8
br label%bBS
aEJ:
%aEK=icmp eq i32%aD7,97
br i1%aEK,label%aEL,label%aES
aEL:
%aEM=call i8*@sml_alloc(i32 inreg 20)#0
%aEN=getelementptr inbounds i8,i8*%aEM,i64 -4
%aEO=bitcast i8*%aEN to i32*
store i32 1342177296,i32*%aEO,align 4
%aEP=load i8*,i8**%c,align 8
%aEQ=bitcast i8*%aEM to i8**
store i8*%aEP,i8**%aEQ,align 8
%aER=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
br label%aFg
aES:
%aET=icmp ugt i32%aD7,96
br i1%aET,label%aE5,label%aEU
aEU:
%aEV=icmp ugt i32%aD7,70
br i1%aEV,label%aE3,label%aEW
aEW:
%aEX=call i8*@sml_alloc(i32 inreg 20)#0
%aEY=getelementptr inbounds i8,i8*%aEX,i64 -4
%aEZ=bitcast i8*%aEY to i32*
store i32 1342177296,i32*%aEZ,align 4
%aE0=load i8*,i8**%c,align 8
%aE1=bitcast i8*%aEX to i8**
store i8*%aE0,i8**%aE1,align 8
%aE2=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
br label%aFg
aE3:
store i8*null,i8**%f,align 8
%aE4=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
store i8*%aE4,i8**%c,align 8
br label%bBS
aE5:
%aE6=icmp ugt i32%aD7,102
br i1%aE6,label%aFe,label%aE7
aE7:
%aE8=call i8*@sml_alloc(i32 inreg 20)#0
%aE9=getelementptr inbounds i8,i8*%aE8,i64 -4
%aFa=bitcast i8*%aE9 to i32*
store i32 1342177296,i32*%aFa,align 4
%aFb=load i8*,i8**%c,align 8
%aFc=bitcast i8*%aE8 to i8**
store i8*%aFb,i8**%aFc,align 8
%aFd=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
br label%aFg
aFe:
store i8*null,i8**%f,align 8
%aFf=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
store i8*%aFf,i8**%c,align 8
br label%bBS
aFg:
%aFh=phi i8*[%aE8,%aE7],[%aEX,%aEW],[%aEM,%aEL],[%aEB,%aEA],[%aEo,%aEn],[%aEd,%aEc]
%aFi=phi i8*[%aFd,%aE7],[%aE2,%aEW],[%aER,%aEL],[%aEG,%aEA],[%aEt,%aEn],[%aEi,%aEc]
%aFj=phi i8*[%aFb,%aE7],[%aE0,%aEW],[%aEP,%aEL],[%aEE,%aEA],[%aEr,%aEn],[%aEg,%aEc]
%aFk=getelementptr inbounds i8,i8*%aFh,i64 8
%aFl=bitcast i8*%aFk to i8**
store i8*%aFi,i8**%aFl,align 8
%aFm=getelementptr inbounds i8,i8*%aFh,i64 16
%aFn=bitcast i8*%aFm to i32*
store i32 3,i32*%aFn,align 4
store i8*%aFj,i8**%c,align 8
%aFo=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%aFj)
%aFp=icmp eq i8*%aFo,null
br i1%aFp,label%aF8,label%aFq
aFq:
%aFr=bitcast i8*%aFo to i8**
%aFs=load i8*,i8**%aFr,align 8
%aFt=bitcast i8*%aFs to i32*
%aFu=load i32,i32*%aFt,align 4
%aFv=icmp eq i32%aFu,10
br i1%aFv,label%aFw,label%aF8
aFw:
%aFx=getelementptr inbounds i8,i8*%aFs,i64 8
%aFy=bitcast i8*%aFx to i8**
%aFz=load i8*,i8**%aFy,align 8
store i8*%aFz,i8**%d,align 8
%aFA=load i8**,i8***%o,align 8
%aFB=load i8*,i8**%aFA,align 8
%aFC=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%aFB)
%aFD=getelementptr inbounds i8,i8*%aFC,i64 16
%aFE=bitcast i8*%aFD to i8*(i8*,i8*)**
%aFF=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%aFE,align 8
%aFG=bitcast i8*%aFC to i8**
%aFH=load i8*,i8**%aFG,align 8
store i8*%aFH,i8**%e,align 8
%aFI=load i8*,i8**%c,align 8
%aFJ=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%aFI)
%aFK=call i8*@sml_alloc(i32 inreg 4)#0
%aFL=bitcast i8*%aFK to i32*
%aFM=getelementptr inbounds i8,i8*%aFK,i64 -4
%aFN=bitcast i8*%aFM to i32*
store i32 4,i32*%aFN,align 4
store i32%aFJ,i32*%aFL,align 4
%aFO=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%aFP=call fastcc i8*%aFF(i8*inreg%aFO,i8*inreg%aFK)
%aFQ=call i8*@sml_alloc(i32 inreg 20)#0
%aFR=getelementptr inbounds i8,i8*%aFQ,i64 -4
%aFS=bitcast i8*%aFR to i32*
store i32 1342177296,i32*%aFS,align 4
store i8*%aFQ,i8**%e,align 8
%aFT=getelementptr inbounds i8,i8*%aFQ,i64 4
%aFU=bitcast i8*%aFT to i32*
store i32 0,i32*%aFU,align 1
%aFV=bitcast i8*%aFQ to i32*
store i32 10,i32*%aFV,align 4
%aFW=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aFX=getelementptr inbounds i8,i8*%aFQ,i64 8
%aFY=bitcast i8*%aFX to i8**
store i8*%aFW,i8**%aFY,align 8
%aFZ=getelementptr inbounds i8,i8*%aFQ,i64 16
%aF0=bitcast i8*%aFZ to i32*
store i32 2,i32*%aF0,align 4
%aF1=call i8*@sml_alloc(i32 inreg 12)#0
%aF2=getelementptr inbounds i8,i8*%aF1,i64 -4
%aF3=bitcast i8*%aF2 to i32*
store i32 1342177288,i32*%aF3,align 4
%aF4=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%aF5=bitcast i8*%aF1 to i8**
store i8*%aF4,i8**%aF5,align 8
%aF6=getelementptr inbounds i8,i8*%aF1,i64 8
%aF7=bitcast i8*%aF6 to i32*
store i32 1,i32*%aF7,align 4
br label%aF8
aF8:
%aF9=call i8*@sml_alloc(i32 inreg 20)#0
%aGa=getelementptr inbounds i8,i8*%aF9,i64 -4
%aGb=bitcast i8*%aGa to i32*
store i32 1342177296,i32*%aGb,align 4
%aGc=load i8*,i8**%c,align 8
%aGd=bitcast i8*%aF9 to i8**
store i8*%aGc,i8**%aGd,align 8
%aGe=getelementptr inbounds i8,i8*%aF9,i64 8
%aGf=bitcast i8*%aGe to i8**
store i8*null,i8**%aGf,align 8
%aGg=getelementptr inbounds i8,i8*%aF9,i64 16
%aGh=bitcast i8*%aGg to i32*
store i32 3,i32*%aGh,align 4
%aGi=load i8*,i8**%f,align 8
%aGj=getelementptr inbounds i8,i8*%aGi,i64 16
%aGk=bitcast i8*%aGj to i8***
%aGl=load i8**,i8***%aGk,align 8
%aGm=load i8*,i8**%aGl,align 8
store i8*%aGm,i8**%d,align 8
%aGn=call i8*@sml_alloc(i32 inreg 20)#0
%aGo=getelementptr inbounds i8,i8*%aGn,i64 -4
%aGp=bitcast i8*%aGo to i32*
store i32 1342177296,i32*%aGp,align 4
%aGq=load i8*,i8**%c,align 8
%aGr=bitcast i8*%aGn to i8**
store i8*%aGq,i8**%aGr,align 8
%aGs=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aGt=getelementptr inbounds i8,i8*%aGn,i64 8
%aGu=bitcast i8*%aGt to i8**
store i8*%aGs,i8**%aGu,align 8
%aGv=getelementptr inbounds i8,i8*%aGn,i64 16
%aGw=bitcast i8*%aGv to i32*
store i32 3,i32*%aGw,align 4
%aGx=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%aGn)
%aGy=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%aGx)
store i8*%aGy,i8**%d,align 8
%aGz=load i8*,i8**%f,align 8
%aGA=getelementptr inbounds i8,i8*%aGz,i64 16
%aGB=bitcast i8*%aGA to i8**
%aGC=load i8*,i8**%aGB,align 8
%aGD=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aGE=bitcast i8*%aGC to i8**
call void@sml_write(i8*inreg%aGC,i8**inreg%aGE,i8*inreg%aGD)#0
%aGF=call fastcc i8*@_SMLFN9Substring5trimlE(i32 inreg 2)
%aGG=getelementptr inbounds i8,i8*%aGF,i64 16
%aGH=bitcast i8*%aGG to i8*(i8*,i8*)**
%aGI=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%aGH,align 8
%aGJ=bitcast i8*%aGF to i8**
%aGK=load i8*,i8**%aGJ,align 8
store i8*%aGK,i8**%c,align 8
%aGL=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aGM=call fastcc i8*@_SMLFN9Substring4fullE(i8*inreg%aGL)
%aGN=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aGO=call fastcc i8*%aGI(i8*inreg%aGN,i8*inreg%aGM)
store i8*%aGO,i8**%c,align 8
%aGP=call fastcc i8*@_SMLFN6Word324scanE(i32 inreg 1,i32 inreg 8)
%aGQ=getelementptr inbounds i8,i8*%aGP,i64 16
%aGR=bitcast i8*%aGQ to i8*(i8*,i8*)**
%aGS=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%aGR,align 8
%aGT=bitcast i8*%aGP to i8**
%aGU=load i8*,i8**%aGT,align 8
store i8*%aGU,i8**%d,align 8
%aGV=call i8*@sml_alloc(i32 inreg 4)#0
%aGW=bitcast i8*%aGV to i32*
%aGX=getelementptr inbounds i8,i8*%aGV,i64 -4
%aGY=bitcast i8*%aGX to i32*
store i32 4,i32*%aGY,align 4
store i32 2,i32*%aGW,align 4
%aGZ=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aG0=call fastcc i8*%aGS(i8*inreg%aGZ,i8*inreg%aGV)
%aG1=getelementptr inbounds i8,i8*%aG0,i64 16
%aG2=bitcast i8*%aG1 to i8*(i8*,i8*)**
%aG3=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%aG2,align 8
%aG4=bitcast i8*%aG0 to i8**
%aG5=load i8*,i8**%aG4,align 8
%aG6=load i8*,i8**@_SMLZN9Substring4getcE,align 8
%aG7=call fastcc i8*%aG3(i8*inreg%aG5,i8*inreg%aG6)
%aG8=getelementptr inbounds i8,i8*%aG7,i64 16
%aG9=bitcast i8*%aG8 to i8*(i8*,i8*)**
%aHa=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%aG9,align 8
%aHb=bitcast i8*%aG7 to i8**
%aHc=load i8*,i8**%aHb,align 8
%aHd=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aHe=call fastcc i8*%aHa(i8*inreg%aHc,i8*inreg%aHd)
%aHf=icmp eq i8*%aHe,null
br i1%aHf,label%bBe,label%bBw
aHg:
%aHh=phi i8*[%auH,%auG],[%atA,%atz],[%amu,%amt],[%afr,%afq],[%IB,%IA],[%y7,%y6],[%y0,%yZ],[%yO,%yN],[%yC,%yB]
%aHi=phi i8*[%auK,%auG],[%atD,%atz],[%amx,%amt],[%afu,%afq],[%IE,%IA],[%za,%y6],[%y3,%yZ],[%yR,%yN],[%yF,%yB]
%aHj=bitcast i8*%aHh to i8**
store i8*%aHi,i8**%aHj,align 8
%aHk=getelementptr inbounds i8,i8*%aHh,i64 8
%aHl=bitcast i8*%aHk to i8**
store i8*null,i8**%aHl,align 8
%aHm=getelementptr inbounds i8,i8*%aHh,i64 16
%aHn=bitcast i8*%aHm to i32*
store i32 3,i32*%aHn,align 4
store i8*%aHi,i8**%c,align 8
%aHo=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%aHi)
%aHp=icmp eq i8*%aHo,null
br i1%aHp,label%aH8,label%aHq
aHq:
%aHr=bitcast i8*%aHo to i8**
%aHs=load i8*,i8**%aHr,align 8
%aHt=bitcast i8*%aHs to i32*
%aHu=load i32,i32*%aHt,align 4
%aHv=icmp eq i32%aHu,10
br i1%aHv,label%aHw,label%aH8
aHw:
%aHx=getelementptr inbounds i8,i8*%aHs,i64 8
%aHy=bitcast i8*%aHx to i8**
%aHz=load i8*,i8**%aHy,align 8
store i8*%aHz,i8**%d,align 8
%aHA=load i8**,i8***%o,align 8
%aHB=load i8*,i8**%aHA,align 8
%aHC=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%aHB)
%aHD=getelementptr inbounds i8,i8*%aHC,i64 16
%aHE=bitcast i8*%aHD to i8*(i8*,i8*)**
%aHF=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%aHE,align 8
%aHG=bitcast i8*%aHC to i8**
%aHH=load i8*,i8**%aHG,align 8
store i8*%aHH,i8**%e,align 8
%aHI=load i8*,i8**%c,align 8
%aHJ=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%aHI)
%aHK=call i8*@sml_alloc(i32 inreg 4)#0
%aHL=bitcast i8*%aHK to i32*
%aHM=getelementptr inbounds i8,i8*%aHK,i64 -4
%aHN=bitcast i8*%aHM to i32*
store i32 4,i32*%aHN,align 4
store i32%aHJ,i32*%aHL,align 4
%aHO=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%aHP=call fastcc i8*%aHF(i8*inreg%aHO,i8*inreg%aHK)
%aHQ=call i8*@sml_alloc(i32 inreg 20)#0
%aHR=getelementptr inbounds i8,i8*%aHQ,i64 -4
%aHS=bitcast i8*%aHR to i32*
store i32 1342177296,i32*%aHS,align 4
store i8*%aHQ,i8**%e,align 8
%aHT=getelementptr inbounds i8,i8*%aHQ,i64 4
%aHU=bitcast i8*%aHT to i32*
store i32 0,i32*%aHU,align 1
%aHV=bitcast i8*%aHQ to i32*
store i32 10,i32*%aHV,align 4
%aHW=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aHX=getelementptr inbounds i8,i8*%aHQ,i64 8
%aHY=bitcast i8*%aHX to i8**
store i8*%aHW,i8**%aHY,align 8
%aHZ=getelementptr inbounds i8,i8*%aHQ,i64 16
%aH0=bitcast i8*%aHZ to i32*
store i32 2,i32*%aH0,align 4
%aH1=call i8*@sml_alloc(i32 inreg 12)#0
%aH2=getelementptr inbounds i8,i8*%aH1,i64 -4
%aH3=bitcast i8*%aH2 to i32*
store i32 1342177288,i32*%aH3,align 4
%aH4=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%aH5=bitcast i8*%aH1 to i8**
store i8*%aH4,i8**%aH5,align 8
%aH6=getelementptr inbounds i8,i8*%aH1,i64 8
%aH7=bitcast i8*%aH6 to i32*
store i32 1,i32*%aH7,align 4
br label%aH8
aH8:
%aH9=load i8*,i8**%f,align 8
%aIa=getelementptr inbounds i8,i8*%aH9,i64 16
%aIb=bitcast i8*%aIa to i8***
%aIc=load i8**,i8***%aIb,align 8
%aId=load i8*,i8**%aIc,align 8
store i8*%aId,i8**%d,align 8
%aIe=call i8*@sml_alloc(i32 inreg 20)#0
%aIf=getelementptr inbounds i8,i8*%aIe,i64 -4
%aIg=bitcast i8*%aIf to i32*
store i32 1342177296,i32*%aIg,align 4
%aIh=load i8*,i8**%c,align 8
%aIi=bitcast i8*%aIe to i8**
store i8*%aIh,i8**%aIi,align 8
%aIj=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aIk=getelementptr inbounds i8,i8*%aIe,i64 8
%aIl=bitcast i8*%aIk to i8**
store i8*%aIj,i8**%aIl,align 8
%aIm=getelementptr inbounds i8,i8*%aIe,i64 16
%aIn=bitcast i8*%aIm to i32*
store i32 3,i32*%aIn,align 4
%aIo=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%aIe)
%aIp=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%aIo)
%aIq=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%aIr=getelementptr inbounds i8,i8*%aIq,i64 16
%aIs=bitcast i8*%aIr to i8**
%aIt=load i8*,i8**%aIs,align 8
%aIu=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aIv=bitcast i8*%aIt to i8**
call void@sml_write(i8*inreg%aIt,i8**inreg%aIv,i8*inreg%aIu)#0
%aIw=call fastcc i8*@_SMLFN6String8toStringE(i8*inreg%aIp)
store i8*%aIw,i8**%c,align 8
%aIx=call i8*@sml_alloc(i32 inreg 20)#0
%aIy=getelementptr inbounds i8,i8*%aIx,i64 -4
%aIz=bitcast i8*%aIy to i32*
store i32 1342177296,i32*%aIz,align 4
store i8*%aIx,i8**%d,align 8
%aIA=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aIB=bitcast i8*%aIx to i8**
store i8*%aIA,i8**%aIB,align 8
%aIC=getelementptr inbounds i8,i8*%aIx,i64 8
%aID=bitcast i8*%aIC to i8**
store i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,i8*,i32}>,<{[4x i8],i32,i8*,i8*,i32}>*@x,i64 0,i32 2)to i8*),i8**%aID,align 8
%aIE=getelementptr inbounds i8,i8*%aIx,i64 16
%aIF=bitcast i8*%aIE to i32*
store i32 3,i32*%aIF,align 4
%aIG=call i8*@sml_alloc(i32 inreg 20)#0
%aIH=getelementptr inbounds i8,i8*%aIG,i64 -4
%aII=bitcast i8*%aIH to i32*
store i32 1342177296,i32*%aII,align 4
store i8*%aIG,i8**%c,align 8
%aIJ=bitcast i8*%aIG to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[16x i8]}>,<{[4x i8],i32,[16x i8]}>*@v,i64 0,i32 2,i64 0),i8**%aIJ,align 8
%aIK=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aIL=getelementptr inbounds i8,i8*%aIG,i64 8
%aIM=bitcast i8*%aIL to i8**
store i8*%aIK,i8**%aIM,align 8
%aIN=getelementptr inbounds i8,i8*%aIG,i64 16
%aIO=bitcast i8*%aIN to i32*
store i32 3,i32*%aIO,align 4
%aIP=call i8*@sml_alloc(i32 inreg 20)#0
%aIQ=bitcast i8*%aIP to i32*
%aIR=getelementptr inbounds i8,i8*%aIP,i64 -4
%aIS=bitcast i8*%aIR to i32*
store i32 1342177296,i32*%aIS,align 4
%aIT=getelementptr inbounds i8,i8*%aIP,i64 4
%aIU=bitcast i8*%aIT to i32*
store i32 0,i32*%aIU,align 1
store i32 3,i32*%aIQ,align 4
%aIV=load i8*,i8**%c,align 8
%aIW=getelementptr inbounds i8,i8*%aIP,i64 8
%aIX=bitcast i8*%aIW to i8**
store i8*%aIV,i8**%aIX,align 8
%aIY=getelementptr inbounds i8,i8*%aIP,i64 16
%aIZ=bitcast i8*%aIY to i32*
store i32 2,i32*%aIZ,align 4
ret i8*%aIP
aI0:
%aI1=phi i8*[%yV,%yU],[%yJ,%yI],[%yv,%yu],[%ym,%yl]
%aI2=phi i8*[%yY,%yU],[%yM,%yI],[%yy,%yu],[%yp,%yl]
%aI3=bitcast i8*%aI1 to i8**
store i8*%aI2,i8**%aI3,align 8
%aI4=getelementptr inbounds i8,i8*%aI1,i64 8
%aI5=bitcast i8*%aI4 to i8**
store i8*null,i8**%aI5,align 8
%aI6=getelementptr inbounds i8,i8*%aI1,i64 16
%aI7=bitcast i8*%aI6 to i32*
store i32 3,i32*%aI7,align 4
store i8*%aI2,i8**%c,align 8
%aI8=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%aI2)
%aI9=icmp eq i8*%aI8,null
br i1%aI9,label%aJW,label%aJa
aJa:
%aJb=bitcast i8*%aI8 to i8**
%aJc=load i8*,i8**%aJb,align 8
%aJd=bitcast i8*%aJc to i32*
%aJe=load i32,i32*%aJd,align 4
%aJf=icmp eq i32%aJe,10
br i1%aJf,label%aJg,label%aKn
aJg:
%aJh=getelementptr inbounds i8,i8*%aJc,i64 8
%aJi=bitcast i8*%aJh to i8**
%aJj=load i8*,i8**%aJi,align 8
store i8*%aJj,i8**%d,align 8
%aJk=load i8**,i8***%o,align 8
%aJl=load i8*,i8**%aJk,align 8
%aJm=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%aJl)
%aJn=getelementptr inbounds i8,i8*%aJm,i64 16
%aJo=bitcast i8*%aJn to i8*(i8*,i8*)**
%aJp=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%aJo,align 8
%aJq=bitcast i8*%aJm to i8**
%aJr=load i8*,i8**%aJq,align 8
store i8*%aJr,i8**%e,align 8
%aJs=load i8*,i8**%c,align 8
%aJt=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%aJs)
%aJu=call i8*@sml_alloc(i32 inreg 4)#0
%aJv=bitcast i8*%aJu to i32*
%aJw=getelementptr inbounds i8,i8*%aJu,i64 -4
%aJx=bitcast i8*%aJw to i32*
store i32 4,i32*%aJx,align 4
store i32%aJt,i32*%aJv,align 4
%aJy=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%aJz=call fastcc i8*%aJp(i8*inreg%aJy,i8*inreg%aJu)
%aJA=call i8*@sml_alloc(i32 inreg 20)#0
%aJB=getelementptr inbounds i8,i8*%aJA,i64 -4
%aJC=bitcast i8*%aJB to i32*
store i32 1342177296,i32*%aJC,align 4
store i8*%aJA,i8**%e,align 8
%aJD=getelementptr inbounds i8,i8*%aJA,i64 4
%aJE=bitcast i8*%aJD to i32*
store i32 0,i32*%aJE,align 1
%aJF=bitcast i8*%aJA to i32*
store i32 10,i32*%aJF,align 4
%aJG=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aJH=getelementptr inbounds i8,i8*%aJA,i64 8
%aJI=bitcast i8*%aJH to i8**
store i8*%aJG,i8**%aJI,align 8
%aJJ=getelementptr inbounds i8,i8*%aJA,i64 16
%aJK=bitcast i8*%aJJ to i32*
store i32 2,i32*%aJK,align 4
%aJL=call i8*@sml_alloc(i32 inreg 12)#0
%aJM=getelementptr inbounds i8,i8*%aJL,i64 -4
%aJN=bitcast i8*%aJM to i32*
store i32 1342177288,i32*%aJN,align 4
%aJO=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%aJP=bitcast i8*%aJL to i8**
store i8*%aJO,i8**%aJP,align 8
%aJQ=getelementptr inbounds i8,i8*%aJL,i64 8
%aJR=bitcast i8*%aJQ to i32*
store i32 1,i32*%aJR,align 4
%aJS=icmp eq i8*%aJL,null
br i1%aJS,label%aJW,label%aJT
aJT:
%aJU=bitcast i8*%aJO to i32*
%aJV=load i32,i32*%aJU,align 4
br label%aKn
aJW:
store i8*null,i8**%h,align 8
%aJX=load i8*,i8**%f,align 8
%aJY=getelementptr inbounds i8,i8*%aJX,i64 16
%aJZ=bitcast i8*%aJY to i8**
%aJ0=load i8*,i8**%aJZ,align 8
%aJ1=load i8*,i8**%c,align 8
%aJ2=bitcast i8*%aJ0 to i8**
call void@sml_write(i8*inreg%aJ0,i8**inreg%aJ2,i8*inreg%aJ1)#0
%aJ3=load i8*,i8**%f,align 8
%aJ4=getelementptr inbounds i8,i8*%aJ3,i64 24
%aJ5=bitcast i8*%aJ4 to i8**
%aJ6=load i8*,i8**%aJ5,align 8
store i8*%aJ6,i8**%c,align 8
%aJ7=getelementptr inbounds i8,i8*%aJ3,i64 16
%aJ8=bitcast i8*%aJ7 to i8***
%aJ9=load i8**,i8***%aJ8,align 8
%aKa=load i8*,i8**%aJ9,align 8
%aKb=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%aKa)
%aKc=load i32*,i32**%q,align 8
store i32%aKb,i32*%aKc,align 4
%aKd=load i8*,i8**%f,align 8
%aKe=getelementptr inbounds i8,i8*%aKd,i64 32
%aKf=bitcast i8*%aKe to i8**
%aKg=load i8*,i8**%aKf,align 8
store i8*%aKg,i8**%c,align 8
%aKh=getelementptr inbounds i8,i8*%aKd,i64 16
%aKi=bitcast i8*%aKh to i8***
%aKj=load i8**,i8***%aKi,align 8
%aKk=load i8*,i8**%aKj,align 8
%aKl=call fastcc i32@_SMLFN10ULexBuffer9lastWasNLE(i8*inreg%aKk)
%aKm=load i32*,i32**%q,align 8
store i8*null,i8**%c,align 8
store i32%aKl,i32*%aKm,align 4
br label%awh
aKn:
%aKo=phi i32[%aJV,%aJT],[%aJe,%aJa]
%aKp=phi i8*[%aJO,%aJT],[%aJc,%aJa]
%aKq=getelementptr inbounds i8,i8*%aKp,i64 8
%aKr=bitcast i8*%aKq to i8**
%aKs=load i8*,i8**%aKr,align 8
store i8*%aKs,i8**%d,align 8
%aKt=icmp eq i32%aKo,13
br i1%aKt,label%aKu,label%aKR
aKu:
%aKv=call i8*@sml_alloc(i32 inreg 28)#0
%aKw=getelementptr inbounds i8,i8*%aKv,i64 -4
%aKx=bitcast i8*%aKw to i32*
store i32 1342177304,i32*%aKx,align 4
store i8*%aKv,i8**%e,align 8
%aKy=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aKz=bitcast i8*%aKv to i8**
store i8*%aKy,i8**%aKz,align 8
%aKA=load i8*,i8**%h,align 8
%aKB=getelementptr inbounds i8,i8*%aKv,i64 8
%aKC=bitcast i8*%aKB to i8**
store i8*%aKA,i8**%aKC,align 8
%aKD=getelementptr inbounds i8,i8*%aKv,i64 16
%aKE=bitcast i8*%aKD to i8**
store i8*null,i8**%aKE,align 8
%aKF=getelementptr inbounds i8,i8*%aKv,i64 24
%aKG=bitcast i8*%aKF to i32*
store i32 7,i32*%aKG,align 4
%aKH=call i8*@sml_alloc(i32 inreg 20)#0
%aKI=getelementptr inbounds i8,i8*%aKH,i64 -4
%aKJ=bitcast i8*%aKI to i32*
store i32 1342177296,i32*%aKJ,align 4
%aKK=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aKL=bitcast i8*%aKH to i8**
store i8*%aKK,i8**%aKL,align 8
%aKM=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%aKN=getelementptr inbounds i8,i8*%aKH,i64 8
%aKO=bitcast i8*%aKN to i8**
store i8*%aKM,i8**%aKO,align 8
%aKP=getelementptr inbounds i8,i8*%aKH,i64 16
%aKQ=bitcast i8*%aKP to i32*
store i32 3,i32*%aKQ,align 4
store i8*%aKH,i8**%c,align 8
br label%aM0
aKR:
%aKS=icmp ugt i32%aKo,12
br i1%aKS,label%aMB,label%aKT
aKT:
%aKU=icmp eq i32%aKo,9
br i1%aKU,label%aKV,label%aLi
aKV:
%aKW=call i8*@sml_alloc(i32 inreg 28)#0
%aKX=getelementptr inbounds i8,i8*%aKW,i64 -4
%aKY=bitcast i8*%aKX to i32*
store i32 1342177304,i32*%aKY,align 4
store i8*%aKW,i8**%e,align 8
%aKZ=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aK0=bitcast i8*%aKW to i8**
store i8*%aKZ,i8**%aK0,align 8
%aK1=load i8*,i8**%h,align 8
%aK2=getelementptr inbounds i8,i8*%aKW,i64 8
%aK3=bitcast i8*%aK2 to i8**
store i8*%aK1,i8**%aK3,align 8
%aK4=getelementptr inbounds i8,i8*%aKW,i64 16
%aK5=bitcast i8*%aK4 to i8**
store i8*null,i8**%aK5,align 8
%aK6=getelementptr inbounds i8,i8*%aKW,i64 24
%aK7=bitcast i8*%aK6 to i32*
store i32 7,i32*%aK7,align 4
%aK8=call i8*@sml_alloc(i32 inreg 20)#0
%aK9=getelementptr inbounds i8,i8*%aK8,i64 -4
%aLa=bitcast i8*%aK9 to i32*
store i32 1342177296,i32*%aLa,align 4
%aLb=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aLc=bitcast i8*%aK8 to i8**
store i8*%aLb,i8**%aLc,align 8
%aLd=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%aLe=getelementptr inbounds i8,i8*%aK8,i64 8
%aLf=bitcast i8*%aLe to i8**
store i8*%aLd,i8**%aLf,align 8
%aLg=getelementptr inbounds i8,i8*%aK8,i64 16
%aLh=bitcast i8*%aLg to i32*
store i32 3,i32*%aLh,align 4
store i8*%aK8,i8**%c,align 8
br label%aM0
aLi:
%aLj=icmp ugt i32%aKo,8
br i1%aLj,label%aLL,label%aLk
aLk:
store i8*null,i8**%d,align 8
store i8*null,i8**%h,align 8
%aLl=load i8*,i8**%f,align 8
%aLm=getelementptr inbounds i8,i8*%aLl,i64 16
%aLn=bitcast i8*%aLm to i8**
%aLo=load i8*,i8**%aLn,align 8
%aLp=load i8*,i8**%c,align 8
%aLq=bitcast i8*%aLo to i8**
call void@sml_write(i8*inreg%aLo,i8**inreg%aLq,i8*inreg%aLp)#0
%aLr=load i8*,i8**%f,align 8
%aLs=getelementptr inbounds i8,i8*%aLr,i64 24
%aLt=bitcast i8*%aLs to i8**
%aLu=load i8*,i8**%aLt,align 8
store i8*%aLu,i8**%c,align 8
%aLv=getelementptr inbounds i8,i8*%aLr,i64 16
%aLw=bitcast i8*%aLv to i8***
%aLx=load i8**,i8***%aLw,align 8
%aLy=load i8*,i8**%aLx,align 8
%aLz=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%aLy)
%aLA=load i32*,i32**%q,align 8
store i32%aLz,i32*%aLA,align 4
%aLB=load i8*,i8**%f,align 8
%aLC=getelementptr inbounds i8,i8*%aLB,i64 32
%aLD=bitcast i8*%aLC to i8**
%aLE=load i8*,i8**%aLD,align 8
store i8*%aLE,i8**%c,align 8
%aLF=getelementptr inbounds i8,i8*%aLB,i64 16
%aLG=bitcast i8*%aLF to i8***
%aLH=load i8**,i8***%aLG,align 8
%aLI=load i8*,i8**%aLH,align 8
%aLJ=call fastcc i32@_SMLFN10ULexBuffer9lastWasNLE(i8*inreg%aLI)
%aLK=load i32*,i32**%q,align 8
store i8*null,i8**%c,align 8
store i32%aLJ,i32*%aLK,align 4
br label%awh
aLL:
%aLM=icmp ugt i32%aKo,10
br i1%aLM,label%aMa,label%aLN
aLN:
%aLO=call i8*@sml_alloc(i32 inreg 28)#0
%aLP=getelementptr inbounds i8,i8*%aLO,i64 -4
%aLQ=bitcast i8*%aLP to i32*
store i32 1342177304,i32*%aLQ,align 4
store i8*%aLO,i8**%e,align 8
%aLR=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aLS=bitcast i8*%aLO to i8**
store i8*%aLR,i8**%aLS,align 8
%aLT=load i8*,i8**%h,align 8
%aLU=getelementptr inbounds i8,i8*%aLO,i64 8
%aLV=bitcast i8*%aLU to i8**
store i8*%aLT,i8**%aLV,align 8
%aLW=getelementptr inbounds i8,i8*%aLO,i64 16
%aLX=bitcast i8*%aLW to i8**
store i8*null,i8**%aLX,align 8
%aLY=getelementptr inbounds i8,i8*%aLO,i64 24
%aLZ=bitcast i8*%aLY to i32*
store i32 7,i32*%aLZ,align 4
%aL0=call i8*@sml_alloc(i32 inreg 20)#0
%aL1=getelementptr inbounds i8,i8*%aL0,i64 -4
%aL2=bitcast i8*%aL1 to i32*
store i32 1342177296,i32*%aL2,align 4
%aL3=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aL4=bitcast i8*%aL0 to i8**
store i8*%aL3,i8**%aL4,align 8
%aL5=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%aL6=getelementptr inbounds i8,i8*%aL0,i64 8
%aL7=bitcast i8*%aL6 to i8**
store i8*%aL5,i8**%aL7,align 8
%aL8=getelementptr inbounds i8,i8*%aL0,i64 16
%aL9=bitcast i8*%aL8 to i32*
store i32 3,i32*%aL9,align 4
store i8*%aL0,i8**%c,align 8
br label%aM0
aMa:
store i8*null,i8**%d,align 8
store i8*null,i8**%h,align 8
%aMb=load i8*,i8**%f,align 8
%aMc=getelementptr inbounds i8,i8*%aMb,i64 16
%aMd=bitcast i8*%aMc to i8**
%aMe=load i8*,i8**%aMd,align 8
%aMf=load i8*,i8**%c,align 8
%aMg=bitcast i8*%aMe to i8**
call void@sml_write(i8*inreg%aMe,i8**inreg%aMg,i8*inreg%aMf)#0
%aMh=load i8*,i8**%f,align 8
%aMi=getelementptr inbounds i8,i8*%aMh,i64 24
%aMj=bitcast i8*%aMi to i8**
%aMk=load i8*,i8**%aMj,align 8
store i8*%aMk,i8**%c,align 8
%aMl=getelementptr inbounds i8,i8*%aMh,i64 16
%aMm=bitcast i8*%aMl to i8***
%aMn=load i8**,i8***%aMm,align 8
%aMo=load i8*,i8**%aMn,align 8
%aMp=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%aMo)
%aMq=load i32*,i32**%q,align 8
store i32%aMp,i32*%aMq,align 4
%aMr=load i8*,i8**%f,align 8
%aMs=getelementptr inbounds i8,i8*%aMr,i64 32
%aMt=bitcast i8*%aMs to i8**
%aMu=load i8*,i8**%aMt,align 8
store i8*%aMu,i8**%c,align 8
%aMv=getelementptr inbounds i8,i8*%aMr,i64 16
%aMw=bitcast i8*%aMv to i8***
%aMx=load i8**,i8***%aMw,align 8
%aMy=load i8*,i8**%aMx,align 8
%aMz=call fastcc i32@_SMLFN10ULexBuffer9lastWasNLE(i8*inreg%aMy)
%aMA=load i32*,i32**%q,align 8
store i8*null,i8**%c,align 8
store i32%aMz,i32*%aMA,align 4
br label%awh
aMB:
%aMC=icmp eq i32%aKo,32
br i1%aMC,label%aMD,label%aM2
aMD:
%aME=call i8*@sml_alloc(i32 inreg 28)#0
%aMF=getelementptr inbounds i8,i8*%aME,i64 -4
%aMG=bitcast i8*%aMF to i32*
store i32 1342177304,i32*%aMG,align 4
store i8*%aME,i8**%e,align 8
%aMH=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aMI=bitcast i8*%aME to i8**
store i8*%aMH,i8**%aMI,align 8
%aMJ=load i8*,i8**%h,align 8
%aMK=getelementptr inbounds i8,i8*%aME,i64 8
%aML=bitcast i8*%aMK to i8**
store i8*%aMJ,i8**%aML,align 8
%aMM=getelementptr inbounds i8,i8*%aME,i64 16
%aMN=bitcast i8*%aMM to i8**
store i8*null,i8**%aMN,align 8
%aMO=getelementptr inbounds i8,i8*%aME,i64 24
%aMP=bitcast i8*%aMO to i32*
store i32 7,i32*%aMP,align 4
%aMQ=call i8*@sml_alloc(i32 inreg 20)#0
%aMR=getelementptr inbounds i8,i8*%aMQ,i64 -4
%aMS=bitcast i8*%aMR to i32*
store i32 1342177296,i32*%aMS,align 4
%aMT=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aMU=bitcast i8*%aMQ to i8**
store i8*%aMT,i8**%aMU,align 8
%aMV=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%aMW=getelementptr inbounds i8,i8*%aMQ,i64 8
%aMX=bitcast i8*%aMW to i8**
store i8*%aMV,i8**%aMX,align 8
%aMY=getelementptr inbounds i8,i8*%aMQ,i64 16
%aMZ=bitcast i8*%aMY to i32*
store i32 3,i32*%aMZ,align 4
store i8*%aMQ,i8**%c,align 8
br label%aM0
aM0:
%aM1=phi i8*[%aMT,%aMD],[%aL3,%aLN],[%aLb,%aKV],[%aKK,%aKu]
br label%aNt
aM2:
store i8*null,i8**%d,align 8
store i8*null,i8**%h,align 8
%aM3=load i8*,i8**%f,align 8
%aM4=getelementptr inbounds i8,i8*%aM3,i64 16
%aM5=bitcast i8*%aM4 to i8**
%aM6=load i8*,i8**%aM5,align 8
%aM7=load i8*,i8**%c,align 8
%aM8=bitcast i8*%aM6 to i8**
call void@sml_write(i8*inreg%aM6,i8**inreg%aM8,i8*inreg%aM7)#0
%aM9=load i8*,i8**%f,align 8
%aNa=getelementptr inbounds i8,i8*%aM9,i64 24
%aNb=bitcast i8*%aNa to i8**
%aNc=load i8*,i8**%aNb,align 8
store i8*%aNc,i8**%c,align 8
%aNd=getelementptr inbounds i8,i8*%aM9,i64 16
%aNe=bitcast i8*%aNd to i8***
%aNf=load i8**,i8***%aNe,align 8
%aNg=load i8*,i8**%aNf,align 8
%aNh=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%aNg)
%aNi=load i32*,i32**%q,align 8
store i32%aNh,i32*%aNi,align 4
%aNj=load i8*,i8**%f,align 8
%aNk=getelementptr inbounds i8,i8*%aNj,i64 32
%aNl=bitcast i8*%aNk to i8**
%aNm=load i8*,i8**%aNl,align 8
store i8*%aNm,i8**%c,align 8
%aNn=getelementptr inbounds i8,i8*%aNj,i64 16
%aNo=bitcast i8*%aNn to i8***
%aNp=load i8**,i8***%aNo,align 8
%aNq=load i8*,i8**%aNp,align 8
%aNr=call fastcc i32@_SMLFN10ULexBuffer9lastWasNLE(i8*inreg%aNq)
%aNs=load i32*,i32**%q,align 8
store i8*null,i8**%c,align 8
store i32%aNr,i32*%aNs,align 4
br label%awh
aNt:
%aNu=phi i8*[%aM1,%aM0],[%aPm,%aPl]
%aNv=load atomic i32,i32*@sml_check_flag unordered,align 4
%aNw=icmp eq i32%aNv,0
br i1%aNw,label%aNA,label%aNx
aNx:
call void@sml_check(i32 inreg%aNv)
%aNy=load i8**,i8***%p,align 8
%aNz=load i8*,i8**%aNy,align 8
br label%aNA
aNA:
%aNB=phi i8*[%aNz,%aNx],[%aNu,%aNt]
store i8*%aNB,i8**%c,align 8
%aNC=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%aNB)
%aND=icmp eq i8*%aNC,null
br i1%aND,label%aOq,label%aNE
aNE:
%aNF=bitcast i8*%aNC to i8**
%aNG=load i8*,i8**%aNF,align 8
%aNH=bitcast i8*%aNG to i32*
%aNI=load i32,i32*%aNH,align 4
%aNJ=icmp eq i32%aNI,10
br i1%aNJ,label%aNK,label%aOR
aNK:
%aNL=getelementptr inbounds i8,i8*%aNG,i64 8
%aNM=bitcast i8*%aNL to i8**
%aNN=load i8*,i8**%aNM,align 8
store i8*%aNN,i8**%d,align 8
%aNO=load i8**,i8***%o,align 8
%aNP=load i8*,i8**%aNO,align 8
%aNQ=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%aNP)
%aNR=getelementptr inbounds i8,i8*%aNQ,i64 16
%aNS=bitcast i8*%aNR to i8*(i8*,i8*)**
%aNT=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%aNS,align 8
%aNU=bitcast i8*%aNQ to i8**
%aNV=load i8*,i8**%aNU,align 8
store i8*%aNV,i8**%e,align 8
%aNW=load i8*,i8**%c,align 8
%aNX=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%aNW)
%aNY=call i8*@sml_alloc(i32 inreg 4)#0
%aNZ=bitcast i8*%aNY to i32*
%aN0=getelementptr inbounds i8,i8*%aNY,i64 -4
%aN1=bitcast i8*%aN0 to i32*
store i32 4,i32*%aN1,align 4
store i32%aNX,i32*%aNZ,align 4
%aN2=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%aN3=call fastcc i8*%aNT(i8*inreg%aN2,i8*inreg%aNY)
%aN4=call i8*@sml_alloc(i32 inreg 20)#0
%aN5=getelementptr inbounds i8,i8*%aN4,i64 -4
%aN6=bitcast i8*%aN5 to i32*
store i32 1342177296,i32*%aN6,align 4
store i8*%aN4,i8**%e,align 8
%aN7=getelementptr inbounds i8,i8*%aN4,i64 4
%aN8=bitcast i8*%aN7 to i32*
store i32 0,i32*%aN8,align 1
%aN9=bitcast i8*%aN4 to i32*
store i32 10,i32*%aN9,align 4
%aOa=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aOb=getelementptr inbounds i8,i8*%aN4,i64 8
%aOc=bitcast i8*%aOb to i8**
store i8*%aOa,i8**%aOc,align 8
%aOd=getelementptr inbounds i8,i8*%aN4,i64 16
%aOe=bitcast i8*%aOd to i32*
store i32 2,i32*%aOe,align 4
%aOf=call i8*@sml_alloc(i32 inreg 12)#0
%aOg=getelementptr inbounds i8,i8*%aOf,i64 -4
%aOh=bitcast i8*%aOg to i32*
store i32 1342177288,i32*%aOh,align 4
%aOi=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%aOj=bitcast i8*%aOf to i8**
store i8*%aOi,i8**%aOj,align 8
%aOk=getelementptr inbounds i8,i8*%aOf,i64 8
%aOl=bitcast i8*%aOk to i32*
store i32 1,i32*%aOl,align 4
%aOm=icmp eq i8*%aOf,null
br i1%aOm,label%aOq,label%aOn
aOn:
%aOo=bitcast i8*%aOi to i32*
%aOp=load i32,i32*%aOo,align 4
br label%aOR
aOq:
store i8*null,i8**%h,align 8
%aOr=load i8*,i8**%f,align 8
%aOs=getelementptr inbounds i8,i8*%aOr,i64 16
%aOt=bitcast i8*%aOs to i8**
%aOu=load i8*,i8**%aOt,align 8
%aOv=load i8*,i8**%c,align 8
%aOw=bitcast i8*%aOu to i8**
call void@sml_write(i8*inreg%aOu,i8**inreg%aOw,i8*inreg%aOv)#0
%aOx=load i8*,i8**%f,align 8
%aOy=getelementptr inbounds i8,i8*%aOx,i64 24
%aOz=bitcast i8*%aOy to i8**
%aOA=load i8*,i8**%aOz,align 8
store i8*%aOA,i8**%c,align 8
%aOB=getelementptr inbounds i8,i8*%aOx,i64 16
%aOC=bitcast i8*%aOB to i8***
%aOD=load i8**,i8***%aOC,align 8
%aOE=load i8*,i8**%aOD,align 8
%aOF=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%aOE)
%aOG=load i32*,i32**%q,align 8
store i32%aOF,i32*%aOG,align 4
%aOH=load i8*,i8**%f,align 8
%aOI=getelementptr inbounds i8,i8*%aOH,i64 32
%aOJ=bitcast i8*%aOI to i8**
%aOK=load i8*,i8**%aOJ,align 8
store i8*%aOK,i8**%c,align 8
%aOL=getelementptr inbounds i8,i8*%aOH,i64 16
%aOM=bitcast i8*%aOL to i8***
%aON=load i8**,i8***%aOM,align 8
%aOO=load i8*,i8**%aON,align 8
%aOP=call fastcc i32@_SMLFN10ULexBuffer9lastWasNLE(i8*inreg%aOO)
%aOQ=load i32*,i32**%q,align 8
store i8*null,i8**%c,align 8
store i32%aOP,i32*%aOQ,align 4
br label%awh
aOR:
%aOS=phi i32[%aOp,%aOn],[%aNI,%aNE]
%aOT=phi i8*[%aOi,%aOn],[%aNG,%aNE]
%aOU=getelementptr inbounds i8,i8*%aOT,i64 8
%aOV=bitcast i8*%aOU to i8**
%aOW=load i8*,i8**%aOV,align 8
store i8*%aOW,i8**%d,align 8
%aOX=icmp eq i32%aOS,13
br i1%aOX,label%aOY,label%aPn
aOY:
%aOZ=call i8*@sml_alloc(i32 inreg 28)#0
%aO0=getelementptr inbounds i8,i8*%aOZ,i64 -4
%aO1=bitcast i8*%aO0 to i32*
store i32 1342177304,i32*%aO1,align 4
store i8*%aOZ,i8**%e,align 8
%aO2=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aO3=bitcast i8*%aOZ to i8**
store i8*%aO2,i8**%aO3,align 8
%aO4=load i8*,i8**%h,align 8
%aO5=getelementptr inbounds i8,i8*%aOZ,i64 8
%aO6=bitcast i8*%aO5 to i8**
store i8*%aO4,i8**%aO6,align 8
%aO7=getelementptr inbounds i8,i8*%aOZ,i64 16
%aO8=bitcast i8*%aO7 to i8**
store i8*null,i8**%aO8,align 8
%aO9=getelementptr inbounds i8,i8*%aOZ,i64 24
%aPa=bitcast i8*%aO9 to i32*
store i32 7,i32*%aPa,align 4
%aPb=call i8*@sml_alloc(i32 inreg 20)#0
%aPc=getelementptr inbounds i8,i8*%aPb,i64 -4
%aPd=bitcast i8*%aPc to i32*
store i32 1342177296,i32*%aPd,align 4
%aPe=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aPf=bitcast i8*%aPb to i8**
store i8*%aPe,i8**%aPf,align 8
%aPg=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%aPh=getelementptr inbounds i8,i8*%aPb,i64 8
%aPi=bitcast i8*%aPh to i8**
store i8*%aPg,i8**%aPi,align 8
%aPj=getelementptr inbounds i8,i8*%aPb,i64 16
%aPk=bitcast i8*%aPj to i32*
store i32 3,i32*%aPk,align 4
store i8*%aPb,i8**%c,align 8
br label%aPl
aPl:
%aPm=phi i8*[%aPe,%aOY],[%aPH,%aPr],[%aQz,%aQj],[%aRp,%aQ9]
br label%aNt
aPn:
%aPo=icmp ugt i32%aOS,12
br i1%aPo,label%aQ7,label%aPp
aPp:
%aPq=icmp eq i32%aOS,9
br i1%aPq,label%aPr,label%aPO
aPr:
%aPs=call i8*@sml_alloc(i32 inreg 28)#0
%aPt=getelementptr inbounds i8,i8*%aPs,i64 -4
%aPu=bitcast i8*%aPt to i32*
store i32 1342177304,i32*%aPu,align 4
store i8*%aPs,i8**%e,align 8
%aPv=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aPw=bitcast i8*%aPs to i8**
store i8*%aPv,i8**%aPw,align 8
%aPx=load i8*,i8**%h,align 8
%aPy=getelementptr inbounds i8,i8*%aPs,i64 8
%aPz=bitcast i8*%aPy to i8**
store i8*%aPx,i8**%aPz,align 8
%aPA=getelementptr inbounds i8,i8*%aPs,i64 16
%aPB=bitcast i8*%aPA to i8**
store i8*null,i8**%aPB,align 8
%aPC=getelementptr inbounds i8,i8*%aPs,i64 24
%aPD=bitcast i8*%aPC to i32*
store i32 7,i32*%aPD,align 4
%aPE=call i8*@sml_alloc(i32 inreg 20)#0
%aPF=getelementptr inbounds i8,i8*%aPE,i64 -4
%aPG=bitcast i8*%aPF to i32*
store i32 1342177296,i32*%aPG,align 4
%aPH=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aPI=bitcast i8*%aPE to i8**
store i8*%aPH,i8**%aPI,align 8
%aPJ=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%aPK=getelementptr inbounds i8,i8*%aPE,i64 8
%aPL=bitcast i8*%aPK to i8**
store i8*%aPJ,i8**%aPL,align 8
%aPM=getelementptr inbounds i8,i8*%aPE,i64 16
%aPN=bitcast i8*%aPM to i32*
store i32 3,i32*%aPN,align 4
store i8*%aPE,i8**%c,align 8
br label%aPl
aPO:
%aPP=icmp ugt i32%aOS,8
br i1%aPP,label%aQh,label%aPQ
aPQ:
store i8*null,i8**%d,align 8
store i8*null,i8**%h,align 8
%aPR=load i8*,i8**%f,align 8
%aPS=getelementptr inbounds i8,i8*%aPR,i64 16
%aPT=bitcast i8*%aPS to i8**
%aPU=load i8*,i8**%aPT,align 8
%aPV=load i8*,i8**%c,align 8
%aPW=bitcast i8*%aPU to i8**
call void@sml_write(i8*inreg%aPU,i8**inreg%aPW,i8*inreg%aPV)#0
%aPX=load i8*,i8**%f,align 8
%aPY=getelementptr inbounds i8,i8*%aPX,i64 24
%aPZ=bitcast i8*%aPY to i8**
%aP0=load i8*,i8**%aPZ,align 8
store i8*%aP0,i8**%c,align 8
%aP1=getelementptr inbounds i8,i8*%aPX,i64 16
%aP2=bitcast i8*%aP1 to i8***
%aP3=load i8**,i8***%aP2,align 8
%aP4=load i8*,i8**%aP3,align 8
%aP5=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%aP4)
%aP6=load i32*,i32**%q,align 8
store i32%aP5,i32*%aP6,align 4
%aP7=load i8*,i8**%f,align 8
%aP8=getelementptr inbounds i8,i8*%aP7,i64 32
%aP9=bitcast i8*%aP8 to i8**
%aQa=load i8*,i8**%aP9,align 8
store i8*%aQa,i8**%c,align 8
%aQb=getelementptr inbounds i8,i8*%aP7,i64 16
%aQc=bitcast i8*%aQb to i8***
%aQd=load i8**,i8***%aQc,align 8
%aQe=load i8*,i8**%aQd,align 8
%aQf=call fastcc i32@_SMLFN10ULexBuffer9lastWasNLE(i8*inreg%aQe)
%aQg=load i32*,i32**%q,align 8
store i8*null,i8**%c,align 8
store i32%aQf,i32*%aQg,align 4
br label%awh
aQh:
%aQi=icmp ugt i32%aOS,10
br i1%aQi,label%aQG,label%aQj
aQj:
%aQk=call i8*@sml_alloc(i32 inreg 28)#0
%aQl=getelementptr inbounds i8,i8*%aQk,i64 -4
%aQm=bitcast i8*%aQl to i32*
store i32 1342177304,i32*%aQm,align 4
store i8*%aQk,i8**%e,align 8
%aQn=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aQo=bitcast i8*%aQk to i8**
store i8*%aQn,i8**%aQo,align 8
%aQp=load i8*,i8**%h,align 8
%aQq=getelementptr inbounds i8,i8*%aQk,i64 8
%aQr=bitcast i8*%aQq to i8**
store i8*%aQp,i8**%aQr,align 8
%aQs=getelementptr inbounds i8,i8*%aQk,i64 16
%aQt=bitcast i8*%aQs to i8**
store i8*null,i8**%aQt,align 8
%aQu=getelementptr inbounds i8,i8*%aQk,i64 24
%aQv=bitcast i8*%aQu to i32*
store i32 7,i32*%aQv,align 4
%aQw=call i8*@sml_alloc(i32 inreg 20)#0
%aQx=getelementptr inbounds i8,i8*%aQw,i64 -4
%aQy=bitcast i8*%aQx to i32*
store i32 1342177296,i32*%aQy,align 4
%aQz=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aQA=bitcast i8*%aQw to i8**
store i8*%aQz,i8**%aQA,align 8
%aQB=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%aQC=getelementptr inbounds i8,i8*%aQw,i64 8
%aQD=bitcast i8*%aQC to i8**
store i8*%aQB,i8**%aQD,align 8
%aQE=getelementptr inbounds i8,i8*%aQw,i64 16
%aQF=bitcast i8*%aQE to i32*
store i32 3,i32*%aQF,align 4
store i8*%aQw,i8**%c,align 8
br label%aPl
aQG:
store i8*null,i8**%d,align 8
store i8*null,i8**%h,align 8
%aQH=load i8*,i8**%f,align 8
%aQI=getelementptr inbounds i8,i8*%aQH,i64 16
%aQJ=bitcast i8*%aQI to i8**
%aQK=load i8*,i8**%aQJ,align 8
%aQL=load i8*,i8**%c,align 8
%aQM=bitcast i8*%aQK to i8**
call void@sml_write(i8*inreg%aQK,i8**inreg%aQM,i8*inreg%aQL)#0
%aQN=load i8*,i8**%f,align 8
%aQO=getelementptr inbounds i8,i8*%aQN,i64 24
%aQP=bitcast i8*%aQO to i8**
%aQQ=load i8*,i8**%aQP,align 8
store i8*%aQQ,i8**%c,align 8
%aQR=getelementptr inbounds i8,i8*%aQN,i64 16
%aQS=bitcast i8*%aQR to i8***
%aQT=load i8**,i8***%aQS,align 8
%aQU=load i8*,i8**%aQT,align 8
%aQV=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%aQU)
%aQW=load i32*,i32**%q,align 8
store i32%aQV,i32*%aQW,align 4
%aQX=load i8*,i8**%f,align 8
%aQY=getelementptr inbounds i8,i8*%aQX,i64 32
%aQZ=bitcast i8*%aQY to i8**
%aQ0=load i8*,i8**%aQZ,align 8
store i8*%aQ0,i8**%c,align 8
%aQ1=getelementptr inbounds i8,i8*%aQX,i64 16
%aQ2=bitcast i8*%aQ1 to i8***
%aQ3=load i8**,i8***%aQ2,align 8
%aQ4=load i8*,i8**%aQ3,align 8
%aQ5=call fastcc i32@_SMLFN10ULexBuffer9lastWasNLE(i8*inreg%aQ4)
%aQ6=load i32*,i32**%q,align 8
store i8*null,i8**%c,align 8
store i32%aQ5,i32*%aQ6,align 4
br label%awh
aQ7:
%aQ8=icmp eq i32%aOS,32
br i1%aQ8,label%aQ9,label%aRw
aQ9:
%aRa=call i8*@sml_alloc(i32 inreg 28)#0
%aRb=getelementptr inbounds i8,i8*%aRa,i64 -4
%aRc=bitcast i8*%aRb to i32*
store i32 1342177304,i32*%aRc,align 4
store i8*%aRa,i8**%e,align 8
%aRd=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aRe=bitcast i8*%aRa to i8**
store i8*%aRd,i8**%aRe,align 8
%aRf=load i8*,i8**%h,align 8
%aRg=getelementptr inbounds i8,i8*%aRa,i64 8
%aRh=bitcast i8*%aRg to i8**
store i8*%aRf,i8**%aRh,align 8
%aRi=getelementptr inbounds i8,i8*%aRa,i64 16
%aRj=bitcast i8*%aRi to i8**
store i8*null,i8**%aRj,align 8
%aRk=getelementptr inbounds i8,i8*%aRa,i64 24
%aRl=bitcast i8*%aRk to i32*
store i32 7,i32*%aRl,align 4
%aRm=call i8*@sml_alloc(i32 inreg 20)#0
%aRn=getelementptr inbounds i8,i8*%aRm,i64 -4
%aRo=bitcast i8*%aRn to i32*
store i32 1342177296,i32*%aRo,align 4
%aRp=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aRq=bitcast i8*%aRm to i8**
store i8*%aRp,i8**%aRq,align 8
%aRr=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%aRs=getelementptr inbounds i8,i8*%aRm,i64 8
%aRt=bitcast i8*%aRs to i8**
store i8*%aRr,i8**%aRt,align 8
%aRu=getelementptr inbounds i8,i8*%aRm,i64 16
%aRv=bitcast i8*%aRu to i32*
store i32 3,i32*%aRv,align 4
store i8*%aRm,i8**%c,align 8
br label%aPl
aRw:
store i8*null,i8**%d,align 8
store i8*null,i8**%h,align 8
%aRx=load i8*,i8**%f,align 8
%aRy=getelementptr inbounds i8,i8*%aRx,i64 16
%aRz=bitcast i8*%aRy to i8**
%aRA=load i8*,i8**%aRz,align 8
%aRB=load i8*,i8**%c,align 8
%aRC=bitcast i8*%aRA to i8**
call void@sml_write(i8*inreg%aRA,i8**inreg%aRC,i8*inreg%aRB)#0
%aRD=load i8*,i8**%f,align 8
%aRE=getelementptr inbounds i8,i8*%aRD,i64 24
%aRF=bitcast i8*%aRE to i8**
%aRG=load i8*,i8**%aRF,align 8
store i8*%aRG,i8**%c,align 8
%aRH=getelementptr inbounds i8,i8*%aRD,i64 16
%aRI=bitcast i8*%aRH to i8***
%aRJ=load i8**,i8***%aRI,align 8
%aRK=load i8*,i8**%aRJ,align 8
%aRL=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%aRK)
%aRM=load i32*,i32**%q,align 8
store i32%aRL,i32*%aRM,align 4
%aRN=load i8*,i8**%f,align 8
%aRO=getelementptr inbounds i8,i8*%aRN,i64 32
%aRP=bitcast i8*%aRO to i8**
%aRQ=load i8*,i8**%aRP,align 8
store i8*%aRQ,i8**%c,align 8
%aRR=getelementptr inbounds i8,i8*%aRN,i64 16
%aRS=bitcast i8*%aRR to i8***
%aRT=load i8**,i8***%aRS,align 8
%aRU=load i8*,i8**%aRT,align 8
%aRV=call fastcc i32@_SMLFN10ULexBuffer9lastWasNLE(i8*inreg%aRU)
%aRW=load i32*,i32**%q,align 8
store i8*null,i8**%c,align 8
store i32%aRV,i32*%aRW,align 4
br label%awh
aRX:
%aRY=phi i8*[%HD,%Hq],[%Cf,%B2]
%aRZ=phi i8*[%HG,%Hq],[%Ci,%B2]
%aR0=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%aR1=getelementptr inbounds i8,i8*%aRY,i64 8
%aR2=bitcast i8*%aR1 to i8**
store i8*%aR0,i8**%aR2,align 8
%aR3=getelementptr inbounds i8,i8*%aRY,i64 16
%aR4=bitcast i8*%aR3 to i32*
store i32 3,i32*%aR4,align 4
store i8*%aRZ,i8**%c,align 8
%aR5=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%aRZ)
%aR6=icmp eq i8*%aR5,null
br i1%aR6,label%aST,label%aR7
aR7:
%aR8=bitcast i8*%aR5 to i8**
%aR9=load i8*,i8**%aR8,align 8
%aSa=bitcast i8*%aR9 to i32*
%aSb=load i32,i32*%aSa,align 4
%aSc=icmp eq i32%aSb,10
br i1%aSc,label%aSd,label%aTC
aSd:
%aSe=getelementptr inbounds i8,i8*%aR9,i64 8
%aSf=bitcast i8*%aSe to i8**
%aSg=load i8*,i8**%aSf,align 8
store i8*%aSg,i8**%d,align 8
%aSh=load i8**,i8***%o,align 8
%aSi=load i8*,i8**%aSh,align 8
%aSj=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%aSi)
%aSk=getelementptr inbounds i8,i8*%aSj,i64 16
%aSl=bitcast i8*%aSk to i8*(i8*,i8*)**
%aSm=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%aSl,align 8
%aSn=bitcast i8*%aSj to i8**
%aSo=load i8*,i8**%aSn,align 8
store i8*%aSo,i8**%e,align 8
%aSp=load i8*,i8**%c,align 8
%aSq=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%aSp)
%aSr=call i8*@sml_alloc(i32 inreg 4)#0
%aSs=bitcast i8*%aSr to i32*
%aSt=getelementptr inbounds i8,i8*%aSr,i64 -4
%aSu=bitcast i8*%aSt to i32*
store i32 4,i32*%aSu,align 4
store i32%aSq,i32*%aSs,align 4
%aSv=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%aSw=call fastcc i8*%aSm(i8*inreg%aSv,i8*inreg%aSr)
%aSx=call i8*@sml_alloc(i32 inreg 20)#0
%aSy=getelementptr inbounds i8,i8*%aSx,i64 -4
%aSz=bitcast i8*%aSy to i32*
store i32 1342177296,i32*%aSz,align 4
store i8*%aSx,i8**%e,align 8
%aSA=getelementptr inbounds i8,i8*%aSx,i64 4
%aSB=bitcast i8*%aSA to i32*
store i32 0,i32*%aSB,align 1
%aSC=bitcast i8*%aSx to i32*
store i32 10,i32*%aSC,align 4
%aSD=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aSE=getelementptr inbounds i8,i8*%aSx,i64 8
%aSF=bitcast i8*%aSE to i8**
store i8*%aSD,i8**%aSF,align 8
%aSG=getelementptr inbounds i8,i8*%aSx,i64 16
%aSH=bitcast i8*%aSG to i32*
store i32 2,i32*%aSH,align 4
%aSI=call i8*@sml_alloc(i32 inreg 12)#0
%aSJ=getelementptr inbounds i8,i8*%aSI,i64 -4
%aSK=bitcast i8*%aSJ to i32*
store i32 1342177288,i32*%aSK,align 4
%aSL=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%aSM=bitcast i8*%aSI to i8**
store i8*%aSL,i8**%aSM,align 8
%aSN=getelementptr inbounds i8,i8*%aSI,i64 8
%aSO=bitcast i8*%aSN to i32*
store i32 1,i32*%aSO,align 4
%aSP=icmp eq i8*%aSI,null
br i1%aSP,label%aST,label%aSQ
aSQ:
%aSR=bitcast i8*%aSL to i32*
%aSS=load i32,i32*%aSR,align 4
br label%aTC
aST:
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
%aSU=load i8*,i8**%f,align 8
%aSV=getelementptr inbounds i8,i8*%aSU,i64 16
%aSW=bitcast i8*%aSV to i8***
%aSX=load i8**,i8***%aSW,align 8
%aSY=load i8*,i8**%aSX,align 8
store i8*%aSY,i8**%d,align 8
%aSZ=call i8*@sml_alloc(i32 inreg 20)#0
%aS0=getelementptr inbounds i8,i8*%aSZ,i64 -4
%aS1=bitcast i8*%aS0 to i32*
store i32 1342177296,i32*%aS1,align 4
%aS2=load i8*,i8**%c,align 8
%aS3=bitcast i8*%aSZ to i8**
store i8*%aS2,i8**%aS3,align 8
%aS4=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aS5=getelementptr inbounds i8,i8*%aSZ,i64 8
%aS6=bitcast i8*%aS5 to i8**
store i8*%aS4,i8**%aS6,align 8
%aS7=getelementptr inbounds i8,i8*%aSZ,i64 16
%aS8=bitcast i8*%aS7 to i32*
store i32 3,i32*%aS8,align 4
%aS9=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%aSZ)
%aTa=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%aS9)
store i8*%aTa,i8**%d,align 8
%aTb=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%aTc=getelementptr inbounds i8,i8*%aTb,i64 16
%aTd=bitcast i8*%aTc to i8**
%aTe=load i8*,i8**%aTd,align 8
%aTf=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aTg=bitcast i8*%aTe to i8**
call void@sml_write(i8*inreg%aTe,i8**inreg%aTg,i8*inreg%aTf)#0
%aTh=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 1,i32 inreg 8)
%aTi=getelementptr inbounds i8,i8*%aTh,i64 16
%aTj=bitcast i8*%aTi to i8*(i8*,i8*)**
%aTk=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%aTj,align 8
%aTl=bitcast i8*%aTh to i8**
%aTm=load i8*,i8**%aTl,align 8
store i8*%aTm,i8**%c,align 8
%aTn=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aTo=call fastcc i8*@_SMLFN6IntInf10fromStringE(i8*inreg%aTn)
%aTp=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aTq=call fastcc i8*%aTk(i8*inreg%aTp,i8*inreg%aTo)
store i8*%aTq,i8**%c,align 8
%aTr=call i8*@sml_alloc(i32 inreg 20)#0
%aTs=bitcast i8*%aTr to i32*
%aTt=getelementptr inbounds i8,i8*%aTr,i64 -4
%aTu=bitcast i8*%aTt to i32*
store i32 1342177296,i32*%aTu,align 4
%aTv=getelementptr inbounds i8,i8*%aTr,i64 4
%aTw=bitcast i8*%aTv to i32*
store i32 0,i32*%aTw,align 1
store i32 5,i32*%aTs,align 4
%aTx=load i8*,i8**%c,align 8
%aTy=getelementptr inbounds i8,i8*%aTr,i64 8
%aTz=bitcast i8*%aTy to i8**
store i8*%aTx,i8**%aTz,align 8
%aTA=getelementptr inbounds i8,i8*%aTr,i64 16
%aTB=bitcast i8*%aTA to i32*
store i32 2,i32*%aTB,align 4
ret i8*%aTr
aTC:
%aTD=phi i32[%aSS,%aSQ],[%aSb,%aR7]
%aTE=phi i8*[%aSL,%aSQ],[%aR9,%aR7]
%aTF=getelementptr inbounds i8,i8*%aTE,i64 8
%aTG=bitcast i8*%aTF to i8**
%aTH=load i8*,i8**%aTG,align 8
store i8*%aTH,i8**%d,align 8
%aTI=icmp eq i32%aTD,58
br i1%aTI,label%aTJ,label%aUs
aTJ:
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
%aTK=load i8*,i8**%f,align 8
%aTL=getelementptr inbounds i8,i8*%aTK,i64 16
%aTM=bitcast i8*%aTL to i8***
%aTN=load i8**,i8***%aTM,align 8
%aTO=load i8*,i8**%aTN,align 8
store i8*%aTO,i8**%d,align 8
%aTP=call i8*@sml_alloc(i32 inreg 20)#0
%aTQ=getelementptr inbounds i8,i8*%aTP,i64 -4
%aTR=bitcast i8*%aTQ to i32*
store i32 1342177296,i32*%aTR,align 4
%aTS=load i8*,i8**%c,align 8
%aTT=bitcast i8*%aTP to i8**
store i8*%aTS,i8**%aTT,align 8
%aTU=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aTV=getelementptr inbounds i8,i8*%aTP,i64 8
%aTW=bitcast i8*%aTV to i8**
store i8*%aTU,i8**%aTW,align 8
%aTX=getelementptr inbounds i8,i8*%aTP,i64 16
%aTY=bitcast i8*%aTX to i32*
store i32 3,i32*%aTY,align 4
%aTZ=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%aTP)
%aT0=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%aTZ)
store i8*%aT0,i8**%d,align 8
%aT1=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%aT2=getelementptr inbounds i8,i8*%aT1,i64 16
%aT3=bitcast i8*%aT2 to i8**
%aT4=load i8*,i8**%aT3,align 8
%aT5=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aT6=bitcast i8*%aT4 to i8**
call void@sml_write(i8*inreg%aT4,i8**inreg%aT6,i8*inreg%aT5)#0
%aT7=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 1,i32 inreg 8)
%aT8=getelementptr inbounds i8,i8*%aT7,i64 16
%aT9=bitcast i8*%aT8 to i8*(i8*,i8*)**
%aUa=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%aT9,align 8
%aUb=bitcast i8*%aT7 to i8**
%aUc=load i8*,i8**%aUb,align 8
store i8*%aUc,i8**%c,align 8
%aUd=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aUe=call fastcc i8*@_SMLFN6IntInf10fromStringE(i8*inreg%aUd)
%aUf=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aUg=call fastcc i8*%aUa(i8*inreg%aUf,i8*inreg%aUe)
store i8*%aUg,i8**%c,align 8
%aUh=call i8*@sml_alloc(i32 inreg 20)#0
%aUi=bitcast i8*%aUh to i32*
%aUj=getelementptr inbounds i8,i8*%aUh,i64 -4
%aUk=bitcast i8*%aUj to i32*
store i32 1342177296,i32*%aUk,align 4
%aUl=getelementptr inbounds i8,i8*%aUh,i64 4
%aUm=bitcast i8*%aUl to i32*
store i32 0,i32*%aUm,align 1
store i32 5,i32*%aUi,align 4
%aUn=load i8*,i8**%c,align 8
%aUo=getelementptr inbounds i8,i8*%aUh,i64 8
%aUp=bitcast i8*%aUo to i8**
store i8*%aUn,i8**%aUp,align 8
%aUq=getelementptr inbounds i8,i8*%aUh,i64 16
%aUr=bitcast i8*%aUq to i32*
store i32 2,i32*%aUr,align 4
ret i8*%aUh
aUs:
%aUt=icmp ugt i32%aTD,57
br i1%aUt,label%aWF,label%aUu
aUu:
%aUv=icmp eq i32%aTD,47
br i1%aUv,label%aUw,label%aVf
aUw:
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
%aUx=load i8*,i8**%f,align 8
%aUy=getelementptr inbounds i8,i8*%aUx,i64 16
%aUz=bitcast i8*%aUy to i8***
%aUA=load i8**,i8***%aUz,align 8
%aUB=load i8*,i8**%aUA,align 8
store i8*%aUB,i8**%d,align 8
%aUC=call i8*@sml_alloc(i32 inreg 20)#0
%aUD=getelementptr inbounds i8,i8*%aUC,i64 -4
%aUE=bitcast i8*%aUD to i32*
store i32 1342177296,i32*%aUE,align 4
%aUF=load i8*,i8**%c,align 8
%aUG=bitcast i8*%aUC to i8**
store i8*%aUF,i8**%aUG,align 8
%aUH=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aUI=getelementptr inbounds i8,i8*%aUC,i64 8
%aUJ=bitcast i8*%aUI to i8**
store i8*%aUH,i8**%aUJ,align 8
%aUK=getelementptr inbounds i8,i8*%aUC,i64 16
%aUL=bitcast i8*%aUK to i32*
store i32 3,i32*%aUL,align 4
%aUM=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%aUC)
%aUN=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%aUM)
store i8*%aUN,i8**%d,align 8
%aUO=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%aUP=getelementptr inbounds i8,i8*%aUO,i64 16
%aUQ=bitcast i8*%aUP to i8**
%aUR=load i8*,i8**%aUQ,align 8
%aUS=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aUT=bitcast i8*%aUR to i8**
call void@sml_write(i8*inreg%aUR,i8**inreg%aUT,i8*inreg%aUS)#0
%aUU=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 1,i32 inreg 8)
%aUV=getelementptr inbounds i8,i8*%aUU,i64 16
%aUW=bitcast i8*%aUV to i8*(i8*,i8*)**
%aUX=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%aUW,align 8
%aUY=bitcast i8*%aUU to i8**
%aUZ=load i8*,i8**%aUY,align 8
store i8*%aUZ,i8**%c,align 8
%aU0=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aU1=call fastcc i8*@_SMLFN6IntInf10fromStringE(i8*inreg%aU0)
%aU2=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aU3=call fastcc i8*%aUX(i8*inreg%aU2,i8*inreg%aU1)
store i8*%aU3,i8**%c,align 8
%aU4=call i8*@sml_alloc(i32 inreg 20)#0
%aU5=bitcast i8*%aU4 to i32*
%aU6=getelementptr inbounds i8,i8*%aU4,i64 -4
%aU7=bitcast i8*%aU6 to i32*
store i32 1342177296,i32*%aU7,align 4
%aU8=getelementptr inbounds i8,i8*%aU4,i64 4
%aU9=bitcast i8*%aU8 to i32*
store i32 0,i32*%aU9,align 1
store i32 5,i32*%aU5,align 4
%aVa=load i8*,i8**%c,align 8
%aVb=getelementptr inbounds i8,i8*%aU4,i64 8
%aVc=bitcast i8*%aVb to i8**
store i8*%aVa,i8**%aVc,align 8
%aVd=getelementptr inbounds i8,i8*%aU4,i64 16
%aVe=bitcast i8*%aVd to i32*
store i32 2,i32*%aVe,align 4
ret i8*%aU4
aVf:
%aVg=icmp ugt i32%aTD,46
br i1%aVg,label%aWl,label%aVh
aVh:
store i8*null,i8**%j,align 8
%aVi=icmp eq i32%aTD,46
br i1%aVi,label%aVj,label%aVC
aVj:
%aVk=call i8*@sml_alloc(i32 inreg 28)#0
%aVl=getelementptr inbounds i8,i8*%aVk,i64 -4
%aVm=bitcast i8*%aVl to i32*
store i32 1342177304,i32*%aVm,align 4
store i8*%aVk,i8**%e,align 8
%aVn=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aVo=bitcast i8*%aVk to i8**
store i8*%aVn,i8**%aVo,align 8
%aVp=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%aVq=getelementptr inbounds i8,i8*%aVk,i64 8
%aVr=bitcast i8*%aVq to i8**
store i8*%aVp,i8**%aVr,align 8
%aVs=getelementptr inbounds i8,i8*%aVk,i64 16
%aVt=bitcast i8*%aVs to i8**
store i8*null,i8**%aVt,align 8
%aVu=getelementptr inbounds i8,i8*%aVk,i64 24
%aVv=bitcast i8*%aVu to i32*
store i32 7,i32*%aVv,align 4
%aVw=call i8*@sml_alloc(i32 inreg 20)#0
%aVx=getelementptr inbounds i8,i8*%aVw,i64 -4
%aVy=bitcast i8*%aVx to i32*
store i32 1342177296,i32*%aVy,align 4
%aVz=load i8*,i8**%d,align 8
%aVA=bitcast i8*%aVw to i8**
store i8*%aVz,i8**%aVA,align 8
%aVB=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
br label%be0
aVC:
store i8*null,i8**%g,align 8
store i8*null,i8**%i,align 8
store i8*null,i8**%k,align 8
%aVD=load i8*,i8**%f,align 8
%aVE=getelementptr inbounds i8,i8*%aVD,i64 16
%aVF=bitcast i8*%aVE to i8***
%aVG=load i8**,i8***%aVF,align 8
%aVH=load i8*,i8**%aVG,align 8
store i8*%aVH,i8**%d,align 8
%aVI=call i8*@sml_alloc(i32 inreg 20)#0
%aVJ=getelementptr inbounds i8,i8*%aVI,i64 -4
%aVK=bitcast i8*%aVJ to i32*
store i32 1342177296,i32*%aVK,align 4
%aVL=load i8*,i8**%c,align 8
%aVM=bitcast i8*%aVI to i8**
store i8*%aVL,i8**%aVM,align 8
%aVN=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aVO=getelementptr inbounds i8,i8*%aVI,i64 8
%aVP=bitcast i8*%aVO to i8**
store i8*%aVN,i8**%aVP,align 8
%aVQ=getelementptr inbounds i8,i8*%aVI,i64 16
%aVR=bitcast i8*%aVQ to i32*
store i32 3,i32*%aVR,align 4
%aVS=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%aVI)
%aVT=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%aVS)
store i8*%aVT,i8**%d,align 8
%aVU=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%aVV=getelementptr inbounds i8,i8*%aVU,i64 16
%aVW=bitcast i8*%aVV to i8**
%aVX=load i8*,i8**%aVW,align 8
%aVY=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aVZ=bitcast i8*%aVX to i8**
call void@sml_write(i8*inreg%aVX,i8**inreg%aVZ,i8*inreg%aVY)#0
%aV0=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 1,i32 inreg 8)
%aV1=getelementptr inbounds i8,i8*%aV0,i64 16
%aV2=bitcast i8*%aV1 to i8*(i8*,i8*)**
%aV3=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%aV2,align 8
%aV4=bitcast i8*%aV0 to i8**
%aV5=load i8*,i8**%aV4,align 8
store i8*%aV5,i8**%c,align 8
%aV6=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aV7=call fastcc i8*@_SMLFN6IntInf10fromStringE(i8*inreg%aV6)
%aV8=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aV9=call fastcc i8*%aV3(i8*inreg%aV8,i8*inreg%aV7)
store i8*%aV9,i8**%c,align 8
%aWa=call i8*@sml_alloc(i32 inreg 20)#0
%aWb=bitcast i8*%aWa to i32*
%aWc=getelementptr inbounds i8,i8*%aWa,i64 -4
%aWd=bitcast i8*%aWc to i32*
store i32 1342177296,i32*%aWd,align 4
%aWe=getelementptr inbounds i8,i8*%aWa,i64 4
%aWf=bitcast i8*%aWe to i32*
store i32 0,i32*%aWf,align 1
store i32 5,i32*%aWb,align 4
%aWg=load i8*,i8**%c,align 8
%aWh=getelementptr inbounds i8,i8*%aWa,i64 8
%aWi=bitcast i8*%aWh to i8**
store i8*%aWg,i8**%aWi,align 8
%aWj=getelementptr inbounds i8,i8*%aWa,i64 16
%aWk=bitcast i8*%aWj to i32*
store i32 2,i32*%aWk,align 4
ret i8*%aWa
aWl:
%aWm=call i8*@sml_alloc(i32 inreg 28)#0
%aWn=getelementptr inbounds i8,i8*%aWm,i64 -4
%aWo=bitcast i8*%aWn to i32*
store i32 1342177304,i32*%aWo,align 4
store i8*%aWm,i8**%e,align 8
%aWp=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aWq=bitcast i8*%aWm to i8**
store i8*%aWp,i8**%aWq,align 8
%aWr=load i8*,i8**%g,align 8
%aWs=getelementptr inbounds i8,i8*%aWm,i64 8
%aWt=bitcast i8*%aWs to i8**
store i8*%aWr,i8**%aWt,align 8
%aWu=getelementptr inbounds i8,i8*%aWm,i64 16
%aWv=bitcast i8*%aWu to i8**
store i8*null,i8**%aWv,align 8
%aWw=getelementptr inbounds i8,i8*%aWm,i64 24
%aWx=bitcast i8*%aWw to i32*
store i32 7,i32*%aWx,align 4
%aWy=call i8*@sml_alloc(i32 inreg 20)#0
%aWz=getelementptr inbounds i8,i8*%aWy,i64 -4
%aWA=bitcast i8*%aWz to i32*
store i32 1342177296,i32*%aWA,align 4
%aWB=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aWC=bitcast i8*%aWy to i8**
store i8*%aWB,i8**%aWC,align 8
br label%aWD
aWD:
%aWE=phi i8*[%aWy,%aWl],[%Ul,%T8]
br label%a7i
aWF:
store i8*null,i8**%i,align 8
store i8*null,i8**%k,align 8
%aWG=icmp eq i32%aTD,70
br i1%aWG,label%aWH,label%aXq
aWH:
store i8*null,i8**%g,align 8
store i8*null,i8**%j,align 8
%aWI=load i8*,i8**%f,align 8
%aWJ=getelementptr inbounds i8,i8*%aWI,i64 16
%aWK=bitcast i8*%aWJ to i8***
%aWL=load i8**,i8***%aWK,align 8
%aWM=load i8*,i8**%aWL,align 8
store i8*%aWM,i8**%d,align 8
%aWN=call i8*@sml_alloc(i32 inreg 20)#0
%aWO=getelementptr inbounds i8,i8*%aWN,i64 -4
%aWP=bitcast i8*%aWO to i32*
store i32 1342177296,i32*%aWP,align 4
%aWQ=load i8*,i8**%c,align 8
%aWR=bitcast i8*%aWN to i8**
store i8*%aWQ,i8**%aWR,align 8
%aWS=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aWT=getelementptr inbounds i8,i8*%aWN,i64 8
%aWU=bitcast i8*%aWT to i8**
store i8*%aWS,i8**%aWU,align 8
%aWV=getelementptr inbounds i8,i8*%aWN,i64 16
%aWW=bitcast i8*%aWV to i32*
store i32 3,i32*%aWW,align 4
%aWX=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%aWN)
%aWY=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%aWX)
store i8*%aWY,i8**%d,align 8
%aWZ=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%aW0=getelementptr inbounds i8,i8*%aWZ,i64 16
%aW1=bitcast i8*%aW0 to i8**
%aW2=load i8*,i8**%aW1,align 8
%aW3=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aW4=bitcast i8*%aW2 to i8**
call void@sml_write(i8*inreg%aW2,i8**inreg%aW4,i8*inreg%aW3)#0
%aW5=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 1,i32 inreg 8)
%aW6=getelementptr inbounds i8,i8*%aW5,i64 16
%aW7=bitcast i8*%aW6 to i8*(i8*,i8*)**
%aW8=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%aW7,align 8
%aW9=bitcast i8*%aW5 to i8**
%aXa=load i8*,i8**%aW9,align 8
store i8*%aXa,i8**%c,align 8
%aXb=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aXc=call fastcc i8*@_SMLFN6IntInf10fromStringE(i8*inreg%aXb)
%aXd=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aXe=call fastcc i8*%aW8(i8*inreg%aXd,i8*inreg%aXc)
store i8*%aXe,i8**%c,align 8
%aXf=call i8*@sml_alloc(i32 inreg 20)#0
%aXg=bitcast i8*%aXf to i32*
%aXh=getelementptr inbounds i8,i8*%aXf,i64 -4
%aXi=bitcast i8*%aXh to i32*
store i32 1342177296,i32*%aXi,align 4
%aXj=getelementptr inbounds i8,i8*%aXf,i64 4
%aXk=bitcast i8*%aXj to i32*
store i32 0,i32*%aXk,align 1
store i32 5,i32*%aXg,align 4
%aXl=load i8*,i8**%c,align 8
%aXm=getelementptr inbounds i8,i8*%aXf,i64 8
%aXn=bitcast i8*%aXm to i8**
store i8*%aXl,i8**%aXn,align 8
%aXo=getelementptr inbounds i8,i8*%aXf,i64 16
%aXp=bitcast i8*%aXo to i32*
store i32 2,i32*%aXp,align 4
ret i8*%aXf
aXq:
%aXr=icmp ugt i32%aTD,69
br i1%aXr,label%aYw,label%aXs
aXs:
%aXt=icmp eq i32%aTD,69
br i1%aXt,label%aXu,label%aXN
aXu:
%aXv=call i8*@sml_alloc(i32 inreg 28)#0
%aXw=getelementptr inbounds i8,i8*%aXv,i64 -4
%aXx=bitcast i8*%aXw to i32*
store i32 1342177304,i32*%aXx,align 4
store i8*%aXv,i8**%e,align 8
%aXy=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aXz=bitcast i8*%aXv to i8**
store i8*%aXy,i8**%aXz,align 8
%aXA=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%aXB=getelementptr inbounds i8,i8*%aXv,i64 8
%aXC=bitcast i8*%aXB to i8**
store i8*%aXA,i8**%aXC,align 8
%aXD=getelementptr inbounds i8,i8*%aXv,i64 16
%aXE=bitcast i8*%aXD to i8**
store i8*null,i8**%aXE,align 8
%aXF=getelementptr inbounds i8,i8*%aXv,i64 24
%aXG=bitcast i8*%aXF to i32*
store i32 7,i32*%aXG,align 4
%aXH=call i8*@sml_alloc(i32 inreg 20)#0
%aXI=getelementptr inbounds i8,i8*%aXH,i64 -4
%aXJ=bitcast i8*%aXI to i32*
store i32 1342177296,i32*%aXJ,align 4
%aXK=load i8*,i8**%d,align 8
%aXL=bitcast i8*%aXH to i8**
store i8*%aXK,i8**%aXL,align 8
%aXM=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
br label%btC
aXN:
store i8*null,i8**%g,align 8
store i8*null,i8**%j,align 8
%aXO=load i8*,i8**%f,align 8
%aXP=getelementptr inbounds i8,i8*%aXO,i64 16
%aXQ=bitcast i8*%aXP to i8***
%aXR=load i8**,i8***%aXQ,align 8
%aXS=load i8*,i8**%aXR,align 8
store i8*%aXS,i8**%d,align 8
%aXT=call i8*@sml_alloc(i32 inreg 20)#0
%aXU=getelementptr inbounds i8,i8*%aXT,i64 -4
%aXV=bitcast i8*%aXU to i32*
store i32 1342177296,i32*%aXV,align 4
%aXW=load i8*,i8**%c,align 8
%aXX=bitcast i8*%aXT to i8**
store i8*%aXW,i8**%aXX,align 8
%aXY=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aXZ=getelementptr inbounds i8,i8*%aXT,i64 8
%aX0=bitcast i8*%aXZ to i8**
store i8*%aXY,i8**%aX0,align 8
%aX1=getelementptr inbounds i8,i8*%aXT,i64 16
%aX2=bitcast i8*%aX1 to i32*
store i32 3,i32*%aX2,align 4
%aX3=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%aXT)
%aX4=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%aX3)
store i8*%aX4,i8**%d,align 8
%aX5=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%aX6=getelementptr inbounds i8,i8*%aX5,i64 16
%aX7=bitcast i8*%aX6 to i8**
%aX8=load i8*,i8**%aX7,align 8
%aX9=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aYa=bitcast i8*%aX8 to i8**
call void@sml_write(i8*inreg%aX8,i8**inreg%aYa,i8*inreg%aX9)#0
%aYb=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 1,i32 inreg 8)
%aYc=getelementptr inbounds i8,i8*%aYb,i64 16
%aYd=bitcast i8*%aYc to i8*(i8*,i8*)**
%aYe=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%aYd,align 8
%aYf=bitcast i8*%aYb to i8**
%aYg=load i8*,i8**%aYf,align 8
store i8*%aYg,i8**%c,align 8
%aYh=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aYi=call fastcc i8*@_SMLFN6IntInf10fromStringE(i8*inreg%aYh)
%aYj=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aYk=call fastcc i8*%aYe(i8*inreg%aYj,i8*inreg%aYi)
store i8*%aYk,i8**%c,align 8
%aYl=call i8*@sml_alloc(i32 inreg 20)#0
%aYm=bitcast i8*%aYl to i32*
%aYn=getelementptr inbounds i8,i8*%aYl,i64 -4
%aYo=bitcast i8*%aYn to i32*
store i32 1342177296,i32*%aYo,align 4
%aYp=getelementptr inbounds i8,i8*%aYl,i64 4
%aYq=bitcast i8*%aYp to i32*
store i32 0,i32*%aYq,align 1
store i32 5,i32*%aYm,align 4
%aYr=load i8*,i8**%c,align 8
%aYs=getelementptr inbounds i8,i8*%aYl,i64 8
%aYt=bitcast i8*%aYs to i8**
store i8*%aYr,i8**%aYt,align 8
%aYu=getelementptr inbounds i8,i8*%aYl,i64 16
%aYv=bitcast i8*%aYu to i32*
store i32 2,i32*%aYv,align 4
ret i8*%aYl
aYw:
%aYx=icmp eq i32%aTD,101
br i1%aYx,label%aYy,label%aYR
aYy:
%aYz=call i8*@sml_alloc(i32 inreg 28)#0
%aYA=getelementptr inbounds i8,i8*%aYz,i64 -4
%aYB=bitcast i8*%aYA to i32*
store i32 1342177304,i32*%aYB,align 4
store i8*%aYz,i8**%e,align 8
%aYC=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aYD=bitcast i8*%aYz to i8**
store i8*%aYC,i8**%aYD,align 8
%aYE=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%aYF=getelementptr inbounds i8,i8*%aYz,i64 8
%aYG=bitcast i8*%aYF to i8**
store i8*%aYE,i8**%aYG,align 8
%aYH=getelementptr inbounds i8,i8*%aYz,i64 16
%aYI=bitcast i8*%aYH to i8**
store i8*null,i8**%aYI,align 8
%aYJ=getelementptr inbounds i8,i8*%aYz,i64 24
%aYK=bitcast i8*%aYJ to i32*
store i32 7,i32*%aYK,align 4
%aYL=call i8*@sml_alloc(i32 inreg 20)#0
%aYM=getelementptr inbounds i8,i8*%aYL,i64 -4
%aYN=bitcast i8*%aYM to i32*
store i32 1342177296,i32*%aYN,align 4
%aYO=load i8*,i8**%d,align 8
%aYP=bitcast i8*%aYL to i8**
store i8*%aYO,i8**%aYP,align 8
%aYQ=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
br label%btC
aYR:
store i8*null,i8**%g,align 8
store i8*null,i8**%j,align 8
%aYS=load i8*,i8**%f,align 8
%aYT=getelementptr inbounds i8,i8*%aYS,i64 16
%aYU=bitcast i8*%aYT to i8***
%aYV=load i8**,i8***%aYU,align 8
%aYW=load i8*,i8**%aYV,align 8
store i8*%aYW,i8**%d,align 8
%aYX=call i8*@sml_alloc(i32 inreg 20)#0
%aYY=getelementptr inbounds i8,i8*%aYX,i64 -4
%aYZ=bitcast i8*%aYY to i32*
store i32 1342177296,i32*%aYZ,align 4
%aY0=load i8*,i8**%c,align 8
%aY1=bitcast i8*%aYX to i8**
store i8*%aY0,i8**%aY1,align 8
%aY2=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aY3=getelementptr inbounds i8,i8*%aYX,i64 8
%aY4=bitcast i8*%aY3 to i8**
store i8*%aY2,i8**%aY4,align 8
%aY5=getelementptr inbounds i8,i8*%aYX,i64 16
%aY6=bitcast i8*%aY5 to i32*
store i32 3,i32*%aY6,align 4
%aY7=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%aYX)
%aY8=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%aY7)
store i8*%aY8,i8**%d,align 8
%aY9=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%aZa=getelementptr inbounds i8,i8*%aY9,i64 16
%aZb=bitcast i8*%aZa to i8**
%aZc=load i8*,i8**%aZb,align 8
%aZd=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aZe=bitcast i8*%aZc to i8**
call void@sml_write(i8*inreg%aZc,i8**inreg%aZe,i8*inreg%aZd)#0
%aZf=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 1,i32 inreg 8)
%aZg=getelementptr inbounds i8,i8*%aZf,i64 16
%aZh=bitcast i8*%aZg to i8*(i8*,i8*)**
%aZi=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%aZh,align 8
%aZj=bitcast i8*%aZf to i8**
%aZk=load i8*,i8**%aZj,align 8
store i8*%aZk,i8**%c,align 8
%aZl=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aZm=call fastcc i8*@_SMLFN6IntInf10fromStringE(i8*inreg%aZl)
%aZn=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aZo=call fastcc i8*%aZi(i8*inreg%aZn,i8*inreg%aZm)
store i8*%aZo,i8**%c,align 8
%aZp=call i8*@sml_alloc(i32 inreg 20)#0
%aZq=bitcast i8*%aZp to i32*
%aZr=getelementptr inbounds i8,i8*%aZp,i64 -4
%aZs=bitcast i8*%aZr to i32*
store i32 1342177296,i32*%aZs,align 4
%aZt=getelementptr inbounds i8,i8*%aZp,i64 4
%aZu=bitcast i8*%aZt to i32*
store i32 0,i32*%aZu,align 1
store i32 5,i32*%aZq,align 4
%aZv=load i8*,i8**%c,align 8
%aZw=getelementptr inbounds i8,i8*%aZp,i64 8
%aZx=bitcast i8*%aZw to i8**
store i8*%aZv,i8**%aZx,align 8
%aZy=getelementptr inbounds i8,i8*%aZp,i64 16
%aZz=bitcast i8*%aZy to i32*
store i32 2,i32*%aZz,align 4
ret i8*%aZp
aZA:
%aZB=phi i8*[%OS,%OC],[%a2i,%a2h]
%aZC=phi i8**[%OT,%OC],[%a2j,%a2h]
%aZD=load atomic i32,i32*@sml_check_flag unordered,align 4
%aZE=icmp eq i32%aZD,0
br i1%aZE,label%aZI,label%aZF
aZF:
call void@sml_check(i32 inreg%aZD)
%aZG=load i8**,i8***%p,align 8
%aZH=load i8*,i8**%aZG,align 8
br label%aZI
aZI:
%aZJ=phi i8*[%aZH,%aZF],[%aZB,%aZA]
%aZK=phi i8**[%aZG,%aZF],[%aZC,%aZA]
store i8*%aZJ,i8**%d,align 8
%aZL=getelementptr inbounds i8*,i8**%aZK,i64 1
%aZM=load i8*,i8**%aZL,align 8
store i8*%aZM,i8**%c,align 8
%aZN=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%aZJ)
%aZO=icmp eq i8*%aZN,null
br i1%aZO,label%aZP,label%aZQ
aZP:
store i8*null,i8**%d,align 8
br label%a0B
aZQ:
%aZR=bitcast i8*%aZN to i8**
%aZS=load i8*,i8**%aZR,align 8
%aZT=bitcast i8*%aZS to i32*
%aZU=load i32,i32*%aZT,align 4
%aZV=icmp eq i32%aZU,10
br i1%aZV,label%aZY,label%aZW
aZW:
store i8*null,i8**%d,align 8
%aZX=load i8*,i8**%aZR,align 8
br label%a0C
aZY:
%aZZ=getelementptr inbounds i8,i8*%aZS,i64 8
%aZ0=bitcast i8*%aZZ to i8**
%aZ1=load i8*,i8**%aZ0,align 8
store i8*%aZ1,i8**%e,align 8
%aZ2=load i8**,i8***%o,align 8
%aZ3=load i8*,i8**%aZ2,align 8
%aZ4=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%aZ3)
%aZ5=getelementptr inbounds i8,i8*%aZ4,i64 16
%aZ6=bitcast i8*%aZ5 to i8*(i8*,i8*)**
%aZ7=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%aZ6,align 8
%aZ8=bitcast i8*%aZ4 to i8**
%aZ9=load i8*,i8**%aZ8,align 8
store i8*%aZ9,i8**%g,align 8
%a0a=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%a0b=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%a0a)
%a0c=call i8*@sml_alloc(i32 inreg 4)#0
%a0d=bitcast i8*%a0c to i32*
%a0e=getelementptr inbounds i8,i8*%a0c,i64 -4
%a0f=bitcast i8*%a0e to i32*
store i32 4,i32*%a0f,align 4
store i32%a0b,i32*%a0d,align 4
%a0g=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%a0h=call fastcc i8*%aZ7(i8*inreg%a0g,i8*inreg%a0c)
%a0i=call i8*@sml_alloc(i32 inreg 20)#0
%a0j=getelementptr inbounds i8,i8*%a0i,i64 -4
%a0k=bitcast i8*%a0j to i32*
store i32 1342177296,i32*%a0k,align 4
store i8*%a0i,i8**%d,align 8
%a0l=getelementptr inbounds i8,i8*%a0i,i64 4
%a0m=bitcast i8*%a0l to i32*
store i32 0,i32*%a0m,align 1
%a0n=bitcast i8*%a0i to i32*
store i32 10,i32*%a0n,align 4
%a0o=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%a0p=getelementptr inbounds i8,i8*%a0i,i64 8
%a0q=bitcast i8*%a0p to i8**
store i8*%a0o,i8**%a0q,align 8
%a0r=getelementptr inbounds i8,i8*%a0i,i64 16
%a0s=bitcast i8*%a0r to i32*
store i32 2,i32*%a0s,align 4
%a0t=call i8*@sml_alloc(i32 inreg 12)#0
%a0u=getelementptr inbounds i8,i8*%a0t,i64 -4
%a0v=bitcast i8*%a0u to i32*
store i32 1342177288,i32*%a0v,align 4
%a0w=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%a0x=bitcast i8*%a0t to i8**
store i8*%a0w,i8**%a0x,align 8
%a0y=getelementptr inbounds i8,i8*%a0t,i64 8
%a0z=bitcast i8*%a0y to i32*
store i32 1,i32*%a0z,align 4
%a0A=icmp eq i8*%a0t,null
br i1%a0A,label%a0B,label%a0C
a0B:
store i8*null,i8**%f,align 8
store i8*null,i8**%n,align 8
br label%bBS
a0C:
%a0D=phi i8*[%aZX,%aZW],[%a0w,%aZY]
%a0E=bitcast i8*%a0D to i32*
%a0F=load i32,i32*%a0E,align 4
%a0G=getelementptr inbounds i8,i8*%a0D,i64 8
%a0H=bitcast i8*%a0G to i8**
%a0I=load i8*,i8**%a0H,align 8
store i8*%a0I,i8**%d,align 8
%a0J=icmp eq i32%a0F,42
%a0K=call i8*@sml_alloc(i32 inreg 20)#0
%a0L=getelementptr inbounds i8,i8*%a0K,i64 -4
%a0M=bitcast i8*%a0L to i32*
store i32 1342177296,i32*%a0M,align 4
%a0N=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%a0O=bitcast i8*%a0K to i8**
store i8*%a0N,i8**%a0O,align 8
%a0P=load i8*,i8**%c,align 8
%a0Q=getelementptr inbounds i8,i8*%a0K,i64 8
%a0R=bitcast i8*%a0Q to i8**
store i8*%a0P,i8**%a0R,align 8
%a0S=getelementptr inbounds i8,i8*%a0K,i64 16
%a0T=bitcast i8*%a0S to i32*
store i32 3,i32*%a0T,align 4
store i8*%a0K,i8**%c,align 8
br i1%a0J,label%a0U,label%a2h
a0U:
%a0V=phi i8*[%a2r,%a2m],[%a0N,%a0C]
%a0W=phi i8**[%a2s,%a2m],[%a0O,%a0C]
%a0X=load atomic i32,i32*@sml_check_flag unordered,align 4
%a0Y=icmp eq i32%a0X,0
br i1%a0Y,label%a02,label%a0Z
a0Z:
call void@sml_check(i32 inreg%a0X)
%a00=load i8**,i8***%p,align 8
%a01=load i8*,i8**%a00,align 8
br label%a02
a02:
%a03=phi i8*[%a01,%a0Z],[%a0V,%a0U]
%a04=phi i8**[%a00,%a0Z],[%a0W,%a0U]
store i8*%a03,i8**%d,align 8
%a05=getelementptr inbounds i8*,i8**%a04,i64 1
%a06=load i8*,i8**%a05,align 8
store i8*%a06,i8**%c,align 8
%a07=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%a03)
%a08=icmp eq i8*%a07,null
br i1%a08,label%a09,label%a1a
a09:
store i8*null,i8**%d,align 8
br label%a1V
a1a:
%a1b=bitcast i8*%a07 to i8**
%a1c=load i8*,i8**%a1b,align 8
%a1d=bitcast i8*%a1c to i32*
%a1e=load i32,i32*%a1d,align 4
%a1f=icmp eq i32%a1e,10
br i1%a1f,label%a1i,label%a1g
a1g:
store i8*null,i8**%d,align 8
%a1h=load i8*,i8**%a1b,align 8
br label%a1W
a1i:
%a1j=getelementptr inbounds i8,i8*%a1c,i64 8
%a1k=bitcast i8*%a1j to i8**
%a1l=load i8*,i8**%a1k,align 8
store i8*%a1l,i8**%e,align 8
%a1m=load i8**,i8***%o,align 8
%a1n=load i8*,i8**%a1m,align 8
%a1o=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%a1n)
%a1p=getelementptr inbounds i8,i8*%a1o,i64 16
%a1q=bitcast i8*%a1p to i8*(i8*,i8*)**
%a1r=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%a1q,align 8
%a1s=bitcast i8*%a1o to i8**
%a1t=load i8*,i8**%a1s,align 8
store i8*%a1t,i8**%g,align 8
%a1u=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%a1v=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%a1u)
%a1w=call i8*@sml_alloc(i32 inreg 4)#0
%a1x=bitcast i8*%a1w to i32*
%a1y=getelementptr inbounds i8,i8*%a1w,i64 -4
%a1z=bitcast i8*%a1y to i32*
store i32 4,i32*%a1z,align 4
store i32%a1v,i32*%a1x,align 4
%a1A=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%a1B=call fastcc i8*%a1r(i8*inreg%a1A,i8*inreg%a1w)
%a1C=call i8*@sml_alloc(i32 inreg 20)#0
%a1D=getelementptr inbounds i8,i8*%a1C,i64 -4
%a1E=bitcast i8*%a1D to i32*
store i32 1342177296,i32*%a1E,align 4
store i8*%a1C,i8**%d,align 8
%a1F=getelementptr inbounds i8,i8*%a1C,i64 4
%a1G=bitcast i8*%a1F to i32*
store i32 0,i32*%a1G,align 1
%a1H=bitcast i8*%a1C to i32*
store i32 10,i32*%a1H,align 4
%a1I=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%a1J=getelementptr inbounds i8,i8*%a1C,i64 8
%a1K=bitcast i8*%a1J to i8**
store i8*%a1I,i8**%a1K,align 8
%a1L=getelementptr inbounds i8,i8*%a1C,i64 16
%a1M=bitcast i8*%a1L to i32*
store i32 2,i32*%a1M,align 4
%a1N=call i8*@sml_alloc(i32 inreg 12)#0
%a1O=getelementptr inbounds i8,i8*%a1N,i64 -4
%a1P=bitcast i8*%a1O to i32*
store i32 1342177288,i32*%a1P,align 4
%a1Q=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%a1R=bitcast i8*%a1N to i8**
store i8*%a1Q,i8**%a1R,align 8
%a1S=getelementptr inbounds i8,i8*%a1N,i64 8
%a1T=bitcast i8*%a1S to i32*
store i32 1,i32*%a1T,align 4
%a1U=icmp eq i8*%a1N,null
br i1%a1U,label%a1V,label%a1W
a1V:
store i8*null,i8**%f,align 8
store i8*null,i8**%n,align 8
br label%bBS
a1W:
%a1X=phi i8*[%a1h,%a1g],[%a1Q,%a1i]
%a1Y=bitcast i8*%a1X to i32*
%a1Z=load i32,i32*%a1Y,align 4
%a10=getelementptr inbounds i8,i8*%a1X,i64 8
%a11=bitcast i8*%a10 to i8**
%a12=load i8*,i8**%a11,align 8
store i8*%a12,i8**%d,align 8
%a13=icmp eq i32%a1Z,43
br i1%a13,label%a14,label%a2k
a14:
%a15=call i8*@sml_alloc(i32 inreg 20)#0
%a16=getelementptr inbounds i8,i8*%a15,i64 -4
%a17=bitcast i8*%a16 to i32*
store i32 1342177296,i32*%a17,align 4
%a18=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%a19=bitcast i8*%a15 to i8**
store i8*%a18,i8**%a19,align 8
%a2a=load i8*,i8**%c,align 8
%a2b=getelementptr inbounds i8,i8*%a15,i64 8
%a2c=bitcast i8*%a2b to i8**
store i8*%a2a,i8**%a2c,align 8
%a2d=getelementptr inbounds i8,i8*%a15,i64 16
%a2e=bitcast i8*%a2d to i32*
store i32 3,i32*%a2e,align 4
store i8*%a15,i8**%c,align 8
br label%a2h
a2f:
%a2g=bitcast i8*%a2o to i8**
br label%a2h
a2h:
%a2i=phi i8*[%a18,%a14],[%a4n,%a4j],[%a0N,%a0C],[%a2r,%a2f]
%a2j=phi i8**[%a19,%a14],[%a4o,%a4j],[%a0O,%a0C],[%a2g,%a2f]
br label%aZA
a2k:
%a2l=icmp ugt i32%a1Z,42
br i1%a2l,label%a2y,label%a2m
a2m:
%a2n=icmp eq i32%a1Z,42
%a2o=call i8*@sml_alloc(i32 inreg 20)#0
%a2p=getelementptr inbounds i8,i8*%a2o,i64 -4
%a2q=bitcast i8*%a2p to i32*
store i32 1342177296,i32*%a2q,align 4
%a2r=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%a2s=bitcast i8*%a2o to i8**
store i8*%a2r,i8**%a2s,align 8
%a2t=load i8*,i8**%c,align 8
%a2u=getelementptr inbounds i8,i8*%a2o,i64 8
%a2v=bitcast i8*%a2u to i8**
store i8*%a2t,i8**%a2v,align 8
%a2w=getelementptr inbounds i8,i8*%a2o,i64 16
%a2x=bitcast i8*%a2w to i32*
store i32 3,i32*%a2x,align 4
store i8*%a2o,i8**%c,align 8
br i1%a2n,label%a0U,label%a2f
a2y:
%a2z=icmp eq i32%a1Z,47
br i1%a2z,label%a2A,label%a4j
a2A:
store i8*null,i8**%c,align 8
%a2B=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%a12)
%a2C=icmp eq i8*%a2B,null
br i1%a2C,label%a3p,label%a2D
a2D:
%a2E=bitcast i8*%a2B to i8**
%a2F=load i8*,i8**%a2E,align 8
%a2G=bitcast i8*%a2F to i32*
%a2H=load i32,i32*%a2G,align 4
%a2I=icmp eq i32%a2H,10
br i1%a2I,label%a2J,label%a3Q
a2J:
%a2K=getelementptr inbounds i8,i8*%a2F,i64 8
%a2L=bitcast i8*%a2K to i8**
%a2M=load i8*,i8**%a2L,align 8
store i8*%a2M,i8**%c,align 8
%a2N=load i8**,i8***%o,align 8
%a2O=load i8*,i8**%a2N,align 8
%a2P=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%a2O)
%a2Q=getelementptr inbounds i8,i8*%a2P,i64 16
%a2R=bitcast i8*%a2Q to i8*(i8*,i8*)**
%a2S=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%a2R,align 8
%a2T=bitcast i8*%a2P to i8**
%a2U=load i8*,i8**%a2T,align 8
store i8*%a2U,i8**%e,align 8
%a2V=load i8*,i8**%d,align 8
%a2W=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%a2V)
%a2X=call i8*@sml_alloc(i32 inreg 4)#0
%a2Y=bitcast i8*%a2X to i32*
%a2Z=getelementptr inbounds i8,i8*%a2X,i64 -4
%a20=bitcast i8*%a2Z to i32*
store i32 4,i32*%a20,align 4
store i32%a2W,i32*%a2Y,align 4
%a21=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%a22=call fastcc i8*%a2S(i8*inreg%a21,i8*inreg%a2X)
%a23=call i8*@sml_alloc(i32 inreg 20)#0
%a24=getelementptr inbounds i8,i8*%a23,i64 -4
%a25=bitcast i8*%a24 to i32*
store i32 1342177296,i32*%a25,align 4
store i8*%a23,i8**%e,align 8
%a26=getelementptr inbounds i8,i8*%a23,i64 4
%a27=bitcast i8*%a26 to i32*
store i32 0,i32*%a27,align 1
%a28=bitcast i8*%a23 to i32*
store i32 10,i32*%a28,align 4
%a29=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%a3a=getelementptr inbounds i8,i8*%a23,i64 8
%a3b=bitcast i8*%a3a to i8**
store i8*%a29,i8**%a3b,align 8
%a3c=getelementptr inbounds i8,i8*%a23,i64 16
%a3d=bitcast i8*%a3c to i32*
store i32 2,i32*%a3d,align 4
%a3e=call i8*@sml_alloc(i32 inreg 12)#0
%a3f=getelementptr inbounds i8,i8*%a3e,i64 -4
%a3g=bitcast i8*%a3f to i32*
store i32 1342177288,i32*%a3g,align 4
%a3h=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%a3i=bitcast i8*%a3e to i8**
store i8*%a3h,i8**%a3i,align 8
%a3j=getelementptr inbounds i8,i8*%a3e,i64 8
%a3k=bitcast i8*%a3j to i32*
store i32 1,i32*%a3k,align 4
%a3l=icmp eq i8*%a3e,null
br i1%a3l,label%a3p,label%a3m
a3m:
%a3n=bitcast i8*%a3h to i32*
%a3o=load i32,i32*%a3n,align 4
br label%a3Q
a3p:
store i8*null,i8**%n,align 8
%a3q=load i8*,i8**%f,align 8
%a3r=getelementptr inbounds i8,i8*%a3q,i64 16
%a3s=bitcast i8*%a3r to i8**
%a3t=load i8*,i8**%a3s,align 8
%a3u=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%a3v=bitcast i8*%a3t to i8**
call void@sml_write(i8*inreg%a3t,i8**inreg%a3v,i8*inreg%a3u)#0
%a3w=load i8*,i8**%f,align 8
%a3x=getelementptr inbounds i8,i8*%a3w,i64 24
%a3y=bitcast i8*%a3x to i8**
%a3z=load i8*,i8**%a3y,align 8
store i8*%a3z,i8**%c,align 8
%a3A=getelementptr inbounds i8,i8*%a3w,i64 16
%a3B=bitcast i8*%a3A to i8***
%a3C=load i8**,i8***%a3B,align 8
%a3D=load i8*,i8**%a3C,align 8
%a3E=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%a3D)
%a3F=load i32*,i32**%q,align 8
store i32%a3E,i32*%a3F,align 4
%a3G=load i8*,i8**%f,align 8
%a3H=getelementptr inbounds i8,i8*%a3G,i64 32
%a3I=bitcast i8*%a3H to i8**
%a3J=load i8*,i8**%a3I,align 8
store i8*%a3J,i8**%c,align 8
%a3K=getelementptr inbounds i8,i8*%a3G,i64 16
%a3L=bitcast i8*%a3K to i8***
%a3M=load i8**,i8***%a3L,align 8
%a3N=load i8*,i8**%a3M,align 8
%a3O=call fastcc i32@_SMLFN10ULexBuffer9lastWasNLE(i8*inreg%a3N)
%a3P=load i32*,i32**%q,align 8
store i8*null,i8**%c,align 8
store i32%a3O,i32*%a3P,align 4
br label%awh
a3Q:
%a3R=phi i32[%a3o,%a3m],[%a2H,%a2D]
%a3S=phi i8*[%a3h,%a3m],[%a2F,%a2D]
%a3T=getelementptr inbounds i8,i8*%a3S,i64 8
%a3U=bitcast i8*%a3T to i8**
%a3V=load i8*,i8**%a3U,align 8
store i8*%a3V,i8**%c,align 8
%a3W=icmp eq i32%a3R,42
%a3X=call i8*@sml_alloc(i32 inreg 28)#0
%a3Y=getelementptr inbounds i8,i8*%a3X,i64 -4
%a3Z=bitcast i8*%a3Y to i32*
store i32 1342177304,i32*%a3Z,align 4
store i8*%a3X,i8**%e,align 8
%a30=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%a31=bitcast i8*%a3X to i8**
store i8*%a30,i8**%a31,align 8
%a32=load i8*,i8**%n,align 8
store i8*null,i8**%n,align 8
%a33=getelementptr inbounds i8,i8*%a3X,i64 8
%a34=bitcast i8*%a33 to i8**
store i8*%a32,i8**%a34,align 8
%a35=getelementptr inbounds i8,i8*%a3X,i64 16
%a36=bitcast i8*%a35 to i8**
store i8*null,i8**%a36,align 8
%a37=getelementptr inbounds i8,i8*%a3X,i64 24
%a38=bitcast i8*%a37 to i32*
store i32 7,i32*%a38,align 4
%a39=call i8*@sml_alloc(i32 inreg 20)#0
%a4a=getelementptr inbounds i8,i8*%a39,i64 -4
%a4b=bitcast i8*%a4a to i32*
store i32 1342177296,i32*%a4b,align 4
%a4c=load i8*,i8**%c,align 8
%a4d=bitcast i8*%a39 to i8**
store i8*%a4c,i8**%a4d,align 8
%a4e=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%a4f=getelementptr inbounds i8,i8*%a39,i64 8
%a4g=bitcast i8*%a4f to i8**
store i8*%a4e,i8**%a4g,align 8
%a4h=getelementptr inbounds i8,i8*%a39,i64 16
%a4i=bitcast i8*%a4h to i32*
store i32 3,i32*%a4i,align 4
store i8*%a39,i8**%c,align 8
br i1%a3W,label%a4w,label%a5V
a4j:
%a4k=call i8*@sml_alloc(i32 inreg 20)#0
%a4l=getelementptr inbounds i8,i8*%a4k,i64 -4
%a4m=bitcast i8*%a4l to i32*
store i32 1342177296,i32*%a4m,align 4
%a4n=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%a4o=bitcast i8*%a4k to i8**
store i8*%a4n,i8**%a4o,align 8
%a4p=load i8*,i8**%c,align 8
%a4q=getelementptr inbounds i8,i8*%a4k,i64 8
%a4r=bitcast i8*%a4q to i8**
store i8*%a4p,i8**%a4r,align 8
%a4s=getelementptr inbounds i8,i8*%a4k,i64 16
%a4t=bitcast i8*%a4s to i32*
store i32 3,i32*%a4t,align 4
store i8*%a4k,i8**%c,align 8
br label%a2h
a4u:
%a4v=bitcast i8*%a68 to i8**
br label%a4w
a4w:
%a4x=phi i8*[%a4c,%a3Q],[%a7b,%a4u]
%a4y=phi i8**[%a4d,%a3Q],[%a4v,%a4u]
br label%a4z
a4z:
%a4A=phi i8*[%a5M,%a5B],[%a4x,%a4w]
%a4B=phi i8**[%a5N,%a5B],[%a4y,%a4w]
%a4C=load atomic i32,i32*@sml_check_flag unordered,align 4
%a4D=icmp eq i32%a4C,0
br i1%a4D,label%a4H,label%a4E
a4E:
call void@sml_check(i32 inreg%a4C)
%a4F=load i8**,i8***%p,align 8
%a4G=load i8*,i8**%a4F,align 8
br label%a4H
a4H:
%a4I=phi i8*[%a4G,%a4E],[%a4A,%a4z]
%a4J=phi i8**[%a4F,%a4E],[%a4B,%a4z]
store i8*%a4I,i8**%d,align 8
%a4K=getelementptr inbounds i8*,i8**%a4J,i64 1
%a4L=load i8*,i8**%a4K,align 8
store i8*%a4L,i8**%c,align 8
%a4M=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%a4I)
%a4N=icmp eq i8*%a4M,null
br i1%a4N,label%a4O,label%a4P
a4O:
store i8*null,i8**%d,align 8
br label%a5A
a4P:
%a4Q=bitcast i8*%a4M to i8**
%a4R=load i8*,i8**%a4Q,align 8
%a4S=bitcast i8*%a4R to i32*
%a4T=load i32,i32*%a4S,align 4
%a4U=icmp eq i32%a4T,10
br i1%a4U,label%a4X,label%a4V
a4V:
store i8*null,i8**%d,align 8
%a4W=load i8*,i8**%a4Q,align 8
br label%a5B
a4X:
%a4Y=getelementptr inbounds i8,i8*%a4R,i64 8
%a4Z=bitcast i8*%a4Y to i8**
%a40=load i8*,i8**%a4Z,align 8
store i8*%a40,i8**%e,align 8
%a41=load i8**,i8***%o,align 8
%a42=load i8*,i8**%a41,align 8
%a43=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%a42)
%a44=getelementptr inbounds i8,i8*%a43,i64 16
%a45=bitcast i8*%a44 to i8*(i8*,i8*)**
%a46=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%a45,align 8
%a47=bitcast i8*%a43 to i8**
%a48=load i8*,i8**%a47,align 8
store i8*%a48,i8**%g,align 8
%a49=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%a5a=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%a49)
%a5b=call i8*@sml_alloc(i32 inreg 4)#0
%a5c=bitcast i8*%a5b to i32*
%a5d=getelementptr inbounds i8,i8*%a5b,i64 -4
%a5e=bitcast i8*%a5d to i32*
store i32 4,i32*%a5e,align 4
store i32%a5a,i32*%a5c,align 4
%a5f=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%a5g=call fastcc i8*%a46(i8*inreg%a5f,i8*inreg%a5b)
%a5h=call i8*@sml_alloc(i32 inreg 20)#0
%a5i=getelementptr inbounds i8,i8*%a5h,i64 -4
%a5j=bitcast i8*%a5i to i32*
store i32 1342177296,i32*%a5j,align 4
store i8*%a5h,i8**%d,align 8
%a5k=getelementptr inbounds i8,i8*%a5h,i64 4
%a5l=bitcast i8*%a5k to i32*
store i32 0,i32*%a5l,align 1
%a5m=bitcast i8*%a5h to i32*
store i32 10,i32*%a5m,align 4
%a5n=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%a5o=getelementptr inbounds i8,i8*%a5h,i64 8
%a5p=bitcast i8*%a5o to i8**
store i8*%a5n,i8**%a5p,align 8
%a5q=getelementptr inbounds i8,i8*%a5h,i64 16
%a5r=bitcast i8*%a5q to i32*
store i32 2,i32*%a5r,align 4
%a5s=call i8*@sml_alloc(i32 inreg 12)#0
%a5t=getelementptr inbounds i8,i8*%a5s,i64 -4
%a5u=bitcast i8*%a5t to i32*
store i32 1342177288,i32*%a5u,align 4
%a5v=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%a5w=bitcast i8*%a5s to i8**
store i8*%a5v,i8**%a5w,align 8
%a5x=getelementptr inbounds i8,i8*%a5s,i64 8
%a5y=bitcast i8*%a5x to i32*
store i32 1,i32*%a5y,align 4
%a5z=icmp eq i8*%a5s,null
br i1%a5z,label%a5A,label%a5B
a5A:
store i8*null,i8**%f,align 8
br label%bBS
a5B:
%a5C=phi i8*[%a4W,%a4V],[%a5v,%a4X]
%a5D=bitcast i8*%a5C to i32*
%a5E=load i32,i32*%a5D,align 4
%a5F=getelementptr inbounds i8,i8*%a5C,i64 8
%a5G=bitcast i8*%a5F to i8**
%a5H=load i8*,i8**%a5G,align 8
store i8*%a5H,i8**%d,align 8
%a5I=icmp eq i32%a5E,42
%a5J=call i8*@sml_alloc(i32 inreg 20)#0
%a5K=getelementptr inbounds i8,i8*%a5J,i64 -4
%a5L=bitcast i8*%a5K to i32*
store i32 1342177296,i32*%a5L,align 4
%a5M=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%a5N=bitcast i8*%a5J to i8**
store i8*%a5M,i8**%a5N,align 8
%a5O=load i8*,i8**%c,align 8
%a5P=getelementptr inbounds i8,i8*%a5J,i64 8
%a5Q=bitcast i8*%a5P to i8**
store i8*%a5O,i8**%a5Q,align 8
%a5R=getelementptr inbounds i8,i8*%a5J,i64 16
%a5S=bitcast i8*%a5R to i32*
store i32 3,i32*%a5S,align 4
store i8*%a5J,i8**%c,align 8
br i1%a5I,label%a4z,label%a5T
a5T:
%a5U=bitcast i8*%a5J to i8**
br label%a5V
a5V:
%a5W=phi i8*[%a5M,%a5T],[%a4c,%a3Q]
%a5X=phi i8**[%a5U,%a5T],[%a4d,%a3Q]
br label%a5Y
a5Y:
%a5Z=phi i8*[%a7b,%a60],[%a5W,%a5V]
%a50=phi i8**[%a7c,%a60],[%a5X,%a5V]
%a51=load atomic i32,i32*@sml_check_flag unordered,align 4
%a52=icmp eq i32%a51,0
br i1%a52,label%a56,label%a53
a53:
call void@sml_check(i32 inreg%a51)
%a54=load i8**,i8***%p,align 8
%a55=load i8*,i8**%a54,align 8
br label%a56
a56:
%a57=phi i8*[%a55,%a53],[%a5Z,%a5Y]
%a58=phi i8**[%a54,%a53],[%a50,%a5Y]
store i8*%a57,i8**%d,align 8
%a59=getelementptr inbounds i8*,i8**%a58,i64 1
%a6a=load i8*,i8**%a59,align 8
store i8*%a6a,i8**%c,align 8
%a6b=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%a57)
%a6c=icmp eq i8*%a6b,null
br i1%a6c,label%a6d,label%a6e
a6d:
store i8*null,i8**%d,align 8
br label%a6Z
a6e:
%a6f=bitcast i8*%a6b to i8**
%a6g=load i8*,i8**%a6f,align 8
%a6h=bitcast i8*%a6g to i32*
%a6i=load i32,i32*%a6h,align 4
%a6j=icmp eq i32%a6i,10
br i1%a6j,label%a6m,label%a6k
a6k:
store i8*null,i8**%d,align 8
%a6l=load i8*,i8**%a6f,align 8
br label%a60
a6m:
%a6n=getelementptr inbounds i8,i8*%a6g,i64 8
%a6o=bitcast i8*%a6n to i8**
%a6p=load i8*,i8**%a6o,align 8
store i8*%a6p,i8**%e,align 8
%a6q=load i8**,i8***%o,align 8
%a6r=load i8*,i8**%a6q,align 8
%a6s=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%a6r)
%a6t=getelementptr inbounds i8,i8*%a6s,i64 16
%a6u=bitcast i8*%a6t to i8*(i8*,i8*)**
%a6v=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%a6u,align 8
%a6w=bitcast i8*%a6s to i8**
%a6x=load i8*,i8**%a6w,align 8
store i8*%a6x,i8**%g,align 8
%a6y=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%a6z=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%a6y)
%a6A=call i8*@sml_alloc(i32 inreg 4)#0
%a6B=bitcast i8*%a6A to i32*
%a6C=getelementptr inbounds i8,i8*%a6A,i64 -4
%a6D=bitcast i8*%a6C to i32*
store i32 4,i32*%a6D,align 4
store i32%a6z,i32*%a6B,align 4
%a6E=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%a6F=call fastcc i8*%a6v(i8*inreg%a6E,i8*inreg%a6A)
%a6G=call i8*@sml_alloc(i32 inreg 20)#0
%a6H=getelementptr inbounds i8,i8*%a6G,i64 -4
%a6I=bitcast i8*%a6H to i32*
store i32 1342177296,i32*%a6I,align 4
store i8*%a6G,i8**%d,align 8
%a6J=getelementptr inbounds i8,i8*%a6G,i64 4
%a6K=bitcast i8*%a6J to i32*
store i32 0,i32*%a6K,align 1
%a6L=bitcast i8*%a6G to i32*
store i32 10,i32*%a6L,align 4
%a6M=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%a6N=getelementptr inbounds i8,i8*%a6G,i64 8
%a6O=bitcast i8*%a6N to i8**
store i8*%a6M,i8**%a6O,align 8
%a6P=getelementptr inbounds i8,i8*%a6G,i64 16
%a6Q=bitcast i8*%a6P to i32*
store i32 2,i32*%a6Q,align 4
%a6R=call i8*@sml_alloc(i32 inreg 12)#0
%a6S=getelementptr inbounds i8,i8*%a6R,i64 -4
%a6T=bitcast i8*%a6S to i32*
store i32 1342177288,i32*%a6T,align 4
%a6U=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%a6V=bitcast i8*%a6R to i8**
store i8*%a6U,i8**%a6V,align 8
%a6W=getelementptr inbounds i8,i8*%a6R,i64 8
%a6X=bitcast i8*%a6W to i32*
store i32 1,i32*%a6X,align 4
%a6Y=icmp eq i8*%a6R,null
br i1%a6Y,label%a6Z,label%a60
a6Z:
store i8*null,i8**%f,align 8
br label%bBS
a60:
%a61=phi i8*[%a6l,%a6k],[%a6U,%a6m]
%a62=bitcast i8*%a61 to i32*
%a63=load i32,i32*%a62,align 4
%a64=getelementptr inbounds i8,i8*%a61,i64 8
%a65=bitcast i8*%a64 to i8**
%a66=load i8*,i8**%a65,align 8
store i8*%a66,i8**%d,align 8
%a67=icmp eq i32%a63,42
%a68=call i8*@sml_alloc(i32 inreg 20)#0
%a69=getelementptr inbounds i8,i8*%a68,i64 -4
%a7a=bitcast i8*%a69 to i32*
store i32 1342177296,i32*%a7a,align 4
%a7b=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%a7c=bitcast i8*%a68 to i8**
store i8*%a7b,i8**%a7c,align 8
%a7d=load i8*,i8**%c,align 8
%a7e=getelementptr inbounds i8,i8*%a68,i64 8
%a7f=bitcast i8*%a7e to i8**
store i8*%a7d,i8**%a7f,align 8
%a7g=getelementptr inbounds i8,i8*%a68,i64 16
%a7h=bitcast i8*%a7g to i32*
store i32 3,i32*%a7h,align 4
store i8*%a68,i8**%c,align 8
br i1%a67,label%a4u,label%a5Y
a7i:
%a7j=phi i8*[%bb0,%bbN],[%aWE,%aWD]
%a7k=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%a7l=getelementptr inbounds i8,i8*%a7j,i64 8
%a7m=bitcast i8*%a7l to i8**
store i8*%a7k,i8**%a7m,align 8
%a7n=getelementptr inbounds i8,i8*%a7j,i64 16
%a7o=bitcast i8*%a7n to i32*
store i32 3,i32*%a7o,align 4
store i8*%a7j,i8**%c,align 8
%a7p=load atomic i32,i32*@sml_check_flag unordered,align 4
%a7q=icmp eq i32%a7p,0
%a7r=bitcast i8*%a7j to i8**
br i1%a7q,label%a7u,label%a7s
a7s:
call void@sml_check(i32 inreg%a7p)
%a7t=load i8**,i8***%p,align 8
br label%a7u
a7u:
%a7v=phi i8**[%a7t,%a7s],[%a7r,%a7i]
%a7w=load i8*,i8**%a7v,align 8
store i8*%a7w,i8**%c,align 8
%a7x=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%a7w)
%a7y=icmp eq i8*%a7x,null
br i1%a7y,label%a8l,label%a7z
a7z:
%a7A=bitcast i8*%a7x to i8**
%a7B=load i8*,i8**%a7A,align 8
%a7C=bitcast i8*%a7B to i32*
%a7D=load i32,i32*%a7C,align 4
%a7E=icmp eq i32%a7D,10
br i1%a7E,label%a7F,label%a84
a7F:
%a7G=getelementptr inbounds i8,i8*%a7B,i64 8
%a7H=bitcast i8*%a7G to i8**
%a7I=load i8*,i8**%a7H,align 8
store i8*%a7I,i8**%d,align 8
%a7J=load i8**,i8***%o,align 8
%a7K=load i8*,i8**%a7J,align 8
%a7L=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%a7K)
%a7M=getelementptr inbounds i8,i8*%a7L,i64 16
%a7N=bitcast i8*%a7M to i8*(i8*,i8*)**
%a7O=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%a7N,align 8
%a7P=bitcast i8*%a7L to i8**
%a7Q=load i8*,i8**%a7P,align 8
store i8*%a7Q,i8**%e,align 8
%a7R=load i8*,i8**%c,align 8
%a7S=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%a7R)
%a7T=call i8*@sml_alloc(i32 inreg 4)#0
%a7U=bitcast i8*%a7T to i32*
%a7V=getelementptr inbounds i8,i8*%a7T,i64 -4
%a7W=bitcast i8*%a7V to i32*
store i32 4,i32*%a7W,align 4
store i32%a7S,i32*%a7U,align 4
%a7X=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%a7Y=call fastcc i8*%a7O(i8*inreg%a7X,i8*inreg%a7T)
%a7Z=call i8*@sml_alloc(i32 inreg 20)#0
%a70=getelementptr inbounds i8,i8*%a7Z,i64 -4
%a71=bitcast i8*%a70 to i32*
store i32 1342177296,i32*%a71,align 4
store i8*%a7Z,i8**%e,align 8
%a72=getelementptr inbounds i8,i8*%a7Z,i64 4
%a73=bitcast i8*%a72 to i32*
store i32 0,i32*%a73,align 1
%a74=bitcast i8*%a7Z to i32*
store i32 10,i32*%a74,align 4
%a75=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%a76=getelementptr inbounds i8,i8*%a7Z,i64 8
%a77=bitcast i8*%a76 to i8**
store i8*%a75,i8**%a77,align 8
%a78=getelementptr inbounds i8,i8*%a7Z,i64 16
%a79=bitcast i8*%a78 to i32*
store i32 2,i32*%a79,align 4
%a8a=call i8*@sml_alloc(i32 inreg 12)#0
%a8b=getelementptr inbounds i8,i8*%a8a,i64 -4
%a8c=bitcast i8*%a8b to i32*
store i32 1342177288,i32*%a8c,align 4
%a8d=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%a8e=bitcast i8*%a8a to i8**
store i8*%a8d,i8**%a8e,align 8
%a8f=getelementptr inbounds i8,i8*%a8a,i64 8
%a8g=bitcast i8*%a8f to i32*
store i32 1,i32*%a8g,align 4
%a8h=icmp eq i8*%a8a,null
br i1%a8h,label%a8l,label%a8i
a8i:
%a8j=bitcast i8*%a8d to i32*
%a8k=load i32,i32*%a8j,align 4
br label%a84
a8l:
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
%a8m=load i8*,i8**%f,align 8
%a8n=getelementptr inbounds i8,i8*%a8m,i64 16
%a8o=bitcast i8*%a8n to i8***
%a8p=load i8**,i8***%a8o,align 8
%a8q=load i8*,i8**%a8p,align 8
store i8*%a8q,i8**%d,align 8
%a8r=call i8*@sml_alloc(i32 inreg 20)#0
%a8s=getelementptr inbounds i8,i8*%a8r,i64 -4
%a8t=bitcast i8*%a8s to i32*
store i32 1342177296,i32*%a8t,align 4
%a8u=load i8*,i8**%c,align 8
%a8v=bitcast i8*%a8r to i8**
store i8*%a8u,i8**%a8v,align 8
%a8w=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%a8x=getelementptr inbounds i8,i8*%a8r,i64 8
%a8y=bitcast i8*%a8x to i8**
store i8*%a8w,i8**%a8y,align 8
%a8z=getelementptr inbounds i8,i8*%a8r,i64 16
%a8A=bitcast i8*%a8z to i32*
store i32 3,i32*%a8A,align 4
%a8B=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%a8r)
%a8C=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%a8B)
store i8*%a8C,i8**%d,align 8
%a8D=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%a8E=getelementptr inbounds i8,i8*%a8D,i64 16
%a8F=bitcast i8*%a8E to i8**
%a8G=load i8*,i8**%a8F,align 8
%a8H=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%a8I=bitcast i8*%a8G to i8**
call void@sml_write(i8*inreg%a8G,i8**inreg%a8I,i8*inreg%a8H)#0
%a8J=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 1,i32 inreg 8)
%a8K=getelementptr inbounds i8,i8*%a8J,i64 16
%a8L=bitcast i8*%a8K to i8*(i8*,i8*)**
%a8M=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%a8L,align 8
%a8N=bitcast i8*%a8J to i8**
%a8O=load i8*,i8**%a8N,align 8
store i8*%a8O,i8**%c,align 8
%a8P=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%a8Q=call fastcc i8*@_SMLFN6IntInf10fromStringE(i8*inreg%a8P)
%a8R=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%a8S=call fastcc i8*%a8M(i8*inreg%a8R,i8*inreg%a8Q)
store i8*%a8S,i8**%c,align 8
%a8T=call i8*@sml_alloc(i32 inreg 20)#0
%a8U=bitcast i8*%a8T to i32*
%a8V=getelementptr inbounds i8,i8*%a8T,i64 -4
%a8W=bitcast i8*%a8V to i32*
store i32 1342177296,i32*%a8W,align 4
%a8X=getelementptr inbounds i8,i8*%a8T,i64 4
%a8Y=bitcast i8*%a8X to i32*
store i32 0,i32*%a8Y,align 1
store i32 5,i32*%a8U,align 4
%a8Z=load i8*,i8**%c,align 8
%a80=getelementptr inbounds i8,i8*%a8T,i64 8
%a81=bitcast i8*%a80 to i8**
store i8*%a8Z,i8**%a81,align 8
%a82=getelementptr inbounds i8,i8*%a8T,i64 16
%a83=bitcast i8*%a82 to i32*
store i32 2,i32*%a83,align 4
ret i8*%a8T
a84:
%a85=phi i32[%a8k,%a8i],[%a7D,%a7z]
%a86=phi i8*[%a8d,%a8i],[%a7B,%a7z]
%a87=getelementptr inbounds i8,i8*%a86,i64 8
%a88=bitcast i8*%a87 to i8**
%a89=load i8*,i8**%a88,align 8
store i8*%a89,i8**%d,align 8
%a9a=icmp eq i32%a85,58
br i1%a9a,label%a9b,label%a9U
a9b:
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
%a9c=load i8*,i8**%f,align 8
%a9d=getelementptr inbounds i8,i8*%a9c,i64 16
%a9e=bitcast i8*%a9d to i8***
%a9f=load i8**,i8***%a9e,align 8
%a9g=load i8*,i8**%a9f,align 8
store i8*%a9g,i8**%d,align 8
%a9h=call i8*@sml_alloc(i32 inreg 20)#0
%a9i=getelementptr inbounds i8,i8*%a9h,i64 -4
%a9j=bitcast i8*%a9i to i32*
store i32 1342177296,i32*%a9j,align 4
%a9k=load i8*,i8**%c,align 8
%a9l=bitcast i8*%a9h to i8**
store i8*%a9k,i8**%a9l,align 8
%a9m=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%a9n=getelementptr inbounds i8,i8*%a9h,i64 8
%a9o=bitcast i8*%a9n to i8**
store i8*%a9m,i8**%a9o,align 8
%a9p=getelementptr inbounds i8,i8*%a9h,i64 16
%a9q=bitcast i8*%a9p to i32*
store i32 3,i32*%a9q,align 4
%a9r=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%a9h)
%a9s=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%a9r)
store i8*%a9s,i8**%d,align 8
%a9t=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%a9u=getelementptr inbounds i8,i8*%a9t,i64 16
%a9v=bitcast i8*%a9u to i8**
%a9w=load i8*,i8**%a9v,align 8
%a9x=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%a9y=bitcast i8*%a9w to i8**
call void@sml_write(i8*inreg%a9w,i8**inreg%a9y,i8*inreg%a9x)#0
%a9z=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 1,i32 inreg 8)
%a9A=getelementptr inbounds i8,i8*%a9z,i64 16
%a9B=bitcast i8*%a9A to i8*(i8*,i8*)**
%a9C=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%a9B,align 8
%a9D=bitcast i8*%a9z to i8**
%a9E=load i8*,i8**%a9D,align 8
store i8*%a9E,i8**%c,align 8
%a9F=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%a9G=call fastcc i8*@_SMLFN6IntInf10fromStringE(i8*inreg%a9F)
%a9H=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%a9I=call fastcc i8*%a9C(i8*inreg%a9H,i8*inreg%a9G)
store i8*%a9I,i8**%c,align 8
%a9J=call i8*@sml_alloc(i32 inreg 20)#0
%a9K=bitcast i8*%a9J to i32*
%a9L=getelementptr inbounds i8,i8*%a9J,i64 -4
%a9M=bitcast i8*%a9L to i32*
store i32 1342177296,i32*%a9M,align 4
%a9N=getelementptr inbounds i8,i8*%a9J,i64 4
%a9O=bitcast i8*%a9N to i32*
store i32 0,i32*%a9O,align 1
store i32 5,i32*%a9K,align 4
%a9P=load i8*,i8**%c,align 8
%a9Q=getelementptr inbounds i8,i8*%a9J,i64 8
%a9R=bitcast i8*%a9Q to i8**
store i8*%a9P,i8**%a9R,align 8
%a9S=getelementptr inbounds i8,i8*%a9J,i64 16
%a9T=bitcast i8*%a9S to i32*
store i32 2,i32*%a9T,align 4
ret i8*%a9J
a9U:
%a9V=icmp ugt i32%a85,57
br i1%a9V,label%bb5,label%a9W
a9W:
%a9X=icmp eq i32%a85,47
br i1%a9X,label%a9Y,label%baH
a9Y:
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
%a9Z=load i8*,i8**%f,align 8
%a90=getelementptr inbounds i8,i8*%a9Z,i64 16
%a91=bitcast i8*%a90 to i8***
%a92=load i8**,i8***%a91,align 8
%a93=load i8*,i8**%a92,align 8
store i8*%a93,i8**%d,align 8
%a94=call i8*@sml_alloc(i32 inreg 20)#0
%a95=getelementptr inbounds i8,i8*%a94,i64 -4
%a96=bitcast i8*%a95 to i32*
store i32 1342177296,i32*%a96,align 4
%a97=load i8*,i8**%c,align 8
%a98=bitcast i8*%a94 to i8**
store i8*%a97,i8**%a98,align 8
%a99=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%baa=getelementptr inbounds i8,i8*%a94,i64 8
%bab=bitcast i8*%baa to i8**
store i8*%a99,i8**%bab,align 8
%bac=getelementptr inbounds i8,i8*%a94,i64 16
%bad=bitcast i8*%bac to i32*
store i32 3,i32*%bad,align 4
%bae=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%a94)
%baf=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%bae)
store i8*%baf,i8**%d,align 8
%bag=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%bah=getelementptr inbounds i8,i8*%bag,i64 16
%bai=bitcast i8*%bah to i8**
%baj=load i8*,i8**%bai,align 8
%bak=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bal=bitcast i8*%baj to i8**
call void@sml_write(i8*inreg%baj,i8**inreg%bal,i8*inreg%bak)#0
%bam=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 1,i32 inreg 8)
%ban=getelementptr inbounds i8,i8*%bam,i64 16
%bao=bitcast i8*%ban to i8*(i8*,i8*)**
%bap=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%bao,align 8
%baq=bitcast i8*%bam to i8**
%bar=load i8*,i8**%baq,align 8
store i8*%bar,i8**%c,align 8
%bas=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bat=call fastcc i8*@_SMLFN6IntInf10fromStringE(i8*inreg%bas)
%bau=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bav=call fastcc i8*%bap(i8*inreg%bau,i8*inreg%bat)
store i8*%bav,i8**%c,align 8
%baw=call i8*@sml_alloc(i32 inreg 20)#0
%bax=bitcast i8*%baw to i32*
%bay=getelementptr inbounds i8,i8*%baw,i64 -4
%baz=bitcast i8*%bay to i32*
store i32 1342177296,i32*%baz,align 4
%baA=getelementptr inbounds i8,i8*%baw,i64 4
%baB=bitcast i8*%baA to i32*
store i32 0,i32*%baB,align 1
store i32 5,i32*%bax,align 4
%baC=load i8*,i8**%c,align 8
%baD=getelementptr inbounds i8,i8*%baw,i64 8
%baE=bitcast i8*%baD to i8**
store i8*%baC,i8**%baE,align 8
%baF=getelementptr inbounds i8,i8*%baw,i64 16
%baG=bitcast i8*%baF to i32*
store i32 2,i32*%baG,align 4
ret i8*%baw
baH:
%baI=icmp ugt i32%a85,46
br i1%baI,label%bbN,label%baJ
baJ:
store i8*null,i8**%j,align 8
%baK=icmp eq i32%a85,46
br i1%baK,label%baL,label%ba4
baL:
%baM=call i8*@sml_alloc(i32 inreg 28)#0
%baN=getelementptr inbounds i8,i8*%baM,i64 -4
%baO=bitcast i8*%baN to i32*
store i32 1342177304,i32*%baO,align 4
store i8*%baM,i8**%e,align 8
%baP=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%baQ=bitcast i8*%baM to i8**
store i8*%baP,i8**%baQ,align 8
%baR=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%baS=getelementptr inbounds i8,i8*%baM,i64 8
%baT=bitcast i8*%baS to i8**
store i8*%baR,i8**%baT,align 8
%baU=getelementptr inbounds i8,i8*%baM,i64 16
%baV=bitcast i8*%baU to i8**
store i8*null,i8**%baV,align 8
%baW=getelementptr inbounds i8,i8*%baM,i64 24
%baX=bitcast i8*%baW to i32*
store i32 7,i32*%baX,align 4
%baY=call i8*@sml_alloc(i32 inreg 20)#0
%baZ=getelementptr inbounds i8,i8*%baY,i64 -4
%ba0=bitcast i8*%baZ to i32*
store i32 1342177296,i32*%ba0,align 4
%ba1=load i8*,i8**%d,align 8
%ba2=bitcast i8*%baY to i8**
store i8*%ba1,i8**%ba2,align 8
%ba3=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
br label%be0
ba4:
store i8*null,i8**%g,align 8
store i8*null,i8**%i,align 8
store i8*null,i8**%k,align 8
%ba5=load i8*,i8**%f,align 8
%ba6=getelementptr inbounds i8,i8*%ba5,i64 16
%ba7=bitcast i8*%ba6 to i8***
%ba8=load i8**,i8***%ba7,align 8
%ba9=load i8*,i8**%ba8,align 8
store i8*%ba9,i8**%d,align 8
%bba=call i8*@sml_alloc(i32 inreg 20)#0
%bbb=getelementptr inbounds i8,i8*%bba,i64 -4
%bbc=bitcast i8*%bbb to i32*
store i32 1342177296,i32*%bbc,align 4
%bbd=load i8*,i8**%c,align 8
%bbe=bitcast i8*%bba to i8**
store i8*%bbd,i8**%bbe,align 8
%bbf=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bbg=getelementptr inbounds i8,i8*%bba,i64 8
%bbh=bitcast i8*%bbg to i8**
store i8*%bbf,i8**%bbh,align 8
%bbi=getelementptr inbounds i8,i8*%bba,i64 16
%bbj=bitcast i8*%bbi to i32*
store i32 3,i32*%bbj,align 4
%bbk=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%bba)
%bbl=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%bbk)
store i8*%bbl,i8**%d,align 8
%bbm=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%bbn=getelementptr inbounds i8,i8*%bbm,i64 16
%bbo=bitcast i8*%bbn to i8**
%bbp=load i8*,i8**%bbo,align 8
%bbq=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bbr=bitcast i8*%bbp to i8**
call void@sml_write(i8*inreg%bbp,i8**inreg%bbr,i8*inreg%bbq)#0
%bbs=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 1,i32 inreg 8)
%bbt=getelementptr inbounds i8,i8*%bbs,i64 16
%bbu=bitcast i8*%bbt to i8*(i8*,i8*)**
%bbv=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%bbu,align 8
%bbw=bitcast i8*%bbs to i8**
%bbx=load i8*,i8**%bbw,align 8
store i8*%bbx,i8**%c,align 8
%bby=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bbz=call fastcc i8*@_SMLFN6IntInf10fromStringE(i8*inreg%bby)
%bbA=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bbB=call fastcc i8*%bbv(i8*inreg%bbA,i8*inreg%bbz)
store i8*%bbB,i8**%c,align 8
%bbC=call i8*@sml_alloc(i32 inreg 20)#0
%bbD=bitcast i8*%bbC to i32*
%bbE=getelementptr inbounds i8,i8*%bbC,i64 -4
%bbF=bitcast i8*%bbE to i32*
store i32 1342177296,i32*%bbF,align 4
%bbG=getelementptr inbounds i8,i8*%bbC,i64 4
%bbH=bitcast i8*%bbG to i32*
store i32 0,i32*%bbH,align 1
store i32 5,i32*%bbD,align 4
%bbI=load i8*,i8**%c,align 8
%bbJ=getelementptr inbounds i8,i8*%bbC,i64 8
%bbK=bitcast i8*%bbJ to i8**
store i8*%bbI,i8**%bbK,align 8
%bbL=getelementptr inbounds i8,i8*%bbC,i64 16
%bbM=bitcast i8*%bbL to i32*
store i32 2,i32*%bbM,align 4
ret i8*%bbC
bbN:
%bbO=call i8*@sml_alloc(i32 inreg 28)#0
%bbP=getelementptr inbounds i8,i8*%bbO,i64 -4
%bbQ=bitcast i8*%bbP to i32*
store i32 1342177304,i32*%bbQ,align 4
store i8*%bbO,i8**%e,align 8
%bbR=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bbS=bitcast i8*%bbO to i8**
store i8*%bbR,i8**%bbS,align 8
%bbT=load i8*,i8**%g,align 8
%bbU=getelementptr inbounds i8,i8*%bbO,i64 8
%bbV=bitcast i8*%bbU to i8**
store i8*%bbT,i8**%bbV,align 8
%bbW=getelementptr inbounds i8,i8*%bbO,i64 16
%bbX=bitcast i8*%bbW to i8**
store i8*null,i8**%bbX,align 8
%bbY=getelementptr inbounds i8,i8*%bbO,i64 24
%bbZ=bitcast i8*%bbY to i32*
store i32 7,i32*%bbZ,align 4
%bb0=call i8*@sml_alloc(i32 inreg 20)#0
%bb1=getelementptr inbounds i8,i8*%bb0,i64 -4
%bb2=bitcast i8*%bb1 to i32*
store i32 1342177296,i32*%bb2,align 4
%bb3=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bb4=bitcast i8*%bb0 to i8**
store i8*%bb3,i8**%bb4,align 8
br label%a7i
bb5:
store i8*null,i8**%i,align 8
store i8*null,i8**%k,align 8
%bb6=icmp eq i32%a85,70
br i1%bb6,label%bb7,label%bcQ
bb7:
store i8*null,i8**%g,align 8
store i8*null,i8**%j,align 8
%bb8=load i8*,i8**%f,align 8
%bb9=getelementptr inbounds i8,i8*%bb8,i64 16
%bca=bitcast i8*%bb9 to i8***
%bcb=load i8**,i8***%bca,align 8
%bcc=load i8*,i8**%bcb,align 8
store i8*%bcc,i8**%d,align 8
%bcd=call i8*@sml_alloc(i32 inreg 20)#0
%bce=getelementptr inbounds i8,i8*%bcd,i64 -4
%bcf=bitcast i8*%bce to i32*
store i32 1342177296,i32*%bcf,align 4
%bcg=load i8*,i8**%c,align 8
%bch=bitcast i8*%bcd to i8**
store i8*%bcg,i8**%bch,align 8
%bci=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bcj=getelementptr inbounds i8,i8*%bcd,i64 8
%bck=bitcast i8*%bcj to i8**
store i8*%bci,i8**%bck,align 8
%bcl=getelementptr inbounds i8,i8*%bcd,i64 16
%bcm=bitcast i8*%bcl to i32*
store i32 3,i32*%bcm,align 4
%bcn=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%bcd)
%bco=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%bcn)
store i8*%bco,i8**%d,align 8
%bcp=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%bcq=getelementptr inbounds i8,i8*%bcp,i64 16
%bcr=bitcast i8*%bcq to i8**
%bcs=load i8*,i8**%bcr,align 8
%bct=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bcu=bitcast i8*%bcs to i8**
call void@sml_write(i8*inreg%bcs,i8**inreg%bcu,i8*inreg%bct)#0
%bcv=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 1,i32 inreg 8)
%bcw=getelementptr inbounds i8,i8*%bcv,i64 16
%bcx=bitcast i8*%bcw to i8*(i8*,i8*)**
%bcy=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%bcx,align 8
%bcz=bitcast i8*%bcv to i8**
%bcA=load i8*,i8**%bcz,align 8
store i8*%bcA,i8**%c,align 8
%bcB=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bcC=call fastcc i8*@_SMLFN6IntInf10fromStringE(i8*inreg%bcB)
%bcD=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bcE=call fastcc i8*%bcy(i8*inreg%bcD,i8*inreg%bcC)
store i8*%bcE,i8**%c,align 8
%bcF=call i8*@sml_alloc(i32 inreg 20)#0
%bcG=bitcast i8*%bcF to i32*
%bcH=getelementptr inbounds i8,i8*%bcF,i64 -4
%bcI=bitcast i8*%bcH to i32*
store i32 1342177296,i32*%bcI,align 4
%bcJ=getelementptr inbounds i8,i8*%bcF,i64 4
%bcK=bitcast i8*%bcJ to i32*
store i32 0,i32*%bcK,align 1
store i32 5,i32*%bcG,align 4
%bcL=load i8*,i8**%c,align 8
%bcM=getelementptr inbounds i8,i8*%bcF,i64 8
%bcN=bitcast i8*%bcM to i8**
store i8*%bcL,i8**%bcN,align 8
%bcO=getelementptr inbounds i8,i8*%bcF,i64 16
%bcP=bitcast i8*%bcO to i32*
store i32 2,i32*%bcP,align 4
ret i8*%bcF
bcQ:
%bcR=icmp ugt i32%a85,69
br i1%bcR,label%bdW,label%bcS
bcS:
%bcT=icmp eq i32%a85,69
br i1%bcT,label%bcU,label%bdd
bcU:
%bcV=call i8*@sml_alloc(i32 inreg 28)#0
%bcW=getelementptr inbounds i8,i8*%bcV,i64 -4
%bcX=bitcast i8*%bcW to i32*
store i32 1342177304,i32*%bcX,align 4
store i8*%bcV,i8**%e,align 8
%bcY=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bcZ=bitcast i8*%bcV to i8**
store i8*%bcY,i8**%bcZ,align 8
%bc0=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%bc1=getelementptr inbounds i8,i8*%bcV,i64 8
%bc2=bitcast i8*%bc1 to i8**
store i8*%bc0,i8**%bc2,align 8
%bc3=getelementptr inbounds i8,i8*%bcV,i64 16
%bc4=bitcast i8*%bc3 to i8**
store i8*null,i8**%bc4,align 8
%bc5=getelementptr inbounds i8,i8*%bcV,i64 24
%bc6=bitcast i8*%bc5 to i32*
store i32 7,i32*%bc6,align 4
%bc7=call i8*@sml_alloc(i32 inreg 20)#0
%bc8=getelementptr inbounds i8,i8*%bc7,i64 -4
%bc9=bitcast i8*%bc8 to i32*
store i32 1342177296,i32*%bc9,align 4
%bda=load i8*,i8**%d,align 8
%bdb=bitcast i8*%bc7 to i8**
store i8*%bda,i8**%bdb,align 8
%bdc=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
br label%btC
bdd:
store i8*null,i8**%g,align 8
store i8*null,i8**%j,align 8
%bde=load i8*,i8**%f,align 8
%bdf=getelementptr inbounds i8,i8*%bde,i64 16
%bdg=bitcast i8*%bdf to i8***
%bdh=load i8**,i8***%bdg,align 8
%bdi=load i8*,i8**%bdh,align 8
store i8*%bdi,i8**%d,align 8
%bdj=call i8*@sml_alloc(i32 inreg 20)#0
%bdk=getelementptr inbounds i8,i8*%bdj,i64 -4
%bdl=bitcast i8*%bdk to i32*
store i32 1342177296,i32*%bdl,align 4
%bdm=load i8*,i8**%c,align 8
%bdn=bitcast i8*%bdj to i8**
store i8*%bdm,i8**%bdn,align 8
%bdo=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bdp=getelementptr inbounds i8,i8*%bdj,i64 8
%bdq=bitcast i8*%bdp to i8**
store i8*%bdo,i8**%bdq,align 8
%bdr=getelementptr inbounds i8,i8*%bdj,i64 16
%bds=bitcast i8*%bdr to i32*
store i32 3,i32*%bds,align 4
%bdt=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%bdj)
%bdu=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%bdt)
store i8*%bdu,i8**%d,align 8
%bdv=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%bdw=getelementptr inbounds i8,i8*%bdv,i64 16
%bdx=bitcast i8*%bdw to i8**
%bdy=load i8*,i8**%bdx,align 8
%bdz=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bdA=bitcast i8*%bdy to i8**
call void@sml_write(i8*inreg%bdy,i8**inreg%bdA,i8*inreg%bdz)#0
%bdB=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 1,i32 inreg 8)
%bdC=getelementptr inbounds i8,i8*%bdB,i64 16
%bdD=bitcast i8*%bdC to i8*(i8*,i8*)**
%bdE=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%bdD,align 8
%bdF=bitcast i8*%bdB to i8**
%bdG=load i8*,i8**%bdF,align 8
store i8*%bdG,i8**%c,align 8
%bdH=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bdI=call fastcc i8*@_SMLFN6IntInf10fromStringE(i8*inreg%bdH)
%bdJ=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bdK=call fastcc i8*%bdE(i8*inreg%bdJ,i8*inreg%bdI)
store i8*%bdK,i8**%c,align 8
%bdL=call i8*@sml_alloc(i32 inreg 20)#0
%bdM=bitcast i8*%bdL to i32*
%bdN=getelementptr inbounds i8,i8*%bdL,i64 -4
%bdO=bitcast i8*%bdN to i32*
store i32 1342177296,i32*%bdO,align 4
%bdP=getelementptr inbounds i8,i8*%bdL,i64 4
%bdQ=bitcast i8*%bdP to i32*
store i32 0,i32*%bdQ,align 1
store i32 5,i32*%bdM,align 4
%bdR=load i8*,i8**%c,align 8
%bdS=getelementptr inbounds i8,i8*%bdL,i64 8
%bdT=bitcast i8*%bdS to i8**
store i8*%bdR,i8**%bdT,align 8
%bdU=getelementptr inbounds i8,i8*%bdL,i64 16
%bdV=bitcast i8*%bdU to i32*
store i32 2,i32*%bdV,align 4
ret i8*%bdL
bdW:
%bdX=icmp eq i32%a85,101
br i1%bdX,label%bdY,label%beh
bdY:
%bdZ=call i8*@sml_alloc(i32 inreg 28)#0
%bd0=getelementptr inbounds i8,i8*%bdZ,i64 -4
%bd1=bitcast i8*%bd0 to i32*
store i32 1342177304,i32*%bd1,align 4
store i8*%bdZ,i8**%e,align 8
%bd2=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bd3=bitcast i8*%bdZ to i8**
store i8*%bd2,i8**%bd3,align 8
%bd4=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%bd5=getelementptr inbounds i8,i8*%bdZ,i64 8
%bd6=bitcast i8*%bd5 to i8**
store i8*%bd4,i8**%bd6,align 8
%bd7=getelementptr inbounds i8,i8*%bdZ,i64 16
%bd8=bitcast i8*%bd7 to i8**
store i8*null,i8**%bd8,align 8
%bd9=getelementptr inbounds i8,i8*%bdZ,i64 24
%bea=bitcast i8*%bd9 to i32*
store i32 7,i32*%bea,align 4
%beb=call i8*@sml_alloc(i32 inreg 20)#0
%bec=getelementptr inbounds i8,i8*%beb,i64 -4
%bed=bitcast i8*%bec to i32*
store i32 1342177296,i32*%bed,align 4
%bee=load i8*,i8**%d,align 8
%bef=bitcast i8*%beb to i8**
store i8*%bee,i8**%bef,align 8
%beg=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
br label%btC
beh:
store i8*null,i8**%g,align 8
store i8*null,i8**%j,align 8
%bei=load i8*,i8**%f,align 8
%bej=getelementptr inbounds i8,i8*%bei,i64 16
%bek=bitcast i8*%bej to i8***
%bel=load i8**,i8***%bek,align 8
%bem=load i8*,i8**%bel,align 8
store i8*%bem,i8**%d,align 8
%ben=call i8*@sml_alloc(i32 inreg 20)#0
%beo=getelementptr inbounds i8,i8*%ben,i64 -4
%bep=bitcast i8*%beo to i32*
store i32 1342177296,i32*%bep,align 4
%beq=load i8*,i8**%c,align 8
%ber=bitcast i8*%ben to i8**
store i8*%beq,i8**%ber,align 8
%bes=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bet=getelementptr inbounds i8,i8*%ben,i64 8
%beu=bitcast i8*%bet to i8**
store i8*%bes,i8**%beu,align 8
%bev=getelementptr inbounds i8,i8*%ben,i64 16
%bew=bitcast i8*%bev to i32*
store i32 3,i32*%bew,align 4
%bex=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%ben)
%bey=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%bex)
store i8*%bey,i8**%d,align 8
%bez=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%beA=getelementptr inbounds i8,i8*%bez,i64 16
%beB=bitcast i8*%beA to i8**
%beC=load i8*,i8**%beB,align 8
%beD=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%beE=bitcast i8*%beC to i8**
call void@sml_write(i8*inreg%beC,i8**inreg%beE,i8*inreg%beD)#0
%beF=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 1,i32 inreg 8)
%beG=getelementptr inbounds i8,i8*%beF,i64 16
%beH=bitcast i8*%beG to i8*(i8*,i8*)**
%beI=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%beH,align 8
%beJ=bitcast i8*%beF to i8**
%beK=load i8*,i8**%beJ,align 8
store i8*%beK,i8**%c,align 8
%beL=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%beM=call fastcc i8*@_SMLFN6IntInf10fromStringE(i8*inreg%beL)
%beN=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%beO=call fastcc i8*%beI(i8*inreg%beN,i8*inreg%beM)
store i8*%beO,i8**%c,align 8
%beP=call i8*@sml_alloc(i32 inreg 20)#0
%beQ=bitcast i8*%beP to i32*
%beR=getelementptr inbounds i8,i8*%beP,i64 -4
%beS=bitcast i8*%beR to i32*
store i32 1342177296,i32*%beS,align 4
%beT=getelementptr inbounds i8,i8*%beP,i64 4
%beU=bitcast i8*%beT to i32*
store i32 0,i32*%beU,align 1
store i32 5,i32*%beQ,align 4
%beV=load i8*,i8**%c,align 8
%beW=getelementptr inbounds i8,i8*%beP,i64 8
%beX=bitcast i8*%beW to i8**
store i8*%beV,i8**%beX,align 8
%beY=getelementptr inbounds i8,i8*%beP,i64 16
%beZ=bitcast i8*%beY to i32*
store i32 2,i32*%beZ,align 4
ret i8*%beP
be0:
%be1=phi i8*[%baY,%baL],[%aVw,%aVj],[%Tj,%S6],[%KV,%KI],[%ED,%Eq]
%be2=phi i8*[%ba3,%baL],[%aVB,%aVj],[%To,%S6],[%K0,%KI],[%EI,%Eq]
%be3=phi i8*[%ba1,%baL],[%aVz,%aVj],[%Tm,%S6],[%KY,%KI],[%EG,%Eq]
%be4=getelementptr inbounds i8,i8*%be1,i64 8
%be5=bitcast i8*%be4 to i8**
store i8*%be2,i8**%be5,align 8
%be6=getelementptr inbounds i8,i8*%be1,i64 16
%be7=bitcast i8*%be6 to i32*
store i32 3,i32*%be7,align 4
store i8*%be3,i8**%c,align 8
store i8*%be2,i8**%d,align 8
%be8=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%be3)
%be9=icmp eq i8*%be8,null
br i1%be9,label%bfa,label%bfb
bfa:
store i8*null,i8**%c,align 8
br label%bfW
bfb:
%bfc=bitcast i8*%be8 to i8**
%bfd=load i8*,i8**%bfc,align 8
%bfe=bitcast i8*%bfd to i32*
%bff=load i32,i32*%bfe,align 4
%bfg=icmp eq i32%bff,10
br i1%bfg,label%bfj,label%bfh
bfh:
store i8*null,i8**%c,align 8
%bfi=load i8*,i8**%bfc,align 8
br label%bfY
bfj:
%bfk=getelementptr inbounds i8,i8*%bfd,i64 8
%bfl=bitcast i8*%bfk to i8**
%bfm=load i8*,i8**%bfl,align 8
store i8*%bfm,i8**%e,align 8
%bfn=load i8**,i8***%o,align 8
%bfo=load i8*,i8**%bfn,align 8
%bfp=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%bfo)
%bfq=getelementptr inbounds i8,i8*%bfp,i64 16
%bfr=bitcast i8*%bfq to i8*(i8*,i8*)**
%bfs=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%bfr,align 8
%bft=bitcast i8*%bfp to i8**
%bfu=load i8*,i8**%bft,align 8
store i8*%bfu,i8**%g,align 8
%bfv=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bfw=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%bfv)
%bfx=call i8*@sml_alloc(i32 inreg 4)#0
%bfy=bitcast i8*%bfx to i32*
%bfz=getelementptr inbounds i8,i8*%bfx,i64 -4
%bfA=bitcast i8*%bfz to i32*
store i32 4,i32*%bfA,align 4
store i32%bfw,i32*%bfy,align 4
%bfB=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%bfC=call fastcc i8*%bfs(i8*inreg%bfB,i8*inreg%bfx)
%bfD=call i8*@sml_alloc(i32 inreg 20)#0
%bfE=getelementptr inbounds i8,i8*%bfD,i64 -4
%bfF=bitcast i8*%bfE to i32*
store i32 1342177296,i32*%bfF,align 4
store i8*%bfD,i8**%c,align 8
%bfG=getelementptr inbounds i8,i8*%bfD,i64 4
%bfH=bitcast i8*%bfG to i32*
store i32 0,i32*%bfH,align 1
%bfI=bitcast i8*%bfD to i32*
store i32 10,i32*%bfI,align 4
%bfJ=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%bfK=getelementptr inbounds i8,i8*%bfD,i64 8
%bfL=bitcast i8*%bfK to i8**
store i8*%bfJ,i8**%bfL,align 8
%bfM=getelementptr inbounds i8,i8*%bfD,i64 16
%bfN=bitcast i8*%bfM to i32*
store i32 2,i32*%bfN,align 4
%bfO=call i8*@sml_alloc(i32 inreg 12)#0
%bfP=getelementptr inbounds i8,i8*%bfO,i64 -4
%bfQ=bitcast i8*%bfP to i32*
store i32 1342177288,i32*%bfQ,align 4
%bfR=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bfS=bitcast i8*%bfO to i8**
store i8*%bfR,i8**%bfS,align 8
%bfT=getelementptr inbounds i8,i8*%bfO,i64 8
%bfU=bitcast i8*%bfT to i32*
store i32 1,i32*%bfU,align 4
%bfV=icmp eq i8*%bfO,null
br i1%bfV,label%bfW,label%bfY
bfW:
store i8*null,i8**%f,align 8
store i8*null,i8**%i,align 8
store i8*null,i8**%k,align 8
%bfX=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
store i8*%bfX,i8**%c,align 8
br label%bBS
bfY:
%bfZ=phi i8*[%bfi,%bfh],[%bfR,%bfj]
%bf0=bitcast i8*%bfZ to i32*
%bf1=load i32,i32*%bf0,align 4
%bf2=getelementptr inbounds i8,i8*%bfZ,i64 8
%bf3=bitcast i8*%bf2 to i8**
%bf4=load i8*,i8**%bf3,align 8
store i8*%bf4,i8**%c,align 8
%bf5=icmp eq i32%bf1,48
br i1%bf5,label%bf6,label%bgc
bf6:
%bf7=call i8*@sml_alloc(i32 inreg 20)#0
%bf8=getelementptr inbounds i8,i8*%bf7,i64 -4
%bf9=bitcast i8*%bf8 to i32*
store i32 1342177296,i32*%bf9,align 4
%bga=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bgb=bitcast i8*%bf7 to i8**
store i8*%bga,i8**%bgb,align 8
br label%bgo
bgc:
%bgd=icmp ugt i32%bf1,47
br i1%bgd,label%bgg,label%bge
bge:
store i8*null,i8**%f,align 8
store i8*null,i8**%i,align 8
store i8*null,i8**%k,align 8
%bgf=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
store i8*%bgf,i8**%c,align 8
br label%bBS
bgg:
%bgh=icmp ugt i32%bf1,57
br i1%bgh,label%bgr,label%bgi
bgi:
%bgj=call i8*@sml_alloc(i32 inreg 20)#0
%bgk=getelementptr inbounds i8,i8*%bgj,i64 -4
%bgl=bitcast i8*%bgk to i32*
store i32 1342177296,i32*%bgl,align 4
%bgm=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bgn=bitcast i8*%bgj to i8**
store i8*%bgm,i8**%bgn,align 8
br label%bgo
bgo:
%bgp=phi i8*[%bgj,%bgi],[%bf7,%bf6]
%bgq=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
br label%bgt
bgr:
store i8*null,i8**%f,align 8
store i8*null,i8**%i,align 8
store i8*null,i8**%k,align 8
%bgs=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
store i8*%bgs,i8**%c,align 8
br label%bBS
bgt:
%bgu=phi i8*[%bgp,%bgo],[%bi3,%bi2]
%bgv=phi i8*[%bgq,%bgo],[%bi4,%bi2]
%bgw=getelementptr inbounds i8,i8*%bgu,i64 8
%bgx=bitcast i8*%bgw to i8**
store i8*%bgv,i8**%bgx,align 8
%bgy=getelementptr inbounds i8,i8*%bgu,i64 16
%bgz=bitcast i8*%bgy to i32*
store i32 3,i32*%bgz,align 4
store i8*%bgu,i8**%c,align 8
%bgA=load atomic i32,i32*@sml_check_flag unordered,align 4
%bgB=icmp eq i32%bgA,0
%bgC=bitcast i8*%bgu to i8**
br i1%bgB,label%bgF,label%bgD
bgD:
call void@sml_check(i32 inreg%bgA)
%bgE=load i8**,i8***%p,align 8
br label%bgF
bgF:
%bgG=phi i8**[%bgE,%bgD],[%bgC,%bgt]
%bgH=load i8*,i8**%bgG,align 8
store i8*%bgH,i8**%c,align 8
%bgI=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%bgH)
%bgJ=icmp eq i8*%bgI,null
br i1%bgJ,label%bhw,label%bgK
bgK:
%bgL=bitcast i8*%bgI to i8**
%bgM=load i8*,i8**%bgL,align 8
%bgN=bitcast i8*%bgM to i32*
%bgO=load i32,i32*%bgN,align 4
%bgP=icmp eq i32%bgO,10
br i1%bgP,label%bgQ,label%big
bgQ:
%bgR=getelementptr inbounds i8,i8*%bgM,i64 8
%bgS=bitcast i8*%bgR to i8**
%bgT=load i8*,i8**%bgS,align 8
store i8*%bgT,i8**%d,align 8
%bgU=load i8**,i8***%o,align 8
%bgV=load i8*,i8**%bgU,align 8
%bgW=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%bgV)
%bgX=getelementptr inbounds i8,i8*%bgW,i64 16
%bgY=bitcast i8*%bgX to i8*(i8*,i8*)**
%bgZ=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%bgY,align 8
%bg0=bitcast i8*%bgW to i8**
%bg1=load i8*,i8**%bg0,align 8
store i8*%bg1,i8**%e,align 8
%bg2=load i8*,i8**%c,align 8
%bg3=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%bg2)
%bg4=call i8*@sml_alloc(i32 inreg 4)#0
%bg5=bitcast i8*%bg4 to i32*
%bg6=getelementptr inbounds i8,i8*%bg4,i64 -4
%bg7=bitcast i8*%bg6 to i32*
store i32 4,i32*%bg7,align 4
store i32%bg3,i32*%bg5,align 4
%bg8=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%bg9=call fastcc i8*%bgZ(i8*inreg%bg8,i8*inreg%bg4)
%bha=call i8*@sml_alloc(i32 inreg 20)#0
%bhb=getelementptr inbounds i8,i8*%bha,i64 -4
%bhc=bitcast i8*%bhb to i32*
store i32 1342177296,i32*%bhc,align 4
store i8*%bha,i8**%e,align 8
%bhd=getelementptr inbounds i8,i8*%bha,i64 4
%bhe=bitcast i8*%bhd to i32*
store i32 0,i32*%bhe,align 1
%bhf=bitcast i8*%bha to i32*
store i32 10,i32*%bhf,align 4
%bhg=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bhh=getelementptr inbounds i8,i8*%bha,i64 8
%bhi=bitcast i8*%bhh to i8**
store i8*%bhg,i8**%bhi,align 8
%bhj=getelementptr inbounds i8,i8*%bha,i64 16
%bhk=bitcast i8*%bhj to i32*
store i32 2,i32*%bhk,align 4
%bhl=call i8*@sml_alloc(i32 inreg 12)#0
%bhm=getelementptr inbounds i8,i8*%bhl,i64 -4
%bhn=bitcast i8*%bhm to i32*
store i32 1342177288,i32*%bhn,align 4
%bho=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%bhp=bitcast i8*%bhl to i8**
store i8*%bho,i8**%bhp,align 8
%bhq=getelementptr inbounds i8,i8*%bhl,i64 8
%bhr=bitcast i8*%bhq to i32*
store i32 1,i32*%bhr,align 4
%bhs=icmp eq i8*%bhl,null
br i1%bhs,label%bhw,label%bht
bht:
%bhu=bitcast i8*%bho to i32*
%bhv=load i32,i32*%bhu,align 4
br label%big
bhw:
store i8*null,i8**%i,align 8
store i8*null,i8**%k,align 8
%bhx=load i8*,i8**%f,align 8
%bhy=getelementptr inbounds i8,i8*%bhx,i64 16
%bhz=bitcast i8*%bhy to i8***
%bhA=load i8**,i8***%bhz,align 8
%bhB=load i8*,i8**%bhA,align 8
store i8*%bhB,i8**%d,align 8
%bhC=call i8*@sml_alloc(i32 inreg 20)#0
%bhD=getelementptr inbounds i8,i8*%bhC,i64 -4
%bhE=bitcast i8*%bhD to i32*
store i32 1342177296,i32*%bhE,align 4
%bhF=load i8*,i8**%c,align 8
%bhG=bitcast i8*%bhC to i8**
store i8*%bhF,i8**%bhG,align 8
%bhH=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bhI=getelementptr inbounds i8,i8*%bhC,i64 8
%bhJ=bitcast i8*%bhI to i8**
store i8*%bhH,i8**%bhJ,align 8
%bhK=getelementptr inbounds i8,i8*%bhC,i64 16
%bhL=bitcast i8*%bhK to i32*
store i32 3,i32*%bhL,align 4
%bhM=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%bhC)
%bhN=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%bhM)
store i8*%bhN,i8**%d,align 8
%bhO=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%bhP=getelementptr inbounds i8,i8*%bhO,i64 16
%bhQ=bitcast i8*%bhP to i8**
%bhR=load i8*,i8**%bhQ,align 8
%bhS=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bhT=bitcast i8*%bhR to i8**
call void@sml_write(i8*inreg%bhR,i8**inreg%bhT,i8*inreg%bhS)#0
%bhU=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 0,i32 inreg 8)
%bhV=getelementptr inbounds i8,i8*%bhU,i64 16
%bhW=bitcast i8*%bhV to i8*(i8*,i8*)**
%bhX=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%bhW,align 8
%bhY=bitcast i8*%bhU to i8**
%bhZ=load i8*,i8**%bhY,align 8
store i8*%bhZ,i8**%c,align 8
%bh0=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bh1=call fastcc i8*@_SMLFN6Real6410fromStringE(i8*inreg%bh0)
%bh2=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bh3=call fastcc i8*%bhX(i8*inreg%bh2,i8*inreg%bh1)
%bh4=bitcast i8*%bh3 to double*
%bh5=load double,double*%bh4,align 8
%bh6=call i8*@sml_alloc(i32 inreg 20)#0
%bh7=bitcast i8*%bh6 to i32*
%bh8=getelementptr inbounds i8,i8*%bh6,i64 -4
%bh9=bitcast i8*%bh8 to i32*
store i32 1342177296,i32*%bh9,align 4
%bia=getelementptr inbounds i8,i8*%bh6,i64 4
%bib=bitcast i8*%bia to i32*
store i32 0,i32*%bib,align 1
store i32 4,i32*%bh7,align 4
%bic=getelementptr inbounds i8,i8*%bh6,i64 8
%bid=bitcast i8*%bic to double*
store double%bh5,double*%bid,align 8
%bie=getelementptr inbounds i8,i8*%bh6,i64 16
%bif=bitcast i8*%bie to i32*
store i32 0,i32*%bif,align 4
ret i8*%bh6
big:
%bih=phi i32[%bhv,%bht],[%bgO,%bgK]
%bii=phi i8*[%bho,%bht],[%bgM,%bgK]
%bij=getelementptr inbounds i8,i8*%bii,i64 8
%bik=bitcast i8*%bij to i8**
%bil=load i8*,i8**%bik,align 8
store i8*%bil,i8**%d,align 8
%bim=icmp eq i32%bih,69
br i1%bim,label%bin,label%biG
bin:
%bio=call i8*@sml_alloc(i32 inreg 28)#0
%bip=getelementptr inbounds i8,i8*%bio,i64 -4
%biq=bitcast i8*%bip to i32*
store i32 1342177304,i32*%biq,align 4
store i8*%bio,i8**%e,align 8
%bir=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bis=bitcast i8*%bio to i8**
store i8*%bir,i8**%bis,align 8
%bit=load i8*,i8**%i,align 8
store i8*null,i8**%i,align 8
%biu=getelementptr inbounds i8,i8*%bio,i64 8
%biv=bitcast i8*%biu to i8**
store i8*%bit,i8**%biv,align 8
%biw=getelementptr inbounds i8,i8*%bio,i64 16
%bix=bitcast i8*%biw to i8**
store i8*null,i8**%bix,align 8
%biy=getelementptr inbounds i8,i8*%bio,i64 24
%biz=bitcast i8*%biy to i32*
store i32 7,i32*%biz,align 4
%biA=call i8*@sml_alloc(i32 inreg 20)#0
%biB=getelementptr inbounds i8,i8*%biA,i64 -4
%biC=bitcast i8*%biB to i32*
store i32 1342177296,i32*%biC,align 4
%biD=load i8*,i8**%d,align 8
%biE=bitcast i8*%biA to i8**
store i8*%biD,i8**%biE,align 8
%biF=load i8*,i8**%e,align 8
br label%bl0
biG:
%biH=icmp ugt i32%bih,68
br i1%biH,label%bkV,label%biI
biI:
%biJ=icmp eq i32%bih,48
br i1%biJ,label%biK,label%bi5
biK:
%biL=call i8*@sml_alloc(i32 inreg 28)#0
%biM=getelementptr inbounds i8,i8*%biL,i64 -4
%biN=bitcast i8*%biM to i32*
store i32 1342177304,i32*%biN,align 4
store i8*%biL,i8**%e,align 8
%biO=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%biP=bitcast i8*%biL to i8**
store i8*%biO,i8**%biP,align 8
%biQ=load i8*,i8**%i,align 8
%biR=getelementptr inbounds i8,i8*%biL,i64 8
%biS=bitcast i8*%biR to i8**
store i8*%biQ,i8**%biS,align 8
%biT=getelementptr inbounds i8,i8*%biL,i64 16
%biU=bitcast i8*%biT to i8**
store i8*null,i8**%biU,align 8
%biV=getelementptr inbounds i8,i8*%biL,i64 24
%biW=bitcast i8*%biV to i32*
store i32 7,i32*%biW,align 4
%biX=call i8*@sml_alloc(i32 inreg 20)#0
%biY=getelementptr inbounds i8,i8*%biX,i64 -4
%biZ=bitcast i8*%biY to i32*
store i32 1342177296,i32*%biZ,align 4
%bi0=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bi1=bitcast i8*%biX to i8**
store i8*%bi0,i8**%bi1,align 8
br label%bi2
bi2:
%bi3=phi i8*[%biX,%biK],[%bj6,%bjT]
%bi4=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
br label%bgt
bi5:
%bi6=icmp ugt i32%bih,47
br i1%bi6,label%bjR,label%bi7
bi7:
store i8*null,i8**%i,align 8
store i8*null,i8**%k,align 8
%bi8=load i8*,i8**%f,align 8
%bi9=getelementptr inbounds i8,i8*%bi8,i64 16
%bja=bitcast i8*%bi9 to i8***
%bjb=load i8**,i8***%bja,align 8
%bjc=load i8*,i8**%bjb,align 8
store i8*%bjc,i8**%d,align 8
%bjd=call i8*@sml_alloc(i32 inreg 20)#0
%bje=getelementptr inbounds i8,i8*%bjd,i64 -4
%bjf=bitcast i8*%bje to i32*
store i32 1342177296,i32*%bjf,align 4
%bjg=load i8*,i8**%c,align 8
%bjh=bitcast i8*%bjd to i8**
store i8*%bjg,i8**%bjh,align 8
%bji=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bjj=getelementptr inbounds i8,i8*%bjd,i64 8
%bjk=bitcast i8*%bjj to i8**
store i8*%bji,i8**%bjk,align 8
%bjl=getelementptr inbounds i8,i8*%bjd,i64 16
%bjm=bitcast i8*%bjl to i32*
store i32 3,i32*%bjm,align 4
%bjn=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%bjd)
%bjo=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%bjn)
store i8*%bjo,i8**%d,align 8
%bjp=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%bjq=getelementptr inbounds i8,i8*%bjp,i64 16
%bjr=bitcast i8*%bjq to i8**
%bjs=load i8*,i8**%bjr,align 8
%bjt=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bju=bitcast i8*%bjs to i8**
call void@sml_write(i8*inreg%bjs,i8**inreg%bju,i8*inreg%bjt)#0
%bjv=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 0,i32 inreg 8)
%bjw=getelementptr inbounds i8,i8*%bjv,i64 16
%bjx=bitcast i8*%bjw to i8*(i8*,i8*)**
%bjy=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%bjx,align 8
%bjz=bitcast i8*%bjv to i8**
%bjA=load i8*,i8**%bjz,align 8
store i8*%bjA,i8**%c,align 8
%bjB=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bjC=call fastcc i8*@_SMLFN6Real6410fromStringE(i8*inreg%bjB)
%bjD=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bjE=call fastcc i8*%bjy(i8*inreg%bjD,i8*inreg%bjC)
%bjF=bitcast i8*%bjE to double*
%bjG=load double,double*%bjF,align 8
%bjH=call i8*@sml_alloc(i32 inreg 20)#0
%bjI=bitcast i8*%bjH to i32*
%bjJ=getelementptr inbounds i8,i8*%bjH,i64 -4
%bjK=bitcast i8*%bjJ to i32*
store i32 1342177296,i32*%bjK,align 4
%bjL=getelementptr inbounds i8,i8*%bjH,i64 4
%bjM=bitcast i8*%bjL to i32*
store i32 0,i32*%bjM,align 1
store i32 4,i32*%bjI,align 4
%bjN=getelementptr inbounds i8,i8*%bjH,i64 8
%bjO=bitcast i8*%bjN to double*
store double%bjG,double*%bjO,align 8
%bjP=getelementptr inbounds i8,i8*%bjH,i64 16
%bjQ=bitcast i8*%bjP to i32*
store i32 0,i32*%bjQ,align 4
ret i8*%bjH
bjR:
%bjS=icmp ugt i32%bih,57
br i1%bjS,label%bkb,label%bjT
bjT:
%bjU=call i8*@sml_alloc(i32 inreg 28)#0
%bjV=getelementptr inbounds i8,i8*%bjU,i64 -4
%bjW=bitcast i8*%bjV to i32*
store i32 1342177304,i32*%bjW,align 4
store i8*%bjU,i8**%e,align 8
%bjX=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bjY=bitcast i8*%bjU to i8**
store i8*%bjX,i8**%bjY,align 8
%bjZ=load i8*,i8**%i,align 8
%bj0=getelementptr inbounds i8,i8*%bjU,i64 8
%bj1=bitcast i8*%bj0 to i8**
store i8*%bjZ,i8**%bj1,align 8
%bj2=getelementptr inbounds i8,i8*%bjU,i64 16
%bj3=bitcast i8*%bj2 to i8**
store i8*null,i8**%bj3,align 8
%bj4=getelementptr inbounds i8,i8*%bjU,i64 24
%bj5=bitcast i8*%bj4 to i32*
store i32 7,i32*%bj5,align 4
%bj6=call i8*@sml_alloc(i32 inreg 20)#0
%bj7=getelementptr inbounds i8,i8*%bj6,i64 -4
%bj8=bitcast i8*%bj7 to i32*
store i32 1342177296,i32*%bj8,align 4
%bj9=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bka=bitcast i8*%bj6 to i8**
store i8*%bj9,i8**%bka,align 8
br label%bi2
bkb:
store i8*null,i8**%i,align 8
store i8*null,i8**%k,align 8
%bkc=load i8*,i8**%f,align 8
%bkd=getelementptr inbounds i8,i8*%bkc,i64 16
%bke=bitcast i8*%bkd to i8***
%bkf=load i8**,i8***%bke,align 8
%bkg=load i8*,i8**%bkf,align 8
store i8*%bkg,i8**%d,align 8
%bkh=call i8*@sml_alloc(i32 inreg 20)#0
%bki=getelementptr inbounds i8,i8*%bkh,i64 -4
%bkj=bitcast i8*%bki to i32*
store i32 1342177296,i32*%bkj,align 4
%bkk=load i8*,i8**%c,align 8
%bkl=bitcast i8*%bkh to i8**
store i8*%bkk,i8**%bkl,align 8
%bkm=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bkn=getelementptr inbounds i8,i8*%bkh,i64 8
%bko=bitcast i8*%bkn to i8**
store i8*%bkm,i8**%bko,align 8
%bkp=getelementptr inbounds i8,i8*%bkh,i64 16
%bkq=bitcast i8*%bkp to i32*
store i32 3,i32*%bkq,align 4
%bkr=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%bkh)
%bks=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%bkr)
store i8*%bks,i8**%d,align 8
%bkt=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%bku=getelementptr inbounds i8,i8*%bkt,i64 16
%bkv=bitcast i8*%bku to i8**
%bkw=load i8*,i8**%bkv,align 8
%bkx=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bky=bitcast i8*%bkw to i8**
call void@sml_write(i8*inreg%bkw,i8**inreg%bky,i8*inreg%bkx)#0
%bkz=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 0,i32 inreg 8)
%bkA=getelementptr inbounds i8,i8*%bkz,i64 16
%bkB=bitcast i8*%bkA to i8*(i8*,i8*)**
%bkC=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%bkB,align 8
%bkD=bitcast i8*%bkz to i8**
%bkE=load i8*,i8**%bkD,align 8
store i8*%bkE,i8**%c,align 8
%bkF=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bkG=call fastcc i8*@_SMLFN6Real6410fromStringE(i8*inreg%bkF)
%bkH=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bkI=call fastcc i8*%bkC(i8*inreg%bkH,i8*inreg%bkG)
%bkJ=bitcast i8*%bkI to double*
%bkK=load double,double*%bkJ,align 8
%bkL=call i8*@sml_alloc(i32 inreg 20)#0
%bkM=bitcast i8*%bkL to i32*
%bkN=getelementptr inbounds i8,i8*%bkL,i64 -4
%bkO=bitcast i8*%bkN to i32*
store i32 1342177296,i32*%bkO,align 4
%bkP=getelementptr inbounds i8,i8*%bkL,i64 4
%bkQ=bitcast i8*%bkP to i32*
store i32 0,i32*%bkQ,align 1
store i32 4,i32*%bkM,align 4
%bkR=getelementptr inbounds i8,i8*%bkL,i64 8
%bkS=bitcast i8*%bkR to double*
store double%bkK,double*%bkS,align 8
%bkT=getelementptr inbounds i8,i8*%bkL,i64 16
%bkU=bitcast i8*%bkT to i32*
store i32 0,i32*%bkU,align 4
ret i8*%bkL
bkV:
%bkW=icmp eq i32%bih,101
br i1%bkW,label%bkX,label%blg
bkX:
%bkY=call i8*@sml_alloc(i32 inreg 28)#0
%bkZ=getelementptr inbounds i8,i8*%bkY,i64 -4
%bk0=bitcast i8*%bkZ to i32*
store i32 1342177304,i32*%bk0,align 4
store i8*%bkY,i8**%e,align 8
%bk1=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bk2=bitcast i8*%bkY to i8**
store i8*%bk1,i8**%bk2,align 8
%bk3=load i8*,i8**%i,align 8
store i8*null,i8**%i,align 8
%bk4=getelementptr inbounds i8,i8*%bkY,i64 8
%bk5=bitcast i8*%bk4 to i8**
store i8*%bk3,i8**%bk5,align 8
%bk6=getelementptr inbounds i8,i8*%bkY,i64 16
%bk7=bitcast i8*%bk6 to i8**
store i8*null,i8**%bk7,align 8
%bk8=getelementptr inbounds i8,i8*%bkY,i64 24
%bk9=bitcast i8*%bk8 to i32*
store i32 7,i32*%bk9,align 4
%bla=call i8*@sml_alloc(i32 inreg 20)#0
%blb=getelementptr inbounds i8,i8*%bla,i64 -4
%blc=bitcast i8*%blb to i32*
store i32 1342177296,i32*%blc,align 4
%bld=load i8*,i8**%d,align 8
%ble=bitcast i8*%bla to i8**
store i8*%bld,i8**%ble,align 8
%blf=load i8*,i8**%e,align 8
br label%bl0
blg:
store i8*null,i8**%i,align 8
store i8*null,i8**%k,align 8
%blh=load i8*,i8**%f,align 8
%bli=getelementptr inbounds i8,i8*%blh,i64 16
%blj=bitcast i8*%bli to i8***
%blk=load i8**,i8***%blj,align 8
%bll=load i8*,i8**%blk,align 8
store i8*%bll,i8**%d,align 8
%blm=call i8*@sml_alloc(i32 inreg 20)#0
%bln=getelementptr inbounds i8,i8*%blm,i64 -4
%blo=bitcast i8*%bln to i32*
store i32 1342177296,i32*%blo,align 4
%blp=load i8*,i8**%c,align 8
%blq=bitcast i8*%blm to i8**
store i8*%blp,i8**%blq,align 8
%blr=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bls=getelementptr inbounds i8,i8*%blm,i64 8
%blt=bitcast i8*%bls to i8**
store i8*%blr,i8**%blt,align 8
%blu=getelementptr inbounds i8,i8*%blm,i64 16
%blv=bitcast i8*%blu to i32*
store i32 3,i32*%blv,align 4
%blw=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%blm)
%blx=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%blw)
store i8*%blx,i8**%d,align 8
%bly=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%blz=getelementptr inbounds i8,i8*%bly,i64 16
%blA=bitcast i8*%blz to i8**
%blB=load i8*,i8**%blA,align 8
%blC=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%blD=bitcast i8*%blB to i8**
call void@sml_write(i8*inreg%blB,i8**inreg%blD,i8*inreg%blC)#0
%blE=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 0,i32 inreg 8)
%blF=getelementptr inbounds i8,i8*%blE,i64 16
%blG=bitcast i8*%blF to i8*(i8*,i8*)**
%blH=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%blG,align 8
%blI=bitcast i8*%blE to i8**
%blJ=load i8*,i8**%blI,align 8
store i8*%blJ,i8**%c,align 8
%blK=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%blL=call fastcc i8*@_SMLFN6Real6410fromStringE(i8*inreg%blK)
%blM=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%blN=call fastcc i8*%blH(i8*inreg%blM,i8*inreg%blL)
%blO=bitcast i8*%blN to double*
%blP=load double,double*%blO,align 8
%blQ=call i8*@sml_alloc(i32 inreg 20)#0
%blR=bitcast i8*%blQ to i32*
%blS=getelementptr inbounds i8,i8*%blQ,i64 -4
%blT=bitcast i8*%blS to i32*
store i32 1342177296,i32*%blT,align 4
%blU=getelementptr inbounds i8,i8*%blQ,i64 4
%blV=bitcast i8*%blU to i32*
store i32 0,i32*%blV,align 1
store i32 4,i32*%blR,align 4
%blW=getelementptr inbounds i8,i8*%blQ,i64 8
%blX=bitcast i8*%blW to double*
store double%blP,double*%blX,align 8
%blY=getelementptr inbounds i8,i8*%blQ,i64 16
%blZ=bitcast i8*%blY to i32*
store i32 0,i32*%blZ,align 4
ret i8*%blQ
bl0:
%bl1=phi i8*[%bla,%bkX],[%biA,%bin]
%bl2=phi i8*[%blf,%bkX],[%biF,%bin]
%bl3=phi i8*[%bld,%bkX],[%biD,%bin]
store i8*null,i8**%e,align 8
%bl4=getelementptr inbounds i8,i8*%bl1,i64 8
%bl5=bitcast i8*%bl4 to i8**
store i8*%bl2,i8**%bl5,align 8
%bl6=getelementptr inbounds i8,i8*%bl1,i64 16
%bl7=bitcast i8*%bl6 to i32*
store i32 3,i32*%bl7,align 4
store i8*%bl3,i8**%c,align 8
store i8*%bl2,i8**%d,align 8
%bl8=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%bl3)
%bl9=icmp eq i8*%bl8,null
br i1%bl9,label%bma,label%bmb
bma:
store i8*null,i8**%c,align 8
br label%bmW
bmb:
%bmc=bitcast i8*%bl8 to i8**
%bmd=load i8*,i8**%bmc,align 8
%bme=bitcast i8*%bmd to i32*
%bmf=load i32,i32*%bme,align 4
%bmg=icmp eq i32%bmf,10
br i1%bmg,label%bmj,label%bmh
bmh:
store i8*null,i8**%c,align 8
%bmi=load i8*,i8**%bmc,align 8
br label%bmY
bmj:
%bmk=getelementptr inbounds i8,i8*%bmd,i64 8
%bml=bitcast i8*%bmk to i8**
%bmm=load i8*,i8**%bml,align 8
store i8*%bmm,i8**%e,align 8
%bmn=load i8**,i8***%o,align 8
%bmo=load i8*,i8**%bmn,align 8
%bmp=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%bmo)
%bmq=getelementptr inbounds i8,i8*%bmp,i64 16
%bmr=bitcast i8*%bmq to i8*(i8*,i8*)**
%bms=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%bmr,align 8
%bmt=bitcast i8*%bmp to i8**
%bmu=load i8*,i8**%bmt,align 8
store i8*%bmu,i8**%g,align 8
%bmv=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bmw=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%bmv)
%bmx=call i8*@sml_alloc(i32 inreg 4)#0
%bmy=bitcast i8*%bmx to i32*
%bmz=getelementptr inbounds i8,i8*%bmx,i64 -4
%bmA=bitcast i8*%bmz to i32*
store i32 4,i32*%bmA,align 4
store i32%bmw,i32*%bmy,align 4
%bmB=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%bmC=call fastcc i8*%bms(i8*inreg%bmB,i8*inreg%bmx)
%bmD=call i8*@sml_alloc(i32 inreg 20)#0
%bmE=getelementptr inbounds i8,i8*%bmD,i64 -4
%bmF=bitcast i8*%bmE to i32*
store i32 1342177296,i32*%bmF,align 4
store i8*%bmD,i8**%c,align 8
%bmG=getelementptr inbounds i8,i8*%bmD,i64 4
%bmH=bitcast i8*%bmG to i32*
store i32 0,i32*%bmH,align 1
%bmI=bitcast i8*%bmD to i32*
store i32 10,i32*%bmI,align 4
%bmJ=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%bmK=getelementptr inbounds i8,i8*%bmD,i64 8
%bmL=bitcast i8*%bmK to i8**
store i8*%bmJ,i8**%bmL,align 8
%bmM=getelementptr inbounds i8,i8*%bmD,i64 16
%bmN=bitcast i8*%bmM to i32*
store i32 2,i32*%bmN,align 4
%bmO=call i8*@sml_alloc(i32 inreg 12)#0
%bmP=getelementptr inbounds i8,i8*%bmO,i64 -4
%bmQ=bitcast i8*%bmP to i32*
store i32 1342177288,i32*%bmQ,align 4
%bmR=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bmS=bitcast i8*%bmO to i8**
store i8*%bmR,i8**%bmS,align 8
%bmT=getelementptr inbounds i8,i8*%bmO,i64 8
%bmU=bitcast i8*%bmT to i32*
store i32 1,i32*%bmU,align 4
%bmV=icmp eq i8*%bmO,null
br i1%bmV,label%bmW,label%bmY
bmW:
store i8*null,i8**%f,align 8
store i8*null,i8**%k,align 8
%bmX=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
store i8*%bmX,i8**%c,align 8
br label%bBS
bmY:
%bmZ=phi i8*[%bmi,%bmh],[%bmR,%bmj]
%bm0=bitcast i8*%bmZ to i32*
%bm1=load i32,i32*%bm0,align 4
%bm2=getelementptr inbounds i8,i8*%bmZ,i64 8
%bm3=bitcast i8*%bm2 to i8**
%bm4=load i8*,i8**%bm3,align 8
store i8*%bm4,i8**%c,align 8
%bm5=icmp eq i32%bm1,45
br i1%bm5,label%bm6,label%bnd
bm6:
%bm7=call i8*@sml_alloc(i32 inreg 20)#0
%bm8=getelementptr inbounds i8,i8*%bm7,i64 -4
%bm9=bitcast i8*%bm8 to i32*
store i32 1342177296,i32*%bm9,align 4
%bna=load i8*,i8**%c,align 8
%bnb=bitcast i8*%bm7 to i8**
store i8*%bna,i8**%bnb,align 8
%bnc=load i8*,i8**%d,align 8
br label%bnW
bnd:
%bne=icmp ugt i32%bm1,44
br i1%bne,label%bnq,label%bnf
bnf:
%bng=icmp eq i32%bm1,43
br i1%bng,label%bnh,label%bno
bnh:
%bni=call i8*@sml_alloc(i32 inreg 20)#0
%bnj=getelementptr inbounds i8,i8*%bni,i64 -4
%bnk=bitcast i8*%bnj to i32*
store i32 1342177296,i32*%bnk,align 4
%bnl=load i8*,i8**%c,align 8
%bnm=bitcast i8*%bni to i8**
store i8*%bnl,i8**%bnm,align 8
%bnn=load i8*,i8**%d,align 8
br label%bnW
bno:
store i8*null,i8**%f,align 8
store i8*null,i8**%k,align 8
%bnp=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
store i8*%bnp,i8**%c,align 8
br label%bBS
bnq:
%bnr=icmp eq i32%bm1,48
br i1%bnr,label%bns,label%bnD
bns:
%bnt=call i8*@sml_alloc(i32 inreg 20)#0
%bnu=getelementptr inbounds i8,i8*%bnt,i64 -4
%bnv=bitcast i8*%bnu to i32*
store i32 1342177296,i32*%bnv,align 4
%bnw=load i8*,i8**%c,align 8
%bnx=bitcast i8*%bnt to i8**
store i8*%bnw,i8**%bnx,align 8
%bny=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bnz=getelementptr inbounds i8,i8*%bnt,i64 8
%bnA=bitcast i8*%bnz to i8**
store i8*%bny,i8**%bnA,align 8
%bnB=getelementptr inbounds i8,i8*%bnt,i64 16
%bnC=bitcast i8*%bnB to i32*
store i32 3,i32*%bnC,align 4
store i8*%bnt,i8**%c,align 8
br label%bpu
bnD:
%bnE=icmp ugt i32%bm1,47
br i1%bnE,label%bnH,label%bnF
bnF:
store i8*null,i8**%f,align 8
store i8*null,i8**%k,align 8
%bnG=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
store i8*%bnG,i8**%c,align 8
br label%bBS
bnH:
%bnI=icmp ugt i32%bm1,57
br i1%bnI,label%bnU,label%bnJ
bnJ:
%bnK=call i8*@sml_alloc(i32 inreg 20)#0
%bnL=getelementptr inbounds i8,i8*%bnK,i64 -4
%bnM=bitcast i8*%bnL to i32*
store i32 1342177296,i32*%bnM,align 4
%bnN=load i8*,i8**%c,align 8
%bnO=bitcast i8*%bnK to i8**
store i8*%bnN,i8**%bnO,align 8
%bnP=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bnQ=getelementptr inbounds i8,i8*%bnK,i64 8
%bnR=bitcast i8*%bnQ to i8**
store i8*%bnP,i8**%bnR,align 8
%bnS=getelementptr inbounds i8,i8*%bnK,i64 16
%bnT=bitcast i8*%bnS to i32*
store i32 3,i32*%bnT,align 4
store i8*%bnK,i8**%c,align 8
br label%bpu
bnU:
store i8*null,i8**%f,align 8
store i8*null,i8**%k,align 8
%bnV=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
store i8*%bnV,i8**%c,align 8
br label%bBS
bnW:
%bnX=phi i8*[%bni,%bnh],[%bm7,%bm6]
%bnY=phi i8*[%bnn,%bnh],[%bnc,%bm6]
%bnZ=phi i8*[%bnl,%bnh],[%bna,%bm6]
%bn0=getelementptr inbounds i8,i8*%bnX,i64 8
%bn1=bitcast i8*%bn0 to i8**
store i8*%bnY,i8**%bn1,align 8
%bn2=getelementptr inbounds i8,i8*%bnX,i64 16
%bn3=bitcast i8*%bn2 to i32*
store i32 3,i32*%bn3,align 4
store i8*%bnZ,i8**%c,align 8
store i8*%bnY,i8**%d,align 8
%bn4=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%bnZ)
%bn5=icmp eq i8*%bn4,null
br i1%bn5,label%bn6,label%bn7
bn6:
store i8*null,i8**%c,align 8
br label%boS
bn7:
%bn8=bitcast i8*%bn4 to i8**
%bn9=load i8*,i8**%bn8,align 8
%boa=bitcast i8*%bn9 to i32*
%bob=load i32,i32*%boa,align 4
%boc=icmp eq i32%bob,10
br i1%boc,label%bof,label%bod
bod:
store i8*null,i8**%c,align 8
%boe=load i8*,i8**%bn8,align 8
br label%boU
bof:
%bog=getelementptr inbounds i8,i8*%bn9,i64 8
%boh=bitcast i8*%bog to i8**
%boi=load i8*,i8**%boh,align 8
store i8*%boi,i8**%e,align 8
%boj=load i8**,i8***%o,align 8
%bok=load i8*,i8**%boj,align 8
%bol=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%bok)
%bom=getelementptr inbounds i8,i8*%bol,i64 16
%bon=bitcast i8*%bom to i8*(i8*,i8*)**
%boo=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%bon,align 8
%bop=bitcast i8*%bol to i8**
%boq=load i8*,i8**%bop,align 8
store i8*%boq,i8**%g,align 8
%bor=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bos=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%bor)
%bot=call i8*@sml_alloc(i32 inreg 4)#0
%bou=bitcast i8*%bot to i32*
%bov=getelementptr inbounds i8,i8*%bot,i64 -4
%bow=bitcast i8*%bov to i32*
store i32 4,i32*%bow,align 4
store i32%bos,i32*%bou,align 4
%box=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%boy=call fastcc i8*%boo(i8*inreg%box,i8*inreg%bot)
%boz=call i8*@sml_alloc(i32 inreg 20)#0
%boA=getelementptr inbounds i8,i8*%boz,i64 -4
%boB=bitcast i8*%boA to i32*
store i32 1342177296,i32*%boB,align 4
store i8*%boz,i8**%c,align 8
%boC=getelementptr inbounds i8,i8*%boz,i64 4
%boD=bitcast i8*%boC to i32*
store i32 0,i32*%boD,align 1
%boE=bitcast i8*%boz to i32*
store i32 10,i32*%boE,align 4
%boF=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%boG=getelementptr inbounds i8,i8*%boz,i64 8
%boH=bitcast i8*%boG to i8**
store i8*%boF,i8**%boH,align 8
%boI=getelementptr inbounds i8,i8*%boz,i64 16
%boJ=bitcast i8*%boI to i32*
store i32 2,i32*%boJ,align 4
%boK=call i8*@sml_alloc(i32 inreg 12)#0
%boL=getelementptr inbounds i8,i8*%boK,i64 -4
%boM=bitcast i8*%boL to i32*
store i32 1342177288,i32*%boM,align 4
%boN=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%boO=bitcast i8*%boK to i8**
store i8*%boN,i8**%boO,align 8
%boP=getelementptr inbounds i8,i8*%boK,i64 8
%boQ=bitcast i8*%boP to i32*
store i32 1,i32*%boQ,align 4
%boR=icmp eq i8*%boK,null
br i1%boR,label%boS,label%boU
boS:
store i8*null,i8**%f,align 8
store i8*null,i8**%k,align 8
%boT=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
store i8*%boT,i8**%c,align 8
br label%bBS
boU:
%boV=phi i8*[%boe,%bod],[%boN,%bof]
%boW=bitcast i8*%boV to i32*
%boX=load i32,i32*%boW,align 4
%boY=getelementptr inbounds i8,i8*%boV,i64 8
%boZ=bitcast i8*%boY to i8**
%bo0=load i8*,i8**%boZ,align 8
store i8*%bo0,i8**%c,align 8
%bo1=icmp eq i32%boX,48
br i1%bo1,label%bo2,label%bpd
bo2:
%bo3=call i8*@sml_alloc(i32 inreg 20)#0
%bo4=getelementptr inbounds i8,i8*%bo3,i64 -4
%bo5=bitcast i8*%bo4 to i32*
store i32 1342177296,i32*%bo5,align 4
%bo6=load i8*,i8**%c,align 8
%bo7=bitcast i8*%bo3 to i8**
store i8*%bo6,i8**%bo7,align 8
%bo8=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bo9=getelementptr inbounds i8,i8*%bo3,i64 8
%bpa=bitcast i8*%bo9 to i8**
store i8*%bo8,i8**%bpa,align 8
%bpb=getelementptr inbounds i8,i8*%bo3,i64 16
%bpc=bitcast i8*%bpb to i32*
store i32 3,i32*%bpc,align 4
store i8*%bo3,i8**%c,align 8
br label%bpu
bpd:
%bpe=icmp ugt i32%boX,47
br i1%bpe,label%bph,label%bpf
bpf:
store i8*null,i8**%f,align 8
store i8*null,i8**%k,align 8
%bpg=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
store i8*%bpg,i8**%c,align 8
br label%bBS
bph:
%bpi=icmp ugt i32%boX,57
br i1%bpi,label%bpw,label%bpj
bpj:
%bpk=call i8*@sml_alloc(i32 inreg 20)#0
%bpl=getelementptr inbounds i8,i8*%bpk,i64 -4
%bpm=bitcast i8*%bpl to i32*
store i32 1342177296,i32*%bpm,align 4
%bpn=load i8*,i8**%c,align 8
%bpo=bitcast i8*%bpk to i8**
store i8*%bpn,i8**%bpo,align 8
%bpp=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bpq=getelementptr inbounds i8,i8*%bpk,i64 8
%bpr=bitcast i8*%bpq to i8**
store i8*%bpp,i8**%bpr,align 8
%bps=getelementptr inbounds i8,i8*%bpk,i64 16
%bpt=bitcast i8*%bps to i32*
store i32 3,i32*%bpt,align 4
store i8*%bpk,i8**%c,align 8
br label%bpu
bpu:
%bpv=phi i8*[%bpn,%bpj],[%bo6,%bo2],[%bnN,%bnJ],[%bnw,%bns]
br label%bpy
bpw:
store i8*null,i8**%f,align 8
store i8*null,i8**%k,align 8
%bpx=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
store i8*%bpx,i8**%c,align 8
br label%bBS
bpy:
%bpz=phi i8*[%brG,%brE],[%bpv,%bpu]
%bpA=load atomic i32,i32*@sml_check_flag unordered,align 4
%bpB=icmp eq i32%bpA,0
br i1%bpB,label%bpF,label%bpC
bpC:
call void@sml_check(i32 inreg%bpA)
%bpD=load i8**,i8***%p,align 8
%bpE=load i8*,i8**%bpD,align 8
br label%bpF
bpF:
%bpG=phi i8*[%bpE,%bpC],[%bpz,%bpy]
store i8*%bpG,i8**%c,align 8
%bpH=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%bpG)
%bpI=icmp eq i8*%bpH,null
br i1%bpI,label%bqv,label%bpJ
bpJ:
%bpK=bitcast i8*%bpH to i8**
%bpL=load i8*,i8**%bpK,align 8
%bpM=bitcast i8*%bpL to i32*
%bpN=load i32,i32*%bpM,align 4
%bpO=icmp eq i32%bpN,10
br i1%bpO,label%bpP,label%brf
bpP:
%bpQ=getelementptr inbounds i8,i8*%bpL,i64 8
%bpR=bitcast i8*%bpQ to i8**
%bpS=load i8*,i8**%bpR,align 8
store i8*%bpS,i8**%d,align 8
%bpT=load i8**,i8***%o,align 8
%bpU=load i8*,i8**%bpT,align 8
%bpV=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%bpU)
%bpW=getelementptr inbounds i8,i8*%bpV,i64 16
%bpX=bitcast i8*%bpW to i8*(i8*,i8*)**
%bpY=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%bpX,align 8
%bpZ=bitcast i8*%bpV to i8**
%bp0=load i8*,i8**%bpZ,align 8
store i8*%bp0,i8**%e,align 8
%bp1=load i8*,i8**%c,align 8
%bp2=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%bp1)
%bp3=call i8*@sml_alloc(i32 inreg 4)#0
%bp4=bitcast i8*%bp3 to i32*
%bp5=getelementptr inbounds i8,i8*%bp3,i64 -4
%bp6=bitcast i8*%bp5 to i32*
store i32 4,i32*%bp6,align 4
store i32%bp2,i32*%bp4,align 4
%bp7=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%bp8=call fastcc i8*%bpY(i8*inreg%bp7,i8*inreg%bp3)
%bp9=call i8*@sml_alloc(i32 inreg 20)#0
%bqa=getelementptr inbounds i8,i8*%bp9,i64 -4
%bqb=bitcast i8*%bqa to i32*
store i32 1342177296,i32*%bqb,align 4
store i8*%bp9,i8**%e,align 8
%bqc=getelementptr inbounds i8,i8*%bp9,i64 4
%bqd=bitcast i8*%bqc to i32*
store i32 0,i32*%bqd,align 1
%bqe=bitcast i8*%bp9 to i32*
store i32 10,i32*%bqe,align 4
%bqf=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bqg=getelementptr inbounds i8,i8*%bp9,i64 8
%bqh=bitcast i8*%bqg to i8**
store i8*%bqf,i8**%bqh,align 8
%bqi=getelementptr inbounds i8,i8*%bp9,i64 16
%bqj=bitcast i8*%bqi to i32*
store i32 2,i32*%bqj,align 4
%bqk=call i8*@sml_alloc(i32 inreg 12)#0
%bql=getelementptr inbounds i8,i8*%bqk,i64 -4
%bqm=bitcast i8*%bql to i32*
store i32 1342177288,i32*%bqm,align 4
%bqn=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%bqo=bitcast i8*%bqk to i8**
store i8*%bqn,i8**%bqo,align 8
%bqp=getelementptr inbounds i8,i8*%bqk,i64 8
%bqq=bitcast i8*%bqp to i32*
store i32 1,i32*%bqq,align 4
%bqr=icmp eq i8*%bqk,null
br i1%bqr,label%bqv,label%bqs
bqs:
%bqt=bitcast i8*%bqn to i32*
%bqu=load i32,i32*%bqt,align 4
br label%brf
bqv:
store i8*null,i8**%k,align 8
%bqw=load i8*,i8**%f,align 8
%bqx=getelementptr inbounds i8,i8*%bqw,i64 16
%bqy=bitcast i8*%bqx to i8***
%bqz=load i8**,i8***%bqy,align 8
%bqA=load i8*,i8**%bqz,align 8
store i8*%bqA,i8**%d,align 8
%bqB=call i8*@sml_alloc(i32 inreg 20)#0
%bqC=getelementptr inbounds i8,i8*%bqB,i64 -4
%bqD=bitcast i8*%bqC to i32*
store i32 1342177296,i32*%bqD,align 4
%bqE=load i8*,i8**%c,align 8
%bqF=bitcast i8*%bqB to i8**
store i8*%bqE,i8**%bqF,align 8
%bqG=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bqH=getelementptr inbounds i8,i8*%bqB,i64 8
%bqI=bitcast i8*%bqH to i8**
store i8*%bqG,i8**%bqI,align 8
%bqJ=getelementptr inbounds i8,i8*%bqB,i64 16
%bqK=bitcast i8*%bqJ to i32*
store i32 3,i32*%bqK,align 4
%bqL=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%bqB)
%bqM=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%bqL)
store i8*%bqM,i8**%d,align 8
%bqN=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%bqO=getelementptr inbounds i8,i8*%bqN,i64 16
%bqP=bitcast i8*%bqO to i8**
%bqQ=load i8*,i8**%bqP,align 8
%bqR=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bqS=bitcast i8*%bqQ to i8**
call void@sml_write(i8*inreg%bqQ,i8**inreg%bqS,i8*inreg%bqR)#0
%bqT=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 0,i32 inreg 8)
%bqU=getelementptr inbounds i8,i8*%bqT,i64 16
%bqV=bitcast i8*%bqU to i8*(i8*,i8*)**
%bqW=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%bqV,align 8
%bqX=bitcast i8*%bqT to i8**
%bqY=load i8*,i8**%bqX,align 8
store i8*%bqY,i8**%c,align 8
%bqZ=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bq0=call fastcc i8*@_SMLFN6Real6410fromStringE(i8*inreg%bqZ)
%bq1=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bq2=call fastcc i8*%bqW(i8*inreg%bq1,i8*inreg%bq0)
%bq3=bitcast i8*%bq2 to double*
%bq4=load double,double*%bq3,align 8
%bq5=call i8*@sml_alloc(i32 inreg 20)#0
%bq6=bitcast i8*%bq5 to i32*
%bq7=getelementptr inbounds i8,i8*%bq5,i64 -4
%bq8=bitcast i8*%bq7 to i32*
store i32 1342177296,i32*%bq8,align 4
%bq9=getelementptr inbounds i8,i8*%bq5,i64 4
%bra=bitcast i8*%bq9 to i32*
store i32 0,i32*%bra,align 1
store i32 4,i32*%bq6,align 4
%brb=getelementptr inbounds i8,i8*%bq5,i64 8
%brc=bitcast i8*%brb to double*
store double%bq4,double*%brc,align 8
%brd=getelementptr inbounds i8,i8*%bq5,i64 16
%bre=bitcast i8*%brd to i32*
store i32 0,i32*%bre,align 4
ret i8*%bq5
brf:
%brg=phi i32[%bqu,%bqs],[%bpN,%bpJ]
%brh=phi i8*[%bqn,%bqs],[%bpL,%bpJ]
%bri=getelementptr inbounds i8,i8*%brh,i64 8
%brj=bitcast i8*%bri to i8**
%brk=load i8*,i8**%brj,align 8
store i8*%brk,i8**%d,align 8
%brl=icmp eq i32%brg,48
br i1%brl,label%brm,label%brM
brm:
%brn=call i8*@sml_alloc(i32 inreg 28)#0
%bro=getelementptr inbounds i8,i8*%brn,i64 -4
%brp=bitcast i8*%bro to i32*
store i32 1342177304,i32*%brp,align 4
store i8*%brn,i8**%e,align 8
%brq=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%brr=bitcast i8*%brn to i8**
store i8*%brq,i8**%brr,align 8
%brs=load i8*,i8**%k,align 8
%brt=getelementptr inbounds i8,i8*%brn,i64 8
%bru=bitcast i8*%brt to i8**
store i8*%brs,i8**%bru,align 8
%brv=getelementptr inbounds i8,i8*%brn,i64 16
%brw=bitcast i8*%brv to i8**
store i8*null,i8**%brw,align 8
%brx=getelementptr inbounds i8,i8*%brn,i64 24
%bry=bitcast i8*%brx to i32*
store i32 7,i32*%bry,align 4
%brz=call i8*@sml_alloc(i32 inreg 20)#0
%brA=getelementptr inbounds i8,i8*%brz,i64 -4
%brB=bitcast i8*%brA to i32*
store i32 1342177296,i32*%brB,align 4
%brC=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%brD=bitcast i8*%brz to i8**
store i8*%brC,i8**%brD,align 8
br label%brE
brE:
%brF=phi i8*[%brz,%brm],[%bsN,%bsA]
%brG=phi i8*[%brC,%brm],[%bsQ,%bsA]
%brH=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%brI=getelementptr inbounds i8,i8*%brF,i64 8
%brJ=bitcast i8*%brI to i8**
store i8*%brH,i8**%brJ,align 8
%brK=getelementptr inbounds i8,i8*%brF,i64 16
%brL=bitcast i8*%brK to i32*
store i32 3,i32*%brL,align 4
store i8*%brF,i8**%c,align 8
br label%bpy
brM:
%brN=icmp ugt i32%brg,47
br i1%brN,label%bsy,label%brO
brO:
store i8*null,i8**%k,align 8
%brP=load i8*,i8**%f,align 8
%brQ=getelementptr inbounds i8,i8*%brP,i64 16
%brR=bitcast i8*%brQ to i8***
%brS=load i8**,i8***%brR,align 8
%brT=load i8*,i8**%brS,align 8
store i8*%brT,i8**%d,align 8
%brU=call i8*@sml_alloc(i32 inreg 20)#0
%brV=getelementptr inbounds i8,i8*%brU,i64 -4
%brW=bitcast i8*%brV to i32*
store i32 1342177296,i32*%brW,align 4
%brX=load i8*,i8**%c,align 8
%brY=bitcast i8*%brU to i8**
store i8*%brX,i8**%brY,align 8
%brZ=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%br0=getelementptr inbounds i8,i8*%brU,i64 8
%br1=bitcast i8*%br0 to i8**
store i8*%brZ,i8**%br1,align 8
%br2=getelementptr inbounds i8,i8*%brU,i64 16
%br3=bitcast i8*%br2 to i32*
store i32 3,i32*%br3,align 4
%br4=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%brU)
%br5=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%br4)
store i8*%br5,i8**%d,align 8
%br6=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%br7=getelementptr inbounds i8,i8*%br6,i64 16
%br8=bitcast i8*%br7 to i8**
%br9=load i8*,i8**%br8,align 8
%bsa=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bsb=bitcast i8*%br9 to i8**
call void@sml_write(i8*inreg%br9,i8**inreg%bsb,i8*inreg%bsa)#0
%bsc=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 0,i32 inreg 8)
%bsd=getelementptr inbounds i8,i8*%bsc,i64 16
%bse=bitcast i8*%bsd to i8*(i8*,i8*)**
%bsf=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%bse,align 8
%bsg=bitcast i8*%bsc to i8**
%bsh=load i8*,i8**%bsg,align 8
store i8*%bsh,i8**%c,align 8
%bsi=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bsj=call fastcc i8*@_SMLFN6Real6410fromStringE(i8*inreg%bsi)
%bsk=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bsl=call fastcc i8*%bsf(i8*inreg%bsk,i8*inreg%bsj)
%bsm=bitcast i8*%bsl to double*
%bsn=load double,double*%bsm,align 8
%bso=call i8*@sml_alloc(i32 inreg 20)#0
%bsp=bitcast i8*%bso to i32*
%bsq=getelementptr inbounds i8,i8*%bso,i64 -4
%bsr=bitcast i8*%bsq to i32*
store i32 1342177296,i32*%bsr,align 4
%bss=getelementptr inbounds i8,i8*%bso,i64 4
%bst=bitcast i8*%bss to i32*
store i32 0,i32*%bst,align 1
store i32 4,i32*%bsp,align 4
%bsu=getelementptr inbounds i8,i8*%bso,i64 8
%bsv=bitcast i8*%bsu to double*
store double%bsn,double*%bsv,align 8
%bsw=getelementptr inbounds i8,i8*%bso,i64 16
%bsx=bitcast i8*%bsw to i32*
store i32 0,i32*%bsx,align 4
ret i8*%bso
bsy:
%bsz=icmp ugt i32%brg,57
br i1%bsz,label%bsS,label%bsA
bsA:
%bsB=call i8*@sml_alloc(i32 inreg 28)#0
%bsC=getelementptr inbounds i8,i8*%bsB,i64 -4
%bsD=bitcast i8*%bsC to i32*
store i32 1342177304,i32*%bsD,align 4
store i8*%bsB,i8**%e,align 8
%bsE=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bsF=bitcast i8*%bsB to i8**
store i8*%bsE,i8**%bsF,align 8
%bsG=load i8*,i8**%k,align 8
%bsH=getelementptr inbounds i8,i8*%bsB,i64 8
%bsI=bitcast i8*%bsH to i8**
store i8*%bsG,i8**%bsI,align 8
%bsJ=getelementptr inbounds i8,i8*%bsB,i64 16
%bsK=bitcast i8*%bsJ to i8**
store i8*null,i8**%bsK,align 8
%bsL=getelementptr inbounds i8,i8*%bsB,i64 24
%bsM=bitcast i8*%bsL to i32*
store i32 7,i32*%bsM,align 4
%bsN=call i8*@sml_alloc(i32 inreg 20)#0
%bsO=getelementptr inbounds i8,i8*%bsN,i64 -4
%bsP=bitcast i8*%bsO to i32*
store i32 1342177296,i32*%bsP,align 4
%bsQ=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bsR=bitcast i8*%bsN to i8**
store i8*%bsQ,i8**%bsR,align 8
br label%brE
bsS:
store i8*null,i8**%k,align 8
%bsT=load i8*,i8**%f,align 8
%bsU=getelementptr inbounds i8,i8*%bsT,i64 16
%bsV=bitcast i8*%bsU to i8***
%bsW=load i8**,i8***%bsV,align 8
%bsX=load i8*,i8**%bsW,align 8
store i8*%bsX,i8**%d,align 8
%bsY=call i8*@sml_alloc(i32 inreg 20)#0
%bsZ=getelementptr inbounds i8,i8*%bsY,i64 -4
%bs0=bitcast i8*%bsZ to i32*
store i32 1342177296,i32*%bs0,align 4
%bs1=load i8*,i8**%c,align 8
%bs2=bitcast i8*%bsY to i8**
store i8*%bs1,i8**%bs2,align 8
%bs3=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bs4=getelementptr inbounds i8,i8*%bsY,i64 8
%bs5=bitcast i8*%bs4 to i8**
store i8*%bs3,i8**%bs5,align 8
%bs6=getelementptr inbounds i8,i8*%bsY,i64 16
%bs7=bitcast i8*%bs6 to i32*
store i32 3,i32*%bs7,align 4
%bs8=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%bsY)
%bs9=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%bs8)
store i8*%bs9,i8**%d,align 8
%bta=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%btb=getelementptr inbounds i8,i8*%bta,i64 16
%btc=bitcast i8*%btb to i8**
%btd=load i8*,i8**%btc,align 8
%bte=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%btf=bitcast i8*%btd to i8**
call void@sml_write(i8*inreg%btd,i8**inreg%btf,i8*inreg%bte)#0
%btg=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 0,i32 inreg 8)
%bth=getelementptr inbounds i8,i8*%btg,i64 16
%bti=bitcast i8*%bth to i8*(i8*,i8*)**
%btj=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%bti,align 8
%btk=bitcast i8*%btg to i8**
%btl=load i8*,i8**%btk,align 8
store i8*%btl,i8**%c,align 8
%btm=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%btn=call fastcc i8*@_SMLFN6Real6410fromStringE(i8*inreg%btm)
%bto=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%btp=call fastcc i8*%btj(i8*inreg%bto,i8*inreg%btn)
%btq=bitcast i8*%btp to double*
%btr=load double,double*%btq,align 8
%bts=call i8*@sml_alloc(i32 inreg 20)#0
%btt=bitcast i8*%bts to i32*
%btu=getelementptr inbounds i8,i8*%bts,i64 -4
%btv=bitcast i8*%btu to i32*
store i32 1342177296,i32*%btv,align 4
%btw=getelementptr inbounds i8,i8*%bts,i64 4
%btx=bitcast i8*%btw to i32*
store i32 0,i32*%btx,align 1
store i32 4,i32*%btt,align 4
%bty=getelementptr inbounds i8,i8*%bts,i64 8
%btz=bitcast i8*%bty to double*
store double%btr,double*%btz,align 8
%btA=getelementptr inbounds i8,i8*%bts,i64 16
%btB=bitcast i8*%btA to i32*
store i32 0,i32*%btB,align 4
ret i8*%bts
btC:
%btD=phi i8*[%beb,%bdY],[%bc7,%bcU],[%aYL,%aYy],[%aXH,%aXu],[%Ww,%Wj],[%Vs,%Vf],[%LZ,%LM],[%Ky,%Kl],[%FH,%Fu],[%Eg,%D3]
%btE=phi i8*[%beg,%bdY],[%bdc,%bcU],[%aYQ,%aYy],[%aXM,%aXu],[%WB,%Wj],[%Vx,%Vf],[%L4,%LM],[%KD,%Kl],[%FM,%Fu],[%El,%D3]
%btF=phi i8*[%bee,%bdY],[%bda,%bcU],[%aYO,%aYy],[%aXK,%aXu],[%Wz,%Wj],[%Vv,%Vf],[%L2,%LM],[%KB,%Kl],[%FK,%Fu],[%Ej,%D3]
%btG=getelementptr inbounds i8,i8*%btD,i64 8
%btH=bitcast i8*%btG to i8**
store i8*%btE,i8**%btH,align 8
%btI=getelementptr inbounds i8,i8*%btD,i64 16
%btJ=bitcast i8*%btI to i32*
store i32 3,i32*%btJ,align 4
store i8*%btF,i8**%c,align 8
store i8*%btE,i8**%d,align 8
%btK=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%btF)
%btL=icmp eq i8*%btK,null
br i1%btL,label%btM,label%btN
btM:
store i8*null,i8**%c,align 8
br label%buy
btN:
%btO=bitcast i8*%btK to i8**
%btP=load i8*,i8**%btO,align 8
%btQ=bitcast i8*%btP to i32*
%btR=load i32,i32*%btQ,align 4
%btS=icmp eq i32%btR,10
br i1%btS,label%btV,label%btT
btT:
store i8*null,i8**%c,align 8
%btU=load i8*,i8**%btO,align 8
br label%buA
btV:
%btW=getelementptr inbounds i8,i8*%btP,i64 8
%btX=bitcast i8*%btW to i8**
%btY=load i8*,i8**%btX,align 8
store i8*%btY,i8**%e,align 8
%btZ=load i8**,i8***%o,align 8
%bt0=load i8*,i8**%btZ,align 8
%bt1=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%bt0)
%bt2=getelementptr inbounds i8,i8*%bt1,i64 16
%bt3=bitcast i8*%bt2 to i8*(i8*,i8*)**
%bt4=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%bt3,align 8
%bt5=bitcast i8*%bt1 to i8**
%bt6=load i8*,i8**%bt5,align 8
store i8*%bt6,i8**%g,align 8
%bt7=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bt8=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%bt7)
%bt9=call i8*@sml_alloc(i32 inreg 4)#0
%bua=bitcast i8*%bt9 to i32*
%bub=getelementptr inbounds i8,i8*%bt9,i64 -4
%buc=bitcast i8*%bub to i32*
store i32 4,i32*%buc,align 4
store i32%bt8,i32*%bua,align 4
%bud=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%bue=call fastcc i8*%bt4(i8*inreg%bud,i8*inreg%bt9)
%buf=call i8*@sml_alloc(i32 inreg 20)#0
%bug=getelementptr inbounds i8,i8*%buf,i64 -4
%buh=bitcast i8*%bug to i32*
store i32 1342177296,i32*%buh,align 4
store i8*%buf,i8**%c,align 8
%bui=getelementptr inbounds i8,i8*%buf,i64 4
%buj=bitcast i8*%bui to i32*
store i32 0,i32*%buj,align 1
%buk=bitcast i8*%buf to i32*
store i32 10,i32*%buk,align 4
%bul=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%bum=getelementptr inbounds i8,i8*%buf,i64 8
%bun=bitcast i8*%bum to i8**
store i8*%bul,i8**%bun,align 8
%buo=getelementptr inbounds i8,i8*%buf,i64 16
%bup=bitcast i8*%buo to i32*
store i32 2,i32*%bup,align 4
%buq=call i8*@sml_alloc(i32 inreg 12)#0
%bur=getelementptr inbounds i8,i8*%buq,i64 -4
%bus=bitcast i8*%bur to i32*
store i32 1342177288,i32*%bus,align 4
%but=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%buu=bitcast i8*%buq to i8**
store i8*%but,i8**%buu,align 8
%buv=getelementptr inbounds i8,i8*%buq,i64 8
%buw=bitcast i8*%buv to i32*
store i32 1,i32*%buw,align 4
%bux=icmp eq i8*%buq,null
br i1%bux,label%buy,label%buA
buy:
store i8*null,i8**%f,align 8
store i8*null,i8**%j,align 8
%buz=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
store i8*%buz,i8**%c,align 8
br label%bBS
buA:
%buB=phi i8*[%btU,%btT],[%but,%btV]
%buC=bitcast i8*%buB to i32*
%buD=load i32,i32*%buC,align 4
%buE=getelementptr inbounds i8,i8*%buB,i64 8
%buF=bitcast i8*%buE to i8**
%buG=load i8*,i8**%buF,align 8
store i8*%buG,i8**%c,align 8
%buH=icmp eq i32%buD,45
br i1%buH,label%buI,label%buP
buI:
%buJ=call i8*@sml_alloc(i32 inreg 20)#0
%buK=getelementptr inbounds i8,i8*%buJ,i64 -4
%buL=bitcast i8*%buK to i32*
store i32 1342177296,i32*%buL,align 4
%buM=load i8*,i8**%c,align 8
%buN=bitcast i8*%buJ to i8**
store i8*%buM,i8**%buN,align 8
%buO=load i8*,i8**%d,align 8
br label%bvy
buP:
%buQ=icmp ugt i32%buD,44
br i1%buQ,label%bu2,label%buR
buR:
%buS=icmp eq i32%buD,43
br i1%buS,label%buT,label%bu0
buT:
%buU=call i8*@sml_alloc(i32 inreg 20)#0
%buV=getelementptr inbounds i8,i8*%buU,i64 -4
%buW=bitcast i8*%buV to i32*
store i32 1342177296,i32*%buW,align 4
%buX=load i8*,i8**%c,align 8
%buY=bitcast i8*%buU to i8**
store i8*%buX,i8**%buY,align 8
%buZ=load i8*,i8**%d,align 8
br label%bvy
bu0:
store i8*null,i8**%f,align 8
store i8*null,i8**%j,align 8
%bu1=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
store i8*%bu1,i8**%c,align 8
br label%bBS
bu2:
%bu3=icmp eq i32%buD,48
br i1%bu3,label%bu4,label%bvf
bu4:
%bu5=call i8*@sml_alloc(i32 inreg 20)#0
%bu6=getelementptr inbounds i8,i8*%bu5,i64 -4
%bu7=bitcast i8*%bu6 to i32*
store i32 1342177296,i32*%bu7,align 4
%bu8=load i8*,i8**%c,align 8
%bu9=bitcast i8*%bu5 to i8**
store i8*%bu8,i8**%bu9,align 8
%bva=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bvb=getelementptr inbounds i8,i8*%bu5,i64 8
%bvc=bitcast i8*%bvb to i8**
store i8*%bva,i8**%bvc,align 8
%bvd=getelementptr inbounds i8,i8*%bu5,i64 16
%bve=bitcast i8*%bvd to i32*
store i32 3,i32*%bve,align 4
store i8*%bu5,i8**%c,align 8
br label%bw6
bvf:
%bvg=icmp ugt i32%buD,47
br i1%bvg,label%bvj,label%bvh
bvh:
store i8*null,i8**%f,align 8
store i8*null,i8**%j,align 8
%bvi=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
store i8*%bvi,i8**%c,align 8
br label%bBS
bvj:
%bvk=icmp ugt i32%buD,57
br i1%bvk,label%bvw,label%bvl
bvl:
%bvm=call i8*@sml_alloc(i32 inreg 20)#0
%bvn=getelementptr inbounds i8,i8*%bvm,i64 -4
%bvo=bitcast i8*%bvn to i32*
store i32 1342177296,i32*%bvo,align 4
%bvp=load i8*,i8**%c,align 8
%bvq=bitcast i8*%bvm to i8**
store i8*%bvp,i8**%bvq,align 8
%bvr=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bvs=getelementptr inbounds i8,i8*%bvm,i64 8
%bvt=bitcast i8*%bvs to i8**
store i8*%bvr,i8**%bvt,align 8
%bvu=getelementptr inbounds i8,i8*%bvm,i64 16
%bvv=bitcast i8*%bvu to i32*
store i32 3,i32*%bvv,align 4
store i8*%bvm,i8**%c,align 8
br label%bw6
bvw:
store i8*null,i8**%f,align 8
store i8*null,i8**%j,align 8
%bvx=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
store i8*%bvx,i8**%c,align 8
br label%bBS
bvy:
%bvz=phi i8*[%buU,%buT],[%buJ,%buI]
%bvA=phi i8*[%buZ,%buT],[%buO,%buI]
%bvB=phi i8*[%buX,%buT],[%buM,%buI]
%bvC=getelementptr inbounds i8,i8*%bvz,i64 8
%bvD=bitcast i8*%bvC to i8**
store i8*%bvA,i8**%bvD,align 8
%bvE=getelementptr inbounds i8,i8*%bvz,i64 16
%bvF=bitcast i8*%bvE to i32*
store i32 3,i32*%bvF,align 4
store i8*%bvB,i8**%c,align 8
store i8*%bvA,i8**%d,align 8
%bvG=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%bvB)
%bvH=icmp eq i8*%bvG,null
br i1%bvH,label%bvI,label%bvJ
bvI:
store i8*null,i8**%c,align 8
br label%bwu
bvJ:
%bvK=bitcast i8*%bvG to i8**
%bvL=load i8*,i8**%bvK,align 8
%bvM=bitcast i8*%bvL to i32*
%bvN=load i32,i32*%bvM,align 4
%bvO=icmp eq i32%bvN,10
br i1%bvO,label%bvR,label%bvP
bvP:
store i8*null,i8**%c,align 8
%bvQ=load i8*,i8**%bvK,align 8
br label%bww
bvR:
%bvS=getelementptr inbounds i8,i8*%bvL,i64 8
%bvT=bitcast i8*%bvS to i8**
%bvU=load i8*,i8**%bvT,align 8
store i8*%bvU,i8**%e,align 8
%bvV=load i8**,i8***%o,align 8
%bvW=load i8*,i8**%bvV,align 8
%bvX=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%bvW)
%bvY=getelementptr inbounds i8,i8*%bvX,i64 16
%bvZ=bitcast i8*%bvY to i8*(i8*,i8*)**
%bv0=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%bvZ,align 8
%bv1=bitcast i8*%bvX to i8**
%bv2=load i8*,i8**%bv1,align 8
store i8*%bv2,i8**%g,align 8
%bv3=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bv4=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%bv3)
%bv5=call i8*@sml_alloc(i32 inreg 4)#0
%bv6=bitcast i8*%bv5 to i32*
%bv7=getelementptr inbounds i8,i8*%bv5,i64 -4
%bv8=bitcast i8*%bv7 to i32*
store i32 4,i32*%bv8,align 4
store i32%bv4,i32*%bv6,align 4
%bv9=load i8*,i8**%g,align 8
store i8*null,i8**%g,align 8
%bwa=call fastcc i8*%bv0(i8*inreg%bv9,i8*inreg%bv5)
%bwb=call i8*@sml_alloc(i32 inreg 20)#0
%bwc=getelementptr inbounds i8,i8*%bwb,i64 -4
%bwd=bitcast i8*%bwc to i32*
store i32 1342177296,i32*%bwd,align 4
store i8*%bwb,i8**%c,align 8
%bwe=getelementptr inbounds i8,i8*%bwb,i64 4
%bwf=bitcast i8*%bwe to i32*
store i32 0,i32*%bwf,align 1
%bwg=bitcast i8*%bwb to i32*
store i32 10,i32*%bwg,align 4
%bwh=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%bwi=getelementptr inbounds i8,i8*%bwb,i64 8
%bwj=bitcast i8*%bwi to i8**
store i8*%bwh,i8**%bwj,align 8
%bwk=getelementptr inbounds i8,i8*%bwb,i64 16
%bwl=bitcast i8*%bwk to i32*
store i32 2,i32*%bwl,align 4
%bwm=call i8*@sml_alloc(i32 inreg 12)#0
%bwn=getelementptr inbounds i8,i8*%bwm,i64 -4
%bwo=bitcast i8*%bwn to i32*
store i32 1342177288,i32*%bwo,align 4
%bwp=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bwq=bitcast i8*%bwm to i8**
store i8*%bwp,i8**%bwq,align 8
%bwr=getelementptr inbounds i8,i8*%bwm,i64 8
%bws=bitcast i8*%bwr to i32*
store i32 1,i32*%bws,align 4
%bwt=icmp eq i8*%bwm,null
br i1%bwt,label%bwu,label%bww
bwu:
store i8*null,i8**%f,align 8
store i8*null,i8**%j,align 8
%bwv=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
store i8*%bwv,i8**%c,align 8
br label%bBS
bww:
%bwx=phi i8*[%bvQ,%bvP],[%bwp,%bvR]
%bwy=bitcast i8*%bwx to i32*
%bwz=load i32,i32*%bwy,align 4
%bwA=getelementptr inbounds i8,i8*%bwx,i64 8
%bwB=bitcast i8*%bwA to i8**
%bwC=load i8*,i8**%bwB,align 8
store i8*%bwC,i8**%c,align 8
%bwD=icmp eq i32%bwz,48
br i1%bwD,label%bwE,label%bwP
bwE:
%bwF=call i8*@sml_alloc(i32 inreg 20)#0
%bwG=getelementptr inbounds i8,i8*%bwF,i64 -4
%bwH=bitcast i8*%bwG to i32*
store i32 1342177296,i32*%bwH,align 4
%bwI=load i8*,i8**%c,align 8
%bwJ=bitcast i8*%bwF to i8**
store i8*%bwI,i8**%bwJ,align 8
%bwK=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bwL=getelementptr inbounds i8,i8*%bwF,i64 8
%bwM=bitcast i8*%bwL to i8**
store i8*%bwK,i8**%bwM,align 8
%bwN=getelementptr inbounds i8,i8*%bwF,i64 16
%bwO=bitcast i8*%bwN to i32*
store i32 3,i32*%bwO,align 4
store i8*%bwF,i8**%c,align 8
br label%bw6
bwP:
%bwQ=icmp ugt i32%bwz,47
br i1%bwQ,label%bwT,label%bwR
bwR:
store i8*null,i8**%f,align 8
store i8*null,i8**%j,align 8
%bwS=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
store i8*%bwS,i8**%c,align 8
br label%bBS
bwT:
%bwU=icmp ugt i32%bwz,57
br i1%bwU,label%bw8,label%bwV
bwV:
%bwW=call i8*@sml_alloc(i32 inreg 20)#0
%bwX=getelementptr inbounds i8,i8*%bwW,i64 -4
%bwY=bitcast i8*%bwX to i32*
store i32 1342177296,i32*%bwY,align 4
%bwZ=load i8*,i8**%c,align 8
%bw0=bitcast i8*%bwW to i8**
store i8*%bwZ,i8**%bw0,align 8
%bw1=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bw2=getelementptr inbounds i8,i8*%bwW,i64 8
%bw3=bitcast i8*%bw2 to i8**
store i8*%bw1,i8**%bw3,align 8
%bw4=getelementptr inbounds i8,i8*%bwW,i64 16
%bw5=bitcast i8*%bw4 to i32*
store i32 3,i32*%bw5,align 4
store i8*%bwW,i8**%c,align 8
br label%bw6
bw6:
%bw7=phi i8*[%bwZ,%bwV],[%bwI,%bwE],[%bvp,%bvl],[%bu8,%bu4]
br label%bxa
bw8:
store i8*null,i8**%f,align 8
store i8*null,i8**%j,align 8
%bw9=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
store i8*%bw9,i8**%c,align 8
br label%bBS
bxa:
%bxb=phi i8*[%bzi,%bzg],[%bw7,%bw6]
%bxc=load atomic i32,i32*@sml_check_flag unordered,align 4
%bxd=icmp eq i32%bxc,0
br i1%bxd,label%bxh,label%bxe
bxe:
call void@sml_check(i32 inreg%bxc)
%bxf=load i8**,i8***%p,align 8
%bxg=load i8*,i8**%bxf,align 8
br label%bxh
bxh:
%bxi=phi i8*[%bxg,%bxe],[%bxb,%bxa]
store i8*%bxi,i8**%c,align 8
%bxj=call fastcc i8*@_SMLFN10ULexBuffer4getuE(i8*inreg%bxi)
%bxk=icmp eq i8*%bxj,null
br i1%bxk,label%bx7,label%bxl
bxl:
%bxm=bitcast i8*%bxj to i8**
%bxn=load i8*,i8**%bxm,align 8
%bxo=bitcast i8*%bxn to i32*
%bxp=load i32,i32*%bxo,align 4
%bxq=icmp eq i32%bxp,10
br i1%bxq,label%bxr,label%byR
bxr:
%bxs=getelementptr inbounds i8,i8*%bxn,i64 8
%bxt=bitcast i8*%bxs to i8**
%bxu=load i8*,i8**%bxt,align 8
store i8*%bxu,i8**%d,align 8
%bxv=load i8**,i8***%o,align 8
%bxw=load i8*,i8**%bxv,align 8
%bxx=call fastcc i8*@_SMLFN14AntlrStreamPos11markNewLineE(i8*inreg%bxw)
%bxy=getelementptr inbounds i8,i8*%bxx,i64 16
%bxz=bitcast i8*%bxy to i8*(i8*,i8*)**
%bxA=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%bxz,align 8
%bxB=bitcast i8*%bxx to i8**
%bxC=load i8*,i8**%bxB,align 8
store i8*%bxC,i8**%e,align 8
%bxD=load i8*,i8**%c,align 8
%bxE=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%bxD)
%bxF=call i8*@sml_alloc(i32 inreg 4)#0
%bxG=bitcast i8*%bxF to i32*
%bxH=getelementptr inbounds i8,i8*%bxF,i64 -4
%bxI=bitcast i8*%bxH to i32*
store i32 4,i32*%bxI,align 4
store i32%bxE,i32*%bxG,align 4
%bxJ=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%bxK=call fastcc i8*%bxA(i8*inreg%bxJ,i8*inreg%bxF)
%bxL=call i8*@sml_alloc(i32 inreg 20)#0
%bxM=getelementptr inbounds i8,i8*%bxL,i64 -4
%bxN=bitcast i8*%bxM to i32*
store i32 1342177296,i32*%bxN,align 4
store i8*%bxL,i8**%e,align 8
%bxO=getelementptr inbounds i8,i8*%bxL,i64 4
%bxP=bitcast i8*%bxO to i32*
store i32 0,i32*%bxP,align 1
%bxQ=bitcast i8*%bxL to i32*
store i32 10,i32*%bxQ,align 4
%bxR=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bxS=getelementptr inbounds i8,i8*%bxL,i64 8
%bxT=bitcast i8*%bxS to i8**
store i8*%bxR,i8**%bxT,align 8
%bxU=getelementptr inbounds i8,i8*%bxL,i64 16
%bxV=bitcast i8*%bxU to i32*
store i32 2,i32*%bxV,align 4
%bxW=call i8*@sml_alloc(i32 inreg 12)#0
%bxX=getelementptr inbounds i8,i8*%bxW,i64 -4
%bxY=bitcast i8*%bxX to i32*
store i32 1342177288,i32*%bxY,align 4
%bxZ=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%bx0=bitcast i8*%bxW to i8**
store i8*%bxZ,i8**%bx0,align 8
%bx1=getelementptr inbounds i8,i8*%bxW,i64 8
%bx2=bitcast i8*%bx1 to i32*
store i32 1,i32*%bx2,align 4
%bx3=icmp eq i8*%bxW,null
br i1%bx3,label%bx7,label%bx4
bx4:
%bx5=bitcast i8*%bxZ to i32*
%bx6=load i32,i32*%bx5,align 4
br label%byR
bx7:
store i8*null,i8**%j,align 8
%bx8=load i8*,i8**%f,align 8
%bx9=getelementptr inbounds i8,i8*%bx8,i64 16
%bya=bitcast i8*%bx9 to i8***
%byb=load i8**,i8***%bya,align 8
%byc=load i8*,i8**%byb,align 8
store i8*%byc,i8**%d,align 8
%byd=call i8*@sml_alloc(i32 inreg 20)#0
%bye=getelementptr inbounds i8,i8*%byd,i64 -4
%byf=bitcast i8*%bye to i32*
store i32 1342177296,i32*%byf,align 4
%byg=load i8*,i8**%c,align 8
%byh=bitcast i8*%byd to i8**
store i8*%byg,i8**%byh,align 8
%byi=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%byj=getelementptr inbounds i8,i8*%byd,i64 8
%byk=bitcast i8*%byj to i8**
store i8*%byi,i8**%byk,align 8
%byl=getelementptr inbounds i8,i8*%byd,i64 16
%bym=bitcast i8*%byl to i32*
store i32 3,i32*%bym,align 4
%byn=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%byd)
%byo=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%byn)
store i8*%byo,i8**%d,align 8
%byp=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%byq=getelementptr inbounds i8,i8*%byp,i64 16
%byr=bitcast i8*%byq to i8**
%bys=load i8*,i8**%byr,align 8
%byt=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%byu=bitcast i8*%bys to i8**
call void@sml_write(i8*inreg%bys,i8**inreg%byu,i8*inreg%byt)#0
%byv=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 0,i32 inreg 8)
%byw=getelementptr inbounds i8,i8*%byv,i64 16
%byx=bitcast i8*%byw to i8*(i8*,i8*)**
%byy=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%byx,align 8
%byz=bitcast i8*%byv to i8**
%byA=load i8*,i8**%byz,align 8
store i8*%byA,i8**%c,align 8
%byB=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%byC=call fastcc i8*@_SMLFN6Real6410fromStringE(i8*inreg%byB)
%byD=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%byE=call fastcc i8*%byy(i8*inreg%byD,i8*inreg%byC)
%byF=bitcast i8*%byE to double*
%byG=load double,double*%byF,align 8
%byH=call i8*@sml_alloc(i32 inreg 20)#0
%byI=bitcast i8*%byH to i32*
%byJ=getelementptr inbounds i8,i8*%byH,i64 -4
%byK=bitcast i8*%byJ to i32*
store i32 1342177296,i32*%byK,align 4
%byL=getelementptr inbounds i8,i8*%byH,i64 4
%byM=bitcast i8*%byL to i32*
store i32 0,i32*%byM,align 1
store i32 4,i32*%byI,align 4
%byN=getelementptr inbounds i8,i8*%byH,i64 8
%byO=bitcast i8*%byN to double*
store double%byG,double*%byO,align 8
%byP=getelementptr inbounds i8,i8*%byH,i64 16
%byQ=bitcast i8*%byP to i32*
store i32 0,i32*%byQ,align 4
ret i8*%byH
byR:
%byS=phi i32[%bx6,%bx4],[%bxp,%bxl]
%byT=phi i8*[%bxZ,%bx4],[%bxn,%bxl]
%byU=getelementptr inbounds i8,i8*%byT,i64 8
%byV=bitcast i8*%byU to i8**
%byW=load i8*,i8**%byV,align 8
store i8*%byW,i8**%d,align 8
%byX=icmp eq i32%byS,48
br i1%byX,label%byY,label%bzo
byY:
%byZ=call i8*@sml_alloc(i32 inreg 28)#0
%by0=getelementptr inbounds i8,i8*%byZ,i64 -4
%by1=bitcast i8*%by0 to i32*
store i32 1342177304,i32*%by1,align 4
store i8*%byZ,i8**%e,align 8
%by2=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%by3=bitcast i8*%byZ to i8**
store i8*%by2,i8**%by3,align 8
%by4=load i8*,i8**%j,align 8
%by5=getelementptr inbounds i8,i8*%byZ,i64 8
%by6=bitcast i8*%by5 to i8**
store i8*%by4,i8**%by6,align 8
%by7=getelementptr inbounds i8,i8*%byZ,i64 16
%by8=bitcast i8*%by7 to i8**
store i8*null,i8**%by8,align 8
%by9=getelementptr inbounds i8,i8*%byZ,i64 24
%bza=bitcast i8*%by9 to i32*
store i32 7,i32*%bza,align 4
%bzb=call i8*@sml_alloc(i32 inreg 20)#0
%bzc=getelementptr inbounds i8,i8*%bzb,i64 -4
%bzd=bitcast i8*%bzc to i32*
store i32 1342177296,i32*%bzd,align 4
%bze=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bzf=bitcast i8*%bzb to i8**
store i8*%bze,i8**%bzf,align 8
br label%bzg
bzg:
%bzh=phi i8*[%bzb,%byY],[%bAp,%bAc]
%bzi=phi i8*[%bze,%byY],[%bAs,%bAc]
%bzj=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%bzk=getelementptr inbounds i8,i8*%bzh,i64 8
%bzl=bitcast i8*%bzk to i8**
store i8*%bzj,i8**%bzl,align 8
%bzm=getelementptr inbounds i8,i8*%bzh,i64 16
%bzn=bitcast i8*%bzm to i32*
store i32 3,i32*%bzn,align 4
store i8*%bzh,i8**%c,align 8
br label%bxa
bzo:
%bzp=icmp ugt i32%byS,47
br i1%bzp,label%bAa,label%bzq
bzq:
store i8*null,i8**%j,align 8
%bzr=load i8*,i8**%f,align 8
%bzs=getelementptr inbounds i8,i8*%bzr,i64 16
%bzt=bitcast i8*%bzs to i8***
%bzu=load i8**,i8***%bzt,align 8
%bzv=load i8*,i8**%bzu,align 8
store i8*%bzv,i8**%d,align 8
%bzw=call i8*@sml_alloc(i32 inreg 20)#0
%bzx=getelementptr inbounds i8,i8*%bzw,i64 -4
%bzy=bitcast i8*%bzx to i32*
store i32 1342177296,i32*%bzy,align 4
%bzz=load i8*,i8**%c,align 8
%bzA=bitcast i8*%bzw to i8**
store i8*%bzz,i8**%bzA,align 8
%bzB=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bzC=getelementptr inbounds i8,i8*%bzw,i64 8
%bzD=bitcast i8*%bzC to i8**
store i8*%bzB,i8**%bzD,align 8
%bzE=getelementptr inbounds i8,i8*%bzw,i64 16
%bzF=bitcast i8*%bzE to i32*
store i32 3,i32*%bzF,align 4
%bzG=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%bzw)
%bzH=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%bzG)
store i8*%bzH,i8**%d,align 8
%bzI=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%bzJ=getelementptr inbounds i8,i8*%bzI,i64 16
%bzK=bitcast i8*%bzJ to i8**
%bzL=load i8*,i8**%bzK,align 8
%bzM=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bzN=bitcast i8*%bzL to i8**
call void@sml_write(i8*inreg%bzL,i8**inreg%bzN,i8*inreg%bzM)#0
%bzO=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 0,i32 inreg 8)
%bzP=getelementptr inbounds i8,i8*%bzO,i64 16
%bzQ=bitcast i8*%bzP to i8*(i8*,i8*)**
%bzR=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%bzQ,align 8
%bzS=bitcast i8*%bzO to i8**
%bzT=load i8*,i8**%bzS,align 8
store i8*%bzT,i8**%c,align 8
%bzU=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bzV=call fastcc i8*@_SMLFN6Real6410fromStringE(i8*inreg%bzU)
%bzW=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bzX=call fastcc i8*%bzR(i8*inreg%bzW,i8*inreg%bzV)
%bzY=bitcast i8*%bzX to double*
%bzZ=load double,double*%bzY,align 8
%bz0=call i8*@sml_alloc(i32 inreg 20)#0
%bz1=bitcast i8*%bz0 to i32*
%bz2=getelementptr inbounds i8,i8*%bz0,i64 -4
%bz3=bitcast i8*%bz2 to i32*
store i32 1342177296,i32*%bz3,align 4
%bz4=getelementptr inbounds i8,i8*%bz0,i64 4
%bz5=bitcast i8*%bz4 to i32*
store i32 0,i32*%bz5,align 1
store i32 4,i32*%bz1,align 4
%bz6=getelementptr inbounds i8,i8*%bz0,i64 8
%bz7=bitcast i8*%bz6 to double*
store double%bzZ,double*%bz7,align 8
%bz8=getelementptr inbounds i8,i8*%bz0,i64 16
%bz9=bitcast i8*%bz8 to i32*
store i32 0,i32*%bz9,align 4
ret i8*%bz0
bAa:
%bAb=icmp ugt i32%byS,57
br i1%bAb,label%bAu,label%bAc
bAc:
%bAd=call i8*@sml_alloc(i32 inreg 28)#0
%bAe=getelementptr inbounds i8,i8*%bAd,i64 -4
%bAf=bitcast i8*%bAe to i32*
store i32 1342177304,i32*%bAf,align 4
store i8*%bAd,i8**%e,align 8
%bAg=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bAh=bitcast i8*%bAd to i8**
store i8*%bAg,i8**%bAh,align 8
%bAi=load i8*,i8**%j,align 8
%bAj=getelementptr inbounds i8,i8*%bAd,i64 8
%bAk=bitcast i8*%bAj to i8**
store i8*%bAi,i8**%bAk,align 8
%bAl=getelementptr inbounds i8,i8*%bAd,i64 16
%bAm=bitcast i8*%bAl to i8**
store i8*null,i8**%bAm,align 8
%bAn=getelementptr inbounds i8,i8*%bAd,i64 24
%bAo=bitcast i8*%bAn to i32*
store i32 7,i32*%bAo,align 4
%bAp=call i8*@sml_alloc(i32 inreg 20)#0
%bAq=getelementptr inbounds i8,i8*%bAp,i64 -4
%bAr=bitcast i8*%bAq to i32*
store i32 1342177296,i32*%bAr,align 4
%bAs=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bAt=bitcast i8*%bAp to i8**
store i8*%bAs,i8**%bAt,align 8
br label%bzg
bAu:
store i8*null,i8**%j,align 8
%bAv=load i8*,i8**%f,align 8
%bAw=getelementptr inbounds i8,i8*%bAv,i64 16
%bAx=bitcast i8*%bAw to i8***
%bAy=load i8**,i8***%bAx,align 8
%bAz=load i8*,i8**%bAy,align 8
store i8*%bAz,i8**%d,align 8
%bAA=call i8*@sml_alloc(i32 inreg 20)#0
%bAB=getelementptr inbounds i8,i8*%bAA,i64 -4
%bAC=bitcast i8*%bAB to i32*
store i32 1342177296,i32*%bAC,align 4
%bAD=load i8*,i8**%c,align 8
%bAE=bitcast i8*%bAA to i8**
store i8*%bAD,i8**%bAE,align 8
%bAF=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bAG=getelementptr inbounds i8,i8*%bAA,i64 8
%bAH=bitcast i8*%bAG to i8**
store i8*%bAF,i8**%bAH,align 8
%bAI=getelementptr inbounds i8,i8*%bAA,i64 16
%bAJ=bitcast i8*%bAI to i32*
store i32 3,i32*%bAJ,align 4
%bAK=call fastcc i8*@_SMLFN10ULexBuffer8subtractE(i8*inreg%bAA)
%bAL=call fastcc i8*@_SMLFN9Substring6stringE(i8*inreg%bAK)
store i8*%bAL,i8**%d,align 8
%bAM=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%bAN=getelementptr inbounds i8,i8*%bAM,i64 16
%bAO=bitcast i8*%bAN to i8**
%bAP=load i8*,i8**%bAO,align 8
%bAQ=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bAR=bitcast i8*%bAP to i8**
call void@sml_write(i8*inreg%bAP,i8**inreg%bAR,i8*inreg%bAQ)#0
%bAS=call fastcc i8*@_SMLFN6Option5valOfE(i32 inreg 0,i32 inreg 8)
%bAT=getelementptr inbounds i8,i8*%bAS,i64 16
%bAU=bitcast i8*%bAT to i8*(i8*,i8*)**
%bAV=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%bAU,align 8
%bAW=bitcast i8*%bAS to i8**
%bAX=load i8*,i8**%bAW,align 8
store i8*%bAX,i8**%c,align 8
%bAY=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bAZ=call fastcc i8*@_SMLFN6Real6410fromStringE(i8*inreg%bAY)
%bA0=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bA1=call fastcc i8*%bAV(i8*inreg%bA0,i8*inreg%bAZ)
%bA2=bitcast i8*%bA1 to double*
%bA3=load double,double*%bA2,align 8
%bA4=call i8*@sml_alloc(i32 inreg 20)#0
%bA5=bitcast i8*%bA4 to i32*
%bA6=getelementptr inbounds i8,i8*%bA4,i64 -4
%bA7=bitcast i8*%bA6 to i32*
store i32 1342177296,i32*%bA7,align 4
%bA8=getelementptr inbounds i8,i8*%bA4,i64 4
%bA9=bitcast i8*%bA8 to i32*
store i32 0,i32*%bA9,align 1
store i32 4,i32*%bA5,align 4
%bBa=getelementptr inbounds i8,i8*%bA4,i64 8
%bBb=bitcast i8*%bBa to double*
store double%bA3,double*%bBb,align 8
%bBc=getelementptr inbounds i8,i8*%bA4,i64 16
%bBd=bitcast i8*%bBc to i32*
store i32 0,i32*%bBd,align 4
ret i8*%bA4
bBe:
store i8*null,i8**%f,align 8
%bBf=load i8*,i8**@_SMLZ4Bind,align 8
store i8*%bBf,i8**%c,align 8
%bBg=call i8*@sml_alloc(i32 inreg 20)#0
%bBh=getelementptr inbounds i8,i8*%bBg,i64 -4
%bBi=bitcast i8*%bBh to i32*
store i32 1342177296,i32*%bBi,align 4
store i8*%bBg,i8**%d,align 8
%bBj=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bBk=bitcast i8*%bBg to i8**
store i8*%bBj,i8**%bBk,align 8
%bBl=getelementptr inbounds i8,i8*%bBg,i64 8
%bBm=bitcast i8*%bBl to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[42x i8]}>,<{[4x i8],i32,[42x i8]}>*@u,i64 0,i32 2,i64 0),i8**%bBm,align 8
%bBn=getelementptr inbounds i8,i8*%bBg,i64 16
%bBo=bitcast i8*%bBn to i32*
store i32 3,i32*%bBo,align 4
%bBp=call i8*@sml_alloc(i32 inreg 60)#0
%bBq=getelementptr inbounds i8,i8*%bBp,i64 -4
%bBr=bitcast i8*%bBq to i32*
store i32 1342177336,i32*%bBr,align 4
%bBs=getelementptr inbounds i8,i8*%bBp,i64 56
%bBt=bitcast i8*%bBs to i32*
store i32 1,i32*%bBt,align 4
%bBu=load i8*,i8**%d,align 8
%bBv=bitcast i8*%bBp to i8**
store i8*%bBu,i8**%bBv,align 8
call void@sml_raise(i8*inreg%bBp)#1
unreachable
bBw:
%bBx=bitcast i8*%aHe to i32**
%bBy=load i32*,i32**%bBx,align 8
%bBz=load i32,i32*%bBy,align 4
%bBA=call fastcc i8*@_SMLFN4UTF86encodeE(i32 inreg%bBz)
store i8*%bBA,i8**%c,align 8
%bBB=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2),align 8
store i8*%bBB,i8**%d,align 8
%bBC=call i8*@sml_alloc(i32 inreg 20)#0
%bBD=getelementptr inbounds i8,i8*%bBC,i64 -4
%bBE=bitcast i8*%bBD to i32*
store i32 1342177296,i32*%bBE,align 4
%bBF=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bBG=bitcast i8*%bBC to i8**
store i8*%bBF,i8**%bBG,align 8
%bBH=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%bBI=getelementptr inbounds i8,i8*%bBC,i64 8
%bBJ=bitcast i8*%bBI to i8**
store i8*%bBH,i8**%bBJ,align 8
%bBK=getelementptr inbounds i8,i8*%bBC,i64 16
%bBL=bitcast i8*%bBK to i32*
store i32 3,i32*%bBL,align 4
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,i8*}>,<{[4x i8],i32,i8*}>*@_SMLDL722,i64 0,i32 2),i8*inreg%bBC)#0
br label%bBM
bBM:
br label%w
bBN:
store i8*null,i8**%f,align 8
%bBO=load atomic i32,i32*@sml_check_flag unordered,align 4
%bBP=icmp eq i32%bBO,0
br i1%bBP,label%bBR,label%bBQ
bBQ:
call void@sml_check(i32 inreg%bBO)
br label%bBR
bBR:
ret i8*bitcast(i32*getelementptr inbounds(<{[4x i8],i32,i32,[4x i8],i32}>,<{[4x i8],i32,i32,[4x i8],i32}>*@a,i64 0,i32 2)to i8*)
bBS:
%bBT=load atomic i32,i32*@sml_check_flag unordered,align 4
%bBU=icmp eq i32%bBT,0
br i1%bBU,label%bBW,label%bBV
bBV:
call void@sml_check(i32 inreg%bBT)
br label%bBW
bBW:
%bBX=load i8*,i8**%c,align 8
%bBY=icmp eq i8*%bBX,null
br i1%bBY,label%bBZ,label%bCj
bBZ:
%bB0=load i8*,i8**@_SMLZ4Fail,align 8
store i8*%bB0,i8**%c,align 8
%bB1=call i8*@sml_alloc(i32 inreg 28)#0
%bB2=getelementptr inbounds i8,i8*%bB1,i64 -4
%bB3=bitcast i8*%bB2 to i32*
store i32 1342177304,i32*%bB3,align 4
store i8*%bB1,i8**%d,align 8
%bB4=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bB5=bitcast i8*%bB1 to i8**
store i8*%bB4,i8**%bB5,align 8
%bB6=getelementptr inbounds i8,i8*%bB1,i64 8
%bB7=bitcast i8*%bB6 to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[44x i8]}>,<{[4x i8],i32,[44x i8]}>*@b,i64 0,i32 2,i64 0),i8**%bB7,align 8
%bB8=getelementptr inbounds i8,i8*%bB1,i64 16
%bB9=bitcast i8*%bB8 to i8**
store i8*getelementptr inbounds(<{[4x i8],i32,[28x i8]}>,<{[4x i8],i32,[28x i8]}>*@c,i64 0,i32 2,i64 0),i8**%bB9,align 8
%bCa=getelementptr inbounds i8,i8*%bB1,i64 24
%bCb=bitcast i8*%bCa to i32*
store i32 7,i32*%bCb,align 4
%bCc=call i8*@sml_alloc(i32 inreg 60)#0
%bCd=getelementptr inbounds i8,i8*%bCc,i64 -4
%bCe=bitcast i8*%bCd to i32*
store i32 1342177336,i32*%bCe,align 4
%bCf=getelementptr inbounds i8,i8*%bCc,i64 56
%bCg=bitcast i8*%bCf to i32*
store i32 1,i32*%bCg,align 4
%bCh=load i8*,i8**%d,align 8
%bCi=bitcast i8*%bCc to i8**
store i8*%bCh,i8**%bCi,align 8
call void@sml_raise(i8*inreg%bCc)#1
unreachable
bCj:
%bCk=bitcast i8*%bBX to i8**
%bCl=load i8*,i8**%bCk,align 8
store i8*%bCl,i8**%d,align 8
%bCm=getelementptr inbounds i8,i8*%bBX,i64 8
%bCn=bitcast i8*%bCm to i8**
%bCo=load i8*,i8**%bCn,align 8
%bCp=getelementptr inbounds i8,i8*%bCo,i64 16
%bCq=bitcast i8*%bCp to i8*(i8*,i8*)**
%bCr=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%bCq,align 8
%bCs=bitcast i8*%bCo to i8**
%bCt=load i8*,i8**%bCs,align 8
store i8*%bCt,i8**%e,align 8
%bCu=getelementptr inbounds i8,i8*%bBX,i64 16
%bCv=bitcast i8*%bCu to i8**
%bCw=load i8*,i8**%bCv,align 8
store i8*%bCw,i8**%c,align 8
%bCx=call i8*@sml_alloc(i32 inreg 20)#0
%bCy=getelementptr inbounds i8,i8*%bCx,i64 -4
%bCz=bitcast i8*%bCy to i32*
store i32 1342177296,i32*%bCz,align 4
%bCA=load i8*,i8**%d,align 8
%bCB=bitcast i8*%bCx to i8**
store i8*%bCA,i8**%bCB,align 8
%bCC=load i8*,i8**%c,align 8
%bCD=getelementptr inbounds i8,i8*%bCx,i64 8
%bCE=bitcast i8*%bCD to i8**
store i8*%bCC,i8**%bCE,align 8
%bCF=getelementptr inbounds i8,i8*%bCx,i64 16
%bCG=bitcast i8*%bCF to i32*
store i32 3,i32*%bCG,align 4
%bCH=load i8*,i8**%e,align 8
%bCI=tail call fastcc i8*%bCr(i8*inreg%bCH,i8*inreg%bCx)
ret i8*%bCI
}
define internal fastcc i8*@_SMLLLN9JSONLexer3lexE_795(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
%g=alloca i8*,align 8
%h=alloca i8*,align 8
%i=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
store i8*%a,i8**%h,align 8
%j=bitcast i8**%c to i8***
br label%k
k:
%l=phi i8*[%c9,%cY],[%b,%m]
store i8*%l,i8**%c,align 8
%n=load atomic i32,i32*@sml_check_flag unordered,align 4
%o=icmp eq i32%n,0
%p=bitcast i8*%l to i8**
br i1%o,label%t,label%q
q:
call void@sml_check(i32 inreg%n)
%r=load i8**,i8***%j,align 8
%s=bitcast i8**%r to i8*
br label%t
t:
%u=phi i8*[%s,%q],[%l,%k]
%v=phi i8**[%r,%q],[%p,%k]
%w=load i8*,i8**%v,align 8
%x=bitcast i8*%w to i8**
%y=load i8*,i8**%x,align 8
store i8*%y,i8**%d,align 8
%z=getelementptr inbounds i8,i8*%w,i64 8
%A=bitcast i8*%z to i8**
%B=load i8*,i8**%A,align 8
store i8*%B,i8**%e,align 8
store i8*null,i8**%c,align 8
%C=getelementptr inbounds i8,i8*%u,i64 8
%D=bitcast i8*%C to i32*
%E=load i32,i32*%D,align 4
%F=bitcast i8*%B to i8**
%G=load i8*,i8**%F,align 8
%H=icmp eq i8*%G,null
br i1%H,label%I,label%ch
I:
%J=call i8*@sml_alloc(i32 inreg 4)#0
%K=bitcast i8*%J to i32*
%L=getelementptr inbounds i8,i8*%J,i64 -4
%M=bitcast i8*%L to i32*
store i32 536870916,i32*%M,align 4
store i8*%J,i8**%g,align 8
store i32%E,i32*%K,align 4
%N=call i8*@sml_alloc(i32 inreg 8)#0
%O=getelementptr inbounds i8,i8*%N,i64 -4
%P=bitcast i8*%O to i32*
store i32 805306376,i32*%P,align 4
store i8*%N,i8**%f,align 8
%Q=bitcast i8*%N to i64*
store i64 0,i64*%Q,align 1
%R=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%S=bitcast i8*%N to i8**
call void@sml_write(i8*inreg%N,i8**inreg%S,i8*inreg%R)#0
%T=call i8*@sml_alloc(i32 inreg 4)#0
%U=getelementptr inbounds i8,i8*%T,i64 -4
%V=bitcast i8*%U to i32*
store i32 536870916,i32*%V,align 4
store i8*%T,i8**%d,align 8
%W=bitcast i8**%f to i8***
%X=load i8**,i8***%W,align 8
%Y=load i8*,i8**%X,align 8
%Z=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%Y)
%aa=bitcast i8**%d to i32**
%ab=load i32*,i32**%aa,align 8
store i32%Z,i32*%ab,align 4
%ac=load i8**,i8***%W,align 8
%ad=load i8*,i8**%ac,align 8
%ae=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%ad)
%af=call i8*@sml_alloc(i32 inreg 4)#0
%ag=getelementptr inbounds i8,i8*%af,i64 -4
%ah=bitcast i8*%ag to i32*
store i32 536870916,i32*%ah,align 4
store i8*%af,i8**%c,align 8
%ai=load i8**,i8***%W,align 8
%aj=load i8*,i8**%ai,align 8
%ak=call fastcc i32@_SMLFN10ULexBuffer9lastWasNLE(i8*inreg%aj)
%al=bitcast i8**%c to i32**
%am=load i32*,i32**%al,align 8
store i32%ak,i32*%am,align 4
%an=bitcast i8**%h to i8***
%ao=load i8**,i8***%an,align 8
%ap=load i8*,i8**%ao,align 8
store i8*%ap,i8**%h,align 8
%aq=call i8*@sml_alloc(i32 inreg 44)#0
%ar=getelementptr inbounds i8,i8*%aq,i64 -4
%as=bitcast i8*%ar to i32*
store i32 1342177320,i32*%as,align 4
store i8*%aq,i8**%i,align 8
%at=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%au=bitcast i8*%aq to i8**
store i8*%at,i8**%au,align 8
%av=load i8*,i8**%g,align 8
%aw=getelementptr inbounds i8,i8*%aq,i64 8
%ax=bitcast i8*%aw to i8**
store i8*%av,i8**%ax,align 8
%ay=load i8*,i8**%f,align 8
%az=getelementptr inbounds i8,i8*%aq,i64 16
%aA=bitcast i8*%az to i8**
store i8*%ay,i8**%aA,align 8
%aB=load i8*,i8**%d,align 8
%aC=getelementptr inbounds i8,i8*%aq,i64 24
%aD=bitcast i8*%aC to i8**
store i8*%aB,i8**%aD,align 8
%aE=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aF=getelementptr inbounds i8,i8*%aq,i64 32
%aG=bitcast i8*%aF to i8**
store i8*%aE,i8**%aG,align 8
%aH=getelementptr inbounds i8,i8*%aq,i64 40
%aI=bitcast i8*%aH to i32*
store i32 31,i32*%aI,align 4
%aJ=call i8*@sml_alloc(i32 inreg 28)#0
%aK=getelementptr inbounds i8,i8*%aJ,i64 -4
%aL=bitcast i8*%aK to i32*
store i32 1342177304,i32*%aL,align 4
%aM=load i8*,i8**%i,align 8
%aN=bitcast i8*%aJ to i8**
store i8*%aM,i8**%aN,align 8
%aO=getelementptr inbounds i8,i8*%aJ,i64 8
%aP=bitcast i8*%aO to void(...)**
store void(...)*bitcast(i8*(i8*,i32)*@_SMLLL8continue_723 to void(...)*),void(...)**%aP,align 8
%aQ=getelementptr inbounds i8,i8*%aJ,i64 16
%aR=bitcast i8*%aQ to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL8continue_812 to void(...)*),void(...)**%aR,align 8
%aS=getelementptr inbounds i8,i8*%aJ,i64 24
%aT=bitcast i8*%aS to i32*
store i32 -2147483647,i32*%aT,align 4
store i8*null,i8**%i,align 8
%aU=call fastcc i8*@_SMLLL8continue_723(i8*inreg%aM,i32 inreg 0)
store i8*%aU,i8**%c,align 8
%aV=load i32*,i32**%aa,align 8
store i8*null,i8**%d,align 8
%aW=load i32,i32*%aV,align 4
%aX=load i8**,i8***%W,align 8
%aY=load i8*,i8**%aX,align 8
%aZ=call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%aY)
%a0=call i8*@sml_alloc(i32 inreg 12)#0
%a1=bitcast i8*%a0 to i32*
%a2=getelementptr inbounds i8,i8*%a0,i64 -4
%a3=bitcast i8*%a2 to i32*
store i32 1342177288,i32*%a3,align 4
store i8*%a0,i8**%d,align 8
store i32%aW,i32*%a1,align 4
%a4=getelementptr inbounds i8,i8*%a0,i64 4
%a5=bitcast i8*%a4 to i32*
store i32%aZ,i32*%a5,align 4
%a6=getelementptr inbounds i8,i8*%a0,i64 8
%a7=bitcast i8*%a6 to i32*
store i32 0,i32*%a7,align 4
%a8=load i8**,i8***%W,align 8
%a9=load i8*,i8**%a8,align 8
store i8*%a9,i8**%f,align 8
%ba=bitcast i8**%g to i32**
%bb=load i32*,i32**%ba,align 8
store i8*null,i8**%g,align 8
%bc=load i32,i32*%bb,align 4
%bd=call i8*@sml_alloc(i32 inreg 8)#0
%be=getelementptr inbounds i8,i8*%bd,i64 -4
%bf=bitcast i8*%be to i32*
store i32 805306376,i32*%bf,align 4
store i8*%bd,i8**%h,align 8
%bg=bitcast i8*%bd to i64*
store i64 0,i64*%bg,align 1
%bh=bitcast i8*%bd to i8**
call void@sml_write(i8*inreg%bd,i8**inreg%bh,i8*inreg null)#0
%bi=call i8*@sml_alloc(i32 inreg 20)#0
%bj=getelementptr inbounds i8,i8*%bi,i64 -4
%bk=bitcast i8*%bj to i32*
store i32 1342177296,i32*%bk,align 4
store i8*%bi,i8**%g,align 8
%bl=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%bm=bitcast i8*%bi to i8**
store i8*%bl,i8**%bm,align 8
%bn=load i8*,i8**%h,align 8
store i8*null,i8**%h,align 8
%bo=getelementptr inbounds i8,i8*%bi,i64 8
%bp=bitcast i8*%bo to i8**
store i8*%bn,i8**%bp,align 8
%bq=getelementptr inbounds i8,i8*%bi,i64 16
%br=bitcast i8*%bq to i32*
store i32 3,i32*%br,align 4
%bs=call i8*@sml_alloc(i32 inreg 44)#0
%bt=getelementptr inbounds i8,i8*%bs,i64 -4
%bu=bitcast i8*%bt to i32*
store i32 1342177320,i32*%bu,align 4
store i8*%bs,i8**%f,align 8
%bv=getelementptr inbounds i8,i8*%bs,i64 4
call void@llvm.memset.p0i8.i32(i8*%bv,i8 0,i32 36,i1 false)
%bw=bitcast i8*%bs to i32*
store i32%E,i32*%bw,align 4
%bx=load i8*,i8**%c,align 8
%by=getelementptr inbounds i8,i8*%bs,i64 8
%bz=bitcast i8*%by to i8**
store i8*%bx,i8**%bz,align 8
%bA=load i8*,i8**%d,align 8
%bB=getelementptr inbounds i8,i8*%bs,i64 16
%bC=bitcast i8*%bB to i8**
store i8*%bA,i8**%bC,align 8
%bD=load i8*,i8**%g,align 8
%bE=getelementptr inbounds i8,i8*%bs,i64 24
%bF=bitcast i8*%bE to i8**
store i8*%bD,i8**%bF,align 8
%bG=getelementptr inbounds i8,i8*%bs,i64 32
%bH=bitcast i8*%bG to i32*
store i32%bc,i32*%bH,align 4
%bI=getelementptr inbounds i8,i8*%bs,i64 40
%bJ=bitcast i8*%bI to i32*
store i32 14,i32*%bJ,align 4
%bK=call i8*@sml_alloc(i32 inreg 12)#0
%bL=getelementptr inbounds i8,i8*%bK,i64 -4
%bM=bitcast i8*%bL to i32*
store i32 1342177288,i32*%bM,align 4
%bN=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%bO=bitcast i8*%bK to i8**
store i8*%bN,i8**%bO,align 8
%bP=getelementptr inbounds i8,i8*%bK,i64 8
%bQ=bitcast i8*%bP to i32*
store i32 1,i32*%bQ,align 4
%bR=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%bS=bitcast i8*%bR to i8**
call void@sml_write(i8*inreg%bR,i8**inreg%bS,i8*inreg%bK)#0
%bT=call i8*@sml_alloc(i32 inreg 20)#0
%bU=getelementptr inbounds i8,i8*%bT,i64 -4
%bV=bitcast i8*%bU to i32*
store i32 1342177296,i32*%bV,align 4
store i8*%bT,i8**%e,align 8
%bW=getelementptr inbounds i8,i8*%bT,i64 12
%bX=bitcast i8*%bW to i32*
store i32 0,i32*%bX,align 1
%bY=load i8*,i8**%g,align 8
%bZ=bitcast i8*%bT to i8**
store i8*null,i8**%g,align 8
store i8*%bY,i8**%bZ,align 8
%b0=getelementptr inbounds i8,i8*%bT,i64 8
%b1=bitcast i8*%b0 to i32*
store i32%bc,i32*%b1,align 4
%b2=getelementptr inbounds i8,i8*%bT,i64 16
%b3=bitcast i8*%b2 to i32*
store i32 1,i32*%b3,align 4
%b4=call i8*@sml_alloc(i32 inreg 28)#0
%b5=getelementptr inbounds i8,i8*%b4,i64 -4
%b6=bitcast i8*%b5 to i32*
store i32 1342177304,i32*%b6,align 4
%b7=load i8*,i8**%c,align 8
%b8=bitcast i8*%b4 to i8**
store i8*%b7,i8**%b8,align 8
%b9=load i8*,i8**%d,align 8
%ca=getelementptr inbounds i8,i8*%b4,i64 8
%cb=bitcast i8*%ca to i8**
store i8*%b9,i8**%cb,align 8
%cc=load i8*,i8**%e,align 8
%cd=getelementptr inbounds i8,i8*%b4,i64 16
%ce=bitcast i8*%cd to i8**
store i8*%cc,i8**%ce,align 8
%cf=getelementptr inbounds i8,i8*%b4,i64 24
%cg=bitcast i8*%cf to i32*
store i32 7,i32*%cg,align 4
ret i8*%b4
ch:
%ci=bitcast i8*%G to i8**
%cj=load i8*,i8**%ci,align 8
%ck=bitcast i8*%cj to i32*
%cl=load i32,i32*%ck,align 4
%cm=getelementptr inbounds i8,i8*%cj,i64 8
%cn=bitcast i8*%cm to i8**
%co=load i8*,i8**%cn,align 8
store i8*%co,i8**%c,align 8
%cp=getelementptr inbounds i8,i8*%cj,i64 16
%cq=bitcast i8*%cp to i8**
%cr=load i8*,i8**%cq,align 8
store i8*%cr,i8**%f,align 8
%cs=getelementptr inbounds i8,i8*%cj,i64 24
%ct=bitcast i8*%cs to i8**
%cu=load i8*,i8**%ct,align 8
store i8*%cu,i8**%g,align 8
%cv=icmp eq i32%E,%cl
br i1%cv,label%cw,label%cY
cw:
%cx=getelementptr inbounds i8,i8*%cj,i64 32
%cy=bitcast i8*%cx to i32*
%cz=load i32,i32*%cy,align 4
store i8*null,i8**%d,align 8
store i8*null,i8**%e,align 8
store i8*null,i8**%h,align 8
%cA=call i8*@sml_alloc(i32 inreg 20)#0
%cB=getelementptr inbounds i8,i8*%cA,i64 -4
%cC=bitcast i8*%cB to i32*
store i32 1342177296,i32*%cC,align 4
store i8*%cA,i8**%d,align 8
%cD=getelementptr inbounds i8,i8*%cA,i64 12
%cE=bitcast i8*%cD to i32*
store i32 0,i32*%cE,align 1
%cF=load i8*,i8**%g,align 8
%cG=bitcast i8*%cA to i8**
store i8*null,i8**%g,align 8
store i8*%cF,i8**%cG,align 8
%cH=getelementptr inbounds i8,i8*%cA,i64 8
%cI=bitcast i8*%cH to i32*
store i32%cz,i32*%cI,align 4
%cJ=getelementptr inbounds i8,i8*%cA,i64 16
%cK=bitcast i8*%cJ to i32*
store i32 1,i32*%cK,align 4
%cL=call i8*@sml_alloc(i32 inreg 28)#0
%cM=getelementptr inbounds i8,i8*%cL,i64 -4
%cN=bitcast i8*%cM to i32*
store i32 1342177304,i32*%cN,align 4
%cO=load i8*,i8**%c,align 8
%cP=bitcast i8*%cL to i8**
store i8*%cO,i8**%cP,align 8
%cQ=load i8*,i8**%f,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**%d,align 8
%cU=getelementptr inbounds i8,i8*%cL,i64 16
%cV=bitcast i8*%cU to i8**
store i8*%cT,i8**%cV,align 8
%cW=getelementptr inbounds i8,i8*%cL,i64 24
%cX=bitcast i8*%cW to i32*
store i32 7,i32*%cX,align 4
ret i8*%cL
cY:
store i8*null,i8**%c,align 8
store i8*null,i8**%f,align 8
store i8*null,i8**%g,align 8
call void@sml_write(i8*inreg%B,i8**inreg%F,i8*inreg null)#0
%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**%c,align 8
%c2=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%c3=bitcast i8*%cZ to i8**
store i8*%c2,i8**%c3,align 8
%c4=load i8*,i8**%e,align 8
store i8*null,i8**%e,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 20)#0
%da=getelementptr inbounds i8,i8*%c9,i64 -4
%db=bitcast i8*%da to i32*
store i32 1342177296,i32*%db,align 4
%dc=getelementptr inbounds i8,i8*%c9,i64 12
%dd=bitcast i8*%dc to i32*
store i32 0,i32*%dd,align 1
%de=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%df=bitcast i8*%c9 to i8**
store i8*%de,i8**%df,align 8
%dg=getelementptr inbounds i8,i8*%c9,i64 8
%dh=bitcast i8*%dg to i32*
store i32%E,i32*%dh,align 4
%di=getelementptr inbounds i8,i8*%c9,i64 16
%dj=bitcast i8*%di to i32*
store i32 1,i32*%dj,align 4
br label%k
}
define fastcc i8*@_SMLFN9JSONLexer3lexE(i8*inreg%a)#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
store i8*%a,i8**%b,align 8
%d=call i8*@sml_alloc(i32 inreg 12)#0
%e=getelementptr inbounds i8,i8*%d,i64 -4
%f=bitcast i8*%e to i32*
store i32 1342177288,i32*%f,align 4
store i8*%d,i8**%c,align 8
%g=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%h=bitcast i8*%d to i8**
store i8*%g,i8**%h,align 8
%i=getelementptr inbounds i8,i8*%d,i64 8
%j=bitcast i8*%i to i32*
store i32 1,i32*%j,align 4
%k=call i8*@sml_alloc(i32 inreg 28)#0
%l=getelementptr inbounds i8,i8*%k,i64 -4
%m=bitcast i8*%l to i32*
store i32 1342177304,i32*%m,align 4
%n=load i8*,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 void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN9JSONLexer3lexE_795 to void(...)*),void(...)**%q,align 8
%r=getelementptr inbounds i8,i8*%k,i64 16
%s=bitcast i8*%r to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN9JSONLexer3lexE_795 to void(...)*),void(...)**%s,align 8
%t=getelementptr inbounds i8,i8*%k,i64 24
%u=bitcast i8*%t to i32*
store i32 -2147483647,i32*%u,align 4
ret i8*%k
}
define fastcc i8*@_SMLFN9JSONLexer9streamifyE(i8*inreg%a)#2 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=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%h,label%g
g:
call void@sml_check(i32 inreg%e)
br label%h
h:
%i=call i8*@sml_alloc(i32 inreg 20)#0
%j=getelementptr inbounds i8,i8*%i,i64 -4
%k=bitcast i8*%j to i32*
store i32 1342177296,i32*%k,align 4
%l=bitcast i8*%i to i64*
store i64 0,i64*%l,align 4
%m=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%n=getelementptr inbounds i8,i8*%i,i64 8
%o=bitcast i8*%n to i8**
store i8*%m,i8**%o,align 8
%p=getelementptr inbounds i8,i8*%i,i64 16
%q=bitcast i8*%p to i32*
store i32 2,i32*%q,align 4
%r=call fastcc i8*@_SMLFN10ULexBuffer8mkStreamE(i8*inreg%i)
store i8*%r,i8**%b,align 8
%s=call i8*@sml_alloc(i32 inreg 8)#0
%t=getelementptr inbounds i8,i8*%s,i64 -4
%u=bitcast i8*%t to i32*
store i32 805306376,i32*%u,align 4
store i8*%s,i8**%c,align 8
%v=bitcast i8*%s to i64*
store i64 0,i64*%v,align 1
%w=bitcast i8*%s to i8**
call void@sml_write(i8*inreg%s,i8**inreg%w,i8*inreg null)#0
%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**%b,align 8
store i8*null,i8**%b,align 8
%B=bitcast i8*%x to i8**
store i8*%A,i8**%B,align 8
%C=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%D=getelementptr inbounds i8,i8*%x,i64 8
%E=bitcast i8*%D to i8**
store i8*%C,i8**%E,align 8
%F=getelementptr inbounds i8,i8*%x,i64 16
%G=bitcast i8*%F to i32*
store i32 3,i32*%G,align 4
%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
%K=getelementptr inbounds i8,i8*%H,i64 12
%L=bitcast i8*%K to i32*
store i32 0,i32*%L,align 1
%M=load i8*,i8**%d,align 8
%N=bitcast i8*%H to i8**
store i8*%M,i8**%N,align 8
%O=getelementptr inbounds i8,i8*%H,i64 8
%P=bitcast i8*%O to i32*
store i32 0,i32*%P,align 4
%Q=getelementptr inbounds i8,i8*%H,i64 16
%R=bitcast i8*%Q to i32*
store i32 1,i32*%R,align 4
ret i8*%H
}
define internal fastcc i8*@_SMLLLN9JSONLexer17streamifyInstreamE_800(i8*inreg%a,i32 inreg%b)#2 gc"smlsharp"{
%c=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
store i8*%a,i8**%c,align 8
%d=load atomic i32,i32*@sml_check_flag unordered,align 4
%e=icmp eq i32%d,0
br i1%e,label%f,label%h
f:
%g=bitcast i8*%a to i8**
br label%k
h:
call void@sml_check(i32 inreg%d)
%i=bitcast i8**%c to i8***
%j=load i8**,i8***%i,align 8
br label%k
k:
%l=phi i8**[%j,%h],[%g,%f]
%m=load i8*,i8**%l,align 8
%n=tail call fastcc i8*@_SMLFN6TextIO5inputE(i8*inreg%m)
ret i8*%n
}
define fastcc i8*@_SMLFN9JSONLexer17streamifyInstreamE(i8*inreg%a)#2 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=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%h,label%g
g:
call void@sml_check(i32 inreg%e)
br label%h
h:
%i=call i8*@sml_alloc(i32 inreg 12)#0
%j=getelementptr inbounds i8,i8*%i,i64 -4
%k=bitcast i8*%j to i32*
store i32 1342177288,i32*%k,align 4
store i8*%i,i8**%c,align 8
%l=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%m=bitcast i8*%i to i8**
store i8*%l,i8**%m,align 8
%n=getelementptr inbounds i8,i8*%i,i64 8
%o=bitcast i8*%n to i32*
store i32 1,i32*%o,align 4
%p=call i8*@sml_alloc(i32 inreg 28)#0
%q=getelementptr inbounds i8,i8*%p,i64 -4
%r=bitcast i8*%q to i32*
store i32 1342177304,i32*%r,align 4
store i8*%p,i8**%b,align 8
%s=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%t=bitcast i8*%p to i8**
store i8*%s,i8**%t,align 8
%u=getelementptr inbounds i8,i8*%p,i64 8
%v=bitcast i8*%u to void(...)**
store void(...)*bitcast(i8*(i8*,i32)*@_SMLLLN9JSONLexer17streamifyInstreamE_800 to void(...)*),void(...)**%v,align 8
%w=getelementptr inbounds i8,i8*%p,i64 16
%x=bitcast i8*%w to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN9JSONLexer17streamifyInstreamE_815 to void(...)*),void(...)**%x,align 8
%y=getelementptr inbounds i8,i8*%p,i64 24
%z=bitcast i8*%y to i32*
store i32 -2147483647,i32*%z,align 4
%A=call i8*@sml_alloc(i32 inreg 20)#0
%B=getelementptr inbounds i8,i8*%A,i64 -4
%C=bitcast i8*%B to i32*
store i32 1342177296,i32*%C,align 4
%D=bitcast i8*%A to i64*
store i64 0,i64*%D,align 4
%E=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%F=getelementptr inbounds i8,i8*%A,i64 8
%G=bitcast i8*%F to i8**
store i8*%E,i8**%G,align 8
%H=getelementptr inbounds i8,i8*%A,i64 16
%I=bitcast i8*%H to i32*
store i32 2,i32*%I,align 4
%J=call fastcc i8*@_SMLFN10ULexBuffer8mkStreamE(i8*inreg%A)
store i8*%J,i8**%b,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**%c,align 8
%N=bitcast i8*%K to i64*
store i64 0,i64*%N,align 1
%O=bitcast i8*%K to i8**
call void@sml_write(i8*inreg%K,i8**inreg%O,i8*inreg null)#0
%P=call i8*@sml_alloc(i32 inreg 20)#0
%Q=getelementptr inbounds i8,i8*%P,i64 -4
%R=bitcast i8*%Q to i32*
store i32 1342177296,i32*%R,align 4
store i8*%P,i8**%d,align 8
%S=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%T=bitcast i8*%P to i8**
store i8*%S,i8**%T,align 8
%U=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%V=getelementptr inbounds i8,i8*%P,i64 8
%W=bitcast i8*%V to i8**
store i8*%U,i8**%W,align 8
%X=getelementptr inbounds i8,i8*%P,i64 16
%Y=bitcast i8*%X to i32*
store i32 3,i32*%Y,align 4
%Z=call i8*@sml_alloc(i32 inreg 20)#0
%aa=getelementptr inbounds i8,i8*%Z,i64 -4
%ab=bitcast i8*%aa to i32*
store i32 1342177296,i32*%ab,align 4
%ac=getelementptr inbounds i8,i8*%Z,i64 12
%ad=bitcast i8*%ac to i32*
store i32 0,i32*%ad,align 1
%ae=load i8*,i8**%d,align 8
%af=bitcast i8*%Z to i8**
store i8*%ae,i8**%af,align 8
%ag=getelementptr inbounds i8,i8*%Z,i64 8
%ah=bitcast i8*%ag to i32*
store i32 0,i32*%ah,align 4
%ai=getelementptr inbounds i8,i8*%Z,i64 16
%aj=bitcast i8*%ai to i32*
store i32 1,i32*%aj,align 4
ret i8*%Z
}
define internal fastcc i8*@_SMLLL5input_803(i8*inreg%a,i32 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**%e,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**%e,align 8
br label%k
k:
%l=phi i8*[%j,%i],[%a,%m]
%n=getelementptr inbounds i8,i8*%l,i64 20
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=add i32%p,-1
%r=sub i32 0,%p
%s=and i32%q,%r
%t=add i32%p,3
%u=add i32%t,%s
%v=and i32%u,-4
%w=add i32%v,11
%x=and i32%w,-8
%y=add i32%x,15
%z=and i32%y,-8
%A=lshr i32%w,3
%B=lshr i32%u,3
%C=sub nsw i32%A,%B
%D=lshr i32%s,3
%E=sub nsw i32%B,%D
%F=shl i32 1,%C
%G=shl i32%F,%E
%H=getelementptr inbounds i8,i8*%l,i64 16
%I=bitcast i8*%H to i32*
%J=load i32,i32*%I,align 4
%K=or i32%G,%J
%L=or i32%z,4
%M=and i32%p,%r
%N=add i32%p,7
%O=and i32%N,%r
%P=add i32%N,%O
%Q=and i32%P,-8
%R=lshr i32%O,3
%S=shl i32%J,%R
%T=or i32%S,1
%U=or i32%Q,4
%V=getelementptr inbounds i8,i8*%l,i64 8
%W=bitcast i8*%V to i8**
%X=load i8*,i8**%W,align 8
store i8*%X,i8**%c,align 8
%Y=icmp eq i32%J,0
br i1%Y,label%ac,label%Z
Z:
store i8*null,i8**%c,align 8
%aa=bitcast i8*%X to i8**
%ab=load i8*,i8**%aa,align 8
br label%ao
ac:
%ad=call i8*@sml_alloc(i32 inreg%p)#0
%ae=getelementptr inbounds i8,i8*%ad,i64 -4
%af=bitcast i8*%ae to i32*
store i32%p,i32*%af,align 4
%ag=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
call void@llvm.memcpy.p0i8.p0i8.i32(i8*%ad,i8*%ag,i32%p,i1 false)
%ah=load i8*,i8**%e,align 8
%ai=getelementptr inbounds i8,i8*%ah,i64 20
%aj=bitcast i8*%ai to i32*
%ak=load i32,i32*%aj,align 4
%al=getelementptr inbounds i8,i8*%ah,i64 16
%am=bitcast i8*%al to i32*
%an=load i32,i32*%am,align 4
br label%ao
ao:
%ap=phi i32[%an,%ac],[%J,%Z]
%aq=phi i32[%ak,%ac],[%p,%Z]
%ar=phi i8*[%ad,%ac],[%ab,%Z]
store i8*%ar,i8**%c,align 8
%as=call i8*@sml_alloc(i32 inreg%L)#0
%at=or i32%z,1342177280
%au=getelementptr inbounds i8,i8*%as,i64 -4
%av=bitcast i8*%au to i32*
store i32%at,i32*%av,align 4
call void@llvm.memset.p0i8.i32(i8*%as,i8 0,i32%L,i1 false)
%aw=icmp eq i32%ap,0
%ax=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%ay=sext i32%s to i64
%az=getelementptr inbounds i8,i8*%as,i64%ay
br i1%aw,label%aA,label%aB
aA:
call void@llvm.memcpy.p0i8.p0i8.i32(i8*%az,i8*%ax,i32%aq,i1 false)
br label%aD
aB:
%aC=bitcast i8*%az to i8**
store i8*%ax,i8**%aC,align 8
br label%aD
aD:
%aE=sext i32%v to i64
%aF=getelementptr inbounds i8,i8*%as,i64%aE
%aG=bitcast i8*%aF to i32*
store i32 0,i32*%aG,align 4
%aH=sext i32%x to i64
%aI=getelementptr inbounds i8,i8*%as,i64%aH
%aJ=bitcast i8*%aI to i8**
store i8*null,i8**%aJ,align 8
%aK=sext i32%z to i64
%aL=getelementptr inbounds i8,i8*%as,i64%aK
%aM=bitcast i8*%aL to i32*
store i32%K,i32*%aM,align 4
%aN=bitcast i8**%e to i8***
%aO=sext i32%M to i64
br label%aP
aP:
%aQ=phi i8*[%c8,%dh],[%as,%aD]
store i8*%aQ,i8**%c,align 8
%aR=load i8*,i8**%e,align 8
%aS=getelementptr inbounds i8,i8*%aR,i64 16
%aT=bitcast i8*%aS to i32*
%aU=load i32,i32*%aT,align 4
%aV=icmp eq i32%aU,0
br i1%aV,label%a0,label%aW
aW:
%aX=getelementptr inbounds i8,i8*%aQ,i64%ay
%aY=bitcast i8*%aX to i8**
%aZ=load i8*,i8**%aY,align 8
br label%a9
a0:
%a1=getelementptr inbounds i8,i8*%aR,i64 20
%a2=bitcast i8*%a1 to i32*
%a3=load i32,i32*%a2,align 4
%a4=call i8*@sml_alloc(i32 inreg%a3)#0
%a5=getelementptr inbounds i8,i8*%a4,i64 -4
%a6=bitcast i8*%a5 to i32*
store i32%a3,i32*%a6,align 4
%a7=load i8*,i8**%c,align 8
%a8=getelementptr inbounds i8,i8*%a7,i64%ay
call void@llvm.memcpy.p0i8.p0i8.i32(i8*%a4,i8*%a8,i32%a3,i1 false)
br label%a9
a9:
%ba=phi i8*[%a7,%a0],[%aQ,%aW]
%bb=phi i8*[%a4,%a0],[%aZ,%aW]
store i8*%bb,i8**%d,align 8
%bc=getelementptr inbounds i8,i8*%ba,i64%aE
%bd=bitcast i8*%bc to i32*
%be=load i32,i32*%bd,align 4
%bf=getelementptr inbounds i8,i8*%ba,i64%aH
%bg=bitcast i8*%bf to i8**
%bh=load i8*,i8**%bg,align 8
store i8*%bh,i8**%c,align 8
%bi=icmp slt i32%be,1025
br i1%bi,label%bN,label%bj
bj:
%bk=call fastcc i8*@_SMLFN4List3revE(i32 inreg 0,i32 inreg 1)
%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**%c,align 8
store i8*null,i8**%c,align 8
%br=call fastcc i8*%bn(i8*inreg%bp,i8*inreg%bq)
%bs=call fastcc i8*@_SMLFN10CharVector8fromListE(i8*inreg%br)
store i8*%bs,i8**%c,align 8
%bt=load i8*,i8**%e,align 8
%bu=getelementptr inbounds i8,i8*%bt,i64 20
%bv=bitcast i8*%bu to i32*
%bw=load i32,i32*%bv,align 4
%bx=getelementptr inbounds i8,i8*%bt,i64 16
%by=bitcast i8*%bx to i32*
%bz=load i32,i32*%by,align 4
%bA=call i8*@sml_alloc(i32 inreg%U)#0
%bB=or i32%Q,1342177280
%bC=getelementptr inbounds i8,i8*%bA,i64 -4
%bD=bitcast i8*%bC to i32*
store i32%bB,i32*%bD,align 4
call void@llvm.memset.p0i8.i32(i8*%bA,i8 0,i32%U,i1 false)
%bE=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%bF=bitcast i8*%bA to i8**
store i8*%bE,i8**%bF,align 8
%bG=icmp eq i32%bz,0
%bH=load i8*,i8**%d,align 8
%bI=sext i32%O to i64
%bJ=getelementptr inbounds i8,i8*%bA,i64%bI
br i1%bG,label%bK,label%bL
bK:
call void@llvm.memcpy.p0i8.p0i8.i32(i8*%bJ,i8*%bH,i32%bw,i1 false)
br label%dp
bL:
%bM=bitcast i8*%bJ to i8**
store i8*%bH,i8**%bM,align 8
br label%dp
bN:
%bO=load i8**,i8***%aN,align 8
%bP=load i8*,i8**%bO,align 8
%bQ=getelementptr inbounds i8,i8*%bP,i64 16
%bR=bitcast i8*%bQ to i8*(i8*,i8*)**
%bS=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%bR,align 8
%bT=bitcast i8*%bP to i8**
%bU=load i8*,i8**%bT,align 8
%bV=call fastcc i8*%bS(i8*inreg%bU,i8*inreg%bb)
%bW=icmp eq i8*%bV,null
br i1%bW,label%bX,label%cr
bX:
%bY=call fastcc i8*@_SMLFN4List3revE(i32 inreg 0,i32 inreg 1)
%bZ=getelementptr inbounds i8,i8*%bY,i64 16
%b0=bitcast i8*%bZ to i8*(i8*,i8*)**
%b1=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%b0,align 8
%b2=bitcast i8*%bY to i8**
%b3=load i8*,i8**%b2,align 8
%b4=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%b5=call fastcc i8*%b1(i8*inreg%b3,i8*inreg%b4)
%b6=call fastcc i8*@_SMLFN10CharVector8fromListE(i8*inreg%b5)
store i8*%b6,i8**%c,align 8
%b7=load i8*,i8**%e,align 8
%b8=getelementptr inbounds i8,i8*%b7,i64 20
%b9=bitcast i8*%b8 to i32*
%ca=load i32,i32*%b9,align 4
%cb=getelementptr inbounds i8,i8*%b7,i64 16
%cc=bitcast i8*%cb to i32*
%cd=load i32,i32*%cc,align 4
%ce=call i8*@sml_alloc(i32 inreg%U)#0
%cf=or i32%Q,1342177280
%cg=getelementptr inbounds i8,i8*%ce,i64 -4
%ch=bitcast i8*%cg to i32*
store i32%cf,i32*%ch,align 4
call void@llvm.memset.p0i8.i32(i8*%ce,i8 0,i32%U,i1 false)
%ci=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%cj=bitcast i8*%ce to i8**
store i8*%ci,i8**%cj,align 8
%ck=icmp eq i32%cd,0
%cl=load i8*,i8**%d,align 8
%cm=sext i32%O to i64
%cn=getelementptr inbounds i8,i8*%ce,i64%cm
br i1%ck,label%co,label%cp
co:
call void@llvm.memcpy.p0i8.p0i8.i32(i8*%cn,i8*%cl,i32%ca,i1 false)
br label%dp
cp:
%cq=bitcast i8*%cn to i8**
store i8*%cl,i8**%cq,align 8
br label%dp
cr:
%cs=bitcast i8*%bV to i8**
%ct=load i8*,i8**%cs,align 8
store i8*%ct,i8**%d,align 8
%cu=load i8,i8*%ct,align 1
%cv=load i8*,i8**%e,align 8
%cw=getelementptr inbounds i8,i8*%cv,i64 16
%cx=bitcast i8*%cw to i32*
%cy=load i32,i32*%cx,align 4
%cz=icmp eq i32%cy,0
br i1%cz,label%cE,label%cA
cA:
store i8*null,i8**%d,align 8
%cB=getelementptr inbounds i8,i8*%ct,i64%aO
%cC=bitcast i8*%cB to i8**
%cD=load i8*,i8**%cC,align 8
br label%cR
cE:
%cF=getelementptr inbounds i8,i8*%cv,i64 20
%cG=bitcast i8*%cF to i32*
%cH=load i32,i32*%cG,align 4
%cI=call i8*@sml_alloc(i32 inreg%cH)#0
%cJ=getelementptr inbounds i8,i8*%cI,i64 -4
%cK=bitcast i8*%cJ to i32*
store i32%cH,i32*%cK,align 4
%cL=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%cM=getelementptr inbounds i8,i8*%cL,i64%aO
call void@llvm.memcpy.p0i8.p0i8.i32(i8*%cI,i8*%cM,i32%cH,i1 false)
%cN=load i8*,i8**%e,align 8
%cO=getelementptr inbounds i8,i8*%cN,i64 16
%cP=bitcast i8*%cO to i32*
%cQ=load i32,i32*%cP,align 4
br label%cR
cR:
%cS=phi i32[%cQ,%cE],[%cy,%cA]
%cT=phi i8*[%cN,%cE],[%cv,%cA]
%cU=phi i8*[%cI,%cE],[%cD,%cA]
store i8*%cU,i8**%d,align 8
%cV=getelementptr inbounds i8,i8*%cT,i64 20
%cW=bitcast i8*%cV to i32*
%cX=load i32,i32*%cW,align 4
%cY=add nsw i32%be,1
%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**%f,align 8
%c2=getelementptr inbounds i8,i8*%cZ,i64 1
call void@llvm.memset.p0i8.i32(i8*%c2,i8 0,i32 7,i1 false)
store i8%cu,i8*%cZ,align 1
%c3=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%c4=getelementptr inbounds i8,i8*%cZ,i64 8
%c5=bitcast i8*%c4 to i8**
store i8*%c3,i8**%c5,align 8
%c6=getelementptr inbounds i8,i8*%cZ,i64 16
%c7=bitcast i8*%c6 to i32*
store i32 2,i32*%c7,align 4
%c8=call i8*@sml_alloc(i32 inreg%L)#0
%c9=getelementptr inbounds i8,i8*%c8,i64 -4
%da=bitcast i8*%c9 to i32*
store i32%at,i32*%da,align 4
call void@llvm.memset.p0i8.i32(i8*%c8,i8 0,i32%L,i1 false)
%db=icmp eq i32%cS,0
%dc=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%dd=getelementptr inbounds i8,i8*%c8,i64%ay
br i1%db,label%de,label%df
de:
call void@llvm.memcpy.p0i8.p0i8.i32(i8*%dd,i8*%dc,i32%cX,i1 false)
br label%dh
df:
%dg=bitcast i8*%dd to i8**
store i8*%dc,i8**%dg,align 8
br label%dh
dh:
%di=getelementptr inbounds i8,i8*%c8,i64%aE
%dj=bitcast i8*%di to i32*
store i32%cY,i32*%dj,align 4
%dk=load i8*,i8**%f,align 8
store i8*null,i8**%f,align 8
%dl=getelementptr inbounds i8,i8*%c8,i64%aH
%dm=bitcast i8*%dl to i8**
store i8*%dk,i8**%dm,align 8
%dn=getelementptr inbounds i8,i8*%c8,i64%aK
%do=bitcast i8*%dn to i32*
store i32%K,i32*%do,align 4
br label%aP
dp:
%dq=phi i8*[%bA,%bL],[%bA,%bK],[%ce,%cp],[%ce,%co]
%dr=phi i8**[%bF,%bL],[%bF,%bK],[%cj,%cp],[%cj,%co]
%ds=sext i32%Q to i64
%dt=getelementptr inbounds i8,i8*%dq,i64%ds
%du=bitcast i8*%dt to i32*
store i32%T,i32*%du,align 4
store i8*%dq,i8**%c,align 8
%dv=load i8*,i8**%dr,align 8
store i8*%dv,i8**%d,align 8
%dw=load i8*,i8**%e,align 8
%dx=getelementptr inbounds i8,i8*%dw,i64 16
%dy=bitcast i8*%dx to i32*
%dz=load i32,i32*%dy,align 4
%dA=icmp eq i32%dz,0
br i1%dA,label%dJ,label%dB
dB:
%dC=sext i32%O to i64
%dD=getelementptr inbounds i8,i8*%dq,i64%dC
%dE=bitcast i8*%dD to i8**
%dF=load i8*,i8**%dE,align 8
%dG=getelementptr inbounds i8,i8*%dw,i64 8
%dH=bitcast i8*%dG to i8**
%dI=load i8*,i8**%dH,align 8
br label%d1
dJ:
%dK=getelementptr inbounds i8,i8*%dw,i64 20
%dL=bitcast i8*%dK to i32*
%dM=load i32,i32*%dL,align 4
%dN=call i8*@sml_alloc(i32 inreg%dM)#0
%dO=getelementptr inbounds i8,i8*%dN,i64 -4
%dP=bitcast i8*%dO to i32*
store i32%dM,i32*%dP,align 4
%dQ=load i8*,i8**%c,align 8
%dR=sext i32%O to i64
%dS=getelementptr inbounds i8,i8*%dQ,i64%dR
call void@llvm.memcpy.p0i8.p0i8.i32(i8*%dN,i8*%dS,i32%dM,i1 false)
%dT=load i8*,i8**%e,align 8
%dU=getelementptr inbounds i8,i8*%dT,i64 16
%dV=bitcast i8*%dU to i32*
%dW=load i32,i32*%dV,align 4
%dX=getelementptr inbounds i8,i8*%dT,i64 8
%dY=bitcast i8*%dX to i8**
%dZ=load i8*,i8**%dY,align 8
%d0=icmp eq i32%dW,0
br i1%d0,label%d5,label%d1
d1:
%d2=phi i8*[%dI,%dB],[%dZ,%dJ]
%d3=phi i8*[%dF,%dB],[%dN,%dJ]
%d4=bitcast i8*%d2 to i8**
call void@sml_write(i8*inreg%d2,i8**inreg%d4,i8*inreg%d3)#0
br label%d9
d5:
%d6=getelementptr inbounds i8,i8*%dT,i64 20
%d7=bitcast i8*%d6 to i32*
%d8=load i32,i32*%d7,align 4
call void@llvm.memcpy.p0i8.p0i8.i32(i8*%dZ,i8*%dN,i32%d8,i1 false)
br label%d9
d9:
%ea=load i8*,i8**%d,align 8
ret i8*%ea
}
define internal fastcc i8*@_SMLLLN9JSONLexer15streamifyReaderE_804(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**%d,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%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],[%a,%l]
%m=getelementptr inbounds i8,i8*%k,i64 8
%n=bitcast i8*%m to i32*
%o=load i32,i32*%n,align 4
%p=getelementptr inbounds i8,i8*%k,i64 12
%q=bitcast i8*%p to i32*
%r=load i32,i32*%q,align 4
%s=call i8*@sml_alloc(i32 inreg%r)#0
%t=shl i32%o,28
%u=or i32%t,%r
%v=or i32%u,536870912
%w=getelementptr inbounds i8,i8*%s,i64 -4
%x=bitcast i8*%w to i32*
store i32%v,i32*%x,align 4
%y=icmp eq i32%o,0
br i1%y,label%A,label%z
z:
call void@llvm.memset.p0i8.i32(i8*%s,i8 0,i32%r,i1 false)
br label%A
A:
%B=load i8*,i8**%d,align 8
%C=getelementptr inbounds i8,i8*%B,i64 8
%D=bitcast i8*%C to i32*
%E=load i32,i32*%D,align 4
%F=icmp eq i32%E,0
br i1%F,label%M,label%G
G:
%H=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%I=bitcast i8*%s to i8**
call void@sml_write(i8*inreg%s,i8**inreg%I,i8*inreg%H)#0
%J=bitcast i8**%d to i8***
%K=load i8**,i8***%J,align 8
%L=bitcast i8**%K to i8*
br label%S
M:
%N=bitcast i8*%B to i8**
%O=getelementptr inbounds i8,i8*%B,i64 12
%P=bitcast i8*%O to i32*
%Q=load i32,i32*%P,align 4
%R=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
call void@llvm.memcpy.p0i8.p0i8.i32(i8*%s,i8*%R,i32%Q,i1 false)
br label%S
S:
%T=phi i8*[%B,%M],[%L,%G]
%U=phi i8**[%N,%M],[%K,%G]
store i8*%s,i8**%c,align 8
%V=load i8*,i8**%U,align 8
store i8*%V,i8**%e,align 8
%W=getelementptr inbounds i8*,i8**%U,i64 1
%X=bitcast i8**%W to i32*
%Y=load i32,i32*%X,align 4
store i8*null,i8**%d,align 8
%Z=getelementptr inbounds i8,i8*%T,i64 12
%aa=bitcast i8*%Z to i32*
%ab=load i32,i32*%aa,align 4
%ac=call i8*@sml_alloc(i32 inreg 28)#0
%ad=getelementptr inbounds i8,i8*%ac,i64 -4
%ae=bitcast i8*%ad to i32*
store i32 1342177304,i32*%ae,align 4
store i8*%ac,i8**%d,align 8
%af=load i8*,i8**%e,align 8
store i8*null,i8**%e,align 8
%ag=bitcast i8*%ac to i8**
store i8*%af,i8**%ag,align 8
%ah=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%ai=getelementptr inbounds i8,i8*%ac,i64 8
%aj=bitcast i8*%ai to i8**
store i8*%ah,i8**%aj,align 8
%ak=getelementptr inbounds i8,i8*%ac,i64 16
%al=bitcast i8*%ak to i32*
store i32%Y,i32*%al,align 4
%am=getelementptr inbounds i8,i8*%ac,i64 20
%an=bitcast i8*%am to i32*
store i32%ab,i32*%an,align 4
%ao=getelementptr inbounds i8,i8*%ac,i64 24
%ap=bitcast i8*%ao to i32*
store i32 3,i32*%ap,align 4
%aq=call i8*@sml_alloc(i32 inreg 28)#0
%ar=getelementptr inbounds i8,i8*%aq,i64 -4
%as=bitcast i8*%ar to i32*
store i32 1342177304,i32*%as,align 4
store i8*%aq,i8**%c,align 8
%at=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%au=bitcast i8*%aq to i8**
store i8*%at,i8**%au,align 8
%av=getelementptr inbounds i8,i8*%aq,i64 8
%aw=bitcast i8*%av to void(...)**
store void(...)*bitcast(i8*(i8*,i32)*@_SMLLL5input_803 to void(...)*),void(...)**%aw,align 8
%ax=getelementptr inbounds i8,i8*%aq,i64 16
%ay=bitcast i8*%ax to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLL5input_817 to void(...)*),void(...)**%ay,align 8
%az=getelementptr inbounds i8,i8*%aq,i64 24
%aA=bitcast i8*%az to i32*
store i32 -2147483647,i32*%aA,align 4
%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
%aE=bitcast i8*%aB to i64*
store i64 0,i64*%aE,align 4
%aF=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aG=getelementptr inbounds i8,i8*%aB,i64 8
%aH=bitcast i8*%aG to i8**
store i8*%aF,i8**%aH,align 8
%aI=getelementptr inbounds i8,i8*%aB,i64 16
%aJ=bitcast i8*%aI to i32*
store i32 2,i32*%aJ,align 4
%aK=call fastcc i8*@_SMLFN10ULexBuffer8mkStreamE(i8*inreg%aB)
store i8*%aK,i8**%c,align 8
%aL=call i8*@sml_alloc(i32 inreg 8)#0
%aM=getelementptr inbounds i8,i8*%aL,i64 -4
%aN=bitcast i8*%aM to i32*
store i32 805306376,i32*%aN,align 4
store i8*%aL,i8**%d,align 8
%aO=bitcast i8*%aL to i64*
store i64 0,i64*%aO,align 1
%aP=bitcast i8*%aL to i8**
call void@sml_write(i8*inreg%aL,i8**inreg%aP,i8*inreg null)#0
%aQ=call i8*@sml_alloc(i32 inreg 20)#0
%aR=getelementptr inbounds i8,i8*%aQ,i64 -4
%aS=bitcast i8*%aR to i32*
store i32 1342177296,i32*%aS,align 4
store i8*%aQ,i8**%e,align 8
%aT=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%aU=bitcast i8*%aQ to i8**
store i8*%aT,i8**%aU,align 8
%aV=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%aW=getelementptr inbounds i8,i8*%aQ,i64 8
%aX=bitcast i8*%aW to i8**
store i8*%aV,i8**%aX,align 8
%aY=getelementptr inbounds i8,i8*%aQ,i64 16
%aZ=bitcast i8*%aY to i32*
store i32 3,i32*%aZ,align 4
%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
%a3=getelementptr inbounds i8,i8*%a0,i64 12
%a4=bitcast i8*%a3 to i32*
store i32 0,i32*%a4,align 1
%a5=load i8*,i8**%e,align 8
%a6=bitcast i8*%a0 to i8**
store i8*%a5,i8**%a6,align 8
%a7=getelementptr inbounds i8,i8*%a0,i64 8
%a8=bitcast i8*%a7 to i32*
store i32 0,i32*%a8,align 4
%a9=getelementptr inbounds i8,i8*%a0,i64 16
%ba=bitcast i8*%a9 to i32*
store i32 1,i32*%ba,align 4
ret i8*%a0
}
define internal fastcc i8*@_SMLLLN9JSONLexer15streamifyReaderE_805(i8*inreg%a,i8*inreg%b)#4 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*%b,i8**%c,align 8
%e=bitcast i8*%a to i32*
%f=load i32,i32*%e,align 4
%g=getelementptr inbounds i8,i8*%a,i64 4
%h=bitcast i8*%g to i32*
%i=load i32,i32*%h,align 4
%j=call i8*@sml_alloc(i32 inreg 20)#0
%k=getelementptr inbounds i8,i8*%j,i64 -4
%l=bitcast i8*%k to i32*
store i32 1342177296,i32*%l,align 4
store i8*%j,i8**%d,align 8
%m=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%n=bitcast i8*%j to i8**
store i8*%m,i8**%n,align 8
%o=getelementptr inbounds i8,i8*%j,i64 8
%p=bitcast i8*%o to i32*
store i32%f,i32*%p,align 4
%q=getelementptr inbounds i8,i8*%j,i64 12
%r=bitcast i8*%q to i32*
store i32%i,i32*%r,align 4
%s=getelementptr inbounds i8,i8*%j,i64 16
%t=bitcast i8*%s to i32*
store i32 1,i32*%t,align 4
%u=call i8*@sml_alloc(i32 inreg 28)#0
%v=getelementptr inbounds i8,i8*%u,i64 -4
%w=bitcast i8*%v to i32*
store i32 1342177304,i32*%w,align 4
%x=load i8*,i8**%d,align 8
%y=bitcast i8*%u to i8**
store i8*%x,i8**%y,align 8
%z=getelementptr inbounds i8,i8*%u,i64 8
%A=bitcast i8*%z to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN9JSONLexer15streamifyReaderE_804 to void(...)*),void(...)**%A,align 8
%B=getelementptr inbounds i8,i8*%u,i64 16
%C=bitcast i8*%B to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN9JSONLexer15streamifyReaderE_804 to void(...)*),void(...)**%C,align 8
%D=getelementptr inbounds i8,i8*%u,i64 24
%E=bitcast i8*%D to i32*
store i32 1,i32*%E,align 4
ret i8*%u
}
define fastcc i8*@_SMLFN9JSONLexer15streamifyReaderE(i32 inreg%a,i32 inreg%b)#4 gc"smlsharp"{
%c=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
%d=call i8*@sml_alloc(i32 inreg 12)#0
%e=bitcast i8*%d to i32*
%f=getelementptr inbounds i8,i8*%d,i64 -4
%g=bitcast i8*%f to i32*
store i32 1342177288,i32*%g,align 4
store i8*%d,i8**%c,align 8
store i32%a,i32*%e,align 4
%h=getelementptr inbounds i8,i8*%d,i64 4
%i=bitcast i8*%h to i32*
store i32%b,i32*%i,align 4
%j=getelementptr inbounds i8,i8*%d,i64 8
%k=bitcast i8*%j to i32*
store i32 0,i32*%k,align 4
%l=call i8*@sml_alloc(i32 inreg 28)#0
%m=getelementptr inbounds i8,i8*%l,i64 -4
%n=bitcast i8*%m to i32*
store i32 1342177304,i32*%n,align 4
%o=load i8*,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 void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN9JSONLexer15streamifyReaderE_805 to void(...)*),void(...)**%r,align 8
%s=getelementptr inbounds i8,i8*%l,i64 16
%t=bitcast i8*%s to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLLN9JSONLexer15streamifyReaderE_805 to void(...)*),void(...)**%t,align 8
%u=getelementptr inbounds i8,i8*%l,i64 24
%v=bitcast i8*%u to i32*
store i32 -2147483647,i32*%v,align 4
ret i8*%l
}
define internal fastcc i32@_SMLLLN9JSONLexer6getPosE_808(i8*inreg%a)#2 gc"smlsharp"{
%b=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
store i8*%a,i8**%b,align 8
%c=load atomic i32,i32*@sml_check_flag unordered,align 4
%d=icmp eq i32%c,0
br i1%d,label%e,label%g
e:
%f=bitcast i8*%a to i8***
br label%j
g:
call void@sml_check(i32 inreg%c)
%h=bitcast i8**%b to i8****
%i=load i8***,i8****%h,align 8
br label%j
j:
%k=phi i8***[%i,%g],[%f,%e]
%l=load i8**,i8***%k,align 8
%m=load i8*,i8**%l,align 8
%n=tail call fastcc i32@_SMLFN10ULexBuffer6getposE(i8*inreg%m)
ret i32%n
}
define fastcc i8*@_SMLFN9JSONLexer6getPosE(i32 inreg%a,i32 inreg%b)#4 gc"smlsharp"{
ret 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*)
}
define internal fastcc i8*@_SMLLL8continue_812(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
%c=bitcast i8*%b to i32*
%d=load i32,i32*%c,align 4
%e=tail call fastcc i8*@_SMLLL8continue_723(i8*inreg%a,i32 inreg%d)
ret i8*%e
}
define internal fastcc i8*@_SMLLLN9JSONLexer3lexE_813(i8*inreg%a,i8*inreg%b)#4 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN9JSONLexer3lexE(i8*inreg%b)
ret i8*%c
}
define internal fastcc i8*@_SMLLLN9JSONLexer9streamifyE_814(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN9JSONLexer9streamifyE(i8*inreg%b)
ret i8*%c
}
define internal fastcc i8*@_SMLLLN9JSONLexer17streamifyInstreamE_815(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
%c=bitcast i8*%b to i32*
%d=load i32,i32*%c,align 4
%e=tail call fastcc i8*@_SMLLLN9JSONLexer17streamifyInstreamE_800(i8*inreg%a,i32 inreg%d)
ret i8*%e
}
define internal fastcc i8*@_SMLLLN9JSONLexer17streamifyInstreamE_816(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
%c=tail call fastcc i8*@_SMLFN9JSONLexer17streamifyInstreamE(i8*inreg%b)
ret i8*%c
}
define internal fastcc i8*@_SMLLL5input_817(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
%c=bitcast i8*%b to i32*
%d=load i32,i32*%c,align 4
%e=tail call fastcc i8*@_SMLLL5input_803(i8*inreg%a,i32 inreg%d)
ret i8*%e
}
define internal fastcc i8*@_SMLLLN9JSONLexer15streamifyReaderE_818(i8*inreg%a,i8*inreg%b,i8*inreg%c)#4 gc"smlsharp"{
%d=bitcast i8*%b to i32*
%e=load i32,i32*%d,align 4
%f=bitcast i8*%c to i32*
%g=load i32,i32*%f,align 4
%h=tail call fastcc i8*@_SMLFN9JSONLexer15streamifyReaderE(i32 inreg%e,i32 inreg%g)
ret i8*%h
}
define internal fastcc i8*@_SMLLLN9JSONLexer6getPosE_819(i8*inreg%a,i8*inreg%b)#2 gc"smlsharp"{
%c=tail call fastcc i32@_SMLLLN9JSONLexer6getPosE_808(i8*inreg%b)
%d=tail call i8*@sml_alloc(i32 inreg 4)#0
%e=bitcast i8*%d to i32*
%f=getelementptr inbounds i8,i8*%d,i64 -4
%g=bitcast i8*%f to i32*
store i32 4,i32*%g,align 4
store i32%c,i32*%e,align 4
ret i8*%d
}
define internal fastcc i8*@_SMLLLN9JSONLexer6getPosE_820(i8*inreg%a,i8*inreg%b,i8*inreg%c)#4 gc"smlsharp"{
ret 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*)
}
declare void@llvm.memcpy.p0i8.p0i8.i32(i8*,i8*,i32,i1)#0
declare void@llvm.memset.p0i8.i32(i8*,i8,i32,i1)#0
attributes#0={nounwind}
attributes#1={noreturn}
attributes#2={uwtable}
attributes#3={noreturn nounwind}
attributes#4={nounwind uwtable}
