Created
April 29, 2019 16:56
-
-
Save alexanderkyte/2734b8c98fbf0c191ace45b17de10875 to your computer and use it in GitHub Desktop.
IR for bad Span code
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; ModuleID = 'mono_aot_HyUGRv/temp.bc' | |
source_filename = "aot" | |
%MONO_GOT_SpanCrash.exe = type { i64**, i64**, i64**, i64**, i64*, i64**, i64**, i64*, i64**, i64**, i64**, i64**, i64**, i64**, i64**, i64**, i64**, i64**, i64**, void (i64, i32)*, void (i64, i32, i64*)*, void (i64, i32, i64)*, void (i64, i32, i64)*, i64**, i64**, void ()*, i64**, i64**, i64**, i64**, i64**, i64**, i64**, i64**, i64**, i64**, i64**, i64**, i64**, i64** } | |
%MonoAotFileInfo = type { i32, i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [11 x i32], [6 x i32], [6 x i32], [6 x i32], [6 x i32], [16 x i8] } | |
%"System.Span`1<byte>" = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } | |
%System.ParamsArray = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } | |
@_ZTIPi = external constant i8* | |
@method_info_offsets = internal constant [31 x i8] c"\09\00\00\00\0A\00\00\00\01\00\00\00\02\00\00\00\00\00\01\0A\05\01\FF\FF\FF\FF\EF\12\01\01\01", align 8 | |
@extra_method_table = internal constant [148 x i8] c"\0B\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\16\00\00\00\05\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00.\00\00\00\08\00\00\00\00\00\00\00\1E\00\00\00\06\00\00\00\0B\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00&\00\00\00\07\00\00\00\00\00\00\00", align 8 | |
@extra_method_info_offsets = internal constant [36 x i8] c"\04\00\00\00\05\00\00\00\16\00\00\00\06\00\00\00\1E\00\00\00\07\00\00\00&\00\00\00\08\00\00\00.\00\00\00", align 8 | |
@class_name_table = internal constant [50 x i8] c"\0B\00\01\00\0B\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00", align 8 | |
@got_info_offsets = internal constant [53 x i8] c"\1E\00\00\00\0A\00\00\00\03\00\00\00\02\00\00\00\00\00\0A\00\14\006\02\01\01\01\01\01\01\01\02C\02\02\02\02\02\02\02\02\1B\80\86%''(#\1A!\1D\19", align 8 | |
@llvm_got_info_offsets = internal constant [68 x i8] c"(\00\00\00\0A\00\00\00\04\00\00\00\02\00\00\00\00\00\0B\00\16\00!\00\82\D7\02\01\01\01\01\01\01\01\02\82\E4\02\02\02\02\02\02\02\02\1B\83'%''(#\1A!\1D\19\84x\14\04\06\0A\0A\0A\0A\06\03", align 8 | |
@ex_info_offsets = internal constant [33 x i8] c"\09\00\00\00\0A\00\00\00\01\00\00\00\02\00\00\00\00\00\84\CB\05\05\05\FF\FF\FF\FB&\84\DF\05\05\05", align 8 | |
@class_info_offsets = internal constant [21 x i8] c"\02\00\00\00\0A\00\00\00\01\00\00\00\02\00\00\00\00\00\84\F3\07", align 8 | |
@image_table = internal constant [364 x i8] c"\04\00\00\00mscorlib\00F53F0FCF-E639-4B5A-8CC3-3FAE7DFE8C12\00\00b77a5c561934e089\00\00\00\00\00\01\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00SpanCrash\00168C4942-B9EA-45BC-92C4-43F7F42EA333\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\92\1B\00\00\88U\00\00System.Memory\00EAD79779-B248-4629-B72A-74757C91B215\00\00cc7b13ffcd2ddd51\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00System.Runtime.CompilerServices.Unsafe\00E8ADE3B6-27CC-4A94-903F-BB71C974A4BA\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00", align 8 | |
@weak_field_indexes = internal constant [4 x i8] zeroinitializer, align 8 | |
@blob = internal constant [1294 x i8] c"\00\04\08\1E$#!\22! \1F\04\03%'&\00\00\00\00\00\00\FF\FC\00\00\00\16\1D\00\FF\FC\00\00\00\16\1D\01\FF\FC\00\00\00\16\1D\03\FF\FC\00\00\00\16\1D\02\0C\01$&.24 07\008\007\018\017\028\027\038\037\048\049\18mono_threads_attach_coop\00\07\15mini_llvm_init_method\00\07\22mini_llvm_init_gshared_method_this\00\07$mini_llvm_init_gshared_method_mrgctx\00\07$mini_llvm_init_gshared_method_vtable\00\07%mini_llvmonly_throw_nullref_exception\00\07 mono_llvm_throw_corlib_exception\00\07\17mono_threads_state_poll\00\07\1Emini_llvmonly_init_vtable_slot\00\07\1Amono_helper_ldstr_mscorlib\00\07\16mono_fill_method_rgctx\00\07\15mono_fill_class_rgctx\00\01\01\80\CA\03\FF\FD\00\00\00\02\1C\02\02\81u\02\81\CD\03\FF\FD\00\00\00\02\13\02\02\81(\02\81\CD\03\C2\00\01!\03\C2\00\01\12\07\17mono_generic_class_init\00\03\C2\00\00\0C\03\FF\FC\00\00\00\19\01\03\C1\00\00\01\03\FF\FC\00\00\00\19\02\03\98\F5\07*llvm_throw_corlib_exception_abs_trampoline\00\07\11mono_helper_ldstr\00\07\1Bmono_helper_newobj_mscorlib\00\03\8E\18\03\98\F2\07\1Emono_create_corlib_exception_1\00\07\19mono_arch_throw_exception\00\03\C1\00\00\02\0C\01$&.24 07\008\007\018\017\028\027\038\037\048\049\18mono_threads_attach_coop\00\07\15mini_llvm_init_method\00\07\22mini_llvm_init_gshared_method_this\00\07$mini_llvm_init_gshared_method_mrgctx\00\07$mini_llvm_init_gshared_method_vtable\00\07%mini_llvmonly_throw_nullref_exception\00\07 mono_llvm_throw_corlib_exception\00\07\17mono_threads_state_poll\00\07\1Emini_llvmonly_init_vtable_slot\00\07\1Amono_helper_ldstr_mscorlib\00\07\16mono_fill_method_rgctx\00\07\15mono_fill_class_rgctx\00\04\02\15\02\81\CD\01\07\84n!\FF\FD\00\00\00\02\02\03\03\13\02\84t\04\02:\02\81\CD\0E\07\84\86\0F\07\84\86\80\DE\12\02\DB\00\00\0D\01\02\81\CD\12\02\C1\00\00M\01\02\81\CD\12\02\C1\00\00]\01\02\81\CD\12\02\DB\00\00\14\01\01\81\CD\0E\06\01\01\80\CA\10\01\01\0E\01\81\10\18\00\00\00\00\18\00\00\00\00\18\00\00\00\00\18\00\00\00\00\18\00\00\00\00\18\00\00\00\00\18\00\00\00\00\18\00\00\00\00\00\80\90\10\00\00\01\04\80\90\10\00\00\01\9A\D5\9A\D2\9A\D1\9A\CEsgen\00", align 8 | |
@runtime_version = internal constant [1 x i8] zeroinitializer, align 8 | |
@assembly_guid = internal constant [37 x i8] c"168C4942-B9EA-45BC-92C4-43F7F42EA333\00", align 8 | |
@assembly_name = internal constant [10 x i8] c"SpanCrash\00", align 8 | |
@mono_aot_SpanCrash_llvm_got = hidden global %MONO_GOT_SpanCrash.exe zeroinitializer | |
@mono_inited = internal global [2 x i8] zeroinitializer | |
@SpanCrash_unbox_tramp_indexes = global [0 x i16] zeroinitializer | |
@SpanCrash_unbox_trampolines = global [0 x i8*] zeroinitializer | |
@llvm.used = appending global [11 x i8*] [i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*), i8* bitcast (i32 (i64*)* @SpanCrash_MainClass_SpanIndexOf_byte__ to i8*), i8* bitcast (void ()* @SpanCrash_MainClass_AssertOnBytes to i8*), i8* bitcast (void (i64*)* @SpanCrash_MainClass_Main_string__ to i8*), i8* bitcast (void (i64*)* @SpanCrash_MainClass__ctor to i8*), i8* bitcast (void (i32)* @mono_aot_SpanCrashinit_method to i8*), i8* bitcast (void (i32, i64)* @mono_aot_SpanCrashinit_method_gshared_mrgctx to i8*), i8* bitcast (void (i32, i64)* @mono_aot_SpanCrashinit_method_gshared_vtable to i8*), i8* bitcast (void (i32, i64*)* @mono_aot_SpanCrashinit_method_gshared_this to i8*), i8* bitcast (%MONO_GOT_SpanCrash.exe* @mono_aot_SpanCrash_llvm_got to i8*), i8* bitcast (i8* (i32)* @mono_aot_SpanCrash_get_method to i8*)], section "llvm.metadata" | |
@mono_aot_file_info = global %MonoAotFileInfo { i32 159, i32 0, i8* @mono_aot_SpanCrashjit_got, i8* bitcast (%MONO_GOT_SpanCrash.exe* @mono_aot_SpanCrash_llvm_got to i8*), i8* bitcast (i8** @mono_aot_SpanCrash_eh_frame to i8*), i8* bitcast (i8* (i32)* @mono_aot_SpanCrash_get_method to i8*), i8* null, i8* null, i8* null, i8* @mono_aot_SpanCrashmethod_addresses, i8* null, i8* null, i8* getelementptr inbounds ([1294 x i8], [1294 x i8]* @blob, i32 0, i32 0), i8* getelementptr inbounds ([50 x i8], [50 x i8]* @class_name_table, i32 0, i32 0), i8* getelementptr inbounds ([21 x i8], [21 x i8]* @class_info_offsets, i32 0, i32 0), i8* getelementptr inbounds ([31 x i8], [31 x i8]* @method_info_offsets, i32 0, i32 0), i8* getelementptr inbounds ([33 x i8], [33 x i8]* @ex_info_offsets, i32 0, i32 0), i8* getelementptr inbounds ([36 x i8], [36 x i8]* @extra_method_info_offsets, i32 0, i32 0), i8* getelementptr inbounds ([148 x i8], [148 x i8]* @extra_method_table, i32 0, i32 0), i8* getelementptr inbounds ([53 x i8], [53 x i8]* @got_info_offsets, i32 0, i32 0), i8* getelementptr inbounds ([68 x i8], [68 x i8]* @llvm_got_info_offsets, i32 0, i32 0), i8* getelementptr inbounds ([364 x i8], [364 x i8]* @image_table, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @weak_field_indexes, i32 0, i32 0), i8* null, i8* getelementptr inbounds ([37 x i8], [37 x i8]* @assembly_guid, i32 0, i32 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @runtime_version, i32 0, i32 0), i8* null, i8* null, i8* null, i8* null, i8* null, i8* null, i8* null, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @assembly_name, i32 0, i32 0), i8* @mono_aot_SpanCrashplt, i8* @mono_aot_SpanCrashplt_end, i8* @mono_aot_SpanCrashunwind_info, i8* @mono_aot_SpanCrashunbox_trampolines, i8* @mono_aot_SpanCrashunbox_trampolines_end, i8* @mono_aot_SpanCrashunbox_trampoline_addresses, i32 30, i32 392, i32 19, i32 9, i32 4, i32 33, i32 374434303, i32 63, i32 1289, i32 128, i32 8, i32 8, i32 8, i32 9, i32 8388607, i32 0, i32 30, i32 0, i32 0, i32 2, [11 x i32] zeroinitializer, [6 x i32] zeroinitializer, [6 x i32] zeroinitializer, [6 x i32] zeroinitializer, [6 x i32] zeroinitializer, [16 x i8] c"G\87G\8EoG,\0E\BA\D0\96\8FMs\98\0D" } | |
@mono_aot_SpanCrashjit_got = external hidden global i8 | |
@mono_aot_SpanCrash_eh_frame = external global i8* | |
@mono_aot_SpanCrashmethod_addresses = external hidden global i8 | |
@mono_aot_SpanCrashplt = external hidden global i8 | |
@mono_aot_SpanCrashplt_end = external hidden global i8 | |
@mono_aot_SpanCrashunwind_info = external hidden global i8 | |
@mono_aot_SpanCrashunbox_trampolines = external hidden global i8 | |
@mono_aot_SpanCrashunbox_trampolines_end = external hidden global i8 | |
@mono_aot_SpanCrashunbox_trampoline_addresses = external hidden global i8 | |
; Function Attrs: argmemonly nounwind | |
declare void @llvm.memset.p0i8.i32(i8* nocapture writeonly, i8, i32, i32, i1) #0 | |
; Function Attrs: argmemonly nounwind | |
declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture writeonly, i8* nocapture readonly, i32, i32, i1) #0 | |
; Function Attrs: nounwind readnone speculatable | |
declare { i32, i1 } @llvm.sadd.with.overflow.i32(i32, i32) #1 | |
; Function Attrs: nounwind readnone speculatable | |
declare { i32, i1 } @llvm.uadd.with.overflow.i32(i32, i32) #1 | |
; Function Attrs: nounwind readnone speculatable | |
declare { i32, i1 } @llvm.ssub.with.overflow.i32(i32, i32) #1 | |
; Function Attrs: nounwind readnone speculatable | |
declare { i32, i1 } @llvm.usub.with.overflow.i32(i32, i32) #1 | |
; Function Attrs: nounwind readnone speculatable | |
declare { i32, i1 } @llvm.smul.with.overflow.i32(i32, i32) #1 | |
; Function Attrs: nounwind readnone speculatable | |
declare { i32, i1 } @llvm.umul.with.overflow.i32(i32, i32) #1 | |
; Function Attrs: nounwind readnone speculatable | |
declare { i64, i1 } @llvm.sadd.with.overflow.i64(i64, i64) #1 | |
; Function Attrs: nounwind readnone speculatable | |
declare { i64, i1 } @llvm.uadd.with.overflow.i64(i64, i64) #1 | |
; Function Attrs: nounwind readnone speculatable | |
declare { i64, i1 } @llvm.ssub.with.overflow.i64(i64, i64) #1 | |
; Function Attrs: nounwind readnone speculatable | |
declare { i64, i1 } @llvm.usub.with.overflow.i64(i64, i64) #1 | |
; Function Attrs: nounwind readnone speculatable | |
declare { i64, i1 } @llvm.smul.with.overflow.i64(i64, i64) #1 | |
; Function Attrs: nounwind readnone speculatable | |
declare { i64, i1 } @llvm.umul.with.overflow.i64(i64, i64) #1 | |
; Function Attrs: nounwind readnone speculatable | |
declare double @llvm.sin.f64(double) #1 | |
; Function Attrs: nounwind readnone speculatable | |
declare double @llvm.cos.f64(double) #1 | |
; Function Attrs: nounwind readnone speculatable | |
declare double @llvm.sqrt.f64(double) #1 | |
declare double @fabs(double) | |
; Function Attrs: nounwind readnone speculatable | |
declare float @llvm.fabs.f32(float) #1 | |
; Function Attrs: nounwind readnone speculatable | |
declare float @llvm.sin.f32(float) #1 | |
; Function Attrs: nounwind readnone speculatable | |
declare float @llvm.cos.f32(float) #1 | |
; Function Attrs: nounwind readnone speculatable | |
declare float @llvm.sqrt.f32(float) #1 | |
; Function Attrs: nounwind readnone speculatable | |
declare float @llvm.pow.f32(float, float) #1 | |
; Function Attrs: nounwind readnone | |
declare i8 @llvm.expect.i8(i8, i8) #2 | |
; Function Attrs: nounwind readnone | |
declare i1 @llvm.expect.i1(i1, i1) #2 | |
; Function Attrs: nounwind readnone | |
declare i32 @llvm.x86.sse2.pmovmskb.128(<16 x i8>) #2 | |
; Function Attrs: nounwind readnone | |
declare <8 x i16> @llvm.x86.sse2.psrli.w(<8 x i16>, i32) #2 | |
; Function Attrs: nounwind readnone | |
declare <8 x i16> @llvm.x86.sse2.psrai.w(<8 x i16>, i32) #2 | |
; Function Attrs: nounwind readnone | |
declare <8 x i16> @llvm.x86.sse2.pslli.w(<8 x i16>, i32) #2 | |
; Function Attrs: nounwind readnone | |
declare <4 x i32> @llvm.x86.sse2.psrli.d(<4 x i32>, i32) #2 | |
; Function Attrs: nounwind readnone | |
declare <4 x i32> @llvm.x86.sse2.psrai.d(<4 x i32>, i32) #2 | |
; Function Attrs: nounwind readnone | |
declare <4 x i32> @llvm.x86.sse2.pslli.d(<4 x i32>, i32) #2 | |
; Function Attrs: nounwind readnone | |
declare <2 x i64> @llvm.x86.sse2.psrli.q(<2 x i64>, i32) #2 | |
; Function Attrs: nounwind readnone | |
declare <2 x i64> @llvm.x86.sse2.pslli.q(<2 x i64>, i32) #2 | |
; Function Attrs: nounwind readnone | |
declare <2 x double> @llvm.x86.sse2.sqrt.pd(<2 x double>) #2 | |
; Function Attrs: nounwind readnone | |
declare <4 x float> @llvm.x86.sse.sqrt.ps(<4 x float>) #2 | |
; Function Attrs: nounwind readnone | |
declare <4 x float> @llvm.x86.sse.rsqrt.ps(<4 x float>) #2 | |
; Function Attrs: nounwind readnone | |
declare <4 x float> @llvm.x86.sse.rcp.ps(<4 x float>) #2 | |
; Function Attrs: nounwind readnone | |
declare <4 x i32> @llvm.x86.sse2.cvttpd2dq(<2 x double>) #2 | |
; Function Attrs: nounwind readnone | |
declare <4 x i32> @llvm.x86.sse2.cvttps2dq(<4 x float>) #2 | |
; Function Attrs: nounwind readnone | |
declare <4 x float> @llvm.x86.sse2.cvtdq2ps(<4 x i32>) #2 | |
; Function Attrs: nounwind readnone | |
declare <4 x i32> @llvm.x86.sse2.cvtpd2dq(<2 x double>) #2 | |
; Function Attrs: nounwind readnone | |
declare <4 x i32> @llvm.x86.sse2.cvtps2dq(<4 x float>) #2 | |
; Function Attrs: nounwind readnone | |
declare <4 x float> @llvm.x86.sse2.cvtpd2ps(<2 x double>) #2 | |
; Function Attrs: nounwind readnone | |
declare <2 x double> @llvm.x86.sse2.cmp.pd(<2 x double>, <2 x double>, i8) #2 | |
; Function Attrs: nounwind readnone | |
declare <4 x float> @llvm.x86.sse.cmp.ps(<4 x float>, <4 x float>, i8) #2 | |
; Function Attrs: nounwind readnone | |
declare <16 x i8> @llvm.x86.sse2.packsswb.128(<8 x i16>, <8 x i16>) #2 | |
; Function Attrs: nounwind readnone | |
declare <16 x i8> @llvm.x86.sse2.packuswb.128(<8 x i16>, <8 x i16>) #2 | |
; Function Attrs: nounwind readnone | |
declare <16 x i8> @llvm.x86.sse2.packssdw.128(<8 x i16>, <8 x i16>) #2 | |
; Function Attrs: nounwind readnone | |
declare <8 x i16> @llvm.x86.sse41.packusdw(<4 x i32>, <4 x i32>) #2 | |
; Function Attrs: nounwind readnone | |
declare <4 x float> @llvm.x86.sse.min.ps(<4 x float>, <4 x float>) #2 | |
; Function Attrs: nounwind readnone | |
declare <4 x float> @llvm.x86.sse.max.ps(<4 x float>, <4 x float>) #2 | |
; Function Attrs: nounwind readnone | |
declare <4 x float> @llvm.x86.sse3.hadd.ps(<4 x float>, <4 x float>) #2 | |
; Function Attrs: nounwind readnone | |
declare <4 x float> @llvm.x86.sse3.hsub.ps(<4 x float>, <4 x float>) #2 | |
; Function Attrs: nounwind readnone | |
declare <4 x float> @llvm.x86.sse3.addsub.ps(<4 x float>, <4 x float>) #2 | |
; Function Attrs: nounwind readnone | |
declare <2 x double> @llvm.x86.sse2.min.pd(<2 x double>, <2 x double>) #2 | |
; Function Attrs: nounwind readnone | |
declare <2 x double> @llvm.x86.sse2.max.pd(<2 x double>, <2 x double>) #2 | |
; Function Attrs: nounwind readnone | |
declare <2 x double> @llvm.x86.sse3.hadd.pd(<2 x double>, <2 x double>) #2 | |
; Function Attrs: nounwind readnone | |
declare <2 x double> @llvm.x86.sse3.hsub.pd(<2 x double>, <2 x double>) #2 | |
; Function Attrs: nounwind readnone | |
declare <2 x double> @llvm.x86.sse3.addsub.pd(<2 x double>, <2 x double>) #2 | |
; Function Attrs: nounwind readnone | |
declare <8 x i16> @llvm.x86.sse2.padds.w(<8 x i16>, <8 x i16>) #2 | |
; Function Attrs: nounwind readnone | |
declare <8 x i16> @llvm.x86.sse2.psubs.w(<8 x i16>, <8 x i16>) #2 | |
; Function Attrs: nounwind readnone | |
declare <8 x i16> @llvm.x86.sse2.paddus.w(<8 x i16>, <8 x i16>) #2 | |
; Function Attrs: nounwind readnone | |
declare <8 x i16> @llvm.x86.sse2.psubus.w(<8 x i16>, <8 x i16>) #2 | |
; Function Attrs: nounwind readnone | |
declare <8 x i16> @llvm.x86.sse2.pmulh.w(<8 x i16>, <8 x i16>) #2 | |
; Function Attrs: nounwind readnone | |
declare <8 x i16> @llvm.x86.sse2.pmulhu.w(<8 x i16>, <8 x i16>) #2 | |
; Function Attrs: nounwind readnone | |
declare <16 x i8> @llvm.x86.sse2.padds.b(<16 x i8>, <16 x i8>) #2 | |
; Function Attrs: nounwind readnone | |
declare <16 x i8> @llvm.x86.sse2.psubs.b(<16 x i8>, <16 x i8>) #2 | |
; Function Attrs: nounwind readnone | |
declare <16 x i8> @llvm.x86.sse2.paddus.b(<16 x i8>, <16 x i8>) #2 | |
; Function Attrs: nounwind readnone | |
declare <16 x i8> @llvm.x86.sse2.psubus.b(<16 x i8>, <16 x i8>) #2 | |
; Function Attrs: nounwind | |
declare void @llvm.x86.sse2.pause() #3 | |
; Function Attrs: nounwind readnone | |
declare <4 x float> @llvm.x86.sse41.dpps(<4 x float>, <4 x float>, i8) #2 | |
; Function Attrs: nounwind readnone | |
declare <2 x double> @llvm.x86.sse41.round.pd(<4 x float>, i32) #2 | |
declare void @mono_personality() | |
declare void @llvm_resume_unwind_trampoline() | |
declare i8 @llvm.mono.load.i8.p0i8(i8*, i32, i1, i32) | |
declare void @llvm.mono.store.i8.p0i8(i8, i8*, i32, i1, i32) | |
declare i16 @llvm.mono.load.i16.p0i16(i16*, i32, i1, i32) | |
declare void @llvm.mono.store.i16.p0i16(i16, i16*, i32, i1, i32) | |
declare i32 @llvm.mono.load.i32.p0i32(i32*, i32, i1, i32) | |
declare void @llvm.mono.store.i32.p0i32(i32, i32*, i32, i1, i32) | |
declare i64 @llvm.mono.load.i64.p0i64(i64*, i32, i1, i32) | |
declare void @llvm.mono.store.i64.p0i64(i64, i64*, i32, i1, i32) | |
; Function Attrs: nounwind | |
define weak_odr void @gc.safepoint_poll() #3 { | |
gc.safepoint_poll.entry: | |
%0 = load i64*, i64** getelementptr inbounds ([0 x i64*], [0 x i64*]* bitcast (%MONO_GOT_SpanCrash.exe* @mono_aot_SpanCrash_llvm_got to [0 x i64*]*), i32 0, i32 7) | |
%1 = load i64, i64* %0 | |
%2 = icmp eq i64 %1, 0 | |
br i1 %2, label %gc.safepoint_poll.exit, label %gc.safepoint_poll.poll | |
gc.safepoint_poll.poll: ; preds = %gc.safepoint_poll.entry | |
%3 = load i64*, i64** getelementptr inbounds ([0 x i64*], [0 x i64*]* bitcast (%MONO_GOT_SpanCrash.exe* @mono_aot_SpanCrash_llvm_got to [0 x i64*]*), i32 0, i32 25) | |
%4 = bitcast i64* %3 to void ()* | |
call void %4() | |
br label %gc.safepoint_poll.exit | |
gc.safepoint_poll.exit: ; preds = %gc.safepoint_poll.poll, %gc.safepoint_poll.entry | |
ret void | |
} | |
; Function Attrs: nounwind | |
define internal void @llvm_code_start() #3 { | |
ENTRY: | |
ret void | |
} | |
; Function Attrs: noinline | |
define hidden monocc void @mono_aot_SpanCrashinit_method(i32) #4 { | |
ENTRY: | |
%1 = load i64*, i64** getelementptr inbounds ([0 x i64*], [0 x i64*]* bitcast (%MONO_GOT_SpanCrash.exe* @mono_aot_SpanCrash_llvm_got to [0 x i64*]*), i32 0, i32 4) | |
%2 = ptrtoint i64* %1 to i64 | |
%3 = load i64*, i64** getelementptr inbounds ([0 x i64*], [0 x i64*]* bitcast (%MONO_GOT_SpanCrash.exe* @mono_aot_SpanCrash_llvm_got to [0 x i64*]*), i32 0, i32 19) | |
%4 = bitcast i64* %3 to void (i64, i32)* | |
call void %4(i64 %2, i32 %0) | |
%5 = getelementptr [0 x i8], [0 x i8]* bitcast ([2 x i8]* @mono_inited to [0 x i8]*), i32 0, i32 %0 | |
store i8 1, i8* %5 | |
ret void | |
} | |
; Function Attrs: noinline | |
define hidden monocc void @mono_aot_SpanCrashinit_method_gshared_mrgctx(i32, i64) #4 { | |
ENTRY: | |
%2 = load i64*, i64** getelementptr inbounds ([0 x i64*], [0 x i64*]* bitcast (%MONO_GOT_SpanCrash.exe* @mono_aot_SpanCrash_llvm_got to [0 x i64*]*), i32 0, i32 4) | |
%3 = ptrtoint i64* %2 to i64 | |
%4 = load i64*, i64** getelementptr inbounds ([0 x i64*], [0 x i64*]* bitcast (%MONO_GOT_SpanCrash.exe* @mono_aot_SpanCrash_llvm_got to [0 x i64*]*), i32 0, i32 21) | |
%5 = bitcast i64* %4 to void (i64, i32, i64)* | |
call void %5(i64 %3, i32 %0, i64 %1) | |
%6 = getelementptr [0 x i8], [0 x i8]* bitcast ([2 x i8]* @mono_inited to [0 x i8]*), i32 0, i32 %0 | |
store i8 1, i8* %6 | |
ret void | |
} | |
; Function Attrs: noinline | |
define hidden monocc void @mono_aot_SpanCrashinit_method_gshared_this(i32, i64*) #4 { | |
ENTRY: | |
%2 = load i64*, i64** getelementptr inbounds ([0 x i64*], [0 x i64*]* bitcast (%MONO_GOT_SpanCrash.exe* @mono_aot_SpanCrash_llvm_got to [0 x i64*]*), i32 0, i32 4) | |
%3 = ptrtoint i64* %2 to i64 | |
%4 = load i64*, i64** getelementptr inbounds ([0 x i64*], [0 x i64*]* bitcast (%MONO_GOT_SpanCrash.exe* @mono_aot_SpanCrash_llvm_got to [0 x i64*]*), i32 0, i32 20) | |
%5 = bitcast i64* %4 to void (i64, i32, i64*)* | |
call void %5(i64 %3, i32 %0, i64* %1) | |
%6 = getelementptr [0 x i8], [0 x i8]* bitcast ([2 x i8]* @mono_inited to [0 x i8]*), i32 0, i32 %0 | |
store i8 1, i8* %6 | |
ret void | |
} | |
; Function Attrs: noinline | |
define hidden monocc void @mono_aot_SpanCrashinit_method_gshared_vtable(i32, i64) #4 { | |
ENTRY: | |
%2 = load i64*, i64** getelementptr inbounds ([0 x i64*], [0 x i64*]* bitcast (%MONO_GOT_SpanCrash.exe* @mono_aot_SpanCrash_llvm_got to [0 x i64*]*), i32 0, i32 4) | |
%3 = ptrtoint i64* %2 to i64 | |
%4 = load i64*, i64** getelementptr inbounds ([0 x i64*], [0 x i64*]* bitcast (%MONO_GOT_SpanCrash.exe* @mono_aot_SpanCrash_llvm_got to [0 x i64*]*), i32 0, i32 22) | |
%5 = bitcast i64* %4 to void (i64, i32, i64)* | |
call void %5(i64 %3, i32 %0, i64 %1) | |
%6 = getelementptr [0 x i8], [0 x i8]* bitcast ([2 x i8]* @mono_inited to [0 x i8]*), i32 0, i32 %0 | |
store i8 1, i8* %6 | |
ret void | |
} | |
declare i32 @__gxx_personality_v0(...) | |
; Function Attrs: noinline uwtable | |
define hidden monocc i32 @SpanCrash_MainClass_SpanIndexOf_byte__(i64* %arg_backingArray) #5 gc "mono" { | |
BB0: | |
%0 = alloca i8, align 1 | |
%1 = alloca %"System.Span`1<byte>", align 8 | |
%2 = alloca %"System.Span`1<byte>", align 8 | |
%3 = alloca %"System.Span`1<byte>", align 8 | |
%4 = alloca %"System.Span`1<byte>", align 8 | |
%5 = alloca %"System.Span`1<byte>", align 8 | |
br label %INIT_BB1 | |
INIT_BB1: ; preds = %BB0 | |
%is_inited = load i8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @mono_inited, i32 0, i32 0) | |
%6 = call i8 @llvm.expect.i8(i8 %is_inited, i8 1) | |
%7 = icmp eq i8 %6, 0 | |
br i1 %7, label %NOTINITED_BB3, label %INITED_BB2 | |
INITED_BB2: ; preds = %NOTINITED_BB3, %INIT_BB1 | |
br label %BB3 | |
BB3: ; preds = %INITED_BB2 | |
%8 = bitcast %"System.Span`1<byte>"* %2 to i8* | |
call void @llvm.memset.p0i8.i32(i8* %8, i8 0, i32 24, i32 0, i1 false) | |
br label %BB2 | |
BB2: ; preds = %BB3 | |
br label %BB8 | |
BB8: ; preds = %BB2 | |
%9 = ptrtoint i64* %arg_backingArray to i64 | |
%10 = icmp ne i64 %9, 0 | |
br i1 %10, label %BB10, label %BB11 | |
BB10: ; preds = %BB8 | |
br i1 true, label %BB12, label %BB13 | |
BB11: ; preds = %BB8 | |
%11 = bitcast %"System.Span`1<byte>"* %2 to i64* | |
%12 = getelementptr i64, i64* %11, i32 0 | |
store i64 0, i64* %12 | |
%13 = bitcast %"System.Span`1<byte>"* %2 to i64* | |
%14 = getelementptr i64, i64* %13, i32 1 | |
store i64 0, i64* %14 | |
%15 = bitcast %"System.Span`1<byte>"* %2 to i64* | |
%16 = getelementptr i64, i64* %15, i32 2 | |
store i64 0, i64* %16 | |
br label %BB7 | |
BB12: ; preds = %BB14, %BB13, %BB10 | |
%17 = bitcast i64* %arg_backingArray to i32* | |
%18 = getelementptr i32, i32* %17, i32 6 | |
%t50 = load volatile i32, i32* %18 | |
%19 = bitcast %"System.Span`1<byte>"* %2 to i32* | |
%20 = getelementptr i32, i32* %19, i32 4 | |
store volatile i32 %t50, i32* %20 | |
%METHOD_RGCTX_30 = load i64*, i64** getelementptr inbounds ([0 x i64*], [0 x i64*]* bitcast (%MONO_GOT_SpanCrash.exe* @mono_aot_SpanCrash_llvm_got to [0 x i64*]*), i32 0, i32 30), !invariant.load !13 | |
%21 = bitcast %"System.Span`1<byte>"* %2 to i64* | |
%22 = getelementptr i64, i64* %21, i32 0 | |
%23 = ptrtoint i64* %arg_backingArray to i64 | |
store volatile i64 %23, i64* %22 | |
%24 = ptrtoint %"System.Span`1<byte>"* %2 to i64 | |
%t59 = lshr i64 %24, 9 | |
%t144 = and i64 %t59, 8388607 | |
%GC_CARD_TABLE_ADDR_2 = load i64*, i64** getelementptr inbounds ([0 x i64*], [0 x i64*]* bitcast (%MONO_GOT_SpanCrash.exe* @mono_aot_SpanCrash_llvm_got to [0 x i64*]*), i32 0, i32 2), !invariant.load !13 | |
%25 = ptrtoint i64* %GC_CARD_TABLE_ADDR_2 to i64 | |
%t145 = add i64 %t144, %25 | |
%26 = inttoptr i64 %t145 to i8* | |
%27 = getelementptr i8, i8* %26, i32 0 | |
store i8 1, i8* %27 | |
%VTABLE_31 = load i64*, i64** getelementptr inbounds ([0 x i64*], [0 x i64*]* bitcast (%MONO_GOT_SpanCrash.exe* @mono_aot_SpanCrash_llvm_got to [0 x i64*]*), i32 0, i32 31), !invariant.load !13 | |
%28 = bitcast i64* %VTABLE_31 to i8* | |
%29 = getelementptr i8, i8* %28, i32 45 | |
%30 = load i8, i8* %29 | |
%31 = zext i8 %30 to i32 | |
%32 = sext i32 %31 to i64 | |
%33 = icmp ne i64 %32, 0 | |
br i1 %33, label %BB30, label %BB31 | |
BB13: ; preds = %BB10 | |
%t35 = load volatile i64, i64* %arg_backingArray | |
%34 = inttoptr i64 %t35 to i64* | |
%35 = getelementptr i64, i64* %34, i32 3 | |
%t34 = load i64, i64* %35 | |
%TYPE_FROM_HANDLE_36 = load i64*, i64** getelementptr inbounds ([0 x i64*], [0 x i64*]* bitcast (%MONO_GOT_SpanCrash.exe* @mono_aot_SpanCrash_llvm_got to [0 x i64*]*), i32 0, i32 36), !invariant.load !13 | |
%36 = ptrtoint i64* %TYPE_FROM_HANDLE_36 to i64 | |
%37 = icmp eq i64 %t34, %36 | |
%t42 = zext i1 %37 to i32 | |
%38 = icmp eq i32 %t42, 0 | |
%t45 = zext i1 %38 to i32 | |
%39 = trunc i32 %t45 to i8 | |
%t46 = zext i8 %39 to i32 | |
%40 = icmp eq i32 %t46, 0 | |
br i1 %40, label %BB12, label %BB14 | |
BB30: ; preds = %BB31, %BB12 | |
%SFLDA_32 = load i64*, i64** getelementptr inbounds ([0 x i64*], [0 x i64*]* bitcast (%MONO_GOT_SpanCrash.exe* @mono_aot_SpanCrash_llvm_got to [0 x i64*]*), i32 0, i32 32), !invariant.load !13 | |
%t66 = load i64, i64* %SFLDA_32 | |
%41 = bitcast %"System.Span`1<byte>"* %2 to i64* | |
%42 = getelementptr i64, i64* %41, i32 1 | |
store volatile i64 %t66, i64* %42 | |
br label %BB7 | |
BB31: ; preds = %BB12 | |
%43 = ptrtoint i64* %VTABLE_31 to i64 | |
notail call void @p_5_plt__jit_icall_mono_generic_class_init_llvm(i64 %43) | |
br label %BB30 | |
BB7: ; preds = %BB30, %BB11 | |
%44 = bitcast %"System.Span`1<byte>"* %2 to i8* | |
%45 = bitcast %"System.Span`1<byte>"* %1 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %45, i8* %44, i32 24, i32 0, i1 false) | |
store i8 10, i8* %0 | |
br label %BB35 | |
BB35: ; preds = %BB7 | |
%TYPE_FROM_HANDLE_33 = load i64*, i64** getelementptr inbounds ([0 x i64*], [0 x i64*]* bitcast (%MONO_GOT_SpanCrash.exe* @mono_aot_SpanCrash_llvm_got to [0 x i64*]*), i32 0, i32 33), !invariant.load !13 | |
%TYPE_FROM_HANDLE_34 = load i64*, i64** getelementptr inbounds ([0 x i64*], [0 x i64*]* bitcast (%MONO_GOT_SpanCrash.exe* @mono_aot_SpanCrash_llvm_got to [0 x i64*]*), i32 0, i32 34), !invariant.load !13 | |
%46 = icmp eq i64* %TYPE_FROM_HANDLE_33, %TYPE_FROM_HANDLE_34 | |
%t74 = zext i1 %46 to i32 | |
%47 = icmp eq i32 %t74, 0 | |
br i1 %47, label %BB37, label %BB38 | |
BB37: ; preds = %BB35 | |
%TYPE_FROM_HANDLE_331 = load i64*, i64** getelementptr inbounds ([0 x i64*], [0 x i64*]* bitcast (%MONO_GOT_SpanCrash.exe* @mono_aot_SpanCrash_llvm_got to [0 x i64*]*), i32 0, i32 33), !invariant.load !13 | |
%TYPE_FROM_HANDLE_35 = load i64*, i64** getelementptr inbounds ([0 x i64*], [0 x i64*]* bitcast (%MONO_GOT_SpanCrash.exe* @mono_aot_SpanCrash_llvm_got to [0 x i64*]*), i32 0, i32 35), !invariant.load !13 | |
%48 = icmp eq i64* %TYPE_FROM_HANDLE_331, %TYPE_FROM_HANDLE_35 | |
%t100 = zext i1 %48 to i32 | |
%49 = icmp eq i32 %t100, 0 | |
br i1 %49, label %BB39, label %BB40 | |
BB38: ; preds = %BB35 | |
%50 = bitcast %"System.Span`1<byte>"* %1 to i8* | |
%51 = bitcast %"System.Span`1<byte>"* %3 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %51, i8* %50, i32 24, i32 0, i1 false) | |
%52 = notail call monocc i64* @p_1_plt_System_Runtime_InteropServices_MemoryMarshal_GetReference_byte_System_Span_1_byte_llvm(%"System.Span`1<byte>"* byval %3) | |
%53 = load volatile i8, i8* %0 | |
%54 = zext i8 %53 to i32 | |
%55 = bitcast %"System.Span`1<byte>"* %1 to i32* | |
%56 = getelementptr i32, i32* %55, i32 4 | |
%t93 = load volatile i32, i32* %56 | |
%57 = notail call monocc i32 @p_4_plt_System_SpanHelpers_IndexOf_byte__byte_int_llvm(i64* %52, i32 %54, i32 %t93) | |
br label %BB34 | |
BB39: ; preds = %BB37 | |
%58 = bitcast %"System.Span`1<byte>"* %1 to i8* | |
%59 = bitcast %"System.Span`1<byte>"* %5 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %59, i8* %58, i32 24, i32 0, i1 false) | |
%60 = notail call monocc i64* @p_1_plt_System_Runtime_InteropServices_MemoryMarshal_GetReference_byte_System_Span_1_byte_llvm(%"System.Span`1<byte>"* byval %5) | |
%61 = load volatile i8, i8* %0 | |
%62 = zext i8 %61 to i32 | |
%63 = bitcast %"System.Span`1<byte>"* %1 to i32* | |
%64 = getelementptr i32, i32* %63, i32 4 | |
%t133 = load volatile i32, i32* %64 | |
%65 = notail call monocc i32 @p_2_plt_System_SpanHelpers_IndexOf_byte_byte__byte_int_llvm(i64* %60, i32 %62, i32 %t133) | |
br label %BB34 | |
BB40: ; preds = %BB37 | |
%66 = bitcast %"System.Span`1<byte>"* %1 to i8* | |
%67 = bitcast %"System.Span`1<byte>"* %4 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i32(i8* %67, i8* %66, i32 24, i32 0, i1 false) | |
%68 = notail call monocc i64* @p_1_plt_System_Runtime_InteropServices_MemoryMarshal_GetReference_byte_System_Span_1_byte_llvm(%"System.Span`1<byte>"* byval %4) | |
%69 = bitcast i8* %0 to i16* | |
%70 = load i16, i16* %69 | |
%71 = zext i16 %70 to i32 | |
%72 = bitcast %"System.Span`1<byte>"* %1 to i32* | |
%73 = getelementptr i32, i32* %72, i32 4 | |
%t119 = load volatile i32, i32* %73 | |
%74 = notail call monocc i32 @p_3_plt_System_SpanHelpers_IndexOf_char__char_int_llvm(i64* %68, i32 %71, i32 %t119) | |
br label %BB34 | |
BB34: ; preds = %BB40, %BB39, %BB38 | |
%75 = phi i32 [ %57, %BB38 ], [ %74, %BB40 ], [ %65, %BB39 ] | |
br label %BB4 | |
BB4: ; preds = %BB34 | |
br label %BB1 | |
BB1: ; preds = %BB4 | |
ret i32 %75 | |
BB14: ; preds = %BB13 | |
notail call monocc void @p_6_plt_System_ThrowHelper_ThrowArrayTypeMismatchException_llvm() | |
br label %BB12 | |
NOTINITED_BB3: ; preds = %INIT_BB1 | |
call monocc void @mono_aot_SpanCrashinit_method(i32 0) | |
br label %INITED_BB2 | |
} | |
declare hidden i64* @p_1_plt_System_Runtime_InteropServices_MemoryMarshal_GetReference_byte_System_Span_1_byte_llvm(%"System.Span`1<byte>"*) | |
declare hidden i32 @p_2_plt_System_SpanHelpers_IndexOf_byte_byte__byte_int_llvm(i64*, i32, i32) | |
declare hidden i32 @p_3_plt_System_SpanHelpers_IndexOf_char__char_int_llvm(i64*, i32, i32) | |
declare hidden i32 @p_4_plt_System_SpanHelpers_IndexOf_byte__byte_int_llvm(i64*, i32, i32) | |
declare hidden void @p_5_plt__jit_icall_mono_generic_class_init_llvm(i64) | |
declare hidden void @p_6_plt_System_ThrowHelper_ThrowArrayTypeMismatchException_llvm() | |
; Function Attrs: noinline uwtable | |
define hidden monocc void @SpanCrash_MainClass_AssertOnBytes() #5 gc "mono" { | |
BB0: | |
%0 = alloca %System.ParamsArray, align 8 | |
br label %INIT_BB1 | |
INIT_BB1: ; preds = %BB0 | |
%is_inited = load i8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @mono_inited, i32 0, i32 1) | |
%1 = call i8 @llvm.expect.i8(i8 %is_inited, i8 1) | |
%2 = icmp eq i8 %1, 0 | |
br i1 %2, label %NOTINITED_BB6, label %INITED_BB2 | |
INITED_BB2: ; preds = %NOTINITED_BB6, %INIT_BB1 | |
br label %BB3 | |
BB3: ; preds = %INITED_BB2 | |
br label %BB2 | |
BB2: ; preds = %BB3 | |
%VTABLE_37 = load i64*, i64** getelementptr inbounds ([0 x i64*], [0 x i64*]* bitcast (%MONO_GOT_SpanCrash.exe* @mono_aot_SpanCrash_llvm_got to [0 x i64*]*), i32 0, i32 37), !invariant.load !13 | |
%3 = ptrtoint i64* %VTABLE_37 to i64 | |
%4 = notail call monocc noalias nonnull i64* @p_7_plt_wrapper_alloc_object_AllocVector_intptr_intptr_llvm(i64 %3, i64 195) | |
%5 = bitcast i64* %4 to i8* | |
%6 = getelementptr i8, i8* %5, i32 32 | |
store i8 71, i8* %6 | |
%7 = bitcast i64* %4 to i8* | |
%8 = getelementptr i8, i8* %7, i32 33 | |
store i8 69, i8* %8 | |
%9 = bitcast i64* %4 to i8* | |
%10 = getelementptr i8, i8* %9, i32 34 | |
store i8 84, i8* %10 | |
%11 = bitcast i64* %4 to i8* | |
%12 = getelementptr i8, i8* %11, i32 35 | |
store i8 32, i8* %12 | |
%13 = bitcast i64* %4 to i8* | |
%14 = getelementptr i8, i8* %13, i32 36 | |
store i8 47, i8* %14 | |
%15 = bitcast i64* %4 to i8* | |
%16 = getelementptr i8, i8* %15, i32 37 | |
store i8 112, i8* %16 | |
%17 = bitcast i64* %4 to i8* | |
%18 = getelementptr i8, i8* %17, i32 38 | |
store i8 108, i8* %18 | |
%19 = bitcast i64* %4 to i8* | |
%20 = getelementptr i8, i8* %19, i32 39 | |
store i8 97, i8* %20 | |
%21 = bitcast i64* %4 to i8* | |
%22 = getelementptr i8, i8* %21, i32 40 | |
store i8 105, i8* %22 | |
%23 = bitcast i64* %4 to i8* | |
%24 = getelementptr i8, i8* %23, i32 41 | |
store i8 110, i8* %24 | |
%25 = bitcast i64* %4 to i8* | |
%26 = getelementptr i8, i8* %25, i32 42 | |
store i8 116, i8* %26 | |
%27 = bitcast i64* %4 to i8* | |
%28 = getelementptr i8, i8* %27, i32 43 | |
store i8 101, i8* %28 | |
%29 = bitcast i64* %4 to i8* | |
%30 = getelementptr i8, i8* %29, i32 44 | |
store i8 120, i8* %30 | |
%31 = bitcast i64* %4 to i8* | |
%32 = getelementptr i8, i8* %31, i32 45 | |
store i8 116, i8* %32 | |
%33 = bitcast i64* %4 to i8* | |
%34 = getelementptr i8, i8* %33, i32 46 | |
store i8 32, i8* %34 | |
%35 = bitcast i64* %4 to i8* | |
%36 = getelementptr i8, i8* %35, i32 47 | |
store i8 72, i8* %36 | |
%37 = bitcast i64* %4 to i8* | |
%38 = getelementptr i8, i8* %37, i32 48 | |
store i8 84, i8* %38 | |
%39 = bitcast i64* %4 to i8* | |
%40 = getelementptr i8, i8* %39, i32 49 | |
store i8 84, i8* %40 | |
%41 = bitcast i64* %4 to i8* | |
%42 = getelementptr i8, i8* %41, i32 50 | |
store i8 80, i8* %42 | |
%43 = bitcast i64* %4 to i8* | |
%44 = getelementptr i8, i8* %43, i32 51 | |
store i8 47, i8* %44 | |
%45 = bitcast i64* %4 to i8* | |
%46 = getelementptr i8, i8* %45, i32 52 | |
store i8 49, i8* %46 | |
%47 = bitcast i64* %4 to i8* | |
%48 = getelementptr i8, i8* %47, i32 53 | |
store i8 46, i8* %48 | |
%49 = bitcast i64* %4 to i8* | |
%50 = getelementptr i8, i8* %49, i32 54 | |
store i8 49, i8* %50 | |
%51 = bitcast i64* %4 to i8* | |
%52 = getelementptr i8, i8* %51, i32 55 | |
store i8 13, i8* %52 | |
%53 = bitcast i64* %4 to i8* | |
%54 = getelementptr i8, i8* %53, i32 56 | |
store i8 10, i8* %54 | |
%55 = bitcast i64* %4 to i8* | |
%56 = getelementptr i8, i8* %55, i32 57 | |
store i8 72, i8* %56 | |
%57 = bitcast i64* %4 to i8* | |
%58 = getelementptr i8, i8* %57, i32 58 | |
store i8 111, i8* %58 | |
%59 = bitcast i64* %4 to i8* | |
%60 = getelementptr i8, i8* %59, i32 59 | |
store i8 115, i8* %60 | |
%61 = bitcast i64* %4 to i8* | |
%62 = getelementptr i8, i8* %61, i32 60 | |
store i8 116, i8* %62 | |
%63 = bitcast i64* %4 to i8* | |
%64 = getelementptr i8, i8* %63, i32 61 | |
store i8 58, i8* %64 | |
%65 = bitcast i64* %4 to i8* | |
%66 = getelementptr i8, i8* %65, i32 62 | |
store i8 32, i8* %66 | |
%67 = bitcast i64* %4 to i8* | |
%68 = getelementptr i8, i8* %67, i32 63 | |
store i8 49, i8* %68 | |
%69 = bitcast i64* %4 to i8* | |
%70 = getelementptr i8, i8* %69, i32 64 | |
store i8 50, i8* %70 | |
%71 = bitcast i64* %4 to i8* | |
%72 = getelementptr i8, i8* %71, i32 65 | |
store i8 55, i8* %72 | |
%73 = bitcast i64* %4 to i8* | |
%74 = getelementptr i8, i8* %73, i32 66 | |
store i8 46, i8* %74 | |
%75 = bitcast i64* %4 to i8* | |
%76 = getelementptr i8, i8* %75, i32 67 | |
store i8 48, i8* %76 | |
%77 = bitcast i64* %4 to i8* | |
%78 = getelementptr i8, i8* %77, i32 68 | |
store i8 46, i8* %78 | |
%79 = bitcast i64* %4 to i8* | |
%80 = getelementptr i8, i8* %79, i32 69 | |
store i8 48, i8* %80 | |
%81 = bitcast i64* %4 to i8* | |
%82 = getelementptr i8, i8* %81, i32 70 | |
store i8 46, i8* %82 | |
%83 = bitcast i64* %4 to i8* | |
%84 = getelementptr i8, i8* %83, i32 71 | |
store i8 49, i8* %84 | |
%85 = bitcast i64* %4 to i8* | |
%86 = getelementptr i8, i8* %85, i32 72 | |
store i8 58, i8* %86 | |
%87 = bitcast i64* %4 to i8* | |
%88 = getelementptr i8, i8* %87, i32 73 | |
store i8 56, i8* %88 | |
%89 = bitcast i64* %4 to i8* | |
%90 = getelementptr i8, i8* %89, i32 74 | |
store i8 48, i8* %90 | |
%91 = bitcast i64* %4 to i8* | |
%92 = getelementptr i8, i8* %91, i32 75 | |
store i8 56, i8* %92 | |
%93 = bitcast i64* %4 to i8* | |
%94 = getelementptr i8, i8* %93, i32 76 | |
store i8 48, i8* %94 | |
%95 = bitcast i64* %4 to i8* | |
%96 = getelementptr i8, i8* %95, i32 77 | |
store i8 13, i8* %96 | |
%97 = bitcast i64* %4 to i8* | |
%98 = getelementptr i8, i8* %97, i32 78 | |
store i8 10, i8* %98 | |
%99 = bitcast i64* %4 to i8* | |
%100 = getelementptr i8, i8* %99, i32 79 | |
store i8 85, i8* %100 | |
%101 = bitcast i64* %4 to i8* | |
%102 = getelementptr i8, i8* %101, i32 80 | |
store i8 115, i8* %102 | |
%103 = bitcast i64* %4 to i8* | |
%104 = getelementptr i8, i8* %103, i32 81 | |
store i8 101, i8* %104 | |
%105 = bitcast i64* %4 to i8* | |
%106 = getelementptr i8, i8* %105, i32 82 | |
store i8 114, i8* %106 | |
%107 = bitcast i64* %4 to i8* | |
%108 = getelementptr i8, i8* %107, i32 83 | |
store i8 45, i8* %108 | |
%109 = bitcast i64* %4 to i8* | |
%110 = getelementptr i8, i8* %109, i32 84 | |
store i8 65, i8* %110 | |
%111 = bitcast i64* %4 to i8* | |
%112 = getelementptr i8, i8* %111, i32 85 | |
store i8 103, i8* %112 | |
%113 = bitcast i64* %4 to i8* | |
%114 = getelementptr i8, i8* %113, i32 86 | |
store i8 101, i8* %114 | |
%115 = bitcast i64* %4 to i8* | |
%116 = getelementptr i8, i8* %115, i32 87 | |
store i8 110, i8* %116 | |
%117 = bitcast i64* %4 to i8* | |
%118 = getelementptr i8, i8* %117, i32 88 | |
store i8 116, i8* %118 | |
%119 = bitcast i64* %4 to i8* | |
%120 = getelementptr i8, i8* %119, i32 89 | |
store i8 58, i8* %120 | |
%121 = bitcast i64* %4 to i8* | |
%122 = getelementptr i8, i8* %121, i32 90 | |
store i8 32, i8* %122 | |
%123 = bitcast i64* %4 to i8* | |
%124 = getelementptr i8, i8* %123, i32 91 | |
store i8 99, i8* %124 | |
%125 = bitcast i64* %4 to i8* | |
%126 = getelementptr i8, i8* %125, i32 92 | |
store i8 117, i8* %126 | |
%127 = bitcast i64* %4 to i8* | |
%128 = getelementptr i8, i8* %127, i32 93 | |
store i8 114, i8* %128 | |
%129 = bitcast i64* %4 to i8* | |
%130 = getelementptr i8, i8* %129, i32 94 | |
store i8 108, i8* %130 | |
%131 = bitcast i64* %4 to i8* | |
%132 = getelementptr i8, i8* %131, i32 95 | |
store i8 47, i8* %132 | |
%133 = bitcast i64* %4 to i8* | |
%134 = getelementptr i8, i8* %133, i32 96 | |
store i8 55, i8* %134 | |
%135 = bitcast i64* %4 to i8* | |
%136 = getelementptr i8, i8* %135, i32 97 | |
store i8 46, i8* %136 | |
%137 = bitcast i64* %4 to i8* | |
%138 = getelementptr i8, i8* %137, i32 98 | |
store i8 52, i8* %138 | |
%139 = bitcast i64* %4 to i8* | |
%140 = getelementptr i8, i8* %139, i32 99 | |
store i8 55, i8* %140 | |
%141 = bitcast i64* %4 to i8* | |
%142 = getelementptr i8, i8* %141, i32 100 | |
store i8 46, i8* %142 | |
%143 = bitcast i64* %4 to i8* | |
%144 = getelementptr i8, i8* %143, i32 101 | |
store i8 48, i8* %144 | |
%145 = bitcast i64* %4 to i8* | |
%146 = getelementptr i8, i8* %145, i32 102 | |
store i8 13, i8* %146 | |
%147 = bitcast i64* %4 to i8* | |
%148 = getelementptr i8, i8* %147, i32 103 | |
store i8 10, i8* %148 | |
%149 = bitcast i64* %4 to i8* | |
%150 = getelementptr i8, i8* %149, i32 104 | |
store i8 65, i8* %150 | |
%151 = bitcast i64* %4 to i8* | |
%152 = getelementptr i8, i8* %151, i32 105 | |
store i8 99, i8* %152 | |
%153 = bitcast i64* %4 to i8* | |
%154 = getelementptr i8, i8* %153, i32 106 | |
store i8 99, i8* %154 | |
%155 = bitcast i64* %4 to i8* | |
%156 = getelementptr i8, i8* %155, i32 107 | |
store i8 101, i8* %156 | |
%157 = bitcast i64* %4 to i8* | |
%158 = getelementptr i8, i8* %157, i32 108 | |
store i8 112, i8* %158 | |
%159 = bitcast i64* %4 to i8* | |
%160 = getelementptr i8, i8* %159, i32 109 | |
store i8 116, i8* %160 | |
%161 = bitcast i64* %4 to i8* | |
%162 = getelementptr i8, i8* %161, i32 110 | |
store i8 58, i8* %162 | |
%163 = bitcast i64* %4 to i8* | |
%164 = getelementptr i8, i8* %163, i32 111 | |
store i8 32, i8* %164 | |
%165 = bitcast i64* %4 to i8* | |
%166 = getelementptr i8, i8* %165, i32 112 | |
store i8 116, i8* %166 | |
%167 = bitcast i64* %4 to i8* | |
%168 = getelementptr i8, i8* %167, i32 113 | |
store i8 101, i8* %168 | |
%169 = bitcast i64* %4 to i8* | |
%170 = getelementptr i8, i8* %169, i32 114 | |
store i8 120, i8* %170 | |
%171 = bitcast i64* %4 to i8* | |
%172 = getelementptr i8, i8* %171, i32 115 | |
store i8 116, i8* %172 | |
%173 = bitcast i64* %4 to i8* | |
%174 = getelementptr i8, i8* %173, i32 116 | |
store i8 47, i8* %174 | |
%175 = bitcast i64* %4 to i8* | |
%176 = getelementptr i8, i8* %175, i32 117 | |
store i8 112, i8* %176 | |
%177 = bitcast i64* %4 to i8* | |
%178 = getelementptr i8, i8* %177, i32 118 | |
store i8 108, i8* %178 | |
%179 = bitcast i64* %4 to i8* | |
%180 = getelementptr i8, i8* %179, i32 119 | |
store i8 97, i8* %180 | |
%181 = bitcast i64* %4 to i8* | |
%182 = getelementptr i8, i8* %181, i32 120 | |
store i8 105, i8* %182 | |
%183 = bitcast i64* %4 to i8* | |
%184 = getelementptr i8, i8* %183, i32 121 | |
store i8 110, i8* %184 | |
%185 = bitcast i64* %4 to i8* | |
%186 = getelementptr i8, i8* %185, i32 122 | |
store i8 44, i8* %186 | |
%187 = bitcast i64* %4 to i8* | |
%188 = getelementptr i8, i8* %187, i32 123 | |
store i8 116, i8* %188 | |
%189 = bitcast i64* %4 to i8* | |
%190 = getelementptr i8, i8* %189, i32 124 | |
store i8 101, i8* %190 | |
%191 = bitcast i64* %4 to i8* | |
%192 = getelementptr i8, i8* %191, i32 125 | |
store i8 120, i8* %192 | |
%193 = bitcast i64* %4 to i8* | |
%194 = getelementptr i8, i8* %193, i32 126 | |
store i8 116, i8* %194 | |
%195 = bitcast i64* %4 to i8* | |
%196 = getelementptr i8, i8* %195, i32 127 | |
store i8 47, i8* %196 | |
%197 = bitcast i64* %4 to i8* | |
%198 = getelementptr i8, i8* %197, i32 128 | |
store i8 104, i8* %198 | |
%199 = bitcast i64* %4 to i8* | |
%200 = getelementptr i8, i8* %199, i32 129 | |
store i8 116, i8* %200 | |
%201 = bitcast i64* %4 to i8* | |
%202 = getelementptr i8, i8* %201, i32 130 | |
store i8 109, i8* %202 | |
%203 = bitcast i64* %4 to i8* | |
%204 = getelementptr i8, i8* %203, i32 131 | |
store i8 108, i8* %204 | |
%205 = bitcast i64* %4 to i8* | |
%206 = getelementptr i8, i8* %205, i32 132 | |
store i8 59, i8* %206 | |
%207 = bitcast i64* %4 to i8* | |
%208 = getelementptr i8, i8* %207, i32 133 | |
store i8 113, i8* %208 | |
%209 = bitcast i64* %4 to i8* | |
%210 = getelementptr i8, i8* %209, i32 134 | |
store i8 61, i8* %210 | |
%211 = bitcast i64* %4 to i8* | |
%212 = getelementptr i8, i8* %211, i32 135 | |
store i8 48, i8* %212 | |
%213 = bitcast i64* %4 to i8* | |
%214 = getelementptr i8, i8* %213, i32 136 | |
store i8 46, i8* %214 | |
%215 = bitcast i64* %4 to i8* | |
%216 = getelementptr i8, i8* %215, i32 137 | |
store i8 57, i8* %216 | |
%217 = bitcast i64* %4 to i8* | |
%218 = getelementptr i8, i8* %217, i32 138 | |
store i8 44, i8* %218 | |
%219 = bitcast i64* %4 to i8* | |
%220 = getelementptr i8, i8* %219, i32 139 | |
store i8 97, i8* %220 | |
%221 = bitcast i64* %4 to i8* | |
%222 = getelementptr i8, i8* %221, i32 140 | |
store i8 112, i8* %222 | |
%223 = bitcast i64* %4 to i8* | |
%224 = getelementptr i8, i8* %223, i32 141 | |
store i8 112, i8* %224 | |
%225 = bitcast i64* %4 to i8* | |
%226 = getelementptr i8, i8* %225, i32 142 | |
store i8 108, i8* %226 | |
%227 = bitcast i64* %4 to i8* | |
%228 = getelementptr i8, i8* %227, i32 143 | |
store i8 105, i8* %228 | |
%229 = bitcast i64* %4 to i8* | |
%230 = getelementptr i8, i8* %229, i32 144 | |
store i8 99, i8* %230 | |
%231 = bitcast i64* %4 to i8* | |
%232 = getelementptr i8, i8* %231, i32 145 | |
store i8 97, i8* %232 | |
%233 = bitcast i64* %4 to i8* | |
%234 = getelementptr i8, i8* %233, i32 146 | |
store i8 116, i8* %234 | |
%235 = bitcast i64* %4 to i8* | |
%236 = getelementptr i8, i8* %235, i32 147 | |
store i8 105, i8* %236 | |
%237 = bitcast i64* %4 to i8* | |
%238 = getelementptr i8, i8* %237, i32 148 | |
store i8 111, i8* %238 | |
%239 = bitcast i64* %4 to i8* | |
%240 = getelementptr i8, i8* %239, i32 149 | |
store i8 110, i8* %240 | |
%241 = bitcast i64* %4 to i8* | |
%242 = getelementptr i8, i8* %241, i32 150 | |
store i8 47, i8* %242 | |
%243 = bitcast i64* %4 to i8* | |
%244 = getelementptr i8, i8* %243, i32 151 | |
store i8 120, i8* %244 | |
%245 = bitcast i64* %4 to i8* | |
%246 = getelementptr i8, i8* %245, i32 152 | |
store i8 104, i8* %246 | |
%247 = bitcast i64* %4 to i8* | |
%248 = getelementptr i8, i8* %247, i32 153 | |
store i8 116, i8* %248 | |
%249 = bitcast i64* %4 to i8* | |
%250 = getelementptr i8, i8* %249, i32 154 | |
store i8 109, i8* %250 | |
%251 = bitcast i64* %4 to i8* | |
%252 = getelementptr i8, i8* %251, i32 155 | |
store i8 108, i8* %252 | |
%253 = bitcast i64* %4 to i8* | |
%254 = getelementptr i8, i8* %253, i32 156 | |
store i8 43, i8* %254 | |
%255 = bitcast i64* %4 to i8* | |
%256 = getelementptr i8, i8* %255, i32 157 | |
store i8 120, i8* %256 | |
%257 = bitcast i64* %4 to i8* | |
%258 = getelementptr i8, i8* %257, i32 158 | |
store i8 109, i8* %258 | |
%259 = bitcast i64* %4 to i8* | |
%260 = getelementptr i8, i8* %259, i32 159 | |
store i8 108, i8* %260 | |
%261 = bitcast i64* %4 to i8* | |
%262 = getelementptr i8, i8* %261, i32 160 | |
store i8 59, i8* %262 | |
%263 = bitcast i64* %4 to i8* | |
%264 = getelementptr i8, i8* %263, i32 161 | |
store i8 113, i8* %264 | |
%265 = bitcast i64* %4 to i8* | |
%266 = getelementptr i8, i8* %265, i32 162 | |
store i8 61, i8* %266 | |
%267 = bitcast i64* %4 to i8* | |
%268 = getelementptr i8, i8* %267, i32 163 | |
store i8 48, i8* %268 | |
%269 = bitcast i64* %4 to i8* | |
%270 = getelementptr i8, i8* %269, i32 164 | |
store i8 46, i8* %270 | |
%271 = bitcast i64* %4 to i8* | |
%272 = getelementptr i8, i8* %271, i32 165 | |
store i8 57, i8* %272 | |
%273 = bitcast i64* %4 to i8* | |
%274 = getelementptr i8, i8* %273, i32 166 | |
store i8 44, i8* %274 | |
%275 = bitcast i64* %4 to i8* | |
%276 = getelementptr i8, i8* %275, i32 167 | |
store i8 97, i8* %276 | |
%277 = bitcast i64* %4 to i8* | |
%278 = getelementptr i8, i8* %277, i32 168 | |
store i8 112, i8* %278 | |
%279 = bitcast i64* %4 to i8* | |
%280 = getelementptr i8, i8* %279, i32 169 | |
store i8 112, i8* %280 | |
%281 = bitcast i64* %4 to i8* | |
%282 = getelementptr i8, i8* %281, i32 170 | |
store i8 108, i8* %282 | |
%283 = bitcast i64* %4 to i8* | |
%284 = getelementptr i8, i8* %283, i32 171 | |
store i8 105, i8* %284 | |
%285 = bitcast i64* %4 to i8* | |
%286 = getelementptr i8, i8* %285, i32 172 | |
store i8 99, i8* %286 | |
%287 = bitcast i64* %4 to i8* | |
%288 = getelementptr i8, i8* %287, i32 173 | |
store i8 97, i8* %288 | |
%289 = bitcast i64* %4 to i8* | |
%290 = getelementptr i8, i8* %289, i32 174 | |
store i8 116, i8* %290 | |
%291 = bitcast i64* %4 to i8* | |
%292 = getelementptr i8, i8* %291, i32 175 | |
store i8 105, i8* %292 | |
%293 = bitcast i64* %4 to i8* | |
%294 = getelementptr i8, i8* %293, i32 176 | |
store i8 111, i8* %294 | |
%295 = bitcast i64* %4 to i8* | |
%296 = getelementptr i8, i8* %295, i32 177 | |
store i8 110, i8* %296 | |
%297 = bitcast i64* %4 to i8* | |
%298 = getelementptr i8, i8* %297, i32 178 | |
store i8 47, i8* %298 | |
%299 = bitcast i64* %4 to i8* | |
%300 = getelementptr i8, i8* %299, i32 179 | |
store i8 120, i8* %300 | |
%301 = bitcast i64* %4 to i8* | |
%302 = getelementptr i8, i8* %301, i32 180 | |
store i8 109, i8* %302 | |
%303 = bitcast i64* %4 to i8* | |
%304 = getelementptr i8, i8* %303, i32 181 | |
store i8 108, i8* %304 | |
%305 = bitcast i64* %4 to i8* | |
%306 = getelementptr i8, i8* %305, i32 182 | |
store i8 59, i8* %306 | |
%307 = bitcast i64* %4 to i8* | |
%308 = getelementptr i8, i8* %307, i32 183 | |
store i8 113, i8* %308 | |
%309 = bitcast i64* %4 to i8* | |
%310 = getelementptr i8, i8* %309, i32 184 | |
store i8 61, i8* %310 | |
%311 = bitcast i64* %4 to i8* | |
%312 = getelementptr i8, i8* %311, i32 185 | |
store i8 48, i8* %312 | |
%313 = bitcast i64* %4 to i8* | |
%314 = getelementptr i8, i8* %313, i32 186 | |
store i8 46, i8* %314 | |
%315 = bitcast i64* %4 to i8* | |
%316 = getelementptr i8, i8* %315, i32 187 | |
store i8 56, i8* %316 | |
%317 = bitcast i64* %4 to i8* | |
%318 = getelementptr i8, i8* %317, i32 188 | |
store i8 44, i8* %318 | |
%319 = bitcast i64* %4 to i8* | |
%320 = getelementptr i8, i8* %319, i32 189 | |
store i8 42, i8* %320 | |
%321 = bitcast i64* %4 to i8* | |
%322 = getelementptr i8, i8* %321, i32 190 | |
store i8 47, i8* %322 | |
%323 = bitcast i64* %4 to i8* | |
%324 = getelementptr i8, i8* %323, i32 191 | |
store i8 42, i8* %324 | |
%325 = bitcast i64* %4 to i8* | |
%326 = getelementptr i8, i8* %325, i32 192 | |
store i8 59, i8* %326 | |
%327 = bitcast i64* %4 to i8* | |
%328 = getelementptr i8, i8* %327, i32 193 | |
store i8 113, i8* %328 | |
%329 = bitcast i64* %4 to i8* | |
%330 = getelementptr i8, i8* %329, i32 194 | |
store i8 61, i8* %330 | |
%331 = bitcast i64* %4 to i8* | |
%332 = getelementptr i8, i8* %331, i32 195 | |
store i8 48, i8* %332 | |
%333 = bitcast i64* %4 to i8* | |
%334 = getelementptr i8, i8* %333, i32 196 | |
store i8 46, i8* %334 | |
%335 = bitcast i64* %4 to i8* | |
%336 = getelementptr i8, i8* %335, i32 197 | |
store i8 55, i8* %336 | |
%337 = bitcast i64* %4 to i8* | |
%338 = getelementptr i8, i8* %337, i32 198 | |
store i8 13, i8* %338 | |
%339 = bitcast i64* %4 to i8* | |
%340 = getelementptr i8, i8* %339, i32 199 | |
store i8 10, i8* %340 | |
%341 = bitcast i64* %4 to i8* | |
%342 = getelementptr i8, i8* %341, i32 200 | |
store i8 67, i8* %342 | |
%343 = bitcast i64* %4 to i8* | |
%344 = getelementptr i8, i8* %343, i32 201 | |
store i8 111, i8* %344 | |
%345 = bitcast i64* %4 to i8* | |
%346 = getelementptr i8, i8* %345, i32 202 | |
store i8 110, i8* %346 | |
%347 = bitcast i64* %4 to i8* | |
%348 = getelementptr i8, i8* %347, i32 203 | |
store i8 110, i8* %348 | |
%349 = bitcast i64* %4 to i8* | |
%350 = getelementptr i8, i8* %349, i32 204 | |
store i8 101, i8* %350 | |
%351 = bitcast i64* %4 to i8* | |
%352 = getelementptr i8, i8* %351, i32 205 | |
store i8 99, i8* %352 | |
%353 = bitcast i64* %4 to i8* | |
%354 = getelementptr i8, i8* %353, i32 206 | |
store i8 116, i8* %354 | |
%355 = bitcast i64* %4 to i8* | |
%356 = getelementptr i8, i8* %355, i32 207 | |
store i8 105, i8* %356 | |
%357 = bitcast i64* %4 to i8* | |
%358 = getelementptr i8, i8* %357, i32 208 | |
store i8 111, i8* %358 | |
%359 = bitcast i64* %4 to i8* | |
%360 = getelementptr i8, i8* %359, i32 209 | |
store i8 110, i8* %360 | |
%361 = bitcast i64* %4 to i8* | |
%362 = getelementptr i8, i8* %361, i32 210 | |
store i8 58, i8* %362 | |
%363 = bitcast i64* %4 to i8* | |
%364 = getelementptr i8, i8* %363, i32 211 | |
store i8 32, i8* %364 | |
%365 = bitcast i64* %4 to i8* | |
%366 = getelementptr i8, i8* %365, i32 212 | |
store i8 107, i8* %366 | |
%367 = bitcast i64* %4 to i8* | |
%368 = getelementptr i8, i8* %367, i32 213 | |
store i8 101, i8* %368 | |
%369 = bitcast i64* %4 to i8* | |
%370 = getelementptr i8, i8* %369, i32 214 | |
store i8 101, i8* %370 | |
%371 = bitcast i64* %4 to i8* | |
%372 = getelementptr i8, i8* %371, i32 215 | |
store i8 112, i8* %372 | |
%373 = bitcast i64* %4 to i8* | |
%374 = getelementptr i8, i8* %373, i32 216 | |
store i8 45, i8* %374 | |
%375 = bitcast i64* %4 to i8* | |
%376 = getelementptr i8, i8* %375, i32 217 | |
store i8 97, i8* %376 | |
%377 = bitcast i64* %4 to i8* | |
%378 = getelementptr i8, i8* %377, i32 218 | |
store i8 108, i8* %378 | |
%379 = bitcast i64* %4 to i8* | |
%380 = getelementptr i8, i8* %379, i32 219 | |
store i8 105, i8* %380 | |
%381 = bitcast i64* %4 to i8* | |
%382 = getelementptr i8, i8* %381, i32 220 | |
store i8 118, i8* %382 | |
%383 = bitcast i64* %4 to i8* | |
%384 = getelementptr i8, i8* %383, i32 221 | |
store i8 101, i8* %384 | |
%385 = bitcast i64* %4 to i8* | |
%386 = getelementptr i8, i8* %385, i32 222 | |
store i8 13, i8* %386 | |
%387 = bitcast i64* %4 to i8* | |
%388 = getelementptr i8, i8* %387, i32 223 | |
store i8 10, i8* %388 | |
%389 = bitcast i64* %4 to i8* | |
%390 = getelementptr i8, i8* %389, i32 224 | |
store i8 13, i8* %390 | |
%391 = bitcast i64* %4 to i8* | |
%392 = getelementptr i8, i8* %391, i32 225 | |
store i8 10, i8* %392 | |
%393 = notail call monocc i32 @SpanCrash_MainClass_SpanIndexOf_byte__(i64* %4) | |
%LDSTR_38 = load i64*, i64** getelementptr inbounds ([0 x i64*], [0 x i64*]* bitcast (%MONO_GOT_SpanCrash.exe* @mono_aot_SpanCrash_llvm_got to [0 x i64*]*), i32 0, i32 38), !invariant.load !13, !nonnull !13 | |
%VTABLE_39 = load i64*, i64** getelementptr inbounds ([0 x i64*], [0 x i64*]* bitcast (%MONO_GOT_SpanCrash.exe* @mono_aot_SpanCrash_llvm_got to [0 x i64*]*), i32 0, i32 39), !invariant.load !13 | |
%394 = ptrtoint i64* %VTABLE_39 to i64 | |
%395 = notail call monocc noalias nonnull i64* @p_9_plt_wrapper_alloc_object_AllocSmall_intptr_intptr_llvm(i64 %394, i64 20) | |
%396 = bitcast i64* %395 to i32* | |
%397 = getelementptr i32, i32* %396, i32 4 | |
store i32 %393, i32* %397 | |
notail call monocc void @p_10_plt_System_Console_WriteLine_string_object_llvm(i64* %LDSTR_38, i64* %395) | |
br label %BB4 | |
BB4: ; preds = %BB6, %BB2 | |
%398 = phi i32 [ 0, %BB2 ], [ %t667, %BB6 ] | |
%399 = icmp slt i32 %398, %393 | |
%t663 = zext i1 %399 to i32 | |
%400 = trunc i32 %t663 to i8 | |
%t22 = zext i8 %400 to i32 | |
%401 = icmp ne i32 %t22, 0 | |
br i1 %401, label %BB5, label %BB8 | |
BB5: ; preds = %BB4 | |
%t672 = sext i32 %398 to i64 | |
%402 = bitcast i64* %4 to i32* | |
%403 = getelementptr i32, i32* %402, i32 6 | |
%t673 = load i32, i32* %403, !invariant.load !13 | |
%404 = sext i32 %t673 to i64 | |
%405 = icmp ule i64 %404, %t672 | |
br i1 %405, label %EX_BB3, label %NOEX_BB4 | |
BB8: ; preds = %BB4 | |
br label %BB1 | |
EX_BB3: ; preds = %BB5 | |
call void @p_11_plt__jit_icall_llvm_throw_corlib_exception_abs_trampoline_llvm(i32 269) | |
unreachable | |
NOEX_BB4: ; preds = %BB5 | |
%406 = sext i32 %398 to i64 | |
%407 = mul i64 %406, 1 | |
%408 = ptrtoint i64* %4 to i64 | |
%409 = add i64 %408, %407 | |
%t625 = add i64 %409, 32 | |
%410 = inttoptr i64 %t625 to i8* | |
%411 = load i8, i8* %410 | |
%412 = zext i8 %411 to i32 | |
%413 = icmp eq i32 %412, 10 | |
%t628 = zext i1 %413 to i32 | |
%414 = trunc i32 %t628 to i8 | |
%t20 = zext i8 %414 to i32 | |
%415 = icmp eq i32 %t20, 0 | |
%416 = call i1 @llvm.expect.i1(i1 %415, i1 true) | |
br i1 %416, label %BB6, label %BB7 | |
BB6: ; preds = %NOEX_BB4 | |
%t667 = add i32 %398, 1 | |
br label %BB4 | |
BB7: ; preds = %NOEX_BB4 | |
%IMAGE_0 = load i64*, i64** getelementptr inbounds ([0 x i64*], [0 x i64*]* bitcast (%MONO_GOT_SpanCrash.exe* @mono_aot_SpanCrash_llvm_got to [0 x i64*]*), i32 0, i32 0), !invariant.load !13 | |
%417 = ptrtoint i64* %IMAGE_0 to i64 | |
%418 = notail call i64* @p_12_plt__jit_icall_mono_helper_ldstr_llvm(i64 %417, i64 39) | |
%419 = notail call i64* @p_13_plt__jit_icall_mono_helper_newobj_mscorlib_llvm(i64 272) | |
%420 = bitcast i64* %419 to i32* | |
%421 = getelementptr i32, i32* %420, i32 4 | |
store i32 %398, i32* %421 | |
%422 = notail call monocc i64* @p_14_plt_string_Format_string_object_llvm(i64* %418, i64* %419) | |
notail call monocc void @p_15_plt_System_Console_WriteLine_string_llvm(i64* %422) | |
%423 = notail call i64* @p_16_plt__jit_icall_mono_create_corlib_exception_1_llvm(i64 33554896, i64* %422) | |
call void @p_17_plt__jit_icall_mono_arch_throw_exception_llvm(i64* %423) | |
unreachable | |
BB1: ; preds = %BB8 | |
ret void | |
NOTINITED_BB6: ; preds = %INIT_BB1 | |
call monocc void @mono_aot_SpanCrashinit_method(i32 1) | |
br label %INITED_BB2 | |
} | |
declare hidden i64* @p_7_plt_wrapper_alloc_object_AllocVector_intptr_intptr_llvm(i64, i64) | |
declare hidden i32 @p_8_plt_SpanCrash_MainClass_SpanIndexOf_byte___llvm(i64*) | |
declare hidden i64* @p_9_plt_wrapper_alloc_object_AllocSmall_intptr_intptr_llvm(i64, i64) | |
declare hidden void @p_10_plt_System_Console_WriteLine_string_object_llvm(i64*, i64*) | |
declare hidden void @p_11_plt__jit_icall_llvm_throw_corlib_exception_abs_trampoline_llvm(i32) | |
declare hidden i64* @p_12_plt__jit_icall_mono_helper_ldstr_llvm(i64, i64) | |
declare hidden i64* @p_13_plt__jit_icall_mono_helper_newobj_mscorlib_llvm(i64) | |
declare hidden i64* @p_14_plt_string_Format_string_object_llvm(i64*, i64*) | |
declare hidden void @p_15_plt_System_Console_WriteLine_string_llvm(i64*) | |
declare hidden i64* @p_16_plt__jit_icall_mono_create_corlib_exception_1_llvm(i64, i64*) | |
declare hidden void @p_17_plt__jit_icall_mono_arch_throw_exception_llvm(i64*) | |
; Function Attrs: uwtable | |
define hidden monocc void @SpanCrash_MainClass_Main_string__(i64* %arg_args) #6 gc "mono" { | |
BB0: | |
br label %INIT_BB1 | |
INIT_BB1: ; preds = %BB0 | |
br label %INITED_BB2 | |
INITED_BB2: ; preds = %INIT_BB1 | |
br label %BB3 | |
BB3: ; preds = %INITED_BB2 | |
br label %BB2 | |
BB2: ; preds = %BB3 | |
notail call monocc void @SpanCrash_MainClass_AssertOnBytes() | |
br label %BB1 | |
BB1: ; preds = %BB2 | |
ret void | |
} | |
declare hidden void @p_18_plt_SpanCrash_MainClass_AssertOnBytes_llvm() | |
; Function Attrs: uwtable | |
define hidden monocc void @SpanCrash_MainClass__ctor(i64* %this) #6 { | |
BB0: | |
br label %INIT_BB1 | |
INIT_BB1: ; preds = %BB0 | |
br label %INITED_BB2 | |
INITED_BB2: ; preds = %INIT_BB1 | |
br label %BB3 | |
BB3: ; preds = %INITED_BB2 | |
br label %BB2 | |
BB2: ; preds = %BB3 | |
br label %BB1 | |
BB1: ; preds = %BB2 | |
ret void | |
} | |
; Function Attrs: nounwind | |
define internal void @llvm_code_end() #3 { | |
ENTRY: | |
ret void | |
} | |
; Function Attrs: nounwind | |
define hidden i8* @mono_aot_SpanCrash_get_method(i32) #3 { | |
ENTRY: | |
switch i32 %0, label %FAIL [ | |
i32 -1, label %BB_CODE_START | |
i32 -2, label %BB_CODE_END | |
i32 0, label %BB_0 | |
i32 1, label %BB_1 | |
i32 2, label %BB_2 | |
i32 3, label %BB_3 | |
i32 4, label %BB_4 | |
i32 5, label %BB_5 | |
i32 6, label %BB_6 | |
i32 7, label %BB_7 | |
i32 8, label %BB_8 | |
] | |
BB_CODE_START: ; preds = %ENTRY | |
ret i8* bitcast (void ()* @llvm_code_start to i8*) | |
BB_CODE_END: ; preds = %ENTRY | |
ret i8* bitcast (void ()* @llvm_code_end to i8*) | |
BB_0: ; preds = %ENTRY | |
ret i8* bitcast (i32 (i64*)* @SpanCrash_MainClass_SpanIndexOf_byte__ to i8*) | |
BB_1: ; preds = %ENTRY | |
ret i8* bitcast (void ()* @SpanCrash_MainClass_AssertOnBytes to i8*) | |
BB_2: ; preds = %ENTRY | |
ret i8* bitcast (void (i64*)* @SpanCrash_MainClass_Main_string__ to i8*) | |
BB_3: ; preds = %ENTRY | |
ret i8* bitcast (void (i64*)* @SpanCrash_MainClass__ctor to i8*) | |
BB_4: ; preds = %ENTRY | |
ret i8* null | |
BB_5: ; preds = %ENTRY | |
ret i8* bitcast (void (i32)* @mono_aot_SpanCrashinit_method to i8*) | |
BB_6: ; preds = %ENTRY | |
ret i8* bitcast (void (i32, i64)* @mono_aot_SpanCrashinit_method_gshared_mrgctx to i8*) | |
BB_7: ; preds = %ENTRY | |
ret i8* bitcast (void (i32, i64)* @mono_aot_SpanCrashinit_method_gshared_vtable to i8*) | |
BB_8: ; preds = %ENTRY | |
ret i8* bitcast (void (i32, i64*)* @mono_aot_SpanCrashinit_method_gshared_this to i8*) | |
FAIL: ; preds = %ENTRY | |
ret i8* null | |
} | |
attributes #0 = { argmemonly nounwind } | |
attributes #1 = { nounwind readnone speculatable } | |
attributes #2 = { nounwind readnone } | |
attributes #3 = { nounwind } | |
attributes #4 = { noinline } | |
attributes #5 = { noinline uwtable } | |
attributes #6 = { uwtable } | |
!llvm.dbg.cu = !{!0} | |
!mono.function_indexes = !{!3, !4, !5, !6, !7, !8, !9, !10} | |
!llvm.module.flags = !{!11, !12} | |
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "Mono AOT Compiler 6.3.0 (master/344df07dd20 Mon Apr 29 12:25:29 EDT 2019) (LLVM)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2) | |
!1 = !DIFile(filename: "SpanCrash.exe", directory: ".") | |
!2 = !{} | |
!3 = !{!"SpanCrash_MainClass_SpanIndexOf_byte__", i32 0} | |
!4 = !{!"SpanCrash_MainClass_AssertOnBytes", i32 1} | |
!5 = !{!"SpanCrash_MainClass_Main_string__", i32 2} | |
!6 = !{!"SpanCrash_MainClass__ctor", i32 3} | |
!7 = !{!"mono_aot_SpanCrashinit_method", i32 5} | |
!8 = !{!"mono_aot_SpanCrashinit_method_gshared_mrgctx", i32 6} | |
!9 = !{!"mono_aot_SpanCrashinit_method_gshared_vtable", i32 7} | |
!10 = !{!"mono_aot_SpanCrashinit_method_gshared_this", i32 8} | |
!11 = !{i32 2, !"Dwarf Version", i32 2} | |
!12 = !{i32 2, !"Debug Info Version", i64 3} | |
!13 = !{!"<index>"} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment