Package evaluation to test Checkpointing on Julia 1.14.0-DEV.30 (073666df8b*) started at 2025-11-04T18:17:36.514 ################################################################################ # Set-up # Installing PkgEval dependencies (TestEnv)... Set-up completed after 9.77s ################################################################################ # 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.94s ################################################################################ # 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... 5832.2 ms ✓ HDF5_jll 42166.7 ms ✓ Enzyme → EnzymeChainRulesCoreExt 14226.8 ms ✓ HDF5 41865.3 ms ✓ Checkpointing 4 dependencies successfully precompiled in 105 seconds. 76 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 122.66s ################################################################################ # Testing # Testing Checkpointing Status `/tmp/jl_ySWZap/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_ySWZap/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 void @julia_checkpoint_for_33483(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(128) %"scheme::Revolve", ptr addrspace(11) nocapture noundef nonnull readonly align 8 dereferenceable(16) %"range::UnitRange") #8 !dbg !49 { 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 !27, !alias.scope !51, !noalias !52 %1 = getelementptr inbounds i8, ptr %.roots.body, i32 0 %2 = load ptr addrspace(10), ptr %1, align 8, !tbaa !31, !alias.scope !34, !noalias !37 %"range::UnitRange.stop_ptr" = getelementptr inbounds i8, ptr addrspace(11) %"range::UnitRange", i32 8, !dbg !53 %"range::UnitRange.stop_ptr.unbox" = load i64, ptr addrspace(11) %"range::UnitRange.stop_ptr", align 8, !dbg !64, !tbaa !31, !alias.scope !34, !noalias !37 %"range::UnitRange.unbox" = load i64, ptr addrspace(11) %"range::UnitRange", align 8, !dbg !64, !tbaa !31, !alias.scope !34, !noalias !37 %3 = icmp slt i64 %"range::UnitRange.stop_ptr.unbox", %"range::UnitRange.unbox", !dbg !64 %4 = xor i1 %3, true, !dbg !61 br i1 %4, label %L6, label %L5, !dbg !61 L5: ; preds = %top br label %L9, !dbg !61 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 !63 %7 = xor i1 %6, true, !dbg !63 %8 = xor i1 %7, true, !dbg !63 br i1 %8, label %L29, label %L9.L14_crit_edge, !dbg !63 L9.L14_crit_edge: ; preds = %L9 br label %L14, !dbg !61 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 !70 store ptr addrspace(10) %2, ptr %9, align 8, !dbg !70 %10 = call double @julia__muoptcontrol__1_33486(ptr addrspace(11) nocapture readonly %"body::#muoptcontrol##1#muoptcontrol##2", ptr nocapture readonly %0, i64 signext %value_phi3), !dbg !70 %"range::UnitRange.stop_ptr5" = getelementptr inbounds i8, ptr addrspace(11) %"range::UnitRange", i32 8, !dbg !71 %"range::UnitRange.stop_ptr5.unbox" = load i64, ptr addrspace(11) %"range::UnitRange.stop_ptr5", align 8, !dbg !75, !tbaa !31, !alias.scope !34, !noalias !37 %11 = icmp eq i64 %value_phi4, %"range::UnitRange.stop_ptr5.unbox", !dbg !75 %12 = xor i1 %11, true, !dbg !73 br i1 %12, label %L21, label %L20, !dbg !73 L20: ; preds = %L14 br label %L23, !dbg !73 L21: ; preds = %L14 %13 = add i64 %value_phi4, 1, !dbg !78 br label %L23, !dbg !73 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 !74 %15 = xor i1 %14, true, !dbg !74 %16 = xor i1 %15, true, !dbg !74 br i1 %16, label %L29, label %L28, !dbg !74 L28: ; preds = %L23 br label %L14, !dbg !61 L29: ; preds = %L23, %L9 ret void, !dbg !81 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 !31, !alias.scope !34, !noalias !37 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 !61 br i1 %17, label %guard_pass13, label %guard_exit14, !dbg !61 guard_pass13: ; preds = %guard_exit10 br label %guard_exit14, !dbg !61 guard_exit14: ; preds = %guard_pass13, %guard_exit10 %guard_res15 = phi i1 [ false, %guard_exit10 ], [ true, %guard_pass13 ], !dbg !61 br i1 %guard_res15, label %guard_pass16, label %guard_exit17, !dbg !61 guard_pass16: ; preds = %guard_exit14 %"range::UnitRange.unbox18" = load i64, ptr addrspace(11) %"range::UnitRange", align 8, !dbg !61, !tbaa !31, !alias.scope !34, !noalias !37 br label %guard_exit17, !dbg !61 guard_exit17: ; preds = %guard_pass16, %guard_exit14 %guard_res19 = phi i64 [ undef, %guard_exit14 ], [ %"range::UnitRange.unbox18", %guard_pass16 ], !dbg !61 br label %L9, !dbg !61 } 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.Revolve{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::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_33887(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") #0 !dbg !24 { 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 !27, !alias.scope !31, !noalias !34 %1 = getelementptr inbounds i8, ptr %.roots.body, i32 0 %2 = load ptr addrspace(10), ptr %1, align 8, !tbaa !39, !alias.scope !41, !noalias !42 %"range::UnitRange.stop_ptr" = getelementptr inbounds i8, ptr addrspace(11) %"range::UnitRange", i32 8, !dbg !43 %"range::UnitRange.stop_ptr.unbox" = load i64, ptr addrspace(11) %"range::UnitRange.stop_ptr", align 8, !dbg !54, !tbaa !39, !alias.scope !41, !noalias !42 %"range::UnitRange.unbox" = load i64, ptr addrspace(11) %"range::UnitRange", align 8, !dbg !54, !tbaa !39, !alias.scope !41, !noalias !42 %3 = icmp slt i64 %"range::UnitRange.stop_ptr.unbox", %"range::UnitRange.unbox", !dbg !54 %4 = xor i1 %3, true, !dbg !51 br i1 %4, label %L6, label %L5, !dbg !51 L5: ; preds = %top br label %L9, !dbg !51 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 !53 %7 = xor i1 %6, true, !dbg !53 %8 = xor i1 %7, true, !dbg !53 br i1 %8, label %L29, label %L9.L14_crit_edge, !dbg !53 L9.L14_crit_edge: ; preds = %L9 br label %L14, !dbg !51 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 !60 store ptr addrspace(10) %2, ptr %9, align 8, !dbg !60 %10 = call double @julia__muoptcontrol__1_33890(ptr addrspace(11) nocapture readonly %"body::#muoptcontrol##1#muoptcontrol##2", ptr nocapture readonly %0, i64 signext %value_phi3), !dbg !60 %"range::UnitRange.stop_ptr5" = getelementptr inbounds i8, ptr addrspace(11) %"range::UnitRange", i32 8, !dbg !61 %"range::UnitRange.stop_ptr5.unbox" = load i64, ptr addrspace(11) %"range::UnitRange.stop_ptr5", align 8, !dbg !65, !tbaa !39, !alias.scope !41, !noalias !42 %11 = icmp eq i64 %value_phi4, %"range::UnitRange.stop_ptr5.unbox", !dbg !65 %12 = xor i1 %11, true, !dbg !63 br i1 %12, label %L21, label %L20, !dbg !63 L20: ; preds = %L14 br label %L23, !dbg !63 L21: ; preds = %L14 %13 = add i64 %value_phi4, 1, !dbg !68 br label %L23, !dbg !63 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 !64 %15 = xor i1 %14, true, !dbg !64 %16 = xor i1 %15, true, !dbg !64 br i1 %16, label %L29, label %L28, !dbg !64 L28: ; preds = %L23 br label %L14, !dbg !51 L29: ; preds = %L23, %L9 ret void, !dbg !71 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 !39, !alias.scope !41, !noalias !42 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 !51 br i1 %17, label %guard_pass13, label %guard_exit14, !dbg !51 guard_pass13: ; preds = %guard_exit10 br label %guard_exit14, !dbg !51 guard_exit14: ; preds = %guard_pass13, %guard_exit10 %guard_res15 = phi i1 [ false, %guard_exit10 ], [ true, %guard_pass13 ], !dbg !51 br i1 %guard_res15, label %guard_pass16, label %guard_exit17, !dbg !51 guard_pass16: ; preds = %guard_exit14 %"range::UnitRange.unbox18" = load i64, ptr addrspace(11) %"range::UnitRange", align 8, !dbg !51, !tbaa !39, !alias.scope !41, !noalias !42 br label %guard_exit17, !dbg !51 guard_exit17: ; preds = %guard_pass16, %guard_exit14 %guard_res19 = phi i64 [ undef, %guard_exit14 ], [ %"range::UnitRange.unbox18", %guard_pass16 ], !dbg !51 br label %L9, !dbg !51 } 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_34316(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") #22 !dbg !718 { 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#34282" = load ptr, ptr @_Core_BoundsError_34282, align 8, !dbg !719, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %3 = addrspacecast ptr %"-Core.BoundsError#34282" to ptr addrspace(10), !dbg !719 %"+Core.BoundsError#34283" = load ptr, ptr @_Core_BoundsError_34283, align 8, !dbg !719, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %4 = addrspacecast ptr %"+Core.BoundsError#34283" to ptr addrspace(10), !dbg !719 %"+Main.Base.Broadcast.Broadcasted#34318" = load ptr, ptr @_Main_Base_Broadcast_Broadcasted_34318, align 8, !dbg !719, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Broadcasted = ptrtoint ptr %"+Main.Base.Broadcast.Broadcasted#34318" to i64, !dbg !719 %5 = inttoptr i64 %Broadcasted to ptr, !dbg !719 %current_task1 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !719 %6 = addrspacecast ptr %5 to ptr addrspace(10), !dbg !719 %"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 !719 %7 = addrspacecast ptr addrspace(10) %"box::Broadcasted" to ptr addrspace(11), !dbg !719 %8 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 0, !dbg !719 store atomic ptr addrspace(10) %2, ptr addrspace(11) %8 unordered, align 8, !dbg !719, !tbaa !179, !alias.scope !183, !noalias !184 %9 = getelementptr inbounds i8, ptr addrspace(11) %"A::Broadcasted", i32 8, !dbg !719 %10 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 8, !dbg !719 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %10, ptr addrspace(11) align 8 %9, i64 24, i1 false), !dbg !719, !tbaa !38, !alias.scope !39, !noalias !40 %"+Core.Tuple#34284" = load ptr, ptr @_Core_Tuple_34284, align 8, !dbg !719, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Tuple = ptrtoint ptr %"+Core.Tuple#34284" to i64, !dbg !719 %11 = inttoptr i64 %Tuple to ptr, !dbg !719 %current_task2 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !719 %12 = addrspacecast ptr %11 to ptr addrspace(10), !dbg !719 %"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 !719 %13 = addrspacecast ptr addrspace(10) %"box::Tuple" to ptr addrspace(11), !dbg !719 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 !719, !tbaa !38, !alias.scope !39, !noalias !40 %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 !719 %15 = addrspacecast ptr addrspace(10) %14 to ptr addrspace(12), !dbg !719 call void @ijl_throw(ptr addrspace(12) %15), !dbg !719 unreachable, !dbg !719 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !719 unreachable, !dbg !719 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !719 unreachable, !dbg !719 } 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_34525(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") #22 !dbg !718 { 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#34491" = load ptr, ptr @_Core_BoundsError_34491, align 8, !dbg !719, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %3 = addrspacecast ptr %"-Core.BoundsError#34491" to ptr addrspace(10), !dbg !719 %"+Core.BoundsError#34492" = load ptr, ptr @_Core_BoundsError_34492, align 8, !dbg !719, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %4 = addrspacecast ptr %"+Core.BoundsError#34492" to ptr addrspace(10), !dbg !719 %"+Main.Base.Broadcast.Broadcasted#34527" = load ptr, ptr @_Main_Base_Broadcast_Broadcasted_34527, align 8, !dbg !719, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Broadcasted = ptrtoint ptr %"+Main.Base.Broadcast.Broadcasted#34527" to i64, !dbg !719 %5 = inttoptr i64 %Broadcasted to ptr, !dbg !719 %current_task1 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !719 %6 = addrspacecast ptr %5 to ptr addrspace(10), !dbg !719 %"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 !719 %7 = addrspacecast ptr addrspace(10) %"box::Broadcasted" to ptr addrspace(11), !dbg !719 %8 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 0, !dbg !719 store atomic ptr addrspace(10) %2, ptr addrspace(11) %8 unordered, align 8, !dbg !719, !tbaa !179, !alias.scope !183, !noalias !184 %9 = getelementptr inbounds i8, ptr addrspace(11) %"A::Broadcasted", i32 8, !dbg !719 %10 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 8, !dbg !719 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %10, ptr addrspace(11) align 8 %9, i64 24, i1 false), !dbg !719, !tbaa !38, !alias.scope !39, !noalias !40 %"+Core.Tuple#34493" = load ptr, ptr @_Core_Tuple_34493, align 8, !dbg !719, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Tuple = ptrtoint ptr %"+Core.Tuple#34493" to i64, !dbg !719 %11 = inttoptr i64 %Tuple to ptr, !dbg !719 %current_task2 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !719 %12 = addrspacecast ptr %11 to ptr addrspace(10), !dbg !719 %"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 !719 %13 = addrspacecast ptr addrspace(10) %"box::Tuple" to ptr addrspace(11), !dbg !719 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 !719, !tbaa !38, !alias.scope !39, !noalias !40 %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 !719 %15 = addrspacecast ptr addrspace(10) %14 to ptr addrspace(12), !dbg !719 call void @ijl_throw(ptr addrspace(12) %15), !dbg !719 unreachable, !dbg !719 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !719 unreachable, !dbg !719 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !719 unreachable, !dbg !719 } 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_34741(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") #22 !dbg !718 { 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#34707" = load ptr, ptr @_Core_BoundsError_34707, align 8, !dbg !719, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %3 = addrspacecast ptr %"-Core.BoundsError#34707" to ptr addrspace(10), !dbg !719 %"+Core.BoundsError#34708" = load ptr, ptr @_Core_BoundsError_34708, align 8, !dbg !719, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %4 = addrspacecast ptr %"+Core.BoundsError#34708" to ptr addrspace(10), !dbg !719 %"+Main.Base.Broadcast.Broadcasted#34743" = load ptr, ptr @_Main_Base_Broadcast_Broadcasted_34743, align 8, !dbg !719, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Broadcasted = ptrtoint ptr %"+Main.Base.Broadcast.Broadcasted#34743" to i64, !dbg !719 %5 = inttoptr i64 %Broadcasted to ptr, !dbg !719 %current_task1 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !719 %6 = addrspacecast ptr %5 to ptr addrspace(10), !dbg !719 %"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 !719 %7 = addrspacecast ptr addrspace(10) %"box::Broadcasted" to ptr addrspace(11), !dbg !719 %8 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 0, !dbg !719 store atomic ptr addrspace(10) %2, ptr addrspace(11) %8 unordered, align 8, !dbg !719, !tbaa !206, !alias.scope !210, !noalias !211 %9 = getelementptr inbounds i8, ptr addrspace(11) %"A::Broadcasted", i32 8, !dbg !719 %10 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 8, !dbg !719 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %10, ptr addrspace(11) align 8 %9, i64 24, i1 false), !dbg !719, !tbaa !38, !alias.scope !39, !noalias !40 %"+Core.Tuple#34709" = load ptr, ptr @_Core_Tuple_34709, align 8, !dbg !719, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Tuple = ptrtoint ptr %"+Core.Tuple#34709" to i64, !dbg !719 %11 = inttoptr i64 %Tuple to ptr, !dbg !719 %current_task2 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !719 %12 = addrspacecast ptr %11 to ptr addrspace(10), !dbg !719 %"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 !719 %13 = addrspacecast ptr addrspace(10) %"box::Tuple" to ptr addrspace(11), !dbg !719 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 !719, !tbaa !38, !alias.scope !39, !noalias !40 %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 !719 %15 = addrspacecast ptr addrspace(10) %14 to ptr addrspace(12), !dbg !719 call void @ijl_throw(ptr addrspace(12) %15), !dbg !719 unreachable, !dbg !719 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !719 unreachable, !dbg !719 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !719 unreachable, !dbg !719 } 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_34803(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") #22 !dbg !718 { 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#34769" = load ptr, ptr @_Core_BoundsError_34769, align 8, !dbg !719, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %3 = addrspacecast ptr %"-Core.BoundsError#34769" to ptr addrspace(10), !dbg !719 %"+Core.BoundsError#34770" = load ptr, ptr @_Core_BoundsError_34770, align 8, !dbg !719, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %4 = addrspacecast ptr %"+Core.BoundsError#34770" to ptr addrspace(10), !dbg !719 %"+Main.Base.Broadcast.Broadcasted#34805" = load ptr, ptr @_Main_Base_Broadcast_Broadcasted_34805, align 8, !dbg !719, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Broadcasted = ptrtoint ptr %"+Main.Base.Broadcast.Broadcasted#34805" to i64, !dbg !719 %5 = inttoptr i64 %Broadcasted to ptr, !dbg !719 %current_task1 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !719 %6 = addrspacecast ptr %5 to ptr addrspace(10), !dbg !719 %"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 !719 %7 = addrspacecast ptr addrspace(10) %"box::Broadcasted" to ptr addrspace(11), !dbg !719 %8 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 0, !dbg !719 store atomic ptr addrspace(10) %2, ptr addrspace(11) %8 unordered, align 8, !dbg !719, !tbaa !206, !alias.scope !210, !noalias !211 %9 = getelementptr inbounds i8, ptr addrspace(11) %"A::Broadcasted", i32 8, !dbg !719 %10 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 8, !dbg !719 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %10, ptr addrspace(11) align 8 %9, i64 24, i1 false), !dbg !719, !tbaa !38, !alias.scope !39, !noalias !40 %"+Core.Tuple#34771" = load ptr, ptr @_Core_Tuple_34771, align 8, !dbg !719, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Tuple = ptrtoint ptr %"+Core.Tuple#34771" to i64, !dbg !719 %11 = inttoptr i64 %Tuple to ptr, !dbg !719 %current_task2 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !719 %12 = addrspacecast ptr %11 to ptr addrspace(10), !dbg !719 %"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 !719 %13 = addrspacecast ptr addrspace(10) %"box::Tuple" to ptr addrspace(11), !dbg !719 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 !719, !tbaa !38, !alias.scope !39, !noalias !40 %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 !719 %15 = addrspacecast ptr addrspace(10) %14 to ptr addrspace(12), !dbg !719 call void @ijl_throw(ptr addrspace(12) %15), !dbg !719 unreachable, !dbg !719 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !719 unreachable, !dbg !719 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !719 unreachable, !dbg !719 } 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_35034(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#") #11 !dbg !187 { 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 !189, !noalias !190 %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 !191 %.Tlast_ptr = getelementptr inbounds i8, ptr addrspace(11) %4, i32 8, !dbg !191 %.Tlast = load atomic ptr addrspace(10), ptr addrspace(11) %.Tlast_ptr unordered, align 8, !dbg !191, !tbaa !200, !alias.scope !183, !noalias !184, !nonnull !0, !dereferenceable !202, !align !35 %5 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !203 %.Tnext = load atomic ptr addrspace(10), ptr addrspace(11) %5 unordered, align 8, !dbg !203, !tbaa !200, !alias.scope !183, !noalias !184, !nonnull !0, !dereferenceable !202, !align !35 %6 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !204 %.Tlast.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %6, i32 16, !dbg !204 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 !204, !tbaa !38, !alias.scope !59, !noalias !60 %7 = getelementptr inbounds i8, ptr %"new::OneTo", i32 0, !dbg !213 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %7, ptr align 8 %.Tlast.size, i64 8, i1 false), !dbg !213, !tbaa !61, !alias.scope !63, !noalias !64 %8 = getelementptr inbounds i8, ptr %"new::Tuple", i32 0, !dbg !215 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %8, ptr align 8 %"new::OneTo", i64 8, i1 false), !dbg !215, !tbaa !61, !alias.scope !63, !noalias !64 %9 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !218 %.Tnext.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %9, i32 16, !dbg !218 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 !218, !tbaa !38, !alias.scope !59, !noalias !60 %.Tlast.size.unbox = load i64, ptr %.Tlast.size, align 8, !dbg !224, !tbaa !61, !alias.scope !63, !noalias !64 %.Tnext.size.unbox = load i64, ptr %.Tnext.size, align 8, !dbg !224, !tbaa !61, !alias.scope !63, !noalias !64 %10 = icmp eq i64 %.Tlast.size.unbox, %.Tnext.size.unbox, !dbg !224 %11 = xor i1 %10, true, !dbg !228 br i1 %11, label %L16, label %L15, !dbg !228 L15: ; preds = %top %12 = zext i1 %10 to i8 br label %L18, !dbg !228 L16: ; preds = %top %.Tnext.size.unbox334 = load i64, ptr %.Tnext.size, align 8, !dbg !232, !tbaa !61, !alias.scope !63, !noalias !64 %13 = icmp eq i64 %.Tnext.size.unbox334, 1, !dbg !232 %14 = zext i1 %13 to i8 br label %L18, !dbg !232 L18: ; preds = %L16, %L15 %value_phi = phi i8 [ %12, %L15 ], [ %14, %L16 ] %15 = trunc i8 %value_phi to i1, !dbg !230 %16 = xor i1 %15, true, !dbg !230 br i1 %16, label %L21, label %L20, !dbg !230 L20: ; preds = %L18 br label %L24, !dbg !230 L21: ; preds = %L18 %"jl_global#35050" = load ptr, ptr @jl_global_35050, align 8, !dbg !230, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %17 = addrspacecast ptr %"jl_global#35050" to ptr addrspace(10), !dbg !230 %18 = call [1 x ptr addrspace(10)] @julia_DimensionMismatch_35071(ptr addrspace(10) %17), !dbg !230 %"+Main.Base.DimensionMismatch#35051" = load ptr, ptr @_Main_Base_DimensionMismatch_35051, align 8, !dbg !230, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %DimensionMismatch = ptrtoint ptr %"+Main.Base.DimensionMismatch#35051" to i64, !dbg !230 %19 = inttoptr i64 %DimensionMismatch to ptr, !dbg !230 %current_task332 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !230 %20 = addrspacecast ptr %19 to ptr addrspace(10), !dbg !230 %"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 !230 %21 = addrspacecast ptr addrspace(10) %"box::DimensionMismatch" to ptr addrspace(11), !dbg !230 store [1 x ptr addrspace(10)] %18, ptr addrspace(11) %21, align 8, !dbg !230, !tbaa !179, !alias.scope !183, !noalias !184 %22 = addrspacecast ptr addrspace(10) %"box::DimensionMismatch" to ptr addrspace(12), !dbg !230 call void @ijl_throw(ptr addrspace(12) %22), !dbg !230 unreachable, !dbg !230 L24: ; preds = %L20 br label %L25, !dbg !230 L25: ; preds = %L24 br label %L26, !dbg !233 L26: ; preds = %L25 %23 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !234 %.Tlast.size_ptr1 = getelementptr inbounds i8, ptr addrspace(11) %23, i32 16, !dbg !234 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 !234, !tbaa !38, !alias.scope !59, !noalias !60 %24 = getelementptr inbounds i8, ptr %"new::Tuple4", i32 0, !dbg !241 %25 = getelementptr inbounds i8, ptr %24, i32 0, !dbg !241 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %25, ptr align 8 %.Tlast.size2, i64 8, i1 false), !dbg !241, !tbaa !61, !alias.scope !63, !noalias !64 %.Tlast.size2.unbox = load i64, ptr %.Tlast.size2, align 8, !dbg !243, !tbaa !61, !alias.scope !63, !noalias !64 %.Tlast.size.unbox5 = load i64, ptr %.Tlast.size, align 8, !dbg !243, !tbaa !61, !alias.scope !63, !noalias !64 %26 = icmp eq i64 %.Tlast.size2.unbox, %.Tlast.size.unbox5, !dbg !243 %27 = zext i1 %26 to i8, !dbg !250 %28 = icmp eq i8 %27, 0, !dbg !250 %29 = xor i1 %28, true, !dbg !250 br i1 %29, label %L35, label %L34, !dbg !250 L34: ; preds = %L26 br label %L36, !dbg !251 L35: ; preds = %L26 br label %L36, !dbg !252 L36: ; preds = %L35, %L34 %value_phi6 = phi i8 [ 0, %L34 ], [ 1, %L35 ] br label %L38, !dbg !247 L38: ; preds = %L36 %30 = trunc i8 %value_phi6 to i1, !dbg !249 %31 = xor i1 %30, true, !dbg !249 br i1 %31, label %L284, label %L39, !dbg !249 L39: ; preds = %L38 %32 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !253 %.Tnext.size_ptr7 = getelementptr inbounds i8, ptr addrspace(11) %32, i32 16, !dbg !253 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 !253, !tbaa !38, !alias.scope !59, !noalias !60 %.Tlast.size2.unbox9 = load i64, ptr %.Tlast.size2, align 8, !dbg !256, !tbaa !61, !alias.scope !63, !noalias !64 %.Tnext.size8.unbox = load i64, ptr %.Tnext.size8, align 8, !dbg !256, !tbaa !61, !alias.scope !63, !noalias !64 %33 = icmp eq i64 %.Tlast.size2.unbox9, %.Tnext.size8.unbox, !dbg !256 %34 = zext i1 %33 to i8, !dbg !260 %35 = icmp eq i8 %34, 0, !dbg !260 %36 = xor i1 %35, true, !dbg !260 br i1 %36, label %L46, label %L45, !dbg !260 L45: ; preds = %L39 br label %L47, !dbg !261 L46: ; preds = %L39 br label %L47, !dbg !262 L47: ; preds = %L46, %L45 %value_phi10 = phi i8 [ 0, %L45 ], [ 1, %L46 ] br label %L49, !dbg !259 L49: ; preds = %L47 %37 = trunc i8 %value_phi10 to i1, !dbg !255 %38 = xor i1 %37, true, !dbg !255 br i1 %38, label %L137, label %L50, !dbg !255 L50: ; preds = %L49 %39 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !263 %.Tnext.size_ptr11 = getelementptr inbounds i8, ptr addrspace(11) %39, i32 16, !dbg !263 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 !263, !tbaa !38, !alias.scope !59, !noalias !60 %.Tnext.size12.unbox = load i64, ptr %.Tnext.size12, align 8, !dbg !271, !tbaa !61, !alias.scope !63, !noalias !64 %40 = icmp eq i64 %.Tnext.size12.unbox, 0, !dbg !271 %41 = xor i1 %40, true, !dbg !272 br i1 %41, label %L55, label %L54, !dbg !272 L54: ; preds = %L50 br label %L133, !dbg !272 L55: ; preds = %L50 %.Tnext.size12.unbox159 = load i64, ptr %.Tnext.size12, align 8, !dbg !275, !tbaa !61, !alias.scope !63, !noalias !64 %42 = icmp slt i64 0, %.Tnext.size12.unbox159, !dbg !275 %43 = xor i1 %42, true, !dbg !279 br i1 %43, label %L131, label %L57, !dbg !279 L57: ; preds = %L55 br i1 false, label %L81, label %L59, !dbg !280 L59: ; preds = %L57 %.Tnext.size12.unbox160 = load i64, ptr %.Tnext.size12, align 8, !dbg !281, !tbaa !61, !alias.scope !63, !noalias !64 %44 = add i64 1, %.Tnext.size12.unbox160, !dbg !281 %45 = sub i64 %44, 1, !dbg !283 %46 = icmp sle i64 1, %45, !dbg !285 %47 = xor i1 %46, true, !dbg !289 br i1 %47, label %L64, label %L63, !dbg !289 L63: ; preds = %L59 br label %L65, !dbg !295 L64: ; preds = %L59 br label %L65, !dbg !295 L65: ; preds = %L64, %L63 %value_phi161 = phi i64 [ %45, %L63 ], [ 0, %L64 ] %48 = getelementptr inbounds i8, ptr %"new::Tuple162", i32 0, !dbg !291 %49 = getelementptr inbounds i8, ptr %48, i32 0, !dbg !291 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %49, ptr align 8 @_j_const_1, i64 8, i1 false), !dbg !291, !tbaa !38, !alias.scope !300, !noalias !301 %50 = getelementptr inbounds i8, ptr %48, i32 8, !dbg !291 store i64 %value_phi161, ptr %50, align 8, !dbg !291, !tbaa !61, !alias.scope !63, !noalias !64 %51 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !302 %.Tlast.size_ptr163 = getelementptr inbounds i8, ptr addrspace(11) %51, i32 16, !dbg !302 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 !302, !tbaa !38, !alias.scope !59, !noalias !60 %52 = icmp slt i64 %value_phi161, 1, !dbg !309 %bitcast165 = load i64, ptr %.Tlast.size164, align 8, !dbg !315, !tbaa !61, !alias.scope !63, !noalias !64 %53 = icmp ult i64 0, %bitcast165, !dbg !320 %54 = sub i64 %value_phi161, 1, !dbg !321 %bitcast166 = load i64, ptr %.Tlast.size164, align 8, !dbg !315, !tbaa !61, !alias.scope !63, !noalias !64 %55 = icmp ult i64 %54, %bitcast166, !dbg !320 %56 = and i1 %53, %55, !dbg !322 %57 = or i1 %52, %56, !dbg !325 %58 = xor i1 %57, true, !dbg !308 br i1 %58, label %L88, label %L80, !dbg !308 L80: ; preds = %L65 br label %L81, !dbg !308 L81: ; preds = %L80, %L57 br i1 false, label %L107, label %L83, !dbg !327 L83: ; preds = %L81 %.Tnext.size12.unbox167 = load i64, ptr %.Tnext.size12, align 8, !dbg !328, !tbaa !61, !alias.scope !63, !noalias !64 %59 = add i64 1, %.Tnext.size12.unbox167, !dbg !328 %60 = sub i64 %59, 1, !dbg !329 %61 = icmp sle i64 1, %60, !dbg !330 %62 = xor i1 %61, true, !dbg !332 br i1 %62, label %L90, label %L87, !dbg !332 L87: ; preds = %L83 br label %L91, !dbg !295 L88: ; preds = %L65 %63 = addrspacecast ptr %"new::Tuple162" to ptr addrspace(11), !dbg !308 call void @julia_throw_boundserror_35067(ptr addrspace(10) %.Tlast, ptr addrspace(11) nocapture readonly %63) #26, !dbg !308 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !308 unreachable, !dbg !308 L90: ; preds = %L83 br label %L91, !dbg !295 L91: ; preds = %L90, %L87 %value_phi168 = phi i64 [ %60, %L87 ], [ 0, %L90 ] %64 = getelementptr inbounds i8, ptr %"new::Tuple169", i32 0, !dbg !333 %65 = getelementptr inbounds i8, ptr %64, i32 0, !dbg !333 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %65, ptr align 8 @_j_const_1, i64 8, i1 false), !dbg !333, !tbaa !38, !alias.scope !300, !noalias !301 %66 = getelementptr inbounds i8, ptr %64, i32 8, !dbg !333 store i64 %value_phi168, ptr %66, align 8, !dbg !333, !tbaa !61, !alias.scope !63, !noalias !64 %67 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !335 %.Tnext.size_ptr170 = getelementptr inbounds i8, ptr addrspace(11) %67, i32 16, !dbg !335 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 !335, !tbaa !38, !alias.scope !59, !noalias !60 %68 = icmp slt i64 %value_phi168, 1, !dbg !340 %bitcast172 = load i64, ptr %.Tnext.size171, align 8, !dbg !344, !tbaa !61, !alias.scope !63, !noalias !64 %69 = icmp ult i64 0, %bitcast172, !dbg !347 %70 = sub i64 %value_phi168, 1, !dbg !348 %bitcast173 = load i64, ptr %.Tnext.size171, align 8, !dbg !344, !tbaa !61, !alias.scope !63, !noalias !64 %71 = icmp ult i64 %70, %bitcast173, !dbg !347 %72 = and i1 %69, %71, !dbg !349 %73 = or i1 %68, %72, !dbg !350 %74 = xor i1 %73, true, !dbg !339 br i1 %74, label %L124, label %L106, !dbg !339 L106: ; preds = %L91 br label %L107, !dbg !339 L107: ; preds = %L106, %L81 %75 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !351 %76 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %75, i32 0, i32 0, !dbg !351 %memoryref_data174 = load ptr, ptr addrspace(11) %76, align 8, !dbg !351, !tbaa !66, !alias.scope !69, !noalias !70 %77 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %75, i32 0, i32 1, !dbg !351 %memoryref_mem175 = load ptr addrspace(10), ptr addrspace(11) %77, align 8, !dbg !351, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %78 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data174, 0, !dbg !351 %.Tlast.ref = insertvalue { ptr, ptr addrspace(10) } %78, ptr addrspace(10) %memoryref_mem175, 1, !dbg !351 %79 = addrspacecast ptr addrspace(10) %memoryref_mem175 to ptr addrspace(11), !dbg !352 %80 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %79, i32 0, i32 0, !dbg !352 %memory_len176 = load i64, ptr addrspace(11) %80, align 8, !dbg !352, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %81 = add nuw i64 %memory_len176, %memory_len176, !dbg !352 %82 = add i64 0, %memory_len176, !dbg !352 %memoryref_ovflw177 = icmp uge i64 %82, %81, !dbg !352 %memoryref_data_byteoffset178 = getelementptr i8, ptr %memoryref_data174, i64 0, !dbg !352 %83 = addrspacecast ptr addrspace(10) %memoryref_mem175 to ptr addrspace(11), !dbg !352 %84 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %83, i32 0, i32 0, !dbg !352 %memory_len179 = load i64, ptr addrspace(11) %84, align 8, !dbg !352, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %85 = addrspacecast ptr addrspace(10) %memoryref_mem175 to ptr addrspace(11), !dbg !352 %memory_data_ptr180 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %85, i32 0, i32 1, !dbg !352 %memory_data181 = load ptr, ptr addrspace(11) %memory_data_ptr180, align 8, !dbg !352, !tbaa !74, !alias.scope !69, !noalias !70, !nonnull !0 %86 = ptrtoint ptr %memory_data181 to i64, !dbg !352 %87 = ptrtoint ptr %memoryref_data_byteoffset178 to i64, !dbg !352 %88 = sub i64 %87, %86, !dbg !352 %memoryref_bytelen182 = mul nuw nsw i64 %memory_len179, 8, !dbg !352 %memoryref_isinbounds183 = icmp ult i64 %88, %memoryref_bytelen182, !dbg !352 %89 = xor i1 %memoryref_ovflw177, true, !dbg !352 %"memoryref_isinbounds¬ovflw184" = and i1 %89, %memoryref_isinbounds183, !dbg !352 br i1 %"memoryref_isinbounds¬ovflw184", label %idxend190, label %oob185, !dbg !352 L122: ; preds = %idxend208 %"-Core.throw_inexacterror#35037" = load ptr, ptr @_Core_throw_inexacterror_35037, align 8, !dbg !355, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %90 = addrspacecast ptr %"-Core.throw_inexacterror#35037" to ptr addrspace(10), !dbg !355 %"jl_global#35038" = load ptr, ptr @jl_global_35038, align 8, !dbg !355, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %91 = addrspacecast ptr %"jl_global#35038" to ptr addrspace(10), !dbg !355 %"jl_sym#convert#35039" = load ptr, ptr @jl_sym_convert_35039, align 8, !dbg !355, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %92 = addrspacecast ptr %"jl_sym#convert#35039" to ptr addrspace(10), !dbg !355 %93 = load ptr, ptr getelementptr inbounds (i8, ptr @jl_small_typeof, i32 336), align 8, !dbg !355, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %94 = addrspacecast ptr %93 to ptr addrspace(10), !dbg !355 %box_Int64 = call nonnull align 8 dereferenceable(8) ptr addrspace(10) @ijl_box_int64(i64 signext %443) #27, !dbg !355 %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 !355 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !355 unreachable, !dbg !355 L124: ; preds = %L91 %96 = addrspacecast ptr %"new::Tuple169" to ptr addrspace(11), !dbg !339 call void @julia_throw_boundserror_35067(ptr addrspace(10) %.Tnext, ptr addrspace(11) nocapture readonly %96) #26, !dbg !339 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !339 unreachable, !dbg !339 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 !366 call void @llvm.julia.gc_preserve_end(token %442), !dbg !372 call void @llvm.julia.gc_preserve_end(token %441), !dbg !373 br label %L133, !dbg !374 L131: ; preds = %L55 %"jl_global#35042" = load ptr, ptr @jl_global_35042, align 8, !dbg !279, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %97 = addrspacecast ptr %"jl_global#35042" to ptr addrspace(10), !dbg !279 call void @julia__throw_argerror_35064(ptr addrspace(10) %97) #26, !dbg !279 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !279 unreachable, !dbg !279 L133: ; preds = %L126, %L54 br label %L134, !dbg !272 L134: ; preds = %L133 br label %L135, !dbg !272 L135: ; preds = %L134 br label %L136, !dbg !272 L136: ; preds = %L135 br label %L286, !dbg !375 L137: ; preds = %L49 %98 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !376 %99 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !376 %100 = icmp eq ptr addrspace(11) %98, %99, !dbg !376 %101 = xor i1 %100, true, !dbg !376 br i1 %101, label %L140, label %L139, !dbg !376 L139: ; preds = %L137 br label %L204, !dbg !295 L140: ; preds = %L137 %102 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !384 %.Tlast.size_ptr296 = getelementptr inbounds i8, ptr addrspace(11) %102, i32 16, !dbg !384 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 !384, !tbaa !38, !alias.scope !59, !noalias !60 %.Tlast.size297.unbox = load i64, ptr %.Tlast.size297, align 8, !dbg !392, !tbaa !61, !alias.scope !63, !noalias !64 %103 = icmp eq i64 %.Tlast.size297.unbox, 0, !dbg !392 %104 = xor i1 %103, true, !dbg !393 %105 = xor i1 %104, true, !dbg !388 br i1 %105, label %L163, label %L145, !dbg !388 L145: ; preds = %L140 %106 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !384 %.Tnext.size_ptr298 = getelementptr inbounds i8, ptr addrspace(11) %106, i32 16, !dbg !384 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 !384, !tbaa !38, !alias.scope !59, !noalias !60 %.Tnext.size299.unbox = load i64, ptr %.Tnext.size299, align 8, !dbg !392, !tbaa !61, !alias.scope !63, !noalias !64 %107 = icmp eq i64 %.Tnext.size299.unbox, 0, !dbg !392 %108 = xor i1 %107, true, !dbg !393 %109 = xor i1 %108, true, !dbg !388 br i1 %109, label %L162, label %L150, !dbg !388 L150: ; preds = %L145 %110 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !395 %111 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %110, i32 0, i32 0, !dbg !395 %112 = load ptr, ptr addrspace(11) %111, align 8, !dbg !395, !tbaa !66, !alias.scope !69, !noalias !70 %113 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %110, i32 0, i32 1, !dbg !395 %114 = load ptr addrspace(10), ptr addrspace(11) %113, align 8, !dbg !395, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %115 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %112, 0, !dbg !395 %.Tlast.ref300 = insertvalue { ptr, ptr addrspace(10) } %115, ptr addrspace(10) %114, 1, !dbg !395 %.Tlast.ref300.mem = extractvalue { ptr, ptr addrspace(10) } %.Tlast.ref300, 1, !dbg !395 %116 = addrspacecast ptr addrspace(10) %.Tlast.ref300.mem to ptr addrspace(11), !dbg !398 %.Tlast.ref300.mem.ptr_ptr = getelementptr inbounds i8, ptr addrspace(11) %116, i32 8, !dbg !398 %bitcast301 = load ptr, ptr addrspace(11) %.Tlast.ref300.mem.ptr_ptr, align 8, !dbg !400, !tbaa !74, !alias.scope !69, !noalias !70 %bitcast_coercion = ptrtoint ptr %bitcast301 to i64, !dbg !400 %117 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !395 %118 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %117, i32 0, i32 0, !dbg !395 %119 = load ptr, ptr addrspace(11) %118, align 8, !dbg !395, !tbaa !66, !alias.scope !69, !noalias !70 %120 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %117, i32 0, i32 1, !dbg !395 %121 = load ptr addrspace(10), ptr addrspace(11) %120, align 8, !dbg !395, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %122 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %119, 0, !dbg !395 %.Tnext.ref302 = insertvalue { ptr, ptr addrspace(10) } %122, ptr addrspace(10) %121, 1, !dbg !395 %.Tnext.ref302.mem = extractvalue { ptr, ptr addrspace(10) } %.Tnext.ref302, 1, !dbg !395 %123 = addrspacecast ptr addrspace(10) %.Tnext.ref302.mem to ptr addrspace(11), !dbg !398 %.Tnext.ref302.mem.ptr_ptr = getelementptr inbounds i8, ptr addrspace(11) %123, i32 8, !dbg !398 %bitcast303 = load ptr, ptr addrspace(11) %.Tnext.ref302.mem.ptr_ptr, align 8, !dbg !400, !tbaa !74, !alias.scope !69, !noalias !70 %bitcast_coercion304 = ptrtoint ptr %bitcast303 to i64, !dbg !400 %124 = icmp eq i64 %bitcast_coercion, %bitcast_coercion304, !dbg !401 %125 = xor i1 %124, true, !dbg !406 %126 = xor i1 %125, true, !dbg !393 %127 = zext i1 %126 to i8, !dbg !295 br label %L164, !dbg !295 L162: ; preds = %L145 br label %L164, !dbg !295 L163: ; preds = %L140 br label %L164, !dbg !295 L164: ; preds = %L163, %L162, %L150 %value_phi305 = phi i8 [ %127, %L150 ], [ 0, %L162 ], [ 0, %L163 ] %128 = trunc i8 %value_phi305 to i1, !dbg !390 %129 = xor i1 %128, true, !dbg !390 br i1 %129, label %L201, label %L166, !dbg !390 L166: ; preds = %L164 %130 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !407 %131 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %130, i32 0, i32 0, !dbg !407 %132 = load ptr, ptr addrspace(11) %131, align 8, !dbg !407, !tbaa !66, !alias.scope !69, !noalias !70 %133 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %130, i32 0, i32 1, !dbg !407 %134 = load ptr addrspace(10), ptr addrspace(11) %133, align 8, !dbg !407, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %135 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %132, 0, !dbg !407 %.Tnext.ref306 = insertvalue { ptr, ptr addrspace(10) } %135, ptr addrspace(10) %134, 1, !dbg !407 %136 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !412 %.Tnext.size_ptr307 = getelementptr inbounds i8, ptr addrspace(11) %136, i32 16, !dbg !412 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 !412, !tbaa !38, !alias.scope !59, !noalias !60 %.Tnext.size308.unbox = load i64, ptr %.Tnext.size308, align 8, !dbg !415, !tbaa !61, !alias.scope !63, !noalias !64 %memorynew_empty = icmp eq i64 %.Tnext.size308.unbox, 0, !dbg !415 br i1 %memorynew_empty, label %emptymem, label %nonemptymem, !dbg !415 L182: ; preds = %retval %"-Core.throw_inexacterror#35037317" = load ptr, ptr @_Core_throw_inexacterror_35037, align 8, !dbg !417, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %137 = addrspacecast ptr %"-Core.throw_inexacterror#35037317" to ptr addrspace(10), !dbg !417 %"jl_global#35038318" = load ptr, ptr @jl_global_35038, align 8, !dbg !417, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %138 = addrspacecast ptr %"jl_global#35038318" to ptr addrspace(10), !dbg !417 %"jl_sym#convert#35039319" = load ptr, ptr @jl_sym_convert_35039, align 8, !dbg !417, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %139 = addrspacecast ptr %"jl_sym#convert#35039319" to ptr addrspace(10), !dbg !417 %140 = load ptr, ptr getelementptr inbounds (i8, ptr @jl_small_typeof, i32 336), align 8, !dbg !417, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %141 = addrspacecast ptr %140 to ptr addrspace(10), !dbg !417 %box_Int64320 = call nonnull align 8 dereferenceable(8) ptr addrspace(10) @ijl_box_int64(i64 signext %488) #27, !dbg !417 %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 !417 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !417 unreachable, !dbg !417 L184: ; preds = %retval br label %L185, !dbg !417 L185: ; preds = %L184 br label %L187, !dbg !418 L187: ; preds = %L185 br label %L188, !dbg !418 L188: ; preds = %L187 br label %L189, !dbg !418 L189: ; preds = %L188 br label %L190, !dbg !418 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 !422 br label %L192, !dbg !422 L192: ; preds = %L190 call void @llvm.julia.gc_preserve_end(token %487), !dbg !425 call void @llvm.julia.gc_preserve_end(token %486), !dbg !426 br label %L195, !dbg !427 L195: ; preds = %L192 %143 = addrspacecast ptr addrspace(10) %482 to ptr addrspace(11), !dbg !428 %memory_data_ptr323 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %143, i32 0, i32 1, !dbg !428 %memory_data324 = load ptr, ptr addrspace(11) %memory_data_ptr323, align 8, !dbg !428, !tbaa !74, !alias.scope !69, !noalias !70, !nonnull !0 %144 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memory_data324, 0, !dbg !428 %memory_ref325 = insertvalue { ptr, ptr addrspace(10) } %144, ptr addrspace(10) %482, 1, !dbg !428 %145 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !430 %.Tnext.size_ptr326 = getelementptr inbounds i8, ptr addrspace(11) %145, i32 16, !dbg !430 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 !430, !tbaa !38, !alias.scope !59, !noalias !60 %"+Core.Array#35047" = load ptr, ptr @_Core_Array_35047, align 8, !dbg !429, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Array = ptrtoint ptr %"+Core.Array#35047" to i64, !dbg !429 %146 = inttoptr i64 %Array to ptr, !dbg !429 %current_task328 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !429 %147 = addrspacecast ptr %146 to ptr addrspace(10), !dbg !429 %"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 !429 %148 = addrspacecast ptr addrspace(10) %"new::Array" to ptr addrspace(11), !dbg !429 %149 = getelementptr inbounds i8, ptr addrspace(11) %148, i32 8, !dbg !429 store ptr addrspace(10) null, ptr addrspace(11) %149, align 8, !dbg !429, !tbaa !431, !alias.scope !69, !noalias !70 %150 = addrspacecast ptr addrspace(10) %"new::Array" to ptr addrspace(11), !dbg !429 store { ptr, ptr addrspace(10) } %memory_ref325, ptr addrspace(11) %150, align 8, !dbg !429, !tbaa !66, !alias.scope !69, !noalias !70 %151 = addrspacecast ptr addrspace(10) %"new::Array" to ptr addrspace(11), !dbg !429 %"new::Array.size_ptr" = getelementptr inbounds i8, ptr addrspace(11) %151, i32 16, !dbg !429 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 !429, !tbaa !38, !alias.scope !432, !noalias !60 br label %L199, !dbg !429 L199: ; preds = %L195 br label %L200, !dbg !429 L200: ; preds = %L199 br label %L202, !dbg !295 L201: ; preds = %L164 br label %L202, !dbg !295 L202: ; preds = %L201, %L200 %value_phi329 = phi ptr addrspace(10) [ %"new::Array", %L200 ], [ %.Tnext, %L201 ] br label %L204, !dbg !295 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 !433 %value_phi219.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %152, i32 16, !dbg !433 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 !433, !tbaa !38, !alias.scope !59, !noalias !60 %value_phi219.size.unbox = load i64, ptr %value_phi219.size, align 8, !dbg !439, !tbaa !61, !alias.scope !63, !noalias !64 %153 = icmp eq i64 %value_phi219.size.unbox, 1, !dbg !439 %154 = xor i1 %153, true, !dbg !445 %155 = getelementptr inbounds i8, ptr %"new::Tuple220", i32 0, !dbg !441 %156 = zext i1 %154 to i8, !dbg !441 store i8 %156, ptr %155, align 1, !dbg !441, !tbaa !61, !alias.scope !63, !noalias !64 %157 = getelementptr inbounds i8, ptr %"new::Extruded", i32 8, !dbg !446 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %157, ptr align 1 %"new::Tuple220", i64 1, i1 false), !dbg !446, !tbaa !61, !alias.scope !63, !noalias !64 %158 = getelementptr inbounds i8, ptr %"new::Extruded", i32 16, !dbg !446 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %158, ptr align 8 @_j_const_4, i64 8, i1 false), !dbg !446, !tbaa !38, !alias.scope !300, !noalias !301 br label %L213, !dbg !446 L213: ; preds = %L204 %159 = getelementptr inbounds i8, ptr %"new::Tuple221", i32 0, !dbg !380 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %159, ptr align 8 %"new::Extruded", i64 24, i1 false), !dbg !380, !tbaa !61, !alias.scope !63, !noalias !64 br label %L215, !dbg !380 L215: ; preds = %L213 %160 = getelementptr inbounds i8, ptr %"new::Broadcasted", i32 0, !dbg !448 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %160, ptr align 8 %"new::Tuple221", i64 24, i1 false), !dbg !448, !tbaa !61, !alias.scope !63, !noalias !64 %161 = getelementptr inbounds i8, ptr %"new::Broadcasted", i32 24, !dbg !448 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %161, ptr align 8 %"new::Tuple", i64 8, i1 false), !dbg !448, !tbaa !61, !alias.scope !63, !noalias !64 br label %L217, !dbg !448 L217: ; preds = %L215 %.Tlast.size.unbox222 = load i64, ptr %.Tlast.size, align 8, !dbg !450, !tbaa !61, !alias.scope !63, !noalias !64 %162 = icmp slt i64 0, %.Tlast.size.unbox222, !dbg !450 %163 = xor i1 %162, true, !dbg !451 br i1 %163, label %L282, label %L219, !dbg !451 L219: ; preds = %L217 br label %L220, !dbg !295 L220: ; preds = %load283, %L219 %value_phi223 = phi i64 [ 0, %L219 ], [ %470, %load283 ] %.Tlast.size.unbox224 = load i64, ptr %.Tlast.size, align 8, !dbg !458, !tbaa !61, !alias.scope !63, !noalias !64 %164 = icmp slt i64 %value_phi223, %.Tlast.size.unbox224, !dbg !458 %165 = xor i1 %164, true, !dbg !459 br i1 %165, label %L282, label %L223, !dbg !459 L223: ; preds = %L220 %166 = add i64 %value_phi223, 1, !dbg !460 br i1 false, label %L233, label %L226, !dbg !464 L226: ; preds = %L223 %167 = getelementptr inbounds i8, ptr %"new::Tuple225", i32 0, !dbg !464 store i64 %166, ptr %167, align 8, !dbg !464, !tbaa !61, !alias.scope !63, !noalias !64 %168 = sub i64 %166, 1, !dbg !468 %bitcast226 = load i64, ptr %.Tlast.size, align 8, !dbg !472, !tbaa !61, !alias.scope !63, !noalias !64 %169 = icmp ult i64 %168, %bitcast226, !dbg !474 %170 = xor i1 %169, true, !dbg !471 br i1 %170, label %L265, label %L232, !dbg !471 L232: ; preds = %L226 br label %L233, !dbg !471 L233: ; preds = %L232, %L223 br i1 false, label %L241, label %L235, !dbg !475 L235: ; preds = %L233 %171 = sub i64 %166, 1, !dbg !481 %bitcast227 = load i64, ptr %.Tlast.size, align 8, !dbg !485, !tbaa !61, !alias.scope !63, !noalias !64 %172 = icmp ult i64 %171, %bitcast227, !dbg !487 %173 = xor i1 %172, true, !dbg !483 br i1 %173, label %L267, label %L240, !dbg !483 L240: ; preds = %L235 br label %L241, !dbg !483 L241: ; preds = %L240, %L233 %ifelse_cond = xor i1 %154, true, !dbg !488 %174 = select i1 %ifelse_cond, i64 1, i64 %166, !dbg !488 br i1 false, label %L252, label %L244, !dbg !497 L244: ; preds = %L241 %175 = sub i64 %174, 1, !dbg !499 %176 = addrspacecast ptr addrspace(10) %value_phi219 to ptr addrspace(11), !dbg !502 %value_phi219.size_ptr228 = getelementptr inbounds i8, ptr addrspace(11) %176, i32 16, !dbg !502 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 !502, !tbaa !38, !alias.scope !59, !noalias !60 %bitcast230 = load i64, ptr %value_phi219.size229, align 8, !dbg !499, !tbaa !61, !alias.scope !63, !noalias !64 %177 = icmp ult i64 %175, %bitcast230, !dbg !499 %178 = xor i1 %177, true, !dbg !501 br i1 %178, label %L270, label %L251, !dbg !501 L251: ; preds = %L244 br label %L252, !dbg !501 L252: ; preds = %L251, %L241 %179 = addrspacecast ptr addrspace(10) %value_phi219 to ptr addrspace(11), !dbg !504 %180 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %179, i32 0, i32 0, !dbg !504 %memoryref_data231 = load ptr, ptr addrspace(11) %180, align 8, !dbg !504, !tbaa !66, !alias.scope !69, !noalias !70 %181 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %179, i32 0, i32 1, !dbg !504 %memoryref_mem251 = load ptr addrspace(10), ptr addrspace(11) %181, align 8, !dbg !504, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %182 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data231, 0, !dbg !504 %value_phi219.ref = insertvalue { ptr, ptr addrspace(10) } %182, ptr addrspace(10) %memoryref_mem251, 1, !dbg !504 %memoryref_offset233 = sub i64 %174, 1, !dbg !504 %183 = addrspacecast ptr addrspace(10) %memoryref_mem251 to ptr addrspace(11), !dbg !504 %184 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %183, i32 0, i32 0, !dbg !504 %memory_len234 = load i64, ptr addrspace(11) %184, align 8, !dbg !504, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %185 = add nuw i64 %memory_len234, %memory_len234, !dbg !504 %186 = add i64 %memoryref_offset233, %memory_len234, !dbg !504 %memoryref_ovflw235 = icmp uge i64 %186, %185, !dbg !504 %memoryref_byteoffset236 = mul i64 %memoryref_offset233, 8, !dbg !504 %memoryref_data_byteoffset237 = getelementptr i8, ptr %memoryref_data231, i64 %memoryref_byteoffset236, !dbg !504 %187 = addrspacecast ptr addrspace(10) %memoryref_mem251 to ptr addrspace(11), !dbg !504 %188 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %187, i32 0, i32 0, !dbg !504 %memory_len238 = load i64, ptr addrspace(11) %188, align 8, !dbg !504, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %189 = addrspacecast ptr addrspace(10) %memoryref_mem251 to ptr addrspace(11), !dbg !504 %memory_data_ptr239 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %189, i32 0, i32 1, !dbg !504 %memory_data240 = load ptr, ptr addrspace(11) %memory_data_ptr239, align 8, !dbg !504, !tbaa !74, !alias.scope !69, !noalias !70, !nonnull !0 %190 = ptrtoint ptr %memory_data240 to i64, !dbg !504 %191 = ptrtoint ptr %memoryref_data_byteoffset237 to i64, !dbg !504 %192 = sub i64 %191, %190, !dbg !504 %memoryref_bytelen241 = mul nuw nsw i64 %memory_len238, 8, !dbg !504 %memoryref_isinbounds242 = icmp ult i64 %192, %memoryref_bytelen241, !dbg !504 %193 = xor i1 %memoryref_ovflw235, true, !dbg !504 %"memoryref_isinbounds¬ovflw243" = and i1 %193, %memoryref_isinbounds242, !dbg !504 br i1 %"memoryref_isinbounds¬ovflw243", label %idxend249, label %oob244, !dbg !504 L257: ; preds = %load254 %194 = sub i64 %166, 1, !dbg !505 %195 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !510 %.Tlast.size_ptr256 = getelementptr inbounds i8, ptr addrspace(11) %195, i32 16, !dbg !510 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 !510, !tbaa !38, !alias.scope !59, !noalias !60 %bitcast258 = load i64, ptr %.Tlast.size257, align 8, !dbg !505, !tbaa !61, !alias.scope !63, !noalias !64 %196 = icmp ult i64 %194, %bitcast258, !dbg !505 %197 = xor i1 %196, true, !dbg !506 br i1 %197, label %L273, label %L264, !dbg !506 L264: ; preds = %L257 br label %L276, !dbg !506 L265: ; preds = %L226 %198 = addrspacecast ptr %"new::OneTo" to ptr addrspace(11), !dbg !471 %199 = addrspacecast ptr %"new::Tuple225" to ptr addrspace(11), !dbg !471 call void @julia_throw_boundserror_35061(ptr addrspace(11) nocapture readonly %198, ptr addrspace(11) nocapture readonly %199) #26, !dbg !471 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !471 unreachable, !dbg !471 L267: ; preds = %L235 %200 = getelementptr inbounds i8, ptr %"new::Tuple291", i32 0, !dbg !483 store i64 %166, ptr %200, align 8, !dbg !483, !tbaa !61, !alias.scope !63, !noalias !64 %201 = getelementptr inbounds i8, ptr %0, i32 0, !dbg !483 store ptr addrspace(10) %value_phi219, ptr %201, align 8, !dbg !483 %202 = addrspacecast ptr %"new::Broadcasted" to ptr addrspace(11), !dbg !483 %203 = addrspacecast ptr %"new::Tuple291" to ptr addrspace(11), !dbg !483 call void @julia_throw_boundserror_35058(ptr addrspace(11) nocapture readonly %202, ptr nocapture readonly %0, ptr addrspace(11) nocapture readonly %203) #26, !dbg !483 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !483 unreachable, !dbg !483 L270: ; preds = %L244 %204 = getelementptr inbounds i8, ptr %"new::Tuple288", i32 0, !dbg !501 store i64 %174, ptr %204, align 8, !dbg !501, !tbaa !61, !alias.scope !63, !noalias !64 %205 = addrspacecast ptr %"new::Tuple288" to ptr addrspace(11), !dbg !501 call void @julia_throw_boundserror_35022(ptr addrspace(10) %value_phi219, ptr addrspace(11) nocapture readonly %205) #26, !dbg !501 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !501 unreachable, !dbg !501 L273: ; preds = %L257 %206 = getelementptr inbounds i8, ptr %"new::Tuple285", i32 0, !dbg !506 store i64 %166, ptr %206, align 8, !dbg !506, !tbaa !61, !alias.scope !63, !noalias !64 %207 = addrspacecast ptr %"new::Tuple285" to ptr addrspace(11), !dbg !506 call void @julia_throw_boundserror_35022(ptr addrspace(10) %.Tlast, ptr addrspace(11) nocapture readonly %207) #26, !dbg !506 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !506 unreachable, !dbg !506 L276: ; preds = %L264, %load254 %208 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !512 %209 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %208, i32 0, i32 0, !dbg !512 %memoryref_data260 = load ptr, ptr addrspace(11) %209, align 8, !dbg !512, !tbaa !66, !alias.scope !69, !noalias !70 %210 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %208, i32 0, i32 1, !dbg !512 %memoryref_mem280 = load ptr addrspace(10), ptr addrspace(11) %210, align 8, !dbg !512, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %211 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data260, 0, !dbg !512 %.Tlast.ref259 = insertvalue { ptr, ptr addrspace(10) } %211, ptr addrspace(10) %memoryref_mem280, 1, !dbg !512 %memoryref_offset262 = sub i64 %166, 1, !dbg !513 %212 = addrspacecast ptr addrspace(10) %memoryref_mem280 to ptr addrspace(11), !dbg !513 %213 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %212, i32 0, i32 0, !dbg !513 %memory_len263 = load i64, ptr addrspace(11) %213, align 8, !dbg !513, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %214 = add nuw i64 %memory_len263, %memory_len263, !dbg !513 %215 = add i64 %memoryref_offset262, %memory_len263, !dbg !513 %memoryref_ovflw264 = icmp uge i64 %215, %214, !dbg !513 %memoryref_byteoffset265 = mul i64 %memoryref_offset262, 8, !dbg !513 %memoryref_data_byteoffset266 = getelementptr i8, ptr %memoryref_data260, i64 %memoryref_byteoffset265, !dbg !513 %216 = addrspacecast ptr addrspace(10) %memoryref_mem280 to ptr addrspace(11), !dbg !513 %217 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %216, i32 0, i32 0, !dbg !513 %memory_len267 = load i64, ptr addrspace(11) %217, align 8, !dbg !513, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %218 = addrspacecast ptr addrspace(10) %memoryref_mem280 to ptr addrspace(11), !dbg !513 %memory_data_ptr268 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %218, i32 0, i32 1, !dbg !513 %memory_data269 = load ptr, ptr addrspace(11) %memory_data_ptr268, align 8, !dbg !513, !tbaa !74, !alias.scope !69, !noalias !70, !nonnull !0 %219 = ptrtoint ptr %memory_data269 to i64, !dbg !513 %220 = ptrtoint ptr %memoryref_data_byteoffset266 to i64, !dbg !513 %221 = sub i64 %220, %219, !dbg !513 %memoryref_bytelen270 = mul nuw nsw i64 %memory_len267, 8, !dbg !513 %memoryref_isinbounds271 = icmp ult i64 %221, %memoryref_bytelen270, !dbg !513 %222 = xor i1 %memoryref_ovflw264, true, !dbg !513 %"memoryref_isinbounds¬ovflw272" = and i1 %222, %memoryref_isinbounds271, !dbg !513 br i1 %"memoryref_isinbounds¬ovflw272", label %idxend278, label %oob273, !dbg !513 L282: ; preds = %L220, %L217 br label %L283, !dbg !453 L283: ; preds = %L282 br label %L286, !dbg !514 L284: ; preds = %L38 %223 = addrspacecast ptr %"new::Tuple4" to ptr addrspace(11), !dbg !249 %224 = addrspacecast ptr %"new::Tuple" to ptr addrspace(11), !dbg !249 call void @julia_throwdm_35052(ptr addrspace(11) nocapture readonly %223, ptr addrspace(11) nocapture readonly %224) #26, !dbg !249 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !249 unreachable, !dbg !249 L286: ; preds = %L283, %L136 br label %L287, !dbg !375 L287: ; preds = %L286 br label %L288, !dbg !209 L288: ; preds = %L287 br label %L289, !dbg !212 L289: ; preds = %L288 %225 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !515 %.Tnext13 = load atomic ptr addrspace(10), ptr addrspace(11) %225 unordered, align 8, !dbg !515, !tbaa !200, !alias.scope !183, !noalias !184, !nonnull !0, !dereferenceable !202, !align !35 %226 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !517 %.Tlast_ptr14 = getelementptr inbounds i8, ptr addrspace(11) %226, i32 8, !dbg !517 %.Tlast15 = load atomic ptr addrspace(10), ptr addrspace(11) %.Tlast_ptr14 unordered, align 8, !dbg !517, !tbaa !200, !alias.scope !183, !noalias !184, !nonnull !0, !dereferenceable !202, !align !35 %227 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !519 %".\CE\BB_ptr" = getelementptr inbounds i8, ptr addrspace(11) %227, i32 24, !dbg !519 %".\CE\BB" = load double, ptr addrspace(11) %".\CE\BB_ptr", align 8, !dbg !519, !tbaa !200, !alias.scope !183, !noalias !184 %228 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !521 %.n_ptr = getelementptr inbounds i8, ptr addrspace(11) %228, i32 16, !dbg !521 %.n = load i64, ptr addrspace(11) %.n_ptr, align 8, !dbg !521, !tbaa !200, !alias.scope !183, !noalias !184 %229 = sub i64 %.n, 1, !dbg !523 %230 = icmp sle i64 2, %229, !dbg !525 %231 = xor i1 %230, true, !dbg !527 br i1 %231, label %L298, label %L297, !dbg !527 L297: ; preds = %L289 br label %L299, !dbg !527 L298: ; preds = %L289 br label %L299, !dbg !530 L299: ; preds = %L298, %L297 %value_phi16 = phi i64 [ %229, %L297 ], [ 1, %L298 ] br label %L301, !dbg !528 L301: ; preds = %L299 br label %L302, !dbg !528 L302: ; preds = %L301 %232 = icmp slt i64 %value_phi16, 2, !dbg !533 %233 = xor i1 %232, true, !dbg !536 br i1 %233, label %L305, label %L304, !dbg !536 L304: ; preds = %L302 br label %L306, !dbg !536 L305: ; preds = %L302 br label %L306, !dbg !536 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 !524 %235 = xor i1 %234, true, !dbg !524 %236 = xor i1 %235, true, !dbg !524 br i1 %236, label %L421, label %L306.L311_crit_edge, !dbg !524 L306.L311_crit_edge: ; preds = %L306 br label %L311, !dbg !536 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 !531 L315: ; preds = %L311 %237 = sub i64 %value_phi20, 1, !dbg !537 %238 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !538 %.Tlast15.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %238, i32 16, !dbg !538 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 !538, !tbaa !38, !alias.scope !59, !noalias !60 %bitcast = load i64, ptr %.Tlast15.size, align 8, !dbg !537, !tbaa !61, !alias.scope !63, !noalias !64 %239 = icmp ult i64 %237, %bitcast, !dbg !537 %240 = xor i1 %239, true, !dbg !530 br i1 %240, label %L323, label %L322, !dbg !530 L322: ; preds = %L315 br label %L326, !dbg !530 L323: ; preds = %L315 %241 = getelementptr inbounds i8, ptr %"new::Tuple156", i32 0, !dbg !530 store i64 %value_phi20, ptr %241, align 8, !dbg !530, !tbaa !61, !alias.scope !63, !noalias !64 %242 = addrspacecast ptr %"new::Tuple156" to ptr addrspace(11), !dbg !530 call void @julia_throw_boundserror_35022(ptr addrspace(10) %.Tlast15, ptr addrspace(11) nocapture readonly %242) #26, !dbg !530 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !530 unreachable, !dbg !530 L326: ; preds = %L322 br label %L327, !dbg !530 L327: ; preds = %L326, %L311 %243 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !540 %244 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %243, i32 0, i32 0, !dbg !540 %memoryref_data = load ptr, ptr addrspace(11) %244, align 8, !dbg !540, !tbaa !66, !alias.scope !69, !noalias !70 %245 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %243, i32 0, i32 1, !dbg !540 %memoryref_mem = load ptr addrspace(10), ptr addrspace(11) %245, align 8, !dbg !540, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %246 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data, 0, !dbg !540 %.Tlast15.ref = insertvalue { ptr, ptr addrspace(10) } %246, ptr addrspace(10) %memoryref_mem, 1, !dbg !540 %memoryref_offset = sub i64 %value_phi20, 1, !dbg !540 %247 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !540 %248 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %247, i32 0, i32 0, !dbg !540 %memory_len = load i64, ptr addrspace(11) %248, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %249 = add nuw i64 %memory_len, %memory_len, !dbg !540 %250 = add i64 %memoryref_offset, %memory_len, !dbg !540 %memoryref_ovflw = icmp uge i64 %250, %249, !dbg !540 %memoryref_byteoffset = mul i64 %memoryref_offset, 8, !dbg !540 %memoryref_data_byteoffset = getelementptr i8, ptr %memoryref_data, i64 %memoryref_byteoffset, !dbg !540 %251 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !540 %252 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %251, i32 0, i32 0, !dbg !540 %memory_len22 = load i64, ptr addrspace(11) %252, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %253 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !540 %memory_data_ptr = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %253, i32 0, i32 1, !dbg !540 %memory_data = load ptr, ptr addrspace(11) %memory_data_ptr, align 8, !dbg !540, !tbaa !74, !alias.scope !69, !noalias !70, !nonnull !0 %254 = ptrtoint ptr %memory_data to i64, !dbg !540 %255 = ptrtoint ptr %memoryref_data_byteoffset to i64, !dbg !540 %256 = sub i64 %255, %254, !dbg !540 %memoryref_bytelen = mul nuw nsw i64 %memory_len22, 8, !dbg !540 %memoryref_isinbounds = icmp ult i64 %256, %memoryref_bytelen, !dbg !540 %257 = xor i1 %memoryref_ovflw, true, !dbg !540 %"memoryref_isinbounds¬ovflw" = and i1 %257, %memoryref_isinbounds, !dbg !540 br i1 %"memoryref_isinbounds¬ovflw", label %idxend, label %oob, !dbg !540 L331: ; preds = %load %258 = sub i64 %value_phi20, 1, !dbg !541 br i1 false, label %L346, label %L334, !dbg !531 L334: ; preds = %L331 %259 = sub i64 %258, 1, !dbg !537 %260 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !538 %.Tlast15.size_ptr27 = getelementptr inbounds i8, ptr addrspace(11) %260, i32 16, !dbg !538 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 !538, !tbaa !38, !alias.scope !59, !noalias !60 %bitcast29 = load i64, ptr %.Tlast15.size28, align 8, !dbg !537, !tbaa !61, !alias.scope !63, !noalias !64 %261 = icmp ult i64 %259, %bitcast29, !dbg !537 %262 = xor i1 %261, true, !dbg !530 br i1 %262, label %L342, label %L341, !dbg !530 L341: ; preds = %L334 br label %L345, !dbg !530 L342: ; preds = %L334 %263 = getelementptr inbounds i8, ptr %"new::Tuple153", i32 0, !dbg !530 store i64 %258, ptr %263, align 8, !dbg !530, !tbaa !61, !alias.scope !63, !noalias !64 %264 = addrspacecast ptr %"new::Tuple153" to ptr addrspace(11), !dbg !530 call void @julia_throw_boundserror_35022(ptr addrspace(10) %.Tlast15, ptr addrspace(11) nocapture readonly %264) #26, !dbg !530 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !530 unreachable, !dbg !530 L345: ; preds = %L341 br label %L346, !dbg !530 L346: ; preds = %L345, %L331 %265 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !540 %266 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %265, i32 0, i32 0, !dbg !540 %memoryref_data31 = load ptr, ptr addrspace(11) %266, align 8, !dbg !540, !tbaa !66, !alias.scope !69, !noalias !70 %267 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %265, i32 0, i32 1, !dbg !540 %memoryref_mem51 = load ptr addrspace(10), ptr addrspace(11) %267, align 8, !dbg !540, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %268 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data31, 0, !dbg !540 %.Tlast15.ref30 = insertvalue { ptr, ptr addrspace(10) } %268, ptr addrspace(10) %memoryref_mem51, 1, !dbg !540 %memoryref_offset33 = sub i64 %258, 1, !dbg !540 %269 = addrspacecast ptr addrspace(10) %memoryref_mem51 to ptr addrspace(11), !dbg !540 %270 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %269, i32 0, i32 0, !dbg !540 %memory_len34 = load i64, ptr addrspace(11) %270, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %271 = add nuw i64 %memory_len34, %memory_len34, !dbg !540 %272 = add i64 %memoryref_offset33, %memory_len34, !dbg !540 %memoryref_ovflw35 = icmp uge i64 %272, %271, !dbg !540 %memoryref_byteoffset36 = mul i64 %memoryref_offset33, 8, !dbg !540 %memoryref_data_byteoffset37 = getelementptr i8, ptr %memoryref_data31, i64 %memoryref_byteoffset36, !dbg !540 %273 = addrspacecast ptr addrspace(10) %memoryref_mem51 to ptr addrspace(11), !dbg !540 %274 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %273, i32 0, i32 0, !dbg !540 %memory_len38 = load i64, ptr addrspace(11) %274, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %275 = addrspacecast ptr addrspace(10) %memoryref_mem51 to ptr addrspace(11), !dbg !540 %memory_data_ptr39 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %275, i32 0, i32 1, !dbg !540 %memory_data40 = load ptr, ptr addrspace(11) %memory_data_ptr39, align 8, !dbg !540, !tbaa !74, !alias.scope !69, !noalias !70, !nonnull !0 %276 = ptrtoint ptr %memory_data40 to i64, !dbg !540 %277 = ptrtoint ptr %memoryref_data_byteoffset37 to i64, !dbg !540 %278 = sub i64 %277, %276, !dbg !540 %memoryref_bytelen41 = mul nuw nsw i64 %memory_len38, 8, !dbg !540 %memoryref_isinbounds42 = icmp ult i64 %278, %memoryref_bytelen41, !dbg !540 %279 = xor i1 %memoryref_ovflw35, true, !dbg !540 %"memoryref_isinbounds¬ovflw43" = and i1 %279, %memoryref_isinbounds42, !dbg !540 br i1 %"memoryref_isinbounds¬ovflw43", label %idxend49, label %oob44, !dbg !540 L350: ; preds = %load54 br i1 false, label %L364, label %L352, !dbg !531 L352: ; preds = %L350 %280 = sub i64 %value_phi20, 1, !dbg !537 %281 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !538 %.Tlast15.size_ptr56 = getelementptr inbounds i8, ptr addrspace(11) %281, i32 16, !dbg !538 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 !538, !tbaa !38, !alias.scope !59, !noalias !60 %bitcast58 = load i64, ptr %.Tlast15.size57, align 8, !dbg !537, !tbaa !61, !alias.scope !63, !noalias !64 %282 = icmp ult i64 %280, %bitcast58, !dbg !537 %283 = xor i1 %282, true, !dbg !530 br i1 %283, label %L360, label %L359, !dbg !530 L359: ; preds = %L352 br label %L363, !dbg !530 L360: ; preds = %L352 %284 = getelementptr inbounds i8, ptr %"new::Tuple150", i32 0, !dbg !530 store i64 %value_phi20, ptr %284, align 8, !dbg !530, !tbaa !61, !alias.scope !63, !noalias !64 %285 = addrspacecast ptr %"new::Tuple150" to ptr addrspace(11), !dbg !530 call void @julia_throw_boundserror_35022(ptr addrspace(10) %.Tlast15, ptr addrspace(11) nocapture readonly %285) #26, !dbg !530 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !530 unreachable, !dbg !530 L363: ; preds = %L359 br label %L364, !dbg !530 L364: ; preds = %L363, %L350 %286 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !540 %287 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %286, i32 0, i32 0, !dbg !540 %memoryref_data60 = load ptr, ptr addrspace(11) %287, align 8, !dbg !540, !tbaa !66, !alias.scope !69, !noalias !70 %288 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %286, i32 0, i32 1, !dbg !540 %memoryref_mem80 = load ptr addrspace(10), ptr addrspace(11) %288, align 8, !dbg !540, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %289 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data60, 0, !dbg !540 %.Tlast15.ref59 = insertvalue { ptr, ptr addrspace(10) } %289, ptr addrspace(10) %memoryref_mem80, 1, !dbg !540 %memoryref_offset62 = sub i64 %value_phi20, 1, !dbg !540 %290 = addrspacecast ptr addrspace(10) %memoryref_mem80 to ptr addrspace(11), !dbg !540 %291 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %290, i32 0, i32 0, !dbg !540 %memory_len63 = load i64, ptr addrspace(11) %291, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %292 = add nuw i64 %memory_len63, %memory_len63, !dbg !540 %293 = add i64 %memoryref_offset62, %memory_len63, !dbg !540 %memoryref_ovflw64 = icmp uge i64 %293, %292, !dbg !540 %memoryref_byteoffset65 = mul i64 %memoryref_offset62, 8, !dbg !540 %memoryref_data_byteoffset66 = getelementptr i8, ptr %memoryref_data60, i64 %memoryref_byteoffset65, !dbg !540 %294 = addrspacecast ptr addrspace(10) %memoryref_mem80 to ptr addrspace(11), !dbg !540 %295 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %294, i32 0, i32 0, !dbg !540 %memory_len67 = load i64, ptr addrspace(11) %295, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %296 = addrspacecast ptr addrspace(10) %memoryref_mem80 to ptr addrspace(11), !dbg !540 %memory_data_ptr68 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %296, i32 0, i32 1, !dbg !540 %memory_data69 = load ptr, ptr addrspace(11) %memory_data_ptr68, align 8, !dbg !540, !tbaa !74, !alias.scope !69, !noalias !70, !nonnull !0 %297 = ptrtoint ptr %memory_data69 to i64, !dbg !540 %298 = ptrtoint ptr %memoryref_data_byteoffset66 to i64, !dbg !540 %299 = sub i64 %298, %297, !dbg !540 %memoryref_bytelen70 = mul nuw nsw i64 %memory_len67, 8, !dbg !540 %memoryref_isinbounds71 = icmp ult i64 %299, %memoryref_bytelen70, !dbg !540 %300 = xor i1 %memoryref_ovflw64, true, !dbg !540 %"memoryref_isinbounds¬ovflw72" = and i1 %300, %memoryref_isinbounds71, !dbg !540 br i1 %"memoryref_isinbounds¬ovflw72", label %idxend78, label %oob73, !dbg !540 L368: ; preds = %load83 %301 = fmul double 2.000000e+00, %394, !dbg !542 %302 = fsub double %383, %301, !dbg !546 %303 = add i64 %value_phi20, 1, !dbg !548 br i1 false, label %L385, label %L373, !dbg !531 L373: ; preds = %L368 %304 = sub i64 %303, 1, !dbg !537 %305 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !538 %.Tlast15.size_ptr85 = getelementptr inbounds i8, ptr addrspace(11) %305, i32 16, !dbg !538 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 !538, !tbaa !38, !alias.scope !59, !noalias !60 %bitcast87 = load i64, ptr %.Tlast15.size86, align 8, !dbg !537, !tbaa !61, !alias.scope !63, !noalias !64 %306 = icmp ult i64 %304, %bitcast87, !dbg !537 %307 = xor i1 %306, true, !dbg !530 br i1 %307, label %L381, label %L380, !dbg !530 L380: ; preds = %L373 br label %L384, !dbg !530 L381: ; preds = %L373 %308 = getelementptr inbounds i8, ptr %"new::Tuple147", i32 0, !dbg !530 store i64 %303, ptr %308, align 8, !dbg !530, !tbaa !61, !alias.scope !63, !noalias !64 %309 = addrspacecast ptr %"new::Tuple147" to ptr addrspace(11), !dbg !530 call void @julia_throw_boundserror_35022(ptr addrspace(10) %.Tlast15, ptr addrspace(11) nocapture readonly %309) #26, !dbg !530 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !530 unreachable, !dbg !530 L384: ; preds = %L380 br label %L385, !dbg !530 L385: ; preds = %L384, %L368 %310 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !540 %311 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %310, i32 0, i32 0, !dbg !540 %memoryref_data89 = load ptr, ptr addrspace(11) %311, align 8, !dbg !540, !tbaa !66, !alias.scope !69, !noalias !70 %312 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %310, i32 0, i32 1, !dbg !540 %memoryref_mem109 = load ptr addrspace(10), ptr addrspace(11) %312, align 8, !dbg !540, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %313 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data89, 0, !dbg !540 %.Tlast15.ref88 = insertvalue { ptr, ptr addrspace(10) } %313, ptr addrspace(10) %memoryref_mem109, 1, !dbg !540 %memoryref_offset91 = sub i64 %303, 1, !dbg !540 %314 = addrspacecast ptr addrspace(10) %memoryref_mem109 to ptr addrspace(11), !dbg !540 %315 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %314, i32 0, i32 0, !dbg !540 %memory_len92 = load i64, ptr addrspace(11) %315, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %316 = add nuw i64 %memory_len92, %memory_len92, !dbg !540 %317 = add i64 %memoryref_offset91, %memory_len92, !dbg !540 %memoryref_ovflw93 = icmp uge i64 %317, %316, !dbg !540 %memoryref_byteoffset94 = mul i64 %memoryref_offset91, 8, !dbg !540 %memoryref_data_byteoffset95 = getelementptr i8, ptr %memoryref_data89, i64 %memoryref_byteoffset94, !dbg !540 %318 = addrspacecast ptr addrspace(10) %memoryref_mem109 to ptr addrspace(11), !dbg !540 %319 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %318, i32 0, i32 0, !dbg !540 %memory_len96 = load i64, ptr addrspace(11) %319, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %320 = addrspacecast ptr addrspace(10) %memoryref_mem109 to ptr addrspace(11), !dbg !540 %memory_data_ptr97 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %320, i32 0, i32 1, !dbg !540 %memory_data98 = load ptr, ptr addrspace(11) %memory_data_ptr97, align 8, !dbg !540, !tbaa !74, !alias.scope !69, !noalias !70, !nonnull !0 %321 = ptrtoint ptr %memory_data98 to i64, !dbg !540 %322 = ptrtoint ptr %memoryref_data_byteoffset95 to i64, !dbg !540 %323 = sub i64 %322, %321, !dbg !540 %memoryref_bytelen99 = mul nuw nsw i64 %memory_len96, 8, !dbg !540 %memoryref_isinbounds100 = icmp ult i64 %323, %memoryref_bytelen99, !dbg !540 %324 = xor i1 %memoryref_ovflw93, true, !dbg !540 %"memoryref_isinbounds¬ovflw101" = and i1 %324, %memoryref_isinbounds100, !dbg !540 br i1 %"memoryref_isinbounds¬ovflw101", label %idxend107, label %oob102, !dbg !540 L389: ; preds = %load112 %325 = fadd double %302, %405, !dbg !549 %326 = fmul double %".\CE\BB", %325, !dbg !551 %327 = fadd double %372, %326, !dbg !549 br i1 false, label %L405, label %L394, !dbg !552 L394: ; preds = %L389 %328 = sub i64 %value_phi20, 1, !dbg !554 %329 = addrspacecast ptr addrspace(10) %.Tnext13 to ptr addrspace(11), !dbg !555 %.Tnext13.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %329, i32 16, !dbg !555 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 !555, !tbaa !38, !alias.scope !59, !noalias !60 %bitcast114 = load i64, ptr %.Tnext13.size, align 8, !dbg !554, !tbaa !61, !alias.scope !63, !noalias !64 %330 = icmp ult i64 %328, %bitcast114, !dbg !554 %331 = xor i1 %330, true, !dbg !552 br i1 %331, label %L402, label %L401, !dbg !552 L401: ; preds = %L394 br label %L405, !dbg !552 L402: ; preds = %L394 %332 = getelementptr inbounds i8, ptr %"new::Tuple146", i32 0, !dbg !552 store i64 %value_phi20, ptr %332, align 8, !dbg !552, !tbaa !61, !alias.scope !63, !noalias !64 %333 = addrspacecast ptr %"new::Tuple146" to ptr addrspace(11), !dbg !552 call void @julia_throw_boundserror_35022(ptr addrspace(10) %.Tnext13, ptr addrspace(11) nocapture readonly %333) #26, !dbg !552 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !552 unreachable, !dbg !552 L405: ; preds = %L401, %L389 %334 = addrspacecast ptr addrspace(10) %.Tnext13 to ptr addrspace(11), !dbg !557 %335 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %334, i32 0, i32 0, !dbg !557 %memoryref_data115 = load ptr, ptr addrspace(11) %335, align 8, !dbg !557, !tbaa !66, !alias.scope !69, !noalias !70 %336 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %334, i32 0, i32 1, !dbg !557 %memoryref_mem135 = load ptr addrspace(10), ptr addrspace(11) %336, align 8, !dbg !557, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %337 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data115, 0, !dbg !557 %.Tnext13.ref = insertvalue { ptr, ptr addrspace(10) } %337, ptr addrspace(10) %memoryref_mem135, 1, !dbg !557 %memoryref_offset117 = sub i64 %value_phi20, 1, !dbg !558 %338 = addrspacecast ptr addrspace(10) %memoryref_mem135 to ptr addrspace(11), !dbg !558 %339 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %338, i32 0, i32 0, !dbg !558 %memory_len118 = load i64, ptr addrspace(11) %339, align 8, !dbg !558, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %340 = add nuw i64 %memory_len118, %memory_len118, !dbg !558 %341 = add i64 %memoryref_offset117, %memory_len118, !dbg !558 %memoryref_ovflw119 = icmp uge i64 %341, %340, !dbg !558 %memoryref_byteoffset120 = mul i64 %memoryref_offset117, 8, !dbg !558 %memoryref_data_byteoffset121 = getelementptr i8, ptr %memoryref_data115, i64 %memoryref_byteoffset120, !dbg !558 %342 = addrspacecast ptr addrspace(10) %memoryref_mem135 to ptr addrspace(11), !dbg !558 %343 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %342, i32 0, i32 0, !dbg !558 %memory_len122 = load i64, ptr addrspace(11) %343, align 8, !dbg !558, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %344 = addrspacecast ptr addrspace(10) %memoryref_mem135 to ptr addrspace(11), !dbg !558 %memory_data_ptr123 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %344, i32 0, i32 1, !dbg !558 %memory_data124 = load ptr, ptr addrspace(11) %memory_data_ptr123, align 8, !dbg !558, !tbaa !74, !alias.scope !69, !noalias !70, !nonnull !0 %345 = ptrtoint ptr %memory_data124 to i64, !dbg !558 %346 = ptrtoint ptr %memoryref_data_byteoffset121 to i64, !dbg !558 %347 = sub i64 %346, %345, !dbg !558 %memoryref_bytelen125 = mul nuw nsw i64 %memory_len122, 8, !dbg !558 %memoryref_isinbounds126 = icmp ult i64 %347, %memoryref_bytelen125, !dbg !558 %348 = xor i1 %memoryref_ovflw119, true, !dbg !558 %"memoryref_isinbounds¬ovflw127" = and i1 %348, %memoryref_isinbounds126, !dbg !558 br i1 %"memoryref_isinbounds¬ovflw127", label %idxend133, label %oob128, !dbg !558 L409: ; preds = %load138 br label %L410, !dbg !553 L410: ; preds = %L409 %349 = icmp eq i64 %value_phi21, %value_phi16, !dbg !559 %350 = xor i1 %349, true, !dbg !295 br i1 %350, label %L413, label %L412, !dbg !295 L412: ; preds = %L410 br label %L415, !dbg !295 L413: ; preds = %L410 %351 = add i64 %value_phi21, 1, !dbg !560 br label %L415, !dbg !295 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 !297 %353 = xor i1 %352, true, !dbg !297 %354 = xor i1 %353, true, !dbg !297 br i1 %354, label %L421, label %L420, !dbg !297 L420: ; preds = %L415 br label %L311, !dbg !536 L421: ; preds = %L415, %L306 br label %L422, !dbg !562 L422: ; preds = %L421 %355 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !563 %.tsteps_ptr = getelementptr inbounds i8, ptr addrspace(11) %355, i32 32, !dbg !563 %.tsteps = load i64, ptr addrspace(11) %.tsteps_ptr, align 8, !dbg !563, !tbaa !200, !alias.scope !183, !noalias !184 %356 = add i64 %.tsteps, 1, !dbg !565 %357 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !566 %.tsteps_ptr143 = getelementptr inbounds i8, ptr addrspace(11) %357, i32 32, !dbg !566 store i64 %356, ptr addrspace(11) %.tsteps_ptr143, align 8, !dbg !566, !tbaa !200, !alias.scope !183, !noalias !184 %358 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !568 %.tsteps_ptr144 = getelementptr inbounds i8, ptr addrspace(11) %358, i32 32, !dbg !568 %.tsteps145 = load i64, ptr addrspace(11) %.tsteps_ptr144, align 8, !dbg !568, !tbaa !200, !alias.scope !183, !noalias !184 %359 = getelementptr inbounds i8, ptr addrspace(11) %"#self#::#sumheat##2#sumheat##3", i32 8, !dbg !569 %.unbox = load i64, ptr addrspace(11) %359, align 8, !dbg !570, !tbaa !23, !alias.scope !26, !noalias !29 %360 = icmp sle i64 %.tsteps145, %.unbox, !dbg !570 %361 = zext i1 %360 to i8, !dbg !569 ret i8 %361, !dbg !569 oob: ; preds = %L327 %"+Core.GenericMemoryRef#35015" = load ptr, ptr @_Core_GenericMemoryRef_35015, align 8, !dbg !540, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %GenericMemoryRef = ptrtoint ptr %"+Core.GenericMemoryRef#35015" to i64, !dbg !540 %362 = inttoptr i64 %GenericMemoryRef to ptr, !dbg !540 %current_task23 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !540 %363 = addrspacecast ptr %362 to ptr addrspace(10), !dbg !540 %"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 !540 %364 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef" to ptr addrspace(11), !dbg !540 store { ptr, ptr addrspace(10) } %.Tlast15.ref, ptr addrspace(11) %364, align 8, !dbg !540, !tbaa !179, !alias.scope !183, !noalias !184 %365 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef" to ptr addrspace(12), !dbg !540 call void @ijl_bounds_error_int(ptr addrspace(12) %365, i64 %value_phi20), !dbg !540 unreachable, !dbg !540 idxend: ; preds = %L327 %366 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset, 0, !dbg !540 %memory_ref = insertvalue { ptr, ptr addrspace(10) } %366, ptr addrspace(10) %memoryref_mem, 1, !dbg !540 %367 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !540 %368 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %367, i32 0, i32 0, !dbg !540 %memory_len24 = load i64, ptr addrspace(11) %368, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %369 = icmp eq i64 %memory_len24, 0, !dbg !540 br i1 %369, label %oob25, label %load, !dbg !540 oob25: ; preds = %idxend %370 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(12), !dbg !540 call void @ijl_bounds_error_int(ptr addrspace(12) %370, i64 1), !dbg !540 unreachable, !dbg !540 load: ; preds = %idxend %371 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem, ptr %memoryref_data), !dbg !540 %memoryref_data26 = getelementptr inbounds i8, ptr addrspace(13) %371, i64 %memoryref_byteoffset, !dbg !540 %372 = load double, ptr addrspace(13) %memoryref_data26, align 8, !dbg !540, !tbaa !185, !alias.scope !183, !noalias !184 br label %L331, !dbg !540 oob44: ; preds = %L346 %"+Core.GenericMemoryRef#3501545" = load ptr, ptr @_Core_GenericMemoryRef_35015, align 8, !dbg !540, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %GenericMemoryRef46 = ptrtoint ptr %"+Core.GenericMemoryRef#3501545" to i64, !dbg !540 %373 = inttoptr i64 %GenericMemoryRef46 to ptr, !dbg !540 %current_task47 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !540 %374 = addrspacecast ptr %373 to ptr addrspace(10), !dbg !540 %"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 !540 %375 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef48" to ptr addrspace(11), !dbg !540 store { ptr, ptr addrspace(10) } %.Tlast15.ref30, ptr addrspace(11) %375, align 8, !dbg !540, !tbaa !179, !alias.scope !183, !noalias !184 %376 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef48" to ptr addrspace(12), !dbg !540 call void @ijl_bounds_error_int(ptr addrspace(12) %376, i64 %258), !dbg !540 unreachable, !dbg !540 idxend49: ; preds = %L346 %377 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset37, 0, !dbg !540 %memory_ref50 = insertvalue { ptr, ptr addrspace(10) } %377, ptr addrspace(10) %memoryref_mem51, 1, !dbg !540 %378 = addrspacecast ptr addrspace(10) %memoryref_mem51 to ptr addrspace(11), !dbg !540 %379 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %378, i32 0, i32 0, !dbg !540 %memory_len52 = load i64, ptr addrspace(11) %379, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %380 = icmp eq i64 %memory_len52, 0, !dbg !540 br i1 %380, label %oob53, label %load54, !dbg !540 oob53: ; preds = %idxend49 %381 = addrspacecast ptr addrspace(10) %memoryref_mem51 to ptr addrspace(12), !dbg !540 call void @ijl_bounds_error_int(ptr addrspace(12) %381, i64 1), !dbg !540 unreachable, !dbg !540 load54: ; preds = %idxend49 %382 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem51, ptr %memoryref_data31), !dbg !540 %memoryref_data55 = getelementptr inbounds i8, ptr addrspace(13) %382, i64 %memoryref_byteoffset36, !dbg !540 %383 = load double, ptr addrspace(13) %memoryref_data55, align 8, !dbg !540, !tbaa !185, !alias.scope !183, !noalias !184 br label %L350, !dbg !540 oob73: ; preds = %L364 %"+Core.GenericMemoryRef#3501574" = load ptr, ptr @_Core_GenericMemoryRef_35015, align 8, !dbg !540, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %GenericMemoryRef75 = ptrtoint ptr %"+Core.GenericMemoryRef#3501574" to i64, !dbg !540 %384 = inttoptr i64 %GenericMemoryRef75 to ptr, !dbg !540 %current_task76 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !540 %385 = addrspacecast ptr %384 to ptr addrspace(10), !dbg !540 %"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 !540 %386 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef77" to ptr addrspace(11), !dbg !540 store { ptr, ptr addrspace(10) } %.Tlast15.ref59, ptr addrspace(11) %386, align 8, !dbg !540, !tbaa !179, !alias.scope !183, !noalias !184 %387 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef77" to ptr addrspace(12), !dbg !540 call void @ijl_bounds_error_int(ptr addrspace(12) %387, i64 %value_phi20), !dbg !540 unreachable, !dbg !540 idxend78: ; preds = %L364 %388 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset66, 0, !dbg !540 %memory_ref79 = insertvalue { ptr, ptr addrspace(10) } %388, ptr addrspace(10) %memoryref_mem80, 1, !dbg !540 %389 = addrspacecast ptr addrspace(10) %memoryref_mem80 to ptr addrspace(11), !dbg !540 %390 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %389, i32 0, i32 0, !dbg !540 %memory_len81 = load i64, ptr addrspace(11) %390, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %391 = icmp eq i64 %memory_len81, 0, !dbg !540 br i1 %391, label %oob82, label %load83, !dbg !540 oob82: ; preds = %idxend78 %392 = addrspacecast ptr addrspace(10) %memoryref_mem80 to ptr addrspace(12), !dbg !540 call void @ijl_bounds_error_int(ptr addrspace(12) %392, i64 1), !dbg !540 unreachable, !dbg !540 load83: ; preds = %idxend78 %393 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem80, ptr %memoryref_data60), !dbg !540 %memoryref_data84 = getelementptr inbounds i8, ptr addrspace(13) %393, i64 %memoryref_byteoffset65, !dbg !540 %394 = load double, ptr addrspace(13) %memoryref_data84, align 8, !dbg !540, !tbaa !185, !alias.scope !183, !noalias !184 br label %L368, !dbg !540 oob102: ; preds = %L385 %"+Core.GenericMemoryRef#35015103" = load ptr, ptr @_Core_GenericMemoryRef_35015, align 8, !dbg !540, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %GenericMemoryRef104 = ptrtoint ptr %"+Core.GenericMemoryRef#35015103" to i64, !dbg !540 %395 = inttoptr i64 %GenericMemoryRef104 to ptr, !dbg !540 %current_task105 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !540 %396 = addrspacecast ptr %395 to ptr addrspace(10), !dbg !540 %"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 !540 %397 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef106" to ptr addrspace(11), !dbg !540 store { ptr, ptr addrspace(10) } %.Tlast15.ref88, ptr addrspace(11) %397, align 8, !dbg !540, !tbaa !179, !alias.scope !183, !noalias !184 %398 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef106" to ptr addrspace(12), !dbg !540 call void @ijl_bounds_error_int(ptr addrspace(12) %398, i64 %303), !dbg !540 unreachable, !dbg !540 idxend107: ; preds = %L385 %399 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset95, 0, !dbg !540 %memory_ref108 = insertvalue { ptr, ptr addrspace(10) } %399, ptr addrspace(10) %memoryref_mem109, 1, !dbg !540 %400 = addrspacecast ptr addrspace(10) %memoryref_mem109 to ptr addrspace(11), !dbg !540 %401 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %400, i32 0, i32 0, !dbg !540 %memory_len110 = load i64, ptr addrspace(11) %401, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %402 = icmp eq i64 %memory_len110, 0, !dbg !540 br i1 %402, label %oob111, label %load112, !dbg !540 oob111: ; preds = %idxend107 %403 = addrspacecast ptr addrspace(10) %memoryref_mem109 to ptr addrspace(12), !dbg !540 call void @ijl_bounds_error_int(ptr addrspace(12) %403, i64 1), !dbg !540 unreachable, !dbg !540 load112: ; preds = %idxend107 %404 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem109, ptr %memoryref_data89), !dbg !540 %memoryref_data113 = getelementptr inbounds i8, ptr addrspace(13) %404, i64 %memoryref_byteoffset94, !dbg !540 %405 = load double, ptr addrspace(13) %memoryref_data113, align 8, !dbg !540, !tbaa !185, !alias.scope !183, !noalias !184 br label %L389, !dbg !540 oob128: ; preds = %L405 %"+Core.GenericMemoryRef#35015129" = load ptr, ptr @_Core_GenericMemoryRef_35015, align 8, !dbg !558, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %GenericMemoryRef130 = ptrtoint ptr %"+Core.GenericMemoryRef#35015129" to i64, !dbg !558 %406 = inttoptr i64 %GenericMemoryRef130 to ptr, !dbg !558 %current_task131 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !558 %407 = addrspacecast ptr %406 to ptr addrspace(10), !dbg !558 %"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 !558 %408 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef132" to ptr addrspace(11), !dbg !558 store { ptr, ptr addrspace(10) } %.Tnext13.ref, ptr addrspace(11) %408, align 8, !dbg !558, !tbaa !179, !alias.scope !183, !noalias !184 %409 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef132" to ptr addrspace(12), !dbg !558 call void @ijl_bounds_error_int(ptr addrspace(12) %409, i64 %value_phi20), !dbg !558 unreachable, !dbg !558 idxend133: ; preds = %L405 %410 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset121, 0, !dbg !558 %memory_ref134 = insertvalue { ptr, ptr addrspace(10) } %410, ptr addrspace(10) %memoryref_mem135, 1, !dbg !558 %411 = addrspacecast ptr addrspace(10) %memoryref_mem135 to ptr addrspace(11), !dbg !558 %412 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %411, i32 0, i32 0, !dbg !558 %memory_len136 = load i64, ptr addrspace(11) %412, align 8, !dbg !558, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %413 = icmp eq i64 %memory_len136, 0, !dbg !558 br i1 %413, label %oob137, label %load138, !dbg !558 oob137: ; preds = %idxend133 %414 = addrspacecast ptr addrspace(10) %memoryref_mem135 to ptr addrspace(12), !dbg !558 call void @ijl_bounds_error_int(ptr addrspace(12) %414, i64 1), !dbg !558 unreachable, !dbg !558 load138: ; preds = %idxend133 %415 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem135, ptr %memoryref_data115), !dbg !558 %memoryref_data139 = getelementptr inbounds i8, ptr addrspace(13) %415, i64 %memoryref_byteoffset120, !dbg !558 store double %327, ptr addrspace(13) %memoryref_data139, align 8, !dbg !558, !tbaa !185, !alias.scope !183, !noalias !184 br label %L409, !dbg !571 after_error: ; No predecessors! call void @llvm.trap(), !dbg !552 unreachable, !dbg !552 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !552 unreachable, !dbg !552 after_error148: ; No predecessors! call void @llvm.trap(), !dbg !530 unreachable, !dbg !530 after_noret149: ; No predecessors! call void @llvm.trap(), !dbg !530 unreachable, !dbg !530 after_error151: ; No predecessors! call void @llvm.trap(), !dbg !530 unreachable, !dbg !530 after_noret152: ; No predecessors! call void @llvm.trap(), !dbg !530 unreachable, !dbg !530 after_error154: ; No predecessors! call void @llvm.trap(), !dbg !530 unreachable, !dbg !530 after_noret155: ; No predecessors! call void @llvm.trap(), !dbg !530 unreachable, !dbg !530 after_error157: ; No predecessors! call void @llvm.trap(), !dbg !530 unreachable, !dbg !530 after_noret158: ; No predecessors! call void @llvm.trap(), !dbg !530 unreachable, !dbg !530 oob185: ; preds = %L107 %"+Core.GenericMemoryRef#35015186" = load ptr, ptr @_Core_GenericMemoryRef_35015, align 8, !dbg !352, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %GenericMemoryRef187 = ptrtoint ptr %"+Core.GenericMemoryRef#35015186" to i64, !dbg !352 %416 = inttoptr i64 %GenericMemoryRef187 to ptr, !dbg !352 %current_task188 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !352 %417 = addrspacecast ptr %416 to ptr addrspace(10), !dbg !352 %"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 !352 %418 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef189" to ptr addrspace(11), !dbg !352 store { ptr, ptr addrspace(10) } %.Tlast.ref, ptr addrspace(11) %418, align 8, !dbg !352, !tbaa !179, !alias.scope !183, !noalias !184 %419 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef189" to ptr addrspace(12), !dbg !352 call void @ijl_bounds_error_int(ptr addrspace(12) %419, i64 1), !dbg !352 unreachable, !dbg !352 idxend190: ; preds = %L107 %420 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset178, 0, !dbg !352 %memory_ref191 = insertvalue { ptr, ptr addrspace(10) } %420, ptr addrspace(10) %memoryref_mem175, 1, !dbg !352 %421 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !351 %422 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %421, i32 0, i32 0, !dbg !351 %memoryref_data192 = load ptr, ptr addrspace(11) %422, align 8, !dbg !351, !tbaa !66, !alias.scope !69, !noalias !70 %423 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %421, i32 0, i32 1, !dbg !351 %memoryref_mem193 = load ptr addrspace(10), ptr addrspace(11) %423, align 8, !dbg !351, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %424 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data192, 0, !dbg !351 %.Tnext.ref = insertvalue { ptr, ptr addrspace(10) } %424, ptr addrspace(10) %memoryref_mem193, 1, !dbg !351 %425 = addrspacecast ptr addrspace(10) %memoryref_mem193 to ptr addrspace(11), !dbg !352 %426 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %425, i32 0, i32 0, !dbg !352 %memory_len194 = load i64, ptr addrspace(11) %426, align 8, !dbg !352, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %427 = add nuw i64 %memory_len194, %memory_len194, !dbg !352 %428 = add i64 0, %memory_len194, !dbg !352 %memoryref_ovflw195 = icmp uge i64 %428, %427, !dbg !352 %memoryref_data_byteoffset196 = getelementptr i8, ptr %memoryref_data192, i64 0, !dbg !352 %429 = addrspacecast ptr addrspace(10) %memoryref_mem193 to ptr addrspace(11), !dbg !352 %430 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %429, i32 0, i32 0, !dbg !352 %memory_len197 = load i64, ptr addrspace(11) %430, align 8, !dbg !352, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %431 = addrspacecast ptr addrspace(10) %memoryref_mem193 to ptr addrspace(11), !dbg !352 %memory_data_ptr198 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %431, i32 0, i32 1, !dbg !352 %memory_data199 = load ptr, ptr addrspace(11) %memory_data_ptr198, align 8, !dbg !352, !tbaa !74, !alias.scope !69, !noalias !70, !nonnull !0 %432 = ptrtoint ptr %memory_data199 to i64, !dbg !352 %433 = ptrtoint ptr %memoryref_data_byteoffset196 to i64, !dbg !352 %434 = sub i64 %433, %432, !dbg !352 %memoryref_bytelen200 = mul nuw nsw i64 %memory_len197, 8, !dbg !352 %memoryref_isinbounds201 = icmp ult i64 %434, %memoryref_bytelen200, !dbg !352 %435 = xor i1 %memoryref_ovflw195, true, !dbg !352 %"memoryref_isinbounds¬ovflw202" = and i1 %435, %memoryref_isinbounds201, !dbg !352 br i1 %"memoryref_isinbounds¬ovflw202", label %idxend208, label %oob203, !dbg !352 oob203: ; preds = %idxend190 %"+Core.GenericMemoryRef#35015204" = load ptr, ptr @_Core_GenericMemoryRef_35015, align 8, !dbg !352, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %GenericMemoryRef205 = ptrtoint ptr %"+Core.GenericMemoryRef#35015204" to i64, !dbg !352 %436 = inttoptr i64 %GenericMemoryRef205 to ptr, !dbg !352 %current_task206 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !352 %437 = addrspacecast ptr %436 to ptr addrspace(10), !dbg !352 %"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 !352 %438 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef207" to ptr addrspace(11), !dbg !352 store { ptr, ptr addrspace(10) } %.Tnext.ref, ptr addrspace(11) %438, align 8, !dbg !352, !tbaa !179, !alias.scope !183, !noalias !184 %439 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef207" to ptr addrspace(12), !dbg !352 call void @ijl_bounds_error_int(ptr addrspace(12) %439, i64 1), !dbg !352 unreachable, !dbg !352 idxend208: ; preds = %idxend190 %440 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset196, 0, !dbg !352 %memory_ref209 = insertvalue { ptr, ptr addrspace(10) } %440, ptr addrspace(10) %memoryref_mem193, 1, !dbg !352 %441 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %memoryref_mem175), !dbg !572 %442 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %memoryref_mem193), !dbg !573 %memory_ref191.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref191, 0, !dbg !574 %memory_ref209.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref209, 0, !dbg !574 %.Tnext.size12.unbox210 = load i64, ptr %.Tnext.size12, align 8, !dbg !580, !tbaa !61, !alias.scope !63, !noalias !64 %443 = mul i64 %.Tnext.size12.unbox210, 8, !dbg !580 %444 = lshr i64 %443, 63, !dbg !582 %445 = select i1 false, i64 0, i64 %444, !dbg !582 %446 = trunc i64 %445 to i8, !dbg !582 %447 = icmp eq i8 %446, 1, !dbg !582 %448 = xor i1 %447, true, !dbg !355 br i1 %448, label %L126, label %L122, !dbg !355 after_error211: ; No predecessors! call void @llvm.trap(), !dbg !355 unreachable, !dbg !355 after_noret212: ; No predecessors! call void @llvm.trap(), !dbg !355 unreachable, !dbg !355 after_error213: ; No predecessors! call void @llvm.trap(), !dbg !339 unreachable, !dbg !339 after_noret214: ; No predecessors! call void @llvm.trap(), !dbg !339 unreachable, !dbg !339 after_error215: ; No predecessors! call void @llvm.trap(), !dbg !308 unreachable, !dbg !308 after_noret216: ; No predecessors! call void @llvm.trap(), !dbg !308 unreachable, !dbg !308 after_error217: ; No predecessors! call void @llvm.trap(), !dbg !279 unreachable, !dbg !279 after_noret218: ; No predecessors! call void @llvm.trap(), !dbg !279 unreachable, !dbg !279 oob244: ; preds = %L252 %"+Core.GenericMemoryRef#35015245" = load ptr, ptr @_Core_GenericMemoryRef_35015, align 8, !dbg !504, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %GenericMemoryRef246 = ptrtoint ptr %"+Core.GenericMemoryRef#35015245" to i64, !dbg !504 %449 = inttoptr i64 %GenericMemoryRef246 to ptr, !dbg !504 %current_task247 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !504 %450 = addrspacecast ptr %449 to ptr addrspace(10), !dbg !504 %"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 !504 %451 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef248" to ptr addrspace(11), !dbg !504 store { ptr, ptr addrspace(10) } %value_phi219.ref, ptr addrspace(11) %451, align 8, !dbg !504, !tbaa !179, !alias.scope !183, !noalias !184 %452 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef248" to ptr addrspace(12), !dbg !504 call void @ijl_bounds_error_int(ptr addrspace(12) %452, i64 %174), !dbg !504 unreachable, !dbg !504 idxend249: ; preds = %L252 %453 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset237, 0, !dbg !504 %memory_ref250 = insertvalue { ptr, ptr addrspace(10) } %453, ptr addrspace(10) %memoryref_mem251, 1, !dbg !504 %454 = addrspacecast ptr addrspace(10) %memoryref_mem251 to ptr addrspace(11), !dbg !504 %455 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %454, i32 0, i32 0, !dbg !504 %memory_len252 = load i64, ptr addrspace(11) %455, align 8, !dbg !504, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %456 = icmp eq i64 %memory_len252, 0, !dbg !504 br i1 %456, label %oob253, label %load254, !dbg !504 oob253: ; preds = %idxend249 %457 = addrspacecast ptr addrspace(10) %memoryref_mem251 to ptr addrspace(12), !dbg !504 call void @ijl_bounds_error_int(ptr addrspace(12) %457, i64 1), !dbg !504 unreachable, !dbg !504 load254: ; preds = %idxend249 %458 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem251, ptr %memoryref_data231), !dbg !504 %memoryref_data255 = getelementptr inbounds i8, ptr addrspace(13) %458, i64 %memoryref_byteoffset236, !dbg !504 %459 = load double, ptr addrspace(13) %memoryref_data255, align 8, !dbg !504, !tbaa !185, !alias.scope !183, !noalias !184 br i1 false, label %L276, label %L257, !dbg !506 oob273: ; preds = %L276 %"+Core.GenericMemoryRef#35015274" = load ptr, ptr @_Core_GenericMemoryRef_35015, align 8, !dbg !513, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %GenericMemoryRef275 = ptrtoint ptr %"+Core.GenericMemoryRef#35015274" to i64, !dbg !513 %460 = inttoptr i64 %GenericMemoryRef275 to ptr, !dbg !513 %current_task276 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !513 %461 = addrspacecast ptr %460 to ptr addrspace(10), !dbg !513 %"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 !513 %462 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef277" to ptr addrspace(11), !dbg !513 store { ptr, ptr addrspace(10) } %.Tlast.ref259, ptr addrspace(11) %462, align 8, !dbg !513, !tbaa !179, !alias.scope !183, !noalias !184 %463 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef277" to ptr addrspace(12), !dbg !513 call void @ijl_bounds_error_int(ptr addrspace(12) %463, i64 %166), !dbg !513 unreachable, !dbg !513 idxend278: ; preds = %L276 %464 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset266, 0, !dbg !513 %memory_ref279 = insertvalue { ptr, ptr addrspace(10) } %464, ptr addrspace(10) %memoryref_mem280, 1, !dbg !513 %465 = addrspacecast ptr addrspace(10) %memoryref_mem280 to ptr addrspace(11), !dbg !513 %466 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %465, i32 0, i32 0, !dbg !513 %memory_len281 = load i64, ptr addrspace(11) %466, align 8, !dbg !513, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %467 = icmp eq i64 %memory_len281, 0, !dbg !513 br i1 %467, label %oob282, label %load283, !dbg !513 oob282: ; preds = %idxend278 %468 = addrspacecast ptr addrspace(10) %memoryref_mem280 to ptr addrspace(12), !dbg !513 call void @ijl_bounds_error_int(ptr addrspace(12) %468, i64 1), !dbg !513 unreachable, !dbg !513 load283: ; preds = %idxend278 %469 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem280, ptr %memoryref_data260), !dbg !513 %memoryref_data284 = getelementptr inbounds i8, ptr addrspace(13) %469, i64 %memoryref_byteoffset265, !dbg !513 store double %459, ptr addrspace(13) %memoryref_data284, align 8, !dbg !513, !tbaa !185, !alias.scope !183, !noalias !184 %470 = add i64 %value_phi223, 1, !dbg !584 br label %L220, !dbg !295, !llvm.loop !586 after_error286: ; No predecessors! call void @llvm.trap(), !dbg !506 unreachable, !dbg !506 after_noret287: ; No predecessors! call void @llvm.trap(), !dbg !506 unreachable, !dbg !506 after_error289: ; No predecessors! call void @llvm.trap(), !dbg !501 unreachable, !dbg !501 after_noret290: ; No predecessors! call void @llvm.trap(), !dbg !501 unreachable, !dbg !501 after_error292: ; No predecessors! call void @llvm.trap(), !dbg !483 unreachable, !dbg !483 after_noret293: ; No predecessors! call void @llvm.trap(), !dbg !483 unreachable, !dbg !483 after_error294: ; No predecessors! call void @llvm.trap(), !dbg !471 unreachable, !dbg !471 after_noret295: ; No predecessors! call void @llvm.trap(), !dbg !471 unreachable, !dbg !471 emptymem: ; preds = %L166 %"jl_global#35045" = load ptr, ptr @jl_global_35045, align 8, !dbg !415, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !37, !align !35 %471 = addrspacecast ptr %"jl_global#35045" to ptr addrspace(10), !dbg !415 br label %retval, !dbg !415 nonemptymem: ; preds = %L166 %"+Core.GenericMemory#35046" = load ptr, ptr @_Core_GenericMemory_35046, align 8, !dbg !415, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %472 = call { i64, i1 } @llvm.smul.with.overflow.i64(i64 %.Tnext.size308.unbox, i64 8), !dbg !415 %473 = extractvalue { i64, i1 } %472, 0, !dbg !415 %474 = extractvalue { i64, i1 } %472, 1, !dbg !415 %475 = icmp slt i64 %.Tnext.size308.unbox, 0, !dbg !415 %476 = or i1 %474, %475, !dbg !415 %477 = icmp slt i64 9223372036854775806, %473, !dbg !415 %478 = or i1 %476, %477, !dbg !415 %479 = xor i1 %478, true, !dbg !415 br i1 %479, label %pass, label %fail, !dbg !415 fail: ; preds = %nonemptymem call void @jl_argument_error(ptr @_j_str_invalid_GenericMemory_siz____5), !dbg !415 unreachable, !dbg !415 pass: ; preds = %nonemptymem %current_task309 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !415 %ptls_field310 = getelementptr inbounds i8, ptr %current_task309, i32 168, !dbg !415 %ptls_load311 = load ptr, ptr %ptls_field310, align 8, !dbg !415, !tbaa !19 %"Memory{Float64}[]" = call noalias nonnull align 16 ptr addrspace(10) @jl_alloc_genericmemory_unchecked(ptr %ptls_load311, i64 %473, ptr %"+Core.GenericMemory#35046") #28, !dbg !415 %480 = addrspacecast ptr addrspace(10) %"Memory{Float64}[]" to ptr addrspace(11), !dbg !415 %481 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %480, i32 0, i32 0, !dbg !415 store i64 %.Tnext.size308.unbox, ptr addrspace(11) %481, align 8, !dbg !415, !tbaa !71, !alias.scope !69, !noalias !70 br label %retval, !dbg !415 retval: ; preds = %pass, %emptymem %482 = phi ptr addrspace(10) [ %471, %emptymem ], [ %"Memory{Float64}[]", %pass ], !dbg !415 %483 = addrspacecast ptr addrspace(10) %482 to ptr addrspace(11), !dbg !587 %memory_data_ptr312 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %483, i32 0, i32 1, !dbg !587 %memory_data313 = load ptr, ptr addrspace(11) %memory_data_ptr312, align 8, !dbg !587, !tbaa !74, !alias.scope !69, !noalias !70, !nonnull !0 %484 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memory_data313, 0, !dbg !587 %memory_ref314 = insertvalue { ptr, ptr addrspace(10) } %484, ptr addrspace(10) %482, 1, !dbg !587 %485 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !588 %.Tnext.size_ptr315 = getelementptr inbounds i8, ptr addrspace(11) %485, i32 16, !dbg !588 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 !588, !tbaa !38, !alias.scope !59, !noalias !60 %486 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %482), !dbg !590 %487 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %134), !dbg !591 %memory_ref314.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref314, 0, !dbg !592 %.Tnext.ref306.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %.Tnext.ref306, 0, !dbg !592 %.Tnext.size316.unbox = load i64, ptr %.Tnext.size316, align 8, !dbg !594, !tbaa !61, !alias.scope !63, !noalias !64 %488 = mul i64 %.Tnext.size316.unbox, 8, !dbg !594 %489 = lshr i64 %488, 63, !dbg !595 %490 = select i1 false, i64 0, i64 %489, !dbg !595 %491 = trunc i64 %490 to i8, !dbg !595 %492 = icmp eq i8 %491, 1, !dbg !595 %493 = xor i1 %492, true, !dbg !417 br i1 %493, label %L184, label %L182, !dbg !417 after_error321: ; No predecessors! call void @llvm.trap(), !dbg !417 unreachable, !dbg !417 after_noret322: ; No predecessors! call void @llvm.trap(), !dbg !417 unreachable, !dbg !417 after_error330: ; No predecessors! call void @llvm.trap(), !dbg !249 unreachable, !dbg !249 after_noret331: ; No predecessors! call void @llvm.trap(), !dbg !249 unreachable, !dbg !249 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !230 unreachable, !dbg !230 after_noret333: ; No predecessors! call void @llvm.trap(), !dbg !230 unreachable, !dbg !230 } 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_35096(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#") #11 !dbg !187 { 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 !189, !noalias !190 %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 !191 %.Tlast_ptr = getelementptr inbounds i8, ptr addrspace(11) %4, i32 8, !dbg !191 %.Tlast = load atomic ptr addrspace(10), ptr addrspace(11) %.Tlast_ptr unordered, align 8, !dbg !191, !tbaa !200, !alias.scope !183, !noalias !184, !nonnull !0, !dereferenceable !202, !align !35 %5 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !203 %.Tnext = load atomic ptr addrspace(10), ptr addrspace(11) %5 unordered, align 8, !dbg !203, !tbaa !200, !alias.scope !183, !noalias !184, !nonnull !0, !dereferenceable !202, !align !35 %6 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !204 %.Tlast.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %6, i32 16, !dbg !204 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 !204, !tbaa !38, !alias.scope !59, !noalias !60 %7 = getelementptr inbounds i8, ptr %"new::OneTo", i32 0, !dbg !213 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %7, ptr align 8 %.Tlast.size, i64 8, i1 false), !dbg !213, !tbaa !61, !alias.scope !63, !noalias !64 %8 = getelementptr inbounds i8, ptr %"new::Tuple", i32 0, !dbg !215 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %8, ptr align 8 %"new::OneTo", i64 8, i1 false), !dbg !215, !tbaa !61, !alias.scope !63, !noalias !64 %9 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !218 %.Tnext.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %9, i32 16, !dbg !218 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 !218, !tbaa !38, !alias.scope !59, !noalias !60 %.Tlast.size.unbox = load i64, ptr %.Tlast.size, align 8, !dbg !224, !tbaa !61, !alias.scope !63, !noalias !64 %.Tnext.size.unbox = load i64, ptr %.Tnext.size, align 8, !dbg !224, !tbaa !61, !alias.scope !63, !noalias !64 %10 = icmp eq i64 %.Tlast.size.unbox, %.Tnext.size.unbox, !dbg !224 %11 = xor i1 %10, true, !dbg !228 br i1 %11, label %L16, label %L15, !dbg !228 L15: ; preds = %top %12 = zext i1 %10 to i8 br label %L18, !dbg !228 L16: ; preds = %top %.Tnext.size.unbox334 = load i64, ptr %.Tnext.size, align 8, !dbg !232, !tbaa !61, !alias.scope !63, !noalias !64 %13 = icmp eq i64 %.Tnext.size.unbox334, 1, !dbg !232 %14 = zext i1 %13 to i8 br label %L18, !dbg !232 L18: ; preds = %L16, %L15 %value_phi = phi i8 [ %12, %L15 ], [ %14, %L16 ] %15 = trunc i8 %value_phi to i1, !dbg !230 %16 = xor i1 %15, true, !dbg !230 br i1 %16, label %L21, label %L20, !dbg !230 L20: ; preds = %L18 br label %L24, !dbg !230 L21: ; preds = %L18 %"jl_global#35112" = load ptr, ptr @jl_global_35112, align 8, !dbg !230, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %17 = addrspacecast ptr %"jl_global#35112" to ptr addrspace(10), !dbg !230 %18 = call [1 x ptr addrspace(10)] @julia_DimensionMismatch_35133(ptr addrspace(10) %17), !dbg !230 %"+Main.Base.DimensionMismatch#35113" = load ptr, ptr @_Main_Base_DimensionMismatch_35113, align 8, !dbg !230, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %DimensionMismatch = ptrtoint ptr %"+Main.Base.DimensionMismatch#35113" to i64, !dbg !230 %19 = inttoptr i64 %DimensionMismatch to ptr, !dbg !230 %current_task332 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !230 %20 = addrspacecast ptr %19 to ptr addrspace(10), !dbg !230 %"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 !230 %21 = addrspacecast ptr addrspace(10) %"box::DimensionMismatch" to ptr addrspace(11), !dbg !230 store [1 x ptr addrspace(10)] %18, ptr addrspace(11) %21, align 8, !dbg !230, !tbaa !179, !alias.scope !183, !noalias !184 %22 = addrspacecast ptr addrspace(10) %"box::DimensionMismatch" to ptr addrspace(12), !dbg !230 call void @ijl_throw(ptr addrspace(12) %22), !dbg !230 unreachable, !dbg !230 L24: ; preds = %L20 br label %L25, !dbg !230 L25: ; preds = %L24 br label %L26, !dbg !233 L26: ; preds = %L25 %23 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !234 %.Tlast.size_ptr1 = getelementptr inbounds i8, ptr addrspace(11) %23, i32 16, !dbg !234 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 !234, !tbaa !38, !alias.scope !59, !noalias !60 %24 = getelementptr inbounds i8, ptr %"new::Tuple4", i32 0, !dbg !241 %25 = getelementptr inbounds i8, ptr %24, i32 0, !dbg !241 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %25, ptr align 8 %.Tlast.size2, i64 8, i1 false), !dbg !241, !tbaa !61, !alias.scope !63, !noalias !64 %.Tlast.size2.unbox = load i64, ptr %.Tlast.size2, align 8, !dbg !243, !tbaa !61, !alias.scope !63, !noalias !64 %.Tlast.size.unbox5 = load i64, ptr %.Tlast.size, align 8, !dbg !243, !tbaa !61, !alias.scope !63, !noalias !64 %26 = icmp eq i64 %.Tlast.size2.unbox, %.Tlast.size.unbox5, !dbg !243 %27 = zext i1 %26 to i8, !dbg !250 %28 = icmp eq i8 %27, 0, !dbg !250 %29 = xor i1 %28, true, !dbg !250 br i1 %29, label %L35, label %L34, !dbg !250 L34: ; preds = %L26 br label %L36, !dbg !251 L35: ; preds = %L26 br label %L36, !dbg !252 L36: ; preds = %L35, %L34 %value_phi6 = phi i8 [ 0, %L34 ], [ 1, %L35 ] br label %L38, !dbg !247 L38: ; preds = %L36 %30 = trunc i8 %value_phi6 to i1, !dbg !249 %31 = xor i1 %30, true, !dbg !249 br i1 %31, label %L284, label %L39, !dbg !249 L39: ; preds = %L38 %32 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !253 %.Tnext.size_ptr7 = getelementptr inbounds i8, ptr addrspace(11) %32, i32 16, !dbg !253 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 !253, !tbaa !38, !alias.scope !59, !noalias !60 %.Tlast.size2.unbox9 = load i64, ptr %.Tlast.size2, align 8, !dbg !256, !tbaa !61, !alias.scope !63, !noalias !64 %.Tnext.size8.unbox = load i64, ptr %.Tnext.size8, align 8, !dbg !256, !tbaa !61, !alias.scope !63, !noalias !64 %33 = icmp eq i64 %.Tlast.size2.unbox9, %.Tnext.size8.unbox, !dbg !256 %34 = zext i1 %33 to i8, !dbg !260 %35 = icmp eq i8 %34, 0, !dbg !260 %36 = xor i1 %35, true, !dbg !260 br i1 %36, label %L46, label %L45, !dbg !260 L45: ; preds = %L39 br label %L47, !dbg !261 L46: ; preds = %L39 br label %L47, !dbg !262 L47: ; preds = %L46, %L45 %value_phi10 = phi i8 [ 0, %L45 ], [ 1, %L46 ] br label %L49, !dbg !259 L49: ; preds = %L47 %37 = trunc i8 %value_phi10 to i1, !dbg !255 %38 = xor i1 %37, true, !dbg !255 br i1 %38, label %L137, label %L50, !dbg !255 L50: ; preds = %L49 %39 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !263 %.Tnext.size_ptr11 = getelementptr inbounds i8, ptr addrspace(11) %39, i32 16, !dbg !263 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 !263, !tbaa !38, !alias.scope !59, !noalias !60 %.Tnext.size12.unbox = load i64, ptr %.Tnext.size12, align 8, !dbg !271, !tbaa !61, !alias.scope !63, !noalias !64 %40 = icmp eq i64 %.Tnext.size12.unbox, 0, !dbg !271 %41 = xor i1 %40, true, !dbg !272 br i1 %41, label %L55, label %L54, !dbg !272 L54: ; preds = %L50 br label %L133, !dbg !272 L55: ; preds = %L50 %.Tnext.size12.unbox159 = load i64, ptr %.Tnext.size12, align 8, !dbg !275, !tbaa !61, !alias.scope !63, !noalias !64 %42 = icmp slt i64 0, %.Tnext.size12.unbox159, !dbg !275 %43 = xor i1 %42, true, !dbg !279 br i1 %43, label %L131, label %L57, !dbg !279 L57: ; preds = %L55 br i1 false, label %L81, label %L59, !dbg !280 L59: ; preds = %L57 %.Tnext.size12.unbox160 = load i64, ptr %.Tnext.size12, align 8, !dbg !281, !tbaa !61, !alias.scope !63, !noalias !64 %44 = add i64 1, %.Tnext.size12.unbox160, !dbg !281 %45 = sub i64 %44, 1, !dbg !283 %46 = icmp sle i64 1, %45, !dbg !285 %47 = xor i1 %46, true, !dbg !289 br i1 %47, label %L64, label %L63, !dbg !289 L63: ; preds = %L59 br label %L65, !dbg !295 L64: ; preds = %L59 br label %L65, !dbg !295 L65: ; preds = %L64, %L63 %value_phi161 = phi i64 [ %45, %L63 ], [ 0, %L64 ] %48 = getelementptr inbounds i8, ptr %"new::Tuple162", i32 0, !dbg !291 %49 = getelementptr inbounds i8, ptr %48, i32 0, !dbg !291 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %49, ptr align 8 @_j_const_1, i64 8, i1 false), !dbg !291, !tbaa !38, !alias.scope !300, !noalias !301 %50 = getelementptr inbounds i8, ptr %48, i32 8, !dbg !291 store i64 %value_phi161, ptr %50, align 8, !dbg !291, !tbaa !61, !alias.scope !63, !noalias !64 %51 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !302 %.Tlast.size_ptr163 = getelementptr inbounds i8, ptr addrspace(11) %51, i32 16, !dbg !302 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 !302, !tbaa !38, !alias.scope !59, !noalias !60 %52 = icmp slt i64 %value_phi161, 1, !dbg !309 %bitcast165 = load i64, ptr %.Tlast.size164, align 8, !dbg !315, !tbaa !61, !alias.scope !63, !noalias !64 %53 = icmp ult i64 0, %bitcast165, !dbg !320 %54 = sub i64 %value_phi161, 1, !dbg !321 %bitcast166 = load i64, ptr %.Tlast.size164, align 8, !dbg !315, !tbaa !61, !alias.scope !63, !noalias !64 %55 = icmp ult i64 %54, %bitcast166, !dbg !320 %56 = and i1 %53, %55, !dbg !322 %57 = or i1 %52, %56, !dbg !325 %58 = xor i1 %57, true, !dbg !308 br i1 %58, label %L88, label %L80, !dbg !308 L80: ; preds = %L65 br label %L81, !dbg !308 L81: ; preds = %L80, %L57 br i1 false, label %L107, label %L83, !dbg !327 L83: ; preds = %L81 %.Tnext.size12.unbox167 = load i64, ptr %.Tnext.size12, align 8, !dbg !328, !tbaa !61, !alias.scope !63, !noalias !64 %59 = add i64 1, %.Tnext.size12.unbox167, !dbg !328 %60 = sub i64 %59, 1, !dbg !329 %61 = icmp sle i64 1, %60, !dbg !330 %62 = xor i1 %61, true, !dbg !332 br i1 %62, label %L90, label %L87, !dbg !332 L87: ; preds = %L83 br label %L91, !dbg !295 L88: ; preds = %L65 %63 = addrspacecast ptr %"new::Tuple162" to ptr addrspace(11), !dbg !308 call void @julia_throw_boundserror_35129(ptr addrspace(10) %.Tlast, ptr addrspace(11) nocapture readonly %63) #26, !dbg !308 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !308 unreachable, !dbg !308 L90: ; preds = %L83 br label %L91, !dbg !295 L91: ; preds = %L90, %L87 %value_phi168 = phi i64 [ %60, %L87 ], [ 0, %L90 ] %64 = getelementptr inbounds i8, ptr %"new::Tuple169", i32 0, !dbg !333 %65 = getelementptr inbounds i8, ptr %64, i32 0, !dbg !333 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %65, ptr align 8 @_j_const_1, i64 8, i1 false), !dbg !333, !tbaa !38, !alias.scope !300, !noalias !301 %66 = getelementptr inbounds i8, ptr %64, i32 8, !dbg !333 store i64 %value_phi168, ptr %66, align 8, !dbg !333, !tbaa !61, !alias.scope !63, !noalias !64 %67 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !335 %.Tnext.size_ptr170 = getelementptr inbounds i8, ptr addrspace(11) %67, i32 16, !dbg !335 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 !335, !tbaa !38, !alias.scope !59, !noalias !60 %68 = icmp slt i64 %value_phi168, 1, !dbg !340 %bitcast172 = load i64, ptr %.Tnext.size171, align 8, !dbg !344, !tbaa !61, !alias.scope !63, !noalias !64 %69 = icmp ult i64 0, %bitcast172, !dbg !347 %70 = sub i64 %value_phi168, 1, !dbg !348 %bitcast173 = load i64, ptr %.Tnext.size171, align 8, !dbg !344, !tbaa !61, !alias.scope !63, !noalias !64 %71 = icmp ult i64 %70, %bitcast173, !dbg !347 %72 = and i1 %69, %71, !dbg !349 %73 = or i1 %68, %72, !dbg !350 %74 = xor i1 %73, true, !dbg !339 br i1 %74, label %L124, label %L106, !dbg !339 L106: ; preds = %L91 br label %L107, !dbg !339 L107: ; preds = %L106, %L81 %75 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !351 %76 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %75, i32 0, i32 0, !dbg !351 %memoryref_data174 = load ptr, ptr addrspace(11) %76, align 8, !dbg !351, !tbaa !66, !alias.scope !69, !noalias !70 %77 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %75, i32 0, i32 1, !dbg !351 %memoryref_mem175 = load ptr addrspace(10), ptr addrspace(11) %77, align 8, !dbg !351, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %78 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data174, 0, !dbg !351 %.Tlast.ref = insertvalue { ptr, ptr addrspace(10) } %78, ptr addrspace(10) %memoryref_mem175, 1, !dbg !351 %79 = addrspacecast ptr addrspace(10) %memoryref_mem175 to ptr addrspace(11), !dbg !352 %80 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %79, i32 0, i32 0, !dbg !352 %memory_len176 = load i64, ptr addrspace(11) %80, align 8, !dbg !352, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %81 = add nuw i64 %memory_len176, %memory_len176, !dbg !352 %82 = add i64 0, %memory_len176, !dbg !352 %memoryref_ovflw177 = icmp uge i64 %82, %81, !dbg !352 %memoryref_data_byteoffset178 = getelementptr i8, ptr %memoryref_data174, i64 0, !dbg !352 %83 = addrspacecast ptr addrspace(10) %memoryref_mem175 to ptr addrspace(11), !dbg !352 %84 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %83, i32 0, i32 0, !dbg !352 %memory_len179 = load i64, ptr addrspace(11) %84, align 8, !dbg !352, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %85 = addrspacecast ptr addrspace(10) %memoryref_mem175 to ptr addrspace(11), !dbg !352 %memory_data_ptr180 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %85, i32 0, i32 1, !dbg !352 %memory_data181 = load ptr, ptr addrspace(11) %memory_data_ptr180, align 8, !dbg !352, !tbaa !74, !alias.scope !69, !noalias !70, !nonnull !0 %86 = ptrtoint ptr %memory_data181 to i64, !dbg !352 %87 = ptrtoint ptr %memoryref_data_byteoffset178 to i64, !dbg !352 %88 = sub i64 %87, %86, !dbg !352 %memoryref_bytelen182 = mul nuw nsw i64 %memory_len179, 8, !dbg !352 %memoryref_isinbounds183 = icmp ult i64 %88, %memoryref_bytelen182, !dbg !352 %89 = xor i1 %memoryref_ovflw177, true, !dbg !352 %"memoryref_isinbounds¬ovflw184" = and i1 %89, %memoryref_isinbounds183, !dbg !352 br i1 %"memoryref_isinbounds¬ovflw184", label %idxend190, label %oob185, !dbg !352 L122: ; preds = %idxend208 %"-Core.throw_inexacterror#35099" = load ptr, ptr @_Core_throw_inexacterror_35099, align 8, !dbg !355, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %90 = addrspacecast ptr %"-Core.throw_inexacterror#35099" to ptr addrspace(10), !dbg !355 %"jl_global#35100" = load ptr, ptr @jl_global_35100, align 8, !dbg !355, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %91 = addrspacecast ptr %"jl_global#35100" to ptr addrspace(10), !dbg !355 %"jl_sym#convert#35101" = load ptr, ptr @jl_sym_convert_35101, align 8, !dbg !355, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %92 = addrspacecast ptr %"jl_sym#convert#35101" to ptr addrspace(10), !dbg !355 %93 = load ptr, ptr getelementptr inbounds (i8, ptr @jl_small_typeof, i32 336), align 8, !dbg !355, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %94 = addrspacecast ptr %93 to ptr addrspace(10), !dbg !355 %box_Int64 = call nonnull align 8 dereferenceable(8) ptr addrspace(10) @ijl_box_int64(i64 signext %443) #27, !dbg !355 %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 !355 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !355 unreachable, !dbg !355 L124: ; preds = %L91 %96 = addrspacecast ptr %"new::Tuple169" to ptr addrspace(11), !dbg !339 call void @julia_throw_boundserror_35129(ptr addrspace(10) %.Tnext, ptr addrspace(11) nocapture readonly %96) #26, !dbg !339 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !339 unreachable, !dbg !339 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 !366 call void @llvm.julia.gc_preserve_end(token %442), !dbg !372 call void @llvm.julia.gc_preserve_end(token %441), !dbg !373 br label %L133, !dbg !374 L131: ; preds = %L55 %"jl_global#35104" = load ptr, ptr @jl_global_35104, align 8, !dbg !279, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %97 = addrspacecast ptr %"jl_global#35104" to ptr addrspace(10), !dbg !279 call void @julia__throw_argerror_35126(ptr addrspace(10) %97) #26, !dbg !279 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !279 unreachable, !dbg !279 L133: ; preds = %L126, %L54 br label %L134, !dbg !272 L134: ; preds = %L133 br label %L135, !dbg !272 L135: ; preds = %L134 br label %L136, !dbg !272 L136: ; preds = %L135 br label %L286, !dbg !375 L137: ; preds = %L49 %98 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !376 %99 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !376 %100 = icmp eq ptr addrspace(11) %98, %99, !dbg !376 %101 = xor i1 %100, true, !dbg !376 br i1 %101, label %L140, label %L139, !dbg !376 L139: ; preds = %L137 br label %L204, !dbg !295 L140: ; preds = %L137 %102 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !384 %.Tlast.size_ptr296 = getelementptr inbounds i8, ptr addrspace(11) %102, i32 16, !dbg !384 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 !384, !tbaa !38, !alias.scope !59, !noalias !60 %.Tlast.size297.unbox = load i64, ptr %.Tlast.size297, align 8, !dbg !392, !tbaa !61, !alias.scope !63, !noalias !64 %103 = icmp eq i64 %.Tlast.size297.unbox, 0, !dbg !392 %104 = xor i1 %103, true, !dbg !393 %105 = xor i1 %104, true, !dbg !388 br i1 %105, label %L163, label %L145, !dbg !388 L145: ; preds = %L140 %106 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !384 %.Tnext.size_ptr298 = getelementptr inbounds i8, ptr addrspace(11) %106, i32 16, !dbg !384 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 !384, !tbaa !38, !alias.scope !59, !noalias !60 %.Tnext.size299.unbox = load i64, ptr %.Tnext.size299, align 8, !dbg !392, !tbaa !61, !alias.scope !63, !noalias !64 %107 = icmp eq i64 %.Tnext.size299.unbox, 0, !dbg !392 %108 = xor i1 %107, true, !dbg !393 %109 = xor i1 %108, true, !dbg !388 br i1 %109, label %L162, label %L150, !dbg !388 L150: ; preds = %L145 %110 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !395 %111 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %110, i32 0, i32 0, !dbg !395 %112 = load ptr, ptr addrspace(11) %111, align 8, !dbg !395, !tbaa !66, !alias.scope !69, !noalias !70 %113 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %110, i32 0, i32 1, !dbg !395 %114 = load ptr addrspace(10), ptr addrspace(11) %113, align 8, !dbg !395, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %115 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %112, 0, !dbg !395 %.Tlast.ref300 = insertvalue { ptr, ptr addrspace(10) } %115, ptr addrspace(10) %114, 1, !dbg !395 %.Tlast.ref300.mem = extractvalue { ptr, ptr addrspace(10) } %.Tlast.ref300, 1, !dbg !395 %116 = addrspacecast ptr addrspace(10) %.Tlast.ref300.mem to ptr addrspace(11), !dbg !398 %.Tlast.ref300.mem.ptr_ptr = getelementptr inbounds i8, ptr addrspace(11) %116, i32 8, !dbg !398 %bitcast301 = load ptr, ptr addrspace(11) %.Tlast.ref300.mem.ptr_ptr, align 8, !dbg !400, !tbaa !74, !alias.scope !69, !noalias !70 %bitcast_coercion = ptrtoint ptr %bitcast301 to i64, !dbg !400 %117 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !395 %118 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %117, i32 0, i32 0, !dbg !395 %119 = load ptr, ptr addrspace(11) %118, align 8, !dbg !395, !tbaa !66, !alias.scope !69, !noalias !70 %120 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %117, i32 0, i32 1, !dbg !395 %121 = load ptr addrspace(10), ptr addrspace(11) %120, align 8, !dbg !395, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %122 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %119, 0, !dbg !395 %.Tnext.ref302 = insertvalue { ptr, ptr addrspace(10) } %122, ptr addrspace(10) %121, 1, !dbg !395 %.Tnext.ref302.mem = extractvalue { ptr, ptr addrspace(10) } %.Tnext.ref302, 1, !dbg !395 %123 = addrspacecast ptr addrspace(10) %.Tnext.ref302.mem to ptr addrspace(11), !dbg !398 %.Tnext.ref302.mem.ptr_ptr = getelementptr inbounds i8, ptr addrspace(11) %123, i32 8, !dbg !398 %bitcast303 = load ptr, ptr addrspace(11) %.Tnext.ref302.mem.ptr_ptr, align 8, !dbg !400, !tbaa !74, !alias.scope !69, !noalias !70 %bitcast_coercion304 = ptrtoint ptr %bitcast303 to i64, !dbg !400 %124 = icmp eq i64 %bitcast_coercion, %bitcast_coercion304, !dbg !401 %125 = xor i1 %124, true, !dbg !406 %126 = xor i1 %125, true, !dbg !393 %127 = zext i1 %126 to i8, !dbg !295 br label %L164, !dbg !295 L162: ; preds = %L145 br label %L164, !dbg !295 L163: ; preds = %L140 br label %L164, !dbg !295 L164: ; preds = %L163, %L162, %L150 %value_phi305 = phi i8 [ %127, %L150 ], [ 0, %L162 ], [ 0, %L163 ] %128 = trunc i8 %value_phi305 to i1, !dbg !390 %129 = xor i1 %128, true, !dbg !390 br i1 %129, label %L201, label %L166, !dbg !390 L166: ; preds = %L164 %130 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !407 %131 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %130, i32 0, i32 0, !dbg !407 %132 = load ptr, ptr addrspace(11) %131, align 8, !dbg !407, !tbaa !66, !alias.scope !69, !noalias !70 %133 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %130, i32 0, i32 1, !dbg !407 %134 = load ptr addrspace(10), ptr addrspace(11) %133, align 8, !dbg !407, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %135 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %132, 0, !dbg !407 %.Tnext.ref306 = insertvalue { ptr, ptr addrspace(10) } %135, ptr addrspace(10) %134, 1, !dbg !407 %136 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !412 %.Tnext.size_ptr307 = getelementptr inbounds i8, ptr addrspace(11) %136, i32 16, !dbg !412 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 !412, !tbaa !38, !alias.scope !59, !noalias !60 %.Tnext.size308.unbox = load i64, ptr %.Tnext.size308, align 8, !dbg !415, !tbaa !61, !alias.scope !63, !noalias !64 %memorynew_empty = icmp eq i64 %.Tnext.size308.unbox, 0, !dbg !415 br i1 %memorynew_empty, label %emptymem, label %nonemptymem, !dbg !415 L182: ; preds = %retval %"-Core.throw_inexacterror#35099317" = load ptr, ptr @_Core_throw_inexacterror_35099, align 8, !dbg !417, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %137 = addrspacecast ptr %"-Core.throw_inexacterror#35099317" to ptr addrspace(10), !dbg !417 %"jl_global#35100318" = load ptr, ptr @jl_global_35100, align 8, !dbg !417, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %138 = addrspacecast ptr %"jl_global#35100318" to ptr addrspace(10), !dbg !417 %"jl_sym#convert#35101319" = load ptr, ptr @jl_sym_convert_35101, align 8, !dbg !417, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %139 = addrspacecast ptr %"jl_sym#convert#35101319" to ptr addrspace(10), !dbg !417 %140 = load ptr, ptr getelementptr inbounds (i8, ptr @jl_small_typeof, i32 336), align 8, !dbg !417, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %141 = addrspacecast ptr %140 to ptr addrspace(10), !dbg !417 %box_Int64320 = call nonnull align 8 dereferenceable(8) ptr addrspace(10) @ijl_box_int64(i64 signext %488) #27, !dbg !417 %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 !417 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !417 unreachable, !dbg !417 L184: ; preds = %retval br label %L185, !dbg !417 L185: ; preds = %L184 br label %L187, !dbg !418 L187: ; preds = %L185 br label %L188, !dbg !418 L188: ; preds = %L187 br label %L189, !dbg !418 L189: ; preds = %L188 br label %L190, !dbg !418 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 !422 br label %L192, !dbg !422 L192: ; preds = %L190 call void @llvm.julia.gc_preserve_end(token %487), !dbg !425 call void @llvm.julia.gc_preserve_end(token %486), !dbg !426 br label %L195, !dbg !427 L195: ; preds = %L192 %143 = addrspacecast ptr addrspace(10) %482 to ptr addrspace(11), !dbg !428 %memory_data_ptr323 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %143, i32 0, i32 1, !dbg !428 %memory_data324 = load ptr, ptr addrspace(11) %memory_data_ptr323, align 8, !dbg !428, !tbaa !74, !alias.scope !69, !noalias !70, !nonnull !0 %144 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memory_data324, 0, !dbg !428 %memory_ref325 = insertvalue { ptr, ptr addrspace(10) } %144, ptr addrspace(10) %482, 1, !dbg !428 %145 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !430 %.Tnext.size_ptr326 = getelementptr inbounds i8, ptr addrspace(11) %145, i32 16, !dbg !430 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 !430, !tbaa !38, !alias.scope !59, !noalias !60 %"+Core.Array#35109" = load ptr, ptr @_Core_Array_35109, align 8, !dbg !429, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Array = ptrtoint ptr %"+Core.Array#35109" to i64, !dbg !429 %146 = inttoptr i64 %Array to ptr, !dbg !429 %current_task328 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !429 %147 = addrspacecast ptr %146 to ptr addrspace(10), !dbg !429 %"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 !429 %148 = addrspacecast ptr addrspace(10) %"new::Array" to ptr addrspace(11), !dbg !429 %149 = getelementptr inbounds i8, ptr addrspace(11) %148, i32 8, !dbg !429 store ptr addrspace(10) null, ptr addrspace(11) %149, align 8, !dbg !429, !tbaa !431, !alias.scope !69, !noalias !70 %150 = addrspacecast ptr addrspace(10) %"new::Array" to ptr addrspace(11), !dbg !429 store { ptr, ptr addrspace(10) } %memory_ref325, ptr addrspace(11) %150, align 8, !dbg !429, !tbaa !66, !alias.scope !69, !noalias !70 %151 = addrspacecast ptr addrspace(10) %"new::Array" to ptr addrspace(11), !dbg !429 %"new::Array.size_ptr" = getelementptr inbounds i8, ptr addrspace(11) %151, i32 16, !dbg !429 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 !429, !tbaa !38, !alias.scope !432, !noalias !60 br label %L199, !dbg !429 L199: ; preds = %L195 br label %L200, !dbg !429 L200: ; preds = %L199 br label %L202, !dbg !295 L201: ; preds = %L164 br label %L202, !dbg !295 L202: ; preds = %L201, %L200 %value_phi329 = phi ptr addrspace(10) [ %"new::Array", %L200 ], [ %.Tnext, %L201 ] br label %L204, !dbg !295 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 !433 %value_phi219.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %152, i32 16, !dbg !433 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 !433, !tbaa !38, !alias.scope !59, !noalias !60 %value_phi219.size.unbox = load i64, ptr %value_phi219.size, align 8, !dbg !439, !tbaa !61, !alias.scope !63, !noalias !64 %153 = icmp eq i64 %value_phi219.size.unbox, 1, !dbg !439 %154 = xor i1 %153, true, !dbg !445 %155 = getelementptr inbounds i8, ptr %"new::Tuple220", i32 0, !dbg !441 %156 = zext i1 %154 to i8, !dbg !441 store i8 %156, ptr %155, align 1, !dbg !441, !tbaa !61, !alias.scope !63, !noalias !64 %157 = getelementptr inbounds i8, ptr %"new::Extruded", i32 8, !dbg !446 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %157, ptr align 1 %"new::Tuple220", i64 1, i1 false), !dbg !446, !tbaa !61, !alias.scope !63, !noalias !64 %158 = getelementptr inbounds i8, ptr %"new::Extruded", i32 16, !dbg !446 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %158, ptr align 8 @_j_const_4, i64 8, i1 false), !dbg !446, !tbaa !38, !alias.scope !300, !noalias !301 br label %L213, !dbg !446 L213: ; preds = %L204 %159 = getelementptr inbounds i8, ptr %"new::Tuple221", i32 0, !dbg !380 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %159, ptr align 8 %"new::Extruded", i64 24, i1 false), !dbg !380, !tbaa !61, !alias.scope !63, !noalias !64 br label %L215, !dbg !380 L215: ; preds = %L213 %160 = getelementptr inbounds i8, ptr %"new::Broadcasted", i32 0, !dbg !448 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %160, ptr align 8 %"new::Tuple221", i64 24, i1 false), !dbg !448, !tbaa !61, !alias.scope !63, !noalias !64 %161 = getelementptr inbounds i8, ptr %"new::Broadcasted", i32 24, !dbg !448 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %161, ptr align 8 %"new::Tuple", i64 8, i1 false), !dbg !448, !tbaa !61, !alias.scope !63, !noalias !64 br label %L217, !dbg !448 L217: ; preds = %L215 %.Tlast.size.unbox222 = load i64, ptr %.Tlast.size, align 8, !dbg !450, !tbaa !61, !alias.scope !63, !noalias !64 %162 = icmp slt i64 0, %.Tlast.size.unbox222, !dbg !450 %163 = xor i1 %162, true, !dbg !451 br i1 %163, label %L282, label %L219, !dbg !451 L219: ; preds = %L217 br label %L220, !dbg !295 L220: ; preds = %load283, %L219 %value_phi223 = phi i64 [ 0, %L219 ], [ %470, %load283 ] %.Tlast.size.unbox224 = load i64, ptr %.Tlast.size, align 8, !dbg !458, !tbaa !61, !alias.scope !63, !noalias !64 %164 = icmp slt i64 %value_phi223, %.Tlast.size.unbox224, !dbg !458 %165 = xor i1 %164, true, !dbg !459 br i1 %165, label %L282, label %L223, !dbg !459 L223: ; preds = %L220 %166 = add i64 %value_phi223, 1, !dbg !460 br i1 false, label %L233, label %L226, !dbg !464 L226: ; preds = %L223 %167 = getelementptr inbounds i8, ptr %"new::Tuple225", i32 0, !dbg !464 store i64 %166, ptr %167, align 8, !dbg !464, !tbaa !61, !alias.scope !63, !noalias !64 %168 = sub i64 %166, 1, !dbg !468 %bitcast226 = load i64, ptr %.Tlast.size, align 8, !dbg !472, !tbaa !61, !alias.scope !63, !noalias !64 %169 = icmp ult i64 %168, %bitcast226, !dbg !474 %170 = xor i1 %169, true, !dbg !471 br i1 %170, label %L265, label %L232, !dbg !471 L232: ; preds = %L226 br label %L233, !dbg !471 L233: ; preds = %L232, %L223 br i1 false, label %L241, label %L235, !dbg !475 L235: ; preds = %L233 %171 = sub i64 %166, 1, !dbg !481 %bitcast227 = load i64, ptr %.Tlast.size, align 8, !dbg !485, !tbaa !61, !alias.scope !63, !noalias !64 %172 = icmp ult i64 %171, %bitcast227, !dbg !487 %173 = xor i1 %172, true, !dbg !483 br i1 %173, label %L267, label %L240, !dbg !483 L240: ; preds = %L235 br label %L241, !dbg !483 L241: ; preds = %L240, %L233 %ifelse_cond = xor i1 %154, true, !dbg !488 %174 = select i1 %ifelse_cond, i64 1, i64 %166, !dbg !488 br i1 false, label %L252, label %L244, !dbg !497 L244: ; preds = %L241 %175 = sub i64 %174, 1, !dbg !499 %176 = addrspacecast ptr addrspace(10) %value_phi219 to ptr addrspace(11), !dbg !502 %value_phi219.size_ptr228 = getelementptr inbounds i8, ptr addrspace(11) %176, i32 16, !dbg !502 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 !502, !tbaa !38, !alias.scope !59, !noalias !60 %bitcast230 = load i64, ptr %value_phi219.size229, align 8, !dbg !499, !tbaa !61, !alias.scope !63, !noalias !64 %177 = icmp ult i64 %175, %bitcast230, !dbg !499 %178 = xor i1 %177, true, !dbg !501 br i1 %178, label %L270, label %L251, !dbg !501 L251: ; preds = %L244 br label %L252, !dbg !501 L252: ; preds = %L251, %L241 %179 = addrspacecast ptr addrspace(10) %value_phi219 to ptr addrspace(11), !dbg !504 %180 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %179, i32 0, i32 0, !dbg !504 %memoryref_data231 = load ptr, ptr addrspace(11) %180, align 8, !dbg !504, !tbaa !66, !alias.scope !69, !noalias !70 %181 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %179, i32 0, i32 1, !dbg !504 %memoryref_mem251 = load ptr addrspace(10), ptr addrspace(11) %181, align 8, !dbg !504, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %182 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data231, 0, !dbg !504 %value_phi219.ref = insertvalue { ptr, ptr addrspace(10) } %182, ptr addrspace(10) %memoryref_mem251, 1, !dbg !504 %memoryref_offset233 = sub i64 %174, 1, !dbg !504 %183 = addrspacecast ptr addrspace(10) %memoryref_mem251 to ptr addrspace(11), !dbg !504 %184 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %183, i32 0, i32 0, !dbg !504 %memory_len234 = load i64, ptr addrspace(11) %184, align 8, !dbg !504, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %185 = add nuw i64 %memory_len234, %memory_len234, !dbg !504 %186 = add i64 %memoryref_offset233, %memory_len234, !dbg !504 %memoryref_ovflw235 = icmp uge i64 %186, %185, !dbg !504 %memoryref_byteoffset236 = mul i64 %memoryref_offset233, 8, !dbg !504 %memoryref_data_byteoffset237 = getelementptr i8, ptr %memoryref_data231, i64 %memoryref_byteoffset236, !dbg !504 %187 = addrspacecast ptr addrspace(10) %memoryref_mem251 to ptr addrspace(11), !dbg !504 %188 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %187, i32 0, i32 0, !dbg !504 %memory_len238 = load i64, ptr addrspace(11) %188, align 8, !dbg !504, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %189 = addrspacecast ptr addrspace(10) %memoryref_mem251 to ptr addrspace(11), !dbg !504 %memory_data_ptr239 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %189, i32 0, i32 1, !dbg !504 %memory_data240 = load ptr, ptr addrspace(11) %memory_data_ptr239, align 8, !dbg !504, !tbaa !74, !alias.scope !69, !noalias !70, !nonnull !0 %190 = ptrtoint ptr %memory_data240 to i64, !dbg !504 %191 = ptrtoint ptr %memoryref_data_byteoffset237 to i64, !dbg !504 %192 = sub i64 %191, %190, !dbg !504 %memoryref_bytelen241 = mul nuw nsw i64 %memory_len238, 8, !dbg !504 %memoryref_isinbounds242 = icmp ult i64 %192, %memoryref_bytelen241, !dbg !504 %193 = xor i1 %memoryref_ovflw235, true, !dbg !504 %"memoryref_isinbounds¬ovflw243" = and i1 %193, %memoryref_isinbounds242, !dbg !504 br i1 %"memoryref_isinbounds¬ovflw243", label %idxend249, label %oob244, !dbg !504 L257: ; preds = %load254 %194 = sub i64 %166, 1, !dbg !505 %195 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !510 %.Tlast.size_ptr256 = getelementptr inbounds i8, ptr addrspace(11) %195, i32 16, !dbg !510 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 !510, !tbaa !38, !alias.scope !59, !noalias !60 %bitcast258 = load i64, ptr %.Tlast.size257, align 8, !dbg !505, !tbaa !61, !alias.scope !63, !noalias !64 %196 = icmp ult i64 %194, %bitcast258, !dbg !505 %197 = xor i1 %196, true, !dbg !506 br i1 %197, label %L273, label %L264, !dbg !506 L264: ; preds = %L257 br label %L276, !dbg !506 L265: ; preds = %L226 %198 = addrspacecast ptr %"new::OneTo" to ptr addrspace(11), !dbg !471 %199 = addrspacecast ptr %"new::Tuple225" to ptr addrspace(11), !dbg !471 call void @julia_throw_boundserror_35123(ptr addrspace(11) nocapture readonly %198, ptr addrspace(11) nocapture readonly %199) #26, !dbg !471 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !471 unreachable, !dbg !471 L267: ; preds = %L235 %200 = getelementptr inbounds i8, ptr %"new::Tuple291", i32 0, !dbg !483 store i64 %166, ptr %200, align 8, !dbg !483, !tbaa !61, !alias.scope !63, !noalias !64 %201 = getelementptr inbounds i8, ptr %0, i32 0, !dbg !483 store ptr addrspace(10) %value_phi219, ptr %201, align 8, !dbg !483 %202 = addrspacecast ptr %"new::Broadcasted" to ptr addrspace(11), !dbg !483 %203 = addrspacecast ptr %"new::Tuple291" to ptr addrspace(11), !dbg !483 call void @julia_throw_boundserror_35120(ptr addrspace(11) nocapture readonly %202, ptr nocapture readonly %0, ptr addrspace(11) nocapture readonly %203) #26, !dbg !483 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !483 unreachable, !dbg !483 L270: ; preds = %L244 %204 = getelementptr inbounds i8, ptr %"new::Tuple288", i32 0, !dbg !501 store i64 %174, ptr %204, align 8, !dbg !501, !tbaa !61, !alias.scope !63, !noalias !64 %205 = addrspacecast ptr %"new::Tuple288" to ptr addrspace(11), !dbg !501 call void @julia_throw_boundserror_35084(ptr addrspace(10) %value_phi219, ptr addrspace(11) nocapture readonly %205) #26, !dbg !501 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !501 unreachable, !dbg !501 L273: ; preds = %L257 %206 = getelementptr inbounds i8, ptr %"new::Tuple285", i32 0, !dbg !506 store i64 %166, ptr %206, align 8, !dbg !506, !tbaa !61, !alias.scope !63, !noalias !64 %207 = addrspacecast ptr %"new::Tuple285" to ptr addrspace(11), !dbg !506 call void @julia_throw_boundserror_35084(ptr addrspace(10) %.Tlast, ptr addrspace(11) nocapture readonly %207) #26, !dbg !506 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !506 unreachable, !dbg !506 L276: ; preds = %L264, %load254 %208 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !512 %209 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %208, i32 0, i32 0, !dbg !512 %memoryref_data260 = load ptr, ptr addrspace(11) %209, align 8, !dbg !512, !tbaa !66, !alias.scope !69, !noalias !70 %210 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %208, i32 0, i32 1, !dbg !512 %memoryref_mem280 = load ptr addrspace(10), ptr addrspace(11) %210, align 8, !dbg !512, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %211 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data260, 0, !dbg !512 %.Tlast.ref259 = insertvalue { ptr, ptr addrspace(10) } %211, ptr addrspace(10) %memoryref_mem280, 1, !dbg !512 %memoryref_offset262 = sub i64 %166, 1, !dbg !513 %212 = addrspacecast ptr addrspace(10) %memoryref_mem280 to ptr addrspace(11), !dbg !513 %213 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %212, i32 0, i32 0, !dbg !513 %memory_len263 = load i64, ptr addrspace(11) %213, align 8, !dbg !513, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %214 = add nuw i64 %memory_len263, %memory_len263, !dbg !513 %215 = add i64 %memoryref_offset262, %memory_len263, !dbg !513 %memoryref_ovflw264 = icmp uge i64 %215, %214, !dbg !513 %memoryref_byteoffset265 = mul i64 %memoryref_offset262, 8, !dbg !513 %memoryref_data_byteoffset266 = getelementptr i8, ptr %memoryref_data260, i64 %memoryref_byteoffset265, !dbg !513 %216 = addrspacecast ptr addrspace(10) %memoryref_mem280 to ptr addrspace(11), !dbg !513 %217 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %216, i32 0, i32 0, !dbg !513 %memory_len267 = load i64, ptr addrspace(11) %217, align 8, !dbg !513, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %218 = addrspacecast ptr addrspace(10) %memoryref_mem280 to ptr addrspace(11), !dbg !513 %memory_data_ptr268 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %218, i32 0, i32 1, !dbg !513 %memory_data269 = load ptr, ptr addrspace(11) %memory_data_ptr268, align 8, !dbg !513, !tbaa !74, !alias.scope !69, !noalias !70, !nonnull !0 %219 = ptrtoint ptr %memory_data269 to i64, !dbg !513 %220 = ptrtoint ptr %memoryref_data_byteoffset266 to i64, !dbg !513 %221 = sub i64 %220, %219, !dbg !513 %memoryref_bytelen270 = mul nuw nsw i64 %memory_len267, 8, !dbg !513 %memoryref_isinbounds271 = icmp ult i64 %221, %memoryref_bytelen270, !dbg !513 %222 = xor i1 %memoryref_ovflw264, true, !dbg !513 %"memoryref_isinbounds¬ovflw272" = and i1 %222, %memoryref_isinbounds271, !dbg !513 br i1 %"memoryref_isinbounds¬ovflw272", label %idxend278, label %oob273, !dbg !513 L282: ; preds = %L220, %L217 br label %L283, !dbg !453 L283: ; preds = %L282 br label %L286, !dbg !514 L284: ; preds = %L38 %223 = addrspacecast ptr %"new::Tuple4" to ptr addrspace(11), !dbg !249 %224 = addrspacecast ptr %"new::Tuple" to ptr addrspace(11), !dbg !249 call void @julia_throwdm_35114(ptr addrspace(11) nocapture readonly %223, ptr addrspace(11) nocapture readonly %224) #26, !dbg !249 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !249 unreachable, !dbg !249 L286: ; preds = %L283, %L136 br label %L287, !dbg !375 L287: ; preds = %L286 br label %L288, !dbg !209 L288: ; preds = %L287 br label %L289, !dbg !212 L289: ; preds = %L288 %225 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !515 %.Tnext13 = load atomic ptr addrspace(10), ptr addrspace(11) %225 unordered, align 8, !dbg !515, !tbaa !200, !alias.scope !183, !noalias !184, !nonnull !0, !dereferenceable !202, !align !35 %226 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !517 %.Tlast_ptr14 = getelementptr inbounds i8, ptr addrspace(11) %226, i32 8, !dbg !517 %.Tlast15 = load atomic ptr addrspace(10), ptr addrspace(11) %.Tlast_ptr14 unordered, align 8, !dbg !517, !tbaa !200, !alias.scope !183, !noalias !184, !nonnull !0, !dereferenceable !202, !align !35 %227 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !519 %".\CE\BB_ptr" = getelementptr inbounds i8, ptr addrspace(11) %227, i32 24, !dbg !519 %".\CE\BB" = load double, ptr addrspace(11) %".\CE\BB_ptr", align 8, !dbg !519, !tbaa !200, !alias.scope !183, !noalias !184 %228 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !521 %.n_ptr = getelementptr inbounds i8, ptr addrspace(11) %228, i32 16, !dbg !521 %.n = load i64, ptr addrspace(11) %.n_ptr, align 8, !dbg !521, !tbaa !200, !alias.scope !183, !noalias !184 %229 = sub i64 %.n, 1, !dbg !523 %230 = icmp sle i64 2, %229, !dbg !525 %231 = xor i1 %230, true, !dbg !527 br i1 %231, label %L298, label %L297, !dbg !527 L297: ; preds = %L289 br label %L299, !dbg !527 L298: ; preds = %L289 br label %L299, !dbg !530 L299: ; preds = %L298, %L297 %value_phi16 = phi i64 [ %229, %L297 ], [ 1, %L298 ] br label %L301, !dbg !528 L301: ; preds = %L299 br label %L302, !dbg !528 L302: ; preds = %L301 %232 = icmp slt i64 %value_phi16, 2, !dbg !533 %233 = xor i1 %232, true, !dbg !536 br i1 %233, label %L305, label %L304, !dbg !536 L304: ; preds = %L302 br label %L306, !dbg !536 L305: ; preds = %L302 br label %L306, !dbg !536 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 !524 %235 = xor i1 %234, true, !dbg !524 %236 = xor i1 %235, true, !dbg !524 br i1 %236, label %L421, label %L306.L311_crit_edge, !dbg !524 L306.L311_crit_edge: ; preds = %L306 br label %L311, !dbg !536 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 !531 L315: ; preds = %L311 %237 = sub i64 %value_phi20, 1, !dbg !537 %238 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !538 %.Tlast15.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %238, i32 16, !dbg !538 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 !538, !tbaa !38, !alias.scope !59, !noalias !60 %bitcast = load i64, ptr %.Tlast15.size, align 8, !dbg !537, !tbaa !61, !alias.scope !63, !noalias !64 %239 = icmp ult i64 %237, %bitcast, !dbg !537 %240 = xor i1 %239, true, !dbg !530 br i1 %240, label %L323, label %L322, !dbg !530 L322: ; preds = %L315 br label %L326, !dbg !530 L323: ; preds = %L315 %241 = getelementptr inbounds i8, ptr %"new::Tuple156", i32 0, !dbg !530 store i64 %value_phi20, ptr %241, align 8, !dbg !530, !tbaa !61, !alias.scope !63, !noalias !64 %242 = addrspacecast ptr %"new::Tuple156" to ptr addrspace(11), !dbg !530 call void @julia_throw_boundserror_35084(ptr addrspace(10) %.Tlast15, ptr addrspace(11) nocapture readonly %242) #26, !dbg !530 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !530 unreachable, !dbg !530 L326: ; preds = %L322 br label %L327, !dbg !530 L327: ; preds = %L326, %L311 %243 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !540 %244 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %243, i32 0, i32 0, !dbg !540 %memoryref_data = load ptr, ptr addrspace(11) %244, align 8, !dbg !540, !tbaa !66, !alias.scope !69, !noalias !70 %245 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %243, i32 0, i32 1, !dbg !540 %memoryref_mem = load ptr addrspace(10), ptr addrspace(11) %245, align 8, !dbg !540, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %246 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data, 0, !dbg !540 %.Tlast15.ref = insertvalue { ptr, ptr addrspace(10) } %246, ptr addrspace(10) %memoryref_mem, 1, !dbg !540 %memoryref_offset = sub i64 %value_phi20, 1, !dbg !540 %247 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !540 %248 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %247, i32 0, i32 0, !dbg !540 %memory_len = load i64, ptr addrspace(11) %248, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %249 = add nuw i64 %memory_len, %memory_len, !dbg !540 %250 = add i64 %memoryref_offset, %memory_len, !dbg !540 %memoryref_ovflw = icmp uge i64 %250, %249, !dbg !540 %memoryref_byteoffset = mul i64 %memoryref_offset, 8, !dbg !540 %memoryref_data_byteoffset = getelementptr i8, ptr %memoryref_data, i64 %memoryref_byteoffset, !dbg !540 %251 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !540 %252 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %251, i32 0, i32 0, !dbg !540 %memory_len22 = load i64, ptr addrspace(11) %252, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %253 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !540 %memory_data_ptr = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %253, i32 0, i32 1, !dbg !540 %memory_data = load ptr, ptr addrspace(11) %memory_data_ptr, align 8, !dbg !540, !tbaa !74, !alias.scope !69, !noalias !70, !nonnull !0 %254 = ptrtoint ptr %memory_data to i64, !dbg !540 %255 = ptrtoint ptr %memoryref_data_byteoffset to i64, !dbg !540 %256 = sub i64 %255, %254, !dbg !540 %memoryref_bytelen = mul nuw nsw i64 %memory_len22, 8, !dbg !540 %memoryref_isinbounds = icmp ult i64 %256, %memoryref_bytelen, !dbg !540 %257 = xor i1 %memoryref_ovflw, true, !dbg !540 %"memoryref_isinbounds¬ovflw" = and i1 %257, %memoryref_isinbounds, !dbg !540 br i1 %"memoryref_isinbounds¬ovflw", label %idxend, label %oob, !dbg !540 L331: ; preds = %load %258 = sub i64 %value_phi20, 1, !dbg !541 br i1 false, label %L346, label %L334, !dbg !531 L334: ; preds = %L331 %259 = sub i64 %258, 1, !dbg !537 %260 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !538 %.Tlast15.size_ptr27 = getelementptr inbounds i8, ptr addrspace(11) %260, i32 16, !dbg !538 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 !538, !tbaa !38, !alias.scope !59, !noalias !60 %bitcast29 = load i64, ptr %.Tlast15.size28, align 8, !dbg !537, !tbaa !61, !alias.scope !63, !noalias !64 %261 = icmp ult i64 %259, %bitcast29, !dbg !537 %262 = xor i1 %261, true, !dbg !530 br i1 %262, label %L342, label %L341, !dbg !530 L341: ; preds = %L334 br label %L345, !dbg !530 L342: ; preds = %L334 %263 = getelementptr inbounds i8, ptr %"new::Tuple153", i32 0, !dbg !530 store i64 %258, ptr %263, align 8, !dbg !530, !tbaa !61, !alias.scope !63, !noalias !64 %264 = addrspacecast ptr %"new::Tuple153" to ptr addrspace(11), !dbg !530 call void @julia_throw_boundserror_35084(ptr addrspace(10) %.Tlast15, ptr addrspace(11) nocapture readonly %264) #26, !dbg !530 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !530 unreachable, !dbg !530 L345: ; preds = %L341 br label %L346, !dbg !530 L346: ; preds = %L345, %L331 %265 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !540 %266 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %265, i32 0, i32 0, !dbg !540 %memoryref_data31 = load ptr, ptr addrspace(11) %266, align 8, !dbg !540, !tbaa !66, !alias.scope !69, !noalias !70 %267 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %265, i32 0, i32 1, !dbg !540 %memoryref_mem51 = load ptr addrspace(10), ptr addrspace(11) %267, align 8, !dbg !540, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %268 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data31, 0, !dbg !540 %.Tlast15.ref30 = insertvalue { ptr, ptr addrspace(10) } %268, ptr addrspace(10) %memoryref_mem51, 1, !dbg !540 %memoryref_offset33 = sub i64 %258, 1, !dbg !540 %269 = addrspacecast ptr addrspace(10) %memoryref_mem51 to ptr addrspace(11), !dbg !540 %270 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %269, i32 0, i32 0, !dbg !540 %memory_len34 = load i64, ptr addrspace(11) %270, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %271 = add nuw i64 %memory_len34, %memory_len34, !dbg !540 %272 = add i64 %memoryref_offset33, %memory_len34, !dbg !540 %memoryref_ovflw35 = icmp uge i64 %272, %271, !dbg !540 %memoryref_byteoffset36 = mul i64 %memoryref_offset33, 8, !dbg !540 %memoryref_data_byteoffset37 = getelementptr i8, ptr %memoryref_data31, i64 %memoryref_byteoffset36, !dbg !540 %273 = addrspacecast ptr addrspace(10) %memoryref_mem51 to ptr addrspace(11), !dbg !540 %274 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %273, i32 0, i32 0, !dbg !540 %memory_len38 = load i64, ptr addrspace(11) %274, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %275 = addrspacecast ptr addrspace(10) %memoryref_mem51 to ptr addrspace(11), !dbg !540 %memory_data_ptr39 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %275, i32 0, i32 1, !dbg !540 %memory_data40 = load ptr, ptr addrspace(11) %memory_data_ptr39, align 8, !dbg !540, !tbaa !74, !alias.scope !69, !noalias !70, !nonnull !0 %276 = ptrtoint ptr %memory_data40 to i64, !dbg !540 %277 = ptrtoint ptr %memoryref_data_byteoffset37 to i64, !dbg !540 %278 = sub i64 %277, %276, !dbg !540 %memoryref_bytelen41 = mul nuw nsw i64 %memory_len38, 8, !dbg !540 %memoryref_isinbounds42 = icmp ult i64 %278, %memoryref_bytelen41, !dbg !540 %279 = xor i1 %memoryref_ovflw35, true, !dbg !540 %"memoryref_isinbounds¬ovflw43" = and i1 %279, %memoryref_isinbounds42, !dbg !540 br i1 %"memoryref_isinbounds¬ovflw43", label %idxend49, label %oob44, !dbg !540 L350: ; preds = %load54 br i1 false, label %L364, label %L352, !dbg !531 L352: ; preds = %L350 %280 = sub i64 %value_phi20, 1, !dbg !537 %281 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !538 %.Tlast15.size_ptr56 = getelementptr inbounds i8, ptr addrspace(11) %281, i32 16, !dbg !538 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 !538, !tbaa !38, !alias.scope !59, !noalias !60 %bitcast58 = load i64, ptr %.Tlast15.size57, align 8, !dbg !537, !tbaa !61, !alias.scope !63, !noalias !64 %282 = icmp ult i64 %280, %bitcast58, !dbg !537 %283 = xor i1 %282, true, !dbg !530 br i1 %283, label %L360, label %L359, !dbg !530 L359: ; preds = %L352 br label %L363, !dbg !530 L360: ; preds = %L352 %284 = getelementptr inbounds i8, ptr %"new::Tuple150", i32 0, !dbg !530 store i64 %value_phi20, ptr %284, align 8, !dbg !530, !tbaa !61, !alias.scope !63, !noalias !64 %285 = addrspacecast ptr %"new::Tuple150" to ptr addrspace(11), !dbg !530 call void @julia_throw_boundserror_35084(ptr addrspace(10) %.Tlast15, ptr addrspace(11) nocapture readonly %285) #26, !dbg !530 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !530 unreachable, !dbg !530 L363: ; preds = %L359 br label %L364, !dbg !530 L364: ; preds = %L363, %L350 %286 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !540 %287 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %286, i32 0, i32 0, !dbg !540 %memoryref_data60 = load ptr, ptr addrspace(11) %287, align 8, !dbg !540, !tbaa !66, !alias.scope !69, !noalias !70 %288 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %286, i32 0, i32 1, !dbg !540 %memoryref_mem80 = load ptr addrspace(10), ptr addrspace(11) %288, align 8, !dbg !540, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %289 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data60, 0, !dbg !540 %.Tlast15.ref59 = insertvalue { ptr, ptr addrspace(10) } %289, ptr addrspace(10) %memoryref_mem80, 1, !dbg !540 %memoryref_offset62 = sub i64 %value_phi20, 1, !dbg !540 %290 = addrspacecast ptr addrspace(10) %memoryref_mem80 to ptr addrspace(11), !dbg !540 %291 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %290, i32 0, i32 0, !dbg !540 %memory_len63 = load i64, ptr addrspace(11) %291, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %292 = add nuw i64 %memory_len63, %memory_len63, !dbg !540 %293 = add i64 %memoryref_offset62, %memory_len63, !dbg !540 %memoryref_ovflw64 = icmp uge i64 %293, %292, !dbg !540 %memoryref_byteoffset65 = mul i64 %memoryref_offset62, 8, !dbg !540 %memoryref_data_byteoffset66 = getelementptr i8, ptr %memoryref_data60, i64 %memoryref_byteoffset65, !dbg !540 %294 = addrspacecast ptr addrspace(10) %memoryref_mem80 to ptr addrspace(11), !dbg !540 %295 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %294, i32 0, i32 0, !dbg !540 %memory_len67 = load i64, ptr addrspace(11) %295, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %296 = addrspacecast ptr addrspace(10) %memoryref_mem80 to ptr addrspace(11), !dbg !540 %memory_data_ptr68 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %296, i32 0, i32 1, !dbg !540 %memory_data69 = load ptr, ptr addrspace(11) %memory_data_ptr68, align 8, !dbg !540, !tbaa !74, !alias.scope !69, !noalias !70, !nonnull !0 %297 = ptrtoint ptr %memory_data69 to i64, !dbg !540 %298 = ptrtoint ptr %memoryref_data_byteoffset66 to i64, !dbg !540 %299 = sub i64 %298, %297, !dbg !540 %memoryref_bytelen70 = mul nuw nsw i64 %memory_len67, 8, !dbg !540 %memoryref_isinbounds71 = icmp ult i64 %299, %memoryref_bytelen70, !dbg !540 %300 = xor i1 %memoryref_ovflw64, true, !dbg !540 %"memoryref_isinbounds¬ovflw72" = and i1 %300, %memoryref_isinbounds71, !dbg !540 br i1 %"memoryref_isinbounds¬ovflw72", label %idxend78, label %oob73, !dbg !540 L368: ; preds = %load83 %301 = fmul double 2.000000e+00, %394, !dbg !542 %302 = fsub double %383, %301, !dbg !546 %303 = add i64 %value_phi20, 1, !dbg !548 br i1 false, label %L385, label %L373, !dbg !531 L373: ; preds = %L368 %304 = sub i64 %303, 1, !dbg !537 %305 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !538 %.Tlast15.size_ptr85 = getelementptr inbounds i8, ptr addrspace(11) %305, i32 16, !dbg !538 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 !538, !tbaa !38, !alias.scope !59, !noalias !60 %bitcast87 = load i64, ptr %.Tlast15.size86, align 8, !dbg !537, !tbaa !61, !alias.scope !63, !noalias !64 %306 = icmp ult i64 %304, %bitcast87, !dbg !537 %307 = xor i1 %306, true, !dbg !530 br i1 %307, label %L381, label %L380, !dbg !530 L380: ; preds = %L373 br label %L384, !dbg !530 L381: ; preds = %L373 %308 = getelementptr inbounds i8, ptr %"new::Tuple147", i32 0, !dbg !530 store i64 %303, ptr %308, align 8, !dbg !530, !tbaa !61, !alias.scope !63, !noalias !64 %309 = addrspacecast ptr %"new::Tuple147" to ptr addrspace(11), !dbg !530 call void @julia_throw_boundserror_35084(ptr addrspace(10) %.Tlast15, ptr addrspace(11) nocapture readonly %309) #26, !dbg !530 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !530 unreachable, !dbg !530 L384: ; preds = %L380 br label %L385, !dbg !530 L385: ; preds = %L384, %L368 %310 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !540 %311 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %310, i32 0, i32 0, !dbg !540 %memoryref_data89 = load ptr, ptr addrspace(11) %311, align 8, !dbg !540, !tbaa !66, !alias.scope !69, !noalias !70 %312 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %310, i32 0, i32 1, !dbg !540 %memoryref_mem109 = load ptr addrspace(10), ptr addrspace(11) %312, align 8, !dbg !540, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %313 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data89, 0, !dbg !540 %.Tlast15.ref88 = insertvalue { ptr, ptr addrspace(10) } %313, ptr addrspace(10) %memoryref_mem109, 1, !dbg !540 %memoryref_offset91 = sub i64 %303, 1, !dbg !540 %314 = addrspacecast ptr addrspace(10) %memoryref_mem109 to ptr addrspace(11), !dbg !540 %315 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %314, i32 0, i32 0, !dbg !540 %memory_len92 = load i64, ptr addrspace(11) %315, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %316 = add nuw i64 %memory_len92, %memory_len92, !dbg !540 %317 = add i64 %memoryref_offset91, %memory_len92, !dbg !540 %memoryref_ovflw93 = icmp uge i64 %317, %316, !dbg !540 %memoryref_byteoffset94 = mul i64 %memoryref_offset91, 8, !dbg !540 %memoryref_data_byteoffset95 = getelementptr i8, ptr %memoryref_data89, i64 %memoryref_byteoffset94, !dbg !540 %318 = addrspacecast ptr addrspace(10) %memoryref_mem109 to ptr addrspace(11), !dbg !540 %319 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %318, i32 0, i32 0, !dbg !540 %memory_len96 = load i64, ptr addrspace(11) %319, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %320 = addrspacecast ptr addrspace(10) %memoryref_mem109 to ptr addrspace(11), !dbg !540 %memory_data_ptr97 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %320, i32 0, i32 1, !dbg !540 %memory_data98 = load ptr, ptr addrspace(11) %memory_data_ptr97, align 8, !dbg !540, !tbaa !74, !alias.scope !69, !noalias !70, !nonnull !0 %321 = ptrtoint ptr %memory_data98 to i64, !dbg !540 %322 = ptrtoint ptr %memoryref_data_byteoffset95 to i64, !dbg !540 %323 = sub i64 %322, %321, !dbg !540 %memoryref_bytelen99 = mul nuw nsw i64 %memory_len96, 8, !dbg !540 %memoryref_isinbounds100 = icmp ult i64 %323, %memoryref_bytelen99, !dbg !540 %324 = xor i1 %memoryref_ovflw93, true, !dbg !540 %"memoryref_isinbounds¬ovflw101" = and i1 %324, %memoryref_isinbounds100, !dbg !540 br i1 %"memoryref_isinbounds¬ovflw101", label %idxend107, label %oob102, !dbg !540 L389: ; preds = %load112 %325 = fadd double %302, %405, !dbg !549 %326 = fmul double %".\CE\BB", %325, !dbg !551 %327 = fadd double %372, %326, !dbg !549 br i1 false, label %L405, label %L394, !dbg !552 L394: ; preds = %L389 %328 = sub i64 %value_phi20, 1, !dbg !554 %329 = addrspacecast ptr addrspace(10) %.Tnext13 to ptr addrspace(11), !dbg !555 %.Tnext13.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %329, i32 16, !dbg !555 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 !555, !tbaa !38, !alias.scope !59, !noalias !60 %bitcast114 = load i64, ptr %.Tnext13.size, align 8, !dbg !554, !tbaa !61, !alias.scope !63, !noalias !64 %330 = icmp ult i64 %328, %bitcast114, !dbg !554 %331 = xor i1 %330, true, !dbg !552 br i1 %331, label %L402, label %L401, !dbg !552 L401: ; preds = %L394 br label %L405, !dbg !552 L402: ; preds = %L394 %332 = getelementptr inbounds i8, ptr %"new::Tuple146", i32 0, !dbg !552 store i64 %value_phi20, ptr %332, align 8, !dbg !552, !tbaa !61, !alias.scope !63, !noalias !64 %333 = addrspacecast ptr %"new::Tuple146" to ptr addrspace(11), !dbg !552 call void @julia_throw_boundserror_35084(ptr addrspace(10) %.Tnext13, ptr addrspace(11) nocapture readonly %333) #26, !dbg !552 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !552 unreachable, !dbg !552 L405: ; preds = %L401, %L389 %334 = addrspacecast ptr addrspace(10) %.Tnext13 to ptr addrspace(11), !dbg !557 %335 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %334, i32 0, i32 0, !dbg !557 %memoryref_data115 = load ptr, ptr addrspace(11) %335, align 8, !dbg !557, !tbaa !66, !alias.scope !69, !noalias !70 %336 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %334, i32 0, i32 1, !dbg !557 %memoryref_mem135 = load ptr addrspace(10), ptr addrspace(11) %336, align 8, !dbg !557, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %337 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data115, 0, !dbg !557 %.Tnext13.ref = insertvalue { ptr, ptr addrspace(10) } %337, ptr addrspace(10) %memoryref_mem135, 1, !dbg !557 %memoryref_offset117 = sub i64 %value_phi20, 1, !dbg !558 %338 = addrspacecast ptr addrspace(10) %memoryref_mem135 to ptr addrspace(11), !dbg !558 %339 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %338, i32 0, i32 0, !dbg !558 %memory_len118 = load i64, ptr addrspace(11) %339, align 8, !dbg !558, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %340 = add nuw i64 %memory_len118, %memory_len118, !dbg !558 %341 = add i64 %memoryref_offset117, %memory_len118, !dbg !558 %memoryref_ovflw119 = icmp uge i64 %341, %340, !dbg !558 %memoryref_byteoffset120 = mul i64 %memoryref_offset117, 8, !dbg !558 %memoryref_data_byteoffset121 = getelementptr i8, ptr %memoryref_data115, i64 %memoryref_byteoffset120, !dbg !558 %342 = addrspacecast ptr addrspace(10) %memoryref_mem135 to ptr addrspace(11), !dbg !558 %343 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %342, i32 0, i32 0, !dbg !558 %memory_len122 = load i64, ptr addrspace(11) %343, align 8, !dbg !558, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %344 = addrspacecast ptr addrspace(10) %memoryref_mem135 to ptr addrspace(11), !dbg !558 %memory_data_ptr123 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %344, i32 0, i32 1, !dbg !558 %memory_data124 = load ptr, ptr addrspace(11) %memory_data_ptr123, align 8, !dbg !558, !tbaa !74, !alias.scope !69, !noalias !70, !nonnull !0 %345 = ptrtoint ptr %memory_data124 to i64, !dbg !558 %346 = ptrtoint ptr %memoryref_data_byteoffset121 to i64, !dbg !558 %347 = sub i64 %346, %345, !dbg !558 %memoryref_bytelen125 = mul nuw nsw i64 %memory_len122, 8, !dbg !558 %memoryref_isinbounds126 = icmp ult i64 %347, %memoryref_bytelen125, !dbg !558 %348 = xor i1 %memoryref_ovflw119, true, !dbg !558 %"memoryref_isinbounds¬ovflw127" = and i1 %348, %memoryref_isinbounds126, !dbg !558 br i1 %"memoryref_isinbounds¬ovflw127", label %idxend133, label %oob128, !dbg !558 L409: ; preds = %load138 br label %L410, !dbg !553 L410: ; preds = %L409 %349 = icmp eq i64 %value_phi21, %value_phi16, !dbg !559 %350 = xor i1 %349, true, !dbg !295 br i1 %350, label %L413, label %L412, !dbg !295 L412: ; preds = %L410 br label %L415, !dbg !295 L413: ; preds = %L410 %351 = add i64 %value_phi21, 1, !dbg !560 br label %L415, !dbg !295 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 !297 %353 = xor i1 %352, true, !dbg !297 %354 = xor i1 %353, true, !dbg !297 br i1 %354, label %L421, label %L420, !dbg !297 L420: ; preds = %L415 br label %L311, !dbg !536 L421: ; preds = %L415, %L306 br label %L422, !dbg !562 L422: ; preds = %L421 %355 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !563 %.tsteps_ptr = getelementptr inbounds i8, ptr addrspace(11) %355, i32 32, !dbg !563 %.tsteps = load i64, ptr addrspace(11) %.tsteps_ptr, align 8, !dbg !563, !tbaa !200, !alias.scope !183, !noalias !184 %356 = add i64 %.tsteps, 1, !dbg !565 %357 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !566 %.tsteps_ptr143 = getelementptr inbounds i8, ptr addrspace(11) %357, i32 32, !dbg !566 store i64 %356, ptr addrspace(11) %.tsteps_ptr143, align 8, !dbg !566, !tbaa !200, !alias.scope !183, !noalias !184 %358 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !568 %.tsteps_ptr144 = getelementptr inbounds i8, ptr addrspace(11) %358, i32 32, !dbg !568 %.tsteps145 = load i64, ptr addrspace(11) %.tsteps_ptr144, align 8, !dbg !568, !tbaa !200, !alias.scope !183, !noalias !184 %359 = getelementptr inbounds i8, ptr addrspace(11) %"#self#::#sumheat##2#sumheat##3", i32 8, !dbg !569 %.unbox = load i64, ptr addrspace(11) %359, align 8, !dbg !570, !tbaa !23, !alias.scope !26, !noalias !29 %360 = icmp sle i64 %.tsteps145, %.unbox, !dbg !570 %361 = zext i1 %360 to i8, !dbg !569 ret i8 %361, !dbg !569 oob: ; preds = %L327 %"+Core.GenericMemoryRef#35077" = load ptr, ptr @_Core_GenericMemoryRef_35077, align 8, !dbg !540, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %GenericMemoryRef = ptrtoint ptr %"+Core.GenericMemoryRef#35077" to i64, !dbg !540 %362 = inttoptr i64 %GenericMemoryRef to ptr, !dbg !540 %current_task23 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !540 %363 = addrspacecast ptr %362 to ptr addrspace(10), !dbg !540 %"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 !540 %364 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef" to ptr addrspace(11), !dbg !540 store { ptr, ptr addrspace(10) } %.Tlast15.ref, ptr addrspace(11) %364, align 8, !dbg !540, !tbaa !179, !alias.scope !183, !noalias !184 %365 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef" to ptr addrspace(12), !dbg !540 call void @ijl_bounds_error_int(ptr addrspace(12) %365, i64 %value_phi20), !dbg !540 unreachable, !dbg !540 idxend: ; preds = %L327 %366 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset, 0, !dbg !540 %memory_ref = insertvalue { ptr, ptr addrspace(10) } %366, ptr addrspace(10) %memoryref_mem, 1, !dbg !540 %367 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !540 %368 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %367, i32 0, i32 0, !dbg !540 %memory_len24 = load i64, ptr addrspace(11) %368, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %369 = icmp eq i64 %memory_len24, 0, !dbg !540 br i1 %369, label %oob25, label %load, !dbg !540 oob25: ; preds = %idxend %370 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(12), !dbg !540 call void @ijl_bounds_error_int(ptr addrspace(12) %370, i64 1), !dbg !540 unreachable, !dbg !540 load: ; preds = %idxend %371 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem, ptr %memoryref_data), !dbg !540 %memoryref_data26 = getelementptr inbounds i8, ptr addrspace(13) %371, i64 %memoryref_byteoffset, !dbg !540 %372 = load double, ptr addrspace(13) %memoryref_data26, align 8, !dbg !540, !tbaa !185, !alias.scope !183, !noalias !184 br label %L331, !dbg !540 oob44: ; preds = %L346 %"+Core.GenericMemoryRef#3507745" = load ptr, ptr @_Core_GenericMemoryRef_35077, align 8, !dbg !540, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %GenericMemoryRef46 = ptrtoint ptr %"+Core.GenericMemoryRef#3507745" to i64, !dbg !540 %373 = inttoptr i64 %GenericMemoryRef46 to ptr, !dbg !540 %current_task47 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !540 %374 = addrspacecast ptr %373 to ptr addrspace(10), !dbg !540 %"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 !540 %375 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef48" to ptr addrspace(11), !dbg !540 store { ptr, ptr addrspace(10) } %.Tlast15.ref30, ptr addrspace(11) %375, align 8, !dbg !540, !tbaa !179, !alias.scope !183, !noalias !184 %376 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef48" to ptr addrspace(12), !dbg !540 call void @ijl_bounds_error_int(ptr addrspace(12) %376, i64 %258), !dbg !540 unreachable, !dbg !540 idxend49: ; preds = %L346 %377 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset37, 0, !dbg !540 %memory_ref50 = insertvalue { ptr, ptr addrspace(10) } %377, ptr addrspace(10) %memoryref_mem51, 1, !dbg !540 %378 = addrspacecast ptr addrspace(10) %memoryref_mem51 to ptr addrspace(11), !dbg !540 %379 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %378, i32 0, i32 0, !dbg !540 %memory_len52 = load i64, ptr addrspace(11) %379, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %380 = icmp eq i64 %memory_len52, 0, !dbg !540 br i1 %380, label %oob53, label %load54, !dbg !540 oob53: ; preds = %idxend49 %381 = addrspacecast ptr addrspace(10) %memoryref_mem51 to ptr addrspace(12), !dbg !540 call void @ijl_bounds_error_int(ptr addrspace(12) %381, i64 1), !dbg !540 unreachable, !dbg !540 load54: ; preds = %idxend49 %382 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem51, ptr %memoryref_data31), !dbg !540 %memoryref_data55 = getelementptr inbounds i8, ptr addrspace(13) %382, i64 %memoryref_byteoffset36, !dbg !540 %383 = load double, ptr addrspace(13) %memoryref_data55, align 8, !dbg !540, !tbaa !185, !alias.scope !183, !noalias !184 br label %L350, !dbg !540 oob73: ; preds = %L364 %"+Core.GenericMemoryRef#3507774" = load ptr, ptr @_Core_GenericMemoryRef_35077, align 8, !dbg !540, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %GenericMemoryRef75 = ptrtoint ptr %"+Core.GenericMemoryRef#3507774" to i64, !dbg !540 %384 = inttoptr i64 %GenericMemoryRef75 to ptr, !dbg !540 %current_task76 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !540 %385 = addrspacecast ptr %384 to ptr addrspace(10), !dbg !540 %"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 !540 %386 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef77" to ptr addrspace(11), !dbg !540 store { ptr, ptr addrspace(10) } %.Tlast15.ref59, ptr addrspace(11) %386, align 8, !dbg !540, !tbaa !179, !alias.scope !183, !noalias !184 %387 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef77" to ptr addrspace(12), !dbg !540 call void @ijl_bounds_error_int(ptr addrspace(12) %387, i64 %value_phi20), !dbg !540 unreachable, !dbg !540 idxend78: ; preds = %L364 %388 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset66, 0, !dbg !540 %memory_ref79 = insertvalue { ptr, ptr addrspace(10) } %388, ptr addrspace(10) %memoryref_mem80, 1, !dbg !540 %389 = addrspacecast ptr addrspace(10) %memoryref_mem80 to ptr addrspace(11), !dbg !540 %390 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %389, i32 0, i32 0, !dbg !540 %memory_len81 = load i64, ptr addrspace(11) %390, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %391 = icmp eq i64 %memory_len81, 0, !dbg !540 br i1 %391, label %oob82, label %load83, !dbg !540 oob82: ; preds = %idxend78 %392 = addrspacecast ptr addrspace(10) %memoryref_mem80 to ptr addrspace(12), !dbg !540 call void @ijl_bounds_error_int(ptr addrspace(12) %392, i64 1), !dbg !540 unreachable, !dbg !540 load83: ; preds = %idxend78 %393 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem80, ptr %memoryref_data60), !dbg !540 %memoryref_data84 = getelementptr inbounds i8, ptr addrspace(13) %393, i64 %memoryref_byteoffset65, !dbg !540 %394 = load double, ptr addrspace(13) %memoryref_data84, align 8, !dbg !540, !tbaa !185, !alias.scope !183, !noalias !184 br label %L368, !dbg !540 oob102: ; preds = %L385 %"+Core.GenericMemoryRef#35077103" = load ptr, ptr @_Core_GenericMemoryRef_35077, align 8, !dbg !540, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %GenericMemoryRef104 = ptrtoint ptr %"+Core.GenericMemoryRef#35077103" to i64, !dbg !540 %395 = inttoptr i64 %GenericMemoryRef104 to ptr, !dbg !540 %current_task105 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !540 %396 = addrspacecast ptr %395 to ptr addrspace(10), !dbg !540 %"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 !540 %397 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef106" to ptr addrspace(11), !dbg !540 store { ptr, ptr addrspace(10) } %.Tlast15.ref88, ptr addrspace(11) %397, align 8, !dbg !540, !tbaa !179, !alias.scope !183, !noalias !184 %398 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef106" to ptr addrspace(12), !dbg !540 call void @ijl_bounds_error_int(ptr addrspace(12) %398, i64 %303), !dbg !540 unreachable, !dbg !540 idxend107: ; preds = %L385 %399 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset95, 0, !dbg !540 %memory_ref108 = insertvalue { ptr, ptr addrspace(10) } %399, ptr addrspace(10) %memoryref_mem109, 1, !dbg !540 %400 = addrspacecast ptr addrspace(10) %memoryref_mem109 to ptr addrspace(11), !dbg !540 %401 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %400, i32 0, i32 0, !dbg !540 %memory_len110 = load i64, ptr addrspace(11) %401, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %402 = icmp eq i64 %memory_len110, 0, !dbg !540 br i1 %402, label %oob111, label %load112, !dbg !540 oob111: ; preds = %idxend107 %403 = addrspacecast ptr addrspace(10) %memoryref_mem109 to ptr addrspace(12), !dbg !540 call void @ijl_bounds_error_int(ptr addrspace(12) %403, i64 1), !dbg !540 unreachable, !dbg !540 load112: ; preds = %idxend107 %404 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem109, ptr %memoryref_data89), !dbg !540 %memoryref_data113 = getelementptr inbounds i8, ptr addrspace(13) %404, i64 %memoryref_byteoffset94, !dbg !540 %405 = load double, ptr addrspace(13) %memoryref_data113, align 8, !dbg !540, !tbaa !185, !alias.scope !183, !noalias !184 br label %L389, !dbg !540 oob128: ; preds = %L405 %"+Core.GenericMemoryRef#35077129" = load ptr, ptr @_Core_GenericMemoryRef_35077, align 8, !dbg !558, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %GenericMemoryRef130 = ptrtoint ptr %"+Core.GenericMemoryRef#35077129" to i64, !dbg !558 %406 = inttoptr i64 %GenericMemoryRef130 to ptr, !dbg !558 %current_task131 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !558 %407 = addrspacecast ptr %406 to ptr addrspace(10), !dbg !558 %"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 !558 %408 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef132" to ptr addrspace(11), !dbg !558 store { ptr, ptr addrspace(10) } %.Tnext13.ref, ptr addrspace(11) %408, align 8, !dbg !558, !tbaa !179, !alias.scope !183, !noalias !184 %409 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef132" to ptr addrspace(12), !dbg !558 call void @ijl_bounds_error_int(ptr addrspace(12) %409, i64 %value_phi20), !dbg !558 unreachable, !dbg !558 idxend133: ; preds = %L405 %410 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset121, 0, !dbg !558 %memory_ref134 = insertvalue { ptr, ptr addrspace(10) } %410, ptr addrspace(10) %memoryref_mem135, 1, !dbg !558 %411 = addrspacecast ptr addrspace(10) %memoryref_mem135 to ptr addrspace(11), !dbg !558 %412 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %411, i32 0, i32 0, !dbg !558 %memory_len136 = load i64, ptr addrspace(11) %412, align 8, !dbg !558, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %413 = icmp eq i64 %memory_len136, 0, !dbg !558 br i1 %413, label %oob137, label %load138, !dbg !558 oob137: ; preds = %idxend133 %414 = addrspacecast ptr addrspace(10) %memoryref_mem135 to ptr addrspace(12), !dbg !558 call void @ijl_bounds_error_int(ptr addrspace(12) %414, i64 1), !dbg !558 unreachable, !dbg !558 load138: ; preds = %idxend133 %415 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem135, ptr %memoryref_data115), !dbg !558 %memoryref_data139 = getelementptr inbounds i8, ptr addrspace(13) %415, i64 %memoryref_byteoffset120, !dbg !558 store double %327, ptr addrspace(13) %memoryref_data139, align 8, !dbg !558, !tbaa !185, !alias.scope !183, !noalias !184 br label %L409, !dbg !571 after_error: ; No predecessors! call void @llvm.trap(), !dbg !552 unreachable, !dbg !552 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !552 unreachable, !dbg !552 after_error148: ; No predecessors! call void @llvm.trap(), !dbg !530 unreachable, !dbg !530 after_noret149: ; No predecessors! call void @llvm.trap(), !dbg !530 unreachable, !dbg !530 after_error151: ; No predecessors! call void @llvm.trap(), !dbg !530 unreachable, !dbg !530 after_noret152: ; No predecessors! call void @llvm.trap(), !dbg !530 unreachable, !dbg !530 after_error154: ; No predecessors! call void @llvm.trap(), !dbg !530 unreachable, !dbg !530 after_noret155: ; No predecessors! call void @llvm.trap(), !dbg !530 unreachable, !dbg !530 after_error157: ; No predecessors! call void @llvm.trap(), !dbg !530 unreachable, !dbg !530 after_noret158: ; No predecessors! call void @llvm.trap(), !dbg !530 unreachable, !dbg !530 oob185: ; preds = %L107 %"+Core.GenericMemoryRef#35077186" = load ptr, ptr @_Core_GenericMemoryRef_35077, align 8, !dbg !352, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %GenericMemoryRef187 = ptrtoint ptr %"+Core.GenericMemoryRef#35077186" to i64, !dbg !352 %416 = inttoptr i64 %GenericMemoryRef187 to ptr, !dbg !352 %current_task188 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !352 %417 = addrspacecast ptr %416 to ptr addrspace(10), !dbg !352 %"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 !352 %418 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef189" to ptr addrspace(11), !dbg !352 store { ptr, ptr addrspace(10) } %.Tlast.ref, ptr addrspace(11) %418, align 8, !dbg !352, !tbaa !179, !alias.scope !183, !noalias !184 %419 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef189" to ptr addrspace(12), !dbg !352 call void @ijl_bounds_error_int(ptr addrspace(12) %419, i64 1), !dbg !352 unreachable, !dbg !352 idxend190: ; preds = %L107 %420 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset178, 0, !dbg !352 %memory_ref191 = insertvalue { ptr, ptr addrspace(10) } %420, ptr addrspace(10) %memoryref_mem175, 1, !dbg !352 %421 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !351 %422 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %421, i32 0, i32 0, !dbg !351 %memoryref_data192 = load ptr, ptr addrspace(11) %422, align 8, !dbg !351, !tbaa !66, !alias.scope !69, !noalias !70 %423 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %421, i32 0, i32 1, !dbg !351 %memoryref_mem193 = load ptr addrspace(10), ptr addrspace(11) %423, align 8, !dbg !351, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %424 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data192, 0, !dbg !351 %.Tnext.ref = insertvalue { ptr, ptr addrspace(10) } %424, ptr addrspace(10) %memoryref_mem193, 1, !dbg !351 %425 = addrspacecast ptr addrspace(10) %memoryref_mem193 to ptr addrspace(11), !dbg !352 %426 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %425, i32 0, i32 0, !dbg !352 %memory_len194 = load i64, ptr addrspace(11) %426, align 8, !dbg !352, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %427 = add nuw i64 %memory_len194, %memory_len194, !dbg !352 %428 = add i64 0, %memory_len194, !dbg !352 %memoryref_ovflw195 = icmp uge i64 %428, %427, !dbg !352 %memoryref_data_byteoffset196 = getelementptr i8, ptr %memoryref_data192, i64 0, !dbg !352 %429 = addrspacecast ptr addrspace(10) %memoryref_mem193 to ptr addrspace(11), !dbg !352 %430 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %429, i32 0, i32 0, !dbg !352 %memory_len197 = load i64, ptr addrspace(11) %430, align 8, !dbg !352, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %431 = addrspacecast ptr addrspace(10) %memoryref_mem193 to ptr addrspace(11), !dbg !352 %memory_data_ptr198 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %431, i32 0, i32 1, !dbg !352 %memory_data199 = load ptr, ptr addrspace(11) %memory_data_ptr198, align 8, !dbg !352, !tbaa !74, !alias.scope !69, !noalias !70, !nonnull !0 %432 = ptrtoint ptr %memory_data199 to i64, !dbg !352 %433 = ptrtoint ptr %memoryref_data_byteoffset196 to i64, !dbg !352 %434 = sub i64 %433, %432, !dbg !352 %memoryref_bytelen200 = mul nuw nsw i64 %memory_len197, 8, !dbg !352 %memoryref_isinbounds201 = icmp ult i64 %434, %memoryref_bytelen200, !dbg !352 %435 = xor i1 %memoryref_ovflw195, true, !dbg !352 %"memoryref_isinbounds¬ovflw202" = and i1 %435, %memoryref_isinbounds201, !dbg !352 br i1 %"memoryref_isinbounds¬ovflw202", label %idxend208, label %oob203, !dbg !352 oob203: ; preds = %idxend190 %"+Core.GenericMemoryRef#35077204" = load ptr, ptr @_Core_GenericMemoryRef_35077, align 8, !dbg !352, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %GenericMemoryRef205 = ptrtoint ptr %"+Core.GenericMemoryRef#35077204" to i64, !dbg !352 %436 = inttoptr i64 %GenericMemoryRef205 to ptr, !dbg !352 %current_task206 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !352 %437 = addrspacecast ptr %436 to ptr addrspace(10), !dbg !352 %"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 !352 %438 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef207" to ptr addrspace(11), !dbg !352 store { ptr, ptr addrspace(10) } %.Tnext.ref, ptr addrspace(11) %438, align 8, !dbg !352, !tbaa !179, !alias.scope !183, !noalias !184 %439 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef207" to ptr addrspace(12), !dbg !352 call void @ijl_bounds_error_int(ptr addrspace(12) %439, i64 1), !dbg !352 unreachable, !dbg !352 idxend208: ; preds = %idxend190 %440 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset196, 0, !dbg !352 %memory_ref209 = insertvalue { ptr, ptr addrspace(10) } %440, ptr addrspace(10) %memoryref_mem193, 1, !dbg !352 %441 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %memoryref_mem175), !dbg !572 %442 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %memoryref_mem193), !dbg !573 %memory_ref191.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref191, 0, !dbg !574 %memory_ref209.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref209, 0, !dbg !574 %.Tnext.size12.unbox210 = load i64, ptr %.Tnext.size12, align 8, !dbg !580, !tbaa !61, !alias.scope !63, !noalias !64 %443 = mul i64 %.Tnext.size12.unbox210, 8, !dbg !580 %444 = lshr i64 %443, 63, !dbg !582 %445 = select i1 false, i64 0, i64 %444, !dbg !582 %446 = trunc i64 %445 to i8, !dbg !582 %447 = icmp eq i8 %446, 1, !dbg !582 %448 = xor i1 %447, true, !dbg !355 br i1 %448, label %L126, label %L122, !dbg !355 after_error211: ; No predecessors! call void @llvm.trap(), !dbg !355 unreachable, !dbg !355 after_noret212: ; No predecessors! call void @llvm.trap(), !dbg !355 unreachable, !dbg !355 after_error213: ; No predecessors! call void @llvm.trap(), !dbg !339 unreachable, !dbg !339 after_noret214: ; No predecessors! call void @llvm.trap(), !dbg !339 unreachable, !dbg !339 after_error215: ; No predecessors! call void @llvm.trap(), !dbg !308 unreachable, !dbg !308 after_noret216: ; No predecessors! call void @llvm.trap(), !dbg !308 unreachable, !dbg !308 after_error217: ; No predecessors! call void @llvm.trap(), !dbg !279 unreachable, !dbg !279 after_noret218: ; No predecessors! call void @llvm.trap(), !dbg !279 unreachable, !dbg !279 oob244: ; preds = %L252 %"+Core.GenericMemoryRef#35077245" = load ptr, ptr @_Core_GenericMemoryRef_35077, align 8, !dbg !504, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %GenericMemoryRef246 = ptrtoint ptr %"+Core.GenericMemoryRef#35077245" to i64, !dbg !504 %449 = inttoptr i64 %GenericMemoryRef246 to ptr, !dbg !504 %current_task247 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !504 %450 = addrspacecast ptr %449 to ptr addrspace(10), !dbg !504 %"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 !504 %451 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef248" to ptr addrspace(11), !dbg !504 store { ptr, ptr addrspace(10) } %value_phi219.ref, ptr addrspace(11) %451, align 8, !dbg !504, !tbaa !179, !alias.scope !183, !noalias !184 %452 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef248" to ptr addrspace(12), !dbg !504 call void @ijl_bounds_error_int(ptr addrspace(12) %452, i64 %174), !dbg !504 unreachable, !dbg !504 idxend249: ; preds = %L252 %453 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset237, 0, !dbg !504 %memory_ref250 = insertvalue { ptr, ptr addrspace(10) } %453, ptr addrspace(10) %memoryref_mem251, 1, !dbg !504 %454 = addrspacecast ptr addrspace(10) %memoryref_mem251 to ptr addrspace(11), !dbg !504 %455 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %454, i32 0, i32 0, !dbg !504 %memory_len252 = load i64, ptr addrspace(11) %455, align 8, !dbg !504, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %456 = icmp eq i64 %memory_len252, 0, !dbg !504 br i1 %456, label %oob253, label %load254, !dbg !504 oob253: ; preds = %idxend249 %457 = addrspacecast ptr addrspace(10) %memoryref_mem251 to ptr addrspace(12), !dbg !504 call void @ijl_bounds_error_int(ptr addrspace(12) %457, i64 1), !dbg !504 unreachable, !dbg !504 load254: ; preds = %idxend249 %458 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem251, ptr %memoryref_data231), !dbg !504 %memoryref_data255 = getelementptr inbounds i8, ptr addrspace(13) %458, i64 %memoryref_byteoffset236, !dbg !504 %459 = load double, ptr addrspace(13) %memoryref_data255, align 8, !dbg !504, !tbaa !185, !alias.scope !183, !noalias !184 br i1 false, label %L276, label %L257, !dbg !506 oob273: ; preds = %L276 %"+Core.GenericMemoryRef#35077274" = load ptr, ptr @_Core_GenericMemoryRef_35077, align 8, !dbg !513, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %GenericMemoryRef275 = ptrtoint ptr %"+Core.GenericMemoryRef#35077274" to i64, !dbg !513 %460 = inttoptr i64 %GenericMemoryRef275 to ptr, !dbg !513 %current_task276 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !513 %461 = addrspacecast ptr %460 to ptr addrspace(10), !dbg !513 %"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 !513 %462 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef277" to ptr addrspace(11), !dbg !513 store { ptr, ptr addrspace(10) } %.Tlast.ref259, ptr addrspace(11) %462, align 8, !dbg !513, !tbaa !179, !alias.scope !183, !noalias !184 %463 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef277" to ptr addrspace(12), !dbg !513 call void @ijl_bounds_error_int(ptr addrspace(12) %463, i64 %166), !dbg !513 unreachable, !dbg !513 idxend278: ; preds = %L276 %464 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset266, 0, !dbg !513 %memory_ref279 = insertvalue { ptr, ptr addrspace(10) } %464, ptr addrspace(10) %memoryref_mem280, 1, !dbg !513 %465 = addrspacecast ptr addrspace(10) %memoryref_mem280 to ptr addrspace(11), !dbg !513 %466 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %465, i32 0, i32 0, !dbg !513 %memory_len281 = load i64, ptr addrspace(11) %466, align 8, !dbg !513, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %467 = icmp eq i64 %memory_len281, 0, !dbg !513 br i1 %467, label %oob282, label %load283, !dbg !513 oob282: ; preds = %idxend278 %468 = addrspacecast ptr addrspace(10) %memoryref_mem280 to ptr addrspace(12), !dbg !513 call void @ijl_bounds_error_int(ptr addrspace(12) %468, i64 1), !dbg !513 unreachable, !dbg !513 load283: ; preds = %idxend278 %469 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem280, ptr %memoryref_data260), !dbg !513 %memoryref_data284 = getelementptr inbounds i8, ptr addrspace(13) %469, i64 %memoryref_byteoffset265, !dbg !513 store double %459, ptr addrspace(13) %memoryref_data284, align 8, !dbg !513, !tbaa !185, !alias.scope !183, !noalias !184 %470 = add i64 %value_phi223, 1, !dbg !584 br label %L220, !dbg !295, !llvm.loop !586 after_error286: ; No predecessors! call void @llvm.trap(), !dbg !506 unreachable, !dbg !506 after_noret287: ; No predecessors! call void @llvm.trap(), !dbg !506 unreachable, !dbg !506 after_error289: ; No predecessors! call void @llvm.trap(), !dbg !501 unreachable, !dbg !501 after_noret290: ; No predecessors! call void @llvm.trap(), !dbg !501 unreachable, !dbg !501 after_error292: ; No predecessors! call void @llvm.trap(), !dbg !483 unreachable, !dbg !483 after_noret293: ; No predecessors! call void @llvm.trap(), !dbg !483 unreachable, !dbg !483 after_error294: ; No predecessors! call void @llvm.trap(), !dbg !471 unreachable, !dbg !471 after_noret295: ; No predecessors! call void @llvm.trap(), !dbg !471 unreachable, !dbg !471 emptymem: ; preds = %L166 %"jl_global#35107" = load ptr, ptr @jl_global_35107, align 8, !dbg !415, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !37, !align !35 %471 = addrspacecast ptr %"jl_global#35107" to ptr addrspace(10), !dbg !415 br label %retval, !dbg !415 nonemptymem: ; preds = %L166 %"+Core.GenericMemory#35108" = load ptr, ptr @_Core_GenericMemory_35108, align 8, !dbg !415, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %472 = call { i64, i1 } @llvm.smul.with.overflow.i64(i64 %.Tnext.size308.unbox, i64 8), !dbg !415 %473 = extractvalue { i64, i1 } %472, 0, !dbg !415 %474 = extractvalue { i64, i1 } %472, 1, !dbg !415 %475 = icmp slt i64 %.Tnext.size308.unbox, 0, !dbg !415 %476 = or i1 %474, %475, !dbg !415 %477 = icmp slt i64 9223372036854775806, %473, !dbg !415 %478 = or i1 %476, %477, !dbg !415 %479 = xor i1 %478, true, !dbg !415 br i1 %479, label %pass, label %fail, !dbg !415 fail: ; preds = %nonemptymem call void @jl_argument_error(ptr @_j_str_invalid_GenericMemory_siz____5), !dbg !415 unreachable, !dbg !415 pass: ; preds = %nonemptymem %current_task309 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !415 %ptls_field310 = getelementptr inbounds i8, ptr %current_task309, i32 168, !dbg !415 %ptls_load311 = load ptr, ptr %ptls_field310, align 8, !dbg !415, !tbaa !19 %"Memory{Float64}[]" = call noalias nonnull align 16 ptr addrspace(10) @jl_alloc_genericmemory_unchecked(ptr %ptls_load311, i64 %473, ptr %"+Core.GenericMemory#35108") #28, !dbg !415 %480 = addrspacecast ptr addrspace(10) %"Memory{Float64}[]" to ptr addrspace(11), !dbg !415 %481 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %480, i32 0, i32 0, !dbg !415 store i64 %.Tnext.size308.unbox, ptr addrspace(11) %481, align 8, !dbg !415, !tbaa !71, !alias.scope !69, !noalias !70 br label %retval, !dbg !415 retval: ; preds = %pass, %emptymem %482 = phi ptr addrspace(10) [ %471, %emptymem ], [ %"Memory{Float64}[]", %pass ], !dbg !415 %483 = addrspacecast ptr addrspace(10) %482 to ptr addrspace(11), !dbg !587 %memory_data_ptr312 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %483, i32 0, i32 1, !dbg !587 %memory_data313 = load ptr, ptr addrspace(11) %memory_data_ptr312, align 8, !dbg !587, !tbaa !74, !alias.scope !69, !noalias !70, !nonnull !0 %484 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memory_data313, 0, !dbg !587 %memory_ref314 = insertvalue { ptr, ptr addrspace(10) } %484, ptr addrspace(10) %482, 1, !dbg !587 %485 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !588 %.Tnext.size_ptr315 = getelementptr inbounds i8, ptr addrspace(11) %485, i32 16, !dbg !588 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 !588, !tbaa !38, !alias.scope !59, !noalias !60 %486 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %482), !dbg !590 %487 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %134), !dbg !591 %memory_ref314.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref314, 0, !dbg !592 %.Tnext.ref306.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %.Tnext.ref306, 0, !dbg !592 %.Tnext.size316.unbox = load i64, ptr %.Tnext.size316, align 8, !dbg !594, !tbaa !61, !alias.scope !63, !noalias !64 %488 = mul i64 %.Tnext.size316.unbox, 8, !dbg !594 %489 = lshr i64 %488, 63, !dbg !595 %490 = select i1 false, i64 0, i64 %489, !dbg !595 %491 = trunc i64 %490 to i8, !dbg !595 %492 = icmp eq i8 %491, 1, !dbg !595 %493 = xor i1 %492, true, !dbg !417 br i1 %493, label %L184, label %L182, !dbg !417 after_error321: ; No predecessors! call void @llvm.trap(), !dbg !417 unreachable, !dbg !417 after_noret322: ; No predecessors! call void @llvm.trap(), !dbg !417 unreachable, !dbg !417 after_error330: ; No predecessors! call void @llvm.trap(), !dbg !249 unreachable, !dbg !249 after_noret331: ; No predecessors! call void @llvm.trap(), !dbg !249 unreachable, !dbg !249 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !230 unreachable, !dbg !230 after_noret333: ; No predecessors! call void @llvm.trap(), !dbg !230 unreachable, !dbg !230 } 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_35816(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") #22 !dbg !718 { 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#35782" = load ptr, ptr @_Core_BoundsError_35782, align 8, !dbg !719, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %3 = addrspacecast ptr %"-Core.BoundsError#35782" to ptr addrspace(10), !dbg !719 %"+Core.BoundsError#35783" = load ptr, ptr @_Core_BoundsError_35783, align 8, !dbg !719, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %4 = addrspacecast ptr %"+Core.BoundsError#35783" to ptr addrspace(10), !dbg !719 %"+Main.Base.Broadcast.Broadcasted#35818" = load ptr, ptr @_Main_Base_Broadcast_Broadcasted_35818, align 8, !dbg !719, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Broadcasted = ptrtoint ptr %"+Main.Base.Broadcast.Broadcasted#35818" to i64, !dbg !719 %5 = inttoptr i64 %Broadcasted to ptr, !dbg !719 %current_task1 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !719 %6 = addrspacecast ptr %5 to ptr addrspace(10), !dbg !719 %"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 !719 %7 = addrspacecast ptr addrspace(10) %"box::Broadcasted" to ptr addrspace(11), !dbg !719 %8 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 0, !dbg !719 store atomic ptr addrspace(10) %2, ptr addrspace(11) %8 unordered, align 8, !dbg !719, !tbaa !179, !alias.scope !183, !noalias !184 %9 = getelementptr inbounds i8, ptr addrspace(11) %"A::Broadcasted", i32 8, !dbg !719 %10 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 8, !dbg !719 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %10, ptr addrspace(11) align 8 %9, i64 24, i1 false), !dbg !719, !tbaa !38, !alias.scope !39, !noalias !40 %"+Core.Tuple#35784" = load ptr, ptr @_Core_Tuple_35784, align 8, !dbg !719, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Tuple = ptrtoint ptr %"+Core.Tuple#35784" to i64, !dbg !719 %11 = inttoptr i64 %Tuple to ptr, !dbg !719 %current_task2 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !719 %12 = addrspacecast ptr %11 to ptr addrspace(10), !dbg !719 %"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 !719 %13 = addrspacecast ptr addrspace(10) %"box::Tuple" to ptr addrspace(11), !dbg !719 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 !719, !tbaa !38, !alias.scope !39, !noalias !40 %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 !719 %15 = addrspacecast ptr addrspace(10) %14 to ptr addrspace(12), !dbg !719 call void @ijl_throw(ptr addrspace(12) %15), !dbg !719 unreachable, !dbg !719 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !719 unreachable, !dbg !719 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !719 unreachable, !dbg !719 } 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_35906(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") #22 !dbg !718 { 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#35872" = load ptr, ptr @_Core_BoundsError_35872, align 8, !dbg !719, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %3 = addrspacecast ptr %"-Core.BoundsError#35872" to ptr addrspace(10), !dbg !719 %"+Core.BoundsError#35873" = load ptr, ptr @_Core_BoundsError_35873, align 8, !dbg !719, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %4 = addrspacecast ptr %"+Core.BoundsError#35873" to ptr addrspace(10), !dbg !719 %"+Main.Base.Broadcast.Broadcasted#35908" = load ptr, ptr @_Main_Base_Broadcast_Broadcasted_35908, align 8, !dbg !719, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Broadcasted = ptrtoint ptr %"+Main.Base.Broadcast.Broadcasted#35908" to i64, !dbg !719 %5 = inttoptr i64 %Broadcasted to ptr, !dbg !719 %current_task1 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !719 %6 = addrspacecast ptr %5 to ptr addrspace(10), !dbg !719 %"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 !719 %7 = addrspacecast ptr addrspace(10) %"box::Broadcasted" to ptr addrspace(11), !dbg !719 %8 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 0, !dbg !719 store atomic ptr addrspace(10) %2, ptr addrspace(11) %8 unordered, align 8, !dbg !719, !tbaa !206, !alias.scope !210, !noalias !211 %9 = getelementptr inbounds i8, ptr addrspace(11) %"A::Broadcasted", i32 8, !dbg !719 %10 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 8, !dbg !719 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %10, ptr addrspace(11) align 8 %9, i64 24, i1 false), !dbg !719, !tbaa !38, !alias.scope !39, !noalias !40 %"+Core.Tuple#35874" = load ptr, ptr @_Core_Tuple_35874, align 8, !dbg !719, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Tuple = ptrtoint ptr %"+Core.Tuple#35874" to i64, !dbg !719 %11 = inttoptr i64 %Tuple to ptr, !dbg !719 %current_task2 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !719 %12 = addrspacecast ptr %11 to ptr addrspace(10), !dbg !719 %"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 !719 %13 = addrspacecast ptr addrspace(10) %"box::Tuple" to ptr addrspace(11), !dbg !719 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 !719, !tbaa !38, !alias.scope !39, !noalias !40 %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 !719 %15 = addrspacecast ptr addrspace(10) %14 to ptr addrspace(12), !dbg !719 call void @ijl_throw(ptr addrspace(12) %15), !dbg !719 unreachable, !dbg !719 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !719 unreachable, !dbg !719 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !719 unreachable, !dbg !719 } 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_35970(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#") #11 !dbg !187 { 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 !189, !noalias !190 %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 !191 %.Tlast_ptr = getelementptr inbounds i8, ptr addrspace(11) %4, i32 8, !dbg !191 %.Tlast = load atomic ptr addrspace(10), ptr addrspace(11) %.Tlast_ptr unordered, align 8, !dbg !191, !tbaa !200, !alias.scope !183, !noalias !184, !nonnull !0, !dereferenceable !202, !align !35 %5 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !203 %.Tnext = load atomic ptr addrspace(10), ptr addrspace(11) %5 unordered, align 8, !dbg !203, !tbaa !200, !alias.scope !183, !noalias !184, !nonnull !0, !dereferenceable !202, !align !35 %6 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !204 %.Tlast.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %6, i32 16, !dbg !204 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 !204, !tbaa !38, !alias.scope !59, !noalias !60 %7 = getelementptr inbounds i8, ptr %"new::OneTo", i32 0, !dbg !213 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %7, ptr align 8 %.Tlast.size, i64 8, i1 false), !dbg !213, !tbaa !61, !alias.scope !63, !noalias !64 %8 = getelementptr inbounds i8, ptr %"new::Tuple", i32 0, !dbg !215 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %8, ptr align 8 %"new::OneTo", i64 8, i1 false), !dbg !215, !tbaa !61, !alias.scope !63, !noalias !64 %9 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !218 %.Tnext.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %9, i32 16, !dbg !218 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 !218, !tbaa !38, !alias.scope !59, !noalias !60 %.Tlast.size.unbox = load i64, ptr %.Tlast.size, align 8, !dbg !224, !tbaa !61, !alias.scope !63, !noalias !64 %.Tnext.size.unbox = load i64, ptr %.Tnext.size, align 8, !dbg !224, !tbaa !61, !alias.scope !63, !noalias !64 %10 = icmp eq i64 %.Tlast.size.unbox, %.Tnext.size.unbox, !dbg !224 %11 = xor i1 %10, true, !dbg !228 br i1 %11, label %L16, label %L15, !dbg !228 L15: ; preds = %top %12 = zext i1 %10 to i8 br label %L18, !dbg !228 L16: ; preds = %top %.Tnext.size.unbox334 = load i64, ptr %.Tnext.size, align 8, !dbg !232, !tbaa !61, !alias.scope !63, !noalias !64 %13 = icmp eq i64 %.Tnext.size.unbox334, 1, !dbg !232 %14 = zext i1 %13 to i8 br label %L18, !dbg !232 L18: ; preds = %L16, %L15 %value_phi = phi i8 [ %12, %L15 ], [ %14, %L16 ] %15 = trunc i8 %value_phi to i1, !dbg !230 %16 = xor i1 %15, true, !dbg !230 br i1 %16, label %L21, label %L20, !dbg !230 L20: ; preds = %L18 br label %L24, !dbg !230 L21: ; preds = %L18 %"jl_global#35986" = load ptr, ptr @jl_global_35986, align 8, !dbg !230, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %17 = addrspacecast ptr %"jl_global#35986" to ptr addrspace(10), !dbg !230 %18 = call [1 x ptr addrspace(10)] @julia_DimensionMismatch_36007(ptr addrspace(10) %17), !dbg !230 %"+Main.Base.DimensionMismatch#35987" = load ptr, ptr @_Main_Base_DimensionMismatch_35987, align 8, !dbg !230, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %DimensionMismatch = ptrtoint ptr %"+Main.Base.DimensionMismatch#35987" to i64, !dbg !230 %19 = inttoptr i64 %DimensionMismatch to ptr, !dbg !230 %current_task332 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !230 %20 = addrspacecast ptr %19 to ptr addrspace(10), !dbg !230 %"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 !230 %21 = addrspacecast ptr addrspace(10) %"box::DimensionMismatch" to ptr addrspace(11), !dbg !230 store [1 x ptr addrspace(10)] %18, ptr addrspace(11) %21, align 8, !dbg !230, !tbaa !179, !alias.scope !183, !noalias !184 %22 = addrspacecast ptr addrspace(10) %"box::DimensionMismatch" to ptr addrspace(12), !dbg !230 call void @ijl_throw(ptr addrspace(12) %22), !dbg !230 unreachable, !dbg !230 L24: ; preds = %L20 br label %L25, !dbg !230 L25: ; preds = %L24 br label %L26, !dbg !233 L26: ; preds = %L25 %23 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !234 %.Tlast.size_ptr1 = getelementptr inbounds i8, ptr addrspace(11) %23, i32 16, !dbg !234 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 !234, !tbaa !38, !alias.scope !59, !noalias !60 %24 = getelementptr inbounds i8, ptr %"new::Tuple4", i32 0, !dbg !241 %25 = getelementptr inbounds i8, ptr %24, i32 0, !dbg !241 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %25, ptr align 8 %.Tlast.size2, i64 8, i1 false), !dbg !241, !tbaa !61, !alias.scope !63, !noalias !64 %.Tlast.size2.unbox = load i64, ptr %.Tlast.size2, align 8, !dbg !243, !tbaa !61, !alias.scope !63, !noalias !64 %.Tlast.size.unbox5 = load i64, ptr %.Tlast.size, align 8, !dbg !243, !tbaa !61, !alias.scope !63, !noalias !64 %26 = icmp eq i64 %.Tlast.size2.unbox, %.Tlast.size.unbox5, !dbg !243 %27 = zext i1 %26 to i8, !dbg !250 %28 = icmp eq i8 %27, 0, !dbg !250 %29 = xor i1 %28, true, !dbg !250 br i1 %29, label %L35, label %L34, !dbg !250 L34: ; preds = %L26 br label %L36, !dbg !251 L35: ; preds = %L26 br label %L36, !dbg !252 L36: ; preds = %L35, %L34 %value_phi6 = phi i8 [ 0, %L34 ], [ 1, %L35 ] br label %L38, !dbg !247 L38: ; preds = %L36 %30 = trunc i8 %value_phi6 to i1, !dbg !249 %31 = xor i1 %30, true, !dbg !249 br i1 %31, label %L284, label %L39, !dbg !249 L39: ; preds = %L38 %32 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !253 %.Tnext.size_ptr7 = getelementptr inbounds i8, ptr addrspace(11) %32, i32 16, !dbg !253 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 !253, !tbaa !38, !alias.scope !59, !noalias !60 %.Tlast.size2.unbox9 = load i64, ptr %.Tlast.size2, align 8, !dbg !256, !tbaa !61, !alias.scope !63, !noalias !64 %.Tnext.size8.unbox = load i64, ptr %.Tnext.size8, align 8, !dbg !256, !tbaa !61, !alias.scope !63, !noalias !64 %33 = icmp eq i64 %.Tlast.size2.unbox9, %.Tnext.size8.unbox, !dbg !256 %34 = zext i1 %33 to i8, !dbg !260 %35 = icmp eq i8 %34, 0, !dbg !260 %36 = xor i1 %35, true, !dbg !260 br i1 %36, label %L46, label %L45, !dbg !260 L45: ; preds = %L39 br label %L47, !dbg !261 L46: ; preds = %L39 br label %L47, !dbg !262 L47: ; preds = %L46, %L45 %value_phi10 = phi i8 [ 0, %L45 ], [ 1, %L46 ] br label %L49, !dbg !259 L49: ; preds = %L47 %37 = trunc i8 %value_phi10 to i1, !dbg !255 %38 = xor i1 %37, true, !dbg !255 br i1 %38, label %L137, label %L50, !dbg !255 L50: ; preds = %L49 %39 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !263 %.Tnext.size_ptr11 = getelementptr inbounds i8, ptr addrspace(11) %39, i32 16, !dbg !263 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 !263, !tbaa !38, !alias.scope !59, !noalias !60 %.Tnext.size12.unbox = load i64, ptr %.Tnext.size12, align 8, !dbg !271, !tbaa !61, !alias.scope !63, !noalias !64 %40 = icmp eq i64 %.Tnext.size12.unbox, 0, !dbg !271 %41 = xor i1 %40, true, !dbg !272 br i1 %41, label %L55, label %L54, !dbg !272 L54: ; preds = %L50 br label %L133, !dbg !272 L55: ; preds = %L50 %.Tnext.size12.unbox159 = load i64, ptr %.Tnext.size12, align 8, !dbg !275, !tbaa !61, !alias.scope !63, !noalias !64 %42 = icmp slt i64 0, %.Tnext.size12.unbox159, !dbg !275 %43 = xor i1 %42, true, !dbg !279 br i1 %43, label %L131, label %L57, !dbg !279 L57: ; preds = %L55 br i1 false, label %L81, label %L59, !dbg !280 L59: ; preds = %L57 %.Tnext.size12.unbox160 = load i64, ptr %.Tnext.size12, align 8, !dbg !281, !tbaa !61, !alias.scope !63, !noalias !64 %44 = add i64 1, %.Tnext.size12.unbox160, !dbg !281 %45 = sub i64 %44, 1, !dbg !283 %46 = icmp sle i64 1, %45, !dbg !285 %47 = xor i1 %46, true, !dbg !289 br i1 %47, label %L64, label %L63, !dbg !289 L63: ; preds = %L59 br label %L65, !dbg !295 L64: ; preds = %L59 br label %L65, !dbg !295 L65: ; preds = %L64, %L63 %value_phi161 = phi i64 [ %45, %L63 ], [ 0, %L64 ] %48 = getelementptr inbounds i8, ptr %"new::Tuple162", i32 0, !dbg !291 %49 = getelementptr inbounds i8, ptr %48, i32 0, !dbg !291 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %49, ptr align 8 @_j_const_1, i64 8, i1 false), !dbg !291, !tbaa !38, !alias.scope !300, !noalias !301 %50 = getelementptr inbounds i8, ptr %48, i32 8, !dbg !291 store i64 %value_phi161, ptr %50, align 8, !dbg !291, !tbaa !61, !alias.scope !63, !noalias !64 %51 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !302 %.Tlast.size_ptr163 = getelementptr inbounds i8, ptr addrspace(11) %51, i32 16, !dbg !302 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 !302, !tbaa !38, !alias.scope !59, !noalias !60 %52 = icmp slt i64 %value_phi161, 1, !dbg !309 %bitcast165 = load i64, ptr %.Tlast.size164, align 8, !dbg !315, !tbaa !61, !alias.scope !63, !noalias !64 %53 = icmp ult i64 0, %bitcast165, !dbg !320 %54 = sub i64 %value_phi161, 1, !dbg !321 %bitcast166 = load i64, ptr %.Tlast.size164, align 8, !dbg !315, !tbaa !61, !alias.scope !63, !noalias !64 %55 = icmp ult i64 %54, %bitcast166, !dbg !320 %56 = and i1 %53, %55, !dbg !322 %57 = or i1 %52, %56, !dbg !325 %58 = xor i1 %57, true, !dbg !308 br i1 %58, label %L88, label %L80, !dbg !308 L80: ; preds = %L65 br label %L81, !dbg !308 L81: ; preds = %L80, %L57 br i1 false, label %L107, label %L83, !dbg !327 L83: ; preds = %L81 %.Tnext.size12.unbox167 = load i64, ptr %.Tnext.size12, align 8, !dbg !328, !tbaa !61, !alias.scope !63, !noalias !64 %59 = add i64 1, %.Tnext.size12.unbox167, !dbg !328 %60 = sub i64 %59, 1, !dbg !329 %61 = icmp sle i64 1, %60, !dbg !330 %62 = xor i1 %61, true, !dbg !332 br i1 %62, label %L90, label %L87, !dbg !332 L87: ; preds = %L83 br label %L91, !dbg !295 L88: ; preds = %L65 %63 = addrspacecast ptr %"new::Tuple162" to ptr addrspace(11), !dbg !308 call void @julia_throw_boundserror_36003(ptr addrspace(10) %.Tlast, ptr addrspace(11) nocapture readonly %63) #26, !dbg !308 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !308 unreachable, !dbg !308 L90: ; preds = %L83 br label %L91, !dbg !295 L91: ; preds = %L90, %L87 %value_phi168 = phi i64 [ %60, %L87 ], [ 0, %L90 ] %64 = getelementptr inbounds i8, ptr %"new::Tuple169", i32 0, !dbg !333 %65 = getelementptr inbounds i8, ptr %64, i32 0, !dbg !333 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %65, ptr align 8 @_j_const_1, i64 8, i1 false), !dbg !333, !tbaa !38, !alias.scope !300, !noalias !301 %66 = getelementptr inbounds i8, ptr %64, i32 8, !dbg !333 store i64 %value_phi168, ptr %66, align 8, !dbg !333, !tbaa !61, !alias.scope !63, !noalias !64 %67 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !335 %.Tnext.size_ptr170 = getelementptr inbounds i8, ptr addrspace(11) %67, i32 16, !dbg !335 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 !335, !tbaa !38, !alias.scope !59, !noalias !60 %68 = icmp slt i64 %value_phi168, 1, !dbg !340 %bitcast172 = load i64, ptr %.Tnext.size171, align 8, !dbg !344, !tbaa !61, !alias.scope !63, !noalias !64 %69 = icmp ult i64 0, %bitcast172, !dbg !347 %70 = sub i64 %value_phi168, 1, !dbg !348 %bitcast173 = load i64, ptr %.Tnext.size171, align 8, !dbg !344, !tbaa !61, !alias.scope !63, !noalias !64 %71 = icmp ult i64 %70, %bitcast173, !dbg !347 %72 = and i1 %69, %71, !dbg !349 %73 = or i1 %68, %72, !dbg !350 %74 = xor i1 %73, true, !dbg !339 br i1 %74, label %L124, label %L106, !dbg !339 L106: ; preds = %L91 br label %L107, !dbg !339 L107: ; preds = %L106, %L81 %75 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !351 %76 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %75, i32 0, i32 0, !dbg !351 %memoryref_data174 = load ptr, ptr addrspace(11) %76, align 8, !dbg !351, !tbaa !66, !alias.scope !69, !noalias !70 %77 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %75, i32 0, i32 1, !dbg !351 %memoryref_mem175 = load ptr addrspace(10), ptr addrspace(11) %77, align 8, !dbg !351, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %78 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data174, 0, !dbg !351 %.Tlast.ref = insertvalue { ptr, ptr addrspace(10) } %78, ptr addrspace(10) %memoryref_mem175, 1, !dbg !351 %79 = addrspacecast ptr addrspace(10) %memoryref_mem175 to ptr addrspace(11), !dbg !352 %80 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %79, i32 0, i32 0, !dbg !352 %memory_len176 = load i64, ptr addrspace(11) %80, align 8, !dbg !352, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %81 = add nuw i64 %memory_len176, %memory_len176, !dbg !352 %82 = add i64 0, %memory_len176, !dbg !352 %memoryref_ovflw177 = icmp uge i64 %82, %81, !dbg !352 %memoryref_data_byteoffset178 = getelementptr i8, ptr %memoryref_data174, i64 0, !dbg !352 %83 = addrspacecast ptr addrspace(10) %memoryref_mem175 to ptr addrspace(11), !dbg !352 %84 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %83, i32 0, i32 0, !dbg !352 %memory_len179 = load i64, ptr addrspace(11) %84, align 8, !dbg !352, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %85 = addrspacecast ptr addrspace(10) %memoryref_mem175 to ptr addrspace(11), !dbg !352 %memory_data_ptr180 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %85, i32 0, i32 1, !dbg !352 %memory_data181 = load ptr, ptr addrspace(11) %memory_data_ptr180, align 8, !dbg !352, !tbaa !74, !alias.scope !69, !noalias !70, !nonnull !0 %86 = ptrtoint ptr %memory_data181 to i64, !dbg !352 %87 = ptrtoint ptr %memoryref_data_byteoffset178 to i64, !dbg !352 %88 = sub i64 %87, %86, !dbg !352 %memoryref_bytelen182 = mul nuw nsw i64 %memory_len179, 8, !dbg !352 %memoryref_isinbounds183 = icmp ult i64 %88, %memoryref_bytelen182, !dbg !352 %89 = xor i1 %memoryref_ovflw177, true, !dbg !352 %"memoryref_isinbounds¬ovflw184" = and i1 %89, %memoryref_isinbounds183, !dbg !352 br i1 %"memoryref_isinbounds¬ovflw184", label %idxend190, label %oob185, !dbg !352 L122: ; preds = %idxend208 %"-Core.throw_inexacterror#35973" = load ptr, ptr @_Core_throw_inexacterror_35973, align 8, !dbg !355, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %90 = addrspacecast ptr %"-Core.throw_inexacterror#35973" to ptr addrspace(10), !dbg !355 %"jl_global#35974" = load ptr, ptr @jl_global_35974, align 8, !dbg !355, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %91 = addrspacecast ptr %"jl_global#35974" to ptr addrspace(10), !dbg !355 %"jl_sym#convert#35975" = load ptr, ptr @jl_sym_convert_35975, align 8, !dbg !355, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %92 = addrspacecast ptr %"jl_sym#convert#35975" to ptr addrspace(10), !dbg !355 %93 = load ptr, ptr getelementptr inbounds (i8, ptr @jl_small_typeof, i32 336), align 8, !dbg !355, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %94 = addrspacecast ptr %93 to ptr addrspace(10), !dbg !355 %box_Int64 = call nonnull align 8 dereferenceable(8) ptr addrspace(10) @ijl_box_int64(i64 signext %443) #27, !dbg !355 %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 !355 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !355 unreachable, !dbg !355 L124: ; preds = %L91 %96 = addrspacecast ptr %"new::Tuple169" to ptr addrspace(11), !dbg !339 call void @julia_throw_boundserror_36003(ptr addrspace(10) %.Tnext, ptr addrspace(11) nocapture readonly %96) #26, !dbg !339 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !339 unreachable, !dbg !339 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 !366 call void @llvm.julia.gc_preserve_end(token %442), !dbg !372 call void @llvm.julia.gc_preserve_end(token %441), !dbg !373 br label %L133, !dbg !374 L131: ; preds = %L55 %"jl_global#35978" = load ptr, ptr @jl_global_35978, align 8, !dbg !279, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %97 = addrspacecast ptr %"jl_global#35978" to ptr addrspace(10), !dbg !279 call void @julia__throw_argerror_36000(ptr addrspace(10) %97) #26, !dbg !279 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !279 unreachable, !dbg !279 L133: ; preds = %L126, %L54 br label %L134, !dbg !272 L134: ; preds = %L133 br label %L135, !dbg !272 L135: ; preds = %L134 br label %L136, !dbg !272 L136: ; preds = %L135 br label %L286, !dbg !375 L137: ; preds = %L49 %98 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !376 %99 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !376 %100 = icmp eq ptr addrspace(11) %98, %99, !dbg !376 %101 = xor i1 %100, true, !dbg !376 br i1 %101, label %L140, label %L139, !dbg !376 L139: ; preds = %L137 br label %L204, !dbg !295 L140: ; preds = %L137 %102 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !384 %.Tlast.size_ptr296 = getelementptr inbounds i8, ptr addrspace(11) %102, i32 16, !dbg !384 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 !384, !tbaa !38, !alias.scope !59, !noalias !60 %.Tlast.size297.unbox = load i64, ptr %.Tlast.size297, align 8, !dbg !392, !tbaa !61, !alias.scope !63, !noalias !64 %103 = icmp eq i64 %.Tlast.size297.unbox, 0, !dbg !392 %104 = xor i1 %103, true, !dbg !393 %105 = xor i1 %104, true, !dbg !388 br i1 %105, label %L163, label %L145, !dbg !388 L145: ; preds = %L140 %106 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !384 %.Tnext.size_ptr298 = getelementptr inbounds i8, ptr addrspace(11) %106, i32 16, !dbg !384 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 !384, !tbaa !38, !alias.scope !59, !noalias !60 %.Tnext.size299.unbox = load i64, ptr %.Tnext.size299, align 8, !dbg !392, !tbaa !61, !alias.scope !63, !noalias !64 %107 = icmp eq i64 %.Tnext.size299.unbox, 0, !dbg !392 %108 = xor i1 %107, true, !dbg !393 %109 = xor i1 %108, true, !dbg !388 br i1 %109, label %L162, label %L150, !dbg !388 L150: ; preds = %L145 %110 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !395 %111 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %110, i32 0, i32 0, !dbg !395 %112 = load ptr, ptr addrspace(11) %111, align 8, !dbg !395, !tbaa !66, !alias.scope !69, !noalias !70 %113 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %110, i32 0, i32 1, !dbg !395 %114 = load ptr addrspace(10), ptr addrspace(11) %113, align 8, !dbg !395, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %115 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %112, 0, !dbg !395 %.Tlast.ref300 = insertvalue { ptr, ptr addrspace(10) } %115, ptr addrspace(10) %114, 1, !dbg !395 %.Tlast.ref300.mem = extractvalue { ptr, ptr addrspace(10) } %.Tlast.ref300, 1, !dbg !395 %116 = addrspacecast ptr addrspace(10) %.Tlast.ref300.mem to ptr addrspace(11), !dbg !398 %.Tlast.ref300.mem.ptr_ptr = getelementptr inbounds i8, ptr addrspace(11) %116, i32 8, !dbg !398 %bitcast301 = load ptr, ptr addrspace(11) %.Tlast.ref300.mem.ptr_ptr, align 8, !dbg !400, !tbaa !74, !alias.scope !69, !noalias !70 %bitcast_coercion = ptrtoint ptr %bitcast301 to i64, !dbg !400 %117 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !395 %118 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %117, i32 0, i32 0, !dbg !395 %119 = load ptr, ptr addrspace(11) %118, align 8, !dbg !395, !tbaa !66, !alias.scope !69, !noalias !70 %120 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %117, i32 0, i32 1, !dbg !395 %121 = load ptr addrspace(10), ptr addrspace(11) %120, align 8, !dbg !395, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %122 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %119, 0, !dbg !395 %.Tnext.ref302 = insertvalue { ptr, ptr addrspace(10) } %122, ptr addrspace(10) %121, 1, !dbg !395 %.Tnext.ref302.mem = extractvalue { ptr, ptr addrspace(10) } %.Tnext.ref302, 1, !dbg !395 %123 = addrspacecast ptr addrspace(10) %.Tnext.ref302.mem to ptr addrspace(11), !dbg !398 %.Tnext.ref302.mem.ptr_ptr = getelementptr inbounds i8, ptr addrspace(11) %123, i32 8, !dbg !398 %bitcast303 = load ptr, ptr addrspace(11) %.Tnext.ref302.mem.ptr_ptr, align 8, !dbg !400, !tbaa !74, !alias.scope !69, !noalias !70 %bitcast_coercion304 = ptrtoint ptr %bitcast303 to i64, !dbg !400 %124 = icmp eq i64 %bitcast_coercion, %bitcast_coercion304, !dbg !401 %125 = xor i1 %124, true, !dbg !406 %126 = xor i1 %125, true, !dbg !393 %127 = zext i1 %126 to i8, !dbg !295 br label %L164, !dbg !295 L162: ; preds = %L145 br label %L164, !dbg !295 L163: ; preds = %L140 br label %L164, !dbg !295 L164: ; preds = %L163, %L162, %L150 %value_phi305 = phi i8 [ %127, %L150 ], [ 0, %L162 ], [ 0, %L163 ] %128 = trunc i8 %value_phi305 to i1, !dbg !390 %129 = xor i1 %128, true, !dbg !390 br i1 %129, label %L201, label %L166, !dbg !390 L166: ; preds = %L164 %130 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !407 %131 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %130, i32 0, i32 0, !dbg !407 %132 = load ptr, ptr addrspace(11) %131, align 8, !dbg !407, !tbaa !66, !alias.scope !69, !noalias !70 %133 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %130, i32 0, i32 1, !dbg !407 %134 = load ptr addrspace(10), ptr addrspace(11) %133, align 8, !dbg !407, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %135 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %132, 0, !dbg !407 %.Tnext.ref306 = insertvalue { ptr, ptr addrspace(10) } %135, ptr addrspace(10) %134, 1, !dbg !407 %136 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !412 %.Tnext.size_ptr307 = getelementptr inbounds i8, ptr addrspace(11) %136, i32 16, !dbg !412 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 !412, !tbaa !38, !alias.scope !59, !noalias !60 %.Tnext.size308.unbox = load i64, ptr %.Tnext.size308, align 8, !dbg !415, !tbaa !61, !alias.scope !63, !noalias !64 %memorynew_empty = icmp eq i64 %.Tnext.size308.unbox, 0, !dbg !415 br i1 %memorynew_empty, label %emptymem, label %nonemptymem, !dbg !415 L182: ; preds = %retval %"-Core.throw_inexacterror#35973317" = load ptr, ptr @_Core_throw_inexacterror_35973, align 8, !dbg !417, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %137 = addrspacecast ptr %"-Core.throw_inexacterror#35973317" to ptr addrspace(10), !dbg !417 %"jl_global#35974318" = load ptr, ptr @jl_global_35974, align 8, !dbg !417, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %138 = addrspacecast ptr %"jl_global#35974318" to ptr addrspace(10), !dbg !417 %"jl_sym#convert#35975319" = load ptr, ptr @jl_sym_convert_35975, align 8, !dbg !417, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0 %139 = addrspacecast ptr %"jl_sym#convert#35975319" to ptr addrspace(10), !dbg !417 %140 = load ptr, ptr getelementptr inbounds (i8, ptr @jl_small_typeof, i32 336), align 8, !dbg !417, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %141 = addrspacecast ptr %140 to ptr addrspace(10), !dbg !417 %box_Int64320 = call nonnull align 8 dereferenceable(8) ptr addrspace(10) @ijl_box_int64(i64 signext %488) #27, !dbg !417 %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 !417 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !417 unreachable, !dbg !417 L184: ; preds = %retval br label %L185, !dbg !417 L185: ; preds = %L184 br label %L187, !dbg !418 L187: ; preds = %L185 br label %L188, !dbg !418 L188: ; preds = %L187 br label %L189, !dbg !418 L189: ; preds = %L188 br label %L190, !dbg !418 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 !422 br label %L192, !dbg !422 L192: ; preds = %L190 call void @llvm.julia.gc_preserve_end(token %487), !dbg !425 call void @llvm.julia.gc_preserve_end(token %486), !dbg !426 br label %L195, !dbg !427 L195: ; preds = %L192 %143 = addrspacecast ptr addrspace(10) %482 to ptr addrspace(11), !dbg !428 %memory_data_ptr323 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %143, i32 0, i32 1, !dbg !428 %memory_data324 = load ptr, ptr addrspace(11) %memory_data_ptr323, align 8, !dbg !428, !tbaa !74, !alias.scope !69, !noalias !70, !nonnull !0 %144 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memory_data324, 0, !dbg !428 %memory_ref325 = insertvalue { ptr, ptr addrspace(10) } %144, ptr addrspace(10) %482, 1, !dbg !428 %145 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !430 %.Tnext.size_ptr326 = getelementptr inbounds i8, ptr addrspace(11) %145, i32 16, !dbg !430 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 !430, !tbaa !38, !alias.scope !59, !noalias !60 %"+Core.Array#35983" = load ptr, ptr @_Core_Array_35983, align 8, !dbg !429, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Array = ptrtoint ptr %"+Core.Array#35983" to i64, !dbg !429 %146 = inttoptr i64 %Array to ptr, !dbg !429 %current_task328 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !429 %147 = addrspacecast ptr %146 to ptr addrspace(10), !dbg !429 %"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 !429 %148 = addrspacecast ptr addrspace(10) %"new::Array" to ptr addrspace(11), !dbg !429 %149 = getelementptr inbounds i8, ptr addrspace(11) %148, i32 8, !dbg !429 store ptr addrspace(10) null, ptr addrspace(11) %149, align 8, !dbg !429, !tbaa !431, !alias.scope !69, !noalias !70 %150 = addrspacecast ptr addrspace(10) %"new::Array" to ptr addrspace(11), !dbg !429 store { ptr, ptr addrspace(10) } %memory_ref325, ptr addrspace(11) %150, align 8, !dbg !429, !tbaa !66, !alias.scope !69, !noalias !70 %151 = addrspacecast ptr addrspace(10) %"new::Array" to ptr addrspace(11), !dbg !429 %"new::Array.size_ptr" = getelementptr inbounds i8, ptr addrspace(11) %151, i32 16, !dbg !429 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 !429, !tbaa !38, !alias.scope !432, !noalias !60 br label %L199, !dbg !429 L199: ; preds = %L195 br label %L200, !dbg !429 L200: ; preds = %L199 br label %L202, !dbg !295 L201: ; preds = %L164 br label %L202, !dbg !295 L202: ; preds = %L201, %L200 %value_phi329 = phi ptr addrspace(10) [ %"new::Array", %L200 ], [ %.Tnext, %L201 ] br label %L204, !dbg !295 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 !433 %value_phi219.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %152, i32 16, !dbg !433 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 !433, !tbaa !38, !alias.scope !59, !noalias !60 %value_phi219.size.unbox = load i64, ptr %value_phi219.size, align 8, !dbg !439, !tbaa !61, !alias.scope !63, !noalias !64 %153 = icmp eq i64 %value_phi219.size.unbox, 1, !dbg !439 %154 = xor i1 %153, true, !dbg !445 %155 = getelementptr inbounds i8, ptr %"new::Tuple220", i32 0, !dbg !441 %156 = zext i1 %154 to i8, !dbg !441 store i8 %156, ptr %155, align 1, !dbg !441, !tbaa !61, !alias.scope !63, !noalias !64 %157 = getelementptr inbounds i8, ptr %"new::Extruded", i32 8, !dbg !446 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %157, ptr align 1 %"new::Tuple220", i64 1, i1 false), !dbg !446, !tbaa !61, !alias.scope !63, !noalias !64 %158 = getelementptr inbounds i8, ptr %"new::Extruded", i32 16, !dbg !446 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %158, ptr align 8 @_j_const_4, i64 8, i1 false), !dbg !446, !tbaa !38, !alias.scope !300, !noalias !301 br label %L213, !dbg !446 L213: ; preds = %L204 %159 = getelementptr inbounds i8, ptr %"new::Tuple221", i32 0, !dbg !380 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %159, ptr align 8 %"new::Extruded", i64 24, i1 false), !dbg !380, !tbaa !61, !alias.scope !63, !noalias !64 br label %L215, !dbg !380 L215: ; preds = %L213 %160 = getelementptr inbounds i8, ptr %"new::Broadcasted", i32 0, !dbg !448 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %160, ptr align 8 %"new::Tuple221", i64 24, i1 false), !dbg !448, !tbaa !61, !alias.scope !63, !noalias !64 %161 = getelementptr inbounds i8, ptr %"new::Broadcasted", i32 24, !dbg !448 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %161, ptr align 8 %"new::Tuple", i64 8, i1 false), !dbg !448, !tbaa !61, !alias.scope !63, !noalias !64 br label %L217, !dbg !448 L217: ; preds = %L215 %.Tlast.size.unbox222 = load i64, ptr %.Tlast.size, align 8, !dbg !450, !tbaa !61, !alias.scope !63, !noalias !64 %162 = icmp slt i64 0, %.Tlast.size.unbox222, !dbg !450 %163 = xor i1 %162, true, !dbg !451 br i1 %163, label %L282, label %L219, !dbg !451 L219: ; preds = %L217 br label %L220, !dbg !295 L220: ; preds = %load283, %L219 %value_phi223 = phi i64 [ 0, %L219 ], [ %470, %load283 ] %.Tlast.size.unbox224 = load i64, ptr %.Tlast.size, align 8, !dbg !458, !tbaa !61, !alias.scope !63, !noalias !64 %164 = icmp slt i64 %value_phi223, %.Tlast.size.unbox224, !dbg !458 %165 = xor i1 %164, true, !dbg !459 br i1 %165, label %L282, label %L223, !dbg !459 L223: ; preds = %L220 %166 = add i64 %value_phi223, 1, !dbg !460 br i1 false, label %L233, label %L226, !dbg !464 L226: ; preds = %L223 %167 = getelementptr inbounds i8, ptr %"new::Tuple225", i32 0, !dbg !464 store i64 %166, ptr %167, align 8, !dbg !464, !tbaa !61, !alias.scope !63, !noalias !64 %168 = sub i64 %166, 1, !dbg !468 %bitcast226 = load i64, ptr %.Tlast.size, align 8, !dbg !472, !tbaa !61, !alias.scope !63, !noalias !64 %169 = icmp ult i64 %168, %bitcast226, !dbg !474 %170 = xor i1 %169, true, !dbg !471 br i1 %170, label %L265, label %L232, !dbg !471 L232: ; preds = %L226 br label %L233, !dbg !471 L233: ; preds = %L232, %L223 br i1 false, label %L241, label %L235, !dbg !475 L235: ; preds = %L233 %171 = sub i64 %166, 1, !dbg !481 %bitcast227 = load i64, ptr %.Tlast.size, align 8, !dbg !485, !tbaa !61, !alias.scope !63, !noalias !64 %172 = icmp ult i64 %171, %bitcast227, !dbg !487 %173 = xor i1 %172, true, !dbg !483 br i1 %173, label %L267, label %L240, !dbg !483 L240: ; preds = %L235 br label %L241, !dbg !483 L241: ; preds = %L240, %L233 %ifelse_cond = xor i1 %154, true, !dbg !488 %174 = select i1 %ifelse_cond, i64 1, i64 %166, !dbg !488 br i1 false, label %L252, label %L244, !dbg !497 L244: ; preds = %L241 %175 = sub i64 %174, 1, !dbg !499 %176 = addrspacecast ptr addrspace(10) %value_phi219 to ptr addrspace(11), !dbg !502 %value_phi219.size_ptr228 = getelementptr inbounds i8, ptr addrspace(11) %176, i32 16, !dbg !502 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 !502, !tbaa !38, !alias.scope !59, !noalias !60 %bitcast230 = load i64, ptr %value_phi219.size229, align 8, !dbg !499, !tbaa !61, !alias.scope !63, !noalias !64 %177 = icmp ult i64 %175, %bitcast230, !dbg !499 %178 = xor i1 %177, true, !dbg !501 br i1 %178, label %L270, label %L251, !dbg !501 L251: ; preds = %L244 br label %L252, !dbg !501 L252: ; preds = %L251, %L241 %179 = addrspacecast ptr addrspace(10) %value_phi219 to ptr addrspace(11), !dbg !504 %180 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %179, i32 0, i32 0, !dbg !504 %memoryref_data231 = load ptr, ptr addrspace(11) %180, align 8, !dbg !504, !tbaa !66, !alias.scope !69, !noalias !70 %181 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %179, i32 0, i32 1, !dbg !504 %memoryref_mem251 = load ptr addrspace(10), ptr addrspace(11) %181, align 8, !dbg !504, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %182 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data231, 0, !dbg !504 %value_phi219.ref = insertvalue { ptr, ptr addrspace(10) } %182, ptr addrspace(10) %memoryref_mem251, 1, !dbg !504 %memoryref_offset233 = sub i64 %174, 1, !dbg !504 %183 = addrspacecast ptr addrspace(10) %memoryref_mem251 to ptr addrspace(11), !dbg !504 %184 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %183, i32 0, i32 0, !dbg !504 %memory_len234 = load i64, ptr addrspace(11) %184, align 8, !dbg !504, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %185 = add nuw i64 %memory_len234, %memory_len234, !dbg !504 %186 = add i64 %memoryref_offset233, %memory_len234, !dbg !504 %memoryref_ovflw235 = icmp uge i64 %186, %185, !dbg !504 %memoryref_byteoffset236 = mul i64 %memoryref_offset233, 8, !dbg !504 %memoryref_data_byteoffset237 = getelementptr i8, ptr %memoryref_data231, i64 %memoryref_byteoffset236, !dbg !504 %187 = addrspacecast ptr addrspace(10) %memoryref_mem251 to ptr addrspace(11), !dbg !504 %188 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %187, i32 0, i32 0, !dbg !504 %memory_len238 = load i64, ptr addrspace(11) %188, align 8, !dbg !504, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %189 = addrspacecast ptr addrspace(10) %memoryref_mem251 to ptr addrspace(11), !dbg !504 %memory_data_ptr239 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %189, i32 0, i32 1, !dbg !504 %memory_data240 = load ptr, ptr addrspace(11) %memory_data_ptr239, align 8, !dbg !504, !tbaa !74, !alias.scope !69, !noalias !70, !nonnull !0 %190 = ptrtoint ptr %memory_data240 to i64, !dbg !504 %191 = ptrtoint ptr %memoryref_data_byteoffset237 to i64, !dbg !504 %192 = sub i64 %191, %190, !dbg !504 %memoryref_bytelen241 = mul nuw nsw i64 %memory_len238, 8, !dbg !504 %memoryref_isinbounds242 = icmp ult i64 %192, %memoryref_bytelen241, !dbg !504 %193 = xor i1 %memoryref_ovflw235, true, !dbg !504 %"memoryref_isinbounds¬ovflw243" = and i1 %193, %memoryref_isinbounds242, !dbg !504 br i1 %"memoryref_isinbounds¬ovflw243", label %idxend249, label %oob244, !dbg !504 L257: ; preds = %load254 %194 = sub i64 %166, 1, !dbg !505 %195 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !510 %.Tlast.size_ptr256 = getelementptr inbounds i8, ptr addrspace(11) %195, i32 16, !dbg !510 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 !510, !tbaa !38, !alias.scope !59, !noalias !60 %bitcast258 = load i64, ptr %.Tlast.size257, align 8, !dbg !505, !tbaa !61, !alias.scope !63, !noalias !64 %196 = icmp ult i64 %194, %bitcast258, !dbg !505 %197 = xor i1 %196, true, !dbg !506 br i1 %197, label %L273, label %L264, !dbg !506 L264: ; preds = %L257 br label %L276, !dbg !506 L265: ; preds = %L226 %198 = addrspacecast ptr %"new::OneTo" to ptr addrspace(11), !dbg !471 %199 = addrspacecast ptr %"new::Tuple225" to ptr addrspace(11), !dbg !471 call void @julia_throw_boundserror_35997(ptr addrspace(11) nocapture readonly %198, ptr addrspace(11) nocapture readonly %199) #26, !dbg !471 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !471 unreachable, !dbg !471 L267: ; preds = %L235 %200 = getelementptr inbounds i8, ptr %"new::Tuple291", i32 0, !dbg !483 store i64 %166, ptr %200, align 8, !dbg !483, !tbaa !61, !alias.scope !63, !noalias !64 %201 = getelementptr inbounds i8, ptr %0, i32 0, !dbg !483 store ptr addrspace(10) %value_phi219, ptr %201, align 8, !dbg !483 %202 = addrspacecast ptr %"new::Broadcasted" to ptr addrspace(11), !dbg !483 %203 = addrspacecast ptr %"new::Tuple291" to ptr addrspace(11), !dbg !483 call void @julia_throw_boundserror_35994(ptr addrspace(11) nocapture readonly %202, ptr nocapture readonly %0, ptr addrspace(11) nocapture readonly %203) #26, !dbg !483 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !483 unreachable, !dbg !483 L270: ; preds = %L244 %204 = getelementptr inbounds i8, ptr %"new::Tuple288", i32 0, !dbg !501 store i64 %174, ptr %204, align 8, !dbg !501, !tbaa !61, !alias.scope !63, !noalias !64 %205 = addrspacecast ptr %"new::Tuple288" to ptr addrspace(11), !dbg !501 call void @julia_throw_boundserror_35958(ptr addrspace(10) %value_phi219, ptr addrspace(11) nocapture readonly %205) #26, !dbg !501 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !501 unreachable, !dbg !501 L273: ; preds = %L257 %206 = getelementptr inbounds i8, ptr %"new::Tuple285", i32 0, !dbg !506 store i64 %166, ptr %206, align 8, !dbg !506, !tbaa !61, !alias.scope !63, !noalias !64 %207 = addrspacecast ptr %"new::Tuple285" to ptr addrspace(11), !dbg !506 call void @julia_throw_boundserror_35958(ptr addrspace(10) %.Tlast, ptr addrspace(11) nocapture readonly %207) #26, !dbg !506 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !506 unreachable, !dbg !506 L276: ; preds = %L264, %load254 %208 = addrspacecast ptr addrspace(10) %.Tlast to ptr addrspace(11), !dbg !512 %209 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %208, i32 0, i32 0, !dbg !512 %memoryref_data260 = load ptr, ptr addrspace(11) %209, align 8, !dbg !512, !tbaa !66, !alias.scope !69, !noalias !70 %210 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %208, i32 0, i32 1, !dbg !512 %memoryref_mem280 = load ptr addrspace(10), ptr addrspace(11) %210, align 8, !dbg !512, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %211 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data260, 0, !dbg !512 %.Tlast.ref259 = insertvalue { ptr, ptr addrspace(10) } %211, ptr addrspace(10) %memoryref_mem280, 1, !dbg !512 %memoryref_offset262 = sub i64 %166, 1, !dbg !513 %212 = addrspacecast ptr addrspace(10) %memoryref_mem280 to ptr addrspace(11), !dbg !513 %213 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %212, i32 0, i32 0, !dbg !513 %memory_len263 = load i64, ptr addrspace(11) %213, align 8, !dbg !513, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %214 = add nuw i64 %memory_len263, %memory_len263, !dbg !513 %215 = add i64 %memoryref_offset262, %memory_len263, !dbg !513 %memoryref_ovflw264 = icmp uge i64 %215, %214, !dbg !513 %memoryref_byteoffset265 = mul i64 %memoryref_offset262, 8, !dbg !513 %memoryref_data_byteoffset266 = getelementptr i8, ptr %memoryref_data260, i64 %memoryref_byteoffset265, !dbg !513 %216 = addrspacecast ptr addrspace(10) %memoryref_mem280 to ptr addrspace(11), !dbg !513 %217 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %216, i32 0, i32 0, !dbg !513 %memory_len267 = load i64, ptr addrspace(11) %217, align 8, !dbg !513, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %218 = addrspacecast ptr addrspace(10) %memoryref_mem280 to ptr addrspace(11), !dbg !513 %memory_data_ptr268 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %218, i32 0, i32 1, !dbg !513 %memory_data269 = load ptr, ptr addrspace(11) %memory_data_ptr268, align 8, !dbg !513, !tbaa !74, !alias.scope !69, !noalias !70, !nonnull !0 %219 = ptrtoint ptr %memory_data269 to i64, !dbg !513 %220 = ptrtoint ptr %memoryref_data_byteoffset266 to i64, !dbg !513 %221 = sub i64 %220, %219, !dbg !513 %memoryref_bytelen270 = mul nuw nsw i64 %memory_len267, 8, !dbg !513 %memoryref_isinbounds271 = icmp ult i64 %221, %memoryref_bytelen270, !dbg !513 %222 = xor i1 %memoryref_ovflw264, true, !dbg !513 %"memoryref_isinbounds¬ovflw272" = and i1 %222, %memoryref_isinbounds271, !dbg !513 br i1 %"memoryref_isinbounds¬ovflw272", label %idxend278, label %oob273, !dbg !513 L282: ; preds = %L220, %L217 br label %L283, !dbg !453 L283: ; preds = %L282 br label %L286, !dbg !514 L284: ; preds = %L38 %223 = addrspacecast ptr %"new::Tuple4" to ptr addrspace(11), !dbg !249 %224 = addrspacecast ptr %"new::Tuple" to ptr addrspace(11), !dbg !249 call void @julia_throwdm_35988(ptr addrspace(11) nocapture readonly %223, ptr addrspace(11) nocapture readonly %224) #26, !dbg !249 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !249 unreachable, !dbg !249 L286: ; preds = %L283, %L136 br label %L287, !dbg !375 L287: ; preds = %L286 br label %L288, !dbg !209 L288: ; preds = %L287 br label %L289, !dbg !212 L289: ; preds = %L288 %225 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !515 %.Tnext13 = load atomic ptr addrspace(10), ptr addrspace(11) %225 unordered, align 8, !dbg !515, !tbaa !200, !alias.scope !183, !noalias !184, !nonnull !0, !dereferenceable !202, !align !35 %226 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !517 %.Tlast_ptr14 = getelementptr inbounds i8, ptr addrspace(11) %226, i32 8, !dbg !517 %.Tlast15 = load atomic ptr addrspace(10), ptr addrspace(11) %.Tlast_ptr14 unordered, align 8, !dbg !517, !tbaa !200, !alias.scope !183, !noalias !184, !nonnull !0, !dereferenceable !202, !align !35 %227 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !519 %".\CE\BB_ptr" = getelementptr inbounds i8, ptr addrspace(11) %227, i32 24, !dbg !519 %".\CE\BB" = load double, ptr addrspace(11) %".\CE\BB_ptr", align 8, !dbg !519, !tbaa !200, !alias.scope !183, !noalias !184 %228 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !521 %.n_ptr = getelementptr inbounds i8, ptr addrspace(11) %228, i32 16, !dbg !521 %.n = load i64, ptr addrspace(11) %.n_ptr, align 8, !dbg !521, !tbaa !200, !alias.scope !183, !noalias !184 %229 = sub i64 %.n, 1, !dbg !523 %230 = icmp sle i64 2, %229, !dbg !525 %231 = xor i1 %230, true, !dbg !527 br i1 %231, label %L298, label %L297, !dbg !527 L297: ; preds = %L289 br label %L299, !dbg !527 L298: ; preds = %L289 br label %L299, !dbg !530 L299: ; preds = %L298, %L297 %value_phi16 = phi i64 [ %229, %L297 ], [ 1, %L298 ] br label %L301, !dbg !528 L301: ; preds = %L299 br label %L302, !dbg !528 L302: ; preds = %L301 %232 = icmp slt i64 %value_phi16, 2, !dbg !533 %233 = xor i1 %232, true, !dbg !536 br i1 %233, label %L305, label %L304, !dbg !536 L304: ; preds = %L302 br label %L306, !dbg !536 L305: ; preds = %L302 br label %L306, !dbg !536 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 !524 %235 = xor i1 %234, true, !dbg !524 %236 = xor i1 %235, true, !dbg !524 br i1 %236, label %L421, label %L306.L311_crit_edge, !dbg !524 L306.L311_crit_edge: ; preds = %L306 br label %L311, !dbg !536 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 !531 L315: ; preds = %L311 %237 = sub i64 %value_phi20, 1, !dbg !537 %238 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !538 %.Tlast15.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %238, i32 16, !dbg !538 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 !538, !tbaa !38, !alias.scope !59, !noalias !60 %bitcast = load i64, ptr %.Tlast15.size, align 8, !dbg !537, !tbaa !61, !alias.scope !63, !noalias !64 %239 = icmp ult i64 %237, %bitcast, !dbg !537 %240 = xor i1 %239, true, !dbg !530 br i1 %240, label %L323, label %L322, !dbg !530 L322: ; preds = %L315 br label %L326, !dbg !530 L323: ; preds = %L315 %241 = getelementptr inbounds i8, ptr %"new::Tuple156", i32 0, !dbg !530 store i64 %value_phi20, ptr %241, align 8, !dbg !530, !tbaa !61, !alias.scope !63, !noalias !64 %242 = addrspacecast ptr %"new::Tuple156" to ptr addrspace(11), !dbg !530 call void @julia_throw_boundserror_35958(ptr addrspace(10) %.Tlast15, ptr addrspace(11) nocapture readonly %242) #26, !dbg !530 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !530 unreachable, !dbg !530 L326: ; preds = %L322 br label %L327, !dbg !530 L327: ; preds = %L326, %L311 %243 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !540 %244 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %243, i32 0, i32 0, !dbg !540 %memoryref_data = load ptr, ptr addrspace(11) %244, align 8, !dbg !540, !tbaa !66, !alias.scope !69, !noalias !70 %245 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %243, i32 0, i32 1, !dbg !540 %memoryref_mem = load ptr addrspace(10), ptr addrspace(11) %245, align 8, !dbg !540, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %246 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data, 0, !dbg !540 %.Tlast15.ref = insertvalue { ptr, ptr addrspace(10) } %246, ptr addrspace(10) %memoryref_mem, 1, !dbg !540 %memoryref_offset = sub i64 %value_phi20, 1, !dbg !540 %247 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !540 %248 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %247, i32 0, i32 0, !dbg !540 %memory_len = load i64, ptr addrspace(11) %248, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %249 = add nuw i64 %memory_len, %memory_len, !dbg !540 %250 = add i64 %memoryref_offset, %memory_len, !dbg !540 %memoryref_ovflw = icmp uge i64 %250, %249, !dbg !540 %memoryref_byteoffset = mul i64 %memoryref_offset, 8, !dbg !540 %memoryref_data_byteoffset = getelementptr i8, ptr %memoryref_data, i64 %memoryref_byteoffset, !dbg !540 %251 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !540 %252 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %251, i32 0, i32 0, !dbg !540 %memory_len22 = load i64, ptr addrspace(11) %252, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %253 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !540 %memory_data_ptr = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %253, i32 0, i32 1, !dbg !540 %memory_data = load ptr, ptr addrspace(11) %memory_data_ptr, align 8, !dbg !540, !tbaa !74, !alias.scope !69, !noalias !70, !nonnull !0 %254 = ptrtoint ptr %memory_data to i64, !dbg !540 %255 = ptrtoint ptr %memoryref_data_byteoffset to i64, !dbg !540 %256 = sub i64 %255, %254, !dbg !540 %memoryref_bytelen = mul nuw nsw i64 %memory_len22, 8, !dbg !540 %memoryref_isinbounds = icmp ult i64 %256, %memoryref_bytelen, !dbg !540 %257 = xor i1 %memoryref_ovflw, true, !dbg !540 %"memoryref_isinbounds¬ovflw" = and i1 %257, %memoryref_isinbounds, !dbg !540 br i1 %"memoryref_isinbounds¬ovflw", label %idxend, label %oob, !dbg !540 L331: ; preds = %load %258 = sub i64 %value_phi20, 1, !dbg !541 br i1 false, label %L346, label %L334, !dbg !531 L334: ; preds = %L331 %259 = sub i64 %258, 1, !dbg !537 %260 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !538 %.Tlast15.size_ptr27 = getelementptr inbounds i8, ptr addrspace(11) %260, i32 16, !dbg !538 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 !538, !tbaa !38, !alias.scope !59, !noalias !60 %bitcast29 = load i64, ptr %.Tlast15.size28, align 8, !dbg !537, !tbaa !61, !alias.scope !63, !noalias !64 %261 = icmp ult i64 %259, %bitcast29, !dbg !537 %262 = xor i1 %261, true, !dbg !530 br i1 %262, label %L342, label %L341, !dbg !530 L341: ; preds = %L334 br label %L345, !dbg !530 L342: ; preds = %L334 %263 = getelementptr inbounds i8, ptr %"new::Tuple153", i32 0, !dbg !530 store i64 %258, ptr %263, align 8, !dbg !530, !tbaa !61, !alias.scope !63, !noalias !64 %264 = addrspacecast ptr %"new::Tuple153" to ptr addrspace(11), !dbg !530 call void @julia_throw_boundserror_35958(ptr addrspace(10) %.Tlast15, ptr addrspace(11) nocapture readonly %264) #26, !dbg !530 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !530 unreachable, !dbg !530 L345: ; preds = %L341 br label %L346, !dbg !530 L346: ; preds = %L345, %L331 %265 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !540 %266 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %265, i32 0, i32 0, !dbg !540 %memoryref_data31 = load ptr, ptr addrspace(11) %266, align 8, !dbg !540, !tbaa !66, !alias.scope !69, !noalias !70 %267 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %265, i32 0, i32 1, !dbg !540 %memoryref_mem51 = load ptr addrspace(10), ptr addrspace(11) %267, align 8, !dbg !540, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %268 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data31, 0, !dbg !540 %.Tlast15.ref30 = insertvalue { ptr, ptr addrspace(10) } %268, ptr addrspace(10) %memoryref_mem51, 1, !dbg !540 %memoryref_offset33 = sub i64 %258, 1, !dbg !540 %269 = addrspacecast ptr addrspace(10) %memoryref_mem51 to ptr addrspace(11), !dbg !540 %270 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %269, i32 0, i32 0, !dbg !540 %memory_len34 = load i64, ptr addrspace(11) %270, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %271 = add nuw i64 %memory_len34, %memory_len34, !dbg !540 %272 = add i64 %memoryref_offset33, %memory_len34, !dbg !540 %memoryref_ovflw35 = icmp uge i64 %272, %271, !dbg !540 %memoryref_byteoffset36 = mul i64 %memoryref_offset33, 8, !dbg !540 %memoryref_data_byteoffset37 = getelementptr i8, ptr %memoryref_data31, i64 %memoryref_byteoffset36, !dbg !540 %273 = addrspacecast ptr addrspace(10) %memoryref_mem51 to ptr addrspace(11), !dbg !540 %274 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %273, i32 0, i32 0, !dbg !540 %memory_len38 = load i64, ptr addrspace(11) %274, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %275 = addrspacecast ptr addrspace(10) %memoryref_mem51 to ptr addrspace(11), !dbg !540 %memory_data_ptr39 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %275, i32 0, i32 1, !dbg !540 %memory_data40 = load ptr, ptr addrspace(11) %memory_data_ptr39, align 8, !dbg !540, !tbaa !74, !alias.scope !69, !noalias !70, !nonnull !0 %276 = ptrtoint ptr %memory_data40 to i64, !dbg !540 %277 = ptrtoint ptr %memoryref_data_byteoffset37 to i64, !dbg !540 %278 = sub i64 %277, %276, !dbg !540 %memoryref_bytelen41 = mul nuw nsw i64 %memory_len38, 8, !dbg !540 %memoryref_isinbounds42 = icmp ult i64 %278, %memoryref_bytelen41, !dbg !540 %279 = xor i1 %memoryref_ovflw35, true, !dbg !540 %"memoryref_isinbounds¬ovflw43" = and i1 %279, %memoryref_isinbounds42, !dbg !540 br i1 %"memoryref_isinbounds¬ovflw43", label %idxend49, label %oob44, !dbg !540 L350: ; preds = %load54 br i1 false, label %L364, label %L352, !dbg !531 L352: ; preds = %L350 %280 = sub i64 %value_phi20, 1, !dbg !537 %281 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !538 %.Tlast15.size_ptr56 = getelementptr inbounds i8, ptr addrspace(11) %281, i32 16, !dbg !538 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 !538, !tbaa !38, !alias.scope !59, !noalias !60 %bitcast58 = load i64, ptr %.Tlast15.size57, align 8, !dbg !537, !tbaa !61, !alias.scope !63, !noalias !64 %282 = icmp ult i64 %280, %bitcast58, !dbg !537 %283 = xor i1 %282, true, !dbg !530 br i1 %283, label %L360, label %L359, !dbg !530 L359: ; preds = %L352 br label %L363, !dbg !530 L360: ; preds = %L352 %284 = getelementptr inbounds i8, ptr %"new::Tuple150", i32 0, !dbg !530 store i64 %value_phi20, ptr %284, align 8, !dbg !530, !tbaa !61, !alias.scope !63, !noalias !64 %285 = addrspacecast ptr %"new::Tuple150" to ptr addrspace(11), !dbg !530 call void @julia_throw_boundserror_35958(ptr addrspace(10) %.Tlast15, ptr addrspace(11) nocapture readonly %285) #26, !dbg !530 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !530 unreachable, !dbg !530 L363: ; preds = %L359 br label %L364, !dbg !530 L364: ; preds = %L363, %L350 %286 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !540 %287 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %286, i32 0, i32 0, !dbg !540 %memoryref_data60 = load ptr, ptr addrspace(11) %287, align 8, !dbg !540, !tbaa !66, !alias.scope !69, !noalias !70 %288 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %286, i32 0, i32 1, !dbg !540 %memoryref_mem80 = load ptr addrspace(10), ptr addrspace(11) %288, align 8, !dbg !540, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %289 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data60, 0, !dbg !540 %.Tlast15.ref59 = insertvalue { ptr, ptr addrspace(10) } %289, ptr addrspace(10) %memoryref_mem80, 1, !dbg !540 %memoryref_offset62 = sub i64 %value_phi20, 1, !dbg !540 %290 = addrspacecast ptr addrspace(10) %memoryref_mem80 to ptr addrspace(11), !dbg !540 %291 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %290, i32 0, i32 0, !dbg !540 %memory_len63 = load i64, ptr addrspace(11) %291, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %292 = add nuw i64 %memory_len63, %memory_len63, !dbg !540 %293 = add i64 %memoryref_offset62, %memory_len63, !dbg !540 %memoryref_ovflw64 = icmp uge i64 %293, %292, !dbg !540 %memoryref_byteoffset65 = mul i64 %memoryref_offset62, 8, !dbg !540 %memoryref_data_byteoffset66 = getelementptr i8, ptr %memoryref_data60, i64 %memoryref_byteoffset65, !dbg !540 %294 = addrspacecast ptr addrspace(10) %memoryref_mem80 to ptr addrspace(11), !dbg !540 %295 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %294, i32 0, i32 0, !dbg !540 %memory_len67 = load i64, ptr addrspace(11) %295, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %296 = addrspacecast ptr addrspace(10) %memoryref_mem80 to ptr addrspace(11), !dbg !540 %memory_data_ptr68 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %296, i32 0, i32 1, !dbg !540 %memory_data69 = load ptr, ptr addrspace(11) %memory_data_ptr68, align 8, !dbg !540, !tbaa !74, !alias.scope !69, !noalias !70, !nonnull !0 %297 = ptrtoint ptr %memory_data69 to i64, !dbg !540 %298 = ptrtoint ptr %memoryref_data_byteoffset66 to i64, !dbg !540 %299 = sub i64 %298, %297, !dbg !540 %memoryref_bytelen70 = mul nuw nsw i64 %memory_len67, 8, !dbg !540 %memoryref_isinbounds71 = icmp ult i64 %299, %memoryref_bytelen70, !dbg !540 %300 = xor i1 %memoryref_ovflw64, true, !dbg !540 %"memoryref_isinbounds¬ovflw72" = and i1 %300, %memoryref_isinbounds71, !dbg !540 br i1 %"memoryref_isinbounds¬ovflw72", label %idxend78, label %oob73, !dbg !540 L368: ; preds = %load83 %301 = fmul double 2.000000e+00, %394, !dbg !542 %302 = fsub double %383, %301, !dbg !546 %303 = add i64 %value_phi20, 1, !dbg !548 br i1 false, label %L385, label %L373, !dbg !531 L373: ; preds = %L368 %304 = sub i64 %303, 1, !dbg !537 %305 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !538 %.Tlast15.size_ptr85 = getelementptr inbounds i8, ptr addrspace(11) %305, i32 16, !dbg !538 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 !538, !tbaa !38, !alias.scope !59, !noalias !60 %bitcast87 = load i64, ptr %.Tlast15.size86, align 8, !dbg !537, !tbaa !61, !alias.scope !63, !noalias !64 %306 = icmp ult i64 %304, %bitcast87, !dbg !537 %307 = xor i1 %306, true, !dbg !530 br i1 %307, label %L381, label %L380, !dbg !530 L380: ; preds = %L373 br label %L384, !dbg !530 L381: ; preds = %L373 %308 = getelementptr inbounds i8, ptr %"new::Tuple147", i32 0, !dbg !530 store i64 %303, ptr %308, align 8, !dbg !530, !tbaa !61, !alias.scope !63, !noalias !64 %309 = addrspacecast ptr %"new::Tuple147" to ptr addrspace(11), !dbg !530 call void @julia_throw_boundserror_35958(ptr addrspace(10) %.Tlast15, ptr addrspace(11) nocapture readonly %309) #26, !dbg !530 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !530 unreachable, !dbg !530 L384: ; preds = %L380 br label %L385, !dbg !530 L385: ; preds = %L384, %L368 %310 = addrspacecast ptr addrspace(10) %.Tlast15 to ptr addrspace(11), !dbg !540 %311 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %310, i32 0, i32 0, !dbg !540 %memoryref_data89 = load ptr, ptr addrspace(11) %311, align 8, !dbg !540, !tbaa !66, !alias.scope !69, !noalias !70 %312 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %310, i32 0, i32 1, !dbg !540 %memoryref_mem109 = load ptr addrspace(10), ptr addrspace(11) %312, align 8, !dbg !540, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %313 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data89, 0, !dbg !540 %.Tlast15.ref88 = insertvalue { ptr, ptr addrspace(10) } %313, ptr addrspace(10) %memoryref_mem109, 1, !dbg !540 %memoryref_offset91 = sub i64 %303, 1, !dbg !540 %314 = addrspacecast ptr addrspace(10) %memoryref_mem109 to ptr addrspace(11), !dbg !540 %315 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %314, i32 0, i32 0, !dbg !540 %memory_len92 = load i64, ptr addrspace(11) %315, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %316 = add nuw i64 %memory_len92, %memory_len92, !dbg !540 %317 = add i64 %memoryref_offset91, %memory_len92, !dbg !540 %memoryref_ovflw93 = icmp uge i64 %317, %316, !dbg !540 %memoryref_byteoffset94 = mul i64 %memoryref_offset91, 8, !dbg !540 %memoryref_data_byteoffset95 = getelementptr i8, ptr %memoryref_data89, i64 %memoryref_byteoffset94, !dbg !540 %318 = addrspacecast ptr addrspace(10) %memoryref_mem109 to ptr addrspace(11), !dbg !540 %319 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %318, i32 0, i32 0, !dbg !540 %memory_len96 = load i64, ptr addrspace(11) %319, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %320 = addrspacecast ptr addrspace(10) %memoryref_mem109 to ptr addrspace(11), !dbg !540 %memory_data_ptr97 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %320, i32 0, i32 1, !dbg !540 %memory_data98 = load ptr, ptr addrspace(11) %memory_data_ptr97, align 8, !dbg !540, !tbaa !74, !alias.scope !69, !noalias !70, !nonnull !0 %321 = ptrtoint ptr %memory_data98 to i64, !dbg !540 %322 = ptrtoint ptr %memoryref_data_byteoffset95 to i64, !dbg !540 %323 = sub i64 %322, %321, !dbg !540 %memoryref_bytelen99 = mul nuw nsw i64 %memory_len96, 8, !dbg !540 %memoryref_isinbounds100 = icmp ult i64 %323, %memoryref_bytelen99, !dbg !540 %324 = xor i1 %memoryref_ovflw93, true, !dbg !540 %"memoryref_isinbounds¬ovflw101" = and i1 %324, %memoryref_isinbounds100, !dbg !540 br i1 %"memoryref_isinbounds¬ovflw101", label %idxend107, label %oob102, !dbg !540 L389: ; preds = %load112 %325 = fadd double %302, %405, !dbg !549 %326 = fmul double %".\CE\BB", %325, !dbg !551 %327 = fadd double %372, %326, !dbg !549 br i1 false, label %L405, label %L394, !dbg !552 L394: ; preds = %L389 %328 = sub i64 %value_phi20, 1, !dbg !554 %329 = addrspacecast ptr addrspace(10) %.Tnext13 to ptr addrspace(11), !dbg !555 %.Tnext13.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %329, i32 16, !dbg !555 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 !555, !tbaa !38, !alias.scope !59, !noalias !60 %bitcast114 = load i64, ptr %.Tnext13.size, align 8, !dbg !554, !tbaa !61, !alias.scope !63, !noalias !64 %330 = icmp ult i64 %328, %bitcast114, !dbg !554 %331 = xor i1 %330, true, !dbg !552 br i1 %331, label %L402, label %L401, !dbg !552 L401: ; preds = %L394 br label %L405, !dbg !552 L402: ; preds = %L394 %332 = getelementptr inbounds i8, ptr %"new::Tuple146", i32 0, !dbg !552 store i64 %value_phi20, ptr %332, align 8, !dbg !552, !tbaa !61, !alias.scope !63, !noalias !64 %333 = addrspacecast ptr %"new::Tuple146" to ptr addrspace(11), !dbg !552 call void @julia_throw_boundserror_35958(ptr addrspace(10) %.Tnext13, ptr addrspace(11) nocapture readonly %333) #26, !dbg !552 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_1), !dbg !552 unreachable, !dbg !552 L405: ; preds = %L401, %L389 %334 = addrspacecast ptr addrspace(10) %.Tnext13 to ptr addrspace(11), !dbg !557 %335 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %334, i32 0, i32 0, !dbg !557 %memoryref_data115 = load ptr, ptr addrspace(11) %335, align 8, !dbg !557, !tbaa !66, !alias.scope !69, !noalias !70 %336 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %334, i32 0, i32 1, !dbg !557 %memoryref_mem135 = load ptr addrspace(10), ptr addrspace(11) %336, align 8, !dbg !557, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %337 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data115, 0, !dbg !557 %.Tnext13.ref = insertvalue { ptr, ptr addrspace(10) } %337, ptr addrspace(10) %memoryref_mem135, 1, !dbg !557 %memoryref_offset117 = sub i64 %value_phi20, 1, !dbg !558 %338 = addrspacecast ptr addrspace(10) %memoryref_mem135 to ptr addrspace(11), !dbg !558 %339 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %338, i32 0, i32 0, !dbg !558 %memory_len118 = load i64, ptr addrspace(11) %339, align 8, !dbg !558, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %340 = add nuw i64 %memory_len118, %memory_len118, !dbg !558 %341 = add i64 %memoryref_offset117, %memory_len118, !dbg !558 %memoryref_ovflw119 = icmp uge i64 %341, %340, !dbg !558 %memoryref_byteoffset120 = mul i64 %memoryref_offset117, 8, !dbg !558 %memoryref_data_byteoffset121 = getelementptr i8, ptr %memoryref_data115, i64 %memoryref_byteoffset120, !dbg !558 %342 = addrspacecast ptr addrspace(10) %memoryref_mem135 to ptr addrspace(11), !dbg !558 %343 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %342, i32 0, i32 0, !dbg !558 %memory_len122 = load i64, ptr addrspace(11) %343, align 8, !dbg !558, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %344 = addrspacecast ptr addrspace(10) %memoryref_mem135 to ptr addrspace(11), !dbg !558 %memory_data_ptr123 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %344, i32 0, i32 1, !dbg !558 %memory_data124 = load ptr, ptr addrspace(11) %memory_data_ptr123, align 8, !dbg !558, !tbaa !74, !alias.scope !69, !noalias !70, !nonnull !0 %345 = ptrtoint ptr %memory_data124 to i64, !dbg !558 %346 = ptrtoint ptr %memoryref_data_byteoffset121 to i64, !dbg !558 %347 = sub i64 %346, %345, !dbg !558 %memoryref_bytelen125 = mul nuw nsw i64 %memory_len122, 8, !dbg !558 %memoryref_isinbounds126 = icmp ult i64 %347, %memoryref_bytelen125, !dbg !558 %348 = xor i1 %memoryref_ovflw119, true, !dbg !558 %"memoryref_isinbounds¬ovflw127" = and i1 %348, %memoryref_isinbounds126, !dbg !558 br i1 %"memoryref_isinbounds¬ovflw127", label %idxend133, label %oob128, !dbg !558 L409: ; preds = %load138 br label %L410, !dbg !553 L410: ; preds = %L409 %349 = icmp eq i64 %value_phi21, %value_phi16, !dbg !559 %350 = xor i1 %349, true, !dbg !295 br i1 %350, label %L413, label %L412, !dbg !295 L412: ; preds = %L410 br label %L415, !dbg !295 L413: ; preds = %L410 %351 = add i64 %value_phi21, 1, !dbg !560 br label %L415, !dbg !295 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 !297 %353 = xor i1 %352, true, !dbg !297 %354 = xor i1 %353, true, !dbg !297 br i1 %354, label %L421, label %L420, !dbg !297 L420: ; preds = %L415 br label %L311, !dbg !536 L421: ; preds = %L415, %L306 br label %L422, !dbg !562 L422: ; preds = %L421 %355 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !563 %.tsteps_ptr = getelementptr inbounds i8, ptr addrspace(11) %355, i32 32, !dbg !563 %.tsteps = load i64, ptr addrspace(11) %.tsteps_ptr, align 8, !dbg !563, !tbaa !200, !alias.scope !183, !noalias !184 %356 = add i64 %.tsteps, 1, !dbg !565 %357 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !566 %.tsteps_ptr143 = getelementptr inbounds i8, ptr addrspace(11) %357, i32 32, !dbg !566 store i64 %356, ptr addrspace(11) %.tsteps_ptr143, align 8, !dbg !566, !tbaa !200, !alias.scope !183, !noalias !184 %358 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !568 %.tsteps_ptr144 = getelementptr inbounds i8, ptr addrspace(11) %358, i32 32, !dbg !568 %.tsteps145 = load i64, ptr addrspace(11) %.tsteps_ptr144, align 8, !dbg !568, !tbaa !200, !alias.scope !183, !noalias !184 %359 = getelementptr inbounds i8, ptr addrspace(11) %"#self#::#sumheat##2#sumheat##3", i32 8, !dbg !569 %.unbox = load i64, ptr addrspace(11) %359, align 8, !dbg !570, !tbaa !23, !alias.scope !26, !noalias !29 %360 = icmp sle i64 %.tsteps145, %.unbox, !dbg !570 %361 = zext i1 %360 to i8, !dbg !569 ret i8 %361, !dbg !569 oob: ; preds = %L327 %"+Core.GenericMemoryRef#35951" = load ptr, ptr @_Core_GenericMemoryRef_35951, align 8, !dbg !540, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %GenericMemoryRef = ptrtoint ptr %"+Core.GenericMemoryRef#35951" to i64, !dbg !540 %362 = inttoptr i64 %GenericMemoryRef to ptr, !dbg !540 %current_task23 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !540 %363 = addrspacecast ptr %362 to ptr addrspace(10), !dbg !540 %"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 !540 %364 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef" to ptr addrspace(11), !dbg !540 store { ptr, ptr addrspace(10) } %.Tlast15.ref, ptr addrspace(11) %364, align 8, !dbg !540, !tbaa !179, !alias.scope !183, !noalias !184 %365 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef" to ptr addrspace(12), !dbg !540 call void @ijl_bounds_error_int(ptr addrspace(12) %365, i64 %value_phi20), !dbg !540 unreachable, !dbg !540 idxend: ; preds = %L327 %366 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset, 0, !dbg !540 %memory_ref = insertvalue { ptr, ptr addrspace(10) } %366, ptr addrspace(10) %memoryref_mem, 1, !dbg !540 %367 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !540 %368 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %367, i32 0, i32 0, !dbg !540 %memory_len24 = load i64, ptr addrspace(11) %368, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %369 = icmp eq i64 %memory_len24, 0, !dbg !540 br i1 %369, label %oob25, label %load, !dbg !540 oob25: ; preds = %idxend %370 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(12), !dbg !540 call void @ijl_bounds_error_int(ptr addrspace(12) %370, i64 1), !dbg !540 unreachable, !dbg !540 load: ; preds = %idxend %371 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem, ptr %memoryref_data), !dbg !540 %memoryref_data26 = getelementptr inbounds i8, ptr addrspace(13) %371, i64 %memoryref_byteoffset, !dbg !540 %372 = load double, ptr addrspace(13) %memoryref_data26, align 8, !dbg !540, !tbaa !185, !alias.scope !183, !noalias !184 br label %L331, !dbg !540 oob44: ; preds = %L346 %"+Core.GenericMemoryRef#3595145" = load ptr, ptr @_Core_GenericMemoryRef_35951, align 8, !dbg !540, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %GenericMemoryRef46 = ptrtoint ptr %"+Core.GenericMemoryRef#3595145" to i64, !dbg !540 %373 = inttoptr i64 %GenericMemoryRef46 to ptr, !dbg !540 %current_task47 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !540 %374 = addrspacecast ptr %373 to ptr addrspace(10), !dbg !540 %"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 !540 %375 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef48" to ptr addrspace(11), !dbg !540 store { ptr, ptr addrspace(10) } %.Tlast15.ref30, ptr addrspace(11) %375, align 8, !dbg !540, !tbaa !179, !alias.scope !183, !noalias !184 %376 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef48" to ptr addrspace(12), !dbg !540 call void @ijl_bounds_error_int(ptr addrspace(12) %376, i64 %258), !dbg !540 unreachable, !dbg !540 idxend49: ; preds = %L346 %377 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset37, 0, !dbg !540 %memory_ref50 = insertvalue { ptr, ptr addrspace(10) } %377, ptr addrspace(10) %memoryref_mem51, 1, !dbg !540 %378 = addrspacecast ptr addrspace(10) %memoryref_mem51 to ptr addrspace(11), !dbg !540 %379 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %378, i32 0, i32 0, !dbg !540 %memory_len52 = load i64, ptr addrspace(11) %379, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %380 = icmp eq i64 %memory_len52, 0, !dbg !540 br i1 %380, label %oob53, label %load54, !dbg !540 oob53: ; preds = %idxend49 %381 = addrspacecast ptr addrspace(10) %memoryref_mem51 to ptr addrspace(12), !dbg !540 call void @ijl_bounds_error_int(ptr addrspace(12) %381, i64 1), !dbg !540 unreachable, !dbg !540 load54: ; preds = %idxend49 %382 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem51, ptr %memoryref_data31), !dbg !540 %memoryref_data55 = getelementptr inbounds i8, ptr addrspace(13) %382, i64 %memoryref_byteoffset36, !dbg !540 %383 = load double, ptr addrspace(13) %memoryref_data55, align 8, !dbg !540, !tbaa !185, !alias.scope !183, !noalias !184 br label %L350, !dbg !540 oob73: ; preds = %L364 %"+Core.GenericMemoryRef#3595174" = load ptr, ptr @_Core_GenericMemoryRef_35951, align 8, !dbg !540, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %GenericMemoryRef75 = ptrtoint ptr %"+Core.GenericMemoryRef#3595174" to i64, !dbg !540 %384 = inttoptr i64 %GenericMemoryRef75 to ptr, !dbg !540 %current_task76 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !540 %385 = addrspacecast ptr %384 to ptr addrspace(10), !dbg !540 %"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 !540 %386 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef77" to ptr addrspace(11), !dbg !540 store { ptr, ptr addrspace(10) } %.Tlast15.ref59, ptr addrspace(11) %386, align 8, !dbg !540, !tbaa !179, !alias.scope !183, !noalias !184 %387 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef77" to ptr addrspace(12), !dbg !540 call void @ijl_bounds_error_int(ptr addrspace(12) %387, i64 %value_phi20), !dbg !540 unreachable, !dbg !540 idxend78: ; preds = %L364 %388 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset66, 0, !dbg !540 %memory_ref79 = insertvalue { ptr, ptr addrspace(10) } %388, ptr addrspace(10) %memoryref_mem80, 1, !dbg !540 %389 = addrspacecast ptr addrspace(10) %memoryref_mem80 to ptr addrspace(11), !dbg !540 %390 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %389, i32 0, i32 0, !dbg !540 %memory_len81 = load i64, ptr addrspace(11) %390, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %391 = icmp eq i64 %memory_len81, 0, !dbg !540 br i1 %391, label %oob82, label %load83, !dbg !540 oob82: ; preds = %idxend78 %392 = addrspacecast ptr addrspace(10) %memoryref_mem80 to ptr addrspace(12), !dbg !540 call void @ijl_bounds_error_int(ptr addrspace(12) %392, i64 1), !dbg !540 unreachable, !dbg !540 load83: ; preds = %idxend78 %393 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem80, ptr %memoryref_data60), !dbg !540 %memoryref_data84 = getelementptr inbounds i8, ptr addrspace(13) %393, i64 %memoryref_byteoffset65, !dbg !540 %394 = load double, ptr addrspace(13) %memoryref_data84, align 8, !dbg !540, !tbaa !185, !alias.scope !183, !noalias !184 br label %L368, !dbg !540 oob102: ; preds = %L385 %"+Core.GenericMemoryRef#35951103" = load ptr, ptr @_Core_GenericMemoryRef_35951, align 8, !dbg !540, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %GenericMemoryRef104 = ptrtoint ptr %"+Core.GenericMemoryRef#35951103" to i64, !dbg !540 %395 = inttoptr i64 %GenericMemoryRef104 to ptr, !dbg !540 %current_task105 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !540 %396 = addrspacecast ptr %395 to ptr addrspace(10), !dbg !540 %"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 !540 %397 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef106" to ptr addrspace(11), !dbg !540 store { ptr, ptr addrspace(10) } %.Tlast15.ref88, ptr addrspace(11) %397, align 8, !dbg !540, !tbaa !179, !alias.scope !183, !noalias !184 %398 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef106" to ptr addrspace(12), !dbg !540 call void @ijl_bounds_error_int(ptr addrspace(12) %398, i64 %303), !dbg !540 unreachable, !dbg !540 idxend107: ; preds = %L385 %399 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset95, 0, !dbg !540 %memory_ref108 = insertvalue { ptr, ptr addrspace(10) } %399, ptr addrspace(10) %memoryref_mem109, 1, !dbg !540 %400 = addrspacecast ptr addrspace(10) %memoryref_mem109 to ptr addrspace(11), !dbg !540 %401 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %400, i32 0, i32 0, !dbg !540 %memory_len110 = load i64, ptr addrspace(11) %401, align 8, !dbg !540, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %402 = icmp eq i64 %memory_len110, 0, !dbg !540 br i1 %402, label %oob111, label %load112, !dbg !540 oob111: ; preds = %idxend107 %403 = addrspacecast ptr addrspace(10) %memoryref_mem109 to ptr addrspace(12), !dbg !540 call void @ijl_bounds_error_int(ptr addrspace(12) %403, i64 1), !dbg !540 unreachable, !dbg !540 load112: ; preds = %idxend107 %404 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem109, ptr %memoryref_data89), !dbg !540 %memoryref_data113 = getelementptr inbounds i8, ptr addrspace(13) %404, i64 %memoryref_byteoffset94, !dbg !540 %405 = load double, ptr addrspace(13) %memoryref_data113, align 8, !dbg !540, !tbaa !185, !alias.scope !183, !noalias !184 br label %L389, !dbg !540 oob128: ; preds = %L405 %"+Core.GenericMemoryRef#35951129" = load ptr, ptr @_Core_GenericMemoryRef_35951, align 8, !dbg !558, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %GenericMemoryRef130 = ptrtoint ptr %"+Core.GenericMemoryRef#35951129" to i64, !dbg !558 %406 = inttoptr i64 %GenericMemoryRef130 to ptr, !dbg !558 %current_task131 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !558 %407 = addrspacecast ptr %406 to ptr addrspace(10), !dbg !558 %"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 !558 %408 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef132" to ptr addrspace(11), !dbg !558 store { ptr, ptr addrspace(10) } %.Tnext13.ref, ptr addrspace(11) %408, align 8, !dbg !558, !tbaa !179, !alias.scope !183, !noalias !184 %409 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef132" to ptr addrspace(12), !dbg !558 call void @ijl_bounds_error_int(ptr addrspace(12) %409, i64 %value_phi20), !dbg !558 unreachable, !dbg !558 idxend133: ; preds = %L405 %410 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset121, 0, !dbg !558 %memory_ref134 = insertvalue { ptr, ptr addrspace(10) } %410, ptr addrspace(10) %memoryref_mem135, 1, !dbg !558 %411 = addrspacecast ptr addrspace(10) %memoryref_mem135 to ptr addrspace(11), !dbg !558 %412 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %411, i32 0, i32 0, !dbg !558 %memory_len136 = load i64, ptr addrspace(11) %412, align 8, !dbg !558, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %413 = icmp eq i64 %memory_len136, 0, !dbg !558 br i1 %413, label %oob137, label %load138, !dbg !558 oob137: ; preds = %idxend133 %414 = addrspacecast ptr addrspace(10) %memoryref_mem135 to ptr addrspace(12), !dbg !558 call void @ijl_bounds_error_int(ptr addrspace(12) %414, i64 1), !dbg !558 unreachable, !dbg !558 load138: ; preds = %idxend133 %415 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem135, ptr %memoryref_data115), !dbg !558 %memoryref_data139 = getelementptr inbounds i8, ptr addrspace(13) %415, i64 %memoryref_byteoffset120, !dbg !558 store double %327, ptr addrspace(13) %memoryref_data139, align 8, !dbg !558, !tbaa !185, !alias.scope !183, !noalias !184 br label %L409, !dbg !571 after_error: ; No predecessors! call void @llvm.trap(), !dbg !552 unreachable, !dbg !552 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !552 unreachable, !dbg !552 after_error148: ; No predecessors! call void @llvm.trap(), !dbg !530 unreachable, !dbg !530 after_noret149: ; No predecessors! call void @llvm.trap(), !dbg !530 unreachable, !dbg !530 after_error151: ; No predecessors! call void @llvm.trap(), !dbg !530 unreachable, !dbg !530 after_noret152: ; No predecessors! call void @llvm.trap(), !dbg !530 unreachable, !dbg !530 after_error154: ; No predecessors! call void @llvm.trap(), !dbg !530 unreachable, !dbg !530 after_noret155: ; No predecessors! call void @llvm.trap(), !dbg !530 unreachable, !dbg !530 after_error157: ; No predecessors! call void @llvm.trap(), !dbg !530 unreachable, !dbg !530 after_noret158: ; No predecessors! call void @llvm.trap(), !dbg !530 unreachable, !dbg !530 oob185: ; preds = %L107 %"+Core.GenericMemoryRef#35951186" = load ptr, ptr @_Core_GenericMemoryRef_35951, align 8, !dbg !352, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %GenericMemoryRef187 = ptrtoint ptr %"+Core.GenericMemoryRef#35951186" to i64, !dbg !352 %416 = inttoptr i64 %GenericMemoryRef187 to ptr, !dbg !352 %current_task188 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !352 %417 = addrspacecast ptr %416 to ptr addrspace(10), !dbg !352 %"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 !352 %418 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef189" to ptr addrspace(11), !dbg !352 store { ptr, ptr addrspace(10) } %.Tlast.ref, ptr addrspace(11) %418, align 8, !dbg !352, !tbaa !179, !alias.scope !183, !noalias !184 %419 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef189" to ptr addrspace(12), !dbg !352 call void @ijl_bounds_error_int(ptr addrspace(12) %419, i64 1), !dbg !352 unreachable, !dbg !352 idxend190: ; preds = %L107 %420 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset178, 0, !dbg !352 %memory_ref191 = insertvalue { ptr, ptr addrspace(10) } %420, ptr addrspace(10) %memoryref_mem175, 1, !dbg !352 %421 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !351 %422 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %421, i32 0, i32 0, !dbg !351 %memoryref_data192 = load ptr, ptr addrspace(11) %422, align 8, !dbg !351, !tbaa !66, !alias.scope !69, !noalias !70 %423 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %421, i32 0, i32 1, !dbg !351 %memoryref_mem193 = load ptr addrspace(10), ptr addrspace(11) %423, align 8, !dbg !351, !tbaa !66, !alias.scope !69, !noalias !70, !dereferenceable_or_null !37, !align !35 %424 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data192, 0, !dbg !351 %.Tnext.ref = insertvalue { ptr, ptr addrspace(10) } %424, ptr addrspace(10) %memoryref_mem193, 1, !dbg !351 %425 = addrspacecast ptr addrspace(10) %memoryref_mem193 to ptr addrspace(11), !dbg !352 %426 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %425, i32 0, i32 0, !dbg !352 %memory_len194 = load i64, ptr addrspace(11) %426, align 8, !dbg !352, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %427 = add nuw i64 %memory_len194, %memory_len194, !dbg !352 %428 = add i64 0, %memory_len194, !dbg !352 %memoryref_ovflw195 = icmp uge i64 %428, %427, !dbg !352 %memoryref_data_byteoffset196 = getelementptr i8, ptr %memoryref_data192, i64 0, !dbg !352 %429 = addrspacecast ptr addrspace(10) %memoryref_mem193 to ptr addrspace(11), !dbg !352 %430 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %429, i32 0, i32 0, !dbg !352 %memory_len197 = load i64, ptr addrspace(11) %430, align 8, !dbg !352, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %431 = addrspacecast ptr addrspace(10) %memoryref_mem193 to ptr addrspace(11), !dbg !352 %memory_data_ptr198 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %431, i32 0, i32 1, !dbg !352 %memory_data199 = load ptr, ptr addrspace(11) %memory_data_ptr198, align 8, !dbg !352, !tbaa !74, !alias.scope !69, !noalias !70, !nonnull !0 %432 = ptrtoint ptr %memory_data199 to i64, !dbg !352 %433 = ptrtoint ptr %memoryref_data_byteoffset196 to i64, !dbg !352 %434 = sub i64 %433, %432, !dbg !352 %memoryref_bytelen200 = mul nuw nsw i64 %memory_len197, 8, !dbg !352 %memoryref_isinbounds201 = icmp ult i64 %434, %memoryref_bytelen200, !dbg !352 %435 = xor i1 %memoryref_ovflw195, true, !dbg !352 %"memoryref_isinbounds¬ovflw202" = and i1 %435, %memoryref_isinbounds201, !dbg !352 br i1 %"memoryref_isinbounds¬ovflw202", label %idxend208, label %oob203, !dbg !352 oob203: ; preds = %idxend190 %"+Core.GenericMemoryRef#35951204" = load ptr, ptr @_Core_GenericMemoryRef_35951, align 8, !dbg !352, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %GenericMemoryRef205 = ptrtoint ptr %"+Core.GenericMemoryRef#35951204" to i64, !dbg !352 %436 = inttoptr i64 %GenericMemoryRef205 to ptr, !dbg !352 %current_task206 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !352 %437 = addrspacecast ptr %436 to ptr addrspace(10), !dbg !352 %"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 !352 %438 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef207" to ptr addrspace(11), !dbg !352 store { ptr, ptr addrspace(10) } %.Tnext.ref, ptr addrspace(11) %438, align 8, !dbg !352, !tbaa !179, !alias.scope !183, !noalias !184 %439 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef207" to ptr addrspace(12), !dbg !352 call void @ijl_bounds_error_int(ptr addrspace(12) %439, i64 1), !dbg !352 unreachable, !dbg !352 idxend208: ; preds = %idxend190 %440 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset196, 0, !dbg !352 %memory_ref209 = insertvalue { ptr, ptr addrspace(10) } %440, ptr addrspace(10) %memoryref_mem193, 1, !dbg !352 %441 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %memoryref_mem175), !dbg !572 %442 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %memoryref_mem193), !dbg !573 %memory_ref191.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref191, 0, !dbg !574 %memory_ref209.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref209, 0, !dbg !574 %.Tnext.size12.unbox210 = load i64, ptr %.Tnext.size12, align 8, !dbg !580, !tbaa !61, !alias.scope !63, !noalias !64 %443 = mul i64 %.Tnext.size12.unbox210, 8, !dbg !580 %444 = lshr i64 %443, 63, !dbg !582 %445 = select i1 false, i64 0, i64 %444, !dbg !582 %446 = trunc i64 %445 to i8, !dbg !582 %447 = icmp eq i8 %446, 1, !dbg !582 %448 = xor i1 %447, true, !dbg !355 br i1 %448, label %L126, label %L122, !dbg !355 after_error211: ; No predecessors! call void @llvm.trap(), !dbg !355 unreachable, !dbg !355 after_noret212: ; No predecessors! call void @llvm.trap(), !dbg !355 unreachable, !dbg !355 after_error213: ; No predecessors! call void @llvm.trap(), !dbg !339 unreachable, !dbg !339 after_noret214: ; No predecessors! call void @llvm.trap(), !dbg !339 unreachable, !dbg !339 after_error215: ; No predecessors! call void @llvm.trap(), !dbg !308 unreachable, !dbg !308 after_noret216: ; No predecessors! call void @llvm.trap(), !dbg !308 unreachable, !dbg !308 after_error217: ; No predecessors! call void @llvm.trap(), !dbg !279 unreachable, !dbg !279 after_noret218: ; No predecessors! call void @llvm.trap(), !dbg !279 unreachable, !dbg !279 oob244: ; preds = %L252 %"+Core.GenericMemoryRef#35951245" = load ptr, ptr @_Core_GenericMemoryRef_35951, align 8, !dbg !504, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %GenericMemoryRef246 = ptrtoint ptr %"+Core.GenericMemoryRef#35951245" to i64, !dbg !504 %449 = inttoptr i64 %GenericMemoryRef246 to ptr, !dbg !504 %current_task247 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !504 %450 = addrspacecast ptr %449 to ptr addrspace(10), !dbg !504 %"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 !504 %451 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef248" to ptr addrspace(11), !dbg !504 store { ptr, ptr addrspace(10) } %value_phi219.ref, ptr addrspace(11) %451, align 8, !dbg !504, !tbaa !179, !alias.scope !183, !noalias !184 %452 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef248" to ptr addrspace(12), !dbg !504 call void @ijl_bounds_error_int(ptr addrspace(12) %452, i64 %174), !dbg !504 unreachable, !dbg !504 idxend249: ; preds = %L252 %453 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset237, 0, !dbg !504 %memory_ref250 = insertvalue { ptr, ptr addrspace(10) } %453, ptr addrspace(10) %memoryref_mem251, 1, !dbg !504 %454 = addrspacecast ptr addrspace(10) %memoryref_mem251 to ptr addrspace(11), !dbg !504 %455 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %454, i32 0, i32 0, !dbg !504 %memory_len252 = load i64, ptr addrspace(11) %455, align 8, !dbg !504, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %456 = icmp eq i64 %memory_len252, 0, !dbg !504 br i1 %456, label %oob253, label %load254, !dbg !504 oob253: ; preds = %idxend249 %457 = addrspacecast ptr addrspace(10) %memoryref_mem251 to ptr addrspace(12), !dbg !504 call void @ijl_bounds_error_int(ptr addrspace(12) %457, i64 1), !dbg !504 unreachable, !dbg !504 load254: ; preds = %idxend249 %458 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem251, ptr %memoryref_data231), !dbg !504 %memoryref_data255 = getelementptr inbounds i8, ptr addrspace(13) %458, i64 %memoryref_byteoffset236, !dbg !504 %459 = load double, ptr addrspace(13) %memoryref_data255, align 8, !dbg !504, !tbaa !185, !alias.scope !183, !noalias !184 br i1 false, label %L276, label %L257, !dbg !506 oob273: ; preds = %L276 %"+Core.GenericMemoryRef#35951274" = load ptr, ptr @_Core_GenericMemoryRef_35951, align 8, !dbg !513, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %GenericMemoryRef275 = ptrtoint ptr %"+Core.GenericMemoryRef#35951274" to i64, !dbg !513 %460 = inttoptr i64 %GenericMemoryRef275 to ptr, !dbg !513 %current_task276 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !513 %461 = addrspacecast ptr %460 to ptr addrspace(10), !dbg !513 %"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 !513 %462 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef277" to ptr addrspace(11), !dbg !513 store { ptr, ptr addrspace(10) } %.Tlast.ref259, ptr addrspace(11) %462, align 8, !dbg !513, !tbaa !179, !alias.scope !183, !noalias !184 %463 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef277" to ptr addrspace(12), !dbg !513 call void @ijl_bounds_error_int(ptr addrspace(12) %463, i64 %166), !dbg !513 unreachable, !dbg !513 idxend278: ; preds = %L276 %464 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset266, 0, !dbg !513 %memory_ref279 = insertvalue { ptr, ptr addrspace(10) } %464, ptr addrspace(10) %memoryref_mem280, 1, !dbg !513 %465 = addrspacecast ptr addrspace(10) %memoryref_mem280 to ptr addrspace(11), !dbg !513 %466 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %465, i32 0, i32 0, !dbg !513 %memory_len281 = load i64, ptr addrspace(11) %466, align 8, !dbg !513, !tbaa !71, !range !73, !alias.scope !69, !noalias !70 %467 = icmp eq i64 %memory_len281, 0, !dbg !513 br i1 %467, label %oob282, label %load283, !dbg !513 oob282: ; preds = %idxend278 %468 = addrspacecast ptr addrspace(10) %memoryref_mem280 to ptr addrspace(12), !dbg !513 call void @ijl_bounds_error_int(ptr addrspace(12) %468, i64 1), !dbg !513 unreachable, !dbg !513 load283: ; preds = %idxend278 %469 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem280, ptr %memoryref_data260), !dbg !513 %memoryref_data284 = getelementptr inbounds i8, ptr addrspace(13) %469, i64 %memoryref_byteoffset265, !dbg !513 store double %459, ptr addrspace(13) %memoryref_data284, align 8, !dbg !513, !tbaa !185, !alias.scope !183, !noalias !184 %470 = add i64 %value_phi223, 1, !dbg !584 br label %L220, !dbg !295, !llvm.loop !586 after_error286: ; No predecessors! call void @llvm.trap(), !dbg !506 unreachable, !dbg !506 after_noret287: ; No predecessors! call void @llvm.trap(), !dbg !506 unreachable, !dbg !506 after_error289: ; No predecessors! call void @llvm.trap(), !dbg !501 unreachable, !dbg !501 after_noret290: ; No predecessors! call void @llvm.trap(), !dbg !501 unreachable, !dbg !501 after_error292: ; No predecessors! call void @llvm.trap(), !dbg !483 unreachable, !dbg !483 after_noret293: ; No predecessors! call void @llvm.trap(), !dbg !483 unreachable, !dbg !483 after_error294: ; No predecessors! call void @llvm.trap(), !dbg !471 unreachable, !dbg !471 after_noret295: ; No predecessors! call void @llvm.trap(), !dbg !471 unreachable, !dbg !471 emptymem: ; preds = %L166 %"jl_global#35981" = load ptr, ptr @jl_global_35981, align 8, !dbg !415, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !37, !align !35 %471 = addrspacecast ptr %"jl_global#35981" to ptr addrspace(10), !dbg !415 br label %retval, !dbg !415 nonemptymem: ; preds = %L166 %"+Core.GenericMemory#35982" = load ptr, ptr @_Core_GenericMemory_35982, align 8, !dbg !415, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %472 = call { i64, i1 } @llvm.smul.with.overflow.i64(i64 %.Tnext.size308.unbox, i64 8), !dbg !415 %473 = extractvalue { i64, i1 } %472, 0, !dbg !415 %474 = extractvalue { i64, i1 } %472, 1, !dbg !415 %475 = icmp slt i64 %.Tnext.size308.unbox, 0, !dbg !415 %476 = or i1 %474, %475, !dbg !415 %477 = icmp slt i64 9223372036854775806, %473, !dbg !415 %478 = or i1 %476, %477, !dbg !415 %479 = xor i1 %478, true, !dbg !415 br i1 %479, label %pass, label %fail, !dbg !415 fail: ; preds = %nonemptymem call void @jl_argument_error(ptr @_j_str_invalid_GenericMemory_siz____5), !dbg !415 unreachable, !dbg !415 pass: ; preds = %nonemptymem %current_task309 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !415 %ptls_field310 = getelementptr inbounds i8, ptr %current_task309, i32 168, !dbg !415 %ptls_load311 = load ptr, ptr %ptls_field310, align 8, !dbg !415, !tbaa !19 %"Memory{Float64}[]" = call noalias nonnull align 16 ptr addrspace(10) @jl_alloc_genericmemory_unchecked(ptr %ptls_load311, i64 %473, ptr %"+Core.GenericMemory#35982") #28, !dbg !415 %480 = addrspacecast ptr addrspace(10) %"Memory{Float64}[]" to ptr addrspace(11), !dbg !415 %481 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %480, i32 0, i32 0, !dbg !415 store i64 %.Tnext.size308.unbox, ptr addrspace(11) %481, align 8, !dbg !415, !tbaa !71, !alias.scope !69, !noalias !70 br label %retval, !dbg !415 retval: ; preds = %pass, %emptymem %482 = phi ptr addrspace(10) [ %471, %emptymem ], [ %"Memory{Float64}[]", %pass ], !dbg !415 %483 = addrspacecast ptr addrspace(10) %482 to ptr addrspace(11), !dbg !587 %memory_data_ptr312 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %483, i32 0, i32 1, !dbg !587 %memory_data313 = load ptr, ptr addrspace(11) %memory_data_ptr312, align 8, !dbg !587, !tbaa !74, !alias.scope !69, !noalias !70, !nonnull !0 %484 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memory_data313, 0, !dbg !587 %memory_ref314 = insertvalue { ptr, ptr addrspace(10) } %484, ptr addrspace(10) %482, 1, !dbg !587 %485 = addrspacecast ptr addrspace(10) %.Tnext to ptr addrspace(11), !dbg !588 %.Tnext.size_ptr315 = getelementptr inbounds i8, ptr addrspace(11) %485, i32 16, !dbg !588 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 !588, !tbaa !38, !alias.scope !59, !noalias !60 %486 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %482), !dbg !590 %487 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %134), !dbg !591 %memory_ref314.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref314, 0, !dbg !592 %.Tnext.ref306.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %.Tnext.ref306, 0, !dbg !592 %.Tnext.size316.unbox = load i64, ptr %.Tnext.size316, align 8, !dbg !594, !tbaa !61, !alias.scope !63, !noalias !64 %488 = mul i64 %.Tnext.size316.unbox, 8, !dbg !594 %489 = lshr i64 %488, 63, !dbg !595 %490 = select i1 false, i64 0, i64 %489, !dbg !595 %491 = trunc i64 %490 to i8, !dbg !595 %492 = icmp eq i8 %491, 1, !dbg !595 %493 = xor i1 %492, true, !dbg !417 br i1 %493, label %L184, label %L182, !dbg !417 after_error321: ; No predecessors! call void @llvm.trap(), !dbg !417 unreachable, !dbg !417 after_noret322: ; No predecessors! call void @llvm.trap(), !dbg !417 unreachable, !dbg !417 after_error330: ; No predecessors! call void @llvm.trap(), !dbg !249 unreachable, !dbg !249 after_noret331: ; No predecessors! call void @llvm.trap(), !dbg !249 unreachable, !dbg !249 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !230 unreachable, !dbg !230 after_noret333: ; No predecessors! call void @llvm.trap(), !dbg !230 unreachable, !dbg !230 } 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_36545(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") #0 !dbg !11 { 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 !20, !noalias !23 br label %L2 L2: ; preds = %L112, %top %value_phi = phi i8 [ 1, %top ], [ %81, %L112 ] %3 = trunc i8 %value_phi to i1, !dbg !28 %4 = xor i1 %3, true, !dbg !28 br i1 %4, label %L113, label %L4, !dbg !28 L4: ; preds = %L2 %5 = addrspacecast ptr addrspace(10) %2 to ptr addrspace(11), !dbg !29 %.in_now = load atomic ptr addrspace(10), ptr addrspace(11) %5 unordered, align 8, !dbg !29, !tbaa !40, !alias.scope !44, !noalias !45, !nonnull !0, !dereferenceable !46, !align !47 %6 = addrspacecast ptr addrspace(10) %2 to ptr addrspace(11), !dbg !29 %.in_old_ptr = getelementptr inbounds i8, ptr addrspace(11) %6, i32 8, !dbg !29 %.in_old = load atomic ptr addrspace(10), ptr addrspace(11) %.in_old_ptr unordered, align 8, !dbg !29, !tbaa !40, !alias.scope !44, !noalias !45, !nonnull !0, !dereferenceable !46, !align !47 %7 = addrspacecast ptr addrspace(10) %2 to ptr addrspace(11), !dbg !29 %.out_now_ptr = getelementptr inbounds i8, ptr addrspace(11) %7, i32 16, !dbg !29 %.out_now = load atomic ptr addrspace(10), ptr addrspace(11) %.out_now_ptr unordered, align 8, !dbg !29, !tbaa !40, !alias.scope !44, !noalias !45, !nonnull !0, !dereferenceable !46, !align !47 %8 = addrspacecast ptr addrspace(10) %2 to ptr addrspace(11), !dbg !29 %.out_old_ptr = getelementptr inbounds i8, ptr addrspace(11) %8, i32 24, !dbg !29 %.out_old = load atomic ptr addrspace(10), ptr addrspace(11) %.out_old_ptr unordered, align 8, !dbg !29, !tbaa !40, !alias.scope !44, !noalias !45, !nonnull !0, !dereferenceable !46, !align !47 call void @julia_forward_func_4_AD_36560(ptr addrspace(10) %.in_now, ptr addrspace(10) %.in_old, ptr addrspace(10) %.out_now, ptr addrspace(10) %.out_old), !dbg !32 %9 = addrspacecast ptr addrspace(10) %2 to ptr addrspace(11), !dbg !48 %.out_old_ptr1 = getelementptr inbounds i8, ptr addrspace(11) %9, i32 24, !dbg !48 %.out_old2 = load atomic ptr addrspace(10), ptr addrspace(11) %.out_old_ptr1 unordered, align 8, !dbg !48, !tbaa !40, !alias.scope !44, !noalias !45, !nonnull !0, !dereferenceable !46, !align !47 %10 = addrspacecast ptr addrspace(10) %2 to ptr addrspace(11), !dbg !48 %.in_now3 = load atomic ptr addrspace(10), ptr addrspace(11) %10 unordered, align 8, !dbg !48, !tbaa !40, !alias.scope !44, !noalias !45, !nonnull !0, !dereferenceable !46, !align !47 %11 = addrspacecast ptr addrspace(10) %.in_now3 to ptr addrspace(11), !dbg !50 %.in_now3.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %11, i32 16, !dbg !50 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 !50, !tbaa !58, !alias.scope !59, !noalias !60 br i1 false, label %L27, label %L18, !dbg !61 L18: ; preds = %L4 %12 = addrspacecast ptr addrspace(10) %.out_old2 to ptr addrspace(11), !dbg !62 %.out_old2.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %12, i32 16, !dbg !62 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 !62, !tbaa !58, !alias.scope !59, !noalias !60 %.out_old2.size.unbox = load i64, ptr %.out_old2.size, align 8, !dbg !67, !tbaa !70, !alias.scope !72, !noalias !73 %.in_now3.size.unbox = load i64, ptr %.in_now3.size, align 8, !dbg !67, !tbaa !70, !alias.scope !72, !noalias !73 %13 = icmp eq i64 %.out_old2.size.unbox, %.in_now3.size.unbox, !dbg !67 %14 = xor i1 %13, true, !dbg !64 br i1 %14, label %L23, label %L22, !dbg !64 L22: ; preds = %L18 br label %L26, !dbg !64 L23: ; preds = %L18 %15 = getelementptr inbounds i8, ptr %"new::Tuple81", i32 0, !dbg !64 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %15, ptr align 8 %.in_now3.size, i64 8, i1 false), !dbg !64, !tbaa !70, !alias.scope !72, !noalias !73 %16 = addrspacecast ptr %"new::Tuple81" to ptr addrspace(11), !dbg !64 call void @julia_throw_setindex_mismatch_36552(ptr addrspace(10) %.out_old2, ptr addrspace(11) nocapture readonly %16) #17, !dbg !64 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !64 unreachable, !dbg !64 L26: ; preds = %L22 br label %L27, !dbg !64 L27: ; preds = %L26, %L4 %.in_now3.size.unbox4 = load i64, ptr %.in_now3.size, align 8, !dbg !74, !tbaa !70, !alias.scope !72, !noalias !73 %17 = icmp slt i64 0, %.in_now3.size.unbox4, !dbg !74 %18 = xor i1 %17, true, !dbg !80 br i1 %18, label %L55, label %L29, !dbg !80 L29: ; preds = %L27 %.in_now3.size.unbox5 = load i64, ptr %.in_now3.size, align 8, !dbg !81, !tbaa !70, !alias.scope !72, !noalias !73 %19 = icmp eq i64 %.in_now3.size.unbox5, 0, !dbg !81 %20 = xor i1 %19, true, !dbg !82 br i1 %20, label %L32, label %L31, !dbg !82 L31: ; preds = %L29 br label %L54, !dbg !82 L32: ; preds = %L29 %21 = addrspacecast ptr addrspace(10) %.in_now3 to ptr addrspace(11), !dbg !85 %22 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %21, i32 0, i32 0, !dbg !85 %memoryref_data38 = load ptr, ptr addrspace(11) %22, align 8, !dbg !85, !tbaa !87, !alias.scope !90, !noalias !91 %23 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %21, i32 0, i32 1, !dbg !85 %memoryref_mem39 = load ptr addrspace(10), ptr addrspace(11) %23, align 8, !dbg !85, !tbaa !87, !alias.scope !90, !noalias !91, !dereferenceable_or_null !92, !align !47 %24 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data38, 0, !dbg !85 %.in_now3.ref = insertvalue { ptr, ptr addrspace(10) } %24, ptr addrspace(10) %memoryref_mem39, 1, !dbg !85 %25 = addrspacecast ptr addrspace(10) %memoryref_mem39 to ptr addrspace(11), !dbg !93 %26 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %25, i32 0, i32 0, !dbg !93 %memory_len40 = load i64, ptr addrspace(11) %26, align 8, !dbg !93, !tbaa !96, !range !98, !alias.scope !90, !noalias !91 %27 = add nuw i64 %memory_len40, %memory_len40, !dbg !93 %28 = add i64 0, %memory_len40, !dbg !93 %memoryref_ovflw41 = icmp uge i64 %28, %27, !dbg !93 %memoryref_data_byteoffset42 = getelementptr i8, ptr %memoryref_data38, i64 0, !dbg !93 %29 = addrspacecast ptr addrspace(10) %memoryref_mem39 to ptr addrspace(11), !dbg !93 %30 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %29, i32 0, i32 0, !dbg !93 %memory_len43 = load i64, ptr addrspace(11) %30, align 8, !dbg !93, !tbaa !96, !range !98, !alias.scope !90, !noalias !91 %31 = addrspacecast ptr addrspace(10) %memoryref_mem39 to ptr addrspace(11), !dbg !93 %memory_data_ptr44 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %31, i32 0, i32 1, !dbg !93 %memory_data45 = load ptr, ptr addrspace(11) %memory_data_ptr44, align 8, !dbg !93, !tbaa !99, !alias.scope !90, !noalias !91, !nonnull !0 %32 = ptrtoint ptr %memory_data45 to i64, !dbg !93 %33 = ptrtoint ptr %memoryref_data_byteoffset42 to i64, !dbg !93 %34 = sub i64 %33, %32, !dbg !93 %memoryref_bytelen46 = mul nuw nsw i64 %memory_len43, 8, !dbg !93 %memoryref_isinbounds47 = icmp ult i64 %34, %memoryref_bytelen46, !dbg !93 %35 = xor i1 %memoryref_ovflw41, true, !dbg !93 %"memoryref_isinbounds¬ovflw48" = and i1 %35, %memoryref_isinbounds47, !dbg !93 br i1 %"memoryref_isinbounds¬ovflw48", label %idxend54, label %oob49, !dbg !93 L47: ; preds = %idxend72 %"-Core.throw_inexacterror#3654875" = load ptr, ptr @_Core_throw_inexacterror_36548, align 8, !dbg !101, !tbaa !18, !alias.scope !20, !noalias !23, !nonnull !0, !dereferenceable !118, !align !47 %36 = addrspacecast ptr %"-Core.throw_inexacterror#3654875" to ptr addrspace(10), !dbg !101 %"jl_global#3654976" = load ptr, ptr @jl_global_36549, align 8, !dbg !101, !tbaa !18, !alias.scope !20, !noalias !23, !nonnull !0 %37 = addrspacecast ptr %"jl_global#3654976" to ptr addrspace(10), !dbg !101 %"jl_sym#convert#3655077" = load ptr, ptr @jl_sym_convert_36550, align 8, !dbg !101, !tbaa !18, !alias.scope !20, !noalias !23, !nonnull !0 %38 = addrspacecast ptr %"jl_sym#convert#3655077" to ptr addrspace(10), !dbg !101 %39 = load ptr, ptr getelementptr inbounds (i8, ptr @jl_small_typeof, i32 336), align 8, !dbg !101, !tbaa !18, !alias.scope !20, !noalias !23, !nonnull !0, !dereferenceable !119, !align !92 %40 = addrspacecast ptr %39 to ptr addrspace(10), !dbg !101 %box_Int6478 = call nonnull align 8 dereferenceable(8) ptr addrspace(10) @ijl_box_int64(i64 signext %142) #18, !dbg !101 %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 !101 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !101 unreachable, !dbg !101 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 !112 call void @llvm.julia.gc_preserve_end(token %141), !dbg !120 call void @llvm.julia.gc_preserve_end(token %140), !dbg !121 br label %L54, !dbg !122 L54: ; preds = %L49, %L31 br label %L55, !dbg !82 L55: ; preds = %L54, %L27 br label %L56, !dbg !123 L56: ; preds = %L55 %42 = addrspacecast ptr addrspace(10) %2 to ptr addrspace(11), !dbg !124 %.out_now_ptr6 = getelementptr inbounds i8, ptr addrspace(11) %42, i32 16, !dbg !124 %.out_now7 = load atomic ptr addrspace(10), ptr addrspace(11) %.out_now_ptr6 unordered, align 8, !dbg !124, !tbaa !40, !alias.scope !44, !noalias !45, !nonnull !0, !dereferenceable !46, !align !47 %43 = addrspacecast ptr addrspace(10) %2 to ptr addrspace(11), !dbg !124 %.in_old_ptr8 = getelementptr inbounds i8, ptr addrspace(11) %43, i32 8, !dbg !124 %.in_old9 = load atomic ptr addrspace(10), ptr addrspace(11) %.in_old_ptr8 unordered, align 8, !dbg !124, !tbaa !40, !alias.scope !44, !noalias !45, !nonnull !0, !dereferenceable !46, !align !47 %44 = addrspacecast ptr addrspace(10) %.in_old9 to ptr addrspace(11), !dbg !126 %.in_old9.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %44, i32 16, !dbg !126 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 !126, !tbaa !58, !alias.scope !59, !noalias !60 br i1 false, label %L73, label %L64, !dbg !129 L64: ; preds = %L56 %45 = addrspacecast ptr addrspace(10) %.out_now7 to ptr addrspace(11), !dbg !130 %.out_now7.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %45, i32 16, !dbg !130 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 !130, !tbaa !58, !alias.scope !59, !noalias !60 %.out_now7.size.unbox = load i64, ptr %.out_now7.size, align 8, !dbg !133, !tbaa !70, !alias.scope !72, !noalias !73 %.in_old9.size.unbox = load i64, ptr %.in_old9.size, align 8, !dbg !133, !tbaa !70, !alias.scope !72, !noalias !73 %46 = icmp eq i64 %.out_now7.size.unbox, %.in_old9.size.unbox, !dbg !133 %47 = xor i1 %46, true, !dbg !132 br i1 %47, label %L69, label %L68, !dbg !132 L68: ; preds = %L64 br label %L72, !dbg !132 L69: ; preds = %L64 %48 = getelementptr inbounds i8, ptr %"new::Tuple", i32 0, !dbg !132 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %48, ptr align 8 %.in_old9.size, i64 8, i1 false), !dbg !132, !tbaa !70, !alias.scope !72, !noalias !73 %49 = addrspacecast ptr %"new::Tuple" to ptr addrspace(11), !dbg !132 call void @julia_throw_setindex_mismatch_36552(ptr addrspace(10) %.out_now7, ptr addrspace(11) nocapture readonly %49) #17, !dbg !132 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !132 unreachable, !dbg !132 L72: ; preds = %L68 br label %L73, !dbg !132 L73: ; preds = %L72, %L56 %.in_old9.size.unbox10 = load i64, ptr %.in_old9.size, align 8, !dbg !134, !tbaa !70, !alias.scope !72, !noalias !73 %50 = icmp slt i64 0, %.in_old9.size.unbox10, !dbg !134 %51 = xor i1 %50, true, !dbg !136 br i1 %51, label %L101, label %L75, !dbg !136 L75: ; preds = %L73 %.in_old9.size.unbox11 = load i64, ptr %.in_old9.size, align 8, !dbg !137, !tbaa !70, !alias.scope !72, !noalias !73 %52 = icmp eq i64 %.in_old9.size.unbox11, 0, !dbg !137 %53 = xor i1 %52, true, !dbg !138 br i1 %53, label %L78, label %L77, !dbg !138 L77: ; preds = %L75 br label %L100, !dbg !138 L78: ; preds = %L75 %54 = addrspacecast ptr addrspace(10) %.in_old9 to ptr addrspace(11), !dbg !140 %55 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %54, i32 0, i32 0, !dbg !140 %memoryref_data = load ptr, ptr addrspace(11) %55, align 8, !dbg !140, !tbaa !87, !alias.scope !90, !noalias !91 %56 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %54, i32 0, i32 1, !dbg !140 %memoryref_mem = load ptr addrspace(10), ptr addrspace(11) %56, align 8, !dbg !140, !tbaa !87, !alias.scope !90, !noalias !91, !dereferenceable_or_null !92, !align !47 %57 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data, 0, !dbg !140 %.in_old9.ref = insertvalue { ptr, ptr addrspace(10) } %57, ptr addrspace(10) %memoryref_mem, 1, !dbg !140 %58 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !142 %59 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %58, i32 0, i32 0, !dbg !142 %memory_len = load i64, ptr addrspace(11) %59, align 8, !dbg !142, !tbaa !96, !range !98, !alias.scope !90, !noalias !91 %60 = add nuw i64 %memory_len, %memory_len, !dbg !142 %61 = add i64 0, %memory_len, !dbg !142 %memoryref_ovflw = icmp uge i64 %61, %60, !dbg !142 %memoryref_data_byteoffset = getelementptr i8, ptr %memoryref_data, i64 0, !dbg !142 %62 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !142 %63 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %62, i32 0, i32 0, !dbg !142 %memory_len15 = load i64, ptr addrspace(11) %63, align 8, !dbg !142, !tbaa !96, !range !98, !alias.scope !90, !noalias !91 %64 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !142 %memory_data_ptr = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %64, i32 0, i32 1, !dbg !142 %memory_data = load ptr, ptr addrspace(11) %memory_data_ptr, align 8, !dbg !142, !tbaa !99, !alias.scope !90, !noalias !91, !nonnull !0 %65 = ptrtoint ptr %memory_data to i64, !dbg !142 %66 = ptrtoint ptr %memoryref_data_byteoffset to i64, !dbg !142 %67 = sub i64 %66, %65, !dbg !142 %memoryref_bytelen = mul nuw nsw i64 %memory_len15, 8, !dbg !142 %memoryref_isinbounds = icmp ult i64 %67, %memoryref_bytelen, !dbg !142 %68 = xor i1 %memoryref_ovflw, true, !dbg !142 %"memoryref_isinbounds¬ovflw" = and i1 %68, %memoryref_isinbounds, !dbg !142 br i1 %"memoryref_isinbounds¬ovflw", label %idxend, label %oob, !dbg !142 L93: ; preds = %idxend33 %"-Core.throw_inexacterror#36548" = load ptr, ptr @_Core_throw_inexacterror_36548, align 8, !dbg !143, !tbaa !18, !alias.scope !20, !noalias !23, !nonnull !0, !dereferenceable !118, !align !47 %69 = addrspacecast ptr %"-Core.throw_inexacterror#36548" to ptr addrspace(10), !dbg !143 %"jl_global#36549" = load ptr, ptr @jl_global_36549, align 8, !dbg !143, !tbaa !18, !alias.scope !20, !noalias !23, !nonnull !0 %70 = addrspacecast ptr %"jl_global#36549" to ptr addrspace(10), !dbg !143 %"jl_sym#convert#36550" = load ptr, ptr @jl_sym_convert_36550, align 8, !dbg !143, !tbaa !18, !alias.scope !20, !noalias !23, !nonnull !0 %71 = addrspacecast ptr %"jl_sym#convert#36550" to ptr addrspace(10), !dbg !143 %72 = load ptr, ptr getelementptr inbounds (i8, ptr @jl_small_typeof, i32 336), align 8, !dbg !143, !tbaa !18, !alias.scope !20, !noalias !23, !nonnull !0, !dereferenceable !119, !align !92 %73 = addrspacecast ptr %72 to ptr addrspace(10), !dbg !143 %box_Int64 = call nonnull align 8 dereferenceable(8) ptr addrspace(10) @ijl_box_int64(i64 signext %109) #18, !dbg !143 %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 !143 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2), !dbg !143 unreachable, !dbg !143 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 !148 call void @llvm.julia.gc_preserve_end(token %108), !dbg !150 call void @llvm.julia.gc_preserve_end(token %107), !dbg !151 br label %L100, !dbg !152 L100: ; preds = %L95, %L77 br label %L101, !dbg !138 L101: ; preds = %L100, %L73 br label %L102, !dbg !153 L102: ; preds = %L101 %75 = addrspacecast ptr addrspace(10) %2 to ptr addrspace(11), !dbg !154 %.i_ptr = getelementptr inbounds i8, ptr addrspace(11) %75, i32 32, !dbg !154 %.i = load i64, ptr addrspace(11) %.i_ptr, align 8, !dbg !154, !tbaa !40, !alias.scope !44, !noalias !45 %76 = add i64 %.i, 1, !dbg !156 %77 = addrspacecast ptr addrspace(10) %2 to ptr addrspace(11), !dbg !158 %.i_ptr12 = getelementptr inbounds i8, ptr addrspace(11) %77, i32 32, !dbg !158 store i64 %76, ptr addrspace(11) %.i_ptr12, align 8, !dbg !158, !tbaa !40, !alias.scope !44, !noalias !45 %78 = addrspacecast ptr addrspace(10) %2 to ptr addrspace(11), !dbg !160 %.i_ptr13 = getelementptr inbounds i8, ptr addrspace(11) %78, i32 32, !dbg !160 %.i14 = load i64, ptr addrspace(11) %.i_ptr13, align 8, !dbg !160, !tbaa !40, !alias.scope !44, !noalias !45 %79 = getelementptr inbounds i8, ptr addrspace(11) %"body::#timestepper##2#timestepper##3", i32 8, !dbg !161 %.unbox = load i64, ptr addrspace(11) %79, align 8, !dbg !162, !tbaa !18, !alias.scope !20, !noalias !23 %80 = icmp sle i64 %.i14, %.unbox, !dbg !162 br label %L112, !dbg !161 L112: ; preds = %L102 %81 = zext i1 %80 to i8 br label %L2, !dbg !164 L113: ; preds = %L2 ret void, !dbg !165 oob: ; preds = %L78 %"+Core.GenericMemoryRef#36538" = load ptr, ptr @_Core_GenericMemoryRef_36538, align 8, !dbg !142, !tbaa !18, !alias.scope !20, !noalias !23, !nonnull !0, !dereferenceable !119, !align !92 %GenericMemoryRef = ptrtoint ptr %"+Core.GenericMemoryRef#36538" to i64, !dbg !142 %82 = inttoptr i64 %GenericMemoryRef to ptr, !dbg !142 %current_task16 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !142 %83 = addrspacecast ptr %82 to ptr addrspace(10), !dbg !142 %"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 !142 %84 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef" to ptr addrspace(11), !dbg !142 store { ptr, ptr addrspace(10) } %.in_old9.ref, ptr addrspace(11) %84, align 8, !dbg !142, !tbaa !166, !alias.scope !44, !noalias !45 %85 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef" to ptr addrspace(12), !dbg !142 call void @ijl_bounds_error_int(ptr addrspace(12) %85, i64 1), !dbg !142 unreachable, !dbg !142 idxend: ; preds = %L78 %86 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset, 0, !dbg !142 %memory_ref = insertvalue { ptr, ptr addrspace(10) } %86, ptr addrspace(10) %memoryref_mem, 1, !dbg !142 %87 = addrspacecast ptr addrspace(10) %.out_now7 to ptr addrspace(11), !dbg !140 %88 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %87, i32 0, i32 0, !dbg !140 %memoryref_data17 = load ptr, ptr addrspace(11) %88, align 8, !dbg !140, !tbaa !87, !alias.scope !90, !noalias !91 %89 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %87, i32 0, i32 1, !dbg !140 %memoryref_mem18 = load ptr addrspace(10), ptr addrspace(11) %89, align 8, !dbg !140, !tbaa !87, !alias.scope !90, !noalias !91, !dereferenceable_or_null !92, !align !47 %90 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data17, 0, !dbg !140 %.out_now7.ref = insertvalue { ptr, ptr addrspace(10) } %90, ptr addrspace(10) %memoryref_mem18, 1, !dbg !140 %91 = addrspacecast ptr addrspace(10) %memoryref_mem18 to ptr addrspace(11), !dbg !142 %92 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %91, i32 0, i32 0, !dbg !142 %memory_len19 = load i64, ptr addrspace(11) %92, align 8, !dbg !142, !tbaa !96, !range !98, !alias.scope !90, !noalias !91 %93 = add nuw i64 %memory_len19, %memory_len19, !dbg !142 %94 = add i64 0, %memory_len19, !dbg !142 %memoryref_ovflw20 = icmp uge i64 %94, %93, !dbg !142 %memoryref_data_byteoffset21 = getelementptr i8, ptr %memoryref_data17, i64 0, !dbg !142 %95 = addrspacecast ptr addrspace(10) %memoryref_mem18 to ptr addrspace(11), !dbg !142 %96 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %95, i32 0, i32 0, !dbg !142 %memory_len22 = load i64, ptr addrspace(11) %96, align 8, !dbg !142, !tbaa !96, !range !98, !alias.scope !90, !noalias !91 %97 = addrspacecast ptr addrspace(10) %memoryref_mem18 to ptr addrspace(11), !dbg !142 %memory_data_ptr23 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %97, i32 0, i32 1, !dbg !142 %memory_data24 = load ptr, ptr addrspace(11) %memory_data_ptr23, align 8, !dbg !142, !tbaa !99, !alias.scope !90, !noalias !91, !nonnull !0 %98 = ptrtoint ptr %memory_data24 to i64, !dbg !142 %99 = ptrtoint ptr %memoryref_data_byteoffset21 to i64, !dbg !142 %100 = sub i64 %99, %98, !dbg !142 %memoryref_bytelen25 = mul nuw nsw i64 %memory_len22, 8, !dbg !142 %memoryref_isinbounds26 = icmp ult i64 %100, %memoryref_bytelen25, !dbg !142 %101 = xor i1 %memoryref_ovflw20, true, !dbg !142 %"memoryref_isinbounds¬ovflw27" = and i1 %101, %memoryref_isinbounds26, !dbg !142 br i1 %"memoryref_isinbounds¬ovflw27", label %idxend33, label %oob28, !dbg !142 oob28: ; preds = %idxend %"+Core.GenericMemoryRef#3653829" = load ptr, ptr @_Core_GenericMemoryRef_36538, align 8, !dbg !142, !tbaa !18, !alias.scope !20, !noalias !23, !nonnull !0, !dereferenceable !119, !align !92 %GenericMemoryRef30 = ptrtoint ptr %"+Core.GenericMemoryRef#3653829" to i64, !dbg !142 %102 = inttoptr i64 %GenericMemoryRef30 to ptr, !dbg !142 %current_task31 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !142 %103 = addrspacecast ptr %102 to ptr addrspace(10), !dbg !142 %"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 !142 %104 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef32" to ptr addrspace(11), !dbg !142 store { ptr, ptr addrspace(10) } %.out_now7.ref, ptr addrspace(11) %104, align 8, !dbg !142, !tbaa !166, !alias.scope !44, !noalias !45 %105 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef32" to ptr addrspace(12), !dbg !142 call void @ijl_bounds_error_int(ptr addrspace(12) %105, i64 1), !dbg !142 unreachable, !dbg !142 idxend33: ; preds = %idxend %106 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset21, 0, !dbg !142 %memory_ref34 = insertvalue { ptr, ptr addrspace(10) } %106, ptr addrspace(10) %memoryref_mem18, 1, !dbg !142 %107 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %memoryref_mem), !dbg !168 %108 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %memoryref_mem18), !dbg !169 %memory_ref.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref, 0, !dbg !170 %memory_ref34.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref34, 0, !dbg !170 %.in_old9.size.unbox35 = load i64, ptr %.in_old9.size, align 8, !dbg !176, !tbaa !70, !alias.scope !72, !noalias !73 %109 = mul i64 %.in_old9.size.unbox35, 8, !dbg !176 %110 = lshr i64 %109, 63, !dbg !178 %111 = select i1 false, i64 0, i64 %110, !dbg !178 %112 = trunc i64 %111 to i8, !dbg !178 %113 = icmp eq i8 %112, 1, !dbg !178 %114 = xor i1 %113, true, !dbg !143 br i1 %114, label %L95, label %L93, !dbg !143 after_error: ; No predecessors! call void @llvm.trap(), !dbg !143 unreachable, !dbg !143 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !143 unreachable, !dbg !143 after_error36: ; No predecessors! call void @llvm.trap(), !dbg !132 unreachable, !dbg !132 after_noret37: ; No predecessors! call void @llvm.trap(), !dbg !132 unreachable, !dbg !132 oob49: ; preds = %L32 %"+Core.GenericMemoryRef#3653850" = load ptr, ptr @_Core_GenericMemoryRef_36538, align 8, !dbg !93, !tbaa !18, !alias.scope !20, !noalias !23, !nonnull !0, !dereferenceable !119, !align !92 %GenericMemoryRef51 = ptrtoint ptr %"+Core.GenericMemoryRef#3653850" to i64, !dbg !93 %115 = inttoptr i64 %GenericMemoryRef51 to ptr, !dbg !93 %current_task52 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !93 %116 = addrspacecast ptr %115 to ptr addrspace(10), !dbg !93 %"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 !93 %117 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef53" to ptr addrspace(11), !dbg !93 store { ptr, ptr addrspace(10) } %.in_now3.ref, ptr addrspace(11) %117, align 8, !dbg !93, !tbaa !166, !alias.scope !44, !noalias !45 %118 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef53" to ptr addrspace(12), !dbg !93 call void @ijl_bounds_error_int(ptr addrspace(12) %118, i64 1), !dbg !93 unreachable, !dbg !93 idxend54: ; preds = %L32 %119 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset42, 0, !dbg !93 %memory_ref55 = insertvalue { ptr, ptr addrspace(10) } %119, ptr addrspace(10) %memoryref_mem39, 1, !dbg !93 %120 = addrspacecast ptr addrspace(10) %.out_old2 to ptr addrspace(11), !dbg !85 %121 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %120, i32 0, i32 0, !dbg !85 %memoryref_data56 = load ptr, ptr addrspace(11) %121, align 8, !dbg !85, !tbaa !87, !alias.scope !90, !noalias !91 %122 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %120, i32 0, i32 1, !dbg !85 %memoryref_mem57 = load ptr addrspace(10), ptr addrspace(11) %122, align 8, !dbg !85, !tbaa !87, !alias.scope !90, !noalias !91, !dereferenceable_or_null !92, !align !47 %123 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data56, 0, !dbg !85 %.out_old2.ref = insertvalue { ptr, ptr addrspace(10) } %123, ptr addrspace(10) %memoryref_mem57, 1, !dbg !85 %124 = addrspacecast ptr addrspace(10) %memoryref_mem57 to ptr addrspace(11), !dbg !93 %125 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %124, i32 0, i32 0, !dbg !93 %memory_len58 = load i64, ptr addrspace(11) %125, align 8, !dbg !93, !tbaa !96, !range !98, !alias.scope !90, !noalias !91 %126 = add nuw i64 %memory_len58, %memory_len58, !dbg !93 %127 = add i64 0, %memory_len58, !dbg !93 %memoryref_ovflw59 = icmp uge i64 %127, %126, !dbg !93 %memoryref_data_byteoffset60 = getelementptr i8, ptr %memoryref_data56, i64 0, !dbg !93 %128 = addrspacecast ptr addrspace(10) %memoryref_mem57 to ptr addrspace(11), !dbg !93 %129 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %128, i32 0, i32 0, !dbg !93 %memory_len61 = load i64, ptr addrspace(11) %129, align 8, !dbg !93, !tbaa !96, !range !98, !alias.scope !90, !noalias !91 %130 = addrspacecast ptr addrspace(10) %memoryref_mem57 to ptr addrspace(11), !dbg !93 %memory_data_ptr62 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %130, i32 0, i32 1, !dbg !93 %memory_data63 = load ptr, ptr addrspace(11) %memory_data_ptr62, align 8, !dbg !93, !tbaa !99, !alias.scope !90, !noalias !91, !nonnull !0 %131 = ptrtoint ptr %memory_data63 to i64, !dbg !93 %132 = ptrtoint ptr %memoryref_data_byteoffset60 to i64, !dbg !93 %133 = sub i64 %132, %131, !dbg !93 %memoryref_bytelen64 = mul nuw nsw i64 %memory_len61, 8, !dbg !93 %memoryref_isinbounds65 = icmp ult i64 %133, %memoryref_bytelen64, !dbg !93 %134 = xor i1 %memoryref_ovflw59, true, !dbg !93 %"memoryref_isinbounds¬ovflw66" = and i1 %134, %memoryref_isinbounds65, !dbg !93 br i1 %"memoryref_isinbounds¬ovflw66", label %idxend72, label %oob67, !dbg !93 oob67: ; preds = %idxend54 %"+Core.GenericMemoryRef#3653868" = load ptr, ptr @_Core_GenericMemoryRef_36538, align 8, !dbg !93, !tbaa !18, !alias.scope !20, !noalias !23, !nonnull !0, !dereferenceable !119, !align !92 %GenericMemoryRef69 = ptrtoint ptr %"+Core.GenericMemoryRef#3653868" to i64, !dbg !93 %135 = inttoptr i64 %GenericMemoryRef69 to ptr, !dbg !93 %current_task70 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !93 %136 = addrspacecast ptr %135 to ptr addrspace(10), !dbg !93 %"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 !93 %137 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef71" to ptr addrspace(11), !dbg !93 store { ptr, ptr addrspace(10) } %.out_old2.ref, ptr addrspace(11) %137, align 8, !dbg !93, !tbaa !166, !alias.scope !44, !noalias !45 %138 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef71" to ptr addrspace(12), !dbg !93 call void @ijl_bounds_error_int(ptr addrspace(12) %138, i64 1), !dbg !93 unreachable, !dbg !93 idxend72: ; preds = %idxend54 %139 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset60, 0, !dbg !93 %memory_ref73 = insertvalue { ptr, ptr addrspace(10) } %139, ptr addrspace(10) %memoryref_mem57, 1, !dbg !93 %140 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %memoryref_mem39), !dbg !180 %141 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %memoryref_mem57), !dbg !181 %memory_ref55.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref55, 0, !dbg !182 %memory_ref73.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref73, 0, !dbg !182 %.in_now3.size.unbox74 = load i64, ptr %.in_now3.size, align 8, !dbg !184, !tbaa !70, !alias.scope !72, !noalias !73 %142 = mul i64 %.in_now3.size.unbox74, 8, !dbg !184 %143 = lshr i64 %142, 63, !dbg !185 %144 = select i1 false, i64 0, i64 %143, !dbg !185 %145 = trunc i64 %144 to i8, !dbg !185 %146 = icmp eq i8 %145, 1, !dbg !185 %147 = xor i1 %146, true, !dbg !101 br i1 %147, label %L49, label %L47, !dbg !101 after_error79: ; No predecessors! call void @llvm.trap(), !dbg !101 unreachable, !dbg !101 after_noret80: ; No predecessors! call void @llvm.trap(), !dbg !101 unreachable, !dbg !101 after_error82: ; No predecessors! call void @llvm.trap(), !dbg !64 unreachable, !dbg !64 after_noret83: ; No predecessors! call void @llvm.trap(), !dbg !64 unreachable, !dbg !64 } 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__loops__0_37037(ptr addrspace(11) nocapture noundef nonnull readonly align 8 dereferenceable(16) %"#self#::#loops##0#loops##1", ptr nocapture noundef nonnull readonly align 8 dereferenceable(8) %".roots.#self#", i64 signext %"36363::Int64") #8 !dbg !165 { top: %"new::UnitRange" = alloca [2 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 !156 fence syncscope("singlethread") seq_cst call void @julia.safepoint(ptr %safepoint) fence syncscope("singlethread") seq_cst %1 = getelementptr inbounds i8, ptr %".roots.#self#", i32 0 %2 = load ptr addrspace(10), ptr %1, align 8, !tbaa !156, !alias.scope !158, !noalias !159 %3 = addrspacecast ptr addrspace(10) %2 to ptr addrspace(11), !dbg !166 %.scheme_ptr = getelementptr inbounds i8, ptr addrspace(11) %3, i32 8, !dbg !166 %.scheme = load atomic ptr addrspace(10), ptr addrspace(11) %.scheme_ptr unordered, align 8, !dbg !166, !tbaa !69, !alias.scope !73, !noalias !74, !nonnull !0 %4 = getelementptr inbounds i8, ptr addrspace(11) %"#self#::#loops##0#loops##1", i32 8, !dbg !168 %.unbox = load i64, ptr addrspace(11) %4, align 8, !dbg !173, !tbaa !156, !alias.scope !158, !noalias !159 %5 = icmp sle i64 1, %.unbox, !dbg !173 %6 = xor i1 %5, true, !dbg !177 br i1 %6, label %L10, label %L9, !dbg !177 L9: ; preds = %top %7 = icmp ne ptr addrspace(11) %4, null br i1 %7, label %guard_pass, label %guard_exit L10: ; preds = %top br label %L11, !dbg !168 L11: ; preds = %L10, %guard_exit4 %value_phi = phi i64 [ %guard_res6, %guard_exit4 ], [ 0, %L10 ] %8 = getelementptr inbounds i8, ptr %"new::UnitRange", i32 0, !dbg !179 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %8, ptr align 8 @_j_const_1_1, i64 8, i1 false), !dbg !179, !tbaa !63, !alias.scope !64, !noalias !65 %9 = getelementptr inbounds i8, ptr %"new::UnitRange", i32 8, !dbg !179 store i64 %value_phi, ptr %9, align 8, !dbg !179, !tbaa !30, !alias.scope !32, !noalias !33 br label %L14, !dbg !179 L14: ; preds = %L11 br label %L15, !dbg !179 L15: ; preds = %L14 %"jl_global#37039" = load ptr, ptr @jl_global_37039, align 8, !dbg !168, !tbaa !156, !alias.scope !158, !noalias !159, !nonnull !0 %10 = addrspacecast ptr %"jl_global#37039" to ptr addrspace(10), !dbg !168 %"+Main.#loops##2#loops##3#37040" = load ptr, ptr @_Main__loops__2_loops__3_37040, align 8, !dbg !168, !tbaa !156, !alias.scope !158, !noalias !159, !nonnull !0, !dereferenceable !160, !align !111 %"#loops##2#loops##3" = ptrtoint ptr %"+Main.#loops##2#loops##3#37040" to i64, !dbg !168 %11 = inttoptr i64 %"#loops##2#loops##3" to ptr, !dbg !168 %current_task1 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !168 %12 = addrspacecast ptr %11 to ptr addrspace(10), !dbg !168 %"box::#loops##2#loops##3" = call noalias nonnull align 8 dereferenceable(8) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task1, i64 8, ptr addrspace(10) %12) #16, !dbg !168 %13 = addrspacecast ptr addrspace(10) %"box::#loops##2#loops##3" to ptr addrspace(11), !dbg !168 %14 = getelementptr inbounds i8, ptr addrspace(11) %13, i32 0, !dbg !168 store atomic ptr addrspace(10) %2, ptr addrspace(11) %14 unordered, align 8, !dbg !168, !tbaa !161, !alias.scope !73, !noalias !74 %"+Main.Base.UnitRange#37033" = load ptr, ptr @_Main_Base_UnitRange_37033, align 8, !dbg !168, !tbaa !156, !alias.scope !158, !noalias !159, !nonnull !0, !dereferenceable !160, !align !111 %UnitRange = ptrtoint ptr %"+Main.Base.UnitRange#37033" to i64, !dbg !168 %15 = inttoptr i64 %UnitRange to ptr, !dbg !168 %current_task2 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !168 %16 = addrspacecast ptr %15 to ptr addrspace(10), !dbg !168 %"box::UnitRange" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task2, i64 16, ptr addrspace(10) %16) #16, !dbg !168 %17 = addrspacecast ptr addrspace(10) %"box::UnitRange" to ptr addrspace(11), !dbg !168 call void @llvm.memcpy.p11.p0.i64(ptr addrspace(11) align 8 %17, ptr align 8 %"new::UnitRange", i64 16, i1 false), !dbg !168, !tbaa !63, !alias.scope !183, !noalias !65 %18 = call nonnull ptr addrspace(10) (ptr, ptr addrspace(10), ...) @julia.call(ptr @ijl_apply_generic, ptr addrspace(10) %10, ptr addrspace(10) %"box::#loops##2#loops##3", ptr addrspace(10) %.scheme, ptr addrspace(10) %"box::UnitRange"), !dbg !168 ret void, !dbg !168 guard_pass: ; preds = %L9 br label %guard_exit guard_exit: ; preds = %guard_pass, %L9 %guard_res = phi i1 [ false, %L9 ], [ true, %guard_pass ] br i1 %guard_res, label %guard_pass3, label %guard_exit4 guard_pass3: ; preds = %guard_exit %.unbox5 = load i64, ptr addrspace(11) %4, align 8, !tbaa !156, !alias.scope !158, !noalias !159 br label %guard_exit4 guard_exit4: ; preds = %guard_pass3, %guard_exit %guard_res6 = phi i64 [ undef, %guard_exit ], [ %.unbox5, %guard_pass3 ] br label %L11, !dbg !177 } expectLen=2 swiftself=false sret=nothing returnRoots=nothing mi.specTypes.parameters=svec(Main.var"#loops##0#loops##1"{Main.Chkp, Int64}, 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_37556(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") #23 !dbg !853 { 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 %3 = getelementptr inbounds i8, ptr %.roots.A, i32 8 %4 = load ptr addrspace(10), ptr %3, align 8, !tbaa !23, !alias.scope !26, !noalias !29 %"-Core.BoundsError#37523" = load ptr, ptr @_Core_BoundsError_37523, align 8, !dbg !854, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %5 = addrspacecast ptr %"-Core.BoundsError#37523" to ptr addrspace(10), !dbg !854 %"+Core.BoundsError#37524" = load ptr, ptr @_Core_BoundsError_37524, align 8, !dbg !854, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %6 = addrspacecast ptr %"+Core.BoundsError#37524" to ptr addrspace(10), !dbg !854 %"+Main.Base.Broadcast.Broadcasted#37558" = load ptr, ptr @_Main_Base_Broadcast_Broadcasted_37558, align 8, !dbg !854, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Broadcasted = ptrtoint ptr %"+Main.Base.Broadcast.Broadcasted#37558" to i64, !dbg !854 %7 = inttoptr i64 %Broadcasted to ptr, !dbg !854 %current_task1 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !854 %8 = addrspacecast ptr %7 to ptr addrspace(10), !dbg !854 %"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 !854 %9 = addrspacecast ptr addrspace(10) %"box::Broadcasted" to ptr addrspace(11), !dbg !854 %10 = getelementptr inbounds i8, ptr addrspace(11) %9, i32 0, !dbg !854 store atomic ptr addrspace(10) %2, ptr addrspace(11) %10 unordered, align 8, !dbg !854, !tbaa !53, !alias.scope !51, !noalias !52 %11 = getelementptr inbounds i8, ptr addrspace(11) %"A::Broadcasted", i32 8, !dbg !854 %12 = getelementptr inbounds i8, ptr addrspace(11) %9, i32 8, !dbg !854 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %12, ptr addrspace(11) align 8 %11, i64 16, i1 false), !dbg !854, !tbaa !38, !alias.scope !39, !noalias !40 %13 = getelementptr inbounds i8, ptr addrspace(11) %9, i32 24, !dbg !854 store atomic ptr addrspace(10) %4, ptr addrspace(11) %13 unordered, align 8, !dbg !854, !tbaa !53, !alias.scope !51, !noalias !52 %14 = getelementptr inbounds i8, ptr addrspace(11) %"A::Broadcasted", i32 32, !dbg !854 %15 = getelementptr inbounds i8, ptr addrspace(11) %9, i32 32, !dbg !854 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %15, ptr addrspace(11) align 8 %14, i64 24, i1 false), !dbg !854, !tbaa !38, !alias.scope !39, !noalias !40 %"+Core.Tuple#37525" = load ptr, ptr @_Core_Tuple_37525, align 8, !dbg !854, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Tuple = ptrtoint ptr %"+Core.Tuple#37525" to i64, !dbg !854 %16 = inttoptr i64 %Tuple to ptr, !dbg !854 %current_task2 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !854 %17 = addrspacecast ptr %16 to ptr addrspace(10), !dbg !854 %"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 !854 %18 = addrspacecast ptr addrspace(10) %"box::Tuple" to ptr addrspace(11), !dbg !854 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 !854, !tbaa !38, !alias.scope !39, !noalias !40 %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 !854 %20 = addrspacecast ptr addrspace(10) %19 to ptr addrspace(12), !dbg !854 call void @ijl_throw(ptr addrspace(12) %20), !dbg !854 unreachable, !dbg !854 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !854 unreachable, !dbg !854 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !854 unreachable, !dbg !854 } 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_37786(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") #23 !dbg !853 { 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 %3 = getelementptr inbounds i8, ptr %.roots.A, i32 8 %4 = load ptr addrspace(10), ptr %3, align 8, !tbaa !23, !alias.scope !26, !noalias !29 %"-Core.BoundsError#37753" = load ptr, ptr @_Core_BoundsError_37753, align 8, !dbg !854, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %5 = addrspacecast ptr %"-Core.BoundsError#37753" to ptr addrspace(10), !dbg !854 %"+Core.BoundsError#37754" = load ptr, ptr @_Core_BoundsError_37754, align 8, !dbg !854, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %6 = addrspacecast ptr %"+Core.BoundsError#37754" to ptr addrspace(10), !dbg !854 %"+Main.Base.Broadcast.Broadcasted#37788" = load ptr, ptr @_Main_Base_Broadcast_Broadcasted_37788, align 8, !dbg !854, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Broadcasted = ptrtoint ptr %"+Main.Base.Broadcast.Broadcasted#37788" to i64, !dbg !854 %7 = inttoptr i64 %Broadcasted to ptr, !dbg !854 %current_task1 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !854 %8 = addrspacecast ptr %7 to ptr addrspace(10), !dbg !854 %"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 !854 %9 = addrspacecast ptr addrspace(10) %"box::Broadcasted" to ptr addrspace(11), !dbg !854 %10 = getelementptr inbounds i8, ptr addrspace(11) %9, i32 0, !dbg !854 store atomic ptr addrspace(10) %2, ptr addrspace(11) %10 unordered, align 8, !dbg !854, !tbaa !53, !alias.scope !51, !noalias !52 %11 = getelementptr inbounds i8, ptr addrspace(11) %"A::Broadcasted", i32 8, !dbg !854 %12 = getelementptr inbounds i8, ptr addrspace(11) %9, i32 8, !dbg !854 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %12, ptr addrspace(11) align 8 %11, i64 16, i1 false), !dbg !854, !tbaa !38, !alias.scope !39, !noalias !40 %13 = getelementptr inbounds i8, ptr addrspace(11) %9, i32 24, !dbg !854 store atomic ptr addrspace(10) %4, ptr addrspace(11) %13 unordered, align 8, !dbg !854, !tbaa !53, !alias.scope !51, !noalias !52 %14 = getelementptr inbounds i8, ptr addrspace(11) %"A::Broadcasted", i32 32, !dbg !854 %15 = getelementptr inbounds i8, ptr addrspace(11) %9, i32 32, !dbg !854 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %15, ptr addrspace(11) align 8 %14, i64 24, i1 false), !dbg !854, !tbaa !38, !alias.scope !39, !noalias !40 %"+Core.Tuple#37755" = load ptr, ptr @_Core_Tuple_37755, align 8, !dbg !854, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Tuple = ptrtoint ptr %"+Core.Tuple#37755" to i64, !dbg !854 %16 = inttoptr i64 %Tuple to ptr, !dbg !854 %current_task2 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !854 %17 = addrspacecast ptr %16 to ptr addrspace(10), !dbg !854 %"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 !854 %18 = addrspacecast ptr addrspace(10) %"box::Tuple" to ptr addrspace(11), !dbg !854 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 !854, !tbaa !38, !alias.scope !39, !noalias !40 %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 !854 %20 = addrspacecast ptr addrspace(10) %19 to ptr addrspace(12), !dbg !854 call void @ijl_throw(ptr addrspace(12) %20), !dbg !854 unreachable, !dbg !854 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !854 unreachable, !dbg !854 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !854 unreachable, !dbg !854 } 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 5m30.0s Enzyme... | 2 1 3 4m57.2s Revolve... | 3 3 1.2s Testing optcontrol... | 2 2 7.3s scheme = Revolve | 1 1 5.2s scheme = Periodic | 1 1 1.8s Testing heat example | 9 9 7.9s Revolve | 2 2 3.6s Revolve with verbose=0 | 1 1 1.2s Revolve with verbose=1 | 1 1 2.3s Periodic | 2 2 0.8s Periodic with verbose=0 | 1 1 0.7s Periodic with verbose=1 | 1 1 0.2s Online_r2 | 2 2 1.2s Online_r2 with verbose=0 | 1 1 1.0s Online_r2 with verbose=1 | 1 1 0.2s 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.1s Revolve | 1 1 4.7s Periodic | 1 1 2.9s Online_r2 | 1 1 1.3s Multilevel | 1 1 3.7s Test writing checkpoints out | 2 2 3.4s Revolve | 1 1 2.7s Periodic | 1 1 0.7s RNG of the outermost testset: Random.Xoshiro(0x6ca415127da1ae5c, 0x4fafa89ee9b994fe, 0x90e5540f1586a2cc, 0x18fccd1eef129a36, 0xdf174f132ff1d2cc) 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 408.57s 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:2946 [3] test @ /opt/julia/share/julia/stdlib/v1.14/Pkg/src/Operations.jl:2795 [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 570.02s: package tests unexpectedly errored