@sml_check_flag=external local_unnamed_addr global i32
@_SMLZN4IEnv3Key7compareE=external local_unnamed_addr global i8*
@_SMLZN4ISet10differenceE=external local_unnamed_addr global i8*
@_SMLZN4ISet12intersectionE=external local_unnamed_addr global i8*
@_SMLZN4ISet3Key7compareE=external local_unnamed_addr global i8*
@_SMLZN4ISet3addE=external local_unnamed_addr global i8*
@_SMLZN4ISet3appE=external local_unnamed_addr global i8*
@_SMLZN4ISet3mapE=external local_unnamed_addr global i8*
@_SMLZN4ISet4add_GE=external local_unnamed_addr global i8*
@_SMLZN4ISet4findE=external local_unnamed_addr global i8*
@_SMLZN4ISet5emptyE=external local_unnamed_addr global i8*
@_SMLZN4ISet5equalE=external local_unnamed_addr global i8*
@_SMLZN4ISet5unionE=external local_unnamed_addr global i8*
@_SMLZN4ISet6deleteE=external local_unnamed_addr global i8*
@_SMLZN4ISet6existsE=external local_unnamed_addr global i8*
@_SMLZN4ISet6filterE=external local_unnamed_addr global i8*
@_SMLZN4ISet6memberE=external local_unnamed_addr global i8*
@_SMLZN4ISet7addListE=external local_unnamed_addr global i8*
@_SMLZN4ISet7compareE=external local_unnamed_addr global i8*
@_SMLZN4ISet7isEmptyE=external local_unnamed_addr global i8*
@_SMLZN4ISet8fromListE=external local_unnamed_addr global i8*
@_SMLZN4ISet8isSubsetE=external local_unnamed_addr global i8*
@_SMLZN4ISet8numItemsE=external local_unnamed_addr global i8*
@_SMLZN4ISet9listItemsE=external local_unnamed_addr global i8*
@_SMLZN4ISet9partitionE=external local_unnamed_addr global i8*
@_SMLZN4ISet9singletonE=external local_unnamed_addr global i8*
@a=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i32(i32)*@_SMLFN5GenID8generateE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN5GenID8generateE_196 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(i32(i8*)*@_SMLFN5GenID15generateWithArgE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN5GenID15generateWithArgE_197 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(i8*(i32,i32)*@_SMLFN5GenID3Map5emptyE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*)*@_SMLLN5GenID3Map5emptyE_199 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map5emptyE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@c,i64 0,i32 2)to i8*)
@d=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32)*@_SMLFN5GenID3Map7isEmptyE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*)*@_SMLLN5GenID3Map7isEmptyE_201 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map7isEmptyE=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 constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32)*@_SMLFN5GenID3Map9singletonE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*)*@_SMLLN5GenID3Map9singletonE_202 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map9singletonE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@e,i64 0,i32 2)to i8*)
@f=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32)*@_SMLFN5GenID3Map6insertE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*)*@_SMLLN5GenID3Map6insertE_203 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map6insertE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@f,i64 0,i32 2)to i8*)
@g=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32)*@_SMLFN5GenID3Map7insert_GE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*)*@_SMLLN5GenID3Map7insert_GE_204 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map7insert_GE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@g,i64 0,i32 2)to i8*)
@h=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32)*@_SMLFN5GenID3Map4findE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*)*@_SMLLN5GenID3Map4findE_205 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map4findE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@h,i64 0,i32 2)to i8*)
@i=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32)*@_SMLFN5GenID3Map6lookupE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*)*@_SMLLN5GenID3Map6lookupE_206 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map6lookupE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@i,i64 0,i32 2)to i8*)
@j=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32)*@_SMLFN5GenID3Map8inDomainE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*)*@_SMLLN5GenID3Map8inDomainE_208 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map8inDomainE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@j,i64 0,i32 2)to i8*)
@k=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32)*@_SMLFN5GenID3Map6removeE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*)*@_SMLLN5GenID3Map6removeE_209 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map6removeE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@k,i64 0,i32 2)to i8*)
@l=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32)*@_SMLFN5GenID3Map5firstE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*)*@_SMLLN5GenID3Map5firstE_210 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map5firstE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@l,i64 0,i32 2)to i8*)
@m=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32)*@_SMLFN5GenID3Map6firstiE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*)*@_SMLLN5GenID3Map6firstiE_211 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map6firstiE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@m,i64 0,i32 2)to i8*)
@n=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32)*@_SMLFN5GenID3Map8numItemsE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*)*@_SMLLN5GenID3Map8numItemsE_213 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map8numItemsE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@n,i64 0,i32 2)to i8*)
@o=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32)*@_SMLFN5GenID3Map9listItemsE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*)*@_SMLLN5GenID3Map9listItemsE_214 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map9listItemsE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@o,i64 0,i32 2)to i8*)
@p=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32)*@_SMLFN5GenID3Map10listItemsiE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*)*@_SMLLN5GenID3Map10listItemsiE_215 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map10listItemsiE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@p,i64 0,i32 2)to i8*)
@q=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32)*@_SMLFN5GenID3Map8listKeysE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*)*@_SMLLN5GenID3Map8listKeysE_216 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map8listKeysE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@q,i64 0,i32 2)to i8*)
@r=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32)*@_SMLFN5GenID3Map7collateE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*)*@_SMLLN5GenID3Map7collateE_217 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map7collateE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@r,i64 0,i32 2)to i8*)
@s=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32)*@_SMLFN5GenID3Map9unionWithE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*)*@_SMLLN5GenID3Map9unionWithE_218 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map9unionWithE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@s,i64 0,i32 2)to i8*)
@t=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32)*@_SMLFN5GenID3Map10unionWithiE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*)*@_SMLLN5GenID3Map10unionWithiE_219 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map10unionWithiE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@t,i64 0,i32 2)to i8*)
@u=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32,i32,i32,i32,i32)*@_SMLFN5GenID3Map13intersectWithE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*,i8*,i8*,i8*,i8*)*@_SMLLN5GenID3Map13intersectWithE_220 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map13intersectWithE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@u,i64 0,i32 2)to i8*)
@v=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32,i32,i32,i32,i32)*@_SMLFN5GenID3Map14intersectWithiE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*,i8*,i8*,i8*,i8*)*@_SMLLN5GenID3Map14intersectWithiE_221 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map14intersectWithiE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@v,i64 0,i32 2)to i8*)
@w=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32,i32,i32,i32,i32)*@_SMLFN5GenID3Map9mergeWithE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*,i8*,i8*,i8*,i8*)*@_SMLLN5GenID3Map9mergeWithE_222 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map9mergeWithE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@w,i64 0,i32 2)to i8*)
@x=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32,i32,i32,i32,i32)*@_SMLFN5GenID3Map10mergeWithiE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*,i8*,i8*,i8*,i8*)*@_SMLLN5GenID3Map10mergeWithiE_223 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map10mergeWithiE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@x,i64 0,i32 2)to i8*)
@y=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32)*@_SMLFN5GenID3Map3appE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*)*@_SMLLN5GenID3Map3appE_224 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map3appE=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*)
@z=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32)*@_SMLFN5GenID3Map4appiE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*)*@_SMLLN5GenID3Map4appiE_225 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map4appiE=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*)
@A=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32,i32,i32)*@_SMLFN5GenID3Map3mapE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*,i8*,i8*)*@_SMLLN5GenID3Map3mapE_226 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map3mapE=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*)
@B=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32,i32,i32)*@_SMLFN5GenID3Map4mapiE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*,i8*,i8*)*@_SMLLN5GenID3Map4mapiE_227 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map4mapiE=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*)
@C=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32,i32,i32)*@_SMLFN5GenID3Map5foldlE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*,i8*,i8*)*@_SMLLN5GenID3Map5foldlE_228 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map5foldlE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@C,i64 0,i32 2)to i8*)
@D=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32,i32,i32)*@_SMLFN5GenID3Map6foldliE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*,i8*,i8*)*@_SMLLN5GenID3Map6foldliE_229 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map6foldliE=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 constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32,i32,i32)*@_SMLFN5GenID3Map5foldrE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*,i8*,i8*)*@_SMLLN5GenID3Map5foldrE_230 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map5foldrE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@E,i64 0,i32 2)to i8*)
@F=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32,i32,i32)*@_SMLFN5GenID3Map6foldriE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*,i8*,i8*)*@_SMLLN5GenID3Map6foldriE_231 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map6foldriE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@F,i64 0,i32 2)to i8*)
@G=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32)*@_SMLFN5GenID3Map6filterE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*)*@_SMLLN5GenID3Map6filterE_232 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map6filterE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@G,i64 0,i32 2)to i8*)
@H=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32)*@_SMLFN5GenID3Map7filteriE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*)*@_SMLLN5GenID3Map7filteriE_233 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map7filteriE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@H,i64 0,i32 2)to i8*)
@I=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32,i32,i32)*@_SMLFN5GenID3Map10mapPartialE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*,i8*,i8*)*@_SMLLN5GenID3Map10mapPartialE_234 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map10mapPartialE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@I,i64 0,i32 2)to i8*)
@J=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32,i32,i32)*@_SMLFN5GenID3Map11mapPartialiE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*,i8*,i8*)*@_SMLLN5GenID3Map11mapPartialiE_235 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map11mapPartialiE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@J,i64 0,i32 2)to i8*)
@K=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32)*@_SMLFN5GenID3Map10insertWithE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*)*@_SMLLN5GenID3Map10insertWithE_236 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map10insertWithE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@K,i64 0,i32 2)to i8*)
@L=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32)*@_SMLFN5GenID3Map10differenceE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*)*@_SMLLN5GenID3Map10differenceE_237 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map10differenceE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@L,i64 0,i32 2)to i8*)
@M=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32)*@_SMLFN5GenID3Map18subtractByKeyEquivE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*)*@_SMLLN5GenID3Map18subtractByKeyEquivE_238 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map18subtractByKeyEquivE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@M,i64 0,i32 2)to i8*)
@N=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32)*@_SMLFN5GenID3Map22subtractByKeyElemEquivE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*)*@_SMLLN5GenID3Map22subtractByKeyElemEquivE_239 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map22subtractByKeyElemEquivE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@N,i64 0,i32 2)to i8*)
@O=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32)*@_SMLFN5GenID3Map2eqE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*)*@_SMLLN5GenID3Map2eqE_240 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Map2eqE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@O,i64 0,i32 2)to i8*)
@P=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32)*@_SMLFN5GenID3Set5foldlE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*)*@_SMLLN5GenID3Set5foldlE_260 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Set5foldlE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@P,i64 0,i32 2)to i8*)
@Q=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32,i32)*@_SMLFN5GenID3Set5foldrE to void(...)*),void(...)*bitcast(i8*(i8*,i8*,i8*)*@_SMLLN5GenID3Set5foldrE_261 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID3Set5foldrE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@Q,i64 0,i32 2)to i8*)
@R=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i32(i8*)*@_SMLFN5GenID7compareE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN5GenID7compareE_266 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID7compareE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@R,i64 0,i32 2)to i8*)
@S=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i32(i8*)*@_SMLFN5GenID2eqE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN5GenID2eqE_267 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID2eqE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@S,i64 0,i32 2)to i8*)
@_SMLZN5GenID8generateE=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*)
@_SMLZN5GenID15generateWithArgE=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*)
@T=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32)*@_SMLFN5GenID9format__idE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN5GenID9format__idE_268 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID9format__idE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@T,i64 0,i32 2)to i8*)
@U=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i8*(i32)*@_SMLFN5GenID8toStringE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN5GenID8toStringE_269 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID8toStringE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@U,i64 0,i32 2)to i8*)
@V=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i32(i32)*@_SMLFN5GenID5toIntE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN5GenID5toIntE_270 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID5toIntE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@V,i64 0,i32 2)to i8*)
@W=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(void(i32)*@_SMLFN5GenID13setReservedIdE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN5GenID13setReservedIdE_271 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID13setReservedIdE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@W,i64 0,i32 2)to i8*)
@X=private unnamed_addr constant<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}><{[4x i8]zeroinitializer,i32 -805306344,i8*null,void(...)*bitcast(i32(i32)*@_SMLFN5GenID10isReservedE to void(...)*),void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN5GenID10isReservedE_272 to void(...)*),i32 -2147483647}>,align 8
@_SMLZN5GenID10isReservedE=local_unnamed_addr constant i8*bitcast(i8**getelementptr inbounds(<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>,<{[4x i8],i32,i8*,void(...)*,void(...)*,i32}>*@X,i64 0,i32 2)to i8*)
@_SML_gvar058f9ee6611f26bb_GenIDFun=private global<{[4x i8],i32,[25x i8*]}><{[4x i8]zeroinitializer,i32 -1342177080,[25x i8*]zeroinitializer}>,align 8
@Y=private unnamed_addr global[2x i64][i64 1,i64 sub(i64 ptrtoint(i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i32 0,i32 2,i32 0)to i64),i64 ptrtoint([2x i64]*@Y to i64))]
@_SML_ftab058f9ee6611f26bb_GenIDFun=external global i8
@Z=private unnamed_addr global i8 0
@aa=internal unnamed_addr global i32 0,align 8
@ab=internal unnamed_addr global i32 0,align 8
@_SMLZN5GenID3Map3Key7compareE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i32 0,i32 2,i32 0)
@_SMLZN5GenID3Set3Key7compareE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i32 0,i32 2,i32 1)
@_SMLZN5GenID3Set5emptyE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i32 0,i32 2,i32 2)
@_SMLZN5GenID3Set9singletonE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i32 0,i32 2,i32 3)
@_SMLZN5GenID3Set8fromListE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i32 0,i32 2,i32 4)
@_SMLZN5GenID3Set3addE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i32 0,i32 2,i32 5)
@_SMLZN5GenID3Set4add_GE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i32 0,i32 2,i32 6)
@_SMLZN5GenID3Set7addListE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i32 0,i32 2,i32 7)
@_SMLZN5GenID3Set6deleteE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i32 0,i32 2,i32 8)
@_SMLZN5GenID3Set6memberE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i32 0,i32 2,i32 9)
@_SMLZN5GenID3Set7isEmptyE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i32 0,i32 2,i32 10)
@_SMLZN5GenID3Set5equalE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i32 0,i32 2,i32 11)
@_SMLZN5GenID3Set7compareE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i32 0,i32 2,i32 12)
@_SMLZN5GenID3Set8isSubsetE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i32 0,i32 2,i32 13)
@_SMLZN5GenID3Set8numItemsE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i32 0,i32 2,i32 14)
@_SMLZN5GenID3Set9listItemsE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i32 0,i32 2,i32 15)
@_SMLZN5GenID3Set5unionE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i32 0,i32 2,i32 16)
@_SMLZN5GenID3Set12intersectionE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i32 0,i32 2,i32 17)
@_SMLZN5GenID3Set10differenceE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i32 0,i32 2,i32 18)
@_SMLZN5GenID3Set3mapE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i32 0,i32 2,i32 19)
@_SMLZN5GenID3Set3appE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i32 0,i32 2,i32 20)
@_SMLZN5GenID3Set9partitionE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i32 0,i32 2,i32 21)
@_SMLZN5GenID3Set6filterE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i32 0,i32 2,i32 22)
@_SMLZN5GenID3Set6existsE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i32 0,i32 2,i32 23)
@_SMLZN5GenID3Set4findE=alias i8*,getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i32 0,i32 2,i32 24)
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 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*@_SMLFN15BasicFormatters10format__intE(i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv10differenceE(i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv10insertWithE(i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv10listItemsiE(i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv10mapPartialE(i32 inreg,i32 inreg,i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv10mergeWithiE(i32 inreg,i32 inreg,i32 inreg,i32 inreg,i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv10unionWithiE(i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv11mapPartialiE(i32 inreg,i32 inreg,i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv13intersectWithE(i32 inreg,i32 inreg,i32 inreg,i32 inreg,i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv14intersectWithiE(i32 inreg,i32 inreg,i32 inreg,i32 inreg,i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv18subtractByKeyEquivE(i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv22subtractByKeyElemEquivE(i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv2eqE(i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv3appE(i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv3mapE(i32 inreg,i32 inreg,i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv4appiE(i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv4findE(i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv4mapiE(i32 inreg,i32 inreg,i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv5emptyE(i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv5firstE(i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv5foldlE(i32 inreg,i32 inreg,i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv5foldrE(i32 inreg,i32 inreg,i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv6filterE(i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv6firstiE(i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv6foldliE(i32 inreg,i32 inreg,i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv6foldriE(i32 inreg,i32 inreg,i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv6insertE(i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv6lookupE(i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv6removeE(i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv7collateE(i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv7filteriE(i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv7insert_GE(i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv7isEmptyE(i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv8inDomainE(i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv8listKeysE(i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv8numItemsE(i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv9listItemsE(i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv9mergeWithE(i32 inreg,i32 inreg,i32 inreg,i32 inreg,i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv9singletonE(i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4IEnv9unionWithE(i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4ISet5foldlE(i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN4ISet5foldrE(i32 inreg,i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare i32@_SMLFN5Int327compareE(i8*inreg)local_unnamed_addr#1 gc"smlsharp"
declare i8*@_SMLFN5Int328toStringE(i32 inreg)local_unnamed_addr#1 gc"smlsharp"
declare void@_SML_main5148a836b3728be9_Int32()local_unnamed_addr#1 gc"smlsharp"
declare void@_SML_main6ad4d8e473c26a9c_BasicFormatters()local_unnamed_addr#1 gc"smlsharp"
declare void@_SML_main04a904d40099ecf0_IEnv()local_unnamed_addr#1 gc"smlsharp"
declare void@_SML_main6995c0fdca2dd973_ISet()local_unnamed_addr#1 gc"smlsharp"
declare void@_SML_load5148a836b3728be9_Int32(i8*)local_unnamed_addr
declare void@_SML_load6ad4d8e473c26a9c_BasicFormatters(i8*)local_unnamed_addr
declare void@_SML_load04a904d40099ecf0_IEnv(i8*)local_unnamed_addr
declare void@_SML_load6995c0fdca2dd973_ISet(i8*)local_unnamed_addr
define private void@_SML_tabb058f9ee6611f26bb_GenIDFun()#2{
unreachable
}
define void@_SML_load058f9ee6611f26bb_GenIDFun(i8*%a)local_unnamed_addr#0{
%b=load i8,i8*@Z,align 1
%c=icmp eq i8%b,0
br i1%c,label%e,label%d
d:
ret void
e:
store i8 1,i8*@Z,align 1
tail call void@_SML_load5148a836b3728be9_Int32(i8*%a)#0
tail call void@_SML_load6ad4d8e473c26a9c_BasicFormatters(i8*%a)#0
tail call void@_SML_load04a904d40099ecf0_IEnv(i8*%a)#0
tail call void@_SML_load6995c0fdca2dd973_ISet(i8*%a)#0
tail call void@sml_gcroot(i8*%a,void()*@_SML_tabb058f9ee6611f26bb_GenIDFun,i8*@_SML_ftab058f9ee6611f26bb_GenIDFun,i8*bitcast([2x i64]*@Y to i8*))#0
ret void
}
define void@_SML_main058f9ee6611f26bb_GenIDFun()local_unnamed_addr#1 gc"smlsharp"{
%a=alloca[3x i8*],align 8
%b=load i8,i8*@Z,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*@Z,align 1
tail call void@_SML_main5148a836b3728be9_Int32()#1
tail call void@_SML_main6ad4d8e473c26a9c_BasicFormatters()#1
tail call void@_SML_main04a904d40099ecf0_IEnv()#1
tail call void@_SML_main6995c0fdca2dd973_ISet()#1
%g=bitcast[3x i8*]*%a to i8*
call void@sml_start(i8*inreg%g)#0
%h=load i8*,i8**@_SMLZN4IEnv3Key7compareE,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 0),i8*inreg%h)#0
%i=load i8*,i8**@_SMLZN4ISet3Key7compareE,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 1),i8*inreg%i)#0
%j=load i8*,i8**@_SMLZN4ISet5emptyE,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 2),i8*inreg%j)#0
%k=load i8*,i8**@_SMLZN4ISet9singletonE,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 3),i8*inreg%k)#0
%l=load i8*,i8**@_SMLZN4ISet8fromListE,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 4),i8*inreg%l)#0
%m=load i8*,i8**@_SMLZN4ISet3addE,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 5),i8*inreg%m)#0
%n=load i8*,i8**@_SMLZN4ISet4add_GE,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 6),i8*inreg%n)#0
%o=load i8*,i8**@_SMLZN4ISet7addListE,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 7),i8*inreg%o)#0
%p=load i8*,i8**@_SMLZN4ISet6deleteE,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 8),i8*inreg%p)#0
%q=load i8*,i8**@_SMLZN4ISet6memberE,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 9),i8*inreg%q)#0
%r=load i8*,i8**@_SMLZN4ISet7isEmptyE,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 10),i8*inreg%r)#0
%s=load i8*,i8**@_SMLZN4ISet5equalE,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 11),i8*inreg%s)#0
%t=load i8*,i8**@_SMLZN4ISet7compareE,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 12),i8*inreg%t)#0
%u=load i8*,i8**@_SMLZN4ISet8isSubsetE,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 13),i8*inreg%u)#0
%v=load i8*,i8**@_SMLZN4ISet8numItemsE,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 14),i8*inreg%v)#0
%w=load i8*,i8**@_SMLZN4ISet9listItemsE,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 15),i8*inreg%w)#0
%x=load i8*,i8**@_SMLZN4ISet5unionE,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 16),i8*inreg%x)#0
%y=load i8*,i8**@_SMLZN4ISet12intersectionE,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 17),i8*inreg%y)#0
%z=load i8*,i8**@_SMLZN4ISet10differenceE,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 18),i8*inreg%z)#0
%A=load i8*,i8**@_SMLZN4ISet3mapE,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 19),i8*inreg%A)#0
%B=load i8*,i8**@_SMLZN4ISet3appE,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 20),i8*inreg%B)#0
%C=load i8*,i8**@_SMLZN4ISet9partitionE,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 21),i8*inreg%C)#0
%D=load i8*,i8**@_SMLZN4ISet6filterE,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 22),i8*inreg%D)#0
%E=load i8*,i8**@_SMLZN4ISet6existsE,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 23),i8*inreg%E)#0
%F=load i8*,i8**@_SMLZN4ISet4findE,align 8
call void@sml_write(i8*inreg bitcast(i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 0)to i8*),i8**inreg getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 24),i8*inreg%F)#0
call void@sml_end()#0
ret void
}
define fastcc i32@_SMLFN5GenID8generateE(i32 inreg%a)#3 gc"smlsharp"{
%b=load i32,i32*@ab,align 8
%c=add nsw i32%b,1
store i32%c,i32*@ab,align 8
ret i32%b
}
define fastcc i32@_SMLFN5GenID15generateWithArgE(i8*inreg%a)#1 gc"smlsharp"{
i:
%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%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
%j=load i32,i32*@ab,align 8
%k=add nsw i32%j,1
store i32%k,i32*@ab,align 8
%l=getelementptr inbounds i8,i8*%h,i64 16
%m=bitcast i8*%l to i8*(i8*,i8*)**
%n=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%m,align 8
%o=bitcast i8*%h to i8**
%p=load i8*,i8**%o,align 8
store i8*%p,i8**%b,align 8
%q=call i8*@sml_alloc(i32 inreg 4)#0
%r=bitcast i8*%q to i32*
%s=getelementptr inbounds i8,i8*%q,i64 -4
%t=bitcast i8*%s to i32*
store i32 4,i32*%t,align 4
store i32%j,i32*%r,align 4
%u=load i8*,i8**%b,align 8
store i8*null,i8**%b,align 8
%v=call fastcc i8*%n(i8*inreg%u,i8*inreg%q)
ret i32%j
}
define fastcc i32@_SMLFN5GenID3Map3Key7compareE(i8*inreg%a)local_unnamed_addr#1 gc"smlsharp"{
i:
%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%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
store i8*null,i8**%b,align 8
%j=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 0),align 8
%k=getelementptr inbounds i8,i8*%j,i64 16
%l=bitcast i8*%k to i8*(i8*,i8*)**
%m=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%l,align 8
%n=bitcast i8*%j to i8**
%o=load i8*,i8**%n,align 8
%p=call fastcc i8*%m(i8*inreg%o,i8*inreg%h)
%q=bitcast i8*%p to i32*
%r=load i32,i32*%q,align 4
ret i32%r
}
define fastcc i8*@_SMLFN5GenID3Map5emptyE(i32 inreg%a,i32 inreg%b)#1 gc"smlsharp"{
%c=load atomic i32,i32*@sml_check_flag unordered,align 4
%d=icmp eq i32%c,0
br i1%d,label%f,label%e
e:
tail call void@sml_check(i32 inreg%c)
br label%f
f:
%g=tail call fastcc i8*@_SMLFN4IEnv5emptyE(i32 inreg%a,i32 inreg%b)
ret i8*%g
}
define internal fastcc i32@_SMLLN5GenID3Map7isEmptyE_39(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%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%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%c,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
store i8*null,i8**%c,align 8
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=call fastcc i8*@_SMLFN4IEnv7isEmptyE(i32 inreg%m,i32 inreg%p)
%r=getelementptr inbounds i8,i8*%q,i64 16
%s=bitcast i8*%r to i8*(i8*,i8*)**
%t=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%s,align 8
%u=bitcast i8*%q to i8**
%v=load i8*,i8**%u,align 8
%w=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%x=call fastcc i8*%t(i8*inreg%v,i8*inreg%w)
%y=bitcast i8*%x to i32*
%z=load i32,i32*%y,align 4
ret i32%z
}
define fastcc i8*@_SMLFN5GenID3Map7isEmptyE(i32 inreg%a,i32 inreg%b)#3 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(i32(i8*,i8*)*@_SMLLN5GenID3Map7isEmptyE_39 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*)*@_SMLLN5GenID3Map7isEmptyE_200 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 i8*@_SMLLN5GenID3Map9singletonE_42(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%d,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
store i8*null,i8**%d,align 8
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=call fastcc i8*@_SMLFN4IEnv9singletonE(i32 inreg%m,i32 inreg%p)
%r=getelementptr inbounds i8,i8*%q,i64 16
%s=bitcast i8*%r to i8*(i8*,i8*)**
%t=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%s,align 8
%u=bitcast i8*%q to i8**
%v=load i8*,i8**%u,align 8
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%t(i8*inreg%v,i8*inreg%w)
ret i8*%x
}
define fastcc i8*@_SMLFN5GenID3Map9singletonE(i32 inreg%a,i32 inreg%b)#3 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*)*@_SMLLN5GenID3Map9singletonE_42 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*)*@_SMLLN5GenID3Map9singletonE_42 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 i8*@_SMLLN5GenID3Map6insertE_45(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%d,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
store i8*null,i8**%d,align 8
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=call fastcc i8*@_SMLFN4IEnv6insertE(i32 inreg%m,i32 inreg%p)
%r=getelementptr inbounds i8,i8*%q,i64 16
%s=bitcast i8*%r to i8*(i8*,i8*)**
%t=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%s,align 8
%u=bitcast i8*%q to i8**
%v=load i8*,i8**%u,align 8
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%t(i8*inreg%v,i8*inreg%w)
ret i8*%x
}
define fastcc i8*@_SMLFN5GenID3Map6insertE(i32 inreg%a,i32 inreg%b)#3 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*)*@_SMLLN5GenID3Map6insertE_45 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*)*@_SMLLN5GenID3Map6insertE_45 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 i8*@_SMLLN5GenID3Map7insert_GE_48(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%d,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
store i8*null,i8**%d,align 8
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=call fastcc i8*@_SMLFN4IEnv7insert_GE(i32 inreg%m,i32 inreg%p)
%r=getelementptr inbounds i8,i8*%q,i64 16
%s=bitcast i8*%r to i8*(i8*,i8*)**
%t=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%s,align 8
%u=bitcast i8*%q to i8**
%v=load i8*,i8**%u,align 8
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%t(i8*inreg%v,i8*inreg%w)
ret i8*%x
}
define fastcc i8*@_SMLFN5GenID3Map7insert_GE(i32 inreg%a,i32 inreg%b)#3 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*)*@_SMLLN5GenID3Map7insert_GE_48 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*)*@_SMLLN5GenID3Map7insert_GE_48 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 i8*@_SMLLN5GenID3Map4findE_51(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%d,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
store i8*null,i8**%d,align 8
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=call fastcc i8*@_SMLFN4IEnv4findE(i32 inreg%m,i32 inreg%p)
%r=getelementptr inbounds i8,i8*%q,i64 16
%s=bitcast i8*%r to i8*(i8*,i8*)**
%t=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%s,align 8
%u=bitcast i8*%q to i8**
%v=load i8*,i8**%u,align 8
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%t(i8*inreg%v,i8*inreg%w)
ret i8*%x
}
define fastcc i8*@_SMLFN5GenID3Map4findE(i32 inreg%a,i32 inreg%b)#3 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*)*@_SMLLN5GenID3Map4findE_51 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*)*@_SMLLN5GenID3Map4findE_51 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 i8*@_SMLLN5GenID3Map6lookupE_54(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%d,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
store i8*null,i8**%d,align 8
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=call fastcc i8*@_SMLFN4IEnv6lookupE(i32 inreg%m,i32 inreg%p)
%r=getelementptr inbounds i8,i8*%q,i64 16
%s=bitcast i8*%r to i8*(i8*,i8*)**
%t=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%s,align 8
%u=bitcast i8*%q to i8**
%v=load i8*,i8**%u,align 8
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%t(i8*inreg%v,i8*inreg%w)
ret i8*%x
}
define fastcc i8*@_SMLFN5GenID3Map6lookupE(i32 inreg%a,i32 inreg%b)#3 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*)*@_SMLLN5GenID3Map6lookupE_54 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*)*@_SMLLN5GenID3Map6lookupE_54 to void(...)*),void(...)**%t,align 8
%u=getelementptr inbounds i8,i8*%l,i64 24
%v=bitcast i8*%u to i32*
store i32 1,i32*%v,align 4
ret i8*%l
}
define internal fastcc i32@_SMLLN5GenID3Map8inDomainE_57(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%d,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
store i8*null,i8**%d,align 8
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=call fastcc i8*@_SMLFN4IEnv8inDomainE(i32 inreg%m,i32 inreg%p)
%r=getelementptr inbounds i8,i8*%q,i64 16
%s=bitcast i8*%r to i8*(i8*,i8*)**
%t=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%s,align 8
%u=bitcast i8*%q to i8**
%v=load i8*,i8**%u,align 8
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%t(i8*inreg%v,i8*inreg%w)
%y=bitcast i8*%x to i32*
%z=load i32,i32*%y,align 4
ret i32%z
}
define fastcc i8*@_SMLFN5GenID3Map8inDomainE(i32 inreg%a,i32 inreg%b)#3 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(i32(i8*,i8*)*@_SMLLN5GenID3Map8inDomainE_57 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*)*@_SMLLN5GenID3Map8inDomainE_207 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 i8*@_SMLLN5GenID3Map6removeE_60(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%d,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
store i8*null,i8**%d,align 8
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=call fastcc i8*@_SMLFN4IEnv6removeE(i32 inreg%m,i32 inreg%p)
%r=getelementptr inbounds i8,i8*%q,i64 16
%s=bitcast i8*%r to i8*(i8*,i8*)**
%t=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%s,align 8
%u=bitcast i8*%q to i8**
%v=load i8*,i8**%u,align 8
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%t(i8*inreg%v,i8*inreg%w)
ret i8*%x
}
define fastcc i8*@_SMLFN5GenID3Map6removeE(i32 inreg%a,i32 inreg%b)#3 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*)*@_SMLLN5GenID3Map6removeE_60 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*)*@_SMLLN5GenID3Map6removeE_60 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 i8*@_SMLLN5GenID3Map5firstE_63(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%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%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%c,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
store i8*null,i8**%c,align 8
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=call fastcc i8*@_SMLFN4IEnv5firstE(i32 inreg%m,i32 inreg%p)
%r=getelementptr inbounds i8,i8*%q,i64 16
%s=bitcast i8*%r to i8*(i8*,i8*)**
%t=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%s,align 8
%u=bitcast i8*%q to i8**
%v=load i8*,i8**%u,align 8
%w=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%x=call fastcc i8*%t(i8*inreg%v,i8*inreg%w)
ret i8*%x
}
define fastcc i8*@_SMLFN5GenID3Map5firstE(i32 inreg%a,i32 inreg%b)#3 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*)*@_SMLLN5GenID3Map5firstE_63 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*)*@_SMLLN5GenID3Map5firstE_63 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 i8*@_SMLLN5GenID3Map6firstiE_66(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%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%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%c,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
store i8*null,i8**%c,align 8
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=call fastcc i8*@_SMLFN4IEnv6firstiE(i32 inreg%m,i32 inreg%p)
%r=getelementptr inbounds i8,i8*%q,i64 16
%s=bitcast i8*%r to i8*(i8*,i8*)**
%t=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%s,align 8
%u=bitcast i8*%q to i8**
%v=load i8*,i8**%u,align 8
%w=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%x=call fastcc i8*%t(i8*inreg%v,i8*inreg%w)
ret i8*%x
}
define fastcc i8*@_SMLFN5GenID3Map6firstiE(i32 inreg%a,i32 inreg%b)#3 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*)*@_SMLLN5GenID3Map6firstiE_66 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*)*@_SMLLN5GenID3Map6firstiE_66 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@_SMLLN5GenID3Map8numItemsE_69(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%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%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%c,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
store i8*null,i8**%c,align 8
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=call fastcc i8*@_SMLFN4IEnv8numItemsE(i32 inreg%m,i32 inreg%p)
%r=getelementptr inbounds i8,i8*%q,i64 16
%s=bitcast i8*%r to i8*(i8*,i8*)**
%t=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%s,align 8
%u=bitcast i8*%q to i8**
%v=load i8*,i8**%u,align 8
%w=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%x=call fastcc i8*%t(i8*inreg%v,i8*inreg%w)
%y=bitcast i8*%x to i32*
%z=load i32,i32*%y,align 4
ret i32%z
}
define fastcc i8*@_SMLFN5GenID3Map8numItemsE(i32 inreg%a,i32 inreg%b)#3 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(i32(i8*,i8*)*@_SMLLN5GenID3Map8numItemsE_69 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*)*@_SMLLN5GenID3Map8numItemsE_212 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 i8*@_SMLLN5GenID3Map9listItemsE_72(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%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%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%c,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
store i8*null,i8**%c,align 8
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=call fastcc i8*@_SMLFN4IEnv9listItemsE(i32 inreg%m,i32 inreg%p)
%r=getelementptr inbounds i8,i8*%q,i64 16
%s=bitcast i8*%r to i8*(i8*,i8*)**
%t=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%s,align 8
%u=bitcast i8*%q to i8**
%v=load i8*,i8**%u,align 8
%w=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%x=call fastcc i8*%t(i8*inreg%v,i8*inreg%w)
ret i8*%x
}
define fastcc i8*@_SMLFN5GenID3Map9listItemsE(i32 inreg%a,i32 inreg%b)#3 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*)*@_SMLLN5GenID3Map9listItemsE_72 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*)*@_SMLLN5GenID3Map9listItemsE_72 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 i8*@_SMLLN5GenID3Map10listItemsiE_75(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%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%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%c,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
store i8*null,i8**%c,align 8
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=call fastcc i8*@_SMLFN4IEnv10listItemsiE(i32 inreg%m,i32 inreg%p)
%r=getelementptr inbounds i8,i8*%q,i64 16
%s=bitcast i8*%r to i8*(i8*,i8*)**
%t=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%s,align 8
%u=bitcast i8*%q to i8**
%v=load i8*,i8**%u,align 8
%w=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%x=call fastcc i8*%t(i8*inreg%v,i8*inreg%w)
ret i8*%x
}
define fastcc i8*@_SMLFN5GenID3Map10listItemsiE(i32 inreg%a,i32 inreg%b)#3 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*)*@_SMLLN5GenID3Map10listItemsiE_75 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*)*@_SMLLN5GenID3Map10listItemsiE_75 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 i8*@_SMLLN5GenID3Map8listKeysE_78(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%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%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%c,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
store i8*null,i8**%c,align 8
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=call fastcc i8*@_SMLFN4IEnv8listKeysE(i32 inreg%m,i32 inreg%p)
%r=getelementptr inbounds i8,i8*%q,i64 16
%s=bitcast i8*%r to i8*(i8*,i8*)**
%t=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%s,align 8
%u=bitcast i8*%q to i8**
%v=load i8*,i8**%u,align 8
%w=load i8*,i8**%d,align 8
store i8*null,i8**%d,align 8
%x=call fastcc i8*%t(i8*inreg%v,i8*inreg%w)
ret i8*%x
}
define fastcc i8*@_SMLFN5GenID3Map8listKeysE(i32 inreg%a,i32 inreg%b)#3 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*)*@_SMLLN5GenID3Map8listKeysE_78 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*)*@_SMLLN5GenID3Map8listKeysE_78 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 i8*@_SMLLN5GenID3Map7collateE_81(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%d,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
store i8*null,i8**%d,align 8
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=call fastcc i8*@_SMLFN4IEnv7collateE(i32 inreg%m,i32 inreg%p)
%r=getelementptr inbounds i8,i8*%q,i64 16
%s=bitcast i8*%r to i8*(i8*,i8*)**
%t=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%s,align 8
%u=bitcast i8*%q to i8**
%v=load i8*,i8**%u,align 8
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%t(i8*inreg%v,i8*inreg%w)
ret i8*%x
}
define fastcc i8*@_SMLFN5GenID3Map7collateE(i32 inreg%a,i32 inreg%b)#3 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*)*@_SMLLN5GenID3Map7collateE_81 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*)*@_SMLLN5GenID3Map7collateE_81 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 i8*@_SMLLN5GenID3Map9unionWithE_84(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%d,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
store i8*null,i8**%d,align 8
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=call fastcc i8*@_SMLFN4IEnv9unionWithE(i32 inreg%m,i32 inreg%p)
%r=getelementptr inbounds i8,i8*%q,i64 16
%s=bitcast i8*%r to i8*(i8*,i8*)**
%t=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%s,align 8
%u=bitcast i8*%q to i8**
%v=load i8*,i8**%u,align 8
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%t(i8*inreg%v,i8*inreg%w)
ret i8*%x
}
define fastcc i8*@_SMLFN5GenID3Map9unionWithE(i32 inreg%a,i32 inreg%b)#3 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*)*@_SMLLN5GenID3Map9unionWithE_84 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*)*@_SMLLN5GenID3Map9unionWithE_84 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 i8*@_SMLLN5GenID3Map10unionWithiE_87(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%d,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
store i8*null,i8**%d,align 8
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=call fastcc i8*@_SMLFN4IEnv10unionWithiE(i32 inreg%m,i32 inreg%p)
%r=getelementptr inbounds i8,i8*%q,i64 16
%s=bitcast i8*%r to i8*(i8*,i8*)**
%t=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%s,align 8
%u=bitcast i8*%q to i8**
%v=load i8*,i8**%u,align 8
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%t(i8*inreg%v,i8*inreg%w)
ret i8*%x
}
define fastcc i8*@_SMLFN5GenID3Map10unionWithiE(i32 inreg%a,i32 inreg%b)#3 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*)*@_SMLLN5GenID3Map10unionWithiE_87 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*)*@_SMLLN5GenID3Map10unionWithiE_87 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 i8*@_SMLLN5GenID3Map13intersectWithE_90(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%d,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=getelementptr inbounds i8,i8*%j,i64 8
%r=bitcast i8*%q to i32*
%s=load i32,i32*%r,align 4
%t=getelementptr inbounds i8,i8*%j,i64 12
%u=bitcast i8*%t to i32*
%v=load i32,i32*%u,align 4
%w=getelementptr inbounds i8,i8*%j,i64 16
%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*%j,i64 20
%A=bitcast i8*%z to i32*
%B=load i32,i32*%A,align 4
%C=call fastcc i8*@_SMLFN4IEnv13intersectWithE(i32 inreg%m,i32 inreg%p,i32 inreg%s,i32 inreg%v,i32 inreg%y,i32 inreg%B)
%D=getelementptr inbounds i8,i8*%C,i64 16
%E=bitcast i8*%D to i8*(i8*,i8*)**
%F=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%E,align 8
%G=bitcast i8*%C to i8**
%H=load i8*,i8**%G,align 8
%I=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%J=call fastcc i8*%F(i8*inreg%H,i8*inreg%I)
ret i8*%J
}
define fastcc i8*@_SMLFN5GenID3Map13intersectWithE(i32 inreg%a,i32 inreg%b,i32 inreg%c,i32 inreg%d,i32 inreg%e,i32 inreg%f)#3 gc"smlsharp"{
%g=alloca i8*,align 8
call void@llvm.gcroot(i8**%g,i8*null)#0
%h=call i8*@sml_alloc(i32 inreg 28)#0
%i=bitcast i8*%h to i32*
%j=getelementptr inbounds i8,i8*%h,i64 -4
%k=bitcast i8*%j to i32*
store i32 1342177304,i32*%k,align 4
store i8*%h,i8**%g,align 8
store i32%a,i32*%i,align 4
%l=getelementptr inbounds i8,i8*%h,i64 4
%m=bitcast i8*%l to i32*
store i32%b,i32*%m,align 4
%n=getelementptr inbounds i8,i8*%h,i64 8
%o=bitcast i8*%n to i32*
store i32%c,i32*%o,align 4
%p=getelementptr inbounds i8,i8*%h,i64 12
%q=bitcast i8*%p to i32*
store i32%d,i32*%q,align 4
%r=getelementptr inbounds i8,i8*%h,i64 16
%s=bitcast i8*%r to i32*
store i32%e,i32*%s,align 4
%t=getelementptr inbounds i8,i8*%h,i64 20
%u=bitcast i8*%t to i32*
store i32%f,i32*%u,align 4
%v=getelementptr inbounds i8,i8*%h,i64 24
%w=bitcast i8*%v to i32*
store i32 0,i32*%w,align 4
%x=call i8*@sml_alloc(i32 inreg 28)#0
%y=getelementptr inbounds i8,i8*%x,i64 -4
%z=bitcast i8*%y to i32*
store i32 1342177304,i32*%z,align 4
%A=load i8*,i8**%g,align 8
%B=bitcast i8*%x to i8**
store i8*%A,i8**%B,align 8
%C=getelementptr inbounds i8,i8*%x,i64 8
%D=bitcast i8*%C to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN5GenID3Map13intersectWithE_90 to void(...)*),void(...)**%D,align 8
%E=getelementptr inbounds i8,i8*%x,i64 16
%F=bitcast i8*%E to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN5GenID3Map13intersectWithE_90 to void(...)*),void(...)**%F,align 8
%G=getelementptr inbounds i8,i8*%x,i64 24
%H=bitcast i8*%G to i32*
store i32 -2147483647,i32*%H,align 4
ret i8*%x
}
define internal fastcc i8*@_SMLLN5GenID3Map14intersectWithiE_93(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%d,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=getelementptr inbounds i8,i8*%j,i64 8
%r=bitcast i8*%q to i32*
%s=load i32,i32*%r,align 4
%t=getelementptr inbounds i8,i8*%j,i64 12
%u=bitcast i8*%t to i32*
%v=load i32,i32*%u,align 4
%w=getelementptr inbounds i8,i8*%j,i64 16
%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*%j,i64 20
%A=bitcast i8*%z to i32*
%B=load i32,i32*%A,align 4
%C=call fastcc i8*@_SMLFN4IEnv14intersectWithiE(i32 inreg%m,i32 inreg%p,i32 inreg%s,i32 inreg%v,i32 inreg%y,i32 inreg%B)
%D=getelementptr inbounds i8,i8*%C,i64 16
%E=bitcast i8*%D to i8*(i8*,i8*)**
%F=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%E,align 8
%G=bitcast i8*%C to i8**
%H=load i8*,i8**%G,align 8
%I=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%J=call fastcc i8*%F(i8*inreg%H,i8*inreg%I)
ret i8*%J
}
define fastcc i8*@_SMLFN5GenID3Map14intersectWithiE(i32 inreg%a,i32 inreg%b,i32 inreg%c,i32 inreg%d,i32 inreg%e,i32 inreg%f)#3 gc"smlsharp"{
%g=alloca i8*,align 8
call void@llvm.gcroot(i8**%g,i8*null)#0
%h=call i8*@sml_alloc(i32 inreg 28)#0
%i=bitcast i8*%h to i32*
%j=getelementptr inbounds i8,i8*%h,i64 -4
%k=bitcast i8*%j to i32*
store i32 1342177304,i32*%k,align 4
store i8*%h,i8**%g,align 8
store i32%a,i32*%i,align 4
%l=getelementptr inbounds i8,i8*%h,i64 4
%m=bitcast i8*%l to i32*
store i32%b,i32*%m,align 4
%n=getelementptr inbounds i8,i8*%h,i64 8
%o=bitcast i8*%n to i32*
store i32%c,i32*%o,align 4
%p=getelementptr inbounds i8,i8*%h,i64 12
%q=bitcast i8*%p to i32*
store i32%d,i32*%q,align 4
%r=getelementptr inbounds i8,i8*%h,i64 16
%s=bitcast i8*%r to i32*
store i32%e,i32*%s,align 4
%t=getelementptr inbounds i8,i8*%h,i64 20
%u=bitcast i8*%t to i32*
store i32%f,i32*%u,align 4
%v=getelementptr inbounds i8,i8*%h,i64 24
%w=bitcast i8*%v to i32*
store i32 0,i32*%w,align 4
%x=call i8*@sml_alloc(i32 inreg 28)#0
%y=getelementptr inbounds i8,i8*%x,i64 -4
%z=bitcast i8*%y to i32*
store i32 1342177304,i32*%z,align 4
%A=load i8*,i8**%g,align 8
%B=bitcast i8*%x to i8**
store i8*%A,i8**%B,align 8
%C=getelementptr inbounds i8,i8*%x,i64 8
%D=bitcast i8*%C to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN5GenID3Map14intersectWithiE_93 to void(...)*),void(...)**%D,align 8
%E=getelementptr inbounds i8,i8*%x,i64 16
%F=bitcast i8*%E to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN5GenID3Map14intersectWithiE_93 to void(...)*),void(...)**%F,align 8
%G=getelementptr inbounds i8,i8*%x,i64 24
%H=bitcast i8*%G to i32*
store i32 -2147483647,i32*%H,align 4
ret i8*%x
}
define internal fastcc i8*@_SMLLN5GenID3Map9mergeWithE_96(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%d,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=getelementptr inbounds i8,i8*%j,i64 8
%r=bitcast i8*%q to i32*
%s=load i32,i32*%r,align 4
%t=getelementptr inbounds i8,i8*%j,i64 12
%u=bitcast i8*%t to i32*
%v=load i32,i32*%u,align 4
%w=getelementptr inbounds i8,i8*%j,i64 16
%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*%j,i64 20
%A=bitcast i8*%z to i32*
%B=load i32,i32*%A,align 4
%C=call fastcc i8*@_SMLFN4IEnv9mergeWithE(i32 inreg%m,i32 inreg%p,i32 inreg%s,i32 inreg%v,i32 inreg%y,i32 inreg%B)
%D=getelementptr inbounds i8,i8*%C,i64 16
%E=bitcast i8*%D to i8*(i8*,i8*)**
%F=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%E,align 8
%G=bitcast i8*%C to i8**
%H=load i8*,i8**%G,align 8
%I=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%J=call fastcc i8*%F(i8*inreg%H,i8*inreg%I)
ret i8*%J
}
define fastcc i8*@_SMLFN5GenID3Map9mergeWithE(i32 inreg%a,i32 inreg%b,i32 inreg%c,i32 inreg%d,i32 inreg%e,i32 inreg%f)#3 gc"smlsharp"{
%g=alloca i8*,align 8
call void@llvm.gcroot(i8**%g,i8*null)#0
%h=call i8*@sml_alloc(i32 inreg 28)#0
%i=bitcast i8*%h to i32*
%j=getelementptr inbounds i8,i8*%h,i64 -4
%k=bitcast i8*%j to i32*
store i32 1342177304,i32*%k,align 4
store i8*%h,i8**%g,align 8
store i32%a,i32*%i,align 4
%l=getelementptr inbounds i8,i8*%h,i64 4
%m=bitcast i8*%l to i32*
store i32%b,i32*%m,align 4
%n=getelementptr inbounds i8,i8*%h,i64 8
%o=bitcast i8*%n to i32*
store i32%c,i32*%o,align 4
%p=getelementptr inbounds i8,i8*%h,i64 12
%q=bitcast i8*%p to i32*
store i32%d,i32*%q,align 4
%r=getelementptr inbounds i8,i8*%h,i64 16
%s=bitcast i8*%r to i32*
store i32%e,i32*%s,align 4
%t=getelementptr inbounds i8,i8*%h,i64 20
%u=bitcast i8*%t to i32*
store i32%f,i32*%u,align 4
%v=getelementptr inbounds i8,i8*%h,i64 24
%w=bitcast i8*%v to i32*
store i32 0,i32*%w,align 4
%x=call i8*@sml_alloc(i32 inreg 28)#0
%y=getelementptr inbounds i8,i8*%x,i64 -4
%z=bitcast i8*%y to i32*
store i32 1342177304,i32*%z,align 4
%A=load i8*,i8**%g,align 8
%B=bitcast i8*%x to i8**
store i8*%A,i8**%B,align 8
%C=getelementptr inbounds i8,i8*%x,i64 8
%D=bitcast i8*%C to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN5GenID3Map9mergeWithE_96 to void(...)*),void(...)**%D,align 8
%E=getelementptr inbounds i8,i8*%x,i64 16
%F=bitcast i8*%E to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN5GenID3Map9mergeWithE_96 to void(...)*),void(...)**%F,align 8
%G=getelementptr inbounds i8,i8*%x,i64 24
%H=bitcast i8*%G to i32*
store i32 -2147483647,i32*%H,align 4
ret i8*%x
}
define internal fastcc i8*@_SMLLN5GenID3Map10mergeWithiE_99(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%d,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=getelementptr inbounds i8,i8*%j,i64 8
%r=bitcast i8*%q to i32*
%s=load i32,i32*%r,align 4
%t=getelementptr inbounds i8,i8*%j,i64 12
%u=bitcast i8*%t to i32*
%v=load i32,i32*%u,align 4
%w=getelementptr inbounds i8,i8*%j,i64 16
%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*%j,i64 20
%A=bitcast i8*%z to i32*
%B=load i32,i32*%A,align 4
%C=call fastcc i8*@_SMLFN4IEnv10mergeWithiE(i32 inreg%m,i32 inreg%p,i32 inreg%s,i32 inreg%v,i32 inreg%y,i32 inreg%B)
%D=getelementptr inbounds i8,i8*%C,i64 16
%E=bitcast i8*%D to i8*(i8*,i8*)**
%F=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%E,align 8
%G=bitcast i8*%C to i8**
%H=load i8*,i8**%G,align 8
%I=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%J=call fastcc i8*%F(i8*inreg%H,i8*inreg%I)
ret i8*%J
}
define fastcc i8*@_SMLFN5GenID3Map10mergeWithiE(i32 inreg%a,i32 inreg%b,i32 inreg%c,i32 inreg%d,i32 inreg%e,i32 inreg%f)#3 gc"smlsharp"{
%g=alloca i8*,align 8
call void@llvm.gcroot(i8**%g,i8*null)#0
%h=call i8*@sml_alloc(i32 inreg 28)#0
%i=bitcast i8*%h to i32*
%j=getelementptr inbounds i8,i8*%h,i64 -4
%k=bitcast i8*%j to i32*
store i32 1342177304,i32*%k,align 4
store i8*%h,i8**%g,align 8
store i32%a,i32*%i,align 4
%l=getelementptr inbounds i8,i8*%h,i64 4
%m=bitcast i8*%l to i32*
store i32%b,i32*%m,align 4
%n=getelementptr inbounds i8,i8*%h,i64 8
%o=bitcast i8*%n to i32*
store i32%c,i32*%o,align 4
%p=getelementptr inbounds i8,i8*%h,i64 12
%q=bitcast i8*%p to i32*
store i32%d,i32*%q,align 4
%r=getelementptr inbounds i8,i8*%h,i64 16
%s=bitcast i8*%r to i32*
store i32%e,i32*%s,align 4
%t=getelementptr inbounds i8,i8*%h,i64 20
%u=bitcast i8*%t to i32*
store i32%f,i32*%u,align 4
%v=getelementptr inbounds i8,i8*%h,i64 24
%w=bitcast i8*%v to i32*
store i32 0,i32*%w,align 4
%x=call i8*@sml_alloc(i32 inreg 28)#0
%y=getelementptr inbounds i8,i8*%x,i64 -4
%z=bitcast i8*%y to i32*
store i32 1342177304,i32*%z,align 4
%A=load i8*,i8**%g,align 8
%B=bitcast i8*%x to i8**
store i8*%A,i8**%B,align 8
%C=getelementptr inbounds i8,i8*%x,i64 8
%D=bitcast i8*%C to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN5GenID3Map10mergeWithiE_99 to void(...)*),void(...)**%D,align 8
%E=getelementptr inbounds i8,i8*%x,i64 16
%F=bitcast i8*%E to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN5GenID3Map10mergeWithiE_99 to void(...)*),void(...)**%F,align 8
%G=getelementptr inbounds i8,i8*%x,i64 24
%H=bitcast i8*%G to i32*
store i32 -2147483647,i32*%H,align 4
ret i8*%x
}
define internal fastcc i8*@_SMLLN5GenID3Map3appE_102(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%d,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
store i8*null,i8**%d,align 8
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=call fastcc i8*@_SMLFN4IEnv3appE(i32 inreg%m,i32 inreg%p)
%r=getelementptr inbounds i8,i8*%q,i64 16
%s=bitcast i8*%r to i8*(i8*,i8*)**
%t=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%s,align 8
%u=bitcast i8*%q to i8**
%v=load i8*,i8**%u,align 8
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%t(i8*inreg%v,i8*inreg%w)
ret i8*%x
}
define fastcc i8*@_SMLFN5GenID3Map3appE(i32 inreg%a,i32 inreg%b)#3 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*)*@_SMLLN5GenID3Map3appE_102 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*)*@_SMLLN5GenID3Map3appE_102 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 i8*@_SMLLN5GenID3Map4appiE_105(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%d,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
store i8*null,i8**%d,align 8
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=call fastcc i8*@_SMLFN4IEnv4appiE(i32 inreg%m,i32 inreg%p)
%r=getelementptr inbounds i8,i8*%q,i64 16
%s=bitcast i8*%r to i8*(i8*,i8*)**
%t=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%s,align 8
%u=bitcast i8*%q to i8**
%v=load i8*,i8**%u,align 8
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%t(i8*inreg%v,i8*inreg%w)
ret i8*%x
}
define fastcc i8*@_SMLFN5GenID3Map4appiE(i32 inreg%a,i32 inreg%b)#3 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*)*@_SMLLN5GenID3Map4appiE_105 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*)*@_SMLLN5GenID3Map4appiE_105 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 i8*@_SMLLN5GenID3Map3mapE_108(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%d,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=getelementptr inbounds i8,i8*%j,i64 8
%r=bitcast i8*%q to i32*
%s=load i32,i32*%r,align 4
store i8*null,i8**%d,align 8
%t=getelementptr inbounds i8,i8*%j,i64 12
%u=bitcast i8*%t to i32*
%v=load i32,i32*%u,align 4
%w=call fastcc i8*@_SMLFN4IEnv3mapE(i32 inreg%m,i32 inreg%p,i32 inreg%s,i32 inreg%v)
%x=getelementptr inbounds i8,i8*%w,i64 16
%y=bitcast i8*%x to i8*(i8*,i8*)**
%z=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%y,align 8
%A=bitcast i8*%w to i8**
%B=load i8*,i8**%A,align 8
%C=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%D=call fastcc i8*%z(i8*inreg%B,i8*inreg%C)
ret i8*%D
}
define fastcc i8*@_SMLFN5GenID3Map3mapE(i32 inreg%a,i32 inreg%b,i32 inreg%c,i32 inreg%d)#3 gc"smlsharp"{
%e=alloca i8*,align 8
call void@llvm.gcroot(i8**%e,i8*null)#0
%f=call i8*@sml_alloc(i32 inreg 20)#0
%g=bitcast i8*%f to i32*
%h=getelementptr inbounds i8,i8*%f,i64 -4
%i=bitcast i8*%h to i32*
store i32 1342177296,i32*%i,align 4
store i8*%f,i8**%e,align 8
store i32%a,i32*%g,align 4
%j=getelementptr inbounds i8,i8*%f,i64 4
%k=bitcast i8*%j to i32*
store i32%b,i32*%k,align 4
%l=getelementptr inbounds i8,i8*%f,i64 8
%m=bitcast i8*%l to i32*
store i32%c,i32*%m,align 4
%n=getelementptr inbounds i8,i8*%f,i64 12
%o=bitcast i8*%n to i32*
store i32%d,i32*%o,align 4
%p=getelementptr inbounds i8,i8*%f,i64 16
%q=bitcast i8*%p to i32*
store i32 0,i32*%q,align 4
%r=call i8*@sml_alloc(i32 inreg 28)#0
%s=getelementptr inbounds i8,i8*%r,i64 -4
%t=bitcast i8*%s to i32*
store i32 1342177304,i32*%t,align 4
%u=load i8*,i8**%e,align 8
%v=bitcast i8*%r to i8**
store i8*%u,i8**%v,align 8
%w=getelementptr inbounds i8,i8*%r,i64 8
%x=bitcast i8*%w to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN5GenID3Map3mapE_108 to void(...)*),void(...)**%x,align 8
%y=getelementptr inbounds i8,i8*%r,i64 16
%z=bitcast i8*%y to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN5GenID3Map3mapE_108 to void(...)*),void(...)**%z,align 8
%A=getelementptr inbounds i8,i8*%r,i64 24
%B=bitcast i8*%A to i32*
store i32 -2147483647,i32*%B,align 4
ret i8*%r
}
define internal fastcc i8*@_SMLLN5GenID3Map4mapiE_111(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%d,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=getelementptr inbounds i8,i8*%j,i64 8
%r=bitcast i8*%q to i32*
%s=load i32,i32*%r,align 4
store i8*null,i8**%d,align 8
%t=getelementptr inbounds i8,i8*%j,i64 12
%u=bitcast i8*%t to i32*
%v=load i32,i32*%u,align 4
%w=call fastcc i8*@_SMLFN4IEnv4mapiE(i32 inreg%m,i32 inreg%p,i32 inreg%s,i32 inreg%v)
%x=getelementptr inbounds i8,i8*%w,i64 16
%y=bitcast i8*%x to i8*(i8*,i8*)**
%z=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%y,align 8
%A=bitcast i8*%w to i8**
%B=load i8*,i8**%A,align 8
%C=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%D=call fastcc i8*%z(i8*inreg%B,i8*inreg%C)
ret i8*%D
}
define fastcc i8*@_SMLFN5GenID3Map4mapiE(i32 inreg%a,i32 inreg%b,i32 inreg%c,i32 inreg%d)#3 gc"smlsharp"{
%e=alloca i8*,align 8
call void@llvm.gcroot(i8**%e,i8*null)#0
%f=call i8*@sml_alloc(i32 inreg 20)#0
%g=bitcast i8*%f to i32*
%h=getelementptr inbounds i8,i8*%f,i64 -4
%i=bitcast i8*%h to i32*
store i32 1342177296,i32*%i,align 4
store i8*%f,i8**%e,align 8
store i32%a,i32*%g,align 4
%j=getelementptr inbounds i8,i8*%f,i64 4
%k=bitcast i8*%j to i32*
store i32%b,i32*%k,align 4
%l=getelementptr inbounds i8,i8*%f,i64 8
%m=bitcast i8*%l to i32*
store i32%c,i32*%m,align 4
%n=getelementptr inbounds i8,i8*%f,i64 12
%o=bitcast i8*%n to i32*
store i32%d,i32*%o,align 4
%p=getelementptr inbounds i8,i8*%f,i64 16
%q=bitcast i8*%p to i32*
store i32 0,i32*%q,align 4
%r=call i8*@sml_alloc(i32 inreg 28)#0
%s=getelementptr inbounds i8,i8*%r,i64 -4
%t=bitcast i8*%s to i32*
store i32 1342177304,i32*%t,align 4
%u=load i8*,i8**%e,align 8
%v=bitcast i8*%r to i8**
store i8*%u,i8**%v,align 8
%w=getelementptr inbounds i8,i8*%r,i64 8
%x=bitcast i8*%w to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN5GenID3Map4mapiE_111 to void(...)*),void(...)**%x,align 8
%y=getelementptr inbounds i8,i8*%r,i64 16
%z=bitcast i8*%y to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN5GenID3Map4mapiE_111 to void(...)*),void(...)**%z,align 8
%A=getelementptr inbounds i8,i8*%r,i64 24
%B=bitcast i8*%A to i32*
store i32 -2147483647,i32*%B,align 4
ret i8*%r
}
define internal fastcc i8*@_SMLLN5GenID3Map5foldlE_114(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%d,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=getelementptr inbounds i8,i8*%j,i64 8
%r=bitcast i8*%q to i32*
%s=load i32,i32*%r,align 4
store i8*null,i8**%d,align 8
%t=getelementptr inbounds i8,i8*%j,i64 12
%u=bitcast i8*%t to i32*
%v=load i32,i32*%u,align 4
%w=call fastcc i8*@_SMLFN4IEnv5foldlE(i32 inreg%m,i32 inreg%p,i32 inreg%s,i32 inreg%v)
%x=getelementptr inbounds i8,i8*%w,i64 16
%y=bitcast i8*%x to i8*(i8*,i8*)**
%z=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%y,align 8
%A=bitcast i8*%w to i8**
%B=load i8*,i8**%A,align 8
%C=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%D=call fastcc i8*%z(i8*inreg%B,i8*inreg%C)
ret i8*%D
}
define fastcc i8*@_SMLFN5GenID3Map5foldlE(i32 inreg%a,i32 inreg%b,i32 inreg%c,i32 inreg%d)#3 gc"smlsharp"{
%e=alloca i8*,align 8
call void@llvm.gcroot(i8**%e,i8*null)#0
%f=call i8*@sml_alloc(i32 inreg 20)#0
%g=bitcast i8*%f to i32*
%h=getelementptr inbounds i8,i8*%f,i64 -4
%i=bitcast i8*%h to i32*
store i32 1342177296,i32*%i,align 4
store i8*%f,i8**%e,align 8
store i32%a,i32*%g,align 4
%j=getelementptr inbounds i8,i8*%f,i64 4
%k=bitcast i8*%j to i32*
store i32%b,i32*%k,align 4
%l=getelementptr inbounds i8,i8*%f,i64 8
%m=bitcast i8*%l to i32*
store i32%c,i32*%m,align 4
%n=getelementptr inbounds i8,i8*%f,i64 12
%o=bitcast i8*%n to i32*
store i32%d,i32*%o,align 4
%p=getelementptr inbounds i8,i8*%f,i64 16
%q=bitcast i8*%p to i32*
store i32 0,i32*%q,align 4
%r=call i8*@sml_alloc(i32 inreg 28)#0
%s=getelementptr inbounds i8,i8*%r,i64 -4
%t=bitcast i8*%s to i32*
store i32 1342177304,i32*%t,align 4
%u=load i8*,i8**%e,align 8
%v=bitcast i8*%r to i8**
store i8*%u,i8**%v,align 8
%w=getelementptr inbounds i8,i8*%r,i64 8
%x=bitcast i8*%w to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN5GenID3Map5foldlE_114 to void(...)*),void(...)**%x,align 8
%y=getelementptr inbounds i8,i8*%r,i64 16
%z=bitcast i8*%y to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN5GenID3Map5foldlE_114 to void(...)*),void(...)**%z,align 8
%A=getelementptr inbounds i8,i8*%r,i64 24
%B=bitcast i8*%A to i32*
store i32 -2147483647,i32*%B,align 4
ret i8*%r
}
define internal fastcc i8*@_SMLLN5GenID3Map6foldliE_117(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%d,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=getelementptr inbounds i8,i8*%j,i64 8
%r=bitcast i8*%q to i32*
%s=load i32,i32*%r,align 4
store i8*null,i8**%d,align 8
%t=getelementptr inbounds i8,i8*%j,i64 12
%u=bitcast i8*%t to i32*
%v=load i32,i32*%u,align 4
%w=call fastcc i8*@_SMLFN4IEnv6foldliE(i32 inreg%m,i32 inreg%p,i32 inreg%s,i32 inreg%v)
%x=getelementptr inbounds i8,i8*%w,i64 16
%y=bitcast i8*%x to i8*(i8*,i8*)**
%z=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%y,align 8
%A=bitcast i8*%w to i8**
%B=load i8*,i8**%A,align 8
%C=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%D=call fastcc i8*%z(i8*inreg%B,i8*inreg%C)
ret i8*%D
}
define fastcc i8*@_SMLFN5GenID3Map6foldliE(i32 inreg%a,i32 inreg%b,i32 inreg%c,i32 inreg%d)#3 gc"smlsharp"{
%e=alloca i8*,align 8
call void@llvm.gcroot(i8**%e,i8*null)#0
%f=call i8*@sml_alloc(i32 inreg 20)#0
%g=bitcast i8*%f to i32*
%h=getelementptr inbounds i8,i8*%f,i64 -4
%i=bitcast i8*%h to i32*
store i32 1342177296,i32*%i,align 4
store i8*%f,i8**%e,align 8
store i32%a,i32*%g,align 4
%j=getelementptr inbounds i8,i8*%f,i64 4
%k=bitcast i8*%j to i32*
store i32%b,i32*%k,align 4
%l=getelementptr inbounds i8,i8*%f,i64 8
%m=bitcast i8*%l to i32*
store i32%c,i32*%m,align 4
%n=getelementptr inbounds i8,i8*%f,i64 12
%o=bitcast i8*%n to i32*
store i32%d,i32*%o,align 4
%p=getelementptr inbounds i8,i8*%f,i64 16
%q=bitcast i8*%p to i32*
store i32 0,i32*%q,align 4
%r=call i8*@sml_alloc(i32 inreg 28)#0
%s=getelementptr inbounds i8,i8*%r,i64 -4
%t=bitcast i8*%s to i32*
store i32 1342177304,i32*%t,align 4
%u=load i8*,i8**%e,align 8
%v=bitcast i8*%r to i8**
store i8*%u,i8**%v,align 8
%w=getelementptr inbounds i8,i8*%r,i64 8
%x=bitcast i8*%w to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN5GenID3Map6foldliE_117 to void(...)*),void(...)**%x,align 8
%y=getelementptr inbounds i8,i8*%r,i64 16
%z=bitcast i8*%y to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN5GenID3Map6foldliE_117 to void(...)*),void(...)**%z,align 8
%A=getelementptr inbounds i8,i8*%r,i64 24
%B=bitcast i8*%A to i32*
store i32 -2147483647,i32*%B,align 4
ret i8*%r
}
define internal fastcc i8*@_SMLLN5GenID3Map5foldrE_120(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%d,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=getelementptr inbounds i8,i8*%j,i64 8
%r=bitcast i8*%q to i32*
%s=load i32,i32*%r,align 4
store i8*null,i8**%d,align 8
%t=getelementptr inbounds i8,i8*%j,i64 12
%u=bitcast i8*%t to i32*
%v=load i32,i32*%u,align 4
%w=call fastcc i8*@_SMLFN4IEnv5foldrE(i32 inreg%m,i32 inreg%p,i32 inreg%s,i32 inreg%v)
%x=getelementptr inbounds i8,i8*%w,i64 16
%y=bitcast i8*%x to i8*(i8*,i8*)**
%z=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%y,align 8
%A=bitcast i8*%w to i8**
%B=load i8*,i8**%A,align 8
%C=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%D=call fastcc i8*%z(i8*inreg%B,i8*inreg%C)
ret i8*%D
}
define fastcc i8*@_SMLFN5GenID3Map5foldrE(i32 inreg%a,i32 inreg%b,i32 inreg%c,i32 inreg%d)#3 gc"smlsharp"{
%e=alloca i8*,align 8
call void@llvm.gcroot(i8**%e,i8*null)#0
%f=call i8*@sml_alloc(i32 inreg 20)#0
%g=bitcast i8*%f to i32*
%h=getelementptr inbounds i8,i8*%f,i64 -4
%i=bitcast i8*%h to i32*
store i32 1342177296,i32*%i,align 4
store i8*%f,i8**%e,align 8
store i32%a,i32*%g,align 4
%j=getelementptr inbounds i8,i8*%f,i64 4
%k=bitcast i8*%j to i32*
store i32%b,i32*%k,align 4
%l=getelementptr inbounds i8,i8*%f,i64 8
%m=bitcast i8*%l to i32*
store i32%c,i32*%m,align 4
%n=getelementptr inbounds i8,i8*%f,i64 12
%o=bitcast i8*%n to i32*
store i32%d,i32*%o,align 4
%p=getelementptr inbounds i8,i8*%f,i64 16
%q=bitcast i8*%p to i32*
store i32 0,i32*%q,align 4
%r=call i8*@sml_alloc(i32 inreg 28)#0
%s=getelementptr inbounds i8,i8*%r,i64 -4
%t=bitcast i8*%s to i32*
store i32 1342177304,i32*%t,align 4
%u=load i8*,i8**%e,align 8
%v=bitcast i8*%r to i8**
store i8*%u,i8**%v,align 8
%w=getelementptr inbounds i8,i8*%r,i64 8
%x=bitcast i8*%w to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN5GenID3Map5foldrE_120 to void(...)*),void(...)**%x,align 8
%y=getelementptr inbounds i8,i8*%r,i64 16
%z=bitcast i8*%y to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN5GenID3Map5foldrE_120 to void(...)*),void(...)**%z,align 8
%A=getelementptr inbounds i8,i8*%r,i64 24
%B=bitcast i8*%A to i32*
store i32 -2147483647,i32*%B,align 4
ret i8*%r
}
define internal fastcc i8*@_SMLLN5GenID3Map6foldriE_123(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%d,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=getelementptr inbounds i8,i8*%j,i64 8
%r=bitcast i8*%q to i32*
%s=load i32,i32*%r,align 4
store i8*null,i8**%d,align 8
%t=getelementptr inbounds i8,i8*%j,i64 12
%u=bitcast i8*%t to i32*
%v=load i32,i32*%u,align 4
%w=call fastcc i8*@_SMLFN4IEnv6foldriE(i32 inreg%m,i32 inreg%p,i32 inreg%s,i32 inreg%v)
%x=getelementptr inbounds i8,i8*%w,i64 16
%y=bitcast i8*%x to i8*(i8*,i8*)**
%z=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%y,align 8
%A=bitcast i8*%w to i8**
%B=load i8*,i8**%A,align 8
%C=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%D=call fastcc i8*%z(i8*inreg%B,i8*inreg%C)
ret i8*%D
}
define fastcc i8*@_SMLFN5GenID3Map6foldriE(i32 inreg%a,i32 inreg%b,i32 inreg%c,i32 inreg%d)#3 gc"smlsharp"{
%e=alloca i8*,align 8
call void@llvm.gcroot(i8**%e,i8*null)#0
%f=call i8*@sml_alloc(i32 inreg 20)#0
%g=bitcast i8*%f to i32*
%h=getelementptr inbounds i8,i8*%f,i64 -4
%i=bitcast i8*%h to i32*
store i32 1342177296,i32*%i,align 4
store i8*%f,i8**%e,align 8
store i32%a,i32*%g,align 4
%j=getelementptr inbounds i8,i8*%f,i64 4
%k=bitcast i8*%j to i32*
store i32%b,i32*%k,align 4
%l=getelementptr inbounds i8,i8*%f,i64 8
%m=bitcast i8*%l to i32*
store i32%c,i32*%m,align 4
%n=getelementptr inbounds i8,i8*%f,i64 12
%o=bitcast i8*%n to i32*
store i32%d,i32*%o,align 4
%p=getelementptr inbounds i8,i8*%f,i64 16
%q=bitcast i8*%p to i32*
store i32 0,i32*%q,align 4
%r=call i8*@sml_alloc(i32 inreg 28)#0
%s=getelementptr inbounds i8,i8*%r,i64 -4
%t=bitcast i8*%s to i32*
store i32 1342177304,i32*%t,align 4
%u=load i8*,i8**%e,align 8
%v=bitcast i8*%r to i8**
store i8*%u,i8**%v,align 8
%w=getelementptr inbounds i8,i8*%r,i64 8
%x=bitcast i8*%w to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN5GenID3Map6foldriE_123 to void(...)*),void(...)**%x,align 8
%y=getelementptr inbounds i8,i8*%r,i64 16
%z=bitcast i8*%y to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN5GenID3Map6foldriE_123 to void(...)*),void(...)**%z,align 8
%A=getelementptr inbounds i8,i8*%r,i64 24
%B=bitcast i8*%A to i32*
store i32 -2147483647,i32*%B,align 4
ret i8*%r
}
define internal fastcc i8*@_SMLLN5GenID3Map6filterE_126(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%d,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
store i8*null,i8**%d,align 8
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=call fastcc i8*@_SMLFN4IEnv6filterE(i32 inreg%m,i32 inreg%p)
%r=getelementptr inbounds i8,i8*%q,i64 16
%s=bitcast i8*%r to i8*(i8*,i8*)**
%t=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%s,align 8
%u=bitcast i8*%q to i8**
%v=load i8*,i8**%u,align 8
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%t(i8*inreg%v,i8*inreg%w)
ret i8*%x
}
define fastcc i8*@_SMLFN5GenID3Map6filterE(i32 inreg%a,i32 inreg%b)#3 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*)*@_SMLLN5GenID3Map6filterE_126 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*)*@_SMLLN5GenID3Map6filterE_126 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 i8*@_SMLLN5GenID3Map7filteriE_129(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%d,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
store i8*null,i8**%d,align 8
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=call fastcc i8*@_SMLFN4IEnv7filteriE(i32 inreg%m,i32 inreg%p)
%r=getelementptr inbounds i8,i8*%q,i64 16
%s=bitcast i8*%r to i8*(i8*,i8*)**
%t=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%s,align 8
%u=bitcast i8*%q to i8**
%v=load i8*,i8**%u,align 8
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%t(i8*inreg%v,i8*inreg%w)
ret i8*%x
}
define fastcc i8*@_SMLFN5GenID3Map7filteriE(i32 inreg%a,i32 inreg%b)#3 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*)*@_SMLLN5GenID3Map7filteriE_129 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*)*@_SMLLN5GenID3Map7filteriE_129 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 i8*@_SMLLN5GenID3Map10mapPartialE_132(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%d,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=getelementptr inbounds i8,i8*%j,i64 8
%r=bitcast i8*%q to i32*
%s=load i32,i32*%r,align 4
store i8*null,i8**%d,align 8
%t=getelementptr inbounds i8,i8*%j,i64 12
%u=bitcast i8*%t to i32*
%v=load i32,i32*%u,align 4
%w=call fastcc i8*@_SMLFN4IEnv10mapPartialE(i32 inreg%m,i32 inreg%p,i32 inreg%s,i32 inreg%v)
%x=getelementptr inbounds i8,i8*%w,i64 16
%y=bitcast i8*%x to i8*(i8*,i8*)**
%z=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%y,align 8
%A=bitcast i8*%w to i8**
%B=load i8*,i8**%A,align 8
%C=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%D=call fastcc i8*%z(i8*inreg%B,i8*inreg%C)
ret i8*%D
}
define fastcc i8*@_SMLFN5GenID3Map10mapPartialE(i32 inreg%a,i32 inreg%b,i32 inreg%c,i32 inreg%d)#3 gc"smlsharp"{
%e=alloca i8*,align 8
call void@llvm.gcroot(i8**%e,i8*null)#0
%f=call i8*@sml_alloc(i32 inreg 20)#0
%g=bitcast i8*%f to i32*
%h=getelementptr inbounds i8,i8*%f,i64 -4
%i=bitcast i8*%h to i32*
store i32 1342177296,i32*%i,align 4
store i8*%f,i8**%e,align 8
store i32%a,i32*%g,align 4
%j=getelementptr inbounds i8,i8*%f,i64 4
%k=bitcast i8*%j to i32*
store i32%b,i32*%k,align 4
%l=getelementptr inbounds i8,i8*%f,i64 8
%m=bitcast i8*%l to i32*
store i32%c,i32*%m,align 4
%n=getelementptr inbounds i8,i8*%f,i64 12
%o=bitcast i8*%n to i32*
store i32%d,i32*%o,align 4
%p=getelementptr inbounds i8,i8*%f,i64 16
%q=bitcast i8*%p to i32*
store i32 0,i32*%q,align 4
%r=call i8*@sml_alloc(i32 inreg 28)#0
%s=getelementptr inbounds i8,i8*%r,i64 -4
%t=bitcast i8*%s to i32*
store i32 1342177304,i32*%t,align 4
%u=load i8*,i8**%e,align 8
%v=bitcast i8*%r to i8**
store i8*%u,i8**%v,align 8
%w=getelementptr inbounds i8,i8*%r,i64 8
%x=bitcast i8*%w to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN5GenID3Map10mapPartialE_132 to void(...)*),void(...)**%x,align 8
%y=getelementptr inbounds i8,i8*%r,i64 16
%z=bitcast i8*%y to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN5GenID3Map10mapPartialE_132 to void(...)*),void(...)**%z,align 8
%A=getelementptr inbounds i8,i8*%r,i64 24
%B=bitcast i8*%A to i32*
store i32 -2147483647,i32*%B,align 4
ret i8*%r
}
define internal fastcc i8*@_SMLLN5GenID3Map11mapPartialiE_135(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%d,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=getelementptr inbounds i8,i8*%j,i64 8
%r=bitcast i8*%q to i32*
%s=load i32,i32*%r,align 4
store i8*null,i8**%d,align 8
%t=getelementptr inbounds i8,i8*%j,i64 12
%u=bitcast i8*%t to i32*
%v=load i32,i32*%u,align 4
%w=call fastcc i8*@_SMLFN4IEnv11mapPartialiE(i32 inreg%m,i32 inreg%p,i32 inreg%s,i32 inreg%v)
%x=getelementptr inbounds i8,i8*%w,i64 16
%y=bitcast i8*%x to i8*(i8*,i8*)**
%z=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%y,align 8
%A=bitcast i8*%w to i8**
%B=load i8*,i8**%A,align 8
%C=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%D=call fastcc i8*%z(i8*inreg%B,i8*inreg%C)
ret i8*%D
}
define fastcc i8*@_SMLFN5GenID3Map11mapPartialiE(i32 inreg%a,i32 inreg%b,i32 inreg%c,i32 inreg%d)#3 gc"smlsharp"{
%e=alloca i8*,align 8
call void@llvm.gcroot(i8**%e,i8*null)#0
%f=call i8*@sml_alloc(i32 inreg 20)#0
%g=bitcast i8*%f to i32*
%h=getelementptr inbounds i8,i8*%f,i64 -4
%i=bitcast i8*%h to i32*
store i32 1342177296,i32*%i,align 4
store i8*%f,i8**%e,align 8
store i32%a,i32*%g,align 4
%j=getelementptr inbounds i8,i8*%f,i64 4
%k=bitcast i8*%j to i32*
store i32%b,i32*%k,align 4
%l=getelementptr inbounds i8,i8*%f,i64 8
%m=bitcast i8*%l to i32*
store i32%c,i32*%m,align 4
%n=getelementptr inbounds i8,i8*%f,i64 12
%o=bitcast i8*%n to i32*
store i32%d,i32*%o,align 4
%p=getelementptr inbounds i8,i8*%f,i64 16
%q=bitcast i8*%p to i32*
store i32 0,i32*%q,align 4
%r=call i8*@sml_alloc(i32 inreg 28)#0
%s=getelementptr inbounds i8,i8*%r,i64 -4
%t=bitcast i8*%s to i32*
store i32 1342177304,i32*%t,align 4
%u=load i8*,i8**%e,align 8
%v=bitcast i8*%r to i8**
store i8*%u,i8**%v,align 8
%w=getelementptr inbounds i8,i8*%r,i64 8
%x=bitcast i8*%w to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN5GenID3Map11mapPartialiE_135 to void(...)*),void(...)**%x,align 8
%y=getelementptr inbounds i8,i8*%r,i64 16
%z=bitcast i8*%y to void(...)**
store void(...)*bitcast(i8*(i8*,i8*)*@_SMLLN5GenID3Map11mapPartialiE_135 to void(...)*),void(...)**%z,align 8
%A=getelementptr inbounds i8,i8*%r,i64 24
%B=bitcast i8*%A to i32*
store i32 -2147483647,i32*%B,align 4
ret i8*%r
}
define internal fastcc i8*@_SMLLN5GenID3Map10insertWithE_138(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%d,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
store i8*null,i8**%d,align 8
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=call fastcc i8*@_SMLFN4IEnv10insertWithE(i32 inreg%m,i32 inreg%p)
%r=getelementptr inbounds i8,i8*%q,i64 16
%s=bitcast i8*%r to i8*(i8*,i8*)**
%t=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%s,align 8
%u=bitcast i8*%q to i8**
%v=load i8*,i8**%u,align 8
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%t(i8*inreg%v,i8*inreg%w)
ret i8*%x
}
define fastcc i8*@_SMLFN5GenID3Map10insertWithE(i32 inreg%a,i32 inreg%b)#3 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*)*@_SMLLN5GenID3Map10insertWithE_138 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*)*@_SMLLN5GenID3Map10insertWithE_138 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 i8*@_SMLLN5GenID3Map10differenceE_141(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%d,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
store i8*null,i8**%d,align 8
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=call fastcc i8*@_SMLFN4IEnv10differenceE(i32 inreg%m,i32 inreg%p)
%r=getelementptr inbounds i8,i8*%q,i64 16
%s=bitcast i8*%r to i8*(i8*,i8*)**
%t=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%s,align 8
%u=bitcast i8*%q to i8**
%v=load i8*,i8**%u,align 8
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%t(i8*inreg%v,i8*inreg%w)
ret i8*%x
}
define fastcc i8*@_SMLFN5GenID3Map10differenceE(i32 inreg%a,i32 inreg%b)#3 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*)*@_SMLLN5GenID3Map10differenceE_141 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*)*@_SMLLN5GenID3Map10differenceE_141 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 i8*@_SMLLN5GenID3Map18subtractByKeyEquivE_144(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%d,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
store i8*null,i8**%d,align 8
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=call fastcc i8*@_SMLFN4IEnv18subtractByKeyEquivE(i32 inreg%m,i32 inreg%p)
%r=getelementptr inbounds i8,i8*%q,i64 16
%s=bitcast i8*%r to i8*(i8*,i8*)**
%t=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%s,align 8
%u=bitcast i8*%q to i8**
%v=load i8*,i8**%u,align 8
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%t(i8*inreg%v,i8*inreg%w)
ret i8*%x
}
define fastcc i8*@_SMLFN5GenID3Map18subtractByKeyEquivE(i32 inreg%a,i32 inreg%b)#3 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*)*@_SMLLN5GenID3Map18subtractByKeyEquivE_144 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*)*@_SMLLN5GenID3Map18subtractByKeyEquivE_144 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 i8*@_SMLLN5GenID3Map22subtractByKeyElemEquivE_147(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%d,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
store i8*null,i8**%d,align 8
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=call fastcc i8*@_SMLFN4IEnv22subtractByKeyElemEquivE(i32 inreg%m,i32 inreg%p)
%r=getelementptr inbounds i8,i8*%q,i64 16
%s=bitcast i8*%r to i8*(i8*,i8*)**
%t=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%s,align 8
%u=bitcast i8*%q to i8**
%v=load i8*,i8**%u,align 8
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%t(i8*inreg%v,i8*inreg%w)
ret i8*%x
}
define fastcc i8*@_SMLFN5GenID3Map22subtractByKeyElemEquivE(i32 inreg%a,i32 inreg%b)#3 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*)*@_SMLLN5GenID3Map22subtractByKeyElemEquivE_147 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*)*@_SMLLN5GenID3Map22subtractByKeyElemEquivE_147 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 i8*@_SMLLN5GenID3Map2eqE_150(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%d,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
store i8*null,i8**%d,align 8
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=call fastcc i8*@_SMLFN4IEnv2eqE(i32 inreg%m,i32 inreg%p)
%r=getelementptr inbounds i8,i8*%q,i64 16
%s=bitcast i8*%r to i8*(i8*,i8*)**
%t=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%s,align 8
%u=bitcast i8*%q to i8**
%v=load i8*,i8**%u,align 8
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%t(i8*inreg%v,i8*inreg%w)
ret i8*%x
}
define fastcc i8*@_SMLFN5GenID3Map2eqE(i32 inreg%a,i32 inreg%b)#3 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*)*@_SMLLN5GenID3Map2eqE_150 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*)*@_SMLLN5GenID3Map2eqE_150 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 fastcc i32@_SMLFN5GenID3Set3Key7compareE(i8*inreg%a)local_unnamed_addr#1 gc"smlsharp"{
i:
%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%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
store i8*null,i8**%b,align 8
%j=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 1),align 8
%k=getelementptr inbounds i8,i8*%j,i64 16
%l=bitcast i8*%k to i8*(i8*,i8*)**
%m=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%l,align 8
%n=bitcast i8*%j to i8**
%o=load i8*,i8**%n,align 8
%p=call fastcc i8*%m(i8*inreg%o,i8*inreg%h)
%q=bitcast i8*%p to i32*
%r=load i32,i32*%q,align 4
ret i32%r
}
define fastcc i8*@_SMLFN5GenID3Set9singletonE(i32 inreg%a)local_unnamed_addr#1 gc"smlsharp"{
%b=alloca i8*,align 8
call void@llvm.gcroot(i8**%b,i8*null)#0
%c=load atomic i32,i32*@sml_check_flag unordered,align 4
%d=icmp eq i32%c,0
br i1%d,label%f,label%e
e:
call void@sml_check(i32 inreg%c)
br label%f
f:
%g=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 3),align 8
%h=getelementptr inbounds i8,i8*%g,i64 16
%i=bitcast i8*%h to i8*(i8*,i8*)**
%j=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%i,align 8
%k=bitcast i8*%g to i8**
%l=load i8*,i8**%k,align 8
store i8*%l,i8**%b,align 8
%m=call i8*@sml_alloc(i32 inreg 4)#0
%n=bitcast i8*%m to i32*
%o=getelementptr inbounds i8,i8*%m,i64 -4
%p=bitcast i8*%o to i32*
store i32 4,i32*%p,align 4
store i32%a,i32*%n,align 4
%q=load i8*,i8**%b,align 8
%r=tail call fastcc i8*%j(i8*inreg%q,i8*inreg%m)
ret i8*%r
}
define fastcc i8*@_SMLFN5GenID3Set8fromListE(i8*inreg%a)local_unnamed_addr#1 gc"smlsharp"{
i:
%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%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
%j=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 4),align 8
%k=getelementptr inbounds i8,i8*%j,i64 16
%l=bitcast i8*%k to i8*(i8*,i8*)**
%m=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%l,align 8
%n=bitcast i8*%j to i8**
%o=load i8*,i8**%n,align 8
%p=tail call fastcc i8*%m(i8*inreg%o,i8*inreg%h)
ret i8*%p
}
define fastcc i8*@_SMLFN5GenID3Set3addE(i8*inreg%a)local_unnamed_addr#1 gc"smlsharp"{
i:
%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%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
%j=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 5),align 8
%k=getelementptr inbounds i8,i8*%j,i64 16
%l=bitcast i8*%k to i8*(i8*,i8*)**
%m=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%l,align 8
%n=bitcast i8*%j to i8**
%o=load i8*,i8**%n,align 8
%p=tail call fastcc i8*%m(i8*inreg%o,i8*inreg%h)
ret i8*%p
}
define fastcc i8*@_SMLFN5GenID3Set4add_GE(i8*inreg%a)local_unnamed_addr#1 gc"smlsharp"{
i:
%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%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
%j=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 6),align 8
%k=getelementptr inbounds i8,i8*%j,i64 16
%l=bitcast i8*%k to i8*(i8*,i8*)**
%m=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%l,align 8
%n=bitcast i8*%j to i8**
%o=load i8*,i8**%n,align 8
%p=tail call fastcc i8*%m(i8*inreg%o,i8*inreg%h)
ret i8*%p
}
define fastcc i8*@_SMLFN5GenID3Set7addListE(i8*inreg%a)local_unnamed_addr#1 gc"smlsharp"{
i:
%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%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
%j=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 7),align 8
%k=getelementptr inbounds i8,i8*%j,i64 16
%l=bitcast i8*%k to i8*(i8*,i8*)**
%m=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%l,align 8
%n=bitcast i8*%j to i8**
%o=load i8*,i8**%n,align 8
%p=tail call fastcc i8*%m(i8*inreg%o,i8*inreg%h)
ret i8*%p
}
define fastcc i8*@_SMLFN5GenID3Set6deleteE(i8*inreg%a)local_unnamed_addr#1 gc"smlsharp"{
i:
%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%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
%j=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 8),align 8
%k=getelementptr inbounds i8,i8*%j,i64 16
%l=bitcast i8*%k to i8*(i8*,i8*)**
%m=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%l,align 8
%n=bitcast i8*%j to i8**
%o=load i8*,i8**%n,align 8
%p=tail call fastcc i8*%m(i8*inreg%o,i8*inreg%h)
ret i8*%p
}
define fastcc i32@_SMLFN5GenID3Set6memberE(i8*inreg%a)local_unnamed_addr#1 gc"smlsharp"{
i:
%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%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
store i8*null,i8**%b,align 8
%j=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 9),align 8
%k=getelementptr inbounds i8,i8*%j,i64 16
%l=bitcast i8*%k to i8*(i8*,i8*)**
%m=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%l,align 8
%n=bitcast i8*%j to i8**
%o=load i8*,i8**%n,align 8
%p=call fastcc i8*%m(i8*inreg%o,i8*inreg%h)
%q=bitcast i8*%p to i32*
%r=load i32,i32*%q,align 4
ret i32%r
}
define fastcc i32@_SMLFN5GenID3Set7isEmptyE(i8*inreg%a)local_unnamed_addr#1 gc"smlsharp"{
i:
%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%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
%j=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 10),align 8
%k=getelementptr inbounds i8,i8*%j,i64 16
%l=bitcast i8*%k to i8*(i8*,i8*)**
%m=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%l,align 8
%n=bitcast i8*%j to i8**
%o=load i8*,i8**%n,align 8
store i8*null,i8**%b,align 8
%p=call fastcc i8*%m(i8*inreg%o,i8*inreg%h)
%q=bitcast i8*%p to i32*
%r=load i32,i32*%q,align 4
ret i32%r
}
define fastcc i32@_SMLFN5GenID3Set5equalE(i8*inreg%a)local_unnamed_addr#1 gc"smlsharp"{
i:
%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%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
store i8*null,i8**%b,align 8
%j=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 11),align 8
%k=getelementptr inbounds i8,i8*%j,i64 16
%l=bitcast i8*%k to i8*(i8*,i8*)**
%m=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%l,align 8
%n=bitcast i8*%j to i8**
%o=load i8*,i8**%n,align 8
%p=call fastcc i8*%m(i8*inreg%o,i8*inreg%h)
%q=bitcast i8*%p to i32*
%r=load i32,i32*%q,align 4
ret i32%r
}
define fastcc i32@_SMLFN5GenID3Set7compareE(i8*inreg%a)local_unnamed_addr#1 gc"smlsharp"{
i:
%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%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
store i8*null,i8**%b,align 8
%j=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 12),align 8
%k=getelementptr inbounds i8,i8*%j,i64 16
%l=bitcast i8*%k to i8*(i8*,i8*)**
%m=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%l,align 8
%n=bitcast i8*%j to i8**
%o=load i8*,i8**%n,align 8
%p=call fastcc i8*%m(i8*inreg%o,i8*inreg%h)
%q=bitcast i8*%p to i32*
%r=load i32,i32*%q,align 4
ret i32%r
}
define fastcc i32@_SMLFN5GenID3Set8isSubsetE(i8*inreg%a)local_unnamed_addr#1 gc"smlsharp"{
i:
%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%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
store i8*null,i8**%b,align 8
%j=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 13),align 8
%k=getelementptr inbounds i8,i8*%j,i64 16
%l=bitcast i8*%k to i8*(i8*,i8*)**
%m=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%l,align 8
%n=bitcast i8*%j to i8**
%o=load i8*,i8**%n,align 8
%p=call fastcc i8*%m(i8*inreg%o,i8*inreg%h)
%q=bitcast i8*%p to i32*
%r=load i32,i32*%q,align 4
ret i32%r
}
define fastcc i32@_SMLFN5GenID3Set8numItemsE(i8*inreg%a)local_unnamed_addr#1 gc"smlsharp"{
i:
%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%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
%j=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 14),align 8
%k=getelementptr inbounds i8,i8*%j,i64 16
%l=bitcast i8*%k to i8*(i8*,i8*)**
%m=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%l,align 8
%n=bitcast i8*%j to i8**
%o=load i8*,i8**%n,align 8
store i8*null,i8**%b,align 8
%p=call fastcc i8*%m(i8*inreg%o,i8*inreg%h)
%q=bitcast i8*%p to i32*
%r=load i32,i32*%q,align 4
ret i32%r
}
define fastcc i8*@_SMLFN5GenID3Set9listItemsE(i8*inreg%a)local_unnamed_addr#1 gc"smlsharp"{
i:
%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%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
%j=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 15),align 8
%k=getelementptr inbounds i8,i8*%j,i64 16
%l=bitcast i8*%k to i8*(i8*,i8*)**
%m=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%l,align 8
%n=bitcast i8*%j to i8**
%o=load i8*,i8**%n,align 8
%p=tail call fastcc i8*%m(i8*inreg%o,i8*inreg%h)
ret i8*%p
}
define fastcc i8*@_SMLFN5GenID3Set5unionE(i8*inreg%a)local_unnamed_addr#1 gc"smlsharp"{
i:
%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%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
%j=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 16),align 8
%k=getelementptr inbounds i8,i8*%j,i64 16
%l=bitcast i8*%k to i8*(i8*,i8*)**
%m=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%l,align 8
%n=bitcast i8*%j to i8**
%o=load i8*,i8**%n,align 8
%p=tail call fastcc i8*%m(i8*inreg%o,i8*inreg%h)
ret i8*%p
}
define fastcc i8*@_SMLFN5GenID3Set12intersectionE(i8*inreg%a)local_unnamed_addr#1 gc"smlsharp"{
i:
%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%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
%j=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 17),align 8
%k=getelementptr inbounds i8,i8*%j,i64 16
%l=bitcast i8*%k to i8*(i8*,i8*)**
%m=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%l,align 8
%n=bitcast i8*%j to i8**
%o=load i8*,i8**%n,align 8
%p=tail call fastcc i8*%m(i8*inreg%o,i8*inreg%h)
ret i8*%p
}
define fastcc i8*@_SMLFN5GenID3Set10differenceE(i8*inreg%a)local_unnamed_addr#1 gc"smlsharp"{
i:
%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%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
%j=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 18),align 8
%k=getelementptr inbounds i8,i8*%j,i64 16
%l=bitcast i8*%k to i8*(i8*,i8*)**
%m=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%l,align 8
%n=bitcast i8*%j to i8**
%o=load i8*,i8**%n,align 8
%p=tail call fastcc i8*%m(i8*inreg%o,i8*inreg%h)
ret i8*%p
}
define fastcc i8*@_SMLFN5GenID3Set3mapE(i8*inreg%a)local_unnamed_addr#1 gc"smlsharp"{
i:
%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%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
%j=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 19),align 8
%k=getelementptr inbounds i8,i8*%j,i64 16
%l=bitcast i8*%k to i8*(i8*,i8*)**
%m=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%l,align 8
%n=bitcast i8*%j to i8**
%o=load i8*,i8**%n,align 8
%p=tail call fastcc i8*%m(i8*inreg%o,i8*inreg%h)
ret i8*%p
}
define fastcc i8*@_SMLFN5GenID3Set3appE(i8*inreg%a)local_unnamed_addr#1 gc"smlsharp"{
i:
%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%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
%j=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 20),align 8
%k=getelementptr inbounds i8,i8*%j,i64 16
%l=bitcast i8*%k to i8*(i8*,i8*)**
%m=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%l,align 8
%n=bitcast i8*%j to i8**
%o=load i8*,i8**%n,align 8
%p=tail call fastcc i8*%m(i8*inreg%o,i8*inreg%h)
ret i8*%p
}
define internal fastcc i8*@_SMLLN5GenID3Set5foldlE_172(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%d,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
store i8*null,i8**%d,align 8
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=call fastcc i8*@_SMLFN4ISet5foldlE(i32 inreg%m,i32 inreg%p)
%r=getelementptr inbounds i8,i8*%q,i64 16
%s=bitcast i8*%r to i8*(i8*,i8*)**
%t=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%s,align 8
%u=bitcast i8*%q to i8**
%v=load i8*,i8**%u,align 8
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%t(i8*inreg%v,i8*inreg%w)
ret i8*%x
}
define fastcc i8*@_SMLFN5GenID3Set5foldlE(i32 inreg%a,i32 inreg%b)#3 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*)*@_SMLLN5GenID3Set5foldlE_172 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*)*@_SMLLN5GenID3Set5foldlE_172 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 i8*@_SMLLN5GenID3Set5foldrE_175(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
k:
%c=alloca i8*,align 8
%d=alloca i8*,align 8
call void@llvm.gcroot(i8**%c,i8*null)#0
call void@llvm.gcroot(i8**%d,i8*null)#0
store i8*%a,i8**%d,align 8
store i8*%b,i8**%c,align 8
%e=load atomic i32,i32*@sml_check_flag unordered,align 4
%f=icmp eq i32%e,0
br i1%f,label%i,label%g
g:
call void@sml_check(i32 inreg%e)
%h=load i8*,i8**%d,align 8
br label%i
i:
%j=phi i8*[%h,%g],[%a,%k]
%l=bitcast i8*%j to i32*
%m=load i32,i32*%l,align 4
store i8*null,i8**%d,align 8
%n=getelementptr inbounds i8,i8*%j,i64 4
%o=bitcast i8*%n to i32*
%p=load i32,i32*%o,align 4
%q=call fastcc i8*@_SMLFN4ISet5foldrE(i32 inreg%m,i32 inreg%p)
%r=getelementptr inbounds i8,i8*%q,i64 16
%s=bitcast i8*%r to i8*(i8*,i8*)**
%t=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%s,align 8
%u=bitcast i8*%q to i8**
%v=load i8*,i8**%u,align 8
%w=load i8*,i8**%c,align 8
store i8*null,i8**%c,align 8
%x=call fastcc i8*%t(i8*inreg%v,i8*inreg%w)
ret i8*%x
}
define fastcc i8*@_SMLFN5GenID3Set5foldrE(i32 inreg%a,i32 inreg%b)#3 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*)*@_SMLLN5GenID3Set5foldrE_175 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*)*@_SMLLN5GenID3Set5foldrE_175 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 fastcc i8*@_SMLFN5GenID3Set9partitionE(i8*inreg%a)local_unnamed_addr#1 gc"smlsharp"{
i:
%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%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
%j=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 21),align 8
%k=getelementptr inbounds i8,i8*%j,i64 16
%l=bitcast i8*%k to i8*(i8*,i8*)**
%m=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%l,align 8
%n=bitcast i8*%j to i8**
%o=load i8*,i8**%n,align 8
%p=tail call fastcc i8*%m(i8*inreg%o,i8*inreg%h)
ret i8*%p
}
define fastcc i8*@_SMLFN5GenID3Set6filterE(i8*inreg%a)local_unnamed_addr#1 gc"smlsharp"{
i:
%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%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
%j=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 22),align 8
%k=getelementptr inbounds i8,i8*%j,i64 16
%l=bitcast i8*%k to i8*(i8*,i8*)**
%m=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%l,align 8
%n=bitcast i8*%j to i8**
%o=load i8*,i8**%n,align 8
%p=tail call fastcc i8*%m(i8*inreg%o,i8*inreg%h)
ret i8*%p
}
define fastcc i8*@_SMLFN5GenID3Set6existsE(i8*inreg%a)local_unnamed_addr#1 gc"smlsharp"{
i:
%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%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
%j=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 23),align 8
%k=getelementptr inbounds i8,i8*%j,i64 16
%l=bitcast i8*%k to i8*(i8*,i8*)**
%m=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%l,align 8
%n=bitcast i8*%j to i8**
%o=load i8*,i8**%n,align 8
%p=tail call fastcc i8*%m(i8*inreg%o,i8*inreg%h)
ret i8*%p
}
define fastcc i8*@_SMLFN5GenID3Set4findE(i8*inreg%a)local_unnamed_addr#1 gc"smlsharp"{
i:
%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%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
%j=load i8*,i8**getelementptr inbounds(<{[4x i8],i32,[25x i8*]}>,<{[4x i8],i32,[25x i8*]}>*@_SML_gvar058f9ee6611f26bb_GenIDFun,i64 0,i32 2,i64 24),align 8
%k=getelementptr inbounds i8,i8*%j,i64 16
%l=bitcast i8*%k to i8*(i8*,i8*)**
%m=load i8*(i8*,i8*)*,i8*(i8*,i8*)**%l,align 8
%n=bitcast i8*%j to i8**
%o=load i8*,i8**%n,align 8
%p=tail call fastcc i8*%m(i8*inreg%o,i8*inreg%h)
ret i8*%p
}
define fastcc i32@_SMLFN5GenID7compareE(i8*inreg%a)#1 gc"smlsharp"{
i:
%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%g,label%e
e:
call void@sml_check(i32 inreg%c)
%f=load i8*,i8**%b,align 8
br label%g
g:
%h=phi i8*[%f,%e],[%a,%i]
%j=tail call fastcc i32@_SMLFN5Int327compareE(i8*inreg%h)
ret i32%j
}
define fastcc i32@_SMLFN5GenID2eqE(i8*inreg%a)#3 gc"smlsharp"{
%b=bitcast i8*%a to i32*
%c=load i32,i32*%b,align 4
%d=getelementptr inbounds i8,i8*%a,i64 4
%e=bitcast i8*%d to i32*
%f=load i32,i32*%e,align 4
%g=icmp eq i32%c,%f
%h=zext i1%g to i32
ret i32%h
}
define fastcc i8*@_SMLFN5GenID9format__idE(i32 inreg%a)#1 gc"smlsharp"{
%b=load atomic i32,i32*@sml_check_flag unordered,align 4
%c=icmp eq i32%b,0
br i1%c,label%e,label%d
d:
tail call void@sml_check(i32 inreg%b)
br label%e
e:
%f=tail call fastcc i8*@_SMLFN15BasicFormatters10format__intE(i32 inreg%a)
ret i8*%f
}
define fastcc i8*@_SMLFN5GenID8toStringE(i32 inreg%a)#1 gc"smlsharp"{
%b=load atomic i32,i32*@sml_check_flag unordered,align 4
%c=icmp eq i32%b,0
br i1%c,label%e,label%d
d:
tail call void@sml_check(i32 inreg%b)
br label%e
e:
%f=tail call fastcc i8*@_SMLFN5Int328toStringE(i32 inreg%a)
ret i8*%f
}
define fastcc i32@_SMLFN5GenID5toIntE(i32 inreg%a)#3 gc"smlsharp"{
ret i32%a
}
define fastcc void@_SMLFN5GenID13setReservedIdE(i32 inreg%a)#3 gc"smlsharp"{
%b=load i32,i32*@ab,align 8
store i32%b,i32*@aa,align 8
ret void
}
define fastcc i32@_SMLFN5GenID10isReservedE(i32 inreg%a)#3 gc"smlsharp"{
%b=load i32,i32*@aa,align 8
%c=icmp sgt i32%b,%a
%d=zext i1%c to i32
ret i32%d
}
define internal fastcc i8*@_SMLLN5GenID8generateE_196(i8*inreg%a,i8*inreg%b)#3 gc"smlsharp"{
%c=load i32,i32*@ab,align 8
%d=add nsw i32%c,1
store i32%d,i32*@ab,align 8
%e=tail call i8*@sml_alloc(i32 inreg 4)#0
%f=bitcast i8*%e to i32*
%g=getelementptr inbounds i8,i8*%e,i64 -4
%h=bitcast i8*%g to i32*
store i32 4,i32*%h,align 4
store i32%c,i32*%f,align 4
ret i8*%e
}
define internal fastcc i8*@_SMLLN5GenID15generateWithArgE_197(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i32@_SMLFN5GenID15generateWithArgE(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*@_SMLLN5GenID3Map5emptyE_199(i8*inreg%a,i8*inreg%b,i8*inreg%c)#1 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*@_SMLFN5GenID3Map5emptyE(i32 inreg%e,i32 inreg%g)
ret i8*%h
}
define internal fastcc i8*@_SMLLN5GenID3Map7isEmptyE_200(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i32@_SMLLN5GenID3Map7isEmptyE_39(i8*inreg%a,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*@_SMLLN5GenID3Map7isEmptyE_201(i8*inreg%a,i8*inreg%b,i8*inreg%c)#3 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*@_SMLFN5GenID3Map7isEmptyE(i32 inreg%e,i32 inreg%g)
ret i8*%h
}
define internal fastcc i8*@_SMLLN5GenID3Map9singletonE_202(i8*inreg%a,i8*inreg%b,i8*inreg%c)#3 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*@_SMLFN5GenID3Map9singletonE(i32 inreg%e,i32 inreg%g)
ret i8*%h
}
define internal fastcc i8*@_SMLLN5GenID3Map6insertE_203(i8*inreg%a,i8*inreg%b,i8*inreg%c)#3 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*@_SMLFN5GenID3Map6insertE(i32 inreg%e,i32 inreg%g)
ret i8*%h
}
define internal fastcc i8*@_SMLLN5GenID3Map7insert_GE_204(i8*inreg%a,i8*inreg%b,i8*inreg%c)#3 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*@_SMLFN5GenID3Map7insert_GE(i32 inreg%e,i32 inreg%g)
ret i8*%h
}
define internal fastcc i8*@_SMLLN5GenID3Map4findE_205(i8*inreg%a,i8*inreg%b,i8*inreg%c)#3 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*@_SMLFN5GenID3Map4findE(i32 inreg%e,i32 inreg%g)
ret i8*%h
}
define internal fastcc i8*@_SMLLN5GenID3Map6lookupE_206(i8*inreg%a,i8*inreg%b,i8*inreg%c)#3 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*@_SMLFN5GenID3Map6lookupE(i32 inreg%e,i32 inreg%g)
ret i8*%h
}
define internal fastcc i8*@_SMLLN5GenID3Map8inDomainE_207(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i32@_SMLLN5GenID3Map8inDomainE_57(i8*inreg%a,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*@_SMLLN5GenID3Map8inDomainE_208(i8*inreg%a,i8*inreg%b,i8*inreg%c)#3 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*@_SMLFN5GenID3Map8inDomainE(i32 inreg%e,i32 inreg%g)
ret i8*%h
}
define internal fastcc i8*@_SMLLN5GenID3Map6removeE_209(i8*inreg%a,i8*inreg%b,i8*inreg%c)#3 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*@_SMLFN5GenID3Map6removeE(i32 inreg%e,i32 inreg%g)
ret i8*%h
}
define internal fastcc i8*@_SMLLN5GenID3Map5firstE_210(i8*inreg%a,i8*inreg%b,i8*inreg%c)#3 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*@_SMLFN5GenID3Map5firstE(i32 inreg%e,i32 inreg%g)
ret i8*%h
}
define internal fastcc i8*@_SMLLN5GenID3Map6firstiE_211(i8*inreg%a,i8*inreg%b,i8*inreg%c)#3 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*@_SMLFN5GenID3Map6firstiE(i32 inreg%e,i32 inreg%g)
ret i8*%h
}
define internal fastcc i8*@_SMLLN5GenID3Map8numItemsE_212(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i32@_SMLLN5GenID3Map8numItemsE_69(i8*inreg%a,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*@_SMLLN5GenID3Map8numItemsE_213(i8*inreg%a,i8*inreg%b,i8*inreg%c)#3 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*@_SMLFN5GenID3Map8numItemsE(i32 inreg%e,i32 inreg%g)
ret i8*%h
}
define internal fastcc i8*@_SMLLN5GenID3Map9listItemsE_214(i8*inreg%a,i8*inreg%b,i8*inreg%c)#3 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*@_SMLFN5GenID3Map9listItemsE(i32 inreg%e,i32 inreg%g)
ret i8*%h
}
define internal fastcc i8*@_SMLLN5GenID3Map10listItemsiE_215(i8*inreg%a,i8*inreg%b,i8*inreg%c)#3 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*@_SMLFN5GenID3Map10listItemsiE(i32 inreg%e,i32 inreg%g)
ret i8*%h
}
define internal fastcc i8*@_SMLLN5GenID3Map8listKeysE_216(i8*inreg%a,i8*inreg%b,i8*inreg%c)#3 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*@_SMLFN5GenID3Map8listKeysE(i32 inreg%e,i32 inreg%g)
ret i8*%h
}
define internal fastcc i8*@_SMLLN5GenID3Map7collateE_217(i8*inreg%a,i8*inreg%b,i8*inreg%c)#3 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*@_SMLFN5GenID3Map7collateE(i32 inreg%e,i32 inreg%g)
ret i8*%h
}
define internal fastcc i8*@_SMLLN5GenID3Map9unionWithE_218(i8*inreg%a,i8*inreg%b,i8*inreg%c)#3 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*@_SMLFN5GenID3Map9unionWithE(i32 inreg%e,i32 inreg%g)
ret i8*%h
}
define internal fastcc i8*@_SMLLN5GenID3Map10unionWithiE_219(i8*inreg%a,i8*inreg%b,i8*inreg%c)#3 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*@_SMLFN5GenID3Map10unionWithiE(i32 inreg%e,i32 inreg%g)
ret i8*%h
}
define internal fastcc i8*@_SMLLN5GenID3Map13intersectWithE_220(i8*inreg%a,i8*inreg%b,i8*inreg%c,i8*inreg%d,i8*inreg%e,i8*inreg%f,i8*inreg%g)#3 gc"smlsharp"{
%h=bitcast i8*%b to i32*
%i=load i32,i32*%h,align 4
%j=bitcast i8*%c to i32*
%k=load i32,i32*%j,align 4
%l=bitcast i8*%d to i32*
%m=load i32,i32*%l,align 4
%n=bitcast i8*%e to i32*
%o=load i32,i32*%n,align 4
%p=bitcast i8*%f to i32*
%q=load i32,i32*%p,align 4
%r=bitcast i8*%g to i32*
%s=load i32,i32*%r,align 4
%t=tail call fastcc i8*@_SMLFN5GenID3Map13intersectWithE(i32 inreg%i,i32 inreg%k,i32 inreg%m,i32 inreg%o,i32 inreg%q,i32 inreg%s)
ret i8*%t
}
define internal fastcc i8*@_SMLLN5GenID3Map14intersectWithiE_221(i8*inreg%a,i8*inreg%b,i8*inreg%c,i8*inreg%d,i8*inreg%e,i8*inreg%f,i8*inreg%g)#3 gc"smlsharp"{
%h=bitcast i8*%b to i32*
%i=load i32,i32*%h,align 4
%j=bitcast i8*%c to i32*
%k=load i32,i32*%j,align 4
%l=bitcast i8*%d to i32*
%m=load i32,i32*%l,align 4
%n=bitcast i8*%e to i32*
%o=load i32,i32*%n,align 4
%p=bitcast i8*%f to i32*
%q=load i32,i32*%p,align 4
%r=bitcast i8*%g to i32*
%s=load i32,i32*%r,align 4
%t=tail call fastcc i8*@_SMLFN5GenID3Map14intersectWithiE(i32 inreg%i,i32 inreg%k,i32 inreg%m,i32 inreg%o,i32 inreg%q,i32 inreg%s)
ret i8*%t
}
define internal fastcc i8*@_SMLLN5GenID3Map9mergeWithE_222(i8*inreg%a,i8*inreg%b,i8*inreg%c,i8*inreg%d,i8*inreg%e,i8*inreg%f,i8*inreg%g)#3 gc"smlsharp"{
%h=bitcast i8*%b to i32*
%i=load i32,i32*%h,align 4
%j=bitcast i8*%c to i32*
%k=load i32,i32*%j,align 4
%l=bitcast i8*%d to i32*
%m=load i32,i32*%l,align 4
%n=bitcast i8*%e to i32*
%o=load i32,i32*%n,align 4
%p=bitcast i8*%f to i32*
%q=load i32,i32*%p,align 4
%r=bitcast i8*%g to i32*
%s=load i32,i32*%r,align 4
%t=tail call fastcc i8*@_SMLFN5GenID3Map9mergeWithE(i32 inreg%i,i32 inreg%k,i32 inreg%m,i32 inreg%o,i32 inreg%q,i32 inreg%s)
ret i8*%t
}
define internal fastcc i8*@_SMLLN5GenID3Map10mergeWithiE_223(i8*inreg%a,i8*inreg%b,i8*inreg%c,i8*inreg%d,i8*inreg%e,i8*inreg%f,i8*inreg%g)#3 gc"smlsharp"{
%h=bitcast i8*%b to i32*
%i=load i32,i32*%h,align 4
%j=bitcast i8*%c to i32*
%k=load i32,i32*%j,align 4
%l=bitcast i8*%d to i32*
%m=load i32,i32*%l,align 4
%n=bitcast i8*%e to i32*
%o=load i32,i32*%n,align 4
%p=bitcast i8*%f to i32*
%q=load i32,i32*%p,align 4
%r=bitcast i8*%g to i32*
%s=load i32,i32*%r,align 4
%t=tail call fastcc i8*@_SMLFN5GenID3Map10mergeWithiE(i32 inreg%i,i32 inreg%k,i32 inreg%m,i32 inreg%o,i32 inreg%q,i32 inreg%s)
ret i8*%t
}
define internal fastcc i8*@_SMLLN5GenID3Map3appE_224(i8*inreg%a,i8*inreg%b,i8*inreg%c)#3 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*@_SMLFN5GenID3Map3appE(i32 inreg%e,i32 inreg%g)
ret i8*%h
}
define internal fastcc i8*@_SMLLN5GenID3Map4appiE_225(i8*inreg%a,i8*inreg%b,i8*inreg%c)#3 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*@_SMLFN5GenID3Map4appiE(i32 inreg%e,i32 inreg%g)
ret i8*%h
}
define internal fastcc i8*@_SMLLN5GenID3Map3mapE_226(i8*inreg%a,i8*inreg%b,i8*inreg%c,i8*inreg%d,i8*inreg%e)#3 gc"smlsharp"{
%f=bitcast i8*%b to i32*
%g=load i32,i32*%f,align 4
%h=bitcast i8*%c to i32*
%i=load i32,i32*%h,align 4
%j=bitcast i8*%d to i32*
%k=load i32,i32*%j,align 4
%l=bitcast i8*%e to i32*
%m=load i32,i32*%l,align 4
%n=tail call fastcc i8*@_SMLFN5GenID3Map3mapE(i32 inreg%g,i32 inreg%i,i32 inreg%k,i32 inreg%m)
ret i8*%n
}
define internal fastcc i8*@_SMLLN5GenID3Map4mapiE_227(i8*inreg%a,i8*inreg%b,i8*inreg%c,i8*inreg%d,i8*inreg%e)#3 gc"smlsharp"{
%f=bitcast i8*%b to i32*
%g=load i32,i32*%f,align 4
%h=bitcast i8*%c to i32*
%i=load i32,i32*%h,align 4
%j=bitcast i8*%d to i32*
%k=load i32,i32*%j,align 4
%l=bitcast i8*%e to i32*
%m=load i32,i32*%l,align 4
%n=tail call fastcc i8*@_SMLFN5GenID3Map4mapiE(i32 inreg%g,i32 inreg%i,i32 inreg%k,i32 inreg%m)
ret i8*%n
}
define internal fastcc i8*@_SMLLN5GenID3Map5foldlE_228(i8*inreg%a,i8*inreg%b,i8*inreg%c,i8*inreg%d,i8*inreg%e)#3 gc"smlsharp"{
%f=bitcast i8*%b to i32*
%g=load i32,i32*%f,align 4
%h=bitcast i8*%c to i32*
%i=load i32,i32*%h,align 4
%j=bitcast i8*%d to i32*
%k=load i32,i32*%j,align 4
%l=bitcast i8*%e to i32*
%m=load i32,i32*%l,align 4
%n=tail call fastcc i8*@_SMLFN5GenID3Map5foldlE(i32 inreg%g,i32 inreg%i,i32 inreg%k,i32 inreg%m)
ret i8*%n
}
define internal fastcc i8*@_SMLLN5GenID3Map6foldliE_229(i8*inreg%a,i8*inreg%b,i8*inreg%c,i8*inreg%d,i8*inreg%e)#3 gc"smlsharp"{
%f=bitcast i8*%b to i32*
%g=load i32,i32*%f,align 4
%h=bitcast i8*%c to i32*
%i=load i32,i32*%h,align 4
%j=bitcast i8*%d to i32*
%k=load i32,i32*%j,align 4
%l=bitcast i8*%e to i32*
%m=load i32,i32*%l,align 4
%n=tail call fastcc i8*@_SMLFN5GenID3Map6foldliE(i32 inreg%g,i32 inreg%i,i32 inreg%k,i32 inreg%m)
ret i8*%n
}
define internal fastcc i8*@_SMLLN5GenID3Map5foldrE_230(i8*inreg%a,i8*inreg%b,i8*inreg%c,i8*inreg%d,i8*inreg%e)#3 gc"smlsharp"{
%f=bitcast i8*%b to i32*
%g=load i32,i32*%f,align 4
%h=bitcast i8*%c to i32*
%i=load i32,i32*%h,align 4
%j=bitcast i8*%d to i32*
%k=load i32,i32*%j,align 4
%l=bitcast i8*%e to i32*
%m=load i32,i32*%l,align 4
%n=tail call fastcc i8*@_SMLFN5GenID3Map5foldrE(i32 inreg%g,i32 inreg%i,i32 inreg%k,i32 inreg%m)
ret i8*%n
}
define internal fastcc i8*@_SMLLN5GenID3Map6foldriE_231(i8*inreg%a,i8*inreg%b,i8*inreg%c,i8*inreg%d,i8*inreg%e)#3 gc"smlsharp"{
%f=bitcast i8*%b to i32*
%g=load i32,i32*%f,align 4
%h=bitcast i8*%c to i32*
%i=load i32,i32*%h,align 4
%j=bitcast i8*%d to i32*
%k=load i32,i32*%j,align 4
%l=bitcast i8*%e to i32*
%m=load i32,i32*%l,align 4
%n=tail call fastcc i8*@_SMLFN5GenID3Map6foldriE(i32 inreg%g,i32 inreg%i,i32 inreg%k,i32 inreg%m)
ret i8*%n
}
define internal fastcc i8*@_SMLLN5GenID3Map6filterE_232(i8*inreg%a,i8*inreg%b,i8*inreg%c)#3 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*@_SMLFN5GenID3Map6filterE(i32 inreg%e,i32 inreg%g)
ret i8*%h
}
define internal fastcc i8*@_SMLLN5GenID3Map7filteriE_233(i8*inreg%a,i8*inreg%b,i8*inreg%c)#3 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*@_SMLFN5GenID3Map7filteriE(i32 inreg%e,i32 inreg%g)
ret i8*%h
}
define internal fastcc i8*@_SMLLN5GenID3Map10mapPartialE_234(i8*inreg%a,i8*inreg%b,i8*inreg%c,i8*inreg%d,i8*inreg%e)#3 gc"smlsharp"{
%f=bitcast i8*%b to i32*
%g=load i32,i32*%f,align 4
%h=bitcast i8*%c to i32*
%i=load i32,i32*%h,align 4
%j=bitcast i8*%d to i32*
%k=load i32,i32*%j,align 4
%l=bitcast i8*%e to i32*
%m=load i32,i32*%l,align 4
%n=tail call fastcc i8*@_SMLFN5GenID3Map10mapPartialE(i32 inreg%g,i32 inreg%i,i32 inreg%k,i32 inreg%m)
ret i8*%n
}
define internal fastcc i8*@_SMLLN5GenID3Map11mapPartialiE_235(i8*inreg%a,i8*inreg%b,i8*inreg%c,i8*inreg%d,i8*inreg%e)#3 gc"smlsharp"{
%f=bitcast i8*%b to i32*
%g=load i32,i32*%f,align 4
%h=bitcast i8*%c to i32*
%i=load i32,i32*%h,align 4
%j=bitcast i8*%d to i32*
%k=load i32,i32*%j,align 4
%l=bitcast i8*%e to i32*
%m=load i32,i32*%l,align 4
%n=tail call fastcc i8*@_SMLFN5GenID3Map11mapPartialiE(i32 inreg%g,i32 inreg%i,i32 inreg%k,i32 inreg%m)
ret i8*%n
}
define internal fastcc i8*@_SMLLN5GenID3Map10insertWithE_236(i8*inreg%a,i8*inreg%b,i8*inreg%c)#3 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*@_SMLFN5GenID3Map10insertWithE(i32 inreg%e,i32 inreg%g)
ret i8*%h
}
define internal fastcc i8*@_SMLLN5GenID3Map10differenceE_237(i8*inreg%a,i8*inreg%b,i8*inreg%c)#3 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*@_SMLFN5GenID3Map10differenceE(i32 inreg%e,i32 inreg%g)
ret i8*%h
}
define internal fastcc i8*@_SMLLN5GenID3Map18subtractByKeyEquivE_238(i8*inreg%a,i8*inreg%b,i8*inreg%c)#3 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*@_SMLFN5GenID3Map18subtractByKeyEquivE(i32 inreg%e,i32 inreg%g)
ret i8*%h
}
define internal fastcc i8*@_SMLLN5GenID3Map22subtractByKeyElemEquivE_239(i8*inreg%a,i8*inreg%b,i8*inreg%c)#3 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*@_SMLFN5GenID3Map22subtractByKeyElemEquivE(i32 inreg%e,i32 inreg%g)
ret i8*%h
}
define internal fastcc i8*@_SMLLN5GenID3Map2eqE_240(i8*inreg%a,i8*inreg%b,i8*inreg%c)#3 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*@_SMLFN5GenID3Map2eqE(i32 inreg%e,i32 inreg%g)
ret i8*%h
}
define internal fastcc i8*@_SMLLN5GenID3Set5foldlE_260(i8*inreg%a,i8*inreg%b,i8*inreg%c)#3 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*@_SMLFN5GenID3Set5foldlE(i32 inreg%e,i32 inreg%g)
ret i8*%h
}
define internal fastcc i8*@_SMLLN5GenID3Set5foldrE_261(i8*inreg%a,i8*inreg%b,i8*inreg%c)#3 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*@_SMLFN5GenID3Set5foldrE(i32 inreg%e,i32 inreg%g)
ret i8*%h
}
define internal fastcc i8*@_SMLLN5GenID7compareE_266(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=tail call fastcc i32@_SMLFN5GenID7compareE(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*@_SMLLN5GenID2eqE_267(i8*inreg%a,i8*inreg%b)#3 gc"smlsharp"{
%c=bitcast i8*%b to i32*
%d=load i32,i32*%c,align 4
%e=getelementptr inbounds i8,i8*%b,i64 4
%f=bitcast i8*%e to i32*
%g=load i32,i32*%f,align 4
%h=icmp eq i32%d,%g
%i=zext i1%h to i32
%j=tail 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 4,i32*%m,align 4
store i32%i,i32*%k,align 4
ret i8*%j
}
define internal fastcc i8*@_SMLLN5GenID9format__idE_268(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=bitcast i8*%b to i32*
%d=load i32,i32*%c,align 4
%e=tail call fastcc i8*@_SMLFN5GenID9format__idE(i32 inreg%d)
ret i8*%e
}
define internal fastcc i8*@_SMLLN5GenID8toStringE_269(i8*inreg%a,i8*inreg%b)#1 gc"smlsharp"{
%c=bitcast i8*%b to i32*
%d=load i32,i32*%c,align 4
%e=tail call fastcc i8*@_SMLFN5GenID8toStringE(i32 inreg%d)
ret i8*%e
}
define internal fastcc i8*@_SMLLN5GenID5toIntE_270(i8*inreg%a,i8*inreg%b)#3 gc"smlsharp"{
%c=bitcast i8*%b to i32*
%d=load i32,i32*%c,align 4
%e=tail call i8*@sml_alloc(i32 inreg 4)#0
%f=bitcast i8*%e to i32*
%g=getelementptr inbounds i8,i8*%e,i64 -4
%h=bitcast i8*%g to i32*
store i32 4,i32*%h,align 4
store i32%d,i32*%f,align 4
ret i8*%e
}
define internal fastcc i8*@_SMLLN5GenID13setReservedIdE_271(i8*inreg%a,i8*inreg%b)#3 gc"smlsharp"{
%c=load i32,i32*@ab,align 8
store i32%c,i32*@aa,align 8
%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 0,i32*%e,align 4
ret i8*%d
}
define internal fastcc i8*@_SMLLN5GenID10isReservedE_272(i8*inreg%a,i8*inreg%b)#3 gc"smlsharp"{
%c=bitcast i8*%b to i32*
%d=load i32,i32*%c,align 4
%e=load i32,i32*@aa,align 8
%f=icmp sgt i32%e,%d
%g=zext i1%f to i32
%h=tail call i8*@sml_alloc(i32 inreg 4)#0
%i=bitcast i8*%h to i32*
%j=getelementptr inbounds i8,i8*%h,i64 -4
%k=bitcast i8*%j to i32*
store i32 4,i32*%k,align 4
store i32%g,i32*%i,align 4
ret i8*%h
}
attributes#0={nounwind}
attributes#1={uwtable}
attributes#2={noreturn nounwind}
attributes#3={nounwind uwtable}
