Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Uncaught LLVM-level error from neural SDE #429

Closed
ChrisRackauckas opened this issue Aug 26, 2022 · 8 comments · Fixed by EnzymeAD/Enzyme#811
Closed

Uncaught LLVM-level error from neural SDE #429

ChrisRackauckas opened this issue Aug 26, 2022 · 8 comments · Fixed by EnzymeAD/Enzyme#811

Comments

@ChrisRackauckas
Copy link
Contributor

ChrisRackauckas commented Aug 26, 2022

Reducing this one is hard since it just crashes everything.

using SciMLSensitivity, Flux, LinearAlgebra
using DiffEqNoiseProcess
using StochasticDiffEq
using Statistics
using SciMLSensitivity
using DiffEqBase.EnsembleAnalysis
using Zygote
using Optimization, OptimizationFlux

using Random
Random.seed!(238248735)

x_size = 2 # Size of the spatial dimensions in the SDE
v_size = 2 # Output size of the control

# Define Neural Network for the control input
input_size = x_size + 1 # size of the spatial dimensions PLUS one time dimensions
nn_initial = Chain(Dense(input_size, v_size)) # The actual neural network
p_nn, model = Flux.destructure(nn_initial)
nn(x, p) = model(p)(x)

# Define the right hand side of the SDE
const_mat = zeros(Float64, (x_size, v_size))
for i in 1:max(x_size, v_size)
    const_mat[i, i] = 1
end

function f!(du, u, p, t)
    MM = nn([u; t], p)
    du .= u + const_mat * MM
end

function g!(du, u, p, t)
    du .= false * u .+ sqrt(2 * 0.001)
end

# Define SDE problem
u0 = vec(rand(Float64, (x_size, 1)))
tspan = (0.0, 1.0)
ts = collect(0:0.1:1)
prob = SDEProblem{true}(f!, g!, u0, tspan, p_nn)

W = WienerProcess(0.0, 0.0, 0.0)
probscalar = SDEProblem{true}(f!, g!, u0, tspan, p_nn, noise=W)

# Defining the loss function
function loss(pars, prob, alg)
    function prob_func(prob, i, repeat)
        # Prepare new initial state and remake the problem
        u0tmp = vec(rand(Float64, (x_size, 1)))

        remake(prob, p=pars, u0=u0tmp)
    end

    ensembleprob = EnsembleProblem(prob, prob_func=prob_func)

    _sol = solve(ensembleprob, alg, EnsembleThreads(), sensealg=BacksolveAdjoint(),
        saveat=ts, trajectories=10,
        abstol=1e-1, reltol=1e-1)
    A = convert(Array, _sol)
    sum(abs2, A .- 1), mean(A)
end

# Actually training/fitting the model
losses = []
function callback(θ, l, pred)
    begin
        push!(losses, l)
        if length(losses) % 1 == 0
            println("Current loss after $(length(losses)) iterations: $(losses[end])")
        end
        false
    end
end

optf = Optimization.OptimizationFunction((p, _) -> loss(p, probscalar, LambaEM()),
    Optimization.AutoZygote())
optprob = Optimization.OptimizationProblem(optf, p_nn)
res1 = Optimization.solve(optprob, ADAM(0.1), callback=callback, maxiters=5)
; Function Attrs: mustprogress uwtable willreturn
define internal fastcc [1 x i64] @preprocess_julia___cat_offset1__12396({} addrspace(10)* noundef nonnull align 16 dereferenceable(40) %0, [1 x i64] addrspace(11)* nocapture nofree noundef nonnull readonly align 8 dereferenceable(8) %1, {} addrspace(10)* noundef nonnull align 16 dereferenceable(40) %2) unnamed_addr #14 !dbg !2305 {
top:
  %3 = call noalias nonnull dereferenceable(16) dereferenceable_or_null(16) i8* @malloc(i64 16), !enzyme_fromstack !2263
  %4 = bitcast i8* %3 to [1 x [2 x i64]]*
  %5 = call noalias nonnull dereferenceable(8) dereferenceable_or_null(8) i8* @malloc(i64 8), !enzyme_fromstack !2263
  %6 = bitcast i8* %5 to [1 x i64]*
  %7 = call {}*** @julia.get_pgcstack() #13
  %8 = load i8, i8 addrspace(11)* addrspacecast (i8* getelementptr inbounds ([1 x i8], [1 x i8]* @_j_const1, i32 0, i32 0) to i8 addrspace(11)*), align 1, !dbg !2306, !tbaa !91, !range !103, !invariant.load !4
  %.not = icmp eq i8 %8, 0, !dbg !2306
  br i1 %.not, label %L27, label %L4, !dbg !2306

L4:                                               ; preds = %top
  %9 = bitcast {} addrspace(10)* %2 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)*, !dbg !2309
  %10 = addrspacecast { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)* %9 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !2309
  %11 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %10, i64 0, i32 1, !dbg !2309
  %12 = load i64, i64 addrspace(11)* %11, align 8, !dbg !2309, !tbaa !84, !range !87
  %13 = add i64 0, %12, !dbg !2313
  %.not37 = icmp sgt i64 1, %13, !dbg !2316
  %value_phi = select i1 %.not37, i64 0, i64 %13, !dbg !2318
  br label %L37

L27:                                              ; preds = %top
  %14 = getelementptr inbounds [1 x i64], [1 x i64] addrspace(11)* %1, i64 0, i64 0, !dbg !2325
  %15 = load i64, i64 addrspace(11)* %14, align 8, !dbg !2326
  %.inv = icmp sgt i64 %15, 0, !dbg !2328
  %value_phi11 = select i1 %.inv, i64 %15, i64 0, !dbg !2328
  br label %L37

L37:                                              ; preds = %L27, %L4
  %.sroa.6.0 = phi i64 [ %value_phi11, %L27 ], [ %value_phi, %L4 ], !dbg !2331
  %.sroa.042.0..sroa_idx45 = getelementptr inbounds [1 x [2 x i64]], [1 x [2 x i64]]* %4, i64 0, i64 0, i64 0, !dbg !2307
  store i64 1, i64* %.sroa.042.0..sroa_idx45, align 8, !dbg !2307
  %.sroa.6.0..sroa_idx50 = getelementptr inbounds [1 x [2 x i64]], [1 x [2 x i64]]* %4, i64 0, i64 0, i64 1, !dbg !2307
  store i64 %.sroa.6.0, i64* %.sroa.6.0..sroa_idx50, align 8, !dbg !2307
  %16 = bitcast {} addrspace(10)* %0 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)*, !dbg !2332
  %17 = addrspacecast { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)* %16 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !2332
  %18 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %17, i64 0, i32 1, !dbg !2332
  %19 = load i64, i64 addrspace(11)* %18, align 8, !dbg !2332, !tbaa !84, !range !87
  %20 = icmp slt i64 %.sroa.6.0, 1, !dbg !2340
  %21 = icmp sle i64 1, %19, !dbg !2344
  %22 = and i1 true, %21, !dbg !2346
  %23 = icmp sgt i64 %.sroa.6.0, 0, !dbg !2344
  %24 = icmp sle i64 %.sroa.6.0, %19, !dbg !2344
  %25 = and i1 %23, %24, !dbg !2346
  %26 = and i1 %22, %25, !dbg !2347
  %27 = or i1 %20, %26, !dbg !2348
  br i1 %27, label %L67, label %L64, !dbg !2337

L64:                                              ; preds = %L37
  %28 = addrspacecast [1 x [2 x i64]]* %4 to [1 x [2 x i64]] addrspace(11)*, !dbg !2337
  %29 = call fastcc nonnull {} addrspace(10)* @julia_throw_boundserror_12392({} addrspace(10)* noundef nonnull align 16 dereferenceable(40) %0, [1 x [2 x i64]] addrspace(11)* nocapture nofree noundef nonnull readonly align 8 dereferenceable(16) %28) #18, !dbg !2337
  unreachable, !dbg !2337

L67:                                              ; preds = %L37
  %30 = sub i64 %.sroa.6.0, 1, !dbg !2349
  %31 = add i64 %30, 1, !dbg !2352
  %32 = bitcast {} addrspace(10)* %2 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)*, !dbg !2353
  %33 = addrspacecast { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)* %32 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !2353
  %34 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %33, i64 0, i32 1, !dbg !2353
  %35 = load i64, i64 addrspace(11)* %34, align 8, !dbg !2353, !tbaa !84, !range !87
  %.not38 = icmp eq i64 %35, %31, !dbg !2356
  br i1 %.not38, label %L78, label %L74, !dbg !2354

L74:                                              ; preds = %L67
  %36 = getelementptr inbounds [1 x i64], [1 x i64]* %6, i64 0, i64 0, !dbg !2354
  store i64 %31, i64* %36, align 8, !dbg !2354, !tbaa !188
  %37 = addrspacecast [1 x i64]* %6 to [1 x i64] addrspace(11)*, !dbg !2354
  %38 = call fastcc nonnull {} addrspace(10)* @julia_throw_setindex_mismatch_12401({} addrspace(10)* nocapture noundef nonnull readonly align 16 dereferenceable(40) %2, [1 x i64] addrspace(11)* nocapture nofree noundef nonnull readonly align 8 dereferenceable(8) %37) #18, !dbg !2354
  unreachable, !dbg !2354

L78:                                              ; preds = %L67
  %39 = icmp ugt i64 %30, 9223372036854775806, !dbg !2357
  br i1 %39, label %L116, label %L80, !dbg !2359

L80:                                              ; preds = %L78
  %40 = call token (...) @llvm.julia.gc_preserve_begin({} addrspace(10)* nonnull %0) #13, !dbg !2360
  %41 = call token (...) @llvm.julia.gc_preserve_begin({} addrspace(10)* nonnull %2) #13, !dbg !2362
  %42 = addrspacecast {} addrspace(10)* %0 to {} addrspace(11)*, !dbg !2363
  %43 = call nonnull {}* @julia.pointer_from_objref({} addrspace(11)* noundef %42) #19, !dbg !2363
  %44 = addrspacecast {} addrspace(10)* %2 to {} addrspace(11)*, !dbg !2366
  %45 = call nonnull {}* @julia.pointer_from_objref({} addrspace(11)* noundef %44) #19, !dbg !2366
  %46 = shl i64 %31, 3, !dbg !2369
  %47 = and i64 %31, 1152921504606846976, !dbg !2371
  %.not39 = icmp eq i64 %47, 0, !dbg !2371
  br i1 %.not39, label %L106, label %L98, !dbg !2372

L98:                                              ; preds = %L80
  %48 = call fastcc nonnull {} addrspace(10)* @julia_throw_inexacterror_12403(i64 signext %46) #18, !dbg !2372
  unreachable, !dbg !2372

L106:                                             ; preds = %L80
  %49 = bitcast {}* %45 to i8**, !dbg !2366
  %50 = load i8*, i8** %49, align 8, !dbg !2366, !tbaa !223, !nonnull !4
  %51 = bitcast {}* %43 to i8**, !dbg !2363
  %52 = load i8*, i8** %51, align 8, !dbg !2363, !tbaa !223, !nonnull !4
  %53 = getelementptr i8, i8* %52, i64 0, !dbg !2377
  call void @llvm.memmove.p0i8.p0i8.i64(i8* align 1 %53, i8* nonnull align 1 %50, i64 %46, i1 noundef false) #13, !dbg !2370
  call void @llvm.julia.gc_preserve_end(token %41) #13, !dbg !2378
  call void @llvm.julia.gc_preserve_end(token %40) #13, !dbg !2379
  %.pre = load i64, i64 addrspace(11)* %34, align 8, !dbg !2380
  br label %L116, !dbg !2383

L116:                                             ; preds = %L106, %L78
  %54 = phi i64 [ %.pre, %L106 ], [ 0, %L78 ], !dbg !2380
  %55 = select i1 %.not, i64 0, i64 %54, !dbg !2380
  %value_phi8 = add i64 0, %55, !dbg !2380
  %.fca.0.insert = insertvalue [1 x i64] undef, i64 %value_phi8, 0, !dbg !2384
  ret [1 x i64] %.fca.0.insert, !dbg !2384
}

; Function Attrs: mustprogress uwtable willreturn
define internal fastcc void @diffejulia___cat_offset1__12396({} addrspace(10)* noundef nonnull align 16 dereferenceable(40) %0, {} addrspace(10)* %"'", [1 x i64] addrspace(11)* nocapture nofree noundef nonnull readonly align 8 dereferenceable(8) %1, {} addrspace(10)* noundef nonnull align 16 dereferenceable(40) %2, { i8*, i1, i8* } %tapeArg) unnamed_addr #14 !dbg !2549 {
top:
  %_replacementA5 = phi i8*
  %_replacementA4 = phi [1 x [2 x i64]]*
  %_replacementA3 = phi i8*
  %_replacementA2 = phi [1 x i64]*
  %_replacementA = phi {}***
  %3 = load i8, i8 addrspace(11)* addrspacecast (i8* getelementptr inbounds ([1 x i8], [1 x i8]* @_j_const1, i32 0, i32 0) to i8 addrspace(11)*), align 1, !dbg !2550, !tbaa !91, !range !103, !invariant.load !4
  %.not = icmp eq i8 %3, 0, !dbg !2550
  br i1 %.not, label %L27, label %L4, !dbg !2550

L4:                                               ; preds = %top
  %_replacementA10 = phi { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)* , !dbg !2553
  %_replacementA9 = phi { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* , !dbg !2553
  %_replacementA8 = phi i64 addrspace(11)* , !dbg !2553
  %_replacementA7 = phi i64 , !dbg !2553
  %_replacementA6 = phi i64 , !dbg !2557
  %.not37_replacementA = phi i1 , !dbg !2560
  %value_phi_replacementA = phi i64 , !dbg !2562
  br label %L37

L27:                                              ; preds = %top
  %_replacementA12 = phi i64 addrspace(11)* , !dbg !2569
  %_replacementA11 = phi i64 , !dbg !2570
  %.inv_replacementA = phi i1 , !dbg !2572
  %value_phi11_replacementA = phi i64 , !dbg !2572
  br label %L37

L37:                                              ; preds = %L27, %L4
  %.sroa.6.0_replacementA = phi i64 , !dbg !2575
  %.sroa.042.0..sroa_idx45_replacementA = phi i64* , !dbg !2551
  %.sroa.6.0..sroa_idx50_replacementA = phi i64* , !dbg !2551
  %_replacementA24 = phi { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)* , !dbg !2576
  %_replacementA23 = phi { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* , !dbg !2576
  %_replacementA22 = phi i64 addrspace(11)* , !dbg !2576
  %_replacementA21 = phi i64 , !dbg !2576
  %_replacementA20 = phi i1 , !dbg !2584
  %_replacementA19 = phi i1 , !dbg !2588
  %_replacementA18 = phi i1 , !dbg !2590
  %_replacementA17 = phi i1 , !dbg !2588
  %_replacementA16 = phi i1 , !dbg !2588
  %_replacementA15 = phi i1 , !dbg !2590
  %_replacementA14 = phi i1 , !dbg !2591
  %_replacementA13 = phi i1 , !dbg !2592
  br i1 %_replacementA13, label %L67, label %L64, !dbg !2581

L64:                                              ; preds = %L37
  %_replacementA26 = phi [1 x [2 x i64]] addrspace(11)* , !dbg !2581
  %_replacementA25 = phi {} addrspace(10)* , !dbg !2581
  unreachable

L67:                                              ; preds = %L37
  %_replacementA32 = phi i64 , !dbg !2593
  %_replacementA31 = phi i64 , !dbg !2596
  %_replacementA30 = phi { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)* , !dbg !2597
  %_replacementA29 = phi { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* , !dbg !2597
  %_replacementA28 = phi i64 addrspace(11)* , !dbg !2597
  %_replacementA27 = phi i64 , !dbg !2597
  %.not38_replacementA = phi i1 , !dbg !2600
  br i1 %.not38_replacementA, label %L78, label %L74, !dbg !2598

L74:                                              ; preds = %L67
  %_replacementA35 = phi i64* , !dbg !2598
  %_replacementA34 = phi [1 x i64] addrspace(11)* , !dbg !2598
  %_replacementA33 = phi {} addrspace(10)* , !dbg !2598
  unreachable

L78:                                              ; preds = %L67
  %4 = icmp ugt i64 %_replacementA32, 9223372036854775806, !dbg !2601
  br i1 %4, label %L116, label %L80, !dbg !2603

L80:                                              ; preds = %L78
  %5 = call token (...) @llvm.julia.gc_preserve_begin({} addrspace(10)* nonnull %0) #13, !dbg !2604
  %6 = call token (...) @llvm.julia.gc_preserve_begin({} addrspace(10)* nonnull %2) #13, !dbg !2606
  %"'ipc" = addrspacecast {} addrspace(10)* %"'" to {} addrspace(11)*, !dbg !2607
  %7 = addrspacecast {} addrspace(10)* %0 to {} addrspace(11)*, !dbg !2607
  %8 = call {}* @julia.pointer_from_objref({} addrspace(11)* %"'ipc"), !dbg !2607
  %_replacementA38 = phi {}* , !dbg !2607
  %9 = addrspacecast {} addrspace(10)* %2 to {} addrspace(11)*, !dbg !2610
  %10 = call nonnull {}* @julia.pointer_from_objref({} addrspace(11)* noundef %9) #18, !dbg !2610
  %_replacementA37 = phi i64 , !dbg !2613
  %_replacementA36 = phi i64 , !dbg !2615
  %.not39_replacementA = phi i1 , !dbg !2615
  br i1 %.not39_replacementA, label %L106, label %L98, !dbg !2616

L98:                                              ; preds = %L80
  %_replacementA39 = phi {} addrspace(10)* , !dbg !2616
  unreachable

L106:                                             ; preds = %L80
  %11 = bitcast {}* %10 to i8**, !dbg !2610
  %12 = load i8*, i8** %11, align 8, !dbg !2610, !tbaa !223, !nonnull !4
  %"'il_phi" = phi i8* , !dbg !2607
  %13 = bitcast {}* %_replacementA38 to i8**, !dbg !2607
  %14 = load i8*, i8** %13, align 8, !dbg !2607, !tbaa !223, !nonnull !4
  %"'il_phi1" = phi i8* , !dbg !2621
  store i8* %"'il_phi1", i8** %"'il_phi1_cache", align 8, !dbg !2621, !invariant.group !2622
  %"'ipg" = getelementptr i8, i8* %"'il_phi1", i64 0, !dbg !2621
  %15 = getelementptr i8, i8* %14, i64 0, !dbg !2621
  call void @llvm.memmove.p0i8.p0i8.i64(i8* align 1 %15, i8* nonnull align 1 %12, i64 %_replacementA37, i1 noundef false) #13, !dbg !2614
  %.pre_replacementA = phi i64 , !dbg !2623
  br label %L116, !dbg !2626

L116:                                             ; preds = %L106, %L78
  %16 = phi i64 [ %.pre_replacementA, %L106 ], [ 0, %L78 ], !dbg !2623
  %17 = select i1 %.not, i64 0, i64 %16, !dbg !2623
  %value_phi8 = add i64 0, %17, !dbg !2623
  %.fca.0.insert = insertvalue [1 x i64] undef, i64 %value_phi8, 0, !dbg !2627
  br label %invertL116, !dbg !2627

allocsForInversion:                               ; No predecessors!
  %"'il_phi1_cache" = alloca i8*, align 8
  store i8* null, i8** %"'il_phi1_cache", align 8

inverttop:                                        ; preds = %invertL27, %invertL4
  ret void

invertL4:                                         ; preds = %invertL37
  br label %inverttop

invertL27:                                        ; preds = %invertL37
  br label %inverttop

invertL37:                                        ; preds = %invertL67
  br i1 %.not, label %invertL27, label %invertL4

invertL64:                                        ; No predecessors!

invertL67:                                        ; preds = %invertL78
  br label %invertL37

invertL74:                                        ; No predecessors!

invertL78:                                        ; preds = %invertL80
  br label %invertL67

invertL80:                                        ; No predecessors!
  call void @llvm.julia.gc_preserve_end(token %19)
  call void @llvm.julia.gc_preserve_end(token %18)
  br label %invertL78

invertL98:                                        ; No predecessors!

invertL106:                                       ; No predecessors!
  %18 = call token (...) @llvm.julia.gc_preserve_begin({} addrspace(10)* %0, {} addrspace(10)* %"'")
  %19 = call token (...) @llvm.julia.gc_preserve_begin({} addrspace(10)* %2)
  %20 = load i8*, i8** %"'il_phi1_cache", align 8, !dbg !2614, !invariant.group !2622
  %"'ipg_unwrap" = getelementptr i8, i8* %20, i64 0, !dbg !2614

invertL116:                                       ; preds = %L116
}

  %_replacementA37 = phi i64 , !dbg !177
Assertion failed: phi->getNumIncomingValues() != 0, file /workspace/srcdir/Enzyme/enzyme/Enzyme/GradientUtils.cpp, line 2976

signal (22): SIGABRT
in expression starting at REPL[37]:1
crt_sig_handler at /cygdrive/c/buildbot/worker/package_win64/build/src\signals-win.c:93
raise at C:\WINDOWS\System32\msvcrt.dll (unknown line)
abort at C:\WINDOWS\System32\msvcrt.dll (unknown line)
assert at C:\WINDOWS\System32\msvcrt.dll (unknown line)
legalRecompute at /workspace/srcdir/Enzyme/enzyme/Enzyme\GradientUtils.cpp:2976
lookupM at /workspace/srcdir/Enzyme/enzyme/Enzyme\GradientUtils.cpp:5033
SubTransferHelper at /workspace/srcdir/Enzyme/enzyme/Enzyme\GradientUtils.cpp:6696
operator() at /workspace/srcdir/Enzyme/enzyme/Enzyme\AdjointGenerator.h:3278 [inlined]
applyChainRule<AdjointGenerator<AugmentedReturnType>::visitMemTransferCommon(llvm::Intrinsic::ID, llvm::MaybeAlign, llvm::MaybeAlign, llvm::CallInst&, llvm::Value*, llvm::Value*, llvm::Value*, llvm::Value*) [with AugmentedReturnType = const AugmentedReturn*]::<lambda(llvm::Value*, llvm::Value*)>, llvm::Value*, llvm::Value*> at /workspace/srcdir/Enzyme/enzyme/Enzyme\GradientUtils.h:1875 [inlined]
applyChainRule<AdjointGenerator<AugmentedReturnType>::visitMemTransferCommon(llvm::Intrinsic::ID, llvm::MaybeAlign, llvm::MaybeAlign, llvm::CallInst&, llvm::Value*, llvm::Value*, llvm::Value*, llvm::Value*) [with AugmentedReturnType = const AugmentedReturn*]::<lambda(llvm::Value*, llvm::Value*)>, llvm::Value*, llvm::Value*> at /workspace/srcdir/Enzyme/enzyme/Enzyme\AdjointGenerator.h:1754 [inlined]
visitMemTransferCommon at /workspace/srcdir/Enzyme/enzyme/Enzyme\AdjointGenerator.h:3287
visitMemTransferInst at /workspace/srcdir/Enzyme/enzyme/Enzyme\AdjointGenerator.h:3045
visitMemCpyInst at /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/usr/local/include/llvm/IR\InstVisitor.h:211 [inlined]
delegateCallInst at /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/usr/local/include/llvm/IR\InstVisitor.h:293 [inlined]
visitCall at /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/usr/local/include/llvm/IR\Instruction.def:209 [inlined]
visit at /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/usr/local/include/llvm/IR\Instruction.def:209
visit at /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/usr/local/include/llvm/IR\InstVisitor.h:112 [inlined]
CreatePrimalAndGradient at /workspace/srcdir/Enzyme/enzyme/Enzyme\EnzymeLogic.cpp:3881
visitCallInst at /workspace/srcdir/Enzyme/enzyme/Enzyme\AdjointGenerator.h:11943
delegateCallInst at /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/usr/local/include/llvm/IR\InstVisitor.h:302 [inlined]
visitCall at /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/usr/local/include/llvm/IR\Instruction.def:209 [inlined]
visit at /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/usr/local/include/llvm/IR\Instruction.def:209
visit at /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/usr/local/include/llvm/IR\InstVisitor.h:112 [inlined]
CreatePrimalAndGradient at /workspace/srcdir/Enzyme/enzyme/Enzyme\EnzymeLogic.cpp:3881
visitCallInst at /workspace/srcdir/Enzyme/enzyme/Enzyme\AdjointGenerator.h:11943
delegateCallInst at /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/usr/local/include/llvm/IR\InstVisitor.h:302 [inlined]
visitCall at /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/usr/local/include/llvm/IR\Instruction.def:209 [inlined]
visit at /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/usr/local/include/llvm/IR\Instruction.def:209
visit at /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/usr/local/include/llvm/IR\InstVisitor.h:112 [inlined]
CreatePrimalAndGradient at /workspace/srcdir/Enzyme/enzyme/Enzyme\EnzymeLogic.cpp:3881
visitCallInst at /workspace/srcdir/Enzyme/enzyme/Enzyme\AdjointGenerator.h:11943
delegateCallInst at /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/usr/local/include/llvm/IR\InstVisitor.h:302 [inlined]
visitCall at /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/usr/local/include/llvm/IR\Instruction.def:209 [inlined]
visit at /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/usr/local/include/llvm/IR\Instruction.def:209
visit at /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/usr/local/include/llvm/IR\InstVisitor.h:112 [inlined]
CreatePrimalAndGradient at /workspace/srcdir/Enzyme/enzyme/Enzyme\EnzymeLogic.cpp:3881
EnzymeCreatePrimalAndGradient at /workspace/srcdir/Enzyme/enzyme/Enzyme\CApi.cpp:439
EnzymeCreatePrimalAndGradient at C:\Users\accou\.julia\packages\Enzyme\by4bd\src\api.jl:111
enzyme! at C:\Users\accou\.julia\packages\Enzyme\by4bd\src\compiler.jl:3462
unknown function (ip: 0000000009b3654e)
#codegen#74 at C:\Users\accou\.julia\packages\Enzyme\by4bd\src\compiler.jl:4370
codegen##kw at C:\Users\accou\.julia\packages\Enzyme\by4bd\src\compiler.jl:4069 [inlined]
_thunk at C:\Users\accou\.julia\packages\Enzyme\by4bd\src\compiler.jl:4775
unknown function (ip: 0000000009abbbf0)
cached_compilation at C:\Users\accou\.julia\packages\Enzyme\by4bd\src\compiler.jl:4813
unknown function (ip: 00000000022b3327)
#s618#101 at C:\Users\accou\.julia\packages\Enzyme\by4bd\src\compiler.jl:4873 [inlined]
#s618#101 at .\none:0
GeneratedFunctionStub at .\boot.jl:582
jl_apply at /cygdrive/c/buildbot/worker/package_win64/build/src\julia.h:1838 [inlined]
jl_call_staged at /cygdrive/c/buildbot/worker/package_win64/build/src\method.c:520
ijl_code_for_staged at /cygdrive/c/buildbot/worker/package_win64/build/src\method.c:571
get_staged at .\compiler\utilities.jl:114
retrieve_code_info at .\compiler\utilities.jl:126 [inlined]
InferenceState at .\compiler\inferencestate.jl:284
typeinf_edge at .\compiler\typeinfer.jl:868
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2366
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_edge at .\compiler\typeinfer.jl:877
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2366
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_edge at .\compiler\typeinfer.jl:877
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2366
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_edge at .\compiler\typeinfer.jl:877
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2340
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_edge at .\compiler\typeinfer.jl:877
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_apply at .\compiler\abstractinterpretation.jl:1339
abstract_call_known at .\compiler\abstractinterpretation.jl:1600
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2366
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_edge at .\compiler\typeinfer.jl:877
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_apply at .\compiler\abstractinterpretation.jl:1339
abstract_call_known at .\compiler\abstractinterpretation.jl:1600
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2366
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_edge at .\compiler\typeinfer.jl:877
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2366
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_edge at .\compiler\typeinfer.jl:877
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2366
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_edge at .\compiler\typeinfer.jl:877
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_apply at .\compiler\abstractinterpretation.jl:1339
abstract_call_known at .\compiler\abstractinterpretation.jl:1600
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2366
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_ext at .\compiler\typeinfer.jl:967
typeinf_ext_toplevel at .\compiler\typeinfer.jl:1000
typeinf_ext_toplevel at .\compiler\typeinfer.jl:996
jfptr_typeinf_ext_toplevel_16992.clone_1 at C:\Users\accou\.julia\juliaup\julia-1.8.0+0.x64\lib\julia\sys.dll (unknown line)
_jl_invoke at /cygdrive/c/buildbot/worker/package_win64/build/src\gf.c:2367 [inlined]
ijl_apply_generic at /cygdrive/c/buildbot/worker/package_win64/build/src\gf.c:2549 [inlined]
jl_apply at /cygdrive/c/buildbot/worker/package_win64/build/src\julia.h:1838 [inlined]
jl_type_infer at /cygdrive/c/buildbot/worker/package_win64/build/src\gf.c:319
jl_generate_fptr_impl at /cygdrive/c/buildbot/worker/package_win64/build/src\jitlayers.cpp:319
jl_compile_method_internal at /cygdrive/c/buildbot/worker/package_win64/build/src\gf.c:2081
jl_compile_method_internal at /cygdrive/c/buildbot/worker/package_win64/build/src\gf.c:2028 [inlined]
_jl_invoke at /cygdrive/c/buildbot/worker/package_win64/build/src\gf.c:2359 [inlined]
ijl_apply_generic at /cygdrive/c/buildbot/worker/package_win64/build/src\gf.c:2549
adjoint_sensitivity_backpass at C:\Users\accou\.julia\dev\SciMLSensitivity\src\concrete_solve.jl:476
ZBack at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\chainrules.jl:206 [inlined]
kw_zpullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\chainrules.jl:232
#208 at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\lib\lib.jl:206 [inlined]
#1914#back at C:\Users\accou\.julia\packages\ZygoteRules\AIbCs\src\adjoint.jl:67
unknown function (ip: 0000000002294a16)
Pullback at C:\Users\accou\.julia\dev\DiffEqBase\src\solve.jl:784 [inlined]
Pullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface2.jl:0
#208 at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\lib\lib.jl:206
#1914#back at C:\Users\accou\.julia\packages\ZygoteRules\AIbCs\src\adjoint.jl:67
unknown function (ip: 00000000022933a6)
Pullback at C:\Users\accou\.julia\dev\DiffEqBase\src\solve.jl:767 [inlined]
Pullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface2.jl:0
unknown function (ip: 000000000228fa76)
Pullback at C:\Users\accou\.julia\packages\SciMLBase\UY87O\src\ensemble\basic_ensemble_solve.jl:92 [inlined]
Pullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface2.jl:0
Pullback at C:\Users\accou\.julia\packages\SciMLBase\UY87O\src\ensemble\basic_ensemble_solve.jl:87 [inlined]
Pullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface2.jl:0
unknown function (ip: 000000000228e536)
Pullback at C:\Users\accou\.julia\packages\SciMLBase\UY87O\src\ensemble\basic_ensemble_solve.jl:146 [inlined]
Pullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface2.jl:0
#411 at C:\Users\accou\.julia\dev\SciMLSensitivity\src\zygote.jl:29
unknown function (ip: 000000000228b1b4)
jl_apply at /cygdrive/c/buildbot/worker/package_win64/build/src\julia.h:1838 [inlined]
do_apply at /cygdrive/c/buildbot/worker/package_win64/build/src\builtins.c:730
responsible_map at C:\Users\accou\.julia\packages\SciMLBase\UY87O\src\ensemble\basic_ensemble_solve.jl:139
Γêçresponsible_map_internal at C:\Users\accou\.julia\dev\SciMLSensitivity\src\zygote.jl:29
#750#back at C:\Users\accou\.julia\packages\ZygoteRules\AIbCs\src\adjoint.jl:67 [inlined]
Pullback at C:\Users\accou\.julia\packages\SciMLBase\UY87O\src\ensemble\basic_ensemble_solve.jl:145 [inlined]
Pullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface2.jl:0
Pullback at C:\Users\accou\.julia\packages\SciMLBase\UY87O\src\ensemble\basic_ensemble_solve.jl:144 [inlined]
Pullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface2.jl:0
unknown function (ip: 0000000002289bc7)
Pullback at C:\Users\accou\.julia\packages\SciMLBase\UY87O\src\ensemble\basic_ensemble_solve.jl:155 [inlined]
Pullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface2.jl:0
Pullback at C:\Users\accou\.julia\packages\SciMLBase\UY87O\src\ensemble\basic_ensemble_solve.jl:151 [inlined]
Pullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface2.jl:0
unknown function (ip: 00000000022888e7)
macro expansion at .\timing.jl:383 [inlined]
Pullback at C:\Users\accou\.julia\packages\SciMLBase\UY87O\src\ensemble\basic_ensemble_solve.jl:56 [inlined]
Pullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface2.jl:0
unknown function (ip: 0000000002285156)
Pullback at C:\Users\accou\.julia\packages\SciMLBase\UY87O\src\ensemble\basic_ensemble_solve.jl:45 [inlined]
Pullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface2.jl:0
#208 at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\lib\lib.jl:206 [inlined]
#1914#back at C:\Users\accou\.julia\packages\ZygoteRules\AIbCs\src\adjoint.jl:67
unknown function (ip: 000000000227ee26)
Pullback at C:\Users\accou\.julia\dev\DiffEqBase\src\solve.jl:830 [inlined]
Pullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface2.jl:0
#208 at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\lib\lib.jl:206
#1914#back at C:\Users\accou\.julia\packages\ZygoteRules\AIbCs\src\adjoint.jl:67 [inlined]
Pullback at C:\Users\accou\.julia\dev\DiffEqBase\src\solve.jl:826 [inlined]
Pullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface2.jl:0
unknown function (ip: 000000000227d8a6)
Pullback at .\REPL[31]:11 [inlined]
Pullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface2.jl:0
Pullback at .\REPL[35]:1 [inlined]
Pullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface2.jl:0
#208 at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\lib\lib.jl:206 [inlined]
#1914#back at C:\Users\accou\.julia\packages\ZygoteRules\AIbCs\src\adjoint.jl:67 [inlined]
Pullback at C:\Users\accou\.julia\packages\SciMLBase\UY87O\src\scimlfunctions.jl:3024 [inlined]
#208 at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\lib\lib.jl:206 [inlined]
#1914#back at C:\Users\accou\.julia\packages\ZygoteRules\AIbCs\src\adjoint.jl:67 [inlined]
Pullback at C:\Users\accou\.julia\packages\Optimization\6nIwk\src\function\zygote.jl:30 [inlined]
Pullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface2.jl:0
#208 at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\lib\lib.jl:206 [inlined]
#1914#back at C:\Users\accou\.julia\packages\ZygoteRules\AIbCs\src\adjoint.jl:67 [inlined]
Pullback at C:\Users\accou\.julia\packages\Optimization\6nIwk\src\function\zygote.jl:32 [inlined]
Pullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface2.jl:0
#60 at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface.jl:45
unknown function (ip: 000000000227b74a)
gradient at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface.jl:97
#137 at C:\Users\accou\.julia\packages\Optimization\6nIwk\src\function\zygote.jl:32
unknown function (ip: 000000000201caea)
jl_apply at /cygdrive/c/buildbot/worker/package_win64/build/src\julia.h:1838 [inlined]
do_apply at /cygdrive/c/buildbot/worker/package_win64/build/src\builtins.c:730
macro expansion at C:\Users\accou\.julia\packages\OptimizationFlux\cpWyO\src\OptimizationFlux.jl:32 [inlined]
macro expansion at C:\Users\accou\.julia\packages\Optimization\6nIwk\src\utils.jl:35 [inlined]
#__solve#1 at C:\Users\accou\.julia\packages\OptimizationFlux\cpWyO\src\OptimizationFlux.jl:30
__solve##kw at C:\Users\accou\.julia\packages\OptimizationFlux\cpWyO\src\OptimizationFlux.jl:6 [inlined]
__solve##kw at C:\Users\accou\.julia\packages\OptimizationFlux\cpWyO\src\OptimizationFlux.jl:6 [inlined]
#solve#509 at C:\Users\accou\.julia\packages\SciMLBase\UY87O\src\solve.jl:71 [inlined]
solve##kw at C:\Users\accou\.julia\packages\SciMLBase\UY87O\src\solve.jl:70
unknown function (ip: 000000005f9d4331)
jl_apply at /cygdrive/c/buildbot/worker/package_win64/build/src\julia.h:1838 [inlined]
do_call at /cygdrive/c/buildbot/worker/package_win64/build/src\interpreter.c:126
eval_value at /cygdrive/c/buildbot/worker/package_win64/build/src\interpreter.c:215
eval_stmt_value at /cygdrive/c/buildbot/worker/package_win64/build/src\interpreter.c:166 [inlined]
eval_body at /cygdrive/c/buildbot/worker/package_win64/build/src\interpreter.c:594
jl_interpret_toplevel_thunk at /cygdrive/c/buildbot/worker/package_win64/build/src\interpreter.c:750
jl_toplevel_eval_flex at /cygdrive/c/buildbot/worker/package_win64/build/src\toplevel.c:906
jl_toplevel_eval_flex at /cygdrive/c/buildbot/worker/package_win64/build/src\toplevel.c:850
eval_body at /cygdrive/c/buildbot/worker/package_win64/build/src\interpreter.c:556
eval_body at /cygdrive/c/buildbot/worker/package_win64/build/src\interpreter.c:522
jl_interpret_toplevel_thunk at /cygdrive/c/buildbot/worker/package_win64/build/src\interpreter.c:750
jl_toplevel_eval_flex at /cygdrive/c/buildbot/worker/package_win64/build/src\toplevel.c:906
ijl_toplevel_eval at /cygdrive/c/buildbot/worker/package_win64/build/src\toplevel.c:915 [inlined]
ijl_toplevel_eval_in at /cygdrive/c/buildbot/worker/package_win64/build/src\toplevel.c:965
eval at .\boot.jl:368 [inlined]
eval_user_input at C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.8\REPL\src\REPL.jl:151
repl_backend_loop at C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.8\REPL\src\REPL.jl:247
start_repl_backend at C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.8\REPL\src\REPL.jl:232
#run_repl#47 at C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.8\REPL\src\REPL.jl:369
run_repl at C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.8\REPL\src\REPL.jl:355
jfptr_run_repl_69828.clone_1 at C:\Users\accou\.julia\juliaup\julia-1.8.0+0.x64\lib\julia\sys.dll (unknown line)
#966 at .\client.jl:419
jfptr_YY.966_58133.clone_1 at C:\Users\accou\.julia\juliaup\julia-1.8.0+0.x64\lib\julia\sys.dll (unknown line)
jl_apply at /cygdrive/c/buildbot/worker/package_win64/build/src\julia.h:1838 [inlined]
jl_f__call_latest at /cygdrive/c/buildbot/worker/package_win64/build/src\builtins.c:774
#invokelatest#2 at .\essentials.jl:729 [inlined]
invokelatest at .\essentials.jl:726 [inlined]
run_main_repl at .\client.jl:404
exec_options at .\client.jl:318
_start at .\client.jl:522
jfptr__start_57488.clone_1 at C:\Users\accou\.julia\juliaup\julia-1.8.0+0.x64\lib\julia\sys.dll (unknown line)
jl_apply at /cygdrive/c/buildbot/worker/package_win64/build/src\julia.h:1838 [inlined]
true_main at /cygdrive/c/buildbot/worker/package_win64/build/src\jlapi.c:575
jl_repl_entrypoint at /cygdrive/c/buildbot/worker/package_win64/build/src\jlapi.c:719
mainCRTStartup at /cygdrive/c/buildbot/worker/package_win64/build/cli\loader_exe.c:59
BaseThreadInitThunk at C:\WINDOWS\System32\KERNEL32.DLL (unknown line)
RtlUserThreadStart at C:\WINDOWS\SYSTEM32\ntdll.dll (unknown line)
Allocations: 421389421 (Pool: 421276184; Big: 113237); GC: 154
@ChrisRackauckas
Copy link
Contributor Author

Hardcoding to EnzymeVJP makes it segafult differently:

using SciMLSensitivity, Flux, LinearAlgebra
using DiffEqNoiseProcess
using StochasticDiffEq
using Statistics
using SciMLSensitivity
using DiffEqBase.EnsembleAnalysis
using Zygote
using Optimization, OptimizationFlux

using Random
Random.seed!(238248735)

x_size = 2 # Size of the spatial dimensions in the SDE
v_size = 2 # Output size of the control

# Define Neural Network for the control input
input_size = x_size + 1 # size of the spatial dimensions PLUS one time dimensions
nn_initial = Chain(Dense(input_size, v_size)) # The actual neural network
p_nn, model = Flux.destructure(nn_initial)
nn(x, p) = model(p)(x)

# Define the right hand side of the SDE
const_mat = zeros(Float64, (x_size, v_size))
for i in 1:max(x_size, v_size)
    const_mat[i, i] = 1
end

function f!(du, u, p, t)
    MM = nn([u; t], p)
    du .= u + const_mat * MM
end

function g!(du, u, p, t)
    du .= false * u .+ sqrt(2 * 0.001)
end

# Define SDE problem
u0 = vec(rand(Float64, (x_size, 1)))
tspan = (0.0, 1.0)
ts = collect(0:0.1:1)
prob = SDEProblem{true}(f!, g!, u0, tspan, p_nn)

W = WienerProcess(0.0, 0.0, 0.0)
probscalar = SDEProblem{true}(f!, g!, u0, tspan, p_nn, noise=W)

# Defining the loss function
function loss(pars, prob, alg)
    function prob_func(prob, i, repeat)
        # Prepare new initial state and remake the problem
        u0tmp = vec(rand(Float64, (x_size, 1)))

        remake(prob, p=pars, u0=u0tmp)
    end

    ensembleprob = EnsembleProblem(prob, prob_func=prob_func)

    _sol = solve(ensembleprob, alg, EnsembleThreads(), sensealg=BacksolveAdjoint(autojacvec=EnzymeVJP()),
        saveat=ts, trajectories=10,
        abstol=1e-1, reltol=1e-1)
    A = convert(Array, _sol)
    sum(abs2, A .- 1), mean(A)
end

# Actually training/fitting the model
losses = []
function callback(θ, l, pred)
    begin
        push!(losses, l)
        if length(losses) % 1 == 0
            println("Current loss after $(length(losses)) iterations: $(losses[end])")
        end
        false
    end
end

optf = Optimization.OptimizationFunction((p, _) -> loss(p, probscalar, LambaEM()),
    Optimization.AutoZygote())
optprob = Optimization.OptimizationProblem(optf, p_nn)
res1 = Optimization.solve(optprob, ADAM(0.1), callback=callback, maxiters=5)
not handling more than 6 pointer lookups deep dt:{[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer} only(-1): {[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer}
not handling more than 6 pointer lookups deep dt:{[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer} only(-1): {[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer}
not handling more than 6 pointer lookups deep dt:{[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer} only(-1): {[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer}
not handling more than 6 pointer lookups deep dt:{[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer} only(-1): {[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer}
not handling more than 6 pointer lookups deep dt:{[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer} only(-1): {[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer}
not handling more than 6 pointer lookups deep dt:{[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer} only(-1): {[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer}
not handling more than 6 pointer lookups deep dt:{[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer} only(-1): {[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer}
not handling more than 6 pointer lookups deep dt:{[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer} only(-1): {[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer}
not handling more than 6 pointer lookups deep dt:{[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer} only(-1): {[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer}
not handling more than 6 pointer lookups deep dt:{[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,0]:Float@double, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,0,8,0]:Float@double, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer} only(-1): {[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,0]:Float@double, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,0,8,0]:Float@double, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer}
not handling more than 6 pointer lookups deep dt:{[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,0]:Float@double, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,0,8,0]:Float@double, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer} only(-1): {[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,0]:Float@double, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,0,8,0]:Float@double, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer}
not handling more than 6 pointer lookups deep dt:{[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer} only(-1): {[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer}
not handling more than 6 pointer lookups deep dt:{[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer} only(-1): {[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer}
not handling more than 6 pointer lookups deep dt:{[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer} only(-1): {[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer}
not handling more than 6 pointer lookups deep dt:{[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer} only(-1): {[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer}
not handling more than 6 pointer lookups deep dt:{[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer} only(-1): {[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer}
not handling more than 6 pointer lookups deep dt:{[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer} only(-1): {[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer}
not handling more than 6 pointer lookups deep dt:{[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer} only(-1): {[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer}
not handling more than 6 pointer lookups deep dt:{[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer} only(-1): {[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer}
not handling more than 6 pointer lookups deep dt:{[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer} only(-1): {[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer}
not handling more than 6 pointer lookups deep dt:{[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,0]:Float@double, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,0,8,0]:Float@double, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer} only(-1): {[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,0]:Float@double, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,0,8,0]:Float@double, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer}
not handling more than 6 pointer lookups deep dt:{[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,0]:Float@double, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,0,8,0]:Float@double, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer} only(-1): {[]:Pointer, [0]:Pointer, [0,0]:Pointer, [0,0,0]:Pointer, [0,0,0,0]:Float@double, [0,0,0,8]:Float@double, [0,0,0,24]:Integer, [0,0,0,25]:Integer, [0,0,0,26]:Integer, [0,0,0,27]:Integer, [0,0,0,28]:Integer, [0,0,0,29]:Integer, [0,0,0,30]:Integer, [0,0,0,31]:Integer, [0,0,0,32]:Pointer, [0,0,0,32,0]:Pointer, [0,0,0,32,0,0]:Pointer, [0,0,0,32,0,8]:Integer, [0,0,0,32,0,9]:Integer, [0,0,0,32,0,10]:Integer, [0,0,0,32,0,11]:Integer, [0,0,0,32,0,12]:Integer, [0,0,0,32,0,13]:Integer, [0,0,0,32,0,14]:Integer, [0,0,0,32,0,15]:Integer, [0,0,0,32,8]:Pointer, [0,0,0,32,8,0]:Pointer, [0,0,0,32,8,8]:Integer, [0,0,0,32,8,9]:Integer, [0,0,0,32,8,10]:Integer, [0,0,0,32,8,11]:Integer, [0,0,0,32,8,12]:Integer, [0,0,0,32,8,13]:Integer, [0,0,0,32,8,14]:Integer, [0,0,0,32,8,15]:Integer, [0,0,8]:Pointer, [0,0,8,0]:Float@double, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer}
; ModuleID = 'text'
source_filename = "text"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128-ni:10:11:12:13"
target triple = "x86_64-w64-mingw32"

; Function Attrs: readnone
declare {}*** @julia.get_pgcstack() local_unnamed_addr #0

declare nonnull {} addrspace(10)* @ijl_invoke({} addrspace(10)*, {} addrspace(10)** nocapture readonly, i32, {} addrspace(10)*) local_unnamed_addr

; Function Attrs: inaccessiblememonly allocsize(1)
declare noalias nonnull {} addrspace(10)* @julia.gc_alloc_obj({}**, i64, {} addrspace(10)*) local_unnamed_addr #1

; Function Attrs: noreturn
declare void @ijl_throw({} addrspace(12)*) local_unnamed_addr #2

; Function Attrs: argmemonly nofree nounwind willreturn
declare void @llvm.memcpy.p10i8.p11i8.i64(i8 addrspace(10)* noalias nocapture writeonly, i8 addrspace(11)* noalias nocapture readonly, i64, i1 immarg) #3

; Function Attrs: noinline noreturn uwtable
define internal fastcc noalias nonnull align 536870912 dereferenceable(4294967295) {} addrspace(10)* @julia_throwdm_14307([1 x [1 x i64]] addrspace(11)* nocapture nofree noundef nonnull readonly align 8 dereferenceable(8) %0, [1 x [1 x i64]] addrspace(11)* nocapture nofree noundef nonnull readonly align 8 dereferenceable(8) %1) unnamed_addr #4 !dbg !15 {
top:
  %2 = call {}*** @julia.get_pgcstack()
  %current_task14 = getelementptr inbounds {}**, {}*** %2, i64 -12, !dbg !17
  %current_task1 = bitcast {}*** %current_task14 to {}**, !dbg !17
  %3 = call noalias nonnull {} addrspace(10)* @julia.gc_alloc_obj({}** nonnull %current_task1, i64 noundef 8, {} addrspace(10)* noundef addrspacecast ({}* inttoptr (i64 271988624 to {}*) to {} addrspace(10)*)) #15, !dbg !17
  %4 = getelementptr inbounds [1 x [1 x i64]], [1 x [1 x i64]] addrspace(11)* %0, i64 0, i64 0, i64 0, !dbg !17
  %5 = bitcast {} addrspace(10)* %3 to i64 addrspace(10)*, !dbg !17
  %6 = load i64, i64 addrspace(11)* %4, align 8, !dbg !17, !tbaa !18
  store i64 %6, i64 addrspace(10)* %5, align 8, !dbg !17, !tbaa !18
  %7 = call noalias nonnull {} addrspace(10)* @julia.gc_alloc_obj({}** nonnull %current_task1, i64 noundef 8, {} addrspace(10)* noundef addrspacecast ({}* inttoptr (i64 271988624 to {}*) to {} addrspace(10)*)) #15, !dbg !17
  %8 = getelementptr inbounds [1 x [1 x i64]], [1 x [1 x i64]] addrspace(11)* %1, i64 0, i64 0, i64 0, !dbg !17
  %9 = bitcast {} addrspace(10)* %7 to i64 addrspace(10)*, !dbg !17
  %10 = load i64, i64 addrspace(11)* %8, align 8, !dbg !17, !tbaa !18
  store i64 %10, i64 addrspace(10)* %9, align 8, !dbg !17, !tbaa !18
  %11 = call cc38 nonnull {} addrspace(10)* bitcast ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32, {} addrspace(10)*)* @ijl_invoke to {} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*)*)({} addrspace(10)* addrspacecast ({}* inttoptr (i64 301595568 to {}*) to {} addrspace(10)*), {} addrspace(10)* addrspacecast ({}* inttoptr (i64 270017328 to {}*) to {} addrspace(10)*), {} addrspace(10)* addrspacecast ({}* inttoptr (i64 315480400 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %3, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 315480336 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %7) #16, !dbg !17
  %12 = call noalias nonnull {} addrspace(10)* @julia.gc_alloc_obj({}** nonnull %current_task1, i64 noundef 8, {} addrspace(10)* noundef addrspacecast ({}* inttoptr (i64 280105248 to {}*) to {} addrspace(10)*)) #15, !dbg !17
  %13 = bitcast {} addrspace(10)* %12 to {} addrspace(10)* addrspace(10)*, !dbg !17
  store {} addrspace(10)* %11, {} addrspace(10)* addrspace(10)* %13, align 8, !dbg !17, !tbaa !21
  %14 = addrspacecast {} addrspace(10)* %12 to {} addrspace(12)*, !dbg !17
  call void @ijl_throw({} addrspace(12)* %14) #2, !dbg !17
  unreachable, !dbg !17
}

; Function Attrs: uwtable
define internal fastcc nonnull {} addrspace(10)* @julia___14313({} addrspace(10)* nonnull align 16 dereferenceable(40) %0) unnamed_addr #5 !dbg !25 {
top:
  %1 = alloca [1 x [1 x i64]], align 8
  %2 = alloca [1 x [1 x i64]], align 8
  %3 = call {}*** @julia.get_pgcstack()
  %4 = bitcast {} addrspace(10)* %0 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)*, !dbg !26
  %5 = addrspacecast { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)* %4 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !26
  %6 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %5, i64 0, i32 1, !dbg !26
  %7 = load i64, i64 addrspace(11)* %6, align 8, !dbg !26, !tbaa !40, !range !43
  %8 = getelementptr inbounds [1 x [1 x i64]], [1 x [1 x i64]]* %1, i64 0, i64 0, i64 0, !dbg !44
  store i64 %7, i64* %8, align 8, !dbg !44, !tbaa !48
  %9 = call noalias nonnull {} addrspace(10)* @ijl_alloc_array_1d({} addrspace(10)* noundef addrspacecast ({}* inttoptr (i64 272612528 to {}*) to {} addrspace(10)*), i64 %7), !dbg !50
  %10 = bitcast {} addrspace(10)* %9 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)*, !dbg !63
  %11 = addrspacecast { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)* %10 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !63
  %12 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %11, i64 0, i32 1, !dbg !63
  %13 = load i64, i64 addrspace(11)* %12, align 8, !dbg !63, !tbaa !40, !range !43
  %.not.not = icmp eq i64 %13, %7, !dbg !68
  br i1 %.not.not, label %L20, label %L108, !dbg !65

L20:                                              ; preds = %top
  %14 = addrspacecast {} addrspace(10)* %9 to {} addrspace(11)*, !dbg !79
  %15 = addrspacecast {} addrspace(10)* %0 to {} addrspace(11)*, !dbg !79
  %.not = icmp eq {} addrspace(11)* %14, %15, !dbg !79
  br i1 %.not, label %L50, label %L23, !dbg !79

L23:                                              ; preds = %L20
  %16 = load i8, i8* inttoptr (i64 272612584 to i8*), align 8, !dbg !88, !tbaa !98, !invariant.load !4
  %17 = and i8 %16, 8, !dbg !94
  %.not18.not = icmp eq i8 %17, 0, !dbg !94
  br i1 %.not18.not, label %L33, label %L50, !dbg !94

L33:                                              ; preds = %L23
  %18 = call nonnull {}* @julia.pointer_from_objref({} addrspace(11)* %14) #7, !dbg !100
  %19 = bitcast {}* %18 to i8**, !dbg !100
  %20 = load i8*, i8** %19, align 8, !dbg !100, !tbaa !107, !nonnull !4
  %21 = call nonnull {}* @julia.pointer_from_objref({} addrspace(11)* %15) #7, !dbg !100
  %22 = bitcast {}* %21 to i8**, !dbg !100
  %23 = load i8*, i8** %22, align 8, !dbg !100, !tbaa !107, !nonnull !4
  %.not21 = icmp eq i8* %20, %23, !dbg !109
  br i1 %.not21, label %L45, label %L50, !dbg !96

L45:                                              ; preds = %L33
  %24 = call nonnull {} addrspace(10)* @ijl_array_copy({} addrspace(10)* noundef nonnull %0), !dbg !115
  br label %L50, !dbg !96

L50:                                              ; preds = %L33, %L23, %L20, %L45
  %value_phi1 = phi {} addrspace(10)* [ %24, %L45 ], [ %0, %L20 ], [ %0, %L23 ], [ %0, %L33 ]
  %.not14 = icmp eq i64 %7, 0, !dbg !119
  br i1 %.not14, label %L120, label %L72.lr.ph, !dbg !122

L72.lr.ph:                                        ; preds = %L50
  %25 = bitcast {} addrspace(10)* %value_phi1 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)*, !dbg !126
  %26 = addrspacecast { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)* %25 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !126
  %27 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %26, i64 0, i32 1, !dbg !126
  %28 = load i64, i64 addrspace(11)* %27, align 8, !dbg !126, !tbaa !40, !range !43
  %.not16 = icmp eq i64 %28, 1, !dbg !132
  %29 = bitcast {} addrspace(10)* %value_phi1 to double addrspace(13)* addrspace(10)*
  %30 = addrspacecast double addrspace(13)* addrspace(10)* %29 to double addrspace(13)* addrspace(11)*
  %31 = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %30, align 8, !tbaa !107, !nonnull !4
  %32 = bitcast {} addrspace(10)* %9 to double addrspace(13)* addrspace(10)*
  %33 = addrspacecast double addrspace(13)* addrspace(10)* %32 to double addrspace(13)* addrspace(11)*
  %34 = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %33, align 8, !tbaa !107, !nonnull !4
  br i1 %.not16, label %L72.lr.ph.split.us, label %L72.lr.ph.L72.lr.ph.split_crit_edge, !dbg !138

L72.lr.ph.L72.lr.ph.split_crit_edge:              ; preds = %L72.lr.ph
  br label %L72.us24, !dbg !138

L72.lr.ph.split.us:                               ; preds = %L72.lr.ph
  br label %L72.us.us, !dbg !138

L72.us.us:                                        ; preds = %L72.lr.ph.split.us, %L72.us.us
  %value_phi223.us.us = phi i64 [ %38, %L72.us.us ], [ 0, %L72.lr.ph.split.us ]
  %35 = load double, double addrspace(13)* %31, align 8, !dbg !139, !tbaa !152
  %36 = call double @llvm.copysign.f64(double noundef 0.000000e+00, double %35), !dbg !154
  %37 = getelementptr inbounds double, double addrspace(13)* %34, i64 %value_phi223.us.us, !dbg !163
  store double %36, double addrspace(13)* %37, align 8, !dbg !163, !tbaa !152
  %38 = add nuw nsw i64 %value_phi223.us.us, 1, !dbg !165
  %exitcond29.not = icmp eq i64 %38, %7, !dbg !168
  br i1 %exitcond29.not, label %L120, label %L72.us.us, !dbg !138, !llvm.loop !169

L72.us:                                           ; No predecessors!
  unreachable

L72.us24:                                         ; preds = %L72.lr.ph.L72.lr.ph.split_crit_edge, %L72.us24
  %value_phi223.us25 = phi i64 [ %43, %L72.us24 ], [ 0, %L72.lr.ph.L72.lr.ph.split_crit_edge ]
  %39 = getelementptr inbounds double, double addrspace(13)* %31, i64 %value_phi223.us25, !dbg !139
  %40 = load double, double addrspace(13)* %39, align 8, !dbg !139, !tbaa !152
  %41 = call double @llvm.copysign.f64(double noundef 0.000000e+00, double %40), !dbg !154
  %42 = getelementptr inbounds double, double addrspace(13)* %34, i64 %value_phi223.us25, !dbg !163
  store double %41, double addrspace(13)* %42, align 8, !dbg !163, !tbaa !152
  %43 = add nuw nsw i64 %value_phi223.us25, 1, !dbg !165
  %exitcond28.not = icmp eq i64 %43, %7, !dbg !168
  br i1 %exitcond28.not, label %L120, label %L72.us24, !dbg !138, !llvm.loop !169

L72:                                              ; No predecessors!
  unreachable

L108:                                             ; preds = %top
  %44 = getelementptr inbounds [1 x [1 x i64]], [1 x [1 x i64]]* %2, i64 0, i64 0, i64 0, !dbg !170
  store i64 %13, i64* %44, align 8, !dbg !170, !tbaa !48
  %45 = addrspacecast [1 x [1 x i64]]* %2 to [1 x [1 x i64]] addrspace(11)*, !dbg !65
  %46 = addrspacecast [1 x [1 x i64]]* %1 to [1 x [1 x i64]] addrspace(11)*, !dbg !65
  %47 = call fastcc nonnull {} addrspace(10)* @julia_throwdm_14307([1 x [1 x i64]] addrspace(11)* nocapture nofree noundef nonnull readonly align 8 dereferenceable(8) %45, [1 x [1 x i64]] addrspace(11)* nocapture nofree noundef nonnull readonly align 8 dereferenceable(8) %46) #17, !dbg !65
  unreachable, !dbg !65

L120:                                             ; preds = %L72.us24, %L72.us.us, %L50
  ret {} addrspace(10)* %9, !dbg !39
}

; Function Attrs: nofree nosync nounwind readnone speculatable willreturn
declare double @llvm.copysign.f64(double, double) #6

; Function Attrs: nounwind readnone
declare nonnull {}* @julia.pointer_from_objref({} addrspace(11)*) local_unnamed_addr #7

; Function Attrs: uwtable
define internal fastcc nonnull align 16 dereferenceable(40) {} addrspace(10)* @julia_g__14301({} addrspace(10)* nonnull align 16 dereferenceable(40) %0, {} addrspace(10)* nonnull align 16 dereferenceable(40) %1) unnamed_addr #5 !dbg !172 {
top:
  %2 = call {}*** @julia.get_pgcstack()
  %3 = call fastcc nonnull {} addrspace(10)* @julia___14313({} addrspace(10)* nonnull align 16 dereferenceable(40) %1) #5, !dbg !173
  %4 = bitcast {} addrspace(10)* %0 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)*, !dbg !174
  %5 = addrspacecast { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)* %4 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !174
  %6 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %5, i64 0, i32 1, !dbg !174
  %7 = load i64, i64 addrspace(11)* %6, align 8, !dbg !174, !tbaa !40, !range !43
  %8 = bitcast {} addrspace(10)* %3 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)*, !dbg !181
  %9 = addrspacecast { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)* %8 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !181
  %10 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %9, i64 0, i32 1, !dbg !181
  %11 = load i64, i64 addrspace(11)* %10, align 8, !dbg !181, !tbaa !40, !range !43
  %12 = icmp ne i64 %7, %11, !dbg !188
  %13 = icmp ne i64 %11, 1, !dbg !192
  %14 = and i1 %12, %13, !dbg !194
  br i1 %14, label %L20, label %L38, !dbg !194

L20:                                              ; preds = %top
  %current_task823 = getelementptr inbounds {}**, {}*** %2, i64 -12, !dbg !194
  %current_task8 = bitcast {}*** %current_task823 to {}**, !dbg !194
  %15 = call noalias nonnull {} addrspace(10)* @julia.gc_alloc_obj({}** nonnull %current_task8, i64 noundef 8, {} addrspace(10)* noundef addrspacecast ({}* inttoptr (i64 280105248 to {}*) to {} addrspace(10)*)) #15, !dbg !194
  %16 = bitcast {} addrspace(10)* %15 to {} addrspace(10)* addrspace(10)*, !dbg !194
  store {} addrspace(10)* addrspacecast ({}* inttoptr (i64 294283568 to {}*) to {} addrspace(10)*), {} addrspace(10)* addrspace(10)* %16, align 8, !dbg !194, !tbaa !21
  %17 = addrspacecast {} addrspace(10)* %15 to {} addrspace(12)*, !dbg !194
  call void @ijl_throw({} addrspace(12)* %17) #2, !dbg !194
  unreachable, !dbg !194

L38:                                              ; preds = %top
  %18 = addrspacecast {} addrspace(10)* %0 to {} addrspace(11)*, !dbg !196
  %19 = addrspacecast {} addrspace(10)* %3 to {} addrspace(11)*, !dbg !196
  %.not = icmp eq {} addrspace(11)* %18, %19, !dbg !196
  br i1 %.not, label %L68, label %L41, !dbg !196

L41:                                              ; preds = %L38
  %20 = load i8, i8* inttoptr (i64 272612584 to i8*), align 8, !dbg !206, !tbaa !98, !invariant.load !4
  %21 = and i8 %20, 8, !dbg !210
  %.not21.not = icmp eq i8 %21, 0, !dbg !210
  br i1 %.not21.not, label %L51, label %L68, !dbg !210

L51:                                              ; preds = %L41
  %22 = call nonnull {}* @julia.pointer_from_objref({} addrspace(11)* %18) #7, !dbg !214
  %23 = bitcast {}* %22 to i8**, !dbg !214
  %24 = load i8*, i8** %23, align 8, !dbg !214, !tbaa !107, !nonnull !4
  %25 = call nonnull {}* @julia.pointer_from_objref({} addrspace(11)* %19) #7, !dbg !214
  %26 = bitcast {}* %25 to i8**, !dbg !214
  %27 = load i8*, i8** %26, align 8, !dbg !214, !tbaa !107, !nonnull !4
  %.not25 = icmp eq i8* %24, %27, !dbg !220
  br i1 %.not25, label %L63, label %L68, !dbg !212

L63:                                              ; preds = %L51
  %28 = call nonnull {} addrspace(10)* @ijl_array_copy({} addrspace(10)* noundef nonnull %3), !dbg !225
  br label %L68, !dbg !212

L68:                                              ; preds = %L41, %L63, %L51, %L38
  %value_phi2 = phi {} addrspace(10)* [ %3, %L38 ], [ %28, %L63 ], [ %3, %L51 ], [ %3, %L41 ]
  %.not18 = icmp eq i64 %7, 0, !dbg !229
  br i1 %.not18, label %L134, label %L89.lr.ph, !dbg !231

L89.lr.ph:                                        ; preds = %L68
  %29 = bitcast {} addrspace(10)* %value_phi2 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)*, !dbg !234
  %30 = addrspacecast { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)* %29 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !234
  %31 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %30, i64 0, i32 1, !dbg !234
  %32 = load i64, i64 addrspace(11)* %31, align 8, !dbg !234, !tbaa !40, !range !43
  %.not20 = icmp eq i64 %32, 1, !dbg !240
  %33 = bitcast {} addrspace(10)* %value_phi2 to double addrspace(13)* addrspace(10)*
  %34 = addrspacecast double addrspace(13)* addrspace(10)* %33 to double addrspace(13)* addrspace(11)*
  %35 = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %34, align 8, !tbaa !107, !nonnull !4
  %36 = bitcast {} addrspace(10)* %0 to double addrspace(13)* addrspace(10)*
  %37 = addrspacecast double addrspace(13)* addrspace(10)* %36 to double addrspace(13)* addrspace(11)*
  %38 = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %37, align 16, !tbaa !107, !nonnull !4
  br i1 %.not20, label %L89.us, label %L89, !dbg !246

L89.us:                                           ; preds = %L89.lr.ph, %L89.us
  %value_phi327.us = phi i64 [ %42, %L89.us ], [ 0, %L89.lr.ph ]
  %39 = load double, double addrspace(13)* %35, align 8, !dbg !247, !tbaa !152
  %40 = fadd double %39, 0x3FA6E5B7D16657E1, !dbg !259
  %41 = getelementptr inbounds double, double addrspace(13)* %38, i64 %value_phi327.us, !dbg !265
  store double %40, double addrspace(13)* %41, align 8, !dbg !265, !tbaa !152
  %42 = add nuw nsw i64 %value_phi327.us, 1, !dbg !267
  %exitcond28.not = icmp eq i64 %42, %7, !dbg !270
  br i1 %exitcond28.not, label %L134, label %L89.us, !dbg !246, !llvm.loop !271

L89:                                              ; preds = %L89.lr.ph, %L89
  %value_phi327 = phi i64 [ %47, %L89 ], [ 0, %L89.lr.ph ]
  %43 = getelementptr inbounds double, double addrspace(13)* %35, i64 %value_phi327, !dbg !247
  %44 = load double, double addrspace(13)* %43, align 8, !dbg !247, !tbaa !152
  %45 = fadd double %44, 0x3FA6E5B7D16657E1, !dbg !259
  %46 = getelementptr inbounds double, double addrspace(13)* %38, i64 %value_phi327, !dbg !265
  store double %45, double addrspace(13)* %46, align 8, !dbg !265, !tbaa !152
  %47 = add nuw nsw i64 %value_phi327, 1, !dbg !267
  %exitcond.not = icmp eq i64 %47, %7, !dbg !270
  br i1 %exitcond.not, label %L134, label %L89, !dbg !246, !llvm.loop !271

L134:                                             ; preds = %L89, %L89.us, %L68
  ret {} addrspace(10)* undef, !dbg !173
}

; Function Attrs: inaccessiblemem_or_argmemonly
declare noalias {} addrspace(10)* @ijl_array_copy({} addrspace(10)*) local_unnamed_addr #8

; Function Attrs: inaccessiblememonly
declare noalias {} addrspace(10)* @ijl_alloc_array_1d({} addrspace(10)*, i64) local_unnamed_addr #9

define void @julia__118_14298_inner.1({} addrspace(10)* nonnull align 16 dereferenceable(40) %0, {} addrspace(10)* nonnull align 16 dereferenceable(40) %1, {} addrspace(10)* nocapture nofree nonnull readnone align 16 dereferenceable(40) %2, double %3) local_unnamed_addr !dbg !272 {
entry:
  %4 = call {}*** @julia.get_pgcstack()
  %5 = call fastcc nonnull {} addrspace(10)* @julia_g__14301({} addrspace(10)* nonnull align 16 dereferenceable(40) %0, {} addrspace(10)* nonnull align 16 dereferenceable(40) %1) #5, !dbg !273
  ret void, !dbg !275
}

; Function Attrs: argmemonly nofree nosync nounwind willreturn
declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) #10

; Function Attrs: argmemonly nofree nosync nounwind willreturn
declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #10

; Function Attrs: mustprogress willreturn
define void @preprocess_julia__118_14298_inner.1({} addrspace(10)* nonnull align 16 dereferenceable(40) %0, {} addrspace(10)* nonnull align 16 dereferenceable(40) %1, {} addrspace(10)* nocapture nofree nonnull readnone align 16 dereferenceable(40) %2, double %3) local_unnamed_addr #11 !dbg !276 {
entry:
  %4 = call {}*** @julia.get_pgcstack() #11
  %5 = call fastcc nonnull {} addrspace(10)* @julia_g__14301({} addrspace(10)* nonnull align 16 dereferenceable(40) %0, {} addrspace(10)* nonnull align 16 dereferenceable(40) %1) #12, !dbg !277
  ret void, !dbg !279
}

; Function Attrs: mustprogress willreturn
define internal void @diffejulia__118_14298_inner.1({} addrspace(10)* nonnull align 16 dereferenceable(40) %0, {} addrspace(10)* %"'", {} addrspace(10)* nonnull align 16 dereferenceable(40) %1, {} addrspace(10)* %"'1", {} addrspace(10)* nocapture nofree nonnull readnone align 16 dereferenceable(40) %2, {} addrspace(10)* nocapture %"'2", double %3) local_unnamed_addr #11 !dbg !280 {
entry:
  %4 = call {}*** @julia.get_pgcstack() #11
  %5 = call fastcc nonnull {} addrspace(10)* @julia_g__14301({} addrspace(10)* nonnull align 16 dereferenceable(40) %0, {} addrspace(10)* nonnull align 16 dereferenceable(40) %1) #12, !dbg !281
  br label %invertentry, !dbg !283

allocsForInversion:                               ; No predecessors!

invertentry:                                      ; preds = %entry
}

; Function Attrs: mustprogress uwtable willreturn
define internal fastcc nonnull align 16 dereferenceable(40) {} addrspace(10)* @preprocess_julia_g__14301({} addrspace(10)* nonnull align 16 dereferenceable(40) %0, {} addrspace(10)* nonnull align 16 dereferenceable(40) %1) unnamed_addr #12 !dbg !284 {
top:
  %2 = call {}*** @julia.get_pgcstack() #11
  %3 = call fastcc nonnull {} addrspace(10)* @julia___14313({} addrspace(10)* nonnull align 16 dereferenceable(40) %1) #12, !dbg !285
  %4 = bitcast {} addrspace(10)* %0 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)*, !dbg !286
  %5 = addrspacecast { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)* %4 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !286
  %6 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %5, i64 0, i32 1, !dbg !286
  %7 = load i64, i64 addrspace(11)* %6, align 8, !dbg !286, !tbaa !40, !range !43
  %8 = bitcast {} addrspace(10)* %3 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)*, !dbg !290
  %9 = addrspacecast { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)* %8 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !290
  %10 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %9, i64 0, i32 1, !dbg !290
  %11 = load i64, i64 addrspace(11)* %10, align 8, !dbg !290, !tbaa !40, !range !43
  %12 = icmp ne i64 %7, %11, !dbg !295
  %13 = icmp ne i64 %11, 1, !dbg !297
  %14 = and i1 %12, %13, !dbg !298
  br i1 %14, label %L20, label %L38, !dbg !298

L20:                                              ; preds = %top
  %current_task823 = getelementptr inbounds {}**, {}*** %2, i64 -12, !dbg !298
  %current_task8 = bitcast {}*** %current_task823 to {}**, !dbg !298
  %15 = call noalias nonnull {} addrspace(10)* @julia.gc_alloc_obj({}** nonnull %current_task8, i64 noundef 8, {} addrspace(10)* noundef addrspacecast ({}* inttoptr (i64 280105248 to {}*) to {} addrspace(10)*)) #18, !dbg !298
  %16 = bitcast {} addrspace(10)* %15 to {} addrspace(10)* addrspace(10)*, !dbg !298
  store {} addrspace(10)* addrspacecast ({}* inttoptr (i64 294283568 to {}*) to {} addrspace(10)*), {} addrspace(10)* addrspace(10)* %16, align 8, !dbg !298, !tbaa !21
  %17 = addrspacecast {} addrspace(10)* %15 to {} addrspace(12)*, !dbg !298
  call void @ijl_throw({} addrspace(12)* %17) #19, !dbg !298
  unreachable, !dbg !298

L38:                                              ; preds = %top
  %18 = addrspacecast {} addrspace(10)* %0 to {} addrspace(11)*, !dbg !299
  %19 = addrspacecast {} addrspace(10)* %3 to {} addrspace(11)*, !dbg !299
  %.not = icmp eq {} addrspace(11)* %18, %19, !dbg !299
  br i1 %.not, label %L68, label %L41, !dbg !299

L41:                                              ; preds = %L38
  %20 = load i8, i8* inttoptr (i64 272612584 to i8*), align 8, !dbg !305, !tbaa !98, !invariant.load !4
  %21 = and i8 %20, 8, !dbg !307
  %.not21.not = icmp eq i8 %21, 0, !dbg !307
  br i1 %.not21.not, label %L51, label %L68, !dbg !307

L51:                                              ; preds = %L41
  %22 = call nonnull {}* @julia.pointer_from_objref({} addrspace(11)* %18) #20, !dbg !309
  %23 = bitcast {}* %22 to i8**, !dbg !309
  %24 = load i8*, i8** %23, align 8, !dbg !309, !tbaa !107, !nonnull !4
  %25 = call nonnull {}* @julia.pointer_from_objref({} addrspace(11)* %19) #20, !dbg !309
  %26 = bitcast {}* %25 to i8**, !dbg !309
  %27 = load i8*, i8** %26, align 8, !dbg !309, !tbaa !107, !nonnull !4
  %.not25 = icmp eq i8* %24, %27, !dbg !312
  br i1 %.not25, label %L63, label %L68, !dbg !308

L63:                                              ; preds = %L51
  %28 = call nonnull {} addrspace(10)* @ijl_array_copy({} addrspace(10)* noundef nonnull %3) #11, !dbg !315
  br label %L68, !dbg !308

L68:                                              ; preds = %L63, %L51, %L41, %L38
  %value_phi2 = phi {} addrspace(10)* [ %3, %L38 ], [ %28, %L63 ], [ %3, %L51 ], [ %3, %L41 ]
  %.not18 = icmp eq i64 %7, 0, !dbg !317
  br i1 %.not18, label %L134, label %L89.lr.ph, !dbg !318

L89.lr.ph:                                        ; preds = %L68
  %29 = bitcast {} addrspace(10)* %value_phi2 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)*, !dbg !320
  %30 = addrspacecast { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)* %29 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !320
  %31 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %30, i64 0, i32 1, !dbg !320
  %32 = load i64, i64 addrspace(11)* %31, align 8, !dbg !320, !tbaa !40, !range !43
  %.not20 = icmp eq i64 %32, 1, !dbg !324
  %33 = bitcast {} addrspace(10)* %value_phi2 to double addrspace(13)* addrspace(10)*
  %34 = addrspacecast double addrspace(13)* addrspace(10)* %33 to double addrspace(13)* addrspace(11)*
  %35 = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %34, align 8, !tbaa !107, !nonnull !4
  %36 = bitcast {} addrspace(10)* %0 to double addrspace(13)* addrspace(10)*
  %37 = addrspacecast double addrspace(13)* addrspace(10)* %36 to double addrspace(13)* addrspace(11)*
  %38 = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %37, align 16, !tbaa !107, !nonnull !4
  br i1 %.not20, label %L89.us.preheader, label %L89.preheader, !dbg !328

L89.preheader:                                    ; preds = %L89.lr.ph
  br label %L89, !dbg !328

L89.us.preheader:                                 ; preds = %L89.lr.ph
  br label %L89.us, !dbg !328

L89.us:                                           ; preds = %L89.us.preheader, %L89.us
  %iv1 = phi i64 [ %iv.next2, %L89.us ], [ 0, %L89.us.preheader ]
  %iv.next2 = add nuw nsw i64 %iv1, 1, !dbg !329
  %39 = load double, double addrspace(13)* %35, align 8, !dbg !329, !tbaa !152
  %40 = fadd double %39, 0x3FA6E5B7D16657E1, !dbg !336
  %41 = getelementptr inbounds double, double addrspace(13)* %38, i64 %iv1, !dbg !339
  store double %40, double addrspace(13)* %41, align 8, !dbg !339, !tbaa !152
  %exitcond28.not = icmp eq i64 %iv.next2, %7, !dbg !340
  br i1 %exitcond28.not, label %L134.loopexit, label %L89.us, !dbg !328, !llvm.loop !341

L89:                                              ; preds = %L89.preheader, %L89
  %iv = phi i64 [ %iv.next, %L89 ], [ 0, %L89.preheader ]
  %iv.next = add nuw nsw i64 %iv, 1, !dbg !329
  %42 = getelementptr inbounds double, double addrspace(13)* %35, i64 %iv, !dbg !329
  %43 = load double, double addrspace(13)* %42, align 8, !dbg !329, !tbaa !152
  %44 = fadd double %43, 0x3FA6E5B7D16657E1, !dbg !336
  %45 = getelementptr inbounds double, double addrspace(13)* %38, i64 %iv, !dbg !339
  store double %44, double addrspace(13)* %45, align 8, !dbg !339, !tbaa !152
  %exitcond.not = icmp eq i64 %iv.next, %7, !dbg !340
  br i1 %exitcond.not, label %L134.loopexit3, label %L89, !dbg !328, !llvm.loop !341

L134.loopexit:                                    ; preds = %L89.us
  br label %L134, !dbg !285

L134.loopexit3:                                   ; preds = %L89
  br label %L134, !dbg !285

L134:                                             ; preds = %L134.loopexit3, %L134.loopexit, %L68
  ret {} addrspace(10)* undef, !dbg !285
}

; Function Attrs: mustprogress uwtable willreturn
define internal fastcc nonnull align 16 dereferenceable(40) void @diffejulia_g__14301({} addrspace(10)* nonnull align 16 dereferenceable(40) %0, {} addrspace(10)* %"'", {} addrspace(10)* nonnull align 16 dereferenceable(40) %1, {} addrspace(10)* %"'1") unnamed_addr #12 !dbg !342 {
top:
  %2 = call {}*** @julia.get_pgcstack() #11
  %_augmented = call fastcc { { {} addrspace(10)*, {} addrspace(10)*, i64, i1, i1, i1 }, {} addrspace(10)*, {} addrspace(10)* } @augmented_julia___14313({} addrspace(10)* %1, {} addrspace(10)* %"'1"), !dbg !343
  %subcache = extractvalue { { {} addrspace(10)*, {} addrspace(10)*, i64, i1, i1, i1 }, {} addrspace(10)*, {} addrspace(10)* } %_augmented, 0, !dbg !343
  %3 = extractvalue { { {} addrspace(10)*, {} addrspace(10)*, i64, i1, i1, i1 }, {} addrspace(10)*, {} addrspace(10)* } %_augmented, 1, !dbg !343
  %"'ac" = extractvalue { { {} addrspace(10)*, {} addrspace(10)*, i64, i1, i1, i1 }, {} addrspace(10)*, {} addrspace(10)* } %_augmented, 2, !dbg !344
  %4 = bitcast {} addrspace(10)* %0 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)*, !dbg !344
  %5 = addrspacecast { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)* %4 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !344
  %6 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %5, i64 0, i32 1, !dbg !344
  %7 = load i64, i64 addrspace(11)* %6, align 8, !dbg !344, !tbaa !40, !range !43
  %8 = bitcast {} addrspace(10)* %3 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)*, !dbg !348
  %9 = addrspacecast { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)* %8 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !348
  %10 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %9, i64 0, i32 1, !dbg !348
  %11 = load i64, i64 addrspace(11)* %10, align 8, !dbg !348, !tbaa !40, !range !43
  %12 = icmp ne i64 %7, %11, !dbg !353
  %13 = icmp ne i64 %11, 1, !dbg !355
  %14 = and i1 %12, %13, !dbg !356
  br i1 %14, label %L20, label %L38, !dbg !356

L20:                                              ; preds = %top
  %current_task823 = getelementptr inbounds {}**, {}*** %2, i64 -12, !dbg !356
  %current_task8 = bitcast {}*** %current_task823 to {}**, !dbg !356
  %15 = call noalias nonnull {} addrspace(10)* @julia.gc_alloc_obj({}** nonnull %current_task8, i64 noundef 8, {} addrspace(10)* noundef addrspacecast ({}* inttoptr (i64 280105248 to {}*) to {} addrspace(10)*)) #18, !dbg !356
  %16 = bitcast {} addrspace(10)* %15 to {} addrspace(10)* addrspace(10)*, !dbg !356
  store {} addrspace(10)* addrspacecast ({}* inttoptr (i64 294283568 to {}*) to {} addrspace(10)*), {} addrspace(10)* addrspace(10)* %16, align 8, !dbg !356, !tbaa !21
  %17 = addrspacecast {} addrspace(10)* %15 to {} addrspace(12)*, !dbg !356
  call void @ijl_throw({} addrspace(12)* %17) #19, !dbg !356
  unreachable, !dbg !356

L38:                                              ; preds = %top
  %18 = addrspacecast {} addrspace(10)* %0 to {} addrspace(11)*, !dbg !357
  %19 = addrspacecast {} addrspace(10)* %3 to {} addrspace(11)*, !dbg !357
  %.not = icmp eq {} addrspace(11)* %18, %19, !dbg !357
  br i1 %.not, label %L68, label %L41, !dbg !357

L41:                                              ; preds = %L38
  %20 = load i8, i8* inttoptr (i64 272612584 to i8*), align 8, !dbg !363, !tbaa !98, !invariant.load !4
  %21 = and i8 %20, 8, !dbg !365
  %.not21.not = icmp eq i8 %21, 0, !dbg !365
  br i1 %.not21.not, label %L51, label %L68, !dbg !365

L51:                                              ; preds = %L41
  %22 = call nonnull {}* @julia.pointer_from_objref({} addrspace(11)* %18) #20, !dbg !367
  %"'ip_phi2" = phi {}* , !dbg !367
  %23 = bitcast {}* %22 to i8**, !dbg !367
  %24 = load i8*, i8** %23, align 8, !dbg !367, !tbaa !107, !nonnull !4
  %"'il_phi" = phi i8* , !dbg !367
  %25 = call nonnull {}* @julia.pointer_from_objref({} addrspace(11)* %19) #20, !dbg !367
  %"'ip_phi3" = phi {}* , !dbg !367
  %26 = bitcast {}* %25 to i8**, !dbg !367
  %27 = load i8*, i8** %26, align 8, !dbg !367, !tbaa !107, !nonnull !4
  %"'il_phi4" = phi i8* , !dbg !370
  %.not25 = icmp eq i8* %24, %27, !dbg !370
  br i1 %.not25, label %L63, label %L68, !dbg !366

L63:                                              ; preds = %L51
  %28 = call nonnull {} addrspace(10)* @ijl_array_copy({} addrspace(10)* noundef nonnull %3) #11, !dbg !373
  %"'ip_phi5" = phi {} addrspace(10)* , !dbg !366
  br label %L68, !dbg !366

L68:                                              ; preds = %L63, %L51, %L41, %L38
  %value_phi2 = phi {} addrspace(10)* [ %3, %L38 ], [ %28, %L63 ], [ %3, %L51 ], [ %3, %L41 ]
  %.not18 = icmp eq i64 %7, 0, !dbg !375
  br i1 %.not18, label %L134, label %L89.lr.ph, !dbg !376

L89.lr.ph:                                        ; preds = %L68
  %29 = bitcast {} addrspace(10)* %value_phi2 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)*, !dbg !378
  %30 = addrspacecast { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)* %29 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !378
  %31 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %30, i64 0, i32 1, !dbg !378
  %32 = load i64, i64 addrspace(11)* %31, align 8, !dbg !378, !tbaa !40, !range !43
  %.not20 = icmp eq i64 %32, 1, !dbg !382
  %33 = bitcast {} addrspace(10)* %value_phi2 to double addrspace(13)* addrspace(10)*
  %34 = addrspacecast double addrspace(13)* addrspace(10)* %33 to double addrspace(13)* addrspace(11)*
  %35 = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %34, align 8, !tbaa !107, !nonnull !4
  %"'il_phi6" = phi double addrspace(13)*
  %36 = bitcast {} addrspace(10)* %0 to double addrspace(13)* addrspace(10)*
  %37 = addrspacecast double addrspace(13)* addrspace(10)* %36 to double addrspace(13)* addrspace(11)*
  %38 = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %37, align 16, !tbaa !107, !nonnull !4
  %"'il_phi7" = phi double addrspace(13)* , !dbg !386
  br i1 %.not20, label %L89.us.preheader, label %L89.preheader, !dbg !386

L89.preheader:                                    ; preds = %L89.lr.ph
  %39 = add nsw i64 %7, -1, !dbg !386
  br label %L89, !dbg !386

L89.us.preheader:                                 ; preds = %L89.lr.ph
  %40 = add nsw i64 %7, -1, !dbg !386
  br label %L89.us, !dbg !386

L89.us:                                           ; preds = %L89.us, %L89.us.preheader
  %iv1 = phi i64 [ %iv.next2, %L89.us ], [ 0, %L89.us.preheader ]
  %iv.next2 = add nuw nsw i64 %iv1, 1, !dbg !387
  %41 = load double, double addrspace(13)* %35, align 8, !dbg !387, !tbaa !152
  %42 = fadd double %41, 0x3FA6E5B7D16657E1, !dbg !394
  %43 = getelementptr inbounds double, double addrspace(13)* %38, i64 %iv1, !dbg !397
  store double %42, double addrspace(13)* %43, align 8, !dbg !397, !tbaa !152
  %exitcond28.not = icmp eq i64 %iv.next2, %7, !dbg !398
  br i1 %exitcond28.not, label %L134.loopexit, label %L89.us, !dbg !386, !llvm.loop !399

L89:                                              ; preds = %L89, %L89.preheader
  %iv = phi i64 [ %iv.next, %L89 ], [ 0, %L89.preheader ]
  %iv.next = add nuw nsw i64 %iv, 1, !dbg !387
  %44 = getelementptr inbounds double, double addrspace(13)* %35, i64 %iv, !dbg !387
  %45 = load double, double addrspace(13)* %44, align 8, !dbg !387, !tbaa !152
  %46 = fadd double %45, 0x3FA6E5B7D16657E1, !dbg !394
  %47 = getelementptr inbounds double, double addrspace(13)* %38, i64 %iv, !dbg !397
  store double %46, double addrspace(13)* %47, align 8, !dbg !397, !tbaa !152
  %exitcond.not = icmp eq i64 %iv.next, %7, !dbg !398
  br i1 %exitcond.not, label %L134.loopexit3, label %L89, !dbg !386, !llvm.loop !399

L134.loopexit:                                    ; preds = %L89.us
  br label %L134, !dbg !343

L134.loopexit3:                                   ; preds = %L89
  br label %L134, !dbg !343

L134:                                             ; preds = %L134.loopexit3, %L134.loopexit, %L68
  br label %invertL134, !dbg !343

allocsForInversion:                               ; No predecessors!
  %"iv1'ac" = alloca i64, align 8
  %"iv'ac" = alloca i64, align 8

inverttop:                                        ; No predecessors!

invertL20:                                        ; No predecessors!

invertL38:                                        ; No predecessors!

invertL41:                                        ; No predecessors!

invertL51:                                        ; No predecessors!

invertL63:                                        ; No predecessors!

invertL68:                                        ; No predecessors!

invertL89.lr.ph:                                  ; No predecessors!

invertL89.preheader:                              ; No predecessors!

invertL89.us.preheader:                           ; No predecessors!

invertL89.us:                                     ; No predecessors!

invertL89:                                        ; No predecessors!

invertL134.loopexit:                              ; No predecessors!

invertL134.loopexit3:                             ; No predecessors!

invertL134:                                       ; preds = %L134
}

; Function Attrs: mustprogress uwtable willreturn
define internal fastcc nonnull {} addrspace(10)* @preprocess_julia___14313({} addrspace(10)* nonnull align 16 dereferenceable(40) %0) unnamed_addr #12 !dbg !400 {
top:
  %1 = call noalias nonnull dereferenceable(8) dereferenceable_or_null(8) i8* @malloc(i64 8), !enzyme_fromstack !401
  %2 = bitcast i8* %1 to [1 x [1 x i64]]*
  %3 = call noalias nonnull dereferenceable(8) dereferenceable_or_null(8) i8* @malloc(i64 8), !enzyme_fromstack !401
  %4 = bitcast i8* %3 to [1 x [1 x i64]]*
  %5 = call {}*** @julia.get_pgcstack() #11
  %6 = bitcast {} addrspace(10)* %0 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)*, !dbg !402
  %7 = addrspacecast { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)* %6 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !402
  %8 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %7, i64 0, i32 1, !dbg !402
  %9 = load i64, i64 addrspace(11)* %8, align 8, !dbg !402, !tbaa !40, !range !43
  %10 = getelementptr inbounds [1 x [1 x i64]], [1 x [1 x i64]]* %2, i64 0, i64 0, i64 0, !dbg !409
  store i64 %9, i64* %10, align 8, !dbg !409, !tbaa !48
  %11 = call noalias nonnull {} addrspace(10)* @ijl_alloc_array_1d({} addrspace(10)* noundef addrspacecast ({}* inttoptr (i64 272612528 to {}*) to {} addrspace(10)*), i64 %9) #11, !dbg !411
  %12 = bitcast {} addrspace(10)* %11 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)*, !dbg !419
  %13 = addrspacecast { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)* %12 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !419
  %14 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %13, i64 0, i32 1, !dbg !419
  %15 = load i64, i64 addrspace(11)* %14, align 8, !dbg !419, !tbaa !40, !range !43
  %.not.not = icmp eq i64 %15, %9, !dbg !423
  br i1 %.not.not, label %L20, label %L108, !dbg !421

L20:                                              ; preds = %top
  %16 = addrspacecast {} addrspace(10)* %11 to {} addrspace(11)*, !dbg !427
  %17 = addrspacecast {} addrspace(10)* %0 to {} addrspace(11)*, !dbg !427
  %.not = icmp eq {} addrspace(11)* %16, %17, !dbg !427
  br i1 %.not, label %L50, label %L23, !dbg !427

L23:                                              ; preds = %L20
  %18 = load i8, i8* inttoptr (i64 272612584 to i8*), align 8, !dbg !433, !tbaa !98, !invariant.load !4
  %19 = and i8 %18, 8, !dbg !435
  %.not18.not = icmp eq i8 %19, 0, !dbg !435
  br i1 %.not18.not, label %L33, label %L50, !dbg !435

L33:                                              ; preds = %L23
  %20 = call nonnull {}* @julia.pointer_from_objref({} addrspace(11)* %16) #20, !dbg !437
  %21 = bitcast {}* %20 to i8**, !dbg !437
  %22 = load i8*, i8** %21, align 8, !dbg !437, !tbaa !107, !nonnull !4
  %23 = call nonnull {}* @julia.pointer_from_objref({} addrspace(11)* %17) #20, !dbg !437
  %24 = bitcast {}* %23 to i8**, !dbg !437
  %25 = load i8*, i8** %24, align 8, !dbg !437, !tbaa !107, !nonnull !4
  %.not21 = icmp eq i8* %22, %25, !dbg !440
  br i1 %.not21, label %L45, label %L50, !dbg !436

L45:                                              ; preds = %L33
  %26 = call nonnull {} addrspace(10)* @ijl_array_copy({} addrspace(10)* noundef nonnull %0) #11, !dbg !443
  br label %L50, !dbg !436

L50:                                              ; preds = %L45, %L33, %L23, %L20
  %value_phi1 = phi {} addrspace(10)* [ %26, %L45 ], [ %0, %L20 ], [ %0, %L23 ], [ %0, %L33 ]
  %.not14 = icmp eq i64 %9, 0, !dbg !445
  br i1 %.not14, label %L120, label %L72.lr.ph, !dbg !446

L72.lr.ph:                                        ; preds = %L50
  %27 = bitcast {} addrspace(10)* %value_phi1 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)*, !dbg !448
  %28 = addrspacecast { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)* %27 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !448
  %29 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %28, i64 0, i32 1, !dbg !448
  %30 = load i64, i64 addrspace(11)* %29, align 8, !dbg !448, !tbaa !40, !range !43
  %.not16 = icmp eq i64 %30, 1, !dbg !452
  %31 = bitcast {} addrspace(10)* %value_phi1 to double addrspace(13)* addrspace(10)*
  %32 = addrspacecast double addrspace(13)* addrspace(10)* %31 to double addrspace(13)* addrspace(11)*
  %33 = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %32, align 8, !tbaa !107, !nonnull !4
  %34 = bitcast {} addrspace(10)* %11 to double addrspace(13)* addrspace(10)*
  %35 = addrspacecast double addrspace(13)* addrspace(10)* %34 to double addrspace(13)* addrspace(11)*
  %36 = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %35, align 8, !tbaa !107, !nonnull !4
  br i1 %.not16, label %L72.us.us.preheader, label %L72.us24.preheader, !dbg !456

L72.us24.preheader:                               ; preds = %L72.lr.ph
  br label %L72.us24, !dbg !456

L72.us.us.preheader:                              ; preds = %L72.lr.ph
  br label %L72.us.us, !dbg !456

L72.us.us:                                        ; preds = %L72.us.us.preheader, %L72.us.us
  %iv1 = phi i64 [ %iv.next2, %L72.us.us ], [ 0, %L72.us.us.preheader ]
  %iv.next2 = add nuw nsw i64 %iv1, 1, !dbg !457
  %37 = load double, double addrspace(13)* %33, align 8, !dbg !457, !tbaa !152
  %38 = call double @llvm.copysign.f64(double noundef 0.000000e+00, double %37) #11, !dbg !465
  %39 = getelementptr inbounds double, double addrspace(13)* %36, i64 %iv1, !dbg !469
  store double %38, double addrspace(13)* %39, align 8, !dbg !469, !tbaa !152
  %exitcond29.not = icmp eq i64 %iv.next2, %9, !dbg !470
  br i1 %exitcond29.not, label %L120.loopexit, label %L72.us.us, !dbg !456, !llvm.loop !471

L72.us24:                                         ; preds = %L72.us24.preheader, %L72.us24
  %iv = phi i64 [ %iv.next, %L72.us24 ], [ 0, %L72.us24.preheader ]
  %iv.next = add nuw nsw i64 %iv, 1, !dbg !457
  %40 = getelementptr inbounds double, double addrspace(13)* %33, i64 %iv, !dbg !457
  %41 = load double, double addrspace(13)* %40, align 8, !dbg !457, !tbaa !152
  %42 = call double @llvm.copysign.f64(double noundef 0.000000e+00, double %41) #11, !dbg !465
  %43 = getelementptr inbounds double, double addrspace(13)* %36, i64 %iv, !dbg !469
  store double %42, double addrspace(13)* %43, align 8, !dbg !469, !tbaa !152
  %exitcond28.not = icmp eq i64 %iv.next, %9, !dbg !470
  br i1 %exitcond28.not, label %L120.loopexit3, label %L72.us24, !dbg !456, !llvm.loop !471

L108:                                             ; preds = %top
  %44 = getelementptr inbounds [1 x [1 x i64]], [1 x [1 x i64]]* %4, i64 0, i64 0, i64 0, !dbg !472
  store i64 %15, i64* %44, align 8, !dbg !472, !tbaa !48
  %45 = addrspacecast [1 x [1 x i64]]* %4 to [1 x [1 x i64]] addrspace(11)*, !dbg !421
  %46 = addrspacecast [1 x [1 x i64]]* %2 to [1 x [1 x i64]] addrspace(11)*, !dbg !421
  %47 = call fastcc nonnull {} addrspace(10)* @julia_throwdm_14307([1 x [1 x i64]] addrspace(11)* nocapture nofree noundef nonnull readonly align 8 dereferenceable(8) %45, [1 x [1 x i64]] addrspace(11)* nocapture nofree noundef nonnull readonly align 8 dereferenceable(8) %46) #21, !dbg !421
  unreachable, !dbg !421

L120.loopexit:                                    ; preds = %L72.us.us
  br label %L120, !dbg !408

L120.loopexit3:                                   ; preds = %L72.us24
  br label %L120, !dbg !408

L120:                                             ; preds = %L120.loopexit3, %L120.loopexit, %L50
  ret {} addrspace(10)* %11, !dbg !408
}

declare i8* @malloc(i64)

; Function Attrs: argmemonly nofree nounwind willreturn writeonly
declare void @llvm.memset.p0i8.i64(i8* nocapture writeonly, i8, i64, i1 immarg) #13

; Function Attrs: mustprogress uwtable willreturn
define internal fastcc { { {} addrspace(10)*, {} addrspace(10)*, i64, i1, i1, i1 }, {} addrspace(10)*, {} addrspace(10)* } @augmented_julia___14313({} addrspace(10)* nonnull align 16 dereferenceable(40) %0, {} addrspace(10)* %"'") unnamed_addr #12 !dbg !473 {
top:
  %1 = alloca { { {} addrspace(10)*, {} addrspace(10)*, i64, i1, i1, i1 }, {} addrspace(10)*, {} addrspace(10)* }, align 8
  store { { {} addrspace(10)*, {} addrspace(10)*, i64, i1, i1, i1 }, {} addrspace(10)*, {} addrspace(10)* } zeroinitializer, { { {} addrspace(10)*, {} addrspace(10)*, i64, i1, i1, i1 }, {} addrspace(10)*, {} addrspace(10)* }* %1, align 8
  %2 = getelementptr inbounds { { {} addrspace(10)*, {} addrspace(10)*, i64, i1, i1, i1 }, {} addrspace(10)*, {} addrspace(10)* }, { { {} addrspace(10)*, {} addrspace(10)*, i64, i1, i1, i1 }, {} addrspace(10)*, {} addrspace(10)* }* %1, i32 0, i32 0
  %"iv1'ac" = alloca i64, align 8
  %"iv'ac" = alloca i64, align 8
  %3 = alloca i8, i64 8, align 8
  %4 = alloca i8, i64 8, align 8
  %5 = bitcast i8* %4 to [1 x [1 x i64]]*
  %6 = bitcast i8* %3 to [1 x [1 x i64]]*
  %7 = bitcast {} addrspace(10)* %0 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)*, !dbg !474
  %8 = addrspacecast { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)* %7 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !474
  %9 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %8, i64 0, i32 1, !dbg !474
  %10 = load i64, i64 addrspace(11)* %9, align 8, !dbg !474, !tbaa !40, !range !43
  %11 = getelementptr inbounds { {} addrspace(10)*, {} addrspace(10)*, i64, i1, i1, i1 }, { {} addrspace(10)*, {} addrspace(10)*, i64, i1, i1, i1 }* %2, i32 0, i32 2, !dbg !481
  store i64 %10, i64* %11, align 8, !dbg !481
  %12 = getelementptr inbounds [1 x [1 x i64]], [1 x [1 x i64]]* %5, i64 0, i64 0, i64 0, !dbg !481
  store i64 %10, i64* %12, align 8, !dbg !481, !tbaa !48
  %13 = call noalias nonnull {} addrspace(10)* @ijl_alloc_array_1d({} addrspace(10)* noundef addrspacecast ({}* inttoptr (i64 272612528 to {}*) to {} addrspace(10)*), i64 %10) #11, !dbg !483
  %14 = getelementptr inbounds { {} addrspace(10)*, {} addrspace(10)*, i64, i1, i1, i1 }, { {} addrspace(10)*, {} addrspace(10)*, i64, i1, i1, i1 }* %2, i32 0, i32 1, !dbg !491
  store {} addrspace(10)* %13, {} addrspace(10)** %14, align 8, !dbg !491
  %15 = call {} addrspace(10)* @ijl_alloc_array_1d({} addrspace(10)* addrspacecast ({}* inttoptr (i64 272612528 to {}*) to {} addrspace(10)*), i64 %10), !dbg !491
  %16 = getelementptr inbounds { {} addrspace(10)*, {} addrspace(10)*, i64, i1, i1, i1 }, { {} addrspace(10)*, {} addrspace(10)*, i64, i1, i1, i1 }* %2, i32 0, i32 0, !dbg !491
  store {} addrspace(10)* %15, {} addrspace(10)** %16, align 8, !dbg !491
  %17 = mul i64 %10, 8, !dbg !491
  %18 = bitcast {} addrspace(10)* %15 to i8* addrspace(10)*, !dbg !491
  %19 = load i8*, i8* addrspace(10)* %18, align 8, !dbg !491
  call void @llvm.memset.p0i8.i64(i8* %19, i8 0, i64 %17, i1 false), !dbg !491
  %20 = bitcast {} addrspace(10)* %13 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)*, !dbg !491
  %21 = addrspacecast { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)* %20 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !491
  %22 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %21, i64 0, i32 1, !dbg !491
  %23 = load i64, i64 addrspace(11)* %22, align 8, !dbg !491, !tbaa !40, !range !43
  %.not.not = icmp eq i64 %23, %10, !dbg !495
  br i1 %.not.not, label %L20, label %L108, !dbg !493

L20:                                              ; preds = %top
  %24 = addrspacecast {} addrspace(10)* %13 to {} addrspace(11)*, !dbg !499
  %25 = addrspacecast {} addrspace(10)* %0 to {} addrspace(11)*, !dbg !499
  %.not = icmp eq {} addrspace(11)* %24, %25, !dbg !499
  br i1 %.not, label %L50, label %L23, !dbg !499

L23:                                              ; preds = %L20
  %26 = load i8, i8* inttoptr (i64 272612584 to i8*), align 8, !dbg !505, !tbaa !98, !invariant.load !4
  %27 = and i8 %26, 8, !dbg !507
  %.not18.not = icmp eq i8 %27, 0, !dbg !507
  %28 = getelementptr inbounds { {} addrspace(10)*, {} addrspace(10)*, i64, i1, i1, i1 }, { {} addrspace(10)*, {} addrspace(10)*, i64, i1, i1, i1 }* %2, i32 0, i32 3, !dbg !507
  store i1 %.not18.not, i1* %28, align 1, !dbg !507
  br i1 %.not18.not, label %L33, label %L50, !dbg !507

L33:                                              ; preds = %L23
  %29 = call nonnull {}* @julia.pointer_from_objref({} addrspace(11)* %24) #20, !dbg !509
  %30 = bitcast {}* %29 to i8**, !dbg !509
  %31 = load i8*, i8** %30, align 8, !dbg !509, !tbaa !107, !nonnull !4
  %32 = call nonnull {}* @julia.pointer_from_objref({} addrspace(11)* %25) #20, !dbg !509
  %33 = bitcast {}* %32 to i8**, !dbg !509
  %34 = load i8*, i8** %33, align 8, !dbg !509, !tbaa !107, !nonnull !4
  %.not21 = icmp eq i8* %31, %34, !dbg !512
  %35 = getelementptr inbounds { {} addrspace(10)*, {} addrspace(10)*, i64, i1, i1, i1 }, { {} addrspace(10)*, {} addrspace(10)*, i64, i1, i1, i1 }* %2, i32 0, i32 4, !dbg !508
  store i1 %.not21, i1* %35, align 1, !dbg !508
  br i1 %.not21, label %L45, label %L50, !dbg !508

L45:                                              ; preds = %L33
  %36 = call {} addrspace(10)* @ijl_array_copy({} addrspace(10)* %"'"), !dbg !515
  %37 = bitcast {} addrspace(10)* %0 to i8 addrspace(10)*, !dbg !515
  %38 = getelementptr i8, i8 addrspace(10)* %37, i64 18, !dbg !515
  %39 = bitcast i8 addrspace(10)* %38 to i16 addrspace(10)*, !dbg !515
  %40 = load i16, i16 addrspace(10)* %39, align 2, !dbg !515
  %41 = zext i16 %40 to i64, !dbg !515
  %42 = getelementptr i8, i8 addrspace(10)* %37, i64 8, !dbg !515
  %43 = bitcast i8 addrspace(10)* %42 to i64 addrspace(10)*, !dbg !515
  %44 = load i64, i64 addrspace(10)* %43, align 8, !dbg !515
  %45 = mul i64 %44, %41, !dbg !515
  %46 = bitcast {} addrspace(10)* %"'" to i8 addrspace(13)* addrspace(10)*, !dbg !515
  %47 = load i8 addrspace(13)*, i8 addrspace(13)* addrspace(10)* %46, align 8, !dbg !515
  %48 = bitcast {} addrspace(10)* %36 to i8 addrspace(13)* addrspace(10)*, !dbg !515
  %49 = load i8 addrspace(13)*, i8 addrspace(13)* addrspace(10)* %48, align 8, !dbg !515
  %50 = call nonnull {} addrspace(10)* @ijl_array_copy({} addrspace(10)* noundef nonnull %0) #11, !dbg !515
  br label %L50, !dbg !508

L50:                                              ; preds = %L45, %L33, %L23, %L20
  %value_phi1 = phi {} addrspace(10)* [ %50, %L45 ], [ %0, %L20 ], [ %0, %L23 ], [ %0, %L33 ]
  %.not14 = icmp eq i64 %10, 0, !dbg !517
  br i1 %.not14, label %L120, label %L72.lr.ph, !dbg !518

L72.lr.ph:                                        ; preds = %L50
  %51 = bitcast {} addrspace(10)* %value_phi1 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)*, !dbg !520
  %52 = addrspacecast { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)* %51 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !520
  %53 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %52, i64 0, i32 1, !dbg !520
  %54 = load i64, i64 addrspace(11)* %53, align 8, !dbg !520, !tbaa !40, !range !43
  %.not16 = icmp eq i64 %54, 1, !dbg !524
  %55 = getelementptr inbounds { {} addrspace(10)*, {} addrspace(10)*, i64, i1, i1, i1 }, { {} addrspace(10)*, {} addrspace(10)*, i64, i1, i1, i1 }* %2, i32 0, i32 5
  store i1 %.not16, i1* %55, align 1
  %56 = bitcast {} addrspace(10)* %value_phi1 to double addrspace(13)* addrspace(10)*
  %57 = addrspacecast double addrspace(13)* addrspace(10)* %56 to double addrspace(13)* addrspace(11)*
  %58 = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %57, align 8, !tbaa !107, !nonnull !4
  %"'ipc" = bitcast {} addrspace(10)* %15 to double addrspace(13)* addrspace(10)*
  %59 = bitcast {} addrspace(10)* %13 to double addrspace(13)* addrspace(10)*
  %"'ipc6" = addrspacecast double addrspace(13)* addrspace(10)* %"'ipc" to double addrspace(13)* addrspace(11)*
  %60 = addrspacecast double addrspace(13)* addrspace(10)* %59 to double addrspace(13)* addrspace(11)*
  %"'ipl" = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %"'ipc6", align 8, !tbaa !107, !nonnull !4
  %61 = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %60, align 8, !tbaa !107, !nonnull !4
  br i1 %.not16, label %L72.us.us.preheader, label %L72.us24.preheader, !dbg !528

L72.us24.preheader:                               ; preds = %L72.lr.ph
  %62 = add nsw i64 %10, -1, !dbg !528
  br label %L72.us24, !dbg !528

L72.us.us.preheader:                              ; preds = %L72.lr.ph
  %63 = add nsw i64 %10, -1, !dbg !528
  br label %L72.us.us, !dbg !528

L72.us.us:                                        ; preds = %L72.us.us, %L72.us.us.preheader
  %iv1 = phi i64 [ %iv.next2, %L72.us.us ], [ 0, %L72.us.us.preheader ]
  %iv.next2 = add nuw nsw i64 %iv1, 1, !dbg !529
  %64 = load double, double addrspace(13)* %58, align 8, !dbg !529, !tbaa !152
  %65 = call double @llvm.copysign.f64(double noundef 0.000000e+00, double %64) #11, !dbg !537
  %66 = getelementptr inbounds double, double addrspace(13)* %61, i64 %iv1, !dbg !541
  store double %65, double addrspace(13)* %66, align 8, !dbg !541, !tbaa !152
  %exitcond29.not = icmp eq i64 %iv.next2, %10, !dbg !542
  br i1 %exitcond29.not, label %L120.loopexit, label %L72.us.us, !dbg !528, !llvm.loop !543

L72.us24:                                         ; preds = %L72.us24, %L72.us24.preheader
  %iv = phi i64 [ %iv.next, %L72.us24 ], [ 0, %L72.us24.preheader ]
  %iv.next = add nuw nsw i64 %iv, 1, !dbg !529
  %67 = getelementptr inbounds double, double addrspace(13)* %58, i64 %iv, !dbg !529
  %68 = load double, double addrspace(13)* %67, align 8, !dbg !529, !tbaa !152
  %69 = call double @llvm.copysign.f64(double noundef 0.000000e+00, double %68) #11, !dbg !537
  %70 = getelementptr inbounds double, double addrspace(13)* %61, i64 %iv, !dbg !541
  store double %69, double addrspace(13)* %70, align 8, !dbg !541, !tbaa !152
  %exitcond28.not = icmp eq i64 %iv.next, %10, !dbg !542
  br i1 %exitcond28.not, label %L120.loopexit3, label %L72.us24, !dbg !528, !llvm.loop !543

L108:                                             ; preds = %top
  %71 = getelementptr inbounds [1 x [1 x i64]], [1 x [1 x i64]]* %6, i64 0, i64 0, i64 0, !dbg !544
  store i64 %23, i64* %71, align 8, !dbg !544, !tbaa !48
  %72 = addrspacecast [1 x [1 x i64]]* %6 to [1 x [1 x i64]] addrspace(11)*, !dbg !493
  %73 = addrspacecast [1 x [1 x i64]]* %5 to [1 x [1 x i64]] addrspace(11)*, !dbg !493
  %74 = call fastcc nonnull {} addrspace(10)* @julia_throwdm_14307([1 x [1 x i64]] addrspace(11)* nocapture nofree noundef nonnull readonly align 8 dereferenceable(8) %72, [1 x [1 x i64]] addrspace(11)* nocapture nofree noundef nonnull readonly align 8 dereferenceable(8) %73) #21, !dbg !493
  unreachable, !dbg !493

L120.loopexit:                                    ; preds = %L72.us.us
  br label %L120, !dbg !480

L120.loopexit3:                                   ; preds = %L72.us24
  br label %L120, !dbg !480

L120:                                             ; preds = %L120.loopexit3, %L120.loopexit, %L50
  %75 = insertvalue { i8*, {} addrspace(10)*, {} addrspace(10)* } undef, {} addrspace(10)* %13, 1, !dbg !480
  %76 = getelementptr inbounds { { {} addrspace(10)*, {} addrspace(10)*, i64, i1, i1, i1 }, {} addrspace(10)*, {} addrspace(10)* }, { { {} addrspace(10)*, {} addrspace(10)*, i64, i1, i1, i1 }, {} addrspace(10)*, {} addrspace(10)* }* %1, i32 0, i32 1, !dbg !480
  store {} addrspace(10)* %13, {} addrspace(10)** %76, align 8, !dbg !480
  %77 = getelementptr inbounds { { {} addrspace(10)*, {} addrspace(10)*, i64, i1, i1, i1 }, {} addrspace(10)*, {} addrspace(10)* }, { { {} addrspace(10)*, {} addrspace(10)*, i64, i1, i1, i1 }, {} addrspace(10)*, {} addrspace(10)* }* %1, i32 0, i32 2, !dbg !480
  store {} addrspace(10)* %15, {} addrspace(10)** %77, align 8, !dbg !480
  %78 = load { { {} addrspace(10)*, {} addrspace(10)*, i64, i1, i1, i1 }, {} addrspace(10)*, {} addrspace(10)* }, { { {} addrspace(10)*, {} addrspace(10)*, i64, i1, i1, i1 }, {} addrspace(10)*, {} addrspace(10)* }* %1, align 8, !dbg !480
  ret { { {} addrspace(10)*, {} addrspace(10)*, i64, i1, i1, i1 }, {} addrspace(10)*, {} addrspace(10)* } %78, !dbg !480
}

; Function Attrs: mustprogress uwtable willreturn
define internal fastcc nonnull void @diffejulia___14313({} addrspace(10)* nonnull align 16 dereferenceable(40) %0, {} addrspace(10)* %"'", { {} addrspace(10)*, {} addrspace(10)*, i64, i1, i1, i1 } %tapeArg) unnamed_addr #12 !dbg !545 {
top:
  %1 = bitcast {} addrspace(10)* %0 to i8 addrspace(10)*
  %2 = getelementptr i8, i8 addrspace(10)* %1, i64 18
  %3 = bitcast i8 addrspace(10)* %2 to i16 addrspace(10)*
  %4 = load i16, i16 addrspace(10)* %3, align 2
  %5 = zext i16 %4 to i64
  %6 = getelementptr i8, i8 addrspace(10)* %1, i64 8
  %7 = bitcast i8 addrspace(10)* %6 to i64 addrspace(10)*
  %8 = load i64, i64 addrspace(10)* %7, align 8
  %9 = mul i64 %8, %5
  %_replacementA17 = phi i8*
  %_replacementA16 = phi [1 x [1 x i64]]*
  %_replacementA15 = phi i8*
  %_replacementA14 = phi [1 x [1 x i64]]*
  %_replacementA13 = phi {}***
  %_replacementA12 = phi { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)* , !dbg !546
  %_replacementA11 = phi { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* , !dbg !546
  %_replacementA10 = phi i64 addrspace(11)* , !dbg !546
  %10 = load i64, i64 addrspace(11)* %_replacementA10, align 8, !dbg !546, !tbaa !40, !range !43
  %_replacementA9 = phi i64* , !dbg !553
  %11 = extractvalue { {} addrspace(10)*, {} addrspace(10)*, i64, i1, i1, i1 } %tapeArg, 1, !dbg !555
  %12 = extractvalue { {} addrspace(10)*, {} addrspace(10)*, i64, i1, i1, i1 } %tapeArg, 0, !dbg !563
  %_replacementA8 = phi { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)* , !dbg !563
  %_replacementA7 = phi { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* , !dbg !563
  %_replacementA6 = phi i64 addrspace(11)* , !dbg !563
  %_replacementA = phi i64 , !dbg !563
  %.not.not_replacementA = phi i1 , !dbg !567
  br i1 %.not.not_replacementA, label %L20, label %L108, !dbg !565

L20:                                              ; preds = %top
  %13 = addrspacecast {} addrspace(10)* %11 to {} addrspace(11)*, !dbg !571
  %14 = addrspacecast {} addrspace(10)* %0 to {} addrspace(11)*, !dbg !571
  %.not = icmp eq {} addrspace(11)* %13, %14, !dbg !571
  br i1 %.not, label %L50, label %L23, !dbg !571

L23:                                              ; preds = %L20
  %_replacementA19 = phi i8 , !dbg !577
  %_replacementA18 = phi i8 , !dbg !579
  %.not18.not = icmp eq i8 %_replacementA18, 0, !dbg !579
  br i1 %.not18.not, label %L33, label %L50, !dbg !579

L33:                                              ; preds = %L23
  %_replacementA25 = phi {}* , !dbg !581
  %_replacementA24 = phi i8** , !dbg !581
  %_replacementA23 = phi i8* , !dbg !581
  %_replacementA22 = phi {}* , !dbg !581
  %_replacementA21 = phi i8** , !dbg !581
  %_replacementA20 = phi i8* , !dbg !581
  %.not21 = icmp eq i8* %_replacementA23, %_replacementA20, !dbg !584
  br i1 %.not21, label %L45, label %L50, !dbg !580

L45:                                              ; preds = %L33
  %15 = call nonnull {} addrspace(10)* @ijl_array_copy({} addrspace(10)* noundef nonnull %0) #11, !dbg !587
  %"'ip_phi3" = phi {} addrspace(10)* , !dbg !580
  store {} addrspace(10)* %"'ip_phi3", {} addrspace(10)** %"'ip_phi3_cache", align 8, !dbg !580, !invariant.group !589
  br label %L50, !dbg !580

L50:                                              ; preds = %L45, %L33, %L23, %L20
  %value_phi1 = phi {} addrspace(10)* [ %15, %L45 ], [ %0, %L20 ], [ %0, %L23 ], [ %0, %L33 ]
  %.not14 = icmp eq i64 %10, 0, !dbg !590
  br i1 %.not14, label %L120, label %L72.lr.ph, !dbg !591

L72.lr.ph:                                        ; preds = %L50
  %16 = bitcast {} addrspace(10)* %value_phi1 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)*, !dbg !593
  %17 = addrspacecast { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)* %16 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !593
  %18 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %17, i64 0, i32 1, !dbg !593
  %19 = load i64, i64 addrspace(11)* %18, align 8, !dbg !593, !tbaa !40, !range !43
  %.not16 = icmp eq i64 %19, 1, !dbg !597
  %20 = bitcast {} addrspace(10)* %value_phi1 to double addrspace(13)* addrspace(10)*
  %21 = addrspacecast double addrspace(13)* addrspace(10)* %20 to double addrspace(13)* addrspace(11)*
  %22 = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %21, align 8, !tbaa !107, !nonnull !4
  %"'il_phi4" = phi double addrspace(13)*
  %23 = bitcast {} addrspace(10)* %11 to double addrspace(13)* addrspace(10)*
  %24 = addrspacecast double addrspace(13)* addrspace(10)* %23 to double addrspace(13)* addrspace(11)*
  %25 = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %24, align 8, !tbaa !107, !nonnull !4
  %"'il_phi5" = phi double addrspace(13)* , !dbg !601
  br i1 %.not16, label %L72.us.us.preheader, label %L72.us24.preheader, !dbg !601

L72.us24.preheader:                               ; preds = %L72.lr.ph
  %26 = add nsw i64 %10, -1, !dbg !601
  br label %L72.us24, !dbg !601

L72.us.us.preheader:                              ; preds = %L72.lr.ph
  %27 = add nsw i64 %10, -1, !dbg !601
  br label %L72.us.us, !dbg !601

L72.us.us:                                        ; preds = %L72.us.us, %L72.us.us.preheader
  %iv1 = phi i64 [ %iv.next2, %L72.us.us ], [ 0, %L72.us.us.preheader ]
  %iv.next2 = add nuw nsw i64 %iv1, 1, !dbg !602
  %28 = load double, double addrspace(13)* %22, align 8, !dbg !602, !tbaa !152
  %29 = call double @llvm.copysign.f64(double noundef 0.000000e+00, double %28) #11, !dbg !610
  %30 = getelementptr inbounds double, double addrspace(13)* %25, i64 %iv1, !dbg !614
  store double %29, double addrspace(13)* %30, align 8, !dbg !614, !tbaa !152
  %exitcond29.not = icmp eq i64 %iv.next2, %10, !dbg !615
  br i1 %exitcond29.not, label %L120.loopexit, label %L72.us.us, !dbg !601, !llvm.loop !616

L72.us24:                                         ; preds = %L72.us24, %L72.us24.preheader
  %iv = phi i64 [ %iv.next, %L72.us24 ], [ 0, %L72.us24.preheader ]
  %iv.next = add nuw nsw i64 %iv, 1, !dbg !602
  %31 = getelementptr inbounds double, double addrspace(13)* %22, i64 %iv, !dbg !602
  %32 = load double, double addrspace(13)* %31, align 8, !dbg !602, !tbaa !152
  %33 = call double @llvm.copysign.f64(double noundef 0.000000e+00, double %32) #11, !dbg !610
  %34 = getelementptr inbounds double, double addrspace(13)* %25, i64 %iv, !dbg !614
  store double %33, double addrspace(13)* %34, align 8, !dbg !614, !tbaa !152
  %exitcond28.not = icmp eq i64 %iv.next, %10, !dbg !615
  br i1 %exitcond28.not, label %L120.loopexit3, label %L72.us24, !dbg !601, !llvm.loop !616

L108:                                             ; preds = %top
  %35 = getelementptr inbounds [1 x [1 x i64]], [1 x [1 x i64]]* %_replacementA14, i64 0, i64 0, i64 0, !dbg !617
  store i64 %_replacementA, i64* %35, align 8, !dbg !617, !tbaa !48
  %36 = addrspacecast [1 x [1 x i64]]* %_replacementA14 to [1 x [1 x i64]] addrspace(11)*, !dbg !565
  %37 = addrspacecast [1 x [1 x i64]]* %_replacementA16 to [1 x [1 x i64]] addrspace(11)*, !dbg !565
  %38 = call fastcc nonnull {} addrspace(10)* @julia_throwdm_14307([1 x [1 x i64]] addrspace(11)* nocapture nofree noundef nonnull readonly align 8 dereferenceable(8) %36, [1 x [1 x i64]] addrspace(11)* nocapture nofree noundef nonnull readonly align 8 dereferenceable(8) %37) #21, !dbg !565
  unreachable, !dbg !565

L120.loopexit:                                    ; preds = %L72.us.us
  br label %L120, !dbg !552

L120.loopexit3:                                   ; preds = %L72.us24
  br label %L120, !dbg !552

L120:                                             ; preds = %L120.loopexit3, %L120.loopexit, %L50
  br label %invertL120, !dbg !552

allocsForInversion:                               ; No predecessors!
  %"iv1'ac" = alloca i64, align 8
  %"iv'ac" = alloca i64, align 8
  %"'ip_phi3_cache" = alloca {} addrspace(10)*, align 8
  store {} addrspace(10)* null, {} addrspace(10)** %"'ip_phi3_cache", align 8

inverttop:                                        ; preds = %invertL20
  ret void

invertL20:                                        ; preds = %invertL23
  br label %inverttop

invertL23:                                        ; preds = %invertL33
  br label %invertL20

invertL33:                                        ; No predecessors!
  br label %invertL23

invertL45:                                        ; No predecessors!
  %39 = load {} addrspace(10)*, {} addrspace(10)** %"'ip_phi3_cache", align 8, !invariant.group !589
  %40 = bitcast {} addrspace(10)* %"'" to i8 addrspace(13)* addrspace(10)*
  %41 = load i8 addrspace(13)*, i8 addrspace(13)* addrspace(10)* %40, align 8
  %42 = bitcast {} addrspace(10)* %39 to i8 addrspace(13)* addrspace(10)*
  %43 = load i8 addrspace(13)*, i8 addrspace(13)* addrspace(10)* %42, align 8
  %44 = bitcast i8 addrspace(13)* %43 to double addrspace(13)*, !dbg !587
  %45 = bitcast i8 addrspace(13)* %41 to double addrspace(13)*, !dbg !587
  %46 = udiv i64 %9, 8, !dbg !587
  call void @__enzyme_memcpyadd_doubleda1sa1dadd13sadd13(double addrspace(13)* %44, double addrspace(13)* %45, i64 %46), !dbg !587

invertL50:                                        ; No predecessors!

invertL72.lr.ph:                                  ; No predecessors!

invertL72.us24.preheader:                         ; No predecessors!

invertL72.us.us.preheader:                        ; No predecessors!

invertL72.us.us:                                  ; No predecessors!

invertL72.us24:                                   ; No predecessors!

invertL108:                                       ; No predecessors!

invertL120.loopexit:                              ; No predecessors!

invertL120.loopexit3:                             ; No predecessors!

invertL120:                                       ; preds = %L120
}

; Function Attrs: alwaysinline argmemonly nounwind
define internal void @__enzyme_memcpyadd_doubleda1sa1dadd13sadd13(double addrspace(13)* nocapture %dst, double addrspace(13)* nocapture %src, i64 %num) #14 {
entry:
  %0 = icmp eq i64 %num, 0
  br i1 %0, label %for.end, label %for.body

for.body:                                         ; preds = %for.body, %entry
  %idx = phi i64 [ 0, %entry ], [ %idx.next, %for.body ]
  %dst.i = getelementptr inbounds double, double addrspace(13)* %dst, i64 %idx
  %dst.i.l = load double, double addrspace(13)* %dst.i, align 1
  store double 0.000000e+00, double addrspace(13)* %dst.i, align 1
  %src.i = getelementptr inbounds double, double addrspace(13)* %src, i64 %idx
  %src.i.l = load double, double addrspace(13)* %src.i, align 1
  %1 = fadd fast double %src.i.l, %dst.i.l
  store double %1, double addrspace(13)* %src.i, align 1
  %idx.next = add nuw i64 %idx, 1
  %2 = icmp eq i64 %num, %idx.next
  br i1 %2, label %for.end, label %for.body

for.end:                                          ; preds = %for.body, %entry
  ret void
}

attributes #0 = { readnone "enzyme_inactive" }
attributes #1 = { inaccessiblememonly allocsize(1) }
attributes #2 = { noreturn }
attributes #3 = { argmemonly nofree nounwind willreturn }
attributes #4 = { noinline noreturn uwtable "frame-pointer"="all" }
attributes #5 = { uwtable "frame-pointer"="all" }
attributes #6 = { nofree nosync nounwind readnone speculatable willreturn }
attributes #7 = { nounwind readnone }
attributes #8 = { inaccessiblemem_or_argmemonly }
attributes #9 = { inaccessiblememonly }
attributes #10 = { argmemonly nofree nosync nounwind willreturn }
attributes #11 = { mustprogress willreturn }
attributes #12 = { mustprogress uwtable willreturn "frame-pointer"="all" }
attributes #13 = { argmemonly nofree nounwind willreturn writeonly }
attributes #14 = { alwaysinline argmemonly nounwind }
attributes #15 = { allocsize(1) }
attributes #16 = { "enzyme_inactive" }
attributes #17 = { noreturn uwtable "frame-pointer"="all" }
attributes #18 = { mustprogress willreturn allocsize(1) }
attributes #19 = { mustprogress noreturn willreturn }
attributes #20 = { mustprogress nounwind readnone willreturn }
attributes #21 = { mustprogress noreturn uwtable willreturn "frame-pointer"="all" }

!llvm.module.flags = !{!0, !1}
!llvm.dbg.cu = !{!2, !5, !6, !8, !10, !11, !13}

!0 = !{i32 2, !"Dwarf Version", i32 4}
!1 = !{i32 2, !"Debug Info Version", i32 3}
!2 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !4, nameTableKind: None)
!3 = !DIFile(filename: "abstractarray.jl", directory: ".")
!4 = !{}
!5 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !4, nameTableKind: None)
!6 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !7, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !4, nameTableKind: None)
!7 = !DIFile(filename: "broadcast.jl", directory: ".")
!8 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !9, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !4, nameTableKind: None)
!9 = !DIFile(filename: "arraymath.jl", directory: ".")
!10 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !3, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !4, nameTableKind: None)
!11 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !12, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !4, nameTableKind: None)
!12 = !DIFile(filename: "REPL[22]", directory: ".")
!13 = distinct !DICompileUnit(language: DW_LANG_Julia, file: !14, producer: "julia", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !4, nameTableKind: None)
!14 = !DIFile(filename: "C:\\Users\\accou\\.julia\\dev\\SciMLSensitivity\\src\\adjoint_common.jl", directory: ".")
!15 = distinct !DISubprogram(name: "throwdm", linkageName: "julia_throwdm_14307", scope: null, file: !7, line: 1037, type: !16, scopeLine: 1037, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !6, retainedNodes: !4)
!16 = !DISubroutineType(types: !4)
!17 = !DILocation(line: 1037, scope: !15)
!18 = !{!19, !19, i64 0}
!19 = !{!"jtbaa", !20, i64 0}
!20 = !{!"jtbaa"}
!21 = !{!22, !22, i64 0}
!22 = !{!"jtbaa_immut", !23, i64 0}
!23 = !{!"jtbaa_value", !24, i64 0}
!24 = !{!"jtbaa_data", !19, i64 0}
!25 = distinct !DISubprogram(name: "*", linkageName: "julia_*_14313", scope: null, file: !9, line: 21, type: !16, scopeLine: 21, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!26 = !DILocation(line: 151, scope: !27, inlinedAt: !29)
!27 = distinct !DISubprogram(name: "size;", linkageName: "size", scope: !28, file: !28, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!28 = !DIFile(filename: "array.jl", directory: ".")
!29 = !DILocation(line: 95, scope: !30, inlinedAt: !31)
!30 = distinct !DISubprogram(name: "axes;", linkageName: "axes", scope: !3, file: !3, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!31 = !DILocation(line: 499, scope: !32, inlinedAt: !33)
!32 = distinct !DISubprogram(name: "combine_axes;", linkageName: "combine_axes", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!33 = !DILocation(line: 281, scope: !34, inlinedAt: !35)
!34 = distinct !DISubprogram(name: "instantiate;", linkageName: "instantiate", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!35 = !DILocation(line: 860, scope: !36, inlinedAt: !37)
!36 = distinct !DISubprogram(name: "materialize;", linkageName: "materialize", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!37 = !DILocation(line: 849, scope: !38, inlinedAt: !39)
!38 = distinct !DISubprogram(name: "broadcast_preserving_zero_d;", linkageName: "broadcast_preserving_zero_d", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!39 = !DILocation(line: 21, scope: !25)
!40 = !{!41, !41, i64 0}
!41 = !{!"jtbaa_arraylen", !42, i64 0}
!42 = !{!"jtbaa_array", !19, i64 0}
!43 = !{i64 0, i64 9223372036854775807}
!44 = !DILocation(line: 507, scope: !45, inlinedAt: !46)
!45 = distinct !DISubprogram(name: "_bcs;", linkageName: "_bcs", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!46 = !DILocation(line: 504, scope: !47, inlinedAt: !31)
!47 = distinct !DISubprogram(name: "broadcast_shape;", linkageName: "broadcast_shape", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!48 = !{!49, !49, i64 0}
!49 = !{!"jtbaa_stack", !19, i64 0}
!50 = !DILocation(line: 459, scope: !51, inlinedAt: !53)
!51 = distinct !DISubprogram(name: "Array;", linkageName: "Array", scope: !52, file: !52, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!52 = !DIFile(filename: "boot.jl", directory: ".")
!53 = !DILocation(line: 468, scope: !51, inlinedAt: !54)
!54 = !DILocation(line: 476, scope: !51, inlinedAt: !55)
!55 = !DILocation(line: 841, scope: !56, inlinedAt: !57)
!56 = distinct !DISubprogram(name: "similar;", linkageName: "similar", scope: !3, file: !3, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!57 = !DILocation(line: 840, scope: !56, inlinedAt: !58)
!58 = !DILocation(line: 212, scope: !59, inlinedAt: !60)
!59 = distinct !DISubprogram(name: "similar;", linkageName: "similar", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!60 = !DILocation(line: 211, scope: !59, inlinedAt: !61)
!61 = !DILocation(line: 885, scope: !62, inlinedAt: !35)
!62 = distinct !DISubprogram(name: "copy;", linkageName: "copy", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!63 = !DILocation(line: 151, scope: !27, inlinedAt: !64)
!64 = !DILocation(line: 95, scope: !30, inlinedAt: !65)
!65 = !DILocation(line: 949, scope: !66, inlinedAt: !67)
!66 = distinct !DISubprogram(name: "copyto!;", linkageName: "copyto!", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!67 = !DILocation(line: 913, scope: !66, inlinedAt: !61)
!68 = !DILocation(line: 477, scope: !69, inlinedAt: !71)
!69 = distinct !DISubprogram(name: "==;", linkageName: "==", scope: !70, file: !70, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!70 = !DIFile(filename: "promotion.jl", directory: ".")
!71 = !DILocation(line: 1111, scope: !72, inlinedAt: !74)
!72 = distinct !DISubprogram(name: "==;", linkageName: "==", scope: !73, file: !73, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!73 = !DIFile(filename: "range.jl", directory: ".")
!74 = !DILocation(line: 402, scope: !75, inlinedAt: !77)
!75 = distinct !DISubprogram(name: "_eq;", linkageName: "_eq", scope: !76, file: !76, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!76 = !DIFile(filename: "tuple.jl", directory: ".")
!77 = !DILocation(line: 398, scope: !78, inlinedAt: !65)
!78 = distinct !DISubprogram(name: "==;", linkageName: "==", scope: !76, file: !76, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!79 = !DILocation(line: 934, scope: !80, inlinedAt: !81)
!80 = distinct !DISubprogram(name: "broadcast_unalias;", linkageName: "broadcast_unalias", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!81 = !DILocation(line: 941, scope: !82, inlinedAt: !83)
!82 = distinct !DISubprogram(name: "preprocess;", linkageName: "preprocess", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!83 = !DILocation(line: 944, scope: !84, inlinedAt: !85)
!84 = distinct !DISubprogram(name: "preprocess_args;", linkageName: "preprocess_args", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!85 = !DILocation(line: 943, scope: !84, inlinedAt: !86)
!86 = !DILocation(line: 940, scope: !82, inlinedAt: !87)
!87 = !DILocation(line: 957, scope: !66, inlinedAt: !67)
!88 = !DILocation(line: 33, scope: !89, inlinedAt: !91)
!89 = distinct !DISubprogram(name: "getproperty;", linkageName: "getproperty", scope: !90, file: !90, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!90 = !DIFile(filename: "Base.jl", directory: ".")
!91 = !DILocation(line: 593, scope: !92, inlinedAt: !94)
!92 = distinct !DISubprogram(name: "isbits;", linkageName: "isbits", scope: !93, file: !93, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!93 = !DIFile(filename: "reflection.jl", directory: ".")
!94 = !DILocation(line: 1462, scope: !95, inlinedAt: !96)
!95 = distinct !DISubprogram(name: "mightalias;", linkageName: "mightalias", scope: !3, file: !3, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!96 = !DILocation(line: 1427, scope: !97, inlinedAt: !79)
!97 = distinct !DISubprogram(name: "unalias;", linkageName: "unalias", scope: !3, file: !3, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!98 = !{!99, !99, i64 0, i64 1}
!99 = !{!"jtbaa_const", !19, i64 0}
!100 = !DILocation(line: 65, scope: !101, inlinedAt: !103)
!101 = distinct !DISubprogram(name: "unsafe_convert;", linkageName: "unsafe_convert", scope: !102, file: !102, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!102 = !DIFile(filename: "pointer.jl", directory: ".")
!103 = !DILocation(line: 1187, scope: !104, inlinedAt: !105)
!104 = distinct !DISubprogram(name: "pointer;", linkageName: "pointer", scope: !3, file: !3, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!105 = !DILocation(line: 1486, scope: !106, inlinedAt: !94)
!106 = distinct !DISubprogram(name: "dataids;", linkageName: "dataids", scope: !3, file: !3, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!107 = !{!108, !108, i64 0}
!108 = !{!"jtbaa_arrayptr", !42, i64 0}
!109 = !DILocation(line: 477, scope: !69, inlinedAt: !110)
!110 = !DILocation(line: 282, scope: !111, inlinedAt: !113)
!111 = distinct !DISubprogram(name: "!=;", linkageName: "!=", scope: !112, file: !112, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!112 = !DIFile(filename: "operators.jl", directory: ".")
!113 = !DILocation(line: 1469, scope: !114, inlinedAt: !94)
!114 = distinct !DISubprogram(name: "_isdisjoint;", linkageName: "_isdisjoint", scope: !3, file: !3, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!115 = !DILocation(line: 369, scope: !116, inlinedAt: !117)
!116 = distinct !DISubprogram(name: "copy;", linkageName: "copy", scope: !28, file: !28, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!117 = !DILocation(line: 1443, scope: !118, inlinedAt: !96)
!118 = distinct !DISubprogram(name: "unaliascopy;", linkageName: "unaliascopy", scope: !3, file: !3, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!119 = !DILocation(line: 83, scope: !120, inlinedAt: !122)
!120 = distinct !DISubprogram(name: "<;", linkageName: "<", scope: !121, file: !121, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!121 = !DIFile(filename: "int.jl", directory: ".")
!122 = !DILocation(line: 72, scope: !123, inlinedAt: !125)
!123 = distinct !DISubprogram(name: "macro expansion;", linkageName: "macro expansion", scope: !124, file: !124, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!124 = !DIFile(filename: "simdloop.jl", directory: ".")
!125 = !DILocation(line: 960, scope: !66, inlinedAt: !67)
!126 = !DILocation(line: 151, scope: !27, inlinedAt: !127)
!127 = !DILocation(line: 95, scope: !30, inlinedAt: !128)
!128 = !DILocation(line: 586, scope: !129, inlinedAt: !130)
!129 = distinct !DISubprogram(name: "newindexer;", linkageName: "newindexer", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!130 = !DILocation(line: 637, scope: !131, inlinedAt: !81)
!131 = distinct !DISubprogram(name: "extrude;", linkageName: "extrude", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!132 = !DILocation(line: 477, scope: !69, inlinedAt: !133)
!133 = !DILocation(line: 282, scope: !111, inlinedAt: !134)
!134 = !DILocation(line: 592, scope: !135, inlinedAt: !136)
!135 = distinct !DISubprogram(name: "_newindexer;", linkageName: "_newindexer", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!136 = !DILocation(line: 587, scope: !137, inlinedAt: !128)
!137 = distinct !DISubprogram(name: "shapeindexer;", linkageName: "shapeindexer", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!138 = !DILocation(line: 75, scope: !123, inlinedAt: !125)
!139 = !DILocation(line: 924, scope: !140, inlinedAt: !141)
!140 = distinct !DISubprogram(name: "getindex;", linkageName: "getindex", scope: !28, file: !28, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!141 = !DILocation(line: 636, scope: !142, inlinedAt: !143)
!142 = distinct !DISubprogram(name: "_broadcast_getindex;", linkageName: "_broadcast_getindex", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!143 = !DILocation(line: 667, scope: !144, inlinedAt: !145)
!144 = distinct !DISubprogram(name: "_getindex;", linkageName: "_getindex", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!145 = !DILocation(line: 666, scope: !144, inlinedAt: !146)
!146 = !DILocation(line: 642, scope: !142, inlinedAt: !147)
!147 = !DILocation(line: 597, scope: !148, inlinedAt: !149)
!148 = distinct !DISubprogram(name: "getindex;", linkageName: "getindex", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!149 = !DILocation(line: 961, scope: !150, inlinedAt: !151)
!150 = distinct !DISubprogram(name: "macro expansion;", linkageName: "macro expansion", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!151 = !DILocation(line: 77, scope: !123, inlinedAt: !125)
!152 = !{!153, !153, i64 0}
!153 = !{!"jtbaa_arraybuf", !24, i64 0}
!154 = !DILocation(line: 5, scope: !155, inlinedAt: !157)
!155 = distinct !DISubprogram(name: "copysign;", linkageName: "copysign", scope: !156, file: !156, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!156 = !DIFile(filename: "floatfuncs.jl", directory: ".")
!157 = !DILocation(line: 176, scope: !158, inlinedAt: !160)
!158 = distinct !DISubprogram(name: "*;", linkageName: "*", scope: !159, file: !159, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!159 = !DIFile(filename: "bool.jl", directory: ".")
!160 = !DILocation(line: 670, scope: !161, inlinedAt: !162)
!161 = distinct !DISubprogram(name: "_broadcast_getindex_evalf;", linkageName: "_broadcast_getindex_evalf", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!162 = !DILocation(line: 643, scope: !142, inlinedAt: !147)
!163 = !DILocation(line: 966, scope: !164, inlinedAt: !149)
!164 = distinct !DISubprogram(name: "setindex!;", linkageName: "setindex!", scope: !28, file: !28, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!165 = !DILocation(line: 87, scope: !166, inlinedAt: !167)
!166 = distinct !DISubprogram(name: "+;", linkageName: "+", scope: !121, file: !121, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!167 = !DILocation(line: 78, scope: !123, inlinedAt: !125)
!168 = !DILocation(line: 83, scope: !120, inlinedAt: !138)
!169 = distinct !{!169}
!170 = !DILocation(line: 221, scope: !171, inlinedAt: !64)
!171 = distinct !DISubprogram(name: "map;", linkageName: "map", scope: !76, file: !76, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!172 = distinct !DISubprogram(name: "g!", linkageName: "julia_g!_14301", scope: null, file: !12, line: 1, type: !16, scopeLine: 1, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!173 = !DILocation(line: 2, scope: !172)
!174 = !DILocation(line: 151, scope: !175, inlinedAt: !176)
!175 = distinct !DISubprogram(name: "size;", linkageName: "size", scope: !28, file: !28, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!176 = !DILocation(line: 95, scope: !177, inlinedAt: !178)
!177 = distinct !DISubprogram(name: "axes;", linkageName: "axes", scope: !3, file: !3, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!178 = !DILocation(line: 871, scope: !179, inlinedAt: !180)
!179 = distinct !DISubprogram(name: "materialize!;", linkageName: "materialize!", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!180 = !DILocation(line: 868, scope: !179, inlinedAt: !173)
!181 = !DILocation(line: 151, scope: !175, inlinedAt: !182)
!182 = !DILocation(line: 95, scope: !177, inlinedAt: !183)
!183 = !DILocation(line: 543, scope: !184, inlinedAt: !185)
!184 = distinct !DISubprogram(name: "check_broadcast_axes;", linkageName: "check_broadcast_axes", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!185 = !DILocation(line: 546, scope: !184, inlinedAt: !186)
!186 = !DILocation(line: 284, scope: !187, inlinedAt: !178)
!187 = distinct !DISubprogram(name: "instantiate;", linkageName: "instantiate", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!188 = !DILocation(line: 477, scope: !189, inlinedAt: !190)
!189 = distinct !DISubprogram(name: "==;", linkageName: "==", scope: !70, file: !70, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!190 = !DILocation(line: 1111, scope: !191, inlinedAt: !192)
!191 = distinct !DISubprogram(name: "==;", linkageName: "==", scope: !73, file: !73, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!192 = !DILocation(line: 518, scope: !193, inlinedAt: !194)
!193 = distinct !DISubprogram(name: "_bcsm;", linkageName: "_bcsm", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!194 = !DILocation(line: 540, scope: !195, inlinedAt: !183)
!195 = distinct !DISubprogram(name: "check_broadcast_shape;", linkageName: "check_broadcast_shape", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!196 = !DILocation(line: 934, scope: !197, inlinedAt: !198)
!197 = distinct !DISubprogram(name: "broadcast_unalias;", linkageName: "broadcast_unalias", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!198 = !DILocation(line: 941, scope: !199, inlinedAt: !200)
!199 = distinct !DISubprogram(name: "preprocess;", linkageName: "preprocess", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!200 = !DILocation(line: 943, scope: !201, inlinedAt: !202)
!201 = distinct !DISubprogram(name: "preprocess_args;", linkageName: "preprocess_args", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!202 = !DILocation(line: 940, scope: !199, inlinedAt: !203)
!203 = !DILocation(line: 957, scope: !204, inlinedAt: !205)
!204 = distinct !DISubprogram(name: "copyto!;", linkageName: "copyto!", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!205 = !DILocation(line: 913, scope: !204, inlinedAt: !178)
!206 = !DILocation(line: 33, scope: !207, inlinedAt: !208)
!207 = distinct !DISubprogram(name: "getproperty;", linkageName: "getproperty", scope: !90, file: !90, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!208 = !DILocation(line: 593, scope: !209, inlinedAt: !210)
!209 = distinct !DISubprogram(name: "isbits;", linkageName: "isbits", scope: !93, file: !93, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!210 = !DILocation(line: 1462, scope: !211, inlinedAt: !212)
!211 = distinct !DISubprogram(name: "mightalias;", linkageName: "mightalias", scope: !3, file: !3, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!212 = !DILocation(line: 1427, scope: !213, inlinedAt: !196)
!213 = distinct !DISubprogram(name: "unalias;", linkageName: "unalias", scope: !3, file: !3, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!214 = !DILocation(line: 65, scope: !215, inlinedAt: !216)
!215 = distinct !DISubprogram(name: "unsafe_convert;", linkageName: "unsafe_convert", scope: !102, file: !102, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!216 = !DILocation(line: 1187, scope: !217, inlinedAt: !218)
!217 = distinct !DISubprogram(name: "pointer;", linkageName: "pointer", scope: !3, file: !3, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!218 = !DILocation(line: 1486, scope: !219, inlinedAt: !210)
!219 = distinct !DISubprogram(name: "dataids;", linkageName: "dataids", scope: !3, file: !3, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!220 = !DILocation(line: 477, scope: !189, inlinedAt: !221)
!221 = !DILocation(line: 282, scope: !222, inlinedAt: !223)
!222 = distinct !DISubprogram(name: "!=;", linkageName: "!=", scope: !112, file: !112, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!223 = !DILocation(line: 1469, scope: !224, inlinedAt: !210)
!224 = distinct !DISubprogram(name: "_isdisjoint;", linkageName: "_isdisjoint", scope: !3, file: !3, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!225 = !DILocation(line: 369, scope: !226, inlinedAt: !227)
!226 = distinct !DISubprogram(name: "copy;", linkageName: "copy", scope: !28, file: !28, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!227 = !DILocation(line: 1443, scope: !228, inlinedAt: !212)
!228 = distinct !DISubprogram(name: "unaliascopy;", linkageName: "unaliascopy", scope: !3, file: !3, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!229 = !DILocation(line: 83, scope: !230, inlinedAt: !231)
!230 = distinct !DISubprogram(name: "<;", linkageName: "<", scope: !121, file: !121, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!231 = !DILocation(line: 72, scope: !232, inlinedAt: !233)
!232 = distinct !DISubprogram(name: "macro expansion;", linkageName: "macro expansion", scope: !124, file: !124, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!233 = !DILocation(line: 960, scope: !204, inlinedAt: !205)
!234 = !DILocation(line: 151, scope: !175, inlinedAt: !235)
!235 = !DILocation(line: 95, scope: !177, inlinedAt: !236)
!236 = !DILocation(line: 586, scope: !237, inlinedAt: !238)
!237 = distinct !DISubprogram(name: "newindexer;", linkageName: "newindexer", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!238 = !DILocation(line: 637, scope: !239, inlinedAt: !198)
!239 = distinct !DISubprogram(name: "extrude;", linkageName: "extrude", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!240 = !DILocation(line: 477, scope: !189, inlinedAt: !241)
!241 = !DILocation(line: 282, scope: !222, inlinedAt: !242)
!242 = !DILocation(line: 592, scope: !243, inlinedAt: !244)
!243 = distinct !DISubprogram(name: "_newindexer;", linkageName: "_newindexer", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!244 = !DILocation(line: 587, scope: !245, inlinedAt: !236)
!245 = distinct !DISubprogram(name: "shapeindexer;", linkageName: "shapeindexer", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!246 = !DILocation(line: 75, scope: !232, inlinedAt: !233)
!247 = !DILocation(line: 924, scope: !248, inlinedAt: !249)
!248 = distinct !DISubprogram(name: "getindex;", linkageName: "getindex", scope: !28, file: !28, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!249 = !DILocation(line: 636, scope: !250, inlinedAt: !251)
!250 = distinct !DISubprogram(name: "_broadcast_getindex;", linkageName: "_broadcast_getindex", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!251 = !DILocation(line: 666, scope: !252, inlinedAt: !253)
!252 = distinct !DISubprogram(name: "_getindex;", linkageName: "_getindex", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!253 = !DILocation(line: 642, scope: !250, inlinedAt: !254)
!254 = !DILocation(line: 597, scope: !255, inlinedAt: !256)
!255 = distinct !DISubprogram(name: "getindex;", linkageName: "getindex", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!256 = !DILocation(line: 961, scope: !257, inlinedAt: !258)
!257 = distinct !DISubprogram(name: "macro expansion;", linkageName: "macro expansion", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!258 = !DILocation(line: 77, scope: !232, inlinedAt: !233)
!259 = !DILocation(line: 383, scope: !260, inlinedAt: !262)
!260 = distinct !DISubprogram(name: "+;", linkageName: "+", scope: !261, file: !261, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!261 = !DIFile(filename: "float.jl", directory: ".")
!262 = !DILocation(line: 670, scope: !263, inlinedAt: !264)
!263 = distinct !DISubprogram(name: "_broadcast_getindex_evalf;", linkageName: "_broadcast_getindex_evalf", scope: !7, file: !7, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!264 = !DILocation(line: 643, scope: !250, inlinedAt: !254)
!265 = !DILocation(line: 966, scope: !266, inlinedAt: !256)
!266 = distinct !DISubprogram(name: "setindex!;", linkageName: "setindex!", scope: !28, file: !28, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!267 = !DILocation(line: 87, scope: !268, inlinedAt: !269)
!268 = distinct !DISubprogram(name: "+;", linkageName: "+", scope: !121, file: !121, type: !16, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!269 = !DILocation(line: 78, scope: !232, inlinedAt: !233)
!270 = !DILocation(line: 83, scope: !230, inlinedAt: !246)
!271 = distinct !{!271}
!272 = distinct !DISubprogram(name: "#118", linkageName: "julia_#118_14298", scope: null, file: !14, line: 246, type: !16, scopeLine: 246, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !13, retainedNodes: !4)
!273 = !DILocation(line: 247, scope: !272, inlinedAt: !274)
!274 = distinct !DILocation(line: 0, scope: !272)
!275 = !DILocation(line: 0, scope: !272)
!276 = distinct !DISubprogram(name: "#118", linkageName: "julia_#118_14298", scope: null, file: !14, line: 246, type: !16, scopeLine: 246, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !13, retainedNodes: !4)
!277 = !DILocation(line: 247, scope: !276, inlinedAt: !278)
!278 = distinct !DILocation(line: 0, scope: !276)
!279 = !DILocation(line: 0, scope: !276)
!280 = distinct !DISubprogram(name: "#118", linkageName: "julia_#118_14298", scope: null, file: !14, line: 246, type: !16, scopeLine: 246, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !13, retainedNodes: !4)
!281 = !DILocation(line: 247, scope: !280, inlinedAt: !282)
!282 = distinct !DILocation(line: 0, scope: !280)
!283 = !DILocation(line: 0, scope: !280)
!284 = distinct !DISubprogram(name: "g!", linkageName: "julia_g!_14301", scope: null, file: !12, line: 1, type: !16, scopeLine: 1, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!285 = !DILocation(line: 2, scope: !284)
!286 = !DILocation(line: 151, scope: !175, inlinedAt: !287)
!287 = !DILocation(line: 95, scope: !177, inlinedAt: !288)
!288 = !DILocation(line: 871, scope: !179, inlinedAt: !289)
!289 = !DILocation(line: 868, scope: !179, inlinedAt: !285)
!290 = !DILocation(line: 151, scope: !175, inlinedAt: !291)
!291 = !DILocation(line: 95, scope: !177, inlinedAt: !292)
!292 = !DILocation(line: 543, scope: !184, inlinedAt: !293)
!293 = !DILocation(line: 546, scope: !184, inlinedAt: !294)
!294 = !DILocation(line: 284, scope: !187, inlinedAt: !288)
!295 = !DILocation(line: 477, scope: !189, inlinedAt: !296)
!296 = !DILocation(line: 1111, scope: !191, inlinedAt: !297)
!297 = !DILocation(line: 518, scope: !193, inlinedAt: !298)
!298 = !DILocation(line: 540, scope: !195, inlinedAt: !292)
!299 = !DILocation(line: 934, scope: !197, inlinedAt: !300)
!300 = !DILocation(line: 941, scope: !199, inlinedAt: !301)
!301 = !DILocation(line: 943, scope: !201, inlinedAt: !302)
!302 = !DILocation(line: 940, scope: !199, inlinedAt: !303)
!303 = !DILocation(line: 957, scope: !204, inlinedAt: !304)
!304 = !DILocation(line: 913, scope: !204, inlinedAt: !288)
!305 = !DILocation(line: 33, scope: !207, inlinedAt: !306)
!306 = !DILocation(line: 593, scope: !209, inlinedAt: !307)
!307 = !DILocation(line: 1462, scope: !211, inlinedAt: !308)
!308 = !DILocation(line: 1427, scope: !213, inlinedAt: !299)
!309 = !DILocation(line: 65, scope: !215, inlinedAt: !310)
!310 = !DILocation(line: 1187, scope: !217, inlinedAt: !311)
!311 = !DILocation(line: 1486, scope: !219, inlinedAt: !307)
!312 = !DILocation(line: 477, scope: !189, inlinedAt: !313)
!313 = !DILocation(line: 282, scope: !222, inlinedAt: !314)
!314 = !DILocation(line: 1469, scope: !224, inlinedAt: !307)
!315 = !DILocation(line: 369, scope: !226, inlinedAt: !316)
!316 = !DILocation(line: 1443, scope: !228, inlinedAt: !308)
!317 = !DILocation(line: 83, scope: !230, inlinedAt: !318)
!318 = !DILocation(line: 72, scope: !232, inlinedAt: !319)
!319 = !DILocation(line: 960, scope: !204, inlinedAt: !304)
!320 = !DILocation(line: 151, scope: !175, inlinedAt: !321)
!321 = !DILocation(line: 95, scope: !177, inlinedAt: !322)
!322 = !DILocation(line: 586, scope: !237, inlinedAt: !323)
!323 = !DILocation(line: 637, scope: !239, inlinedAt: !300)
!324 = !DILocation(line: 477, scope: !189, inlinedAt: !325)
!325 = !DILocation(line: 282, scope: !222, inlinedAt: !326)
!326 = !DILocation(line: 592, scope: !243, inlinedAt: !327)
!327 = !DILocation(line: 587, scope: !245, inlinedAt: !322)
!328 = !DILocation(line: 75, scope: !232, inlinedAt: !319)
!329 = !DILocation(line: 924, scope: !248, inlinedAt: !330)
!330 = !DILocation(line: 636, scope: !250, inlinedAt: !331)
!331 = !DILocation(line: 666, scope: !252, inlinedAt: !332)
!332 = !DILocation(line: 642, scope: !250, inlinedAt: !333)
!333 = !DILocation(line: 597, scope: !255, inlinedAt: !334)
!334 = !DILocation(line: 961, scope: !257, inlinedAt: !335)
!335 = !DILocation(line: 77, scope: !232, inlinedAt: !319)
!336 = !DILocation(line: 383, scope: !260, inlinedAt: !337)
!337 = !DILocation(line: 670, scope: !263, inlinedAt: !338)
!338 = !DILocation(line: 643, scope: !250, inlinedAt: !333)
!339 = !DILocation(line: 966, scope: !266, inlinedAt: !334)
!340 = !DILocation(line: 83, scope: !230, inlinedAt: !328)
!341 = distinct !{!341}
!342 = distinct !DISubprogram(name: "g!", linkageName: "julia_g!_14301", scope: null, file: !12, line: 1, type: !16, scopeLine: 1, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !11, retainedNodes: !4)
!343 = !DILocation(line: 2, scope: !342)
!344 = !DILocation(line: 151, scope: !175, inlinedAt: !345)
!345 = !DILocation(line: 95, scope: !177, inlinedAt: !346)
!346 = !DILocation(line: 871, scope: !179, inlinedAt: !347)
!347 = !DILocation(line: 868, scope: !179, inlinedAt: !343)
!348 = !DILocation(line: 151, scope: !175, inlinedAt: !349)
!349 = !DILocation(line: 95, scope: !177, inlinedAt: !350)
!350 = !DILocation(line: 543, scope: !184, inlinedAt: !351)
!351 = !DILocation(line: 546, scope: !184, inlinedAt: !352)
!352 = !DILocation(line: 284, scope: !187, inlinedAt: !346)
!353 = !DILocation(line: 477, scope: !189, inlinedAt: !354)
!354 = !DILocation(line: 1111, scope: !191, inlinedAt: !355)
!355 = !DILocation(line: 518, scope: !193, inlinedAt: !356)
!356 = !DILocation(line: 540, scope: !195, inlinedAt: !350)
!357 = !DILocation(line: 934, scope: !197, inlinedAt: !358)
!358 = !DILocation(line: 941, scope: !199, inlinedAt: !359)
!359 = !DILocation(line: 943, scope: !201, inlinedAt: !360)
!360 = !DILocation(line: 940, scope: !199, inlinedAt: !361)
!361 = !DILocation(line: 957, scope: !204, inlinedAt: !362)
!362 = !DILocation(line: 913, scope: !204, inlinedAt: !346)
!363 = !DILocation(line: 33, scope: !207, inlinedAt: !364)
!364 = !DILocation(line: 593, scope: !209, inlinedAt: !365)
!365 = !DILocation(line: 1462, scope: !211, inlinedAt: !366)
!366 = !DILocation(line: 1427, scope: !213, inlinedAt: !357)
!367 = !DILocation(line: 65, scope: !215, inlinedAt: !368)
!368 = !DILocation(line: 1187, scope: !217, inlinedAt: !369)
!369 = !DILocation(line: 1486, scope: !219, inlinedAt: !365)
!370 = !DILocation(line: 477, scope: !189, inlinedAt: !371)
!371 = !DILocation(line: 282, scope: !222, inlinedAt: !372)
!372 = !DILocation(line: 1469, scope: !224, inlinedAt: !365)
!373 = !DILocation(line: 369, scope: !226, inlinedAt: !374)
!374 = !DILocation(line: 1443, scope: !228, inlinedAt: !366)
!375 = !DILocation(line: 83, scope: !230, inlinedAt: !376)
!376 = !DILocation(line: 72, scope: !232, inlinedAt: !377)
!377 = !DILocation(line: 960, scope: !204, inlinedAt: !362)
!378 = !DILocation(line: 151, scope: !175, inlinedAt: !379)
!379 = !DILocation(line: 95, scope: !177, inlinedAt: !380)
!380 = !DILocation(line: 586, scope: !237, inlinedAt: !381)
!381 = !DILocation(line: 637, scope: !239, inlinedAt: !358)
!382 = !DILocation(line: 477, scope: !189, inlinedAt: !383)
!383 = !DILocation(line: 282, scope: !222, inlinedAt: !384)
!384 = !DILocation(line: 592, scope: !243, inlinedAt: !385)
!385 = !DILocation(line: 587, scope: !245, inlinedAt: !380)
!386 = !DILocation(line: 75, scope: !232, inlinedAt: !377)
!387 = !DILocation(line: 924, scope: !248, inlinedAt: !388)
!388 = !DILocation(line: 636, scope: !250, inlinedAt: !389)
!389 = !DILocation(line: 666, scope: !252, inlinedAt: !390)
!390 = !DILocation(line: 642, scope: !250, inlinedAt: !391)
!391 = !DILocation(line: 597, scope: !255, inlinedAt: !392)
!392 = !DILocation(line: 961, scope: !257, inlinedAt: !393)
!393 = !DILocation(line: 77, scope: !232, inlinedAt: !377)
!394 = !DILocation(line: 383, scope: !260, inlinedAt: !395)
!395 = !DILocation(line: 670, scope: !263, inlinedAt: !396)
!396 = !DILocation(line: 643, scope: !250, inlinedAt: !391)
!397 = !DILocation(line: 966, scope: !266, inlinedAt: !392)
!398 = !DILocation(line: 83, scope: !230, inlinedAt: !386)
!399 = distinct !{!399}
!400 = distinct !DISubprogram(name: "*", linkageName: "julia_*_14313", scope: null, file: !9, line: 21, type: !16, scopeLine: 21, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!401 = !{i64 8}
!402 = !DILocation(line: 151, scope: !27, inlinedAt: !403)
!403 = !DILocation(line: 95, scope: !30, inlinedAt: !404)
!404 = !DILocation(line: 499, scope: !32, inlinedAt: !405)
!405 = !DILocation(line: 281, scope: !34, inlinedAt: !406)
!406 = !DILocation(line: 860, scope: !36, inlinedAt: !407)
!407 = !DILocation(line: 849, scope: !38, inlinedAt: !408)
!408 = !DILocation(line: 21, scope: !400)
!409 = !DILocation(line: 507, scope: !45, inlinedAt: !410)
!410 = !DILocation(line: 504, scope: !47, inlinedAt: !404)
!411 = !DILocation(line: 459, scope: !51, inlinedAt: !412)
!412 = !DILocation(line: 468, scope: !51, inlinedAt: !413)
!413 = !DILocation(line: 476, scope: !51, inlinedAt: !414)
!414 = !DILocation(line: 841, scope: !56, inlinedAt: !415)
!415 = !DILocation(line: 840, scope: !56, inlinedAt: !416)
!416 = !DILocation(line: 212, scope: !59, inlinedAt: !417)
!417 = !DILocation(line: 211, scope: !59, inlinedAt: !418)
!418 = !DILocation(line: 885, scope: !62, inlinedAt: !406)
!419 = !DILocation(line: 151, scope: !27, inlinedAt: !420)
!420 = !DILocation(line: 95, scope: !30, inlinedAt: !421)
!421 = !DILocation(line: 949, scope: !66, inlinedAt: !422)
!422 = !DILocation(line: 913, scope: !66, inlinedAt: !418)
!423 = !DILocation(line: 477, scope: !69, inlinedAt: !424)
!424 = !DILocation(line: 1111, scope: !72, inlinedAt: !425)
!425 = !DILocation(line: 402, scope: !75, inlinedAt: !426)
!426 = !DILocation(line: 398, scope: !78, inlinedAt: !421)
!427 = !DILocation(line: 934, scope: !80, inlinedAt: !428)
!428 = !DILocation(line: 941, scope: !82, inlinedAt: !429)
!429 = !DILocation(line: 944, scope: !84, inlinedAt: !430)
!430 = !DILocation(line: 943, scope: !84, inlinedAt: !431)
!431 = !DILocation(line: 940, scope: !82, inlinedAt: !432)
!432 = !DILocation(line: 957, scope: !66, inlinedAt: !422)
!433 = !DILocation(line: 33, scope: !89, inlinedAt: !434)
!434 = !DILocation(line: 593, scope: !92, inlinedAt: !435)
!435 = !DILocation(line: 1462, scope: !95, inlinedAt: !436)
!436 = !DILocation(line: 1427, scope: !97, inlinedAt: !427)
!437 = !DILocation(line: 65, scope: !101, inlinedAt: !438)
!438 = !DILocation(line: 1187, scope: !104, inlinedAt: !439)
!439 = !DILocation(line: 1486, scope: !106, inlinedAt: !435)
!440 = !DILocation(line: 477, scope: !69, inlinedAt: !441)
!441 = !DILocation(line: 282, scope: !111, inlinedAt: !442)
!442 = !DILocation(line: 1469, scope: !114, inlinedAt: !435)
!443 = !DILocation(line: 369, scope: !116, inlinedAt: !444)
!444 = !DILocation(line: 1443, scope: !118, inlinedAt: !436)
!445 = !DILocation(line: 83, scope: !120, inlinedAt: !446)
!446 = !DILocation(line: 72, scope: !123, inlinedAt: !447)
!447 = !DILocation(line: 960, scope: !66, inlinedAt: !422)
!448 = !DILocation(line: 151, scope: !27, inlinedAt: !449)
!449 = !DILocation(line: 95, scope: !30, inlinedAt: !450)
!450 = !DILocation(line: 586, scope: !129, inlinedAt: !451)
!451 = !DILocation(line: 637, scope: !131, inlinedAt: !428)
!452 = !DILocation(line: 477, scope: !69, inlinedAt: !453)
!453 = !DILocation(line: 282, scope: !111, inlinedAt: !454)
!454 = !DILocation(line: 592, scope: !135, inlinedAt: !455)
!455 = !DILocation(line: 587, scope: !137, inlinedAt: !450)
!456 = !DILocation(line: 75, scope: !123, inlinedAt: !447)
!457 = !DILocation(line: 924, scope: !140, inlinedAt: !458)
!458 = !DILocation(line: 636, scope: !142, inlinedAt: !459)
!459 = !DILocation(line: 667, scope: !144, inlinedAt: !460)
!460 = !DILocation(line: 666, scope: !144, inlinedAt: !461)
!461 = !DILocation(line: 642, scope: !142, inlinedAt: !462)
!462 = !DILocation(line: 597, scope: !148, inlinedAt: !463)
!463 = !DILocation(line: 961, scope: !150, inlinedAt: !464)
!464 = !DILocation(line: 77, scope: !123, inlinedAt: !447)
!465 = !DILocation(line: 5, scope: !155, inlinedAt: !466)
!466 = !DILocation(line: 176, scope: !158, inlinedAt: !467)
!467 = !DILocation(line: 670, scope: !161, inlinedAt: !468)
!468 = !DILocation(line: 643, scope: !142, inlinedAt: !462)
!469 = !DILocation(line: 966, scope: !164, inlinedAt: !463)
!470 = !DILocation(line: 83, scope: !120, inlinedAt: !456)
!471 = distinct !{!471}
!472 = !DILocation(line: 221, scope: !171, inlinedAt: !420)
!473 = distinct !DISubprogram(name: "*", linkageName: "julia_*_14313", scope: null, file: !9, line: 21, type: !16, scopeLine: 21, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!474 = !DILocation(line: 151, scope: !27, inlinedAt: !475)
!475 = !DILocation(line: 95, scope: !30, inlinedAt: !476)
!476 = !DILocation(line: 499, scope: !32, inlinedAt: !477)
!477 = !DILocation(line: 281, scope: !34, inlinedAt: !478)
!478 = !DILocation(line: 860, scope: !36, inlinedAt: !479)
!479 = !DILocation(line: 849, scope: !38, inlinedAt: !480)
!480 = !DILocation(line: 21, scope: !473)
!481 = !DILocation(line: 507, scope: !45, inlinedAt: !482)
!482 = !DILocation(line: 504, scope: !47, inlinedAt: !476)
!483 = !DILocation(line: 459, scope: !51, inlinedAt: !484)
!484 = !DILocation(line: 468, scope: !51, inlinedAt: !485)
!485 = !DILocation(line: 476, scope: !51, inlinedAt: !486)
!486 = !DILocation(line: 841, scope: !56, inlinedAt: !487)
!487 = !DILocation(line: 840, scope: !56, inlinedAt: !488)
!488 = !DILocation(line: 212, scope: !59, inlinedAt: !489)
!489 = !DILocation(line: 211, scope: !59, inlinedAt: !490)
!490 = !DILocation(line: 885, scope: !62, inlinedAt: !478)
!491 = !DILocation(line: 151, scope: !27, inlinedAt: !492)
!492 = !DILocation(line: 95, scope: !30, inlinedAt: !493)
!493 = !DILocation(line: 949, scope: !66, inlinedAt: !494)
!494 = !DILocation(line: 913, scope: !66, inlinedAt: !490)
!495 = !DILocation(line: 477, scope: !69, inlinedAt: !496)
!496 = !DILocation(line: 1111, scope: !72, inlinedAt: !497)
!497 = !DILocation(line: 402, scope: !75, inlinedAt: !498)
!498 = !DILocation(line: 398, scope: !78, inlinedAt: !493)
!499 = !DILocation(line: 934, scope: !80, inlinedAt: !500)
!500 = !DILocation(line: 941, scope: !82, inlinedAt: !501)
!501 = !DILocation(line: 944, scope: !84, inlinedAt: !502)
!502 = !DILocation(line: 943, scope: !84, inlinedAt: !503)
!503 = !DILocation(line: 940, scope: !82, inlinedAt: !504)
!504 = !DILocation(line: 957, scope: !66, inlinedAt: !494)
!505 = !DILocation(line: 33, scope: !89, inlinedAt: !506)
!506 = !DILocation(line: 593, scope: !92, inlinedAt: !507)
!507 = !DILocation(line: 1462, scope: !95, inlinedAt: !508)
!508 = !DILocation(line: 1427, scope: !97, inlinedAt: !499)
!509 = !DILocation(line: 65, scope: !101, inlinedAt: !510)
!510 = !DILocation(line: 1187, scope: !104, inlinedAt: !511)
!511 = !DILocation(line: 1486, scope: !106, inlinedAt: !507)
!512 = !DILocation(line: 477, scope: !69, inlinedAt: !513)
!513 = !DILocation(line: 282, scope: !111, inlinedAt: !514)
!514 = !DILocation(line: 1469, scope: !114, inlinedAt: !507)
!515 = !DILocation(line: 369, scope: !116, inlinedAt: !516)
!516 = !DILocation(line: 1443, scope: !118, inlinedAt: !508)
!517 = !DILocation(line: 83, scope: !120, inlinedAt: !518)
!518 = !DILocation(line: 72, scope: !123, inlinedAt: !519)
!519 = !DILocation(line: 960, scope: !66, inlinedAt: !494)
!520 = !DILocation(line: 151, scope: !27, inlinedAt: !521)
!521 = !DILocation(line: 95, scope: !30, inlinedAt: !522)
!522 = !DILocation(line: 586, scope: !129, inlinedAt: !523)
!523 = !DILocation(line: 637, scope: !131, inlinedAt: !500)
!524 = !DILocation(line: 477, scope: !69, inlinedAt: !525)
!525 = !DILocation(line: 282, scope: !111, inlinedAt: !526)
!526 = !DILocation(line: 592, scope: !135, inlinedAt: !527)
!527 = !DILocation(line: 587, scope: !137, inlinedAt: !522)
!528 = !DILocation(line: 75, scope: !123, inlinedAt: !519)
!529 = !DILocation(line: 924, scope: !140, inlinedAt: !530)
!530 = !DILocation(line: 636, scope: !142, inlinedAt: !531)
!531 = !DILocation(line: 667, scope: !144, inlinedAt: !532)
!532 = !DILocation(line: 666, scope: !144, inlinedAt: !533)
!533 = !DILocation(line: 642, scope: !142, inlinedAt: !534)
!534 = !DILocation(line: 597, scope: !148, inlinedAt: !535)
!535 = !DILocation(line: 961, scope: !150, inlinedAt: !536)
!536 = !DILocation(line: 77, scope: !123, inlinedAt: !519)
!537 = !DILocation(line: 5, scope: !155, inlinedAt: !538)
!538 = !DILocation(line: 176, scope: !158, inlinedAt: !539)
!539 = !DILocation(line: 670, scope: !161, inlinedAt: !540)
!540 = !DILocation(line: 643, scope: !142, inlinedAt: !534)
!541 = !DILocation(line: 966, scope: !164, inlinedAt: !535)
!542 = !DILocation(line: 83, scope: !120, inlinedAt: !528)
!543 = distinct !{!543}
!544 = !DILocation(line: 221, scope: !171, inlinedAt: !492)
!545 = distinct !DISubprogram(name: "*", linkageName: "julia_*_14313", scope: null, file: !9, line: 21, type: !16, scopeLine: 21, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !4)
!546 = !DILocation(line: 151, scope: !27, inlinedAt: !547)
!547 = !DILocation(line: 95, scope: !30, inlinedAt: !548)
!548 = !DILocation(line: 499, scope: !32, inlinedAt: !549)
!549 = !DILocation(line: 281, scope: !34, inlinedAt: !550)
!550 = !DILocation(line: 860, scope: !36, inlinedAt: !551)
!551 = !DILocation(line: 849, scope: !38, inlinedAt: !552)
!552 = !DILocation(line: 21, scope: !545)
!553 = !DILocation(line: 507, scope: !45, inlinedAt: !554)
!554 = !DILocation(line: 504, scope: !47, inlinedAt: !548)
!555 = !DILocation(line: 459, scope: !51, inlinedAt: !556)
!556 = !DILocation(line: 468, scope: !51, inlinedAt: !557)
!557 = !DILocation(line: 476, scope: !51, inlinedAt: !558)
!558 = !DILocation(line: 841, scope: !56, inlinedAt: !559)
!559 = !DILocation(line: 840, scope: !56, inlinedAt: !560)
!560 = !DILocation(line: 212, scope: !59, inlinedAt: !561)
!561 = !DILocation(line: 211, scope: !59, inlinedAt: !562)
!562 = !DILocation(line: 885, scope: !62, inlinedAt: !550)
!563 = !DILocation(line: 151, scope: !27, inlinedAt: !564)
!564 = !DILocation(line: 95, scope: !30, inlinedAt: !565)
!565 = !DILocation(line: 949, scope: !66, inlinedAt: !566)
!566 = !DILocation(line: 913, scope: !66, inlinedAt: !562)
!567 = !DILocation(line: 477, scope: !69, inlinedAt: !568)
!568 = !DILocation(line: 1111, scope: !72, inlinedAt: !569)
!569 = !DILocation(line: 402, scope: !75, inlinedAt: !570)
!570 = !DILocation(line: 398, scope: !78, inlinedAt: !565)
!571 = !DILocation(line: 934, scope: !80, inlinedAt: !572)
!572 = !DILocation(line: 941, scope: !82, inlinedAt: !573)
!573 = !DILocation(line: 944, scope: !84, inlinedAt: !574)
!574 = !DILocation(line: 943, scope: !84, inlinedAt: !575)
!575 = !DILocation(line: 940, scope: !82, inlinedAt: !576)
!576 = !DILocation(line: 957, scope: !66, inlinedAt: !566)
!577 = !DILocation(line: 33, scope: !89, inlinedAt: !578)
!578 = !DILocation(line: 593, scope: !92, inlinedAt: !579)
!579 = !DILocation(line: 1462, scope: !95, inlinedAt: !580)
!580 = !DILocation(line: 1427, scope: !97, inlinedAt: !571)
!581 = !DILocation(line: 65, scope: !101, inlinedAt: !582)
!582 = !DILocation(line: 1187, scope: !104, inlinedAt: !583)
!583 = !DILocation(line: 1486, scope: !106, inlinedAt: !579)
!584 = !DILocation(line: 477, scope: !69, inlinedAt: !585)
!585 = !DILocation(line: 282, scope: !111, inlinedAt: !586)
!586 = !DILocation(line: 1469, scope: !114, inlinedAt: !579)
!587 = !DILocation(line: 369, scope: !116, inlinedAt: !588)
!588 = !DILocation(line: 1443, scope: !118, inlinedAt: !580)
!589 = distinct !{}
!590 = !DILocation(line: 83, scope: !120, inlinedAt: !591)
!591 = !DILocation(line: 72, scope: !123, inlinedAt: !592)
!592 = !DILocation(line: 960, scope: !66, inlinedAt: !566)
!593 = !DILocation(line: 151, scope: !27, inlinedAt: !594)
!594 = !DILocation(line: 95, scope: !30, inlinedAt: !595)
!595 = !DILocation(line: 586, scope: !129, inlinedAt: !596)
!596 = !DILocation(line: 637, scope: !131, inlinedAt: !572)
!597 = !DILocation(line: 477, scope: !69, inlinedAt: !598)
!598 = !DILocation(line: 282, scope: !111, inlinedAt: !599)
!599 = !DILocation(line: 592, scope: !135, inlinedAt: !600)
!600 = !DILocation(line: 587, scope: !137, inlinedAt: !595)
!601 = !DILocation(line: 75, scope: !123, inlinedAt: !592)
!602 = !DILocation(line: 924, scope: !140, inlinedAt: !603)
!603 = !DILocation(line: 636, scope: !142, inlinedAt: !604)
!604 = !DILocation(line: 667, scope: !144, inlinedAt: !605)
!605 = !DILocation(line: 666, scope: !144, inlinedAt: !606)
!606 = !DILocation(line: 642, scope: !142, inlinedAt: !607)
!607 = !DILocation(line: 597, scope: !148, inlinedAt: !608)
!608 = !DILocation(line: 961, scope: !150, inlinedAt: !609)
!609 = !DILocation(line: 77, scope: !123, inlinedAt: !592)
!610 = !DILocation(line: 5, scope: !155, inlinedAt: !611)
!611 = !DILocation(line: 176, scope: !158, inlinedAt: !612)
!612 = !DILocation(line: 670, scope: !161, inlinedAt: !613)
!613 = !DILocation(line: 643, scope: !142, inlinedAt: !607)
!614 = !DILocation(line: 966, scope: !164, inlinedAt: !608)
!615 = !DILocation(line: 83, scope: !120, inlinedAt: !601)
!616 = distinct !{!616}
!617 = !DILocation(line: 221, scope: !171, inlinedAt: !564)

; Function Attrs: mustprogress uwtable willreturn
define internal fastcc nonnull void @diffejulia___14313({} addrspace(10)* nonnull align 16 dereferenceable(40) %0, {} addrspace(10)* %"'", { {} addrspace(10)*, {} addrspace(10)*, i64, i1, i1, i1 } %tapeArg) unnamed_addr #12 !dbg !545 {
top:
  %1 = bitcast {} addrspace(10)* %0 to i8 addrspace(10)*
  %2 = getelementptr i8, i8 addrspace(10)* %1, i64 18
  %3 = bitcast i8 addrspace(10)* %2 to i16 addrspace(10)*
  %4 = load i16, i16 addrspace(10)* %3, align 2
  %5 = zext i16 %4 to i64
  %6 = getelementptr i8, i8 addrspace(10)* %1, i64 8
  %7 = bitcast i8 addrspace(10)* %6 to i64 addrspace(10)*
  %8 = load i64, i64 addrspace(10)* %7, align 8
  %9 = mul i64 %8, %5
  %_replacementA17 = phi i8*
  %_replacementA16 = phi [1 x [1 x i64]]*
  %_replacementA15 = phi i8*
  %_replacementA14 = phi [1 x [1 x i64]]*
  %_replacementA13 = phi {}***
  %_replacementA12 = phi { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)* , !dbg !546
  %_replacementA11 = phi { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* , !dbg !546
  %_replacementA10 = phi i64 addrspace(11)* , !dbg !546
  %10 = load i64, i64 addrspace(11)* %_replacementA10, align 8, !dbg !546, !tbaa !40, !range !43
  %_replacementA9 = phi i64* , !dbg !553
  %11 = extractvalue { {} addrspace(10)*, {} addrspace(10)*, i64, i1, i1, i1 } %tapeArg, 1, !dbg !555
  %12 = extractvalue { {} addrspace(10)*, {} addrspace(10)*, i64, i1, i1, i1 } %tapeArg, 0, !dbg !563
  %_replacementA8 = phi { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)* , !dbg !563
  %_replacementA7 = phi { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* , !dbg !563
  %_replacementA6 = phi i64 addrspace(11)* , !dbg !563
  %_replacementA = phi i64 , !dbg !563
  %.not.not_replacementA = phi i1 , !dbg !567
  br i1 %.not.not_replacementA, label %L20, label %L108, !dbg !565

L20:                                              ; preds = %top
  %13 = addrspacecast {} addrspace(10)* %11 to {} addrspace(11)*, !dbg !571
  %14 = addrspacecast {} addrspace(10)* %0 to {} addrspace(11)*, !dbg !571
  %.not = icmp eq {} addrspace(11)* %13, %14, !dbg !571
  br i1 %.not, label %L50, label %L23, !dbg !571

L23:                                              ; preds = %L20
  %_replacementA19 = phi i8 , !dbg !577
  %_replacementA18 = phi i8 , !dbg !579
  %.not18.not = icmp eq i8 %_replacementA18, 0, !dbg !579
  br i1 %.not18.not, label %L33, label %L50, !dbg !579

L33:                                              ; preds = %L23
  %_replacementA25 = phi {}* , !dbg !581
  %_replacementA24 = phi i8** , !dbg !581
  %_replacementA23 = phi i8* , !dbg !581
  %_replacementA22 = phi {}* , !dbg !581
  %_replacementA21 = phi i8** , !dbg !581
  %_replacementA20 = phi i8* , !dbg !581
  %.not21 = icmp eq i8* %_replacementA23, %_replacementA20, !dbg !584
  br i1 %.not21, label %L45, label %L50, !dbg !580

L45:                                              ; preds = %L33
  %15 = call nonnull {} addrspace(10)* @ijl_array_copy({} addrspace(10)* noundef nonnull %0) #11, !dbg !587
  %"'ip_phi3" = phi {} addrspace(10)* , !dbg !580
  store {} addrspace(10)* %"'ip_phi3", {} addrspace(10)** %"'ip_phi3_cache", align 8, !dbg !580, !invariant.group !589
  br label %L50, !dbg !580

L50:                                              ; preds = %L45, %L33, %L23, %L20
  %value_phi1 = phi {} addrspace(10)* [ %15, %L45 ], [ %0, %L20 ], [ %0, %L23 ], [ %0, %L33 ]
  %.not14 = icmp eq i64 %10, 0, !dbg !590
  br i1 %.not14, label %L120, label %L72.lr.ph, !dbg !591

L72.lr.ph:                                        ; preds = %L50
  %16 = bitcast {} addrspace(10)* %value_phi1 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)*, !dbg !593
  %17 = addrspacecast { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)* %16 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !593
  %18 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %17, i64 0, i32 1, !dbg !593
  %19 = load i64, i64 addrspace(11)* %18, align 8, !dbg !593, !tbaa !40, !range !43
  %.not16 = icmp eq i64 %19, 1, !dbg !597
  %20 = bitcast {} addrspace(10)* %value_phi1 to double addrspace(13)* addrspace(10)*
  %21 = addrspacecast double addrspace(13)* addrspace(10)* %20 to double addrspace(13)* addrspace(11)*
  %22 = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %21, align 8, !tbaa !107, !nonnull !4
  %"'il_phi4" = phi double addrspace(13)*
  %23 = bitcast {} addrspace(10)* %11 to double addrspace(13)* addrspace(10)*
  %24 = addrspacecast double addrspace(13)* addrspace(10)* %23 to double addrspace(13)* addrspace(11)*
  %25 = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %24, align 8, !tbaa !107, !nonnull !4
  %"'il_phi5" = phi double addrspace(13)* , !dbg !601
  br i1 %.not16, label %L72.us.us.preheader, label %L72.us24.preheader, !dbg !601

L72.us24.preheader:                               ; preds = %L72.lr.ph
  %26 = add nsw i64 %10, -1, !dbg !601
  br label %L72.us24, !dbg !601

L72.us.us.preheader:                              ; preds = %L72.lr.ph
  %27 = add nsw i64 %10, -1, !dbg !601
  br label %L72.us.us, !dbg !601

L72.us.us:                                        ; preds = %L72.us.us, %L72.us.us.preheader
  %iv1 = phi i64 [ %iv.next2, %L72.us.us ], [ 0, %L72.us.us.preheader ]
  %iv.next2 = add nuw nsw i64 %iv1, 1, !dbg !602
  %28 = load double, double addrspace(13)* %22, align 8, !dbg !602, !tbaa !152
  %29 = call double @llvm.copysign.f64(double noundef 0.000000e+00, double %28) #11, !dbg !610
  %30 = getelementptr inbounds double, double addrspace(13)* %25, i64 %iv1, !dbg !614
  store double %29, double addrspace(13)* %30, align 8, !dbg !614, !tbaa !152
  %exitcond29.not = icmp eq i64 %iv.next2, %10, !dbg !615
  br i1 %exitcond29.not, label %L120.loopexit, label %L72.us.us, !dbg !601, !llvm.loop !616

L72.us24:                                         ; preds = %L72.us24, %L72.us24.preheader
  %iv = phi i64 [ %iv.next, %L72.us24 ], [ 0, %L72.us24.preheader ]
  %iv.next = add nuw nsw i64 %iv, 1, !dbg !602
  %31 = getelementptr inbounds double, double addrspace(13)* %22, i64 %iv, !dbg !602
  %32 = load double, double addrspace(13)* %31, align 8, !dbg !602, !tbaa !152
  %33 = call double @llvm.copysign.f64(double noundef 0.000000e+00, double %32) #11, !dbg !610
  %34 = getelementptr inbounds double, double addrspace(13)* %25, i64 %iv, !dbg !614
  store double %33, double addrspace(13)* %34, align 8, !dbg !614, !tbaa !152
  %exitcond28.not = icmp eq i64 %iv.next, %10, !dbg !615
  br i1 %exitcond28.not, label %L120.loopexit3, label %L72.us24, !dbg !601, !llvm.loop !616

L108:                                             ; preds = %top
  %35 = getelementptr inbounds [1 x [1 x i64]], [1 x [1 x i64]]* %_replacementA14, i64 0, i64 0, i64 0, !dbg !617
  store i64 %_replacementA, i64* %35, align 8, !dbg !617, !tbaa !48
  %36 = addrspacecast [1 x [1 x i64]]* %_replacementA14 to [1 x [1 x i64]] addrspace(11)*, !dbg !565
  %37 = addrspacecast [1 x [1 x i64]]* %_replacementA16 to [1 x [1 x i64]] addrspace(11)*, !dbg !565
  %38 = call fastcc nonnull {} addrspace(10)* @julia_throwdm_14307([1 x [1 x i64]] addrspace(11)* nocapture nofree noundef nonnull readonly align 8 dereferenceable(8) %36, [1 x [1 x i64]] addrspace(11)* nocapture nofree noundef nonnull readonly align 8 dereferenceable(8) %37) #15, !dbg !565
  unreachable, !dbg !565

L120.loopexit:                                    ; preds = %L72.us.us
  br label %L120, !dbg !552

L120.loopexit3:                                   ; preds = %L72.us24
  br label %L120, !dbg !552

L120:                                             ; preds = %L120.loopexit3, %L120.loopexit, %L50
  br label %invertL120, !dbg !552

allocsForInversion:                               ; No predecessors!
  %"iv1'ac" = alloca i64, align 8
  %"iv'ac" = alloca i64, align 8
  %"'ip_phi3_cache" = alloca {} addrspace(10)*, align 8
  store {} addrspace(10)* null, {} addrspace(10)** %"'ip_phi3_cache", align 8

inverttop:                                        ; preds = %invertL20
  ret void

invertL20:                                        ; preds = %invertL23
  br label %inverttop

invertL23:                                        ; preds = %invertL33
  br label %invertL20

invertL33:                                        ; No predecessors!
  br label %invertL23

invertL45:                                        ; No predecessors!
  %39 = load {} addrspace(10)*, {} addrspace(10)** %"'ip_phi3_cache", align 8, !invariant.group !589
  %40 = bitcast {} addrspace(10)* %"'" to i8 addrspace(13)* addrspace(10)*
  %41 = load i8 addrspace(13)*, i8 addrspace(13)* addrspace(10)* %40, align 8
  %42 = bitcast {} addrspace(10)* %39 to i8 addrspace(13)* addrspace(10)*
  %43 = load i8 addrspace(13)*, i8 addrspace(13)* addrspace(10)* %42, align 8
  %44 = bitcast i8 addrspace(13)* %43 to double addrspace(13)*, !dbg !587
  %45 = bitcast i8 addrspace(13)* %41 to double addrspace(13)*, !dbg !587
  %46 = udiv i64 %9, 8, !dbg !587
  call void @__enzyme_memcpyadd_doubleda1sa1dadd13sadd13(double addrspace(13)* %44, double addrspace(13)* %45, i64 %46), !dbg !587

invertL50:                                        ; No predecessors!

invertL72.lr.ph:                                  ; No predecessors!

invertL72.us24.preheader:                         ; No predecessors!

invertL72.us.us.preheader:                        ; No predecessors!

invertL72.us.us:                                  ; No predecessors!

invertL72.us24:                                   ; No predecessors!

invertL108:                                       ; No predecessors!

invertL120.loopexit:                              ; No predecessors!

invertL120.loopexit3:                             ; No predecessors!

invertL120:                                       ; preds = %L120
}

  %"'ip_phi3" = phi {} addrspace(10)* , !dbg !87
Assertion failed: I->use_empty(), file /workspace/srcdir/Enzyme/enzyme/Enzyme/CacheUtility.cpp, line 76

signal (22): SIGABRT
in expression starting at REPL[37]:1
crt_sig_handler at /cygdrive/c/buildbot/worker/package_win64/build/src\signals-win.c:93
raise at C:\WINDOWS\System32\msvcrt.dll (unknown line)
abort at C:\WINDOWS\System32\msvcrt.dll (unknown line)
assert at C:\WINDOWS\System32\msvcrt.dll (unknown line)
erase at /workspace/srcdir/Enzyme/enzyme/Enzyme\CacheUtility.cpp:76
erase at /workspace/srcdir/Enzyme/enzyme/Enzyme\GradientUtils.h:1095
visitCallInst at /workspace/srcdir/Enzyme/enzyme/Enzyme\AdjointGenerator.h:8606
delegateCallInst at /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/usr/local/include/llvm/IR\InstVisitor.h:302 [inlined]
visitCall at /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/usr/local/include/llvm/IR\Instruction.def:209 [inlined]
visit at /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/usr/local/include/llvm/IR\Instruction.def:209
visit at /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/usr/local/include/llvm/IR\InstVisitor.h:112 [inlined]
CreatePrimalAndGradient at /workspace/srcdir/Enzyme/enzyme/Enzyme\EnzymeLogic.cpp:3881
visitCallInst at /workspace/srcdir/Enzyme/enzyme/Enzyme\AdjointGenerator.h:11943
delegateCallInst at /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/usr/local/include/llvm/IR\InstVisitor.h:302 [inlined]
visitCall at /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/usr/local/include/llvm/IR\Instruction.def:209 [inlined]
visit at /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/usr/local/include/llvm/IR\Instruction.def:209
visit at /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/usr/local/include/llvm/IR\InstVisitor.h:112 [inlined]
CreatePrimalAndGradient at /workspace/srcdir/Enzyme/enzyme/Enzyme\EnzymeLogic.cpp:3881
visitCallInst at /workspace/srcdir/Enzyme/enzyme/Enzyme\AdjointGenerator.h:11943
delegateCallInst at /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/usr/local/include/llvm/IR\InstVisitor.h:302 [inlined]
visitCall at /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/usr/local/include/llvm/IR\Instruction.def:209 [inlined]
visit at /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/usr/local/include/llvm/IR\Instruction.def:209
visit at /opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/usr/local/include/llvm/IR\InstVisitor.h:112 [inlined]
CreatePrimalAndGradient at /workspace/srcdir/Enzyme/enzyme/Enzyme\EnzymeLogic.cpp:3881
EnzymeCreatePrimalAndGradient at /workspace/srcdir/Enzyme/enzyme/Enzyme\CApi.cpp:439
EnzymeCreatePrimalAndGradient at C:\Users\accou\.julia\packages\Enzyme\by4bd\src\api.jl:111
enzyme! at C:\Users\accou\.julia\packages\Enzyme\by4bd\src\compiler.jl:3462
unknown function (ip: 000000000968357e)
#codegen#74 at C:\Users\accou\.julia\packages\Enzyme\by4bd\src\compiler.jl:4370
codegen##kw at C:\Users\accou\.julia\packages\Enzyme\by4bd\src\compiler.jl:4069 [inlined]
_thunk at C:\Users\accou\.julia\packages\Enzyme\by4bd\src\compiler.jl:4775
unknown function (ip: 000000000967f490)
cached_compilation at C:\Users\accou\.julia\packages\Enzyme\by4bd\src\compiler.jl:4813
unknown function (ip: 00000000095a0397)
#s618#101 at C:\Users\accou\.julia\packages\Enzyme\by4bd\src\compiler.jl:4873 [inlined]
#s618#101 at .\none:0
GeneratedFunctionStub at .\boot.jl:582
jl_apply at /cygdrive/c/buildbot/worker/package_win64/build/src\julia.h:1838 [inlined]
jl_call_staged at /cygdrive/c/buildbot/worker/package_win64/build/src\method.c:520
ijl_code_for_staged at /cygdrive/c/buildbot/worker/package_win64/build/src\method.c:571
get_staged at .\compiler\utilities.jl:114
retrieve_code_info at .\compiler\utilities.jl:126 [inlined]
InferenceState at .\compiler\inferencestate.jl:284
typeinf_edge at .\compiler\typeinfer.jl:868
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2366
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_edge at .\compiler\typeinfer.jl:877
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2366
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_edge at .\compiler\typeinfer.jl:877
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2366
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_edge at .\compiler\typeinfer.jl:877
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2340
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_edge at .\compiler\typeinfer.jl:877
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_apply at .\compiler\abstractinterpretation.jl:1339
abstract_call_known at .\compiler\abstractinterpretation.jl:1600
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2366
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_edge at .\compiler\typeinfer.jl:877
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_apply at .\compiler\abstractinterpretation.jl:1339
abstract_call_known at .\compiler\abstractinterpretation.jl:1600
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2366
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_edge at .\compiler\typeinfer.jl:877
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2366
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_edge at .\compiler\typeinfer.jl:877
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2366
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_edge at .\compiler\typeinfer.jl:877
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2366
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_edge at .\compiler\typeinfer.jl:877
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2366
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_edge at .\compiler\typeinfer.jl:877
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call at .\compiler\abstractinterpretation.jl:1764
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2366
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_edge at .\compiler\typeinfer.jl:877
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2366
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_edge at .\compiler\typeinfer.jl:877
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2366
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_edge at .\compiler\typeinfer.jl:877
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2366
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_edge at .\compiler\typeinfer.jl:877
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2366
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_edge at .\compiler\typeinfer.jl:877
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2366
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_edge at .\compiler\typeinfer.jl:877
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:148
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2340
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_edge at .\compiler\typeinfer.jl:877
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2366
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_edge at .\compiler\typeinfer.jl:877
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2366
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_edge at .\compiler\typeinfer.jl:877
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2366
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_edge at .\compiler\typeinfer.jl:877
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2366
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_edge at .\compiler\typeinfer.jl:877
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2366
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_edge at .\compiler\typeinfer.jl:877
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_apply at .\compiler\abstractinterpretation.jl:1339
abstract_call_known at .\compiler\abstractinterpretation.jl:1600
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2366
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_edge at .\compiler\typeinfer.jl:877
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_apply at .\compiler\abstractinterpretation.jl:1339
abstract_call_known at .\compiler\abstractinterpretation.jl:1600
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2366
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_edge at .\compiler\typeinfer.jl:877
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_apply at .\compiler\abstractinterpretation.jl:1339
abstract_call_known at .\compiler\abstractinterpretation.jl:1600
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2366
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_edge at .\compiler\typeinfer.jl:877
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_apply at .\compiler\abstractinterpretation.jl:1339
abstract_call_known at .\compiler\abstractinterpretation.jl:1600
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2366
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_edge at .\compiler\typeinfer.jl:877
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_apply at .\compiler\abstractinterpretation.jl:1339
abstract_call_known at .\compiler\abstractinterpretation.jl:1600
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2366
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_edge at .\compiler\typeinfer.jl:877
abstract_call_method at .\compiler\abstractinterpretation.jl:641
abstract_call_gf_by_type at .\compiler\abstractinterpretation.jl:153
abstract_call_known at .\compiler\abstractinterpretation.jl:1696
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_apply at .\compiler\abstractinterpretation.jl:1339
abstract_call_known at .\compiler\abstractinterpretation.jl:1600
abstract_call at .\compiler\abstractinterpretation.jl:1766
abstract_call at .\compiler\abstractinterpretation.jl:1733
abstract_eval_statement at .\compiler\abstractinterpretation.jl:1890
typeinf_local at .\compiler\abstractinterpretation.jl:2366
typeinf_nocycle at .\compiler\abstractinterpretation.jl:2462
_typeinf at .\compiler\typeinfer.jl:230
typeinf at .\compiler\typeinfer.jl:213
typeinf_ext at .\compiler\typeinfer.jl:967
typeinf_ext_toplevel at .\compiler\typeinfer.jl:1000
typeinf_ext_toplevel at .\compiler\typeinfer.jl:996
jfptr_typeinf_ext_toplevel_16992.clone_1 at C:\Users\accou\.julia\juliaup\julia-1.8.0+0.x64\lib\julia\sys.dll (unknown line)
_jl_invoke at /cygdrive/c/buildbot/worker/package_win64/build/src\gf.c:2367 [inlined]
ijl_apply_generic at /cygdrive/c/buildbot/worker/package_win64/build/src\gf.c:2549 [inlined]
jl_apply at /cygdrive/c/buildbot/worker/package_win64/build/src\julia.h:1838 [inlined]
jl_type_infer at /cygdrive/c/buildbot/worker/package_win64/build/src\gf.c:319
jl_generate_fptr_impl at /cygdrive/c/buildbot/worker/package_win64/build/src\jitlayers.cpp:319
jl_compile_method_internal at /cygdrive/c/buildbot/worker/package_win64/build/src\gf.c:2081
jl_compile_method_internal at /cygdrive/c/buildbot/worker/package_win64/build/src\gf.c:2028 [inlined]
_jl_invoke at /cygdrive/c/buildbot/worker/package_win64/build/src\gf.c:2359 [inlined]
ijl_apply_generic at /cygdrive/c/buildbot/worker/package_win64/build/src\gf.c:2549
#_adjoint_sensitivities#68 at C:\Users\accou\.julia\dev\SciMLSensitivity\src\sensitivity_interface.jl:431
_adjoint_sensitivities##kw at C:\Users\accou\.julia\dev\SciMLSensitivity\src\sensitivity_interface.jl:390 [inlined]
#adjoint_sensitivities#67 at C:\Users\accou\.julia\dev\SciMLSensitivity\src\sensitivity_interface.jl:386 [inlined]
adjoint_sensitivities##kw at C:\Users\accou\.julia\dev\SciMLSensitivity\src\sensitivity_interface.jl:358
unknown function (ip: 000000000212bc6d)
adjoint_sensitivity_backpass at C:\Users\accou\.julia\dev\SciMLSensitivity\src\concrete_solve.jl:476
ZBack at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\chainrules.jl:206 [inlined]
kw_zpullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\chainrules.jl:232
#208 at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\lib\lib.jl:206 [inlined]
#1914#back at C:\Users\accou\.julia\packages\ZygoteRules\AIbCs\src\adjoint.jl:67
unknown function (ip: 0000000002129c06)
Pullback at C:\Users\accou\.julia\dev\DiffEqBase\src\solve.jl:784 [inlined]
Pullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface2.jl:0
#208 at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\lib\lib.jl:206
#1914#back at C:\Users\accou\.julia\packages\ZygoteRules\AIbCs\src\adjoint.jl:67
unknown function (ip: 0000000002128606)
Pullback at C:\Users\accou\.julia\dev\DiffEqBase\src\solve.jl:767 [inlined]
Pullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface2.jl:0
unknown function (ip: 0000000002124cd6)
Pullback at C:\Users\accou\.julia\packages\SciMLBase\UY87O\src\ensemble\basic_ensemble_solve.jl:92 [inlined]
Pullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface2.jl:0
Pullback at C:\Users\accou\.julia\packages\SciMLBase\UY87O\src\ensemble\basic_ensemble_solve.jl:87 [inlined]
Pullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface2.jl:0
unknown function (ip: 0000000002123796)
Pullback at C:\Users\accou\.julia\packages\SciMLBase\UY87O\src\ensemble\basic_ensemble_solve.jl:146 [inlined]
Pullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface2.jl:0
#411 at C:\Users\accou\.julia\dev\SciMLSensitivity\src\zygote.jl:29
unknown function (ip: 0000000002120404)
jl_apply at /cygdrive/c/buildbot/worker/package_win64/build/src\julia.h:1838 [inlined]
do_apply at /cygdrive/c/buildbot/worker/package_win64/build/src\builtins.c:730
responsible_map at C:\Users\accou\.julia\packages\SciMLBase\UY87O\src\ensemble\basic_ensemble_solve.jl:139
Γêçresponsible_map_internal at C:\Users\accou\.julia\dev\SciMLSensitivity\src\zygote.jl:29
#750#back at C:\Users\accou\.julia\packages\ZygoteRules\AIbCs\src\adjoint.jl:67 [inlined]
Pullback at C:\Users\accou\.julia\packages\SciMLBase\UY87O\src\ensemble\basic_ensemble_solve.jl:145 [inlined]
Pullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface2.jl:0
Pullback at C:\Users\accou\.julia\packages\SciMLBase\UY87O\src\ensemble\basic_ensemble_solve.jl:144 [inlined]
Pullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface2.jl:0
unknown function (ip: 000000000211ee17)
Pullback at C:\Users\accou\.julia\packages\SciMLBase\UY87O\src\ensemble\basic_ensemble_solve.jl:155 [inlined]
Pullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface2.jl:0
Pullback at C:\Users\accou\.julia\packages\SciMLBase\UY87O\src\ensemble\basic_ensemble_solve.jl:151 [inlined]
Pullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface2.jl:0
unknown function (ip: 000000000211db37)
macro expansion at .\timing.jl:383 [inlined]
Pullback at C:\Users\accou\.julia\packages\SciMLBase\UY87O\src\ensemble\basic_ensemble_solve.jl:56 [inlined]
Pullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface2.jl:0
unknown function (ip: 000000000211a3a6)
Pullback at C:\Users\accou\.julia\packages\SciMLBase\UY87O\src\ensemble\basic_ensemble_solve.jl:45 [inlined]
Pullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface2.jl:0
#208 at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\lib\lib.jl:206 [inlined]
#1914#back at C:\Users\accou\.julia\packages\ZygoteRules\AIbCs\src\adjoint.jl:67
unknown function (ip: 0000000002114076)
Pullback at C:\Users\accou\.julia\dev\DiffEqBase\src\solve.jl:830 [inlined]
Pullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface2.jl:0
#208 at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\lib\lib.jl:206
#1914#back at C:\Users\accou\.julia\packages\ZygoteRules\AIbCs\src\adjoint.jl:67 [inlined]
Pullback at C:\Users\accou\.julia\dev\DiffEqBase\src\solve.jl:826 [inlined]
Pullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface2.jl:0
unknown function (ip: 0000000002112af6)
Pullback at .\REPL[31]:11 [inlined]
Pullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface2.jl:0
Pullback at .\REPL[35]:1 [inlined]
Pullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface2.jl:0
#208 at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\lib\lib.jl:206 [inlined]
#1914#back at C:\Users\accou\.julia\packages\ZygoteRules\AIbCs\src\adjoint.jl:67 [inlined]
Pullback at C:\Users\accou\.julia\packages\SciMLBase\UY87O\src\scimlfunctions.jl:3024 [inlined]
#208 at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\lib\lib.jl:206 [inlined]
#1914#back at C:\Users\accou\.julia\packages\ZygoteRules\AIbCs\src\adjoint.jl:67 [inlined]
Pullback at C:\Users\accou\.julia\packages\Optimization\6nIwk\src\function\zygote.jl:30 [inlined]
Pullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface2.jl:0
#208 at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\lib\lib.jl:206 [inlined]
#1914#back at C:\Users\accou\.julia\packages\ZygoteRules\AIbCs\src\adjoint.jl:67 [inlined]
Pullback at C:\Users\accou\.julia\packages\Optimization\6nIwk\src\function\zygote.jl:32 [inlined]
Pullback at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface2.jl:0
#60 at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface.jl:45
unknown function (ip: 000000000211099a)
gradient at C:\Users\accou\.julia\packages\Zygote\qGFGD\src\compiler\interface.jl:97
#137 at C:\Users\accou\.julia\packages\Optimization\6nIwk\src\function\zygote.jl:32
unknown function (ip: 0000000001eacada)
jl_apply at /cygdrive/c/buildbot/worker/package_win64/build/src\julia.h:1838 [inlined]
do_apply at /cygdrive/c/buildbot/worker/package_win64/build/src\builtins.c:730
macro expansion at C:\Users\accou\.julia\packages\OptimizationFlux\cpWyO\src\OptimizationFlux.jl:32 [inlined]
macro expansion at C:\Users\accou\.julia\packages\Optimization\6nIwk\src\utils.jl:35 [inlined]
#__solve#1 at C:\Users\accou\.julia\packages\OptimizationFlux\cpWyO\src\OptimizationFlux.jl:30
__solve##kw at C:\Users\accou\.julia\packages\OptimizationFlux\cpWyO\src\OptimizationFlux.jl:6 [inlined]
__solve##kw at C:\Users\accou\.julia\packages\OptimizationFlux\cpWyO\src\OptimizationFlux.jl:6 [inlined]
#solve#509 at C:\Users\accou\.julia\packages\SciMLBase\UY87O\src\solve.jl:71 [inlined]
solve##kw at C:\Users\accou\.julia\packages\SciMLBase\UY87O\src\solve.jl:70
unknown function (ip: 000000005f954581)
jl_apply at /cygdrive/c/buildbot/worker/package_win64/build/src\julia.h:1838 [inlined]
do_call at /cygdrive/c/buildbot/worker/package_win64/build/src\interpreter.c:126
eval_value at /cygdrive/c/buildbot/worker/package_win64/build/src\interpreter.c:215
eval_stmt_value at /cygdrive/c/buildbot/worker/package_win64/build/src\interpreter.c:166 [inlined]
eval_body at /cygdrive/c/buildbot/worker/package_win64/build/src\interpreter.c:594
jl_interpret_toplevel_thunk at /cygdrive/c/buildbot/worker/package_win64/build/src\interpreter.c:750
jl_toplevel_eval_flex at /cygdrive/c/buildbot/worker/package_win64/build/src\toplevel.c:906
jl_toplevel_eval_flex at /cygdrive/c/buildbot/worker/package_win64/build/src\toplevel.c:850
eval_body at /cygdrive/c/buildbot/worker/package_win64/build/src\interpreter.c:556
eval_body at /cygdrive/c/buildbot/worker/package_win64/build/src\interpreter.c:522
jl_interpret_toplevel_thunk at /cygdrive/c/buildbot/worker/package_win64/build/src\interpreter.c:750
jl_toplevel_eval_flex at /cygdrive/c/buildbot/worker/package_win64/build/src\toplevel.c:906
ijl_toplevel_eval at /cygdrive/c/buildbot/worker/package_win64/build/src\toplevel.c:915 [inlined]
ijl_toplevel_eval_in at /cygdrive/c/buildbot/worker/package_win64/build/src\toplevel.c:965
eval at .\boot.jl:368 [inlined]
eval_user_input at C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.8\REPL\src\REPL.jl:151
repl_backend_loop at C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.8\REPL\src\REPL.jl:247
start_repl_backend at C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.8\REPL\src\REPL.jl:232
#run_repl#47 at C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.8\REPL\src\REPL.jl:369
run_repl at C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.8\REPL\src\REPL.jl:355
jfptr_run_repl_69828.clone_1 at C:\Users\accou\.julia\juliaup\julia-1.8.0+0.x64\lib\julia\sys.dll (unknown line)
#966 at .\client.jl:419
jfptr_YY.966_58133.clone_1 at C:\Users\accou\.julia\juliaup\julia-1.8.0+0.x64\lib\julia\sys.dll (unknown line)
jl_apply at /cygdrive/c/buildbot/worker/package_win64/build/src\julia.h:1838 [inlined]
jl_f__call_latest at /cygdrive/c/buildbot/worker/package_win64/build/src\builtins.c:774
#invokelatest#2 at .\essentials.jl:729 [inlined]
invokelatest at .\essentials.jl:726 [inlined]
run_main_repl at .\client.jl:404
exec_options at .\client.jl:318
_start at .\client.jl:522
jfptr__start_57488.clone_1 at C:\Users\accou\.julia\juliaup\julia-1.8.0+0.x64\lib\julia\sys.dll (unknown line)
jl_apply at /cygdrive/c/buildbot/worker/package_win64/build/src\julia.h:1838 [inlined]
true_main at /cygdrive/c/buildbot/worker/package_win64/build/src\jlapi.c:575
jl_repl_entrypoint at /cygdrive/c/buildbot/worker/package_win64/build/src\jlapi.c:719
mainCRTStartup at /cygdrive/c/buildbot/worker/package_win64/build/cli\loader_exe.c:59
BaseThreadInitThunk at C:\WINDOWS\System32\KERNEL32.DLL (unknown line)
RtlUserThreadStart at C:\WINDOWS\SYSTEM32\ntdll.dll (unknown line)
Allocations: 475634692 (Pool: 475502997; Big: 131695); GC: 174

@ChrisRackauckas
Copy link
Contributor Author

Note that I'd expect this to (currently) fail with Enzyme, the issue is mostly that it fails without becing caught.

@wsmoses
Copy link
Member

wsmoses commented Aug 26, 2022

To confirm have you tried this on latest main?

@ChrisRackauckas
Copy link
Contributor Author

(@v1.8) pkg> st
Status `C:\Users\accou\.julia\environments\v1.8\Project.toml`
  [2b5f629d] DiffEqBase v6.98.1 `C:\Users\accou\.julia\dev\DiffEqBase`
  [77a26b50] DiffEqNoiseProcess v5.12.3
  [7da242da] Enzyme v0.10.4 `https://github.com/EnzymeAD/Enzyme.jl.git#main`
  [587475ba] Flux v0.13.5
  [f6369f11] ForwardDiff v0.10.32
  [98e50ef6] JuliaFormatter v1.0.9
  [7f7a1694] Optimization v3.8.2
  [253f991c] OptimizationFlux v0.1.0
⌃ [1dea7af3] OrdinaryDiffEq v6.24.0
  [1ed8b502] SciMLSensitivity v7.6.2 `C:\Users\accou\.julia\dev\SciMLSensitivity`
  [789caeaf] StochasticDiffEq v6.53.0
  [e88e6eb3] Zygote v0.6.45

ChrisRackauckas added a commit to SciML/SciMLSensitivity.jl that referenced this issue Aug 26, 2022
@wsmoses
Copy link
Member

wsmoses commented Sep 1, 2022

@wsmoses
Copy link
Member

wsmoses commented Sep 1, 2022

@wsmoses
Copy link
Member

wsmoses commented Sep 1, 2022

@wsmoses
Copy link
Member

wsmoses commented Sep 1, 2022

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants