Package evaluation to test Checkpointing on Julia 1.14.0-DEV.24 (d5fb6bbb43*) started at 2025-11-02T18:09:05.170 ################################################################################ # Set-up # Installing PkgEval dependencies (TestEnv)... Set-up completed after 9.54s ################################################################################ # Installation # Installing Checkpointing... Resolving package versions... Updating `~/.julia/environments/v1.14/Project.toml` [eb46d486] + Checkpointing v0.11.1 Updating `~/.julia/environments/v1.14/Manifest.toml` [7d9f7c33] + Accessors v0.1.42 [fa961155] + CEnum v0.5.0 [d360d2e6] + ChainRulesCore v1.26.0 [eb46d486] + Checkpointing v0.11.1 [34da2185] + Compat v4.18.1 [a33af91c] + CompositionsBase v0.1.2 [187b0558] + ConstructionBase v1.6.0 ⌅ [864edb3b] + DataStructures v0.18.22 [7da242da] + Enzyme v0.13.96 [f151be2c] + EnzymeCore v0.8.15 [e2ba6199] + ExprTools v0.1.10 [61eb1bfa] + GPUCompiler v1.7.2 [f67ccb44] + HDF5 v0.17.2 [3587e190] + InverseFunctions v0.1.17 [692b3bcd] + JLLWrappers v1.7.1 [929cbde3] + LLVM v9.4.4 [3da0fdf6] + MPIPreferences v0.1.11 [1914dd2f] + MacroTools v0.5.16 [d8793406] + ObjectFile v0.5.0 [bac558e1] + OrderedCollections v1.8.1 [aea7be01] + PrecompileTools v1.3.3 [21216c6a] + Preferences v1.5.0 [189a3867] + Reexport v1.2.2 [ae029012] + Requires v1.3.1 [6c6a2e73] + Scratch v1.3.0 [53d494c1] + StructIO v0.3.1 [e689c965] + Tracy v0.1.6 [7cc45869] + Enzyme_jll v0.0.207+0 [0234f1f7] + HDF5_jll v1.14.6+0 [e33a78d0] + Hwloc_jll v2.12.2+0 [dad2f222] + LLVMExtra_jll v0.0.38+0 [ad6e5548] + LibTracyClient_jll v0.9.1+6 [94ce4f54] + Libiconv_jll v1.18.0+0 [7cb0a576] + MPICH_jll v4.3.2+0 [f1f71cc9] + MPItrampoline_jll v5.5.4+0 [9237b28f] + MicrosoftMPI_jll v10.1.4+3 [fe0851c0] + OpenMPI_jll v5.0.8+0 ⌅ [02c8fc9c] + XML2_jll v2.13.9+0 [a65dc6b1] + Xorg_libpciaccess_jll v0.18.1+0 [477f73a3] + libaec_jll v1.1.4+0 [0dad84c5] + ArgTools v1.1.2 [56f22d72] + Artifacts v1.11.0 [2a0f44e3] + Base64 v1.11.0 [ade2ca70] + Dates v1.11.0 [f43a241f] + Downloads v1.7.0 [7b1f6079] + FileWatching v1.11.0 [b77e0a4c] + InteractiveUtils v1.11.0 [ac6e5ff7] + JuliaSyntaxHighlighting v1.12.0 [4af54fe1] + LazyArtifacts v1.11.0 [b27032c2] + LibCURL v1.0.0 [76f85450] + LibGit2 v1.11.0 [8f399da3] + Libdl v1.11.0 [37e2e46d] + LinearAlgebra v1.13.0 [56ddb016] + Logging v1.11.0 [d6f4376e] + Markdown v1.11.0 [a63ad114] + Mmap v1.11.0 [ca575930] + NetworkOptions v1.3.0 [44cfe95a] + Pkg v1.13.0 [de0858da] + Printf v1.11.0 [9a3f8284] + Random v1.11.0 [ea8e919c] + SHA v1.0.0 [9e88b42a] + Serialization v1.11.0 [2f01184e] + SparseArrays v1.13.0 [f489334b] + StyledStrings v1.11.0 [fa267f1f] + TOML v1.0.3 [a4e569a6] + Tar v1.10.0 [cf7118a7] + UUIDs v1.11.0 [4ec0a83e] + Unicode v1.11.0 [e66e0078] + CompilerSupportLibraries_jll v1.3.0+1 [deac9b47] + LibCURL_jll v8.16.0+0 [e37daf67] + LibGit2_jll v1.9.1+0 [29816b5a] + LibSSH2_jll v1.11.3+1 [14a3606d] + MozillaCACerts_jll v2025.9.9 [4536629a] + OpenBLAS_jll v0.3.29+0 [458c3c95] + OpenSSL_jll v3.5.4+0 [efcefdf7] + PCRE2_jll v10.47.0+0 [bea87d4a] + SuiteSparse_jll v7.10.1+0 [83775a58] + Zlib_jll v1.3.1+2 [3161d3a3] + Zstd_jll v1.5.7+1 [8e850b90] + libblastrampoline_jll v5.15.0+0 [8e850ede] + nghttp2_jll v1.67.1+0 [3f19e933] + p7zip_jll v17.6.0+0 Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m` Installation completed after 10.88s ################################################################################ # Precompilation # Precompiling PkgEval dependencies... ┌ Error: Failed to use TestEnv.jl; test dependencies will not be precompiled │ exception = │ UndefVarError: `project_rel_path` not defined in `TestEnv` │ Suggestion: this global was defined as `Pkg.Operations.project_rel_path` but not assigned a value. │ Stacktrace: │ [1] get_test_dir(ctx::Pkg.Types.Context, pkgspec::PackageSpec) │ @ TestEnv ~/.julia/packages/TestEnv/nGMfF/src/julia-1.11/common.jl:75 │ [2] test_dir_has_project_file │ @ ~/.julia/packages/TestEnv/nGMfF/src/julia-1.11/common.jl:52 [inlined] │ [3] maybe_gen_project_override! │ @ ~/.julia/packages/TestEnv/nGMfF/src/julia-1.11/common.jl:83 [inlined] │ [4] activate(pkg::String; allow_reresolve::Bool) │ @ TestEnv ~/.julia/packages/TestEnv/nGMfF/src/julia-1.11/activate_set.jl:12 │ [5] activate(pkg::String) │ @ TestEnv ~/.julia/packages/TestEnv/nGMfF/src/julia-1.11/activate_set.jl:9 │ [6] top-level scope │ @ /PkgEval.jl/scripts/precompile.jl:24 │ [7] include(mod::Module, _path::String) │ @ Base ./Base.jl:309 │ [8] exec_options(opts::Base.JLOptions) │ @ Base ./client.jl:344 │ [9] _start() │ @ Base ./client.jl:577 └ @ Main /PkgEval.jl/scripts/precompile.jl:26 Precompiling package dependencies... Precompiling packages... 52532.2 ms ✓ Enzyme 40776.4 ms ✓ Enzyme → EnzymeChainRulesCoreExt 43933.5 ms ✓ Checkpointing 3 dependencies successfully precompiled in 138 seconds. 77 already precompiled. 2 dependencies had output during precompilation: ┌ Checkpointing │ ┌ Warning: Enzyme.jl support for Julia 1.12 is presently in progress. │ │ For the time being we recommend using 1.11 or LTS (1.10). │ │ │ │ For latest updates, check the status of support for Julia 1.12+ at │ │ https://github.com/EnzymeAD/Enzyme.jl/issues/2699. │ │ │ └ @ Enzyme ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:1575 └ ┌ Enzyme → EnzymeChainRulesCoreExt │ ┌ Warning: Enzyme.jl support for Julia 1.12 is presently in progress. │ │ For the time being we recommend using 1.11 or LTS (1.10). │ │ │ │ For latest updates, check the status of support for Julia 1.12+ at │ │ https://github.com/EnzymeAD/Enzyme.jl/issues/2699. │ │ │ └ @ Enzyme ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:1575 └ Precompilation completed after 155.63s ################################################################################ # Testing # Testing Checkpointing Status `/tmp/jl_f9Vaks/Project.toml` [eb46d486] Checkpointing v0.11.1 [7da242da] Enzyme v0.13.96 [37e2e46d] LinearAlgebra v1.13.0 [9e88b42a] Serialization v1.11.0 [8dfed614] Test v1.11.0 Status `/tmp/jl_f9Vaks/Manifest.toml` [7d9f7c33] Accessors v0.1.42 [fa961155] CEnum v0.5.0 [d360d2e6] ChainRulesCore v1.26.0 [eb46d486] Checkpointing v0.11.1 [34da2185] Compat v4.18.1 [a33af91c] CompositionsBase v0.1.2 [187b0558] ConstructionBase v1.6.0 ⌅ [864edb3b] DataStructures v0.18.22 [7da242da] Enzyme v0.13.96 [f151be2c] EnzymeCore v0.8.15 [e2ba6199] ExprTools v0.1.10 [61eb1bfa] GPUCompiler v1.7.2 [f67ccb44] HDF5 v0.17.2 [3587e190] InverseFunctions v0.1.17 [692b3bcd] JLLWrappers v1.7.1 [929cbde3] LLVM v9.4.4 [3da0fdf6] MPIPreferences v0.1.11 [1914dd2f] MacroTools v0.5.16 [d8793406] ObjectFile v0.5.0 [bac558e1] OrderedCollections v1.8.1 [aea7be01] PrecompileTools v1.3.3 [21216c6a] Preferences v1.5.0 [189a3867] Reexport v1.2.2 [ae029012] Requires v1.3.1 [6c6a2e73] Scratch v1.3.0 [53d494c1] StructIO v0.3.1 [e689c965] Tracy v0.1.6 [7cc45869] Enzyme_jll v0.0.207+0 [0234f1f7] HDF5_jll v1.14.6+0 [e33a78d0] Hwloc_jll v2.12.2+0 [dad2f222] LLVMExtra_jll v0.0.38+0 [ad6e5548] LibTracyClient_jll v0.9.1+6 [94ce4f54] Libiconv_jll v1.18.0+0 [7cb0a576] MPICH_jll v4.3.2+0 [f1f71cc9] MPItrampoline_jll v5.5.4+0 [9237b28f] MicrosoftMPI_jll v10.1.4+3 [fe0851c0] OpenMPI_jll v5.0.8+0 ⌅ [02c8fc9c] XML2_jll v2.13.9+0 [a65dc6b1] Xorg_libpciaccess_jll v0.18.1+0 [477f73a3] libaec_jll v1.1.4+0 [0dad84c5] ArgTools v1.1.2 [56f22d72] Artifacts v1.11.0 [2a0f44e3] Base64 v1.11.0 [ade2ca70] Dates v1.11.0 [f43a241f] Downloads v1.7.0 [7b1f6079] FileWatching v1.11.0 [b77e0a4c] InteractiveUtils v1.11.0 [ac6e5ff7] JuliaSyntaxHighlighting v1.12.0 [4af54fe1] LazyArtifacts v1.11.0 [b27032c2] LibCURL v1.0.0 [76f85450] LibGit2 v1.11.0 [8f399da3] Libdl v1.11.0 [37e2e46d] LinearAlgebra v1.13.0 [56ddb016] Logging v1.11.0 [d6f4376e] Markdown v1.11.0 [a63ad114] Mmap v1.11.0 [ca575930] NetworkOptions v1.3.0 [44cfe95a] Pkg v1.13.0 [de0858da] Printf v1.11.0 [9a3f8284] Random v1.11.0 [ea8e919c] SHA v1.0.0 [9e88b42a] Serialization v1.11.0 [2f01184e] SparseArrays v1.13.0 [f489334b] StyledStrings v1.11.0 [fa267f1f] TOML v1.0.3 [a4e569a6] Tar v1.10.0 [8dfed614] Test v1.11.0 [cf7118a7] UUIDs v1.11.0 [4ec0a83e] Unicode v1.11.0 [e66e0078] CompilerSupportLibraries_jll v1.3.0+1 [deac9b47] LibCURL_jll v8.16.0+0 [e37daf67] LibGit2_jll v1.9.1+0 [29816b5a] LibSSH2_jll v1.11.3+1 [14a3606d] MozillaCACerts_jll v2025.9.9 [4536629a] OpenBLAS_jll v0.3.29+0 [458c3c95] OpenSSL_jll v3.5.4+0 [efcefdf7] PCRE2_jll v10.47.0+0 [bea87d4a] SuiteSparse_jll v7.10.1+0 [83775a58] Zlib_jll v1.3.1+2 [3161d3a3] Zstd_jll v1.5.7+1 [8e850b90] libblastrampoline_jll v5.15.0+0 [8e850ede] nghttp2_jll v1.67.1+0 [3f19e933] p7zip_jll v17.6.0+0 Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. Testing Running tests... Enzyme...: Error During Test at /home/pkgeval/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:7 Got exception outside of a @test Taking the type of an opaque pointer is illegal Stacktrace: [1] error(s::String) @ Base ./error.jl:44 [2] eltype @ ~/.julia/packages/LLVM/iza6e/src/core/type.jl:293 [inlined] [3] propagate_returned!(mod::LLVM.Module) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/llvm/transforms.jl:1688 [4] removeDeadArgs!(mod::LLVM.Module, tm::LLVM.TargetMachine) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/llvm/transforms.jl:2563 [5] optimize!(mod::LLVM.Module, tm::LLVM.TargetMachine) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler/optimize.jl:181 [6] compile_unhooked(output::Symbol, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:4774 [7] compile(target::Symbol, job::GPUCompiler.CompilerJob; kwargs::@Kwargs{}) @ GPUCompiler ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:67 [8] compile @ ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:55 [inlined] [9] _thunk(job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}, postopt::Bool) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5960 [10] _thunk @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5958 [inlined] [11] cached_compilation @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6015 [inlined] [12] thunkbase(mi::Core.MethodInstance, World::UInt64, FA::Type{<:Annotation}, A::Type{<:Annotation}, TT::Type, Mode::Enzyme.API.CDerivativeMode, width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, edges::Vector{Any}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6131 [13] thunk_generator(world::UInt64, source::Union{LineNumberNode, Method}, FA::Type, A::Type, TT::Type, Mode::Enzyme.API.CDerivativeMode, Width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, self::Any, fakeworld::Any, fa::Type, a::Type, tt::Type, mode::Type, width::Type, modifiedbetween::Type, returnprimal::Type, shadowinit::Type, abi::Type, erriffuncwritten::Type, runtimeactivity::Type, strongzero::Type) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6275 [14] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:502 [inlined] [15] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:562 [inlined] [16] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:534 [inlined] [17] main() @ Main ~/.julia/packages/Checkpointing/ZAoTt/test/speelpenning.jl:16 [18] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:15 [inlined] [19] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [20] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:8 [inlined] [21] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [22] top-level scope @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:7 [23] include(mapexpr::Function, mod::Module, _path::String) @ Base ./Base.jl:310 [24] top-level scope @ none:6 [25] eval(m::Module, e::Any) @ Core ./boot.jl:489 [26] exec_options(opts::Base.JLOptions) @ Base ./client.jl:310 [27] _start() @ Base ./client.jl:577 scheme = Revolve: Error During Test at /home/pkgeval/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:32 Got exception outside of a @test AssertionError: Enzyme Internal Error (expectLen != length(parameters(f))) define internal double @julia__muoptcontrol__1_33501(ptr addrspace(11) nocapture noundef nonnull readonly align 8 dereferenceable(16) %"#self#::#muoptcontrol##1#muoptcontrol##2", ptr nocapture noundef nonnull readonly align 8 dereferenceable(8) %".roots.#self#", i64 signext %"1994::Int64") #4 !dbg !126 { top: %.F_H.size = alloca i64, align 8 %"new::OneTo" = alloca [1 x i64], align 8 %"new::Tuple" = alloca [1 x [1 x i64]], align 8 %.F.size = alloca i64, align 8 %.F_H.size2 = alloca i64, align 8 %"new::Tuple4" = alloca [1 x [1 x i64]], align 8 %.F.size8 = alloca i64, align 8 %.F.size12 = alloca i64, align 8 %"new::Tuple17" = alloca [1 x [2 x i64]], align 8 %.F_H.size19 = alloca i64, align 8 %"new::Tuple23" = alloca [1 x [2 x i64]], align 8 %.F.size25 = alloca i64, align 8 %value_phi55.size = alloca i64, align 8 %"new::Tuple56" = alloca [1 x i8], align 1 %"new::Extruded" = alloca [3 x i64], align 8 %"new::Tuple57" = alloca [3 x i64], align 8 %"new::Broadcasted" = alloca [4 x i64], align 8 %"new::Tuple61" = alloca [1 x i64], align 8 %value_phi55.size65 = alloca i64, align 8 %.F_H.size90 = alloca i64, align 8 %"new::Tuple118" = alloca [1 x i64], align 8 %"new::Tuple121" = alloca [1 x i64], align 8 %"new::Tuple124" = alloca [1 x i64], align 8 %0 = alloca ptr addrspace(10), align 8 %.F_H.size130 = alloca i64, align 8 %.F.size132 = alloca i64, align 8 %.F.size141 = alloca i64, align 8 %.F.size149 = alloca i64, align 8 %.F.size160 = alloca i64, align 8 %pgcstack = call ptr @julia.get_pgcstack() call void @llvm.memset.p0.i64(ptr align 8 %0, i8 0, i64 8, i1 false), !tbaa !128, !alias.scope !132, !noalias !135 %current_task = getelementptr inbounds i8, ptr %pgcstack, i32 -152 %ptls_field = getelementptr inbounds i8, ptr %current_task, i32 168 %ptls_load = load ptr, ptr %ptls_field, align 8, !tbaa !128 %1 = getelementptr inbounds i8, ptr %ptls_load, i32 16 %safepoint = load atomic ptr, ptr %1 monotonic, align 8, !tbaa !140 fence syncscope("singlethread") seq_cst call void @julia.safepoint(ptr %safepoint) fence syncscope("singlethread") seq_cst %2 = getelementptr inbounds i8, ptr %".roots.#self#", i32 0 %3 = load ptr addrspace(10), ptr %2, align 8, !tbaa !140, !alias.scope !142, !noalias !143 %4 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !144 %.F_H_ptr = getelementptr inbounds i8, ptr addrspace(11) %4, i32 8, !dbg !144 %.F_H = load atomic ptr addrspace(10), ptr addrspace(11) %.F_H_ptr unordered, align 8, !dbg !144, !tbaa !153, !alias.scope !157, !noalias !158, !nonnull !0, !dereferenceable !159, !align !160 %5 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !161 %.F = load atomic ptr addrspace(10), ptr addrspace(11) %5 unordered, align 8, !dbg !161, !tbaa !153, !alias.scope !157, !noalias !158, !nonnull !0, !dereferenceable !159, !align !160 %6 = addrspacecast ptr addrspace(10) %.F_H to ptr addrspace(11), !dbg !162 %.F_H.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %6, i32 16, !dbg !162 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F_H.size, ptr addrspace(11) align 8 %.F_H.size_ptr, i64 8, i1 false), !dbg !162, !tbaa !171, !alias.scope !172, !noalias !173 %7 = getelementptr inbounds i8, ptr %"new::OneTo", i32 0, !dbg !174 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %7, ptr align 8 %.F_H.size, i64 8, i1 false), !dbg !174, !tbaa !180, !alias.scope !182, !noalias !183 %8 = getelementptr inbounds i8, ptr %"new::Tuple", i32 0, !dbg !177 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %8, ptr align 8 %"new::OneTo", i64 8, i1 false), !dbg !177, !tbaa !180, !alias.scope !182, !noalias !183 %9 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !184 %.F.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %9, i32 16, !dbg !184 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F.size, ptr addrspace(11) align 8 %.F.size_ptr, i64 8, i1 false), !dbg !184, !tbaa !171, !alias.scope !172, !noalias !173 %.F_H.size.unbox = load i64, ptr %.F_H.size, align 8, !dbg !190, !tbaa !180, !alias.scope !182, !noalias !183 %.F.size.unbox = load i64, ptr %.F.size, align 8, !dbg !190, !tbaa !180, !alias.scope !182, !noalias !183 %10 = icmp eq i64 %.F_H.size.unbox, %.F.size.unbox, !dbg !190 %11 = xor i1 %10, true, !dbg !194 br i1 %11, label %L16, label %L15, !dbg !194 L15: ; preds = %top %12 = zext i1 %10 to i8 br label %L18, !dbg !194 L16: ; preds = %top %.F.size.unbox167 = load i64, ptr %.F.size, align 8, !dbg !198, !tbaa !180, !alias.scope !182, !noalias !183 %13 = icmp eq i64 %.F.size.unbox167, 1, !dbg !198 %14 = zext i1 %13 to i8 br label %L18, !dbg !198 L18: ; preds = %L16, %L15 %value_phi = phi i8 [ %12, %L15 ], [ %14, %L16 ] %15 = trunc i8 %value_phi to i1, !dbg !196 %16 = xor i1 %15, true, !dbg !196 br i1 %16, label %L21, label %L20, !dbg !196 L20: ; preds = %L18 br label %L24, !dbg !196 L21: ; preds = %L18 %"jl_global#33518" = load ptr, ptr @jl_global_33518, align 8, !dbg !196, !tbaa !140, !alias.scope !142, !noalias !143, !nonnull !0 %17 = addrspacecast ptr %"jl_global#33518" to ptr addrspace(10), !dbg !196 %18 = call [1 x ptr addrspace(10)] @julia_DimensionMismatch_33581(ptr addrspace(10) %17), !dbg !196 %"+Main.Base.DimensionMismatch#33519" = load ptr, ptr @_Main_Base_DimensionMismatch_33519, align 8, !dbg !196, !tbaa !140, !alias.scope !142, !noalias !143, !nonnull !0, !dereferenceable !199, !align !200 %DimensionMismatch = ptrtoint ptr %"+Main.Base.DimensionMismatch#33519" to i64, !dbg !196 %19 = inttoptr i64 %DimensionMismatch to ptr, !dbg !196 %current_task165 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !196 %20 = addrspacecast ptr %19 to ptr addrspace(10), !dbg !196 %"box::DimensionMismatch" = call noalias nonnull align 8 dereferenceable(8) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task165, i64 8, ptr addrspace(10) %20) #33, !dbg !196 %21 = addrspacecast ptr addrspace(10) %"box::DimensionMismatch" to ptr addrspace(11), !dbg !196 store [1 x ptr addrspace(10)] %18, ptr addrspace(11) %21, align 8, !dbg !196, !tbaa !201, !alias.scope !157, !noalias !158 %22 = addrspacecast ptr addrspace(10) %"box::DimensionMismatch" to ptr addrspace(12), !dbg !196 call void @ijl_throw(ptr addrspace(12) %22), !dbg !196 unreachable, !dbg !196 L24: ; preds = %L20 br label %L25, !dbg !196 L25: ; preds = %L24 br label %L26, !dbg !203 L26: ; preds = %L25 %23 = addrspacecast ptr addrspace(10) %.F_H to ptr addrspace(11), !dbg !204 %.F_H.size_ptr1 = getelementptr inbounds i8, ptr addrspace(11) %23, i32 16, !dbg !204 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F_H.size2, ptr addrspace(11) align 8 %.F_H.size_ptr1, i64 8, i1 false), !dbg !204, !tbaa !171, !alias.scope !172, !noalias !173 %24 = getelementptr inbounds i8, ptr %"new::Tuple4", i32 0, !dbg !211 %25 = getelementptr inbounds i8, ptr %24, i32 0, !dbg !211 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %25, ptr align 8 %.F_H.size2, i64 8, i1 false), !dbg !211, !tbaa !180, !alias.scope !182, !noalias !183 %.F_H.size2.unbox = load i64, ptr %.F_H.size2, align 8, !dbg !213, !tbaa !180, !alias.scope !182, !noalias !183 %.F_H.size.unbox5 = load i64, ptr %.F_H.size, align 8, !dbg !213, !tbaa !180, !alias.scope !182, !noalias !183 %26 = icmp eq i64 %.F_H.size2.unbox, %.F_H.size.unbox5, !dbg !213 %27 = zext i1 %26 to i8, !dbg !220 %28 = icmp eq i8 %27, 0, !dbg !220 %29 = xor i1 %28, true, !dbg !220 br i1 %29, label %L35, label %L34, !dbg !220 L34: ; preds = %L26 br label %L36, !dbg !221 L35: ; preds = %L26 br label %L36, !dbg !222 L36: ; preds = %L35, %L34 %value_phi6 = phi i8 [ 0, %L34 ], [ 1, %L35 ] br label %L38, !dbg !217 L38: ; preds = %L36 %30 = trunc i8 %value_phi6 to i1, !dbg !219 %31 = xor i1 %30, true, !dbg !219 br i1 %31, label %L284, label %L39, !dbg !219 L39: ; preds = %L38 %32 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !223 %.F.size_ptr7 = getelementptr inbounds i8, ptr addrspace(11) %32, i32 16, !dbg !223 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F.size8, ptr addrspace(11) align 8 %.F.size_ptr7, i64 8, i1 false), !dbg !223, !tbaa !171, !alias.scope !172, !noalias !173 %.F_H.size2.unbox9 = load i64, ptr %.F_H.size2, align 8, !dbg !226, !tbaa !180, !alias.scope !182, !noalias !183 %.F.size8.unbox = load i64, ptr %.F.size8, align 8, !dbg !226, !tbaa !180, !alias.scope !182, !noalias !183 %33 = icmp eq i64 %.F_H.size2.unbox9, %.F.size8.unbox, !dbg !226 %34 = zext i1 %33 to i8, !dbg !230 %35 = icmp eq i8 %34, 0, !dbg !230 %36 = xor i1 %35, true, !dbg !230 br i1 %36, label %L46, label %L45, !dbg !230 L45: ; preds = %L39 br label %L47, !dbg !231 L46: ; preds = %L39 br label %L47, !dbg !232 L47: ; preds = %L46, %L45 %value_phi10 = phi i8 [ 0, %L45 ], [ 1, %L46 ] br label %L49, !dbg !229 L49: ; preds = %L47 %37 = trunc i8 %value_phi10 to i1, !dbg !225 %38 = xor i1 %37, true, !dbg !225 br i1 %38, label %L137, label %L50, !dbg !225 L50: ; preds = %L49 %39 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !233 %.F.size_ptr11 = getelementptr inbounds i8, ptr addrspace(11) %39, i32 16, !dbg !233 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F.size12, ptr addrspace(11) align 8 %.F.size_ptr11, i64 8, i1 false), !dbg !233, !tbaa !171, !alias.scope !172, !noalias !173 %.F.size12.unbox = load i64, ptr %.F.size12, align 8, !dbg !242, !tbaa !180, !alias.scope !182, !noalias !183 %40 = icmp eq i64 %.F.size12.unbox, 0, !dbg !242 %41 = xor i1 %40, true, !dbg !243 br i1 %41, label %L55, label %L54, !dbg !243 L54: ; preds = %L50 br label %L133, !dbg !243 L55: ; preds = %L50 %.F.size12.unbox14 = load i64, ptr %.F.size12, align 8, !dbg !246, !tbaa !180, !alias.scope !182, !noalias !183 %42 = icmp slt i64 0, %.F.size12.unbox14, !dbg !246 %43 = xor i1 %42, true, !dbg !250 br i1 %43, label %L131, label %L57, !dbg !250 L57: ; preds = %L55 br i1 false, label %L81, label %L59, !dbg !251 L59: ; preds = %L57 %.F.size12.unbox15 = load i64, ptr %.F.size12, align 8, !dbg !252, !tbaa !180, !alias.scope !182, !noalias !183 %44 = add i64 1, %.F.size12.unbox15, !dbg !252 %45 = sub i64 %44, 1, !dbg !254 %46 = icmp sle i64 1, %45, !dbg !256 %47 = xor i1 %46, true, !dbg !260 br i1 %47, label %L64, label %L63, !dbg !260 L63: ; preds = %L59 br label %L65, !dbg !260 L64: ; preds = %L59 br label %L65, !dbg !266 L65: ; preds = %L64, %L63 %value_phi16 = phi i64 [ %45, %L63 ], [ 0, %L64 ] %48 = getelementptr inbounds i8, ptr %"new::Tuple17", i32 0, !dbg !262 %49 = getelementptr inbounds i8, ptr %48, i32 0, !dbg !262 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %49, ptr align 8 @_j_const_1, i64 8, i1 false), !dbg !262, !tbaa !171, !alias.scope !268, !noalias !269 %50 = getelementptr inbounds i8, ptr %48, i32 8, !dbg !262 store i64 %value_phi16, ptr %50, align 8, !dbg !262, !tbaa !180, !alias.scope !182, !noalias !183 %51 = addrspacecast ptr addrspace(10) %.F_H to ptr addrspace(11), !dbg !270 %.F_H.size_ptr18 = getelementptr inbounds i8, ptr addrspace(11) %51, i32 16, !dbg !270 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F_H.size19, ptr addrspace(11) align 8 %.F_H.size_ptr18, i64 8, i1 false), !dbg !270, !tbaa !171, !alias.scope !172, !noalias !173 %52 = icmp slt i64 %value_phi16, 1, !dbg !275 %bitcast = load i64, ptr %.F_H.size19, align 8, !dbg !281, !tbaa !180, !alias.scope !182, !noalias !183 %53 = icmp ult i64 0, %bitcast, !dbg !286 %54 = sub i64 %value_phi16, 1, !dbg !287 %bitcast20 = load i64, ptr %.F_H.size19, align 8, !dbg !281, !tbaa !180, !alias.scope !182, !noalias !183 %55 = icmp ult i64 %54, %bitcast20, !dbg !286 %56 = and i1 %53, %55, !dbg !288 %57 = or i1 %52, %56, !dbg !290 %58 = xor i1 %57, true, !dbg !266 br i1 %58, label %L88, label %L80, !dbg !266 L80: ; preds = %L65 br label %L81, !dbg !266 L81: ; preds = %L80, %L57 br i1 false, label %L107, label %L83, !dbg !292 L83: ; preds = %L81 %.F.size12.unbox21 = load i64, ptr %.F.size12, align 8, !dbg !293, !tbaa !180, !alias.scope !182, !noalias !183 %59 = add i64 1, %.F.size12.unbox21, !dbg !293 %60 = sub i64 %59, 1, !dbg !294 %61 = icmp sle i64 1, %60, !dbg !295 %62 = xor i1 %61, true, !dbg !297 br i1 %62, label %L90, label %L87, !dbg !297 L87: ; preds = %L83 br label %L91, !dbg !297 L88: ; preds = %L65 %63 = addrspacecast ptr %"new::Tuple17" to ptr addrspace(11), !dbg !266 call void @julia_throw_boundserror_33577(ptr addrspace(10) %.F_H, ptr addrspace(11) nocapture readonly %63) #34, !dbg !266 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____3), !dbg !266 unreachable, !dbg !266 L90: ; preds = %L83 br label %L91, !dbg !300 L91: ; preds = %L90, %L87 %value_phi22 = phi i64 [ %60, %L87 ], [ 0, %L90 ] %64 = getelementptr inbounds i8, ptr %"new::Tuple23", i32 0, !dbg !298 %65 = getelementptr inbounds i8, ptr %64, i32 0, !dbg !298 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %65, ptr align 8 @_j_const_1, i64 8, i1 false), !dbg !298, !tbaa !171, !alias.scope !268, !noalias !269 %66 = getelementptr inbounds i8, ptr %64, i32 8, !dbg !298 store i64 %value_phi22, ptr %66, align 8, !dbg !298, !tbaa !180, !alias.scope !182, !noalias !183 %67 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !301 %.F.size_ptr24 = getelementptr inbounds i8, ptr addrspace(11) %67, i32 16, !dbg !301 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F.size25, ptr addrspace(11) align 8 %.F.size_ptr24, i64 8, i1 false), !dbg !301, !tbaa !171, !alias.scope !172, !noalias !173 %68 = icmp slt i64 %value_phi22, 1, !dbg !305 %bitcast26 = load i64, ptr %.F.size25, align 8, !dbg !309, !tbaa !180, !alias.scope !182, !noalias !183 %69 = icmp ult i64 0, %bitcast26, !dbg !312 %70 = sub i64 %value_phi22, 1, !dbg !313 %bitcast27 = load i64, ptr %.F.size25, align 8, !dbg !309, !tbaa !180, !alias.scope !182, !noalias !183 %71 = icmp ult i64 %70, %bitcast27, !dbg !312 %72 = and i1 %69, %71, !dbg !314 %73 = or i1 %68, %72, !dbg !315 %74 = xor i1 %73, true, !dbg !300 br i1 %74, label %L124, label %L106, !dbg !300 L106: ; preds = %L91 br label %L107, !dbg !300 L107: ; preds = %L106, %L81 %75 = addrspacecast ptr addrspace(10) %.F_H to ptr addrspace(11), !dbg !316 %76 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %75, i32 0, i32 0, !dbg !316 %memoryref_data = load ptr, ptr addrspace(11) %76, align 8, !dbg !316, !tbaa !317, !alias.scope !320, !noalias !321 %77 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %75, i32 0, i32 1, !dbg !316 %memoryref_mem = load ptr addrspace(10), ptr addrspace(11) %77, align 8, !dbg !316, !tbaa !317, !alias.scope !320, !noalias !321, !dereferenceable_or_null !200, !align !160 %78 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data, 0, !dbg !316 %.F_H.ref = insertvalue { ptr, ptr addrspace(10) } %78, ptr addrspace(10) %memoryref_mem, 1, !dbg !316 %79 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !322 %80 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %79, i32 0, i32 0, !dbg !322 %memory_len = load i64, ptr addrspace(11) %80, align 8, !dbg !322, !tbaa !325, !range !327, !alias.scope !320, !noalias !321 %81 = add nuw i64 %memory_len, %memory_len, !dbg !322 %82 = add i64 0, %memory_len, !dbg !322 %memoryref_ovflw = icmp uge i64 %82, %81, !dbg !322 %memoryref_data_byteoffset = getelementptr i8, ptr %memoryref_data, i64 0, !dbg !322 %83 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !322 %84 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %83, i32 0, i32 0, !dbg !322 %memory_len28 = load i64, ptr addrspace(11) %84, align 8, !dbg !322, !tbaa !325, !range !327, !alias.scope !320, !noalias !321 %85 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !322 %memory_data_ptr = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %85, i32 0, i32 1, !dbg !322 %memory_data = load ptr, ptr addrspace(11) %memory_data_ptr, align 8, !dbg !322, !tbaa !328, !alias.scope !320, !noalias !321, !nonnull !0 %86 = ptrtoint ptr %memory_data to i64, !dbg !322 %87 = ptrtoint ptr %memoryref_data_byteoffset to i64, !dbg !322 %88 = sub i64 %87, %86, !dbg !322 %memoryref_bytelen = mul nuw nsw i64 %memory_len28, 8, !dbg !322 %memoryref_isinbounds = icmp ult i64 %88, %memoryref_bytelen, !dbg !322 %89 = xor i1 %memoryref_ovflw, true, !dbg !322 %"memoryref_isinbounds¬ovflw" = and i1 %89, %memoryref_isinbounds, !dbg !322 br i1 %"memoryref_isinbounds¬ovflw", label %idxend, label %oob, !dbg !322 L122: ; preds = %idxend46 %"-Core.throw_inexacterror#33504" = load ptr, ptr @_Core_throw_inexacterror_33504, align 8, !dbg !330, !tbaa !140, !alias.scope !142, !noalias !143, !nonnull !0, !dereferenceable !347, !align !160 %90 = addrspacecast ptr %"-Core.throw_inexacterror#33504" to ptr addrspace(10), !dbg !330 %"jl_global#33505" = load ptr, ptr @jl_global_33505, align 8, !dbg !330, !tbaa !140, !alias.scope !142, !noalias !143, !nonnull !0 %91 = addrspacecast ptr %"jl_global#33505" to ptr addrspace(10), !dbg !330 %"jl_sym#convert#33506" = load ptr, ptr @jl_sym_convert_33506, align 8, !dbg !330, !tbaa !140, !alias.scope !142, !noalias !143, !nonnull !0 %92 = addrspacecast ptr %"jl_sym#convert#33506" to ptr addrspace(10), !dbg !330 %93 = load ptr, ptr getelementptr inbounds (i8, ptr @jl_small_typeof, i32 336), align 8, !dbg !330, !tbaa !140, !alias.scope !142, !noalias !143, !nonnull !0, !dereferenceable !199, !align !200 %94 = addrspacecast ptr %93 to ptr addrspace(10), !dbg !330 %box_Int64 = call nonnull align 8 dereferenceable(8) ptr addrspace(10) @ijl_box_int64(i64 signext %256) #35, !dbg !330 %95 = call nonnull ptr addrspace(10) (ptr, ptr addrspace(10), ptr addrspace(10), ...) @julia.call2(ptr @ijl_invoke, ptr addrspace(10) %90, ptr addrspace(10) %91, ptr addrspace(10) %92, ptr addrspace(10) %94, ptr addrspace(10) %box_Int64), !dbg !330 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____3), !dbg !330 unreachable, !dbg !330 L124: ; preds = %L91 %96 = addrspacecast ptr %"new::Tuple23" to ptr addrspace(11), !dbg !300 call void @julia_throw_boundserror_33577(ptr addrspace(10) %.F, ptr addrspace(11) nocapture readonly %96) #34, !dbg !300 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____3), !dbg !300 unreachable, !dbg !300 L126: ; preds = %idxend46 call void @llvm.memmove.p0.p0.i64(ptr %memory_ref.ptr_or_offset, ptr %memory_ref47.ptr_or_offset, i64 %256, i1 false), !dbg !341 call void @llvm.julia.gc_preserve_end(token %255), !dbg !348 call void @llvm.julia.gc_preserve_end(token %254), !dbg !349 br label %L133, !dbg !350 L131: ; preds = %L55 %"jl_global#33509" = load ptr, ptr @jl_global_33509, align 8, !dbg !250, !tbaa !140, !alias.scope !142, !noalias !143, !nonnull !0 %97 = addrspacecast ptr %"jl_global#33509" to ptr addrspace(10), !dbg !250 call void @julia__throw_argerror_33574(ptr addrspace(10) %97) #34, !dbg !250 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____3), !dbg !250 unreachable, !dbg !250 L133: ; preds = %L126, %L54 br label %L134, !dbg !243 L134: ; preds = %L133 br label %L135, !dbg !243 L135: ; preds = %L134 br label %L136, !dbg !243 L136: ; preds = %L135 br label %L286, !dbg !351 L137: ; preds = %L49 %98 = addrspacecast ptr addrspace(10) %.F_H to ptr addrspace(11), !dbg !352 %99 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !352 %100 = icmp eq ptr addrspace(11) %98, %99, !dbg !352 %101 = xor i1 %100, true, !dbg !352 br i1 %101, label %L140, label %L139, !dbg !352 L139: ; preds = %L137 br label %L204, !dbg !352 L140: ; preds = %L137 %102 = addrspacecast ptr addrspace(10) %.F_H to ptr addrspace(11), !dbg !360 %.F_H.size_ptr129 = getelementptr inbounds i8, ptr addrspace(11) %102, i32 16, !dbg !360 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F_H.size130, ptr addrspace(11) align 8 %.F_H.size_ptr129, i64 8, i1 false), !dbg !360, !tbaa !171, !alias.scope !172, !noalias !173 %.F_H.size130.unbox = load i64, ptr %.F_H.size130, align 8, !dbg !368, !tbaa !180, !alias.scope !182, !noalias !183 %103 = icmp eq i64 %.F_H.size130.unbox, 0, !dbg !368 %104 = xor i1 %103, true, !dbg !369 %105 = xor i1 %104, true, !dbg !364 br i1 %105, label %L163, label %L145, !dbg !364 L145: ; preds = %L140 %106 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !360 %.F.size_ptr131 = getelementptr inbounds i8, ptr addrspace(11) %106, i32 16, !dbg !360 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F.size132, ptr addrspace(11) align 8 %.F.size_ptr131, i64 8, i1 false), !dbg !360, !tbaa !171, !alias.scope !172, !noalias !173 %.F.size132.unbox = load i64, ptr %.F.size132, align 8, !dbg !368, !tbaa !180, !alias.scope !182, !noalias !183 %107 = icmp eq i64 %.F.size132.unbox, 0, !dbg !368 %108 = xor i1 %107, true, !dbg !369 %109 = xor i1 %108, true, !dbg !364 br i1 %109, label %L162, label %L150, !dbg !364 L150: ; preds = %L145 %110 = addrspacecast ptr addrspace(10) %.F_H to ptr addrspace(11), !dbg !371 %111 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %110, i32 0, i32 0, !dbg !371 %112 = load ptr, ptr addrspace(11) %111, align 8, !dbg !371, !tbaa !317, !alias.scope !320, !noalias !321 %113 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %110, i32 0, i32 1, !dbg !371 %114 = load ptr addrspace(10), ptr addrspace(11) %113, align 8, !dbg !371, !tbaa !317, !alias.scope !320, !noalias !321, !dereferenceable_or_null !200, !align !160 %115 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %112, 0, !dbg !371 %.F_H.ref133 = insertvalue { ptr, ptr addrspace(10) } %115, ptr addrspace(10) %114, 1, !dbg !371 %.F_H.ref133.mem = extractvalue { ptr, ptr addrspace(10) } %.F_H.ref133, 1, !dbg !371 %116 = addrspacecast ptr addrspace(10) %.F_H.ref133.mem to ptr addrspace(11), !dbg !374 %.F_H.ref133.mem.ptr_ptr = getelementptr inbounds i8, ptr addrspace(11) %116, i32 8, !dbg !374 %bitcast134 = load ptr, ptr addrspace(11) %.F_H.ref133.mem.ptr_ptr, align 8, !dbg !376, !tbaa !328, !alias.scope !320, !noalias !321 %bitcast_coercion = ptrtoint ptr %bitcast134 to i64, !dbg !376 %117 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !371 %118 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %117, i32 0, i32 0, !dbg !371 %119 = load ptr, ptr addrspace(11) %118, align 8, !dbg !371, !tbaa !317, !alias.scope !320, !noalias !321 %120 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %117, i32 0, i32 1, !dbg !371 %121 = load ptr addrspace(10), ptr addrspace(11) %120, align 8, !dbg !371, !tbaa !317, !alias.scope !320, !noalias !321, !dereferenceable_or_null !200, !align !160 %122 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %119, 0, !dbg !371 %.F.ref135 = insertvalue { ptr, ptr addrspace(10) } %122, ptr addrspace(10) %121, 1, !dbg !371 %.F.ref135.mem = extractvalue { ptr, ptr addrspace(10) } %.F.ref135, 1, !dbg !371 %123 = addrspacecast ptr addrspace(10) %.F.ref135.mem to ptr addrspace(11), !dbg !374 %.F.ref135.mem.ptr_ptr = getelementptr inbounds i8, ptr addrspace(11) %123, i32 8, !dbg !374 %bitcast136 = load ptr, ptr addrspace(11) %.F.ref135.mem.ptr_ptr, align 8, !dbg !376, !tbaa !328, !alias.scope !320, !noalias !321 %bitcast_coercion137 = ptrtoint ptr %bitcast136 to i64, !dbg !376 %124 = icmp eq i64 %bitcast_coercion, %bitcast_coercion137, !dbg !377 %125 = xor i1 %124, true, !dbg !382 %126 = xor i1 %125, true, !dbg !369 %127 = zext i1 %126 to i8 br label %L164, !dbg !369 L162: ; preds = %L145 br label %L164, !dbg !352 L163: ; preds = %L140 br label %L164, !dbg !352 L164: ; preds = %L163, %L162, %L150 %value_phi138 = phi i8 [ %127, %L150 ], [ 0, %L162 ], [ 0, %L163 ] %128 = trunc i8 %value_phi138 to i1, !dbg !366 %129 = xor i1 %128, true, !dbg !366 br i1 %129, label %L201, label %L166, !dbg !366 L166: ; preds = %L164 %130 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !383 %131 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %130, i32 0, i32 0, !dbg !383 %132 = load ptr, ptr addrspace(11) %131, align 8, !dbg !383, !tbaa !317, !alias.scope !320, !noalias !321 %133 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %130, i32 0, i32 1, !dbg !383 %134 = load ptr addrspace(10), ptr addrspace(11) %133, align 8, !dbg !383, !tbaa !317, !alias.scope !320, !noalias !321, !dereferenceable_or_null !200, !align !160 %135 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %132, 0, !dbg !383 %.F.ref139 = insertvalue { ptr, ptr addrspace(10) } %135, ptr addrspace(10) %134, 1, !dbg !383 %136 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !388 %.F.size_ptr140 = getelementptr inbounds i8, ptr addrspace(11) %136, i32 16, !dbg !388 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F.size141, ptr addrspace(11) align 8 %.F.size_ptr140, i64 8, i1 false), !dbg !388, !tbaa !171, !alias.scope !172, !noalias !173 %.F.size141.unbox = load i64, ptr %.F.size141, align 8, !dbg !391, !tbaa !180, !alias.scope !182, !noalias !183 %memorynew_empty = icmp eq i64 %.F.size141.unbox, 0, !dbg !391 br i1 %memorynew_empty, label %emptymem, label %nonemptymem, !dbg !391 L182: ; preds = %retval %"-Core.throw_inexacterror#33504150" = load ptr, ptr @_Core_throw_inexacterror_33504, align 8, !dbg !393, !tbaa !140, !alias.scope !142, !noalias !143, !nonnull !0, !dereferenceable !347, !align !160 %137 = addrspacecast ptr %"-Core.throw_inexacterror#33504150" to ptr addrspace(10), !dbg !393 %"jl_global#33505151" = load ptr, ptr @jl_global_33505, align 8, !dbg !393, !tbaa !140, !alias.scope !142, !noalias !143, !nonnull !0 %138 = addrspacecast ptr %"jl_global#33505151" to ptr addrspace(10), !dbg !393 %"jl_sym#convert#33506152" = load ptr, ptr @jl_sym_convert_33506, align 8, !dbg !393, !tbaa !140, !alias.scope !142, !noalias !143, !nonnull !0 %139 = addrspacecast ptr %"jl_sym#convert#33506152" to ptr addrspace(10), !dbg !393 %140 = load ptr, ptr getelementptr inbounds (i8, ptr @jl_small_typeof, i32 336), align 8, !dbg !393, !tbaa !140, !alias.scope !142, !noalias !143, !nonnull !0, !dereferenceable !199, !align !200 %141 = addrspacecast ptr %140 to ptr addrspace(10), !dbg !393 %box_Int64153 = call nonnull align 8 dereferenceable(8) ptr addrspace(10) @ijl_box_int64(i64 signext %301) #35, !dbg !393 %142 = call nonnull ptr addrspace(10) (ptr, ptr addrspace(10), ptr addrspace(10), ...) @julia.call2(ptr @ijl_invoke, ptr addrspace(10) %137, ptr addrspace(10) %138, ptr addrspace(10) %139, ptr addrspace(10) %141, ptr addrspace(10) %box_Int64153), !dbg !393 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____3), !dbg !393 unreachable, !dbg !393 L184: ; preds = %retval br label %L185, !dbg !393 L185: ; preds = %L184 br label %L187, !dbg !394 L187: ; preds = %L185 br label %L188, !dbg !394 L188: ; preds = %L187 br label %L189, !dbg !394 L189: ; preds = %L188 br label %L190, !dbg !394 L190: ; preds = %L189 call void @llvm.memmove.p0.p0.i64(ptr %memory_ref147.ptr_or_offset, ptr %.F.ref139.ptr_or_offset, i64 %301, i1 false), !dbg !398 br label %L192, !dbg !398 L192: ; preds = %L190 call void @llvm.julia.gc_preserve_end(token %300), !dbg !401 call void @llvm.julia.gc_preserve_end(token %299), !dbg !402 br label %L195, !dbg !403 L195: ; preds = %L192 %143 = addrspacecast ptr addrspace(10) %295 to ptr addrspace(11), !dbg !404 %memory_data_ptr156 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %143, i32 0, i32 1, !dbg !404 %memory_data157 = load ptr, ptr addrspace(11) %memory_data_ptr156, align 8, !dbg !404, !tbaa !328, !alias.scope !320, !noalias !321, !nonnull !0 %144 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memory_data157, 0, !dbg !404 %memory_ref158 = insertvalue { ptr, ptr addrspace(10) } %144, ptr addrspace(10) %295, 1, !dbg !404 %145 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !406 %.F.size_ptr159 = getelementptr inbounds i8, ptr addrspace(11) %145, i32 16, !dbg !406 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F.size160, ptr addrspace(11) align 8 %.F.size_ptr159, i64 8, i1 false), !dbg !406, !tbaa !171, !alias.scope !172, !noalias !173 %"+Core.Array#33515" = load ptr, ptr @_Core_Array_33515, align 8, !dbg !405, !tbaa !140, !alias.scope !142, !noalias !143, !nonnull !0, !dereferenceable !199, !align !200 %Array = ptrtoint ptr %"+Core.Array#33515" to i64, !dbg !405 %146 = inttoptr i64 %Array to ptr, !dbg !405 %current_task161 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !405 %147 = addrspacecast ptr %146 to ptr addrspace(10), !dbg !405 %"new::Array" = call noalias nonnull align 8 dereferenceable(24) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task161, i64 24, ptr addrspace(10) %147) #33, !dbg !405 %148 = addrspacecast ptr addrspace(10) %"new::Array" to ptr addrspace(11), !dbg !405 %149 = getelementptr inbounds i8, ptr addrspace(11) %148, i32 8, !dbg !405 store ptr addrspace(10) null, ptr addrspace(11) %149, align 8, !dbg !405, !tbaa !407, !alias.scope !320, !noalias !321 %150 = addrspacecast ptr addrspace(10) %"new::Array" to ptr addrspace(11), !dbg !405 store { ptr, ptr addrspace(10) } %memory_ref158, ptr addrspace(11) %150, align 8, !dbg !405, !tbaa !317, !alias.scope !320, !noalias !321 %151 = addrspacecast ptr addrspace(10) %"new::Array" to ptr addrspace(11), !dbg !405 %"new::Array.size_ptr" = getelementptr inbounds i8, ptr addrspace(11) %151, i32 16, !dbg !405 call void @llvm.memcpy.p11.p0.i64(ptr addrspace(11) align 8 %"new::Array.size_ptr", ptr align 8 %.F.size160, i64 8, i1 false), !dbg !405, !tbaa !171, !alias.scope !408, !noalias !173 br label %L199, !dbg !405 L199: ; preds = %L195 br label %L200, !dbg !405 L200: ; preds = %L199 br label %L202, !dbg !405 L201: ; preds = %L164 br label %L202, !dbg !352 L202: ; preds = %L201, %L200 %value_phi162 = phi ptr addrspace(10) [ %"new::Array", %L200 ], [ %.F, %L201 ] br label %L204, !dbg !352 L204: ; preds = %L202, %L139 %value_phi55 = phi ptr addrspace(10) [ %.F, %L139 ], [ %value_phi162, %L202 ] %152 = addrspacecast ptr addrspace(10) %value_phi55 to ptr addrspace(11), !dbg !409 %value_phi55.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %152, i32 16, !dbg !409 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %value_phi55.size, ptr addrspace(11) align 8 %value_phi55.size_ptr, i64 8, i1 false), !dbg !409, !tbaa !171, !alias.scope !172, !noalias !173 %value_phi55.size.unbox = load i64, ptr %value_phi55.size, align 8, !dbg !415, !tbaa !180, !alias.scope !182, !noalias !183 %153 = icmp eq i64 %value_phi55.size.unbox, 1, !dbg !415 %154 = xor i1 %153, true, !dbg !421 %155 = getelementptr inbounds i8, ptr %"new::Tuple56", i32 0, !dbg !417 %156 = zext i1 %154 to i8, !dbg !417 store i8 %156, ptr %155, align 1, !dbg !417, !tbaa !180, !alias.scope !182, !noalias !183 %157 = getelementptr inbounds i8, ptr %"new::Extruded", i32 8, !dbg !422 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %157, ptr align 1 %"new::Tuple56", i64 1, i1 false), !dbg !422, !tbaa !180, !alias.scope !182, !noalias !183 %158 = getelementptr inbounds i8, ptr %"new::Extruded", i32 16, !dbg !422 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %158, ptr align 8 @_j_const_4, i64 8, i1 false), !dbg !422, !tbaa !171, !alias.scope !268, !noalias !269 br label %L213, !dbg !422 L213: ; preds = %L204 %159 = getelementptr inbounds i8, ptr %"new::Tuple57", i32 0, !dbg !356 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %159, ptr align 8 %"new::Extruded", i64 24, i1 false), !dbg !356, !tbaa !180, !alias.scope !182, !noalias !183 br label %L215, !dbg !356 L215: ; preds = %L213 %160 = getelementptr inbounds i8, ptr %"new::Broadcasted", i32 0, !dbg !424 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %160, ptr align 8 %"new::Tuple57", i64 24, i1 false), !dbg !424, !tbaa !180, !alias.scope !182, !noalias !183 %161 = getelementptr inbounds i8, ptr %"new::Broadcasted", i32 24, !dbg !424 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %161, ptr align 8 %"new::Tuple", i64 8, i1 false), !dbg !424, !tbaa !180, !alias.scope !182, !noalias !183 br label %L217, !dbg !424 L217: ; preds = %L215 %.F_H.size.unbox58 = load i64, ptr %.F_H.size, align 8, !dbg !426, !tbaa !180, !alias.scope !182, !noalias !183 %162 = icmp slt i64 0, %.F_H.size.unbox58, !dbg !426 %163 = xor i1 %162, true, !dbg !427 br i1 %163, label %L282, label %L219, !dbg !427 L219: ; preds = %L217 br label %L220, !dbg !427 L220: ; preds = %load116, %L219 %value_phi59 = phi i64 [ 0, %L219 ], [ %283, %load116 ] %.F_H.size.unbox60 = load i64, ptr %.F_H.size, align 8, !dbg !435, !tbaa !180, !alias.scope !182, !noalias !183 %164 = icmp slt i64 %value_phi59, %.F_H.size.unbox60, !dbg !435 %165 = xor i1 %164, true, !dbg !436 br i1 %165, label %L282, label %L223, !dbg !436 L223: ; preds = %L220 %166 = add i64 %value_phi59, 1, !dbg !437 br i1 false, label %L233, label %L226, !dbg !441 L226: ; preds = %L223 %167 = getelementptr inbounds i8, ptr %"new::Tuple61", i32 0, !dbg !441 store i64 %166, ptr %167, align 8, !dbg !441, !tbaa !180, !alias.scope !182, !noalias !183 %168 = sub i64 %166, 1, !dbg !445 %bitcast62 = load i64, ptr %.F_H.size, align 8, !dbg !449, !tbaa !180, !alias.scope !182, !noalias !183 %169 = icmp ult i64 %168, %bitcast62, !dbg !451 %170 = xor i1 %169, true, !dbg !448 br i1 %170, label %L265, label %L232, !dbg !448 L232: ; preds = %L226 br label %L233, !dbg !448 L233: ; preds = %L232, %L223 br i1 false, label %L241, label %L235, !dbg !452 L235: ; preds = %L233 %171 = sub i64 %166, 1, !dbg !458 %bitcast63 = load i64, ptr %.F_H.size, align 8, !dbg !462, !tbaa !180, !alias.scope !182, !noalias !183 %172 = icmp ult i64 %171, %bitcast63, !dbg !464 %173 = xor i1 %172, true, !dbg !460 br i1 %173, label %L267, label %L240, !dbg !460 L240: ; preds = %L235 br label %L241, !dbg !460 L241: ; preds = %L240, %L233 %ifelse_cond = xor i1 %154, true, !dbg !465 %174 = select i1 %ifelse_cond, i64 1, i64 %166, !dbg !465 br i1 false, label %L252, label %L244, !dbg !474 L244: ; preds = %L241 %175 = sub i64 %174, 1, !dbg !476 %176 = addrspacecast ptr addrspace(10) %value_phi55 to ptr addrspace(11), !dbg !479 %value_phi55.size_ptr64 = getelementptr inbounds i8, ptr addrspace(11) %176, i32 16, !dbg !479 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %value_phi55.size65, ptr addrspace(11) align 8 %value_phi55.size_ptr64, i64 8, i1 false), !dbg !479, !tbaa !171, !alias.scope !172, !noalias !173 %bitcast66 = load i64, ptr %value_phi55.size65, align 8, !dbg !476, !tbaa !180, !alias.scope !182, !noalias !183 %177 = icmp ult i64 %175, %bitcast66, !dbg !476 %178 = xor i1 %177, true, !dbg !478 br i1 %178, label %L270, label %L251, !dbg !478 L251: ; preds = %L244 br label %L252, !dbg !478 L252: ; preds = %L251, %L241 %179 = addrspacecast ptr addrspace(10) %value_phi55 to ptr addrspace(11), !dbg !481 %180 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %179, i32 0, i32 0, !dbg !481 %memoryref_data67 = load ptr, ptr addrspace(11) %180, align 8, !dbg !481, !tbaa !317, !alias.scope !320, !noalias !321 %181 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %179, i32 0, i32 1, !dbg !481 %memoryref_mem85 = load ptr addrspace(10), ptr addrspace(11) %181, align 8, !dbg !481, !tbaa !317, !alias.scope !320, !noalias !321, !dereferenceable_or_null !200, !align !160 %182 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data67, 0, !dbg !481 %value_phi55.ref = insertvalue { ptr, ptr addrspace(10) } %182, ptr addrspace(10) %memoryref_mem85, 1, !dbg !481 %memoryref_offset = sub i64 %174, 1, !dbg !481 %183 = addrspacecast ptr addrspace(10) %memoryref_mem85 to ptr addrspace(11), !dbg !481 %184 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %183, i32 0, i32 0, !dbg !481 %memory_len69 = load i64, ptr addrspace(11) %184, align 8, !dbg !481, !tbaa !325, !range !327, !alias.scope !320, !noalias !321 %185 = add nuw i64 %memory_len69, %memory_len69, !dbg !481 %186 = add i64 %memoryref_offset, %memory_len69, !dbg !481 %memoryref_ovflw70 = icmp uge i64 %186, %185, !dbg !481 %memoryref_byteoffset = mul i64 %memoryref_offset, 8, !dbg !481 %memoryref_data_byteoffset71 = getelementptr i8, ptr %memoryref_data67, i64 %memoryref_byteoffset, !dbg !481 %187 = addrspacecast ptr addrspace(10) %memoryref_mem85 to ptr addrspace(11), !dbg !481 %188 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %187, i32 0, i32 0, !dbg !481 %memory_len72 = load i64, ptr addrspace(11) %188, align 8, !dbg !481, !tbaa !325, !range !327, !alias.scope !320, !noalias !321 %189 = addrspacecast ptr addrspace(10) %memoryref_mem85 to ptr addrspace(11), !dbg !481 %memory_data_ptr73 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %189, i32 0, i32 1, !dbg !481 %memory_data74 = load ptr, ptr addrspace(11) %memory_data_ptr73, align 8, !dbg !481, !tbaa !328, !alias.scope !320, !noalias !321, !nonnull !0 %190 = ptrtoint ptr %memory_data74 to i64, !dbg !481 %191 = ptrtoint ptr %memoryref_data_byteoffset71 to i64, !dbg !481 %192 = sub i64 %191, %190, !dbg !481 %memoryref_bytelen75 = mul nuw nsw i64 %memory_len72, 8, !dbg !481 %memoryref_isinbounds76 = icmp ult i64 %192, %memoryref_bytelen75, !dbg !481 %193 = xor i1 %memoryref_ovflw70, true, !dbg !481 %"memoryref_isinbounds¬ovflw77" = and i1 %193, %memoryref_isinbounds76, !dbg !481 br i1 %"memoryref_isinbounds¬ovflw77", label %idxend83, label %oob78, !dbg !481 L257: ; preds = %load %194 = sub i64 %166, 1, !dbg !482 %195 = addrspacecast ptr addrspace(10) %.F_H to ptr addrspace(11), !dbg !487 %.F_H.size_ptr89 = getelementptr inbounds i8, ptr addrspace(11) %195, i32 16, !dbg !487 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F_H.size90, ptr addrspace(11) align 8 %.F_H.size_ptr89, i64 8, i1 false), !dbg !487, !tbaa !171, !alias.scope !172, !noalias !173 %bitcast91 = load i64, ptr %.F_H.size90, align 8, !dbg !482, !tbaa !180, !alias.scope !182, !noalias !183 %196 = icmp ult i64 %194, %bitcast91, !dbg !482 %197 = xor i1 %196, true, !dbg !483 br i1 %197, label %L273, label %L264, !dbg !483 L264: ; preds = %L257 br label %L276, !dbg !483 L265: ; preds = %L226 %198 = addrspacecast ptr %"new::OneTo" to ptr addrspace(11), !dbg !448 %199 = addrspacecast ptr %"new::Tuple61" to ptr addrspace(11), !dbg !448 call void @julia_throw_boundserror_33571(ptr addrspace(11) nocapture readonly %198, ptr addrspace(11) nocapture readonly %199) #34, !dbg !448 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____3), !dbg !448 unreachable, !dbg !448 L267: ; preds = %L235 %200 = getelementptr inbounds i8, ptr %"new::Tuple124", i32 0, !dbg !460 store i64 %166, ptr %200, align 8, !dbg !460, !tbaa !180, !alias.scope !182, !noalias !183 %201 = getelementptr inbounds i8, ptr %0, i32 0, !dbg !460 store ptr addrspace(10) %value_phi55, ptr %201, align 8, !dbg !460 %202 = addrspacecast ptr %"new::Broadcasted" to ptr addrspace(11), !dbg !460 %203 = addrspacecast ptr %"new::Tuple124" to ptr addrspace(11), !dbg !460 call void @julia_throw_boundserror_33568(ptr addrspace(11) nocapture readonly %202, ptr nocapture readonly %0, ptr addrspace(11) nocapture readonly %203) #34, !dbg !460 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____3), !dbg !460 unreachable, !dbg !460 L270: ; preds = %L244 %204 = getelementptr inbounds i8, ptr %"new::Tuple121", i32 0, !dbg !478 store i64 %174, ptr %204, align 8, !dbg !478, !tbaa !180, !alias.scope !182, !noalias !183 %205 = addrspacecast ptr %"new::Tuple121" to ptr addrspace(11), !dbg !478 call void @julia_throw_boundserror_33493(ptr addrspace(10) %value_phi55, ptr addrspace(11) nocapture readonly %205) #34, !dbg !478 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____3), !dbg !478 unreachable, !dbg !478 L273: ; preds = %L257 %206 = getelementptr inbounds i8, ptr %"new::Tuple118", i32 0, !dbg !483 store i64 %166, ptr %206, align 8, !dbg !483, !tbaa !180, !alias.scope !182, !noalias !183 %207 = addrspacecast ptr %"new::Tuple118" to ptr addrspace(11), !dbg !483 call void @julia_throw_boundserror_33493(ptr addrspace(10) %.F_H, ptr addrspace(11) nocapture readonly %207) #34, !dbg !483 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____3), !dbg !483 unreachable, !dbg !483 L276: ; preds = %L264, %load %208 = addrspacecast ptr addrspace(10) %.F_H to ptr addrspace(11), !dbg !489 %209 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %208, i32 0, i32 0, !dbg !489 %memoryref_data93 = load ptr, ptr addrspace(11) %209, align 8, !dbg !489, !tbaa !317, !alias.scope !320, !noalias !321 %210 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %208, i32 0, i32 1, !dbg !489 %memoryref_mem113 = load ptr addrspace(10), ptr addrspace(11) %210, align 8, !dbg !489, !tbaa !317, !alias.scope !320, !noalias !321, !dereferenceable_or_null !200, !align !160 %211 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data93, 0, !dbg !489 %.F_H.ref92 = insertvalue { ptr, ptr addrspace(10) } %211, ptr addrspace(10) %memoryref_mem113, 1, !dbg !489 %memoryref_offset95 = sub i64 %166, 1, !dbg !490 %212 = addrspacecast ptr addrspace(10) %memoryref_mem113 to ptr addrspace(11), !dbg !490 %213 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %212, i32 0, i32 0, !dbg !490 %memory_len96 = load i64, ptr addrspace(11) %213, align 8, !dbg !490, !tbaa !325, !range !327, !alias.scope !320, !noalias !321 %214 = add nuw i64 %memory_len96, %memory_len96, !dbg !490 %215 = add i64 %memoryref_offset95, %memory_len96, !dbg !490 %memoryref_ovflw97 = icmp uge i64 %215, %214, !dbg !490 %memoryref_byteoffset98 = mul i64 %memoryref_offset95, 8, !dbg !490 %memoryref_data_byteoffset99 = getelementptr i8, ptr %memoryref_data93, i64 %memoryref_byteoffset98, !dbg !490 %216 = addrspacecast ptr addrspace(10) %memoryref_mem113 to ptr addrspace(11), !dbg !490 %217 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %216, i32 0, i32 0, !dbg !490 %memory_len100 = load i64, ptr addrspace(11) %217, align 8, !dbg !490, !tbaa !325, !range !327, !alias.scope !320, !noalias !321 %218 = addrspacecast ptr addrspace(10) %memoryref_mem113 to ptr addrspace(11), !dbg !490 %memory_data_ptr101 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %218, i32 0, i32 1, !dbg !490 %memory_data102 = load ptr, ptr addrspace(11) %memory_data_ptr101, align 8, !dbg !490, !tbaa !328, !alias.scope !320, !noalias !321, !nonnull !0 %219 = ptrtoint ptr %memory_data102 to i64, !dbg !490 %220 = ptrtoint ptr %memoryref_data_byteoffset99 to i64, !dbg !490 %221 = sub i64 %220, %219, !dbg !490 %memoryref_bytelen103 = mul nuw nsw i64 %memory_len100, 8, !dbg !490 %memoryref_isinbounds104 = icmp ult i64 %221, %memoryref_bytelen103, !dbg !490 %222 = xor i1 %memoryref_ovflw97, true, !dbg !490 %"memoryref_isinbounds¬ovflw105" = and i1 %222, %memoryref_isinbounds104, !dbg !490 br i1 %"memoryref_isinbounds¬ovflw105", label %idxend111, label %oob106, !dbg !490 L282: ; preds = %L220, %L217 br label %L283, !dbg !430 L283: ; preds = %L282 br label %L286, !dbg !491 L284: ; preds = %L38 %223 = addrspacecast ptr %"new::Tuple4" to ptr addrspace(11), !dbg !219 %224 = addrspacecast ptr %"new::Tuple" to ptr addrspace(11), !dbg !219 call void @julia_throwdm_33563(ptr addrspace(11) nocapture readonly %223, ptr addrspace(11) nocapture readonly %224) #34, !dbg !219 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____3), !dbg !219 unreachable, !dbg !219 L286: ; preds = %L283, %L136 br label %L287, !dbg !351 L287: ; preds = %L286 br label %L288, !dbg !167 L288: ; preds = %L287 br label %L289, !dbg !170 L289: ; preds = %L288 call void @julia_advance_33520(ptr addrspace(10) %3), !dbg !492 %225 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !493 %.t_ptr = getelementptr inbounds i8, ptr addrspace(11) %225, i32 16, !dbg !493 %.t = load double, ptr addrspace(11) %.t_ptr, align 8, !dbg !493, !tbaa !153, !alias.scope !157, !noalias !158 %226 = getelementptr inbounds i8, ptr addrspace(11) %"#self#::#muoptcontrol##1#muoptcontrol##2", i32 8, !dbg !494 %.unbox = load double, ptr addrspace(11) %226, align 8, !dbg !495, !tbaa !140, !alias.scope !142, !noalias !143 %227 = fadd double %.t, %.unbox, !dbg !495 %228 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !497 %.t_ptr13 = getelementptr inbounds i8, ptr addrspace(11) %228, i32 16, !dbg !497 store double %227, ptr addrspace(11) %.t_ptr13, align 8, !dbg !497, !tbaa !153, !alias.scope !157, !noalias !158 ret double %227, !dbg !497 oob: ; preds = %L107 %"+Core.GenericMemoryRef#33491" = load ptr, ptr @_Core_GenericMemoryRef_33491, align 8, !dbg !322, !tbaa !140, !alias.scope !142, !noalias !143, !nonnull !0, !dereferenceable !199, !align !200 %GenericMemoryRef = ptrtoint ptr %"+Core.GenericMemoryRef#33491" to i64, !dbg !322 %229 = inttoptr i64 %GenericMemoryRef to ptr, !dbg !322 %current_task29 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !322 %230 = addrspacecast ptr %229 to ptr addrspace(10), !dbg !322 %"box::GenericMemoryRef" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task29, i64 16, ptr addrspace(10) %230) #33, !dbg !322 %231 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef" to ptr addrspace(11), !dbg !322 store { ptr, ptr addrspace(10) } %.F_H.ref, ptr addrspace(11) %231, align 8, !dbg !322, !tbaa !201, !alias.scope !157, !noalias !158 %232 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef" to ptr addrspace(12), !dbg !322 call void @ijl_bounds_error_int(ptr addrspace(12) %232, i64 1), !dbg !322 unreachable, !dbg !322 idxend: ; preds = %L107 %233 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset, 0, !dbg !322 %memory_ref = insertvalue { ptr, ptr addrspace(10) } %233, ptr addrspace(10) %memoryref_mem, 1, !dbg !322 %234 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !316 %235 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %234, i32 0, i32 0, !dbg !316 %memoryref_data30 = load ptr, ptr addrspace(11) %235, align 8, !dbg !316, !tbaa !317, !alias.scope !320, !noalias !321 %236 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %234, i32 0, i32 1, !dbg !316 %memoryref_mem31 = load ptr addrspace(10), ptr addrspace(11) %236, align 8, !dbg !316, !tbaa !317, !alias.scope !320, !noalias !321, !dereferenceable_or_null !200, !align !160 %237 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data30, 0, !dbg !316 %.F.ref = insertvalue { ptr, ptr addrspace(10) } %237, ptr addrspace(10) %memoryref_mem31, 1, !dbg !316 %238 = addrspacecast ptr addrspace(10) %memoryref_mem31 to ptr addrspace(11), !dbg !322 %239 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %238, i32 0, i32 0, !dbg !322 %memory_len32 = load i64, ptr addrspace(11) %239, align 8, !dbg !322, !tbaa !325, !range !327, !alias.scope !320, !noalias !321 %240 = add nuw i64 %memory_len32, %memory_len32, !dbg !322 %241 = add i64 0, %memory_len32, !dbg !322 %memoryref_ovflw33 = icmp uge i64 %241, %240, !dbg !322 %memoryref_data_byteoffset34 = getelementptr i8, ptr %memoryref_data30, i64 0, !dbg !322 %242 = addrspacecast ptr addrspace(10) %memoryref_mem31 to ptr addrspace(11), !dbg !322 %243 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %242, i32 0, i32 0, !dbg !322 %memory_len35 = load i64, ptr addrspace(11) %243, align 8, !dbg !322, !tbaa !325, !range !327, !alias.scope !320, !noalias !321 %244 = addrspacecast ptr addrspace(10) %memoryref_mem31 to ptr addrspace(11), !dbg !322 %memory_data_ptr36 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %244, i32 0, i32 1, !dbg !322 %memory_data37 = load ptr, ptr addrspace(11) %memory_data_ptr36, align 8, !dbg !322, !tbaa !328, !alias.scope !320, !noalias !321, !nonnull !0 %245 = ptrtoint ptr %memory_data37 to i64, !dbg !322 %246 = ptrtoint ptr %memoryref_data_byteoffset34 to i64, !dbg !322 %247 = sub i64 %246, %245, !dbg !322 %memoryref_bytelen38 = mul nuw nsw i64 %memory_len35, 8, !dbg !322 %memoryref_isinbounds39 = icmp ult i64 %247, %memoryref_bytelen38, !dbg !322 %248 = xor i1 %memoryref_ovflw33, true, !dbg !322 %"memoryref_isinbounds¬ovflw40" = and i1 %248, %memoryref_isinbounds39, !dbg !322 br i1 %"memoryref_isinbounds¬ovflw40", label %idxend46, label %oob41, !dbg !322 oob41: ; preds = %idxend %"+Core.GenericMemoryRef#3349142" = load ptr, ptr @_Core_GenericMemoryRef_33491, align 8, !dbg !322, !tbaa !140, !alias.scope !142, !noalias !143, !nonnull !0, !dereferenceable !199, !align !200 %GenericMemoryRef43 = ptrtoint ptr %"+Core.GenericMemoryRef#3349142" to i64, !dbg !322 %249 = inttoptr i64 %GenericMemoryRef43 to ptr, !dbg !322 %current_task44 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !322 %250 = addrspacecast ptr %249 to ptr addrspace(10), !dbg !322 %"box::GenericMemoryRef45" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task44, i64 16, ptr addrspace(10) %250) #33, !dbg !322 %251 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef45" to ptr addrspace(11), !dbg !322 store { ptr, ptr addrspace(10) } %.F.ref, ptr addrspace(11) %251, align 8, !dbg !322, !tbaa !201, !alias.scope !157, !noalias !158 %252 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef45" to ptr addrspace(12), !dbg !322 call void @ijl_bounds_error_int(ptr addrspace(12) %252, i64 1), !dbg !322 unreachable, !dbg !322 idxend46: ; preds = %idxend %253 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset34, 0, !dbg !322 %memory_ref47 = insertvalue { ptr, ptr addrspace(10) } %253, ptr addrspace(10) %memoryref_mem31, 1, !dbg !322 %254 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %memoryref_mem), !dbg !499 %255 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %memoryref_mem31), !dbg !500 %memory_ref.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref, 0, !dbg !501 %memory_ref47.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref47, 0, !dbg !501 %.F.size12.unbox48 = load i64, ptr %.F.size12, align 8, !dbg !507, !tbaa !180, !alias.scope !182, !noalias !183 %256 = mul i64 %.F.size12.unbox48, 8, !dbg !507 %257 = lshr i64 %256, 63, !dbg !509 %258 = select i1 false, i64 0, i64 %257, !dbg !509 %259 = trunc i64 %258 to i8, !dbg !509 %260 = icmp eq i8 %259, 1, !dbg !509 %261 = xor i1 %260, true, !dbg !330 br i1 %261, label %L126, label %L122, !dbg !330 after_error: ; No predecessors! call void @llvm.trap(), !dbg !330 unreachable, !dbg !330 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !330 unreachable, !dbg !330 after_error49: ; No predecessors! call void @llvm.trap(), !dbg !300 unreachable, !dbg !300 after_noret50: ; No predecessors! call void @llvm.trap(), !dbg !300 unreachable, !dbg !300 after_error51: ; No predecessors! call void @llvm.trap(), !dbg !266 unreachable, !dbg !266 after_noret52: ; No predecessors! call void @llvm.trap(), !dbg !266 unreachable, !dbg !266 after_error53: ; No predecessors! call void @llvm.trap(), !dbg !250 unreachable, !dbg !250 after_noret54: ; No predecessors! call void @llvm.trap(), !dbg !250 unreachable, !dbg !250 oob78: ; preds = %L252 %"+Core.GenericMemoryRef#3349179" = load ptr, ptr @_Core_GenericMemoryRef_33491, align 8, !dbg !481, !tbaa !140, !alias.scope !142, !noalias !143, !nonnull !0, !dereferenceable !199, !align !200 %GenericMemoryRef80 = ptrtoint ptr %"+Core.GenericMemoryRef#3349179" to i64, !dbg !481 %262 = inttoptr i64 %GenericMemoryRef80 to ptr, !dbg !481 %current_task81 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !481 %263 = addrspacecast ptr %262 to ptr addrspace(10), !dbg !481 %"box::GenericMemoryRef82" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task81, i64 16, ptr addrspace(10) %263) #33, !dbg !481 %264 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef82" to ptr addrspace(11), !dbg !481 store { ptr, ptr addrspace(10) } %value_phi55.ref, ptr addrspace(11) %264, align 8, !dbg !481, !tbaa !201, !alias.scope !157, !noalias !158 %265 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef82" to ptr addrspace(12), !dbg !481 call void @ijl_bounds_error_int(ptr addrspace(12) %265, i64 %174), !dbg !481 unreachable, !dbg !481 idxend83: ; preds = %L252 %266 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset71, 0, !dbg !481 %memory_ref84 = insertvalue { ptr, ptr addrspace(10) } %266, ptr addrspace(10) %memoryref_mem85, 1, !dbg !481 %267 = addrspacecast ptr addrspace(10) %memoryref_mem85 to ptr addrspace(11), !dbg !481 %268 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %267, i32 0, i32 0, !dbg !481 %memory_len86 = load i64, ptr addrspace(11) %268, align 8, !dbg !481, !tbaa !325, !range !327, !alias.scope !320, !noalias !321 %269 = icmp eq i64 %memory_len86, 0, !dbg !481 br i1 %269, label %oob87, label %load, !dbg !481 oob87: ; preds = %idxend83 %270 = addrspacecast ptr addrspace(10) %memoryref_mem85 to ptr addrspace(12), !dbg !481 call void @ijl_bounds_error_int(ptr addrspace(12) %270, i64 1), !dbg !481 unreachable, !dbg !481 load: ; preds = %idxend83 %271 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem85, ptr %memoryref_data67), !dbg !481 %memoryref_data88 = getelementptr inbounds i8, ptr addrspace(13) %271, i64 %memoryref_byteoffset, !dbg !481 %272 = load double, ptr addrspace(13) %memoryref_data88, align 8, !dbg !481, !tbaa !511, !alias.scope !157, !noalias !158 br i1 false, label %L276, label %L257, !dbg !483 oob106: ; preds = %L276 %"+Core.GenericMemoryRef#33491107" = load ptr, ptr @_Core_GenericMemoryRef_33491, align 8, !dbg !490, !tbaa !140, !alias.scope !142, !noalias !143, !nonnull !0, !dereferenceable !199, !align !200 %GenericMemoryRef108 = ptrtoint ptr %"+Core.GenericMemoryRef#33491107" to i64, !dbg !490 %273 = inttoptr i64 %GenericMemoryRef108 to ptr, !dbg !490 %current_task109 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !490 %274 = addrspacecast ptr %273 to ptr addrspace(10), !dbg !490 %"box::GenericMemoryRef110" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task109, i64 16, ptr addrspace(10) %274) #33, !dbg !490 %275 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef110" to ptr addrspace(11), !dbg !490 store { ptr, ptr addrspace(10) } %.F_H.ref92, ptr addrspace(11) %275, align 8, !dbg !490, !tbaa !201, !alias.scope !157, !noalias !158 %276 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef110" to ptr addrspace(12), !dbg !490 call void @ijl_bounds_error_int(ptr addrspace(12) %276, i64 %166), !dbg !490 unreachable, !dbg !490 idxend111: ; preds = %L276 %277 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset99, 0, !dbg !490 %memory_ref112 = insertvalue { ptr, ptr addrspace(10) } %277, ptr addrspace(10) %memoryref_mem113, 1, !dbg !490 %278 = addrspacecast ptr addrspace(10) %memoryref_mem113 to ptr addrspace(11), !dbg !490 %279 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %278, i32 0, i32 0, !dbg !490 %memory_len114 = load i64, ptr addrspace(11) %279, align 8, !dbg !490, !tbaa !325, !range !327, !alias.scope !320, !noalias !321 %280 = icmp eq i64 %memory_len114, 0, !dbg !490 br i1 %280, label %oob115, label %load116, !dbg !490 oob115: ; preds = %idxend111 %281 = addrspacecast ptr addrspace(10) %memoryref_mem113 to ptr addrspace(12), !dbg !490 call void @ijl_bounds_error_int(ptr addrspace(12) %281, i64 1), !dbg !490 unreachable, !dbg !490 load116: ; preds = %idxend111 %282 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem113, ptr %memoryref_data93), !dbg !490 %memoryref_data117 = getelementptr inbounds i8, ptr addrspace(13) %282, i64 %memoryref_byteoffset98, !dbg !490 store double %272, ptr addrspace(13) %memoryref_data117, align 8, !dbg !490, !tbaa !511, !alias.scope !157, !noalias !158 %283 = add i64 %value_phi59, 1, !dbg !513 br label %L220, !dbg !515, !llvm.loop !516 after_error119: ; No predecessors! call void @llvm.trap(), !dbg !483 unreachable, !dbg !483 after_noret120: ; No predecessors! call void @llvm.trap(), !dbg !483 unreachable, !dbg !483 after_error122: ; No predecessors! call void @llvm.trap(), !dbg !478 unreachable, !dbg !478 after_noret123: ; No predecessors! call void @llvm.trap(), !dbg !478 unreachable, !dbg !478 after_error125: ; No predecessors! call void @llvm.trap(), !dbg !460 unreachable, !dbg !460 after_noret126: ; No predecessors! call void @llvm.trap(), !dbg !460 unreachable, !dbg !460 after_error127: ; No predecessors! call void @llvm.trap(), !dbg !448 unreachable, !dbg !448 after_noret128: ; No predecessors! call void @llvm.trap(), !dbg !448 unreachable, !dbg !448 emptymem: ; preds = %L166 %"jl_global#33513" = load ptr, ptr @jl_global_33513, align 8, !dbg !391, !tbaa !140, !alias.scope !142, !noalias !143, !nonnull !0, !dereferenceable !200, !align !160 %284 = addrspacecast ptr %"jl_global#33513" to ptr addrspace(10), !dbg !391 br label %retval, !dbg !391 nonemptymem: ; preds = %L166 %"+Core.GenericMemory#33514" = load ptr, ptr @_Core_GenericMemory_33514, align 8, !dbg !391, !tbaa !140, !alias.scope !142, !noalias !143, !nonnull !0, !dereferenceable !199, !align !200 %285 = call { i64, i1 } @llvm.smul.with.overflow.i64(i64 %.F.size141.unbox, i64 8), !dbg !391 %286 = extractvalue { i64, i1 } %285, 0, !dbg !391 %287 = extractvalue { i64, i1 } %285, 1, !dbg !391 %288 = icmp slt i64 %.F.size141.unbox, 0, !dbg !391 %289 = or i1 %287, %288, !dbg !391 %290 = icmp slt i64 9223372036854775806, %286, !dbg !391 %291 = or i1 %289, %290, !dbg !391 %292 = xor i1 %291, true, !dbg !391 br i1 %292, label %pass, label %fail, !dbg !391 fail: ; preds = %nonemptymem call void @jl_argument_error(ptr @_j_str_invalid_GenericMemory_siz____5), !dbg !391 unreachable, !dbg !391 pass: ; preds = %nonemptymem %current_task142 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !391 %ptls_field143 = getelementptr inbounds i8, ptr %current_task142, i32 168, !dbg !391 %ptls_load144 = load ptr, ptr %ptls_field143, align 8, !dbg !391, !tbaa !128 %"Memory{Float64}[]" = call noalias nonnull align 16 ptr addrspace(10) @jl_alloc_genericmemory_unchecked(ptr %ptls_load144, i64 %286, ptr %"+Core.GenericMemory#33514") #36, !dbg !391 %293 = addrspacecast ptr addrspace(10) %"Memory{Float64}[]" to ptr addrspace(11), !dbg !391 %294 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %293, i32 0, i32 0, !dbg !391 store i64 %.F.size141.unbox, ptr addrspace(11) %294, align 8, !dbg !391, !tbaa !325, !alias.scope !320, !noalias !321 br label %retval, !dbg !391 retval: ; preds = %pass, %emptymem %295 = phi ptr addrspace(10) [ %284, %emptymem ], [ %"Memory{Float64}[]", %pass ], !dbg !391 %296 = addrspacecast ptr addrspace(10) %295 to ptr addrspace(11), !dbg !517 %memory_data_ptr145 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %296, i32 0, i32 1, !dbg !517 %memory_data146 = load ptr, ptr addrspace(11) %memory_data_ptr145, align 8, !dbg !517, !tbaa !328, !alias.scope !320, !noalias !321, !nonnull !0 %297 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memory_data146, 0, !dbg !517 %memory_ref147 = insertvalue { ptr, ptr addrspace(10) } %297, ptr addrspace(10) %295, 1, !dbg !517 %298 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !518 %.F.size_ptr148 = getelementptr inbounds i8, ptr addrspace(11) %298, i32 16, !dbg !518 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F.size149, ptr addrspace(11) align 8 %.F.size_ptr148, i64 8, i1 false), !dbg !518, !tbaa !171, !alias.scope !172, !noalias !173 %299 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %295), !dbg !520 %300 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %134), !dbg !521 %memory_ref147.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref147, 0, !dbg !522 %.F.ref139.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %.F.ref139, 0, !dbg !522 %.F.size149.unbox = load i64, ptr %.F.size149, align 8, !dbg !524, !tbaa !180, !alias.scope !182, !noalias !183 %301 = mul i64 %.F.size149.unbox, 8, !dbg !524 %302 = lshr i64 %301, 63, !dbg !525 %303 = select i1 false, i64 0, i64 %302, !dbg !525 %304 = trunc i64 %303 to i8, !dbg !525 %305 = icmp eq i8 %304, 1, !dbg !525 %306 = xor i1 %305, true, !dbg !393 br i1 %306, label %L184, label %L182, !dbg !393 after_error154: ; No predecessors! call void @llvm.trap(), !dbg !393 unreachable, !dbg !393 after_noret155: ; No predecessors! call void @llvm.trap(), !dbg !393 unreachable, !dbg !393 after_error163: ; No predecessors! call void @llvm.trap(), !dbg !219 unreachable, !dbg !219 after_noret164: ; No predecessors! call void @llvm.trap(), !dbg !219 unreachable, !dbg !219 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !196 unreachable, !dbg !196 after_noret166: ; No predecessors! call void @llvm.trap(), !dbg !196 unreachable, !dbg !196 } expectLen=2 swiftself=false sret=nothing returnRoots=nothing mi.specTypes.parameters=svec(Main.var"#muoptcontrol##1#muoptcontrol##2"{Main.Model, Float64}, Int64) retRemoved=false parmsRemoved=UInt64[] Stacktrace: [1] julia_activity_rule(f::LLVM.Function) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/rules/activityrules.jl:48 [2] handle_compiled(state::Enzyme.Compiler.HandlerState, edges::Vector{Any}, run_enzyme::Bool, mode::Enzyme.API.CDerivativeMode, world::UInt64, method_table::Compiler.OverlayMethodTable, custom::Dict{String, LLVM.API.LLVMLinkage}, mod::LLVM.Module, mi::Core.MethodInstance, k_name::String, rettype::Type) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:628 [3] set_module_types!(interp::Enzyme.Compiler.Interpreter.EnzymeInterpreter{Nothing}, mod::LLVM.Module, primalf::LLVM.Function, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}, edges::Vector{Any}, run_enzyme::Bool, mode::Enzyme.API.CDerivativeMode) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:1220 [4] compile_unhooked(output::Symbol, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:4627 [5] compile(target::Symbol, job::GPUCompiler.CompilerJob; kwargs::@Kwargs{}) @ GPUCompiler ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:67 [6] compile @ ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:55 [inlined] [7] _thunk(job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}, postopt::Bool) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5960 [8] _thunk @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5958 [inlined] [9] cached_compilation @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6015 [inlined] [10] thunkbase(mi::Core.MethodInstance, World::UInt64, FA::Type{<:Annotation}, A::Type{<:Annotation}, TT::Type, Mode::Enzyme.API.CDerivativeMode, width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, edges::Vector{Any}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6131 [11] thunk_generator(world::UInt64, source::Union{LineNumberNode, Method}, FA::Type, A::Type, TT::Type, Mode::Enzyme.API.CDerivativeMode, Width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, self::Any, fakeworld::Any, fa::Type, a::Type, tt::Type, mode::Type, width::Type, modifiedbetween::Type, returnprimal::Type, shadowinit::Type, abi::Type, erriffuncwritten::Type, runtimeactivity::Type, strongzero::Type) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6275 [12] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:502 [inlined] [13] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:562 [inlined] [14] muoptcontrol(scheme::Revolve{Nothing}, steps::Int64, snaps::Int64, verbose::Int64) @ Main ~/.julia/packages/Checkpointing/ZAoTt/examples/optcontrol.jl:74 [15] muoptcontrol(scheme::Revolve{Nothing}, steps::Int64, snaps::Int64) @ Main ~/.julia/packages/Checkpointing/ZAoTt/examples/optcontrol.jl:44 [16] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:37 [inlined] [17] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:2042 [inlined] [18] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:32 [inlined] [19] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [20] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:31 [inlined] [21] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [22] top-level scope @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:7 [23] include(mapexpr::Function, mod::Module, _path::String) @ Base ./Base.jl:310 [24] top-level scope @ none:6 [25] eval(m::Module, e::Any) @ Core ./boot.jl:489 [26] exec_options(opts::Base.JLOptions) @ Base ./client.jl:310 [27] _start() @ Base ./client.jl:577 scheme = Periodic: Error During Test at /home/pkgeval/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:32 Got exception outside of a @test AssertionError: Enzyme Internal Error (expectLen != length(parameters(f))) define internal void @julia_checkpoint_for_33902(ptr addrspace(11) nocapture noundef nonnull readonly align 8 dereferenceable(16) %"body::#muoptcontrol##1#muoptcontrol##2", ptr nocapture noundef nonnull readonly align 8 dereferenceable(8) %.roots.body, ptr addrspace(10) noundef nonnull align 8 dereferenceable(56) %"scheme::Periodic", ptr addrspace(11) nocapture noundef nonnull readonly align 8 dereferenceable(16) %"range::UnitRange") #4 !dbg !126 { top: %0 = alloca ptr addrspace(10), align 8 %pgcstack = call ptr @julia.get_pgcstack() call void @llvm.memset.p0.i64(ptr align 8 %0, i8 0, i64 8, i1 false), !tbaa !128, !alias.scope !132, !noalias !135 %1 = getelementptr inbounds i8, ptr %.roots.body, i32 0 %2 = load ptr addrspace(10), ptr %1, align 8, !tbaa !140, !alias.scope !142, !noalias !143 %"range::UnitRange.stop_ptr" = getelementptr inbounds i8, ptr addrspace(11) %"range::UnitRange", i32 8, !dbg !144 %"range::UnitRange.stop_ptr.unbox" = load i64, ptr addrspace(11) %"range::UnitRange.stop_ptr", align 8, !dbg !155, !tbaa !140, !alias.scope !142, !noalias !143 %"range::UnitRange.unbox" = load i64, ptr addrspace(11) %"range::UnitRange", align 8, !dbg !155, !tbaa !140, !alias.scope !142, !noalias !143 %3 = icmp slt i64 %"range::UnitRange.stop_ptr.unbox", %"range::UnitRange.unbox", !dbg !155 %4 = xor i1 %3, true, !dbg !152 br i1 %4, label %L6, label %L5, !dbg !152 L5: ; preds = %top br label %L9, !dbg !152 L6: ; preds = %top %5 = icmp ne ptr addrspace(11) %"range::UnitRange", null br i1 %5, label %guard_pass, label %guard_exit L9: ; preds = %guard_exit17, %L5 %value_phi = phi i8 [ 1, %L5 ], [ 0, %guard_exit17 ] %value_phi1 = phi i64 [ %guard_res12, %guard_exit17 ], [ undef, %L5 ] %value_phi2 = phi i64 [ %guard_res19, %guard_exit17 ], [ undef, %L5 ] %6 = trunc i8 %value_phi to i1, !dbg !154 %7 = xor i1 %6, true, !dbg !154 %8 = xor i1 %7, true, !dbg !154 br i1 %8, label %L29, label %L9.L14_crit_edge, !dbg !154 L9.L14_crit_edge: ; preds = %L9 br label %L14, !dbg !152 L14: ; preds = %L9.L14_crit_edge, %L28 %value_phi3 = phi i64 [ %value_phi1, %L9.L14_crit_edge ], [ %value_phi6, %L28 ] %value_phi4 = phi i64 [ %value_phi2, %L9.L14_crit_edge ], [ %value_phi7, %L28 ] %9 = getelementptr inbounds i8, ptr %0, i32 0, !dbg !159 store ptr addrspace(10) %2, ptr %9, align 8, !dbg !159 %10 = call double @julia__muoptcontrol__1_33905(ptr addrspace(11) nocapture readonly %"body::#muoptcontrol##1#muoptcontrol##2", ptr nocapture readonly %0, i64 signext %value_phi3), !dbg !159 %"range::UnitRange.stop_ptr5" = getelementptr inbounds i8, ptr addrspace(11) %"range::UnitRange", i32 8, !dbg !160 %"range::UnitRange.stop_ptr5.unbox" = load i64, ptr addrspace(11) %"range::UnitRange.stop_ptr5", align 8, !dbg !164, !tbaa !140, !alias.scope !142, !noalias !143 %11 = icmp eq i64 %value_phi4, %"range::UnitRange.stop_ptr5.unbox", !dbg !164 %12 = xor i1 %11, true, !dbg !162 br i1 %12, label %L21, label %L20, !dbg !162 L20: ; preds = %L14 br label %L23, !dbg !162 L21: ; preds = %L14 %13 = add i64 %value_phi4, 1, !dbg !166 br label %L23, !dbg !162 L23: ; preds = %L21, %L20 %value_phi6 = phi i64 [ %13, %L21 ], [ undef, %L20 ] %value_phi7 = phi i64 [ %13, %L21 ], [ undef, %L20 ] %value_phi8 = phi i8 [ 1, %L20 ], [ 0, %L21 ] %14 = trunc i8 %value_phi8 to i1, !dbg !163 %15 = xor i1 %14, true, !dbg !163 %16 = xor i1 %15, true, !dbg !163 br i1 %16, label %L29, label %L28, !dbg !163 L28: ; preds = %L23 br label %L14, !dbg !152 L29: ; preds = %L23, %L9 ret void, !dbg !169 guard_pass: ; preds = %L6 br label %guard_exit guard_exit: ; preds = %guard_pass, %L6 %guard_res = phi i1 [ false, %L6 ], [ true, %guard_pass ] br i1 %guard_res, label %guard_pass9, label %guard_exit10 guard_pass9: ; preds = %guard_exit %"range::UnitRange.unbox11" = load i64, ptr addrspace(11) %"range::UnitRange", align 8, !tbaa !140, !alias.scope !142, !noalias !143 br label %guard_exit10 guard_exit10: ; preds = %guard_pass9, %guard_exit %guard_res12 = phi i64 [ undef, %guard_exit ], [ %"range::UnitRange.unbox11", %guard_pass9 ] %17 = icmp ne ptr addrspace(11) %"range::UnitRange", null, !dbg !152 br i1 %17, label %guard_pass13, label %guard_exit14, !dbg !152 guard_pass13: ; preds = %guard_exit10 br label %guard_exit14, !dbg !152 guard_exit14: ; preds = %guard_pass13, %guard_exit10 %guard_res15 = phi i1 [ false, %guard_exit10 ], [ true, %guard_pass13 ], !dbg !152 br i1 %guard_res15, label %guard_pass16, label %guard_exit17, !dbg !152 guard_pass16: ; preds = %guard_exit14 %"range::UnitRange.unbox18" = load i64, ptr addrspace(11) %"range::UnitRange", align 8, !dbg !152, !tbaa !140, !alias.scope !142, !noalias !143 br label %guard_exit17, !dbg !152 guard_exit17: ; preds = %guard_pass16, %guard_exit14 %guard_res19 = phi i64 [ undef, %guard_exit14 ], [ %"range::UnitRange.unbox18", %guard_pass16 ], !dbg !152 br label %L9, !dbg !152 } expectLen=3 swiftself=false sret=nothing returnRoots=nothing mi.specTypes.parameters=svec(typeof(Checkpointing.checkpoint_for), Main.var"#muoptcontrol##1#muoptcontrol##2"{Main.Model, Float64}, Checkpointing.Periodic{Nothing}, UnitRange{Int64}) retRemoved=false parmsRemoved=UInt64[] Stacktrace: [1] julia_activity_rule(f::LLVM.Function) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/rules/activityrules.jl:48 [2] handle_compiled(state::Enzyme.Compiler.HandlerState, edges::Vector{Any}, run_enzyme::Bool, mode::Enzyme.API.CDerivativeMode, world::UInt64, method_table::Compiler.OverlayMethodTable, custom::Dict{String, LLVM.API.LLVMLinkage}, mod::LLVM.Module, mi::Core.MethodInstance, k_name::String, rettype::Type) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:628 [3] set_module_types!(interp::Enzyme.Compiler.Interpreter.EnzymeInterpreter{Nothing}, mod::LLVM.Module, primalf::LLVM.Function, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}, edges::Vector{Any}, run_enzyme::Bool, mode::Enzyme.API.CDerivativeMode) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:1220 [4] compile_unhooked(output::Symbol, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:4627 [5] compile(target::Symbol, job::GPUCompiler.CompilerJob; kwargs::@Kwargs{}) @ GPUCompiler ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:67 [6] compile @ ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:55 [inlined] [7] _thunk(job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}, postopt::Bool) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5960 [8] _thunk @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5958 [inlined] [9] cached_compilation @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6015 [inlined] [10] thunkbase(mi::Core.MethodInstance, World::UInt64, FA::Type{<:Annotation}, A::Type{<:Annotation}, TT::Type, Mode::Enzyme.API.CDerivativeMode, width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, edges::Vector{Any}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6131 [11] thunk_generator(world::UInt64, source::Union{LineNumberNode, Method}, FA::Type, A::Type, TT::Type, Mode::Enzyme.API.CDerivativeMode, Width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, self::Any, fakeworld::Any, fa::Type, a::Type, tt::Type, mode::Type, width::Type, modifiedbetween::Type, returnprimal::Type, shadowinit::Type, abi::Type, erriffuncwritten::Type, runtimeactivity::Type, strongzero::Type) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6275 [12] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:502 [inlined] [13] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:562 [inlined] [14] muoptcontrol(scheme::Periodic{Nothing}, steps::Int64, snaps::Int64, verbose::Int64) @ Main ~/.julia/packages/Checkpointing/ZAoTt/examples/optcontrol.jl:74 [15] muoptcontrol(scheme::Periodic{Nothing}, steps::Int64, snaps::Int64) @ Main ~/.julia/packages/Checkpointing/ZAoTt/examples/optcontrol.jl:44 [16] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:37 [inlined] [17] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:2042 [inlined] [18] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:32 [inlined] [19] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [20] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:31 [inlined] [21] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [22] top-level scope @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:7 [23] include(mapexpr::Function, mod::Module, _path::String) @ Base ./Base.jl:310 [24] top-level scope @ none:6 [25] eval(m::Module, e::Any) @ Core ./boot.jl:489 [26] exec_options(opts::Base.JLOptions) @ Base ./client.jl:310 [27] _start() @ Base ./client.jl:577 Revolve with verbose=0: Error During Test at /home/pkgeval/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:46 Got exception outside of a @test AssertionError: Enzyme Internal Error (expectLen != length(parameters(f))) ; Function Attrs: noinline noreturn define internal void @julia_throw_boundserror_34321(ptr addrspace(11) nocapture noundef nonnull readonly align 8 dereferenceable(32) %"A::Broadcasted", ptr nocapture noundef nonnull readonly align 8 dereferenceable(8) %.roots.A, ptr addrspace(11) nocapture noundef nonnull readonly align 8 dereferenceable(8) %"I::Tuple") #9 !dbg !50 { top: %pgcstack = call ptr @julia.get_pgcstack() %current_task = getelementptr inbounds i8, ptr %pgcstack, i32 -152 %ptls_field = getelementptr inbounds i8, ptr %current_task, i32 168 %ptls_load = load ptr, ptr %ptls_field, align 8, !tbaa !19 %0 = getelementptr inbounds i8, ptr %ptls_load, i32 16 %safepoint = load atomic ptr, ptr %0 monotonic, align 8, !tbaa !23 fence syncscope("singlethread") seq_cst call void @julia.safepoint(ptr %safepoint) fence syncscope("singlethread") seq_cst %1 = getelementptr inbounds i8, ptr %.roots.A, i32 0 %2 = load ptr addrspace(10), ptr %1, align 8, !tbaa !23, !alias.scope !26, !noalias !29 %"-Core.BoundsError#34287" = load ptr, ptr @_Core_BoundsError_34287, align 8, !dbg !51, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !45, !align !46 %3 = addrspacecast ptr %"-Core.BoundsError#34287" to ptr addrspace(10), !dbg !51 %"+Core.BoundsError#34288" = load ptr, ptr @_Core_BoundsError_34288, align 8, !dbg !51, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %4 = addrspacecast ptr %"+Core.BoundsError#34288" to ptr addrspace(10), !dbg !51 %"+Main.Base.Broadcast.Broadcasted#34323" = load ptr, ptr @_Main_Base_Broadcast_Broadcasted_34323, align 8, !dbg !51, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %Broadcasted = ptrtoint ptr %"+Main.Base.Broadcast.Broadcasted#34323" to i64, !dbg !51 %5 = inttoptr i64 %Broadcasted to ptr, !dbg !51 %current_task1 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !51 %6 = addrspacecast ptr %5 to ptr addrspace(10), !dbg !51 %"box::Broadcasted" = call noalias nonnull align 8 dereferenceable(32) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task1, i64 32, ptr addrspace(10) %6) #25, !dbg !51 %7 = addrspacecast ptr addrspace(10) %"box::Broadcasted" to ptr addrspace(11), !dbg !51 %8 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 0, !dbg !51 store atomic ptr addrspace(10) %2, ptr addrspace(11) %8 unordered, align 8, !dbg !51, !tbaa !36, !alias.scope !40, !noalias !41 %9 = getelementptr inbounds i8, ptr addrspace(11) %"A::Broadcasted", i32 8, !dbg !51 %10 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 8, !dbg !51 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %10, ptr addrspace(11) align 8 %9, i64 24, i1 false), !dbg !51, !tbaa !47, !alias.scope !48, !noalias !49 %"+Core.Tuple#34289" = load ptr, ptr @_Core_Tuple_34289, align 8, !dbg !51, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %Tuple = ptrtoint ptr %"+Core.Tuple#34289" to i64, !dbg !51 %11 = inttoptr i64 %Tuple to ptr, !dbg !51 %current_task2 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !51 %12 = addrspacecast ptr %11 to ptr addrspace(10), !dbg !51 %"box::Tuple" = call noalias nonnull align 8 dereferenceable(8) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task2, i64 8, ptr addrspace(10) %12) #25, !dbg !51 %13 = addrspacecast ptr addrspace(10) %"box::Tuple" to ptr addrspace(11), !dbg !51 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %13, ptr addrspace(11) align 8 %"I::Tuple", i64 8, i1 false), !dbg !51, !tbaa !47, !alias.scope !48, !noalias !49 %14 = call nonnull ptr addrspace(10) (ptr, ptr addrspace(10), ptr addrspace(10), ...) @julia.call2(ptr @ijl_invoke, ptr addrspace(10) %3, ptr addrspace(10) %4, ptr addrspace(10) %"box::Broadcasted", ptr addrspace(10) %"box::Tuple"), !dbg !51 %15 = addrspacecast ptr addrspace(10) %14 to ptr addrspace(12), !dbg !51 call void @ijl_throw(ptr addrspace(12) %15), !dbg !51 unreachable, !dbg !51 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !51 unreachable, !dbg !51 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !51 unreachable, !dbg !51 } expectLen=2 swiftself=false sret=nothing returnRoots=nothing mi.specTypes.parameters=svec(typeof(Base.throw_boundserror), Base.Broadcast.Broadcasted{Nothing, Tuple{Base.OneTo{Int64}}, typeof(identity), Tuple{Base.Broadcast.Extruded{Vector{Float64}, Tuple{Bool}, Tuple{Int64}}}}, Tuple{Int64}) retRemoved=false parmsRemoved=UInt64[] Stacktrace: [1] julia_activity_rule(f::LLVM.Function) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/rules/activityrules.jl:48 [2] handle_compiled(state::Enzyme.Compiler.HandlerState, edges::Vector{Any}, run_enzyme::Bool, mode::Enzyme.API.CDerivativeMode, world::UInt64, method_table::Compiler.OverlayMethodTable, custom::Dict{String, LLVM.API.LLVMLinkage}, mod::LLVM.Module, mi::Core.MethodInstance, k_name::String, rettype::Type) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:628 [3] set_module_types!(interp::Enzyme.Compiler.Interpreter.EnzymeInterpreter{Nothing}, mod::LLVM.Module, primalf::LLVM.Function, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}, edges::Vector{Any}, run_enzyme::Bool, mode::Enzyme.API.CDerivativeMode) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:1220 [4] compile_unhooked(output::Symbol, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:4627 [5] compile(target::Symbol, job::GPUCompiler.CompilerJob; kwargs::@Kwargs{}) @ GPUCompiler ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:67 [6] compile @ ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:55 [inlined] [7] _thunk(job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}, postopt::Bool) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5960 [8] _thunk @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5958 [inlined] [9] cached_compilation @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6015 [inlined] [10] thunkbase(mi::Core.MethodInstance, World::UInt64, FA::Type{<:Annotation}, A::Type{<:Annotation}, TT::Type, Mode::Enzyme.API.CDerivativeMode, width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, edges::Vector{Any}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6131 [11] thunk_generator(world::UInt64, source::Union{LineNumberNode, Method}, FA::Type, A::Type, TT::Type, Mode::Enzyme.API.CDerivativeMode, Width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, self::Any, fakeworld::Any, fa::Type, a::Type, tt::Type, mode::Type, width::Type, modifiedbetween::Type, returnprimal::Type, shadowinit::Type, abi::Type, erriffuncwritten::Type, runtimeactivity::Type, strongzero::Type) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6275 [12] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:502 [inlined] [13] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:562 [inlined] [14] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:534 [inlined] [15] heat(scheme::Revolve{Nothing}, tsteps::Int64) @ Main ~/.julia/packages/Checkpointing/ZAoTt/examples/heat.jl:63 [16] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:50 [inlined] [17] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:2042 [inlined] [18] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:46 [inlined] [19] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:2042 [inlined] [20] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:45 [inlined] [21] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [22] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:44 [inlined] [23] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [24] top-level scope @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:7 [25] include(mapexpr::Function, mod::Module, _path::String) @ Base ./Base.jl:310 [26] top-level scope @ none:6 [27] eval(m::Module, e::Any) @ Core ./boot.jl:489 [28] exec_options(opts::Base.JLOptions) @ Base ./client.jl:310 [29] _start() @ Base ./client.jl:577 [ Info: [Checkpointing] Number of checkpoints: 100 Revolve with verbose=1: Error During Test at /home/pkgeval/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:46 Got exception outside of a @test AssertionError: Enzyme Internal Error (expectLen != length(parameters(f))) ; Function Attrs: noinline noreturn define internal void @julia_throw_boundserror_34530(ptr addrspace(11) nocapture noundef nonnull readonly align 8 dereferenceable(32) %"A::Broadcasted", ptr nocapture noundef nonnull readonly align 8 dereferenceable(8) %.roots.A, ptr addrspace(11) nocapture noundef nonnull readonly align 8 dereferenceable(8) %"I::Tuple") #9 !dbg !50 { top: %pgcstack = call ptr @julia.get_pgcstack() %current_task = getelementptr inbounds i8, ptr %pgcstack, i32 -152 %ptls_field = getelementptr inbounds i8, ptr %current_task, i32 168 %ptls_load = load ptr, ptr %ptls_field, align 8, !tbaa !19 %0 = getelementptr inbounds i8, ptr %ptls_load, i32 16 %safepoint = load atomic ptr, ptr %0 monotonic, align 8, !tbaa !23 fence syncscope("singlethread") seq_cst call void @julia.safepoint(ptr %safepoint) fence syncscope("singlethread") seq_cst %1 = getelementptr inbounds i8, ptr %.roots.A, i32 0 %2 = load ptr addrspace(10), ptr %1, align 8, !tbaa !23, !alias.scope !26, !noalias !29 %"-Core.BoundsError#34496" = load ptr, ptr @_Core_BoundsError_34496, align 8, !dbg !51, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !45, !align !46 %3 = addrspacecast ptr %"-Core.BoundsError#34496" to ptr addrspace(10), !dbg !51 %"+Core.BoundsError#34497" = load ptr, ptr @_Core_BoundsError_34497, align 8, !dbg !51, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %4 = addrspacecast ptr %"+Core.BoundsError#34497" to ptr addrspace(10), !dbg !51 %"+Main.Base.Broadcast.Broadcasted#34532" = load ptr, ptr @_Main_Base_Broadcast_Broadcasted_34532, align 8, !dbg !51, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %Broadcasted = ptrtoint ptr %"+Main.Base.Broadcast.Broadcasted#34532" to i64, !dbg !51 %5 = inttoptr i64 %Broadcasted to ptr, !dbg !51 %current_task1 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !51 %6 = addrspacecast ptr %5 to ptr addrspace(10), !dbg !51 %"box::Broadcasted" = call noalias nonnull align 8 dereferenceable(32) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task1, i64 32, ptr addrspace(10) %6) #25, !dbg !51 %7 = addrspacecast ptr addrspace(10) %"box::Broadcasted" to ptr addrspace(11), !dbg !51 %8 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 0, !dbg !51 store atomic ptr addrspace(10) %2, ptr addrspace(11) %8 unordered, align 8, !dbg !51, !tbaa !36, !alias.scope !40, !noalias !41 %9 = getelementptr inbounds i8, ptr addrspace(11) %"A::Broadcasted", i32 8, !dbg !51 %10 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 8, !dbg !51 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %10, ptr addrspace(11) align 8 %9, i64 24, i1 false), !dbg !51, !tbaa !47, !alias.scope !48, !noalias !49 %"+Core.Tuple#34498" = load ptr, ptr @_Core_Tuple_34498, align 8, !dbg !51, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %Tuple = ptrtoint ptr %"+Core.Tuple#34498" to i64, !dbg !51 %11 = inttoptr i64 %Tuple to ptr, !dbg !51 %current_task2 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !51 %12 = addrspacecast ptr %11 to ptr addrspace(10), !dbg !51 %"box::Tuple" = call noalias nonnull align 8 dereferenceable(8) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task2, i64 8, ptr addrspace(10) %12) #25, !dbg !51 %13 = addrspacecast ptr addrspace(10) %"box::Tuple" to ptr addrspace(11), !dbg !51 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %13, ptr addrspace(11) align 8 %"I::Tuple", i64 8, i1 false), !dbg !51, !tbaa !47, !alias.scope !48, !noalias !49 %14 = call nonnull ptr addrspace(10) (ptr, ptr addrspace(10), ptr addrspace(10), ...) @julia.call2(ptr @ijl_invoke, ptr addrspace(10) %3, ptr addrspace(10) %4, ptr addrspace(10) %"box::Broadcasted", ptr addrspace(10) %"box::Tuple"), !dbg !51 %15 = addrspacecast ptr addrspace(10) %14 to ptr addrspace(12), !dbg !51 call void @ijl_throw(ptr addrspace(12) %15), !dbg !51 unreachable, !dbg !51 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !51 unreachable, !dbg !51 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !51 unreachable, !dbg !51 } expectLen=2 swiftself=false sret=nothing returnRoots=nothing mi.specTypes.parameters=svec(typeof(Base.throw_boundserror), Base.Broadcast.Broadcasted{Nothing, Tuple{Base.OneTo{Int64}}, typeof(identity), Tuple{Base.Broadcast.Extruded{Vector{Float64}, Tuple{Bool}, Tuple{Int64}}}}, Tuple{Int64}) retRemoved=false parmsRemoved=UInt64[] Stacktrace: [1] julia_activity_rule(f::LLVM.Function) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/rules/activityrules.jl:48 [2] handle_compiled(state::Enzyme.Compiler.HandlerState, edges::Vector{Any}, run_enzyme::Bool, mode::Enzyme.API.CDerivativeMode, world::UInt64, method_table::Compiler.OverlayMethodTable, custom::Dict{String, LLVM.API.LLVMLinkage}, mod::LLVM.Module, mi::Core.MethodInstance, k_name::String, rettype::Type) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:628 [3] set_module_types!(interp::Enzyme.Compiler.Interpreter.EnzymeInterpreter{Nothing}, mod::LLVM.Module, primalf::LLVM.Function, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}, edges::Vector{Any}, run_enzyme::Bool, mode::Enzyme.API.CDerivativeMode) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:1220 [4] compile_unhooked(output::Symbol, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:4627 [5] compile(target::Symbol, job::GPUCompiler.CompilerJob; kwargs::@Kwargs{}) @ GPUCompiler ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:67 [6] compile @ ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:55 [inlined] [7] _thunk(job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}, postopt::Bool) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5960 [8] _thunk @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5958 [inlined] [9] cached_compilation @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6015 [inlined] [10] thunkbase(mi::Core.MethodInstance, World::UInt64, FA::Type{<:Annotation}, A::Type{<:Annotation}, TT::Type, Mode::Enzyme.API.CDerivativeMode, width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, edges::Vector{Any}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6131 [11] thunk_generator(world::UInt64, source::Union{LineNumberNode, Method}, FA::Type, A::Type, TT::Type, Mode::Enzyme.API.CDerivativeMode, Width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, self::Any, fakeworld::Any, fa::Type, a::Type, tt::Type, mode::Type, width::Type, modifiedbetween::Type, returnprimal::Type, shadowinit::Type, abi::Type, erriffuncwritten::Type, runtimeactivity::Type, strongzero::Type) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6275 [12] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:502 [inlined] [13] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:562 [inlined] [14] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:534 [inlined] [15] heat(scheme::Revolve{Nothing}, tsteps::Int64) @ Main ~/.julia/packages/Checkpointing/ZAoTt/examples/heat.jl:63 [16] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:50 [inlined] [17] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:2042 [inlined] [18] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:46 [inlined] [19] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:2042 [inlined] [20] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:45 [inlined] [21] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [22] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:44 [inlined] [23] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [24] top-level scope @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:7 [25] include(mapexpr::Function, mod::Module, _path::String) @ Base ./Base.jl:310 [26] top-level scope @ none:6 [27] eval(m::Module, e::Any) @ Core ./boot.jl:489 [28] exec_options(opts::Base.JLOptions) @ Base ./client.jl:310 [29] _start() @ Base ./client.jl:577 Periodic with verbose=0: Error During Test at /home/pkgeval/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:46 Got exception outside of a @test AssertionError: Enzyme Internal Error (expectLen != length(parameters(f))) ; Function Attrs: noinline noreturn define internal void @julia_throw_boundserror_34743(ptr addrspace(11) nocapture noundef nonnull readonly align 8 dereferenceable(32) %"A::Broadcasted", ptr nocapture noundef nonnull readonly align 8 dereferenceable(8) %.roots.A, ptr addrspace(11) nocapture noundef nonnull readonly align 8 dereferenceable(8) %"I::Tuple") #9 !dbg !50 { top: %pgcstack = call ptr @julia.get_pgcstack() %current_task = getelementptr inbounds i8, ptr %pgcstack, i32 -152 %ptls_field = getelementptr inbounds i8, ptr %current_task, i32 168 %ptls_load = load ptr, ptr %ptls_field, align 8, !tbaa !19 %0 = getelementptr inbounds i8, ptr %ptls_load, i32 16 %safepoint = load atomic ptr, ptr %0 monotonic, align 8, !tbaa !23 fence syncscope("singlethread") seq_cst call void @julia.safepoint(ptr %safepoint) fence syncscope("singlethread") seq_cst %1 = getelementptr inbounds i8, ptr %.roots.A, i32 0 %2 = load ptr addrspace(10), ptr %1, align 8, !tbaa !23, !alias.scope !26, !noalias !29 %"-Core.BoundsError#34709" = load ptr, ptr @_Core_BoundsError_34709, align 8, !dbg !51, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !45, !align !46 %3 = addrspacecast ptr %"-Core.BoundsError#34709" to ptr addrspace(10), !dbg !51 %"+Core.BoundsError#34710" = load ptr, ptr @_Core_BoundsError_34710, align 8, !dbg !51, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %4 = addrspacecast ptr %"+Core.BoundsError#34710" to ptr addrspace(10), !dbg !51 %"+Main.Base.Broadcast.Broadcasted#34745" = load ptr, ptr @_Main_Base_Broadcast_Broadcasted_34745, align 8, !dbg !51, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %Broadcasted = ptrtoint ptr %"+Main.Base.Broadcast.Broadcasted#34745" to i64, !dbg !51 %5 = inttoptr i64 %Broadcasted to ptr, !dbg !51 %current_task1 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !51 %6 = addrspacecast ptr %5 to ptr addrspace(10), !dbg !51 %"box::Broadcasted" = call noalias nonnull align 8 dereferenceable(32) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task1, i64 32, ptr addrspace(10) %6) #25, !dbg !51 %7 = addrspacecast ptr addrspace(10) %"box::Broadcasted" to ptr addrspace(11), !dbg !51 %8 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 0, !dbg !51 store atomic ptr addrspace(10) %2, ptr addrspace(11) %8 unordered, align 8, !dbg !51, !tbaa !36, !alias.scope !40, !noalias !41 %9 = getelementptr inbounds i8, ptr addrspace(11) %"A::Broadcasted", i32 8, !dbg !51 %10 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 8, !dbg !51 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %10, ptr addrspace(11) align 8 %9, i64 24, i1 false), !dbg !51, !tbaa !47, !alias.scope !48, !noalias !49 %"+Core.Tuple#34711" = load ptr, ptr @_Core_Tuple_34711, align 8, !dbg !51, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %Tuple = ptrtoint ptr %"+Core.Tuple#34711" to i64, !dbg !51 %11 = inttoptr i64 %Tuple to ptr, !dbg !51 %current_task2 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !51 %12 = addrspacecast ptr %11 to ptr addrspace(10), !dbg !51 %"box::Tuple" = call noalias nonnull align 8 dereferenceable(8) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task2, i64 8, ptr addrspace(10) %12) #25, !dbg !51 %13 = addrspacecast ptr addrspace(10) %"box::Tuple" to ptr addrspace(11), !dbg !51 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %13, ptr addrspace(11) align 8 %"I::Tuple", i64 8, i1 false), !dbg !51, !tbaa !47, !alias.scope !48, !noalias !49 %14 = call nonnull ptr addrspace(10) (ptr, ptr addrspace(10), ptr addrspace(10), ...) @julia.call2(ptr @ijl_invoke, ptr addrspace(10) %3, ptr addrspace(10) %4, ptr addrspace(10) %"box::Broadcasted", ptr addrspace(10) %"box::Tuple"), !dbg !51 %15 = addrspacecast ptr addrspace(10) %14 to ptr addrspace(12), !dbg !51 call void @ijl_throw(ptr addrspace(12) %15), !dbg !51 unreachable, !dbg !51 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !51 unreachable, !dbg !51 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !51 unreachable, !dbg !51 } expectLen=2 swiftself=false sret=nothing returnRoots=nothing mi.specTypes.parameters=svec(typeof(Base.throw_boundserror), Base.Broadcast.Broadcasted{Nothing, Tuple{Base.OneTo{Int64}}, typeof(identity), Tuple{Base.Broadcast.Extruded{Vector{Float64}, Tuple{Bool}, Tuple{Int64}}}}, Tuple{Int64}) retRemoved=false parmsRemoved=UInt64[] Stacktrace: [1] julia_activity_rule(f::LLVM.Function) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/rules/activityrules.jl:48 [2] handle_compiled(state::Enzyme.Compiler.HandlerState, edges::Vector{Any}, run_enzyme::Bool, mode::Enzyme.API.CDerivativeMode, world::UInt64, method_table::Compiler.OverlayMethodTable, custom::Dict{String, LLVM.API.LLVMLinkage}, mod::LLVM.Module, mi::Core.MethodInstance, k_name::String, rettype::Type) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:628 [3] set_module_types!(interp::Enzyme.Compiler.Interpreter.EnzymeInterpreter{Nothing}, mod::LLVM.Module, primalf::LLVM.Function, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}, edges::Vector{Any}, run_enzyme::Bool, mode::Enzyme.API.CDerivativeMode) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:1220 [4] compile_unhooked(output::Symbol, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:4627 [5] compile(target::Symbol, job::GPUCompiler.CompilerJob; kwargs::@Kwargs{}) @ GPUCompiler ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:67 [6] compile @ ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:55 [inlined] [7] _thunk(job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}, postopt::Bool) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5960 [8] _thunk @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5958 [inlined] [9] cached_compilation @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6015 [inlined] [10] thunkbase(mi::Core.MethodInstance, World::UInt64, FA::Type{<:Annotation}, A::Type{<:Annotation}, TT::Type, Mode::Enzyme.API.CDerivativeMode, width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, edges::Vector{Any}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6131 [11] thunk_generator(world::UInt64, source::Union{LineNumberNode, Method}, FA::Type, A::Type, TT::Type, Mode::Enzyme.API.CDerivativeMode, Width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, self::Any, fakeworld::Any, fa::Type, a::Type, tt::Type, mode::Type, width::Type, modifiedbetween::Type, returnprimal::Type, shadowinit::Type, abi::Type, erriffuncwritten::Type, runtimeactivity::Type, strongzero::Type) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6275 [12] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:502 [inlined] [13] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:562 [inlined] [14] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:534 [inlined] [15] heat(scheme::Periodic{Nothing}, tsteps::Int64) @ Main ~/.julia/packages/Checkpointing/ZAoTt/examples/heat.jl:63 [16] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:50 [inlined] [17] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:2042 [inlined] [18] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:46 [inlined] [19] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:2042 [inlined] [20] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:45 [inlined] [21] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [22] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:44 [inlined] [23] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [24] top-level scope @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:7 [25] include(mapexpr::Function, mod::Module, _path::String) @ Base ./Base.jl:310 [26] top-level scope @ none:6 [27] eval(m::Module, e::Any) @ Core ./boot.jl:489 [28] exec_options(opts::Base.JLOptions) @ Base ./client.jl:310 [29] _start() @ Base ./client.jl:577 [ Info: [Checkpointing] Periodic checkpointing with 100 checkpoints and period 0 Periodic with verbose=1: Error During Test at /home/pkgeval/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:46 Got exception outside of a @test AssertionError: Enzyme Internal Error (expectLen != length(parameters(f))) ; Function Attrs: noinline noreturn define internal void @julia_throw_boundserror_34805(ptr addrspace(11) nocapture noundef nonnull readonly align 8 dereferenceable(32) %"A::Broadcasted", ptr nocapture noundef nonnull readonly align 8 dereferenceable(8) %.roots.A, ptr addrspace(11) nocapture noundef nonnull readonly align 8 dereferenceable(8) %"I::Tuple") #9 !dbg !50 { top: %pgcstack = call ptr @julia.get_pgcstack() %current_task = getelementptr inbounds i8, ptr %pgcstack, i32 -152 %ptls_field = getelementptr inbounds i8, ptr %current_task, i32 168 %ptls_load = load ptr, ptr %ptls_field, align 8, !tbaa !19 %0 = getelementptr inbounds i8, ptr %ptls_load, i32 16 %safepoint = load atomic ptr, ptr %0 monotonic, align 8, !tbaa !23 fence syncscope("singlethread") seq_cst call void @julia.safepoint(ptr %safepoint) fence syncscope("singlethread") seq_cst %1 = getelementptr inbounds i8, ptr %.roots.A, i32 0 %2 = load ptr addrspace(10), ptr %1, align 8, !tbaa !23, !alias.scope !26, !noalias !29 %"-Core.BoundsError#34771" = load ptr, ptr @_Core_BoundsError_34771, align 8, !dbg !51, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !45, !align !46 %3 = addrspacecast ptr %"-Core.BoundsError#34771" to ptr addrspace(10), !dbg !51 %"+Core.BoundsError#34772" = load ptr, ptr @_Core_BoundsError_34772, align 8, !dbg !51, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %4 = addrspacecast ptr %"+Core.BoundsError#34772" to ptr addrspace(10), !dbg !51 %"+Main.Base.Broadcast.Broadcasted#34807" = load ptr, ptr @_Main_Base_Broadcast_Broadcasted_34807, align 8, !dbg !51, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %Broadcasted = ptrtoint ptr %"+Main.Base.Broadcast.Broadcasted#34807" to i64, !dbg !51 %5 = inttoptr i64 %Broadcasted to ptr, !dbg !51 %current_task1 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !51 %6 = addrspacecast ptr %5 to ptr addrspace(10), !dbg !51 %"box::Broadcasted" = call noalias nonnull align 8 dereferenceable(32) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task1, i64 32, ptr addrspace(10) %6) #25, !dbg !51 %7 = addrspacecast ptr addrspace(10) %"box::Broadcasted" to ptr addrspace(11), !dbg !51 %8 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 0, !dbg !51 store atomic ptr addrspace(10) %2, ptr addrspace(11) %8 unordered, align 8, !dbg !51, !tbaa !36, !alias.scope !40, !noalias !41 %9 = getelementptr inbounds i8, ptr addrspace(11) %"A::Broadcasted", i32 8, !dbg !51 %10 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 8, !dbg !51 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %10, ptr addrspace(11) align 8 %9, i64 24, i1 false), !dbg !51, !tbaa !47, !alias.scope !48, !noalias !49 %"+Core.Tuple#34773" = load ptr, ptr @_Core_Tuple_34773, align 8, !dbg !51, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %Tuple = ptrtoint ptr %"+Core.Tuple#34773" to i64, !dbg !51 %11 = inttoptr i64 %Tuple to ptr, !dbg !51 %current_task2 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !51 %12 = addrspacecast ptr %11 to ptr addrspace(10), !dbg !51 %"box::Tuple" = call noalias nonnull align 8 dereferenceable(8) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task2, i64 8, ptr addrspace(10) %12) #25, !dbg !51 %13 = addrspacecast ptr addrspace(10) %"box::Tuple" to ptr addrspace(11), !dbg !51 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %13, ptr addrspace(11) align 8 %"I::Tuple", i64 8, i1 false), !dbg !51, !tbaa !47, !alias.scope !48, !noalias !49 %14 = call nonnull ptr addrspace(10) (ptr, ptr addrspace(10), ptr addrspace(10), ...) @julia.call2(ptr @ijl_invoke, ptr addrspace(10) %3, ptr addrspace(10) %4, ptr addrspace(10) %"box::Broadcasted", ptr addrspace(10) %"box::Tuple"), !dbg !51 %15 = addrspacecast ptr addrspace(10) %14 to ptr addrspace(12), !dbg !51 call void @ijl_throw(ptr addrspace(12) %15), !dbg !51 unreachable, !dbg !51 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !51 unreachable, !dbg !51 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !51 unreachable, !dbg !51 } expectLen=2 swiftself=false sret=nothing returnRoots=nothing mi.specTypes.parameters=svec(typeof(Base.throw_boundserror), Base.Broadcast.Broadcasted{Nothing, Tuple{Base.OneTo{Int64}}, typeof(identity), Tuple{Base.Broadcast.Extruded{Vector{Float64}, Tuple{Bool}, Tuple{Int64}}}}, Tuple{Int64}) retRemoved=false parmsRemoved=UInt64[] Stacktrace: [1] julia_activity_rule(f::LLVM.Function) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/rules/activityrules.jl:48 [2] handle_compiled(state::Enzyme.Compiler.HandlerState, edges::Vector{Any}, run_enzyme::Bool, mode::Enzyme.API.CDerivativeMode, world::UInt64, method_table::Compiler.OverlayMethodTable, custom::Dict{String, LLVM.API.LLVMLinkage}, mod::LLVM.Module, mi::Core.MethodInstance, k_name::String, rettype::Type) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:628 [3] set_module_types!(interp::Enzyme.Compiler.Interpreter.EnzymeInterpreter{Nothing}, mod::LLVM.Module, primalf::LLVM.Function, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}, edges::Vector{Any}, run_enzyme::Bool, mode::Enzyme.API.CDerivativeMode) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:1220 [4] compile_unhooked(output::Symbol, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:4627 [5] compile(target::Symbol, job::GPUCompiler.CompilerJob; kwargs::@Kwargs{}) @ GPUCompiler ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:67 [6] compile @ ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:55 [inlined] [7] _thunk(job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}, postopt::Bool) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5960 [8] _thunk @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5958 [inlined] [9] cached_compilation @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6015 [inlined] [10] thunkbase(mi::Core.MethodInstance, World::UInt64, FA::Type{<:Annotation}, A::Type{<:Annotation}, TT::Type, Mode::Enzyme.API.CDerivativeMode, width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, edges::Vector{Any}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6131 [11] thunk_generator(world::UInt64, source::Union{LineNumberNode, Method}, FA::Type, A::Type, TT::Type, Mode::Enzyme.API.CDerivativeMode, Width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, self::Any, fakeworld::Any, fa::Type, a::Type, tt::Type, mode::Type, width::Type, modifiedbetween::Type, returnprimal::Type, shadowinit::Type, abi::Type, erriffuncwritten::Type, runtimeactivity::Type, strongzero::Type) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6275 [12] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:502 [inlined] [13] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:562 [inlined] [14] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:534 [inlined] [15] heat(scheme::Periodic{Nothing}, tsteps::Int64) @ Main ~/.julia/packages/Checkpointing/ZAoTt/examples/heat.jl:63 [16] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:50 [inlined] [17] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:2042 [inlined] [18] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:46 [inlined] [19] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:2042 [inlined] [20] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:45 [inlined] [21] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [22] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:44 [inlined] [23] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [24] top-level scope @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:7 [25] include(mapexpr::Function, mod::Module, _path::String) @ Base ./Base.jl:310 [26] top-level scope @ none:6 [27] eval(m::Module, e::Any) @ Core ./boot.jl:489 [28] exec_options(opts::Base.JLOptions) @ Base ./client.jl:310 [29] _start() @ Base ./client.jl:577 Online_r2 with verbose=0: Error During Test at /home/pkgeval/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:46 Got exception outside of a @test AssertionError: Enzyme Internal Error (expectLen != length(parameters(f))) define internal i8 @julia__sumheat__2_35036(ptr addrspace(11) nocapture noundef nonnull readonly align 8 dereferenceable(16) %"#self#::#sumheat##2#sumheat##3", ptr nocapture noundef nonnull readonly align 8 dereferenceable(8) %".roots.#self#") #9 !dbg !50 { top: %.Tlast.size = alloca i64, align 8 %"new::OneTo" = alloca [1 x i64], align 8 %"new::Tuple" = alloca [1 x [1 x i64]], align 8 %.Tnext.size = alloca i64, align 8 %.Tlast.size2 = alloca i64, align 8 %"new::Tuple4" = alloca [1 x [1 x i64]], align 8 %.Tnext.size8 = alloca i64, align 8 %.Tnext.size12 = alloca i64, align 8 %.Tlast15.size = alloca i64, align 8 %.Tlast15.size28 = alloca i64, align 8 %.Tlast15.size57 = alloca i64, align 8 %.Tlast15.size86 = alloca i64, align 8 %.Tnext13.size = alloca i64, align 8 %"new::Tuple146" = alloca [1 x i64], align 8 %"new::Tuple147" = alloca [1 x i64], align 8 %"new::Tuple150" = alloca [1 x i64], align 8 %"new::Tuple153" = alloca [1 x i64], align 8 %"new::Tuple156" = alloca [1 x i64], align 8 %"new::Tuple162" = alloca [1 x [2 x i64]], align 8 %.Tlast.size164 = alloca i64, align 8 %"new::Tuple169" = alloca [1 x [2 x i64]], align 8 %.Tnext.size171 = alloca i64, align 8 %value_phi219.size = alloca i64, align 8 %"new::Tuple220" = alloca [1 x i8], align 1 %"new::Extruded" = alloca [3 x i64], align 8 %"new::Tuple221" = alloca [3 x i64], align 8 %"new::Broadcasted" = alloca [4 x i64], align 8 %"new::Tuple225" = alloca [1 x i64], align 8 %value_phi219.size229 = alloca i64, align 8 %.Tlast.size257 = alloca i64, align 8 %"new::Tuple285" = alloca [1 x i64], align 8 %"new::Tuple288" = alloca [1 x i64], align 8 %"new::Tuple291" = alloca [1 x i64], align 8 %0 = alloca ptr addrspace(10), align 8 %.Tlast.size297 = alloca i64, align 8 %.Tnext.size299 = alloca i64, align 8 %.Tnext.size308 = alloca i64, align 8 %.Tnext.size316 = alloca i64, align 8 %.Tnext.size327 = alloca i64, align 8 %pgcstack = call ptr @julia.get_pgcstack() call void @llvm.memset.p0.i64(ptr align 8 %0, i8 0, i64 8, i1 false), !tbaa !19, !alias.scope !52, !noalias !53 %current_task = getelementptr inbounds i8, ptr %pgcstack, i32 -152 %ptls_field = getelementptr inbounds i8, ptr %current_task, i32 168 %ptls_load = load ptr, ptr %ptls_field, align 8, !tbaa !19 %1 = getelementptr inbounds i8, ptr %ptls_load, i32 16 %safepoint = load atomic ptr, ptr %1 monotonic, align 8, !tbaa !23 fence syncscope("singlethread") seq_cst call void @julia.safepoint(ptr %safepoint) fence syncscope("singlethread") seq_cst %2 = getelementptr inbounds i8, ptr %".roots.#self#", i32 0 %3 = load ptr addrspace(10), ptr %2, align 8, !tbaa !23, !alias.scope !26, !noalias !29 %4 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !54 %.Tlast_ptr = getelementptr inbounds i8, ptr addrspace(11) %4, i32 8, !dbg !54 %.Tlast = load atomic ptr addrspace(10), ptr addrspace(11) %.Tlast_ptr unordered, align 8, !dbg !54, !tbaa !63, !alias.scope !40, !noalias !41, !nonnull !0, !dereferenceable !65, !align !46 %5 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !66 %.Tnext = load atomic ptr addrspace(10), ptr addrspace(11) %5 unordered, align 8, !dbg !66, !tbaa !63, !alias.scope !40, !noalias !41, !nonnull !0, !dereferenceable !65, !align !46 %6 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !67 %.Tlast.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %6, i32 16, !dbg !67 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tlast.size, ptr addrspace(11) align 8 %.Tlast.size_ptr, i64 8, i1 false), !dbg !67, !tbaa !47, !alias.scope !76, !noalias !77 %7 = getelementptr inbounds i8, ptr %"new::OneTo", i32 0, !dbg !78 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %7, ptr align 8 %.Tlast.size, i64 8, i1 false), !dbg !78, !tbaa !84, !alias.scope !86, !noalias !87 %8 = getelementptr inbounds i8, ptr %"new::Tuple", i32 0, !dbg !81 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %8, ptr align 8 %"new::OneTo", i64 8, i1 false), !dbg !81, !tbaa !84, !alias.scope !86, !noalias !87 %9 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !88 %.Tnext.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %9, i32 16, !dbg !88 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tnext.size, ptr addrspace(11) align 8 %.Tnext.size_ptr, i64 8, i1 false), !dbg !88, !tbaa !47, !alias.scope !76, !noalias !77 %.Tlast.size.unbox = load i64, ptr %.Tlast.size, align 8, !dbg !94, !tbaa !84, !alias.scope !86, !noalias !87 %.Tnext.size.unbox = load i64, ptr %.Tnext.size, align 8, !dbg !94, !tbaa !84, !alias.scope !86, !noalias !87 %10 = icmp eq i64 %.Tlast.size.unbox, %.Tnext.size.unbox, !dbg !94 %11 = xor i1 %10, true, !dbg !99 br i1 %11, label %L16, label %L15, !dbg !99 L15: ; preds = %top %12 = zext i1 %10 to i8 br label %L18, !dbg !99 L16: ; preds = %top %.Tnext.size.unbox334 = load i64, ptr %.Tnext.size, align 8, !dbg !103, !tbaa !84, !alias.scope !86, !noalias !87 %13 = icmp eq i64 %.Tnext.size.unbox334, 1, !dbg !103 %14 = zext i1 %13 to i8 br label %L18, !dbg !103 L18: ; preds = %L16, %L15 %value_phi = phi i8 [ %12, %L15 ], [ %14, %L16 ] %15 = trunc i8 %value_phi to i1, !dbg !101 %16 = xor i1 %15, true, !dbg !101 br i1 %16, label %L21, label %L20, !dbg !101 L20: ; preds = %L18 br label %L24, !dbg !101 L21: ; preds = %L18 %"jl_global#35052" = load ptr, ptr @jl_global_35052, align 8, !dbg !101, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %17 = addrspacecast ptr %"jl_global#35052" to ptr addrspace(10), !dbg !101 %18 = call [1 x ptr addrspace(10)] @julia_DimensionMismatch_35073(ptr addrspace(10) %17), !dbg !101 %"+Main.Base.DimensionMismatch#35053" = load ptr, ptr @_Main_Base_DimensionMismatch_35053, align 8, !dbg !101, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %DimensionMismatch = ptrtoint ptr %"+Main.Base.DimensionMismatch#35053" to i64, !dbg !101 %19 = inttoptr i64 %DimensionMismatch to ptr, !dbg !101 %current_task332 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !101 %20 = addrspacecast ptr %19 to ptr addrspace(10), !dbg !101 %"box::DimensionMismatch" = call noalias nonnull align 8 dereferenceable(8) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task332, i64 8, ptr addrspace(10) %20) #25, !dbg !101 %21 = addrspacecast ptr addrspace(10) %"box::DimensionMismatch" to ptr addrspace(11), !dbg !101 store [1 x ptr addrspace(10)] %18, ptr addrspace(11) %21, align 8, !dbg !101, !tbaa !36, !alias.scope !40, !noalias !41 %22 = addrspacecast ptr addrspace(10) %"box::DimensionMismatch" to ptr addrspace(12), !dbg !101 call void @ijl_throw(ptr addrspace(12) %22), !dbg !101 unreachable, !dbg !101 L24: ; preds = %L20 br label %L25, !dbg !101 L25: ; preds = %L24 br label %L26, !dbg !104 L26: ; preds = %L25 %23 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !105 %.Tlast.size_ptr1 = getelementptr inbounds i8, ptr addrspace(11) %23, i32 16, !dbg !105 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tlast.size2, ptr addrspace(11) align 8 %.Tlast.size_ptr1, i64 8, i1 false), !dbg !105, !tbaa !47, !alias.scope !76, !noalias !77 %24 = getelementptr inbounds i8, ptr %"new::Tuple4", i32 0, !dbg !112 %25 = getelementptr inbounds i8, ptr %24, i32 0, !dbg !112 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %25, ptr align 8 %.Tlast.size2, i64 8, i1 false), !dbg !112, !tbaa !84, !alias.scope !86, !noalias !87 %.Tlast.size2.unbox = load i64, ptr %.Tlast.size2, align 8, !dbg !114, !tbaa !84, !alias.scope !86, !noalias !87 %.Tlast.size.unbox5 = load i64, ptr %.Tlast.size, align 8, !dbg !114, !tbaa !84, !alias.scope !86, !noalias !87 %26 = icmp eq i64 %.Tlast.size2.unbox, %.Tlast.size.unbox5, !dbg !114 %27 = zext i1 %26 to i8, !dbg !121 %28 = icmp eq i8 %27, 0, !dbg !121 %29 = xor i1 %28, true, !dbg !121 br i1 %29, label %L35, label %L34, !dbg !121 L34: ; preds = %L26 br label %L36, !dbg !122 L35: ; preds = %L26 br label %L36, !dbg !123 L36: ; preds = %L35, %L34 %value_phi6 = phi i8 [ 0, %L34 ], [ 1, %L35 ] br label %L38, !dbg !118 L38: ; preds = %L36 %30 = trunc i8 %value_phi6 to i1, !dbg !120 %31 = xor i1 %30, true, !dbg !120 br i1 %31, label %L284, label %L39, !dbg !120 L39: ; preds = %L38 %32 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !124 %.Tnext.size_ptr7 = getelementptr inbounds i8, ptr addrspace(11) %32, i32 16, !dbg !124 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tnext.size8, ptr addrspace(11) align 8 %.Tnext.size_ptr7, i64 8, i1 false), !dbg !124, !tbaa !47, !alias.scope !76, !noalias !77 %.Tlast.size2.unbox9 = load i64, ptr %.Tlast.size2, align 8, !dbg !127, !tbaa !84, !alias.scope !86, !noalias !87 %.Tnext.size8.unbox = load i64, ptr %.Tnext.size8, align 8, !dbg !127, !tbaa !84, !alias.scope !86, !noalias !87 %33 = icmp eq i64 %.Tlast.size2.unbox9, %.Tnext.size8.unbox, !dbg !127 %34 = zext i1 %33 to i8, !dbg !131 %35 = icmp eq i8 %34, 0, !dbg !131 %36 = xor i1 %35, true, !dbg !131 br i1 %36, label %L46, label %L45, !dbg !131 L45: ; preds = %L39 br label %L47, !dbg !132 L46: ; preds = %L39 br label %L47, !dbg !133 L47: ; preds = %L46, %L45 %value_phi10 = phi i8 [ 0, %L45 ], [ 1, %L46 ] br label %L49, !dbg !130 L49: ; preds = %L47 %37 = trunc i8 %value_phi10 to i1, !dbg !126 %38 = xor i1 %37, true, !dbg !126 br i1 %38, label %L137, label %L50, !dbg !126 L50: ; preds = %L49 %39 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !134 %.Tnext.size_ptr11 = getelementptr inbounds i8, ptr addrspace(11) %39, i32 16, !dbg !134 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tnext.size12, ptr addrspace(11) align 8 %.Tnext.size_ptr11, i64 8, i1 false), !dbg !134, !tbaa !47, !alias.scope !76, !noalias !77 %.Tnext.size12.unbox = load i64, ptr %.Tnext.size12, align 8, !dbg !142, !tbaa !84, !alias.scope !86, !noalias !87 %40 = icmp eq i64 %.Tnext.size12.unbox, 0, !dbg !142 %41 = xor i1 %40, true, !dbg !143 br i1 %41, label %L55, label %L54, !dbg !143 L54: ; preds = %L50 br label %L133, !dbg !143 L55: ; preds = %L50 %.Tnext.size12.unbox159 = load i64, ptr %.Tnext.size12, align 8, !dbg !146, !tbaa !84, !alias.scope !86, !noalias !87 %42 = icmp slt i64 0, %.Tnext.size12.unbox159, !dbg !146 %43 = xor i1 %42, true, !dbg !152 br i1 %43, label %L131, label %L57, !dbg !152 L57: ; preds = %L55 br i1 false, label %L81, label %L59, !dbg !153 L59: ; preds = %L57 %.Tnext.size12.unbox160 = load i64, ptr %.Tnext.size12, align 8, !dbg !154, !tbaa !84, !alias.scope !86, !noalias !87 %44 = add i64 1, %.Tnext.size12.unbox160, !dbg !154 %45 = sub i64 %44, 1, !dbg !156 %46 = icmp sle i64 1, %45, !dbg !158 %47 = xor i1 %46, true, !dbg !162 br i1 %47, label %L64, label %L63, !dbg !162 L63: ; preds = %L59 br label %L65, !dbg !168 L64: ; preds = %L59 br label %L65, !dbg !168 L65: ; preds = %L64, %L63 %value_phi161 = phi i64 [ %45, %L63 ], [ 0, %L64 ] %48 = getelementptr inbounds i8, ptr %"new::Tuple162", i32 0, !dbg !164 %49 = getelementptr inbounds i8, ptr %48, i32 0, !dbg !164 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %49, ptr align 8 @_j_const_1, i64 8, i1 false), !dbg !164, !tbaa !47, !alias.scope !173, !noalias !174 %50 = getelementptr inbounds i8, ptr %48, i32 8, !dbg !164 store i64 %value_phi161, ptr %50, align 8, !dbg !164, !tbaa !84, !alias.scope !86, !noalias !87 %51 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !175 %.Tlast.size_ptr163 = getelementptr inbounds i8, ptr addrspace(11) %51, i32 16, !dbg !175 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tlast.size164, ptr addrspace(11) align 8 %.Tlast.size_ptr163, i64 8, i1 false), !dbg !175, !tbaa !47, !alias.scope !76, !noalias !77 %52 = icmp slt i64 %value_phi161, 1, !dbg !182 %bitcast165 = load i64, ptr %.Tlast.size164, align 8, !dbg !188, !tbaa !84, !alias.scope !86, !noalias !87 %53 = icmp ult i64 0, %bitcast165, !dbg !193 %54 = sub i64 %value_phi161, 1, !dbg !194 %bitcast166 = load i64, ptr %.Tlast.size164, align 8, !dbg !188, !tbaa !84, !alias.scope !86, !noalias !87 %55 = icmp ult i64 %54, %bitcast166, !dbg !193 %56 = and i1 %53, %55, !dbg !195 %57 = or i1 %52, %56, !dbg !198 %58 = xor i1 %57, true, !dbg !181 br i1 %58, label %L88, label %L80, !dbg !181 L80: ; preds = %L65 br label %L81, !dbg !181 L81: ; preds = %L80, %L57 br i1 false, label %L107, label %L83, !dbg !200 L83: ; preds = %L81 %.Tnext.size12.unbox167 = load i64, ptr %.Tnext.size12, align 8, !dbg !201, !tbaa !84, !alias.scope !86, !noalias !87 %59 = add i64 1, %.Tnext.size12.unbox167, !dbg !201 %60 = sub i64 %59, 1, !dbg !202 %61 = icmp sle i64 1, %60, !dbg !203 %62 = xor i1 %61, true, !dbg !205 br i1 %62, label %L90, label %L87, !dbg !205 L87: ; preds = %L83 br label %L91, !dbg !168 L88: ; preds = %L65 %63 = addrspacecast ptr %"new::Tuple162" to ptr addrspace(11), !dbg !181 call void @julia_throw_boundserror_35069(ptr addrspace(10) %.Tlast, ptr addrspace(11) nocapture readonly %63) #26, !dbg !181 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !181 unreachable, !dbg !181 L90: ; preds = %L83 br label %L91, !dbg !168 L91: ; preds = %L90, %L87 %value_phi168 = phi i64 [ %60, %L87 ], [ 0, %L90 ] %64 = getelementptr inbounds i8, ptr %"new::Tuple169", i32 0, !dbg !206 %65 = getelementptr inbounds i8, ptr %64, i32 0, !dbg !206 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %65, ptr align 8 @_j_const_1, i64 8, i1 false), !dbg !206, !tbaa !47, !alias.scope !173, !noalias !174 %66 = getelementptr inbounds i8, ptr %64, i32 8, !dbg !206 store i64 %value_phi168, ptr %66, align 8, !dbg !206, !tbaa !84, !alias.scope !86, !noalias !87 %67 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !208 %.Tnext.size_ptr170 = getelementptr inbounds i8, ptr addrspace(11) %67, i32 16, !dbg !208 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tnext.size171, ptr addrspace(11) align 8 %.Tnext.size_ptr170, i64 8, i1 false), !dbg !208, !tbaa !47, !alias.scope !76, !noalias !77 %68 = icmp slt i64 %value_phi168, 1, !dbg !213 %bitcast172 = load i64, ptr %.Tnext.size171, align 8, !dbg !217, !tbaa !84, !alias.scope !86, !noalias !87 %69 = icmp ult i64 0, %bitcast172, !dbg !220 %70 = sub i64 %value_phi168, 1, !dbg !221 %bitcast173 = load i64, ptr %.Tnext.size171, align 8, !dbg !217, !tbaa !84, !alias.scope !86, !noalias !87 %71 = icmp ult i64 %70, %bitcast173, !dbg !220 %72 = and i1 %69, %71, !dbg !222 %73 = or i1 %68, %72, !dbg !223 %74 = xor i1 %73, true, !dbg !212 br i1 %74, label %L124, label %L106, !dbg !212 L106: ; preds = %L91 br label %L107, !dbg !212 L107: ; preds = %L106, %L81 %75 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !224 %76 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %75, i32 0, i32 0, !dbg !224 %memoryref_data174 = load ptr, ptr addrspace(11) %76, align 8, !dbg !224, !tbaa !225, !alias.scope !228, !noalias !229 %77 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %75, i32 0, i32 1, !dbg !224 %memoryref_mem175 = load ptr addrspace(10), ptr addrspace(11) %77, align 8, !dbg !224, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %78 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data174, 0, !dbg !224 %.Tlast.ref = insertvalue { ptr, ptr addrspace(10) } %78, ptr addrspace(10) %memoryref_mem175, 1, !dbg !224 %79 = addrspacecast ptr addrspace(10) %memoryref_mem175 to ptr addrspace(11), !dbg !230 %80 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %79, i32 0, i32 0, !dbg !230 %memory_len176 = load i64, ptr addrspace(11) %80, align 8, !dbg !230, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %81 = add nuw i64 %memory_len176, %memory_len176, !dbg !230 %82 = add i64 0, %memory_len176, !dbg !230 %memoryref_ovflw177 = icmp uge i64 %82, %81, !dbg !230 %memoryref_data_byteoffset178 = getelementptr i8, ptr %memoryref_data174, i64 0, !dbg !230 %83 = addrspacecast ptr addrspace(10) %memoryref_mem175 to ptr addrspace(11), !dbg !230 %84 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %83, i32 0, i32 0, !dbg !230 %memory_len179 = load i64, ptr addrspace(11) %84, align 8, !dbg !230, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %85 = addrspacecast ptr addrspace(10) %memoryref_mem175 to ptr addrspace(11), !dbg !230 %memory_data_ptr180 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %85, i32 0, i32 1, !dbg !230 %memory_data181 = load ptr, ptr addrspace(11) %memory_data_ptr180, align 8, !dbg !230, !tbaa !236, !alias.scope !228, !noalias !229, !nonnull !0 %86 = ptrtoint ptr %memory_data181 to i64, !dbg !230 %87 = ptrtoint ptr %memoryref_data_byteoffset178 to i64, !dbg !230 %88 = sub i64 %87, %86, !dbg !230 %memoryref_bytelen182 = mul nuw nsw i64 %memory_len179, 8, !dbg !230 %memoryref_isinbounds183 = icmp ult i64 %88, %memoryref_bytelen182, !dbg !230 %89 = xor i1 %memoryref_ovflw177, true, !dbg !230 %"memoryref_isinbounds¬ovflw184" = and i1 %89, %memoryref_isinbounds183, !dbg !230 br i1 %"memoryref_isinbounds¬ovflw184", label %idxend190, label %oob185, !dbg !230 L122: ; preds = %idxend208 %"-Core.throw_inexacterror#35039" = load ptr, ptr @_Core_throw_inexacterror_35039, align 8, !dbg !238, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !45, !align !46 %90 = addrspacecast ptr %"-Core.throw_inexacterror#35039" to ptr addrspace(10), !dbg !238 %"jl_global#35040" = load ptr, ptr @jl_global_35040, align 8, !dbg !238, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %91 = addrspacecast ptr %"jl_global#35040" to ptr addrspace(10), !dbg !238 %"jl_sym#convert#35041" = load ptr, ptr @jl_sym_convert_35041, align 8, !dbg !238, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %92 = addrspacecast ptr %"jl_sym#convert#35041" to ptr addrspace(10), !dbg !238 %93 = load ptr, ptr getelementptr inbounds (i8, ptr @jl_small_typeof, i32 336), align 8, !dbg !238, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %94 = addrspacecast ptr %93 to ptr addrspace(10), !dbg !238 %box_Int64 = call nonnull align 8 dereferenceable(8) ptr addrspace(10) @ijl_box_int64(i64 signext %443) #27, !dbg !238 %95 = call nonnull ptr addrspace(10) (ptr, ptr addrspace(10), ptr addrspace(10), ...) @julia.call2(ptr @ijl_invoke, ptr addrspace(10) %90, ptr addrspace(10) %91, ptr addrspace(10) %92, ptr addrspace(10) %94, ptr addrspace(10) %box_Int64), !dbg !238 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !238 unreachable, !dbg !238 L124: ; preds = %L91 %96 = addrspacecast ptr %"new::Tuple169" to ptr addrspace(11), !dbg !212 call void @julia_throw_boundserror_35069(ptr addrspace(10) %.Tnext, ptr addrspace(11) nocapture readonly %96) #26, !dbg !212 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !212 unreachable, !dbg !212 L126: ; preds = %idxend208 call void @llvm.memmove.p0.p0.i64(ptr %memory_ref191.ptr_or_offset, ptr %memory_ref209.ptr_or_offset, i64 %443, i1 false), !dbg !249 call void @llvm.julia.gc_preserve_end(token %442), !dbg !255 call void @llvm.julia.gc_preserve_end(token %441), !dbg !256 br label %L133, !dbg !257 L131: ; preds = %L55 %"jl_global#35044" = load ptr, ptr @jl_global_35044, align 8, !dbg !152, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %97 = addrspacecast ptr %"jl_global#35044" to ptr addrspace(10), !dbg !152 call void @julia__throw_argerror_35066(ptr addrspace(10) %97) #26, !dbg !152 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !152 unreachable, !dbg !152 L133: ; preds = %L126, %L54 br label %L134, !dbg !143 L134: ; preds = %L133 br label %L135, !dbg !143 L135: ; preds = %L134 br label %L136, !dbg !143 L136: ; preds = %L135 br label %L286, !dbg !258 L137: ; preds = %L49 %98 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !259 %99 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !259 %100 = icmp eq ptr addrspace(11) %98, %99, !dbg !259 %101 = xor i1 %100, true, !dbg !259 br i1 %101, label %L140, label %L139, !dbg !259 L139: ; preds = %L137 br label %L204, !dbg !168 L140: ; preds = %L137 %102 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !267 %.Tlast.size_ptr296 = getelementptr inbounds i8, ptr addrspace(11) %102, i32 16, !dbg !267 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tlast.size297, ptr addrspace(11) align 8 %.Tlast.size_ptr296, i64 8, i1 false), !dbg !267, !tbaa !47, !alias.scope !76, !noalias !77 %.Tlast.size297.unbox = load i64, ptr %.Tlast.size297, align 8, !dbg !275, !tbaa !84, !alias.scope !86, !noalias !87 %103 = icmp eq i64 %.Tlast.size297.unbox, 0, !dbg !275 %104 = xor i1 %103, true, !dbg !276 %105 = xor i1 %104, true, !dbg !271 br i1 %105, label %L163, label %L145, !dbg !271 L145: ; preds = %L140 %106 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !267 %.Tnext.size_ptr298 = getelementptr inbounds i8, ptr addrspace(11) %106, i32 16, !dbg !267 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tnext.size299, ptr addrspace(11) align 8 %.Tnext.size_ptr298, i64 8, i1 false), !dbg !267, !tbaa !47, !alias.scope !76, !noalias !77 %.Tnext.size299.unbox = load i64, ptr %.Tnext.size299, align 8, !dbg !275, !tbaa !84, !alias.scope !86, !noalias !87 %107 = icmp eq i64 %.Tnext.size299.unbox, 0, !dbg !275 %108 = xor i1 %107, true, !dbg !276 %109 = xor i1 %108, true, !dbg !271 br i1 %109, label %L162, label %L150, !dbg !271 L150: ; preds = %L145 %110 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !278 %111 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %110, i32 0, i32 0, !dbg !278 %112 = load ptr, ptr addrspace(11) %111, align 8, !dbg !278, !tbaa !225, !alias.scope !228, !noalias !229 %113 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %110, i32 0, i32 1, !dbg !278 %114 = load ptr addrspace(10), ptr addrspace(11) %113, align 8, !dbg !278, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %115 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %112, 0, !dbg !278 %.Tlast.ref300 = insertvalue { ptr, ptr addrspace(10) } %115, ptr addrspace(10) %114, 1, !dbg !278 %.Tlast.ref300.mem = extractvalue { ptr, ptr addrspace(10) } %.Tlast.ref300, 1, !dbg !278 %116 = addrspacecast ptr addrspace(10) %.Tlast.ref300.mem to ptr addrspace(11), !dbg !281 %.Tlast.ref300.mem.ptr_ptr = getelementptr inbounds i8, ptr addrspace(11) %116, i32 8, !dbg !281 %bitcast301 = load ptr, ptr addrspace(11) %.Tlast.ref300.mem.ptr_ptr, align 8, !dbg !283, !tbaa !236, !alias.scope !228, !noalias !229 %bitcast_coercion = ptrtoint ptr %bitcast301 to i64, !dbg !283 %117 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !278 %118 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %117, i32 0, i32 0, !dbg !278 %119 = load ptr, ptr addrspace(11) %118, align 8, !dbg !278, !tbaa !225, !alias.scope !228, !noalias !229 %120 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %117, i32 0, i32 1, !dbg !278 %121 = load ptr addrspace(10), ptr addrspace(11) %120, align 8, !dbg !278, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %122 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %119, 0, !dbg !278 %.Tnext.ref302 = insertvalue { ptr, ptr addrspace(10) } %122, ptr addrspace(10) %121, 1, !dbg !278 %.Tnext.ref302.mem = extractvalue { ptr, ptr addrspace(10) } %.Tnext.ref302, 1, !dbg !278 %123 = addrspacecast ptr addrspace(10) %.Tnext.ref302.mem to ptr addrspace(11), !dbg !281 %.Tnext.ref302.mem.ptr_ptr = getelementptr inbounds i8, ptr addrspace(11) %123, i32 8, !dbg !281 %bitcast303 = load ptr, ptr addrspace(11) %.Tnext.ref302.mem.ptr_ptr, align 8, !dbg !283, !tbaa !236, !alias.scope !228, !noalias !229 %bitcast_coercion304 = ptrtoint ptr %bitcast303 to i64, !dbg !283 %124 = icmp eq i64 %bitcast_coercion, %bitcast_coercion304, !dbg !284 %125 = xor i1 %124, true, !dbg !289 %126 = xor i1 %125, true, !dbg !276 %127 = zext i1 %126 to i8, !dbg !168 br label %L164, !dbg !168 L162: ; preds = %L145 br label %L164, !dbg !168 L163: ; preds = %L140 br label %L164, !dbg !168 L164: ; preds = %L163, %L162, %L150 %value_phi305 = phi i8 [ %127, %L150 ], [ 0, %L162 ], [ 0, %L163 ] %128 = trunc i8 %value_phi305 to i1, !dbg !273 %129 = xor i1 %128, true, !dbg !273 br i1 %129, label %L201, label %L166, !dbg !273 L166: ; preds = %L164 %130 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !290 %131 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %130, i32 0, i32 0, !dbg !290 %132 = load ptr, ptr addrspace(11) %131, align 8, !dbg !290, !tbaa !225, !alias.scope !228, !noalias !229 %133 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %130, i32 0, i32 1, !dbg !290 %134 = load ptr addrspace(10), ptr addrspace(11) %133, align 8, !dbg !290, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %135 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %132, 0, !dbg !290 %.Tnext.ref306 = insertvalue { ptr, ptr addrspace(10) } %135, ptr addrspace(10) %134, 1, !dbg !290 %136 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !295 %.Tnext.size_ptr307 = getelementptr inbounds i8, ptr addrspace(11) %136, i32 16, !dbg !295 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tnext.size308, ptr addrspace(11) align 8 %.Tnext.size_ptr307, i64 8, i1 false), !dbg !295, !tbaa !47, !alias.scope !76, !noalias !77 %.Tnext.size308.unbox = load i64, ptr %.Tnext.size308, align 8, !dbg !298, !tbaa !84, !alias.scope !86, !noalias !87 %memorynew_empty = icmp eq i64 %.Tnext.size308.unbox, 0, !dbg !298 br i1 %memorynew_empty, label %emptymem, label %nonemptymem, !dbg !298 L182: ; preds = %retval %"-Core.throw_inexacterror#35039317" = load ptr, ptr @_Core_throw_inexacterror_35039, align 8, !dbg !300, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !45, !align !46 %137 = addrspacecast ptr %"-Core.throw_inexacterror#35039317" to ptr addrspace(10), !dbg !300 %"jl_global#35040318" = load ptr, ptr @jl_global_35040, align 8, !dbg !300, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %138 = addrspacecast ptr %"jl_global#35040318" to ptr addrspace(10), !dbg !300 %"jl_sym#convert#35041319" = load ptr, ptr @jl_sym_convert_35041, align 8, !dbg !300, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %139 = addrspacecast ptr %"jl_sym#convert#35041319" to ptr addrspace(10), !dbg !300 %140 = load ptr, ptr getelementptr inbounds (i8, ptr @jl_small_typeof, i32 336), align 8, !dbg !300, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %141 = addrspacecast ptr %140 to ptr addrspace(10), !dbg !300 %box_Int64320 = call nonnull align 8 dereferenceable(8) ptr addrspace(10) @ijl_box_int64(i64 signext %488) #27, !dbg !300 %142 = call nonnull ptr addrspace(10) (ptr, ptr addrspace(10), ptr addrspace(10), ...) @julia.call2(ptr @ijl_invoke, ptr addrspace(10) %137, ptr addrspace(10) %138, ptr addrspace(10) %139, ptr addrspace(10) %141, ptr addrspace(10) %box_Int64320), !dbg !300 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !300 unreachable, !dbg !300 L184: ; preds = %retval br label %L185, !dbg !300 L185: ; preds = %L184 br label %L187, !dbg !301 L187: ; preds = %L185 br label %L188, !dbg !301 L188: ; preds = %L187 br label %L189, !dbg !301 L189: ; preds = %L188 br label %L190, !dbg !301 L190: ; preds = %L189 call void @llvm.memmove.p0.p0.i64(ptr %memory_ref314.ptr_or_offset, ptr %.Tnext.ref306.ptr_or_offset, i64 %488, i1 false), !dbg !305 br label %L192, !dbg !305 L192: ; preds = %L190 call void @llvm.julia.gc_preserve_end(token %487), !dbg !308 call void @llvm.julia.gc_preserve_end(token %486), !dbg !309 br label %L195, !dbg !310 L195: ; preds = %L192 %143 = addrspacecast ptr addrspace(10) %482 to ptr addrspace(11), !dbg !311 %memory_data_ptr323 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %143, i32 0, i32 1, !dbg !311 %memory_data324 = load ptr, ptr addrspace(11) %memory_data_ptr323, align 8, !dbg !311, !tbaa !236, !alias.scope !228, !noalias !229, !nonnull !0 %144 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memory_data324, 0, !dbg !311 %memory_ref325 = insertvalue { ptr, ptr addrspace(10) } %144, ptr addrspace(10) %482, 1, !dbg !311 %145 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !313 %.Tnext.size_ptr326 = getelementptr inbounds i8, ptr addrspace(11) %145, i32 16, !dbg !313 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tnext.size327, ptr addrspace(11) align 8 %.Tnext.size_ptr326, i64 8, i1 false), !dbg !313, !tbaa !47, !alias.scope !76, !noalias !77 %"+Core.Array#35049" = load ptr, ptr @_Core_Array_35049, align 8, !dbg !312, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %Array = ptrtoint ptr %"+Core.Array#35049" to i64, !dbg !312 %146 = inttoptr i64 %Array to ptr, !dbg !312 %current_task328 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !312 %147 = addrspacecast ptr %146 to ptr addrspace(10), !dbg !312 %"new::Array" = call noalias nonnull align 8 dereferenceable(24) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task328, i64 24, ptr addrspace(10) %147) #25, !dbg !312 %148 = addrspacecast ptr addrspace(10) %"new::Array" to ptr addrspace(11), !dbg !312 %149 = getelementptr inbounds i8, ptr addrspace(11) %148, i32 8, !dbg !312 store ptr addrspace(10) null, ptr addrspace(11) %149, align 8, !dbg !312, !tbaa !314, !alias.scope !228, !noalias !229 %150 = addrspacecast ptr addrspace(10) %"new::Array" to ptr addrspace(11), !dbg !312 store { ptr, ptr addrspace(10) } %memory_ref325, ptr addrspace(11) %150, align 8, !dbg !312, !tbaa !225, !alias.scope !228, !noalias !229 %151 = addrspacecast ptr addrspace(10) %"new::Array" to ptr addrspace(11), !dbg !312 %"new::Array.size_ptr" = getelementptr inbounds i8, ptr addrspace(11) %151, i32 16, !dbg !312 call void @llvm.memcpy.p11.p0.i64(ptr addrspace(11) align 8 %"new::Array.size_ptr", ptr align 8 %.Tnext.size327, i64 8, i1 false), !dbg !312, !tbaa !47, !alias.scope !315, !noalias !77 br label %L199, !dbg !312 L199: ; preds = %L195 br label %L200, !dbg !312 L200: ; preds = %L199 br label %L202, !dbg !168 L201: ; preds = %L164 br label %L202, !dbg !168 L202: ; preds = %L201, %L200 %value_phi329 = phi ptr addrspace(10) [ %"new::Array", %L200 ], [ %.Tnext, %L201 ] br label %L204, !dbg !168 L204: ; preds = %L202, %L139 %value_phi219 = phi ptr addrspace(10) [ %.Tnext, %L139 ], [ %value_phi329, %L202 ] %152 = addrspacecast ptr addrspace(10) %value_phi219 to ptr addrspace(11), !dbg !316 %value_phi219.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %152, i32 16, !dbg !316 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %value_phi219.size, ptr addrspace(11) align 8 %value_phi219.size_ptr, i64 8, i1 false), !dbg !316, !tbaa !47, !alias.scope !76, !noalias !77 %value_phi219.size.unbox = load i64, ptr %value_phi219.size, align 8, !dbg !322, !tbaa !84, !alias.scope !86, !noalias !87 %153 = icmp eq i64 %value_phi219.size.unbox, 1, !dbg !322 %154 = xor i1 %153, true, !dbg !328 %155 = getelementptr inbounds i8, ptr %"new::Tuple220", i32 0, !dbg !324 %156 = zext i1 %154 to i8, !dbg !324 store i8 %156, ptr %155, align 1, !dbg !324, !tbaa !84, !alias.scope !86, !noalias !87 %157 = getelementptr inbounds i8, ptr %"new::Extruded", i32 8, !dbg !329 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %157, ptr align 1 %"new::Tuple220", i64 1, i1 false), !dbg !329, !tbaa !84, !alias.scope !86, !noalias !87 %158 = getelementptr inbounds i8, ptr %"new::Extruded", i32 16, !dbg !329 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %158, ptr align 8 @_j_const_4, i64 8, i1 false), !dbg !329, !tbaa !47, !alias.scope !173, !noalias !174 br label %L213, !dbg !329 L213: ; preds = %L204 %159 = getelementptr inbounds i8, ptr %"new::Tuple221", i32 0, !dbg !263 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %159, ptr align 8 %"new::Extruded", i64 24, i1 false), !dbg !263, !tbaa !84, !alias.scope !86, !noalias !87 br label %L215, !dbg !263 L215: ; preds = %L213 %160 = getelementptr inbounds i8, ptr %"new::Broadcasted", i32 0, !dbg !331 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %160, ptr align 8 %"new::Tuple221", i64 24, i1 false), !dbg !331, !tbaa !84, !alias.scope !86, !noalias !87 %161 = getelementptr inbounds i8, ptr %"new::Broadcasted", i32 24, !dbg !331 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %161, ptr align 8 %"new::Tuple", i64 8, i1 false), !dbg !331, !tbaa !84, !alias.scope !86, !noalias !87 br label %L217, !dbg !331 L217: ; preds = %L215 %.Tlast.size.unbox222 = load i64, ptr %.Tlast.size, align 8, !dbg !333, !tbaa !84, !alias.scope !86, !noalias !87 %162 = icmp slt i64 0, %.Tlast.size.unbox222, !dbg !333 %163 = xor i1 %162, true, !dbg !334 br i1 %163, label %L282, label %L219, !dbg !334 L219: ; preds = %L217 br label %L220, !dbg !168 L220: ; preds = %load283, %L219 %value_phi223 = phi i64 [ 0, %L219 ], [ %470, %load283 ] %.Tlast.size.unbox224 = load i64, ptr %.Tlast.size, align 8, !dbg !342, !tbaa !84, !alias.scope !86, !noalias !87 %164 = icmp slt i64 %value_phi223, %.Tlast.size.unbox224, !dbg !342 %165 = xor i1 %164, true, !dbg !343 br i1 %165, label %L282, label %L223, !dbg !343 L223: ; preds = %L220 %166 = add i64 %value_phi223, 1, !dbg !344 br i1 false, label %L233, label %L226, !dbg !348 L226: ; preds = %L223 %167 = getelementptr inbounds i8, ptr %"new::Tuple225", i32 0, !dbg !348 store i64 %166, ptr %167, align 8, !dbg !348, !tbaa !84, !alias.scope !86, !noalias !87 %168 = sub i64 %166, 1, !dbg !352 %bitcast226 = load i64, ptr %.Tlast.size, align 8, !dbg !356, !tbaa !84, !alias.scope !86, !noalias !87 %169 = icmp ult i64 %168, %bitcast226, !dbg !358 %170 = xor i1 %169, true, !dbg !355 br i1 %170, label %L265, label %L232, !dbg !355 L232: ; preds = %L226 br label %L233, !dbg !355 L233: ; preds = %L232, %L223 br i1 false, label %L241, label %L235, !dbg !359 L235: ; preds = %L233 %171 = sub i64 %166, 1, !dbg !365 %bitcast227 = load i64, ptr %.Tlast.size, align 8, !dbg !369, !tbaa !84, !alias.scope !86, !noalias !87 %172 = icmp ult i64 %171, %bitcast227, !dbg !371 %173 = xor i1 %172, true, !dbg !367 br i1 %173, label %L267, label %L240, !dbg !367 L240: ; preds = %L235 br label %L241, !dbg !367 L241: ; preds = %L240, %L233 %ifelse_cond = xor i1 %154, true, !dbg !372 %174 = select i1 %ifelse_cond, i64 1, i64 %166, !dbg !372 br i1 false, label %L252, label %L244, !dbg !381 L244: ; preds = %L241 %175 = sub i64 %174, 1, !dbg !383 %176 = addrspacecast ptr addrspace(10) %value_phi219 to ptr addrspace(11), !dbg !386 %value_phi219.size_ptr228 = getelementptr inbounds i8, ptr addrspace(11) %176, i32 16, !dbg !386 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %value_phi219.size229, ptr addrspace(11) align 8 %value_phi219.size_ptr228, i64 8, i1 false), !dbg !386, !tbaa !47, !alias.scope !76, !noalias !77 %bitcast230 = load i64, ptr %value_phi219.size229, align 8, !dbg !383, !tbaa !84, !alias.scope !86, !noalias !87 %177 = icmp ult i64 %175, %bitcast230, !dbg !383 %178 = xor i1 %177, true, !dbg !385 br i1 %178, label %L270, label %L251, !dbg !385 L251: ; preds = %L244 br label %L252, !dbg !385 L252: ; preds = %L251, %L241 %179 = addrspacecast ptr addrspace(10) %value_phi219 to ptr addrspace(11), !dbg !388 %180 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %179, i32 0, i32 0, !dbg !388 %memoryref_data231 = load ptr, ptr addrspace(11) %180, align 8, !dbg !388, !tbaa !225, !alias.scope !228, !noalias !229 %181 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %179, i32 0, i32 1, !dbg !388 %memoryref_mem251 = load ptr addrspace(10), ptr addrspace(11) %181, align 8, !dbg !388, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %182 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data231, 0, !dbg !388 %value_phi219.ref = insertvalue { ptr, ptr addrspace(10) } %182, ptr addrspace(10) %memoryref_mem251, 1, !dbg !388 %memoryref_offset233 = sub i64 %174, 1, !dbg !388 %183 = addrspacecast ptr addrspace(10) %memoryref_mem251 to ptr addrspace(11), !dbg !388 %184 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %183, i32 0, i32 0, !dbg !388 %memory_len234 = load i64, ptr addrspace(11) %184, align 8, !dbg !388, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %185 = add nuw i64 %memory_len234, %memory_len234, !dbg !388 %186 = add i64 %memoryref_offset233, %memory_len234, !dbg !388 %memoryref_ovflw235 = icmp uge i64 %186, %185, !dbg !388 %memoryref_byteoffset236 = mul i64 %memoryref_offset233, 8, !dbg !388 %memoryref_data_byteoffset237 = getelementptr i8, ptr %memoryref_data231, i64 %memoryref_byteoffset236, !dbg !388 %187 = addrspacecast ptr addrspace(10) %memoryref_mem251 to ptr addrspace(11), !dbg !388 %188 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %187, i32 0, i32 0, !dbg !388 %memory_len238 = load i64, ptr addrspace(11) %188, align 8, !dbg !388, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %189 = addrspacecast ptr addrspace(10) %memoryref_mem251 to ptr addrspace(11), !dbg !388 %memory_data_ptr239 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %189, i32 0, i32 1, !dbg !388 %memory_data240 = load ptr, ptr addrspace(11) %memory_data_ptr239, align 8, !dbg !388, !tbaa !236, !alias.scope !228, !noalias !229, !nonnull !0 %190 = ptrtoint ptr %memory_data240 to i64, !dbg !388 %191 = ptrtoint ptr %memoryref_data_byteoffset237 to i64, !dbg !388 %192 = sub i64 %191, %190, !dbg !388 %memoryref_bytelen241 = mul nuw nsw i64 %memory_len238, 8, !dbg !388 %memoryref_isinbounds242 = icmp ult i64 %192, %memoryref_bytelen241, !dbg !388 %193 = xor i1 %memoryref_ovflw235, true, !dbg !388 %"memoryref_isinbounds¬ovflw243" = and i1 %193, %memoryref_isinbounds242, !dbg !388 br i1 %"memoryref_isinbounds¬ovflw243", label %idxend249, label %oob244, !dbg !388 L257: ; preds = %load254 %194 = sub i64 %166, 1, !dbg !389 %195 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !394 %.Tlast.size_ptr256 = getelementptr inbounds i8, ptr addrspace(11) %195, i32 16, !dbg !394 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tlast.size257, ptr addrspace(11) align 8 %.Tlast.size_ptr256, i64 8, i1 false), !dbg !394, !tbaa !47, !alias.scope !76, !noalias !77 %bitcast258 = load i64, ptr %.Tlast.size257, align 8, !dbg !389, !tbaa !84, !alias.scope !86, !noalias !87 %196 = icmp ult i64 %194, %bitcast258, !dbg !389 %197 = xor i1 %196, true, !dbg !390 br i1 %197, label %L273, label %L264, !dbg !390 L264: ; preds = %L257 br label %L276, !dbg !390 L265: ; preds = %L226 %198 = addrspacecast ptr %"new::OneTo" to ptr addrspace(11), !dbg !355 %199 = addrspacecast ptr %"new::Tuple225" to ptr addrspace(11), !dbg !355 call void @julia_throw_boundserror_35063(ptr addrspace(11) nocapture readonly %198, ptr addrspace(11) nocapture readonly %199) #26, !dbg !355 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !355 unreachable, !dbg !355 L267: ; preds = %L235 %200 = getelementptr inbounds i8, ptr %"new::Tuple291", i32 0, !dbg !367 store i64 %166, ptr %200, align 8, !dbg !367, !tbaa !84, !alias.scope !86, !noalias !87 %201 = getelementptr inbounds i8, ptr %0, i32 0, !dbg !367 store ptr addrspace(10) %value_phi219, ptr %201, align 8, !dbg !367 %202 = addrspacecast ptr %"new::Broadcasted" to ptr addrspace(11), !dbg !367 %203 = addrspacecast ptr %"new::Tuple291" to ptr addrspace(11), !dbg !367 call void @julia_throw_boundserror_35060(ptr addrspace(11) nocapture readonly %202, ptr nocapture readonly %0, ptr addrspace(11) nocapture readonly %203) #26, !dbg !367 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !367 unreachable, !dbg !367 L270: ; preds = %L244 %204 = getelementptr inbounds i8, ptr %"new::Tuple288", i32 0, !dbg !385 store i64 %174, ptr %204, align 8, !dbg !385, !tbaa !84, !alias.scope !86, !noalias !87 %205 = addrspacecast ptr %"new::Tuple288" to ptr addrspace(11), !dbg !385 call void @julia_throw_boundserror_35024(ptr addrspace(10) %value_phi219, ptr addrspace(11) nocapture readonly %205) #26, !dbg !385 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !385 unreachable, !dbg !385 L273: ; preds = %L257 %206 = getelementptr inbounds i8, ptr %"new::Tuple285", i32 0, !dbg !390 store i64 %166, ptr %206, align 8, !dbg !390, !tbaa !84, !alias.scope !86, !noalias !87 %207 = addrspacecast ptr %"new::Tuple285" to ptr addrspace(11), !dbg !390 call void @julia_throw_boundserror_35024(ptr addrspace(10) %.Tlast, ptr addrspace(11) nocapture readonly %207) #26, !dbg !390 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !390 unreachable, !dbg !390 L276: ; preds = %L264, %load254 %208 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !396 %209 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %208, i32 0, i32 0, !dbg !396 %memoryref_data260 = load ptr, ptr addrspace(11) %209, align 8, !dbg !396, !tbaa !225, !alias.scope !228, !noalias !229 %210 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %208, i32 0, i32 1, !dbg !396 %memoryref_mem280 = load ptr addrspace(10), ptr addrspace(11) %210, align 8, !dbg !396, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %211 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data260, 0, !dbg !396 %.Tlast.ref259 = insertvalue { ptr, ptr addrspace(10) } %211, ptr addrspace(10) %memoryref_mem280, 1, !dbg !396 %memoryref_offset262 = sub i64 %166, 1, !dbg !397 %212 = addrspacecast ptr addrspace(10) %memoryref_mem280 to ptr addrspace(11), !dbg !397 %213 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %212, i32 0, i32 0, !dbg !397 %memory_len263 = load i64, ptr addrspace(11) %213, align 8, !dbg !397, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %214 = add nuw i64 %memory_len263, %memory_len263, !dbg !397 %215 = add i64 %memoryref_offset262, %memory_len263, !dbg !397 %memoryref_ovflw264 = icmp uge i64 %215, %214, !dbg !397 %memoryref_byteoffset265 = mul i64 %memoryref_offset262, 8, !dbg !397 %memoryref_data_byteoffset266 = getelementptr i8, ptr %memoryref_data260, i64 %memoryref_byteoffset265, !dbg !397 %216 = addrspacecast ptr addrspace(10) %memoryref_mem280 to ptr addrspace(11), !dbg !397 %217 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %216, i32 0, i32 0, !dbg !397 %memory_len267 = load i64, ptr addrspace(11) %217, align 8, !dbg !397, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %218 = addrspacecast ptr addrspace(10) %memoryref_mem280 to ptr addrspace(11), !dbg !397 %memory_data_ptr268 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %218, i32 0, i32 1, !dbg !397 %memory_data269 = load ptr, ptr addrspace(11) %memory_data_ptr268, align 8, !dbg !397, !tbaa !236, !alias.scope !228, !noalias !229, !nonnull !0 %219 = ptrtoint ptr %memory_data269 to i64, !dbg !397 %220 = ptrtoint ptr %memoryref_data_byteoffset266 to i64, !dbg !397 %221 = sub i64 %220, %219, !dbg !397 %memoryref_bytelen270 = mul nuw nsw i64 %memory_len267, 8, !dbg !397 %memoryref_isinbounds271 = icmp ult i64 %221, %memoryref_bytelen270, !dbg !397 %222 = xor i1 %memoryref_ovflw264, true, !dbg !397 %"memoryref_isinbounds¬ovflw272" = and i1 %222, %memoryref_isinbounds271, !dbg !397 br i1 %"memoryref_isinbounds¬ovflw272", label %idxend278, label %oob273, !dbg !397 L282: ; preds = %L220, %L217 br label %L283, !dbg !337 L283: ; preds = %L282 br label %L286, !dbg !398 L284: ; preds = %L38 %223 = addrspacecast ptr %"new::Tuple4" to ptr addrspace(11), !dbg !120 %224 = addrspacecast ptr %"new::Tuple" to ptr addrspace(11), !dbg !120 call void @julia_throwdm_35054(ptr addrspace(11) nocapture readonly %223, ptr addrspace(11) nocapture readonly %224) #26, !dbg !120 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !120 unreachable, !dbg !120 L286: ; preds = %L283, %L136 br label %L287, !dbg !258 L287: ; preds = %L286 br label %L288, !dbg !72 L288: ; preds = %L287 br label %L289, !dbg !75 L289: ; preds = %L288 %225 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !399 %.Tnext13 = load atomic ptr addrspace(10), ptr addrspace(11) %225 unordered, align 8, !dbg !399, !tbaa !63, !alias.scope !40, !noalias !41, !nonnull !0, !dereferenceable !65, !align !46 %226 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !401 %.Tlast_ptr14 = getelementptr inbounds i8, ptr addrspace(11) %226, i32 8, !dbg !401 %.Tlast15 = load atomic ptr addrspace(10), ptr addrspace(11) %.Tlast_ptr14 unordered, align 8, !dbg !401, !tbaa !63, !alias.scope !40, !noalias !41, !nonnull !0, !dereferenceable !65, !align !46 %227 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !403 %".\CE\BB_ptr" = getelementptr inbounds i8, ptr addrspace(11) %227, i32 24, !dbg !403 %".\CE\BB" = load double, ptr addrspace(11) %".\CE\BB_ptr", align 8, !dbg !403, !tbaa !63, !alias.scope !40, !noalias !41 %228 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !405 %.n_ptr = getelementptr inbounds i8, ptr addrspace(11) %228, i32 16, !dbg !405 %.n = load i64, ptr addrspace(11) %.n_ptr, align 8, !dbg !405, !tbaa !63, !alias.scope !40, !noalias !41 %229 = sub i64 %.n, 1, !dbg !407 %230 = icmp sle i64 2, %229, !dbg !409 %231 = xor i1 %230, true, !dbg !411 br i1 %231, label %L298, label %L297, !dbg !411 L297: ; preds = %L289 br label %L299, !dbg !411 L298: ; preds = %L289 br label %L299, !dbg !414 L299: ; preds = %L298, %L297 %value_phi16 = phi i64 [ %229, %L297 ], [ 1, %L298 ] br label %L301, !dbg !412 L301: ; preds = %L299 br label %L302, !dbg !412 L302: ; preds = %L301 %232 = icmp slt i64 %value_phi16, 2, !dbg !417 %233 = xor i1 %232, true, !dbg !420 br i1 %233, label %L305, label %L304, !dbg !420 L304: ; preds = %L302 br label %L306, !dbg !420 L305: ; preds = %L302 br label %L306, !dbg !420 L306: ; preds = %L305, %L304 %value_phi17 = phi i8 [ 1, %L304 ], [ 0, %L305 ] %value_phi18 = phi i64 [ 2, %L305 ], [ undef, %L304 ] %value_phi19 = phi i64 [ 2, %L305 ], [ undef, %L304 ] %234 = trunc i8 %value_phi17 to i1, !dbg !408 %235 = xor i1 %234, true, !dbg !408 %236 = xor i1 %235, true, !dbg !408 br i1 %236, label %L421, label %L306.L311_crit_edge, !dbg !408 L306.L311_crit_edge: ; preds = %L306 br label %L311, !dbg !420 L311: ; preds = %L306.L311_crit_edge, %L420 %value_phi20 = phi i64 [ %value_phi18, %L306.L311_crit_edge ], [ %value_phi140, %L420 ] %value_phi21 = phi i64 [ %value_phi19, %L306.L311_crit_edge ], [ %value_phi141, %L420 ] br i1 false, label %L327, label %L315, !dbg !415 L315: ; preds = %L311 %237 = sub i64 %value_phi20, 1, !dbg !421 %238 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !422 %.Tlast15.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %238, i32 16, !dbg !422 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tlast15.size, ptr addrspace(11) align 8 %.Tlast15.size_ptr, i64 8, i1 false), !dbg !422, !tbaa !47, !alias.scope !76, !noalias !77 %bitcast = load i64, ptr %.Tlast15.size, align 8, !dbg !421, !tbaa !84, !alias.scope !86, !noalias !87 %239 = icmp ult i64 %237, %bitcast, !dbg !421 %240 = xor i1 %239, true, !dbg !414 br i1 %240, label %L323, label %L322, !dbg !414 L322: ; preds = %L315 br label %L326, !dbg !414 L323: ; preds = %L315 %241 = getelementptr inbounds i8, ptr %"new::Tuple156", i32 0, !dbg !414 store i64 %value_phi20, ptr %241, align 8, !dbg !414, !tbaa !84, !alias.scope !86, !noalias !87 %242 = addrspacecast ptr %"new::Tuple156" to ptr addrspace(11), !dbg !414 call void @julia_throw_boundserror_35024(ptr addrspace(10) %.Tlast15, ptr addrspace(11) nocapture readonly %242) #26, !dbg !414 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !414 unreachable, !dbg !414 L326: ; preds = %L322 br label %L327, !dbg !414 L327: ; preds = %L326, %L311 %243 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !424 %244 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %243, i32 0, i32 0, !dbg !424 %memoryref_data = load ptr, ptr addrspace(11) %244, align 8, !dbg !424, !tbaa !225, !alias.scope !228, !noalias !229 %245 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %243, i32 0, i32 1, !dbg !424 %memoryref_mem = load ptr addrspace(10), ptr addrspace(11) %245, align 8, !dbg !424, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %246 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data, 0, !dbg !424 %.Tlast15.ref = insertvalue { ptr, ptr addrspace(10) } %246, ptr addrspace(10) %memoryref_mem, 1, !dbg !424 %memoryref_offset = sub i64 %value_phi20, 1, !dbg !424 %247 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !424 %248 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %247, i32 0, i32 0, !dbg !424 %memory_len = load i64, ptr addrspace(11) %248, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %249 = add nuw i64 %memory_len, %memory_len, !dbg !424 %250 = add i64 %memoryref_offset, %memory_len, !dbg !424 %memoryref_ovflw = icmp uge i64 %250, %249, !dbg !424 %memoryref_byteoffset = mul i64 %memoryref_offset, 8, !dbg !424 %memoryref_data_byteoffset = getelementptr i8, ptr %memoryref_data, i64 %memoryref_byteoffset, !dbg !424 %251 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !424 %252 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %251, i32 0, i32 0, !dbg !424 %memory_len22 = load i64, ptr addrspace(11) %252, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %253 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !424 %memory_data_ptr = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %253, i32 0, i32 1, !dbg !424 %memory_data = load ptr, ptr addrspace(11) %memory_data_ptr, align 8, !dbg !424, !tbaa !236, !alias.scope !228, !noalias !229, !nonnull !0 %254 = ptrtoint ptr %memory_data to i64, !dbg !424 %255 = ptrtoint ptr %memoryref_data_byteoffset to i64, !dbg !424 %256 = sub i64 %255, %254, !dbg !424 %memoryref_bytelen = mul nuw nsw i64 %memory_len22, 8, !dbg !424 %memoryref_isinbounds = icmp ult i64 %256, %memoryref_bytelen, !dbg !424 %257 = xor i1 %memoryref_ovflw, true, !dbg !424 %"memoryref_isinbounds¬ovflw" = and i1 %257, %memoryref_isinbounds, !dbg !424 br i1 %"memoryref_isinbounds¬ovflw", label %idxend, label %oob, !dbg !424 L331: ; preds = %load %258 = sub i64 %value_phi20, 1, !dbg !425 br i1 false, label %L346, label %L334, !dbg !415 L334: ; preds = %L331 %259 = sub i64 %258, 1, !dbg !421 %260 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !422 %.Tlast15.size_ptr27 = getelementptr inbounds i8, ptr addrspace(11) %260, i32 16, !dbg !422 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tlast15.size28, ptr addrspace(11) align 8 %.Tlast15.size_ptr27, i64 8, i1 false), !dbg !422, !tbaa !47, !alias.scope !76, !noalias !77 %bitcast29 = load i64, ptr %.Tlast15.size28, align 8, !dbg !421, !tbaa !84, !alias.scope !86, !noalias !87 %261 = icmp ult i64 %259, %bitcast29, !dbg !421 %262 = xor i1 %261, true, !dbg !414 br i1 %262, label %L342, label %L341, !dbg !414 L341: ; preds = %L334 br label %L345, !dbg !414 L342: ; preds = %L334 %263 = getelementptr inbounds i8, ptr %"new::Tuple153", i32 0, !dbg !414 store i64 %258, ptr %263, align 8, !dbg !414, !tbaa !84, !alias.scope !86, !noalias !87 %264 = addrspacecast ptr %"new::Tuple153" to ptr addrspace(11), !dbg !414 call void @julia_throw_boundserror_35024(ptr addrspace(10) %.Tlast15, ptr addrspace(11) nocapture readonly %264) #26, !dbg !414 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !414 unreachable, !dbg !414 L345: ; preds = %L341 br label %L346, !dbg !414 L346: ; preds = %L345, %L331 %265 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !424 %266 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %265, i32 0, i32 0, !dbg !424 %memoryref_data31 = load ptr, ptr addrspace(11) %266, align 8, !dbg !424, !tbaa !225, !alias.scope !228, !noalias !229 %267 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %265, i32 0, i32 1, !dbg !424 %memoryref_mem51 = load ptr addrspace(10), ptr addrspace(11) %267, align 8, !dbg !424, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %268 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data31, 0, !dbg !424 %.Tlast15.ref30 = insertvalue { ptr, ptr addrspace(10) } %268, ptr addrspace(10) %memoryref_mem51, 1, !dbg !424 %memoryref_offset33 = sub i64 %258, 1, !dbg !424 %269 = addrspacecast ptr addrspace(10) %memoryref_mem51 to ptr addrspace(11), !dbg !424 %270 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %269, i32 0, i32 0, !dbg !424 %memory_len34 = load i64, ptr addrspace(11) %270, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %271 = add nuw i64 %memory_len34, %memory_len34, !dbg !424 %272 = add i64 %memoryref_offset33, %memory_len34, !dbg !424 %memoryref_ovflw35 = icmp uge i64 %272, %271, !dbg !424 %memoryref_byteoffset36 = mul i64 %memoryref_offset33, 8, !dbg !424 %memoryref_data_byteoffset37 = getelementptr i8, ptr %memoryref_data31, i64 %memoryref_byteoffset36, !dbg !424 %273 = addrspacecast ptr addrspace(10) %memoryref_mem51 to ptr addrspace(11), !dbg !424 %274 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %273, i32 0, i32 0, !dbg !424 %memory_len38 = load i64, ptr addrspace(11) %274, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %275 = addrspacecast ptr addrspace(10) %memoryref_mem51 to ptr addrspace(11), !dbg !424 %memory_data_ptr39 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %275, i32 0, i32 1, !dbg !424 %memory_data40 = load ptr, ptr addrspace(11) %memory_data_ptr39, align 8, !dbg !424, !tbaa !236, !alias.scope !228, !noalias !229, !nonnull !0 %276 = ptrtoint ptr %memory_data40 to i64, !dbg !424 %277 = ptrtoint ptr %memoryref_data_byteoffset37 to i64, !dbg !424 %278 = sub i64 %277, %276, !dbg !424 %memoryref_bytelen41 = mul nuw nsw i64 %memory_len38, 8, !dbg !424 %memoryref_isinbounds42 = icmp ult i64 %278, %memoryref_bytelen41, !dbg !424 %279 = xor i1 %memoryref_ovflw35, true, !dbg !424 %"memoryref_isinbounds¬ovflw43" = and i1 %279, %memoryref_isinbounds42, !dbg !424 br i1 %"memoryref_isinbounds¬ovflw43", label %idxend49, label %oob44, !dbg !424 L350: ; preds = %load54 br i1 false, label %L364, label %L352, !dbg !415 L352: ; preds = %L350 %280 = sub i64 %value_phi20, 1, !dbg !421 %281 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !422 %.Tlast15.size_ptr56 = getelementptr inbounds i8, ptr addrspace(11) %281, i32 16, !dbg !422 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tlast15.size57, ptr addrspace(11) align 8 %.Tlast15.size_ptr56, i64 8, i1 false), !dbg !422, !tbaa !47, !alias.scope !76, !noalias !77 %bitcast58 = load i64, ptr %.Tlast15.size57, align 8, !dbg !421, !tbaa !84, !alias.scope !86, !noalias !87 %282 = icmp ult i64 %280, %bitcast58, !dbg !421 %283 = xor i1 %282, true, !dbg !414 br i1 %283, label %L360, label %L359, !dbg !414 L359: ; preds = %L352 br label %L363, !dbg !414 L360: ; preds = %L352 %284 = getelementptr inbounds i8, ptr %"new::Tuple150", i32 0, !dbg !414 store i64 %value_phi20, ptr %284, align 8, !dbg !414, !tbaa !84, !alias.scope !86, !noalias !87 %285 = addrspacecast ptr %"new::Tuple150" to ptr addrspace(11), !dbg !414 call void @julia_throw_boundserror_35024(ptr addrspace(10) %.Tlast15, ptr addrspace(11) nocapture readonly %285) #26, !dbg !414 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !414 unreachable, !dbg !414 L363: ; preds = %L359 br label %L364, !dbg !414 L364: ; preds = %L363, %L350 %286 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !424 %287 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %286, i32 0, i32 0, !dbg !424 %memoryref_data60 = load ptr, ptr addrspace(11) %287, align 8, !dbg !424, !tbaa !225, !alias.scope !228, !noalias !229 %288 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %286, i32 0, i32 1, !dbg !424 %memoryref_mem80 = load ptr addrspace(10), ptr addrspace(11) %288, align 8, !dbg !424, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %289 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data60, 0, !dbg !424 %.Tlast15.ref59 = insertvalue { ptr, ptr addrspace(10) } %289, ptr addrspace(10) %memoryref_mem80, 1, !dbg !424 %memoryref_offset62 = sub i64 %value_phi20, 1, !dbg !424 %290 = addrspacecast ptr addrspace(10) %memoryref_mem80 to ptr addrspace(11), !dbg !424 %291 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %290, i32 0, i32 0, !dbg !424 %memory_len63 = load i64, ptr addrspace(11) %291, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %292 = add nuw i64 %memory_len63, %memory_len63, !dbg !424 %293 = add i64 %memoryref_offset62, %memory_len63, !dbg !424 %memoryref_ovflw64 = icmp uge i64 %293, %292, !dbg !424 %memoryref_byteoffset65 = mul i64 %memoryref_offset62, 8, !dbg !424 %memoryref_data_byteoffset66 = getelementptr i8, ptr %memoryref_data60, i64 %memoryref_byteoffset65, !dbg !424 %294 = addrspacecast ptr addrspace(10) %memoryref_mem80 to ptr addrspace(11), !dbg !424 %295 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %294, i32 0, i32 0, !dbg !424 %memory_len67 = load i64, ptr addrspace(11) %295, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %296 = addrspacecast ptr addrspace(10) %memoryref_mem80 to ptr addrspace(11), !dbg !424 %memory_data_ptr68 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %296, i32 0, i32 1, !dbg !424 %memory_data69 = load ptr, ptr addrspace(11) %memory_data_ptr68, align 8, !dbg !424, !tbaa !236, !alias.scope !228, !noalias !229, !nonnull !0 %297 = ptrtoint ptr %memory_data69 to i64, !dbg !424 %298 = ptrtoint ptr %memoryref_data_byteoffset66 to i64, !dbg !424 %299 = sub i64 %298, %297, !dbg !424 %memoryref_bytelen70 = mul nuw nsw i64 %memory_len67, 8, !dbg !424 %memoryref_isinbounds71 = icmp ult i64 %299, %memoryref_bytelen70, !dbg !424 %300 = xor i1 %memoryref_ovflw64, true, !dbg !424 %"memoryref_isinbounds¬ovflw72" = and i1 %300, %memoryref_isinbounds71, !dbg !424 br i1 %"memoryref_isinbounds¬ovflw72", label %idxend78, label %oob73, !dbg !424 L368: ; preds = %load83 %301 = fmul double 2.000000e+00, %394, !dbg !426 %302 = fsub double %383, %301, !dbg !431 %303 = add i64 %value_phi20, 1, !dbg !433 br i1 false, label %L385, label %L373, !dbg !415 L373: ; preds = %L368 %304 = sub i64 %303, 1, !dbg !421 %305 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !422 %.Tlast15.size_ptr85 = getelementptr inbounds i8, ptr addrspace(11) %305, i32 16, !dbg !422 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tlast15.size86, ptr addrspace(11) align 8 %.Tlast15.size_ptr85, i64 8, i1 false), !dbg !422, !tbaa !47, !alias.scope !76, !noalias !77 %bitcast87 = load i64, ptr %.Tlast15.size86, align 8, !dbg !421, !tbaa !84, !alias.scope !86, !noalias !87 %306 = icmp ult i64 %304, %bitcast87, !dbg !421 %307 = xor i1 %306, true, !dbg !414 br i1 %307, label %L381, label %L380, !dbg !414 L380: ; preds = %L373 br label %L384, !dbg !414 L381: ; preds = %L373 %308 = getelementptr inbounds i8, ptr %"new::Tuple147", i32 0, !dbg !414 store i64 %303, ptr %308, align 8, !dbg !414, !tbaa !84, !alias.scope !86, !noalias !87 %309 = addrspacecast ptr %"new::Tuple147" to ptr addrspace(11), !dbg !414 call void @julia_throw_boundserror_35024(ptr addrspace(10) %.Tlast15, ptr addrspace(11) nocapture readonly %309) #26, !dbg !414 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !414 unreachable, !dbg !414 L384: ; preds = %L380 br label %L385, !dbg !414 L385: ; preds = %L384, %L368 %310 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !424 %311 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %310, i32 0, i32 0, !dbg !424 %memoryref_data89 = load ptr, ptr addrspace(11) %311, align 8, !dbg !424, !tbaa !225, !alias.scope !228, !noalias !229 %312 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %310, i32 0, i32 1, !dbg !424 %memoryref_mem109 = load ptr addrspace(10), ptr addrspace(11) %312, align 8, !dbg !424, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %313 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data89, 0, !dbg !424 %.Tlast15.ref88 = insertvalue { ptr, ptr addrspace(10) } %313, ptr addrspace(10) %memoryref_mem109, 1, !dbg !424 %memoryref_offset91 = sub i64 %303, 1, !dbg !424 %314 = addrspacecast ptr addrspace(10) %memoryref_mem109 to ptr addrspace(11), !dbg !424 %315 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %314, i32 0, i32 0, !dbg !424 %memory_len92 = load i64, ptr addrspace(11) %315, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %316 = add nuw i64 %memory_len92, %memory_len92, !dbg !424 %317 = add i64 %memoryref_offset91, %memory_len92, !dbg !424 %memoryref_ovflw93 = icmp uge i64 %317, %316, !dbg !424 %memoryref_byteoffset94 = mul i64 %memoryref_offset91, 8, !dbg !424 %memoryref_data_byteoffset95 = getelementptr i8, ptr %memoryref_data89, i64 %memoryref_byteoffset94, !dbg !424 %318 = addrspacecast ptr addrspace(10) %memoryref_mem109 to ptr addrspace(11), !dbg !424 %319 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %318, i32 0, i32 0, !dbg !424 %memory_len96 = load i64, ptr addrspace(11) %319, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %320 = addrspacecast ptr addrspace(10) %memoryref_mem109 to ptr addrspace(11), !dbg !424 %memory_data_ptr97 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %320, i32 0, i32 1, !dbg !424 %memory_data98 = load ptr, ptr addrspace(11) %memory_data_ptr97, align 8, !dbg !424, !tbaa !236, !alias.scope !228, !noalias !229, !nonnull !0 %321 = ptrtoint ptr %memory_data98 to i64, !dbg !424 %322 = ptrtoint ptr %memoryref_data_byteoffset95 to i64, !dbg !424 %323 = sub i64 %322, %321, !dbg !424 %memoryref_bytelen99 = mul nuw nsw i64 %memory_len96, 8, !dbg !424 %memoryref_isinbounds100 = icmp ult i64 %323, %memoryref_bytelen99, !dbg !424 %324 = xor i1 %memoryref_ovflw93, true, !dbg !424 %"memoryref_isinbounds¬ovflw101" = and i1 %324, %memoryref_isinbounds100, !dbg !424 br i1 %"memoryref_isinbounds¬ovflw101", label %idxend107, label %oob102, !dbg !424 L389: ; preds = %load112 %325 = fadd double %302, %405, !dbg !434 %326 = fmul double %".\CE\BB", %325, !dbg !436 %327 = fadd double %372, %326, !dbg !434 br i1 false, label %L405, label %L394, !dbg !437 L394: ; preds = %L389 %328 = sub i64 %value_phi20, 1, !dbg !439 %329 = addrspacecast ptr addrspace(10) %.Tnext13 to ptr addrspace(11), !dbg !440 %.Tnext13.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %329, i32 16, !dbg !440 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tnext13.size, ptr addrspace(11) align 8 %.Tnext13.size_ptr, i64 8, i1 false), !dbg !440, !tbaa !47, !alias.scope !76, !noalias !77 %bitcast114 = load i64, ptr %.Tnext13.size, align 8, !dbg !439, !tbaa !84, !alias.scope !86, !noalias !87 %330 = icmp ult i64 %328, %bitcast114, !dbg !439 %331 = xor i1 %330, true, !dbg !437 br i1 %331, label %L402, label %L401, !dbg !437 L401: ; preds = %L394 br label %L405, !dbg !437 L402: ; preds = %L394 %332 = getelementptr inbounds i8, ptr %"new::Tuple146", i32 0, !dbg !437 store i64 %value_phi20, ptr %332, align 8, !dbg !437, !tbaa !84, !alias.scope !86, !noalias !87 %333 = addrspacecast ptr %"new::Tuple146" to ptr addrspace(11), !dbg !437 call void @julia_throw_boundserror_35024(ptr addrspace(10) %.Tnext13, ptr addrspace(11) nocapture readonly %333) #26, !dbg !437 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !437 unreachable, !dbg !437 L405: ; preds = %L401, %L389 %334 = addrspacecast ptr addrspace(10) %.Tnext13 to ptr addrspace(11), !dbg !442 %335 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %334, i32 0, i32 0, !dbg !442 %memoryref_data115 = load ptr, ptr addrspace(11) %335, align 8, !dbg !442, !tbaa !225, !alias.scope !228, !noalias !229 %336 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %334, i32 0, i32 1, !dbg !442 %memoryref_mem135 = load ptr addrspace(10), ptr addrspace(11) %336, align 8, !dbg !442, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %337 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data115, 0, !dbg !442 %.Tnext13.ref = insertvalue { ptr, ptr addrspace(10) } %337, ptr addrspace(10) %memoryref_mem135, 1, !dbg !442 %memoryref_offset117 = sub i64 %value_phi20, 1, !dbg !443 %338 = addrspacecast ptr addrspace(10) %memoryref_mem135 to ptr addrspace(11), !dbg !443 %339 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %338, i32 0, i32 0, !dbg !443 %memory_len118 = load i64, ptr addrspace(11) %339, align 8, !dbg !443, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %340 = add nuw i64 %memory_len118, %memory_len118, !dbg !443 %341 = add i64 %memoryref_offset117, %memory_len118, !dbg !443 %memoryref_ovflw119 = icmp uge i64 %341, %340, !dbg !443 %memoryref_byteoffset120 = mul i64 %memoryref_offset117, 8, !dbg !443 %memoryref_data_byteoffset121 = getelementptr i8, ptr %memoryref_data115, i64 %memoryref_byteoffset120, !dbg !443 %342 = addrspacecast ptr addrspace(10) %memoryref_mem135 to ptr addrspace(11), !dbg !443 %343 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %342, i32 0, i32 0, !dbg !443 %memory_len122 = load i64, ptr addrspace(11) %343, align 8, !dbg !443, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %344 = addrspacecast ptr addrspace(10) %memoryref_mem135 to ptr addrspace(11), !dbg !443 %memory_data_ptr123 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %344, i32 0, i32 1, !dbg !443 %memory_data124 = load ptr, ptr addrspace(11) %memory_data_ptr123, align 8, !dbg !443, !tbaa !236, !alias.scope !228, !noalias !229, !nonnull !0 %345 = ptrtoint ptr %memory_data124 to i64, !dbg !443 %346 = ptrtoint ptr %memoryref_data_byteoffset121 to i64, !dbg !443 %347 = sub i64 %346, %345, !dbg !443 %memoryref_bytelen125 = mul nuw nsw i64 %memory_len122, 8, !dbg !443 %memoryref_isinbounds126 = icmp ult i64 %347, %memoryref_bytelen125, !dbg !443 %348 = xor i1 %memoryref_ovflw119, true, !dbg !443 %"memoryref_isinbounds¬ovflw127" = and i1 %348, %memoryref_isinbounds126, !dbg !443 br i1 %"memoryref_isinbounds¬ovflw127", label %idxend133, label %oob128, !dbg !443 L409: ; preds = %load138 br label %L410, !dbg !438 L410: ; preds = %L409 %349 = icmp eq i64 %value_phi21, %value_phi16, !dbg !444 %350 = xor i1 %349, true, !dbg !168 br i1 %350, label %L413, label %L412, !dbg !168 L412: ; preds = %L410 br label %L415, !dbg !168 L413: ; preds = %L410 %351 = add i64 %value_phi21, 1, !dbg !445 br label %L415, !dbg !168 L415: ; preds = %L413, %L412 %value_phi140 = phi i64 [ %351, %L413 ], [ undef, %L412 ] %value_phi141 = phi i64 [ %351, %L413 ], [ undef, %L412 ] %value_phi142 = phi i8 [ 1, %L412 ], [ 0, %L413 ] %352 = trunc i8 %value_phi142 to i1, !dbg !170 %353 = xor i1 %352, true, !dbg !170 %354 = xor i1 %353, true, !dbg !170 br i1 %354, label %L421, label %L420, !dbg !170 L420: ; preds = %L415 br label %L311, !dbg !420 L421: ; preds = %L415, %L306 br label %L422, !dbg !447 L422: ; preds = %L421 %355 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !448 %.tsteps_ptr = getelementptr inbounds i8, ptr addrspace(11) %355, i32 32, !dbg !448 %.tsteps = load i64, ptr addrspace(11) %.tsteps_ptr, align 8, !dbg !448, !tbaa !63, !alias.scope !40, !noalias !41 %356 = add i64 %.tsteps, 1, !dbg !450 %357 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !451 %.tsteps_ptr143 = getelementptr inbounds i8, ptr addrspace(11) %357, i32 32, !dbg !451 store i64 %356, ptr addrspace(11) %.tsteps_ptr143, align 8, !dbg !451, !tbaa !63, !alias.scope !40, !noalias !41 %358 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !453 %.tsteps_ptr144 = getelementptr inbounds i8, ptr addrspace(11) %358, i32 32, !dbg !453 %.tsteps145 = load i64, ptr addrspace(11) %.tsteps_ptr144, align 8, !dbg !453, !tbaa !63, !alias.scope !40, !noalias !41 %359 = getelementptr inbounds i8, ptr addrspace(11) %"#self#::#sumheat##2#sumheat##3", i32 8, !dbg !454 %.unbox = load i64, ptr addrspace(11) %359, align 8, !dbg !455, !tbaa !23, !alias.scope !26, !noalias !29 %360 = icmp sle i64 %.tsteps145, %.unbox, !dbg !455 %361 = zext i1 %360 to i8, !dbg !454 ret i8 %361, !dbg !454 oob: ; preds = %L327 %"+Core.GenericMemoryRef#35017" = load ptr, ptr @_Core_GenericMemoryRef_35017, align 8, !dbg !424, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %GenericMemoryRef = ptrtoint ptr %"+Core.GenericMemoryRef#35017" to i64, !dbg !424 %362 = inttoptr i64 %GenericMemoryRef to ptr, !dbg !424 %current_task23 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !424 %363 = addrspacecast ptr %362 to ptr addrspace(10), !dbg !424 %"box::GenericMemoryRef" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task23, i64 16, ptr addrspace(10) %363) #25, !dbg !424 %364 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef" to ptr addrspace(11), !dbg !424 store { ptr, ptr addrspace(10) } %.Tlast15.ref, ptr addrspace(11) %364, align 8, !dbg !424, !tbaa !36, !alias.scope !40, !noalias !41 %365 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef" to ptr addrspace(12), !dbg !424 call void @ijl_bounds_error_int(ptr addrspace(12) %365, i64 %value_phi20), !dbg !424 unreachable, !dbg !424 idxend: ; preds = %L327 %366 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset, 0, !dbg !424 %memory_ref = insertvalue { ptr, ptr addrspace(10) } %366, ptr addrspace(10) %memoryref_mem, 1, !dbg !424 %367 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !424 %368 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %367, i32 0, i32 0, !dbg !424 %memory_len24 = load i64, ptr addrspace(11) %368, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %369 = icmp eq i64 %memory_len24, 0, !dbg !424 br i1 %369, label %oob25, label %load, !dbg !424 oob25: ; preds = %idxend %370 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(12), !dbg !424 call void @ijl_bounds_error_int(ptr addrspace(12) %370, i64 1), !dbg !424 unreachable, !dbg !424 load: ; preds = %idxend %371 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem, ptr %memoryref_data), !dbg !424 %memoryref_data26 = getelementptr inbounds i8, ptr addrspace(13) %371, i64 %memoryref_byteoffset, !dbg !424 %372 = load double, ptr addrspace(13) %memoryref_data26, align 8, !dbg !424, !tbaa !456, !alias.scope !40, !noalias !41 br label %L331, !dbg !424 oob44: ; preds = %L346 %"+Core.GenericMemoryRef#3501745" = load ptr, ptr @_Core_GenericMemoryRef_35017, align 8, !dbg !424, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %GenericMemoryRef46 = ptrtoint ptr %"+Core.GenericMemoryRef#3501745" to i64, !dbg !424 %373 = inttoptr i64 %GenericMemoryRef46 to ptr, !dbg !424 %current_task47 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !424 %374 = addrspacecast ptr %373 to ptr addrspace(10), !dbg !424 %"box::GenericMemoryRef48" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task47, i64 16, ptr addrspace(10) %374) #25, !dbg !424 %375 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef48" to ptr addrspace(11), !dbg !424 store { ptr, ptr addrspace(10) } %.Tlast15.ref30, ptr addrspace(11) %375, align 8, !dbg !424, !tbaa !36, !alias.scope !40, !noalias !41 %376 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef48" to ptr addrspace(12), !dbg !424 call void @ijl_bounds_error_int(ptr addrspace(12) %376, i64 %258), !dbg !424 unreachable, !dbg !424 idxend49: ; preds = %L346 %377 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset37, 0, !dbg !424 %memory_ref50 = insertvalue { ptr, ptr addrspace(10) } %377, ptr addrspace(10) %memoryref_mem51, 1, !dbg !424 %378 = addrspacecast ptr addrspace(10) %memoryref_mem51 to ptr addrspace(11), !dbg !424 %379 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %378, i32 0, i32 0, !dbg !424 %memory_len52 = load i64, ptr addrspace(11) %379, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %380 = icmp eq i64 %memory_len52, 0, !dbg !424 br i1 %380, label %oob53, label %load54, !dbg !424 oob53: ; preds = %idxend49 %381 = addrspacecast ptr addrspace(10) %memoryref_mem51 to ptr addrspace(12), !dbg !424 call void @ijl_bounds_error_int(ptr addrspace(12) %381, i64 1), !dbg !424 unreachable, !dbg !424 load54: ; preds = %idxend49 %382 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem51, ptr %memoryref_data31), !dbg !424 %memoryref_data55 = getelementptr inbounds i8, ptr addrspace(13) %382, i64 %memoryref_byteoffset36, !dbg !424 %383 = load double, ptr addrspace(13) %memoryref_data55, align 8, !dbg !424, !tbaa !456, !alias.scope !40, !noalias !41 br label %L350, !dbg !424 oob73: ; preds = %L364 %"+Core.GenericMemoryRef#3501774" = load ptr, ptr @_Core_GenericMemoryRef_35017, align 8, !dbg !424, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %GenericMemoryRef75 = ptrtoint ptr %"+Core.GenericMemoryRef#3501774" to i64, !dbg !424 %384 = inttoptr i64 %GenericMemoryRef75 to ptr, !dbg !424 %current_task76 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !424 %385 = addrspacecast ptr %384 to ptr addrspace(10), !dbg !424 %"box::GenericMemoryRef77" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task76, i64 16, ptr addrspace(10) %385) #25, !dbg !424 %386 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef77" to ptr addrspace(11), !dbg !424 store { ptr, ptr addrspace(10) } %.Tlast15.ref59, ptr addrspace(11) %386, align 8, !dbg !424, !tbaa !36, !alias.scope !40, !noalias !41 %387 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef77" to ptr addrspace(12), !dbg !424 call void @ijl_bounds_error_int(ptr addrspace(12) %387, i64 %value_phi20), !dbg !424 unreachable, !dbg !424 idxend78: ; preds = %L364 %388 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset66, 0, !dbg !424 %memory_ref79 = insertvalue { ptr, ptr addrspace(10) } %388, ptr addrspace(10) %memoryref_mem80, 1, !dbg !424 %389 = addrspacecast ptr addrspace(10) %memoryref_mem80 to ptr addrspace(11), !dbg !424 %390 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %389, i32 0, i32 0, !dbg !424 %memory_len81 = load i64, ptr addrspace(11) %390, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %391 = icmp eq i64 %memory_len81, 0, !dbg !424 br i1 %391, label %oob82, label %load83, !dbg !424 oob82: ; preds = %idxend78 %392 = addrspacecast ptr addrspace(10) %memoryref_mem80 to ptr addrspace(12), !dbg !424 call void @ijl_bounds_error_int(ptr addrspace(12) %392, i64 1), !dbg !424 unreachable, !dbg !424 load83: ; preds = %idxend78 %393 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem80, ptr %memoryref_data60), !dbg !424 %memoryref_data84 = getelementptr inbounds i8, ptr addrspace(13) %393, i64 %memoryref_byteoffset65, !dbg !424 %394 = load double, ptr addrspace(13) %memoryref_data84, align 8, !dbg !424, !tbaa !456, !alias.scope !40, !noalias !41 br label %L368, !dbg !424 oob102: ; preds = %L385 %"+Core.GenericMemoryRef#35017103" = load ptr, ptr @_Core_GenericMemoryRef_35017, align 8, !dbg !424, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %GenericMemoryRef104 = ptrtoint ptr %"+Core.GenericMemoryRef#35017103" to i64, !dbg !424 %395 = inttoptr i64 %GenericMemoryRef104 to ptr, !dbg !424 %current_task105 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !424 %396 = addrspacecast ptr %395 to ptr addrspace(10), !dbg !424 %"box::GenericMemoryRef106" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task105, i64 16, ptr addrspace(10) %396) #25, !dbg !424 %397 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef106" to ptr addrspace(11), !dbg !424 store { ptr, ptr addrspace(10) } %.Tlast15.ref88, ptr addrspace(11) %397, align 8, !dbg !424, !tbaa !36, !alias.scope !40, !noalias !41 %398 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef106" to ptr addrspace(12), !dbg !424 call void @ijl_bounds_error_int(ptr addrspace(12) %398, i64 %303), !dbg !424 unreachable, !dbg !424 idxend107: ; preds = %L385 %399 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset95, 0, !dbg !424 %memory_ref108 = insertvalue { ptr, ptr addrspace(10) } %399, ptr addrspace(10) %memoryref_mem109, 1, !dbg !424 %400 = addrspacecast ptr addrspace(10) %memoryref_mem109 to ptr addrspace(11), !dbg !424 %401 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %400, i32 0, i32 0, !dbg !424 %memory_len110 = load i64, ptr addrspace(11) %401, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %402 = icmp eq i64 %memory_len110, 0, !dbg !424 br i1 %402, label %oob111, label %load112, !dbg !424 oob111: ; preds = %idxend107 %403 = addrspacecast ptr addrspace(10) %memoryref_mem109 to ptr addrspace(12), !dbg !424 call void @ijl_bounds_error_int(ptr addrspace(12) %403, i64 1), !dbg !424 unreachable, !dbg !424 load112: ; preds = %idxend107 %404 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem109, ptr %memoryref_data89), !dbg !424 %memoryref_data113 = getelementptr inbounds i8, ptr addrspace(13) %404, i64 %memoryref_byteoffset94, !dbg !424 %405 = load double, ptr addrspace(13) %memoryref_data113, align 8, !dbg !424, !tbaa !456, !alias.scope !40, !noalias !41 br label %L389, !dbg !424 oob128: ; preds = %L405 %"+Core.GenericMemoryRef#35017129" = load ptr, ptr @_Core_GenericMemoryRef_35017, align 8, !dbg !443, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %GenericMemoryRef130 = ptrtoint ptr %"+Core.GenericMemoryRef#35017129" to i64, !dbg !443 %406 = inttoptr i64 %GenericMemoryRef130 to ptr, !dbg !443 %current_task131 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !443 %407 = addrspacecast ptr %406 to ptr addrspace(10), !dbg !443 %"box::GenericMemoryRef132" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task131, i64 16, ptr addrspace(10) %407) #25, !dbg !443 %408 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef132" to ptr addrspace(11), !dbg !443 store { ptr, ptr addrspace(10) } %.Tnext13.ref, ptr addrspace(11) %408, align 8, !dbg !443, !tbaa !36, !alias.scope !40, !noalias !41 %409 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef132" to ptr addrspace(12), !dbg !443 call void @ijl_bounds_error_int(ptr addrspace(12) %409, i64 %value_phi20), !dbg !443 unreachable, !dbg !443 idxend133: ; preds = %L405 %410 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset121, 0, !dbg !443 %memory_ref134 = insertvalue { ptr, ptr addrspace(10) } %410, ptr addrspace(10) %memoryref_mem135, 1, !dbg !443 %411 = addrspacecast ptr addrspace(10) %memoryref_mem135 to ptr addrspace(11), !dbg !443 %412 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %411, i32 0, i32 0, !dbg !443 %memory_len136 = load i64, ptr addrspace(11) %412, align 8, !dbg !443, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %413 = icmp eq i64 %memory_len136, 0, !dbg !443 br i1 %413, label %oob137, label %load138, !dbg !443 oob137: ; preds = %idxend133 %414 = addrspacecast ptr addrspace(10) %memoryref_mem135 to ptr addrspace(12), !dbg !443 call void @ijl_bounds_error_int(ptr addrspace(12) %414, i64 1), !dbg !443 unreachable, !dbg !443 load138: ; preds = %idxend133 %415 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem135, ptr %memoryref_data115), !dbg !443 %memoryref_data139 = getelementptr inbounds i8, ptr addrspace(13) %415, i64 %memoryref_byteoffset120, !dbg !443 store double %327, ptr addrspace(13) %memoryref_data139, align 8, !dbg !443, !tbaa !456, !alias.scope !40, !noalias !41 br label %L409, !dbg !458 after_error: ; No predecessors! call void @llvm.trap(), !dbg !437 unreachable, !dbg !437 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !437 unreachable, !dbg !437 after_error148: ; No predecessors! call void @llvm.trap(), !dbg !414 unreachable, !dbg !414 after_noret149: ; No predecessors! call void @llvm.trap(), !dbg !414 unreachable, !dbg !414 after_error151: ; No predecessors! call void @llvm.trap(), !dbg !414 unreachable, !dbg !414 after_noret152: ; No predecessors! call void @llvm.trap(), !dbg !414 unreachable, !dbg !414 after_error154: ; No predecessors! call void @llvm.trap(), !dbg !414 unreachable, !dbg !414 after_noret155: ; No predecessors! call void @llvm.trap(), !dbg !414 unreachable, !dbg !414 after_error157: ; No predecessors! call void @llvm.trap(), !dbg !414 unreachable, !dbg !414 after_noret158: ; No predecessors! call void @llvm.trap(), !dbg !414 unreachable, !dbg !414 oob185: ; preds = %L107 %"+Core.GenericMemoryRef#35017186" = load ptr, ptr @_Core_GenericMemoryRef_35017, align 8, !dbg !230, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %GenericMemoryRef187 = ptrtoint ptr %"+Core.GenericMemoryRef#35017186" to i64, !dbg !230 %416 = inttoptr i64 %GenericMemoryRef187 to ptr, !dbg !230 %current_task188 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !230 %417 = addrspacecast ptr %416 to ptr addrspace(10), !dbg !230 %"box::GenericMemoryRef189" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task188, i64 16, ptr addrspace(10) %417) #25, !dbg !230 %418 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef189" to ptr addrspace(11), !dbg !230 store { ptr, ptr addrspace(10) } %.Tlast.ref, ptr addrspace(11) %418, align 8, !dbg !230, !tbaa !36, !alias.scope !40, !noalias !41 %419 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef189" to ptr addrspace(12), !dbg !230 call void @ijl_bounds_error_int(ptr addrspace(12) %419, i64 1), !dbg !230 unreachable, !dbg !230 idxend190: ; preds = %L107 %420 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset178, 0, !dbg !230 %memory_ref191 = insertvalue { ptr, ptr addrspace(10) } %420, ptr addrspace(10) %memoryref_mem175, 1, !dbg !230 %421 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !224 %422 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %421, i32 0, i32 0, !dbg !224 %memoryref_data192 = load ptr, ptr addrspace(11) %422, align 8, !dbg !224, !tbaa !225, !alias.scope !228, !noalias !229 %423 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %421, i32 0, i32 1, !dbg !224 %memoryref_mem193 = load ptr addrspace(10), ptr addrspace(11) %423, align 8, !dbg !224, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %424 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data192, 0, !dbg !224 %.Tnext.ref = insertvalue { ptr, ptr addrspace(10) } %424, ptr addrspace(10) %memoryref_mem193, 1, !dbg !224 %425 = addrspacecast ptr addrspace(10) %memoryref_mem193 to ptr addrspace(11), !dbg !230 %426 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %425, i32 0, i32 0, !dbg !230 %memory_len194 = load i64, ptr addrspace(11) %426, align 8, !dbg !230, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %427 = add nuw i64 %memory_len194, %memory_len194, !dbg !230 %428 = add i64 0, %memory_len194, !dbg !230 %memoryref_ovflw195 = icmp uge i64 %428, %427, !dbg !230 %memoryref_data_byteoffset196 = getelementptr i8, ptr %memoryref_data192, i64 0, !dbg !230 %429 = addrspacecast ptr addrspace(10) %memoryref_mem193 to ptr addrspace(11), !dbg !230 %430 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %429, i32 0, i32 0, !dbg !230 %memory_len197 = load i64, ptr addrspace(11) %430, align 8, !dbg !230, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %431 = addrspacecast ptr addrspace(10) %memoryref_mem193 to ptr addrspace(11), !dbg !230 %memory_data_ptr198 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %431, i32 0, i32 1, !dbg !230 %memory_data199 = load ptr, ptr addrspace(11) %memory_data_ptr198, align 8, !dbg !230, !tbaa !236, !alias.scope !228, !noalias !229, !nonnull !0 %432 = ptrtoint ptr %memory_data199 to i64, !dbg !230 %433 = ptrtoint ptr %memoryref_data_byteoffset196 to i64, !dbg !230 %434 = sub i64 %433, %432, !dbg !230 %memoryref_bytelen200 = mul nuw nsw i64 %memory_len197, 8, !dbg !230 %memoryref_isinbounds201 = icmp ult i64 %434, %memoryref_bytelen200, !dbg !230 %435 = xor i1 %memoryref_ovflw195, true, !dbg !230 %"memoryref_isinbounds¬ovflw202" = and i1 %435, %memoryref_isinbounds201, !dbg !230 br i1 %"memoryref_isinbounds¬ovflw202", label %idxend208, label %oob203, !dbg !230 oob203: ; preds = %idxend190 %"+Core.GenericMemoryRef#35017204" = load ptr, ptr @_Core_GenericMemoryRef_35017, align 8, !dbg !230, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %GenericMemoryRef205 = ptrtoint ptr %"+Core.GenericMemoryRef#35017204" to i64, !dbg !230 %436 = inttoptr i64 %GenericMemoryRef205 to ptr, !dbg !230 %current_task206 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !230 %437 = addrspacecast ptr %436 to ptr addrspace(10), !dbg !230 %"box::GenericMemoryRef207" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task206, i64 16, ptr addrspace(10) %437) #25, !dbg !230 %438 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef207" to ptr addrspace(11), !dbg !230 store { ptr, ptr addrspace(10) } %.Tnext.ref, ptr addrspace(11) %438, align 8, !dbg !230, !tbaa !36, !alias.scope !40, !noalias !41 %439 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef207" to ptr addrspace(12), !dbg !230 call void @ijl_bounds_error_int(ptr addrspace(12) %439, i64 1), !dbg !230 unreachable, !dbg !230 idxend208: ; preds = %idxend190 %440 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset196, 0, !dbg !230 %memory_ref209 = insertvalue { ptr, ptr addrspace(10) } %440, ptr addrspace(10) %memoryref_mem193, 1, !dbg !230 %441 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %memoryref_mem175), !dbg !459 %442 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %memoryref_mem193), !dbg !460 %memory_ref191.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref191, 0, !dbg !461 %memory_ref209.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref209, 0, !dbg !461 %.Tnext.size12.unbox210 = load i64, ptr %.Tnext.size12, align 8, !dbg !467, !tbaa !84, !alias.scope !86, !noalias !87 %443 = mul i64 %.Tnext.size12.unbox210, 8, !dbg !467 %444 = lshr i64 %443, 63, !dbg !469 %445 = select i1 false, i64 0, i64 %444, !dbg !469 %446 = trunc i64 %445 to i8, !dbg !469 %447 = icmp eq i8 %446, 1, !dbg !469 %448 = xor i1 %447, true, !dbg !238 br i1 %448, label %L126, label %L122, !dbg !238 after_error211: ; No predecessors! call void @llvm.trap(), !dbg !238 unreachable, !dbg !238 after_noret212: ; No predecessors! call void @llvm.trap(), !dbg !238 unreachable, !dbg !238 after_error213: ; No predecessors! call void @llvm.trap(), !dbg !212 unreachable, !dbg !212 after_noret214: ; No predecessors! call void @llvm.trap(), !dbg !212 unreachable, !dbg !212 after_error215: ; No predecessors! call void @llvm.trap(), !dbg !181 unreachable, !dbg !181 after_noret216: ; No predecessors! call void @llvm.trap(), !dbg !181 unreachable, !dbg !181 after_error217: ; No predecessors! call void @llvm.trap(), !dbg !152 unreachable, !dbg !152 after_noret218: ; No predecessors! call void @llvm.trap(), !dbg !152 unreachable, !dbg !152 oob244: ; preds = %L252 %"+Core.GenericMemoryRef#35017245" = load ptr, ptr @_Core_GenericMemoryRef_35017, align 8, !dbg !388, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %GenericMemoryRef246 = ptrtoint ptr %"+Core.GenericMemoryRef#35017245" to i64, !dbg !388 %449 = inttoptr i64 %GenericMemoryRef246 to ptr, !dbg !388 %current_task247 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !388 %450 = addrspacecast ptr %449 to ptr addrspace(10), !dbg !388 %"box::GenericMemoryRef248" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task247, i64 16, ptr addrspace(10) %450) #25, !dbg !388 %451 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef248" to ptr addrspace(11), !dbg !388 store { ptr, ptr addrspace(10) } %value_phi219.ref, ptr addrspace(11) %451, align 8, !dbg !388, !tbaa !36, !alias.scope !40, !noalias !41 %452 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef248" to ptr addrspace(12), !dbg !388 call void @ijl_bounds_error_int(ptr addrspace(12) %452, i64 %174), !dbg !388 unreachable, !dbg !388 idxend249: ; preds = %L252 %453 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset237, 0, !dbg !388 %memory_ref250 = insertvalue { ptr, ptr addrspace(10) } %453, ptr addrspace(10) %memoryref_mem251, 1, !dbg !388 %454 = addrspacecast ptr addrspace(10) %memoryref_mem251 to ptr addrspace(11), !dbg !388 %455 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %454, i32 0, i32 0, !dbg !388 %memory_len252 = load i64, ptr addrspace(11) %455, align 8, !dbg !388, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %456 = icmp eq i64 %memory_len252, 0, !dbg !388 br i1 %456, label %oob253, label %load254, !dbg !388 oob253: ; preds = %idxend249 %457 = addrspacecast ptr addrspace(10) %memoryref_mem251 to ptr addrspace(12), !dbg !388 call void @ijl_bounds_error_int(ptr addrspace(12) %457, i64 1), !dbg !388 unreachable, !dbg !388 load254: ; preds = %idxend249 %458 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem251, ptr %memoryref_data231), !dbg !388 %memoryref_data255 = getelementptr inbounds i8, ptr addrspace(13) %458, i64 %memoryref_byteoffset236, !dbg !388 %459 = load double, ptr addrspace(13) %memoryref_data255, align 8, !dbg !388, !tbaa !456, !alias.scope !40, !noalias !41 br i1 false, label %L276, label %L257, !dbg !390 oob273: ; preds = %L276 %"+Core.GenericMemoryRef#35017274" = load ptr, ptr @_Core_GenericMemoryRef_35017, align 8, !dbg !397, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %GenericMemoryRef275 = ptrtoint ptr %"+Core.GenericMemoryRef#35017274" to i64, !dbg !397 %460 = inttoptr i64 %GenericMemoryRef275 to ptr, !dbg !397 %current_task276 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !397 %461 = addrspacecast ptr %460 to ptr addrspace(10), !dbg !397 %"box::GenericMemoryRef277" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task276, i64 16, ptr addrspace(10) %461) #25, !dbg !397 %462 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef277" to ptr addrspace(11), !dbg !397 store { ptr, ptr addrspace(10) } %.Tlast.ref259, ptr addrspace(11) %462, align 8, !dbg !397, !tbaa !36, !alias.scope !40, !noalias !41 %463 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef277" to ptr addrspace(12), !dbg !397 call void @ijl_bounds_error_int(ptr addrspace(12) %463, i64 %166), !dbg !397 unreachable, !dbg !397 idxend278: ; preds = %L276 %464 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset266, 0, !dbg !397 %memory_ref279 = insertvalue { ptr, ptr addrspace(10) } %464, ptr addrspace(10) %memoryref_mem280, 1, !dbg !397 %465 = addrspacecast ptr addrspace(10) %memoryref_mem280 to ptr addrspace(11), !dbg !397 %466 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %465, i32 0, i32 0, !dbg !397 %memory_len281 = load i64, ptr addrspace(11) %466, align 8, !dbg !397, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %467 = icmp eq i64 %memory_len281, 0, !dbg !397 br i1 %467, label %oob282, label %load283, !dbg !397 oob282: ; preds = %idxend278 %468 = addrspacecast ptr addrspace(10) %memoryref_mem280 to ptr addrspace(12), !dbg !397 call void @ijl_bounds_error_int(ptr addrspace(12) %468, i64 1), !dbg !397 unreachable, !dbg !397 load283: ; preds = %idxend278 %469 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem280, ptr %memoryref_data260), !dbg !397 %memoryref_data284 = getelementptr inbounds i8, ptr addrspace(13) %469, i64 %memoryref_byteoffset265, !dbg !397 store double %459, ptr addrspace(13) %memoryref_data284, align 8, !dbg !397, !tbaa !456, !alias.scope !40, !noalias !41 %470 = add i64 %value_phi223, 1, !dbg !471 br label %L220, !dbg !168, !llvm.loop !473 after_error286: ; No predecessors! call void @llvm.trap(), !dbg !390 unreachable, !dbg !390 after_noret287: ; No predecessors! call void @llvm.trap(), !dbg !390 unreachable, !dbg !390 after_error289: ; No predecessors! call void @llvm.trap(), !dbg !385 unreachable, !dbg !385 after_noret290: ; No predecessors! call void @llvm.trap(), !dbg !385 unreachable, !dbg !385 after_error292: ; No predecessors! call void @llvm.trap(), !dbg !367 unreachable, !dbg !367 after_noret293: ; No predecessors! call void @llvm.trap(), !dbg !367 unreachable, !dbg !367 after_error294: ; No predecessors! call void @llvm.trap(), !dbg !355 unreachable, !dbg !355 after_noret295: ; No predecessors! call void @llvm.trap(), !dbg !355 unreachable, !dbg !355 emptymem: ; preds = %L166 %"jl_global#35047" = load ptr, ptr @jl_global_35047, align 8, !dbg !298, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !35, !align !46 %471 = addrspacecast ptr %"jl_global#35047" to ptr addrspace(10), !dbg !298 br label %retval, !dbg !298 nonemptymem: ; preds = %L166 %"+Core.GenericMemory#35048" = load ptr, ptr @_Core_GenericMemory_35048, align 8, !dbg !298, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %472 = call { i64, i1 } @llvm.smul.with.overflow.i64(i64 %.Tnext.size308.unbox, i64 8), !dbg !298 %473 = extractvalue { i64, i1 } %472, 0, !dbg !298 %474 = extractvalue { i64, i1 } %472, 1, !dbg !298 %475 = icmp slt i64 %.Tnext.size308.unbox, 0, !dbg !298 %476 = or i1 %474, %475, !dbg !298 %477 = icmp slt i64 9223372036854775806, %473, !dbg !298 %478 = or i1 %476, %477, !dbg !298 %479 = xor i1 %478, true, !dbg !298 br i1 %479, label %pass, label %fail, !dbg !298 fail: ; preds = %nonemptymem call void @jl_argument_error(ptr @_j_str_invalid_GenericMemory_siz____5), !dbg !298 unreachable, !dbg !298 pass: ; preds = %nonemptymem %current_task309 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !298 %ptls_field310 = getelementptr inbounds i8, ptr %current_task309, i32 168, !dbg !298 %ptls_load311 = load ptr, ptr %ptls_field310, align 8, !dbg !298, !tbaa !19 %"Memory{Float64}[]" = call noalias nonnull align 16 ptr addrspace(10) @jl_alloc_genericmemory_unchecked(ptr %ptls_load311, i64 %473, ptr %"+Core.GenericMemory#35048") #28, !dbg !298 %480 = addrspacecast ptr addrspace(10) %"Memory{Float64}[]" to ptr addrspace(11), !dbg !298 %481 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %480, i32 0, i32 0, !dbg !298 store i64 %.Tnext.size308.unbox, ptr addrspace(11) %481, align 8, !dbg !298, !tbaa !233, !alias.scope !228, !noalias !229 br label %retval, !dbg !298 retval: ; preds = %pass, %emptymem %482 = phi ptr addrspace(10) [ %471, %emptymem ], [ %"Memory{Float64}[]", %pass ], !dbg !298 %483 = addrspacecast ptr addrspace(10) %482 to ptr addrspace(11), !dbg !474 %memory_data_ptr312 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %483, i32 0, i32 1, !dbg !474 %memory_data313 = load ptr, ptr addrspace(11) %memory_data_ptr312, align 8, !dbg !474, !tbaa !236, !alias.scope !228, !noalias !229, !nonnull !0 %484 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memory_data313, 0, !dbg !474 %memory_ref314 = insertvalue { ptr, ptr addrspace(10) } %484, ptr addrspace(10) %482, 1, !dbg !474 %485 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !475 %.Tnext.size_ptr315 = getelementptr inbounds i8, ptr addrspace(11) %485, i32 16, !dbg !475 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tnext.size316, ptr addrspace(11) align 8 %.Tnext.size_ptr315, i64 8, i1 false), !dbg !475, !tbaa !47, !alias.scope !76, !noalias !77 %486 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %482), !dbg !477 %487 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %134), !dbg !478 %memory_ref314.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref314, 0, !dbg !479 %.Tnext.ref306.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %.Tnext.ref306, 0, !dbg !479 %.Tnext.size316.unbox = load i64, ptr %.Tnext.size316, align 8, !dbg !481, !tbaa !84, !alias.scope !86, !noalias !87 %488 = mul i64 %.Tnext.size316.unbox, 8, !dbg !481 %489 = lshr i64 %488, 63, !dbg !482 %490 = select i1 false, i64 0, i64 %489, !dbg !482 %491 = trunc i64 %490 to i8, !dbg !482 %492 = icmp eq i8 %491, 1, !dbg !482 %493 = xor i1 %492, true, !dbg !300 br i1 %493, label %L184, label %L182, !dbg !300 after_error321: ; No predecessors! call void @llvm.trap(), !dbg !300 unreachable, !dbg !300 after_noret322: ; No predecessors! call void @llvm.trap(), !dbg !300 unreachable, !dbg !300 after_error330: ; No predecessors! call void @llvm.trap(), !dbg !120 unreachable, !dbg !120 after_noret331: ; No predecessors! call void @llvm.trap(), !dbg !120 unreachable, !dbg !120 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !101 unreachable, !dbg !101 after_noret333: ; No predecessors! call void @llvm.trap(), !dbg !101 unreachable, !dbg !101 } expectLen=1 swiftself=false sret=nothing returnRoots=nothing mi.specTypes.parameters=svec(Main.var"#sumheat##2#sumheat##3"{Main.Heat, Int64}) retRemoved=false parmsRemoved=UInt64[] Stacktrace: [1] julia_activity_rule(f::LLVM.Function) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/rules/activityrules.jl:48 [2] handle_compiled(state::Enzyme.Compiler.HandlerState, edges::Vector{Any}, run_enzyme::Bool, mode::Enzyme.API.CDerivativeMode, world::UInt64, method_table::Compiler.OverlayMethodTable, custom::Dict{String, LLVM.API.LLVMLinkage}, mod::LLVM.Module, mi::Core.MethodInstance, k_name::String, rettype::Type) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:628 [3] set_module_types!(interp::Enzyme.Compiler.Interpreter.EnzymeInterpreter{Nothing}, mod::LLVM.Module, primalf::LLVM.Function, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}, edges::Vector{Any}, run_enzyme::Bool, mode::Enzyme.API.CDerivativeMode) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:1220 [4] compile_unhooked(output::Symbol, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:4627 [5] compile(target::Symbol, job::GPUCompiler.CompilerJob; kwargs::@Kwargs{}) @ GPUCompiler ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:67 [6] compile @ ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:55 [inlined] [7] _thunk(job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}, postopt::Bool) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5960 [8] _thunk @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5958 [inlined] [9] cached_compilation @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6015 [inlined] [10] thunkbase(mi::Core.MethodInstance, World::UInt64, FA::Type{<:Annotation}, A::Type{<:Annotation}, TT::Type, Mode::Enzyme.API.CDerivativeMode, width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, edges::Vector{Any}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6131 [11] thunk_generator(world::UInt64, source::Union{LineNumberNode, Method}, FA::Type, A::Type, TT::Type, Mode::Enzyme.API.CDerivativeMode, Width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, self::Any, fakeworld::Any, fa::Type, a::Type, tt::Type, mode::Type, width::Type, modifiedbetween::Type, returnprimal::Type, shadowinit::Type, abi::Type, erriffuncwritten::Type, runtimeactivity::Type, strongzero::Type) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6275 [12] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:502 [inlined] [13] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:562 [inlined] [14] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:534 [inlined] [15] heat(scheme::Online_r2{Nothing}, tsteps::Int64) @ Main ~/.julia/packages/Checkpointing/ZAoTt/examples/heat.jl:63 [16] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:50 [inlined] [17] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:2042 [inlined] [18] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:46 [inlined] [19] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:2042 [inlined] [20] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:45 [inlined] [21] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [22] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:44 [inlined] [23] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [24] top-level scope @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:7 [25] include(mapexpr::Function, mod::Module, _path::String) @ Base ./Base.jl:310 [26] top-level scope @ none:6 [27] eval(m::Module, e::Any) @ Core ./boot.jl:489 [28] exec_options(opts::Base.JLOptions) @ Base ./client.jl:310 [29] _start() @ Base ./client.jl:577 [ Info: [Checkpointing] Number of checkpoints: 100 Online_r2 with verbose=1: Error During Test at /home/pkgeval/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:46 Got exception outside of a @test AssertionError: Enzyme Internal Error (expectLen != length(parameters(f))) define internal i8 @julia__sumheat__2_35098(ptr addrspace(11) nocapture noundef nonnull readonly align 8 dereferenceable(16) %"#self#::#sumheat##2#sumheat##3", ptr nocapture noundef nonnull readonly align 8 dereferenceable(8) %".roots.#self#") #9 !dbg !50 { top: %.Tlast.size = alloca i64, align 8 %"new::OneTo" = alloca [1 x i64], align 8 %"new::Tuple" = alloca [1 x [1 x i64]], align 8 %.Tnext.size = alloca i64, align 8 %.Tlast.size2 = alloca i64, align 8 %"new::Tuple4" = alloca [1 x [1 x i64]], align 8 %.Tnext.size8 = alloca i64, align 8 %.Tnext.size12 = alloca i64, align 8 %.Tlast15.size = alloca i64, align 8 %.Tlast15.size28 = alloca i64, align 8 %.Tlast15.size57 = alloca i64, align 8 %.Tlast15.size86 = alloca i64, align 8 %.Tnext13.size = alloca i64, align 8 %"new::Tuple146" = alloca [1 x i64], align 8 %"new::Tuple147" = alloca [1 x i64], align 8 %"new::Tuple150" = alloca [1 x i64], align 8 %"new::Tuple153" = alloca [1 x i64], align 8 %"new::Tuple156" = alloca [1 x i64], align 8 %"new::Tuple162" = alloca [1 x [2 x i64]], align 8 %.Tlast.size164 = alloca i64, align 8 %"new::Tuple169" = alloca [1 x [2 x i64]], align 8 %.Tnext.size171 = alloca i64, align 8 %value_phi219.size = alloca i64, align 8 %"new::Tuple220" = alloca [1 x i8], align 1 %"new::Extruded" = alloca [3 x i64], align 8 %"new::Tuple221" = alloca [3 x i64], align 8 %"new::Broadcasted" = alloca [4 x i64], align 8 %"new::Tuple225" = alloca [1 x i64], align 8 %value_phi219.size229 = alloca i64, align 8 %.Tlast.size257 = alloca i64, align 8 %"new::Tuple285" = alloca [1 x i64], align 8 %"new::Tuple288" = alloca [1 x i64], align 8 %"new::Tuple291" = alloca [1 x i64], align 8 %0 = alloca ptr addrspace(10), align 8 %.Tlast.size297 = alloca i64, align 8 %.Tnext.size299 = alloca i64, align 8 %.Tnext.size308 = alloca i64, align 8 %.Tnext.size316 = alloca i64, align 8 %.Tnext.size327 = alloca i64, align 8 %pgcstack = call ptr @julia.get_pgcstack() call void @llvm.memset.p0.i64(ptr align 8 %0, i8 0, i64 8, i1 false), !tbaa !19, !alias.scope !52, !noalias !53 %current_task = getelementptr inbounds i8, ptr %pgcstack, i32 -152 %ptls_field = getelementptr inbounds i8, ptr %current_task, i32 168 %ptls_load = load ptr, ptr %ptls_field, align 8, !tbaa !19 %1 = getelementptr inbounds i8, ptr %ptls_load, i32 16 %safepoint = load atomic ptr, ptr %1 monotonic, align 8, !tbaa !23 fence syncscope("singlethread") seq_cst call void @julia.safepoint(ptr %safepoint) fence syncscope("singlethread") seq_cst %2 = getelementptr inbounds i8, ptr %".roots.#self#", i32 0 %3 = load ptr addrspace(10), ptr %2, align 8, !tbaa !23, !alias.scope !26, !noalias !29 %4 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !54 %.Tlast_ptr = getelementptr inbounds i8, ptr addrspace(11) %4, i32 8, !dbg !54 %.Tlast = load atomic ptr addrspace(10), ptr addrspace(11) %.Tlast_ptr unordered, align 8, !dbg !54, !tbaa !63, !alias.scope !40, !noalias !41, !nonnull !0, !dereferenceable !65, !align !46 %5 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !66 %.Tnext = load atomic ptr addrspace(10), ptr addrspace(11) %5 unordered, align 8, !dbg !66, !tbaa !63, !alias.scope !40, !noalias !41, !nonnull !0, !dereferenceable !65, !align !46 %6 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !67 %.Tlast.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %6, i32 16, !dbg !67 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tlast.size, ptr addrspace(11) align 8 %.Tlast.size_ptr, i64 8, i1 false), !dbg !67, !tbaa !47, !alias.scope !76, !noalias !77 %7 = getelementptr inbounds i8, ptr %"new::OneTo", i32 0, !dbg !78 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %7, ptr align 8 %.Tlast.size, i64 8, i1 false), !dbg !78, !tbaa !84, !alias.scope !86, !noalias !87 %8 = getelementptr inbounds i8, ptr %"new::Tuple", i32 0, !dbg !81 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %8, ptr align 8 %"new::OneTo", i64 8, i1 false), !dbg !81, !tbaa !84, !alias.scope !86, !noalias !87 %9 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !88 %.Tnext.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %9, i32 16, !dbg !88 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tnext.size, ptr addrspace(11) align 8 %.Tnext.size_ptr, i64 8, i1 false), !dbg !88, !tbaa !47, !alias.scope !76, !noalias !77 %.Tlast.size.unbox = load i64, ptr %.Tlast.size, align 8, !dbg !94, !tbaa !84, !alias.scope !86, !noalias !87 %.Tnext.size.unbox = load i64, ptr %.Tnext.size, align 8, !dbg !94, !tbaa !84, !alias.scope !86, !noalias !87 %10 = icmp eq i64 %.Tlast.size.unbox, %.Tnext.size.unbox, !dbg !94 %11 = xor i1 %10, true, !dbg !99 br i1 %11, label %L16, label %L15, !dbg !99 L15: ; preds = %top %12 = zext i1 %10 to i8 br label %L18, !dbg !99 L16: ; preds = %top %.Tnext.size.unbox334 = load i64, ptr %.Tnext.size, align 8, !dbg !103, !tbaa !84, !alias.scope !86, !noalias !87 %13 = icmp eq i64 %.Tnext.size.unbox334, 1, !dbg !103 %14 = zext i1 %13 to i8 br label %L18, !dbg !103 L18: ; preds = %L16, %L15 %value_phi = phi i8 [ %12, %L15 ], [ %14, %L16 ] %15 = trunc i8 %value_phi to i1, !dbg !101 %16 = xor i1 %15, true, !dbg !101 br i1 %16, label %L21, label %L20, !dbg !101 L20: ; preds = %L18 br label %L24, !dbg !101 L21: ; preds = %L18 %"jl_global#35114" = load ptr, ptr @jl_global_35114, align 8, !dbg !101, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %17 = addrspacecast ptr %"jl_global#35114" to ptr addrspace(10), !dbg !101 %18 = call [1 x ptr addrspace(10)] @julia_DimensionMismatch_35135(ptr addrspace(10) %17), !dbg !101 %"+Main.Base.DimensionMismatch#35115" = load ptr, ptr @_Main_Base_DimensionMismatch_35115, align 8, !dbg !101, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %DimensionMismatch = ptrtoint ptr %"+Main.Base.DimensionMismatch#35115" to i64, !dbg !101 %19 = inttoptr i64 %DimensionMismatch to ptr, !dbg !101 %current_task332 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !101 %20 = addrspacecast ptr %19 to ptr addrspace(10), !dbg !101 %"box::DimensionMismatch" = call noalias nonnull align 8 dereferenceable(8) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task332, i64 8, ptr addrspace(10) %20) #25, !dbg !101 %21 = addrspacecast ptr addrspace(10) %"box::DimensionMismatch" to ptr addrspace(11), !dbg !101 store [1 x ptr addrspace(10)] %18, ptr addrspace(11) %21, align 8, !dbg !101, !tbaa !36, !alias.scope !40, !noalias !41 %22 = addrspacecast ptr addrspace(10) %"box::DimensionMismatch" to ptr addrspace(12), !dbg !101 call void @ijl_throw(ptr addrspace(12) %22), !dbg !101 unreachable, !dbg !101 L24: ; preds = %L20 br label %L25, !dbg !101 L25: ; preds = %L24 br label %L26, !dbg !104 L26: ; preds = %L25 %23 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !105 %.Tlast.size_ptr1 = getelementptr inbounds i8, ptr addrspace(11) %23, i32 16, !dbg !105 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tlast.size2, ptr addrspace(11) align 8 %.Tlast.size_ptr1, i64 8, i1 false), !dbg !105, !tbaa !47, !alias.scope !76, !noalias !77 %24 = getelementptr inbounds i8, ptr %"new::Tuple4", i32 0, !dbg !112 %25 = getelementptr inbounds i8, ptr %24, i32 0, !dbg !112 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %25, ptr align 8 %.Tlast.size2, i64 8, i1 false), !dbg !112, !tbaa !84, !alias.scope !86, !noalias !87 %.Tlast.size2.unbox = load i64, ptr %.Tlast.size2, align 8, !dbg !114, !tbaa !84, !alias.scope !86, !noalias !87 %.Tlast.size.unbox5 = load i64, ptr %.Tlast.size, align 8, !dbg !114, !tbaa !84, !alias.scope !86, !noalias !87 %26 = icmp eq i64 %.Tlast.size2.unbox, %.Tlast.size.unbox5, !dbg !114 %27 = zext i1 %26 to i8, !dbg !121 %28 = icmp eq i8 %27, 0, !dbg !121 %29 = xor i1 %28, true, !dbg !121 br i1 %29, label %L35, label %L34, !dbg !121 L34: ; preds = %L26 br label %L36, !dbg !122 L35: ; preds = %L26 br label %L36, !dbg !123 L36: ; preds = %L35, %L34 %value_phi6 = phi i8 [ 0, %L34 ], [ 1, %L35 ] br label %L38, !dbg !118 L38: ; preds = %L36 %30 = trunc i8 %value_phi6 to i1, !dbg !120 %31 = xor i1 %30, true, !dbg !120 br i1 %31, label %L284, label %L39, !dbg !120 L39: ; preds = %L38 %32 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !124 %.Tnext.size_ptr7 = getelementptr inbounds i8, ptr addrspace(11) %32, i32 16, !dbg !124 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tnext.size8, ptr addrspace(11) align 8 %.Tnext.size_ptr7, i64 8, i1 false), !dbg !124, !tbaa !47, !alias.scope !76, !noalias !77 %.Tlast.size2.unbox9 = load i64, ptr %.Tlast.size2, align 8, !dbg !127, !tbaa !84, !alias.scope !86, !noalias !87 %.Tnext.size8.unbox = load i64, ptr %.Tnext.size8, align 8, !dbg !127, !tbaa !84, !alias.scope !86, !noalias !87 %33 = icmp eq i64 %.Tlast.size2.unbox9, %.Tnext.size8.unbox, !dbg !127 %34 = zext i1 %33 to i8, !dbg !131 %35 = icmp eq i8 %34, 0, !dbg !131 %36 = xor i1 %35, true, !dbg !131 br i1 %36, label %L46, label %L45, !dbg !131 L45: ; preds = %L39 br label %L47, !dbg !132 L46: ; preds = %L39 br label %L47, !dbg !133 L47: ; preds = %L46, %L45 %value_phi10 = phi i8 [ 0, %L45 ], [ 1, %L46 ] br label %L49, !dbg !130 L49: ; preds = %L47 %37 = trunc i8 %value_phi10 to i1, !dbg !126 %38 = xor i1 %37, true, !dbg !126 br i1 %38, label %L137, label %L50, !dbg !126 L50: ; preds = %L49 %39 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !134 %.Tnext.size_ptr11 = getelementptr inbounds i8, ptr addrspace(11) %39, i32 16, !dbg !134 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tnext.size12, ptr addrspace(11) align 8 %.Tnext.size_ptr11, i64 8, i1 false), !dbg !134, !tbaa !47, !alias.scope !76, !noalias !77 %.Tnext.size12.unbox = load i64, ptr %.Tnext.size12, align 8, !dbg !142, !tbaa !84, !alias.scope !86, !noalias !87 %40 = icmp eq i64 %.Tnext.size12.unbox, 0, !dbg !142 %41 = xor i1 %40, true, !dbg !143 br i1 %41, label %L55, label %L54, !dbg !143 L54: ; preds = %L50 br label %L133, !dbg !143 L55: ; preds = %L50 %.Tnext.size12.unbox159 = load i64, ptr %.Tnext.size12, align 8, !dbg !146, !tbaa !84, !alias.scope !86, !noalias !87 %42 = icmp slt i64 0, %.Tnext.size12.unbox159, !dbg !146 %43 = xor i1 %42, true, !dbg !152 br i1 %43, label %L131, label %L57, !dbg !152 L57: ; preds = %L55 br i1 false, label %L81, label %L59, !dbg !153 L59: ; preds = %L57 %.Tnext.size12.unbox160 = load i64, ptr %.Tnext.size12, align 8, !dbg !154, !tbaa !84, !alias.scope !86, !noalias !87 %44 = add i64 1, %.Tnext.size12.unbox160, !dbg !154 %45 = sub i64 %44, 1, !dbg !156 %46 = icmp sle i64 1, %45, !dbg !158 %47 = xor i1 %46, true, !dbg !162 br i1 %47, label %L64, label %L63, !dbg !162 L63: ; preds = %L59 br label %L65, !dbg !168 L64: ; preds = %L59 br label %L65, !dbg !168 L65: ; preds = %L64, %L63 %value_phi161 = phi i64 [ %45, %L63 ], [ 0, %L64 ] %48 = getelementptr inbounds i8, ptr %"new::Tuple162", i32 0, !dbg !164 %49 = getelementptr inbounds i8, ptr %48, i32 0, !dbg !164 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %49, ptr align 8 @_j_const_1, i64 8, i1 false), !dbg !164, !tbaa !47, !alias.scope !173, !noalias !174 %50 = getelementptr inbounds i8, ptr %48, i32 8, !dbg !164 store i64 %value_phi161, ptr %50, align 8, !dbg !164, !tbaa !84, !alias.scope !86, !noalias !87 %51 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !175 %.Tlast.size_ptr163 = getelementptr inbounds i8, ptr addrspace(11) %51, i32 16, !dbg !175 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tlast.size164, ptr addrspace(11) align 8 %.Tlast.size_ptr163, i64 8, i1 false), !dbg !175, !tbaa !47, !alias.scope !76, !noalias !77 %52 = icmp slt i64 %value_phi161, 1, !dbg !182 %bitcast165 = load i64, ptr %.Tlast.size164, align 8, !dbg !188, !tbaa !84, !alias.scope !86, !noalias !87 %53 = icmp ult i64 0, %bitcast165, !dbg !193 %54 = sub i64 %value_phi161, 1, !dbg !194 %bitcast166 = load i64, ptr %.Tlast.size164, align 8, !dbg !188, !tbaa !84, !alias.scope !86, !noalias !87 %55 = icmp ult i64 %54, %bitcast166, !dbg !193 %56 = and i1 %53, %55, !dbg !195 %57 = or i1 %52, %56, !dbg !198 %58 = xor i1 %57, true, !dbg !181 br i1 %58, label %L88, label %L80, !dbg !181 L80: ; preds = %L65 br label %L81, !dbg !181 L81: ; preds = %L80, %L57 br i1 false, label %L107, label %L83, !dbg !200 L83: ; preds = %L81 %.Tnext.size12.unbox167 = load i64, ptr %.Tnext.size12, align 8, !dbg !201, !tbaa !84, !alias.scope !86, !noalias !87 %59 = add i64 1, %.Tnext.size12.unbox167, !dbg !201 %60 = sub i64 %59, 1, !dbg !202 %61 = icmp sle i64 1, %60, !dbg !203 %62 = xor i1 %61, true, !dbg !205 br i1 %62, label %L90, label %L87, !dbg !205 L87: ; preds = %L83 br label %L91, !dbg !168 L88: ; preds = %L65 %63 = addrspacecast ptr %"new::Tuple162" to ptr addrspace(11), !dbg !181 call void @julia_throw_boundserror_35131(ptr addrspace(10) %.Tlast, ptr addrspace(11) nocapture readonly %63) #26, !dbg !181 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !181 unreachable, !dbg !181 L90: ; preds = %L83 br label %L91, !dbg !168 L91: ; preds = %L90, %L87 %value_phi168 = phi i64 [ %60, %L87 ], [ 0, %L90 ] %64 = getelementptr inbounds i8, ptr %"new::Tuple169", i32 0, !dbg !206 %65 = getelementptr inbounds i8, ptr %64, i32 0, !dbg !206 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %65, ptr align 8 @_j_const_1, i64 8, i1 false), !dbg !206, !tbaa !47, !alias.scope !173, !noalias !174 %66 = getelementptr inbounds i8, ptr %64, i32 8, !dbg !206 store i64 %value_phi168, ptr %66, align 8, !dbg !206, !tbaa !84, !alias.scope !86, !noalias !87 %67 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !208 %.Tnext.size_ptr170 = getelementptr inbounds i8, ptr addrspace(11) %67, i32 16, !dbg !208 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tnext.size171, ptr addrspace(11) align 8 %.Tnext.size_ptr170, i64 8, i1 false), !dbg !208, !tbaa !47, !alias.scope !76, !noalias !77 %68 = icmp slt i64 %value_phi168, 1, !dbg !213 %bitcast172 = load i64, ptr %.Tnext.size171, align 8, !dbg !217, !tbaa !84, !alias.scope !86, !noalias !87 %69 = icmp ult i64 0, %bitcast172, !dbg !220 %70 = sub i64 %value_phi168, 1, !dbg !221 %bitcast173 = load i64, ptr %.Tnext.size171, align 8, !dbg !217, !tbaa !84, !alias.scope !86, !noalias !87 %71 = icmp ult i64 %70, %bitcast173, !dbg !220 %72 = and i1 %69, %71, !dbg !222 %73 = or i1 %68, %72, !dbg !223 %74 = xor i1 %73, true, !dbg !212 br i1 %74, label %L124, label %L106, !dbg !212 L106: ; preds = %L91 br label %L107, !dbg !212 L107: ; preds = %L106, %L81 %75 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !224 %76 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %75, i32 0, i32 0, !dbg !224 %memoryref_data174 = load ptr, ptr addrspace(11) %76, align 8, !dbg !224, !tbaa !225, !alias.scope !228, !noalias !229 %77 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %75, i32 0, i32 1, !dbg !224 %memoryref_mem175 = load ptr addrspace(10), ptr addrspace(11) %77, align 8, !dbg !224, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %78 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data174, 0, !dbg !224 %.Tlast.ref = insertvalue { ptr, ptr addrspace(10) } %78, ptr addrspace(10) %memoryref_mem175, 1, !dbg !224 %79 = addrspacecast ptr addrspace(10) %memoryref_mem175 to ptr addrspace(11), !dbg !230 %80 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %79, i32 0, i32 0, !dbg !230 %memory_len176 = load i64, ptr addrspace(11) %80, align 8, !dbg !230, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %81 = add nuw i64 %memory_len176, %memory_len176, !dbg !230 %82 = add i64 0, %memory_len176, !dbg !230 %memoryref_ovflw177 = icmp uge i64 %82, %81, !dbg !230 %memoryref_data_byteoffset178 = getelementptr i8, ptr %memoryref_data174, i64 0, !dbg !230 %83 = addrspacecast ptr addrspace(10) %memoryref_mem175 to ptr addrspace(11), !dbg !230 %84 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %83, i32 0, i32 0, !dbg !230 %memory_len179 = load i64, ptr addrspace(11) %84, align 8, !dbg !230, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %85 = addrspacecast ptr addrspace(10) %memoryref_mem175 to ptr addrspace(11), !dbg !230 %memory_data_ptr180 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %85, i32 0, i32 1, !dbg !230 %memory_data181 = load ptr, ptr addrspace(11) %memory_data_ptr180, align 8, !dbg !230, !tbaa !236, !alias.scope !228, !noalias !229, !nonnull !0 %86 = ptrtoint ptr %memory_data181 to i64, !dbg !230 %87 = ptrtoint ptr %memoryref_data_byteoffset178 to i64, !dbg !230 %88 = sub i64 %87, %86, !dbg !230 %memoryref_bytelen182 = mul nuw nsw i64 %memory_len179, 8, !dbg !230 %memoryref_isinbounds183 = icmp ult i64 %88, %memoryref_bytelen182, !dbg !230 %89 = xor i1 %memoryref_ovflw177, true, !dbg !230 %"memoryref_isinbounds¬ovflw184" = and i1 %89, %memoryref_isinbounds183, !dbg !230 br i1 %"memoryref_isinbounds¬ovflw184", label %idxend190, label %oob185, !dbg !230 L122: ; preds = %idxend208 %"-Core.throw_inexacterror#35101" = load ptr, ptr @_Core_throw_inexacterror_35101, align 8, !dbg !238, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !45, !align !46 %90 = addrspacecast ptr %"-Core.throw_inexacterror#35101" to ptr addrspace(10), !dbg !238 %"jl_global#35102" = load ptr, ptr @jl_global_35102, align 8, !dbg !238, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %91 = addrspacecast ptr %"jl_global#35102" to ptr addrspace(10), !dbg !238 %"jl_sym#convert#35103" = load ptr, ptr @jl_sym_convert_35103, align 8, !dbg !238, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %92 = addrspacecast ptr %"jl_sym#convert#35103" to ptr addrspace(10), !dbg !238 %93 = load ptr, ptr getelementptr inbounds (i8, ptr @jl_small_typeof, i32 336), align 8, !dbg !238, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %94 = addrspacecast ptr %93 to ptr addrspace(10), !dbg !238 %box_Int64 = call nonnull align 8 dereferenceable(8) ptr addrspace(10) @ijl_box_int64(i64 signext %443) #27, !dbg !238 %95 = call nonnull ptr addrspace(10) (ptr, ptr addrspace(10), ptr addrspace(10), ...) @julia.call2(ptr @ijl_invoke, ptr addrspace(10) %90, ptr addrspace(10) %91, ptr addrspace(10) %92, ptr addrspace(10) %94, ptr addrspace(10) %box_Int64), !dbg !238 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !238 unreachable, !dbg !238 L124: ; preds = %L91 %96 = addrspacecast ptr %"new::Tuple169" to ptr addrspace(11), !dbg !212 call void @julia_throw_boundserror_35131(ptr addrspace(10) %.Tnext, ptr addrspace(11) nocapture readonly %96) #26, !dbg !212 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !212 unreachable, !dbg !212 L126: ; preds = %idxend208 call void @llvm.memmove.p0.p0.i64(ptr %memory_ref191.ptr_or_offset, ptr %memory_ref209.ptr_or_offset, i64 %443, i1 false), !dbg !249 call void @llvm.julia.gc_preserve_end(token %442), !dbg !255 call void @llvm.julia.gc_preserve_end(token %441), !dbg !256 br label %L133, !dbg !257 L131: ; preds = %L55 %"jl_global#35106" = load ptr, ptr @jl_global_35106, align 8, !dbg !152, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %97 = addrspacecast ptr %"jl_global#35106" to ptr addrspace(10), !dbg !152 call void @julia__throw_argerror_35128(ptr addrspace(10) %97) #26, !dbg !152 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !152 unreachable, !dbg !152 L133: ; preds = %L126, %L54 br label %L134, !dbg !143 L134: ; preds = %L133 br label %L135, !dbg !143 L135: ; preds = %L134 br label %L136, !dbg !143 L136: ; preds = %L135 br label %L286, !dbg !258 L137: ; preds = %L49 %98 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !259 %99 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !259 %100 = icmp eq ptr addrspace(11) %98, %99, !dbg !259 %101 = xor i1 %100, true, !dbg !259 br i1 %101, label %L140, label %L139, !dbg !259 L139: ; preds = %L137 br label %L204, !dbg !168 L140: ; preds = %L137 %102 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !267 %.Tlast.size_ptr296 = getelementptr inbounds i8, ptr addrspace(11) %102, i32 16, !dbg !267 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tlast.size297, ptr addrspace(11) align 8 %.Tlast.size_ptr296, i64 8, i1 false), !dbg !267, !tbaa !47, !alias.scope !76, !noalias !77 %.Tlast.size297.unbox = load i64, ptr %.Tlast.size297, align 8, !dbg !275, !tbaa !84, !alias.scope !86, !noalias !87 %103 = icmp eq i64 %.Tlast.size297.unbox, 0, !dbg !275 %104 = xor i1 %103, true, !dbg !276 %105 = xor i1 %104, true, !dbg !271 br i1 %105, label %L163, label %L145, !dbg !271 L145: ; preds = %L140 %106 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !267 %.Tnext.size_ptr298 = getelementptr inbounds i8, ptr addrspace(11) %106, i32 16, !dbg !267 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tnext.size299, ptr addrspace(11) align 8 %.Tnext.size_ptr298, i64 8, i1 false), !dbg !267, !tbaa !47, !alias.scope !76, !noalias !77 %.Tnext.size299.unbox = load i64, ptr %.Tnext.size299, align 8, !dbg !275, !tbaa !84, !alias.scope !86, !noalias !87 %107 = icmp eq i64 %.Tnext.size299.unbox, 0, !dbg !275 %108 = xor i1 %107, true, !dbg !276 %109 = xor i1 %108, true, !dbg !271 br i1 %109, label %L162, label %L150, !dbg !271 L150: ; preds = %L145 %110 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !278 %111 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %110, i32 0, i32 0, !dbg !278 %112 = load ptr, ptr addrspace(11) %111, align 8, !dbg !278, !tbaa !225, !alias.scope !228, !noalias !229 %113 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %110, i32 0, i32 1, !dbg !278 %114 = load ptr addrspace(10), ptr addrspace(11) %113, align 8, !dbg !278, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %115 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %112, 0, !dbg !278 %.Tlast.ref300 = insertvalue { ptr, ptr addrspace(10) } %115, ptr addrspace(10) %114, 1, !dbg !278 %.Tlast.ref300.mem = extractvalue { ptr, ptr addrspace(10) } %.Tlast.ref300, 1, !dbg !278 %116 = addrspacecast ptr addrspace(10) %.Tlast.ref300.mem to ptr addrspace(11), !dbg !281 %.Tlast.ref300.mem.ptr_ptr = getelementptr inbounds i8, ptr addrspace(11) %116, i32 8, !dbg !281 %bitcast301 = load ptr, ptr addrspace(11) %.Tlast.ref300.mem.ptr_ptr, align 8, !dbg !283, !tbaa !236, !alias.scope !228, !noalias !229 %bitcast_coercion = ptrtoint ptr %bitcast301 to i64, !dbg !283 %117 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !278 %118 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %117, i32 0, i32 0, !dbg !278 %119 = load ptr, ptr addrspace(11) %118, align 8, !dbg !278, !tbaa !225, !alias.scope !228, !noalias !229 %120 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %117, i32 0, i32 1, !dbg !278 %121 = load ptr addrspace(10), ptr addrspace(11) %120, align 8, !dbg !278, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %122 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %119, 0, !dbg !278 %.Tnext.ref302 = insertvalue { ptr, ptr addrspace(10) } %122, ptr addrspace(10) %121, 1, !dbg !278 %.Tnext.ref302.mem = extractvalue { ptr, ptr addrspace(10) } %.Tnext.ref302, 1, !dbg !278 %123 = addrspacecast ptr addrspace(10) %.Tnext.ref302.mem to ptr addrspace(11), !dbg !281 %.Tnext.ref302.mem.ptr_ptr = getelementptr inbounds i8, ptr addrspace(11) %123, i32 8, !dbg !281 %bitcast303 = load ptr, ptr addrspace(11) %.Tnext.ref302.mem.ptr_ptr, align 8, !dbg !283, !tbaa !236, !alias.scope !228, !noalias !229 %bitcast_coercion304 = ptrtoint ptr %bitcast303 to i64, !dbg !283 %124 = icmp eq i64 %bitcast_coercion, %bitcast_coercion304, !dbg !284 %125 = xor i1 %124, true, !dbg !289 %126 = xor i1 %125, true, !dbg !276 %127 = zext i1 %126 to i8, !dbg !168 br label %L164, !dbg !168 L162: ; preds = %L145 br label %L164, !dbg !168 L163: ; preds = %L140 br label %L164, !dbg !168 L164: ; preds = %L163, %L162, %L150 %value_phi305 = phi i8 [ %127, %L150 ], [ 0, %L162 ], [ 0, %L163 ] %128 = trunc i8 %value_phi305 to i1, !dbg !273 %129 = xor i1 %128, true, !dbg !273 br i1 %129, label %L201, label %L166, !dbg !273 L166: ; preds = %L164 %130 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !290 %131 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %130, i32 0, i32 0, !dbg !290 %132 = load ptr, ptr addrspace(11) %131, align 8, !dbg !290, !tbaa !225, !alias.scope !228, !noalias !229 %133 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %130, i32 0, i32 1, !dbg !290 %134 = load ptr addrspace(10), ptr addrspace(11) %133, align 8, !dbg !290, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %135 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %132, 0, !dbg !290 %.Tnext.ref306 = insertvalue { ptr, ptr addrspace(10) } %135, ptr addrspace(10) %134, 1, !dbg !290 %136 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !295 %.Tnext.size_ptr307 = getelementptr inbounds i8, ptr addrspace(11) %136, i32 16, !dbg !295 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tnext.size308, ptr addrspace(11) align 8 %.Tnext.size_ptr307, i64 8, i1 false), !dbg !295, !tbaa !47, !alias.scope !76, !noalias !77 %.Tnext.size308.unbox = load i64, ptr %.Tnext.size308, align 8, !dbg !298, !tbaa !84, !alias.scope !86, !noalias !87 %memorynew_empty = icmp eq i64 %.Tnext.size308.unbox, 0, !dbg !298 br i1 %memorynew_empty, label %emptymem, label %nonemptymem, !dbg !298 L182: ; preds = %retval %"-Core.throw_inexacterror#35101317" = load ptr, ptr @_Core_throw_inexacterror_35101, align 8, !dbg !300, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !45, !align !46 %137 = addrspacecast ptr %"-Core.throw_inexacterror#35101317" to ptr addrspace(10), !dbg !300 %"jl_global#35102318" = load ptr, ptr @jl_global_35102, align 8, !dbg !300, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %138 = addrspacecast ptr %"jl_global#35102318" to ptr addrspace(10), !dbg !300 %"jl_sym#convert#35103319" = load ptr, ptr @jl_sym_convert_35103, align 8, !dbg !300, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %139 = addrspacecast ptr %"jl_sym#convert#35103319" to ptr addrspace(10), !dbg !300 %140 = load ptr, ptr getelementptr inbounds (i8, ptr @jl_small_typeof, i32 336), align 8, !dbg !300, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %141 = addrspacecast ptr %140 to ptr addrspace(10), !dbg !300 %box_Int64320 = call nonnull align 8 dereferenceable(8) ptr addrspace(10) @ijl_box_int64(i64 signext %488) #27, !dbg !300 %142 = call nonnull ptr addrspace(10) (ptr, ptr addrspace(10), ptr addrspace(10), ...) @julia.call2(ptr @ijl_invoke, ptr addrspace(10) %137, ptr addrspace(10) %138, ptr addrspace(10) %139, ptr addrspace(10) %141, ptr addrspace(10) %box_Int64320), !dbg !300 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !300 unreachable, !dbg !300 L184: ; preds = %retval br label %L185, !dbg !300 L185: ; preds = %L184 br label %L187, !dbg !301 L187: ; preds = %L185 br label %L188, !dbg !301 L188: ; preds = %L187 br label %L189, !dbg !301 L189: ; preds = %L188 br label %L190, !dbg !301 L190: ; preds = %L189 call void @llvm.memmove.p0.p0.i64(ptr %memory_ref314.ptr_or_offset, ptr %.Tnext.ref306.ptr_or_offset, i64 %488, i1 false), !dbg !305 br label %L192, !dbg !305 L192: ; preds = %L190 call void @llvm.julia.gc_preserve_end(token %487), !dbg !308 call void @llvm.julia.gc_preserve_end(token %486), !dbg !309 br label %L195, !dbg !310 L195: ; preds = %L192 %143 = addrspacecast ptr addrspace(10) %482 to ptr addrspace(11), !dbg !311 %memory_data_ptr323 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %143, i32 0, i32 1, !dbg !311 %memory_data324 = load ptr, ptr addrspace(11) %memory_data_ptr323, align 8, !dbg !311, !tbaa !236, !alias.scope !228, !noalias !229, !nonnull !0 %144 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memory_data324, 0, !dbg !311 %memory_ref325 = insertvalue { ptr, ptr addrspace(10) } %144, ptr addrspace(10) %482, 1, !dbg !311 %145 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !313 %.Tnext.size_ptr326 = getelementptr inbounds i8, ptr addrspace(11) %145, i32 16, !dbg !313 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tnext.size327, ptr addrspace(11) align 8 %.Tnext.size_ptr326, i64 8, i1 false), !dbg !313, !tbaa !47, !alias.scope !76, !noalias !77 %"+Core.Array#35111" = load ptr, ptr @_Core_Array_35111, align 8, !dbg !312, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %Array = ptrtoint ptr %"+Core.Array#35111" to i64, !dbg !312 %146 = inttoptr i64 %Array to ptr, !dbg !312 %current_task328 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !312 %147 = addrspacecast ptr %146 to ptr addrspace(10), !dbg !312 %"new::Array" = call noalias nonnull align 8 dereferenceable(24) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task328, i64 24, ptr addrspace(10) %147) #25, !dbg !312 %148 = addrspacecast ptr addrspace(10) %"new::Array" to ptr addrspace(11), !dbg !312 %149 = getelementptr inbounds i8, ptr addrspace(11) %148, i32 8, !dbg !312 store ptr addrspace(10) null, ptr addrspace(11) %149, align 8, !dbg !312, !tbaa !314, !alias.scope !228, !noalias !229 %150 = addrspacecast ptr addrspace(10) %"new::Array" to ptr addrspace(11), !dbg !312 store { ptr, ptr addrspace(10) } %memory_ref325, ptr addrspace(11) %150, align 8, !dbg !312, !tbaa !225, !alias.scope !228, !noalias !229 %151 = addrspacecast ptr addrspace(10) %"new::Array" to ptr addrspace(11), !dbg !312 %"new::Array.size_ptr" = getelementptr inbounds i8, ptr addrspace(11) %151, i32 16, !dbg !312 call void @llvm.memcpy.p11.p0.i64(ptr addrspace(11) align 8 %"new::Array.size_ptr", ptr align 8 %.Tnext.size327, i64 8, i1 false), !dbg !312, !tbaa !47, !alias.scope !315, !noalias !77 br label %L199, !dbg !312 L199: ; preds = %L195 br label %L200, !dbg !312 L200: ; preds = %L199 br label %L202, !dbg !168 L201: ; preds = %L164 br label %L202, !dbg !168 L202: ; preds = %L201, %L200 %value_phi329 = phi ptr addrspace(10) [ %"new::Array", %L200 ], [ %.Tnext, %L201 ] br label %L204, !dbg !168 L204: ; preds = %L202, %L139 %value_phi219 = phi ptr addrspace(10) [ %.Tnext, %L139 ], [ %value_phi329, %L202 ] %152 = addrspacecast ptr addrspace(10) %value_phi219 to ptr addrspace(11), !dbg !316 %value_phi219.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %152, i32 16, !dbg !316 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %value_phi219.size, ptr addrspace(11) align 8 %value_phi219.size_ptr, i64 8, i1 false), !dbg !316, !tbaa !47, !alias.scope !76, !noalias !77 %value_phi219.size.unbox = load i64, ptr %value_phi219.size, align 8, !dbg !322, !tbaa !84, !alias.scope !86, !noalias !87 %153 = icmp eq i64 %value_phi219.size.unbox, 1, !dbg !322 %154 = xor i1 %153, true, !dbg !328 %155 = getelementptr inbounds i8, ptr %"new::Tuple220", i32 0, !dbg !324 %156 = zext i1 %154 to i8, !dbg !324 store i8 %156, ptr %155, align 1, !dbg !324, !tbaa !84, !alias.scope !86, !noalias !87 %157 = getelementptr inbounds i8, ptr %"new::Extruded", i32 8, !dbg !329 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %157, ptr align 1 %"new::Tuple220", i64 1, i1 false), !dbg !329, !tbaa !84, !alias.scope !86, !noalias !87 %158 = getelementptr inbounds i8, ptr %"new::Extruded", i32 16, !dbg !329 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %158, ptr align 8 @_j_const_4, i64 8, i1 false), !dbg !329, !tbaa !47, !alias.scope !173, !noalias !174 br label %L213, !dbg !329 L213: ; preds = %L204 %159 = getelementptr inbounds i8, ptr %"new::Tuple221", i32 0, !dbg !263 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %159, ptr align 8 %"new::Extruded", i64 24, i1 false), !dbg !263, !tbaa !84, !alias.scope !86, !noalias !87 br label %L215, !dbg !263 L215: ; preds = %L213 %160 = getelementptr inbounds i8, ptr %"new::Broadcasted", i32 0, !dbg !331 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %160, ptr align 8 %"new::Tuple221", i64 24, i1 false), !dbg !331, !tbaa !84, !alias.scope !86, !noalias !87 %161 = getelementptr inbounds i8, ptr %"new::Broadcasted", i32 24, !dbg !331 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %161, ptr align 8 %"new::Tuple", i64 8, i1 false), !dbg !331, !tbaa !84, !alias.scope !86, !noalias !87 br label %L217, !dbg !331 L217: ; preds = %L215 %.Tlast.size.unbox222 = load i64, ptr %.Tlast.size, align 8, !dbg !333, !tbaa !84, !alias.scope !86, !noalias !87 %162 = icmp slt i64 0, %.Tlast.size.unbox222, !dbg !333 %163 = xor i1 %162, true, !dbg !334 br i1 %163, label %L282, label %L219, !dbg !334 L219: ; preds = %L217 br label %L220, !dbg !168 L220: ; preds = %load283, %L219 %value_phi223 = phi i64 [ 0, %L219 ], [ %470, %load283 ] %.Tlast.size.unbox224 = load i64, ptr %.Tlast.size, align 8, !dbg !342, !tbaa !84, !alias.scope !86, !noalias !87 %164 = icmp slt i64 %value_phi223, %.Tlast.size.unbox224, !dbg !342 %165 = xor i1 %164, true, !dbg !343 br i1 %165, label %L282, label %L223, !dbg !343 L223: ; preds = %L220 %166 = add i64 %value_phi223, 1, !dbg !344 br i1 false, label %L233, label %L226, !dbg !348 L226: ; preds = %L223 %167 = getelementptr inbounds i8, ptr %"new::Tuple225", i32 0, !dbg !348 store i64 %166, ptr %167, align 8, !dbg !348, !tbaa !84, !alias.scope !86, !noalias !87 %168 = sub i64 %166, 1, !dbg !352 %bitcast226 = load i64, ptr %.Tlast.size, align 8, !dbg !356, !tbaa !84, !alias.scope !86, !noalias !87 %169 = icmp ult i64 %168, %bitcast226, !dbg !358 %170 = xor i1 %169, true, !dbg !355 br i1 %170, label %L265, label %L232, !dbg !355 L232: ; preds = %L226 br label %L233, !dbg !355 L233: ; preds = %L232, %L223 br i1 false, label %L241, label %L235, !dbg !359 L235: ; preds = %L233 %171 = sub i64 %166, 1, !dbg !365 %bitcast227 = load i64, ptr %.Tlast.size, align 8, !dbg !369, !tbaa !84, !alias.scope !86, !noalias !87 %172 = icmp ult i64 %171, %bitcast227, !dbg !371 %173 = xor i1 %172, true, !dbg !367 br i1 %173, label %L267, label %L240, !dbg !367 L240: ; preds = %L235 br label %L241, !dbg !367 L241: ; preds = %L240, %L233 %ifelse_cond = xor i1 %154, true, !dbg !372 %174 = select i1 %ifelse_cond, i64 1, i64 %166, !dbg !372 br i1 false, label %L252, label %L244, !dbg !381 L244: ; preds = %L241 %175 = sub i64 %174, 1, !dbg !383 %176 = addrspacecast ptr addrspace(10) %value_phi219 to ptr addrspace(11), !dbg !386 %value_phi219.size_ptr228 = getelementptr inbounds i8, ptr addrspace(11) %176, i32 16, !dbg !386 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %value_phi219.size229, ptr addrspace(11) align 8 %value_phi219.size_ptr228, i64 8, i1 false), !dbg !386, !tbaa !47, !alias.scope !76, !noalias !77 %bitcast230 = load i64, ptr %value_phi219.size229, align 8, !dbg !383, !tbaa !84, !alias.scope !86, !noalias !87 %177 = icmp ult i64 %175, %bitcast230, !dbg !383 %178 = xor i1 %177, true, !dbg !385 br i1 %178, label %L270, label %L251, !dbg !385 L251: ; preds = %L244 br label %L252, !dbg !385 L252: ; preds = %L251, %L241 %179 = addrspacecast ptr addrspace(10) %value_phi219 to ptr addrspace(11), !dbg !388 %180 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %179, i32 0, i32 0, !dbg !388 %memoryref_data231 = load ptr, ptr addrspace(11) %180, align 8, !dbg !388, !tbaa !225, !alias.scope !228, !noalias !229 %181 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %179, i32 0, i32 1, !dbg !388 %memoryref_mem251 = load ptr addrspace(10), ptr addrspace(11) %181, align 8, !dbg !388, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %182 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data231, 0, !dbg !388 %value_phi219.ref = insertvalue { ptr, ptr addrspace(10) } %182, ptr addrspace(10) %memoryref_mem251, 1, !dbg !388 %memoryref_offset233 = sub i64 %174, 1, !dbg !388 %183 = addrspacecast ptr addrspace(10) %memoryref_mem251 to ptr addrspace(11), !dbg !388 %184 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %183, i32 0, i32 0, !dbg !388 %memory_len234 = load i64, ptr addrspace(11) %184, align 8, !dbg !388, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %185 = add nuw i64 %memory_len234, %memory_len234, !dbg !388 %186 = add i64 %memoryref_offset233, %memory_len234, !dbg !388 %memoryref_ovflw235 = icmp uge i64 %186, %185, !dbg !388 %memoryref_byteoffset236 = mul i64 %memoryref_offset233, 8, !dbg !388 %memoryref_data_byteoffset237 = getelementptr i8, ptr %memoryref_data231, i64 %memoryref_byteoffset236, !dbg !388 %187 = addrspacecast ptr addrspace(10) %memoryref_mem251 to ptr addrspace(11), !dbg !388 %188 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %187, i32 0, i32 0, !dbg !388 %memory_len238 = load i64, ptr addrspace(11) %188, align 8, !dbg !388, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %189 = addrspacecast ptr addrspace(10) %memoryref_mem251 to ptr addrspace(11), !dbg !388 %memory_data_ptr239 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %189, i32 0, i32 1, !dbg !388 %memory_data240 = load ptr, ptr addrspace(11) %memory_data_ptr239, align 8, !dbg !388, !tbaa !236, !alias.scope !228, !noalias !229, !nonnull !0 %190 = ptrtoint ptr %memory_data240 to i64, !dbg !388 %191 = ptrtoint ptr %memoryref_data_byteoffset237 to i64, !dbg !388 %192 = sub i64 %191, %190, !dbg !388 %memoryref_bytelen241 = mul nuw nsw i64 %memory_len238, 8, !dbg !388 %memoryref_isinbounds242 = icmp ult i64 %192, %memoryref_bytelen241, !dbg !388 %193 = xor i1 %memoryref_ovflw235, true, !dbg !388 %"memoryref_isinbounds¬ovflw243" = and i1 %193, %memoryref_isinbounds242, !dbg !388 br i1 %"memoryref_isinbounds¬ovflw243", label %idxend249, label %oob244, !dbg !388 L257: ; preds = %load254 %194 = sub i64 %166, 1, !dbg !389 %195 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !394 %.Tlast.size_ptr256 = getelementptr inbounds i8, ptr addrspace(11) %195, i32 16, !dbg !394 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tlast.size257, ptr addrspace(11) align 8 %.Tlast.size_ptr256, i64 8, i1 false), !dbg !394, !tbaa !47, !alias.scope !76, !noalias !77 %bitcast258 = load i64, ptr %.Tlast.size257, align 8, !dbg !389, !tbaa !84, !alias.scope !86, !noalias !87 %196 = icmp ult i64 %194, %bitcast258, !dbg !389 %197 = xor i1 %196, true, !dbg !390 br i1 %197, label %L273, label %L264, !dbg !390 L264: ; preds = %L257 br label %L276, !dbg !390 L265: ; preds = %L226 %198 = addrspacecast ptr %"new::OneTo" to ptr addrspace(11), !dbg !355 %199 = addrspacecast ptr %"new::Tuple225" to ptr addrspace(11), !dbg !355 call void @julia_throw_boundserror_35125(ptr addrspace(11) nocapture readonly %198, ptr addrspace(11) nocapture readonly %199) #26, !dbg !355 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !355 unreachable, !dbg !355 L267: ; preds = %L235 %200 = getelementptr inbounds i8, ptr %"new::Tuple291", i32 0, !dbg !367 store i64 %166, ptr %200, align 8, !dbg !367, !tbaa !84, !alias.scope !86, !noalias !87 %201 = getelementptr inbounds i8, ptr %0, i32 0, !dbg !367 store ptr addrspace(10) %value_phi219, ptr %201, align 8, !dbg !367 %202 = addrspacecast ptr %"new::Broadcasted" to ptr addrspace(11), !dbg !367 %203 = addrspacecast ptr %"new::Tuple291" to ptr addrspace(11), !dbg !367 call void @julia_throw_boundserror_35122(ptr addrspace(11) nocapture readonly %202, ptr nocapture readonly %0, ptr addrspace(11) nocapture readonly %203) #26, !dbg !367 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !367 unreachable, !dbg !367 L270: ; preds = %L244 %204 = getelementptr inbounds i8, ptr %"new::Tuple288", i32 0, !dbg !385 store i64 %174, ptr %204, align 8, !dbg !385, !tbaa !84, !alias.scope !86, !noalias !87 %205 = addrspacecast ptr %"new::Tuple288" to ptr addrspace(11), !dbg !385 call void @julia_throw_boundserror_35086(ptr addrspace(10) %value_phi219, ptr addrspace(11) nocapture readonly %205) #26, !dbg !385 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !385 unreachable, !dbg !385 L273: ; preds = %L257 %206 = getelementptr inbounds i8, ptr %"new::Tuple285", i32 0, !dbg !390 store i64 %166, ptr %206, align 8, !dbg !390, !tbaa !84, !alias.scope !86, !noalias !87 %207 = addrspacecast ptr %"new::Tuple285" to ptr addrspace(11), !dbg !390 call void @julia_throw_boundserror_35086(ptr addrspace(10) %.Tlast, ptr addrspace(11) nocapture readonly %207) #26, !dbg !390 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !390 unreachable, !dbg !390 L276: ; preds = %L264, %load254 %208 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !396 %209 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %208, i32 0, i32 0, !dbg !396 %memoryref_data260 = load ptr, ptr addrspace(11) %209, align 8, !dbg !396, !tbaa !225, !alias.scope !228, !noalias !229 %210 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %208, i32 0, i32 1, !dbg !396 %memoryref_mem280 = load ptr addrspace(10), ptr addrspace(11) %210, align 8, !dbg !396, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %211 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data260, 0, !dbg !396 %.Tlast.ref259 = insertvalue { ptr, ptr addrspace(10) } %211, ptr addrspace(10) %memoryref_mem280, 1, !dbg !396 %memoryref_offset262 = sub i64 %166, 1, !dbg !397 %212 = addrspacecast ptr addrspace(10) %memoryref_mem280 to ptr addrspace(11), !dbg !397 %213 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %212, i32 0, i32 0, !dbg !397 %memory_len263 = load i64, ptr addrspace(11) %213, align 8, !dbg !397, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %214 = add nuw i64 %memory_len263, %memory_len263, !dbg !397 %215 = add i64 %memoryref_offset262, %memory_len263, !dbg !397 %memoryref_ovflw264 = icmp uge i64 %215, %214, !dbg !397 %memoryref_byteoffset265 = mul i64 %memoryref_offset262, 8, !dbg !397 %memoryref_data_byteoffset266 = getelementptr i8, ptr %memoryref_data260, i64 %memoryref_byteoffset265, !dbg !397 %216 = addrspacecast ptr addrspace(10) %memoryref_mem280 to ptr addrspace(11), !dbg !397 %217 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %216, i32 0, i32 0, !dbg !397 %memory_len267 = load i64, ptr addrspace(11) %217, align 8, !dbg !397, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %218 = addrspacecast ptr addrspace(10) %memoryref_mem280 to ptr addrspace(11), !dbg !397 %memory_data_ptr268 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %218, i32 0, i32 1, !dbg !397 %memory_data269 = load ptr, ptr addrspace(11) %memory_data_ptr268, align 8, !dbg !397, !tbaa !236, !alias.scope !228, !noalias !229, !nonnull !0 %219 = ptrtoint ptr %memory_data269 to i64, !dbg !397 %220 = ptrtoint ptr %memoryref_data_byteoffset266 to i64, !dbg !397 %221 = sub i64 %220, %219, !dbg !397 %memoryref_bytelen270 = mul nuw nsw i64 %memory_len267, 8, !dbg !397 %memoryref_isinbounds271 = icmp ult i64 %221, %memoryref_bytelen270, !dbg !397 %222 = xor i1 %memoryref_ovflw264, true, !dbg !397 %"memoryref_isinbounds¬ovflw272" = and i1 %222, %memoryref_isinbounds271, !dbg !397 br i1 %"memoryref_isinbounds¬ovflw272", label %idxend278, label %oob273, !dbg !397 L282: ; preds = %L220, %L217 br label %L283, !dbg !337 L283: ; preds = %L282 br label %L286, !dbg !398 L284: ; preds = %L38 %223 = addrspacecast ptr %"new::Tuple4" to ptr addrspace(11), !dbg !120 %224 = addrspacecast ptr %"new::Tuple" to ptr addrspace(11), !dbg !120 call void @julia_throwdm_35116(ptr addrspace(11) nocapture readonly %223, ptr addrspace(11) nocapture readonly %224) #26, !dbg !120 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !120 unreachable, !dbg !120 L286: ; preds = %L283, %L136 br label %L287, !dbg !258 L287: ; preds = %L286 br label %L288, !dbg !72 L288: ; preds = %L287 br label %L289, !dbg !75 L289: ; preds = %L288 %225 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !399 %.Tnext13 = load atomic ptr addrspace(10), ptr addrspace(11) %225 unordered, align 8, !dbg !399, !tbaa !63, !alias.scope !40, !noalias !41, !nonnull !0, !dereferenceable !65, !align !46 %226 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !401 %.Tlast_ptr14 = getelementptr inbounds i8, ptr addrspace(11) %226, i32 8, !dbg !401 %.Tlast15 = load atomic ptr addrspace(10), ptr addrspace(11) %.Tlast_ptr14 unordered, align 8, !dbg !401, !tbaa !63, !alias.scope !40, !noalias !41, !nonnull !0, !dereferenceable !65, !align !46 %227 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !403 %".\CE\BB_ptr" = getelementptr inbounds i8, ptr addrspace(11) %227, i32 24, !dbg !403 %".\CE\BB" = load double, ptr addrspace(11) %".\CE\BB_ptr", align 8, !dbg !403, !tbaa !63, !alias.scope !40, !noalias !41 %228 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !405 %.n_ptr = getelementptr inbounds i8, ptr addrspace(11) %228, i32 16, !dbg !405 %.n = load i64, ptr addrspace(11) %.n_ptr, align 8, !dbg !405, !tbaa !63, !alias.scope !40, !noalias !41 %229 = sub i64 %.n, 1, !dbg !407 %230 = icmp sle i64 2, %229, !dbg !409 %231 = xor i1 %230, true, !dbg !411 br i1 %231, label %L298, label %L297, !dbg !411 L297: ; preds = %L289 br label %L299, !dbg !411 L298: ; preds = %L289 br label %L299, !dbg !414 L299: ; preds = %L298, %L297 %value_phi16 = phi i64 [ %229, %L297 ], [ 1, %L298 ] br label %L301, !dbg !412 L301: ; preds = %L299 br label %L302, !dbg !412 L302: ; preds = %L301 %232 = icmp slt i64 %value_phi16, 2, !dbg !417 %233 = xor i1 %232, true, !dbg !420 br i1 %233, label %L305, label %L304, !dbg !420 L304: ; preds = %L302 br label %L306, !dbg !420 L305: ; preds = %L302 br label %L306, !dbg !420 L306: ; preds = %L305, %L304 %value_phi17 = phi i8 [ 1, %L304 ], [ 0, %L305 ] %value_phi18 = phi i64 [ 2, %L305 ], [ undef, %L304 ] %value_phi19 = phi i64 [ 2, %L305 ], [ undef, %L304 ] %234 = trunc i8 %value_phi17 to i1, !dbg !408 %235 = xor i1 %234, true, !dbg !408 %236 = xor i1 %235, true, !dbg !408 br i1 %236, label %L421, label %L306.L311_crit_edge, !dbg !408 L306.L311_crit_edge: ; preds = %L306 br label %L311, !dbg !420 L311: ; preds = %L306.L311_crit_edge, %L420 %value_phi20 = phi i64 [ %value_phi18, %L306.L311_crit_edge ], [ %value_phi140, %L420 ] %value_phi21 = phi i64 [ %value_phi19, %L306.L311_crit_edge ], [ %value_phi141, %L420 ] br i1 false, label %L327, label %L315, !dbg !415 L315: ; preds = %L311 %237 = sub i64 %value_phi20, 1, !dbg !421 %238 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !422 %.Tlast15.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %238, i32 16, !dbg !422 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tlast15.size, ptr addrspace(11) align 8 %.Tlast15.size_ptr, i64 8, i1 false), !dbg !422, !tbaa !47, !alias.scope !76, !noalias !77 %bitcast = load i64, ptr %.Tlast15.size, align 8, !dbg !421, !tbaa !84, !alias.scope !86, !noalias !87 %239 = icmp ult i64 %237, %bitcast, !dbg !421 %240 = xor i1 %239, true, !dbg !414 br i1 %240, label %L323, label %L322, !dbg !414 L322: ; preds = %L315 br label %L326, !dbg !414 L323: ; preds = %L315 %241 = getelementptr inbounds i8, ptr %"new::Tuple156", i32 0, !dbg !414 store i64 %value_phi20, ptr %241, align 8, !dbg !414, !tbaa !84, !alias.scope !86, !noalias !87 %242 = addrspacecast ptr %"new::Tuple156" to ptr addrspace(11), !dbg !414 call void @julia_throw_boundserror_35086(ptr addrspace(10) %.Tlast15, ptr addrspace(11) nocapture readonly %242) #26, !dbg !414 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !414 unreachable, !dbg !414 L326: ; preds = %L322 br label %L327, !dbg !414 L327: ; preds = %L326, %L311 %243 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !424 %244 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %243, i32 0, i32 0, !dbg !424 %memoryref_data = load ptr, ptr addrspace(11) %244, align 8, !dbg !424, !tbaa !225, !alias.scope !228, !noalias !229 %245 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %243, i32 0, i32 1, !dbg !424 %memoryref_mem = load ptr addrspace(10), ptr addrspace(11) %245, align 8, !dbg !424, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %246 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data, 0, !dbg !424 %.Tlast15.ref = insertvalue { ptr, ptr addrspace(10) } %246, ptr addrspace(10) %memoryref_mem, 1, !dbg !424 %memoryref_offset = sub i64 %value_phi20, 1, !dbg !424 %247 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !424 %248 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %247, i32 0, i32 0, !dbg !424 %memory_len = load i64, ptr addrspace(11) %248, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %249 = add nuw i64 %memory_len, %memory_len, !dbg !424 %250 = add i64 %memoryref_offset, %memory_len, !dbg !424 %memoryref_ovflw = icmp uge i64 %250, %249, !dbg !424 %memoryref_byteoffset = mul i64 %memoryref_offset, 8, !dbg !424 %memoryref_data_byteoffset = getelementptr i8, ptr %memoryref_data, i64 %memoryref_byteoffset, !dbg !424 %251 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !424 %252 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %251, i32 0, i32 0, !dbg !424 %memory_len22 = load i64, ptr addrspace(11) %252, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %253 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !424 %memory_data_ptr = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %253, i32 0, i32 1, !dbg !424 %memory_data = load ptr, ptr addrspace(11) %memory_data_ptr, align 8, !dbg !424, !tbaa !236, !alias.scope !228, !noalias !229, !nonnull !0 %254 = ptrtoint ptr %memory_data to i64, !dbg !424 %255 = ptrtoint ptr %memoryref_data_byteoffset to i64, !dbg !424 %256 = sub i64 %255, %254, !dbg !424 %memoryref_bytelen = mul nuw nsw i64 %memory_len22, 8, !dbg !424 %memoryref_isinbounds = icmp ult i64 %256, %memoryref_bytelen, !dbg !424 %257 = xor i1 %memoryref_ovflw, true, !dbg !424 %"memoryref_isinbounds¬ovflw" = and i1 %257, %memoryref_isinbounds, !dbg !424 br i1 %"memoryref_isinbounds¬ovflw", label %idxend, label %oob, !dbg !424 L331: ; preds = %load %258 = sub i64 %value_phi20, 1, !dbg !425 br i1 false, label %L346, label %L334, !dbg !415 L334: ; preds = %L331 %259 = sub i64 %258, 1, !dbg !421 %260 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !422 %.Tlast15.size_ptr27 = getelementptr inbounds i8, ptr addrspace(11) %260, i32 16, !dbg !422 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tlast15.size28, ptr addrspace(11) align 8 %.Tlast15.size_ptr27, i64 8, i1 false), !dbg !422, !tbaa !47, !alias.scope !76, !noalias !77 %bitcast29 = load i64, ptr %.Tlast15.size28, align 8, !dbg !421, !tbaa !84, !alias.scope !86, !noalias !87 %261 = icmp ult i64 %259, %bitcast29, !dbg !421 %262 = xor i1 %261, true, !dbg !414 br i1 %262, label %L342, label %L341, !dbg !414 L341: ; preds = %L334 br label %L345, !dbg !414 L342: ; preds = %L334 %263 = getelementptr inbounds i8, ptr %"new::Tuple153", i32 0, !dbg !414 store i64 %258, ptr %263, align 8, !dbg !414, !tbaa !84, !alias.scope !86, !noalias !87 %264 = addrspacecast ptr %"new::Tuple153" to ptr addrspace(11), !dbg !414 call void @julia_throw_boundserror_35086(ptr addrspace(10) %.Tlast15, ptr addrspace(11) nocapture readonly %264) #26, !dbg !414 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !414 unreachable, !dbg !414 L345: ; preds = %L341 br label %L346, !dbg !414 L346: ; preds = %L345, %L331 %265 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !424 %266 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %265, i32 0, i32 0, !dbg !424 %memoryref_data31 = load ptr, ptr addrspace(11) %266, align 8, !dbg !424, !tbaa !225, !alias.scope !228, !noalias !229 %267 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %265, i32 0, i32 1, !dbg !424 %memoryref_mem51 = load ptr addrspace(10), ptr addrspace(11) %267, align 8, !dbg !424, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %268 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data31, 0, !dbg !424 %.Tlast15.ref30 = insertvalue { ptr, ptr addrspace(10) } %268, ptr addrspace(10) %memoryref_mem51, 1, !dbg !424 %memoryref_offset33 = sub i64 %258, 1, !dbg !424 %269 = addrspacecast ptr addrspace(10) %memoryref_mem51 to ptr addrspace(11), !dbg !424 %270 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %269, i32 0, i32 0, !dbg !424 %memory_len34 = load i64, ptr addrspace(11) %270, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %271 = add nuw i64 %memory_len34, %memory_len34, !dbg !424 %272 = add i64 %memoryref_offset33, %memory_len34, !dbg !424 %memoryref_ovflw35 = icmp uge i64 %272, %271, !dbg !424 %memoryref_byteoffset36 = mul i64 %memoryref_offset33, 8, !dbg !424 %memoryref_data_byteoffset37 = getelementptr i8, ptr %memoryref_data31, i64 %memoryref_byteoffset36, !dbg !424 %273 = addrspacecast ptr addrspace(10) %memoryref_mem51 to ptr addrspace(11), !dbg !424 %274 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %273, i32 0, i32 0, !dbg !424 %memory_len38 = load i64, ptr addrspace(11) %274, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %275 = addrspacecast ptr addrspace(10) %memoryref_mem51 to ptr addrspace(11), !dbg !424 %memory_data_ptr39 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %275, i32 0, i32 1, !dbg !424 %memory_data40 = load ptr, ptr addrspace(11) %memory_data_ptr39, align 8, !dbg !424, !tbaa !236, !alias.scope !228, !noalias !229, !nonnull !0 %276 = ptrtoint ptr %memory_data40 to i64, !dbg !424 %277 = ptrtoint ptr %memoryref_data_byteoffset37 to i64, !dbg !424 %278 = sub i64 %277, %276, !dbg !424 %memoryref_bytelen41 = mul nuw nsw i64 %memory_len38, 8, !dbg !424 %memoryref_isinbounds42 = icmp ult i64 %278, %memoryref_bytelen41, !dbg !424 %279 = xor i1 %memoryref_ovflw35, true, !dbg !424 %"memoryref_isinbounds¬ovflw43" = and i1 %279, %memoryref_isinbounds42, !dbg !424 br i1 %"memoryref_isinbounds¬ovflw43", label %idxend49, label %oob44, !dbg !424 L350: ; preds = %load54 br i1 false, label %L364, label %L352, !dbg !415 L352: ; preds = %L350 %280 = sub i64 %value_phi20, 1, !dbg !421 %281 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !422 %.Tlast15.size_ptr56 = getelementptr inbounds i8, ptr addrspace(11) %281, i32 16, !dbg !422 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tlast15.size57, ptr addrspace(11) align 8 %.Tlast15.size_ptr56, i64 8, i1 false), !dbg !422, !tbaa !47, !alias.scope !76, !noalias !77 %bitcast58 = load i64, ptr %.Tlast15.size57, align 8, !dbg !421, !tbaa !84, !alias.scope !86, !noalias !87 %282 = icmp ult i64 %280, %bitcast58, !dbg !421 %283 = xor i1 %282, true, !dbg !414 br i1 %283, label %L360, label %L359, !dbg !414 L359: ; preds = %L352 br label %L363, !dbg !414 L360: ; preds = %L352 %284 = getelementptr inbounds i8, ptr %"new::Tuple150", i32 0, !dbg !414 store i64 %value_phi20, ptr %284, align 8, !dbg !414, !tbaa !84, !alias.scope !86, !noalias !87 %285 = addrspacecast ptr %"new::Tuple150" to ptr addrspace(11), !dbg !414 call void @julia_throw_boundserror_35086(ptr addrspace(10) %.Tlast15, ptr addrspace(11) nocapture readonly %285) #26, !dbg !414 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !414 unreachable, !dbg !414 L363: ; preds = %L359 br label %L364, !dbg !414 L364: ; preds = %L363, %L350 %286 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !424 %287 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %286, i32 0, i32 0, !dbg !424 %memoryref_data60 = load ptr, ptr addrspace(11) %287, align 8, !dbg !424, !tbaa !225, !alias.scope !228, !noalias !229 %288 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %286, i32 0, i32 1, !dbg !424 %memoryref_mem80 = load ptr addrspace(10), ptr addrspace(11) %288, align 8, !dbg !424, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %289 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data60, 0, !dbg !424 %.Tlast15.ref59 = insertvalue { ptr, ptr addrspace(10) } %289, ptr addrspace(10) %memoryref_mem80, 1, !dbg !424 %memoryref_offset62 = sub i64 %value_phi20, 1, !dbg !424 %290 = addrspacecast ptr addrspace(10) %memoryref_mem80 to ptr addrspace(11), !dbg !424 %291 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %290, i32 0, i32 0, !dbg !424 %memory_len63 = load i64, ptr addrspace(11) %291, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %292 = add nuw i64 %memory_len63, %memory_len63, !dbg !424 %293 = add i64 %memoryref_offset62, %memory_len63, !dbg !424 %memoryref_ovflw64 = icmp uge i64 %293, %292, !dbg !424 %memoryref_byteoffset65 = mul i64 %memoryref_offset62, 8, !dbg !424 %memoryref_data_byteoffset66 = getelementptr i8, ptr %memoryref_data60, i64 %memoryref_byteoffset65, !dbg !424 %294 = addrspacecast ptr addrspace(10) %memoryref_mem80 to ptr addrspace(11), !dbg !424 %295 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %294, i32 0, i32 0, !dbg !424 %memory_len67 = load i64, ptr addrspace(11) %295, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %296 = addrspacecast ptr addrspace(10) %memoryref_mem80 to ptr addrspace(11), !dbg !424 %memory_data_ptr68 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %296, i32 0, i32 1, !dbg !424 %memory_data69 = load ptr, ptr addrspace(11) %memory_data_ptr68, align 8, !dbg !424, !tbaa !236, !alias.scope !228, !noalias !229, !nonnull !0 %297 = ptrtoint ptr %memory_data69 to i64, !dbg !424 %298 = ptrtoint ptr %memoryref_data_byteoffset66 to i64, !dbg !424 %299 = sub i64 %298, %297, !dbg !424 %memoryref_bytelen70 = mul nuw nsw i64 %memory_len67, 8, !dbg !424 %memoryref_isinbounds71 = icmp ult i64 %299, %memoryref_bytelen70, !dbg !424 %300 = xor i1 %memoryref_ovflw64, true, !dbg !424 %"memoryref_isinbounds¬ovflw72" = and i1 %300, %memoryref_isinbounds71, !dbg !424 br i1 %"memoryref_isinbounds¬ovflw72", label %idxend78, label %oob73, !dbg !424 L368: ; preds = %load83 %301 = fmul double 2.000000e+00, %394, !dbg !426 %302 = fsub double %383, %301, !dbg !431 %303 = add i64 %value_phi20, 1, !dbg !433 br i1 false, label %L385, label %L373, !dbg !415 L373: ; preds = %L368 %304 = sub i64 %303, 1, !dbg !421 %305 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !422 %.Tlast15.size_ptr85 = getelementptr inbounds i8, ptr addrspace(11) %305, i32 16, !dbg !422 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tlast15.size86, ptr addrspace(11) align 8 %.Tlast15.size_ptr85, i64 8, i1 false), !dbg !422, !tbaa !47, !alias.scope !76, !noalias !77 %bitcast87 = load i64, ptr %.Tlast15.size86, align 8, !dbg !421, !tbaa !84, !alias.scope !86, !noalias !87 %306 = icmp ult i64 %304, %bitcast87, !dbg !421 %307 = xor i1 %306, true, !dbg !414 br i1 %307, label %L381, label %L380, !dbg !414 L380: ; preds = %L373 br label %L384, !dbg !414 L381: ; preds = %L373 %308 = getelementptr inbounds i8, ptr %"new::Tuple147", i32 0, !dbg !414 store i64 %303, ptr %308, align 8, !dbg !414, !tbaa !84, !alias.scope !86, !noalias !87 %309 = addrspacecast ptr %"new::Tuple147" to ptr addrspace(11), !dbg !414 call void @julia_throw_boundserror_35086(ptr addrspace(10) %.Tlast15, ptr addrspace(11) nocapture readonly %309) #26, !dbg !414 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !414 unreachable, !dbg !414 L384: ; preds = %L380 br label %L385, !dbg !414 L385: ; preds = %L384, %L368 %310 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !424 %311 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %310, i32 0, i32 0, !dbg !424 %memoryref_data89 = load ptr, ptr addrspace(11) %311, align 8, !dbg !424, !tbaa !225, !alias.scope !228, !noalias !229 %312 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %310, i32 0, i32 1, !dbg !424 %memoryref_mem109 = load ptr addrspace(10), ptr addrspace(11) %312, align 8, !dbg !424, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %313 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data89, 0, !dbg !424 %.Tlast15.ref88 = insertvalue { ptr, ptr addrspace(10) } %313, ptr addrspace(10) %memoryref_mem109, 1, !dbg !424 %memoryref_offset91 = sub i64 %303, 1, !dbg !424 %314 = addrspacecast ptr addrspace(10) %memoryref_mem109 to ptr addrspace(11), !dbg !424 %315 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %314, i32 0, i32 0, !dbg !424 %memory_len92 = load i64, ptr addrspace(11) %315, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %316 = add nuw i64 %memory_len92, %memory_len92, !dbg !424 %317 = add i64 %memoryref_offset91, %memory_len92, !dbg !424 %memoryref_ovflw93 = icmp uge i64 %317, %316, !dbg !424 %memoryref_byteoffset94 = mul i64 %memoryref_offset91, 8, !dbg !424 %memoryref_data_byteoffset95 = getelementptr i8, ptr %memoryref_data89, i64 %memoryref_byteoffset94, !dbg !424 %318 = addrspacecast ptr addrspace(10) %memoryref_mem109 to ptr addrspace(11), !dbg !424 %319 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %318, i32 0, i32 0, !dbg !424 %memory_len96 = load i64, ptr addrspace(11) %319, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %320 = addrspacecast ptr addrspace(10) %memoryref_mem109 to ptr addrspace(11), !dbg !424 %memory_data_ptr97 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %320, i32 0, i32 1, !dbg !424 %memory_data98 = load ptr, ptr addrspace(11) %memory_data_ptr97, align 8, !dbg !424, !tbaa !236, !alias.scope !228, !noalias !229, !nonnull !0 %321 = ptrtoint ptr %memory_data98 to i64, !dbg !424 %322 = ptrtoint ptr %memoryref_data_byteoffset95 to i64, !dbg !424 %323 = sub i64 %322, %321, !dbg !424 %memoryref_bytelen99 = mul nuw nsw i64 %memory_len96, 8, !dbg !424 %memoryref_isinbounds100 = icmp ult i64 %323, %memoryref_bytelen99, !dbg !424 %324 = xor i1 %memoryref_ovflw93, true, !dbg !424 %"memoryref_isinbounds¬ovflw101" = and i1 %324, %memoryref_isinbounds100, !dbg !424 br i1 %"memoryref_isinbounds¬ovflw101", label %idxend107, label %oob102, !dbg !424 L389: ; preds = %load112 %325 = fadd double %302, %405, !dbg !434 %326 = fmul double %".\CE\BB", %325, !dbg !436 %327 = fadd double %372, %326, !dbg !434 br i1 false, label %L405, label %L394, !dbg !437 L394: ; preds = %L389 %328 = sub i64 %value_phi20, 1, !dbg !439 %329 = addrspacecast ptr addrspace(10) %.Tnext13 to ptr addrspace(11), !dbg !440 %.Tnext13.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %329, i32 16, !dbg !440 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tnext13.size, ptr addrspace(11) align 8 %.Tnext13.size_ptr, i64 8, i1 false), !dbg !440, !tbaa !47, !alias.scope !76, !noalias !77 %bitcast114 = load i64, ptr %.Tnext13.size, align 8, !dbg !439, !tbaa !84, !alias.scope !86, !noalias !87 %330 = icmp ult i64 %328, %bitcast114, !dbg !439 %331 = xor i1 %330, true, !dbg !437 br i1 %331, label %L402, label %L401, !dbg !437 L401: ; preds = %L394 br label %L405, !dbg !437 L402: ; preds = %L394 %332 = getelementptr inbounds i8, ptr %"new::Tuple146", i32 0, !dbg !437 store i64 %value_phi20, ptr %332, align 8, !dbg !437, !tbaa !84, !alias.scope !86, !noalias !87 %333 = addrspacecast ptr %"new::Tuple146" to ptr addrspace(11), !dbg !437 call void @julia_throw_boundserror_35086(ptr addrspace(10) %.Tnext13, ptr addrspace(11) nocapture readonly %333) #26, !dbg !437 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !437 unreachable, !dbg !437 L405: ; preds = %L401, %L389 %334 = addrspacecast ptr addrspace(10) %.Tnext13 to ptr addrspace(11), !dbg !442 %335 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %334, i32 0, i32 0, !dbg !442 %memoryref_data115 = load ptr, ptr addrspace(11) %335, align 8, !dbg !442, !tbaa !225, !alias.scope !228, !noalias !229 %336 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %334, i32 0, i32 1, !dbg !442 %memoryref_mem135 = load ptr addrspace(10), ptr addrspace(11) %336, align 8, !dbg !442, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %337 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data115, 0, !dbg !442 %.Tnext13.ref = insertvalue { ptr, ptr addrspace(10) } %337, ptr addrspace(10) %memoryref_mem135, 1, !dbg !442 %memoryref_offset117 = sub i64 %value_phi20, 1, !dbg !443 %338 = addrspacecast ptr addrspace(10) %memoryref_mem135 to ptr addrspace(11), !dbg !443 %339 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %338, i32 0, i32 0, !dbg !443 %memory_len118 = load i64, ptr addrspace(11) %339, align 8, !dbg !443, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %340 = add nuw i64 %memory_len118, %memory_len118, !dbg !443 %341 = add i64 %memoryref_offset117, %memory_len118, !dbg !443 %memoryref_ovflw119 = icmp uge i64 %341, %340, !dbg !443 %memoryref_byteoffset120 = mul i64 %memoryref_offset117, 8, !dbg !443 %memoryref_data_byteoffset121 = getelementptr i8, ptr %memoryref_data115, i64 %memoryref_byteoffset120, !dbg !443 %342 = addrspacecast ptr addrspace(10) %memoryref_mem135 to ptr addrspace(11), !dbg !443 %343 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %342, i32 0, i32 0, !dbg !443 %memory_len122 = load i64, ptr addrspace(11) %343, align 8, !dbg !443, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %344 = addrspacecast ptr addrspace(10) %memoryref_mem135 to ptr addrspace(11), !dbg !443 %memory_data_ptr123 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %344, i32 0, i32 1, !dbg !443 %memory_data124 = load ptr, ptr addrspace(11) %memory_data_ptr123, align 8, !dbg !443, !tbaa !236, !alias.scope !228, !noalias !229, !nonnull !0 %345 = ptrtoint ptr %memory_data124 to i64, !dbg !443 %346 = ptrtoint ptr %memoryref_data_byteoffset121 to i64, !dbg !443 %347 = sub i64 %346, %345, !dbg !443 %memoryref_bytelen125 = mul nuw nsw i64 %memory_len122, 8, !dbg !443 %memoryref_isinbounds126 = icmp ult i64 %347, %memoryref_bytelen125, !dbg !443 %348 = xor i1 %memoryref_ovflw119, true, !dbg !443 %"memoryref_isinbounds¬ovflw127" = and i1 %348, %memoryref_isinbounds126, !dbg !443 br i1 %"memoryref_isinbounds¬ovflw127", label %idxend133, label %oob128, !dbg !443 L409: ; preds = %load138 br label %L410, !dbg !438 L410: ; preds = %L409 %349 = icmp eq i64 %value_phi21, %value_phi16, !dbg !444 %350 = xor i1 %349, true, !dbg !168 br i1 %350, label %L413, label %L412, !dbg !168 L412: ; preds = %L410 br label %L415, !dbg !168 L413: ; preds = %L410 %351 = add i64 %value_phi21, 1, !dbg !445 br label %L415, !dbg !168 L415: ; preds = %L413, %L412 %value_phi140 = phi i64 [ %351, %L413 ], [ undef, %L412 ] %value_phi141 = phi i64 [ %351, %L413 ], [ undef, %L412 ] %value_phi142 = phi i8 [ 1, %L412 ], [ 0, %L413 ] %352 = trunc i8 %value_phi142 to i1, !dbg !170 %353 = xor i1 %352, true, !dbg !170 %354 = xor i1 %353, true, !dbg !170 br i1 %354, label %L421, label %L420, !dbg !170 L420: ; preds = %L415 br label %L311, !dbg !420 L421: ; preds = %L415, %L306 br label %L422, !dbg !447 L422: ; preds = %L421 %355 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !448 %.tsteps_ptr = getelementptr inbounds i8, ptr addrspace(11) %355, i32 32, !dbg !448 %.tsteps = load i64, ptr addrspace(11) %.tsteps_ptr, align 8, !dbg !448, !tbaa !63, !alias.scope !40, !noalias !41 %356 = add i64 %.tsteps, 1, !dbg !450 %357 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !451 %.tsteps_ptr143 = getelementptr inbounds i8, ptr addrspace(11) %357, i32 32, !dbg !451 store i64 %356, ptr addrspace(11) %.tsteps_ptr143, align 8, !dbg !451, !tbaa !63, !alias.scope !40, !noalias !41 %358 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !453 %.tsteps_ptr144 = getelementptr inbounds i8, ptr addrspace(11) %358, i32 32, !dbg !453 %.tsteps145 = load i64, ptr addrspace(11) %.tsteps_ptr144, align 8, !dbg !453, !tbaa !63, !alias.scope !40, !noalias !41 %359 = getelementptr inbounds i8, ptr addrspace(11) %"#self#::#sumheat##2#sumheat##3", i32 8, !dbg !454 %.unbox = load i64, ptr addrspace(11) %359, align 8, !dbg !455, !tbaa !23, !alias.scope !26, !noalias !29 %360 = icmp sle i64 %.tsteps145, %.unbox, !dbg !455 %361 = zext i1 %360 to i8, !dbg !454 ret i8 %361, !dbg !454 oob: ; preds = %L327 %"+Core.GenericMemoryRef#35079" = load ptr, ptr @_Core_GenericMemoryRef_35079, align 8, !dbg !424, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %GenericMemoryRef = ptrtoint ptr %"+Core.GenericMemoryRef#35079" to i64, !dbg !424 %362 = inttoptr i64 %GenericMemoryRef to ptr, !dbg !424 %current_task23 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !424 %363 = addrspacecast ptr %362 to ptr addrspace(10), !dbg !424 %"box::GenericMemoryRef" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task23, i64 16, ptr addrspace(10) %363) #25, !dbg !424 %364 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef" to ptr addrspace(11), !dbg !424 store { ptr, ptr addrspace(10) } %.Tlast15.ref, ptr addrspace(11) %364, align 8, !dbg !424, !tbaa !36, !alias.scope !40, !noalias !41 %365 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef" to ptr addrspace(12), !dbg !424 call void @ijl_bounds_error_int(ptr addrspace(12) %365, i64 %value_phi20), !dbg !424 unreachable, !dbg !424 idxend: ; preds = %L327 %366 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset, 0, !dbg !424 %memory_ref = insertvalue { ptr, ptr addrspace(10) } %366, ptr addrspace(10) %memoryref_mem, 1, !dbg !424 %367 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !424 %368 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %367, i32 0, i32 0, !dbg !424 %memory_len24 = load i64, ptr addrspace(11) %368, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %369 = icmp eq i64 %memory_len24, 0, !dbg !424 br i1 %369, label %oob25, label %load, !dbg !424 oob25: ; preds = %idxend %370 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(12), !dbg !424 call void @ijl_bounds_error_int(ptr addrspace(12) %370, i64 1), !dbg !424 unreachable, !dbg !424 load: ; preds = %idxend %371 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem, ptr %memoryref_data), !dbg !424 %memoryref_data26 = getelementptr inbounds i8, ptr addrspace(13) %371, i64 %memoryref_byteoffset, !dbg !424 %372 = load double, ptr addrspace(13) %memoryref_data26, align 8, !dbg !424, !tbaa !456, !alias.scope !40, !noalias !41 br label %L331, !dbg !424 oob44: ; preds = %L346 %"+Core.GenericMemoryRef#3507945" = load ptr, ptr @_Core_GenericMemoryRef_35079, align 8, !dbg !424, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %GenericMemoryRef46 = ptrtoint ptr %"+Core.GenericMemoryRef#3507945" to i64, !dbg !424 %373 = inttoptr i64 %GenericMemoryRef46 to ptr, !dbg !424 %current_task47 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !424 %374 = addrspacecast ptr %373 to ptr addrspace(10), !dbg !424 %"box::GenericMemoryRef48" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task47, i64 16, ptr addrspace(10) %374) #25, !dbg !424 %375 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef48" to ptr addrspace(11), !dbg !424 store { ptr, ptr addrspace(10) } %.Tlast15.ref30, ptr addrspace(11) %375, align 8, !dbg !424, !tbaa !36, !alias.scope !40, !noalias !41 %376 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef48" to ptr addrspace(12), !dbg !424 call void @ijl_bounds_error_int(ptr addrspace(12) %376, i64 %258), !dbg !424 unreachable, !dbg !424 idxend49: ; preds = %L346 %377 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset37, 0, !dbg !424 %memory_ref50 = insertvalue { ptr, ptr addrspace(10) } %377, ptr addrspace(10) %memoryref_mem51, 1, !dbg !424 %378 = addrspacecast ptr addrspace(10) %memoryref_mem51 to ptr addrspace(11), !dbg !424 %379 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %378, i32 0, i32 0, !dbg !424 %memory_len52 = load i64, ptr addrspace(11) %379, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %380 = icmp eq i64 %memory_len52, 0, !dbg !424 br i1 %380, label %oob53, label %load54, !dbg !424 oob53: ; preds = %idxend49 %381 = addrspacecast ptr addrspace(10) %memoryref_mem51 to ptr addrspace(12), !dbg !424 call void @ijl_bounds_error_int(ptr addrspace(12) %381, i64 1), !dbg !424 unreachable, !dbg !424 load54: ; preds = %idxend49 %382 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem51, ptr %memoryref_data31), !dbg !424 %memoryref_data55 = getelementptr inbounds i8, ptr addrspace(13) %382, i64 %memoryref_byteoffset36, !dbg !424 %383 = load double, ptr addrspace(13) %memoryref_data55, align 8, !dbg !424, !tbaa !456, !alias.scope !40, !noalias !41 br label %L350, !dbg !424 oob73: ; preds = %L364 %"+Core.GenericMemoryRef#3507974" = load ptr, ptr @_Core_GenericMemoryRef_35079, align 8, !dbg !424, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %GenericMemoryRef75 = ptrtoint ptr %"+Core.GenericMemoryRef#3507974" to i64, !dbg !424 %384 = inttoptr i64 %GenericMemoryRef75 to ptr, !dbg !424 %current_task76 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !424 %385 = addrspacecast ptr %384 to ptr addrspace(10), !dbg !424 %"box::GenericMemoryRef77" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task76, i64 16, ptr addrspace(10) %385) #25, !dbg !424 %386 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef77" to ptr addrspace(11), !dbg !424 store { ptr, ptr addrspace(10) } %.Tlast15.ref59, ptr addrspace(11) %386, align 8, !dbg !424, !tbaa !36, !alias.scope !40, !noalias !41 %387 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef77" to ptr addrspace(12), !dbg !424 call void @ijl_bounds_error_int(ptr addrspace(12) %387, i64 %value_phi20), !dbg !424 unreachable, !dbg !424 idxend78: ; preds = %L364 %388 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset66, 0, !dbg !424 %memory_ref79 = insertvalue { ptr, ptr addrspace(10) } %388, ptr addrspace(10) %memoryref_mem80, 1, !dbg !424 %389 = addrspacecast ptr addrspace(10) %memoryref_mem80 to ptr addrspace(11), !dbg !424 %390 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %389, i32 0, i32 0, !dbg !424 %memory_len81 = load i64, ptr addrspace(11) %390, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %391 = icmp eq i64 %memory_len81, 0, !dbg !424 br i1 %391, label %oob82, label %load83, !dbg !424 oob82: ; preds = %idxend78 %392 = addrspacecast ptr addrspace(10) %memoryref_mem80 to ptr addrspace(12), !dbg !424 call void @ijl_bounds_error_int(ptr addrspace(12) %392, i64 1), !dbg !424 unreachable, !dbg !424 load83: ; preds = %idxend78 %393 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem80, ptr %memoryref_data60), !dbg !424 %memoryref_data84 = getelementptr inbounds i8, ptr addrspace(13) %393, i64 %memoryref_byteoffset65, !dbg !424 %394 = load double, ptr addrspace(13) %memoryref_data84, align 8, !dbg !424, !tbaa !456, !alias.scope !40, !noalias !41 br label %L368, !dbg !424 oob102: ; preds = %L385 %"+Core.GenericMemoryRef#35079103" = load ptr, ptr @_Core_GenericMemoryRef_35079, align 8, !dbg !424, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %GenericMemoryRef104 = ptrtoint ptr %"+Core.GenericMemoryRef#35079103" to i64, !dbg !424 %395 = inttoptr i64 %GenericMemoryRef104 to ptr, !dbg !424 %current_task105 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !424 %396 = addrspacecast ptr %395 to ptr addrspace(10), !dbg !424 %"box::GenericMemoryRef106" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task105, i64 16, ptr addrspace(10) %396) #25, !dbg !424 %397 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef106" to ptr addrspace(11), !dbg !424 store { ptr, ptr addrspace(10) } %.Tlast15.ref88, ptr addrspace(11) %397, align 8, !dbg !424, !tbaa !36, !alias.scope !40, !noalias !41 %398 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef106" to ptr addrspace(12), !dbg !424 call void @ijl_bounds_error_int(ptr addrspace(12) %398, i64 %303), !dbg !424 unreachable, !dbg !424 idxend107: ; preds = %L385 %399 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset95, 0, !dbg !424 %memory_ref108 = insertvalue { ptr, ptr addrspace(10) } %399, ptr addrspace(10) %memoryref_mem109, 1, !dbg !424 %400 = addrspacecast ptr addrspace(10) %memoryref_mem109 to ptr addrspace(11), !dbg !424 %401 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %400, i32 0, i32 0, !dbg !424 %memory_len110 = load i64, ptr addrspace(11) %401, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %402 = icmp eq i64 %memory_len110, 0, !dbg !424 br i1 %402, label %oob111, label %load112, !dbg !424 oob111: ; preds = %idxend107 %403 = addrspacecast ptr addrspace(10) %memoryref_mem109 to ptr addrspace(12), !dbg !424 call void @ijl_bounds_error_int(ptr addrspace(12) %403, i64 1), !dbg !424 unreachable, !dbg !424 load112: ; preds = %idxend107 %404 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem109, ptr %memoryref_data89), !dbg !424 %memoryref_data113 = getelementptr inbounds i8, ptr addrspace(13) %404, i64 %memoryref_byteoffset94, !dbg !424 %405 = load double, ptr addrspace(13) %memoryref_data113, align 8, !dbg !424, !tbaa !456, !alias.scope !40, !noalias !41 br label %L389, !dbg !424 oob128: ; preds = %L405 %"+Core.GenericMemoryRef#35079129" = load ptr, ptr @_Core_GenericMemoryRef_35079, align 8, !dbg !443, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %GenericMemoryRef130 = ptrtoint ptr %"+Core.GenericMemoryRef#35079129" to i64, !dbg !443 %406 = inttoptr i64 %GenericMemoryRef130 to ptr, !dbg !443 %current_task131 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !443 %407 = addrspacecast ptr %406 to ptr addrspace(10), !dbg !443 %"box::GenericMemoryRef132" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task131, i64 16, ptr addrspace(10) %407) #25, !dbg !443 %408 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef132" to ptr addrspace(11), !dbg !443 store { ptr, ptr addrspace(10) } %.Tnext13.ref, ptr addrspace(11) %408, align 8, !dbg !443, !tbaa !36, !alias.scope !40, !noalias !41 %409 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef132" to ptr addrspace(12), !dbg !443 call void @ijl_bounds_error_int(ptr addrspace(12) %409, i64 %value_phi20), !dbg !443 unreachable, !dbg !443 idxend133: ; preds = %L405 %410 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset121, 0, !dbg !443 %memory_ref134 = insertvalue { ptr, ptr addrspace(10) } %410, ptr addrspace(10) %memoryref_mem135, 1, !dbg !443 %411 = addrspacecast ptr addrspace(10) %memoryref_mem135 to ptr addrspace(11), !dbg !443 %412 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %411, i32 0, i32 0, !dbg !443 %memory_len136 = load i64, ptr addrspace(11) %412, align 8, !dbg !443, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %413 = icmp eq i64 %memory_len136, 0, !dbg !443 br i1 %413, label %oob137, label %load138, !dbg !443 oob137: ; preds = %idxend133 %414 = addrspacecast ptr addrspace(10) %memoryref_mem135 to ptr addrspace(12), !dbg !443 call void @ijl_bounds_error_int(ptr addrspace(12) %414, i64 1), !dbg !443 unreachable, !dbg !443 load138: ; preds = %idxend133 %415 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem135, ptr %memoryref_data115), !dbg !443 %memoryref_data139 = getelementptr inbounds i8, ptr addrspace(13) %415, i64 %memoryref_byteoffset120, !dbg !443 store double %327, ptr addrspace(13) %memoryref_data139, align 8, !dbg !443, !tbaa !456, !alias.scope !40, !noalias !41 br label %L409, !dbg !458 after_error: ; No predecessors! call void @llvm.trap(), !dbg !437 unreachable, !dbg !437 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !437 unreachable, !dbg !437 after_error148: ; No predecessors! call void @llvm.trap(), !dbg !414 unreachable, !dbg !414 after_noret149: ; No predecessors! call void @llvm.trap(), !dbg !414 unreachable, !dbg !414 after_error151: ; No predecessors! call void @llvm.trap(), !dbg !414 unreachable, !dbg !414 after_noret152: ; No predecessors! call void @llvm.trap(), !dbg !414 unreachable, !dbg !414 after_error154: ; No predecessors! call void @llvm.trap(), !dbg !414 unreachable, !dbg !414 after_noret155: ; No predecessors! call void @llvm.trap(), !dbg !414 unreachable, !dbg !414 after_error157: ; No predecessors! call void @llvm.trap(), !dbg !414 unreachable, !dbg !414 after_noret158: ; No predecessors! call void @llvm.trap(), !dbg !414 unreachable, !dbg !414 oob185: ; preds = %L107 %"+Core.GenericMemoryRef#35079186" = load ptr, ptr @_Core_GenericMemoryRef_35079, align 8, !dbg !230, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %GenericMemoryRef187 = ptrtoint ptr %"+Core.GenericMemoryRef#35079186" to i64, !dbg !230 %416 = inttoptr i64 %GenericMemoryRef187 to ptr, !dbg !230 %current_task188 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !230 %417 = addrspacecast ptr %416 to ptr addrspace(10), !dbg !230 %"box::GenericMemoryRef189" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task188, i64 16, ptr addrspace(10) %417) #25, !dbg !230 %418 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef189" to ptr addrspace(11), !dbg !230 store { ptr, ptr addrspace(10) } %.Tlast.ref, ptr addrspace(11) %418, align 8, !dbg !230, !tbaa !36, !alias.scope !40, !noalias !41 %419 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef189" to ptr addrspace(12), !dbg !230 call void @ijl_bounds_error_int(ptr addrspace(12) %419, i64 1), !dbg !230 unreachable, !dbg !230 idxend190: ; preds = %L107 %420 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset178, 0, !dbg !230 %memory_ref191 = insertvalue { ptr, ptr addrspace(10) } %420, ptr addrspace(10) %memoryref_mem175, 1, !dbg !230 %421 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !224 %422 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %421, i32 0, i32 0, !dbg !224 %memoryref_data192 = load ptr, ptr addrspace(11) %422, align 8, !dbg !224, !tbaa !225, !alias.scope !228, !noalias !229 %423 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %421, i32 0, i32 1, !dbg !224 %memoryref_mem193 = load ptr addrspace(10), ptr addrspace(11) %423, align 8, !dbg !224, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %424 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data192, 0, !dbg !224 %.Tnext.ref = insertvalue { ptr, ptr addrspace(10) } %424, ptr addrspace(10) %memoryref_mem193, 1, !dbg !224 %425 = addrspacecast ptr addrspace(10) %memoryref_mem193 to ptr addrspace(11), !dbg !230 %426 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %425, i32 0, i32 0, !dbg !230 %memory_len194 = load i64, ptr addrspace(11) %426, align 8, !dbg !230, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %427 = add nuw i64 %memory_len194, %memory_len194, !dbg !230 %428 = add i64 0, %memory_len194, !dbg !230 %memoryref_ovflw195 = icmp uge i64 %428, %427, !dbg !230 %memoryref_data_byteoffset196 = getelementptr i8, ptr %memoryref_data192, i64 0, !dbg !230 %429 = addrspacecast ptr addrspace(10) %memoryref_mem193 to ptr addrspace(11), !dbg !230 %430 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %429, i32 0, i32 0, !dbg !230 %memory_len197 = load i64, ptr addrspace(11) %430, align 8, !dbg !230, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %431 = addrspacecast ptr addrspace(10) %memoryref_mem193 to ptr addrspace(11), !dbg !230 %memory_data_ptr198 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %431, i32 0, i32 1, !dbg !230 %memory_data199 = load ptr, ptr addrspace(11) %memory_data_ptr198, align 8, !dbg !230, !tbaa !236, !alias.scope !228, !noalias !229, !nonnull !0 %432 = ptrtoint ptr %memory_data199 to i64, !dbg !230 %433 = ptrtoint ptr %memoryref_data_byteoffset196 to i64, !dbg !230 %434 = sub i64 %433, %432, !dbg !230 %memoryref_bytelen200 = mul nuw nsw i64 %memory_len197, 8, !dbg !230 %memoryref_isinbounds201 = icmp ult i64 %434, %memoryref_bytelen200, !dbg !230 %435 = xor i1 %memoryref_ovflw195, true, !dbg !230 %"memoryref_isinbounds¬ovflw202" = and i1 %435, %memoryref_isinbounds201, !dbg !230 br i1 %"memoryref_isinbounds¬ovflw202", label %idxend208, label %oob203, !dbg !230 oob203: ; preds = %idxend190 %"+Core.GenericMemoryRef#35079204" = load ptr, ptr @_Core_GenericMemoryRef_35079, align 8, !dbg !230, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %GenericMemoryRef205 = ptrtoint ptr %"+Core.GenericMemoryRef#35079204" to i64, !dbg !230 %436 = inttoptr i64 %GenericMemoryRef205 to ptr, !dbg !230 %current_task206 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !230 %437 = addrspacecast ptr %436 to ptr addrspace(10), !dbg !230 %"box::GenericMemoryRef207" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task206, i64 16, ptr addrspace(10) %437) #25, !dbg !230 %438 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef207" to ptr addrspace(11), !dbg !230 store { ptr, ptr addrspace(10) } %.Tnext.ref, ptr addrspace(11) %438, align 8, !dbg !230, !tbaa !36, !alias.scope !40, !noalias !41 %439 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef207" to ptr addrspace(12), !dbg !230 call void @ijl_bounds_error_int(ptr addrspace(12) %439, i64 1), !dbg !230 unreachable, !dbg !230 idxend208: ; preds = %idxend190 %440 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset196, 0, !dbg !230 %memory_ref209 = insertvalue { ptr, ptr addrspace(10) } %440, ptr addrspace(10) %memoryref_mem193, 1, !dbg !230 %441 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %memoryref_mem175), !dbg !459 %442 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %memoryref_mem193), !dbg !460 %memory_ref191.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref191, 0, !dbg !461 %memory_ref209.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref209, 0, !dbg !461 %.Tnext.size12.unbox210 = load i64, ptr %.Tnext.size12, align 8, !dbg !467, !tbaa !84, !alias.scope !86, !noalias !87 %443 = mul i64 %.Tnext.size12.unbox210, 8, !dbg !467 %444 = lshr i64 %443, 63, !dbg !469 %445 = select i1 false, i64 0, i64 %444, !dbg !469 %446 = trunc i64 %445 to i8, !dbg !469 %447 = icmp eq i8 %446, 1, !dbg !469 %448 = xor i1 %447, true, !dbg !238 br i1 %448, label %L126, label %L122, !dbg !238 after_error211: ; No predecessors! call void @llvm.trap(), !dbg !238 unreachable, !dbg !238 after_noret212: ; No predecessors! call void @llvm.trap(), !dbg !238 unreachable, !dbg !238 after_error213: ; No predecessors! call void @llvm.trap(), !dbg !212 unreachable, !dbg !212 after_noret214: ; No predecessors! call void @llvm.trap(), !dbg !212 unreachable, !dbg !212 after_error215: ; No predecessors! call void @llvm.trap(), !dbg !181 unreachable, !dbg !181 after_noret216: ; No predecessors! call void @llvm.trap(), !dbg !181 unreachable, !dbg !181 after_error217: ; No predecessors! call void @llvm.trap(), !dbg !152 unreachable, !dbg !152 after_noret218: ; No predecessors! call void @llvm.trap(), !dbg !152 unreachable, !dbg !152 oob244: ; preds = %L252 %"+Core.GenericMemoryRef#35079245" = load ptr, ptr @_Core_GenericMemoryRef_35079, align 8, !dbg !388, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %GenericMemoryRef246 = ptrtoint ptr %"+Core.GenericMemoryRef#35079245" to i64, !dbg !388 %449 = inttoptr i64 %GenericMemoryRef246 to ptr, !dbg !388 %current_task247 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !388 %450 = addrspacecast ptr %449 to ptr addrspace(10), !dbg !388 %"box::GenericMemoryRef248" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task247, i64 16, ptr addrspace(10) %450) #25, !dbg !388 %451 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef248" to ptr addrspace(11), !dbg !388 store { ptr, ptr addrspace(10) } %value_phi219.ref, ptr addrspace(11) %451, align 8, !dbg !388, !tbaa !36, !alias.scope !40, !noalias !41 %452 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef248" to ptr addrspace(12), !dbg !388 call void @ijl_bounds_error_int(ptr addrspace(12) %452, i64 %174), !dbg !388 unreachable, !dbg !388 idxend249: ; preds = %L252 %453 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset237, 0, !dbg !388 %memory_ref250 = insertvalue { ptr, ptr addrspace(10) } %453, ptr addrspace(10) %memoryref_mem251, 1, !dbg !388 %454 = addrspacecast ptr addrspace(10) %memoryref_mem251 to ptr addrspace(11), !dbg !388 %455 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %454, i32 0, i32 0, !dbg !388 %memory_len252 = load i64, ptr addrspace(11) %455, align 8, !dbg !388, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %456 = icmp eq i64 %memory_len252, 0, !dbg !388 br i1 %456, label %oob253, label %load254, !dbg !388 oob253: ; preds = %idxend249 %457 = addrspacecast ptr addrspace(10) %memoryref_mem251 to ptr addrspace(12), !dbg !388 call void @ijl_bounds_error_int(ptr addrspace(12) %457, i64 1), !dbg !388 unreachable, !dbg !388 load254: ; preds = %idxend249 %458 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem251, ptr %memoryref_data231), !dbg !388 %memoryref_data255 = getelementptr inbounds i8, ptr addrspace(13) %458, i64 %memoryref_byteoffset236, !dbg !388 %459 = load double, ptr addrspace(13) %memoryref_data255, align 8, !dbg !388, !tbaa !456, !alias.scope !40, !noalias !41 br i1 false, label %L276, label %L257, !dbg !390 oob273: ; preds = %L276 %"+Core.GenericMemoryRef#35079274" = load ptr, ptr @_Core_GenericMemoryRef_35079, align 8, !dbg !397, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %GenericMemoryRef275 = ptrtoint ptr %"+Core.GenericMemoryRef#35079274" to i64, !dbg !397 %460 = inttoptr i64 %GenericMemoryRef275 to ptr, !dbg !397 %current_task276 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !397 %461 = addrspacecast ptr %460 to ptr addrspace(10), !dbg !397 %"box::GenericMemoryRef277" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task276, i64 16, ptr addrspace(10) %461) #25, !dbg !397 %462 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef277" to ptr addrspace(11), !dbg !397 store { ptr, ptr addrspace(10) } %.Tlast.ref259, ptr addrspace(11) %462, align 8, !dbg !397, !tbaa !36, !alias.scope !40, !noalias !41 %463 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef277" to ptr addrspace(12), !dbg !397 call void @ijl_bounds_error_int(ptr addrspace(12) %463, i64 %166), !dbg !397 unreachable, !dbg !397 idxend278: ; preds = %L276 %464 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset266, 0, !dbg !397 %memory_ref279 = insertvalue { ptr, ptr addrspace(10) } %464, ptr addrspace(10) %memoryref_mem280, 1, !dbg !397 %465 = addrspacecast ptr addrspace(10) %memoryref_mem280 to ptr addrspace(11), !dbg !397 %466 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %465, i32 0, i32 0, !dbg !397 %memory_len281 = load i64, ptr addrspace(11) %466, align 8, !dbg !397, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %467 = icmp eq i64 %memory_len281, 0, !dbg !397 br i1 %467, label %oob282, label %load283, !dbg !397 oob282: ; preds = %idxend278 %468 = addrspacecast ptr addrspace(10) %memoryref_mem280 to ptr addrspace(12), !dbg !397 call void @ijl_bounds_error_int(ptr addrspace(12) %468, i64 1), !dbg !397 unreachable, !dbg !397 load283: ; preds = %idxend278 %469 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem280, ptr %memoryref_data260), !dbg !397 %memoryref_data284 = getelementptr inbounds i8, ptr addrspace(13) %469, i64 %memoryref_byteoffset265, !dbg !397 store double %459, ptr addrspace(13) %memoryref_data284, align 8, !dbg !397, !tbaa !456, !alias.scope !40, !noalias !41 %470 = add i64 %value_phi223, 1, !dbg !471 br label %L220, !dbg !168, !llvm.loop !473 after_error286: ; No predecessors! call void @llvm.trap(), !dbg !390 unreachable, !dbg !390 after_noret287: ; No predecessors! call void @llvm.trap(), !dbg !390 unreachable, !dbg !390 after_error289: ; No predecessors! call void @llvm.trap(), !dbg !385 unreachable, !dbg !385 after_noret290: ; No predecessors! call void @llvm.trap(), !dbg !385 unreachable, !dbg !385 after_error292: ; No predecessors! call void @llvm.trap(), !dbg !367 unreachable, !dbg !367 after_noret293: ; No predecessors! call void @llvm.trap(), !dbg !367 unreachable, !dbg !367 after_error294: ; No predecessors! call void @llvm.trap(), !dbg !355 unreachable, !dbg !355 after_noret295: ; No predecessors! call void @llvm.trap(), !dbg !355 unreachable, !dbg !355 emptymem: ; preds = %L166 %"jl_global#35109" = load ptr, ptr @jl_global_35109, align 8, !dbg !298, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !35, !align !46 %471 = addrspacecast ptr %"jl_global#35109" to ptr addrspace(10), !dbg !298 br label %retval, !dbg !298 nonemptymem: ; preds = %L166 %"+Core.GenericMemory#35110" = load ptr, ptr @_Core_GenericMemory_35110, align 8, !dbg !298, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %472 = call { i64, i1 } @llvm.smul.with.overflow.i64(i64 %.Tnext.size308.unbox, i64 8), !dbg !298 %473 = extractvalue { i64, i1 } %472, 0, !dbg !298 %474 = extractvalue { i64, i1 } %472, 1, !dbg !298 %475 = icmp slt i64 %.Tnext.size308.unbox, 0, !dbg !298 %476 = or i1 %474, %475, !dbg !298 %477 = icmp slt i64 9223372036854775806, %473, !dbg !298 %478 = or i1 %476, %477, !dbg !298 %479 = xor i1 %478, true, !dbg !298 br i1 %479, label %pass, label %fail, !dbg !298 fail: ; preds = %nonemptymem call void @jl_argument_error(ptr @_j_str_invalid_GenericMemory_siz____5), !dbg !298 unreachable, !dbg !298 pass: ; preds = %nonemptymem %current_task309 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !298 %ptls_field310 = getelementptr inbounds i8, ptr %current_task309, i32 168, !dbg !298 %ptls_load311 = load ptr, ptr %ptls_field310, align 8, !dbg !298, !tbaa !19 %"Memory{Float64}[]" = call noalias nonnull align 16 ptr addrspace(10) @jl_alloc_genericmemory_unchecked(ptr %ptls_load311, i64 %473, ptr %"+Core.GenericMemory#35110") #28, !dbg !298 %480 = addrspacecast ptr addrspace(10) %"Memory{Float64}[]" to ptr addrspace(11), !dbg !298 %481 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %480, i32 0, i32 0, !dbg !298 store i64 %.Tnext.size308.unbox, ptr addrspace(11) %481, align 8, !dbg !298, !tbaa !233, !alias.scope !228, !noalias !229 br label %retval, !dbg !298 retval: ; preds = %pass, %emptymem %482 = phi ptr addrspace(10) [ %471, %emptymem ], [ %"Memory{Float64}[]", %pass ], !dbg !298 %483 = addrspacecast ptr addrspace(10) %482 to ptr addrspace(11), !dbg !474 %memory_data_ptr312 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %483, i32 0, i32 1, !dbg !474 %memory_data313 = load ptr, ptr addrspace(11) %memory_data_ptr312, align 8, !dbg !474, !tbaa !236, !alias.scope !228, !noalias !229, !nonnull !0 %484 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memory_data313, 0, !dbg !474 %memory_ref314 = insertvalue { ptr, ptr addrspace(10) } %484, ptr addrspace(10) %482, 1, !dbg !474 %485 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !475 %.Tnext.size_ptr315 = getelementptr inbounds i8, ptr addrspace(11) %485, i32 16, !dbg !475 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tnext.size316, ptr addrspace(11) align 8 %.Tnext.size_ptr315, i64 8, i1 false), !dbg !475, !tbaa !47, !alias.scope !76, !noalias !77 %486 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %482), !dbg !477 %487 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %134), !dbg !478 %memory_ref314.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref314, 0, !dbg !479 %.Tnext.ref306.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %.Tnext.ref306, 0, !dbg !479 %.Tnext.size316.unbox = load i64, ptr %.Tnext.size316, align 8, !dbg !481, !tbaa !84, !alias.scope !86, !noalias !87 %488 = mul i64 %.Tnext.size316.unbox, 8, !dbg !481 %489 = lshr i64 %488, 63, !dbg !482 %490 = select i1 false, i64 0, i64 %489, !dbg !482 %491 = trunc i64 %490 to i8, !dbg !482 %492 = icmp eq i8 %491, 1, !dbg !482 %493 = xor i1 %492, true, !dbg !300 br i1 %493, label %L184, label %L182, !dbg !300 after_error321: ; No predecessors! call void @llvm.trap(), !dbg !300 unreachable, !dbg !300 after_noret322: ; No predecessors! call void @llvm.trap(), !dbg !300 unreachable, !dbg !300 after_error330: ; No predecessors! call void @llvm.trap(), !dbg !120 unreachable, !dbg !120 after_noret331: ; No predecessors! call void @llvm.trap(), !dbg !120 unreachable, !dbg !120 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !101 unreachable, !dbg !101 after_noret333: ; No predecessors! call void @llvm.trap(), !dbg !101 unreachable, !dbg !101 } expectLen=1 swiftself=false sret=nothing returnRoots=nothing mi.specTypes.parameters=svec(Main.var"#sumheat##2#sumheat##3"{Main.Heat, Int64}) retRemoved=false parmsRemoved=UInt64[] Stacktrace: [1] julia_activity_rule(f::LLVM.Function) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/rules/activityrules.jl:48 [2] handle_compiled(state::Enzyme.Compiler.HandlerState, edges::Vector{Any}, run_enzyme::Bool, mode::Enzyme.API.CDerivativeMode, world::UInt64, method_table::Compiler.OverlayMethodTable, custom::Dict{String, LLVM.API.LLVMLinkage}, mod::LLVM.Module, mi::Core.MethodInstance, k_name::String, rettype::Type) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:628 [3] set_module_types!(interp::Enzyme.Compiler.Interpreter.EnzymeInterpreter{Nothing}, mod::LLVM.Module, primalf::LLVM.Function, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}, edges::Vector{Any}, run_enzyme::Bool, mode::Enzyme.API.CDerivativeMode) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:1220 [4] compile_unhooked(output::Symbol, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:4627 [5] compile(target::Symbol, job::GPUCompiler.CompilerJob; kwargs::@Kwargs{}) @ GPUCompiler ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:67 [6] compile @ ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:55 [inlined] [7] _thunk(job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}, postopt::Bool) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5960 [8] _thunk @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5958 [inlined] [9] cached_compilation @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6015 [inlined] [10] thunkbase(mi::Core.MethodInstance, World::UInt64, FA::Type{<:Annotation}, A::Type{<:Annotation}, TT::Type, Mode::Enzyme.API.CDerivativeMode, width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, edges::Vector{Any}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6131 [11] thunk_generator(world::UInt64, source::Union{LineNumberNode, Method}, FA::Type, A::Type, TT::Type, Mode::Enzyme.API.CDerivativeMode, Width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, self::Any, fakeworld::Any, fa::Type, a::Type, tt::Type, mode::Type, width::Type, modifiedbetween::Type, returnprimal::Type, shadowinit::Type, abi::Type, erriffuncwritten::Type, runtimeactivity::Type, strongzero::Type) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6275 [12] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:502 [inlined] [13] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:562 [inlined] [14] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:534 [inlined] [15] heat(scheme::Online_r2{Nothing}, tsteps::Int64) @ Main ~/.julia/packages/Checkpointing/ZAoTt/examples/heat.jl:63 [16] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:50 [inlined] [17] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:2042 [inlined] [18] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:46 [inlined] [19] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:2042 [inlined] [20] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:45 [inlined] [21] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [22] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:44 [inlined] [23] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [24] top-level scope @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:7 [25] include(mapexpr::Function, mod::Module, _path::String) @ Base ./Base.jl:310 [26] top-level scope @ none:6 [27] eval(m::Module, e::Any) @ Core ./boot.jl:489 [28] exec_options(opts::Base.JLOptions) @ Base ./client.jl:310 [29] _start() @ Base ./client.jl:577 Revolve: Error During Test at /home/pkgeval/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:57 Got exception outside of a @test AssertionError: Enzyme Internal Error (expectLen != length(parameters(f))) ; Function Attrs: noinline noreturn define internal void @julia_throw_boundserror_35818(ptr addrspace(11) nocapture noundef nonnull readonly align 8 dereferenceable(32) %"A::Broadcasted", ptr nocapture noundef nonnull readonly align 8 dereferenceable(8) %.roots.A, ptr addrspace(11) nocapture noundef nonnull readonly align 8 dereferenceable(8) %"I::Tuple") #9 !dbg !50 { top: %pgcstack = call ptr @julia.get_pgcstack() %current_task = getelementptr inbounds i8, ptr %pgcstack, i32 -152 %ptls_field = getelementptr inbounds i8, ptr %current_task, i32 168 %ptls_load = load ptr, ptr %ptls_field, align 8, !tbaa !19 %0 = getelementptr inbounds i8, ptr %ptls_load, i32 16 %safepoint = load atomic ptr, ptr %0 monotonic, align 8, !tbaa !23 fence syncscope("singlethread") seq_cst call void @julia.safepoint(ptr %safepoint) fence syncscope("singlethread") seq_cst %1 = getelementptr inbounds i8, ptr %.roots.A, i32 0 %2 = load ptr addrspace(10), ptr %1, align 8, !tbaa !23, !alias.scope !26, !noalias !29 %"-Core.BoundsError#35784" = load ptr, ptr @_Core_BoundsError_35784, align 8, !dbg !51, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !45, !align !46 %3 = addrspacecast ptr %"-Core.BoundsError#35784" to ptr addrspace(10), !dbg !51 %"+Core.BoundsError#35785" = load ptr, ptr @_Core_BoundsError_35785, align 8, !dbg !51, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %4 = addrspacecast ptr %"+Core.BoundsError#35785" to ptr addrspace(10), !dbg !51 %"+Main.Base.Broadcast.Broadcasted#35820" = load ptr, ptr @_Main_Base_Broadcast_Broadcasted_35820, align 8, !dbg !51, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %Broadcasted = ptrtoint ptr %"+Main.Base.Broadcast.Broadcasted#35820" to i64, !dbg !51 %5 = inttoptr i64 %Broadcasted to ptr, !dbg !51 %current_task1 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !51 %6 = addrspacecast ptr %5 to ptr addrspace(10), !dbg !51 %"box::Broadcasted" = call noalias nonnull align 8 dereferenceable(32) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task1, i64 32, ptr addrspace(10) %6) #25, !dbg !51 %7 = addrspacecast ptr addrspace(10) %"box::Broadcasted" to ptr addrspace(11), !dbg !51 %8 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 0, !dbg !51 store atomic ptr addrspace(10) %2, ptr addrspace(11) %8 unordered, align 8, !dbg !51, !tbaa !36, !alias.scope !40, !noalias !41 %9 = getelementptr inbounds i8, ptr addrspace(11) %"A::Broadcasted", i32 8, !dbg !51 %10 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 8, !dbg !51 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %10, ptr addrspace(11) align 8 %9, i64 24, i1 false), !dbg !51, !tbaa !47, !alias.scope !48, !noalias !49 %"+Core.Tuple#35786" = load ptr, ptr @_Core_Tuple_35786, align 8, !dbg !51, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %Tuple = ptrtoint ptr %"+Core.Tuple#35786" to i64, !dbg !51 %11 = inttoptr i64 %Tuple to ptr, !dbg !51 %current_task2 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !51 %12 = addrspacecast ptr %11 to ptr addrspace(10), !dbg !51 %"box::Tuple" = call noalias nonnull align 8 dereferenceable(8) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task2, i64 8, ptr addrspace(10) %12) #25, !dbg !51 %13 = addrspacecast ptr addrspace(10) %"box::Tuple" to ptr addrspace(11), !dbg !51 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %13, ptr addrspace(11) align 8 %"I::Tuple", i64 8, i1 false), !dbg !51, !tbaa !47, !alias.scope !48, !noalias !49 %14 = call nonnull ptr addrspace(10) (ptr, ptr addrspace(10), ptr addrspace(10), ...) @julia.call2(ptr @ijl_invoke, ptr addrspace(10) %3, ptr addrspace(10) %4, ptr addrspace(10) %"box::Broadcasted", ptr addrspace(10) %"box::Tuple"), !dbg !51 %15 = addrspacecast ptr addrspace(10) %14 to ptr addrspace(12), !dbg !51 call void @ijl_throw(ptr addrspace(12) %15), !dbg !51 unreachable, !dbg !51 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !51 unreachable, !dbg !51 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !51 unreachable, !dbg !51 } expectLen=2 swiftself=false sret=nothing returnRoots=nothing mi.specTypes.parameters=svec(typeof(Base.throw_boundserror), Base.Broadcast.Broadcasted{Nothing, Tuple{Base.OneTo{Int64}}, typeof(identity), Tuple{Base.Broadcast.Extruded{Vector{Float64}, Tuple{Bool}, Tuple{Int64}}}}, Tuple{Int64}) retRemoved=false parmsRemoved=UInt64[] Stacktrace: [1] julia_activity_rule(f::LLVM.Function) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/rules/activityrules.jl:48 [2] handle_compiled(state::Enzyme.Compiler.HandlerState, edges::Vector{Any}, run_enzyme::Bool, mode::Enzyme.API.CDerivativeMode, world::UInt64, method_table::Compiler.OverlayMethodTable, custom::Dict{String, LLVM.API.LLVMLinkage}, mod::LLVM.Module, mi::Core.MethodInstance, k_name::String, rettype::Type) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:628 [3] set_module_types!(interp::Enzyme.Compiler.Interpreter.EnzymeInterpreter{Nothing}, mod::LLVM.Module, primalf::LLVM.Function, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}, edges::Vector{Any}, run_enzyme::Bool, mode::Enzyme.API.CDerivativeMode) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:1220 [4] compile_unhooked(output::Symbol, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:4627 [5] compile(target::Symbol, job::GPUCompiler.CompilerJob; kwargs::@Kwargs{}) @ GPUCompiler ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:67 [6] compile @ ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:55 [inlined] [7] _thunk(job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}, postopt::Bool) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5960 [8] _thunk @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5958 [inlined] [9] cached_compilation @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6015 [inlined] [10] thunkbase(mi::Core.MethodInstance, World::UInt64, FA::Type{<:Annotation}, A::Type{<:Annotation}, TT::Type, Mode::Enzyme.API.CDerivativeMode, width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, edges::Vector{Any}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6131 [11] thunk_generator(world::UInt64, source::Union{LineNumberNode, Method}, FA::Type, A::Type, TT::Type, Mode::Enzyme.API.CDerivativeMode, Width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, self::Any, fakeworld::Any, fa::Type, a::Type, tt::Type, mode::Type, width::Type, modifiedbetween::Type, returnprimal::Type, shadowinit::Type, abi::Type, erriffuncwritten::Type, runtimeactivity::Type, strongzero::Type) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6275 [12] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:502 [inlined] [13] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:562 [inlined] [14] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:534 [inlined] [15] heat(scheme::Revolve{Nothing}, tsteps::Int64) @ Main ~/.julia/packages/Checkpointing/ZAoTt/examples/heat.jl:63 [16] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:62 [inlined] [17] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:2042 [inlined] [18] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:57 [inlined] [19] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [20] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:57 [inlined] [21] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [22] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:44 [inlined] [23] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [24] top-level scope @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:7 [25] include(mapexpr::Function, mod::Module, _path::String) @ Base ./Base.jl:310 [26] top-level scope @ none:6 [27] eval(m::Module, e::Any) @ Core ./boot.jl:489 [28] exec_options(opts::Base.JLOptions) @ Base ./client.jl:310 [29] _start() @ Base ./client.jl:577 Periodic: Error During Test at /home/pkgeval/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:57 Got exception outside of a @test AssertionError: Enzyme Internal Error (expectLen != length(parameters(f))) ; Function Attrs: noinline noreturn define internal void @julia_throw_boundserror_35908(ptr addrspace(11) nocapture noundef nonnull readonly align 8 dereferenceable(32) %"A::Broadcasted", ptr nocapture noundef nonnull readonly align 8 dereferenceable(8) %.roots.A, ptr addrspace(11) nocapture noundef nonnull readonly align 8 dereferenceable(8) %"I::Tuple") #9 !dbg !50 { top: %pgcstack = call ptr @julia.get_pgcstack() %current_task = getelementptr inbounds i8, ptr %pgcstack, i32 -152 %ptls_field = getelementptr inbounds i8, ptr %current_task, i32 168 %ptls_load = load ptr, ptr %ptls_field, align 8, !tbaa !19 %0 = getelementptr inbounds i8, ptr %ptls_load, i32 16 %safepoint = load atomic ptr, ptr %0 monotonic, align 8, !tbaa !23 fence syncscope("singlethread") seq_cst call void @julia.safepoint(ptr %safepoint) fence syncscope("singlethread") seq_cst %1 = getelementptr inbounds i8, ptr %.roots.A, i32 0 %2 = load ptr addrspace(10), ptr %1, align 8, !tbaa !23, !alias.scope !26, !noalias !29 %"-Core.BoundsError#35874" = load ptr, ptr @_Core_BoundsError_35874, align 8, !dbg !51, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !45, !align !46 %3 = addrspacecast ptr %"-Core.BoundsError#35874" to ptr addrspace(10), !dbg !51 %"+Core.BoundsError#35875" = load ptr, ptr @_Core_BoundsError_35875, align 8, !dbg !51, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %4 = addrspacecast ptr %"+Core.BoundsError#35875" to ptr addrspace(10), !dbg !51 %"+Main.Base.Broadcast.Broadcasted#35910" = load ptr, ptr @_Main_Base_Broadcast_Broadcasted_35910, align 8, !dbg !51, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %Broadcasted = ptrtoint ptr %"+Main.Base.Broadcast.Broadcasted#35910" to i64, !dbg !51 %5 = inttoptr i64 %Broadcasted to ptr, !dbg !51 %current_task1 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !51 %6 = addrspacecast ptr %5 to ptr addrspace(10), !dbg !51 %"box::Broadcasted" = call noalias nonnull align 8 dereferenceable(32) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task1, i64 32, ptr addrspace(10) %6) #25, !dbg !51 %7 = addrspacecast ptr addrspace(10) %"box::Broadcasted" to ptr addrspace(11), !dbg !51 %8 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 0, !dbg !51 store atomic ptr addrspace(10) %2, ptr addrspace(11) %8 unordered, align 8, !dbg !51, !tbaa !36, !alias.scope !40, !noalias !41 %9 = getelementptr inbounds i8, ptr addrspace(11) %"A::Broadcasted", i32 8, !dbg !51 %10 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 8, !dbg !51 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %10, ptr addrspace(11) align 8 %9, i64 24, i1 false), !dbg !51, !tbaa !47, !alias.scope !48, !noalias !49 %"+Core.Tuple#35876" = load ptr, ptr @_Core_Tuple_35876, align 8, !dbg !51, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %Tuple = ptrtoint ptr %"+Core.Tuple#35876" to i64, !dbg !51 %11 = inttoptr i64 %Tuple to ptr, !dbg !51 %current_task2 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !51 %12 = addrspacecast ptr %11 to ptr addrspace(10), !dbg !51 %"box::Tuple" = call noalias nonnull align 8 dereferenceable(8) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task2, i64 8, ptr addrspace(10) %12) #25, !dbg !51 %13 = addrspacecast ptr addrspace(10) %"box::Tuple" to ptr addrspace(11), !dbg !51 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %13, ptr addrspace(11) align 8 %"I::Tuple", i64 8, i1 false), !dbg !51, !tbaa !47, !alias.scope !48, !noalias !49 %14 = call nonnull ptr addrspace(10) (ptr, ptr addrspace(10), ptr addrspace(10), ...) @julia.call2(ptr @ijl_invoke, ptr addrspace(10) %3, ptr addrspace(10) %4, ptr addrspace(10) %"box::Broadcasted", ptr addrspace(10) %"box::Tuple"), !dbg !51 %15 = addrspacecast ptr addrspace(10) %14 to ptr addrspace(12), !dbg !51 call void @ijl_throw(ptr addrspace(12) %15), !dbg !51 unreachable, !dbg !51 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !51 unreachable, !dbg !51 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !51 unreachable, !dbg !51 } expectLen=2 swiftself=false sret=nothing returnRoots=nothing mi.specTypes.parameters=svec(typeof(Base.throw_boundserror), Base.Broadcast.Broadcasted{Nothing, Tuple{Base.OneTo{Int64}}, typeof(identity), Tuple{Base.Broadcast.Extruded{Vector{Float64}, Tuple{Bool}, Tuple{Int64}}}}, Tuple{Int64}) retRemoved=false parmsRemoved=UInt64[] Stacktrace: [1] julia_activity_rule(f::LLVM.Function) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/rules/activityrules.jl:48 [2] handle_compiled(state::Enzyme.Compiler.HandlerState, edges::Vector{Any}, run_enzyme::Bool, mode::Enzyme.API.CDerivativeMode, world::UInt64, method_table::Compiler.OverlayMethodTable, custom::Dict{String, LLVM.API.LLVMLinkage}, mod::LLVM.Module, mi::Core.MethodInstance, k_name::String, rettype::Type) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:628 [3] set_module_types!(interp::Enzyme.Compiler.Interpreter.EnzymeInterpreter{Nothing}, mod::LLVM.Module, primalf::LLVM.Function, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}, edges::Vector{Any}, run_enzyme::Bool, mode::Enzyme.API.CDerivativeMode) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:1220 [4] compile_unhooked(output::Symbol, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:4627 [5] compile(target::Symbol, job::GPUCompiler.CompilerJob; kwargs::@Kwargs{}) @ GPUCompiler ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:67 [6] compile @ ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:55 [inlined] [7] _thunk(job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}, postopt::Bool) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5960 [8] _thunk @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5958 [inlined] [9] cached_compilation @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6015 [inlined] [10] thunkbase(mi::Core.MethodInstance, World::UInt64, FA::Type{<:Annotation}, A::Type{<:Annotation}, TT::Type, Mode::Enzyme.API.CDerivativeMode, width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, edges::Vector{Any}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6131 [11] thunk_generator(world::UInt64, source::Union{LineNumberNode, Method}, FA::Type, A::Type, TT::Type, Mode::Enzyme.API.CDerivativeMode, Width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, self::Any, fakeworld::Any, fa::Type, a::Type, tt::Type, mode::Type, width::Type, modifiedbetween::Type, returnprimal::Type, shadowinit::Type, abi::Type, erriffuncwritten::Type, runtimeactivity::Type, strongzero::Type) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6275 [12] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:502 [inlined] [13] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:562 [inlined] [14] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:534 [inlined] [15] heat(scheme::Periodic{Nothing}, tsteps::Int64) @ Main ~/.julia/packages/Checkpointing/ZAoTt/examples/heat.jl:63 [16] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:62 [inlined] [17] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:2042 [inlined] [18] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:57 [inlined] [19] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [20] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:57 [inlined] [21] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [22] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:44 [inlined] [23] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [24] top-level scope @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:7 [25] include(mapexpr::Function, mod::Module, _path::String) @ Base ./Base.jl:310 [26] top-level scope @ none:6 [27] eval(m::Module, e::Any) @ Core ./boot.jl:489 [28] exec_options(opts::Base.JLOptions) @ Base ./client.jl:310 [29] _start() @ Base ./client.jl:577 Online_r2: Error During Test at /home/pkgeval/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:57 Got exception outside of a @test AssertionError: Enzyme Internal Error (expectLen != length(parameters(f))) define internal i8 @julia__sumheat__2_35972(ptr addrspace(11) nocapture noundef nonnull readonly align 8 dereferenceable(16) %"#self#::#sumheat##2#sumheat##3", ptr nocapture noundef nonnull readonly align 8 dereferenceable(8) %".roots.#self#") #9 !dbg !50 { top: %.Tlast.size = alloca i64, align 8 %"new::OneTo" = alloca [1 x i64], align 8 %"new::Tuple" = alloca [1 x [1 x i64]], align 8 %.Tnext.size = alloca i64, align 8 %.Tlast.size2 = alloca i64, align 8 %"new::Tuple4" = alloca [1 x [1 x i64]], align 8 %.Tnext.size8 = alloca i64, align 8 %.Tnext.size12 = alloca i64, align 8 %.Tlast15.size = alloca i64, align 8 %.Tlast15.size28 = alloca i64, align 8 %.Tlast15.size57 = alloca i64, align 8 %.Tlast15.size86 = alloca i64, align 8 %.Tnext13.size = alloca i64, align 8 %"new::Tuple146" = alloca [1 x i64], align 8 %"new::Tuple147" = alloca [1 x i64], align 8 %"new::Tuple150" = alloca [1 x i64], align 8 %"new::Tuple153" = alloca [1 x i64], align 8 %"new::Tuple156" = alloca [1 x i64], align 8 %"new::Tuple162" = alloca [1 x [2 x i64]], align 8 %.Tlast.size164 = alloca i64, align 8 %"new::Tuple169" = alloca [1 x [2 x i64]], align 8 %.Tnext.size171 = alloca i64, align 8 %value_phi219.size = alloca i64, align 8 %"new::Tuple220" = alloca [1 x i8], align 1 %"new::Extruded" = alloca [3 x i64], align 8 %"new::Tuple221" = alloca [3 x i64], align 8 %"new::Broadcasted" = alloca [4 x i64], align 8 %"new::Tuple225" = alloca [1 x i64], align 8 %value_phi219.size229 = alloca i64, align 8 %.Tlast.size257 = alloca i64, align 8 %"new::Tuple285" = alloca [1 x i64], align 8 %"new::Tuple288" = alloca [1 x i64], align 8 %"new::Tuple291" = alloca [1 x i64], align 8 %0 = alloca ptr addrspace(10), align 8 %.Tlast.size297 = alloca i64, align 8 %.Tnext.size299 = alloca i64, align 8 %.Tnext.size308 = alloca i64, align 8 %.Tnext.size316 = alloca i64, align 8 %.Tnext.size327 = alloca i64, align 8 %pgcstack = call ptr @julia.get_pgcstack() call void @llvm.memset.p0.i64(ptr align 8 %0, i8 0, i64 8, i1 false), !tbaa !19, !alias.scope !52, !noalias !53 %current_task = getelementptr inbounds i8, ptr %pgcstack, i32 -152 %ptls_field = getelementptr inbounds i8, ptr %current_task, i32 168 %ptls_load = load ptr, ptr %ptls_field, align 8, !tbaa !19 %1 = getelementptr inbounds i8, ptr %ptls_load, i32 16 %safepoint = load atomic ptr, ptr %1 monotonic, align 8, !tbaa !23 fence syncscope("singlethread") seq_cst call void @julia.safepoint(ptr %safepoint) fence syncscope("singlethread") seq_cst %2 = getelementptr inbounds i8, ptr %".roots.#self#", i32 0 %3 = load ptr addrspace(10), ptr %2, align 8, !tbaa !23, !alias.scope !26, !noalias !29 %4 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !54 %.Tlast_ptr = getelementptr inbounds i8, ptr addrspace(11) %4, i32 8, !dbg !54 %.Tlast = load atomic ptr addrspace(10), ptr addrspace(11) %.Tlast_ptr unordered, align 8, !dbg !54, !tbaa !63, !alias.scope !40, !noalias !41, !nonnull !0, !dereferenceable !65, !align !46 %5 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !66 %.Tnext = load atomic ptr addrspace(10), ptr addrspace(11) %5 unordered, align 8, !dbg !66, !tbaa !63, !alias.scope !40, !noalias !41, !nonnull !0, !dereferenceable !65, !align !46 %6 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !67 %.Tlast.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %6, i32 16, !dbg !67 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tlast.size, ptr addrspace(11) align 8 %.Tlast.size_ptr, i64 8, i1 false), !dbg !67, !tbaa !47, !alias.scope !76, !noalias !77 %7 = getelementptr inbounds i8, ptr %"new::OneTo", i32 0, !dbg !78 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %7, ptr align 8 %.Tlast.size, i64 8, i1 false), !dbg !78, !tbaa !84, !alias.scope !86, !noalias !87 %8 = getelementptr inbounds i8, ptr %"new::Tuple", i32 0, !dbg !81 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %8, ptr align 8 %"new::OneTo", i64 8, i1 false), !dbg !81, !tbaa !84, !alias.scope !86, !noalias !87 %9 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !88 %.Tnext.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %9, i32 16, !dbg !88 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tnext.size, ptr addrspace(11) align 8 %.Tnext.size_ptr, i64 8, i1 false), !dbg !88, !tbaa !47, !alias.scope !76, !noalias !77 %.Tlast.size.unbox = load i64, ptr %.Tlast.size, align 8, !dbg !94, !tbaa !84, !alias.scope !86, !noalias !87 %.Tnext.size.unbox = load i64, ptr %.Tnext.size, align 8, !dbg !94, !tbaa !84, !alias.scope !86, !noalias !87 %10 = icmp eq i64 %.Tlast.size.unbox, %.Tnext.size.unbox, !dbg !94 %11 = xor i1 %10, true, !dbg !99 br i1 %11, label %L16, label %L15, !dbg !99 L15: ; preds = %top %12 = zext i1 %10 to i8 br label %L18, !dbg !99 L16: ; preds = %top %.Tnext.size.unbox334 = load i64, ptr %.Tnext.size, align 8, !dbg !103, !tbaa !84, !alias.scope !86, !noalias !87 %13 = icmp eq i64 %.Tnext.size.unbox334, 1, !dbg !103 %14 = zext i1 %13 to i8 br label %L18, !dbg !103 L18: ; preds = %L16, %L15 %value_phi = phi i8 [ %12, %L15 ], [ %14, %L16 ] %15 = trunc i8 %value_phi to i1, !dbg !101 %16 = xor i1 %15, true, !dbg !101 br i1 %16, label %L21, label %L20, !dbg !101 L20: ; preds = %L18 br label %L24, !dbg !101 L21: ; preds = %L18 %"jl_global#35988" = load ptr, ptr @jl_global_35988, align 8, !dbg !101, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %17 = addrspacecast ptr %"jl_global#35988" to ptr addrspace(10), !dbg !101 %18 = call [1 x ptr addrspace(10)] @julia_DimensionMismatch_36009(ptr addrspace(10) %17), !dbg !101 %"+Main.Base.DimensionMismatch#35989" = load ptr, ptr @_Main_Base_DimensionMismatch_35989, align 8, !dbg !101, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %DimensionMismatch = ptrtoint ptr %"+Main.Base.DimensionMismatch#35989" to i64, !dbg !101 %19 = inttoptr i64 %DimensionMismatch to ptr, !dbg !101 %current_task332 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !101 %20 = addrspacecast ptr %19 to ptr addrspace(10), !dbg !101 %"box::DimensionMismatch" = call noalias nonnull align 8 dereferenceable(8) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task332, i64 8, ptr addrspace(10) %20) #25, !dbg !101 %21 = addrspacecast ptr addrspace(10) %"box::DimensionMismatch" to ptr addrspace(11), !dbg !101 store [1 x ptr addrspace(10)] %18, ptr addrspace(11) %21, align 8, !dbg !101, !tbaa !36, !alias.scope !40, !noalias !41 %22 = addrspacecast ptr addrspace(10) %"box::DimensionMismatch" to ptr addrspace(12), !dbg !101 call void @ijl_throw(ptr addrspace(12) %22), !dbg !101 unreachable, !dbg !101 L24: ; preds = %L20 br label %L25, !dbg !101 L25: ; preds = %L24 br label %L26, !dbg !104 L26: ; preds = %L25 %23 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !105 %.Tlast.size_ptr1 = getelementptr inbounds i8, ptr addrspace(11) %23, i32 16, !dbg !105 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tlast.size2, ptr addrspace(11) align 8 %.Tlast.size_ptr1, i64 8, i1 false), !dbg !105, !tbaa !47, !alias.scope !76, !noalias !77 %24 = getelementptr inbounds i8, ptr %"new::Tuple4", i32 0, !dbg !112 %25 = getelementptr inbounds i8, ptr %24, i32 0, !dbg !112 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %25, ptr align 8 %.Tlast.size2, i64 8, i1 false), !dbg !112, !tbaa !84, !alias.scope !86, !noalias !87 %.Tlast.size2.unbox = load i64, ptr %.Tlast.size2, align 8, !dbg !114, !tbaa !84, !alias.scope !86, !noalias !87 %.Tlast.size.unbox5 = load i64, ptr %.Tlast.size, align 8, !dbg !114, !tbaa !84, !alias.scope !86, !noalias !87 %26 = icmp eq i64 %.Tlast.size2.unbox, %.Tlast.size.unbox5, !dbg !114 %27 = zext i1 %26 to i8, !dbg !121 %28 = icmp eq i8 %27, 0, !dbg !121 %29 = xor i1 %28, true, !dbg !121 br i1 %29, label %L35, label %L34, !dbg !121 L34: ; preds = %L26 br label %L36, !dbg !122 L35: ; preds = %L26 br label %L36, !dbg !123 L36: ; preds = %L35, %L34 %value_phi6 = phi i8 [ 0, %L34 ], [ 1, %L35 ] br label %L38, !dbg !118 L38: ; preds = %L36 %30 = trunc i8 %value_phi6 to i1, !dbg !120 %31 = xor i1 %30, true, !dbg !120 br i1 %31, label %L284, label %L39, !dbg !120 L39: ; preds = %L38 %32 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !124 %.Tnext.size_ptr7 = getelementptr inbounds i8, ptr addrspace(11) %32, i32 16, !dbg !124 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tnext.size8, ptr addrspace(11) align 8 %.Tnext.size_ptr7, i64 8, i1 false), !dbg !124, !tbaa !47, !alias.scope !76, !noalias !77 %.Tlast.size2.unbox9 = load i64, ptr %.Tlast.size2, align 8, !dbg !127, !tbaa !84, !alias.scope !86, !noalias !87 %.Tnext.size8.unbox = load i64, ptr %.Tnext.size8, align 8, !dbg !127, !tbaa !84, !alias.scope !86, !noalias !87 %33 = icmp eq i64 %.Tlast.size2.unbox9, %.Tnext.size8.unbox, !dbg !127 %34 = zext i1 %33 to i8, !dbg !131 %35 = icmp eq i8 %34, 0, !dbg !131 %36 = xor i1 %35, true, !dbg !131 br i1 %36, label %L46, label %L45, !dbg !131 L45: ; preds = %L39 br label %L47, !dbg !132 L46: ; preds = %L39 br label %L47, !dbg !133 L47: ; preds = %L46, %L45 %value_phi10 = phi i8 [ 0, %L45 ], [ 1, %L46 ] br label %L49, !dbg !130 L49: ; preds = %L47 %37 = trunc i8 %value_phi10 to i1, !dbg !126 %38 = xor i1 %37, true, !dbg !126 br i1 %38, label %L137, label %L50, !dbg !126 L50: ; preds = %L49 %39 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !134 %.Tnext.size_ptr11 = getelementptr inbounds i8, ptr addrspace(11) %39, i32 16, !dbg !134 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tnext.size12, ptr addrspace(11) align 8 %.Tnext.size_ptr11, i64 8, i1 false), !dbg !134, !tbaa !47, !alias.scope !76, !noalias !77 %.Tnext.size12.unbox = load i64, ptr %.Tnext.size12, align 8, !dbg !142, !tbaa !84, !alias.scope !86, !noalias !87 %40 = icmp eq i64 %.Tnext.size12.unbox, 0, !dbg !142 %41 = xor i1 %40, true, !dbg !143 br i1 %41, label %L55, label %L54, !dbg !143 L54: ; preds = %L50 br label %L133, !dbg !143 L55: ; preds = %L50 %.Tnext.size12.unbox159 = load i64, ptr %.Tnext.size12, align 8, !dbg !146, !tbaa !84, !alias.scope !86, !noalias !87 %42 = icmp slt i64 0, %.Tnext.size12.unbox159, !dbg !146 %43 = xor i1 %42, true, !dbg !152 br i1 %43, label %L131, label %L57, !dbg !152 L57: ; preds = %L55 br i1 false, label %L81, label %L59, !dbg !153 L59: ; preds = %L57 %.Tnext.size12.unbox160 = load i64, ptr %.Tnext.size12, align 8, !dbg !154, !tbaa !84, !alias.scope !86, !noalias !87 %44 = add i64 1, %.Tnext.size12.unbox160, !dbg !154 %45 = sub i64 %44, 1, !dbg !156 %46 = icmp sle i64 1, %45, !dbg !158 %47 = xor i1 %46, true, !dbg !162 br i1 %47, label %L64, label %L63, !dbg !162 L63: ; preds = %L59 br label %L65, !dbg !168 L64: ; preds = %L59 br label %L65, !dbg !168 L65: ; preds = %L64, %L63 %value_phi161 = phi i64 [ %45, %L63 ], [ 0, %L64 ] %48 = getelementptr inbounds i8, ptr %"new::Tuple162", i32 0, !dbg !164 %49 = getelementptr inbounds i8, ptr %48, i32 0, !dbg !164 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %49, ptr align 8 @_j_const_1, i64 8, i1 false), !dbg !164, !tbaa !47, !alias.scope !173, !noalias !174 %50 = getelementptr inbounds i8, ptr %48, i32 8, !dbg !164 store i64 %value_phi161, ptr %50, align 8, !dbg !164, !tbaa !84, !alias.scope !86, !noalias !87 %51 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !175 %.Tlast.size_ptr163 = getelementptr inbounds i8, ptr addrspace(11) %51, i32 16, !dbg !175 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tlast.size164, ptr addrspace(11) align 8 %.Tlast.size_ptr163, i64 8, i1 false), !dbg !175, !tbaa !47, !alias.scope !76, !noalias !77 %52 = icmp slt i64 %value_phi161, 1, !dbg !182 %bitcast165 = load i64, ptr %.Tlast.size164, align 8, !dbg !188, !tbaa !84, !alias.scope !86, !noalias !87 %53 = icmp ult i64 0, %bitcast165, !dbg !193 %54 = sub i64 %value_phi161, 1, !dbg !194 %bitcast166 = load i64, ptr %.Tlast.size164, align 8, !dbg !188, !tbaa !84, !alias.scope !86, !noalias !87 %55 = icmp ult i64 %54, %bitcast166, !dbg !193 %56 = and i1 %53, %55, !dbg !195 %57 = or i1 %52, %56, !dbg !198 %58 = xor i1 %57, true, !dbg !181 br i1 %58, label %L88, label %L80, !dbg !181 L80: ; preds = %L65 br label %L81, !dbg !181 L81: ; preds = %L80, %L57 br i1 false, label %L107, label %L83, !dbg !200 L83: ; preds = %L81 %.Tnext.size12.unbox167 = load i64, ptr %.Tnext.size12, align 8, !dbg !201, !tbaa !84, !alias.scope !86, !noalias !87 %59 = add i64 1, %.Tnext.size12.unbox167, !dbg !201 %60 = sub i64 %59, 1, !dbg !202 %61 = icmp sle i64 1, %60, !dbg !203 %62 = xor i1 %61, true, !dbg !205 br i1 %62, label %L90, label %L87, !dbg !205 L87: ; preds = %L83 br label %L91, !dbg !168 L88: ; preds = %L65 %63 = addrspacecast ptr %"new::Tuple162" to ptr addrspace(11), !dbg !181 call void @julia_throw_boundserror_36005(ptr addrspace(10) %.Tlast, ptr addrspace(11) nocapture readonly %63) #26, !dbg !181 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !181 unreachable, !dbg !181 L90: ; preds = %L83 br label %L91, !dbg !168 L91: ; preds = %L90, %L87 %value_phi168 = phi i64 [ %60, %L87 ], [ 0, %L90 ] %64 = getelementptr inbounds i8, ptr %"new::Tuple169", i32 0, !dbg !206 %65 = getelementptr inbounds i8, ptr %64, i32 0, !dbg !206 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %65, ptr align 8 @_j_const_1, i64 8, i1 false), !dbg !206, !tbaa !47, !alias.scope !173, !noalias !174 %66 = getelementptr inbounds i8, ptr %64, i32 8, !dbg !206 store i64 %value_phi168, ptr %66, align 8, !dbg !206, !tbaa !84, !alias.scope !86, !noalias !87 %67 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !208 %.Tnext.size_ptr170 = getelementptr inbounds i8, ptr addrspace(11) %67, i32 16, !dbg !208 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tnext.size171, ptr addrspace(11) align 8 %.Tnext.size_ptr170, i64 8, i1 false), !dbg !208, !tbaa !47, !alias.scope !76, !noalias !77 %68 = icmp slt i64 %value_phi168, 1, !dbg !213 %bitcast172 = load i64, ptr %.Tnext.size171, align 8, !dbg !217, !tbaa !84, !alias.scope !86, !noalias !87 %69 = icmp ult i64 0, %bitcast172, !dbg !220 %70 = sub i64 %value_phi168, 1, !dbg !221 %bitcast173 = load i64, ptr %.Tnext.size171, align 8, !dbg !217, !tbaa !84, !alias.scope !86, !noalias !87 %71 = icmp ult i64 %70, %bitcast173, !dbg !220 %72 = and i1 %69, %71, !dbg !222 %73 = or i1 %68, %72, !dbg !223 %74 = xor i1 %73, true, !dbg !212 br i1 %74, label %L124, label %L106, !dbg !212 L106: ; preds = %L91 br label %L107, !dbg !212 L107: ; preds = %L106, %L81 %75 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !224 %76 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %75, i32 0, i32 0, !dbg !224 %memoryref_data174 = load ptr, ptr addrspace(11) %76, align 8, !dbg !224, !tbaa !225, !alias.scope !228, !noalias !229 %77 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %75, i32 0, i32 1, !dbg !224 %memoryref_mem175 = load ptr addrspace(10), ptr addrspace(11) %77, align 8, !dbg !224, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %78 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data174, 0, !dbg !224 %.Tlast.ref = insertvalue { ptr, ptr addrspace(10) } %78, ptr addrspace(10) %memoryref_mem175, 1, !dbg !224 %79 = addrspacecast ptr addrspace(10) %memoryref_mem175 to ptr addrspace(11), !dbg !230 %80 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %79, i32 0, i32 0, !dbg !230 %memory_len176 = load i64, ptr addrspace(11) %80, align 8, !dbg !230, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %81 = add nuw i64 %memory_len176, %memory_len176, !dbg !230 %82 = add i64 0, %memory_len176, !dbg !230 %memoryref_ovflw177 = icmp uge i64 %82, %81, !dbg !230 %memoryref_data_byteoffset178 = getelementptr i8, ptr %memoryref_data174, i64 0, !dbg !230 %83 = addrspacecast ptr addrspace(10) %memoryref_mem175 to ptr addrspace(11), !dbg !230 %84 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %83, i32 0, i32 0, !dbg !230 %memory_len179 = load i64, ptr addrspace(11) %84, align 8, !dbg !230, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %85 = addrspacecast ptr addrspace(10) %memoryref_mem175 to ptr addrspace(11), !dbg !230 %memory_data_ptr180 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %85, i32 0, i32 1, !dbg !230 %memory_data181 = load ptr, ptr addrspace(11) %memory_data_ptr180, align 8, !dbg !230, !tbaa !236, !alias.scope !228, !noalias !229, !nonnull !0 %86 = ptrtoint ptr %memory_data181 to i64, !dbg !230 %87 = ptrtoint ptr %memoryref_data_byteoffset178 to i64, !dbg !230 %88 = sub i64 %87, %86, !dbg !230 %memoryref_bytelen182 = mul nuw nsw i64 %memory_len179, 8, !dbg !230 %memoryref_isinbounds183 = icmp ult i64 %88, %memoryref_bytelen182, !dbg !230 %89 = xor i1 %memoryref_ovflw177, true, !dbg !230 %"memoryref_isinbounds¬ovflw184" = and i1 %89, %memoryref_isinbounds183, !dbg !230 br i1 %"memoryref_isinbounds¬ovflw184", label %idxend190, label %oob185, !dbg !230 L122: ; preds = %idxend208 %"-Core.throw_inexacterror#35975" = load ptr, ptr @_Core_throw_inexacterror_35975, align 8, !dbg !238, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !45, !align !46 %90 = addrspacecast ptr %"-Core.throw_inexacterror#35975" to ptr addrspace(10), !dbg !238 %"jl_global#35976" = load ptr, ptr @jl_global_35976, align 8, !dbg !238, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %91 = addrspacecast ptr %"jl_global#35976" to ptr addrspace(10), !dbg !238 %"jl_sym#convert#35977" = load ptr, ptr @jl_sym_convert_35977, align 8, !dbg !238, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %92 = addrspacecast ptr %"jl_sym#convert#35977" to ptr addrspace(10), !dbg !238 %93 = load ptr, ptr getelementptr inbounds (i8, ptr @jl_small_typeof, i32 336), align 8, !dbg !238, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %94 = addrspacecast ptr %93 to ptr addrspace(10), !dbg !238 %box_Int64 = call nonnull align 8 dereferenceable(8) ptr addrspace(10) @ijl_box_int64(i64 signext %443) #27, !dbg !238 %95 = call nonnull ptr addrspace(10) (ptr, ptr addrspace(10), ptr addrspace(10), ...) @julia.call2(ptr @ijl_invoke, ptr addrspace(10) %90, ptr addrspace(10) %91, ptr addrspace(10) %92, ptr addrspace(10) %94, ptr addrspace(10) %box_Int64), !dbg !238 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !238 unreachable, !dbg !238 L124: ; preds = %L91 %96 = addrspacecast ptr %"new::Tuple169" to ptr addrspace(11), !dbg !212 call void @julia_throw_boundserror_36005(ptr addrspace(10) %.Tnext, ptr addrspace(11) nocapture readonly %96) #26, !dbg !212 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !212 unreachable, !dbg !212 L126: ; preds = %idxend208 call void @llvm.memmove.p0.p0.i64(ptr %memory_ref191.ptr_or_offset, ptr %memory_ref209.ptr_or_offset, i64 %443, i1 false), !dbg !249 call void @llvm.julia.gc_preserve_end(token %442), !dbg !255 call void @llvm.julia.gc_preserve_end(token %441), !dbg !256 br label %L133, !dbg !257 L131: ; preds = %L55 %"jl_global#35980" = load ptr, ptr @jl_global_35980, align 8, !dbg !152, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %97 = addrspacecast ptr %"jl_global#35980" to ptr addrspace(10), !dbg !152 call void @julia__throw_argerror_36002(ptr addrspace(10) %97) #26, !dbg !152 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !152 unreachable, !dbg !152 L133: ; preds = %L126, %L54 br label %L134, !dbg !143 L134: ; preds = %L133 br label %L135, !dbg !143 L135: ; preds = %L134 br label %L136, !dbg !143 L136: ; preds = %L135 br label %L286, !dbg !258 L137: ; preds = %L49 %98 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !259 %99 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !259 %100 = icmp eq ptr addrspace(11) %98, %99, !dbg !259 %101 = xor i1 %100, true, !dbg !259 br i1 %101, label %L140, label %L139, !dbg !259 L139: ; preds = %L137 br label %L204, !dbg !168 L140: ; preds = %L137 %102 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !267 %.Tlast.size_ptr296 = getelementptr inbounds i8, ptr addrspace(11) %102, i32 16, !dbg !267 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tlast.size297, ptr addrspace(11) align 8 %.Tlast.size_ptr296, i64 8, i1 false), !dbg !267, !tbaa !47, !alias.scope !76, !noalias !77 %.Tlast.size297.unbox = load i64, ptr %.Tlast.size297, align 8, !dbg !275, !tbaa !84, !alias.scope !86, !noalias !87 %103 = icmp eq i64 %.Tlast.size297.unbox, 0, !dbg !275 %104 = xor i1 %103, true, !dbg !276 %105 = xor i1 %104, true, !dbg !271 br i1 %105, label %L163, label %L145, !dbg !271 L145: ; preds = %L140 %106 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !267 %.Tnext.size_ptr298 = getelementptr inbounds i8, ptr addrspace(11) %106, i32 16, !dbg !267 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tnext.size299, ptr addrspace(11) align 8 %.Tnext.size_ptr298, i64 8, i1 false), !dbg !267, !tbaa !47, !alias.scope !76, !noalias !77 %.Tnext.size299.unbox = load i64, ptr %.Tnext.size299, align 8, !dbg !275, !tbaa !84, !alias.scope !86, !noalias !87 %107 = icmp eq i64 %.Tnext.size299.unbox, 0, !dbg !275 %108 = xor i1 %107, true, !dbg !276 %109 = xor i1 %108, true, !dbg !271 br i1 %109, label %L162, label %L150, !dbg !271 L150: ; preds = %L145 %110 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !278 %111 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %110, i32 0, i32 0, !dbg !278 %112 = load ptr, ptr addrspace(11) %111, align 8, !dbg !278, !tbaa !225, !alias.scope !228, !noalias !229 %113 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %110, i32 0, i32 1, !dbg !278 %114 = load ptr addrspace(10), ptr addrspace(11) %113, align 8, !dbg !278, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %115 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %112, 0, !dbg !278 %.Tlast.ref300 = insertvalue { ptr, ptr addrspace(10) } %115, ptr addrspace(10) %114, 1, !dbg !278 %.Tlast.ref300.mem = extractvalue { ptr, ptr addrspace(10) } %.Tlast.ref300, 1, !dbg !278 %116 = addrspacecast ptr addrspace(10) %.Tlast.ref300.mem to ptr addrspace(11), !dbg !281 %.Tlast.ref300.mem.ptr_ptr = getelementptr inbounds i8, ptr addrspace(11) %116, i32 8, !dbg !281 %bitcast301 = load ptr, ptr addrspace(11) %.Tlast.ref300.mem.ptr_ptr, align 8, !dbg !283, !tbaa !236, !alias.scope !228, !noalias !229 %bitcast_coercion = ptrtoint ptr %bitcast301 to i64, !dbg !283 %117 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !278 %118 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %117, i32 0, i32 0, !dbg !278 %119 = load ptr, ptr addrspace(11) %118, align 8, !dbg !278, !tbaa !225, !alias.scope !228, !noalias !229 %120 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %117, i32 0, i32 1, !dbg !278 %121 = load ptr addrspace(10), ptr addrspace(11) %120, align 8, !dbg !278, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %122 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %119, 0, !dbg !278 %.Tnext.ref302 = insertvalue { ptr, ptr addrspace(10) } %122, ptr addrspace(10) %121, 1, !dbg !278 %.Tnext.ref302.mem = extractvalue { ptr, ptr addrspace(10) } %.Tnext.ref302, 1, !dbg !278 %123 = addrspacecast ptr addrspace(10) %.Tnext.ref302.mem to ptr addrspace(11), !dbg !281 %.Tnext.ref302.mem.ptr_ptr = getelementptr inbounds i8, ptr addrspace(11) %123, i32 8, !dbg !281 %bitcast303 = load ptr, ptr addrspace(11) %.Tnext.ref302.mem.ptr_ptr, align 8, !dbg !283, !tbaa !236, !alias.scope !228, !noalias !229 %bitcast_coercion304 = ptrtoint ptr %bitcast303 to i64, !dbg !283 %124 = icmp eq i64 %bitcast_coercion, %bitcast_coercion304, !dbg !284 %125 = xor i1 %124, true, !dbg !289 %126 = xor i1 %125, true, !dbg !276 %127 = zext i1 %126 to i8, !dbg !168 br label %L164, !dbg !168 L162: ; preds = %L145 br label %L164, !dbg !168 L163: ; preds = %L140 br label %L164, !dbg !168 L164: ; preds = %L163, %L162, %L150 %value_phi305 = phi i8 [ %127, %L150 ], [ 0, %L162 ], [ 0, %L163 ] %128 = trunc i8 %value_phi305 to i1, !dbg !273 %129 = xor i1 %128, true, !dbg !273 br i1 %129, label %L201, label %L166, !dbg !273 L166: ; preds = %L164 %130 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !290 %131 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %130, i32 0, i32 0, !dbg !290 %132 = load ptr, ptr addrspace(11) %131, align 8, !dbg !290, !tbaa !225, !alias.scope !228, !noalias !229 %133 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %130, i32 0, i32 1, !dbg !290 %134 = load ptr addrspace(10), ptr addrspace(11) %133, align 8, !dbg !290, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %135 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %132, 0, !dbg !290 %.Tnext.ref306 = insertvalue { ptr, ptr addrspace(10) } %135, ptr addrspace(10) %134, 1, !dbg !290 %136 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !295 %.Tnext.size_ptr307 = getelementptr inbounds i8, ptr addrspace(11) %136, i32 16, !dbg !295 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tnext.size308, ptr addrspace(11) align 8 %.Tnext.size_ptr307, i64 8, i1 false), !dbg !295, !tbaa !47, !alias.scope !76, !noalias !77 %.Tnext.size308.unbox = load i64, ptr %.Tnext.size308, align 8, !dbg !298, !tbaa !84, !alias.scope !86, !noalias !87 %memorynew_empty = icmp eq i64 %.Tnext.size308.unbox, 0, !dbg !298 br i1 %memorynew_empty, label %emptymem, label %nonemptymem, !dbg !298 L182: ; preds = %retval %"-Core.throw_inexacterror#35975317" = load ptr, ptr @_Core_throw_inexacterror_35975, align 8, !dbg !300, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !45, !align !46 %137 = addrspacecast ptr %"-Core.throw_inexacterror#35975317" to ptr addrspace(10), !dbg !300 %"jl_global#35976318" = load ptr, ptr @jl_global_35976, align 8, !dbg !300, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %138 = addrspacecast ptr %"jl_global#35976318" to ptr addrspace(10), !dbg !300 %"jl_sym#convert#35977319" = load ptr, ptr @jl_sym_convert_35977, align 8, !dbg !300, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %139 = addrspacecast ptr %"jl_sym#convert#35977319" to ptr addrspace(10), !dbg !300 %140 = load ptr, ptr getelementptr inbounds (i8, ptr @jl_small_typeof, i32 336), align 8, !dbg !300, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %141 = addrspacecast ptr %140 to ptr addrspace(10), !dbg !300 %box_Int64320 = call nonnull align 8 dereferenceable(8) ptr addrspace(10) @ijl_box_int64(i64 signext %488) #27, !dbg !300 %142 = call nonnull ptr addrspace(10) (ptr, ptr addrspace(10), ptr addrspace(10), ...) @julia.call2(ptr @ijl_invoke, ptr addrspace(10) %137, ptr addrspace(10) %138, ptr addrspace(10) %139, ptr addrspace(10) %141, ptr addrspace(10) %box_Int64320), !dbg !300 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !300 unreachable, !dbg !300 L184: ; preds = %retval br label %L185, !dbg !300 L185: ; preds = %L184 br label %L187, !dbg !301 L187: ; preds = %L185 br label %L188, !dbg !301 L188: ; preds = %L187 br label %L189, !dbg !301 L189: ; preds = %L188 br label %L190, !dbg !301 L190: ; preds = %L189 call void @llvm.memmove.p0.p0.i64(ptr %memory_ref314.ptr_or_offset, ptr %.Tnext.ref306.ptr_or_offset, i64 %488, i1 false), !dbg !305 br label %L192, !dbg !305 L192: ; preds = %L190 call void @llvm.julia.gc_preserve_end(token %487), !dbg !308 call void @llvm.julia.gc_preserve_end(token %486), !dbg !309 br label %L195, !dbg !310 L195: ; preds = %L192 %143 = addrspacecast ptr addrspace(10) %482 to ptr addrspace(11), !dbg !311 %memory_data_ptr323 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %143, i32 0, i32 1, !dbg !311 %memory_data324 = load ptr, ptr addrspace(11) %memory_data_ptr323, align 8, !dbg !311, !tbaa !236, !alias.scope !228, !noalias !229, !nonnull !0 %144 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memory_data324, 0, !dbg !311 %memory_ref325 = insertvalue { ptr, ptr addrspace(10) } %144, ptr addrspace(10) %482, 1, !dbg !311 %145 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !313 %.Tnext.size_ptr326 = getelementptr inbounds i8, ptr addrspace(11) %145, i32 16, !dbg !313 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tnext.size327, ptr addrspace(11) align 8 %.Tnext.size_ptr326, i64 8, i1 false), !dbg !313, !tbaa !47, !alias.scope !76, !noalias !77 %"+Core.Array#35985" = load ptr, ptr @_Core_Array_35985, align 8, !dbg !312, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %Array = ptrtoint ptr %"+Core.Array#35985" to i64, !dbg !312 %146 = inttoptr i64 %Array to ptr, !dbg !312 %current_task328 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !312 %147 = addrspacecast ptr %146 to ptr addrspace(10), !dbg !312 %"new::Array" = call noalias nonnull align 8 dereferenceable(24) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task328, i64 24, ptr addrspace(10) %147) #25, !dbg !312 %148 = addrspacecast ptr addrspace(10) %"new::Array" to ptr addrspace(11), !dbg !312 %149 = getelementptr inbounds i8, ptr addrspace(11) %148, i32 8, !dbg !312 store ptr addrspace(10) null, ptr addrspace(11) %149, align 8, !dbg !312, !tbaa !314, !alias.scope !228, !noalias !229 %150 = addrspacecast ptr addrspace(10) %"new::Array" to ptr addrspace(11), !dbg !312 store { ptr, ptr addrspace(10) } %memory_ref325, ptr addrspace(11) %150, align 8, !dbg !312, !tbaa !225, !alias.scope !228, !noalias !229 %151 = addrspacecast ptr addrspace(10) %"new::Array" to ptr addrspace(11), !dbg !312 %"new::Array.size_ptr" = getelementptr inbounds i8, ptr addrspace(11) %151, i32 16, !dbg !312 call void @llvm.memcpy.p11.p0.i64(ptr addrspace(11) align 8 %"new::Array.size_ptr", ptr align 8 %.Tnext.size327, i64 8, i1 false), !dbg !312, !tbaa !47, !alias.scope !315, !noalias !77 br label %L199, !dbg !312 L199: ; preds = %L195 br label %L200, !dbg !312 L200: ; preds = %L199 br label %L202, !dbg !168 L201: ; preds = %L164 br label %L202, !dbg !168 L202: ; preds = %L201, %L200 %value_phi329 = phi ptr addrspace(10) [ %"new::Array", %L200 ], [ %.Tnext, %L201 ] br label %L204, !dbg !168 L204: ; preds = %L202, %L139 %value_phi219 = phi ptr addrspace(10) [ %.Tnext, %L139 ], [ %value_phi329, %L202 ] %152 = addrspacecast ptr addrspace(10) %value_phi219 to ptr addrspace(11), !dbg !316 %value_phi219.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %152, i32 16, !dbg !316 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %value_phi219.size, ptr addrspace(11) align 8 %value_phi219.size_ptr, i64 8, i1 false), !dbg !316, !tbaa !47, !alias.scope !76, !noalias !77 %value_phi219.size.unbox = load i64, ptr %value_phi219.size, align 8, !dbg !322, !tbaa !84, !alias.scope !86, !noalias !87 %153 = icmp eq i64 %value_phi219.size.unbox, 1, !dbg !322 %154 = xor i1 %153, true, !dbg !328 %155 = getelementptr inbounds i8, ptr %"new::Tuple220", i32 0, !dbg !324 %156 = zext i1 %154 to i8, !dbg !324 store i8 %156, ptr %155, align 1, !dbg !324, !tbaa !84, !alias.scope !86, !noalias !87 %157 = getelementptr inbounds i8, ptr %"new::Extruded", i32 8, !dbg !329 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %157, ptr align 1 %"new::Tuple220", i64 1, i1 false), !dbg !329, !tbaa !84, !alias.scope !86, !noalias !87 %158 = getelementptr inbounds i8, ptr %"new::Extruded", i32 16, !dbg !329 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %158, ptr align 8 @_j_const_4, i64 8, i1 false), !dbg !329, !tbaa !47, !alias.scope !173, !noalias !174 br label %L213, !dbg !329 L213: ; preds = %L204 %159 = getelementptr inbounds i8, ptr %"new::Tuple221", i32 0, !dbg !263 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %159, ptr align 8 %"new::Extruded", i64 24, i1 false), !dbg !263, !tbaa !84, !alias.scope !86, !noalias !87 br label %L215, !dbg !263 L215: ; preds = %L213 %160 = getelementptr inbounds i8, ptr %"new::Broadcasted", i32 0, !dbg !331 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %160, ptr align 8 %"new::Tuple221", i64 24, i1 false), !dbg !331, !tbaa !84, !alias.scope !86, !noalias !87 %161 = getelementptr inbounds i8, ptr %"new::Broadcasted", i32 24, !dbg !331 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %161, ptr align 8 %"new::Tuple", i64 8, i1 false), !dbg !331, !tbaa !84, !alias.scope !86, !noalias !87 br label %L217, !dbg !331 L217: ; preds = %L215 %.Tlast.size.unbox222 = load i64, ptr %.Tlast.size, align 8, !dbg !333, !tbaa !84, !alias.scope !86, !noalias !87 %162 = icmp slt i64 0, %.Tlast.size.unbox222, !dbg !333 %163 = xor i1 %162, true, !dbg !334 br i1 %163, label %L282, label %L219, !dbg !334 L219: ; preds = %L217 br label %L220, !dbg !168 L220: ; preds = %load283, %L219 %value_phi223 = phi i64 [ 0, %L219 ], [ %470, %load283 ] %.Tlast.size.unbox224 = load i64, ptr %.Tlast.size, align 8, !dbg !342, !tbaa !84, !alias.scope !86, !noalias !87 %164 = icmp slt i64 %value_phi223, %.Tlast.size.unbox224, !dbg !342 %165 = xor i1 %164, true, !dbg !343 br i1 %165, label %L282, label %L223, !dbg !343 L223: ; preds = %L220 %166 = add i64 %value_phi223, 1, !dbg !344 br i1 false, label %L233, label %L226, !dbg !348 L226: ; preds = %L223 %167 = getelementptr inbounds i8, ptr %"new::Tuple225", i32 0, !dbg !348 store i64 %166, ptr %167, align 8, !dbg !348, !tbaa !84, !alias.scope !86, !noalias !87 %168 = sub i64 %166, 1, !dbg !352 %bitcast226 = load i64, ptr %.Tlast.size, align 8, !dbg !356, !tbaa !84, !alias.scope !86, !noalias !87 %169 = icmp ult i64 %168, %bitcast226, !dbg !358 %170 = xor i1 %169, true, !dbg !355 br i1 %170, label %L265, label %L232, !dbg !355 L232: ; preds = %L226 br label %L233, !dbg !355 L233: ; preds = %L232, %L223 br i1 false, label %L241, label %L235, !dbg !359 L235: ; preds = %L233 %171 = sub i64 %166, 1, !dbg !365 %bitcast227 = load i64, ptr %.Tlast.size, align 8, !dbg !369, !tbaa !84, !alias.scope !86, !noalias !87 %172 = icmp ult i64 %171, %bitcast227, !dbg !371 %173 = xor i1 %172, true, !dbg !367 br i1 %173, label %L267, label %L240, !dbg !367 L240: ; preds = %L235 br label %L241, !dbg !367 L241: ; preds = %L240, %L233 %ifelse_cond = xor i1 %154, true, !dbg !372 %174 = select i1 %ifelse_cond, i64 1, i64 %166, !dbg !372 br i1 false, label %L252, label %L244, !dbg !381 L244: ; preds = %L241 %175 = sub i64 %174, 1, !dbg !383 %176 = addrspacecast ptr addrspace(10) %value_phi219 to ptr addrspace(11), !dbg !386 %value_phi219.size_ptr228 = getelementptr inbounds i8, ptr addrspace(11) %176, i32 16, !dbg !386 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %value_phi219.size229, ptr addrspace(11) align 8 %value_phi219.size_ptr228, i64 8, i1 false), !dbg !386, !tbaa !47, !alias.scope !76, !noalias !77 %bitcast230 = load i64, ptr %value_phi219.size229, align 8, !dbg !383, !tbaa !84, !alias.scope !86, !noalias !87 %177 = icmp ult i64 %175, %bitcast230, !dbg !383 %178 = xor i1 %177, true, !dbg !385 br i1 %178, label %L270, label %L251, !dbg !385 L251: ; preds = %L244 br label %L252, !dbg !385 L252: ; preds = %L251, %L241 %179 = addrspacecast ptr addrspace(10) %value_phi219 to ptr addrspace(11), !dbg !388 %180 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %179, i32 0, i32 0, !dbg !388 %memoryref_data231 = load ptr, ptr addrspace(11) %180, align 8, !dbg !388, !tbaa !225, !alias.scope !228, !noalias !229 %181 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %179, i32 0, i32 1, !dbg !388 %memoryref_mem251 = load ptr addrspace(10), ptr addrspace(11) %181, align 8, !dbg !388, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %182 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data231, 0, !dbg !388 %value_phi219.ref = insertvalue { ptr, ptr addrspace(10) } %182, ptr addrspace(10) %memoryref_mem251, 1, !dbg !388 %memoryref_offset233 = sub i64 %174, 1, !dbg !388 %183 = addrspacecast ptr addrspace(10) %memoryref_mem251 to ptr addrspace(11), !dbg !388 %184 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %183, i32 0, i32 0, !dbg !388 %memory_len234 = load i64, ptr addrspace(11) %184, align 8, !dbg !388, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %185 = add nuw i64 %memory_len234, %memory_len234, !dbg !388 %186 = add i64 %memoryref_offset233, %memory_len234, !dbg !388 %memoryref_ovflw235 = icmp uge i64 %186, %185, !dbg !388 %memoryref_byteoffset236 = mul i64 %memoryref_offset233, 8, !dbg !388 %memoryref_data_byteoffset237 = getelementptr i8, ptr %memoryref_data231, i64 %memoryref_byteoffset236, !dbg !388 %187 = addrspacecast ptr addrspace(10) %memoryref_mem251 to ptr addrspace(11), !dbg !388 %188 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %187, i32 0, i32 0, !dbg !388 %memory_len238 = load i64, ptr addrspace(11) %188, align 8, !dbg !388, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %189 = addrspacecast ptr addrspace(10) %memoryref_mem251 to ptr addrspace(11), !dbg !388 %memory_data_ptr239 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %189, i32 0, i32 1, !dbg !388 %memory_data240 = load ptr, ptr addrspace(11) %memory_data_ptr239, align 8, !dbg !388, !tbaa !236, !alias.scope !228, !noalias !229, !nonnull !0 %190 = ptrtoint ptr %memory_data240 to i64, !dbg !388 %191 = ptrtoint ptr %memoryref_data_byteoffset237 to i64, !dbg !388 %192 = sub i64 %191, %190, !dbg !388 %memoryref_bytelen241 = mul nuw nsw i64 %memory_len238, 8, !dbg !388 %memoryref_isinbounds242 = icmp ult i64 %192, %memoryref_bytelen241, !dbg !388 %193 = xor i1 %memoryref_ovflw235, true, !dbg !388 %"memoryref_isinbounds¬ovflw243" = and i1 %193, %memoryref_isinbounds242, !dbg !388 br i1 %"memoryref_isinbounds¬ovflw243", label %idxend249, label %oob244, !dbg !388 L257: ; preds = %load254 %194 = sub i64 %166, 1, !dbg !389 %195 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !394 %.Tlast.size_ptr256 = getelementptr inbounds i8, ptr addrspace(11) %195, i32 16, !dbg !394 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tlast.size257, ptr addrspace(11) align 8 %.Tlast.size_ptr256, i64 8, i1 false), !dbg !394, !tbaa !47, !alias.scope !76, !noalias !77 %bitcast258 = load i64, ptr %.Tlast.size257, align 8, !dbg !389, !tbaa !84, !alias.scope !86, !noalias !87 %196 = icmp ult i64 %194, %bitcast258, !dbg !389 %197 = xor i1 %196, true, !dbg !390 br i1 %197, label %L273, label %L264, !dbg !390 L264: ; preds = %L257 br label %L276, !dbg !390 L265: ; preds = %L226 %198 = addrspacecast ptr %"new::OneTo" to ptr addrspace(11), !dbg !355 %199 = addrspacecast ptr %"new::Tuple225" to ptr addrspace(11), !dbg !355 call void @julia_throw_boundserror_35999(ptr addrspace(11) nocapture readonly %198, ptr addrspace(11) nocapture readonly %199) #26, !dbg !355 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !355 unreachable, !dbg !355 L267: ; preds = %L235 %200 = getelementptr inbounds i8, ptr %"new::Tuple291", i32 0, !dbg !367 store i64 %166, ptr %200, align 8, !dbg !367, !tbaa !84, !alias.scope !86, !noalias !87 %201 = getelementptr inbounds i8, ptr %0, i32 0, !dbg !367 store ptr addrspace(10) %value_phi219, ptr %201, align 8, !dbg !367 %202 = addrspacecast ptr %"new::Broadcasted" to ptr addrspace(11), !dbg !367 %203 = addrspacecast ptr %"new::Tuple291" to ptr addrspace(11), !dbg !367 call void @julia_throw_boundserror_35996(ptr addrspace(11) nocapture readonly %202, ptr nocapture readonly %0, ptr addrspace(11) nocapture readonly %203) #26, !dbg !367 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !367 unreachable, !dbg !367 L270: ; preds = %L244 %204 = getelementptr inbounds i8, ptr %"new::Tuple288", i32 0, !dbg !385 store i64 %174, ptr %204, align 8, !dbg !385, !tbaa !84, !alias.scope !86, !noalias !87 %205 = addrspacecast ptr %"new::Tuple288" to ptr addrspace(11), !dbg !385 call void @julia_throw_boundserror_35960(ptr addrspace(10) %value_phi219, ptr addrspace(11) nocapture readonly %205) #26, !dbg !385 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !385 unreachable, !dbg !385 L273: ; preds = %L257 %206 = getelementptr inbounds i8, ptr %"new::Tuple285", i32 0, !dbg !390 store i64 %166, ptr %206, align 8, !dbg !390, !tbaa !84, !alias.scope !86, !noalias !87 %207 = addrspacecast ptr %"new::Tuple285" to ptr addrspace(11), !dbg !390 call void @julia_throw_boundserror_35960(ptr addrspace(10) %.Tlast, ptr addrspace(11) nocapture readonly %207) #26, !dbg !390 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !390 unreachable, !dbg !390 L276: ; preds = %L264, %load254 %208 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !396 %209 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %208, i32 0, i32 0, !dbg !396 %memoryref_data260 = load ptr, ptr addrspace(11) %209, align 8, !dbg !396, !tbaa !225, !alias.scope !228, !noalias !229 %210 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %208, i32 0, i32 1, !dbg !396 %memoryref_mem280 = load ptr addrspace(10), ptr addrspace(11) %210, align 8, !dbg !396, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %211 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data260, 0, !dbg !396 %.Tlast.ref259 = insertvalue { ptr, ptr addrspace(10) } %211, ptr addrspace(10) %memoryref_mem280, 1, !dbg !396 %memoryref_offset262 = sub i64 %166, 1, !dbg !397 %212 = addrspacecast ptr addrspace(10) %memoryref_mem280 to ptr addrspace(11), !dbg !397 %213 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %212, i32 0, i32 0, !dbg !397 %memory_len263 = load i64, ptr addrspace(11) %213, align 8, !dbg !397, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %214 = add nuw i64 %memory_len263, %memory_len263, !dbg !397 %215 = add i64 %memoryref_offset262, %memory_len263, !dbg !397 %memoryref_ovflw264 = icmp uge i64 %215, %214, !dbg !397 %memoryref_byteoffset265 = mul i64 %memoryref_offset262, 8, !dbg !397 %memoryref_data_byteoffset266 = getelementptr i8, ptr %memoryref_data260, i64 %memoryref_byteoffset265, !dbg !397 %216 = addrspacecast ptr addrspace(10) %memoryref_mem280 to ptr addrspace(11), !dbg !397 %217 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %216, i32 0, i32 0, !dbg !397 %memory_len267 = load i64, ptr addrspace(11) %217, align 8, !dbg !397, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %218 = addrspacecast ptr addrspace(10) %memoryref_mem280 to ptr addrspace(11), !dbg !397 %memory_data_ptr268 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %218, i32 0, i32 1, !dbg !397 %memory_data269 = load ptr, ptr addrspace(11) %memory_data_ptr268, align 8, !dbg !397, !tbaa !236, !alias.scope !228, !noalias !229, !nonnull !0 %219 = ptrtoint ptr %memory_data269 to i64, !dbg !397 %220 = ptrtoint ptr %memoryref_data_byteoffset266 to i64, !dbg !397 %221 = sub i64 %220, %219, !dbg !397 %memoryref_bytelen270 = mul nuw nsw i64 %memory_len267, 8, !dbg !397 %memoryref_isinbounds271 = icmp ult i64 %221, %memoryref_bytelen270, !dbg !397 %222 = xor i1 %memoryref_ovflw264, true, !dbg !397 %"memoryref_isinbounds¬ovflw272" = and i1 %222, %memoryref_isinbounds271, !dbg !397 br i1 %"memoryref_isinbounds¬ovflw272", label %idxend278, label %oob273, !dbg !397 L282: ; preds = %L220, %L217 br label %L283, !dbg !337 L283: ; preds = %L282 br label %L286, !dbg !398 L284: ; preds = %L38 %223 = addrspacecast ptr %"new::Tuple4" to ptr addrspace(11), !dbg !120 %224 = addrspacecast ptr %"new::Tuple" to ptr addrspace(11), !dbg !120 call void @julia_throwdm_35990(ptr addrspace(11) nocapture readonly %223, ptr addrspace(11) nocapture readonly %224) #26, !dbg !120 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !120 unreachable, !dbg !120 L286: ; preds = %L283, %L136 br label %L287, !dbg !258 L287: ; preds = %L286 br label %L288, !dbg !72 L288: ; preds = %L287 br label %L289, !dbg !75 L289: ; preds = %L288 %225 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !399 %.Tnext13 = load atomic ptr addrspace(10), ptr addrspace(11) %225 unordered, align 8, !dbg !399, !tbaa !63, !alias.scope !40, !noalias !41, !nonnull !0, !dereferenceable !65, !align !46 %226 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !401 %.Tlast_ptr14 = getelementptr inbounds i8, ptr addrspace(11) %226, i32 8, !dbg !401 %.Tlast15 = load atomic ptr addrspace(10), ptr addrspace(11) %.Tlast_ptr14 unordered, align 8, !dbg !401, !tbaa !63, !alias.scope !40, !noalias !41, !nonnull !0, !dereferenceable !65, !align !46 %227 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !403 %".\CE\BB_ptr" = getelementptr inbounds i8, ptr addrspace(11) %227, i32 24, !dbg !403 %".\CE\BB" = load double, ptr addrspace(11) %".\CE\BB_ptr", align 8, !dbg !403, !tbaa !63, !alias.scope !40, !noalias !41 %228 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !405 %.n_ptr = getelementptr inbounds i8, ptr addrspace(11) %228, i32 16, !dbg !405 %.n = load i64, ptr addrspace(11) %.n_ptr, align 8, !dbg !405, !tbaa !63, !alias.scope !40, !noalias !41 %229 = sub i64 %.n, 1, !dbg !407 %230 = icmp sle i64 2, %229, !dbg !409 %231 = xor i1 %230, true, !dbg !411 br i1 %231, label %L298, label %L297, !dbg !411 L297: ; preds = %L289 br label %L299, !dbg !411 L298: ; preds = %L289 br label %L299, !dbg !414 L299: ; preds = %L298, %L297 %value_phi16 = phi i64 [ %229, %L297 ], [ 1, %L298 ] br label %L301, !dbg !412 L301: ; preds = %L299 br label %L302, !dbg !412 L302: ; preds = %L301 %232 = icmp slt i64 %value_phi16, 2, !dbg !417 %233 = xor i1 %232, true, !dbg !420 br i1 %233, label %L305, label %L304, !dbg !420 L304: ; preds = %L302 br label %L306, !dbg !420 L305: ; preds = %L302 br label %L306, !dbg !420 L306: ; preds = %L305, %L304 %value_phi17 = phi i8 [ 1, %L304 ], [ 0, %L305 ] %value_phi18 = phi i64 [ 2, %L305 ], [ undef, %L304 ] %value_phi19 = phi i64 [ 2, %L305 ], [ undef, %L304 ] %234 = trunc i8 %value_phi17 to i1, !dbg !408 %235 = xor i1 %234, true, !dbg !408 %236 = xor i1 %235, true, !dbg !408 br i1 %236, label %L421, label %L306.L311_crit_edge, !dbg !408 L306.L311_crit_edge: ; preds = %L306 br label %L311, !dbg !420 L311: ; preds = %L306.L311_crit_edge, %L420 %value_phi20 = phi i64 [ %value_phi18, %L306.L311_crit_edge ], [ %value_phi140, %L420 ] %value_phi21 = phi i64 [ %value_phi19, %L306.L311_crit_edge ], [ %value_phi141, %L420 ] br i1 false, label %L327, label %L315, !dbg !415 L315: ; preds = %L311 %237 = sub i64 %value_phi20, 1, !dbg !421 %238 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !422 %.Tlast15.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %238, i32 16, !dbg !422 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tlast15.size, ptr addrspace(11) align 8 %.Tlast15.size_ptr, i64 8, i1 false), !dbg !422, !tbaa !47, !alias.scope !76, !noalias !77 %bitcast = load i64, ptr %.Tlast15.size, align 8, !dbg !421, !tbaa !84, !alias.scope !86, !noalias !87 %239 = icmp ult i64 %237, %bitcast, !dbg !421 %240 = xor i1 %239, true, !dbg !414 br i1 %240, label %L323, label %L322, !dbg !414 L322: ; preds = %L315 br label %L326, !dbg !414 L323: ; preds = %L315 %241 = getelementptr inbounds i8, ptr %"new::Tuple156", i32 0, !dbg !414 store i64 %value_phi20, ptr %241, align 8, !dbg !414, !tbaa !84, !alias.scope !86, !noalias !87 %242 = addrspacecast ptr %"new::Tuple156" to ptr addrspace(11), !dbg !414 call void @julia_throw_boundserror_35960(ptr addrspace(10) %.Tlast15, ptr addrspace(11) nocapture readonly %242) #26, !dbg !414 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !414 unreachable, !dbg !414 L326: ; preds = %L322 br label %L327, !dbg !414 L327: ; preds = %L326, %L311 %243 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !424 %244 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %243, i32 0, i32 0, !dbg !424 %memoryref_data = load ptr, ptr addrspace(11) %244, align 8, !dbg !424, !tbaa !225, !alias.scope !228, !noalias !229 %245 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %243, i32 0, i32 1, !dbg !424 %memoryref_mem = load ptr addrspace(10), ptr addrspace(11) %245, align 8, !dbg !424, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %246 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data, 0, !dbg !424 %.Tlast15.ref = insertvalue { ptr, ptr addrspace(10) } %246, ptr addrspace(10) %memoryref_mem, 1, !dbg !424 %memoryref_offset = sub i64 %value_phi20, 1, !dbg !424 %247 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !424 %248 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %247, i32 0, i32 0, !dbg !424 %memory_len = load i64, ptr addrspace(11) %248, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %249 = add nuw i64 %memory_len, %memory_len, !dbg !424 %250 = add i64 %memoryref_offset, %memory_len, !dbg !424 %memoryref_ovflw = icmp uge i64 %250, %249, !dbg !424 %memoryref_byteoffset = mul i64 %memoryref_offset, 8, !dbg !424 %memoryref_data_byteoffset = getelementptr i8, ptr %memoryref_data, i64 %memoryref_byteoffset, !dbg !424 %251 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !424 %252 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %251, i32 0, i32 0, !dbg !424 %memory_len22 = load i64, ptr addrspace(11) %252, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %253 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !424 %memory_data_ptr = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %253, i32 0, i32 1, !dbg !424 %memory_data = load ptr, ptr addrspace(11) %memory_data_ptr, align 8, !dbg !424, !tbaa !236, !alias.scope !228, !noalias !229, !nonnull !0 %254 = ptrtoint ptr %memory_data to i64, !dbg !424 %255 = ptrtoint ptr %memoryref_data_byteoffset to i64, !dbg !424 %256 = sub i64 %255, %254, !dbg !424 %memoryref_bytelen = mul nuw nsw i64 %memory_len22, 8, !dbg !424 %memoryref_isinbounds = icmp ult i64 %256, %memoryref_bytelen, !dbg !424 %257 = xor i1 %memoryref_ovflw, true, !dbg !424 %"memoryref_isinbounds¬ovflw" = and i1 %257, %memoryref_isinbounds, !dbg !424 br i1 %"memoryref_isinbounds¬ovflw", label %idxend, label %oob, !dbg !424 L331: ; preds = %load %258 = sub i64 %value_phi20, 1, !dbg !425 br i1 false, label %L346, label %L334, !dbg !415 L334: ; preds = %L331 %259 = sub i64 %258, 1, !dbg !421 %260 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !422 %.Tlast15.size_ptr27 = getelementptr inbounds i8, ptr addrspace(11) %260, i32 16, !dbg !422 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tlast15.size28, ptr addrspace(11) align 8 %.Tlast15.size_ptr27, i64 8, i1 false), !dbg !422, !tbaa !47, !alias.scope !76, !noalias !77 %bitcast29 = load i64, ptr %.Tlast15.size28, align 8, !dbg !421, !tbaa !84, !alias.scope !86, !noalias !87 %261 = icmp ult i64 %259, %bitcast29, !dbg !421 %262 = xor i1 %261, true, !dbg !414 br i1 %262, label %L342, label %L341, !dbg !414 L341: ; preds = %L334 br label %L345, !dbg !414 L342: ; preds = %L334 %263 = getelementptr inbounds i8, ptr %"new::Tuple153", i32 0, !dbg !414 store i64 %258, ptr %263, align 8, !dbg !414, !tbaa !84, !alias.scope !86, !noalias !87 %264 = addrspacecast ptr %"new::Tuple153" to ptr addrspace(11), !dbg !414 call void @julia_throw_boundserror_35960(ptr addrspace(10) %.Tlast15, ptr addrspace(11) nocapture readonly %264) #26, !dbg !414 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !414 unreachable, !dbg !414 L345: ; preds = %L341 br label %L346, !dbg !414 L346: ; preds = %L345, %L331 %265 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !424 %266 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %265, i32 0, i32 0, !dbg !424 %memoryref_data31 = load ptr, ptr addrspace(11) %266, align 8, !dbg !424, !tbaa !225, !alias.scope !228, !noalias !229 %267 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %265, i32 0, i32 1, !dbg !424 %memoryref_mem51 = load ptr addrspace(10), ptr addrspace(11) %267, align 8, !dbg !424, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %268 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data31, 0, !dbg !424 %.Tlast15.ref30 = insertvalue { ptr, ptr addrspace(10) } %268, ptr addrspace(10) %memoryref_mem51, 1, !dbg !424 %memoryref_offset33 = sub i64 %258, 1, !dbg !424 %269 = addrspacecast ptr addrspace(10) %memoryref_mem51 to ptr addrspace(11), !dbg !424 %270 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %269, i32 0, i32 0, !dbg !424 %memory_len34 = load i64, ptr addrspace(11) %270, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %271 = add nuw i64 %memory_len34, %memory_len34, !dbg !424 %272 = add i64 %memoryref_offset33, %memory_len34, !dbg !424 %memoryref_ovflw35 = icmp uge i64 %272, %271, !dbg !424 %memoryref_byteoffset36 = mul i64 %memoryref_offset33, 8, !dbg !424 %memoryref_data_byteoffset37 = getelementptr i8, ptr %memoryref_data31, i64 %memoryref_byteoffset36, !dbg !424 %273 = addrspacecast ptr addrspace(10) %memoryref_mem51 to ptr addrspace(11), !dbg !424 %274 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %273, i32 0, i32 0, !dbg !424 %memory_len38 = load i64, ptr addrspace(11) %274, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %275 = addrspacecast ptr addrspace(10) %memoryref_mem51 to ptr addrspace(11), !dbg !424 %memory_data_ptr39 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %275, i32 0, i32 1, !dbg !424 %memory_data40 = load ptr, ptr addrspace(11) %memory_data_ptr39, align 8, !dbg !424, !tbaa !236, !alias.scope !228, !noalias !229, !nonnull !0 %276 = ptrtoint ptr %memory_data40 to i64, !dbg !424 %277 = ptrtoint ptr %memoryref_data_byteoffset37 to i64, !dbg !424 %278 = sub i64 %277, %276, !dbg !424 %memoryref_bytelen41 = mul nuw nsw i64 %memory_len38, 8, !dbg !424 %memoryref_isinbounds42 = icmp ult i64 %278, %memoryref_bytelen41, !dbg !424 %279 = xor i1 %memoryref_ovflw35, true, !dbg !424 %"memoryref_isinbounds¬ovflw43" = and i1 %279, %memoryref_isinbounds42, !dbg !424 br i1 %"memoryref_isinbounds¬ovflw43", label %idxend49, label %oob44, !dbg !424 L350: ; preds = %load54 br i1 false, label %L364, label %L352, !dbg !415 L352: ; preds = %L350 %280 = sub i64 %value_phi20, 1, !dbg !421 %281 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !422 %.Tlast15.size_ptr56 = getelementptr inbounds i8, ptr addrspace(11) %281, i32 16, !dbg !422 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tlast15.size57, ptr addrspace(11) align 8 %.Tlast15.size_ptr56, i64 8, i1 false), !dbg !422, !tbaa !47, !alias.scope !76, !noalias !77 %bitcast58 = load i64, ptr %.Tlast15.size57, align 8, !dbg !421, !tbaa !84, !alias.scope !86, !noalias !87 %282 = icmp ult i64 %280, %bitcast58, !dbg !421 %283 = xor i1 %282, true, !dbg !414 br i1 %283, label %L360, label %L359, !dbg !414 L359: ; preds = %L352 br label %L363, !dbg !414 L360: ; preds = %L352 %284 = getelementptr inbounds i8, ptr %"new::Tuple150", i32 0, !dbg !414 store i64 %value_phi20, ptr %284, align 8, !dbg !414, !tbaa !84, !alias.scope !86, !noalias !87 %285 = addrspacecast ptr %"new::Tuple150" to ptr addrspace(11), !dbg !414 call void @julia_throw_boundserror_35960(ptr addrspace(10) %.Tlast15, ptr addrspace(11) nocapture readonly %285) #26, !dbg !414 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !414 unreachable, !dbg !414 L363: ; preds = %L359 br label %L364, !dbg !414 L364: ; preds = %L363, %L350 %286 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !424 %287 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %286, i32 0, i32 0, !dbg !424 %memoryref_data60 = load ptr, ptr addrspace(11) %287, align 8, !dbg !424, !tbaa !225, !alias.scope !228, !noalias !229 %288 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %286, i32 0, i32 1, !dbg !424 %memoryref_mem80 = load ptr addrspace(10), ptr addrspace(11) %288, align 8, !dbg !424, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %289 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data60, 0, !dbg !424 %.Tlast15.ref59 = insertvalue { ptr, ptr addrspace(10) } %289, ptr addrspace(10) %memoryref_mem80, 1, !dbg !424 %memoryref_offset62 = sub i64 %value_phi20, 1, !dbg !424 %290 = addrspacecast ptr addrspace(10) %memoryref_mem80 to ptr addrspace(11), !dbg !424 %291 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %290, i32 0, i32 0, !dbg !424 %memory_len63 = load i64, ptr addrspace(11) %291, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %292 = add nuw i64 %memory_len63, %memory_len63, !dbg !424 %293 = add i64 %memoryref_offset62, %memory_len63, !dbg !424 %memoryref_ovflw64 = icmp uge i64 %293, %292, !dbg !424 %memoryref_byteoffset65 = mul i64 %memoryref_offset62, 8, !dbg !424 %memoryref_data_byteoffset66 = getelementptr i8, ptr %memoryref_data60, i64 %memoryref_byteoffset65, !dbg !424 %294 = addrspacecast ptr addrspace(10) %memoryref_mem80 to ptr addrspace(11), !dbg !424 %295 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %294, i32 0, i32 0, !dbg !424 %memory_len67 = load i64, ptr addrspace(11) %295, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %296 = addrspacecast ptr addrspace(10) %memoryref_mem80 to ptr addrspace(11), !dbg !424 %memory_data_ptr68 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %296, i32 0, i32 1, !dbg !424 %memory_data69 = load ptr, ptr addrspace(11) %memory_data_ptr68, align 8, !dbg !424, !tbaa !236, !alias.scope !228, !noalias !229, !nonnull !0 %297 = ptrtoint ptr %memory_data69 to i64, !dbg !424 %298 = ptrtoint ptr %memoryref_data_byteoffset66 to i64, !dbg !424 %299 = sub i64 %298, %297, !dbg !424 %memoryref_bytelen70 = mul nuw nsw i64 %memory_len67, 8, !dbg !424 %memoryref_isinbounds71 = icmp ult i64 %299, %memoryref_bytelen70, !dbg !424 %300 = xor i1 %memoryref_ovflw64, true, !dbg !424 %"memoryref_isinbounds¬ovflw72" = and i1 %300, %memoryref_isinbounds71, !dbg !424 br i1 %"memoryref_isinbounds¬ovflw72", label %idxend78, label %oob73, !dbg !424 L368: ; preds = %load83 %301 = fmul double 2.000000e+00, %394, !dbg !426 %302 = fsub double %383, %301, !dbg !431 %303 = add i64 %value_phi20, 1, !dbg !433 br i1 false, label %L385, label %L373, !dbg !415 L373: ; preds = %L368 %304 = sub i64 %303, 1, !dbg !421 %305 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !422 %.Tlast15.size_ptr85 = getelementptr inbounds i8, ptr addrspace(11) %305, i32 16, !dbg !422 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tlast15.size86, ptr addrspace(11) align 8 %.Tlast15.size_ptr85, i64 8, i1 false), !dbg !422, !tbaa !47, !alias.scope !76, !noalias !77 %bitcast87 = load i64, ptr %.Tlast15.size86, align 8, !dbg !421, !tbaa !84, !alias.scope !86, !noalias !87 %306 = icmp ult i64 %304, %bitcast87, !dbg !421 %307 = xor i1 %306, true, !dbg !414 br i1 %307, label %L381, label %L380, !dbg !414 L380: ; preds = %L373 br label %L384, !dbg !414 L381: ; preds = %L373 %308 = getelementptr inbounds i8, ptr %"new::Tuple147", i32 0, !dbg !414 store i64 %303, ptr %308, align 8, !dbg !414, !tbaa !84, !alias.scope !86, !noalias !87 %309 = addrspacecast ptr %"new::Tuple147" to ptr addrspace(11), !dbg !414 call void @julia_throw_boundserror_35960(ptr addrspace(10) %.Tlast15, ptr addrspace(11) nocapture readonly %309) #26, !dbg !414 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !414 unreachable, !dbg !414 L384: ; preds = %L380 br label %L385, !dbg !414 L385: ; preds = %L384, %L368 %310 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !424 %311 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %310, i32 0, i32 0, !dbg !424 %memoryref_data89 = load ptr, ptr addrspace(11) %311, align 8, !dbg !424, !tbaa !225, !alias.scope !228, !noalias !229 %312 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %310, i32 0, i32 1, !dbg !424 %memoryref_mem109 = load ptr addrspace(10), ptr addrspace(11) %312, align 8, !dbg !424, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %313 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data89, 0, !dbg !424 %.Tlast15.ref88 = insertvalue { ptr, ptr addrspace(10) } %313, ptr addrspace(10) %memoryref_mem109, 1, !dbg !424 %memoryref_offset91 = sub i64 %303, 1, !dbg !424 %314 = addrspacecast ptr addrspace(10) %memoryref_mem109 to ptr addrspace(11), !dbg !424 %315 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %314, i32 0, i32 0, !dbg !424 %memory_len92 = load i64, ptr addrspace(11) %315, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %316 = add nuw i64 %memory_len92, %memory_len92, !dbg !424 %317 = add i64 %memoryref_offset91, %memory_len92, !dbg !424 %memoryref_ovflw93 = icmp uge i64 %317, %316, !dbg !424 %memoryref_byteoffset94 = mul i64 %memoryref_offset91, 8, !dbg !424 %memoryref_data_byteoffset95 = getelementptr i8, ptr %memoryref_data89, i64 %memoryref_byteoffset94, !dbg !424 %318 = addrspacecast ptr addrspace(10) %memoryref_mem109 to ptr addrspace(11), !dbg !424 %319 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %318, i32 0, i32 0, !dbg !424 %memory_len96 = load i64, ptr addrspace(11) %319, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %320 = addrspacecast ptr addrspace(10) %memoryref_mem109 to ptr addrspace(11), !dbg !424 %memory_data_ptr97 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %320, i32 0, i32 1, !dbg !424 %memory_data98 = load ptr, ptr addrspace(11) %memory_data_ptr97, align 8, !dbg !424, !tbaa !236, !alias.scope !228, !noalias !229, !nonnull !0 %321 = ptrtoint ptr %memory_data98 to i64, !dbg !424 %322 = ptrtoint ptr %memoryref_data_byteoffset95 to i64, !dbg !424 %323 = sub i64 %322, %321, !dbg !424 %memoryref_bytelen99 = mul nuw nsw i64 %memory_len96, 8, !dbg !424 %memoryref_isinbounds100 = icmp ult i64 %323, %memoryref_bytelen99, !dbg !424 %324 = xor i1 %memoryref_ovflw93, true, !dbg !424 %"memoryref_isinbounds¬ovflw101" = and i1 %324, %memoryref_isinbounds100, !dbg !424 br i1 %"memoryref_isinbounds¬ovflw101", label %idxend107, label %oob102, !dbg !424 L389: ; preds = %load112 %325 = fadd double %302, %405, !dbg !434 %326 = fmul double %".\CE\BB", %325, !dbg !436 %327 = fadd double %372, %326, !dbg !434 br i1 false, label %L405, label %L394, !dbg !437 L394: ; preds = %L389 %328 = sub i64 %value_phi20, 1, !dbg !439 %329 = addrspacecast ptr addrspace(10) %.Tnext13 to ptr addrspace(11), !dbg !440 %.Tnext13.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %329, i32 16, !dbg !440 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tnext13.size, ptr addrspace(11) align 8 %.Tnext13.size_ptr, i64 8, i1 false), !dbg !440, !tbaa !47, !alias.scope !76, !noalias !77 %bitcast114 = load i64, ptr %.Tnext13.size, align 8, !dbg !439, !tbaa !84, !alias.scope !86, !noalias !87 %330 = icmp ult i64 %328, %bitcast114, !dbg !439 %331 = xor i1 %330, true, !dbg !437 br i1 %331, label %L402, label %L401, !dbg !437 L401: ; preds = %L394 br label %L405, !dbg !437 L402: ; preds = %L394 %332 = getelementptr inbounds i8, ptr %"new::Tuple146", i32 0, !dbg !437 store i64 %value_phi20, ptr %332, align 8, !dbg !437, !tbaa !84, !alias.scope !86, !noalias !87 %333 = addrspacecast ptr %"new::Tuple146" to ptr addrspace(11), !dbg !437 call void @julia_throw_boundserror_35960(ptr addrspace(10) %.Tnext13, ptr addrspace(11) nocapture readonly %333) #26, !dbg !437 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !437 unreachable, !dbg !437 L405: ; preds = %L401, %L389 %334 = addrspacecast ptr addrspace(10) %.Tnext13 to ptr addrspace(11), !dbg !442 %335 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %334, i32 0, i32 0, !dbg !442 %memoryref_data115 = load ptr, ptr addrspace(11) %335, align 8, !dbg !442, !tbaa !225, !alias.scope !228, !noalias !229 %336 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %334, i32 0, i32 1, !dbg !442 %memoryref_mem135 = load ptr addrspace(10), ptr addrspace(11) %336, align 8, !dbg !442, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %337 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data115, 0, !dbg !442 %.Tnext13.ref = insertvalue { ptr, ptr addrspace(10) } %337, ptr addrspace(10) %memoryref_mem135, 1, !dbg !442 %memoryref_offset117 = sub i64 %value_phi20, 1, !dbg !443 %338 = addrspacecast ptr addrspace(10) %memoryref_mem135 to ptr addrspace(11), !dbg !443 %339 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %338, i32 0, i32 0, !dbg !443 %memory_len118 = load i64, ptr addrspace(11) %339, align 8, !dbg !443, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %340 = add nuw i64 %memory_len118, %memory_len118, !dbg !443 %341 = add i64 %memoryref_offset117, %memory_len118, !dbg !443 %memoryref_ovflw119 = icmp uge i64 %341, %340, !dbg !443 %memoryref_byteoffset120 = mul i64 %memoryref_offset117, 8, !dbg !443 %memoryref_data_byteoffset121 = getelementptr i8, ptr %memoryref_data115, i64 %memoryref_byteoffset120, !dbg !443 %342 = addrspacecast ptr addrspace(10) %memoryref_mem135 to ptr addrspace(11), !dbg !443 %343 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %342, i32 0, i32 0, !dbg !443 %memory_len122 = load i64, ptr addrspace(11) %343, align 8, !dbg !443, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %344 = addrspacecast ptr addrspace(10) %memoryref_mem135 to ptr addrspace(11), !dbg !443 %memory_data_ptr123 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %344, i32 0, i32 1, !dbg !443 %memory_data124 = load ptr, ptr addrspace(11) %memory_data_ptr123, align 8, !dbg !443, !tbaa !236, !alias.scope !228, !noalias !229, !nonnull !0 %345 = ptrtoint ptr %memory_data124 to i64, !dbg !443 %346 = ptrtoint ptr %memoryref_data_byteoffset121 to i64, !dbg !443 %347 = sub i64 %346, %345, !dbg !443 %memoryref_bytelen125 = mul nuw nsw i64 %memory_len122, 8, !dbg !443 %memoryref_isinbounds126 = icmp ult i64 %347, %memoryref_bytelen125, !dbg !443 %348 = xor i1 %memoryref_ovflw119, true, !dbg !443 %"memoryref_isinbounds¬ovflw127" = and i1 %348, %memoryref_isinbounds126, !dbg !443 br i1 %"memoryref_isinbounds¬ovflw127", label %idxend133, label %oob128, !dbg !443 L409: ; preds = %load138 br label %L410, !dbg !438 L410: ; preds = %L409 %349 = icmp eq i64 %value_phi21, %value_phi16, !dbg !444 %350 = xor i1 %349, true, !dbg !168 br i1 %350, label %L413, label %L412, !dbg !168 L412: ; preds = %L410 br label %L415, !dbg !168 L413: ; preds = %L410 %351 = add i64 %value_phi21, 1, !dbg !445 br label %L415, !dbg !168 L415: ; preds = %L413, %L412 %value_phi140 = phi i64 [ %351, %L413 ], [ undef, %L412 ] %value_phi141 = phi i64 [ %351, %L413 ], [ undef, %L412 ] %value_phi142 = phi i8 [ 1, %L412 ], [ 0, %L413 ] %352 = trunc i8 %value_phi142 to i1, !dbg !170 %353 = xor i1 %352, true, !dbg !170 %354 = xor i1 %353, true, !dbg !170 br i1 %354, label %L421, label %L420, !dbg !170 L420: ; preds = %L415 br label %L311, !dbg !420 L421: ; preds = %L415, %L306 br label %L422, !dbg !447 L422: ; preds = %L421 %355 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !448 %.tsteps_ptr = getelementptr inbounds i8, ptr addrspace(11) %355, i32 32, !dbg !448 %.tsteps = load i64, ptr addrspace(11) %.tsteps_ptr, align 8, !dbg !448, !tbaa !63, !alias.scope !40, !noalias !41 %356 = add i64 %.tsteps, 1, !dbg !450 %357 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !451 %.tsteps_ptr143 = getelementptr inbounds i8, ptr addrspace(11) %357, i32 32, !dbg !451 store i64 %356, ptr addrspace(11) %.tsteps_ptr143, align 8, !dbg !451, !tbaa !63, !alias.scope !40, !noalias !41 %358 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !453 %.tsteps_ptr144 = getelementptr inbounds i8, ptr addrspace(11) %358, i32 32, !dbg !453 %.tsteps145 = load i64, ptr addrspace(11) %.tsteps_ptr144, align 8, !dbg !453, !tbaa !63, !alias.scope !40, !noalias !41 %359 = getelementptr inbounds i8, ptr addrspace(11) %"#self#::#sumheat##2#sumheat##3", i32 8, !dbg !454 %.unbox = load i64, ptr addrspace(11) %359, align 8, !dbg !455, !tbaa !23, !alias.scope !26, !noalias !29 %360 = icmp sle i64 %.tsteps145, %.unbox, !dbg !455 %361 = zext i1 %360 to i8, !dbg !454 ret i8 %361, !dbg !454 oob: ; preds = %L327 %"+Core.GenericMemoryRef#35953" = load ptr, ptr @_Core_GenericMemoryRef_35953, align 8, !dbg !424, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %GenericMemoryRef = ptrtoint ptr %"+Core.GenericMemoryRef#35953" to i64, !dbg !424 %362 = inttoptr i64 %GenericMemoryRef to ptr, !dbg !424 %current_task23 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !424 %363 = addrspacecast ptr %362 to ptr addrspace(10), !dbg !424 %"box::GenericMemoryRef" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task23, i64 16, ptr addrspace(10) %363) #25, !dbg !424 %364 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef" to ptr addrspace(11), !dbg !424 store { ptr, ptr addrspace(10) } %.Tlast15.ref, ptr addrspace(11) %364, align 8, !dbg !424, !tbaa !36, !alias.scope !40, !noalias !41 %365 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef" to ptr addrspace(12), !dbg !424 call void @ijl_bounds_error_int(ptr addrspace(12) %365, i64 %value_phi20), !dbg !424 unreachable, !dbg !424 idxend: ; preds = %L327 %366 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset, 0, !dbg !424 %memory_ref = insertvalue { ptr, ptr addrspace(10) } %366, ptr addrspace(10) %memoryref_mem, 1, !dbg !424 %367 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !424 %368 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %367, i32 0, i32 0, !dbg !424 %memory_len24 = load i64, ptr addrspace(11) %368, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %369 = icmp eq i64 %memory_len24, 0, !dbg !424 br i1 %369, label %oob25, label %load, !dbg !424 oob25: ; preds = %idxend %370 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(12), !dbg !424 call void @ijl_bounds_error_int(ptr addrspace(12) %370, i64 1), !dbg !424 unreachable, !dbg !424 load: ; preds = %idxend %371 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem, ptr %memoryref_data), !dbg !424 %memoryref_data26 = getelementptr inbounds i8, ptr addrspace(13) %371, i64 %memoryref_byteoffset, !dbg !424 %372 = load double, ptr addrspace(13) %memoryref_data26, align 8, !dbg !424, !tbaa !456, !alias.scope !40, !noalias !41 br label %L331, !dbg !424 oob44: ; preds = %L346 %"+Core.GenericMemoryRef#3595345" = load ptr, ptr @_Core_GenericMemoryRef_35953, align 8, !dbg !424, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %GenericMemoryRef46 = ptrtoint ptr %"+Core.GenericMemoryRef#3595345" to i64, !dbg !424 %373 = inttoptr i64 %GenericMemoryRef46 to ptr, !dbg !424 %current_task47 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !424 %374 = addrspacecast ptr %373 to ptr addrspace(10), !dbg !424 %"box::GenericMemoryRef48" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task47, i64 16, ptr addrspace(10) %374) #25, !dbg !424 %375 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef48" to ptr addrspace(11), !dbg !424 store { ptr, ptr addrspace(10) } %.Tlast15.ref30, ptr addrspace(11) %375, align 8, !dbg !424, !tbaa !36, !alias.scope !40, !noalias !41 %376 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef48" to ptr addrspace(12), !dbg !424 call void @ijl_bounds_error_int(ptr addrspace(12) %376, i64 %258), !dbg !424 unreachable, !dbg !424 idxend49: ; preds = %L346 %377 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset37, 0, !dbg !424 %memory_ref50 = insertvalue { ptr, ptr addrspace(10) } %377, ptr addrspace(10) %memoryref_mem51, 1, !dbg !424 %378 = addrspacecast ptr addrspace(10) %memoryref_mem51 to ptr addrspace(11), !dbg !424 %379 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %378, i32 0, i32 0, !dbg !424 %memory_len52 = load i64, ptr addrspace(11) %379, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %380 = icmp eq i64 %memory_len52, 0, !dbg !424 br i1 %380, label %oob53, label %load54, !dbg !424 oob53: ; preds = %idxend49 %381 = addrspacecast ptr addrspace(10) %memoryref_mem51 to ptr addrspace(12), !dbg !424 call void @ijl_bounds_error_int(ptr addrspace(12) %381, i64 1), !dbg !424 unreachable, !dbg !424 load54: ; preds = %idxend49 %382 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem51, ptr %memoryref_data31), !dbg !424 %memoryref_data55 = getelementptr inbounds i8, ptr addrspace(13) %382, i64 %memoryref_byteoffset36, !dbg !424 %383 = load double, ptr addrspace(13) %memoryref_data55, align 8, !dbg !424, !tbaa !456, !alias.scope !40, !noalias !41 br label %L350, !dbg !424 oob73: ; preds = %L364 %"+Core.GenericMemoryRef#3595374" = load ptr, ptr @_Core_GenericMemoryRef_35953, align 8, !dbg !424, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %GenericMemoryRef75 = ptrtoint ptr %"+Core.GenericMemoryRef#3595374" to i64, !dbg !424 %384 = inttoptr i64 %GenericMemoryRef75 to ptr, !dbg !424 %current_task76 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !424 %385 = addrspacecast ptr %384 to ptr addrspace(10), !dbg !424 %"box::GenericMemoryRef77" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task76, i64 16, ptr addrspace(10) %385) #25, !dbg !424 %386 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef77" to ptr addrspace(11), !dbg !424 store { ptr, ptr addrspace(10) } %.Tlast15.ref59, ptr addrspace(11) %386, align 8, !dbg !424, !tbaa !36, !alias.scope !40, !noalias !41 %387 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef77" to ptr addrspace(12), !dbg !424 call void @ijl_bounds_error_int(ptr addrspace(12) %387, i64 %value_phi20), !dbg !424 unreachable, !dbg !424 idxend78: ; preds = %L364 %388 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset66, 0, !dbg !424 %memory_ref79 = insertvalue { ptr, ptr addrspace(10) } %388, ptr addrspace(10) %memoryref_mem80, 1, !dbg !424 %389 = addrspacecast ptr addrspace(10) %memoryref_mem80 to ptr addrspace(11), !dbg !424 %390 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %389, i32 0, i32 0, !dbg !424 %memory_len81 = load i64, ptr addrspace(11) %390, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %391 = icmp eq i64 %memory_len81, 0, !dbg !424 br i1 %391, label %oob82, label %load83, !dbg !424 oob82: ; preds = %idxend78 %392 = addrspacecast ptr addrspace(10) %memoryref_mem80 to ptr addrspace(12), !dbg !424 call void @ijl_bounds_error_int(ptr addrspace(12) %392, i64 1), !dbg !424 unreachable, !dbg !424 load83: ; preds = %idxend78 %393 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem80, ptr %memoryref_data60), !dbg !424 %memoryref_data84 = getelementptr inbounds i8, ptr addrspace(13) %393, i64 %memoryref_byteoffset65, !dbg !424 %394 = load double, ptr addrspace(13) %memoryref_data84, align 8, !dbg !424, !tbaa !456, !alias.scope !40, !noalias !41 br label %L368, !dbg !424 oob102: ; preds = %L385 %"+Core.GenericMemoryRef#35953103" = load ptr, ptr @_Core_GenericMemoryRef_35953, align 8, !dbg !424, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %GenericMemoryRef104 = ptrtoint ptr %"+Core.GenericMemoryRef#35953103" to i64, !dbg !424 %395 = inttoptr i64 %GenericMemoryRef104 to ptr, !dbg !424 %current_task105 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !424 %396 = addrspacecast ptr %395 to ptr addrspace(10), !dbg !424 %"box::GenericMemoryRef106" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task105, i64 16, ptr addrspace(10) %396) #25, !dbg !424 %397 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef106" to ptr addrspace(11), !dbg !424 store { ptr, ptr addrspace(10) } %.Tlast15.ref88, ptr addrspace(11) %397, align 8, !dbg !424, !tbaa !36, !alias.scope !40, !noalias !41 %398 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef106" to ptr addrspace(12), !dbg !424 call void @ijl_bounds_error_int(ptr addrspace(12) %398, i64 %303), !dbg !424 unreachable, !dbg !424 idxend107: ; preds = %L385 %399 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset95, 0, !dbg !424 %memory_ref108 = insertvalue { ptr, ptr addrspace(10) } %399, ptr addrspace(10) %memoryref_mem109, 1, !dbg !424 %400 = addrspacecast ptr addrspace(10) %memoryref_mem109 to ptr addrspace(11), !dbg !424 %401 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %400, i32 0, i32 0, !dbg !424 %memory_len110 = load i64, ptr addrspace(11) %401, align 8, !dbg !424, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %402 = icmp eq i64 %memory_len110, 0, !dbg !424 br i1 %402, label %oob111, label %load112, !dbg !424 oob111: ; preds = %idxend107 %403 = addrspacecast ptr addrspace(10) %memoryref_mem109 to ptr addrspace(12), !dbg !424 call void @ijl_bounds_error_int(ptr addrspace(12) %403, i64 1), !dbg !424 unreachable, !dbg !424 load112: ; preds = %idxend107 %404 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem109, ptr %memoryref_data89), !dbg !424 %memoryref_data113 = getelementptr inbounds i8, ptr addrspace(13) %404, i64 %memoryref_byteoffset94, !dbg !424 %405 = load double, ptr addrspace(13) %memoryref_data113, align 8, !dbg !424, !tbaa !456, !alias.scope !40, !noalias !41 br label %L389, !dbg !424 oob128: ; preds = %L405 %"+Core.GenericMemoryRef#35953129" = load ptr, ptr @_Core_GenericMemoryRef_35953, align 8, !dbg !443, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %GenericMemoryRef130 = ptrtoint ptr %"+Core.GenericMemoryRef#35953129" to i64, !dbg !443 %406 = inttoptr i64 %GenericMemoryRef130 to ptr, !dbg !443 %current_task131 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !443 %407 = addrspacecast ptr %406 to ptr addrspace(10), !dbg !443 %"box::GenericMemoryRef132" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task131, i64 16, ptr addrspace(10) %407) #25, !dbg !443 %408 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef132" to ptr addrspace(11), !dbg !443 store { ptr, ptr addrspace(10) } %.Tnext13.ref, ptr addrspace(11) %408, align 8, !dbg !443, !tbaa !36, !alias.scope !40, !noalias !41 %409 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef132" to ptr addrspace(12), !dbg !443 call void @ijl_bounds_error_int(ptr addrspace(12) %409, i64 %value_phi20), !dbg !443 unreachable, !dbg !443 idxend133: ; preds = %L405 %410 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset121, 0, !dbg !443 %memory_ref134 = insertvalue { ptr, ptr addrspace(10) } %410, ptr addrspace(10) %memoryref_mem135, 1, !dbg !443 %411 = addrspacecast ptr addrspace(10) %memoryref_mem135 to ptr addrspace(11), !dbg !443 %412 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %411, i32 0, i32 0, !dbg !443 %memory_len136 = load i64, ptr addrspace(11) %412, align 8, !dbg !443, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %413 = icmp eq i64 %memory_len136, 0, !dbg !443 br i1 %413, label %oob137, label %load138, !dbg !443 oob137: ; preds = %idxend133 %414 = addrspacecast ptr addrspace(10) %memoryref_mem135 to ptr addrspace(12), !dbg !443 call void @ijl_bounds_error_int(ptr addrspace(12) %414, i64 1), !dbg !443 unreachable, !dbg !443 load138: ; preds = %idxend133 %415 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem135, ptr %memoryref_data115), !dbg !443 %memoryref_data139 = getelementptr inbounds i8, ptr addrspace(13) %415, i64 %memoryref_byteoffset120, !dbg !443 store double %327, ptr addrspace(13) %memoryref_data139, align 8, !dbg !443, !tbaa !456, !alias.scope !40, !noalias !41 br label %L409, !dbg !458 after_error: ; No predecessors! call void @llvm.trap(), !dbg !437 unreachable, !dbg !437 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !437 unreachable, !dbg !437 after_error148: ; No predecessors! call void @llvm.trap(), !dbg !414 unreachable, !dbg !414 after_noret149: ; No predecessors! call void @llvm.trap(), !dbg !414 unreachable, !dbg !414 after_error151: ; No predecessors! call void @llvm.trap(), !dbg !414 unreachable, !dbg !414 after_noret152: ; No predecessors! call void @llvm.trap(), !dbg !414 unreachable, !dbg !414 after_error154: ; No predecessors! call void @llvm.trap(), !dbg !414 unreachable, !dbg !414 after_noret155: ; No predecessors! call void @llvm.trap(), !dbg !414 unreachable, !dbg !414 after_error157: ; No predecessors! call void @llvm.trap(), !dbg !414 unreachable, !dbg !414 after_noret158: ; No predecessors! call void @llvm.trap(), !dbg !414 unreachable, !dbg !414 oob185: ; preds = %L107 %"+Core.GenericMemoryRef#35953186" = load ptr, ptr @_Core_GenericMemoryRef_35953, align 8, !dbg !230, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %GenericMemoryRef187 = ptrtoint ptr %"+Core.GenericMemoryRef#35953186" to i64, !dbg !230 %416 = inttoptr i64 %GenericMemoryRef187 to ptr, !dbg !230 %current_task188 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !230 %417 = addrspacecast ptr %416 to ptr addrspace(10), !dbg !230 %"box::GenericMemoryRef189" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task188, i64 16, ptr addrspace(10) %417) #25, !dbg !230 %418 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef189" to ptr addrspace(11), !dbg !230 store { ptr, ptr addrspace(10) } %.Tlast.ref, ptr addrspace(11) %418, align 8, !dbg !230, !tbaa !36, !alias.scope !40, !noalias !41 %419 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef189" to ptr addrspace(12), !dbg !230 call void @ijl_bounds_error_int(ptr addrspace(12) %419, i64 1), !dbg !230 unreachable, !dbg !230 idxend190: ; preds = %L107 %420 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset178, 0, !dbg !230 %memory_ref191 = insertvalue { ptr, ptr addrspace(10) } %420, ptr addrspace(10) %memoryref_mem175, 1, !dbg !230 %421 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !224 %422 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %421, i32 0, i32 0, !dbg !224 %memoryref_data192 = load ptr, ptr addrspace(11) %422, align 8, !dbg !224, !tbaa !225, !alias.scope !228, !noalias !229 %423 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %421, i32 0, i32 1, !dbg !224 %memoryref_mem193 = load ptr addrspace(10), ptr addrspace(11) %423, align 8, !dbg !224, !tbaa !225, !alias.scope !228, !noalias !229, !dereferenceable_or_null !35, !align !46 %424 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data192, 0, !dbg !224 %.Tnext.ref = insertvalue { ptr, ptr addrspace(10) } %424, ptr addrspace(10) %memoryref_mem193, 1, !dbg !224 %425 = addrspacecast ptr addrspace(10) %memoryref_mem193 to ptr addrspace(11), !dbg !230 %426 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %425, i32 0, i32 0, !dbg !230 %memory_len194 = load i64, ptr addrspace(11) %426, align 8, !dbg !230, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %427 = add nuw i64 %memory_len194, %memory_len194, !dbg !230 %428 = add i64 0, %memory_len194, !dbg !230 %memoryref_ovflw195 = icmp uge i64 %428, %427, !dbg !230 %memoryref_data_byteoffset196 = getelementptr i8, ptr %memoryref_data192, i64 0, !dbg !230 %429 = addrspacecast ptr addrspace(10) %memoryref_mem193 to ptr addrspace(11), !dbg !230 %430 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %429, i32 0, i32 0, !dbg !230 %memory_len197 = load i64, ptr addrspace(11) %430, align 8, !dbg !230, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %431 = addrspacecast ptr addrspace(10) %memoryref_mem193 to ptr addrspace(11), !dbg !230 %memory_data_ptr198 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %431, i32 0, i32 1, !dbg !230 %memory_data199 = load ptr, ptr addrspace(11) %memory_data_ptr198, align 8, !dbg !230, !tbaa !236, !alias.scope !228, !noalias !229, !nonnull !0 %432 = ptrtoint ptr %memory_data199 to i64, !dbg !230 %433 = ptrtoint ptr %memoryref_data_byteoffset196 to i64, !dbg !230 %434 = sub i64 %433, %432, !dbg !230 %memoryref_bytelen200 = mul nuw nsw i64 %memory_len197, 8, !dbg !230 %memoryref_isinbounds201 = icmp ult i64 %434, %memoryref_bytelen200, !dbg !230 %435 = xor i1 %memoryref_ovflw195, true, !dbg !230 %"memoryref_isinbounds¬ovflw202" = and i1 %435, %memoryref_isinbounds201, !dbg !230 br i1 %"memoryref_isinbounds¬ovflw202", label %idxend208, label %oob203, !dbg !230 oob203: ; preds = %idxend190 %"+Core.GenericMemoryRef#35953204" = load ptr, ptr @_Core_GenericMemoryRef_35953, align 8, !dbg !230, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %GenericMemoryRef205 = ptrtoint ptr %"+Core.GenericMemoryRef#35953204" to i64, !dbg !230 %436 = inttoptr i64 %GenericMemoryRef205 to ptr, !dbg !230 %current_task206 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !230 %437 = addrspacecast ptr %436 to ptr addrspace(10), !dbg !230 %"box::GenericMemoryRef207" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task206, i64 16, ptr addrspace(10) %437) #25, !dbg !230 %438 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef207" to ptr addrspace(11), !dbg !230 store { ptr, ptr addrspace(10) } %.Tnext.ref, ptr addrspace(11) %438, align 8, !dbg !230, !tbaa !36, !alias.scope !40, !noalias !41 %439 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef207" to ptr addrspace(12), !dbg !230 call void @ijl_bounds_error_int(ptr addrspace(12) %439, i64 1), !dbg !230 unreachable, !dbg !230 idxend208: ; preds = %idxend190 %440 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset196, 0, !dbg !230 %memory_ref209 = insertvalue { ptr, ptr addrspace(10) } %440, ptr addrspace(10) %memoryref_mem193, 1, !dbg !230 %441 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %memoryref_mem175), !dbg !459 %442 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %memoryref_mem193), !dbg !460 %memory_ref191.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref191, 0, !dbg !461 %memory_ref209.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref209, 0, !dbg !461 %.Tnext.size12.unbox210 = load i64, ptr %.Tnext.size12, align 8, !dbg !467, !tbaa !84, !alias.scope !86, !noalias !87 %443 = mul i64 %.Tnext.size12.unbox210, 8, !dbg !467 %444 = lshr i64 %443, 63, !dbg !469 %445 = select i1 false, i64 0, i64 %444, !dbg !469 %446 = trunc i64 %445 to i8, !dbg !469 %447 = icmp eq i8 %446, 1, !dbg !469 %448 = xor i1 %447, true, !dbg !238 br i1 %448, label %L126, label %L122, !dbg !238 after_error211: ; No predecessors! call void @llvm.trap(), !dbg !238 unreachable, !dbg !238 after_noret212: ; No predecessors! call void @llvm.trap(), !dbg !238 unreachable, !dbg !238 after_error213: ; No predecessors! call void @llvm.trap(), !dbg !212 unreachable, !dbg !212 after_noret214: ; No predecessors! call void @llvm.trap(), !dbg !212 unreachable, !dbg !212 after_error215: ; No predecessors! call void @llvm.trap(), !dbg !181 unreachable, !dbg !181 after_noret216: ; No predecessors! call void @llvm.trap(), !dbg !181 unreachable, !dbg !181 after_error217: ; No predecessors! call void @llvm.trap(), !dbg !152 unreachable, !dbg !152 after_noret218: ; No predecessors! call void @llvm.trap(), !dbg !152 unreachable, !dbg !152 oob244: ; preds = %L252 %"+Core.GenericMemoryRef#35953245" = load ptr, ptr @_Core_GenericMemoryRef_35953, align 8, !dbg !388, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %GenericMemoryRef246 = ptrtoint ptr %"+Core.GenericMemoryRef#35953245" to i64, !dbg !388 %449 = inttoptr i64 %GenericMemoryRef246 to ptr, !dbg !388 %current_task247 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !388 %450 = addrspacecast ptr %449 to ptr addrspace(10), !dbg !388 %"box::GenericMemoryRef248" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task247, i64 16, ptr addrspace(10) %450) #25, !dbg !388 %451 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef248" to ptr addrspace(11), !dbg !388 store { ptr, ptr addrspace(10) } %value_phi219.ref, ptr addrspace(11) %451, align 8, !dbg !388, !tbaa !36, !alias.scope !40, !noalias !41 %452 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef248" to ptr addrspace(12), !dbg !388 call void @ijl_bounds_error_int(ptr addrspace(12) %452, i64 %174), !dbg !388 unreachable, !dbg !388 idxend249: ; preds = %L252 %453 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset237, 0, !dbg !388 %memory_ref250 = insertvalue { ptr, ptr addrspace(10) } %453, ptr addrspace(10) %memoryref_mem251, 1, !dbg !388 %454 = addrspacecast ptr addrspace(10) %memoryref_mem251 to ptr addrspace(11), !dbg !388 %455 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %454, i32 0, i32 0, !dbg !388 %memory_len252 = load i64, ptr addrspace(11) %455, align 8, !dbg !388, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %456 = icmp eq i64 %memory_len252, 0, !dbg !388 br i1 %456, label %oob253, label %load254, !dbg !388 oob253: ; preds = %idxend249 %457 = addrspacecast ptr addrspace(10) %memoryref_mem251 to ptr addrspace(12), !dbg !388 call void @ijl_bounds_error_int(ptr addrspace(12) %457, i64 1), !dbg !388 unreachable, !dbg !388 load254: ; preds = %idxend249 %458 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem251, ptr %memoryref_data231), !dbg !388 %memoryref_data255 = getelementptr inbounds i8, ptr addrspace(13) %458, i64 %memoryref_byteoffset236, !dbg !388 %459 = load double, ptr addrspace(13) %memoryref_data255, align 8, !dbg !388, !tbaa !456, !alias.scope !40, !noalias !41 br i1 false, label %L276, label %L257, !dbg !390 oob273: ; preds = %L276 %"+Core.GenericMemoryRef#35953274" = load ptr, ptr @_Core_GenericMemoryRef_35953, align 8, !dbg !397, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %GenericMemoryRef275 = ptrtoint ptr %"+Core.GenericMemoryRef#35953274" to i64, !dbg !397 %460 = inttoptr i64 %GenericMemoryRef275 to ptr, !dbg !397 %current_task276 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !397 %461 = addrspacecast ptr %460 to ptr addrspace(10), !dbg !397 %"box::GenericMemoryRef277" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task276, i64 16, ptr addrspace(10) %461) #25, !dbg !397 %462 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef277" to ptr addrspace(11), !dbg !397 store { ptr, ptr addrspace(10) } %.Tlast.ref259, ptr addrspace(11) %462, align 8, !dbg !397, !tbaa !36, !alias.scope !40, !noalias !41 %463 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef277" to ptr addrspace(12), !dbg !397 call void @ijl_bounds_error_int(ptr addrspace(12) %463, i64 %166), !dbg !397 unreachable, !dbg !397 idxend278: ; preds = %L276 %464 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset266, 0, !dbg !397 %memory_ref279 = insertvalue { ptr, ptr addrspace(10) } %464, ptr addrspace(10) %memoryref_mem280, 1, !dbg !397 %465 = addrspacecast ptr addrspace(10) %memoryref_mem280 to ptr addrspace(11), !dbg !397 %466 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %465, i32 0, i32 0, !dbg !397 %memory_len281 = load i64, ptr addrspace(11) %466, align 8, !dbg !397, !tbaa !233, !range !235, !alias.scope !228, !noalias !229 %467 = icmp eq i64 %memory_len281, 0, !dbg !397 br i1 %467, label %oob282, label %load283, !dbg !397 oob282: ; preds = %idxend278 %468 = addrspacecast ptr addrspace(10) %memoryref_mem280 to ptr addrspace(12), !dbg !397 call void @ijl_bounds_error_int(ptr addrspace(12) %468, i64 1), !dbg !397 unreachable, !dbg !397 load283: ; preds = %idxend278 %469 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem280, ptr %memoryref_data260), !dbg !397 %memoryref_data284 = getelementptr inbounds i8, ptr addrspace(13) %469, i64 %memoryref_byteoffset265, !dbg !397 store double %459, ptr addrspace(13) %memoryref_data284, align 8, !dbg !397, !tbaa !456, !alias.scope !40, !noalias !41 %470 = add i64 %value_phi223, 1, !dbg !471 br label %L220, !dbg !168, !llvm.loop !473 after_error286: ; No predecessors! call void @llvm.trap(), !dbg !390 unreachable, !dbg !390 after_noret287: ; No predecessors! call void @llvm.trap(), !dbg !390 unreachable, !dbg !390 after_error289: ; No predecessors! call void @llvm.trap(), !dbg !385 unreachable, !dbg !385 after_noret290: ; No predecessors! call void @llvm.trap(), !dbg !385 unreachable, !dbg !385 after_error292: ; No predecessors! call void @llvm.trap(), !dbg !367 unreachable, !dbg !367 after_noret293: ; No predecessors! call void @llvm.trap(), !dbg !367 unreachable, !dbg !367 after_error294: ; No predecessors! call void @llvm.trap(), !dbg !355 unreachable, !dbg !355 after_noret295: ; No predecessors! call void @llvm.trap(), !dbg !355 unreachable, !dbg !355 emptymem: ; preds = %L166 %"jl_global#35983" = load ptr, ptr @jl_global_35983, align 8, !dbg !298, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !35, !align !46 %471 = addrspacecast ptr %"jl_global#35983" to ptr addrspace(10), !dbg !298 br label %retval, !dbg !298 nonemptymem: ; preds = %L166 %"+Core.GenericMemory#35984" = load ptr, ptr @_Core_GenericMemory_35984, align 8, !dbg !298, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %472 = call { i64, i1 } @llvm.smul.with.overflow.i64(i64 %.Tnext.size308.unbox, i64 8), !dbg !298 %473 = extractvalue { i64, i1 } %472, 0, !dbg !298 %474 = extractvalue { i64, i1 } %472, 1, !dbg !298 %475 = icmp slt i64 %.Tnext.size308.unbox, 0, !dbg !298 %476 = or i1 %474, %475, !dbg !298 %477 = icmp slt i64 9223372036854775806, %473, !dbg !298 %478 = or i1 %476, %477, !dbg !298 %479 = xor i1 %478, true, !dbg !298 br i1 %479, label %pass, label %fail, !dbg !298 fail: ; preds = %nonemptymem call void @jl_argument_error(ptr @_j_str_invalid_GenericMemory_siz____5), !dbg !298 unreachable, !dbg !298 pass: ; preds = %nonemptymem %current_task309 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !298 %ptls_field310 = getelementptr inbounds i8, ptr %current_task309, i32 168, !dbg !298 %ptls_load311 = load ptr, ptr %ptls_field310, align 8, !dbg !298, !tbaa !19 %"Memory{Float64}[]" = call noalias nonnull align 16 ptr addrspace(10) @jl_alloc_genericmemory_unchecked(ptr %ptls_load311, i64 %473, ptr %"+Core.GenericMemory#35984") #28, !dbg !298 %480 = addrspacecast ptr addrspace(10) %"Memory{Float64}[]" to ptr addrspace(11), !dbg !298 %481 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %480, i32 0, i32 0, !dbg !298 store i64 %.Tnext.size308.unbox, ptr addrspace(11) %481, align 8, !dbg !298, !tbaa !233, !alias.scope !228, !noalias !229 br label %retval, !dbg !298 retval: ; preds = %pass, %emptymem %482 = phi ptr addrspace(10) [ %471, %emptymem ], [ %"Memory{Float64}[]", %pass ], !dbg !298 %483 = addrspacecast ptr addrspace(10) %482 to ptr addrspace(11), !dbg !474 %memory_data_ptr312 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %483, i32 0, i32 1, !dbg !474 %memory_data313 = load ptr, ptr addrspace(11) %memory_data_ptr312, align 8, !dbg !474, !tbaa !236, !alias.scope !228, !noalias !229, !nonnull !0 %484 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memory_data313, 0, !dbg !474 %memory_ref314 = insertvalue { ptr, ptr addrspace(10) } %484, ptr addrspace(10) %482, 1, !dbg !474 %485 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !475 %.Tnext.size_ptr315 = getelementptr inbounds i8, ptr addrspace(11) %485, i32 16, !dbg !475 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.Tnext.size316, ptr addrspace(11) align 8 %.Tnext.size_ptr315, i64 8, i1 false), !dbg !475, !tbaa !47, !alias.scope !76, !noalias !77 %486 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %482), !dbg !477 %487 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %134), !dbg !478 %memory_ref314.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref314, 0, !dbg !479 %.Tnext.ref306.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %.Tnext.ref306, 0, !dbg !479 %.Tnext.size316.unbox = load i64, ptr %.Tnext.size316, align 8, !dbg !481, !tbaa !84, !alias.scope !86, !noalias !87 %488 = mul i64 %.Tnext.size316.unbox, 8, !dbg !481 %489 = lshr i64 %488, 63, !dbg !482 %490 = select i1 false, i64 0, i64 %489, !dbg !482 %491 = trunc i64 %490 to i8, !dbg !482 %492 = icmp eq i8 %491, 1, !dbg !482 %493 = xor i1 %492, true, !dbg !300 br i1 %493, label %L184, label %L182, !dbg !300 after_error321: ; No predecessors! call void @llvm.trap(), !dbg !300 unreachable, !dbg !300 after_noret322: ; No predecessors! call void @llvm.trap(), !dbg !300 unreachable, !dbg !300 after_error330: ; No predecessors! call void @llvm.trap(), !dbg !120 unreachable, !dbg !120 after_noret331: ; No predecessors! call void @llvm.trap(), !dbg !120 unreachable, !dbg !120 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !101 unreachable, !dbg !101 after_noret333: ; No predecessors! call void @llvm.trap(), !dbg !101 unreachable, !dbg !101 } expectLen=1 swiftself=false sret=nothing returnRoots=nothing mi.specTypes.parameters=svec(Main.var"#sumheat##2#sumheat##3"{Main.Heat, Int64}) retRemoved=false parmsRemoved=UInt64[] Stacktrace: [1] julia_activity_rule(f::LLVM.Function) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/rules/activityrules.jl:48 [2] handle_compiled(state::Enzyme.Compiler.HandlerState, edges::Vector{Any}, run_enzyme::Bool, mode::Enzyme.API.CDerivativeMode, world::UInt64, method_table::Compiler.OverlayMethodTable, custom::Dict{String, LLVM.API.LLVMLinkage}, mod::LLVM.Module, mi::Core.MethodInstance, k_name::String, rettype::Type) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:628 [3] set_module_types!(interp::Enzyme.Compiler.Interpreter.EnzymeInterpreter{Nothing}, mod::LLVM.Module, primalf::LLVM.Function, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}, edges::Vector{Any}, run_enzyme::Bool, mode::Enzyme.API.CDerivativeMode) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:1220 [4] compile_unhooked(output::Symbol, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:4627 [5] compile(target::Symbol, job::GPUCompiler.CompilerJob; kwargs::@Kwargs{}) @ GPUCompiler ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:67 [6] compile @ ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:55 [inlined] [7] _thunk(job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}, postopt::Bool) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5960 [8] _thunk @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5958 [inlined] [9] cached_compilation @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6015 [inlined] [10] thunkbase(mi::Core.MethodInstance, World::UInt64, FA::Type{<:Annotation}, A::Type{<:Annotation}, TT::Type, Mode::Enzyme.API.CDerivativeMode, width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, edges::Vector{Any}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6131 [11] thunk_generator(world::UInt64, source::Union{LineNumberNode, Method}, FA::Type, A::Type, TT::Type, Mode::Enzyme.API.CDerivativeMode, Width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, self::Any, fakeworld::Any, fa::Type, a::Type, tt::Type, mode::Type, width::Type, modifiedbetween::Type, returnprimal::Type, shadowinit::Type, abi::Type, erriffuncwritten::Type, runtimeactivity::Type, strongzero::Type) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6275 [12] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:502 [inlined] [13] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:562 [inlined] [14] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:534 [inlined] [15] heat(scheme::Online_r2{Nothing}, tsteps::Int64) @ Main ~/.julia/packages/Checkpointing/ZAoTt/examples/heat.jl:63 [16] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:62 [inlined] [17] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:2042 [inlined] [18] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:57 [inlined] [19] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [20] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:57 [inlined] [21] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [22] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:44 [inlined] [23] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [24] top-level scope @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:7 [25] include(mapexpr::Function, mod::Module, _path::String) @ Base ./Base.jl:310 [26] top-level scope @ none:6 [27] eval(m::Module, e::Any) @ Core ./boot.jl:489 [28] exec_options(opts::Base.JLOptions) @ Base ./client.jl:310 [29] _start() @ Base ./client.jl:577 Revolve: Error During Test at /home/pkgeval/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:72 Got exception outside of a @test Taking the type of an opaque pointer is illegal Stacktrace: [1] error(s::String) @ Base ./error.jl:44 [2] eltype @ ~/.julia/packages/LLVM/iza6e/src/core/type.jl:293 [inlined] [3] propagate_returned!(mod::LLVM.Module) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/llvm/transforms.jl:1688 [4] removeDeadArgs!(mod::LLVM.Module, tm::LLVM.TargetMachine) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/llvm/transforms.jl:2563 [5] optimize!(mod::LLVM.Module, tm::LLVM.TargetMachine) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler/optimize.jl:181 [6] compile_unhooked(output::Symbol, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:4774 [7] compile(target::Symbol, job::GPUCompiler.CompilerJob; kwargs::@Kwargs{}) @ GPUCompiler ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:67 [8] compile @ ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:55 [inlined] [9] _thunk(job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}, postopt::Bool) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5960 [10] _thunk @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5958 [inlined] [11] cached_compilation @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6015 [inlined] [12] thunkbase(mi::Core.MethodInstance, World::UInt64, FA::Type{<:Annotation}, A::Type{<:Annotation}, TT::Type, Mode::Enzyme.API.CDerivativeMode, width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, edges::Vector{Any}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6131 [13] thunk_generator(world::UInt64, source::Union{LineNumberNode, Method}, FA::Type, A::Type, TT::Type, Mode::Enzyme.API.CDerivativeMode, Width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, self::Any, fakeworld::Any, fa::Type, a::Type, tt::Type, mode::Type, width::Type, modifiedbetween::Type, returnprimal::Type, shadowinit::Type, abi::Type, erriffuncwritten::Type, runtimeactivity::Type, strongzero::Type) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6275 [14] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:502 [inlined] [15] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:562 [inlined] [16] box(scheme::Revolve{Nothing}, tsteps::Int64) @ Main ~/.julia/packages/Checkpointing/ZAoTt/examples/box_model.jl:175 [17] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:77 [inlined] [18] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:2042 [inlined] [19] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:72 [inlined] [20] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [21] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:71 [inlined] [22] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [23] top-level scope @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:7 [24] include(mapexpr::Function, mod::Module, _path::String) @ Base ./Base.jl:310 [25] top-level scope @ none:6 [26] eval(m::Module, e::Any) @ Core ./boot.jl:489 [27] exec_options(opts::Base.JLOptions) @ Base ./client.jl:310 [28] _start() @ Base ./client.jl:577 Periodic: Error During Test at /home/pkgeval/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:72 Got exception outside of a @test Taking the type of an opaque pointer is illegal Stacktrace: [1] error(s::String) @ Base ./error.jl:44 [2] eltype @ ~/.julia/packages/LLVM/iza6e/src/core/type.jl:293 [inlined] [3] propagate_returned!(mod::LLVM.Module) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/llvm/transforms.jl:1688 [4] removeDeadArgs!(mod::LLVM.Module, tm::LLVM.TargetMachine) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/llvm/transforms.jl:2563 [5] optimize!(mod::LLVM.Module, tm::LLVM.TargetMachine) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler/optimize.jl:181 [6] compile_unhooked(output::Symbol, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:4774 [7] compile(target::Symbol, job::GPUCompiler.CompilerJob; kwargs::@Kwargs{}) @ GPUCompiler ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:67 [8] compile @ ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:55 [inlined] [9] _thunk(job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}, postopt::Bool) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5960 [10] _thunk @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5958 [inlined] [11] cached_compilation @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6015 [inlined] [12] thunkbase(mi::Core.MethodInstance, World::UInt64, FA::Type{<:Annotation}, A::Type{<:Annotation}, TT::Type, Mode::Enzyme.API.CDerivativeMode, width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, edges::Vector{Any}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6131 [13] thunk_generator(world::UInt64, source::Union{LineNumberNode, Method}, FA::Type, A::Type, TT::Type, Mode::Enzyme.API.CDerivativeMode, Width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, self::Any, fakeworld::Any, fa::Type, a::Type, tt::Type, mode::Type, width::Type, modifiedbetween::Type, returnprimal::Type, shadowinit::Type, abi::Type, erriffuncwritten::Type, runtimeactivity::Type, strongzero::Type) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6275 [14] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:502 [inlined] [15] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:562 [inlined] [16] box(scheme::Periodic{Nothing}, tsteps::Int64) @ Main ~/.julia/packages/Checkpointing/ZAoTt/examples/box_model.jl:175 [17] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:77 [inlined] [18] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:2042 [inlined] [19] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:72 [inlined] [20] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [21] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:71 [inlined] [22] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [23] top-level scope @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:7 [24] include(mapexpr::Function, mod::Module, _path::String) @ Base ./Base.jl:310 [25] top-level scope @ none:6 [26] eval(m::Module, e::Any) @ Core ./boot.jl:489 [27] exec_options(opts::Base.JLOptions) @ Base ./client.jl:310 [28] _start() @ Base ./client.jl:577 Online_r2: Error During Test at /home/pkgeval/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:72 Got exception outside of a @test AssertionError: Enzyme Internal Error (expectLen != length(parameters(f))) define internal void @julia_checkpoint_while_36559(ptr addrspace(11) nocapture noundef nonnull readonly align 8 dereferenceable(16) %"body::#timestepper##2#timestepper##3", ptr nocapture noundef nonnull readonly align 8 dereferenceable(8) %.roots.body, ptr addrspace(10) noundef nonnull align 8 dereferenceable(152) %"scheme::Online_r2") #15 !dbg !721 { top: %.in_now3.size = alloca i64, align 8 %.out_old2.size = alloca i64, align 8 %.in_old9.size = alloca i64, align 8 %.out_now7.size = alloca i64, align 8 %"new::Tuple" = alloca [1 x i64], align 8 %"new::Tuple81" = alloca [1 x i64], align 8 %pgcstack = call ptr @julia.get_pgcstack() %current_task = getelementptr inbounds i8, ptr %pgcstack, i32 -152 %ptls_field = getelementptr inbounds i8, ptr %current_task, i32 168 %ptls_load = load ptr, ptr %ptls_field, align 8, !tbaa !14 %0 = getelementptr inbounds i8, ptr %ptls_load, i32 16 %safepoint = load atomic ptr, ptr %0 monotonic, align 8, !tbaa !18 fence syncscope("singlethread") seq_cst call void @julia.safepoint(ptr %safepoint) fence syncscope("singlethread") seq_cst %1 = getelementptr inbounds i8, ptr %.roots.body, i32 0 %2 = load ptr addrspace(10), ptr %1, align 8, !tbaa !18, !alias.scope !147, !noalias !148 br label %L2 L2: ; preds = %L112, %top %value_phi = phi i8 [ 1, %top ], [ %81, %L112 ] %3 = trunc i8 %value_phi to i1, !dbg !722 %4 = xor i1 %3, true, !dbg !722 br i1 %4, label %L113, label %L4, !dbg !722 L4: ; preds = %L2 %5 = addrspacecast ptr addrspace(10) %2 to ptr addrspace(11), !dbg !723 %.in_now = load atomic ptr addrspace(10), ptr addrspace(11) %5 unordered, align 8, !dbg !723, !tbaa !709, !alias.scope !189, !noalias !190, !nonnull !0, !dereferenceable !321, !align !56 %6 = addrspacecast ptr addrspace(10) %2 to ptr addrspace(11), !dbg !723 %.in_old_ptr = getelementptr inbounds i8, ptr addrspace(11) %6, i32 8, !dbg !723 %.in_old = load atomic ptr addrspace(10), ptr addrspace(11) %.in_old_ptr unordered, align 8, !dbg !723, !tbaa !709, !alias.scope !189, !noalias !190, !nonnull !0, !dereferenceable !321, !align !56 %7 = addrspacecast ptr addrspace(10) %2 to ptr addrspace(11), !dbg !723 %.out_now_ptr = getelementptr inbounds i8, ptr addrspace(11) %7, i32 16, !dbg !723 %.out_now = load atomic ptr addrspace(10), ptr addrspace(11) %.out_now_ptr unordered, align 8, !dbg !723, !tbaa !709, !alias.scope !189, !noalias !190, !nonnull !0, !dereferenceable !321, !align !56 %8 = addrspacecast ptr addrspace(10) %2 to ptr addrspace(11), !dbg !723 %.out_old_ptr = getelementptr inbounds i8, ptr addrspace(11) %8, i32 24, !dbg !723 %.out_old = load atomic ptr addrspace(10), ptr addrspace(11) %.out_old_ptr unordered, align 8, !dbg !723, !tbaa !709, !alias.scope !189, !noalias !190, !nonnull !0, !dereferenceable !321, !align !56 call void @julia_forward_func_4_AD_36574(ptr addrspace(10) %.in_now, ptr addrspace(10) %.in_old, ptr addrspace(10) %.out_now, ptr addrspace(10) %.out_old), !dbg !725 %9 = addrspacecast ptr addrspace(10) %2 to ptr addrspace(11), !dbg !732 %.out_old_ptr1 = getelementptr inbounds i8, ptr addrspace(11) %9, i32 24, !dbg !732 %.out_old2 = load atomic ptr addrspace(10), ptr addrspace(11) %.out_old_ptr1 unordered, align 8, !dbg !732, !tbaa !709, !alias.scope !189, !noalias !190, !nonnull !0, !dereferenceable !321, !align !56 %10 = addrspacecast ptr addrspace(10) %2 to ptr addrspace(11), !dbg !732 %.in_now3 = load atomic ptr addrspace(10), ptr addrspace(11) %10 unordered, align 8, !dbg !732, !tbaa !709, !alias.scope !189, !noalias !190, !nonnull !0, !dereferenceable !321, !align !56 %11 = addrspacecast ptr addrspace(10) %.in_now3 to ptr addrspace(11), !dbg !734 %.in_now3.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %11, i32 16, !dbg !734 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.in_now3.size, ptr addrspace(11) align 8 %.in_now3.size_ptr, i64 8, i1 false), !dbg !734, !tbaa !34, !alias.scope !35, !noalias !39 br i1 false, label %L27, label %L18, !dbg !740 L18: ; preds = %L4 %12 = addrspacecast ptr addrspace(10) %.out_old2 to ptr addrspace(11), !dbg !741 %.out_old2.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %12, i32 16, !dbg !741 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.out_old2.size, ptr addrspace(11) align 8 %.out_old2.size_ptr, i64 8, i1 false), !dbg !741, !tbaa !34, !alias.scope !35, !noalias !39 %.out_old2.size.unbox = load i64, ptr %.out_old2.size, align 8, !dbg !745, !tbaa !43, !alias.scope !45, !noalias !46 %.in_now3.size.unbox = load i64, ptr %.in_now3.size, align 8, !dbg !745, !tbaa !43, !alias.scope !45, !noalias !46 %13 = icmp eq i64 %.out_old2.size.unbox, %.in_now3.size.unbox, !dbg !745 %14 = xor i1 %13, true, !dbg !743 br i1 %14, label %L23, label %L22, !dbg !743 L22: ; preds = %L18 br label %L26, !dbg !743 L23: ; preds = %L18 %15 = getelementptr inbounds i8, ptr %"new::Tuple81", i32 0, !dbg !743 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %15, ptr align 8 %.in_now3.size, i64 8, i1 false), !dbg !743, !tbaa !43, !alias.scope !45, !noalias !46 %16 = addrspacecast ptr %"new::Tuple81" to ptr addrspace(11), !dbg !743 call void @julia_throw_setindex_mismatch_36566(ptr addrspace(10) %.out_old2, ptr addrspace(11) nocapture readonly %16) #17, !dbg !743 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_23), !dbg !743 unreachable, !dbg !743 L26: ; preds = %L22 br label %L27, !dbg !743 L27: ; preds = %L26, %L4 %.in_now3.size.unbox4 = load i64, ptr %.in_now3.size, align 8, !dbg !747, !tbaa !43, !alias.scope !45, !noalias !46 %17 = icmp slt i64 0, %.in_now3.size.unbox4, !dbg !747 %18 = xor i1 %17, true, !dbg !751 br i1 %18, label %L55, label %L29, !dbg !751 L29: ; preds = %L27 %.in_now3.size.unbox5 = load i64, ptr %.in_now3.size, align 8, !dbg !752, !tbaa !43, !alias.scope !45, !noalias !46 %19 = icmp eq i64 %.in_now3.size.unbox5, 0, !dbg !752 %20 = xor i1 %19, true, !dbg !753 br i1 %20, label %L32, label %L31, !dbg !753 L31: ; preds = %L29 br label %L54, !dbg !753 L32: ; preds = %L29 %21 = addrspacecast ptr addrspace(10) %.in_now3 to ptr addrspace(11), !dbg !756 %22 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %21, i32 0, i32 0, !dbg !756 %memoryref_data38 = load ptr, ptr addrspace(11) %22, align 8, !dbg !756, !tbaa !50, !alias.scope !53, !noalias !54 %23 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %21, i32 0, i32 1, !dbg !756 %memoryref_mem39 = load ptr addrspace(10), ptr addrspace(11) %23, align 8, !dbg !756, !tbaa !50, !alias.scope !53, !noalias !54, !dereferenceable_or_null !55, !align !56 %24 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data38, 0, !dbg !756 %.in_now3.ref = insertvalue { ptr, ptr addrspace(10) } %24, ptr addrspace(10) %memoryref_mem39, 1, !dbg !756 %25 = addrspacecast ptr addrspace(10) %memoryref_mem39 to ptr addrspace(11), !dbg !758 %26 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %25, i32 0, i32 0, !dbg !758 %memory_len40 = load i64, ptr addrspace(11) %26, align 8, !dbg !758, !tbaa !57, !range !59, !alias.scope !53, !noalias !54 %27 = add nuw i64 %memory_len40, %memory_len40, !dbg !758 %28 = add i64 0, %memory_len40, !dbg !758 %memoryref_ovflw41 = icmp uge i64 %28, %27, !dbg !758 %memoryref_data_byteoffset42 = getelementptr i8, ptr %memoryref_data38, i64 0, !dbg !758 %29 = addrspacecast ptr addrspace(10) %memoryref_mem39 to ptr addrspace(11), !dbg !758 %30 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %29, i32 0, i32 0, !dbg !758 %memory_len43 = load i64, ptr addrspace(11) %30, align 8, !dbg !758, !tbaa !57, !range !59, !alias.scope !53, !noalias !54 %31 = addrspacecast ptr addrspace(10) %memoryref_mem39 to ptr addrspace(11), !dbg !758 %memory_data_ptr44 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %31, i32 0, i32 1, !dbg !758 %memory_data45 = load ptr, ptr addrspace(11) %memory_data_ptr44, align 8, !dbg !758, !tbaa !60, !alias.scope !53, !noalias !54, !nonnull !0 %32 = ptrtoint ptr %memory_data45 to i64, !dbg !758 %33 = ptrtoint ptr %memoryref_data_byteoffset42 to i64, !dbg !758 %34 = sub i64 %33, %32, !dbg !758 %memoryref_bytelen46 = mul nuw nsw i64 %memory_len43, 8, !dbg !758 %memoryref_isinbounds47 = icmp ult i64 %34, %memoryref_bytelen46, !dbg !758 %35 = xor i1 %memoryref_ovflw41, true, !dbg !758 %"memoryref_isinbounds¬ovflw48" = and i1 %35, %memoryref_isinbounds47, !dbg !758 br i1 %"memoryref_isinbounds¬ovflw48", label %idxend54, label %oob49, !dbg !758 L47: ; preds = %idxend72 %"-Core.throw_inexacterror#3656275" = load ptr, ptr @_Core_throw_inexacterror_36562, align 8, !dbg !760, !tbaa !18, !alias.scope !147, !noalias !148, !nonnull !0, !dereferenceable !149, !align !56 %36 = addrspacecast ptr %"-Core.throw_inexacterror#3656275" to ptr addrspace(10), !dbg !760 %"jl_global#3656376" = load ptr, ptr @jl_global_36563, align 8, !dbg !760, !tbaa !18, !alias.scope !147, !noalias !148, !nonnull !0 %37 = addrspacecast ptr %"jl_global#3656376" to ptr addrspace(10), !dbg !760 %"jl_sym#convert#3656477" = load ptr, ptr @jl_sym_convert_36564, align 8, !dbg !760, !tbaa !18, !alias.scope !147, !noalias !148, !nonnull !0 %38 = addrspacecast ptr %"jl_sym#convert#3656477" to ptr addrspace(10), !dbg !760 %39 = load ptr, ptr getelementptr inbounds (i8, ptr @jl_small_typeof, i32 336), align 8, !dbg !760, !tbaa !18, !alias.scope !147, !noalias !148, !nonnull !0, !dereferenceable !150, !align !55 %40 = addrspacecast ptr %39 to ptr addrspace(10), !dbg !760 %box_Int6478 = call nonnull align 8 dereferenceable(8) ptr addrspace(10) @ijl_box_int64(i64 signext %142) #18, !dbg !760 %41 = call nonnull ptr addrspace(10) (ptr, ptr addrspace(10), ptr addrspace(10), ...) @julia.call2(ptr @ijl_invoke, ptr addrspace(10) %36, ptr addrspace(10) %37, ptr addrspace(10) %38, ptr addrspace(10) %40, ptr addrspace(10) %box_Int6478), !dbg !760 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_23), !dbg !760 unreachable, !dbg !760 L49: ; preds = %idxend72 call void @llvm.memmove.p0.p0.i64(ptr %memory_ref55.ptr_or_offset, ptr %memory_ref73.ptr_or_offset, i64 %142, i1 false), !dbg !770 call void @llvm.julia.gc_preserve_end(token %141), !dbg !774 call void @llvm.julia.gc_preserve_end(token %140), !dbg !775 br label %L54, !dbg !776 L54: ; preds = %L49, %L31 br label %L55, !dbg !753 L55: ; preds = %L54, %L27 br label %L56, !dbg !777 L56: ; preds = %L55 %42 = addrspacecast ptr addrspace(10) %2 to ptr addrspace(11), !dbg !778 %.out_now_ptr6 = getelementptr inbounds i8, ptr addrspace(11) %42, i32 16, !dbg !778 %.out_now7 = load atomic ptr addrspace(10), ptr addrspace(11) %.out_now_ptr6 unordered, align 8, !dbg !778, !tbaa !709, !alias.scope !189, !noalias !190, !nonnull !0, !dereferenceable !321, !align !56 %43 = addrspacecast ptr addrspace(10) %2 to ptr addrspace(11), !dbg !778 %.in_old_ptr8 = getelementptr inbounds i8, ptr addrspace(11) %43, i32 8, !dbg !778 %.in_old9 = load atomic ptr addrspace(10), ptr addrspace(11) %.in_old_ptr8 unordered, align 8, !dbg !778, !tbaa !709, !alias.scope !189, !noalias !190, !nonnull !0, !dereferenceable !321, !align !56 %44 = addrspacecast ptr addrspace(10) %.in_old9 to ptr addrspace(11), !dbg !780 %.in_old9.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %44, i32 16, !dbg !780 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.in_old9.size, ptr addrspace(11) align 8 %.in_old9.size_ptr, i64 8, i1 false), !dbg !780, !tbaa !34, !alias.scope !35, !noalias !39 br i1 false, label %L73, label %L64, !dbg !783 L64: ; preds = %L56 %45 = addrspacecast ptr addrspace(10) %.out_now7 to ptr addrspace(11), !dbg !784 %.out_now7.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %45, i32 16, !dbg !784 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.out_now7.size, ptr addrspace(11) align 8 %.out_now7.size_ptr, i64 8, i1 false), !dbg !784, !tbaa !34, !alias.scope !35, !noalias !39 %.out_now7.size.unbox = load i64, ptr %.out_now7.size, align 8, !dbg !787, !tbaa !43, !alias.scope !45, !noalias !46 %.in_old9.size.unbox = load i64, ptr %.in_old9.size, align 8, !dbg !787, !tbaa !43, !alias.scope !45, !noalias !46 %46 = icmp eq i64 %.out_now7.size.unbox, %.in_old9.size.unbox, !dbg !787 %47 = xor i1 %46, true, !dbg !786 br i1 %47, label %L69, label %L68, !dbg !786 L68: ; preds = %L64 br label %L72, !dbg !786 L69: ; preds = %L64 %48 = getelementptr inbounds i8, ptr %"new::Tuple", i32 0, !dbg !786 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %48, ptr align 8 %.in_old9.size, i64 8, i1 false), !dbg !786, !tbaa !43, !alias.scope !45, !noalias !46 %49 = addrspacecast ptr %"new::Tuple" to ptr addrspace(11), !dbg !786 call void @julia_throw_setindex_mismatch_36566(ptr addrspace(10) %.out_now7, ptr addrspace(11) nocapture readonly %49) #17, !dbg !786 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_23), !dbg !786 unreachable, !dbg !786 L72: ; preds = %L68 br label %L73, !dbg !786 L73: ; preds = %L72, %L56 %.in_old9.size.unbox10 = load i64, ptr %.in_old9.size, align 8, !dbg !788, !tbaa !43, !alias.scope !45, !noalias !46 %50 = icmp slt i64 0, %.in_old9.size.unbox10, !dbg !788 %51 = xor i1 %50, true, !dbg !790 br i1 %51, label %L101, label %L75, !dbg !790 L75: ; preds = %L73 %.in_old9.size.unbox11 = load i64, ptr %.in_old9.size, align 8, !dbg !791, !tbaa !43, !alias.scope !45, !noalias !46 %52 = icmp eq i64 %.in_old9.size.unbox11, 0, !dbg !791 %53 = xor i1 %52, true, !dbg !792 br i1 %53, label %L78, label %L77, !dbg !792 L77: ; preds = %L75 br label %L100, !dbg !792 L78: ; preds = %L75 %54 = addrspacecast ptr addrspace(10) %.in_old9 to ptr addrspace(11), !dbg !794 %55 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %54, i32 0, i32 0, !dbg !794 %memoryref_data = load ptr, ptr addrspace(11) %55, align 8, !dbg !794, !tbaa !50, !alias.scope !53, !noalias !54 %56 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %54, i32 0, i32 1, !dbg !794 %memoryref_mem = load ptr addrspace(10), ptr addrspace(11) %56, align 8, !dbg !794, !tbaa !50, !alias.scope !53, !noalias !54, !dereferenceable_or_null !55, !align !56 %57 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data, 0, !dbg !794 %.in_old9.ref = insertvalue { ptr, ptr addrspace(10) } %57, ptr addrspace(10) %memoryref_mem, 1, !dbg !794 %58 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !796 %59 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %58, i32 0, i32 0, !dbg !796 %memory_len = load i64, ptr addrspace(11) %59, align 8, !dbg !796, !tbaa !57, !range !59, !alias.scope !53, !noalias !54 %60 = add nuw i64 %memory_len, %memory_len, !dbg !796 %61 = add i64 0, %memory_len, !dbg !796 %memoryref_ovflw = icmp uge i64 %61, %60, !dbg !796 %memoryref_data_byteoffset = getelementptr i8, ptr %memoryref_data, i64 0, !dbg !796 %62 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !796 %63 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %62, i32 0, i32 0, !dbg !796 %memory_len15 = load i64, ptr addrspace(11) %63, align 8, !dbg !796, !tbaa !57, !range !59, !alias.scope !53, !noalias !54 %64 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !796 %memory_data_ptr = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %64, i32 0, i32 1, !dbg !796 %memory_data = load ptr, ptr addrspace(11) %memory_data_ptr, align 8, !dbg !796, !tbaa !60, !alias.scope !53, !noalias !54, !nonnull !0 %65 = ptrtoint ptr %memory_data to i64, !dbg !796 %66 = ptrtoint ptr %memoryref_data_byteoffset to i64, !dbg !796 %67 = sub i64 %66, %65, !dbg !796 %memoryref_bytelen = mul nuw nsw i64 %memory_len15, 8, !dbg !796 %memoryref_isinbounds = icmp ult i64 %67, %memoryref_bytelen, !dbg !796 %68 = xor i1 %memoryref_ovflw, true, !dbg !796 %"memoryref_isinbounds¬ovflw" = and i1 %68, %memoryref_isinbounds, !dbg !796 br i1 %"memoryref_isinbounds¬ovflw", label %idxend, label %oob, !dbg !796 L93: ; preds = %idxend33 %"-Core.throw_inexacterror#36562" = load ptr, ptr @_Core_throw_inexacterror_36562, align 8, !dbg !797, !tbaa !18, !alias.scope !147, !noalias !148, !nonnull !0, !dereferenceable !149, !align !56 %69 = addrspacecast ptr %"-Core.throw_inexacterror#36562" to ptr addrspace(10), !dbg !797 %"jl_global#36563" = load ptr, ptr @jl_global_36563, align 8, !dbg !797, !tbaa !18, !alias.scope !147, !noalias !148, !nonnull !0 %70 = addrspacecast ptr %"jl_global#36563" to ptr addrspace(10), !dbg !797 %"jl_sym#convert#36564" = load ptr, ptr @jl_sym_convert_36564, align 8, !dbg !797, !tbaa !18, !alias.scope !147, !noalias !148, !nonnull !0 %71 = addrspacecast ptr %"jl_sym#convert#36564" to ptr addrspace(10), !dbg !797 %72 = load ptr, ptr getelementptr inbounds (i8, ptr @jl_small_typeof, i32 336), align 8, !dbg !797, !tbaa !18, !alias.scope !147, !noalias !148, !nonnull !0, !dereferenceable !150, !align !55 %73 = addrspacecast ptr %72 to ptr addrspace(10), !dbg !797 %box_Int64 = call nonnull align 8 dereferenceable(8) ptr addrspace(10) @ijl_box_int64(i64 signext %109) #18, !dbg !797 %74 = call nonnull ptr addrspace(10) (ptr, ptr addrspace(10), ptr addrspace(10), ...) @julia.call2(ptr @ijl_invoke, ptr addrspace(10) %69, ptr addrspace(10) %70, ptr addrspace(10) %71, ptr addrspace(10) %73, ptr addrspace(10) %box_Int64), !dbg !797 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_23), !dbg !797 unreachable, !dbg !797 L95: ; preds = %idxend33 call void @llvm.memmove.p0.p0.i64(ptr %memory_ref.ptr_or_offset, ptr %memory_ref34.ptr_or_offset, i64 %109, i1 false), !dbg !802 call void @llvm.julia.gc_preserve_end(token %108), !dbg !804 call void @llvm.julia.gc_preserve_end(token %107), !dbg !805 br label %L100, !dbg !806 L100: ; preds = %L95, %L77 br label %L101, !dbg !792 L101: ; preds = %L100, %L73 br label %L102, !dbg !807 L102: ; preds = %L101 %75 = addrspacecast ptr addrspace(10) %2 to ptr addrspace(11), !dbg !808 %.i_ptr = getelementptr inbounds i8, ptr addrspace(11) %75, i32 32, !dbg !808 %.i = load i64, ptr addrspace(11) %.i_ptr, align 8, !dbg !808, !tbaa !709, !alias.scope !189, !noalias !190 %76 = add i64 %.i, 1, !dbg !810 %77 = addrspacecast ptr addrspace(10) %2 to ptr addrspace(11), !dbg !812 %.i_ptr12 = getelementptr inbounds i8, ptr addrspace(11) %77, i32 32, !dbg !812 store i64 %76, ptr addrspace(11) %.i_ptr12, align 8, !dbg !812, !tbaa !709, !alias.scope !189, !noalias !190 %78 = addrspacecast ptr addrspace(10) %2 to ptr addrspace(11), !dbg !814 %.i_ptr13 = getelementptr inbounds i8, ptr addrspace(11) %78, i32 32, !dbg !814 %.i14 = load i64, ptr addrspace(11) %.i_ptr13, align 8, !dbg !814, !tbaa !709, !alias.scope !189, !noalias !190 %79 = getelementptr inbounds i8, ptr addrspace(11) %"body::#timestepper##2#timestepper##3", i32 8, !dbg !815 %.unbox = load i64, ptr addrspace(11) %79, align 8, !dbg !816, !tbaa !18, !alias.scope !147, !noalias !148 %80 = icmp sle i64 %.i14, %.unbox, !dbg !816 br label %L112, !dbg !815 L112: ; preds = %L102 %81 = zext i1 %80 to i8 br label %L2, !dbg !818 L113: ; preds = %L2 ret void, !dbg !819 oob: ; preds = %L78 %"+Core.GenericMemoryRef#36552" = load ptr, ptr @_Core_GenericMemoryRef_36552, align 8, !dbg !796, !tbaa !18, !alias.scope !147, !noalias !148, !nonnull !0, !dereferenceable !150, !align !55 %GenericMemoryRef = ptrtoint ptr %"+Core.GenericMemoryRef#36552" to i64, !dbg !796 %82 = inttoptr i64 %GenericMemoryRef to ptr, !dbg !796 %current_task16 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !796 %83 = addrspacecast ptr %82 to ptr addrspace(10), !dbg !796 %"box::GenericMemoryRef" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task16, i64 16, ptr addrspace(10) %83) #19, !dbg !796 %84 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef" to ptr addrspace(11), !dbg !796 store { ptr, ptr addrspace(10) } %.in_old9.ref, ptr addrspace(11) %84, align 8, !dbg !796, !tbaa !185, !alias.scope !189, !noalias !190 %85 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef" to ptr addrspace(12), !dbg !796 call void @ijl_bounds_error_int(ptr addrspace(12) %85, i64 1), !dbg !796 unreachable, !dbg !796 idxend: ; preds = %L78 %86 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset, 0, !dbg !796 %memory_ref = insertvalue { ptr, ptr addrspace(10) } %86, ptr addrspace(10) %memoryref_mem, 1, !dbg !796 %87 = addrspacecast ptr addrspace(10) %.out_now7 to ptr addrspace(11), !dbg !794 %88 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %87, i32 0, i32 0, !dbg !794 %memoryref_data17 = load ptr, ptr addrspace(11) %88, align 8, !dbg !794, !tbaa !50, !alias.scope !53, !noalias !54 %89 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %87, i32 0, i32 1, !dbg !794 %memoryref_mem18 = load ptr addrspace(10), ptr addrspace(11) %89, align 8, !dbg !794, !tbaa !50, !alias.scope !53, !noalias !54, !dereferenceable_or_null !55, !align !56 %90 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data17, 0, !dbg !794 %.out_now7.ref = insertvalue { ptr, ptr addrspace(10) } %90, ptr addrspace(10) %memoryref_mem18, 1, !dbg !794 %91 = addrspacecast ptr addrspace(10) %memoryref_mem18 to ptr addrspace(11), !dbg !796 %92 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %91, i32 0, i32 0, !dbg !796 %memory_len19 = load i64, ptr addrspace(11) %92, align 8, !dbg !796, !tbaa !57, !range !59, !alias.scope !53, !noalias !54 %93 = add nuw i64 %memory_len19, %memory_len19, !dbg !796 %94 = add i64 0, %memory_len19, !dbg !796 %memoryref_ovflw20 = icmp uge i64 %94, %93, !dbg !796 %memoryref_data_byteoffset21 = getelementptr i8, ptr %memoryref_data17, i64 0, !dbg !796 %95 = addrspacecast ptr addrspace(10) %memoryref_mem18 to ptr addrspace(11), !dbg !796 %96 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %95, i32 0, i32 0, !dbg !796 %memory_len22 = load i64, ptr addrspace(11) %96, align 8, !dbg !796, !tbaa !57, !range !59, !alias.scope !53, !noalias !54 %97 = addrspacecast ptr addrspace(10) %memoryref_mem18 to ptr addrspace(11), !dbg !796 %memory_data_ptr23 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %97, i32 0, i32 1, !dbg !796 %memory_data24 = load ptr, ptr addrspace(11) %memory_data_ptr23, align 8, !dbg !796, !tbaa !60, !alias.scope !53, !noalias !54, !nonnull !0 %98 = ptrtoint ptr %memory_data24 to i64, !dbg !796 %99 = ptrtoint ptr %memoryref_data_byteoffset21 to i64, !dbg !796 %100 = sub i64 %99, %98, !dbg !796 %memoryref_bytelen25 = mul nuw nsw i64 %memory_len22, 8, !dbg !796 %memoryref_isinbounds26 = icmp ult i64 %100, %memoryref_bytelen25, !dbg !796 %101 = xor i1 %memoryref_ovflw20, true, !dbg !796 %"memoryref_isinbounds¬ovflw27" = and i1 %101, %memoryref_isinbounds26, !dbg !796 br i1 %"memoryref_isinbounds¬ovflw27", label %idxend33, label %oob28, !dbg !796 oob28: ; preds = %idxend %"+Core.GenericMemoryRef#3655229" = load ptr, ptr @_Core_GenericMemoryRef_36552, align 8, !dbg !796, !tbaa !18, !alias.scope !147, !noalias !148, !nonnull !0, !dereferenceable !150, !align !55 %GenericMemoryRef30 = ptrtoint ptr %"+Core.GenericMemoryRef#3655229" to i64, !dbg !796 %102 = inttoptr i64 %GenericMemoryRef30 to ptr, !dbg !796 %current_task31 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !796 %103 = addrspacecast ptr %102 to ptr addrspace(10), !dbg !796 %"box::GenericMemoryRef32" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task31, i64 16, ptr addrspace(10) %103) #19, !dbg !796 %104 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef32" to ptr addrspace(11), !dbg !796 store { ptr, ptr addrspace(10) } %.out_now7.ref, ptr addrspace(11) %104, align 8, !dbg !796, !tbaa !185, !alias.scope !189, !noalias !190 %105 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef32" to ptr addrspace(12), !dbg !796 call void @ijl_bounds_error_int(ptr addrspace(12) %105, i64 1), !dbg !796 unreachable, !dbg !796 idxend33: ; preds = %idxend %106 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset21, 0, !dbg !796 %memory_ref34 = insertvalue { ptr, ptr addrspace(10) } %106, ptr addrspace(10) %memoryref_mem18, 1, !dbg !796 %107 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %memoryref_mem), !dbg !820 %108 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %memoryref_mem18), !dbg !821 %memory_ref.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref, 0, !dbg !822 %memory_ref34.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref34, 0, !dbg !822 %.in_old9.size.unbox35 = load i64, ptr %.in_old9.size, align 8, !dbg !826, !tbaa !43, !alias.scope !45, !noalias !46 %109 = mul i64 %.in_old9.size.unbox35, 8, !dbg !826 %110 = lshr i64 %109, 63, !dbg !828 %111 = select i1 false, i64 0, i64 %110, !dbg !828 %112 = trunc i64 %111 to i8, !dbg !828 %113 = icmp eq i8 %112, 1, !dbg !828 %114 = xor i1 %113, true, !dbg !797 br i1 %114, label %L95, label %L93, !dbg !797 after_error: ; No predecessors! call void @llvm.trap(), !dbg !797 unreachable, !dbg !797 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !797 unreachable, !dbg !797 after_error36: ; No predecessors! call void @llvm.trap(), !dbg !786 unreachable, !dbg !786 after_noret37: ; No predecessors! call void @llvm.trap(), !dbg !786 unreachable, !dbg !786 oob49: ; preds = %L32 %"+Core.GenericMemoryRef#3655250" = load ptr, ptr @_Core_GenericMemoryRef_36552, align 8, !dbg !758, !tbaa !18, !alias.scope !147, !noalias !148, !nonnull !0, !dereferenceable !150, !align !55 %GenericMemoryRef51 = ptrtoint ptr %"+Core.GenericMemoryRef#3655250" to i64, !dbg !758 %115 = inttoptr i64 %GenericMemoryRef51 to ptr, !dbg !758 %current_task52 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !758 %116 = addrspacecast ptr %115 to ptr addrspace(10), !dbg !758 %"box::GenericMemoryRef53" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task52, i64 16, ptr addrspace(10) %116) #19, !dbg !758 %117 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef53" to ptr addrspace(11), !dbg !758 store { ptr, ptr addrspace(10) } %.in_now3.ref, ptr addrspace(11) %117, align 8, !dbg !758, !tbaa !185, !alias.scope !189, !noalias !190 %118 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef53" to ptr addrspace(12), !dbg !758 call void @ijl_bounds_error_int(ptr addrspace(12) %118, i64 1), !dbg !758 unreachable, !dbg !758 idxend54: ; preds = %L32 %119 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset42, 0, !dbg !758 %memory_ref55 = insertvalue { ptr, ptr addrspace(10) } %119, ptr addrspace(10) %memoryref_mem39, 1, !dbg !758 %120 = addrspacecast ptr addrspace(10) %.out_old2 to ptr addrspace(11), !dbg !756 %121 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %120, i32 0, i32 0, !dbg !756 %memoryref_data56 = load ptr, ptr addrspace(11) %121, align 8, !dbg !756, !tbaa !50, !alias.scope !53, !noalias !54 %122 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %120, i32 0, i32 1, !dbg !756 %memoryref_mem57 = load ptr addrspace(10), ptr addrspace(11) %122, align 8, !dbg !756, !tbaa !50, !alias.scope !53, !noalias !54, !dereferenceable_or_null !55, !align !56 %123 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data56, 0, !dbg !756 %.out_old2.ref = insertvalue { ptr, ptr addrspace(10) } %123, ptr addrspace(10) %memoryref_mem57, 1, !dbg !756 %124 = addrspacecast ptr addrspace(10) %memoryref_mem57 to ptr addrspace(11), !dbg !758 %125 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %124, i32 0, i32 0, !dbg !758 %memory_len58 = load i64, ptr addrspace(11) %125, align 8, !dbg !758, !tbaa !57, !range !59, !alias.scope !53, !noalias !54 %126 = add nuw i64 %memory_len58, %memory_len58, !dbg !758 %127 = add i64 0, %memory_len58, !dbg !758 %memoryref_ovflw59 = icmp uge i64 %127, %126, !dbg !758 %memoryref_data_byteoffset60 = getelementptr i8, ptr %memoryref_data56, i64 0, !dbg !758 %128 = addrspacecast ptr addrspace(10) %memoryref_mem57 to ptr addrspace(11), !dbg !758 %129 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %128, i32 0, i32 0, !dbg !758 %memory_len61 = load i64, ptr addrspace(11) %129, align 8, !dbg !758, !tbaa !57, !range !59, !alias.scope !53, !noalias !54 %130 = addrspacecast ptr addrspace(10) %memoryref_mem57 to ptr addrspace(11), !dbg !758 %memory_data_ptr62 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %130, i32 0, i32 1, !dbg !758 %memory_data63 = load ptr, ptr addrspace(11) %memory_data_ptr62, align 8, !dbg !758, !tbaa !60, !alias.scope !53, !noalias !54, !nonnull !0 %131 = ptrtoint ptr %memory_data63 to i64, !dbg !758 %132 = ptrtoint ptr %memoryref_data_byteoffset60 to i64, !dbg !758 %133 = sub i64 %132, %131, !dbg !758 %memoryref_bytelen64 = mul nuw nsw i64 %memory_len61, 8, !dbg !758 %memoryref_isinbounds65 = icmp ult i64 %133, %memoryref_bytelen64, !dbg !758 %134 = xor i1 %memoryref_ovflw59, true, !dbg !758 %"memoryref_isinbounds¬ovflw66" = and i1 %134, %memoryref_isinbounds65, !dbg !758 br i1 %"memoryref_isinbounds¬ovflw66", label %idxend72, label %oob67, !dbg !758 oob67: ; preds = %idxend54 %"+Core.GenericMemoryRef#3655268" = load ptr, ptr @_Core_GenericMemoryRef_36552, align 8, !dbg !758, !tbaa !18, !alias.scope !147, !noalias !148, !nonnull !0, !dereferenceable !150, !align !55 %GenericMemoryRef69 = ptrtoint ptr %"+Core.GenericMemoryRef#3655268" to i64, !dbg !758 %135 = inttoptr i64 %GenericMemoryRef69 to ptr, !dbg !758 %current_task70 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !758 %136 = addrspacecast ptr %135 to ptr addrspace(10), !dbg !758 %"box::GenericMemoryRef71" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task70, i64 16, ptr addrspace(10) %136) #19, !dbg !758 %137 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef71" to ptr addrspace(11), !dbg !758 store { ptr, ptr addrspace(10) } %.out_old2.ref, ptr addrspace(11) %137, align 8, !dbg !758, !tbaa !185, !alias.scope !189, !noalias !190 %138 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef71" to ptr addrspace(12), !dbg !758 call void @ijl_bounds_error_int(ptr addrspace(12) %138, i64 1), !dbg !758 unreachable, !dbg !758 idxend72: ; preds = %idxend54 %139 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset60, 0, !dbg !758 %memory_ref73 = insertvalue { ptr, ptr addrspace(10) } %139, ptr addrspace(10) %memoryref_mem57, 1, !dbg !758 %140 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %memoryref_mem39), !dbg !830 %141 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %memoryref_mem57), !dbg !831 %memory_ref55.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref55, 0, !dbg !832 %memory_ref73.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref73, 0, !dbg !832 %.in_now3.size.unbox74 = load i64, ptr %.in_now3.size, align 8, !dbg !834, !tbaa !43, !alias.scope !45, !noalias !46 %142 = mul i64 %.in_now3.size.unbox74, 8, !dbg !834 %143 = lshr i64 %142, 63, !dbg !835 %144 = select i1 false, i64 0, i64 %143, !dbg !835 %145 = trunc i64 %144 to i8, !dbg !835 %146 = icmp eq i8 %145, 1, !dbg !835 %147 = xor i1 %146, true, !dbg !760 br i1 %147, label %L49, label %L47, !dbg !760 after_error79: ; No predecessors! call void @llvm.trap(), !dbg !760 unreachable, !dbg !760 after_noret80: ; No predecessors! call void @llvm.trap(), !dbg !760 unreachable, !dbg !760 after_error82: ; No predecessors! call void @llvm.trap(), !dbg !743 unreachable, !dbg !743 after_noret83: ; No predecessors! call void @llvm.trap(), !dbg !743 unreachable, !dbg !743 } expectLen=2 swiftself=false sret=nothing returnRoots=nothing mi.specTypes.parameters=svec(typeof(Checkpointing.checkpoint_while), Main.var"#timestepper##2#timestepper##3"{Main.Box, Int64}, Checkpointing.Online_r2{Nothing}) retRemoved=false parmsRemoved=UInt64[] Stacktrace: [1] julia_activity_rule(f::LLVM.Function) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/rules/activityrules.jl:48 [2] handle_compiled(state::Enzyme.Compiler.HandlerState, edges::Vector{Any}, run_enzyme::Bool, mode::Enzyme.API.CDerivativeMode, world::UInt64, method_table::Compiler.OverlayMethodTable, custom::Dict{String, LLVM.API.LLVMLinkage}, mod::LLVM.Module, mi::Core.MethodInstance, k_name::String, rettype::Type) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:628 [3] set_module_types!(interp::Enzyme.Compiler.Interpreter.EnzymeInterpreter{Nothing}, mod::LLVM.Module, primalf::LLVM.Function, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}, edges::Vector{Any}, run_enzyme::Bool, mode::Enzyme.API.CDerivativeMode) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:1220 [4] compile_unhooked(output::Symbol, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:4627 [5] compile(target::Symbol, job::GPUCompiler.CompilerJob; kwargs::@Kwargs{}) @ GPUCompiler ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:67 [6] compile @ ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:55 [inlined] [7] _thunk(job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}, postopt::Bool) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5960 [8] _thunk @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5958 [inlined] [9] cached_compilation @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6015 [inlined] [10] thunkbase(mi::Core.MethodInstance, World::UInt64, FA::Type{<:Annotation}, A::Type{<:Annotation}, TT::Type, Mode::Enzyme.API.CDerivativeMode, width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, edges::Vector{Any}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6131 [11] thunk_generator(world::UInt64, source::Union{LineNumberNode, Method}, FA::Type, A::Type, TT::Type, Mode::Enzyme.API.CDerivativeMode, Width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, self::Any, fakeworld::Any, fa::Type, a::Type, tt::Type, mode::Type, width::Type, modifiedbetween::Type, returnprimal::Type, shadowinit::Type, abi::Type, erriffuncwritten::Type, runtimeactivity::Type, strongzero::Type) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6275 [12] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:502 [inlined] [13] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:562 [inlined] [14] box(scheme::Online_r2{Nothing}, tsteps::Int64) @ Main ~/.julia/packages/Checkpointing/ZAoTt/examples/box_model.jl:175 [15] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:77 [inlined] [16] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:2042 [inlined] [17] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:72 [inlined] [18] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [19] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:71 [inlined] [20] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [21] top-level scope @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:7 [22] include(mapexpr::Function, mod::Module, _path::String) @ Base ./Base.jl:310 [23] top-level scope @ none:6 [24] eval(m::Module, e::Any) @ Core ./boot.jl:489 [25] exec_options(opts::Base.JLOptions) @ Base ./client.jl:310 [26] _start() @ Base ./client.jl:577 Multilevel: Error During Test at /home/pkgeval/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:83 Got exception outside of a @test LoadError: AssertionError: Enzyme Internal Error (expectLen != length(parameters(f))) define internal void @julia_checkpoint_for_37049(ptr addrspace(11) nocapture noundef nonnull readonly align 8 dereferenceable(16) %"body::#loops##0#loops##1", ptr nocapture noundef nonnull readonly align 8 dereferenceable(8) %.roots.body, ptr addrspace(10) noundef nonnull align 8 dereferenceable(56) %"scheme::Periodic", ptr addrspace(11) nocapture noundef nonnull readonly align 8 dereferenceable(16) %"range::UnitRange") #0 !dbg !10 { top: %0 = alloca ptr addrspace(10), align 8 %pgcstack = call ptr @julia.get_pgcstack() call void @llvm.memset.p0.i64(ptr align 8 %0, i8 0, i64 8, i1 false), !tbaa !13, !alias.scope !17, !noalias !20 %1 = getelementptr inbounds i8, ptr %.roots.body, i32 0 %2 = load ptr addrspace(10), ptr %1, align 8, !tbaa !25, !alias.scope !27, !noalias !28 %"range::UnitRange.stop_ptr" = getelementptr inbounds i8, ptr addrspace(11) %"range::UnitRange", i32 8, !dbg !29 %"range::UnitRange.stop_ptr.unbox" = load i64, ptr addrspace(11) %"range::UnitRange.stop_ptr", align 8, !dbg !40, !tbaa !25, !alias.scope !27, !noalias !28 %"range::UnitRange.unbox" = load i64, ptr addrspace(11) %"range::UnitRange", align 8, !dbg !40, !tbaa !25, !alias.scope !27, !noalias !28 %3 = icmp slt i64 %"range::UnitRange.stop_ptr.unbox", %"range::UnitRange.unbox", !dbg !40 %4 = xor i1 %3, true, !dbg !37 br i1 %4, label %L6, label %L5, !dbg !37 L5: ; preds = %top br label %L9, !dbg !37 L6: ; preds = %top %5 = icmp ne ptr addrspace(11) %"range::UnitRange", null br i1 %5, label %guard_pass, label %guard_exit L9: ; preds = %guard_exit17, %L5 %value_phi = phi i8 [ 1, %L5 ], [ 0, %guard_exit17 ] %value_phi1 = phi i64 [ %guard_res12, %guard_exit17 ], [ undef, %L5 ] %value_phi2 = phi i64 [ %guard_res19, %guard_exit17 ], [ undef, %L5 ] %6 = trunc i8 %value_phi to i1, !dbg !39 %7 = xor i1 %6, true, !dbg !39 %8 = xor i1 %7, true, !dbg !39 br i1 %8, label %L29, label %L9.L14_crit_edge, !dbg !39 L9.L14_crit_edge: ; preds = %L9 br label %L14, !dbg !37 L14: ; preds = %L9.L14_crit_edge, %L28 %value_phi3 = phi i64 [ %value_phi1, %L9.L14_crit_edge ], [ %value_phi6, %L28 ] %value_phi4 = phi i64 [ %value_phi2, %L9.L14_crit_edge ], [ %value_phi7, %L28 ] %9 = getelementptr inbounds i8, ptr %0, i32 0, !dbg !46 store ptr addrspace(10) %2, ptr %9, align 8, !dbg !46 call void @julia__loops__0_37052(ptr addrspace(11) nocapture readonly %"body::#loops##0#loops##1", ptr nocapture readonly %0, i64 signext %value_phi3), !dbg !46 %"range::UnitRange.stop_ptr5" = getelementptr inbounds i8, ptr addrspace(11) %"range::UnitRange", i32 8, !dbg !47 %"range::UnitRange.stop_ptr5.unbox" = load i64, ptr addrspace(11) %"range::UnitRange.stop_ptr5", align 8, !dbg !51, !tbaa !25, !alias.scope !27, !noalias !28 %10 = icmp eq i64 %value_phi4, %"range::UnitRange.stop_ptr5.unbox", !dbg !51 %11 = xor i1 %10, true, !dbg !49 br i1 %11, label %L21, label %L20, !dbg !49 L20: ; preds = %L14 br label %L23, !dbg !49 L21: ; preds = %L14 %12 = add i64 %value_phi4, 1, !dbg !54 br label %L23, !dbg !49 L23: ; preds = %L21, %L20 %value_phi6 = phi i64 [ %12, %L21 ], [ undef, %L20 ] %value_phi7 = phi i64 [ %12, %L21 ], [ undef, %L20 ] %value_phi8 = phi i8 [ 1, %L20 ], [ 0, %L21 ] %13 = trunc i8 %value_phi8 to i1, !dbg !50 %14 = xor i1 %13, true, !dbg !50 %15 = xor i1 %14, true, !dbg !50 br i1 %15, label %L29, label %L28, !dbg !50 L28: ; preds = %L23 br label %L14, !dbg !37 L29: ; preds = %L23, %L9 ret void, !dbg !57 guard_pass: ; preds = %L6 br label %guard_exit guard_exit: ; preds = %guard_pass, %L6 %guard_res = phi i1 [ false, %L6 ], [ true, %guard_pass ] br i1 %guard_res, label %guard_pass9, label %guard_exit10 guard_pass9: ; preds = %guard_exit %"range::UnitRange.unbox11" = load i64, ptr addrspace(11) %"range::UnitRange", align 8, !tbaa !25, !alias.scope !27, !noalias !28 br label %guard_exit10 guard_exit10: ; preds = %guard_pass9, %guard_exit %guard_res12 = phi i64 [ undef, %guard_exit ], [ %"range::UnitRange.unbox11", %guard_pass9 ] %16 = icmp ne ptr addrspace(11) %"range::UnitRange", null, !dbg !37 br i1 %16, label %guard_pass13, label %guard_exit14, !dbg !37 guard_pass13: ; preds = %guard_exit10 br label %guard_exit14, !dbg !37 guard_exit14: ; preds = %guard_pass13, %guard_exit10 %guard_res15 = phi i1 [ false, %guard_exit10 ], [ true, %guard_pass13 ], !dbg !37 br i1 %guard_res15, label %guard_pass16, label %guard_exit17, !dbg !37 guard_pass16: ; preds = %guard_exit14 %"range::UnitRange.unbox18" = load i64, ptr addrspace(11) %"range::UnitRange", align 8, !dbg !37, !tbaa !25, !alias.scope !27, !noalias !28 br label %guard_exit17, !dbg !37 guard_exit17: ; preds = %guard_pass16, %guard_exit14 %guard_res19 = phi i64 [ undef, %guard_exit14 ], [ %"range::UnitRange.unbox18", %guard_pass16 ], !dbg !37 br label %L9, !dbg !37 } expectLen=3 swiftself=false sret=nothing returnRoots=nothing mi.specTypes.parameters=svec(typeof(Checkpointing.checkpoint_for), Main.var"#loops##0#loops##1"{Main.Chkp, Int64}, Checkpointing.Periodic{Nothing}, UnitRange{Int64}) retRemoved=false parmsRemoved=UInt64[] Stacktrace: [1] julia_activity_rule(f::LLVM.Function) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/rules/activityrules.jl:48 [2] handle_compiled(state::Enzyme.Compiler.HandlerState, edges::Vector{Any}, run_enzyme::Bool, mode::Enzyme.API.CDerivativeMode, world::UInt64, method_table::Compiler.OverlayMethodTable, custom::Dict{String, LLVM.API.LLVMLinkage}, mod::LLVM.Module, mi::Core.MethodInstance, k_name::String, rettype::Type) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:628 [3] set_module_types!(interp::Enzyme.Compiler.Interpreter.EnzymeInterpreter{Nothing}, mod::LLVM.Module, primalf::LLVM.Function, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}, edges::Vector{Any}, run_enzyme::Bool, mode::Enzyme.API.CDerivativeMode) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:1220 [4] compile_unhooked(output::Symbol, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:4627 [5] compile(target::Symbol, job::GPUCompiler.CompilerJob; kwargs::@Kwargs{}) @ GPUCompiler ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:67 [6] compile @ ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:55 [inlined] [7] _thunk(job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}, postopt::Bool) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5960 [8] _thunk @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5958 [inlined] [9] cached_compilation @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6015 [inlined] [10] thunkbase(mi::Core.MethodInstance, World::UInt64, FA::Type{<:Annotation}, A::Type{<:Annotation}, TT::Type, Mode::Enzyme.API.CDerivativeMode, width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, edges::Vector{Any}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6131 [11] thunk_generator(world::UInt64, source::Union{LineNumberNode, Method}, FA::Type, A::Type, TT::Type, Mode::Enzyme.API.CDerivativeMode, Width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, self::Any, fakeworld::Any, fa::Type, a::Type, tt::Type, mode::Type, width::Type, modifiedbetween::Type, returnprimal::Type, shadowinit::Type, abi::Type, erriffuncwritten::Type, runtimeactivity::Type, strongzero::Type) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6275 [12] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:502 [inlined] [13] autodiff(::ReverseMode{true, false, false, FFIABI, false, false}, ::typeof(loops), ::Type{Active}, ::Duplicated{Chkp}, ::Const{Periodic{Nothing}}, ::Const{Int64}, ::Const{Int64}) @ Enzyme ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:542 [14] top-level scope @ ~/.julia/packages/Checkpointing/ZAoTt/test/multilevel.jl:35 [15] include(mapexpr::Function, mod::Module, _path::String) @ Base ./Base.jl:310 [16] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:84 [inlined] [17] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [18] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:84 [inlined] [19] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [20] top-level scope @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:7 [21] include(mapexpr::Function, mod::Module, _path::String) @ Base ./Base.jl:310 [22] top-level scope @ none:6 [23] eval(m::Module, e::Any) @ Core ./boot.jl:489 [24] exec_options(opts::Base.JLOptions) @ Base ./client.jl:310 [25] _start() @ Base ./client.jl:577 in expression starting at /home/pkgeval/.julia/packages/Checkpointing/ZAoTt/test/multilevel.jl:35 Revolve: Error During Test at /home/pkgeval/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:88 Got exception outside of a @test AssertionError: Enzyme Internal Error (expectLen != length(parameters(f))) ; Function Attrs: noinline noreturn define internal void @julia_throw_boundserror_37569(ptr addrspace(11) nocapture noundef nonnull readonly align 8 dereferenceable(56) %"A::Broadcasted", ptr nocapture noundef nonnull readonly align 8 dereferenceable(16) %.roots.A, ptr addrspace(11) nocapture noundef nonnull readonly align 8 dereferenceable(8) %"I::Tuple") #8 !dbg !194 { top: %pgcstack = call ptr @julia.get_pgcstack() %current_task = getelementptr inbounds i8, ptr %pgcstack, i32 -152 %ptls_field = getelementptr inbounds i8, ptr %current_task, i32 168 %ptls_load = load ptr, ptr %ptls_field, align 8, !tbaa !66 %0 = getelementptr inbounds i8, ptr %ptls_load, i32 16 %safepoint = load atomic ptr, ptr %0 monotonic, align 8, !tbaa !160 fence syncscope("singlethread") seq_cst call void @julia.safepoint(ptr %safepoint) fence syncscope("singlethread") seq_cst %1 = getelementptr inbounds i8, ptr %.roots.A, i32 0 %2 = load ptr addrspace(10), ptr %1, align 8, !tbaa !160, !alias.scope !162, !noalias !163 %3 = getelementptr inbounds i8, ptr %.roots.A, i32 8 %4 = load ptr addrspace(10), ptr %3, align 8, !tbaa !160, !alias.scope !162, !noalias !163 %"-Core.BoundsError#37536" = load ptr, ptr @_Core_BoundsError_37536, align 8, !dbg !195, !tbaa !160, !alias.scope !162, !noalias !163, !nonnull !0, !dereferenceable !196, !align !80 %5 = addrspacecast ptr %"-Core.BoundsError#37536" to ptr addrspace(10), !dbg !195 %"+Core.BoundsError#37537" = load ptr, ptr @_Core_BoundsError_37537, align 8, !dbg !195, !tbaa !160, !alias.scope !162, !noalias !163, !nonnull !0, !dereferenceable !164, !align !115 %6 = addrspacecast ptr %"+Core.BoundsError#37537" to ptr addrspace(10), !dbg !195 %"+Main.Base.Broadcast.Broadcasted#37571" = load ptr, ptr @_Main_Base_Broadcast_Broadcasted_37571, align 8, !dbg !195, !tbaa !160, !alias.scope !162, !noalias !163, !nonnull !0, !dereferenceable !164, !align !115 %Broadcasted = ptrtoint ptr %"+Main.Base.Broadcast.Broadcasted#37571" to i64, !dbg !195 %7 = inttoptr i64 %Broadcasted to ptr, !dbg !195 %current_task1 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !195 %8 = addrspacecast ptr %7 to ptr addrspace(10), !dbg !195 %"box::Broadcasted" = call noalias nonnull align 8 dereferenceable(56) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task1, i64 56, ptr addrspace(10) %8) #25, !dbg !195 %9 = addrspacecast ptr addrspace(10) %"box::Broadcasted" to ptr addrspace(11), !dbg !195 %10 = getelementptr inbounds i8, ptr addrspace(11) %9, i32 0, !dbg !195 store atomic ptr addrspace(10) %2, ptr addrspace(11) %10 unordered, align 8, !dbg !195, !tbaa !165, !alias.scope !77, !noalias !78 %11 = getelementptr inbounds i8, ptr addrspace(11) %"A::Broadcasted", i32 8, !dbg !195 %12 = getelementptr inbounds i8, ptr addrspace(11) %9, i32 8, !dbg !195 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %12, ptr addrspace(11) align 8 %11, i64 16, i1 false), !dbg !195, !tbaa !51, !alias.scope !197, !noalias !198 %13 = getelementptr inbounds i8, ptr addrspace(11) %9, i32 24, !dbg !195 store atomic ptr addrspace(10) %4, ptr addrspace(11) %13 unordered, align 8, !dbg !195, !tbaa !165, !alias.scope !77, !noalias !78 %14 = getelementptr inbounds i8, ptr addrspace(11) %"A::Broadcasted", i32 32, !dbg !195 %15 = getelementptr inbounds i8, ptr addrspace(11) %9, i32 32, !dbg !195 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %15, ptr addrspace(11) align 8 %14, i64 24, i1 false), !dbg !195, !tbaa !51, !alias.scope !197, !noalias !198 %"+Core.Tuple#37538" = load ptr, ptr @_Core_Tuple_37538, align 8, !dbg !195, !tbaa !160, !alias.scope !162, !noalias !163, !nonnull !0, !dereferenceable !164, !align !115 %Tuple = ptrtoint ptr %"+Core.Tuple#37538" to i64, !dbg !195 %16 = inttoptr i64 %Tuple to ptr, !dbg !195 %current_task2 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !195 %17 = addrspacecast ptr %16 to ptr addrspace(10), !dbg !195 %"box::Tuple" = call noalias nonnull align 8 dereferenceable(8) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task2, i64 8, ptr addrspace(10) %17) #25, !dbg !195 %18 = addrspacecast ptr addrspace(10) %"box::Tuple" to ptr addrspace(11), !dbg !195 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %18, ptr addrspace(11) align 8 %"I::Tuple", i64 8, i1 false), !dbg !195, !tbaa !51, !alias.scope !197, !noalias !198 %19 = call nonnull ptr addrspace(10) (ptr, ptr addrspace(10), ptr addrspace(10), ...) @julia.call2(ptr @ijl_invoke, ptr addrspace(10) %5, ptr addrspace(10) %6, ptr addrspace(10) %"box::Broadcasted", ptr addrspace(10) %"box::Tuple"), !dbg !195 %20 = addrspacecast ptr addrspace(10) %19 to ptr addrspace(12), !dbg !195 call void @ijl_throw(ptr addrspace(12) %20), !dbg !195 unreachable, !dbg !195 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !195 unreachable, !dbg !195 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !195 unreachable, !dbg !195 } expectLen=2 swiftself=false sret=nothing returnRoots=nothing mi.specTypes.parameters=svec(typeof(Base.throw_boundserror), Base.Broadcast.Broadcasted{Nothing, Tuple{Base.OneTo{Int64}}, typeof(*), Tuple{Base.Broadcast.Extruded{Vector{Float64}, Tuple{Bool}, Tuple{Int64}}, Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{1}, Nothing, typeof(sqrt), Tuple{Base.Broadcast.Extruded{Vector{Float64}, Tuple{Bool}, Tuple{Int64}}}}}}, Tuple{Int64}) retRemoved=false parmsRemoved=UInt64[] Stacktrace: [1] julia_activity_rule(f::LLVM.Function) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/rules/activityrules.jl:48 [2] handle_compiled(state::Enzyme.Compiler.HandlerState, edges::Vector{Any}, run_enzyme::Bool, mode::Enzyme.API.CDerivativeMode, world::UInt64, method_table::Compiler.OverlayMethodTable, custom::Dict{String, LLVM.API.LLVMLinkage}, mod::LLVM.Module, mi::Core.MethodInstance, k_name::String, rettype::Type) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:628 [3] set_module_types!(interp::Enzyme.Compiler.Interpreter.EnzymeInterpreter{Nothing}, mod::LLVM.Module, primalf::LLVM.Function, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}, edges::Vector{Any}, run_enzyme::Bool, mode::Enzyme.API.CDerivativeMode) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:1220 [4] compile_unhooked(output::Symbol, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:4627 [5] compile(target::Symbol, job::GPUCompiler.CompilerJob; kwargs::@Kwargs{}) @ GPUCompiler ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:67 [6] compile @ ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:55 [inlined] [7] _thunk(job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}, postopt::Bool) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5960 [8] _thunk @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5958 [inlined] [9] cached_compilation @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6015 [inlined] [10] thunkbase(mi::Core.MethodInstance, World::UInt64, FA::Type{<:Annotation}, A::Type{<:Annotation}, TT::Type, Mode::Enzyme.API.CDerivativeMode, width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, edges::Vector{Any}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6131 [11] thunk_generator(world::UInt64, source::Union{LineNumberNode, Method}, FA::Type, A::Type, TT::Type, Mode::Enzyme.API.CDerivativeMode, Width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, self::Any, fakeworld::Any, fa::Type, a::Type, tt::Type, mode::Type, width::Type, modifiedbetween::Type, returnprimal::Type, shadowinit::Type, abi::Type, erriffuncwritten::Type, runtimeactivity::Type, strongzero::Type) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6275 [12] autodiff(::ReverseMode{false, false, false, FFIABI, false, true}, ::Const{typeof(loops)}, ::Type{Active}, ::Duplicated{ChkpOut}, ::Const{Revolve{Nothing}}, ::Const{Int64}) @ Enzyme ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:502 [13] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:542 [inlined] [14] output_chkp(scheme::Symbol) @ Main ~/.julia/packages/Checkpointing/ZAoTt/test/output_chkp.jl:32 [15] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:89 [inlined] [16] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:2042 [inlined] [17] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:88 [inlined] [18] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [19] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:87 [inlined] [20] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [21] top-level scope @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:7 [22] include(mapexpr::Function, mod::Module, _path::String) @ Base ./Base.jl:310 [23] top-level scope @ none:6 [24] eval(m::Module, e::Any) @ Core ./boot.jl:489 [25] exec_options(opts::Base.JLOptions) @ Base ./client.jl:310 [26] _start() @ Base ./client.jl:577 Periodic: Error During Test at /home/pkgeval/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:88 Got exception outside of a @test AssertionError: Enzyme Internal Error (expectLen != length(parameters(f))) ; Function Attrs: noinline noreturn define internal void @julia_throw_boundserror_37799(ptr addrspace(11) nocapture noundef nonnull readonly align 8 dereferenceable(56) %"A::Broadcasted", ptr nocapture noundef nonnull readonly align 8 dereferenceable(16) %.roots.A, ptr addrspace(11) nocapture noundef nonnull readonly align 8 dereferenceable(8) %"I::Tuple") #0 !dbg !16 { top: %pgcstack = call ptr @julia.get_pgcstack() %current_task = getelementptr inbounds i8, ptr %pgcstack, i32 -152 %ptls_field = getelementptr inbounds i8, ptr %current_task, i32 168 %ptls_load = load ptr, ptr %ptls_field, align 8, !tbaa !19 %0 = getelementptr inbounds i8, ptr %ptls_load, i32 16 %safepoint = load atomic ptr, ptr %0 monotonic, align 8, !tbaa !23 fence syncscope("singlethread") seq_cst call void @julia.safepoint(ptr %safepoint) fence syncscope("singlethread") seq_cst %1 = getelementptr inbounds i8, ptr %.roots.A, i32 0 %2 = load ptr addrspace(10), ptr %1, align 8, !tbaa !23, !alias.scope !25, !noalias !28 %3 = getelementptr inbounds i8, ptr %.roots.A, i32 8 %4 = load ptr addrspace(10), ptr %3, align 8, !tbaa !23, !alias.scope !25, !noalias !28 %"-Core.BoundsError#37766" = load ptr, ptr @_Core_BoundsError_37766, align 8, !dbg !33, !tbaa !23, !alias.scope !25, !noalias !28, !nonnull !0, !dereferenceable !34, !align !35 %5 = addrspacecast ptr %"-Core.BoundsError#37766" to ptr addrspace(10), !dbg !33 %"+Core.BoundsError#37767" = load ptr, ptr @_Core_BoundsError_37767, align 8, !dbg !33, !tbaa !23, !alias.scope !25, !noalias !28, !nonnull !0, !dereferenceable !36, !align !37 %6 = addrspacecast ptr %"+Core.BoundsError#37767" to ptr addrspace(10), !dbg !33 %"+Main.Base.Broadcast.Broadcasted#37801" = load ptr, ptr @_Main_Base_Broadcast_Broadcasted_37801, align 8, !dbg !33, !tbaa !23, !alias.scope !25, !noalias !28, !nonnull !0, !dereferenceable !36, !align !37 %Broadcasted = ptrtoint ptr %"+Main.Base.Broadcast.Broadcasted#37801" to i64, !dbg !33 %7 = inttoptr i64 %Broadcasted to ptr, !dbg !33 %current_task1 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !33 %8 = addrspacecast ptr %7 to ptr addrspace(10), !dbg !33 %"box::Broadcasted" = call noalias nonnull align 8 dereferenceable(56) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task1, i64 56, ptr addrspace(10) %8) #25, !dbg !33 %9 = addrspacecast ptr addrspace(10) %"box::Broadcasted" to ptr addrspace(11), !dbg !33 %10 = getelementptr inbounds i8, ptr addrspace(11) %9, i32 0, !dbg !33 store atomic ptr addrspace(10) %2, ptr addrspace(11) %10 unordered, align 8, !dbg !33, !tbaa !38, !alias.scope !42, !noalias !43 %11 = getelementptr inbounds i8, ptr addrspace(11) %"A::Broadcasted", i32 8, !dbg !33 %12 = getelementptr inbounds i8, ptr addrspace(11) %9, i32 8, !dbg !33 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %12, ptr addrspace(11) align 8 %11, i64 16, i1 false), !dbg !33, !tbaa !44, !alias.scope !45, !noalias !46 %13 = getelementptr inbounds i8, ptr addrspace(11) %9, i32 24, !dbg !33 store atomic ptr addrspace(10) %4, ptr addrspace(11) %13 unordered, align 8, !dbg !33, !tbaa !38, !alias.scope !42, !noalias !43 %14 = getelementptr inbounds i8, ptr addrspace(11) %"A::Broadcasted", i32 32, !dbg !33 %15 = getelementptr inbounds i8, ptr addrspace(11) %9, i32 32, !dbg !33 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %15, ptr addrspace(11) align 8 %14, i64 24, i1 false), !dbg !33, !tbaa !44, !alias.scope !45, !noalias !46 %"+Core.Tuple#37768" = load ptr, ptr @_Core_Tuple_37768, align 8, !dbg !33, !tbaa !23, !alias.scope !25, !noalias !28, !nonnull !0, !dereferenceable !36, !align !37 %Tuple = ptrtoint ptr %"+Core.Tuple#37768" to i64, !dbg !33 %16 = inttoptr i64 %Tuple to ptr, !dbg !33 %current_task2 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !33 %17 = addrspacecast ptr %16 to ptr addrspace(10), !dbg !33 %"box::Tuple" = call noalias nonnull align 8 dereferenceable(8) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task2, i64 8, ptr addrspace(10) %17) #25, !dbg !33 %18 = addrspacecast ptr addrspace(10) %"box::Tuple" to ptr addrspace(11), !dbg !33 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %18, ptr addrspace(11) align 8 %"I::Tuple", i64 8, i1 false), !dbg !33, !tbaa !44, !alias.scope !45, !noalias !46 %19 = call nonnull ptr addrspace(10) (ptr, ptr addrspace(10), ptr addrspace(10), ...) @julia.call2(ptr @ijl_invoke, ptr addrspace(10) %5, ptr addrspace(10) %6, ptr addrspace(10) %"box::Broadcasted", ptr addrspace(10) %"box::Tuple"), !dbg !33 %20 = addrspacecast ptr addrspace(10) %19 to ptr addrspace(12), !dbg !33 call void @ijl_throw(ptr addrspace(12) %20), !dbg !33 unreachable, !dbg !33 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !33 unreachable, !dbg !33 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !33 unreachable, !dbg !33 } expectLen=2 swiftself=false sret=nothing returnRoots=nothing mi.specTypes.parameters=svec(typeof(Base.throw_boundserror), Base.Broadcast.Broadcasted{Nothing, Tuple{Base.OneTo{Int64}}, typeof(*), Tuple{Base.Broadcast.Extruded{Vector{Float64}, Tuple{Bool}, Tuple{Int64}}, Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{1}, Nothing, typeof(sqrt), Tuple{Base.Broadcast.Extruded{Vector{Float64}, Tuple{Bool}, Tuple{Int64}}}}}}, Tuple{Int64}) retRemoved=false parmsRemoved=UInt64[] Stacktrace: [1] julia_activity_rule(f::LLVM.Function) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/rules/activityrules.jl:48 [2] handle_compiled(state::Enzyme.Compiler.HandlerState, edges::Vector{Any}, run_enzyme::Bool, mode::Enzyme.API.CDerivativeMode, world::UInt64, method_table::Compiler.OverlayMethodTable, custom::Dict{String, LLVM.API.LLVMLinkage}, mod::LLVM.Module, mi::Core.MethodInstance, k_name::String, rettype::Type) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:628 [3] set_module_types!(interp::Enzyme.Compiler.Interpreter.EnzymeInterpreter{Nothing}, mod::LLVM.Module, primalf::LLVM.Function, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}, edges::Vector{Any}, run_enzyme::Bool, mode::Enzyme.API.CDerivativeMode) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:1220 [4] compile_unhooked(output::Symbol, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:4627 [5] compile(target::Symbol, job::GPUCompiler.CompilerJob; kwargs::@Kwargs{}) @ GPUCompiler ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:67 [6] compile @ ~/.julia/packages/GPUCompiler/Gp8bZ/src/driver.jl:55 [inlined] [7] _thunk(job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget{GPUCompiler.NativeCompilerTarget}, Enzyme.Compiler.EnzymeCompilerParams{Enzyme.Compiler.PrimalCompilerParams}}, postopt::Bool) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5960 [8] _thunk @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:5958 [inlined] [9] cached_compilation @ ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6015 [inlined] [10] thunkbase(mi::Core.MethodInstance, World::UInt64, FA::Type{<:Annotation}, A::Type{<:Annotation}, TT::Type, Mode::Enzyme.API.CDerivativeMode, width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, edges::Vector{Any}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6131 [11] thunk_generator(world::UInt64, source::Union{LineNumberNode, Method}, FA::Type, A::Type, TT::Type, Mode::Enzyme.API.CDerivativeMode, Width::Int64, ModifiedBetween::NTuple{N, Bool} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, self::Any, fakeworld::Any, fa::Type, a::Type, tt::Type, mode::Type, width::Type, modifiedbetween::Type, returnprimal::Type, shadowinit::Type, abi::Type, erriffuncwritten::Type, runtimeactivity::Type, strongzero::Type) @ Enzyme.Compiler ~/.julia/packages/Enzyme/rsnI8/src/compiler.jl:6275 [12] autodiff(::ReverseMode{false, false, false, FFIABI, false, true}, ::Const{typeof(loops)}, ::Type{Active}, ::Duplicated{ChkpOut}, ::Const{Periodic{Nothing}}, ::Const{Int64}) @ Enzyme ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:502 [13] autodiff @ ~/.julia/packages/Enzyme/rsnI8/src/Enzyme.jl:542 [inlined] [14] output_chkp(scheme::Symbol) @ Main ~/.julia/packages/Checkpointing/ZAoTt/test/output_chkp.jl:32 [15] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:89 [inlined] [16] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:2042 [inlined] [17] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:88 [inlined] [18] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [19] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:87 [inlined] [20] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [21] top-level scope @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:7 [22] include(mapexpr::Function, mod::Module, _path::String) @ Base ./Base.jl:310 [23] top-level scope @ none:6 [24] eval(m::Module, e::Any) @ Core ./boot.jl:489 [25] exec_options(opts::Base.JLOptions) @ Base ./client.jl:310 [26] _start() @ Base ./client.jl:577 Test Summary: | Pass Error Total Time Checkpointing.jl | 5 18 23 5m24.5s Enzyme... | 2 1 3 4m52.0s Revolve... | 3 3 1.4s Testing optcontrol... | 2 2 6.7s scheme = Revolve | 1 1 5.3s scheme = Periodic | 1 1 1.1s Testing heat example | 9 9 8.0s Revolve | 2 2 3.6s Revolve with verbose=0 | 1 1 1.2s Revolve with verbose=1 | 1 1 2.4s Periodic | 2 2 0.8s Periodic with verbose=0 | 1 1 0.6s Periodic with verbose=1 | 1 1 0.2s Online_r2 | 2 2 1.2s Online_r2 with verbose=0 | 1 1 0.9s Online_r2 with verbose=1 | 1 1 0.3s Testing HDF5 storage using heat example | 3 3 2.4s Revolve | 1 1 1.8s Periodic | 1 1 0.3s Online_r2 | 1 1 0.3s Test box model example | 3 3 9.3s Revolve | 1 1 4.8s Periodic | 1 1 3.0s Online_r2 | 1 1 1.4s Multilevel | 1 1 3.9s Test writing checkpoints out | 2 2 3.0s Revolve | 1 1 2.3s Periodic | 1 1 0.7s RNG of the outermost testset: Random.Xoshiro(0x78927948c806f28c, 0x62885cd75e6e759d, 0x4daa68ce2d5791ad, 0x723b5e0542177816, 0x441f2dfa94ac745e) ERROR: LoadError: Some tests did not pass: 5 passed, 0 failed, 18 errored, 0 broken. in expression starting at /home/pkgeval/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:6 Testing failed after 404.89s ERROR: LoadError: Package Checkpointing errored during testing Stacktrace: [1] pkgerror(msg::String) @ Pkg.Types /opt/julia/share/julia/stdlib/v1.14/Pkg/src/Types.jl:68 [2] test(ctx::Pkg.Types.Context, pkgs::Vector{PackageSpec}; coverage::Bool, julia_args::Cmd, test_args::Cmd, test_fn::Nothing, force_latest_compatible_version::Bool, allow_earlier_backwards_compatible_versions::Bool, allow_reresolve::Bool) @ Pkg.Operations /opt/julia/share/julia/stdlib/v1.14/Pkg/src/Operations.jl:2936 [3] test @ /opt/julia/share/julia/stdlib/v1.14/Pkg/src/Operations.jl:2785 [inlined] [4] test(ctx::Pkg.Types.Context, pkgs::Vector{PackageSpec}; coverage::Bool, test_fn::Nothing, julia_args::Cmd, test_args::Cmd, force_latest_compatible_version::Bool, allow_earlier_backwards_compatible_versions::Bool, allow_reresolve::Bool, kwargs::@Kwargs{io::IOContext{IO}}) @ Pkg.API /opt/julia/share/julia/stdlib/v1.14/Pkg/src/API.jl:572 [5] kwcall(::@NamedTuple{julia_args::Cmd, io::IOContext{IO}}, ::typeof(Pkg.API.test), ctx::Pkg.Types.Context, pkgs::Vector{PackageSpec}) @ Pkg.API /opt/julia/share/julia/stdlib/v1.14/Pkg/src/API.jl:548 [6] test(pkgs::Vector{PackageSpec}; io::IOContext{IO}, kwargs::@Kwargs{julia_args::Cmd}) @ Pkg.API /opt/julia/share/julia/stdlib/v1.14/Pkg/src/API.jl:172 [7] kwcall(::@NamedTuple{julia_args::Cmd}, ::typeof(Pkg.API.test), pkgs::Vector{PackageSpec}) @ Pkg.API /opt/julia/share/julia/stdlib/v1.14/Pkg/src/API.jl:161 [8] test(pkgs::Vector{String}; kwargs::@Kwargs{julia_args::Cmd}) @ Pkg.API /opt/julia/share/julia/stdlib/v1.14/Pkg/src/API.jl:160 [9] test @ /opt/julia/share/julia/stdlib/v1.14/Pkg/src/API.jl:160 [inlined] [10] kwcall(::@NamedTuple{julia_args::Cmd}, ::typeof(Pkg.API.test), pkg::String) @ Pkg.API /opt/julia/share/julia/stdlib/v1.14/Pkg/src/API.jl:159 [11] top-level scope @ /PkgEval.jl/scripts/evaluate.jl:219 [12] include(mod::Module, _path::String) @ Base ./Base.jl:309 [13] exec_options(opts::Base.JLOptions) @ Base ./client.jl:344 [14] _start() @ Base ./client.jl:577 in expression starting at /PkgEval.jl/scripts/evaluate.jl:210 PkgEval failed after 601.65s: package tests unexpectedly errored