Package evaluation to test Checkpointing on Julia 1.14.0-DEV.50 (b60d1db399*) started at 2025-11-09T18:26:31.402 ################################################################################ # Set-up # Installing PkgEval dependencies (TestEnv)... Set-up completed after 9.35s ################################################################################ # 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.97 [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.208+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.11.4 [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.68.0+1 [3f19e933] + p7zip_jll v17.7.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 11.57s ################################################################################ # 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... 41398.5 ms ✓ Enzyme → EnzymeChainRulesCoreExt 43824.4 ms ✓ Checkpointing 2 dependencies successfully precompiled in 86 seconds. 78 already precompiled. 2 dependencies had output during precompilation: ┌ 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/EPXUy/src/Enzyme.jl:1575 └ ┌ 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/EPXUy/src/Enzyme.jl:1575 └ Precompilation completed after 103.21s ################################################################################ # Testing # Testing Checkpointing Status `/tmp/jl_VmxMm3/Project.toml` [eb46d486] Checkpointing v0.11.1 [7da242da] Enzyme v0.13.97 [37e2e46d] LinearAlgebra v1.13.0 [9e88b42a] Serialization v1.11.0 [8dfed614] Test v1.11.0 Status `/tmp/jl_VmxMm3/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.97 [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.208+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.11.4 [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.68.0+1 [3f19e933] p7zip_jll v17.7.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/EPXUy/src/llvm/transforms.jl:1688 [4] removeDeadArgs!(mod::LLVM.Module, tm::LLVM.TargetMachine) @ Enzyme.Compiler ~/.julia/packages/Enzyme/EPXUy/src/llvm/transforms.jl:2563 [5] optimize!(mod::LLVM.Module, tm::LLVM.TargetMachine) @ Enzyme.Compiler ~/.julia/packages/Enzyme/EPXUy/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/EPXUy/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/EPXUy/src/compiler.jl:5960 [10] _thunk @ ~/.julia/packages/Enzyme/EPXUy/src/compiler.jl:5958 [inlined] [11] cached_compilation @ ~/.julia/packages/Enzyme/EPXUy/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/EPXUy/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/EPXUy/src/compiler.jl:6275 [14] autodiff @ ~/.julia/packages/Enzyme/EPXUy/src/Enzyme.jl:502 [inlined] [15] autodiff @ ~/.julia/packages/Enzyme/EPXUy/src/Enzyme.jl:562 [inlined] [16] autodiff @ ~/.julia/packages/Enzyme/EPXUy/src/Enzyme.jl:534 [inlined] [17] main() @ Main ~/.julia/packages/Checkpointing/ZAoTt/test/speelpenning.jl:16 [18] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:15 [inlined] [19] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [20] macro expansion @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:8 [inlined] [21] macro expansion @ /opt/julia/share/julia/stdlib/v1.14/Test/src/Test.jl:1961 [inlined] [22] top-level scope @ ~/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:7 [23] include(mapexpr::Function, mod::Module, _path::String) @ Base ./Base.jl:310 [24] top-level scope @ none:6 [25] eval(m::Module, e::Any) @ Core ./boot.jl:489 [26] exec_options(opts::Base.JLOptions) @ Base ./client.jl:310 [27] _start() @ Base ./client.jl:577 scheme = Revolve: Error During Test at /home/pkgeval/.julia/packages/Checkpointing/ZAoTt/test/runtests.jl:32 Got exception outside of a @test AssertionError: Enzyme Internal Error (expectLen != length(parameters(f))) define internal double @julia__muoptcontrol__1_33524(ptr addrspace(11) nocapture noundef nonnull readonly align 8 dereferenceable(16) %"#self#::#muoptcontrol##1#muoptcontrol##2", ptr nocapture noundef nonnull readonly align 8 dereferenceable(8) %".roots.#self#", i64 signext %"1994::Int64") #0 !dbg !24 { top: %.F_H.size = alloca i64, align 8 %"new::OneTo" = alloca [1 x i64], align 8 %"new::Tuple" = alloca [1 x [1 x i64]], align 8 %.F.size = alloca i64, align 8 %.F_H.size2 = alloca i64, align 8 %"new::Tuple4" = alloca [1 x [1 x i64]], align 8 %.F.size8 = alloca i64, align 8 %.F.size12 = alloca i64, align 8 %"new::Tuple17" = alloca [1 x [2 x i64]], align 8 %.F_H.size19 = alloca i64, align 8 %"new::Tuple23" = alloca [1 x [2 x i64]], align 8 %.F.size25 = alloca i64, align 8 %value_phi55.size = alloca i64, align 8 %"new::Tuple56" = alloca [1 x i8], align 1 %"new::Extruded" = alloca [3 x i64], align 8 %"new::Tuple57" = alloca [3 x i64], align 8 %"new::Broadcasted" = alloca [4 x i64], align 8 %"new::Tuple61" = alloca [1 x i64], align 8 %value_phi55.size65 = alloca i64, align 8 %.F_H.size90 = alloca i64, align 8 %"new::Tuple118" = alloca [1 x i64], align 8 %"new::Tuple121" = alloca [1 x i64], align 8 %"new::Tuple124" = alloca [1 x i64], align 8 %0 = alloca ptr addrspace(10), align 8 %.F_H.size130 = alloca i64, align 8 %.F.size132 = alloca i64, align 8 %.F.size141 = alloca i64, align 8 %.F.size149 = alloca i64, align 8 %.F.size160 = alloca i64, align 8 %pgcstack = call ptr @julia.get_pgcstack() call void @llvm.memset.p0.i64(ptr align 8 %0, i8 0, i64 8, i1 false), !tbaa !27, !alias.scope !31, !noalias !34 %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 !27 %1 = getelementptr inbounds i8, ptr %ptls_load, i32 16 %safepoint = load atomic ptr, ptr %1 monotonic, align 8, !tbaa !39 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 !39, !alias.scope !41, !noalias !42 %4 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !43 %.F_H_ptr = getelementptr inbounds i8, ptr addrspace(11) %4, i32 8, !dbg !43 %.F_H = load atomic ptr addrspace(10), ptr addrspace(11) %.F_H_ptr unordered, align 8, !dbg !43, !tbaa !52, !alias.scope !56, !noalias !57, !nonnull !0, !dereferenceable !58, !align !59 %5 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !60 %.F = load atomic ptr addrspace(10), ptr addrspace(11) %5 unordered, align 8, !dbg !60, !tbaa !52, !alias.scope !56, !noalias !57, !nonnull !0, !dereferenceable !58, !align !59 %6 = addrspacecast ptr addrspace(10) %.F_H to ptr addrspace(11), !dbg !61 %.F_H.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %6, i32 16, !dbg !61 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F_H.size, ptr addrspace(11) align 8 %.F_H.size_ptr, i64 8, i1 false), !dbg !61, !tbaa !71, !alias.scope !72, !noalias !73 %7 = getelementptr inbounds i8, ptr %"new::OneTo", i32 0, !dbg !74 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %7, ptr align 8 %.F_H.size, i64 8, i1 false), !dbg !74, !tbaa !80, !alias.scope !82, !noalias !83 %8 = getelementptr inbounds i8, ptr %"new::Tuple", i32 0, !dbg !77 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %8, ptr align 8 %"new::OneTo", i64 8, i1 false), !dbg !77, !tbaa !80, !alias.scope !82, !noalias !83 %9 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !84 %.F.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %9, i32 16, !dbg !84 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F.size, ptr addrspace(11) align 8 %.F.size_ptr, i64 8, i1 false), !dbg !84, !tbaa !71, !alias.scope !72, !noalias !73 %.F_H.size.unbox = load i64, ptr %.F_H.size, align 8, !dbg !90, !tbaa !80, !alias.scope !82, !noalias !83 %.F.size.unbox = load i64, ptr %.F.size, align 8, !dbg !90, !tbaa !80, !alias.scope !82, !noalias !83 %10 = icmp eq i64 %.F_H.size.unbox, %.F.size.unbox, !dbg !90 %11 = xor i1 %10, true, !dbg !95 br i1 %11, label %L16, label %L15, !dbg !95 L15: ; preds = %top %12 = zext i1 %10 to i8 br label %L18, !dbg !95 L16: ; preds = %top %.F.size.unbox167 = load i64, ptr %.F.size, align 8, !dbg !99, !tbaa !80, !alias.scope !82, !noalias !83 %13 = icmp eq i64 %.F.size.unbox167, 1, !dbg !99 %14 = zext i1 %13 to i8 br label %L18, !dbg !99 L18: ; preds = %L16, %L15 %value_phi = phi i8 [ %12, %L15 ], [ %14, %L16 ] %15 = trunc i8 %value_phi to i1, !dbg !97 %16 = xor i1 %15, true, !dbg !97 br i1 %16, label %L21, label %L20, !dbg !97 L20: ; preds = %L18 br label %L24, !dbg !97 L21: ; preds = %L18 %"jl_global#33541" = load ptr, ptr @jl_global_33541, align 8, !dbg !97, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0 %17 = addrspacecast ptr %"jl_global#33541" to ptr addrspace(10), !dbg !97 %18 = call [1 x ptr addrspace(10)] @julia_DimensionMismatch_33604(ptr addrspace(10) %17), !dbg !97 %"+Main.Base.DimensionMismatch#33542" = load ptr, ptr @_Main_Base_DimensionMismatch_33542, align 8, !dbg !97, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0, !dereferenceable !100, !align !101 %DimensionMismatch = ptrtoint ptr %"+Main.Base.DimensionMismatch#33542" to i64, !dbg !97 %19 = inttoptr i64 %DimensionMismatch to ptr, !dbg !97 %current_task165 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !97 %20 = addrspacecast ptr %19 to ptr addrspace(10), !dbg !97 %"box::DimensionMismatch" = call noalias nonnull align 8 dereferenceable(8) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task165, i64 8, ptr addrspace(10) %20) #33, !dbg !97 %21 = addrspacecast ptr addrspace(10) %"box::DimensionMismatch" to ptr addrspace(11), !dbg !97 store [1 x ptr addrspace(10)] %18, ptr addrspace(11) %21, align 8, !dbg !97, !tbaa !102, !alias.scope !56, !noalias !57 %22 = addrspacecast ptr addrspace(10) %"box::DimensionMismatch" to ptr addrspace(12), !dbg !97 call void @ijl_throw(ptr addrspace(12) %22), !dbg !97 unreachable, !dbg !97 L24: ; preds = %L20 br label %L25, !dbg !97 L25: ; preds = %L24 br label %L26, !dbg !104 L26: ; preds = %L25 %23 = addrspacecast ptr addrspace(10) %.F_H to ptr addrspace(11), !dbg !105 %.F_H.size_ptr1 = getelementptr inbounds i8, ptr addrspace(11) %23, i32 16, !dbg !105 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F_H.size2, ptr addrspace(11) align 8 %.F_H.size_ptr1, i64 8, i1 false), !dbg !105, !tbaa !71, !alias.scope !72, !noalias !73 %24 = getelementptr inbounds i8, ptr %"new::Tuple4", i32 0, !dbg !112 %25 = getelementptr inbounds i8, ptr %24, i32 0, !dbg !112 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %25, ptr align 8 %.F_H.size2, i64 8, i1 false), !dbg !112, !tbaa !80, !alias.scope !82, !noalias !83 %.F_H.size2.unbox = load i64, ptr %.F_H.size2, align 8, !dbg !114, !tbaa !80, !alias.scope !82, !noalias !83 %.F_H.size.unbox5 = load i64, ptr %.F_H.size, align 8, !dbg !114, !tbaa !80, !alias.scope !82, !noalias !83 %26 = icmp eq i64 %.F_H.size2.unbox, %.F_H.size.unbox5, !dbg !114 %27 = zext i1 %26 to i8, !dbg !121 %28 = icmp eq i8 %27, 0, !dbg !121 %29 = xor i1 %28, true, !dbg !121 br i1 %29, label %L35, label %L34, !dbg !121 L34: ; preds = %L26 br label %L36, !dbg !122 L35: ; preds = %L26 br label %L36, !dbg !123 L36: ; preds = %L35, %L34 %value_phi6 = phi i8 [ 0, %L34 ], [ 1, %L35 ] br label %L38, !dbg !118 L38: ; preds = %L36 %30 = trunc i8 %value_phi6 to i1, !dbg !120 %31 = xor i1 %30, true, !dbg !120 br i1 %31, label %L284, label %L39, !dbg !120 L39: ; preds = %L38 %32 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !124 %.F.size_ptr7 = getelementptr inbounds i8, ptr addrspace(11) %32, i32 16, !dbg !124 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F.size8, ptr addrspace(11) align 8 %.F.size_ptr7, i64 8, i1 false), !dbg !124, !tbaa !71, !alias.scope !72, !noalias !73 %.F_H.size2.unbox9 = load i64, ptr %.F_H.size2, align 8, !dbg !127, !tbaa !80, !alias.scope !82, !noalias !83 %.F.size8.unbox = load i64, ptr %.F.size8, align 8, !dbg !127, !tbaa !80, !alias.scope !82, !noalias !83 %33 = icmp eq i64 %.F_H.size2.unbox9, %.F.size8.unbox, !dbg !127 %34 = zext i1 %33 to i8, !dbg !131 %35 = icmp eq i8 %34, 0, !dbg !131 %36 = xor i1 %35, true, !dbg !131 br i1 %36, label %L46, label %L45, !dbg !131 L45: ; preds = %L39 br label %L47, !dbg !132 L46: ; preds = %L39 br label %L47, !dbg !133 L47: ; preds = %L46, %L45 %value_phi10 = phi i8 [ 0, %L45 ], [ 1, %L46 ] br label %L49, !dbg !130 L49: ; preds = %L47 %37 = trunc i8 %value_phi10 to i1, !dbg !126 %38 = xor i1 %37, true, !dbg !126 br i1 %38, label %L137, label %L50, !dbg !126 L50: ; preds = %L49 %39 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !134 %.F.size_ptr11 = getelementptr inbounds i8, ptr addrspace(11) %39, i32 16, !dbg !134 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F.size12, ptr addrspace(11) align 8 %.F.size_ptr11, i64 8, i1 false), !dbg !134, !tbaa !71, !alias.scope !72, !noalias !73 %.F.size12.unbox = load i64, ptr %.F.size12, align 8, !dbg !143, !tbaa !80, !alias.scope !82, !noalias !83 %40 = icmp eq i64 %.F.size12.unbox, 0, !dbg !143 %41 = xor i1 %40, true, !dbg !144 br i1 %41, label %L55, label %L54, !dbg !144 L54: ; preds = %L50 br label %L133, !dbg !144 L55: ; preds = %L50 %.F.size12.unbox14 = load i64, ptr %.F.size12, align 8, !dbg !147, !tbaa !80, !alias.scope !82, !noalias !83 %42 = icmp slt i64 0, %.F.size12.unbox14, !dbg !147 %43 = xor i1 %42, true, !dbg !153 br i1 %43, label %L131, label %L57, !dbg !153 L57: ; preds = %L55 br i1 false, label %L81, label %L59, !dbg !154 L59: ; preds = %L57 %.F.size12.unbox15 = load i64, ptr %.F.size12, align 8, !dbg !155, !tbaa !80, !alias.scope !82, !noalias !83 %44 = add i64 1, %.F.size12.unbox15, !dbg !155 %45 = sub i64 %44, 1, !dbg !157 %46 = icmp sle i64 1, %45, !dbg !159 %47 = xor i1 %46, true, !dbg !163 br i1 %47, label %L64, label %L63, !dbg !163 L63: ; preds = %L59 br label %L65, !dbg !163 L64: ; preds = %L59 br label %L65, !dbg !169 L65: ; preds = %L64, %L63 %value_phi16 = phi i64 [ %45, %L63 ], [ 0, %L64 ] %48 = getelementptr inbounds i8, ptr %"new::Tuple17", i32 0, !dbg !165 %49 = getelementptr inbounds i8, ptr %48, i32 0, !dbg !165 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %49, ptr align 8 @_j_const_1, i64 8, i1 false), !dbg !165, !tbaa !71, !alias.scope !171, !noalias !172 %50 = getelementptr inbounds i8, ptr %48, i32 8, !dbg !165 store i64 %value_phi16, ptr %50, align 8, !dbg !165, !tbaa !80, !alias.scope !82, !noalias !83 %51 = addrspacecast ptr addrspace(10) %.F_H to ptr addrspace(11), !dbg !173 %.F_H.size_ptr18 = getelementptr inbounds i8, ptr addrspace(11) %51, i32 16, !dbg !173 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F_H.size19, ptr addrspace(11) align 8 %.F_H.size_ptr18, i64 8, i1 false), !dbg !173, !tbaa !71, !alias.scope !72, !noalias !73 %52 = icmp slt i64 %value_phi16, 1, !dbg !178 %bitcast = load i64, ptr %.F_H.size19, align 8, !dbg !184, !tbaa !80, !alias.scope !82, !noalias !83 %53 = icmp ult i64 0, %bitcast, !dbg !189 %54 = sub i64 %value_phi16, 1, !dbg !190 %bitcast20 = load i64, ptr %.F_H.size19, align 8, !dbg !184, !tbaa !80, !alias.scope !82, !noalias !83 %55 = icmp ult i64 %54, %bitcast20, !dbg !189 %56 = and i1 %53, %55, !dbg !191 %57 = or i1 %52, %56, !dbg !194 %58 = xor i1 %57, true, !dbg !169 br i1 %58, label %L88, label %L80, !dbg !169 L80: ; preds = %L65 br label %L81, !dbg !169 L81: ; preds = %L80, %L57 br i1 false, label %L107, label %L83, !dbg !196 L83: ; preds = %L81 %.F.size12.unbox21 = load i64, ptr %.F.size12, align 8, !dbg !197, !tbaa !80, !alias.scope !82, !noalias !83 %59 = add i64 1, %.F.size12.unbox21, !dbg !197 %60 = sub i64 %59, 1, !dbg !198 %61 = icmp sle i64 1, %60, !dbg !199 %62 = xor i1 %61, true, !dbg !201 br i1 %62, label %L90, label %L87, !dbg !201 L87: ; preds = %L83 br label %L91, !dbg !201 L88: ; preds = %L65 %63 = addrspacecast ptr %"new::Tuple17" to ptr addrspace(11), !dbg !169 call void @julia_throw_boundserror_33600(ptr addrspace(10) %.F_H, ptr addrspace(11) nocapture readonly %63) #34, !dbg !169 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____3), !dbg !169 unreachable, !dbg !169 L90: ; preds = %L83 br label %L91, !dbg !204 L91: ; preds = %L90, %L87 %value_phi22 = phi i64 [ %60, %L87 ], [ 0, %L90 ] %64 = getelementptr inbounds i8, ptr %"new::Tuple23", i32 0, !dbg !202 %65 = getelementptr inbounds i8, ptr %64, i32 0, !dbg !202 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %65, ptr align 8 @_j_const_1, i64 8, i1 false), !dbg !202, !tbaa !71, !alias.scope !171, !noalias !172 %66 = getelementptr inbounds i8, ptr %64, i32 8, !dbg !202 store i64 %value_phi22, ptr %66, align 8, !dbg !202, !tbaa !80, !alias.scope !82, !noalias !83 %67 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !205 %.F.size_ptr24 = getelementptr inbounds i8, ptr addrspace(11) %67, i32 16, !dbg !205 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F.size25, ptr addrspace(11) align 8 %.F.size_ptr24, i64 8, i1 false), !dbg !205, !tbaa !71, !alias.scope !72, !noalias !73 %68 = icmp slt i64 %value_phi22, 1, !dbg !209 %bitcast26 = load i64, ptr %.F.size25, align 8, !dbg !213, !tbaa !80, !alias.scope !82, !noalias !83 %69 = icmp ult i64 0, %bitcast26, !dbg !216 %70 = sub i64 %value_phi22, 1, !dbg !217 %bitcast27 = load i64, ptr %.F.size25, align 8, !dbg !213, !tbaa !80, !alias.scope !82, !noalias !83 %71 = icmp ult i64 %70, %bitcast27, !dbg !216 %72 = and i1 %69, %71, !dbg !218 %73 = or i1 %68, %72, !dbg !219 %74 = xor i1 %73, true, !dbg !204 br i1 %74, label %L124, label %L106, !dbg !204 L106: ; preds = %L91 br label %L107, !dbg !204 L107: ; preds = %L106, %L81 %75 = addrspacecast ptr addrspace(10) %.F_H to ptr addrspace(11), !dbg !220 %76 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %75, i32 0, i32 0, !dbg !220 %memoryref_data = load ptr, ptr addrspace(11) %76, align 8, !dbg !220, !tbaa !221, !alias.scope !224, !noalias !225 %77 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %75, i32 0, i32 1, !dbg !220 %memoryref_mem = load ptr addrspace(10), ptr addrspace(11) %77, align 8, !dbg !220, !tbaa !221, !alias.scope !224, !noalias !225, !dereferenceable_or_null !101, !align !59 %78 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data, 0, !dbg !220 %.F_H.ref = insertvalue { ptr, ptr addrspace(10) } %78, ptr addrspace(10) %memoryref_mem, 1, !dbg !220 %79 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !226 %80 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %79, i32 0, i32 0, !dbg !226 %memory_len = load i64, ptr addrspace(11) %80, align 8, !dbg !226, !tbaa !229, !range !231, !alias.scope !224, !noalias !225 %81 = add nuw i64 %memory_len, %memory_len, !dbg !226 %82 = add i64 0, %memory_len, !dbg !226 %memoryref_ovflw = icmp uge i64 %82, %81, !dbg !226 %memoryref_data_byteoffset = getelementptr i8, ptr %memoryref_data, i64 0, !dbg !226 %83 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !226 %84 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %83, i32 0, i32 0, !dbg !226 %memory_len28 = load i64, ptr addrspace(11) %84, align 8, !dbg !226, !tbaa !229, !range !231, !alias.scope !224, !noalias !225 %85 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !226 %memory_data_ptr = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %85, i32 0, i32 1, !dbg !226 %memory_data = load ptr, ptr addrspace(11) %memory_data_ptr, align 8, !dbg !226, !tbaa !232, !alias.scope !224, !noalias !225, !nonnull !0 %86 = ptrtoint ptr %memory_data to i64, !dbg !226 %87 = ptrtoint ptr %memoryref_data_byteoffset to i64, !dbg !226 %88 = sub i64 %87, %86, !dbg !226 %memoryref_bytelen = mul nuw nsw i64 %memory_len28, 8, !dbg !226 %memoryref_isinbounds = icmp ult i64 %88, %memoryref_bytelen, !dbg !226 %89 = xor i1 %memoryref_ovflw, true, !dbg !226 %"memoryref_isinbounds¬ovflw" = and i1 %89, %memoryref_isinbounds, !dbg !226 br i1 %"memoryref_isinbounds¬ovflw", label %idxend, label %oob, !dbg !226 L122: ; preds = %idxend46 %"-Core.throw_inexacterror#33527" = load ptr, ptr @_Core_throw_inexacterror_33527, align 8, !dbg !234, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0, !dereferenceable !251, !align !59 %90 = addrspacecast ptr %"-Core.throw_inexacterror#33527" to ptr addrspace(10), !dbg !234 %"jl_global#33528" = load ptr, ptr @jl_global_33528, align 8, !dbg !234, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0 %91 = addrspacecast ptr %"jl_global#33528" to ptr addrspace(10), !dbg !234 %"jl_sym#convert#33529" = load ptr, ptr @jl_sym_convert_33529, align 8, !dbg !234, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0 %92 = addrspacecast ptr %"jl_sym#convert#33529" to ptr addrspace(10), !dbg !234 %93 = load ptr, ptr getelementptr inbounds (i8, ptr @jl_small_typeof, i32 336), align 8, !dbg !234, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0, !dereferenceable !100, !align !101 %94 = addrspacecast ptr %93 to ptr addrspace(10), !dbg !234 %box_Int64 = call nonnull align 8 dereferenceable(8) ptr addrspace(10) @ijl_box_int64(i64 signext %256) #35, !dbg !234 %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 !234 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____3), !dbg !234 unreachable, !dbg !234 L124: ; preds = %L91 %96 = addrspacecast ptr %"new::Tuple23" to ptr addrspace(11), !dbg !204 call void @julia_throw_boundserror_33600(ptr addrspace(10) %.F, ptr addrspace(11) nocapture readonly %96) #34, !dbg !204 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____3), !dbg !204 unreachable, !dbg !204 L126: ; preds = %idxend46 call void @llvm.memmove.p0.p0.i64(ptr %memory_ref.ptr_or_offset, ptr %memory_ref47.ptr_or_offset, i64 %256, i1 false), !dbg !245 call void @llvm.julia.gc_preserve_end(token %255), !dbg !252 call void @llvm.julia.gc_preserve_end(token %254), !dbg !253 br label %L133, !dbg !254 L131: ; preds = %L55 %"jl_global#33532" = load ptr, ptr @jl_global_33532, align 8, !dbg !153, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0 %97 = addrspacecast ptr %"jl_global#33532" to ptr addrspace(10), !dbg !153 call void @julia__throw_argerror_33597(ptr addrspace(10) %97) #34, !dbg !153 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____3), !dbg !153 unreachable, !dbg !153 L133: ; preds = %L126, %L54 br label %L134, !dbg !144 L134: ; preds = %L133 br label %L135, !dbg !144 L135: ; preds = %L134 br label %L136, !dbg !144 L136: ; preds = %L135 br label %L286, !dbg !255 L137: ; preds = %L49 %98 = addrspacecast ptr addrspace(10) %.F_H to ptr addrspace(11), !dbg !256 %99 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !256 %100 = icmp eq ptr addrspace(11) %98, %99, !dbg !256 %101 = xor i1 %100, true, !dbg !256 br i1 %101, label %L140, label %L139, !dbg !256 L139: ; preds = %L137 br label %L204, !dbg !256 L140: ; preds = %L137 %102 = addrspacecast ptr addrspace(10) %.F_H to ptr addrspace(11), !dbg !264 %.F_H.size_ptr129 = getelementptr inbounds i8, ptr addrspace(11) %102, i32 16, !dbg !264 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F_H.size130, ptr addrspace(11) align 8 %.F_H.size_ptr129, i64 8, i1 false), !dbg !264, !tbaa !71, !alias.scope !72, !noalias !73 %.F_H.size130.unbox = load i64, ptr %.F_H.size130, align 8, !dbg !272, !tbaa !80, !alias.scope !82, !noalias !83 %103 = icmp eq i64 %.F_H.size130.unbox, 0, !dbg !272 %104 = xor i1 %103, true, !dbg !273 %105 = xor i1 %104, true, !dbg !268 br i1 %105, label %L163, label %L145, !dbg !268 L145: ; preds = %L140 %106 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !264 %.F.size_ptr131 = getelementptr inbounds i8, ptr addrspace(11) %106, i32 16, !dbg !264 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F.size132, ptr addrspace(11) align 8 %.F.size_ptr131, i64 8, i1 false), !dbg !264, !tbaa !71, !alias.scope !72, !noalias !73 %.F.size132.unbox = load i64, ptr %.F.size132, align 8, !dbg !272, !tbaa !80, !alias.scope !82, !noalias !83 %107 = icmp eq i64 %.F.size132.unbox, 0, !dbg !272 %108 = xor i1 %107, true, !dbg !273 %109 = xor i1 %108, true, !dbg !268 br i1 %109, label %L162, label %L150, !dbg !268 L150: ; preds = %L145 %110 = addrspacecast ptr addrspace(10) %.F_H to ptr addrspace(11), !dbg !275 %111 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %110, i32 0, i32 0, !dbg !275 %112 = load ptr, ptr addrspace(11) %111, align 8, !dbg !275, !tbaa !221, !alias.scope !224, !noalias !225 %113 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %110, i32 0, i32 1, !dbg !275 %114 = load ptr addrspace(10), ptr addrspace(11) %113, align 8, !dbg !275, !tbaa !221, !alias.scope !224, !noalias !225, !dereferenceable_or_null !101, !align !59 %115 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %112, 0, !dbg !275 %.F_H.ref133 = insertvalue { ptr, ptr addrspace(10) } %115, ptr addrspace(10) %114, 1, !dbg !275 %.F_H.ref133.mem = extractvalue { ptr, ptr addrspace(10) } %.F_H.ref133, 1, !dbg !275 %116 = addrspacecast ptr addrspace(10) %.F_H.ref133.mem to ptr addrspace(11), !dbg !278 %.F_H.ref133.mem.ptr_ptr = getelementptr inbounds i8, ptr addrspace(11) %116, i32 8, !dbg !278 %bitcast134 = load ptr, ptr addrspace(11) %.F_H.ref133.mem.ptr_ptr, align 8, !dbg !280, !tbaa !232, !alias.scope !224, !noalias !225 %bitcast_coercion = ptrtoint ptr %bitcast134 to i64, !dbg !280 %117 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !275 %118 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %117, i32 0, i32 0, !dbg !275 %119 = load ptr, ptr addrspace(11) %118, align 8, !dbg !275, !tbaa !221, !alias.scope !224, !noalias !225 %120 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %117, i32 0, i32 1, !dbg !275 %121 = load ptr addrspace(10), ptr addrspace(11) %120, align 8, !dbg !275, !tbaa !221, !alias.scope !224, !noalias !225, !dereferenceable_or_null !101, !align !59 %122 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %119, 0, !dbg !275 %.F.ref135 = insertvalue { ptr, ptr addrspace(10) } %122, ptr addrspace(10) %121, 1, !dbg !275 %.F.ref135.mem = extractvalue { ptr, ptr addrspace(10) } %.F.ref135, 1, !dbg !275 %123 = addrspacecast ptr addrspace(10) %.F.ref135.mem to ptr addrspace(11), !dbg !278 %.F.ref135.mem.ptr_ptr = getelementptr inbounds i8, ptr addrspace(11) %123, i32 8, !dbg !278 %bitcast136 = load ptr, ptr addrspace(11) %.F.ref135.mem.ptr_ptr, align 8, !dbg !280, !tbaa !232, !alias.scope !224, !noalias !225 %bitcast_coercion137 = ptrtoint ptr %bitcast136 to i64, !dbg !280 %124 = icmp eq i64 %bitcast_coercion, %bitcast_coercion137, !dbg !281 %125 = xor i1 %124, true, !dbg !286 %126 = xor i1 %125, true, !dbg !273 %127 = zext i1 %126 to i8 br label %L164, !dbg !273 L162: ; preds = %L145 br label %L164, !dbg !256 L163: ; preds = %L140 br label %L164, !dbg !256 L164: ; preds = %L163, %L162, %L150 %value_phi138 = phi i8 [ %127, %L150 ], [ 0, %L162 ], [ 0, %L163 ] %128 = trunc i8 %value_phi138 to i1, !dbg !270 %129 = xor i1 %128, true, !dbg !270 br i1 %129, label %L201, label %L166, !dbg !270 L166: ; preds = %L164 %130 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !287 %131 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %130, i32 0, i32 0, !dbg !287 %132 = load ptr, ptr addrspace(11) %131, align 8, !dbg !287, !tbaa !221, !alias.scope !224, !noalias !225 %133 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %130, i32 0, i32 1, !dbg !287 %134 = load ptr addrspace(10), ptr addrspace(11) %133, align 8, !dbg !287, !tbaa !221, !alias.scope !224, !noalias !225, !dereferenceable_or_null !101, !align !59 %135 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %132, 0, !dbg !287 %.F.ref139 = insertvalue { ptr, ptr addrspace(10) } %135, ptr addrspace(10) %134, 1, !dbg !287 %136 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !292 %.F.size_ptr140 = getelementptr inbounds i8, ptr addrspace(11) %136, i32 16, !dbg !292 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F.size141, ptr addrspace(11) align 8 %.F.size_ptr140, i64 8, i1 false), !dbg !292, !tbaa !71, !alias.scope !72, !noalias !73 %.F.size141.unbox = load i64, ptr %.F.size141, align 8, !dbg !295, !tbaa !80, !alias.scope !82, !noalias !83 %memorynew_empty = icmp eq i64 %.F.size141.unbox, 0, !dbg !295 br i1 %memorynew_empty, label %emptymem, label %nonemptymem, !dbg !295 L182: ; preds = %retval %"-Core.throw_inexacterror#33527150" = load ptr, ptr @_Core_throw_inexacterror_33527, align 8, !dbg !297, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0, !dereferenceable !251, !align !59 %137 = addrspacecast ptr %"-Core.throw_inexacterror#33527150" to ptr addrspace(10), !dbg !297 %"jl_global#33528151" = load ptr, ptr @jl_global_33528, align 8, !dbg !297, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0 %138 = addrspacecast ptr %"jl_global#33528151" to ptr addrspace(10), !dbg !297 %"jl_sym#convert#33529152" = load ptr, ptr @jl_sym_convert_33529, align 8, !dbg !297, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0 %139 = addrspacecast ptr %"jl_sym#convert#33529152" to ptr addrspace(10), !dbg !297 %140 = load ptr, ptr getelementptr inbounds (i8, ptr @jl_small_typeof, i32 336), align 8, !dbg !297, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0, !dereferenceable !100, !align !101 %141 = addrspacecast ptr %140 to ptr addrspace(10), !dbg !297 %box_Int64153 = call nonnull align 8 dereferenceable(8) ptr addrspace(10) @ijl_box_int64(i64 signext %301) #35, !dbg !297 %142 = call nonnull ptr addrspace(10) (ptr, ptr addrspace(10), ptr addrspace(10), ...) @julia.call2(ptr @ijl_invoke, ptr addrspace(10) %137, ptr addrspace(10) %138, ptr addrspace(10) %139, ptr addrspace(10) %141, ptr addrspace(10) %box_Int64153), !dbg !297 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____3), !dbg !297 unreachable, !dbg !297 L184: ; preds = %retval br label %L185, !dbg !297 L185: ; preds = %L184 br label %L187, !dbg !298 L187: ; preds = %L185 br label %L188, !dbg !298 L188: ; preds = %L187 br label %L189, !dbg !298 L189: ; preds = %L188 br label %L190, !dbg !298 L190: ; preds = %L189 call void @llvm.memmove.p0.p0.i64(ptr %memory_ref147.ptr_or_offset, ptr %.F.ref139.ptr_or_offset, i64 %301, i1 false), !dbg !302 br label %L192, !dbg !302 L192: ; preds = %L190 call void @llvm.julia.gc_preserve_end(token %300), !dbg !305 call void @llvm.julia.gc_preserve_end(token %299), !dbg !306 br label %L195, !dbg !307 L195: ; preds = %L192 %143 = addrspacecast ptr addrspace(10) %295 to ptr addrspace(11), !dbg !308 %memory_data_ptr156 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %143, i32 0, i32 1, !dbg !308 %memory_data157 = load ptr, ptr addrspace(11) %memory_data_ptr156, align 8, !dbg !308, !tbaa !232, !alias.scope !224, !noalias !225, !nonnull !0 %144 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memory_data157, 0, !dbg !308 %memory_ref158 = insertvalue { ptr, ptr addrspace(10) } %144, ptr addrspace(10) %295, 1, !dbg !308 %145 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !310 %.F.size_ptr159 = getelementptr inbounds i8, ptr addrspace(11) %145, i32 16, !dbg !310 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F.size160, ptr addrspace(11) align 8 %.F.size_ptr159, i64 8, i1 false), !dbg !310, !tbaa !71, !alias.scope !72, !noalias !73 %"+Core.Array#33538" = load ptr, ptr @_Core_Array_33538, align 8, !dbg !309, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0, !dereferenceable !100, !align !101 %Array = ptrtoint ptr %"+Core.Array#33538" to i64, !dbg !309 %146 = inttoptr i64 %Array to ptr, !dbg !309 %current_task161 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !309 %147 = addrspacecast ptr %146 to ptr addrspace(10), !dbg !309 %"new::Array" = call noalias nonnull align 8 dereferenceable(24) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task161, i64 24, ptr addrspace(10) %147) #33, !dbg !309 %148 = addrspacecast ptr addrspace(10) %"new::Array" to ptr addrspace(11), !dbg !309 %149 = getelementptr inbounds i8, ptr addrspace(11) %148, i32 8, !dbg !309 store ptr addrspace(10) null, ptr addrspace(11) %149, align 8, !dbg !309, !tbaa !311, !alias.scope !224, !noalias !225 %150 = addrspacecast ptr addrspace(10) %"new::Array" to ptr addrspace(11), !dbg !309 store { ptr, ptr addrspace(10) } %memory_ref158, ptr addrspace(11) %150, align 8, !dbg !309, !tbaa !221, !alias.scope !224, !noalias !225 %151 = addrspacecast ptr addrspace(10) %"new::Array" to ptr addrspace(11), !dbg !309 %"new::Array.size_ptr" = getelementptr inbounds i8, ptr addrspace(11) %151, i32 16, !dbg !309 call void @llvm.memcpy.p11.p0.i64(ptr addrspace(11) align 8 %"new::Array.size_ptr", ptr align 8 %.F.size160, i64 8, i1 false), !dbg !309, !tbaa !71, !alias.scope !312, !noalias !73 br label %L199, !dbg !309 L199: ; preds = %L195 br label %L200, !dbg !309 L200: ; preds = %L199 br label %L202, !dbg !309 L201: ; preds = %L164 br label %L202, !dbg !256 L202: ; preds = %L201, %L200 %value_phi162 = phi ptr addrspace(10) [ %"new::Array", %L200 ], [ %.F, %L201 ] br label %L204, !dbg !256 L204: ; preds = %L202, %L139 %value_phi55 = phi ptr addrspace(10) [ %.F, %L139 ], [ %value_phi162, %L202 ] %152 = addrspacecast ptr addrspace(10) %value_phi55 to ptr addrspace(11), !dbg !313 %value_phi55.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %152, i32 16, !dbg !313 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %value_phi55.size, ptr addrspace(11) align 8 %value_phi55.size_ptr, i64 8, i1 false), !dbg !313, !tbaa !71, !alias.scope !72, !noalias !73 %value_phi55.size.unbox = load i64, ptr %value_phi55.size, align 8, !dbg !319, !tbaa !80, !alias.scope !82, !noalias !83 %153 = icmp eq i64 %value_phi55.size.unbox, 1, !dbg !319 %154 = xor i1 %153, true, !dbg !325 %155 = getelementptr inbounds i8, ptr %"new::Tuple56", i32 0, !dbg !321 %156 = zext i1 %154 to i8, !dbg !321 store i8 %156, ptr %155, align 1, !dbg !321, !tbaa !80, !alias.scope !82, !noalias !83 %157 = getelementptr inbounds i8, ptr %"new::Extruded", i32 8, !dbg !326 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %157, ptr align 1 %"new::Tuple56", i64 1, i1 false), !dbg !326, !tbaa !80, !alias.scope !82, !noalias !83 %158 = getelementptr inbounds i8, ptr %"new::Extruded", i32 16, !dbg !326 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %158, ptr align 8 @_j_const_4, i64 8, i1 false), !dbg !326, !tbaa !71, !alias.scope !171, !noalias !172 br label %L213, !dbg !326 L213: ; preds = %L204 %159 = getelementptr inbounds i8, ptr %"new::Tuple57", i32 0, !dbg !260 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %159, ptr align 8 %"new::Extruded", i64 24, i1 false), !dbg !260, !tbaa !80, !alias.scope !82, !noalias !83 br label %L215, !dbg !260 L215: ; preds = %L213 %160 = getelementptr inbounds i8, ptr %"new::Broadcasted", i32 0, !dbg !328 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %160, ptr align 8 %"new::Tuple57", i64 24, i1 false), !dbg !328, !tbaa !80, !alias.scope !82, !noalias !83 %161 = getelementptr inbounds i8, ptr %"new::Broadcasted", i32 24, !dbg !328 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %161, ptr align 8 %"new::Tuple", i64 8, i1 false), !dbg !328, !tbaa !80, !alias.scope !82, !noalias !83 br label %L217, !dbg !328 L217: ; preds = %L215 %.F_H.size.unbox58 = load i64, ptr %.F_H.size, align 8, !dbg !330, !tbaa !80, !alias.scope !82, !noalias !83 %162 = icmp slt i64 0, %.F_H.size.unbox58, !dbg !330 %163 = xor i1 %162, true, !dbg !331 br i1 %163, label %L282, label %L219, !dbg !331 L219: ; preds = %L217 br label %L220, !dbg !331 L220: ; preds = %load116, %L219 %value_phi59 = phi i64 [ 0, %L219 ], [ %283, %load116 ] %.F_H.size.unbox60 = load i64, ptr %.F_H.size, align 8, !dbg !339, !tbaa !80, !alias.scope !82, !noalias !83 %164 = icmp slt i64 %value_phi59, %.F_H.size.unbox60, !dbg !339 %165 = xor i1 %164, true, !dbg !340 br i1 %165, label %L282, label %L223, !dbg !340 L223: ; preds = %L220 %166 = add i64 %value_phi59, 1, !dbg !341 br i1 false, label %L233, label %L226, !dbg !345 L226: ; preds = %L223 %167 = getelementptr inbounds i8, ptr %"new::Tuple61", i32 0, !dbg !345 store i64 %166, ptr %167, align 8, !dbg !345, !tbaa !80, !alias.scope !82, !noalias !83 %168 = sub i64 %166, 1, !dbg !349 %bitcast62 = load i64, ptr %.F_H.size, align 8, !dbg !353, !tbaa !80, !alias.scope !82, !noalias !83 %169 = icmp ult i64 %168, %bitcast62, !dbg !355 %170 = xor i1 %169, true, !dbg !352 br i1 %170, label %L265, label %L232, !dbg !352 L232: ; preds = %L226 br label %L233, !dbg !352 L233: ; preds = %L232, %L223 br i1 false, label %L241, label %L235, !dbg !356 L235: ; preds = %L233 %171 = sub i64 %166, 1, !dbg !362 %bitcast63 = load i64, ptr %.F_H.size, align 8, !dbg !366, !tbaa !80, !alias.scope !82, !noalias !83 %172 = icmp ult i64 %171, %bitcast63, !dbg !368 %173 = xor i1 %172, true, !dbg !364 br i1 %173, label %L267, label %L240, !dbg !364 L240: ; preds = %L235 br label %L241, !dbg !364 L241: ; preds = %L240, %L233 %ifelse_cond = xor i1 %154, true, !dbg !369 %174 = select i1 %ifelse_cond, i64 1, i64 %166, !dbg !369 br i1 false, label %L252, label %L244, !dbg !378 L244: ; preds = %L241 %175 = sub i64 %174, 1, !dbg !380 %176 = addrspacecast ptr addrspace(10) %value_phi55 to ptr addrspace(11), !dbg !383 %value_phi55.size_ptr64 = getelementptr inbounds i8, ptr addrspace(11) %176, i32 16, !dbg !383 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %value_phi55.size65, ptr addrspace(11) align 8 %value_phi55.size_ptr64, i64 8, i1 false), !dbg !383, !tbaa !71, !alias.scope !72, !noalias !73 %bitcast66 = load i64, ptr %value_phi55.size65, align 8, !dbg !380, !tbaa !80, !alias.scope !82, !noalias !83 %177 = icmp ult i64 %175, %bitcast66, !dbg !380 %178 = xor i1 %177, true, !dbg !382 br i1 %178, label %L270, label %L251, !dbg !382 L251: ; preds = %L244 br label %L252, !dbg !382 L252: ; preds = %L251, %L241 %179 = addrspacecast ptr addrspace(10) %value_phi55 to ptr addrspace(11), !dbg !385 %180 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %179, i32 0, i32 0, !dbg !385 %memoryref_data67 = load ptr, ptr addrspace(11) %180, align 8, !dbg !385, !tbaa !221, !alias.scope !224, !noalias !225 %181 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %179, i32 0, i32 1, !dbg !385 %memoryref_mem85 = load ptr addrspace(10), ptr addrspace(11) %181, align 8, !dbg !385, !tbaa !221, !alias.scope !224, !noalias !225, !dereferenceable_or_null !101, !align !59 %182 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data67, 0, !dbg !385 %value_phi55.ref = insertvalue { ptr, ptr addrspace(10) } %182, ptr addrspace(10) %memoryref_mem85, 1, !dbg !385 %memoryref_offset = sub i64 %174, 1, !dbg !385 %183 = addrspacecast ptr addrspace(10) %memoryref_mem85 to ptr addrspace(11), !dbg !385 %184 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %183, i32 0, i32 0, !dbg !385 %memory_len69 = load i64, ptr addrspace(11) %184, align 8, !dbg !385, !tbaa !229, !range !231, !alias.scope !224, !noalias !225 %185 = add nuw i64 %memory_len69, %memory_len69, !dbg !385 %186 = add i64 %memoryref_offset, %memory_len69, !dbg !385 %memoryref_ovflw70 = icmp uge i64 %186, %185, !dbg !385 %memoryref_byteoffset = mul i64 %memoryref_offset, 8, !dbg !385 %memoryref_data_byteoffset71 = getelementptr i8, ptr %memoryref_data67, i64 %memoryref_byteoffset, !dbg !385 %187 = addrspacecast ptr addrspace(10) %memoryref_mem85 to ptr addrspace(11), !dbg !385 %188 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %187, i32 0, i32 0, !dbg !385 %memory_len72 = load i64, ptr addrspace(11) %188, align 8, !dbg !385, !tbaa !229, !range !231, !alias.scope !224, !noalias !225 %189 = addrspacecast ptr addrspace(10) %memoryref_mem85 to ptr addrspace(11), !dbg !385 %memory_data_ptr73 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %189, i32 0, i32 1, !dbg !385 %memory_data74 = load ptr, ptr addrspace(11) %memory_data_ptr73, align 8, !dbg !385, !tbaa !232, !alias.scope !224, !noalias !225, !nonnull !0 %190 = ptrtoint ptr %memory_data74 to i64, !dbg !385 %191 = ptrtoint ptr %memoryref_data_byteoffset71 to i64, !dbg !385 %192 = sub i64 %191, %190, !dbg !385 %memoryref_bytelen75 = mul nuw nsw i64 %memory_len72, 8, !dbg !385 %memoryref_isinbounds76 = icmp ult i64 %192, %memoryref_bytelen75, !dbg !385 %193 = xor i1 %memoryref_ovflw70, true, !dbg !385 %"memoryref_isinbounds¬ovflw77" = and i1 %193, %memoryref_isinbounds76, !dbg !385 br i1 %"memoryref_isinbounds¬ovflw77", label %idxend83, label %oob78, !dbg !385 L257: ; preds = %load %194 = sub i64 %166, 1, !dbg !386 %195 = addrspacecast ptr addrspace(10) %.F_H to ptr addrspace(11), !dbg !391 %.F_H.size_ptr89 = getelementptr inbounds i8, ptr addrspace(11) %195, i32 16, !dbg !391 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F_H.size90, ptr addrspace(11) align 8 %.F_H.size_ptr89, i64 8, i1 false), !dbg !391, !tbaa !71, !alias.scope !72, !noalias !73 %bitcast91 = load i64, ptr %.F_H.size90, align 8, !dbg !386, !tbaa !80, !alias.scope !82, !noalias !83 %196 = icmp ult i64 %194, %bitcast91, !dbg !386 %197 = xor i1 %196, true, !dbg !387 br i1 %197, label %L273, label %L264, !dbg !387 L264: ; preds = %L257 br label %L276, !dbg !387 L265: ; preds = %L226 %198 = addrspacecast ptr %"new::OneTo" to ptr addrspace(11), !dbg !352 %199 = addrspacecast ptr %"new::Tuple61" to ptr addrspace(11), !dbg !352 call void @julia_throw_boundserror_33594(ptr addrspace(11) nocapture readonly %198, ptr addrspace(11) nocapture readonly %199) #34, !dbg !352 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____3), !dbg !352 unreachable, !dbg !352 L267: ; preds = %L235 %200 = getelementptr inbounds i8, ptr %"new::Tuple124", i32 0, !dbg !364 store i64 %166, ptr %200, align 8, !dbg !364, !tbaa !80, !alias.scope !82, !noalias !83 %201 = getelementptr inbounds i8, ptr %0, i32 0, !dbg !364 store ptr addrspace(10) %value_phi55, ptr %201, align 8, !dbg !364 %202 = addrspacecast ptr %"new::Broadcasted" to ptr addrspace(11), !dbg !364 %203 = addrspacecast ptr %"new::Tuple124" to ptr addrspace(11), !dbg !364 call void @julia_throw_boundserror_33591(ptr addrspace(11) nocapture readonly %202, ptr nocapture readonly %0, ptr addrspace(11) nocapture readonly %203) #34, !dbg !364 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____3), !dbg !364 unreachable, !dbg !364 L270: ; preds = %L244 %204 = getelementptr inbounds i8, ptr %"new::Tuple121", i32 0, !dbg !382 store i64 %174, ptr %204, align 8, !dbg !382, !tbaa !80, !alias.scope !82, !noalias !83 %205 = addrspacecast ptr %"new::Tuple121" to ptr addrspace(11), !dbg !382 call void @julia_throw_boundserror_33516(ptr addrspace(10) %value_phi55, ptr addrspace(11) nocapture readonly %205) #34, !dbg !382 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____3), !dbg !382 unreachable, !dbg !382 L273: ; preds = %L257 %206 = getelementptr inbounds i8, ptr %"new::Tuple118", i32 0, !dbg !387 store i64 %166, ptr %206, align 8, !dbg !387, !tbaa !80, !alias.scope !82, !noalias !83 %207 = addrspacecast ptr %"new::Tuple118" to ptr addrspace(11), !dbg !387 call void @julia_throw_boundserror_33516(ptr addrspace(10) %.F_H, ptr addrspace(11) nocapture readonly %207) #34, !dbg !387 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____3), !dbg !387 unreachable, !dbg !387 L276: ; preds = %L264, %load %208 = addrspacecast ptr addrspace(10) %.F_H to ptr addrspace(11), !dbg !393 %209 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %208, i32 0, i32 0, !dbg !393 %memoryref_data93 = load ptr, ptr addrspace(11) %209, align 8, !dbg !393, !tbaa !221, !alias.scope !224, !noalias !225 %210 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %208, i32 0, i32 1, !dbg !393 %memoryref_mem113 = load ptr addrspace(10), ptr addrspace(11) %210, align 8, !dbg !393, !tbaa !221, !alias.scope !224, !noalias !225, !dereferenceable_or_null !101, !align !59 %211 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data93, 0, !dbg !393 %.F_H.ref92 = insertvalue { ptr, ptr addrspace(10) } %211, ptr addrspace(10) %memoryref_mem113, 1, !dbg !393 %memoryref_offset95 = sub i64 %166, 1, !dbg !394 %212 = addrspacecast ptr addrspace(10) %memoryref_mem113 to ptr addrspace(11), !dbg !394 %213 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %212, i32 0, i32 0, !dbg !394 %memory_len96 = load i64, ptr addrspace(11) %213, align 8, !dbg !394, !tbaa !229, !range !231, !alias.scope !224, !noalias !225 %214 = add nuw i64 %memory_len96, %memory_len96, !dbg !394 %215 = add i64 %memoryref_offset95, %memory_len96, !dbg !394 %memoryref_ovflw97 = icmp uge i64 %215, %214, !dbg !394 %memoryref_byteoffset98 = mul i64 %memoryref_offset95, 8, !dbg !394 %memoryref_data_byteoffset99 = getelementptr i8, ptr %memoryref_data93, i64 %memoryref_byteoffset98, !dbg !394 %216 = addrspacecast ptr addrspace(10) %memoryref_mem113 to ptr addrspace(11), !dbg !394 %217 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %216, i32 0, i32 0, !dbg !394 %memory_len100 = load i64, ptr addrspace(11) %217, align 8, !dbg !394, !tbaa !229, !range !231, !alias.scope !224, !noalias !225 %218 = addrspacecast ptr addrspace(10) %memoryref_mem113 to ptr addrspace(11), !dbg !394 %memory_data_ptr101 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %218, i32 0, i32 1, !dbg !394 %memory_data102 = load ptr, ptr addrspace(11) %memory_data_ptr101, align 8, !dbg !394, !tbaa !232, !alias.scope !224, !noalias !225, !nonnull !0 %219 = ptrtoint ptr %memory_data102 to i64, !dbg !394 %220 = ptrtoint ptr %memoryref_data_byteoffset99 to i64, !dbg !394 %221 = sub i64 %220, %219, !dbg !394 %memoryref_bytelen103 = mul nuw nsw i64 %memory_len100, 8, !dbg !394 %memoryref_isinbounds104 = icmp ult i64 %221, %memoryref_bytelen103, !dbg !394 %222 = xor i1 %memoryref_ovflw97, true, !dbg !394 %"memoryref_isinbounds¬ovflw105" = and i1 %222, %memoryref_isinbounds104, !dbg !394 br i1 %"memoryref_isinbounds¬ovflw105", label %idxend111, label %oob106, !dbg !394 L282: ; preds = %L220, %L217 br label %L283, !dbg !334 L283: ; preds = %L282 br label %L286, !dbg !395 L284: ; preds = %L38 %223 = addrspacecast ptr %"new::Tuple4" to ptr addrspace(11), !dbg !120 %224 = addrspacecast ptr %"new::Tuple" to ptr addrspace(11), !dbg !120 call void @julia_throwdm_33586(ptr addrspace(11) nocapture readonly %223, ptr addrspace(11) nocapture readonly %224) #34, !dbg !120 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____3), !dbg !120 unreachable, !dbg !120 L286: ; preds = %L283, %L136 br label %L287, !dbg !255 L287: ; preds = %L286 br label %L288, !dbg !67 L288: ; preds = %L287 br label %L289, !dbg !70 L289: ; preds = %L288 call void @julia_advance_33543(ptr addrspace(10) %3), !dbg !396 %225 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !397 %.t_ptr = getelementptr inbounds i8, ptr addrspace(11) %225, i32 16, !dbg !397 %.t = load double, ptr addrspace(11) %.t_ptr, align 8, !dbg !397, !tbaa !52, !alias.scope !56, !noalias !57 %226 = getelementptr inbounds i8, ptr addrspace(11) %"#self#::#muoptcontrol##1#muoptcontrol##2", i32 8, !dbg !398 %.unbox = load double, ptr addrspace(11) %226, align 8, !dbg !399, !tbaa !39, !alias.scope !41, !noalias !42 %227 = fadd double %.t, %.unbox, !dbg !399 %228 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !402 %.t_ptr13 = getelementptr inbounds i8, ptr addrspace(11) %228, i32 16, !dbg !402 store double %227, ptr addrspace(11) %.t_ptr13, align 8, !dbg !402, !tbaa !52, !alias.scope !56, !noalias !57 ret double %227, !dbg !402 oob: ; preds = %L107 %"+Core.GenericMemoryRef#33514" = load ptr, ptr @_Core_GenericMemoryRef_33514, align 8, !dbg !226, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0, !dereferenceable !100, !align !101 %GenericMemoryRef = ptrtoint ptr %"+Core.GenericMemoryRef#33514" to i64, !dbg !226 %229 = inttoptr i64 %GenericMemoryRef to ptr, !dbg !226 %current_task29 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !226 %230 = addrspacecast ptr %229 to ptr addrspace(10), !dbg !226 %"box::GenericMemoryRef" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task29, i64 16, ptr addrspace(10) %230) #33, !dbg !226 %231 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef" to ptr addrspace(11), !dbg !226 store { ptr, ptr addrspace(10) } %.F_H.ref, ptr addrspace(11) %231, align 8, !dbg !226, !tbaa !102, !alias.scope !56, !noalias !57 %232 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef" to ptr addrspace(12), !dbg !226 call void @ijl_bounds_error_int(ptr addrspace(12) %232, i64 1), !dbg !226 unreachable, !dbg !226 idxend: ; preds = %L107 %233 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset, 0, !dbg !226 %memory_ref = insertvalue { ptr, ptr addrspace(10) } %233, ptr addrspace(10) %memoryref_mem, 1, !dbg !226 %234 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !220 %235 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %234, i32 0, i32 0, !dbg !220 %memoryref_data30 = load ptr, ptr addrspace(11) %235, align 8, !dbg !220, !tbaa !221, !alias.scope !224, !noalias !225 %236 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %234, i32 0, i32 1, !dbg !220 %memoryref_mem31 = load ptr addrspace(10), ptr addrspace(11) %236, align 8, !dbg !220, !tbaa !221, !alias.scope !224, !noalias !225, !dereferenceable_or_null !101, !align !59 %237 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data30, 0, !dbg !220 %.F.ref = insertvalue { ptr, ptr addrspace(10) } %237, ptr addrspace(10) %memoryref_mem31, 1, !dbg !220 %238 = addrspacecast ptr addrspace(10) %memoryref_mem31 to ptr addrspace(11), !dbg !226 %239 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %238, i32 0, i32 0, !dbg !226 %memory_len32 = load i64, ptr addrspace(11) %239, align 8, !dbg !226, !tbaa !229, !range !231, !alias.scope !224, !noalias !225 %240 = add nuw i64 %memory_len32, %memory_len32, !dbg !226 %241 = add i64 0, %memory_len32, !dbg !226 %memoryref_ovflw33 = icmp uge i64 %241, %240, !dbg !226 %memoryref_data_byteoffset34 = getelementptr i8, ptr %memoryref_data30, i64 0, !dbg !226 %242 = addrspacecast ptr addrspace(10) %memoryref_mem31 to ptr addrspace(11), !dbg !226 %243 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %242, i32 0, i32 0, !dbg !226 %memory_len35 = load i64, ptr addrspace(11) %243, align 8, !dbg !226, !tbaa !229, !range !231, !alias.scope !224, !noalias !225 %244 = addrspacecast ptr addrspace(10) %memoryref_mem31 to ptr addrspace(11), !dbg !226 %memory_data_ptr36 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %244, i32 0, i32 1, !dbg !226 %memory_data37 = load ptr, ptr addrspace(11) %memory_data_ptr36, align 8, !dbg !226, !tbaa !232, !alias.scope !224, !noalias !225, !nonnull !0 %245 = ptrtoint ptr %memory_data37 to i64, !dbg !226 %246 = ptrtoint ptr %memoryref_data_byteoffset34 to i64, !dbg !226 %247 = sub i64 %246, %245, !dbg !226 %memoryref_bytelen38 = mul nuw nsw i64 %memory_len35, 8, !dbg !226 %memoryref_isinbounds39 = icmp ult i64 %247, %memoryref_bytelen38, !dbg !226 %248 = xor i1 %memoryref_ovflw33, true, !dbg !226 %"memoryref_isinbounds¬ovflw40" = and i1 %248, %memoryref_isinbounds39, !dbg !226 br i1 %"memoryref_isinbounds¬ovflw40", label %idxend46, label %oob41, !dbg !226 oob41: ; preds = %idxend %"+Core.GenericMemoryRef#3351442" = load ptr, ptr @_Core_GenericMemoryRef_33514, align 8, !dbg !226, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0, !dereferenceable !100, !align !101 %GenericMemoryRef43 = ptrtoint ptr %"+Core.GenericMemoryRef#3351442" to i64, !dbg !226 %249 = inttoptr i64 %GenericMemoryRef43 to ptr, !dbg !226 %current_task44 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !226 %250 = addrspacecast ptr %249 to ptr addrspace(10), !dbg !226 %"box::GenericMemoryRef45" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task44, i64 16, ptr addrspace(10) %250) #33, !dbg !226 %251 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef45" to ptr addrspace(11), !dbg !226 store { ptr, ptr addrspace(10) } %.F.ref, ptr addrspace(11) %251, align 8, !dbg !226, !tbaa !102, !alias.scope !56, !noalias !57 %252 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef45" to ptr addrspace(12), !dbg !226 call void @ijl_bounds_error_int(ptr addrspace(12) %252, i64 1), !dbg !226 unreachable, !dbg !226 idxend46: ; preds = %idxend %253 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset34, 0, !dbg !226 %memory_ref47 = insertvalue { ptr, ptr addrspace(10) } %253, ptr addrspace(10) %memoryref_mem31, 1, !dbg !226 %254 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %memoryref_mem), !dbg !404 %255 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %memoryref_mem31), !dbg !405 %memory_ref.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref, 0, !dbg !406 %memory_ref47.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref47, 0, !dbg !406 %.F.size12.unbox48 = load i64, ptr %.F.size12, align 8, !dbg !412, !tbaa !80, !alias.scope !82, !noalias !83 %256 = mul i64 %.F.size12.unbox48, 8, !dbg !412 %257 = lshr i64 %256, 63, !dbg !414 %258 = select i1 false, i64 0, i64 %257, !dbg !414 %259 = trunc i64 %258 to i8, !dbg !414 %260 = icmp eq i8 %259, 1, !dbg !414 %261 = xor i1 %260, true, !dbg !234 br i1 %261, label %L126, label %L122, !dbg !234 after_error: ; No predecessors! call void @llvm.trap(), !dbg !234 unreachable, !dbg !234 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !234 unreachable, !dbg !234 after_error49: ; No predecessors! call void @llvm.trap(), !dbg !204 unreachable, !dbg !204 after_noret50: ; No predecessors! call void @llvm.trap(), !dbg !204 unreachable, !dbg !204 after_error51: ; No predecessors! call void @llvm.trap(), !dbg !169 unreachable, !dbg !169 after_noret52: ; No predecessors! call void @llvm.trap(), !dbg !169 unreachable, !dbg !169 after_error53: ; No predecessors! call void @llvm.trap(), !dbg !153 unreachable, !dbg !153 after_noret54: ; No predecessors! call void @llvm.trap(), !dbg !153 unreachable, !dbg !153 oob78: ; preds = %L252 %"+Core.GenericMemoryRef#3351479" = load ptr, ptr @_Core_GenericMemoryRef_33514, align 8, !dbg !385, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0, !dereferenceable !100, !align !101 %GenericMemoryRef80 = ptrtoint ptr %"+Core.GenericMemoryRef#3351479" to i64, !dbg !385 %262 = inttoptr i64 %GenericMemoryRef80 to ptr, !dbg !385 %current_task81 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !385 %263 = addrspacecast ptr %262 to ptr addrspace(10), !dbg !385 %"box::GenericMemoryRef82" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task81, i64 16, ptr addrspace(10) %263) #33, !dbg !385 %264 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef82" to ptr addrspace(11), !dbg !385 store { ptr, ptr addrspace(10) } %value_phi55.ref, ptr addrspace(11) %264, align 8, !dbg !385, !tbaa !102, !alias.scope !56, !noalias !57 %265 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef82" to ptr addrspace(12), !dbg !385 call void @ijl_bounds_error_int(ptr addrspace(12) %265, i64 %174), !dbg !385 unreachable, !dbg !385 idxend83: ; preds = %L252 %266 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset71, 0, !dbg !385 %memory_ref84 = insertvalue { ptr, ptr addrspace(10) } %266, ptr addrspace(10) %memoryref_mem85, 1, !dbg !385 %267 = addrspacecast ptr addrspace(10) %memoryref_mem85 to ptr addrspace(11), !dbg !385 %268 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %267, i32 0, i32 0, !dbg !385 %memory_len86 = load i64, ptr addrspace(11) %268, align 8, !dbg !385, !tbaa !229, !range !231, !alias.scope !224, !noalias !225 %269 = icmp eq i64 %memory_len86, 0, !dbg !385 br i1 %269, label %oob87, label %load, !dbg !385 oob87: ; preds = %idxend83 %270 = addrspacecast ptr addrspace(10) %memoryref_mem85 to ptr addrspace(12), !dbg !385 call void @ijl_bounds_error_int(ptr addrspace(12) %270, i64 1), !dbg !385 unreachable, !dbg !385 load: ; preds = %idxend83 %271 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem85, ptr %memoryref_data67), !dbg !385 %memoryref_data88 = getelementptr inbounds i8, ptr addrspace(13) %271, i64 %memoryref_byteoffset, !dbg !385 %272 = load double, ptr addrspace(13) %memoryref_data88, align 8, !dbg !385, !tbaa !416, !alias.scope !56, !noalias !57 br i1 false, label %L276, label %L257, !dbg !387 oob106: ; preds = %L276 %"+Core.GenericMemoryRef#33514107" = load ptr, ptr @_Core_GenericMemoryRef_33514, align 8, !dbg !394, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0, !dereferenceable !100, !align !101 %GenericMemoryRef108 = ptrtoint ptr %"+Core.GenericMemoryRef#33514107" to i64, !dbg !394 %273 = inttoptr i64 %GenericMemoryRef108 to ptr, !dbg !394 %current_task109 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !394 %274 = addrspacecast ptr %273 to ptr addrspace(10), !dbg !394 %"box::GenericMemoryRef110" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task109, i64 16, ptr addrspace(10) %274) #33, !dbg !394 %275 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef110" to ptr addrspace(11), !dbg !394 store { ptr, ptr addrspace(10) } %.F_H.ref92, ptr addrspace(11) %275, align 8, !dbg !394, !tbaa !102, !alias.scope !56, !noalias !57 %276 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef110" to ptr addrspace(12), !dbg !394 call void @ijl_bounds_error_int(ptr addrspace(12) %276, i64 %166), !dbg !394 unreachable, !dbg !394 idxend111: ; preds = %L276 %277 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset99, 0, !dbg !394 %memory_ref112 = insertvalue { ptr, ptr addrspace(10) } %277, ptr addrspace(10) %memoryref_mem113, 1, !dbg !394 %278 = addrspacecast ptr addrspace(10) %memoryref_mem113 to ptr addrspace(11), !dbg !394 %279 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %278, i32 0, i32 0, !dbg !394 %memory_len114 = load i64, ptr addrspace(11) %279, align 8, !dbg !394, !tbaa !229, !range !231, !alias.scope !224, !noalias !225 %280 = icmp eq i64 %memory_len114, 0, !dbg !394 br i1 %280, label %oob115, label %load116, !dbg !394 oob115: ; preds = %idxend111 %281 = addrspacecast ptr addrspace(10) %memoryref_mem113 to ptr addrspace(12), !dbg !394 call void @ijl_bounds_error_int(ptr addrspace(12) %281, i64 1), !dbg !394 unreachable, !dbg !394 load116: ; preds = %idxend111 %282 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem113, ptr %memoryref_data93), !dbg !394 %memoryref_data117 = getelementptr inbounds i8, ptr addrspace(13) %282, i64 %memoryref_byteoffset98, !dbg !394 store double %272, ptr addrspace(13) %memoryref_data117, align 8, !dbg !394, !tbaa !416, !alias.scope !56, !noalias !57 %283 = add i64 %value_phi59, 1, !dbg !418 br label %L220, !dbg !420, !llvm.loop !421 after_error119: ; No predecessors! call void @llvm.trap(), !dbg !387 unreachable, !dbg !387 after_noret120: ; No predecessors! call void @llvm.trap(), !dbg !387 unreachable, !dbg !387 after_error122: ; No predecessors! call void @llvm.trap(), !dbg !382 unreachable, !dbg !382 after_noret123: ; No predecessors! call void @llvm.trap(), !dbg !382 unreachable, !dbg !382 after_error125: ; No predecessors! call void @llvm.trap(), !dbg !364 unreachable, !dbg !364 after_noret126: ; No predecessors! call void @llvm.trap(), !dbg !364 unreachable, !dbg !364 after_error127: ; No predecessors! call void @llvm.trap(), !dbg !352 unreachable, !dbg !352 after_noret128: ; No predecessors! call void @llvm.trap(), !dbg !352 unreachable, !dbg !352 emptymem: ; preds = %L166 %"jl_global#33536" = load ptr, ptr @jl_global_33536, align 8, !dbg !295, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0, !dereferenceable !101, !align !59 %284 = addrspacecast ptr %"jl_global#33536" to ptr addrspace(10), !dbg !295 br label %retval, !dbg !295 nonemptymem: ; preds = %L166 %"+Core.GenericMemory#33537" = load ptr, ptr @_Core_GenericMemory_33537, align 8, !dbg !295, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0, !dereferenceable !100, !align !101 %285 = call { i64, i1 } @llvm.smul.with.overflow.i64(i64 %.F.size141.unbox, i64 8), !dbg !295 %286 = extractvalue { i64, i1 } %285, 0, !dbg !295 %287 = extractvalue { i64, i1 } %285, 1, !dbg !295 %288 = icmp slt i64 %.F.size141.unbox, 0, !dbg !295 %289 = or i1 %287, %288, !dbg !295 %290 = icmp slt i64 9223372036854775806, %286, !dbg !295 %291 = or i1 %289, %290, !dbg !295 %292 = xor i1 %291, true, !dbg !295 br i1 %292, label %pass, label %fail, !dbg !295 fail: ; preds = %nonemptymem call void @jl_argument_error(ptr @_j_str_invalid_GenericMemory_siz____5), !dbg !295 unreachable, !dbg !295 pass: ; preds = %nonemptymem %current_task142 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !295 %ptls_field143 = getelementptr inbounds i8, ptr %current_task142, i32 168, !dbg !295 %ptls_load144 = load ptr, ptr %ptls_field143, align 8, !dbg !295, !tbaa !27 %"Memory{Float64}[]" = call noalias nonnull align 16 ptr addrspace(10) @jl_alloc_genericmemory_unchecked(ptr %ptls_load144, i64 %286, ptr %"+Core.GenericMemory#33537") #36, !dbg !295 %293 = addrspacecast ptr addrspace(10) %"Memory{Float64}[]" to ptr addrspace(11), !dbg !295 %294 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %293, i32 0, i32 0, !dbg !295 store i64 %.F.size141.unbox, ptr addrspace(11) %294, align 8, !dbg !295, !tbaa !229, !alias.scope !224, !noalias !225 br label %retval, !dbg !295 retval: ; preds = %pass, %emptymem %295 = phi ptr addrspace(10) [ %284, %emptymem ], [ %"Memory{Float64}[]", %pass ], !dbg !295 %296 = addrspacecast ptr addrspace(10) %295 to ptr addrspace(11), !dbg !422 %memory_data_ptr145 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %296, i32 0, i32 1, !dbg !422 %memory_data146 = load ptr, ptr addrspace(11) %memory_data_ptr145, align 8, !dbg !422, !tbaa !232, !alias.scope !224, !noalias !225, !nonnull !0 %297 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memory_data146, 0, !dbg !422 %memory_ref147 = insertvalue { ptr, ptr addrspace(10) } %297, ptr addrspace(10) %295, 1, !dbg !422 %298 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !423 %.F.size_ptr148 = getelementptr inbounds i8, ptr addrspace(11) %298, i32 16, !dbg !423 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F.size149, ptr addrspace(11) align 8 %.F.size_ptr148, i64 8, i1 false), !dbg !423, !tbaa !71, !alias.scope !72, !noalias !73 %299 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %295), !dbg !425 %300 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %134), !dbg !426 %memory_ref147.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref147, 0, !dbg !427 %.F.ref139.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %.F.ref139, 0, !dbg !427 %.F.size149.unbox = load i64, ptr %.F.size149, align 8, !dbg !429, !tbaa !80, !alias.scope !82, !noalias !83 %301 = mul i64 %.F.size149.unbox, 8, !dbg !429 %302 = lshr i64 %301, 63, !dbg !430 %303 = select i1 false, i64 0, i64 %302, !dbg !430 %304 = trunc i64 %303 to i8, !dbg !430 %305 = icmp eq i8 %304, 1, !dbg !430 %306 = xor i1 %305, true, !dbg !297 br i1 %306, label %L184, label %L182, !dbg !297 after_error154: ; No predecessors! call void @llvm.trap(), !dbg !297 unreachable, !dbg !297 after_noret155: ; No predecessors! call void @llvm.trap(), !dbg !297 unreachable, !dbg !297 after_error163: ; No predecessors! call void @llvm.trap(), !dbg !120 unreachable, !dbg !120 after_noret164: ; No predecessors! call void @llvm.trap(), !dbg !120 unreachable, !dbg !120 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !97 unreachable, !dbg !97 after_noret166: ; No predecessors! call void @llvm.trap(), !dbg !97 unreachable, !dbg !97 } expectLen=2 swiftself=false sret=nothing returnRoots=nothing mi.specTypes.parameters=svec(Main.var"#muoptcontrol##1#muoptcontrol##2"{Main.Model, Float64}, Int64) retRemoved=false parmsRemoved=UInt64[] Stacktrace: [1] julia_activity_rule(f::LLVM.Function) @ Enzyme.Compiler ~/.julia/packages/Enzyme/EPXUy/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/EPXUy/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/EPXUy/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/EPXUy/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/EPXUy/src/compiler.jl:5960 [8] _thunk @ ~/.julia/packages/Enzyme/EPXUy/src/compiler.jl:5958 [inlined] [9] cached_compilation @ ~/.julia/packages/Enzyme/EPXUy/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/EPXUy/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/EPXUy/src/compiler.jl:6275 [12] autodiff @ ~/.julia/packages/Enzyme/EPXUy/src/Enzyme.jl:502 [inlined] [13] autodiff @ ~/.julia/packages/Enzyme/EPXUy/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 double @julia__muoptcontrol__1_33928(ptr addrspace(11) nocapture noundef nonnull readonly align 8 dereferenceable(16) %"#self#::#muoptcontrol##1#muoptcontrol##2", ptr nocapture noundef nonnull readonly align 8 dereferenceable(8) %".roots.#self#", i64 signext %"1994::Int64") #0 !dbg !24 { top: %.F_H.size = alloca i64, align 8 %"new::OneTo" = alloca [1 x i64], align 8 %"new::Tuple" = alloca [1 x [1 x i64]], align 8 %.F.size = alloca i64, align 8 %.F_H.size2 = alloca i64, align 8 %"new::Tuple4" = alloca [1 x [1 x i64]], align 8 %.F.size8 = alloca i64, align 8 %.F.size12 = alloca i64, align 8 %"new::Tuple17" = alloca [1 x [2 x i64]], align 8 %.F_H.size19 = alloca i64, align 8 %"new::Tuple23" = alloca [1 x [2 x i64]], align 8 %.F.size25 = alloca i64, align 8 %value_phi55.size = alloca i64, align 8 %"new::Tuple56" = alloca [1 x i8], align 1 %"new::Extruded" = alloca [3 x i64], align 8 %"new::Tuple57" = alloca [3 x i64], align 8 %"new::Broadcasted" = alloca [4 x i64], align 8 %"new::Tuple61" = alloca [1 x i64], align 8 %value_phi55.size65 = alloca i64, align 8 %.F_H.size90 = alloca i64, align 8 %"new::Tuple118" = alloca [1 x i64], align 8 %"new::Tuple121" = alloca [1 x i64], align 8 %"new::Tuple124" = alloca [1 x i64], align 8 %0 = alloca ptr addrspace(10), align 8 %.F_H.size130 = alloca i64, align 8 %.F.size132 = alloca i64, align 8 %.F.size141 = alloca i64, align 8 %.F.size149 = alloca i64, align 8 %.F.size160 = alloca i64, align 8 %pgcstack = call ptr @julia.get_pgcstack() call void @llvm.memset.p0.i64(ptr align 8 %0, i8 0, i64 8, i1 false), !tbaa !27, !alias.scope !31, !noalias !34 %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 !27 %1 = getelementptr inbounds i8, ptr %ptls_load, i32 16 %safepoint = load atomic ptr, ptr %1 monotonic, align 8, !tbaa !39 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 !39, !alias.scope !41, !noalias !42 %4 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !43 %.F_H_ptr = getelementptr inbounds i8, ptr addrspace(11) %4, i32 8, !dbg !43 %.F_H = load atomic ptr addrspace(10), ptr addrspace(11) %.F_H_ptr unordered, align 8, !dbg !43, !tbaa !52, !alias.scope !56, !noalias !57, !nonnull !0, !dereferenceable !58, !align !59 %5 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !60 %.F = load atomic ptr addrspace(10), ptr addrspace(11) %5 unordered, align 8, !dbg !60, !tbaa !52, !alias.scope !56, !noalias !57, !nonnull !0, !dereferenceable !58, !align !59 %6 = addrspacecast ptr addrspace(10) %.F_H to ptr addrspace(11), !dbg !61 %.F_H.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %6, i32 16, !dbg !61 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F_H.size, ptr addrspace(11) align 8 %.F_H.size_ptr, i64 8, i1 false), !dbg !61, !tbaa !71, !alias.scope !72, !noalias !73 %7 = getelementptr inbounds i8, ptr %"new::OneTo", i32 0, !dbg !74 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %7, ptr align 8 %.F_H.size, i64 8, i1 false), !dbg !74, !tbaa !80, !alias.scope !82, !noalias !83 %8 = getelementptr inbounds i8, ptr %"new::Tuple", i32 0, !dbg !77 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %8, ptr align 8 %"new::OneTo", i64 8, i1 false), !dbg !77, !tbaa !80, !alias.scope !82, !noalias !83 %9 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !84 %.F.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %9, i32 16, !dbg !84 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F.size, ptr addrspace(11) align 8 %.F.size_ptr, i64 8, i1 false), !dbg !84, !tbaa !71, !alias.scope !72, !noalias !73 %.F_H.size.unbox = load i64, ptr %.F_H.size, align 8, !dbg !90, !tbaa !80, !alias.scope !82, !noalias !83 %.F.size.unbox = load i64, ptr %.F.size, align 8, !dbg !90, !tbaa !80, !alias.scope !82, !noalias !83 %10 = icmp eq i64 %.F_H.size.unbox, %.F.size.unbox, !dbg !90 %11 = xor i1 %10, true, !dbg !95 br i1 %11, label %L16, label %L15, !dbg !95 L15: ; preds = %top %12 = zext i1 %10 to i8 br label %L18, !dbg !95 L16: ; preds = %top %.F.size.unbox167 = load i64, ptr %.F.size, align 8, !dbg !99, !tbaa !80, !alias.scope !82, !noalias !83 %13 = icmp eq i64 %.F.size.unbox167, 1, !dbg !99 %14 = zext i1 %13 to i8 br label %L18, !dbg !99 L18: ; preds = %L16, %L15 %value_phi = phi i8 [ %12, %L15 ], [ %14, %L16 ] %15 = trunc i8 %value_phi to i1, !dbg !97 %16 = xor i1 %15, true, !dbg !97 br i1 %16, label %L21, label %L20, !dbg !97 L20: ; preds = %L18 br label %L24, !dbg !97 L21: ; preds = %L18 %"jl_global#33945" = load ptr, ptr @jl_global_33945, align 8, !dbg !97, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0 %17 = addrspacecast ptr %"jl_global#33945" to ptr addrspace(10), !dbg !97 %18 = call [1 x ptr addrspace(10)] @julia_DimensionMismatch_34008(ptr addrspace(10) %17), !dbg !97 %"+Main.Base.DimensionMismatch#33946" = load ptr, ptr @_Main_Base_DimensionMismatch_33946, align 8, !dbg !97, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0, !dereferenceable !100, !align !101 %DimensionMismatch = ptrtoint ptr %"+Main.Base.DimensionMismatch#33946" to i64, !dbg !97 %19 = inttoptr i64 %DimensionMismatch to ptr, !dbg !97 %current_task165 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !97 %20 = addrspacecast ptr %19 to ptr addrspace(10), !dbg !97 %"box::DimensionMismatch" = call noalias nonnull align 8 dereferenceable(8) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task165, i64 8, ptr addrspace(10) %20) #33, !dbg !97 %21 = addrspacecast ptr addrspace(10) %"box::DimensionMismatch" to ptr addrspace(11), !dbg !97 store [1 x ptr addrspace(10)] %18, ptr addrspace(11) %21, align 8, !dbg !97, !tbaa !102, !alias.scope !56, !noalias !57 %22 = addrspacecast ptr addrspace(10) %"box::DimensionMismatch" to ptr addrspace(12), !dbg !97 call void @ijl_throw(ptr addrspace(12) %22), !dbg !97 unreachable, !dbg !97 L24: ; preds = %L20 br label %L25, !dbg !97 L25: ; preds = %L24 br label %L26, !dbg !104 L26: ; preds = %L25 %23 = addrspacecast ptr addrspace(10) %.F_H to ptr addrspace(11), !dbg !105 %.F_H.size_ptr1 = getelementptr inbounds i8, ptr addrspace(11) %23, i32 16, !dbg !105 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F_H.size2, ptr addrspace(11) align 8 %.F_H.size_ptr1, i64 8, i1 false), !dbg !105, !tbaa !71, !alias.scope !72, !noalias !73 %24 = getelementptr inbounds i8, ptr %"new::Tuple4", i32 0, !dbg !112 %25 = getelementptr inbounds i8, ptr %24, i32 0, !dbg !112 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %25, ptr align 8 %.F_H.size2, i64 8, i1 false), !dbg !112, !tbaa !80, !alias.scope !82, !noalias !83 %.F_H.size2.unbox = load i64, ptr %.F_H.size2, align 8, !dbg !114, !tbaa !80, !alias.scope !82, !noalias !83 %.F_H.size.unbox5 = load i64, ptr %.F_H.size, align 8, !dbg !114, !tbaa !80, !alias.scope !82, !noalias !83 %26 = icmp eq i64 %.F_H.size2.unbox, %.F_H.size.unbox5, !dbg !114 %27 = zext i1 %26 to i8, !dbg !121 %28 = icmp eq i8 %27, 0, !dbg !121 %29 = xor i1 %28, true, !dbg !121 br i1 %29, label %L35, label %L34, !dbg !121 L34: ; preds = %L26 br label %L36, !dbg !122 L35: ; preds = %L26 br label %L36, !dbg !123 L36: ; preds = %L35, %L34 %value_phi6 = phi i8 [ 0, %L34 ], [ 1, %L35 ] br label %L38, !dbg !118 L38: ; preds = %L36 %30 = trunc i8 %value_phi6 to i1, !dbg !120 %31 = xor i1 %30, true, !dbg !120 br i1 %31, label %L284, label %L39, !dbg !120 L39: ; preds = %L38 %32 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !124 %.F.size_ptr7 = getelementptr inbounds i8, ptr addrspace(11) %32, i32 16, !dbg !124 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F.size8, ptr addrspace(11) align 8 %.F.size_ptr7, i64 8, i1 false), !dbg !124, !tbaa !71, !alias.scope !72, !noalias !73 %.F_H.size2.unbox9 = load i64, ptr %.F_H.size2, align 8, !dbg !127, !tbaa !80, !alias.scope !82, !noalias !83 %.F.size8.unbox = load i64, ptr %.F.size8, align 8, !dbg !127, !tbaa !80, !alias.scope !82, !noalias !83 %33 = icmp eq i64 %.F_H.size2.unbox9, %.F.size8.unbox, !dbg !127 %34 = zext i1 %33 to i8, !dbg !131 %35 = icmp eq i8 %34, 0, !dbg !131 %36 = xor i1 %35, true, !dbg !131 br i1 %36, label %L46, label %L45, !dbg !131 L45: ; preds = %L39 br label %L47, !dbg !132 L46: ; preds = %L39 br label %L47, !dbg !133 L47: ; preds = %L46, %L45 %value_phi10 = phi i8 [ 0, %L45 ], [ 1, %L46 ] br label %L49, !dbg !130 L49: ; preds = %L47 %37 = trunc i8 %value_phi10 to i1, !dbg !126 %38 = xor i1 %37, true, !dbg !126 br i1 %38, label %L137, label %L50, !dbg !126 L50: ; preds = %L49 %39 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !134 %.F.size_ptr11 = getelementptr inbounds i8, ptr addrspace(11) %39, i32 16, !dbg !134 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F.size12, ptr addrspace(11) align 8 %.F.size_ptr11, i64 8, i1 false), !dbg !134, !tbaa !71, !alias.scope !72, !noalias !73 %.F.size12.unbox = load i64, ptr %.F.size12, align 8, !dbg !143, !tbaa !80, !alias.scope !82, !noalias !83 %40 = icmp eq i64 %.F.size12.unbox, 0, !dbg !143 %41 = xor i1 %40, true, !dbg !144 br i1 %41, label %L55, label %L54, !dbg !144 L54: ; preds = %L50 br label %L133, !dbg !144 L55: ; preds = %L50 %.F.size12.unbox14 = load i64, ptr %.F.size12, align 8, !dbg !147, !tbaa !80, !alias.scope !82, !noalias !83 %42 = icmp slt i64 0, %.F.size12.unbox14, !dbg !147 %43 = xor i1 %42, true, !dbg !153 br i1 %43, label %L131, label %L57, !dbg !153 L57: ; preds = %L55 br i1 false, label %L81, label %L59, !dbg !154 L59: ; preds = %L57 %.F.size12.unbox15 = load i64, ptr %.F.size12, align 8, !dbg !155, !tbaa !80, !alias.scope !82, !noalias !83 %44 = add i64 1, %.F.size12.unbox15, !dbg !155 %45 = sub i64 %44, 1, !dbg !157 %46 = icmp sle i64 1, %45, !dbg !159 %47 = xor i1 %46, true, !dbg !163 br i1 %47, label %L64, label %L63, !dbg !163 L63: ; preds = %L59 br label %L65, !dbg !163 L64: ; preds = %L59 br label %L65, !dbg !169 L65: ; preds = %L64, %L63 %value_phi16 = phi i64 [ %45, %L63 ], [ 0, %L64 ] %48 = getelementptr inbounds i8, ptr %"new::Tuple17", i32 0, !dbg !165 %49 = getelementptr inbounds i8, ptr %48, i32 0, !dbg !165 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %49, ptr align 8 @_j_const_1, i64 8, i1 false), !dbg !165, !tbaa !71, !alias.scope !171, !noalias !172 %50 = getelementptr inbounds i8, ptr %48, i32 8, !dbg !165 store i64 %value_phi16, ptr %50, align 8, !dbg !165, !tbaa !80, !alias.scope !82, !noalias !83 %51 = addrspacecast ptr addrspace(10) %.F_H to ptr addrspace(11), !dbg !173 %.F_H.size_ptr18 = getelementptr inbounds i8, ptr addrspace(11) %51, i32 16, !dbg !173 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F_H.size19, ptr addrspace(11) align 8 %.F_H.size_ptr18, i64 8, i1 false), !dbg !173, !tbaa !71, !alias.scope !72, !noalias !73 %52 = icmp slt i64 %value_phi16, 1, !dbg !178 %bitcast = load i64, ptr %.F_H.size19, align 8, !dbg !184, !tbaa !80, !alias.scope !82, !noalias !83 %53 = icmp ult i64 0, %bitcast, !dbg !189 %54 = sub i64 %value_phi16, 1, !dbg !190 %bitcast20 = load i64, ptr %.F_H.size19, align 8, !dbg !184, !tbaa !80, !alias.scope !82, !noalias !83 %55 = icmp ult i64 %54, %bitcast20, !dbg !189 %56 = and i1 %53, %55, !dbg !191 %57 = or i1 %52, %56, !dbg !194 %58 = xor i1 %57, true, !dbg !169 br i1 %58, label %L88, label %L80, !dbg !169 L80: ; preds = %L65 br label %L81, !dbg !169 L81: ; preds = %L80, %L57 br i1 false, label %L107, label %L83, !dbg !196 L83: ; preds = %L81 %.F.size12.unbox21 = load i64, ptr %.F.size12, align 8, !dbg !197, !tbaa !80, !alias.scope !82, !noalias !83 %59 = add i64 1, %.F.size12.unbox21, !dbg !197 %60 = sub i64 %59, 1, !dbg !198 %61 = icmp sle i64 1, %60, !dbg !199 %62 = xor i1 %61, true, !dbg !201 br i1 %62, label %L90, label %L87, !dbg !201 L87: ; preds = %L83 br label %L91, !dbg !201 L88: ; preds = %L65 %63 = addrspacecast ptr %"new::Tuple17" to ptr addrspace(11), !dbg !169 call void @julia_throw_boundserror_34004(ptr addrspace(10) %.F_H, ptr addrspace(11) nocapture readonly %63) #34, !dbg !169 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____3), !dbg !169 unreachable, !dbg !169 L90: ; preds = %L83 br label %L91, !dbg !204 L91: ; preds = %L90, %L87 %value_phi22 = phi i64 [ %60, %L87 ], [ 0, %L90 ] %64 = getelementptr inbounds i8, ptr %"new::Tuple23", i32 0, !dbg !202 %65 = getelementptr inbounds i8, ptr %64, i32 0, !dbg !202 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %65, ptr align 8 @_j_const_1, i64 8, i1 false), !dbg !202, !tbaa !71, !alias.scope !171, !noalias !172 %66 = getelementptr inbounds i8, ptr %64, i32 8, !dbg !202 store i64 %value_phi22, ptr %66, align 8, !dbg !202, !tbaa !80, !alias.scope !82, !noalias !83 %67 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !205 %.F.size_ptr24 = getelementptr inbounds i8, ptr addrspace(11) %67, i32 16, !dbg !205 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F.size25, ptr addrspace(11) align 8 %.F.size_ptr24, i64 8, i1 false), !dbg !205, !tbaa !71, !alias.scope !72, !noalias !73 %68 = icmp slt i64 %value_phi22, 1, !dbg !209 %bitcast26 = load i64, ptr %.F.size25, align 8, !dbg !213, !tbaa !80, !alias.scope !82, !noalias !83 %69 = icmp ult i64 0, %bitcast26, !dbg !216 %70 = sub i64 %value_phi22, 1, !dbg !217 %bitcast27 = load i64, ptr %.F.size25, align 8, !dbg !213, !tbaa !80, !alias.scope !82, !noalias !83 %71 = icmp ult i64 %70, %bitcast27, !dbg !216 %72 = and i1 %69, %71, !dbg !218 %73 = or i1 %68, %72, !dbg !219 %74 = xor i1 %73, true, !dbg !204 br i1 %74, label %L124, label %L106, !dbg !204 L106: ; preds = %L91 br label %L107, !dbg !204 L107: ; preds = %L106, %L81 %75 = addrspacecast ptr addrspace(10) %.F_H to ptr addrspace(11), !dbg !220 %76 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %75, i32 0, i32 0, !dbg !220 %memoryref_data = load ptr, ptr addrspace(11) %76, align 8, !dbg !220, !tbaa !221, !alias.scope !224, !noalias !225 %77 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %75, i32 0, i32 1, !dbg !220 %memoryref_mem = load ptr addrspace(10), ptr addrspace(11) %77, align 8, !dbg !220, !tbaa !221, !alias.scope !224, !noalias !225, !dereferenceable_or_null !101, !align !59 %78 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data, 0, !dbg !220 %.F_H.ref = insertvalue { ptr, ptr addrspace(10) } %78, ptr addrspace(10) %memoryref_mem, 1, !dbg !220 %79 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !226 %80 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %79, i32 0, i32 0, !dbg !226 %memory_len = load i64, ptr addrspace(11) %80, align 8, !dbg !226, !tbaa !229, !range !231, !alias.scope !224, !noalias !225 %81 = add nuw i64 %memory_len, %memory_len, !dbg !226 %82 = add i64 0, %memory_len, !dbg !226 %memoryref_ovflw = icmp uge i64 %82, %81, !dbg !226 %memoryref_data_byteoffset = getelementptr i8, ptr %memoryref_data, i64 0, !dbg !226 %83 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !226 %84 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %83, i32 0, i32 0, !dbg !226 %memory_len28 = load i64, ptr addrspace(11) %84, align 8, !dbg !226, !tbaa !229, !range !231, !alias.scope !224, !noalias !225 %85 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !226 %memory_data_ptr = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %85, i32 0, i32 1, !dbg !226 %memory_data = load ptr, ptr addrspace(11) %memory_data_ptr, align 8, !dbg !226, !tbaa !232, !alias.scope !224, !noalias !225, !nonnull !0 %86 = ptrtoint ptr %memory_data to i64, !dbg !226 %87 = ptrtoint ptr %memoryref_data_byteoffset to i64, !dbg !226 %88 = sub i64 %87, %86, !dbg !226 %memoryref_bytelen = mul nuw nsw i64 %memory_len28, 8, !dbg !226 %memoryref_isinbounds = icmp ult i64 %88, %memoryref_bytelen, !dbg !226 %89 = xor i1 %memoryref_ovflw, true, !dbg !226 %"memoryref_isinbounds¬ovflw" = and i1 %89, %memoryref_isinbounds, !dbg !226 br i1 %"memoryref_isinbounds¬ovflw", label %idxend, label %oob, !dbg !226 L122: ; preds = %idxend46 %"-Core.throw_inexacterror#33931" = load ptr, ptr @_Core_throw_inexacterror_33931, align 8, !dbg !234, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0, !dereferenceable !251, !align !59 %90 = addrspacecast ptr %"-Core.throw_inexacterror#33931" to ptr addrspace(10), !dbg !234 %"jl_global#33932" = load ptr, ptr @jl_global_33932, align 8, !dbg !234, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0 %91 = addrspacecast ptr %"jl_global#33932" to ptr addrspace(10), !dbg !234 %"jl_sym#convert#33933" = load ptr, ptr @jl_sym_convert_33933, align 8, !dbg !234, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0 %92 = addrspacecast ptr %"jl_sym#convert#33933" to ptr addrspace(10), !dbg !234 %93 = load ptr, ptr getelementptr inbounds (i8, ptr @jl_small_typeof, i32 336), align 8, !dbg !234, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0, !dereferenceable !100, !align !101 %94 = addrspacecast ptr %93 to ptr addrspace(10), !dbg !234 %box_Int64 = call nonnull align 8 dereferenceable(8) ptr addrspace(10) @ijl_box_int64(i64 signext %256) #35, !dbg !234 %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 !234 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____3), !dbg !234 unreachable, !dbg !234 L124: ; preds = %L91 %96 = addrspacecast ptr %"new::Tuple23" to ptr addrspace(11), !dbg !204 call void @julia_throw_boundserror_34004(ptr addrspace(10) %.F, ptr addrspace(11) nocapture readonly %96) #34, !dbg !204 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____3), !dbg !204 unreachable, !dbg !204 L126: ; preds = %idxend46 call void @llvm.memmove.p0.p0.i64(ptr %memory_ref.ptr_or_offset, ptr %memory_ref47.ptr_or_offset, i64 %256, i1 false), !dbg !245 call void @llvm.julia.gc_preserve_end(token %255), !dbg !252 call void @llvm.julia.gc_preserve_end(token %254), !dbg !253 br label %L133, !dbg !254 L131: ; preds = %L55 %"jl_global#33936" = load ptr, ptr @jl_global_33936, align 8, !dbg !153, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0 %97 = addrspacecast ptr %"jl_global#33936" to ptr addrspace(10), !dbg !153 call void @julia__throw_argerror_34001(ptr addrspace(10) %97) #34, !dbg !153 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____3), !dbg !153 unreachable, !dbg !153 L133: ; preds = %L126, %L54 br label %L134, !dbg !144 L134: ; preds = %L133 br label %L135, !dbg !144 L135: ; preds = %L134 br label %L136, !dbg !144 L136: ; preds = %L135 br label %L286, !dbg !255 L137: ; preds = %L49 %98 = addrspacecast ptr addrspace(10) %.F_H to ptr addrspace(11), !dbg !256 %99 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !256 %100 = icmp eq ptr addrspace(11) %98, %99, !dbg !256 %101 = xor i1 %100, true, !dbg !256 br i1 %101, label %L140, label %L139, !dbg !256 L139: ; preds = %L137 br label %L204, !dbg !256 L140: ; preds = %L137 %102 = addrspacecast ptr addrspace(10) %.F_H to ptr addrspace(11), !dbg !264 %.F_H.size_ptr129 = getelementptr inbounds i8, ptr addrspace(11) %102, i32 16, !dbg !264 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F_H.size130, ptr addrspace(11) align 8 %.F_H.size_ptr129, i64 8, i1 false), !dbg !264, !tbaa !71, !alias.scope !72, !noalias !73 %.F_H.size130.unbox = load i64, ptr %.F_H.size130, align 8, !dbg !272, !tbaa !80, !alias.scope !82, !noalias !83 %103 = icmp eq i64 %.F_H.size130.unbox, 0, !dbg !272 %104 = xor i1 %103, true, !dbg !273 %105 = xor i1 %104, true, !dbg !268 br i1 %105, label %L163, label %L145, !dbg !268 L145: ; preds = %L140 %106 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !264 %.F.size_ptr131 = getelementptr inbounds i8, ptr addrspace(11) %106, i32 16, !dbg !264 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F.size132, ptr addrspace(11) align 8 %.F.size_ptr131, i64 8, i1 false), !dbg !264, !tbaa !71, !alias.scope !72, !noalias !73 %.F.size132.unbox = load i64, ptr %.F.size132, align 8, !dbg !272, !tbaa !80, !alias.scope !82, !noalias !83 %107 = icmp eq i64 %.F.size132.unbox, 0, !dbg !272 %108 = xor i1 %107, true, !dbg !273 %109 = xor i1 %108, true, !dbg !268 br i1 %109, label %L162, label %L150, !dbg !268 L150: ; preds = %L145 %110 = addrspacecast ptr addrspace(10) %.F_H to ptr addrspace(11), !dbg !275 %111 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %110, i32 0, i32 0, !dbg !275 %112 = load ptr, ptr addrspace(11) %111, align 8, !dbg !275, !tbaa !221, !alias.scope !224, !noalias !225 %113 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %110, i32 0, i32 1, !dbg !275 %114 = load ptr addrspace(10), ptr addrspace(11) %113, align 8, !dbg !275, !tbaa !221, !alias.scope !224, !noalias !225, !dereferenceable_or_null !101, !align !59 %115 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %112, 0, !dbg !275 %.F_H.ref133 = insertvalue { ptr, ptr addrspace(10) } %115, ptr addrspace(10) %114, 1, !dbg !275 %.F_H.ref133.mem = extractvalue { ptr, ptr addrspace(10) } %.F_H.ref133, 1, !dbg !275 %116 = addrspacecast ptr addrspace(10) %.F_H.ref133.mem to ptr addrspace(11), !dbg !278 %.F_H.ref133.mem.ptr_ptr = getelementptr inbounds i8, ptr addrspace(11) %116, i32 8, !dbg !278 %bitcast134 = load ptr, ptr addrspace(11) %.F_H.ref133.mem.ptr_ptr, align 8, !dbg !280, !tbaa !232, !alias.scope !224, !noalias !225 %bitcast_coercion = ptrtoint ptr %bitcast134 to i64, !dbg !280 %117 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !275 %118 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %117, i32 0, i32 0, !dbg !275 %119 = load ptr, ptr addrspace(11) %118, align 8, !dbg !275, !tbaa !221, !alias.scope !224, !noalias !225 %120 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %117, i32 0, i32 1, !dbg !275 %121 = load ptr addrspace(10), ptr addrspace(11) %120, align 8, !dbg !275, !tbaa !221, !alias.scope !224, !noalias !225, !dereferenceable_or_null !101, !align !59 %122 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %119, 0, !dbg !275 %.F.ref135 = insertvalue { ptr, ptr addrspace(10) } %122, ptr addrspace(10) %121, 1, !dbg !275 %.F.ref135.mem = extractvalue { ptr, ptr addrspace(10) } %.F.ref135, 1, !dbg !275 %123 = addrspacecast ptr addrspace(10) %.F.ref135.mem to ptr addrspace(11), !dbg !278 %.F.ref135.mem.ptr_ptr = getelementptr inbounds i8, ptr addrspace(11) %123, i32 8, !dbg !278 %bitcast136 = load ptr, ptr addrspace(11) %.F.ref135.mem.ptr_ptr, align 8, !dbg !280, !tbaa !232, !alias.scope !224, !noalias !225 %bitcast_coercion137 = ptrtoint ptr %bitcast136 to i64, !dbg !280 %124 = icmp eq i64 %bitcast_coercion, %bitcast_coercion137, !dbg !281 %125 = xor i1 %124, true, !dbg !286 %126 = xor i1 %125, true, !dbg !273 %127 = zext i1 %126 to i8 br label %L164, !dbg !273 L162: ; preds = %L145 br label %L164, !dbg !256 L163: ; preds = %L140 br label %L164, !dbg !256 L164: ; preds = %L163, %L162, %L150 %value_phi138 = phi i8 [ %127, %L150 ], [ 0, %L162 ], [ 0, %L163 ] %128 = trunc i8 %value_phi138 to i1, !dbg !270 %129 = xor i1 %128, true, !dbg !270 br i1 %129, label %L201, label %L166, !dbg !270 L166: ; preds = %L164 %130 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !287 %131 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %130, i32 0, i32 0, !dbg !287 %132 = load ptr, ptr addrspace(11) %131, align 8, !dbg !287, !tbaa !221, !alias.scope !224, !noalias !225 %133 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %130, i32 0, i32 1, !dbg !287 %134 = load ptr addrspace(10), ptr addrspace(11) %133, align 8, !dbg !287, !tbaa !221, !alias.scope !224, !noalias !225, !dereferenceable_or_null !101, !align !59 %135 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %132, 0, !dbg !287 %.F.ref139 = insertvalue { ptr, ptr addrspace(10) } %135, ptr addrspace(10) %134, 1, !dbg !287 %136 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !292 %.F.size_ptr140 = getelementptr inbounds i8, ptr addrspace(11) %136, i32 16, !dbg !292 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F.size141, ptr addrspace(11) align 8 %.F.size_ptr140, i64 8, i1 false), !dbg !292, !tbaa !71, !alias.scope !72, !noalias !73 %.F.size141.unbox = load i64, ptr %.F.size141, align 8, !dbg !295, !tbaa !80, !alias.scope !82, !noalias !83 %memorynew_empty = icmp eq i64 %.F.size141.unbox, 0, !dbg !295 br i1 %memorynew_empty, label %emptymem, label %nonemptymem, !dbg !295 L182: ; preds = %retval %"-Core.throw_inexacterror#33931150" = load ptr, ptr @_Core_throw_inexacterror_33931, align 8, !dbg !297, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0, !dereferenceable !251, !align !59 %137 = addrspacecast ptr %"-Core.throw_inexacterror#33931150" to ptr addrspace(10), !dbg !297 %"jl_global#33932151" = load ptr, ptr @jl_global_33932, align 8, !dbg !297, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0 %138 = addrspacecast ptr %"jl_global#33932151" to ptr addrspace(10), !dbg !297 %"jl_sym#convert#33933152" = load ptr, ptr @jl_sym_convert_33933, align 8, !dbg !297, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0 %139 = addrspacecast ptr %"jl_sym#convert#33933152" to ptr addrspace(10), !dbg !297 %140 = load ptr, ptr getelementptr inbounds (i8, ptr @jl_small_typeof, i32 336), align 8, !dbg !297, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0, !dereferenceable !100, !align !101 %141 = addrspacecast ptr %140 to ptr addrspace(10), !dbg !297 %box_Int64153 = call nonnull align 8 dereferenceable(8) ptr addrspace(10) @ijl_box_int64(i64 signext %301) #35, !dbg !297 %142 = call nonnull ptr addrspace(10) (ptr, ptr addrspace(10), ptr addrspace(10), ...) @julia.call2(ptr @ijl_invoke, ptr addrspace(10) %137, ptr addrspace(10) %138, ptr addrspace(10) %139, ptr addrspace(10) %141, ptr addrspace(10) %box_Int64153), !dbg !297 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____3), !dbg !297 unreachable, !dbg !297 L184: ; preds = %retval br label %L185, !dbg !297 L185: ; preds = %L184 br label %L187, !dbg !298 L187: ; preds = %L185 br label %L188, !dbg !298 L188: ; preds = %L187 br label %L189, !dbg !298 L189: ; preds = %L188 br label %L190, !dbg !298 L190: ; preds = %L189 call void @llvm.memmove.p0.p0.i64(ptr %memory_ref147.ptr_or_offset, ptr %.F.ref139.ptr_or_offset, i64 %301, i1 false), !dbg !302 br label %L192, !dbg !302 L192: ; preds = %L190 call void @llvm.julia.gc_preserve_end(token %300), !dbg !305 call void @llvm.julia.gc_preserve_end(token %299), !dbg !306 br label %L195, !dbg !307 L195: ; preds = %L192 %143 = addrspacecast ptr addrspace(10) %295 to ptr addrspace(11), !dbg !308 %memory_data_ptr156 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %143, i32 0, i32 1, !dbg !308 %memory_data157 = load ptr, ptr addrspace(11) %memory_data_ptr156, align 8, !dbg !308, !tbaa !232, !alias.scope !224, !noalias !225, !nonnull !0 %144 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memory_data157, 0, !dbg !308 %memory_ref158 = insertvalue { ptr, ptr addrspace(10) } %144, ptr addrspace(10) %295, 1, !dbg !308 %145 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !310 %.F.size_ptr159 = getelementptr inbounds i8, ptr addrspace(11) %145, i32 16, !dbg !310 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F.size160, ptr addrspace(11) align 8 %.F.size_ptr159, i64 8, i1 false), !dbg !310, !tbaa !71, !alias.scope !72, !noalias !73 %"+Core.Array#33942" = load ptr, ptr @_Core_Array_33942, align 8, !dbg !309, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0, !dereferenceable !100, !align !101 %Array = ptrtoint ptr %"+Core.Array#33942" to i64, !dbg !309 %146 = inttoptr i64 %Array to ptr, !dbg !309 %current_task161 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !309 %147 = addrspacecast ptr %146 to ptr addrspace(10), !dbg !309 %"new::Array" = call noalias nonnull align 8 dereferenceable(24) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task161, i64 24, ptr addrspace(10) %147) #33, !dbg !309 %148 = addrspacecast ptr addrspace(10) %"new::Array" to ptr addrspace(11), !dbg !309 %149 = getelementptr inbounds i8, ptr addrspace(11) %148, i32 8, !dbg !309 store ptr addrspace(10) null, ptr addrspace(11) %149, align 8, !dbg !309, !tbaa !311, !alias.scope !224, !noalias !225 %150 = addrspacecast ptr addrspace(10) %"new::Array" to ptr addrspace(11), !dbg !309 store { ptr, ptr addrspace(10) } %memory_ref158, ptr addrspace(11) %150, align 8, !dbg !309, !tbaa !221, !alias.scope !224, !noalias !225 %151 = addrspacecast ptr addrspace(10) %"new::Array" to ptr addrspace(11), !dbg !309 %"new::Array.size_ptr" = getelementptr inbounds i8, ptr addrspace(11) %151, i32 16, !dbg !309 call void @llvm.memcpy.p11.p0.i64(ptr addrspace(11) align 8 %"new::Array.size_ptr", ptr align 8 %.F.size160, i64 8, i1 false), !dbg !309, !tbaa !71, !alias.scope !312, !noalias !73 br label %L199, !dbg !309 L199: ; preds = %L195 br label %L200, !dbg !309 L200: ; preds = %L199 br label %L202, !dbg !309 L201: ; preds = %L164 br label %L202, !dbg !256 L202: ; preds = %L201, %L200 %value_phi162 = phi ptr addrspace(10) [ %"new::Array", %L200 ], [ %.F, %L201 ] br label %L204, !dbg !256 L204: ; preds = %L202, %L139 %value_phi55 = phi ptr addrspace(10) [ %.F, %L139 ], [ %value_phi162, %L202 ] %152 = addrspacecast ptr addrspace(10) %value_phi55 to ptr addrspace(11), !dbg !313 %value_phi55.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %152, i32 16, !dbg !313 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %value_phi55.size, ptr addrspace(11) align 8 %value_phi55.size_ptr, i64 8, i1 false), !dbg !313, !tbaa !71, !alias.scope !72, !noalias !73 %value_phi55.size.unbox = load i64, ptr %value_phi55.size, align 8, !dbg !319, !tbaa !80, !alias.scope !82, !noalias !83 %153 = icmp eq i64 %value_phi55.size.unbox, 1, !dbg !319 %154 = xor i1 %153, true, !dbg !325 %155 = getelementptr inbounds i8, ptr %"new::Tuple56", i32 0, !dbg !321 %156 = zext i1 %154 to i8, !dbg !321 store i8 %156, ptr %155, align 1, !dbg !321, !tbaa !80, !alias.scope !82, !noalias !83 %157 = getelementptr inbounds i8, ptr %"new::Extruded", i32 8, !dbg !326 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %157, ptr align 1 %"new::Tuple56", i64 1, i1 false), !dbg !326, !tbaa !80, !alias.scope !82, !noalias !83 %158 = getelementptr inbounds i8, ptr %"new::Extruded", i32 16, !dbg !326 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %158, ptr align 8 @_j_const_4, i64 8, i1 false), !dbg !326, !tbaa !71, !alias.scope !171, !noalias !172 br label %L213, !dbg !326 L213: ; preds = %L204 %159 = getelementptr inbounds i8, ptr %"new::Tuple57", i32 0, !dbg !260 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %159, ptr align 8 %"new::Extruded", i64 24, i1 false), !dbg !260, !tbaa !80, !alias.scope !82, !noalias !83 br label %L215, !dbg !260 L215: ; preds = %L213 %160 = getelementptr inbounds i8, ptr %"new::Broadcasted", i32 0, !dbg !328 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %160, ptr align 8 %"new::Tuple57", i64 24, i1 false), !dbg !328, !tbaa !80, !alias.scope !82, !noalias !83 %161 = getelementptr inbounds i8, ptr %"new::Broadcasted", i32 24, !dbg !328 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %161, ptr align 8 %"new::Tuple", i64 8, i1 false), !dbg !328, !tbaa !80, !alias.scope !82, !noalias !83 br label %L217, !dbg !328 L217: ; preds = %L215 %.F_H.size.unbox58 = load i64, ptr %.F_H.size, align 8, !dbg !330, !tbaa !80, !alias.scope !82, !noalias !83 %162 = icmp slt i64 0, %.F_H.size.unbox58, !dbg !330 %163 = xor i1 %162, true, !dbg !331 br i1 %163, label %L282, label %L219, !dbg !331 L219: ; preds = %L217 br label %L220, !dbg !331 L220: ; preds = %load116, %L219 %value_phi59 = phi i64 [ 0, %L219 ], [ %283, %load116 ] %.F_H.size.unbox60 = load i64, ptr %.F_H.size, align 8, !dbg !339, !tbaa !80, !alias.scope !82, !noalias !83 %164 = icmp slt i64 %value_phi59, %.F_H.size.unbox60, !dbg !339 %165 = xor i1 %164, true, !dbg !340 br i1 %165, label %L282, label %L223, !dbg !340 L223: ; preds = %L220 %166 = add i64 %value_phi59, 1, !dbg !341 br i1 false, label %L233, label %L226, !dbg !345 L226: ; preds = %L223 %167 = getelementptr inbounds i8, ptr %"new::Tuple61", i32 0, !dbg !345 store i64 %166, ptr %167, align 8, !dbg !345, !tbaa !80, !alias.scope !82, !noalias !83 %168 = sub i64 %166, 1, !dbg !349 %bitcast62 = load i64, ptr %.F_H.size, align 8, !dbg !353, !tbaa !80, !alias.scope !82, !noalias !83 %169 = icmp ult i64 %168, %bitcast62, !dbg !355 %170 = xor i1 %169, true, !dbg !352 br i1 %170, label %L265, label %L232, !dbg !352 L232: ; preds = %L226 br label %L233, !dbg !352 L233: ; preds = %L232, %L223 br i1 false, label %L241, label %L235, !dbg !356 L235: ; preds = %L233 %171 = sub i64 %166, 1, !dbg !362 %bitcast63 = load i64, ptr %.F_H.size, align 8, !dbg !366, !tbaa !80, !alias.scope !82, !noalias !83 %172 = icmp ult i64 %171, %bitcast63, !dbg !368 %173 = xor i1 %172, true, !dbg !364 br i1 %173, label %L267, label %L240, !dbg !364 L240: ; preds = %L235 br label %L241, !dbg !364 L241: ; preds = %L240, %L233 %ifelse_cond = xor i1 %154, true, !dbg !369 %174 = select i1 %ifelse_cond, i64 1, i64 %166, !dbg !369 br i1 false, label %L252, label %L244, !dbg !378 L244: ; preds = %L241 %175 = sub i64 %174, 1, !dbg !380 %176 = addrspacecast ptr addrspace(10) %value_phi55 to ptr addrspace(11), !dbg !383 %value_phi55.size_ptr64 = getelementptr inbounds i8, ptr addrspace(11) %176, i32 16, !dbg !383 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %value_phi55.size65, ptr addrspace(11) align 8 %value_phi55.size_ptr64, i64 8, i1 false), !dbg !383, !tbaa !71, !alias.scope !72, !noalias !73 %bitcast66 = load i64, ptr %value_phi55.size65, align 8, !dbg !380, !tbaa !80, !alias.scope !82, !noalias !83 %177 = icmp ult i64 %175, %bitcast66, !dbg !380 %178 = xor i1 %177, true, !dbg !382 br i1 %178, label %L270, label %L251, !dbg !382 L251: ; preds = %L244 br label %L252, !dbg !382 L252: ; preds = %L251, %L241 %179 = addrspacecast ptr addrspace(10) %value_phi55 to ptr addrspace(11), !dbg !385 %180 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %179, i32 0, i32 0, !dbg !385 %memoryref_data67 = load ptr, ptr addrspace(11) %180, align 8, !dbg !385, !tbaa !221, !alias.scope !224, !noalias !225 %181 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %179, i32 0, i32 1, !dbg !385 %memoryref_mem85 = load ptr addrspace(10), ptr addrspace(11) %181, align 8, !dbg !385, !tbaa !221, !alias.scope !224, !noalias !225, !dereferenceable_or_null !101, !align !59 %182 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data67, 0, !dbg !385 %value_phi55.ref = insertvalue { ptr, ptr addrspace(10) } %182, ptr addrspace(10) %memoryref_mem85, 1, !dbg !385 %memoryref_offset = sub i64 %174, 1, !dbg !385 %183 = addrspacecast ptr addrspace(10) %memoryref_mem85 to ptr addrspace(11), !dbg !385 %184 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %183, i32 0, i32 0, !dbg !385 %memory_len69 = load i64, ptr addrspace(11) %184, align 8, !dbg !385, !tbaa !229, !range !231, !alias.scope !224, !noalias !225 %185 = add nuw i64 %memory_len69, %memory_len69, !dbg !385 %186 = add i64 %memoryref_offset, %memory_len69, !dbg !385 %memoryref_ovflw70 = icmp uge i64 %186, %185, !dbg !385 %memoryref_byteoffset = mul i64 %memoryref_offset, 8, !dbg !385 %memoryref_data_byteoffset71 = getelementptr i8, ptr %memoryref_data67, i64 %memoryref_byteoffset, !dbg !385 %187 = addrspacecast ptr addrspace(10) %memoryref_mem85 to ptr addrspace(11), !dbg !385 %188 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %187, i32 0, i32 0, !dbg !385 %memory_len72 = load i64, ptr addrspace(11) %188, align 8, !dbg !385, !tbaa !229, !range !231, !alias.scope !224, !noalias !225 %189 = addrspacecast ptr addrspace(10) %memoryref_mem85 to ptr addrspace(11), !dbg !385 %memory_data_ptr73 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %189, i32 0, i32 1, !dbg !385 %memory_data74 = load ptr, ptr addrspace(11) %memory_data_ptr73, align 8, !dbg !385, !tbaa !232, !alias.scope !224, !noalias !225, !nonnull !0 %190 = ptrtoint ptr %memory_data74 to i64, !dbg !385 %191 = ptrtoint ptr %memoryref_data_byteoffset71 to i64, !dbg !385 %192 = sub i64 %191, %190, !dbg !385 %memoryref_bytelen75 = mul nuw nsw i64 %memory_len72, 8, !dbg !385 %memoryref_isinbounds76 = icmp ult i64 %192, %memoryref_bytelen75, !dbg !385 %193 = xor i1 %memoryref_ovflw70, true, !dbg !385 %"memoryref_isinbounds¬ovflw77" = and i1 %193, %memoryref_isinbounds76, !dbg !385 br i1 %"memoryref_isinbounds¬ovflw77", label %idxend83, label %oob78, !dbg !385 L257: ; preds = %load %194 = sub i64 %166, 1, !dbg !386 %195 = addrspacecast ptr addrspace(10) %.F_H to ptr addrspace(11), !dbg !391 %.F_H.size_ptr89 = getelementptr inbounds i8, ptr addrspace(11) %195, i32 16, !dbg !391 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F_H.size90, ptr addrspace(11) align 8 %.F_H.size_ptr89, i64 8, i1 false), !dbg !391, !tbaa !71, !alias.scope !72, !noalias !73 %bitcast91 = load i64, ptr %.F_H.size90, align 8, !dbg !386, !tbaa !80, !alias.scope !82, !noalias !83 %196 = icmp ult i64 %194, %bitcast91, !dbg !386 %197 = xor i1 %196, true, !dbg !387 br i1 %197, label %L273, label %L264, !dbg !387 L264: ; preds = %L257 br label %L276, !dbg !387 L265: ; preds = %L226 %198 = addrspacecast ptr %"new::OneTo" to ptr addrspace(11), !dbg !352 %199 = addrspacecast ptr %"new::Tuple61" to ptr addrspace(11), !dbg !352 call void @julia_throw_boundserror_33998(ptr addrspace(11) nocapture readonly %198, ptr addrspace(11) nocapture readonly %199) #34, !dbg !352 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____3), !dbg !352 unreachable, !dbg !352 L267: ; preds = %L235 %200 = getelementptr inbounds i8, ptr %"new::Tuple124", i32 0, !dbg !364 store i64 %166, ptr %200, align 8, !dbg !364, !tbaa !80, !alias.scope !82, !noalias !83 %201 = getelementptr inbounds i8, ptr %0, i32 0, !dbg !364 store ptr addrspace(10) %value_phi55, ptr %201, align 8, !dbg !364 %202 = addrspacecast ptr %"new::Broadcasted" to ptr addrspace(11), !dbg !364 %203 = addrspacecast ptr %"new::Tuple124" to ptr addrspace(11), !dbg !364 call void @julia_throw_boundserror_33995(ptr addrspace(11) nocapture readonly %202, ptr nocapture readonly %0, ptr addrspace(11) nocapture readonly %203) #34, !dbg !364 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____3), !dbg !364 unreachable, !dbg !364 L270: ; preds = %L244 %204 = getelementptr inbounds i8, ptr %"new::Tuple121", i32 0, !dbg !382 store i64 %174, ptr %204, align 8, !dbg !382, !tbaa !80, !alias.scope !82, !noalias !83 %205 = addrspacecast ptr %"new::Tuple121" to ptr addrspace(11), !dbg !382 call void @julia_throw_boundserror_33920(ptr addrspace(10) %value_phi55, ptr addrspace(11) nocapture readonly %205) #34, !dbg !382 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____3), !dbg !382 unreachable, !dbg !382 L273: ; preds = %L257 %206 = getelementptr inbounds i8, ptr %"new::Tuple118", i32 0, !dbg !387 store i64 %166, ptr %206, align 8, !dbg !387, !tbaa !80, !alias.scope !82, !noalias !83 %207 = addrspacecast ptr %"new::Tuple118" to ptr addrspace(11), !dbg !387 call void @julia_throw_boundserror_33920(ptr addrspace(10) %.F_H, ptr addrspace(11) nocapture readonly %207) #34, !dbg !387 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____3), !dbg !387 unreachable, !dbg !387 L276: ; preds = %L264, %load %208 = addrspacecast ptr addrspace(10) %.F_H to ptr addrspace(11), !dbg !393 %209 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %208, i32 0, i32 0, !dbg !393 %memoryref_data93 = load ptr, ptr addrspace(11) %209, align 8, !dbg !393, !tbaa !221, !alias.scope !224, !noalias !225 %210 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %208, i32 0, i32 1, !dbg !393 %memoryref_mem113 = load ptr addrspace(10), ptr addrspace(11) %210, align 8, !dbg !393, !tbaa !221, !alias.scope !224, !noalias !225, !dereferenceable_or_null !101, !align !59 %211 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data93, 0, !dbg !393 %.F_H.ref92 = insertvalue { ptr, ptr addrspace(10) } %211, ptr addrspace(10) %memoryref_mem113, 1, !dbg !393 %memoryref_offset95 = sub i64 %166, 1, !dbg !394 %212 = addrspacecast ptr addrspace(10) %memoryref_mem113 to ptr addrspace(11), !dbg !394 %213 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %212, i32 0, i32 0, !dbg !394 %memory_len96 = load i64, ptr addrspace(11) %213, align 8, !dbg !394, !tbaa !229, !range !231, !alias.scope !224, !noalias !225 %214 = add nuw i64 %memory_len96, %memory_len96, !dbg !394 %215 = add i64 %memoryref_offset95, %memory_len96, !dbg !394 %memoryref_ovflw97 = icmp uge i64 %215, %214, !dbg !394 %memoryref_byteoffset98 = mul i64 %memoryref_offset95, 8, !dbg !394 %memoryref_data_byteoffset99 = getelementptr i8, ptr %memoryref_data93, i64 %memoryref_byteoffset98, !dbg !394 %216 = addrspacecast ptr addrspace(10) %memoryref_mem113 to ptr addrspace(11), !dbg !394 %217 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %216, i32 0, i32 0, !dbg !394 %memory_len100 = load i64, ptr addrspace(11) %217, align 8, !dbg !394, !tbaa !229, !range !231, !alias.scope !224, !noalias !225 %218 = addrspacecast ptr addrspace(10) %memoryref_mem113 to ptr addrspace(11), !dbg !394 %memory_data_ptr101 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %218, i32 0, i32 1, !dbg !394 %memory_data102 = load ptr, ptr addrspace(11) %memory_data_ptr101, align 8, !dbg !394, !tbaa !232, !alias.scope !224, !noalias !225, !nonnull !0 %219 = ptrtoint ptr %memory_data102 to i64, !dbg !394 %220 = ptrtoint ptr %memoryref_data_byteoffset99 to i64, !dbg !394 %221 = sub i64 %220, %219, !dbg !394 %memoryref_bytelen103 = mul nuw nsw i64 %memory_len100, 8, !dbg !394 %memoryref_isinbounds104 = icmp ult i64 %221, %memoryref_bytelen103, !dbg !394 %222 = xor i1 %memoryref_ovflw97, true, !dbg !394 %"memoryref_isinbounds¬ovflw105" = and i1 %222, %memoryref_isinbounds104, !dbg !394 br i1 %"memoryref_isinbounds¬ovflw105", label %idxend111, label %oob106, !dbg !394 L282: ; preds = %L220, %L217 br label %L283, !dbg !334 L283: ; preds = %L282 br label %L286, !dbg !395 L284: ; preds = %L38 %223 = addrspacecast ptr %"new::Tuple4" to ptr addrspace(11), !dbg !120 %224 = addrspacecast ptr %"new::Tuple" to ptr addrspace(11), !dbg !120 call void @julia_throwdm_33990(ptr addrspace(11) nocapture readonly %223, ptr addrspace(11) nocapture readonly %224) #34, !dbg !120 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____3), !dbg !120 unreachable, !dbg !120 L286: ; preds = %L283, %L136 br label %L287, !dbg !255 L287: ; preds = %L286 br label %L288, !dbg !67 L288: ; preds = %L287 br label %L289, !dbg !70 L289: ; preds = %L288 call void @julia_advance_33947(ptr addrspace(10) %3), !dbg !396 %225 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !397 %.t_ptr = getelementptr inbounds i8, ptr addrspace(11) %225, i32 16, !dbg !397 %.t = load double, ptr addrspace(11) %.t_ptr, align 8, !dbg !397, !tbaa !52, !alias.scope !56, !noalias !57 %226 = getelementptr inbounds i8, ptr addrspace(11) %"#self#::#muoptcontrol##1#muoptcontrol##2", i32 8, !dbg !398 %.unbox = load double, ptr addrspace(11) %226, align 8, !dbg !399, !tbaa !39, !alias.scope !41, !noalias !42 %227 = fadd double %.t, %.unbox, !dbg !399 %228 = addrspacecast ptr addrspace(10) %3 to ptr addrspace(11), !dbg !402 %.t_ptr13 = getelementptr inbounds i8, ptr addrspace(11) %228, i32 16, !dbg !402 store double %227, ptr addrspace(11) %.t_ptr13, align 8, !dbg !402, !tbaa !52, !alias.scope !56, !noalias !57 ret double %227, !dbg !402 oob: ; preds = %L107 %"+Core.GenericMemoryRef#33918" = load ptr, ptr @_Core_GenericMemoryRef_33918, align 8, !dbg !226, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0, !dereferenceable !100, !align !101 %GenericMemoryRef = ptrtoint ptr %"+Core.GenericMemoryRef#33918" to i64, !dbg !226 %229 = inttoptr i64 %GenericMemoryRef to ptr, !dbg !226 %current_task29 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !226 %230 = addrspacecast ptr %229 to ptr addrspace(10), !dbg !226 %"box::GenericMemoryRef" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task29, i64 16, ptr addrspace(10) %230) #33, !dbg !226 %231 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef" to ptr addrspace(11), !dbg !226 store { ptr, ptr addrspace(10) } %.F_H.ref, ptr addrspace(11) %231, align 8, !dbg !226, !tbaa !102, !alias.scope !56, !noalias !57 %232 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef" to ptr addrspace(12), !dbg !226 call void @ijl_bounds_error_int(ptr addrspace(12) %232, i64 1), !dbg !226 unreachable, !dbg !226 idxend: ; preds = %L107 %233 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset, 0, !dbg !226 %memory_ref = insertvalue { ptr, ptr addrspace(10) } %233, ptr addrspace(10) %memoryref_mem, 1, !dbg !226 %234 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !220 %235 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %234, i32 0, i32 0, !dbg !220 %memoryref_data30 = load ptr, ptr addrspace(11) %235, align 8, !dbg !220, !tbaa !221, !alias.scope !224, !noalias !225 %236 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %234, i32 0, i32 1, !dbg !220 %memoryref_mem31 = load ptr addrspace(10), ptr addrspace(11) %236, align 8, !dbg !220, !tbaa !221, !alias.scope !224, !noalias !225, !dereferenceable_or_null !101, !align !59 %237 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data30, 0, !dbg !220 %.F.ref = insertvalue { ptr, ptr addrspace(10) } %237, ptr addrspace(10) %memoryref_mem31, 1, !dbg !220 %238 = addrspacecast ptr addrspace(10) %memoryref_mem31 to ptr addrspace(11), !dbg !226 %239 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %238, i32 0, i32 0, !dbg !226 %memory_len32 = load i64, ptr addrspace(11) %239, align 8, !dbg !226, !tbaa !229, !range !231, !alias.scope !224, !noalias !225 %240 = add nuw i64 %memory_len32, %memory_len32, !dbg !226 %241 = add i64 0, %memory_len32, !dbg !226 %memoryref_ovflw33 = icmp uge i64 %241, %240, !dbg !226 %memoryref_data_byteoffset34 = getelementptr i8, ptr %memoryref_data30, i64 0, !dbg !226 %242 = addrspacecast ptr addrspace(10) %memoryref_mem31 to ptr addrspace(11), !dbg !226 %243 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %242, i32 0, i32 0, !dbg !226 %memory_len35 = load i64, ptr addrspace(11) %243, align 8, !dbg !226, !tbaa !229, !range !231, !alias.scope !224, !noalias !225 %244 = addrspacecast ptr addrspace(10) %memoryref_mem31 to ptr addrspace(11), !dbg !226 %memory_data_ptr36 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %244, i32 0, i32 1, !dbg !226 %memory_data37 = load ptr, ptr addrspace(11) %memory_data_ptr36, align 8, !dbg !226, !tbaa !232, !alias.scope !224, !noalias !225, !nonnull !0 %245 = ptrtoint ptr %memory_data37 to i64, !dbg !226 %246 = ptrtoint ptr %memoryref_data_byteoffset34 to i64, !dbg !226 %247 = sub i64 %246, %245, !dbg !226 %memoryref_bytelen38 = mul nuw nsw i64 %memory_len35, 8, !dbg !226 %memoryref_isinbounds39 = icmp ult i64 %247, %memoryref_bytelen38, !dbg !226 %248 = xor i1 %memoryref_ovflw33, true, !dbg !226 %"memoryref_isinbounds¬ovflw40" = and i1 %248, %memoryref_isinbounds39, !dbg !226 br i1 %"memoryref_isinbounds¬ovflw40", label %idxend46, label %oob41, !dbg !226 oob41: ; preds = %idxend %"+Core.GenericMemoryRef#3391842" = load ptr, ptr @_Core_GenericMemoryRef_33918, align 8, !dbg !226, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0, !dereferenceable !100, !align !101 %GenericMemoryRef43 = ptrtoint ptr %"+Core.GenericMemoryRef#3391842" to i64, !dbg !226 %249 = inttoptr i64 %GenericMemoryRef43 to ptr, !dbg !226 %current_task44 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !226 %250 = addrspacecast ptr %249 to ptr addrspace(10), !dbg !226 %"box::GenericMemoryRef45" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task44, i64 16, ptr addrspace(10) %250) #33, !dbg !226 %251 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef45" to ptr addrspace(11), !dbg !226 store { ptr, ptr addrspace(10) } %.F.ref, ptr addrspace(11) %251, align 8, !dbg !226, !tbaa !102, !alias.scope !56, !noalias !57 %252 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef45" to ptr addrspace(12), !dbg !226 call void @ijl_bounds_error_int(ptr addrspace(12) %252, i64 1), !dbg !226 unreachable, !dbg !226 idxend46: ; preds = %idxend %253 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset34, 0, !dbg !226 %memory_ref47 = insertvalue { ptr, ptr addrspace(10) } %253, ptr addrspace(10) %memoryref_mem31, 1, !dbg !226 %254 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %memoryref_mem), !dbg !404 %255 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %memoryref_mem31), !dbg !405 %memory_ref.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref, 0, !dbg !406 %memory_ref47.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref47, 0, !dbg !406 %.F.size12.unbox48 = load i64, ptr %.F.size12, align 8, !dbg !412, !tbaa !80, !alias.scope !82, !noalias !83 %256 = mul i64 %.F.size12.unbox48, 8, !dbg !412 %257 = lshr i64 %256, 63, !dbg !414 %258 = select i1 false, i64 0, i64 %257, !dbg !414 %259 = trunc i64 %258 to i8, !dbg !414 %260 = icmp eq i8 %259, 1, !dbg !414 %261 = xor i1 %260, true, !dbg !234 br i1 %261, label %L126, label %L122, !dbg !234 after_error: ; No predecessors! call void @llvm.trap(), !dbg !234 unreachable, !dbg !234 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !234 unreachable, !dbg !234 after_error49: ; No predecessors! call void @llvm.trap(), !dbg !204 unreachable, !dbg !204 after_noret50: ; No predecessors! call void @llvm.trap(), !dbg !204 unreachable, !dbg !204 after_error51: ; No predecessors! call void @llvm.trap(), !dbg !169 unreachable, !dbg !169 after_noret52: ; No predecessors! call void @llvm.trap(), !dbg !169 unreachable, !dbg !169 after_error53: ; No predecessors! call void @llvm.trap(), !dbg !153 unreachable, !dbg !153 after_noret54: ; No predecessors! call void @llvm.trap(), !dbg !153 unreachable, !dbg !153 oob78: ; preds = %L252 %"+Core.GenericMemoryRef#3391879" = load ptr, ptr @_Core_GenericMemoryRef_33918, align 8, !dbg !385, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0, !dereferenceable !100, !align !101 %GenericMemoryRef80 = ptrtoint ptr %"+Core.GenericMemoryRef#3391879" to i64, !dbg !385 %262 = inttoptr i64 %GenericMemoryRef80 to ptr, !dbg !385 %current_task81 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !385 %263 = addrspacecast ptr %262 to ptr addrspace(10), !dbg !385 %"box::GenericMemoryRef82" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task81, i64 16, ptr addrspace(10) %263) #33, !dbg !385 %264 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef82" to ptr addrspace(11), !dbg !385 store { ptr, ptr addrspace(10) } %value_phi55.ref, ptr addrspace(11) %264, align 8, !dbg !385, !tbaa !102, !alias.scope !56, !noalias !57 %265 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef82" to ptr addrspace(12), !dbg !385 call void @ijl_bounds_error_int(ptr addrspace(12) %265, i64 %174), !dbg !385 unreachable, !dbg !385 idxend83: ; preds = %L252 %266 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset71, 0, !dbg !385 %memory_ref84 = insertvalue { ptr, ptr addrspace(10) } %266, ptr addrspace(10) %memoryref_mem85, 1, !dbg !385 %267 = addrspacecast ptr addrspace(10) %memoryref_mem85 to ptr addrspace(11), !dbg !385 %268 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %267, i32 0, i32 0, !dbg !385 %memory_len86 = load i64, ptr addrspace(11) %268, align 8, !dbg !385, !tbaa !229, !range !231, !alias.scope !224, !noalias !225 %269 = icmp eq i64 %memory_len86, 0, !dbg !385 br i1 %269, label %oob87, label %load, !dbg !385 oob87: ; preds = %idxend83 %270 = addrspacecast ptr addrspace(10) %memoryref_mem85 to ptr addrspace(12), !dbg !385 call void @ijl_bounds_error_int(ptr addrspace(12) %270, i64 1), !dbg !385 unreachable, !dbg !385 load: ; preds = %idxend83 %271 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem85, ptr %memoryref_data67), !dbg !385 %memoryref_data88 = getelementptr inbounds i8, ptr addrspace(13) %271, i64 %memoryref_byteoffset, !dbg !385 %272 = load double, ptr addrspace(13) %memoryref_data88, align 8, !dbg !385, !tbaa !416, !alias.scope !56, !noalias !57 br i1 false, label %L276, label %L257, !dbg !387 oob106: ; preds = %L276 %"+Core.GenericMemoryRef#33918107" = load ptr, ptr @_Core_GenericMemoryRef_33918, align 8, !dbg !394, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0, !dereferenceable !100, !align !101 %GenericMemoryRef108 = ptrtoint ptr %"+Core.GenericMemoryRef#33918107" to i64, !dbg !394 %273 = inttoptr i64 %GenericMemoryRef108 to ptr, !dbg !394 %current_task109 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !394 %274 = addrspacecast ptr %273 to ptr addrspace(10), !dbg !394 %"box::GenericMemoryRef110" = call noalias nonnull align 8 dereferenceable(16) ptr addrspace(10) @julia.gc_alloc_obj(ptr %current_task109, i64 16, ptr addrspace(10) %274) #33, !dbg !394 %275 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef110" to ptr addrspace(11), !dbg !394 store { ptr, ptr addrspace(10) } %.F_H.ref92, ptr addrspace(11) %275, align 8, !dbg !394, !tbaa !102, !alias.scope !56, !noalias !57 %276 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef110" to ptr addrspace(12), !dbg !394 call void @ijl_bounds_error_int(ptr addrspace(12) %276, i64 %166), !dbg !394 unreachable, !dbg !394 idxend111: ; preds = %L276 %277 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset99, 0, !dbg !394 %memory_ref112 = insertvalue { ptr, ptr addrspace(10) } %277, ptr addrspace(10) %memoryref_mem113, 1, !dbg !394 %278 = addrspacecast ptr addrspace(10) %memoryref_mem113 to ptr addrspace(11), !dbg !394 %279 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %278, i32 0, i32 0, !dbg !394 %memory_len114 = load i64, ptr addrspace(11) %279, align 8, !dbg !394, !tbaa !229, !range !231, !alias.scope !224, !noalias !225 %280 = icmp eq i64 %memory_len114, 0, !dbg !394 br i1 %280, label %oob115, label %load116, !dbg !394 oob115: ; preds = %idxend111 %281 = addrspacecast ptr addrspace(10) %memoryref_mem113 to ptr addrspace(12), !dbg !394 call void @ijl_bounds_error_int(ptr addrspace(12) %281, i64 1), !dbg !394 unreachable, !dbg !394 load116: ; preds = %idxend111 %282 = call ptr addrspace(13) @julia.gc_loaded(ptr addrspace(10) %memoryref_mem113, ptr %memoryref_data93), !dbg !394 %memoryref_data117 = getelementptr inbounds i8, ptr addrspace(13) %282, i64 %memoryref_byteoffset98, !dbg !394 store double %272, ptr addrspace(13) %memoryref_data117, align 8, !dbg !394, !tbaa !416, !alias.scope !56, !noalias !57 %283 = add i64 %value_phi59, 1, !dbg !418 br label %L220, !dbg !420, !llvm.loop !421 after_error119: ; No predecessors! call void @llvm.trap(), !dbg !387 unreachable, !dbg !387 after_noret120: ; No predecessors! call void @llvm.trap(), !dbg !387 unreachable, !dbg !387 after_error122: ; No predecessors! call void @llvm.trap(), !dbg !382 unreachable, !dbg !382 after_noret123: ; No predecessors! call void @llvm.trap(), !dbg !382 unreachable, !dbg !382 after_error125: ; No predecessors! call void @llvm.trap(), !dbg !364 unreachable, !dbg !364 after_noret126: ; No predecessors! call void @llvm.trap(), !dbg !364 unreachable, !dbg !364 after_error127: ; No predecessors! call void @llvm.trap(), !dbg !352 unreachable, !dbg !352 after_noret128: ; No predecessors! call void @llvm.trap(), !dbg !352 unreachable, !dbg !352 emptymem: ; preds = %L166 %"jl_global#33940" = load ptr, ptr @jl_global_33940, align 8, !dbg !295, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0, !dereferenceable !101, !align !59 %284 = addrspacecast ptr %"jl_global#33940" to ptr addrspace(10), !dbg !295 br label %retval, !dbg !295 nonemptymem: ; preds = %L166 %"+Core.GenericMemory#33941" = load ptr, ptr @_Core_GenericMemory_33941, align 8, !dbg !295, !tbaa !39, !alias.scope !41, !noalias !42, !nonnull !0, !dereferenceable !100, !align !101 %285 = call { i64, i1 } @llvm.smul.with.overflow.i64(i64 %.F.size141.unbox, i64 8), !dbg !295 %286 = extractvalue { i64, i1 } %285, 0, !dbg !295 %287 = extractvalue { i64, i1 } %285, 1, !dbg !295 %288 = icmp slt i64 %.F.size141.unbox, 0, !dbg !295 %289 = or i1 %287, %288, !dbg !295 %290 = icmp slt i64 9223372036854775806, %286, !dbg !295 %291 = or i1 %289, %290, !dbg !295 %292 = xor i1 %291, true, !dbg !295 br i1 %292, label %pass, label %fail, !dbg !295 fail: ; preds = %nonemptymem call void @jl_argument_error(ptr @_j_str_invalid_GenericMemory_siz____5), !dbg !295 unreachable, !dbg !295 pass: ; preds = %nonemptymem %current_task142 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !295 %ptls_field143 = getelementptr inbounds i8, ptr %current_task142, i32 168, !dbg !295 %ptls_load144 = load ptr, ptr %ptls_field143, align 8, !dbg !295, !tbaa !27 %"Memory{Float64}[]" = call noalias nonnull align 16 ptr addrspace(10) @jl_alloc_genericmemory_unchecked(ptr %ptls_load144, i64 %286, ptr %"+Core.GenericMemory#33941") #36, !dbg !295 %293 = addrspacecast ptr addrspace(10) %"Memory{Float64}[]" to ptr addrspace(11), !dbg !295 %294 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %293, i32 0, i32 0, !dbg !295 store i64 %.F.size141.unbox, ptr addrspace(11) %294, align 8, !dbg !295, !tbaa !229, !alias.scope !224, !noalias !225 br label %retval, !dbg !295 retval: ; preds = %pass, %emptymem %295 = phi ptr addrspace(10) [ %284, %emptymem ], [ %"Memory{Float64}[]", %pass ], !dbg !295 %296 = addrspacecast ptr addrspace(10) %295 to ptr addrspace(11), !dbg !422 %memory_data_ptr145 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %296, i32 0, i32 1, !dbg !422 %memory_data146 = load ptr, ptr addrspace(11) %memory_data_ptr145, align 8, !dbg !422, !tbaa !232, !alias.scope !224, !noalias !225, !nonnull !0 %297 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memory_data146, 0, !dbg !422 %memory_ref147 = insertvalue { ptr, ptr addrspace(10) } %297, ptr addrspace(10) %295, 1, !dbg !422 %298 = addrspacecast ptr addrspace(10) %.F to ptr addrspace(11), !dbg !423 %.F.size_ptr148 = getelementptr inbounds i8, ptr addrspace(11) %298, i32 16, !dbg !423 call void @llvm.memcpy.p0.p11.i64(ptr align 8 %.F.size149, ptr addrspace(11) align 8 %.F.size_ptr148, i64 8, i1 false), !dbg !423, !tbaa !71, !alias.scope !72, !noalias !73 %299 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %295), !dbg !425 %300 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %134), !dbg !426 %memory_ref147.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref147, 0, !dbg !427 %.F.ref139.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %.F.ref139, 0, !dbg !427 %.F.size149.unbox = load i64, ptr %.F.size149, align 8, !dbg !429, !tbaa !80, !alias.scope !82, !noalias !83 %301 = mul i64 %.F.size149.unbox, 8, !dbg !429 %302 = lshr i64 %301, 63, !dbg !430 %303 = select i1 false, i64 0, i64 %302, !dbg !430 %304 = trunc i64 %303 to i8, !dbg !430 %305 = icmp eq i8 %304, 1, !dbg !430 %306 = xor i1 %305, true, !dbg !297 br i1 %306, label %L184, label %L182, !dbg !297 after_error154: ; No predecessors! call void @llvm.trap(), !dbg !297 unreachable, !dbg !297 after_noret155: ; No predecessors! call void @llvm.trap(), !dbg !297 unreachable, !dbg !297 after_error163: ; No predecessors! call void @llvm.trap(), !dbg !120 unreachable, !dbg !120 after_noret164: ; No predecessors! call void @llvm.trap(), !dbg !120 unreachable, !dbg !120 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !97 unreachable, !dbg !97 after_noret166: ; No predecessors! call void @llvm.trap(), !dbg !97 unreachable, !dbg !97 } expectLen=2 swiftself=false sret=nothing returnRoots=nothing mi.specTypes.parameters=svec(Main.var"#muoptcontrol##1#muoptcontrol##2"{Main.Model, Float64}, Int64) retRemoved=false parmsRemoved=UInt64[] Stacktrace: [1] julia_activity_rule(f::LLVM.Function) @ Enzyme.Compiler ~/.julia/packages/Enzyme/EPXUy/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/EPXUy/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/EPXUy/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/EPXUy/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/EPXUy/src/compiler.jl:5960 [8] _thunk @ ~/.julia/packages/Enzyme/EPXUy/src/compiler.jl:5958 [inlined] [9] cached_compilation @ ~/.julia/packages/Enzyme/EPXUy/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/EPXUy/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/EPXUy/src/compiler.jl:6275 [12] autodiff @ ~/.julia/packages/Enzyme/EPXUy/src/Enzyme.jl:502 [inlined] [13] autodiff @ ~/.julia/packages/Enzyme/EPXUy/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_34342(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") #8 !dbg !41 { 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#34308" = load ptr, ptr @_Core_BoundsError_34308, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %3 = addrspacecast ptr %"-Core.BoundsError#34308" to ptr addrspace(10), !dbg !42 %"+Core.BoundsError#34309" = load ptr, ptr @_Core_BoundsError_34309, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %4 = addrspacecast ptr %"+Core.BoundsError#34309" to ptr addrspace(10), !dbg !42 %"+Main.Base.Broadcast.Broadcasted#34344" = load ptr, ptr @_Main_Base_Broadcast_Broadcasted_34344, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Broadcasted = ptrtoint ptr %"+Main.Base.Broadcast.Broadcasted#34344" to i64, !dbg !42 %5 = inttoptr i64 %Broadcasted to ptr, !dbg !42 %current_task1 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !42 %6 = addrspacecast ptr %5 to ptr addrspace(10), !dbg !42 %"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 !42 %7 = addrspacecast ptr addrspace(10) %"box::Broadcasted" to ptr addrspace(11), !dbg !42 %8 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 0, !dbg !42 store atomic ptr addrspace(10) %2, ptr addrspace(11) %8 unordered, align 8, !dbg !42, !tbaa !43, !alias.scope !47, !noalias !48 %9 = getelementptr inbounds i8, ptr addrspace(11) %"A::Broadcasted", i32 8, !dbg !42 %10 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 8, !dbg !42 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %10, ptr addrspace(11) align 8 %9, i64 24, i1 false), !dbg !42, !tbaa !38, !alias.scope !39, !noalias !40 %"+Core.Tuple#34310" = load ptr, ptr @_Core_Tuple_34310, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Tuple = ptrtoint ptr %"+Core.Tuple#34310" to i64, !dbg !42 %11 = inttoptr i64 %Tuple to ptr, !dbg !42 %current_task2 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !42 %12 = addrspacecast ptr %11 to ptr addrspace(10), !dbg !42 %"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 !42 %13 = addrspacecast ptr addrspace(10) %"box::Tuple" to ptr addrspace(11), !dbg !42 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 !42, !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 !42 %15 = addrspacecast ptr addrspace(10) %14 to ptr addrspace(12), !dbg !42 call void @ijl_throw(ptr addrspace(12) %15), !dbg !42 unreachable, !dbg !42 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !42 unreachable, !dbg !42 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !42 unreachable, !dbg !42 } 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/EPXUy/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/EPXUy/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/EPXUy/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/EPXUy/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/EPXUy/src/compiler.jl:5960 [8] _thunk @ ~/.julia/packages/Enzyme/EPXUy/src/compiler.jl:5958 [inlined] [9] cached_compilation @ ~/.julia/packages/Enzyme/EPXUy/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/EPXUy/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/EPXUy/src/compiler.jl:6275 [12] autodiff @ ~/.julia/packages/Enzyme/EPXUy/src/Enzyme.jl:502 [inlined] [13] autodiff @ ~/.julia/packages/Enzyme/EPXUy/src/Enzyme.jl:562 [inlined] [14] autodiff @ ~/.julia/packages/Enzyme/EPXUy/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_34551(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") #8 !dbg !41 { 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#34517" = load ptr, ptr @_Core_BoundsError_34517, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %3 = addrspacecast ptr %"-Core.BoundsError#34517" to ptr addrspace(10), !dbg !42 %"+Core.BoundsError#34518" = load ptr, ptr @_Core_BoundsError_34518, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %4 = addrspacecast ptr %"+Core.BoundsError#34518" to ptr addrspace(10), !dbg !42 %"+Main.Base.Broadcast.Broadcasted#34553" = load ptr, ptr @_Main_Base_Broadcast_Broadcasted_34553, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Broadcasted = ptrtoint ptr %"+Main.Base.Broadcast.Broadcasted#34553" to i64, !dbg !42 %5 = inttoptr i64 %Broadcasted to ptr, !dbg !42 %current_task1 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !42 %6 = addrspacecast ptr %5 to ptr addrspace(10), !dbg !42 %"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 !42 %7 = addrspacecast ptr addrspace(10) %"box::Broadcasted" to ptr addrspace(11), !dbg !42 %8 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 0, !dbg !42 store atomic ptr addrspace(10) %2, ptr addrspace(11) %8 unordered, align 8, !dbg !42, !tbaa !43, !alias.scope !47, !noalias !48 %9 = getelementptr inbounds i8, ptr addrspace(11) %"A::Broadcasted", i32 8, !dbg !42 %10 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 8, !dbg !42 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %10, ptr addrspace(11) align 8 %9, i64 24, i1 false), !dbg !42, !tbaa !38, !alias.scope !39, !noalias !40 %"+Core.Tuple#34519" = load ptr, ptr @_Core_Tuple_34519, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Tuple = ptrtoint ptr %"+Core.Tuple#34519" to i64, !dbg !42 %11 = inttoptr i64 %Tuple to ptr, !dbg !42 %current_task2 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !42 %12 = addrspacecast ptr %11 to ptr addrspace(10), !dbg !42 %"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 !42 %13 = addrspacecast ptr addrspace(10) %"box::Tuple" to ptr addrspace(11), !dbg !42 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 !42, !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 !42 %15 = addrspacecast ptr addrspace(10) %14 to ptr addrspace(12), !dbg !42 call void @ijl_throw(ptr addrspace(12) %15), !dbg !42 unreachable, !dbg !42 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !42 unreachable, !dbg !42 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !42 unreachable, !dbg !42 } 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/EPXUy/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/EPXUy/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/EPXUy/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/EPXUy/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/EPXUy/src/compiler.jl:5960 [8] _thunk @ ~/.julia/packages/Enzyme/EPXUy/src/compiler.jl:5958 [inlined] [9] cached_compilation @ ~/.julia/packages/Enzyme/EPXUy/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/EPXUy/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/EPXUy/src/compiler.jl:6275 [12] autodiff @ ~/.julia/packages/Enzyme/EPXUy/src/Enzyme.jl:502 [inlined] [13] autodiff @ ~/.julia/packages/Enzyme/EPXUy/src/Enzyme.jl:562 [inlined] [14] autodiff @ ~/.julia/packages/Enzyme/EPXUy/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_34764(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") #8 !dbg !41 { 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#34730" = load ptr, ptr @_Core_BoundsError_34730, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %3 = addrspacecast ptr %"-Core.BoundsError#34730" to ptr addrspace(10), !dbg !42 %"+Core.BoundsError#34731" = load ptr, ptr @_Core_BoundsError_34731, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %4 = addrspacecast ptr %"+Core.BoundsError#34731" to ptr addrspace(10), !dbg !42 %"+Main.Base.Broadcast.Broadcasted#34766" = load ptr, ptr @_Main_Base_Broadcast_Broadcasted_34766, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Broadcasted = ptrtoint ptr %"+Main.Base.Broadcast.Broadcasted#34766" to i64, !dbg !42 %5 = inttoptr i64 %Broadcasted to ptr, !dbg !42 %current_task1 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !42 %6 = addrspacecast ptr %5 to ptr addrspace(10), !dbg !42 %"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 !42 %7 = addrspacecast ptr addrspace(10) %"box::Broadcasted" to ptr addrspace(11), !dbg !42 %8 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 0, !dbg !42 store atomic ptr addrspace(10) %2, ptr addrspace(11) %8 unordered, align 8, !dbg !42, !tbaa !43, !alias.scope !47, !noalias !48 %9 = getelementptr inbounds i8, ptr addrspace(11) %"A::Broadcasted", i32 8, !dbg !42 %10 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 8, !dbg !42 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %10, ptr addrspace(11) align 8 %9, i64 24, i1 false), !dbg !42, !tbaa !38, !alias.scope !39, !noalias !40 %"+Core.Tuple#34732" = load ptr, ptr @_Core_Tuple_34732, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Tuple = ptrtoint ptr %"+Core.Tuple#34732" to i64, !dbg !42 %11 = inttoptr i64 %Tuple to ptr, !dbg !42 %current_task2 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !42 %12 = addrspacecast ptr %11 to ptr addrspace(10), !dbg !42 %"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 !42 %13 = addrspacecast ptr addrspace(10) %"box::Tuple" to ptr addrspace(11), !dbg !42 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 !42, !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 !42 %15 = addrspacecast ptr addrspace(10) %14 to ptr addrspace(12), !dbg !42 call void @ijl_throw(ptr addrspace(12) %15), !dbg !42 unreachable, !dbg !42 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !42 unreachable, !dbg !42 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !42 unreachable, !dbg !42 } 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/EPXUy/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/EPXUy/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/EPXUy/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/EPXUy/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/EPXUy/src/compiler.jl:5960 [8] _thunk @ ~/.julia/packages/Enzyme/EPXUy/src/compiler.jl:5958 [inlined] [9] cached_compilation @ ~/.julia/packages/Enzyme/EPXUy/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/EPXUy/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/EPXUy/src/compiler.jl:6275 [12] autodiff @ ~/.julia/packages/Enzyme/EPXUy/src/Enzyme.jl:502 [inlined] [13] autodiff @ ~/.julia/packages/Enzyme/EPXUy/src/Enzyme.jl:562 [inlined] [14] autodiff @ ~/.julia/packages/Enzyme/EPXUy/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_34826(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") #8 !dbg !41 { 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#34792" = load ptr, ptr @_Core_BoundsError_34792, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %3 = addrspacecast ptr %"-Core.BoundsError#34792" to ptr addrspace(10), !dbg !42 %"+Core.BoundsError#34793" = load ptr, ptr @_Core_BoundsError_34793, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %4 = addrspacecast ptr %"+Core.BoundsError#34793" to ptr addrspace(10), !dbg !42 %"+Main.Base.Broadcast.Broadcasted#34828" = load ptr, ptr @_Main_Base_Broadcast_Broadcasted_34828, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Broadcasted = ptrtoint ptr %"+Main.Base.Broadcast.Broadcasted#34828" to i64, !dbg !42 %5 = inttoptr i64 %Broadcasted to ptr, !dbg !42 %current_task1 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !42 %6 = addrspacecast ptr %5 to ptr addrspace(10), !dbg !42 %"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 !42 %7 = addrspacecast ptr addrspace(10) %"box::Broadcasted" to ptr addrspace(11), !dbg !42 %8 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 0, !dbg !42 store atomic ptr addrspace(10) %2, ptr addrspace(11) %8 unordered, align 8, !dbg !42, !tbaa !43, !alias.scope !47, !noalias !48 %9 = getelementptr inbounds i8, ptr addrspace(11) %"A::Broadcasted", i32 8, !dbg !42 %10 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 8, !dbg !42 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %10, ptr addrspace(11) align 8 %9, i64 24, i1 false), !dbg !42, !tbaa !38, !alias.scope !39, !noalias !40 %"+Core.Tuple#34794" = load ptr, ptr @_Core_Tuple_34794, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Tuple = ptrtoint ptr %"+Core.Tuple#34794" to i64, !dbg !42 %11 = inttoptr i64 %Tuple to ptr, !dbg !42 %current_task2 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !42 %12 = addrspacecast ptr %11 to ptr addrspace(10), !dbg !42 %"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 !42 %13 = addrspacecast ptr addrspace(10) %"box::Tuple" to ptr addrspace(11), !dbg !42 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 !42, !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 !42 %15 = addrspacecast ptr addrspace(10) %14 to ptr addrspace(12), !dbg !42 call void @ijl_throw(ptr addrspace(12) %15), !dbg !42 unreachable, !dbg !42 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !42 unreachable, !dbg !42 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !42 unreachable, !dbg !42 } 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/EPXUy/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/EPXUy/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/EPXUy/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/EPXUy/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/EPXUy/src/compiler.jl:5960 [8] _thunk @ ~/.julia/packages/Enzyme/EPXUy/src/compiler.jl:5958 [inlined] [9] cached_compilation @ ~/.julia/packages/Enzyme/EPXUy/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/EPXUy/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/EPXUy/src/compiler.jl:6275 [12] autodiff @ ~/.julia/packages/Enzyme/EPXUy/src/Enzyme.jl:502 [inlined] [13] autodiff @ ~/.julia/packages/Enzyme/EPXUy/src/Enzyme.jl:562 [inlined] [14] autodiff @ ~/.julia/packages/Enzyme/EPXUy/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))) ; Function Attrs: noinline noreturn define internal void @julia_throw_boundserror_35081(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") #8 !dbg !41 { 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#35047" = load ptr, ptr @_Core_BoundsError_35047, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %3 = addrspacecast ptr %"-Core.BoundsError#35047" to ptr addrspace(10), !dbg !42 %"+Core.BoundsError#35048" = load ptr, ptr @_Core_BoundsError_35048, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %4 = addrspacecast ptr %"+Core.BoundsError#35048" to ptr addrspace(10), !dbg !42 %"+Main.Base.Broadcast.Broadcasted#35083" = load ptr, ptr @_Main_Base_Broadcast_Broadcasted_35083, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Broadcasted = ptrtoint ptr %"+Main.Base.Broadcast.Broadcasted#35083" to i64, !dbg !42 %5 = inttoptr i64 %Broadcasted to ptr, !dbg !42 %current_task1 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !42 %6 = addrspacecast ptr %5 to ptr addrspace(10), !dbg !42 %"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 !42 %7 = addrspacecast ptr addrspace(10) %"box::Broadcasted" to ptr addrspace(11), !dbg !42 %8 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 0, !dbg !42 store atomic ptr addrspace(10) %2, ptr addrspace(11) %8 unordered, align 8, !dbg !42, !tbaa !43, !alias.scope !47, !noalias !48 %9 = getelementptr inbounds i8, ptr addrspace(11) %"A::Broadcasted", i32 8, !dbg !42 %10 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 8, !dbg !42 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %10, ptr addrspace(11) align 8 %9, i64 24, i1 false), !dbg !42, !tbaa !38, !alias.scope !39, !noalias !40 %"+Core.Tuple#35049" = load ptr, ptr @_Core_Tuple_35049, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Tuple = ptrtoint ptr %"+Core.Tuple#35049" to i64, !dbg !42 %11 = inttoptr i64 %Tuple to ptr, !dbg !42 %current_task2 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !42 %12 = addrspacecast ptr %11 to ptr addrspace(10), !dbg !42 %"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 !42 %13 = addrspacecast ptr addrspace(10) %"box::Tuple" to ptr addrspace(11), !dbg !42 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 !42, !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 !42 %15 = addrspacecast ptr addrspace(10) %14 to ptr addrspace(12), !dbg !42 call void @ijl_throw(ptr addrspace(12) %15), !dbg !42 unreachable, !dbg !42 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !42 unreachable, !dbg !42 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !42 unreachable, !dbg !42 } 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/EPXUy/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/EPXUy/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/EPXUy/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/EPXUy/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/EPXUy/src/compiler.jl:5960 [8] _thunk @ ~/.julia/packages/Enzyme/EPXUy/src/compiler.jl:5958 [inlined] [9] cached_compilation @ ~/.julia/packages/Enzyme/EPXUy/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/EPXUy/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/EPXUy/src/compiler.jl:6275 [12] autodiff @ ~/.julia/packages/Enzyme/EPXUy/src/Enzyme.jl:502 [inlined] [13] autodiff @ ~/.julia/packages/Enzyme/EPXUy/src/Enzyme.jl:562 [inlined] [14] autodiff @ ~/.julia/packages/Enzyme/EPXUy/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))) ; Function Attrs: noinline noreturn define internal void @julia_throw_boundserror_35143(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") #8 !dbg !41 { 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#35109" = load ptr, ptr @_Core_BoundsError_35109, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %3 = addrspacecast ptr %"-Core.BoundsError#35109" to ptr addrspace(10), !dbg !42 %"+Core.BoundsError#35110" = load ptr, ptr @_Core_BoundsError_35110, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %4 = addrspacecast ptr %"+Core.BoundsError#35110" to ptr addrspace(10), !dbg !42 %"+Main.Base.Broadcast.Broadcasted#35145" = load ptr, ptr @_Main_Base_Broadcast_Broadcasted_35145, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Broadcasted = ptrtoint ptr %"+Main.Base.Broadcast.Broadcasted#35145" to i64, !dbg !42 %5 = inttoptr i64 %Broadcasted to ptr, !dbg !42 %current_task1 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !42 %6 = addrspacecast ptr %5 to ptr addrspace(10), !dbg !42 %"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 !42 %7 = addrspacecast ptr addrspace(10) %"box::Broadcasted" to ptr addrspace(11), !dbg !42 %8 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 0, !dbg !42 store atomic ptr addrspace(10) %2, ptr addrspace(11) %8 unordered, align 8, !dbg !42, !tbaa !43, !alias.scope !47, !noalias !48 %9 = getelementptr inbounds i8, ptr addrspace(11) %"A::Broadcasted", i32 8, !dbg !42 %10 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 8, !dbg !42 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %10, ptr addrspace(11) align 8 %9, i64 24, i1 false), !dbg !42, !tbaa !38, !alias.scope !39, !noalias !40 %"+Core.Tuple#35111" = load ptr, ptr @_Core_Tuple_35111, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Tuple = ptrtoint ptr %"+Core.Tuple#35111" to i64, !dbg !42 %11 = inttoptr i64 %Tuple to ptr, !dbg !42 %current_task2 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !42 %12 = addrspacecast ptr %11 to ptr addrspace(10), !dbg !42 %"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 !42 %13 = addrspacecast ptr addrspace(10) %"box::Tuple" to ptr addrspace(11), !dbg !42 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 !42, !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 !42 %15 = addrspacecast ptr addrspace(10) %14 to ptr addrspace(12), !dbg !42 call void @ijl_throw(ptr addrspace(12) %15), !dbg !42 unreachable, !dbg !42 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !42 unreachable, !dbg !42 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !42 unreachable, !dbg !42 } 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/EPXUy/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/EPXUy/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/EPXUy/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/EPXUy/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/EPXUy/src/compiler.jl:5960 [8] _thunk @ ~/.julia/packages/Enzyme/EPXUy/src/compiler.jl:5958 [inlined] [9] cached_compilation @ ~/.julia/packages/Enzyme/EPXUy/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/EPXUy/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/EPXUy/src/compiler.jl:6275 [12] autodiff @ ~/.julia/packages/Enzyme/EPXUy/src/Enzyme.jl:502 [inlined] [13] autodiff @ ~/.julia/packages/Enzyme/EPXUy/src/Enzyme.jl:562 [inlined] [14] autodiff @ ~/.julia/packages/Enzyme/EPXUy/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_35839(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") #8 !dbg !41 { 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#35805" = load ptr, ptr @_Core_BoundsError_35805, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %3 = addrspacecast ptr %"-Core.BoundsError#35805" to ptr addrspace(10), !dbg !42 %"+Core.BoundsError#35806" = load ptr, ptr @_Core_BoundsError_35806, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %4 = addrspacecast ptr %"+Core.BoundsError#35806" to ptr addrspace(10), !dbg !42 %"+Main.Base.Broadcast.Broadcasted#35841" = load ptr, ptr @_Main_Base_Broadcast_Broadcasted_35841, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Broadcasted = ptrtoint ptr %"+Main.Base.Broadcast.Broadcasted#35841" to i64, !dbg !42 %5 = inttoptr i64 %Broadcasted to ptr, !dbg !42 %current_task1 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !42 %6 = addrspacecast ptr %5 to ptr addrspace(10), !dbg !42 %"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 !42 %7 = addrspacecast ptr addrspace(10) %"box::Broadcasted" to ptr addrspace(11), !dbg !42 %8 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 0, !dbg !42 store atomic ptr addrspace(10) %2, ptr addrspace(11) %8 unordered, align 8, !dbg !42, !tbaa !43, !alias.scope !47, !noalias !48 %9 = getelementptr inbounds i8, ptr addrspace(11) %"A::Broadcasted", i32 8, !dbg !42 %10 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 8, !dbg !42 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %10, ptr addrspace(11) align 8 %9, i64 24, i1 false), !dbg !42, !tbaa !38, !alias.scope !39, !noalias !40 %"+Core.Tuple#35807" = load ptr, ptr @_Core_Tuple_35807, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Tuple = ptrtoint ptr %"+Core.Tuple#35807" to i64, !dbg !42 %11 = inttoptr i64 %Tuple to ptr, !dbg !42 %current_task2 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !42 %12 = addrspacecast ptr %11 to ptr addrspace(10), !dbg !42 %"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 !42 %13 = addrspacecast ptr addrspace(10) %"box::Tuple" to ptr addrspace(11), !dbg !42 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 !42, !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 !42 %15 = addrspacecast ptr addrspace(10) %14 to ptr addrspace(12), !dbg !42 call void @ijl_throw(ptr addrspace(12) %15), !dbg !42 unreachable, !dbg !42 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !42 unreachable, !dbg !42 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !42 unreachable, !dbg !42 } 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/EPXUy/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/EPXUy/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/EPXUy/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/EPXUy/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/EPXUy/src/compiler.jl:5960 [8] _thunk @ ~/.julia/packages/Enzyme/EPXUy/src/compiler.jl:5958 [inlined] [9] cached_compilation @ ~/.julia/packages/Enzyme/EPXUy/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/EPXUy/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/EPXUy/src/compiler.jl:6275 [12] autodiff @ ~/.julia/packages/Enzyme/EPXUy/src/Enzyme.jl:502 [inlined] [13] autodiff @ ~/.julia/packages/Enzyme/EPXUy/src/Enzyme.jl:562 [inlined] [14] autodiff @ ~/.julia/packages/Enzyme/EPXUy/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_35929(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") #8 !dbg !41 { 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#35895" = load ptr, ptr @_Core_BoundsError_35895, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %3 = addrspacecast ptr %"-Core.BoundsError#35895" to ptr addrspace(10), !dbg !42 %"+Core.BoundsError#35896" = load ptr, ptr @_Core_BoundsError_35896, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %4 = addrspacecast ptr %"+Core.BoundsError#35896" to ptr addrspace(10), !dbg !42 %"+Main.Base.Broadcast.Broadcasted#35931" = load ptr, ptr @_Main_Base_Broadcast_Broadcasted_35931, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Broadcasted = ptrtoint ptr %"+Main.Base.Broadcast.Broadcasted#35931" to i64, !dbg !42 %5 = inttoptr i64 %Broadcasted to ptr, !dbg !42 %current_task1 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !42 %6 = addrspacecast ptr %5 to ptr addrspace(10), !dbg !42 %"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 !42 %7 = addrspacecast ptr addrspace(10) %"box::Broadcasted" to ptr addrspace(11), !dbg !42 %8 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 0, !dbg !42 store atomic ptr addrspace(10) %2, ptr addrspace(11) %8 unordered, align 8, !dbg !42, !tbaa !43, !alias.scope !47, !noalias !48 %9 = getelementptr inbounds i8, ptr addrspace(11) %"A::Broadcasted", i32 8, !dbg !42 %10 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 8, !dbg !42 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %10, ptr addrspace(11) align 8 %9, i64 24, i1 false), !dbg !42, !tbaa !38, !alias.scope !39, !noalias !40 %"+Core.Tuple#35897" = load ptr, ptr @_Core_Tuple_35897, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Tuple = ptrtoint ptr %"+Core.Tuple#35897" to i64, !dbg !42 %11 = inttoptr i64 %Tuple to ptr, !dbg !42 %current_task2 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !42 %12 = addrspacecast ptr %11 to ptr addrspace(10), !dbg !42 %"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 !42 %13 = addrspacecast ptr addrspace(10) %"box::Tuple" to ptr addrspace(11), !dbg !42 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 !42, !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 !42 %15 = addrspacecast ptr addrspace(10) %14 to ptr addrspace(12), !dbg !42 call void @ijl_throw(ptr addrspace(12) %15), !dbg !42 unreachable, !dbg !42 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !42 unreachable, !dbg !42 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !42 unreachable, !dbg !42 } 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/EPXUy/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/EPXUy/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/EPXUy/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/EPXUy/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/EPXUy/src/compiler.jl:5960 [8] _thunk @ ~/.julia/packages/Enzyme/EPXUy/src/compiler.jl:5958 [inlined] [9] cached_compilation @ ~/.julia/packages/Enzyme/EPXUy/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/EPXUy/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/EPXUy/src/compiler.jl:6275 [12] autodiff @ ~/.julia/packages/Enzyme/EPXUy/src/Enzyme.jl:502 [inlined] [13] autodiff @ ~/.julia/packages/Enzyme/EPXUy/src/Enzyme.jl:562 [inlined] [14] autodiff @ ~/.julia/packages/Enzyme/EPXUy/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))) ; Function Attrs: noinline noreturn define internal void @julia_throw_boundserror_36017(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") #8 !dbg !41 { 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#35983" = load ptr, ptr @_Core_BoundsError_35983, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !34, !align !35 %3 = addrspacecast ptr %"-Core.BoundsError#35983" to ptr addrspace(10), !dbg !42 %"+Core.BoundsError#35984" = load ptr, ptr @_Core_BoundsError_35984, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %4 = addrspacecast ptr %"+Core.BoundsError#35984" to ptr addrspace(10), !dbg !42 %"+Main.Base.Broadcast.Broadcasted#36019" = load ptr, ptr @_Main_Base_Broadcast_Broadcasted_36019, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Broadcasted = ptrtoint ptr %"+Main.Base.Broadcast.Broadcasted#36019" to i64, !dbg !42 %5 = inttoptr i64 %Broadcasted to ptr, !dbg !42 %current_task1 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !42 %6 = addrspacecast ptr %5 to ptr addrspace(10), !dbg !42 %"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 !42 %7 = addrspacecast ptr addrspace(10) %"box::Broadcasted" to ptr addrspace(11), !dbg !42 %8 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 0, !dbg !42 store atomic ptr addrspace(10) %2, ptr addrspace(11) %8 unordered, align 8, !dbg !42, !tbaa !43, !alias.scope !47, !noalias !48 %9 = getelementptr inbounds i8, ptr addrspace(11) %"A::Broadcasted", i32 8, !dbg !42 %10 = getelementptr inbounds i8, ptr addrspace(11) %7, i32 8, !dbg !42 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %10, ptr addrspace(11) align 8 %9, i64 24, i1 false), !dbg !42, !tbaa !38, !alias.scope !39, !noalias !40 %"+Core.Tuple#35985" = load ptr, ptr @_Core_Tuple_35985, align 8, !dbg !42, !tbaa !23, !alias.scope !26, !noalias !29, !nonnull !0, !dereferenceable !36, !align !37 %Tuple = ptrtoint ptr %"+Core.Tuple#35985" to i64, !dbg !42 %11 = inttoptr i64 %Tuple to ptr, !dbg !42 %current_task2 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !42 %12 = addrspacecast ptr %11 to ptr addrspace(10), !dbg !42 %"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 !42 %13 = addrspacecast ptr addrspace(10) %"box::Tuple" to ptr addrspace(11), !dbg !42 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 !42, !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 !42 %15 = addrspacecast ptr addrspace(10) %14 to ptr addrspace(12), !dbg !42 call void @ijl_throw(ptr addrspace(12) %15), !dbg !42 unreachable, !dbg !42 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !42 unreachable, !dbg !42 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !42 unreachable, !dbg !42 } 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/EPXUy/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/EPXUy/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/EPXUy/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/EPXUy/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/EPXUy/src/compiler.jl:5960 [8] _thunk @ ~/.julia/packages/Enzyme/EPXUy/src/compiler.jl:5958 [inlined] [9] cached_compilation @ ~/.julia/packages/Enzyme/EPXUy/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/EPXUy/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/EPXUy/src/compiler.jl:6275 [12] autodiff @ ~/.julia/packages/Enzyme/EPXUy/src/Enzyme.jl:502 [inlined] [13] autodiff @ ~/.julia/packages/Enzyme/EPXUy/src/Enzyme.jl:562 [inlined] [14] autodiff @ ~/.julia/packages/Enzyme/EPXUy/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/EPXUy/src/llvm/transforms.jl:1688 [4] removeDeadArgs!(mod::LLVM.Module, tm::LLVM.TargetMachine) @ Enzyme.Compiler ~/.julia/packages/Enzyme/EPXUy/src/llvm/transforms.jl:2563 [5] optimize!(mod::LLVM.Module, tm::LLVM.TargetMachine) @ Enzyme.Compiler ~/.julia/packages/Enzyme/EPXUy/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/EPXUy/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/EPXUy/src/compiler.jl:5960 [10] _thunk @ ~/.julia/packages/Enzyme/EPXUy/src/compiler.jl:5958 [inlined] [11] cached_compilation @ ~/.julia/packages/Enzyme/EPXUy/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/EPXUy/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/EPXUy/src/compiler.jl:6275 [14] autodiff @ ~/.julia/packages/Enzyme/EPXUy/src/Enzyme.jl:502 [inlined] [15] autodiff @ ~/.julia/packages/Enzyme/EPXUy/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/EPXUy/src/llvm/transforms.jl:1688 [4] removeDeadArgs!(mod::LLVM.Module, tm::LLVM.TargetMachine) @ Enzyme.Compiler ~/.julia/packages/Enzyme/EPXUy/src/llvm/transforms.jl:2563 [5] optimize!(mod::LLVM.Module, tm::LLVM.TargetMachine) @ Enzyme.Compiler ~/.julia/packages/Enzyme/EPXUy/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/EPXUy/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/EPXUy/src/compiler.jl:5960 [10] _thunk @ ~/.julia/packages/Enzyme/EPXUy/src/compiler.jl:5958 [inlined] [11] cached_compilation @ ~/.julia/packages/Enzyme/EPXUy/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/EPXUy/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/EPXUy/src/compiler.jl:6275 [14] autodiff @ ~/.julia/packages/Enzyme/EPXUy/src/Enzyme.jl:502 [inlined] [15] autodiff @ ~/.julia/packages/Enzyme/EPXUy/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_36574(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") #12 !dbg !581 { 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 !21, !noalias !24 br label %L2 L2: ; preds = %L112, %top %value_phi = phi i8 [ 1, %top ], [ %81, %L112 ] %3 = trunc i8 %value_phi to i1, !dbg !583 %4 = xor i1 %3, true, !dbg !583 br i1 %4, label %L113, label %L4, !dbg !583 L4: ; preds = %L2 %5 = addrspacecast ptr addrspace(10) %2 to ptr addrspace(11), !dbg !584 %.in_now = load atomic ptr addrspace(10), ptr addrspace(11) %5 unordered, align 8, !dbg !584, !tbaa !593, !alias.scope !193, !noalias !194, !nonnull !0, !dereferenceable !325, !align !30 %6 = addrspacecast ptr addrspace(10) %2 to ptr addrspace(11), !dbg !584 %.in_old_ptr = getelementptr inbounds i8, ptr addrspace(11) %6, i32 8, !dbg !584 %.in_old = load atomic ptr addrspace(10), ptr addrspace(11) %.in_old_ptr unordered, align 8, !dbg !584, !tbaa !593, !alias.scope !193, !noalias !194, !nonnull !0, !dereferenceable !325, !align !30 %7 = addrspacecast ptr addrspace(10) %2 to ptr addrspace(11), !dbg !584 %.out_now_ptr = getelementptr inbounds i8, ptr addrspace(11) %7, i32 16, !dbg !584 %.out_now = load atomic ptr addrspace(10), ptr addrspace(11) %.out_now_ptr unordered, align 8, !dbg !584, !tbaa !593, !alias.scope !193, !noalias !194, !nonnull !0, !dereferenceable !325, !align !30 %8 = addrspacecast ptr addrspace(10) %2 to ptr addrspace(11), !dbg !584 %.out_old_ptr = getelementptr inbounds i8, ptr addrspace(11) %8, i32 24, !dbg !584 %.out_old = load atomic ptr addrspace(10), ptr addrspace(11) %.out_old_ptr unordered, align 8, !dbg !584, !tbaa !593, !alias.scope !193, !noalias !194, !nonnull !0, !dereferenceable !325, !align !30 call void @julia_forward_func_4_AD_36589(ptr addrspace(10) %.in_now, ptr addrspace(10) %.in_old, ptr addrspace(10) %.out_now, ptr addrspace(10) %.out_old), !dbg !586 %9 = addrspacecast ptr addrspace(10) %2 to ptr addrspace(11), !dbg !595 %.out_old_ptr1 = getelementptr inbounds i8, ptr addrspace(11) %9, i32 24, !dbg !595 %.out_old2 = load atomic ptr addrspace(10), ptr addrspace(11) %.out_old_ptr1 unordered, align 8, !dbg !595, !tbaa !593, !alias.scope !193, !noalias !194, !nonnull !0, !dereferenceable !325, !align !30 %10 = addrspacecast ptr addrspace(10) %2 to ptr addrspace(11), !dbg !595 %.in_now3 = load atomic ptr addrspace(10), ptr addrspace(11) %10 unordered, align 8, !dbg !595, !tbaa !593, !alias.scope !193, !noalias !194, !nonnull !0, !dereferenceable !325, !align !30 %11 = addrspacecast ptr addrspace(10) %.in_now3 to ptr addrspace(11), !dbg !597 %.in_now3.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %11, i32 16, !dbg !597 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 !597, !tbaa !33, !alias.scope !51, !noalias !52 br i1 false, label %L27, label %L18, !dbg !603 L18: ; preds = %L4 %12 = addrspacecast ptr addrspace(10) %.out_old2 to ptr addrspace(11), !dbg !604 %.out_old2.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %12, i32 16, !dbg !604 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 !604, !tbaa !33, !alias.scope !51, !noalias !52 %.out_old2.size.unbox = load i64, ptr %.out_old2.size, align 8, !dbg !608, !tbaa !53, !alias.scope !55, !noalias !56 %.in_now3.size.unbox = load i64, ptr %.in_now3.size, align 8, !dbg !608, !tbaa !53, !alias.scope !55, !noalias !56 %13 = icmp eq i64 %.out_old2.size.unbox, %.in_now3.size.unbox, !dbg !608 %14 = xor i1 %13, true, !dbg !606 br i1 %14, label %L23, label %L22, !dbg !606 L22: ; preds = %L18 br label %L26, !dbg !606 L23: ; preds = %L18 %15 = getelementptr inbounds i8, ptr %"new::Tuple81", i32 0, !dbg !606 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %15, ptr align 8 %.in_now3.size, i64 8, i1 false), !dbg !606, !tbaa !53, !alias.scope !55, !noalias !56 %16 = addrspacecast ptr %"new::Tuple81" to ptr addrspace(11), !dbg !606 call void @julia_throw_setindex_mismatch_36581(ptr addrspace(10) %.out_old2, ptr addrspace(11) nocapture readonly %16) #17, !dbg !606 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_7), !dbg !606 unreachable, !dbg !606 L26: ; preds = %L22 br label %L27, !dbg !606 L27: ; preds = %L26, %L4 %.in_now3.size.unbox4 = load i64, ptr %.in_now3.size, align 8, !dbg !610, !tbaa !53, !alias.scope !55, !noalias !56 %17 = icmp slt i64 0, %.in_now3.size.unbox4, !dbg !610 %18 = xor i1 %17, true, !dbg !614 br i1 %18, label %L55, label %L29, !dbg !614 L29: ; preds = %L27 %.in_now3.size.unbox5 = load i64, ptr %.in_now3.size, align 8, !dbg !615, !tbaa !53, !alias.scope !55, !noalias !56 %19 = icmp eq i64 %.in_now3.size.unbox5, 0, !dbg !615 %20 = xor i1 %19, true, !dbg !616 br i1 %20, label %L32, label %L31, !dbg !616 L31: ; preds = %L29 br label %L54, !dbg !616 L32: ; preds = %L29 %21 = addrspacecast ptr addrspace(10) %.in_now3 to ptr addrspace(11), !dbg !619 %22 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %21, i32 0, i32 0, !dbg !619 %memoryref_data38 = load ptr, ptr addrspace(11) %22, align 8, !dbg !619, !tbaa !60, !alias.scope !63, !noalias !64 %23 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %21, i32 0, i32 1, !dbg !619 %memoryref_mem39 = load ptr addrspace(10), ptr addrspace(11) %23, align 8, !dbg !619, !tbaa !60, !alias.scope !63, !noalias !64, !dereferenceable_or_null !32, !align !30 %24 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data38, 0, !dbg !619 %.in_now3.ref = insertvalue { ptr, ptr addrspace(10) } %24, ptr addrspace(10) %memoryref_mem39, 1, !dbg !619 %25 = addrspacecast ptr addrspace(10) %memoryref_mem39 to ptr addrspace(11), !dbg !621 %26 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %25, i32 0, i32 0, !dbg !621 %memory_len40 = load i64, ptr addrspace(11) %26, align 8, !dbg !621, !tbaa !65, !range !67, !alias.scope !63, !noalias !64 %27 = add nuw i64 %memory_len40, %memory_len40, !dbg !621 %28 = add i64 0, %memory_len40, !dbg !621 %memoryref_ovflw41 = icmp uge i64 %28, %27, !dbg !621 %memoryref_data_byteoffset42 = getelementptr i8, ptr %memoryref_data38, i64 0, !dbg !621 %29 = addrspacecast ptr addrspace(10) %memoryref_mem39 to ptr addrspace(11), !dbg !621 %30 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %29, i32 0, i32 0, !dbg !621 %memory_len43 = load i64, ptr addrspace(11) %30, align 8, !dbg !621, !tbaa !65, !range !67, !alias.scope !63, !noalias !64 %31 = addrspacecast ptr addrspace(10) %memoryref_mem39 to ptr addrspace(11), !dbg !621 %memory_data_ptr44 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %31, i32 0, i32 1, !dbg !621 %memory_data45 = load ptr, ptr addrspace(11) %memory_data_ptr44, align 8, !dbg !621, !tbaa !68, !alias.scope !63, !noalias !64, !nonnull !0 %32 = ptrtoint ptr %memory_data45 to i64, !dbg !621 %33 = ptrtoint ptr %memoryref_data_byteoffset42 to i64, !dbg !621 %34 = sub i64 %33, %32, !dbg !621 %memoryref_bytelen46 = mul nuw nsw i64 %memory_len43, 8, !dbg !621 %memoryref_isinbounds47 = icmp ult i64 %34, %memoryref_bytelen46, !dbg !621 %35 = xor i1 %memoryref_ovflw41, true, !dbg !621 %"memoryref_isinbounds¬ovflw48" = and i1 %35, %memoryref_isinbounds47, !dbg !621 br i1 %"memoryref_isinbounds¬ovflw48", label %idxend54, label %oob49, !dbg !621 L47: ; preds = %idxend72 %"-Core.throw_inexacterror#3657775" = load ptr, ptr @_Core_throw_inexacterror_36577, align 8, !dbg !623, !tbaa !18, !alias.scope !21, !noalias !24, !nonnull !0, !dereferenceable !29, !align !30 %36 = addrspacecast ptr %"-Core.throw_inexacterror#3657775" to ptr addrspace(10), !dbg !623 %"jl_global#3657876" = load ptr, ptr @jl_global_36578, align 8, !dbg !623, !tbaa !18, !alias.scope !21, !noalias !24, !nonnull !0 %37 = addrspacecast ptr %"jl_global#3657876" to ptr addrspace(10), !dbg !623 %"jl_sym#convert#3657977" = load ptr, ptr @jl_sym_convert_36579, align 8, !dbg !623, !tbaa !18, !alias.scope !21, !noalias !24, !nonnull !0 %38 = addrspacecast ptr %"jl_sym#convert#3657977" to ptr addrspace(10), !dbg !623 %39 = load ptr, ptr getelementptr inbounds (i8, ptr @jl_small_typeof, i32 336), align 8, !dbg !623, !tbaa !18, !alias.scope !21, !noalias !24, !nonnull !0, !dereferenceable !31, !align !32 %40 = addrspacecast ptr %39 to ptr addrspace(10), !dbg !623 %box_Int6478 = call nonnull align 8 dereferenceable(8) ptr addrspace(10) @ijl_box_int64(i64 signext %142) #18, !dbg !623 %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 !623 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_7), !dbg !623 unreachable, !dbg !623 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 !633 call void @llvm.julia.gc_preserve_end(token %141), !dbg !637 call void @llvm.julia.gc_preserve_end(token %140), !dbg !638 br label %L54, !dbg !639 L54: ; preds = %L49, %L31 br label %L55, !dbg !616 L55: ; preds = %L54, %L27 br label %L56, !dbg !640 L56: ; preds = %L55 %42 = addrspacecast ptr addrspace(10) %2 to ptr addrspace(11), !dbg !641 %.out_now_ptr6 = getelementptr inbounds i8, ptr addrspace(11) %42, i32 16, !dbg !641 %.out_now7 = load atomic ptr addrspace(10), ptr addrspace(11) %.out_now_ptr6 unordered, align 8, !dbg !641, !tbaa !593, !alias.scope !193, !noalias !194, !nonnull !0, !dereferenceable !325, !align !30 %43 = addrspacecast ptr addrspace(10) %2 to ptr addrspace(11), !dbg !641 %.in_old_ptr8 = getelementptr inbounds i8, ptr addrspace(11) %43, i32 8, !dbg !641 %.in_old9 = load atomic ptr addrspace(10), ptr addrspace(11) %.in_old_ptr8 unordered, align 8, !dbg !641, !tbaa !593, !alias.scope !193, !noalias !194, !nonnull !0, !dereferenceable !325, !align !30 %44 = addrspacecast ptr addrspace(10) %.in_old9 to ptr addrspace(11), !dbg !643 %.in_old9.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %44, i32 16, !dbg !643 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 !643, !tbaa !33, !alias.scope !51, !noalias !52 br i1 false, label %L73, label %L64, !dbg !646 L64: ; preds = %L56 %45 = addrspacecast ptr addrspace(10) %.out_now7 to ptr addrspace(11), !dbg !647 %.out_now7.size_ptr = getelementptr inbounds i8, ptr addrspace(11) %45, i32 16, !dbg !647 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 !647, !tbaa !33, !alias.scope !51, !noalias !52 %.out_now7.size.unbox = load i64, ptr %.out_now7.size, align 8, !dbg !650, !tbaa !53, !alias.scope !55, !noalias !56 %.in_old9.size.unbox = load i64, ptr %.in_old9.size, align 8, !dbg !650, !tbaa !53, !alias.scope !55, !noalias !56 %46 = icmp eq i64 %.out_now7.size.unbox, %.in_old9.size.unbox, !dbg !650 %47 = xor i1 %46, true, !dbg !649 br i1 %47, label %L69, label %L68, !dbg !649 L68: ; preds = %L64 br label %L72, !dbg !649 L69: ; preds = %L64 %48 = getelementptr inbounds i8, ptr %"new::Tuple", i32 0, !dbg !649 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %48, ptr align 8 %.in_old9.size, i64 8, i1 false), !dbg !649, !tbaa !53, !alias.scope !55, !noalias !56 %49 = addrspacecast ptr %"new::Tuple" to ptr addrspace(11), !dbg !649 call void @julia_throw_setindex_mismatch_36581(ptr addrspace(10) %.out_now7, ptr addrspace(11) nocapture readonly %49) #17, !dbg !649 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_7), !dbg !649 unreachable, !dbg !649 L72: ; preds = %L68 br label %L73, !dbg !649 L73: ; preds = %L72, %L56 %.in_old9.size.unbox10 = load i64, ptr %.in_old9.size, align 8, !dbg !651, !tbaa !53, !alias.scope !55, !noalias !56 %50 = icmp slt i64 0, %.in_old9.size.unbox10, !dbg !651 %51 = xor i1 %50, true, !dbg !653 br i1 %51, label %L101, label %L75, !dbg !653 L75: ; preds = %L73 %.in_old9.size.unbox11 = load i64, ptr %.in_old9.size, align 8, !dbg !654, !tbaa !53, !alias.scope !55, !noalias !56 %52 = icmp eq i64 %.in_old9.size.unbox11, 0, !dbg !654 %53 = xor i1 %52, true, !dbg !655 br i1 %53, label %L78, label %L77, !dbg !655 L77: ; preds = %L75 br label %L100, !dbg !655 L78: ; preds = %L75 %54 = addrspacecast ptr addrspace(10) %.in_old9 to ptr addrspace(11), !dbg !657 %55 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %54, i32 0, i32 0, !dbg !657 %memoryref_data = load ptr, ptr addrspace(11) %55, align 8, !dbg !657, !tbaa !60, !alias.scope !63, !noalias !64 %56 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %54, i32 0, i32 1, !dbg !657 %memoryref_mem = load ptr addrspace(10), ptr addrspace(11) %56, align 8, !dbg !657, !tbaa !60, !alias.scope !63, !noalias !64, !dereferenceable_or_null !32, !align !30 %57 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data, 0, !dbg !657 %.in_old9.ref = insertvalue { ptr, ptr addrspace(10) } %57, ptr addrspace(10) %memoryref_mem, 1, !dbg !657 %58 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !659 %59 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %58, i32 0, i32 0, !dbg !659 %memory_len = load i64, ptr addrspace(11) %59, align 8, !dbg !659, !tbaa !65, !range !67, !alias.scope !63, !noalias !64 %60 = add nuw i64 %memory_len, %memory_len, !dbg !659 %61 = add i64 0, %memory_len, !dbg !659 %memoryref_ovflw = icmp uge i64 %61, %60, !dbg !659 %memoryref_data_byteoffset = getelementptr i8, ptr %memoryref_data, i64 0, !dbg !659 %62 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !659 %63 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %62, i32 0, i32 0, !dbg !659 %memory_len15 = load i64, ptr addrspace(11) %63, align 8, !dbg !659, !tbaa !65, !range !67, !alias.scope !63, !noalias !64 %64 = addrspacecast ptr addrspace(10) %memoryref_mem to ptr addrspace(11), !dbg !659 %memory_data_ptr = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %64, i32 0, i32 1, !dbg !659 %memory_data = load ptr, ptr addrspace(11) %memory_data_ptr, align 8, !dbg !659, !tbaa !68, !alias.scope !63, !noalias !64, !nonnull !0 %65 = ptrtoint ptr %memory_data to i64, !dbg !659 %66 = ptrtoint ptr %memoryref_data_byteoffset to i64, !dbg !659 %67 = sub i64 %66, %65, !dbg !659 %memoryref_bytelen = mul nuw nsw i64 %memory_len15, 8, !dbg !659 %memoryref_isinbounds = icmp ult i64 %67, %memoryref_bytelen, !dbg !659 %68 = xor i1 %memoryref_ovflw, true, !dbg !659 %"memoryref_isinbounds¬ovflw" = and i1 %68, %memoryref_isinbounds, !dbg !659 br i1 %"memoryref_isinbounds¬ovflw", label %idxend, label %oob, !dbg !659 L93: ; preds = %idxend33 %"-Core.throw_inexacterror#36577" = load ptr, ptr @_Core_throw_inexacterror_36577, align 8, !dbg !660, !tbaa !18, !alias.scope !21, !noalias !24, !nonnull !0, !dereferenceable !29, !align !30 %69 = addrspacecast ptr %"-Core.throw_inexacterror#36577" to ptr addrspace(10), !dbg !660 %"jl_global#36578" = load ptr, ptr @jl_global_36578, align 8, !dbg !660, !tbaa !18, !alias.scope !21, !noalias !24, !nonnull !0 %70 = addrspacecast ptr %"jl_global#36578" to ptr addrspace(10), !dbg !660 %"jl_sym#convert#36579" = load ptr, ptr @jl_sym_convert_36579, align 8, !dbg !660, !tbaa !18, !alias.scope !21, !noalias !24, !nonnull !0 %71 = addrspacecast ptr %"jl_sym#convert#36579" to ptr addrspace(10), !dbg !660 %72 = load ptr, ptr getelementptr inbounds (i8, ptr @jl_small_typeof, i32 336), align 8, !dbg !660, !tbaa !18, !alias.scope !21, !noalias !24, !nonnull !0, !dereferenceable !31, !align !32 %73 = addrspacecast ptr %72 to ptr addrspace(10), !dbg !660 %box_Int64 = call nonnull align 8 dereferenceable(8) ptr addrspace(10) @ijl_box_int64(i64 signext %109) #18, !dbg !660 %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 !660 call void @ijl_error(ptr @_j_str__INTERNAL_ERROR___IR_Vali____2_7), !dbg !660 unreachable, !dbg !660 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 !665 call void @llvm.julia.gc_preserve_end(token %108), !dbg !667 call void @llvm.julia.gc_preserve_end(token %107), !dbg !668 br label %L100, !dbg !669 L100: ; preds = %L95, %L77 br label %L101, !dbg !655 L101: ; preds = %L100, %L73 br label %L102, !dbg !670 L102: ; preds = %L101 %75 = addrspacecast ptr addrspace(10) %2 to ptr addrspace(11), !dbg !671 %.i_ptr = getelementptr inbounds i8, ptr addrspace(11) %75, i32 32, !dbg !671 %.i = load i64, ptr addrspace(11) %.i_ptr, align 8, !dbg !671, !tbaa !593, !alias.scope !193, !noalias !194 %76 = add i64 %.i, 1, !dbg !673 %77 = addrspacecast ptr addrspace(10) %2 to ptr addrspace(11), !dbg !675 %.i_ptr12 = getelementptr inbounds i8, ptr addrspace(11) %77, i32 32, !dbg !675 store i64 %76, ptr addrspace(11) %.i_ptr12, align 8, !dbg !675, !tbaa !593, !alias.scope !193, !noalias !194 %78 = addrspacecast ptr addrspace(10) %2 to ptr addrspace(11), !dbg !677 %.i_ptr13 = getelementptr inbounds i8, ptr addrspace(11) %78, i32 32, !dbg !677 %.i14 = load i64, ptr addrspace(11) %.i_ptr13, align 8, !dbg !677, !tbaa !593, !alias.scope !193, !noalias !194 %79 = getelementptr inbounds i8, ptr addrspace(11) %"body::#timestepper##2#timestepper##3", i32 8, !dbg !678 %.unbox = load i64, ptr addrspace(11) %79, align 8, !dbg !679, !tbaa !18, !alias.scope !21, !noalias !24 %80 = icmp sle i64 %.i14, %.unbox, !dbg !679 br label %L112, !dbg !678 L112: ; preds = %L102 %81 = zext i1 %80 to i8 br label %L2, !dbg !681 L113: ; preds = %L2 ret void, !dbg !682 oob: ; preds = %L78 %"+Core.GenericMemoryRef#36567" = load ptr, ptr @_Core_GenericMemoryRef_36567, align 8, !dbg !659, !tbaa !18, !alias.scope !21, !noalias !24, !nonnull !0, !dereferenceable !31, !align !32 %GenericMemoryRef = ptrtoint ptr %"+Core.GenericMemoryRef#36567" to i64, !dbg !659 %82 = inttoptr i64 %GenericMemoryRef to ptr, !dbg !659 %current_task16 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !659 %83 = addrspacecast ptr %82 to ptr addrspace(10), !dbg !659 %"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 !659 %84 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef" to ptr addrspace(11), !dbg !659 store { ptr, ptr addrspace(10) } %.in_old9.ref, ptr addrspace(11) %84, align 8, !dbg !659, !tbaa !189, !alias.scope !193, !noalias !194 %85 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef" to ptr addrspace(12), !dbg !659 call void @ijl_bounds_error_int(ptr addrspace(12) %85, i64 1), !dbg !659 unreachable, !dbg !659 idxend: ; preds = %L78 %86 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset, 0, !dbg !659 %memory_ref = insertvalue { ptr, ptr addrspace(10) } %86, ptr addrspace(10) %memoryref_mem, 1, !dbg !659 %87 = addrspacecast ptr addrspace(10) %.out_now7 to ptr addrspace(11), !dbg !657 %88 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %87, i32 0, i32 0, !dbg !657 %memoryref_data17 = load ptr, ptr addrspace(11) %88, align 8, !dbg !657, !tbaa !60, !alias.scope !63, !noalias !64 %89 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %87, i32 0, i32 1, !dbg !657 %memoryref_mem18 = load ptr addrspace(10), ptr addrspace(11) %89, align 8, !dbg !657, !tbaa !60, !alias.scope !63, !noalias !64, !dereferenceable_or_null !32, !align !30 %90 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data17, 0, !dbg !657 %.out_now7.ref = insertvalue { ptr, ptr addrspace(10) } %90, ptr addrspace(10) %memoryref_mem18, 1, !dbg !657 %91 = addrspacecast ptr addrspace(10) %memoryref_mem18 to ptr addrspace(11), !dbg !659 %92 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %91, i32 0, i32 0, !dbg !659 %memory_len19 = load i64, ptr addrspace(11) %92, align 8, !dbg !659, !tbaa !65, !range !67, !alias.scope !63, !noalias !64 %93 = add nuw i64 %memory_len19, %memory_len19, !dbg !659 %94 = add i64 0, %memory_len19, !dbg !659 %memoryref_ovflw20 = icmp uge i64 %94, %93, !dbg !659 %memoryref_data_byteoffset21 = getelementptr i8, ptr %memoryref_data17, i64 0, !dbg !659 %95 = addrspacecast ptr addrspace(10) %memoryref_mem18 to ptr addrspace(11), !dbg !659 %96 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %95, i32 0, i32 0, !dbg !659 %memory_len22 = load i64, ptr addrspace(11) %96, align 8, !dbg !659, !tbaa !65, !range !67, !alias.scope !63, !noalias !64 %97 = addrspacecast ptr addrspace(10) %memoryref_mem18 to ptr addrspace(11), !dbg !659 %memory_data_ptr23 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %97, i32 0, i32 1, !dbg !659 %memory_data24 = load ptr, ptr addrspace(11) %memory_data_ptr23, align 8, !dbg !659, !tbaa !68, !alias.scope !63, !noalias !64, !nonnull !0 %98 = ptrtoint ptr %memory_data24 to i64, !dbg !659 %99 = ptrtoint ptr %memoryref_data_byteoffset21 to i64, !dbg !659 %100 = sub i64 %99, %98, !dbg !659 %memoryref_bytelen25 = mul nuw nsw i64 %memory_len22, 8, !dbg !659 %memoryref_isinbounds26 = icmp ult i64 %100, %memoryref_bytelen25, !dbg !659 %101 = xor i1 %memoryref_ovflw20, true, !dbg !659 %"memoryref_isinbounds¬ovflw27" = and i1 %101, %memoryref_isinbounds26, !dbg !659 br i1 %"memoryref_isinbounds¬ovflw27", label %idxend33, label %oob28, !dbg !659 oob28: ; preds = %idxend %"+Core.GenericMemoryRef#3656729" = load ptr, ptr @_Core_GenericMemoryRef_36567, align 8, !dbg !659, !tbaa !18, !alias.scope !21, !noalias !24, !nonnull !0, !dereferenceable !31, !align !32 %GenericMemoryRef30 = ptrtoint ptr %"+Core.GenericMemoryRef#3656729" to i64, !dbg !659 %102 = inttoptr i64 %GenericMemoryRef30 to ptr, !dbg !659 %current_task31 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !659 %103 = addrspacecast ptr %102 to ptr addrspace(10), !dbg !659 %"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 !659 %104 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef32" to ptr addrspace(11), !dbg !659 store { ptr, ptr addrspace(10) } %.out_now7.ref, ptr addrspace(11) %104, align 8, !dbg !659, !tbaa !189, !alias.scope !193, !noalias !194 %105 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef32" to ptr addrspace(12), !dbg !659 call void @ijl_bounds_error_int(ptr addrspace(12) %105, i64 1), !dbg !659 unreachable, !dbg !659 idxend33: ; preds = %idxend %106 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset21, 0, !dbg !659 %memory_ref34 = insertvalue { ptr, ptr addrspace(10) } %106, ptr addrspace(10) %memoryref_mem18, 1, !dbg !659 %107 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %memoryref_mem), !dbg !683 %108 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %memoryref_mem18), !dbg !684 %memory_ref.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref, 0, !dbg !685 %memory_ref34.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref34, 0, !dbg !685 %.in_old9.size.unbox35 = load i64, ptr %.in_old9.size, align 8, !dbg !689, !tbaa !53, !alias.scope !55, !noalias !56 %109 = mul i64 %.in_old9.size.unbox35, 8, !dbg !689 %110 = lshr i64 %109, 63, !dbg !691 %111 = select i1 false, i64 0, i64 %110, !dbg !691 %112 = trunc i64 %111 to i8, !dbg !691 %113 = icmp eq i8 %112, 1, !dbg !691 %114 = xor i1 %113, true, !dbg !660 br i1 %114, label %L95, label %L93, !dbg !660 after_error: ; No predecessors! call void @llvm.trap(), !dbg !660 unreachable, !dbg !660 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !660 unreachable, !dbg !660 after_error36: ; No predecessors! call void @llvm.trap(), !dbg !649 unreachable, !dbg !649 after_noret37: ; No predecessors! call void @llvm.trap(), !dbg !649 unreachable, !dbg !649 oob49: ; preds = %L32 %"+Core.GenericMemoryRef#3656750" = load ptr, ptr @_Core_GenericMemoryRef_36567, align 8, !dbg !621, !tbaa !18, !alias.scope !21, !noalias !24, !nonnull !0, !dereferenceable !31, !align !32 %GenericMemoryRef51 = ptrtoint ptr %"+Core.GenericMemoryRef#3656750" to i64, !dbg !621 %115 = inttoptr i64 %GenericMemoryRef51 to ptr, !dbg !621 %current_task52 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !621 %116 = addrspacecast ptr %115 to ptr addrspace(10), !dbg !621 %"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 !621 %117 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef53" to ptr addrspace(11), !dbg !621 store { ptr, ptr addrspace(10) } %.in_now3.ref, ptr addrspace(11) %117, align 8, !dbg !621, !tbaa !189, !alias.scope !193, !noalias !194 %118 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef53" to ptr addrspace(12), !dbg !621 call void @ijl_bounds_error_int(ptr addrspace(12) %118, i64 1), !dbg !621 unreachable, !dbg !621 idxend54: ; preds = %L32 %119 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset42, 0, !dbg !621 %memory_ref55 = insertvalue { ptr, ptr addrspace(10) } %119, ptr addrspace(10) %memoryref_mem39, 1, !dbg !621 %120 = addrspacecast ptr addrspace(10) %.out_old2 to ptr addrspace(11), !dbg !619 %121 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %120, i32 0, i32 0, !dbg !619 %memoryref_data56 = load ptr, ptr addrspace(11) %121, align 8, !dbg !619, !tbaa !60, !alias.scope !63, !noalias !64 %122 = getelementptr inbounds nuw { ptr, ptr addrspace(10) }, ptr addrspace(11) %120, i32 0, i32 1, !dbg !619 %memoryref_mem57 = load ptr addrspace(10), ptr addrspace(11) %122, align 8, !dbg !619, !tbaa !60, !alias.scope !63, !noalias !64, !dereferenceable_or_null !32, !align !30 %123 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data56, 0, !dbg !619 %.out_old2.ref = insertvalue { ptr, ptr addrspace(10) } %123, ptr addrspace(10) %memoryref_mem57, 1, !dbg !619 %124 = addrspacecast ptr addrspace(10) %memoryref_mem57 to ptr addrspace(11), !dbg !621 %125 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %124, i32 0, i32 0, !dbg !621 %memory_len58 = load i64, ptr addrspace(11) %125, align 8, !dbg !621, !tbaa !65, !range !67, !alias.scope !63, !noalias !64 %126 = add nuw i64 %memory_len58, %memory_len58, !dbg !621 %127 = add i64 0, %memory_len58, !dbg !621 %memoryref_ovflw59 = icmp uge i64 %127, %126, !dbg !621 %memoryref_data_byteoffset60 = getelementptr i8, ptr %memoryref_data56, i64 0, !dbg !621 %128 = addrspacecast ptr addrspace(10) %memoryref_mem57 to ptr addrspace(11), !dbg !621 %129 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %128, i32 0, i32 0, !dbg !621 %memory_len61 = load i64, ptr addrspace(11) %129, align 8, !dbg !621, !tbaa !65, !range !67, !alias.scope !63, !noalias !64 %130 = addrspacecast ptr addrspace(10) %memoryref_mem57 to ptr addrspace(11), !dbg !621 %memory_data_ptr62 = getelementptr inbounds nuw { i64, ptr }, ptr addrspace(11) %130, i32 0, i32 1, !dbg !621 %memory_data63 = load ptr, ptr addrspace(11) %memory_data_ptr62, align 8, !dbg !621, !tbaa !68, !alias.scope !63, !noalias !64, !nonnull !0 %131 = ptrtoint ptr %memory_data63 to i64, !dbg !621 %132 = ptrtoint ptr %memoryref_data_byteoffset60 to i64, !dbg !621 %133 = sub i64 %132, %131, !dbg !621 %memoryref_bytelen64 = mul nuw nsw i64 %memory_len61, 8, !dbg !621 %memoryref_isinbounds65 = icmp ult i64 %133, %memoryref_bytelen64, !dbg !621 %134 = xor i1 %memoryref_ovflw59, true, !dbg !621 %"memoryref_isinbounds¬ovflw66" = and i1 %134, %memoryref_isinbounds65, !dbg !621 br i1 %"memoryref_isinbounds¬ovflw66", label %idxend72, label %oob67, !dbg !621 oob67: ; preds = %idxend54 %"+Core.GenericMemoryRef#3656768" = load ptr, ptr @_Core_GenericMemoryRef_36567, align 8, !dbg !621, !tbaa !18, !alias.scope !21, !noalias !24, !nonnull !0, !dereferenceable !31, !align !32 %GenericMemoryRef69 = ptrtoint ptr %"+Core.GenericMemoryRef#3656768" to i64, !dbg !621 %135 = inttoptr i64 %GenericMemoryRef69 to ptr, !dbg !621 %current_task70 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !621 %136 = addrspacecast ptr %135 to ptr addrspace(10), !dbg !621 %"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 !621 %137 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef71" to ptr addrspace(11), !dbg !621 store { ptr, ptr addrspace(10) } %.out_old2.ref, ptr addrspace(11) %137, align 8, !dbg !621, !tbaa !189, !alias.scope !193, !noalias !194 %138 = addrspacecast ptr addrspace(10) %"box::GenericMemoryRef71" to ptr addrspace(12), !dbg !621 call void @ijl_bounds_error_int(ptr addrspace(12) %138, i64 1), !dbg !621 unreachable, !dbg !621 idxend72: ; preds = %idxend54 %139 = insertvalue { ptr, ptr addrspace(10) } zeroinitializer, ptr %memoryref_data_byteoffset60, 0, !dbg !621 %memory_ref73 = insertvalue { ptr, ptr addrspace(10) } %139, ptr addrspace(10) %memoryref_mem57, 1, !dbg !621 %140 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %memoryref_mem39), !dbg !693 %141 = call token (...) @llvm.julia.gc_preserve_begin(ptr addrspace(10) %memoryref_mem57), !dbg !694 %memory_ref55.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref55, 0, !dbg !695 %memory_ref73.ptr_or_offset = extractvalue { ptr, ptr addrspace(10) } %memory_ref73, 0, !dbg !695 %.in_now3.size.unbox74 = load i64, ptr %.in_now3.size, align 8, !dbg !697, !tbaa !53, !alias.scope !55, !noalias !56 %142 = mul i64 %.in_now3.size.unbox74, 8, !dbg !697 %143 = lshr i64 %142, 63, !dbg !698 %144 = select i1 false, i64 0, i64 %143, !dbg !698 %145 = trunc i64 %144 to i8, !dbg !698 %146 = icmp eq i8 %145, 1, !dbg !698 %147 = xor i1 %146, true, !dbg !623 br i1 %147, label %L49, label %L47, !dbg !623 after_error79: ; No predecessors! call void @llvm.trap(), !dbg !623 unreachable, !dbg !623 after_noret80: ; No predecessors! call void @llvm.trap(), !dbg !623 unreachable, !dbg !623 after_error82: ; No predecessors! call void @llvm.trap(), !dbg !606 unreachable, !dbg !606 after_noret83: ; No predecessors! call void @llvm.trap(), !dbg !606 unreachable, !dbg !606 } 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/EPXUy/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/EPXUy/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/EPXUy/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/EPXUy/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/EPXUy/src/compiler.jl:5960 [8] _thunk @ ~/.julia/packages/Enzyme/EPXUy/src/compiler.jl:5958 [inlined] [9] cached_compilation @ ~/.julia/packages/Enzyme/EPXUy/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/EPXUy/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/EPXUy/src/compiler.jl:6275 [12] autodiff @ ~/.julia/packages/Enzyme/EPXUy/src/Enzyme.jl:502 [inlined] [13] autodiff @ ~/.julia/packages/Enzyme/EPXUy/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_37063(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 %"36135::Int64") #0 !dbg !10 { 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 !13 %0 = getelementptr inbounds i8, ptr %ptls_load, i32 16 %safepoint = load atomic ptr, ptr %0 monotonic, align 8, !tbaa !17 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 !17, !alias.scope !19, !noalias !22 %3 = addrspacecast ptr addrspace(10) %2 to ptr addrspace(11), !dbg !27 %.scheme_ptr = getelementptr inbounds i8, ptr addrspace(11) %3, i32 8, !dbg !27 %.scheme = load atomic ptr addrspace(10), ptr addrspace(11) %.scheme_ptr unordered, align 8, !dbg !27, !tbaa !36, !alias.scope !40, !noalias !41, !nonnull !0 %4 = getelementptr inbounds i8, ptr addrspace(11) %"#self#::#loops##0#loops##1", i32 8, !dbg !30 %.unbox = load i64, ptr addrspace(11) %4, align 8, !dbg !42, !tbaa !17, !alias.scope !19, !noalias !22 %5 = icmp sle i64 1, %.unbox, !dbg !42 %6 = xor i1 %5, true, !dbg !48 br i1 %6, label %L10, label %L9, !dbg !48 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 !30 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 !51 call void @llvm.memcpy.p0.p0.i64(ptr align 8 %8, ptr align 8 @_j_const_1, i64 8, i1 false), !dbg !51, !tbaa !55, !alias.scope !56, !noalias !57 %9 = getelementptr inbounds i8, ptr %"new::UnitRange", i32 8, !dbg !51 store i64 %value_phi, ptr %9, align 8, !dbg !51, !tbaa !58, !alias.scope !60, !noalias !61 br label %L14, !dbg !51 L14: ; preds = %L11 br label %L15, !dbg !51 L15: ; preds = %L14 %"jl_global#37065" = load ptr, ptr @jl_global_37065, align 8, !dbg !30, !tbaa !17, !alias.scope !19, !noalias !22, !nonnull !0 %10 = addrspacecast ptr %"jl_global#37065" to ptr addrspace(10), !dbg !30 %"+Main.#loops##2#loops##3#37066" = load ptr, ptr @_Main__loops__2_loops__3_37066, align 8, !dbg !30, !tbaa !17, !alias.scope !19, !noalias !22, !nonnull !0, !dereferenceable !62, !align !63 %"#loops##2#loops##3" = ptrtoint ptr %"+Main.#loops##2#loops##3#37066" to i64, !dbg !30 %11 = inttoptr i64 %"#loops##2#loops##3" to ptr, !dbg !30 %current_task1 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !30 %12 = addrspacecast ptr %11 to ptr addrspace(10), !dbg !30 %"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 !30 %13 = addrspacecast ptr addrspace(10) %"box::#loops##2#loops##3" to ptr addrspace(11), !dbg !30 %14 = getelementptr inbounds i8, ptr addrspace(11) %13, i32 0, !dbg !30 store atomic ptr addrspace(10) %2, ptr addrspace(11) %14 unordered, align 8, !dbg !30, !tbaa !64, !alias.scope !40, !noalias !41 %"+Main.Base.UnitRange#37059" = load ptr, ptr @_Main_Base_UnitRange_37059, align 8, !dbg !30, !tbaa !17, !alias.scope !19, !noalias !22, !nonnull !0, !dereferenceable !62, !align !63 %UnitRange = ptrtoint ptr %"+Main.Base.UnitRange#37059" to i64, !dbg !30 %15 = inttoptr i64 %UnitRange to ptr, !dbg !30 %current_task2 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !30 %16 = addrspacecast ptr %15 to ptr addrspace(10), !dbg !30 %"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 !30 %17 = addrspacecast ptr addrspace(10) %"box::UnitRange" to ptr addrspace(11), !dbg !30 call void @llvm.memcpy.p11.p0.i64(ptr addrspace(11) align 8 %17, ptr align 8 %"new::UnitRange", i64 16, i1 false), !dbg !30, !tbaa !55, !alias.scope !66, !noalias !57 %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 !30 ret void, !dbg !30 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 !17, !alias.scope !19, !noalias !22 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 !48 } 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/EPXUy/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/EPXUy/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/EPXUy/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/EPXUy/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/EPXUy/src/compiler.jl:5960 [8] _thunk @ ~/.julia/packages/Enzyme/EPXUy/src/compiler.jl:5958 [inlined] [9] cached_compilation @ ~/.julia/packages/Enzyme/EPXUy/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/EPXUy/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/EPXUy/src/compiler.jl:6275 [12] autodiff @ ~/.julia/packages/Enzyme/EPXUy/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/EPXUy/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_37582(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") #4 !dbg !67 { 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 !69 %0 = getelementptr inbounds i8, ptr %ptls_load, i32 16 %safepoint = load atomic ptr, ptr %0 monotonic, align 8, !tbaa !51 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 !51, !alias.scope !53, !noalias !54 %3 = getelementptr inbounds i8, ptr %.roots.A, i32 8 %4 = load ptr addrspace(10), ptr %3, align 8, !tbaa !51, !alias.scope !53, !noalias !54 %"-Core.BoundsError#37549" = load ptr, ptr @_Core_BoundsError_37549, align 8, !dbg !71, !tbaa !51, !alias.scope !53, !noalias !54, !nonnull !0, !dereferenceable !72, !align !73 %5 = addrspacecast ptr %"-Core.BoundsError#37549" to ptr addrspace(10), !dbg !71 %"+Core.BoundsError#37550" = load ptr, ptr @_Core_BoundsError_37550, align 8, !dbg !71, !tbaa !51, !alias.scope !53, !noalias !54, !nonnull !0, !dereferenceable !74, !align !75 %6 = addrspacecast ptr %"+Core.BoundsError#37550" to ptr addrspace(10), !dbg !71 %"+Main.Base.Broadcast.Broadcasted#37584" = load ptr, ptr @_Main_Base_Broadcast_Broadcasted_37584, align 8, !dbg !71, !tbaa !51, !alias.scope !53, !noalias !54, !nonnull !0, !dereferenceable !74, !align !75 %Broadcasted = ptrtoint ptr %"+Main.Base.Broadcast.Broadcasted#37584" to i64, !dbg !71 %7 = inttoptr i64 %Broadcasted to ptr, !dbg !71 %current_task1 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !71 %8 = addrspacecast ptr %7 to ptr addrspace(10), !dbg !71 %"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 !71 %9 = addrspacecast ptr addrspace(10) %"box::Broadcasted" to ptr addrspace(11), !dbg !71 %10 = getelementptr inbounds i8, ptr addrspace(11) %9, i32 0, !dbg !71 store atomic ptr addrspace(10) %2, ptr addrspace(11) %10 unordered, align 8, !dbg !71, !tbaa !76, !alias.scope !80, !noalias !81 %11 = getelementptr inbounds i8, ptr addrspace(11) %"A::Broadcasted", i32 8, !dbg !71 %12 = getelementptr inbounds i8, ptr addrspace(11) %9, i32 8, !dbg !71 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %12, ptr addrspace(11) align 8 %11, i64 16, i1 false), !dbg !71, !tbaa !82, !alias.scope !83, !noalias !84 %13 = getelementptr inbounds i8, ptr addrspace(11) %9, i32 24, !dbg !71 store atomic ptr addrspace(10) %4, ptr addrspace(11) %13 unordered, align 8, !dbg !71, !tbaa !76, !alias.scope !80, !noalias !81 %14 = getelementptr inbounds i8, ptr addrspace(11) %"A::Broadcasted", i32 32, !dbg !71 %15 = getelementptr inbounds i8, ptr addrspace(11) %9, i32 32, !dbg !71 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %15, ptr addrspace(11) align 8 %14, i64 24, i1 false), !dbg !71, !tbaa !82, !alias.scope !83, !noalias !84 %"+Core.Tuple#37551" = load ptr, ptr @_Core_Tuple_37551, align 8, !dbg !71, !tbaa !51, !alias.scope !53, !noalias !54, !nonnull !0, !dereferenceable !74, !align !75 %Tuple = ptrtoint ptr %"+Core.Tuple#37551" to i64, !dbg !71 %16 = inttoptr i64 %Tuple to ptr, !dbg !71 %current_task2 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !71 %17 = addrspacecast ptr %16 to ptr addrspace(10), !dbg !71 %"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 !71 %18 = addrspacecast ptr addrspace(10) %"box::Tuple" to ptr addrspace(11), !dbg !71 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 !71, !tbaa !82, !alias.scope !83, !noalias !84 %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 !71 %20 = addrspacecast ptr addrspace(10) %19 to ptr addrspace(12), !dbg !71 call void @ijl_throw(ptr addrspace(12) %20), !dbg !71 unreachable, !dbg !71 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !71 unreachable, !dbg !71 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !71 unreachable, !dbg !71 } 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/EPXUy/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/EPXUy/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/EPXUy/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/EPXUy/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/EPXUy/src/compiler.jl:5960 [8] _thunk @ ~/.julia/packages/Enzyme/EPXUy/src/compiler.jl:5958 [inlined] [9] cached_compilation @ ~/.julia/packages/Enzyme/EPXUy/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/EPXUy/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/EPXUy/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/EPXUy/src/Enzyme.jl:502 [13] autodiff @ ~/.julia/packages/Enzyme/EPXUy/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_37812(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") #4 !dbg !67 { 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 !69 %0 = getelementptr inbounds i8, ptr %ptls_load, i32 16 %safepoint = load atomic ptr, ptr %0 monotonic, align 8, !tbaa !51 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 !51, !alias.scope !53, !noalias !54 %3 = getelementptr inbounds i8, ptr %.roots.A, i32 8 %4 = load ptr addrspace(10), ptr %3, align 8, !tbaa !51, !alias.scope !53, !noalias !54 %"-Core.BoundsError#37779" = load ptr, ptr @_Core_BoundsError_37779, align 8, !dbg !71, !tbaa !51, !alias.scope !53, !noalias !54, !nonnull !0, !dereferenceable !72, !align !73 %5 = addrspacecast ptr %"-Core.BoundsError#37779" to ptr addrspace(10), !dbg !71 %"+Core.BoundsError#37780" = load ptr, ptr @_Core_BoundsError_37780, align 8, !dbg !71, !tbaa !51, !alias.scope !53, !noalias !54, !nonnull !0, !dereferenceable !74, !align !75 %6 = addrspacecast ptr %"+Core.BoundsError#37780" to ptr addrspace(10), !dbg !71 %"+Main.Base.Broadcast.Broadcasted#37814" = load ptr, ptr @_Main_Base_Broadcast_Broadcasted_37814, align 8, !dbg !71, !tbaa !51, !alias.scope !53, !noalias !54, !nonnull !0, !dereferenceable !74, !align !75 %Broadcasted = ptrtoint ptr %"+Main.Base.Broadcast.Broadcasted#37814" to i64, !dbg !71 %7 = inttoptr i64 %Broadcasted to ptr, !dbg !71 %current_task1 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !71 %8 = addrspacecast ptr %7 to ptr addrspace(10), !dbg !71 %"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 !71 %9 = addrspacecast ptr addrspace(10) %"box::Broadcasted" to ptr addrspace(11), !dbg !71 %10 = getelementptr inbounds i8, ptr addrspace(11) %9, i32 0, !dbg !71 store atomic ptr addrspace(10) %2, ptr addrspace(11) %10 unordered, align 8, !dbg !71, !tbaa !76, !alias.scope !80, !noalias !81 %11 = getelementptr inbounds i8, ptr addrspace(11) %"A::Broadcasted", i32 8, !dbg !71 %12 = getelementptr inbounds i8, ptr addrspace(11) %9, i32 8, !dbg !71 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %12, ptr addrspace(11) align 8 %11, i64 16, i1 false), !dbg !71, !tbaa !82, !alias.scope !83, !noalias !84 %13 = getelementptr inbounds i8, ptr addrspace(11) %9, i32 24, !dbg !71 store atomic ptr addrspace(10) %4, ptr addrspace(11) %13 unordered, align 8, !dbg !71, !tbaa !76, !alias.scope !80, !noalias !81 %14 = getelementptr inbounds i8, ptr addrspace(11) %"A::Broadcasted", i32 32, !dbg !71 %15 = getelementptr inbounds i8, ptr addrspace(11) %9, i32 32, !dbg !71 call void @llvm.memcpy.p11.p11.i64(ptr addrspace(11) align 8 %15, ptr addrspace(11) align 8 %14, i64 24, i1 false), !dbg !71, !tbaa !82, !alias.scope !83, !noalias !84 %"+Core.Tuple#37781" = load ptr, ptr @_Core_Tuple_37781, align 8, !dbg !71, !tbaa !51, !alias.scope !53, !noalias !54, !nonnull !0, !dereferenceable !74, !align !75 %Tuple = ptrtoint ptr %"+Core.Tuple#37781" to i64, !dbg !71 %16 = inttoptr i64 %Tuple to ptr, !dbg !71 %current_task2 = getelementptr inbounds i8, ptr %pgcstack, i32 -152, !dbg !71 %17 = addrspacecast ptr %16 to ptr addrspace(10), !dbg !71 %"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 !71 %18 = addrspacecast ptr addrspace(10) %"box::Tuple" to ptr addrspace(11), !dbg !71 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 !71, !tbaa !82, !alias.scope !83, !noalias !84 %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 !71 %20 = addrspacecast ptr addrspace(10) %19 to ptr addrspace(12), !dbg !71 call void @ijl_throw(ptr addrspace(12) %20), !dbg !71 unreachable, !dbg !71 after_throw: ; No predecessors! call void @llvm.trap(), !dbg !71 unreachable, !dbg !71 after_noret: ; No predecessors! call void @llvm.trap(), !dbg !71 unreachable, !dbg !71 } 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/EPXUy/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/EPXUy/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/EPXUy/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/EPXUy/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/EPXUy/src/compiler.jl:5960 [8] _thunk @ ~/.julia/packages/Enzyme/EPXUy/src/compiler.jl:5958 [inlined] [9] cached_compilation @ ~/.julia/packages/Enzyme/EPXUy/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/EPXUy/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/EPXUy/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/EPXUy/src/Enzyme.jl:502 [13] autodiff @ ~/.julia/packages/Enzyme/EPXUy/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.6s Enzyme... | 2 1 3 4m55.9s Revolve... | 3 3 1.4s Testing optcontrol... | 2 2 6.9s scheme = Revolve | 1 1 5.4s scheme = Periodic | 1 1 1.2s Testing heat example | 9 9 8.4s Revolve | 2 2 3.7s Revolve with verbose=0 | 1 1 1.2s Revolve with verbose=1 | 1 1 2.5s Periodic | 2 2 1.0s Periodic with verbose=0 | 1 1 0.8s Periodic with verbose=1 | 1 1 0.2s Online_r2 | 2 2 1.1s 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.6s Revolve | 1 1 2.0s Periodic | 1 1 0.3s Online_r2 | 1 1 0.3s Test box model example | 3 3 10.2s Revolve | 1 1 5.4s Periodic | 1 1 3.2s Online_r2 | 1 1 1.5s Multilevel | 1 1 4.1s Test writing checkpoints out | 2 2 3.7s Revolve | 1 1 2.9s Periodic | 1 1 0.8s RNG of the outermost testset: Random.Xoshiro(0x8a2436b2ef9aaa9b, 0x65a6be1613baca11, 0x6357e5255ecfbb07, 0xfdaeac4ec6c799ae, 0x9b96a0d7744ee3b3) 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.45s 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 554.04s: package tests unexpectedly errored