Skip to content

Re-enable EnzymeAdjoint testing #1232

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

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open

Re-enable EnzymeAdjoint testing #1232

wants to merge 6 commits into from

Conversation

ChrisRackauckas
Copy link
Member

@ChrisRackauckas ChrisRackauckas commented Jul 5, 2025

The direct adjoint of Enzyme is working again:

using Enzyme, OrdinaryDiffEq, StaticArrays

function lorenz!(du, u, p, t)
    du[1] = 10.0(u[2] - u[1])
    du[2] = u[1] * (28.0 - u[3]) - u[2]
    du[3] = u[1] * u[2] - (8 / 3) * u[3]
end

const _saveat =  SA[0.0,0.25,0.5,0.75,1.0,1.25,1.5,1.75,2.0,2.25,2.5,2.75,3.0]

function f(y::Array{Float64}, u0::Array{Float64})
    tspan = (0.0, 3.0)
    prob = ODEProblem{true, SciMLBase.FullSpecialize}(lorenz!, u0, tspan)
    sol = DiffEqBase.solve(prob, Tsit5(), saveat = _saveat, sensealg = DiffEqBase.SensitivityADPassThrough())
    y .= sol[1,:]
    return nothing
end;
u0 = [1.0; 0.0; 0.0]
d_u0 = zeros(3)
y  = zeros(13)
dy = zeros(13)

Enzyme.autodiff(Reverse, f,  Duplicated(y, dy), Duplicated(u0, d_u0));

However, the EnzymeAdjoint which should be doing the same thing is hitting some odd error message: enzymerror.txt

@ChrisRackauckas
Copy link
Member Author

@wsmoses can I get some help isolating this? Here's the MWE. Somehow autodiff works, but the autodiff_thunk call fails:

using Enzyme, OrdinaryDiffEq, StaticArrays

function lorenz!(du, u, p, t)
    du[1] = 10.0(u[2] - u[1])
    du[2] = u[1] * (28.0 - u[3]) - u[2]
    du[3] = u[1] * u[2] - (8 / 3) * u[3]
end

const _saveat =  SA[0.0,0.25,0.5,0.75,1.0,1.25,1.5,1.75,2.0,2.25,2.5,2.75,3.0]

function f(y::Array{Float64}, u0::Array{Float64})
    tspan = (0.0, 3.0)
    prob = ODEProblem{true, SciMLBase.FullSpecialize}(lorenz!, u0, tspan)
    sol = DiffEqBase.solve(prob, Tsit5(), saveat = _saveat, sensealg = DiffEqBase.SensitivityADPassThrough())
    y .= sol[1,:]
    return nothing
end;
u0 = [1.0; 0.0; 0.0]
d_u0 = zeros(3)
y  = zeros(13)
dy = zeros(13)

Enzyme.autodiff(Reverse, f,  Duplicated(y, dy), Duplicated(u0, d_u0)); # This works!

f2 = (u0, p) -> solve(prob, Tsit5(); u0 = u0, p = p,
        sensealg = SensitivityADPassThrough(),
        saveat = _saveat)

splitmode = Enzyme.set_runtime_activity(Enzyme.ReverseSplitWithPrimal)

forward, reverse = Enzyme.autodiff_thunk(splitmode, Enzyme.Const{typeof(f2)}, Enzyme.Duplicated, Enzyme.Duplicated{typeof(u0)}, Enzyme.Duplicated{typeof(p)})
tape, result, shadow_result = forward(Enzyme.Const(f2), Enzyme.Duplicated(copy(u0), du0), Enzyme.Duplicated(copy(p), dp)) # Errors

@ChrisRackauckas
Copy link
Member Author

enzymeerror.txt

@wsmoses
Copy link

wsmoses commented Jul 10, 2025

can you get a new log with EnzymeAD/Enzyme.jl@03e3be8 I want to get some more info

@ChrisRackauckas
Copy link
Member Author

enzymeerror2.txt

@wsmoses
Copy link

wsmoses commented Jul 12, 2025

I tried to run the code above locally to inspect, got errors:

@ChrisRackauckas can you post a full MWE as an enzyme issue?

julia> forward, reverse = Enzyme.autodiff_thunk(splitmode, Enzyme.Const{typeof(f2)}, Enzyme.Duplicated, Enzyme.Duplicated{typeof(u0)}, Enzyme.Duplicated{typeof(p)})
ERROR: UndefVarError: `p` not defined
Stacktrace:
 [1] top-level scope
   @ REPL[12]:1

julia> tape, result, shadow_result = forward(Enzyme.Const(f2), Enzyme.Duplicated(copy(u0), du0), Enzyme.Duplicated(copy(p), dp)) # Errors
ERROR: UndefVarError: `du0` not defined
Stacktrace:
 [1] top-level scope
   @ REPL[13]:1

@ChrisRackauckas
Copy link
Member Author

The main test here was changed to:

using SciMLSensitivity, OrdinaryDiffEq, Zygote, Enzyme

function fiip(du, u, p, t)
    du[1] = dx = p[1] * u[1] - p[2] * u[1] * u[2]
    du[2] = dy = -p[3] * u[2] + p[4] * u[1] * u[2]
end

p = [1.5, 1.0, 3.0, 1.0];
u0 = [1.0; 1.0];
prob = ODEProblem(fiip, u0, (0.0, 10.0), p)

du08, dp8 = Zygote.gradient(
    (u0, p) -> sum(solve(prob, Tsit5(), u0 = u0, p = p,
        abstol = 1e-14, reltol = 1e-14,
        saveat = 0.1,
        sensealg = EnzymeAdjoint())),
    u0,
    p)

No purely Enzyme MWE was found for what's going on here, those are all working now 😅.

The direct adjoint of Enzyme is working again:

```julia
using Enzyme, OrdinaryDiffEq, StaticArrays

function lorenz!(du, u, p, t)
    du[1] = 10.0(u[2] - u[1])
    du[2] = u[1] * (28.0 - u[3]) - u[2]
    du[3] = u[1] * u[2] - (8 / 3) * u[3]
end

const _saveat =  SA[0.0,0.25,0.5,0.75,1.0,1.25,1.5,1.75,2.0,2.25,2.5,2.75,3.0]

function f(y::Array{Float64}, u0::Array{Float64})
    tspan = (0.0, 3.0)
    prob = ODEProblem{true, SciMLBase.FullSpecialize}(lorenz!, u0, tspan)
    sol = DiffEqBase.solve(prob, Tsit5(), saveat = _saveat, sensealg = DiffEqBase.SensitivityADPassThrough())
    y .= sol[1,:]
    return nothing
end;
u0 = [1.0; 0.0; 0.0]
d_u0 = zeros(3)
y  = zeros(13)
dy = zeros(13)

Enzyme.autodiff(Reverse, f,  Duplicated(y, dy), Duplicated(u0, d_u0));
```

However, the EnzymeAdjoint which should be doing the same thing is hitting some odd error message:

```julia
ERROR: Current scope:
; Function Attrs: mustprogress willreturn
define internal fastcc void @preprocess_julia_initialize__106964({} addrspace(10)* noundef nonnull align 8 dereferenceable(632) "enzyme_type"="{[-1]:Pointer, [-1,0]:Pointer, [-1,0,0]:Pointer, [-1,0,0,0]:Pointer, [-1,0,0,0,0]:Pointer, [-1,0,0,0,0,-1]:Float@double, [-1,0,0,0,8]:Pointer, [-1,0,0,0,8,0]:Integer, [-1,0,0,0,8,1]:Integer, [-1,0,0,0,8,2]:Integer, [-1,0,0,0,8,3]:Integer, [-1,0,0,0,8,4]:Integer, [-1,0,0,0,8,5]:Integer, [-1,0,0,0,8,6]:Integer, [-1,0,0,0,8,7]:Integer, [-1,0,0,0,8,8]:Pointer, [-1,0,0,0,16]:Integer, [-1,0,0,0,17]:Integer, [-1,0,0,0,18]:Integer, [-1,0,0,0,19]:Integer, [-1,0,0,0,20]:Integer, [-1,0,0,0,21]:Integer, [-1,0,0,0,22]:Integer, [-1,0,0,0,23]:Integer, [-1,0,8]:Pointer, [-1,0,8,0]:Integer, [-1,0,8,1]:Integer, [-1,0,8,2]:Integer, [-1,0,8,3]:Integer, [-1,0,8,4]:Integer, [-1,0,8,5]:Integer, [-1,0,8,6]:Integer, [-1,0,8,7]:Integer, [-1,0,8,8]:Pointer, [-1,0,8,8,0]:Pointer, [-1,0,8,8,0,0]:Pointer, [-1,0,8,8,0,8]:Pointer, [-1,0,8,8,0,16]:Integer, [-1,0,8,8,0,17]:Integer, [-1,0,8,8,0,18]:Integer, [-1,0,8,8,0,19]:Integer, [-1,0,8,8,0,20]:Integer, [-1,0,8,8,0,21]:Integer, [-1,0,8,8,0,22]:Integer, [-1,0,8,8,0,23]:Integer, [-1,0,16]:Integer, [-1,0,17]:Integer, [-1,0,18]:Integer, [-1,0,19]:Integer, [-1,0,20]:Integer, [-1,0,21]:Integer, [-1,0,22]:Integer, [-1,0,23]:Integer, [-1,8]:Pointer, [-1,8,0]:Pointer, [-1,8,0,-1]:Float@double, [-1,8,8]:Pointer, [-1,8,8,0]:Integer, [-1,8,8,1]:Integer, [-1,8,8,2]:Integer, [-1,8,8,3]:Integer, [-1,8,8,4]:Integer, [-1,8,8,5]:Integer, [-1,8,8,6]:Integer, [-1,8,8,7]:Integer, [-1,8,8,8]:Pointer, [-1,8,8,8,-1]:Float@double, [-1,8,16]:Integer, [-1,8,17]:Integer, [-1,8,18]:Integer, [-1,8,19]:Integer, [-1,8,20]:Integer, [-1,8,21]:Integer, [-1,8,22]:Integer, [-1,8,23]:Integer, [-1,16]:Pointer, [-1,16,0]:Pointer, [-1,16,0,0]:Pointer, [-1,16,0,0,0]:Pointer, [-1,16,0,0,0,0]:Pointer, [-1,16,0,0,8]:Pointer, [-1,16,0,0,8,0]:Integer, [-1,16,0,0,8,1]:Integer, [-1,16,0,0,8,2]:Integer, [-1,16,0,0,8,3]:Integer, [-1,16,0,0,8,4]:Integer, [-1,16,0,0,8,5]:Integer, [-1,16,0,0,8,6]:Integer, [-1,16,0,0,8,7]:Integer, [-1,16,0,0,8,8]:Pointer, [-1,16,0,0,16]:Integer, [-1,16,0,0,17]:Integer, [-1,16,0,0,18]:Integer, [-1,16,0,0,19]:Integer, [-1,16,0,0,20]:Integer, [-1,16,0,0,21]:Integer, [-1,16,0,0,22]:Integer, [-1,16,0,0,23]:Integer, [-1,16,8]:Pointer, [-1,16,8,0]:Integer, [-1,16,8,1]:Integer, [-1,16,8,2]:Integer, [-1,16,8,3]:Integer, [-1,16,8,4]:Integer, [-1,16,8,5]:Integer, [-1,16,8,6]:Integer, [-1,16,8,7]:Integer, [-1,16,8,8]:Pointer, [-1,16,8,8,0]:Pointer, [-1,16,8,8,0,0]:Pointer, [-1,16,8,8,0,8]:Pointer, [-1,16,8,8,0,16]:Integer, [-1,16,8,8,0,17]:Integer, [-1,16,8,8,0,18]:Integer, [-1,16,8,8,0,19]:Integer, [-1,16,8,8,0,20]:Integer, [-1,16,8,8,0,21]:Integer, [-1,16,8,8,0,22]:Integer, [-1,16,8,8,0,23]:Integer, [-1,16,16]:Integer, [-1,16,17]:Integer, [-1,16,18]:Integer, [-1,16,19]:Integer, [-1,16,20]:Integer, [-1,16,21]:Integer, [-1,16,22]:Integer, [-1,16,23]:Integer, [-1,24]:Pointer, [-1,24,0]:Pointer, [-1,24,0,-1]:Pointer, [-1,24,8]:Pointer, [-1,24,8,-1]:Pointer, [-1,24,16]:Pointer, [-1,24,16,-1]:Pointer, [-1,24,24]:Pointer, [-1,24,24,-1]:Pointer, [-1,24,32]:Integer, [-1,24,40]:Pointer, [-1,24,40,0]:Pointer, [-1,24,40,0,-1]:Float@double, [-1,24,40,8]:Pointer, [-1,24,40,8,0]:Integer, [-1,24,40,8,1]:Integer, [-1,24,40,8,2]:Integer, [-1,24,40,8,3]:Integer, [-1,24,40,8,4]:Integer, [-1,24,40,8,5]:Integer, [-1,24,40,8,6]:Integer, [-1,24,40,8,7]:Integer, [-1,24,40,8,8]:Pointer, [-1,24,40,8,8,-1]:Float@double, [-1,24,40,16]:Integer, [-1,24,40,17]:Integer, [-1,24,40,18]:Integer, [-1,24,40,19]:Integer, [-1,24,40,20]:Integer, [-1,24,40,21]:Integer, [-1,24,40,22]:Integer, [-1,24,40,23]:Integer, [-1,24,48]:Float@double, [-1,24,56]:Float@double, [-1,24,64]:Pointer, [-1,24,64,0]:Pointer, [-1,24,64,0,-1]:Float@double, [-1,24,64,8]:Pointer, [-1,24,64,8,0]:Integer, [-1,24,64,8,1]:Integer, [-1,24,64,8,2]:Integer, [-1,24,64,8,3]:Integer, [-1,24,64,8,4]:Integer, [-1,24,64,8,5]:Integer, [-1,24,64,8,6]:Integer, [-1,24,64,8,7]:Integer, [-1,24,64,8,8]:Pointer, [-1,24,64,8,8,-1]:Float@double, [-1,24,64,16]:Integer, [-1,24,64,17]:Integer, [-1,24,64,18]:Integer, [-1,24,64,19]:Integer, [-1,24,64,20]:Integer, [-1,24,64,21]:Integer, [-1,24,64,22]:Integer, [-1,24,64,23]:Integer, [-1,32]:Pointer, [-1,32,-1]:Pointer, [-1,40]:Pointer, [-1,40,-1]:Pointer, [-1,48]:Pointer, [-1,48,-1]:Pointer, [-1,56]:Pointer, [-1,56,-1]:Pointer, [-1,64]:Integer, [-1,72]:Pointer, [-1,72,0]:Pointer, [-1,72,0,0]:Pointer, [-1,72,0,0,0]:Pointer, [-1,72,0,0,0,-1]:Float@double, [-1,72,0,0,8]:Pointer, [-1,72,0,0,8,0]:Integer, [-1,72,0,0,8,1]:Integer, [-1,72,0,0,8,2]:Integer, [-1,72,0,0,8,3]:Integer, [-1,72,0,0,8,4]:Integer, [-1,72,0,0,8,5]:Integer, [-1,72,0,0,8,6]:Integer, [-1,72,0,0,8,7]:Integer, [-1,72,0,0,8,8]:Pointer, [-1,72,0,0,16]:Integer, [-1,72,0,0,17]:Integer, [-1,72,0,0,18]:Integer, [-1,72,0,0,19]:Integer, [-1,72,0,0,20]:Integer, [-1,72,0,0,21]:Integer, [-1,72,0,0,22]:Integer, [-1,72,0,0,23]:Integer, [-1,72,8]:Pointer, [-1,72,8,0]:Integer, [-1,72,8,1]:Integer, [-1,72,8,2]:Integer, [-1,72,8,3]:Integer, [-1,72,8,4]:Integer, [-1,72,8,5]:Integer, [-1,72,8,6]:Integer, [-1,72,8,7]:Integer, [-1,72,8,8]:Pointer, [-1,72,8,8,0]:Pointer, [-1,72,8,8,0,0]:Pointer, [-1,72,8,8,0,8]:Pointer, [-1,72,8,8,0,16]:Integer, [-1,72,8,8,0,17]:Integer, [-1,72,8,8,0,18]:Integer, [-1,72,8,8,0,19]:Integer, [-1,72,8,8,0,20]:Integer, [-1,72,8,8,0,21]:Integer, [-1,72,8,8,0,22]:Integer, [-1,72,8,8,0,23]:Integer, [-1,72,16]:Integer, [-1,72,17]:Integer, [-1,72,18]:Integer, [-1,72,19]:Integer, [-1,72,20]:Integer, [-1,72,21]:Integer, [-1,72,22]:Integer, [-1,72,23]:Integer, [-1,80]:Pointer, [-1,80,0]:Pointer, [-1,80,0,-1]:Float@double, [-1,80,8]:Pointer, [-1,80,8,0]:Integer, [-1,80,8,1]:Integer, [-1,80,8,2]:Integer, [-1,80,8,3]:Integer, [-1,80,8,4]:Integer, [-1,80,8,5]:Integer, [-1,80,8,6]:Integer, [-1,80,8,7]:Integer, [-1,80,8,8]:Pointer, [-1,80,8,8,-1]:Float@double, [-1,80,16]:Integer, [-1,80,17]:Integer, [-1,80,18]:Integer, [-1,80,19]:Integer, [-1,80,20]:Integer, [-1,80,21]:Integer, [-1,80,22]:Integer, [-1,80,23]:Integer, [-1,88]:Pointer, [-1,88,0]:Pointer, [-1,88,0,0]:Pointer, [-1,88,0,0,0]:Pointer, [-1,88,0,0,0,0]:Pointer, [-1,88,0,0,8]:Pointer, [-1,88,0,0,8,0]:Integer, [-1,88,0,0,8,1]:Integer, [-1,88,0,0,8,2]:Integer, [-1,88,0,0,8,3]:Integer, [-1,88,0,0,8,4]:Integer, [-1,88,0,0,8,5]:Integer, [-1,88,0,0,8,6]:Integer, [-1,88,0,0,8,7]:Integer, [-1,88,0,0,8,8]:Pointer, [-1,88,0,0,16]:Integer, [-1,88,0,0,17]:Integer, [-1,88,0,0,18]:Integer, [-1,88,0,0,19]:Integer, [-1,88,0,0,20]:Integer, [-1,88,0,0,21]:Integer, [-1,88,0,0,22]:Integer, [-1,88,0,0,23]:Integer, [-1,88,8]:Pointer, [-1,88,8,0]:Integer, [-1,88,8,1]:Integer, [-1,88,8,2]:Integer, [-1,88,8,3]:Integer, [-1,88,8,4]:Integer, [-1,88,8,5]:Integer, [-1,88,8,6]:Integer, [-1,88,8,7]:Integer, [-1,88,8,8]:Pointer, [-1,88,8,8,0]:Pointer, [-1,88,8,8,0,0]:Pointer, [-1,88,8,8,0,8]:Pointer, [-1,88,8,8,0,16]:Integer, [-1,88,8,8,0,17]:Integer, [-1,88,8,8,0,18]:Integer, [-1,88,8,8,0,19]:Integer, [-1,88,8,8,0,20]:Integer, [-1,88,8,8,0,21]:Integer, [-1,88,8,8,0,22]:Integer, [-1,88,8,8,0,23]:Integer, [-1,88,16]:Integer, [-1,88,17]:Integer, [-1,88,18]:Integer, [-1,88,19]:Integer, [-1,88,20]:Integer, [-1,88,21]:Integer, [-1,88,22]:Integer, [-1,88,23]:Integer, [-1,96]:Integer, [-1,104]:Pointer, [-1,104,0]:Pointer, [-1,104,0,-1]:Float@double, [-1,104,8]:Pointer, [-1,104,8,0]:Integer, [-1,104,8,1]:Integer, [-1,104,8,2]:Integer, [-1,104,8,3]:Integer, [-1,104,8,4]:Integer, [-1,104,8,5]:Integer, [-1,104,8,6]:Integer, [-1,104,8,7]:Integer, [-1,104,8,8]:Pointer, [-1,104,8,8,-1]:Float@double, [-1,104,16]:Integer, [-1,104,17]:Integer, [-1,104,18]:Integer, [-1,104,19]:Integer, [-1,104,20]:Integer, [-1,104,21]:Integer, [-1,104,22]:Integer, [-1,104,23]:Integer, [-1,112]:Pointer, [-1,112,0]:Pointer, [-1,112,0,-1]:Float@double, [-1,112,8]:Pointer, [-1,112,8,0]:Integer, [-1,112,8,1]:Integer, [-1,112,8,2]:Integer, [-1,112,8,3]:Integer, [-1,112,8,4]:Integer, [-1,112,8,5]:Integer, [-1,112,8,6]:Integer, [-1,112,8,7]:Integer, [-1,112,8,8]:Pointer, [-1,112,8,8,-1]:Float@double, [-1,112,16]:Integer, [-1,112,17]:Integer, [-1,112,18]:Integer, [-1,112,19]:Integer, [-1,112,20]:Integer, [-1,112,21]:Integer, [-1,112,22]:Integer, [-1,112,23]:Integer, [-1,120]:Pointer, [-1,120,0]:Pointer, [-1,120,0,-1]:Float@double, [-1,120,8]:Pointer, [-1,120,8,0]:Integer, [-1,120,8,1]:Integer, [-1,120,8,2]:Integer, [-1,120,8,3]:Integer, [-1,120,8,4]:Integer, [-1,120,8,5]:Integer, [-1,120,8,6]:Integer, [-1,120,8,7]:Integer, [-1,120,8,8]:Pointer, [-1,120,8,8,-1]:Float@double, [-1,120,16]:Integer, [-1,120,17]:Integer, [-1,120,18]:Integer, [-1,120,19]:Integer, [-1,120,20]:Integer, [-1,120,21]:Integer, [-1,120,22]:Integer, [-1,120,23]:Integer, [-1,128]:Pointer, [-1,128,0]:Pointer, [-1,128,0,-1]:Float@double, [-1,128,8]:Pointer, [-1,128,8,0]:Integer, [-1,128,8,1]:Integer, [-1,128,8,2]:Integer, [-1,128,8,3]:Integer, [-1,128,8,4]:Integer, [-1,128,8,5]:Integer, [-1,128,8,6]:Integer, [-1,128,8,7]:Integer, [-1,128,8,8]:Pointer, [-1,128,8,8,-1]:Float@double, [-1,128,16]:Integer, [-1,128,17]:Integer, [-1,128,18]:Integer, [-1,128,19]:Integer, [-1,128,20]:Integer, [-1,128,21]:Integer, [-1,128,22]:Integer, [-1,128,23]:Integer, [-1,136]:Pointer, [-1,136,0]:Pointer, [-1,136,0,-1]:Float@double, [-1,136,8]:Pointer, [-1,136,8,0]:Integer, [-1,136,8,1]:Integer, [-1,136,8,2]:Integer, [-1,136,8,3]:Integer, [-1,136,8,4]:Integer, [-1,136,8,5]:Integer, [-1,136,8,6]:Integer, [-1,136,8,7]:Integer, [-1,136,8,8]:Pointer, [-1,136,8,8,-1]:Float@double, [-1,136,16]:Integer, [-1,136,17]:Integer, [-1,136,18]:Integer, [-1,136,19]:Integer, [-1,136,20]:Integer, [-1,136,21]:Integer, [-1,136,22]:Integer, [-1,136,23]:Integer, [-1,144]:Pointer, [-1,144,0]:Pointer, [-1,144,0,-1]:Float@double, [-1,144,8]:Pointer, [-1,144,8,0]:Integer, [-1,144,8,1]:Integer, [-1,144,8,2]:Integer, [-1,144,8,3]:Integer, [-1,144,8,4]:Integer, [-1,144,8,5]:Integer, [-1,144,8,6]:Integer, [-1,144,8,7]:Integer, [-1,144,8,8]:Pointer, [-1,144,8,8,-1]:Float@double, [-1,144,16]:Integer, [-1,144,17]:Integer, [-1,144,18]:Integer, [-1,144,19]:Integer, [-1,144,20]:Integer, [-1,144,21]:Integer, [-1,144,22]:Integer, [-1,144,23]:Integer, [-1,152]:Pointer, [-1,152,0]:Pointer, [-1,152,0,-1]:Float@double, [-1,152,8]:Pointer, [-1,152,8,0]:Integer, [-1,152,8,1]:Integer, [-1,152,8,2]:Integer, [-1,152,8,3]:Integer, [-1,152,8,4]:Integer, [-1,152,8,5]:Integer, [-1,152,8,6]:Integer, [-1,152,8,7]:Integer, [-1,152,8,8]:Pointer, [-1,152,8,8,-1]:Float@double, [-1,152,16]:Integer, [-1,152,17]:Integer, [-1,152,18]:Integer, [-1,152,19]:Integer, [-1,152,20]:Integer, [-1,152,21]:Integer, [-1,152,22]:Integer, [-1,152,23]:Integer, [-1,160]:Pointer, [-1,160,0]:Pointer, [-1,160,0,-1]:Float@double, [-1,160,8]:Pointer, [-1,160,8,0]:Integer, [-1,160,8,1]:Integer, [-1,160,8,2]:Integer, [-1,160,8,3]:Integer, [-1,160,8,4]:Integer, [-1,160,8,5]:Integer, [-1,160,8,6]:Integer, [-1,160,8,7]:Integer, [-1,160,8,8]:Pointer, [-1,160,8,8,-1]:Float@double, [-1,160,16]:Integer, [-1,160,17]:Integer, [-1,160,18]:Integer, [-1,160,19]:Integer, [-1,160,20]:Integer, [-1,160,21]:Integer, [-1,160,22]:Integer, [-1,160,23]:Integer, [-1,168]:Pointer, [-1,168,0]:Pointer, [-1,168,0,-1]:Float@double, [-1,168,8]:Pointer, [-1,168,8,0]:Integer, [-1,168,8,1]:Integer, [-1,168,8,2]:Integer, [-1,168,8,3]:Integer, [-1,168,8,4]:Integer, [-1,168,8,5]:Integer, [-1,168,8,6]:Integer, [-1,168,8,7]:Integer, [-1,168,8,8]:Pointer, [-1,168,8,8,-1]:Float@double, [-1,168,16]:Integer, [-1,168,17]:Integer, [-1,168,18]:Integer, [-1,168,19]:Integer, [-1,168,20]:Integer, [-1,168,21]:Integer, [-1,168,22]:Integer, [-1,168,23]:Integer, [-1,176]:Pointer, [-1,176,0]:Pointer, [-1,176,0,-1]:Float@double, [-1,176,8]:Pointer, [-1,176,8,0]:Integer, [-1,176,8,1]:Integer, [-1,176,8,2]:Integer, [-1,176,8,3]:Integer, [-1,176,8,4]:Integer, [-1,176,8,5]:Integer, [-1,176,8,6]:Integer, [-1,176,8,7]:Integer, [-1,176,8,8]:Pointer, [-1,176,8,8,-1]:Float@double, [-1,176,16]:Integer, [-1,176,17]:Integer, [-1,176,18]:Integer, [-1,176,19]:Integer, [-1,176,20]:Integer, [-1,176,21]:Integer, [-1,176,22]:Integer, [-1,176,23]:Integer, [-1,184]:Pointer, [-1,184,0]:Pointer, [-1,184,0,-1]:Float@double, [-1,184,8]:Pointer, [-1,184,8,0]:Integer, [-1,184,8,1]:Integer, [-1,184,8,2]:Integer, [-1,184,8,3]:Integer, [-1,184,8,4]:Integer, [-1,184,8,5]:Integer, [-1,184,8,6]:Integer, [-1,184,8,7]:Integer, [-1,184,8,8]:Pointer, [-1,184,8,8,-1]:Float@double, [-1,184,16]:Integer, [-1,184,17]:Integer, [-1,184,18]:Integer, [-1,184,19]:Integer, [-1,184,20]:Integer, [-1,184,21]:Integer, [-1,184,22]:Integer, [-1,184,23]:Integer, [-1,192]:Pointer, [-1,192,0]:Pointer, [-1,192,0,-1]:Float@double, [-1,192,8]:Pointer, [-1,192,8,0]:Integer, [-1,192,8,1]:Integer, [-1,192,8,2]:Integer, [-1,192,8,3]:Integer, [-1,192,8,4]:Integer, [-1,192,8,5]:Integer, [-1,192,8,6]:Integer, [-1,192,8,7]:Integer, [-1,192,8,8]:Pointer, [-1,192,8,8,-1]:Float@double, [-1,192,16]:Integer, [-1,192,17]:Integer, [-1,192,18]:Integer, [-1,192,19]:Integer, [-1,192,20]:Integer, [-1,192,21]:Integer, [-1,192,22]:Integer, [-1,192,23]:Integer, [-1,200]:Integer, [-1,208]:Integer, [-1,216]:Integer, [-1,217]:Integer, [-1,218]:Integer, [-1,219]:Integer, [-1,220]:Integer, [-1,221]:Integer, [-1,222]:Integer, [-1,223]:Integer, [-1,224]:Pointer, [-1,224,0]:Integer, [-1,224,1]:Integer, [-1,224,2]:Integer, [-1,224,3]:Integer, [-1,224,4]:Integer, [-1,224,5]:Integer, [-1,224,6]:Integer, [-1,224,7]:Integer, [-1,224,8]:Integer, [-1,224,9]:Integer, [-1,224,10]:Integer, [-1,224,11]:Integer, [-1,224,12]:Integer, [-1,224,13]:Integer, [-1,224,14]:Integer, [-1,224,15]:Integer, [-1,224,16]:Integer, [-1,224,17]:Integer, [-1,224,18]:Integer, [-1,224,19]:Integer, [-1,224,20]:Integer, [-1,224,21]:Integer, [-1,224,22]:Integer, [-1,224,23]:Integer, [-1,224,24]:Integer, [-1,224,25]:Integer, [-1,224,26]:Integer, [-1,224,27]:Integer, [-1,224,28]:Integer, [-1,224,29]:Integer, [-1,224,30]:Integer, [-1,224,31]:Integer, [-1,224,32]:Integer, [-1,224,33]:Integer, [-1,224,34]:Integer, [-1,224,35]:Integer, [-1,224,36]:Integer, [-1,224,37]:Integer, [-1,224,38]:Integer, [-1,224,39]:Integer, [-1,224,40]:Integer, [-1,224,41]:Integer, [-1,224,42]:Integer, [-1,224,43]:Integer, [-1,224,44]:Integer, [-1,224,45]:Integer, [-1,224,46]:Integer, [-1,224,47]:Integer, [-1,224,48]:Integer, [-1,224,49]:Integer, [-1,224,50]:Integer, [-1,224,51]:Integer, [-1,224,52]:Integer, [-1,224,53]:Integer, [-1,224,54]:Integer, [-1,224,55]:Integer, [-1,224,56]:Integer, [-1,224,57]:Integer, [-1,224,58]:Integer, [-1,224,59]:Integer, [-1,224,60]:Integer, [-1,224,61]:Integer, [-1,224,62]:Integer, [-1,224,63]:Integer, [-1,224,64]:Integer, [-1,224,65]:Integer, [-1,224,66]:Integer, [-1,224,67]:Integer, [-1,224,68]:Integer, [-1,224,69]:Integer, [-1,224,70]:Integer, [-1,224,71]:Integer, [-1,224,72]:Integer, [-1,224,73]:Integer, [-1,224,74]:Integer, [-1,224,75]:Integer, [-1,224,76]:Integer, [-1,224,77]:Integer, [-1,224,78]:Integer, [-1,224,79]:Integer, [-1,224,80]:Integer, [-1,224,81]:Integer, [-1,224,82]:Integer, [-1,224,83]:Integer, [-1,224,84]:Integer, [-1,224,85]:Integer, [-1,224,86]:Integer, [-1,224,87]:Integer, [-1,224,88]:Integer, [-1,224,89]:Integer, [-1,224,90]:Integer, [-1,224,91]:Integer, [-1,224,92]:Integer, [-1,224,93]:Integer, [-1,224,94]:Integer, [-1,224,95]:Integer, [-1,224,96]:Float@double, [-1,240]:Pointer, [-1,240,0]:Pointer, [-1,240,0,-1]:Float@double, [-1,240,8]:Pointer, [-1,240,8,0]:Integer, [-1,240,8,1]:Integer, [-1,240,8,2]:Integer, [-1,240,8,3]:Integer, [-1,240,8,4]:Integer, [-1,240,8,5]:Integer, [-1,240,8,6]:Integer, [-1,240,8,7]:Integer, [-1,240,8,8]:Pointer, [-1,240,8,8,-1]:Float@double, [-1,240,16]:Integer, [-1,240,17]:Integer, [-1,240,18]:Integer, [-1,240,19]:Integer, [-1,240,20]:Integer, [-1,240,21]:Integer, [-1,240,22]:Integer, [-1,240,23]:Integer, [-1,248]:Pointer, [-1,248,0]:Pointer, [-1,248,0,0]:Pointer, [-1,248,0,0,0]:Pointer, [-1,248,0,0,0,-1]:Float@double, [-1,248,0,0,8]:Pointer, [-1,248,0,0,8,0]:Integer, [-1,248,0,0,8,1]:Integer, [-1,248,0,0,8,2]:Integer, [-1,248,0,0,8,3]:Integer, [-1,248,0,0,8,4]:Integer, [-1,248,0,0,8,5]:Integer, [-1,248,0,0,8,6]:Integer, [-1,248,0,0,8,7]:Integer, [-1,248,0,0,8,8]:Pointer, [-1,248,0,0,16]:Integer, [-1,248,0,0,17]:Integer, [-1,248,0,0,18]:Integer, [-1,248,0,0,19]:Integer, [-1,248,0,0,20]:Integer, [-1,248,0,0,21]:Integer, [-1,248,0,0,22]:Integer, [-1,248,0,0,23]:Integer, [-1,248,8]:Pointer, [-1,248,8,0]:Integer, [-1,248,8,1]:Integer, [-1,248,8,2]:Integer, [-1,248,8,3]:Integer, [-1,248,8,4]:Integer, [-1,248,8,5]:Integer, [-1,248,8,6]:Integer, [-1,248,8,7]:Integer, [-1,248,8,8]:Pointer, [-1,248,8,8,0]:Pointer, [-1,248,8,8,0,0]:Pointer, [-1,248,8,8,0,8]:Pointer, [-1,248,8,8,0,16]:Integer, [-1,248,8,8,0,17]:Integer, [-1,248,8,8,0,18]:Integer, [-1,248,8,8,0,19]:Integer, [-1,248,8,8,0,20]:Integer, [-1,248,8,8,0,21]:Integer, [-1,248,8,8,0,22]:Integer, [-1,248,8,8,0,23]:Integer, [-1,248,16]:Integer, [-1,248,17]:Integer, [-1,248,18]:Integer, [-1,248,19]:Integer, [-1,248,20]:Integer, [-1,248,21]:Integer, [-1,248,22]:Integer, [-1,248,23]:Integer, [-1,256]:Float@double, [-1,264]:Float@double, [-1,272]:Pointer, [-1,272,-1]:Pointer, [-1,280]:Pointer, [-1,280,-1]:Pointer, [-1,288]:Pointer, [-1,288,-1]:Pointer, [-1,296]:Pointer, [-1,296,-1]:Pointer, [-1,304]:Integer, [-1,312]:Pointer, [-1,312,0]:Pointer, [-1,312,0,-1]:Float@double, [-1,312,8]:Pointer, [-1,312,8,0]:Integer, [-1,312,8,1]:Integer, [-1,312,8,2]:Integer, [-1,312,8,3]:Integer, [-1,312,8,4]:Integer, [-1,312,8,5]:Integer, [-1,312,8,6]:Integer, [-1,312,8,7]:Integer, [-1,312,8,8]:Pointer, [-1,312,8,8,-1]:Float@double, [-1,312,16]:Integer, [-1,312,17]:Integer, [-1,312,18]:Integer, [-1,312,19]:Integer, [-1,312,20]:Integer, [-1,312,21]:Integer, [-1,312,22]:Integer, [-1,312,23]:Integer, [-1,320]:Pointer, [-1,320,0]:Pointer, [-1,320,0,-1]:Float@double, [-1,320,8]:Pointer, [-1,320,8,0]:Integer, [-1,320,8,1]:Integer, [-1,320,8,2]:Integer, [-1,320,8,3]:Integer, [-1,320,8,4]:Integer, [-1,320,8,5]:Integer, [-1,320,8,6]:Integer, [-1,320,8,7]:Integer, [-1,320,8,8]:Pointer, [-1,320,8,8,-1]:Float@double, [-1,320,16]:Integer, [-1,320,17]:Integer, [-1,320,18]:Integer, [-1,320,19]:Integer, [-1,320,20]:Integer, [-1,320,21]:Integer, [-1,320,22]:Integer, [-1,320,23]:Integer, [-1,328]:Pointer, [-1,328,0]:Pointer, [-1,328,0,-1]:Float@double, [-1,328,8]:Pointer, [-1,328,8,0]:Integer, [-1,328,8,1]:Integer, [-1,328,8,2]:Integer, [-1,328,8,3]:Integer, [-1,328,8,4]:Integer, [-1,328,8,5]:Integer, [-1,328,8,6]:Integer, [-1,328,8,7]:Integer, [-1,328,8,8]:Pointer, [-1,328,8,8,-1]:Float@double, [-1,328,16]:Integer, [-1,328,17]:Integer, [-1,328,18]:Integer, [-1,328,19]:Integer, [-1,328,20]:Integer, [-1,328,21]:Integer, [-1,328,22]:Integer, [-1,328,23]:Integer, [-1,336]:Float@double, [-1,344]:Float@double, [-1,352]:Integer, [-1,360]:Float@double, [-1,368]:Float@double, [-1,376]:Float@double, [-1,384]:Float@double, [-1,392]:Float@double, [-1,400]:Float@double, [-1,408]:Float@double, [-1,416]:Float@double, [-1,424]:Integer, [-1,425]:Integer, [-1,426]:Integer, [-1,427]:Integer, [-1,428]:Integer, [-1,429]:Integer, [-1,430]:Integer, [-1,431]:Integer, [-1,432]:Integer, [-1,433]:Integer, [-1,434]:Integer, [-1,435]:Integer, [-1,436]:Integer, [-1,437]:Integer, [-1,438]:Integer, [-1,439]:Integer, [-1,440]:Integer, [-1,441]:Integer, [-1,442]:Integer, [-1,443]:Integer, [-1,444]:Integer, [-1,445]:Integer, [-1,446]:Integer, [-1,447]:Integer, [-1,448]:Integer, [-1,449]:Integer, [-1,450]:Integer, [-1,451]:Integer, [-1,452]:Integer, [-1,453]:Integer, [-1,454]:Integer, [-1,455]:Integer, [-1,456]:Pointer, [-1,456,0]:Pointer, [-1,456,0,-1]:Float@double, [-1,456,8]:Pointer, [-1,456,8,0]:Integer, [-1,456,8,1]:Integer, [-1,456,8,2]:Integer, [-1,456,8,3]:Integer, [-1,456,8,4]:Integer, [-1,456,8,5]:Integer, [-1,456,8,6]:Integer, [-1,456,8,7]:Integer, [-1,456,8,8]:Pointer, [-1,456,8,8,-1]:Float@double, [-1,456,16]:Integer, [-1,456,17]:Integer, [-1,456,18]:Integer, [-1,456,19]:Integer, [-1,456,20]:Integer, [-1,456,21]:Integer, [-1,456,22]:Integer, [-1,456,23]:Integer, [-1,464]:Pointer, [-1,464,0]:Pointer, [-1,464,0,-1]:Float@double, [-1,464,8]:Pointer, [-1,464,8,0]:Integer, [-1,464,8,1]:Integer, [-1,464,8,2]:Integer, [-1,464,8,3]:Integer, [-1,464,8,4]:Integer, [-1,464,8,5]:Integer, [-1,464,8,6]:Integer, [-1,464,8,7]:Integer, [-1,464,8,8]:Pointer, [-1,464,8,8,-1]:Float@double, [-1,464,16]:Integer, [-1,464,17]:Integer, [-1,464,18]:Integer, [-1,464,19]:Integer, [-1,464,20]:Integer, [-1,464,21]:Integer, [-1,464,22]:Integer, [-1,464,23]:Integer, [-1,472]:Pointer, [-1,472,0]:Pointer, [-1,472,0,-1]:Float@double, [-1,472,8]:Pointer, [-1,472,8,0]:Integer, [-1,472,8,1]:Integer, [-1,472,8,2]:Integer, [-1,472,8,3]:Integer, [-1,472,8,4]:Integer, [-1,472,8,5]:Integer, [-1,472,8,6]:Integer, [-1,472,8,7]:Integer, [-1,472,8,8]:Pointer, [-1,472,8,8,-1]:Float@double, [-1,472,16]:Integer, [-1,472,17]:Integer, [-1,472,18]:Integer, [-1,472,19]:Integer, [-1,472,20]:Integer, [-1,472,21]:Integer, [-1,472,22]:Integer, [-1,472,23]:Integer, [-1,480]:Pointer, [-1,480,0]:Pointer, [-1,480,0,-1]:Float@double, [-1,480,8]:Pointer, [-1,480,8,0]:Integer, [-1,480,8,1]:Integer, [-1,480,8,2]:Integer, [-1,480,8,3]:Integer, [-1,480,8,4]:Integer, [-1,480,8,5]:Integer, [-1,480,8,6]:Integer, [-1,480,8,7]:Integer, [-1,480,8,8]:Pointer, [-1,480,8,8,-1]:Float@double, [-1,480,16]:Integer, [-1,480,17]:Integer, [-1,480,18]:Integer, [-1,480,19]:Integer, [-1,480,20]:Integer, [-1,480,21]:Integer, [-1,480,22]:Integer, [-1,480,23]:Integer, [-1,488]:Pointer, [-1,488,0]:Pointer, [-1,488,0,-1]:Float@double, [-1,488,8]:Pointer, [-1,488,8,0]:Integer, [-1,488,8,1]:Integer, [-1,488,8,2]:Integer, [-1,488,8,3]:Integer, [-1,488,8,4]:Integer, [-1,488,8,5]:Integer, [-1,488,8,6]:Integer, [-1,488,8,7]:Integer, [-1,488,8,8]:Pointer, [-1,488,8,8,-1]:Float@double, [-1,488,16]:Integer, [-1,488,17]:Integer, [-1,488,18]:Integer, [-1,488,19]:Integer, [-1,488,20]:Integer, [-1,488,21]:Integer, [-1,488,22]:Integer, [-1,488,23]:Integer, [-1,496]:Pointer, [-1,496,0]:Pointer, [-1,496,0,-1]:Float@double, [-1,496,8]:Pointer, [-1,496,8,0]:Integer, [-1,496,8,1]:Integer, [-1,496,8,2]:Integer, [-1,496,8,3]:Integer, [-1,496,8,4]:Integer, [-1,496,8,5]:Integer, [-1,496,8,6]:Integer, [-1,496,8,7]:Integer, [-1,496,8,8]:Pointer, [-1,496,8,8,-1]:Float@double, [-1,496,16]:Integer, [-1,496,17]:Integer, [-1,496,18]:Integer, [-1,496,19]:Integer, [-1,496,20]:Integer, [-1,496,21]:Integer, [-1,496,22]:Integer, [-1,496,23]:Integer}" "enzymejl_parmtype"="15273708112" "enzymejl_parmtype_ref"="2" %0, { {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)* } addrspace(11)* nocapture noundef nonnull readonly align 8 dereferenceable(96) "enzyme_type"="{[-1]:Pointer, [-1,0]:Pointer, [-1,0,0]:Pointer, [-1,0,0,-1]:Float@double, [-1,0,8]:Pointer, [-1,0,8,0]:Integer, [-1,0,8,1]:Integer, [-1,0,8,2]:Integer, [-1,0,8,3]:Integer, [-1,0,8,4]:Integer, [-1,0,8,5]:Integer, [-1,0,8,6]:Integer, [-1,0,8,7]:Integer, [-1,0,8,8]:Pointer, [-1,0,8,8,-1]:Float@double, [-1,0,16]:Integer, [-1,0,17]:Integer, [-1,0,18]:Integer, [-1,0,19]:Integer, [-1,0,20]:Integer, [-1,0,21]:Integer, [-1,0,22]:Integer, [-1,0,23]:Integer, [-1,8]:Pointer, [-1,8,0]:Pointer, [-1,8,0,-1]:Float@double, [-1,8,8]:Pointer, [-1,8,8,0]:Integer, [-1,8,8,1]:Integer, [-1,8,8,2]:Integer, [-1,8,8,3]:Integer, [-1,8,8,4]:Integer, [-1,8,8,5]:Integer, [-1,8,8,6]:Integer, [-1,8,8,7]:Integer, [-1,8,8,8]:Pointer, [-1,8,8,8,-1]:Float@double, [-1,8,16]:Integer, [-1,8,17]:Integer, [-1,8,18]:Integer, [-1,8,19]:Integer, [-1,8,20]:Integer, [-1,8,21]:Integer, [-1,8,22]:Integer, [-1,8,23]:Integer, [-1,16]:Pointer, [-1,16,0]:Pointer, [-1,16,0,-1]:Float@double, [-1,16,8]:Pointer, [-1,16,8,0]:Integer, [-1,16,8,1]:Integer, [-1,16,8,2]:Integer, [-1,16,8,3]:Integer, [-1,16,8,4]:Integer, [-1,16,8,5]:Integer, [-1,16,8,6]:Integer, [-1,16,8,7]:Integer, [-1,16,8,8]:Pointer, [-1,16,8,8,-1]:Float@double, [-1,16,16]:Integer, [-1,16,17]:Integer, [-1,16,18]:Integer, [-1,16,19]:Integer, [-1,16,20]:Integer, [-1,16,21]:Integer, [-1,16,22]:Integer, [-1,16,23]:Integer, [-1,24]:Pointer, [-1,24,0]:Pointer, [-1,24,0,-1]:Float@double, [-1,24,8]:Pointer, [-1,24,8,0]:Integer, [-1,24,8,1]:Integer, [-1,24,8,2]:Integer, [-1,24,8,3]:Integer, [-1,24,8,4]:Integer, [-1,24,8,5]:Integer, [-1,24,8,6]:Integer, [-1,24,8,7]:Integer, [-1,24,8,8]:Pointer, [-1,24,8,8,-1]:Float@double, [-1,24,16]:Integer, [-1,24,17]:Integer, [-1,24,18]:Integer, [-1,24,19]:Integer, [-1,24,20]:Integer, [-1,24,21]:Integer, [-1,24,22]:Integer, [-1,24,23]:Integer, [-1,32]:Pointer, [-1,32,0]:Pointer, [-1,32,0,-1]:Float@double, [-1,32,8]:Pointer, [-1,32,8,0]:Integer, [-1,32,8,1]:Integer, [-1,32,8,2]:Integer, [-1,32,8,3]:Integer, [-1,32,8,4]:Integer, [-1,32,8,5]:Integer, [-1,32,8,6]:Integer, [-1,32,8,7]:Integer, [-1,32,8,8]:Pointer, [-1,32,8,8,-1]:Float@double, [-1,32,16]:Integer, [-1,32,17]:Integer, [-1,32,18]:Integer, [-1,32,19]:Integer, [-1,32,20]:Integer, [-1,32,21]:Integer, [-1,32,22]:Integer, [-1,32,23]:Integer, [-1,40]:Pointer, [-1,40,0]:Pointer, [-1,40,0,-1]:Float@double, [-1,40,8]:Pointer, [-1,40,8,0]:Integer, [-1,40,8,1]:Integer, [-1,40,8,2]:Integer, [-1,40,8,3]:Integer, [-1,40,8,4]:Integer, [-1,40,8,5]:Integer, [-1,40,8,6]:Integer, [-1,40,8,7]:Integer, [-1,40,8,8]:Pointer, [-1,40,8,8,-1]:Float@double, [-1,40,16]:Integer, [-1,40,17]:Integer, [-1,40,18]:Integer, [-1,40,19]:Integer, [-1,40,20]:Integer, [-1,40,21]:Integer, [-1,40,22]:Integer, [-1,40,23]:Integer, [-1,48]:Pointer, [-1,48,0]:Pointer, [-1,48,0,-1]:Float@double, [-1,48,8]:Pointer, [-1,48,8,0]:Integer, [-1,48,8,1]:Integer, [-1,48,8,2]:Integer, [-1,48,8,3]:Integer, [-1,48,8,4]:Integer, [-1,48,8,5]:Integer, [-1,48,8,6]:Integer, [-1,48,8,7]:Integer, [-1,48,8,8]:Pointer, [-1,48,8,8,-1]:Float@double, [-1,48,16]:Integer, [-1,48,17]:Integer, [-1,48,18]:Integer, [-1,48,19]:Integer, [-1,48,20]:Integer, [-1,48,21]:Integer, [-1,48,22]:Integer, [-1,48,23]:Integer, [-1,56]:Pointer, [-1,56,0]:Pointer, [-1,56,0,-1]:Float@double, [-1,56,8]:Pointer, [-1,56,8,0]:Integer, [-1,56,8,1]:Integer, [-1,56,8,2]:Integer, [-1,56,8,3]:Integer, [-1,56,8,4]:Integer, [-1,56,8,5]:Integer, [-1,56,8,6]:Integer, [-1,56,8,7]:Integer, [-1,56,8,8]:Pointer, [-1,56,8,8,-1]:Float@double, [-1,56,16]:Integer, [-1,56,17]:Integer, [-1,56,18]:Integer, [-1,56,19]:Integer, [-1,56,20]:Integer, [-1,56,21]:Integer, [-1,56,22]:Integer, [-1,56,23]:Integer, [-1,64]:Pointer, [-1,64,0]:Pointer, [-1,64,0,-1]:Float@double, [-1,64,8]:Pointer, [-1,64,8,0]:Integer, [-1,64,8,1]:Integer, [-1,64,8,2]:Integer, [-1,64,8,3]:Integer, [-1,64,8,4]:Integer, [-1,64,8,5]:Integer, [-1,64,8,6]:Integer, [-1,64,8,7]:Integer, [-1,64,8,8]:Pointer, [-1,64,8,8,-1]:Float@double, [-1,64,16]:Integer, [-1,64,17]:Integer, [-1,64,18]:Integer, [-1,64,19]:Integer, [-1,64,20]:Integer, [-1,64,21]:Integer, [-1,64,22]:Integer, [-1,64,23]:Integer, [-1,72]:Pointer, [-1,72,0]:Pointer, [-1,72,0,-1]:Float@double, [-1,72,8]:Pointer, [-1,72,8,0]:Integer, [-1,72,8,1]:Integer, [-1,72,8,2]:Integer, [-1,72,8,3]:Integer, [-1,72,8,4]:Integer, [-1,72,8,5]:Integer, [-1,72,8,6]:Integer, [-1,72,8,7]:Integer, [-1,72,8,8]:Pointer, [-1,72,8,8,-1]:Float@double, [-1,72,16]:Integer, [-1,72,17]:Integer, [-1,72,18]:Integer, [-1,72,19]:Integer, [-1,72,20]:Integer, [-1,72,21]:Integer, [-1,72,22]:Integer, [-1,72,23]:Integer, [-1,80]:Pointer, [-1,80,0]:Pointer, [-1,80,0,-1]:Float@double, [-1,80,8]:Pointer, [-1,80,8,0]:Integer, [-1,80,8,1]:Integer, [-1,80,8,2]:Integer, [-1,80,8,3]:Integer, [-1,80,8,4]:Integer, [-1,80,8,5]:Integer, [-1,80,8,6]:Integer, [-1,80,8,7]:Integer, [-1,80,8,8]:Pointer, [-1,80,8,8,-1]:Float@double, [-1,80,16]:Integer, [-1,80,17]:Integer, [-1,80,18]:Integer, [-1,80,19]:Integer, [-1,80,20]:Integer, [-1,80,21]:Integer, [-1,80,22]:Integer, [-1,80,23]:Integer, [-1,88]:Pointer, [-1,88,0]:Pointer, [-1,88,0,-1]:Float@double, [-1,88,8]:Pointer, [-1,88,8,0]:Integer, [-1,88,8,1]:Integer, [-1,88,8,2]:Integer, [-1,88,8,3]:Integer, [-1,88,8,4]:Integer, [-1,88,8,5]:Integer, [-1,88,8,6]:Integer, [-1,88,8,7]:Integer, [-1,88,8,8]:Pointer, [-1,88,8,8,-1]:Float@double, [-1,88,16]:Integer, [-1,88,17]:Integer, [-1,88,18]:Integer, [-1,88,19]:Integer, [-1,88,20]:Integer, [-1,88,21]:Integer, [-1,88,22]:Integer, [-1,88,23]:Integer}" "enzymejl_parmtype"="14338096016" "enzymejl_parmtype_ref"="1" %1) unnamed_addr #321 !dbg !39578 {
top:
  %2 = call noalias nonnull dereferenceable(8) dereferenceable_or_null(8) i8* @malloc(i64 8), !enzyme_fromstack !304
  %3 = bitcast i8* %2 to [1 x i64]*, !enzyme_caststack !0
  %4 = call noalias nonnull dereferenceable(8) dereferenceable_or_null(8) i8* @malloc(i64 8), !enzyme_fromstack !304
  %5 = bitcast i8* %4 to [1 x i64]*, !enzyme_caststack !0
  %6 = call noalias nonnull dereferenceable(8) dereferenceable_or_null(8) i8* @malloc(i64 8), !enzyme_fromstack !304
  %7 = bitcast i8* %6 to [1 x i64]*, !enzyme_caststack !0
  %8 = call noalias nonnull dereferenceable(8) dereferenceable_or_null(8) i8* @malloc(i64 8), !enzyme_fromstack !304
  %9 = bitcast i8* %8 to [1 x i64]*, !enzyme_caststack !0
  %10 = call noalias nonnull dereferenceable(8) dereferenceable_or_null(8) i8* @malloc(i64 8), !enzyme_fromstack !304
  %11 = bitcast i8* %10 to [1 x i64]*, !enzyme_caststack !0
  %12 = call noalias nonnull dereferenceable(8) dereferenceable_or_null(8) i8* @malloc(i64 8), !enzyme_fromstack !304
  %13 = bitcast i8* %12 to [1 x i64]*, !enzyme_caststack !0
  %14 = call noalias nonnull dereferenceable(8) dereferenceable_or_null(8) i8* @malloc(i64 8), !enzyme_fromstack !304
  %15 = bitcast i8* %14 to [1 x i64]*, !enzyme_caststack !0
  %pgcstack = call {}*** @julia.get_pgcstack() #322
  %ptls_field42 = getelementptr inbounds {}**, {}*** %pgcstack, i64 2
  %16 = bitcast {}*** %ptls_field42 to i64***
  %ptls_load4344 = load i64**, i64*** %16, align 8, !tbaa !223
  %17 = getelementptr inbounds i64*, i64** %ptls_load4344, i64 2
  %safepoint = load i64*, i64** %17, align 8, !tbaa !227
  fence syncscope("singlethread") seq_cst
  call void @julia.safepoint(i64* %safepoint) #322, !dbg !39579
  fence syncscope("singlethread") seq_cst
  %18 = bitcast {} addrspace(10)* %0 to i8 addrspace(10)*, !dbg !39580
  %19 = addrspacecast i8 addrspace(10)* %18 to i8 addrspace(11)*, !dbg !39580
  %20 = getelementptr inbounds i8, i8 addrspace(11)* %19, i64 552, !dbg !39580
  %21 = bitcast i8 addrspace(11)* %20 to i64 addrspace(11)*, !dbg !39580
  store i64 7, i64 addrspace(11)* %21, align 8, !dbg !39580, !tbaa !254, !alias.scope !244, !noalias !39582
  %22 = getelementptr inbounds i8, i8 addrspace(11)* %19, i64 248, !dbg !39585
  %23 = bitcast i8 addrspace(11)* %22 to {} addrspace(10)* addrspace(11)*, !dbg !39585
  %24 = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %23 unordered, align 8, !dbg !39585, !tbaa !254, !alias.scope !244, !noalias !309, !nonnull !0, !dereferenceable !782, !align !304, !enzyme_type !256
  call fastcc void @julia_resize__105645({} addrspace(10)* noundef nonnull align 8 dereferenceable(24) %24, i64 noundef signext 7) #322, !dbg !39586
  %25 = getelementptr inbounds { {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)* }, { {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)* } addrspace(11)* %1, i64 0, i32 2, !dbg !39587
  %26 = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %25 unordered, align 8, !dbg !39587, !tbaa !227, !alias.scope !230, !noalias !233, !nonnull !0, !dereferenceable !782, !align !304, !enzyme_type !786, !enzymejl_byref_MUT_REF !0, !enzymejl_source_type_Vector\7BFloat64\7D !0
  %27 = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %23 unordered, align 8, !dbg !39589, !tbaa !254, !alias.scope !244, !noalias !309, !nonnull !0, !dereferenceable !782, !align !304, !enzyme_type !256
  %28 = bitcast {} addrspace(10)* %27 to i8 addrspace(10)*, !dbg !39590
  %29 = addrspacecast i8 addrspace(10)* %28 to i8 addrspace(11)*, !dbg !39590
  %30 = getelementptr inbounds i8, i8 addrspace(11)* %29, i64 16, !dbg !39590
  %31 = bitcast i8 addrspace(11)* %30 to i64 addrspace(11)*, !dbg !39590
  %32 = load i64, i64 addrspace(11)* %31, align 8, !dbg !39590, !tbaa !289, !alias.scope !292, !noalias !293
  %.not = icmp eq i64 %32, 0, !dbg !39592
  br i1 %.not, label %L18, label %L21, !dbg !39591

L18:                                              ; preds = %top
  %33 = getelementptr inbounds [1 x i64], [1 x i64]* %15, i64 0, i64 0, !dbg !39591
  store i64 1, i64* %33, align 8, !dbg !39591, !tbaa !798, !alias.scope !800, !noalias !39593
  %34 = addrspacecast [1 x i64]* %15 to [1 x i64] addrspace(11)*, !dbg !39591
  call fastcc void @julia_throw_boundserror_105632({} addrspace(10)* noundef nonnull align 8 dereferenceable(24) %27, [1 x i64] addrspace(11)* nocapture noundef nonnull readonly align 8 dereferenceable(8) %34) #323, !dbg !39591
  unreachable, !dbg !39591

L21:                                              ; preds = %top
  %35 = bitcast {} addrspace(10)* %27 to { {} addrspace(10)**, {} addrspace(10)* } addrspace(10)*, !dbg !39594
  %36 = addrspacecast { {} addrspace(10)**, {} addrspace(10)* } addrspace(10)* %35 to { {} addrspace(10)**, {} addrspace(10)* } addrspace(11)*, !dbg !39594
  %37 = bitcast {} addrspace(10)* %27 to {} addrspace(10)** addrspace(10)*, !dbg !39594
  %38 = addrspacecast {} addrspace(10)** addrspace(10)* %37 to {} addrspace(10)** addrspace(11)*, !dbg !39594
  %39 = load {} addrspace(10)**, {} addrspace(10)** addrspace(11)* %38, align 8, !dbg !39594, !tbaa !299, !alias.scope !292, !noalias !293, !enzyme_nocache !0
  %40 = getelementptr inbounds { {} addrspace(10)**, {} addrspace(10)* }, { {} addrspace(10)**, {} addrspace(10)* } addrspace(11)* %36, i64 0, i32 1, !dbg !39594
  %41 = load {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %40, align 8, !dbg !39594, !tbaa !299, !alias.scope !292, !noalias !293, !dereferenceable_or_null !303, !align !304, !enzyme_type !256
  %42 = call align 8 {} addrspace(10)* addrspace(13)* @julia.gc_loaded({} addrspace(10)* %41, {} addrspace(10)** %39) #322, !dbg !39595
  %43 = bitcast {} addrspace(10)* %41 to { i64, {} addrspace(10)** } addrspace(10)*, !dbg !39595
  %44 = addrspacecast { i64, {} addrspace(10)** } addrspace(10)* %43 to { i64, {} addrspace(10)** } addrspace(11)*, !dbg !39595
  %45 = getelementptr inbounds { i64, {} addrspace(10)** }, { i64, {} addrspace(10)** } addrspace(11)* %44, i64 0, i32 1, !dbg !39595
  %46 = load {} addrspace(10)**, {} addrspace(10)** addrspace(11)* %45, align 8, !dbg !39595, !tbaa !804, !alias.scope !292, !noalias !293, !nonnull !0
  %47 = bitcast {} addrspace(10)* %41 to {} addrspace(10)* addrspace(10)*, !dbg !39595
  %48 = addrspacecast {} addrspace(10)* addrspace(10)* %47 to {} addrspace(10)* addrspace(11)*, !dbg !39595
  %49 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %48, i64 2, !dbg !39595
  %50 = addrspacecast {} addrspace(10)** %46 to {} addrspace(10)* addrspace(11)*, !dbg !39595
  %.not45 = icmp eq {} addrspace(10)* addrspace(11)* %49, %50, !dbg !39595
  br i1 %.not45, label %guard_exit, label %guard_pass, !dbg !39595

L38:                                              ; preds = %guard_exit
  %51 = getelementptr inbounds [1 x i64], [1 x i64]* %11, i64 0, i64 0, !dbg !39596
  store i64 2, i64* %51, align 8, !dbg !39596, !tbaa !798, !alias.scope !800, !noalias !39593
  %52 = addrspacecast [1 x i64]* %11 to [1 x i64] addrspace(11)*, !dbg !39596
  call fastcc void @julia_throw_boundserror_105632({} addrspace(10)* noundef nonnull align 8 dereferenceable(24) %27, [1 x i64] addrspace(11)* nocapture noundef nonnull readonly align 8 dereferenceable(8) %52) #323, !dbg !39596
  unreachable, !dbg !39596

L41:                                              ; preds = %guard_exit
  %53 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %42, i64 1, !dbg !39598
  br i1 %.not45, label %guard_exit3, label %guard_pass2, !dbg !39598

L58:                                              ; preds = %guard_exit3
  %54 = getelementptr inbounds [1 x i64], [1 x i64]* %7, i64 0, i64 0, !dbg !39599
  store i64 3, i64* %54, align 8, !dbg !39599, !tbaa !798, !alias.scope !800, !noalias !39593
  %55 = addrspacecast [1 x i64]* %7 to [1 x i64] addrspace(11)*, !dbg !39599
  call fastcc void @julia_throw_boundserror_105632({} addrspace(10)* noundef nonnull align 8 dereferenceable(24) %27, [1 x i64] addrspace(11)* nocapture noundef nonnull readonly align 8 dereferenceable(8) %55) #323, !dbg !39599
  unreachable, !dbg !39599

L61:                                              ; preds = %guard_exit3
  %56 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %42, i64 2, !dbg !39601
  br i1 %.not45, label %guard_exit5, label %guard_pass4, !dbg !39601

L78:                                              ; preds = %guard_exit5
  %57 = getelementptr inbounds [1 x i64], [1 x i64]* %3, i64 0, i64 0, !dbg !39602
  store i64 4, i64* %57, align 8, !dbg !39602, !tbaa !798, !alias.scope !800, !noalias !39593
  %58 = addrspacecast [1 x i64]* %3 to [1 x i64] addrspace(11)*, !dbg !39602
  call fastcc void @julia_throw_boundserror_105632({} addrspace(10)* noundef nonnull align 8 dereferenceable(24) %27, [1 x i64] addrspace(11)* nocapture noundef nonnull readonly align 8 dereferenceable(8) %58) #323, !dbg !39602
  unreachable, !dbg !39602

L81:                                              ; preds = %guard_exit5
  %59 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %42, i64 3, !dbg !39604
  br i1 %.not45, label %guard_exit7, label %guard_pass6, !dbg !39604

L98:                                              ; preds = %guard_exit7
  %60 = getelementptr inbounds [1 x i64], [1 x i64]* %5, i64 0, i64 0, !dbg !39605
  store i64 5, i64* %60, align 8, !dbg !39605, !tbaa !798, !alias.scope !800, !noalias !39593
  %61 = addrspacecast [1 x i64]* %5 to [1 x i64] addrspace(11)*, !dbg !39605
  call fastcc void @julia_throw_boundserror_105632({} addrspace(10)* noundef nonnull align 8 dereferenceable(24) %27, [1 x i64] addrspace(11)* nocapture noundef nonnull readonly align 8 dereferenceable(8) %61) #323, !dbg !39605
  unreachable, !dbg !39605

L101:                                             ; preds = %guard_exit7
  %62 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %42, i64 4, !dbg !39607
  br i1 %.not45, label %guard_exit9, label %guard_pass8, !dbg !39607

L118:                                             ; preds = %guard_exit9
  %63 = getelementptr inbounds [1 x i64], [1 x i64]* %9, i64 0, i64 0, !dbg !39608
  store i64 6, i64* %63, align 8, !dbg !39608, !tbaa !798, !alias.scope !800, !noalias !39593
  %64 = addrspacecast [1 x i64]* %9 to [1 x i64] addrspace(11)*, !dbg !39608
  call fastcc void @julia_throw_boundserror_105632({} addrspace(10)* noundef nonnull align 8 dereferenceable(24) %27, [1 x i64] addrspace(11)* nocapture noundef nonnull readonly align 8 dereferenceable(8) %64) #323, !dbg !39608
  unreachable, !dbg !39608

L121:                                             ; preds = %guard_exit9
  %65 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %42, i64 5, !dbg !39610
  br i1 %.not45, label %guard_exit11, label %guard_pass10, !dbg !39610

L138:                                             ; preds = %guard_exit11
  %66 = getelementptr inbounds [1 x i64], [1 x i64]* %13, i64 0, i64 0, !dbg !39611
  store i64 7, i64* %66, align 8, !dbg !39611, !tbaa !798, !alias.scope !800, !noalias !39593
  %67 = addrspacecast [1 x i64]* %13 to [1 x i64] addrspace(11)*, !dbg !39611
  call fastcc void @julia_throw_boundserror_105632({} addrspace(10)* noundef nonnull align 8 dereferenceable(24) %27, [1 x i64] addrspace(11)* nocapture noundef nonnull readonly align 8 dereferenceable(8) %67) #323, !dbg !39611
  unreachable, !dbg !39611

L141:                                             ; preds = %guard_exit11
  %68 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %42, i64 6, !dbg !39613
  br i1 %.not45, label %guard_exit13, label %guard_pass12, !dbg !39613

L165:                                             ; preds = %guard_exit13
  %69 = call fastcc i64 @julia_reinit_wrapper_105687({} addrspace(10)* noundef nonnull align 8 dereferenceable(32) %.unpack.unpack) #322, !dbg !39614
  br label %L166, !dbg !39614

L166:                                             ; preds = %guard_exit13, %L165
  %value_phi = phi i64 [ %69, %L165 ], [ %145, %guard_exit13 ]
  %.not54 = icmp eq i64 %value_phi, 0, !dbg !39621
  br i1 %.not54, label %fail, label %pass, !dbg !39621

guard_pass:                                       ; preds = %L21
  %70 = getelementptr inbounds { i64, {} addrspace(10)** }, { i64, {} addrspace(10)** } addrspace(11)* %44, i64 1, !dbg !39595
  %71 = bitcast { i64, {} addrspace(10)** } addrspace(11)* %70 to {} addrspace(10)* addrspace(11)*, !dbg !39595
  %72 = load {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %71, align 8, !dbg !39595, !tbaa !227, !alias.scope !230, !noalias !233, !enzyme_type !256
  %73 = icmp eq {} addrspace(10)* %72, null, !dbg !39595
  %74 = select i1 %73, {} addrspace(10)* %41, {} addrspace(10)* %72, !dbg !39595
  br label %guard_exit, !dbg !39595

guard_exit:                                       ; preds = %guard_pass, %L21
  %75 = phi {} addrspace(10)* [ %41, %L21 ], [ %74, %guard_pass ], !dbg !39595
  store atomic {} addrspace(10)* %26, {} addrspace(10)* addrspace(13)* %42 release, align 8, !dbg !39595, !tbaa !307, !alias.scope !244, !noalias !39582
  call void ({} addrspace(10)*, ...) @julia.write_barrier({} addrspace(10)* %75, {} addrspace(10)* nonnull %26) #324, !dbg !39595
  %76 = getelementptr inbounds { {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)* }, { {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)* } addrspace(11)* %1, i64 0, i32 3, !dbg !39622
  %77 = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %76 unordered, align 8, !dbg !39622, !tbaa !227, !alias.scope !230, !noalias !233, !nonnull !0, !dereferenceable !782, !align !304, !enzyme_type !786, !enzymejl_byref_MUT_REF !0, !enzymejl_source_type_Vector\7BFloat64\7D !0
  %78 = icmp ult i64 %32, 2, !dbg !39623
  br i1 %78, label %L38, label %L41, !dbg !39596

guard_pass2:                                      ; preds = %L41
  %79 = getelementptr inbounds { i64, {} addrspace(10)** }, { i64, {} addrspace(10)** } addrspace(11)* %44, i64 1, !dbg !39598
  %80 = bitcast { i64, {} addrspace(10)** } addrspace(11)* %79 to {} addrspace(10)* addrspace(11)*, !dbg !39598
  %81 = load {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %80, align 8, !dbg !39598, !tbaa !227, !alias.scope !230, !noalias !233, !enzyme_type !256
  %82 = icmp eq {} addrspace(10)* %81, null, !dbg !39598
  %83 = select i1 %82, {} addrspace(10)* %41, {} addrspace(10)* %81, !dbg !39598
  br label %guard_exit3, !dbg !39598

guard_exit3:                                      ; preds = %guard_pass2, %L41
  %84 = phi {} addrspace(10)* [ %41, %L41 ], [ %83, %guard_pass2 ], !dbg !39598
  store atomic {} addrspace(10)* %77, {} addrspace(10)* addrspace(13)* %53 release, align 8, !dbg !39598, !tbaa !307, !alias.scope !244, !noalias !39582
  call void ({} addrspace(10)*, ...) @julia.write_barrier({} addrspace(10)* %84, {} addrspace(10)* nonnull %77) #324, !dbg !39598
  %85 = getelementptr inbounds { {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)* }, { {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)* } addrspace(11)* %1, i64 0, i32 4, !dbg !39624
  %86 = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %85 unordered, align 8, !dbg !39624, !tbaa !227, !alias.scope !230, !noalias !233, !nonnull !0, !dereferenceable !782, !align !304, !enzyme_type !786, !enzymejl_byref_MUT_REF !0, !enzymejl_source_type_Vector\7BFloat64\7D !0
  %87 = icmp ult i64 %32, 3, !dbg !39625
  br i1 %87, label %L58, label %L61, !dbg !39599

guard_pass4:                                      ; preds = %L61
  %88 = getelementptr inbounds { i64, {} addrspace(10)** }, { i64, {} addrspace(10)** } addrspace(11)* %44, i64 1, !dbg !39601
  %89 = bitcast { i64, {} addrspace(10)** } addrspace(11)* %88 to {} addrspace(10)* addrspace(11)*, !dbg !39601
  %90 = load {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %89, align 8, !dbg !39601, !tbaa !227, !alias.scope !230, !noalias !233, !enzyme_type !256
  %91 = icmp eq {} addrspace(10)* %90, null, !dbg !39601
  %92 = select i1 %91, {} addrspace(10)* %41, {} addrspace(10)* %90, !dbg !39601
  br label %guard_exit5, !dbg !39601

guard_exit5:                                      ; preds = %guard_pass4, %L61
  %93 = phi {} addrspace(10)* [ %41, %L61 ], [ %92, %guard_pass4 ], !dbg !39601
  store atomic {} addrspace(10)* %86, {} addrspace(10)* addrspace(13)* %56 release, align 8, !dbg !39601, !tbaa !307, !alias.scope !244, !noalias !39582
  call void ({} addrspace(10)*, ...) @julia.write_barrier({} addrspace(10)* %93, {} addrspace(10)* nonnull %86) #324, !dbg !39601
  %94 = getelementptr inbounds { {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)* }, { {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)* } addrspace(11)* %1, i64 0, i32 5, !dbg !39626
  %95 = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %94 unordered, align 8, !dbg !39626, !tbaa !227, !alias.scope !230, !noalias !233, !nonnull !0, !dereferenceable !782, !align !304, !enzyme_type !786, !enzymejl_byref_MUT_REF !0, !enzymejl_source_type_Vector\7BFloat64\7D !0
  %96 = icmp ult i64 %32, 4, !dbg !39627
  br i1 %96, label %L78, label %L81, !dbg !39602

guard_pass6:                                      ; preds = %L81
  %97 = getelementptr inbounds { i64, {} addrspace(10)** }, { i64, {} addrspace(10)** } addrspace(11)* %44, i64 1, !dbg !39604
  %98 = bitcast { i64, {} addrspace(10)** } addrspace(11)* %97 to {} addrspace(10)* addrspace(11)*, !dbg !39604
  %99 = load {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %98, align 8, !dbg !39604, !tbaa !227, !alias.scope !230, !noalias !233, !enzyme_type !256
  %100 = icmp eq {} addrspace(10)* %99, null, !dbg !39604
  %101 = select i1 %100, {} addrspace(10)* %41, {} addrspace(10)* %99, !dbg !39604
  br label %guard_exit7, !dbg !39604

guard_exit7:                                      ; preds = %guard_pass6, %L81
  %102 = phi {} addrspace(10)* [ %41, %L81 ], [ %101, %guard_pass6 ], !dbg !39604
  store atomic {} addrspace(10)* %95, {} addrspace(10)* addrspace(13)* %59 release, align 8, !dbg !39604, !tbaa !307, !alias.scope !244, !noalias !39582
  call void ({} addrspace(10)*, ...) @julia.write_barrier({} addrspace(10)* %102, {} addrspace(10)* nonnull %95) #324, !dbg !39604
  %103 = getelementptr inbounds { {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)* }, { {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)* } addrspace(11)* %1, i64 0, i32 6, !dbg !39628
  %104 = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %103 unordered, align 8, !dbg !39628, !tbaa !227, !alias.scope !230, !noalias !233, !nonnull !0, !dereferenceable !782, !align !304, !enzyme_type !786, !enzymejl_byref_MUT_REF !0, !enzymejl_source_type_Vector\7BFloat64\7D !0
  %105 = icmp ult i64 %32, 5, !dbg !39629
  br i1 %105, label %L98, label %L101, !dbg !39605

guard_pass8:                                      ; preds = %L101
  %106 = getelementptr inbounds { i64, {} addrspace(10)** }, { i64, {} addrspace(10)** } addrspace(11)* %44, i64 1, !dbg !39607
  %107 = bitcast { i64, {} addrspace(10)** } addrspace(11)* %106 to {} addrspace(10)* addrspace(11)*, !dbg !39607
  %108 = load {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %107, align 8, !dbg !39607, !tbaa !227, !alias.scope !230, !noalias !233, !enzyme_type !256
  %109 = icmp eq {} addrspace(10)* %108, null, !dbg !39607
  %110 = select i1 %109, {} addrspace(10)* %41, {} addrspace(10)* %108, !dbg !39607
  br label %guard_exit9, !dbg !39607

guard_exit9:                                      ; preds = %guard_pass8, %L101
  %111 = phi {} addrspace(10)* [ %41, %L101 ], [ %110, %guard_pass8 ], !dbg !39607
  store atomic {} addrspace(10)* %104, {} addrspace(10)* addrspace(13)* %62 release, align 8, !dbg !39607, !tbaa !307, !alias.scope !244, !noalias !39582
  call void ({} addrspace(10)*, ...) @julia.write_barrier({} addrspace(10)* %111, {} addrspace(10)* nonnull %104) #324, !dbg !39607
  %112 = getelementptr inbounds { {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)* }, { {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)* } addrspace(11)* %1, i64 0, i32 7, !dbg !39630
  %113 = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %112 unordered, align 8, !dbg !39630, !tbaa !227, !alias.scope !230, !noalias !233, !nonnull !0, !dereferenceable !782, !align !304, !enzyme_type !786, !enzymejl_byref_MUT_REF !0, !enzymejl_source_type_Vector\7BFloat64\7D !0
  %114 = icmp ult i64 %32, 6, !dbg !39631
  br i1 %114, label %L118, label %L121, !dbg !39608

guard_pass10:                                     ; preds = %L121
  %115 = getelementptr inbounds { i64, {} addrspace(10)** }, { i64, {} addrspace(10)** } addrspace(11)* %44, i64 1, !dbg !39610
  %116 = bitcast { i64, {} addrspace(10)** } addrspace(11)* %115 to {} addrspace(10)* addrspace(11)*, !dbg !39610
  %117 = load {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %116, align 8, !dbg !39610, !tbaa !227, !alias.scope !230, !noalias !233, !enzyme_type !256
  %118 = icmp eq {} addrspace(10)* %117, null, !dbg !39610
  %119 = select i1 %118, {} addrspace(10)* %41, {} addrspace(10)* %117, !dbg !39610
  br label %guard_exit11, !dbg !39610

guard_exit11:                                     ; preds = %guard_pass10, %L121
  %120 = phi {} addrspace(10)* [ %41, %L121 ], [ %119, %guard_pass10 ], !dbg !39610
  store atomic {} addrspace(10)* %113, {} addrspace(10)* addrspace(13)* %65 release, align 8, !dbg !39610, !tbaa !307, !alias.scope !244, !noalias !39582
  call void ({} addrspace(10)*, ...) @julia.write_barrier({} addrspace(10)* %120, {} addrspace(10)* nonnull %113) #324, !dbg !39610
  %121 = getelementptr inbounds { {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)* }, { {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)* } addrspace(11)* %1, i64 0, i32 8, !dbg !39632
  %122 = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %121 unordered, align 8, !dbg !39632, !tbaa !227, !alias.scope !230, !noalias !233, !nonnull !0, !dereferenceable !782, !align !304, !enzyme_type !786, !enzymejl_byref_MUT_REF !0, !enzymejl_source_type_Vector\7BFloat64\7D !0
  %123 = icmp ult i64 %32, 7, !dbg !39633
  br i1 %123, label %L138, label %L141, !dbg !39611

guard_pass12:                                     ; preds = %L141
  %124 = getelementptr inbounds { i64, {} addrspace(10)** }, { i64, {} addrspace(10)** } addrspace(11)* %44, i64 1, !dbg !39613
  %125 = bitcast { i64, {} addrspace(10)** } addrspace(11)* %124 to {} addrspace(10)* addrspace(11)*, !dbg !39613
  %126 = load {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %125, align 8, !dbg !39613, !tbaa !227, !alias.scope !230, !noalias !233, !enzyme_type !256
  %127 = icmp eq {} addrspace(10)* %126, null, !dbg !39613
  %128 = select i1 %127, {} addrspace(10)* %41, {} addrspace(10)* %126, !dbg !39613
  br label %guard_exit13, !dbg !39613

guard_exit13:                                     ; preds = %guard_pass12, %L141
  %129 = phi {} addrspace(10)* [ %41, %L141 ], [ %128, %guard_pass12 ], !dbg !39613
  store atomic {} addrspace(10)* %122, {} addrspace(10)* addrspace(13)* %68 release, align 8, !dbg !39613, !tbaa !307, !alias.scope !244, !noalias !39582
  call void ({} addrspace(10)*, ...) @julia.write_barrier({} addrspace(10)* %129, {} addrspace(10)* nonnull %122) #324, !dbg !39613
  %130 = getelementptr inbounds i8, i8 addrspace(11)* %19, i64 272, !dbg !39634
  %.unpack.elt = bitcast i8 addrspace(11)* %130 to {} addrspace(10)* addrspace(11)*, !dbg !39634
  %.unpack.unpack = load {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %.unpack.elt, align 8, !dbg !39634, !tbaa !254, !alias.scope !244, !noalias !309, !enzyme_type !854, !enzymejl_byref_MUT_REF !0, !enzymejl_source_type_FunctionWrappers.FunctionWrapper\7BNothing\2C\20Tuple\7BVector\7BFloat64\7D\2C\20Vector\7BFloat64\7D\2C\20Vector\7BFloat64\7D\2C\20Float64\7D\7D !0
  %131 = getelementptr inbounds i8, i8 addrspace(11)* %19, i64 616, !dbg !39634
  %132 = bitcast i8 addrspace(11)* %131 to {} addrspace(10)* addrspace(11)*, !dbg !39634
  %133 = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %132 unordered, align 8, !dbg !39634, !tbaa !254, !alias.scope !244, !noalias !309, !nonnull !0, !dereferenceable !782, !align !304, !enzyme_type !256
  %134 = getelementptr inbounds i8, i8 addrspace(11)* %19, i64 320, !dbg !39634
  %135 = bitcast i8 addrspace(11)* %134 to {} addrspace(10)* addrspace(11)*, !dbg !39634
  %136 = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %135 unordered, align 8, !dbg !39634, !tbaa !254, !alias.scope !244, !noalias !309, !nonnull !0, !dereferenceable !782, !align !304, !enzyme_type !786, !enzymejl_byref_MUT_REF !0, !enzymejl_source_type_Vector\7BFloat64\7D !0
  %137 = getelementptr inbounds i8, i8 addrspace(11)* %19, i64 312, !dbg !39634
  %138 = bitcast i8 addrspace(11)* %137 to {} addrspace(10)* addrspace(11)*, !dbg !39634
  %139 = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %138 unordered, align 8, !dbg !39634, !tbaa !254, !alias.scope !244, !noalias !309, !nonnull !0, !dereferenceable !782, !align !304, !enzyme_type !786, !enzymejl_byref_MUT_REF !0, !enzymejl_source_type_Vector\7BFloat64\7D !0
  %140 = getelementptr inbounds i8, i8 addrspace(11)* %19, i64 256, !dbg !39634
  %141 = bitcast i8 addrspace(11)* %140 to double addrspace(11)*, !dbg !39634
  %142 = load double, double addrspace(11)* %141, align 8, !dbg !39634, !tbaa !254, !alias.scope !244, !noalias !309, !enzyme_type !856, !enzymejl_byref_BITS_VALUE !0, !enzymejl_source_type_Float64 !0
  %143 = bitcast {} addrspace(10)* %.unpack.unpack to i64 addrspace(10)*, !dbg !39635
  %144 = addrspacecast i64 addrspace(10)* %143 to i64 addrspace(11)*, !dbg !39635
  %145 = load i64, i64 addrspace(11)* %144, align 8, !dbg !39635, !tbaa !254, !alias.scope !244, !noalias !309, !enzyme_type !256, !enzyme_inactive !0, !enzymejl_byref_BITS_VALUE !0, !enzymejl_source_type_Ptr\7BNothing\7D !0
  %.not53 = icmp eq i64 %145, 0, !dbg !39637
  br i1 %.not53, label %L165, label %L166, !dbg !39639

fail:                                             ; preds = %L166
  %146 = load {}*, {}** @jl_undefref_exception, align 8, !dbg !39621, !tbaa !227, !alias.scope !230, !noalias !233, !nonnull !0
  %147 = addrspacecast {}* %146 to {} addrspace(12)*, !dbg !39621
  call void @ijl_throw({} addrspace(12)* %147) #322, !dbg !39621
  unreachable, !dbg !39621

pass:                                             ; preds = %L166
  %148 = bitcast {} addrspace(10)* %.unpack.unpack to i8 addrspace(10)*, !dbg !39640
  %149 = addrspacecast i8 addrspace(10)* %148 to i8 addrspace(11)*, !dbg !39640
  %150 = getelementptr inbounds i8, i8 addrspace(11)* %149, i64 8, !dbg !39640
  %151 = bitcast i8 addrspace(11)* %150 to i64 addrspace(11)*, !dbg !39640
  %152 = load i64, i64 addrspace(11)* %151, align 8, !dbg !39640, !tbaa !254, !alias.scope !244, !noalias !309, !enzyme_type !256, !enzyme_inactive !0, !enzymejl_byref_BITS_VALUE !0, !enzymejl_source_type_Ptr\7BNothing\7D !0
  %153 = inttoptr i64 %value_phi to void (i64, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, double)*, !dbg !39621
  call void %153(i64 %152, {} addrspace(10)* nonnull %133, {} addrspace(10)* nonnull %136, {} addrspace(10)* nonnull %139, double %142) #322 [ "jl_roots"({} addrspace(10)* %139, {} addrspace(10)* %136, {} addrspace(10)* %133) ], !dbg !39621
  %154 = getelementptr inbounds i8, i8 addrspace(11)* %19, i64 608, !dbg !39642
  %155 = bitcast i8 addrspace(11)* %154 to i64 addrspace(10)* addrspace(11)*, !dbg !39642
  %156 = load atomic i64 addrspace(10)*, i64 addrspace(10)* addrspace(11)* %155 unordered, align 8, !dbg !39642, !tbaa !254, !alias.scope !244, !noalias !309, !nonnull !0, !dereferenceable !868, !align !304, !enzyme_type !869, !enzymejl_byref_MUT_REF !0, !enzymejl_source_type_SciMLBase.DEStats !0
  %157 = addrspacecast i64 addrspace(10)* %156 to i64 addrspace(11)*, !dbg !39644
  %158 = load i64, i64 addrspace(11)* %157, align 8, !dbg !39644, !tbaa !254, !alias.scope !244, !noalias !309, !enzyme_type !238, !enzyme_inactive !0, !enzymejl_source_type_Int64 !0, !enzymejl_byref_BITS_VALUE !0
  %159 = add i64 %158, 1, !dbg !39646
  store i64 %159, i64 addrspace(11)* %157, align 8, !dbg !39647, !tbaa !254, !alias.scope !244, !noalias !39582
  ret void, !dbg !39648
}

No create nofree of unknown value
  %value_phi = phi i64 [ %63, %L165 ], [ %146, %guard_exit13 ]
 -   %63 = extractvalue { { {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)* }, i64 } %_augmented40, 1, !dbg !345
 -   %146 = load i64, i64 addrspace(11)* %145, align 8, !dbg !391, !tbaa !244, !alias.scope !393, !noalias !396, !enzyme_type !271, !enzyme_inactive !0, !enzymejl_byref_BITS_VALUE !0, !enzymejl_source_type_Ptr\7BNothing\7D !0
 at context:   call void %153(i64 %152, {} addrspace(10)* nonnull %133, {} addrspace(10)* nonnull %136, {} addrspace(10)* nonnull %139, double %142) #322 [ "jl_roots"({} addrspace(10)* %139, {} addrspace(10)* %136, {} addrspace(10)* %133) ], !dbg !328 within func fakeaugmented_julia_initialize__106964 (fakeaugmented_julia_initialize__106964)

Stacktrace:
 [1] macro expansion
   @ ~/.julia/packages/FunctionWrappers/Q5cBx/src/FunctionWrappers.jl:137
 [2] do_ccall
   @ ~/.julia/packages/FunctionWrappers/Q5cBx/src/FunctionWrappers.jl:125
 [3] FunctionWrapper
   @ ~/.julia/packages/FunctionWrappers/Q5cBx/src/FunctionWrappers.jl:144
 [4] _call
   @ ~/.julia/packages/FunctionWrappersWrappers/9XR0m/src/FunctionWrappersWrappers.jl:12
 [5] FunctionWrappersWrapper
   @ ~/.julia/packages/FunctionWrappersWrappers/9XR0m/src/FunctionWrappersWrappers.jl:10
 [6] ODEFunction
   @ ~/.julia/packages/SciMLBase/gwbNe/src/scimlfunctions.jl:2580
 [7] initialize!
   @ ~/.julia/packages/OrdinaryDiffEqTsit5/DHYtz/src/tsit_perform_step.jl:175

Stacktrace:
  [1] macro expansion
    @ ~/.julia/packages/FunctionWrappers/Q5cBx/src/FunctionWrappers.jl:137 [inlined]
  [2] do_ccall
    @ ~/.julia/packages/FunctionWrappers/Q5cBx/src/FunctionWrappers.jl:125 [inlined]
  [3] FunctionWrapper
    @ ~/.julia/packages/FunctionWrappers/Q5cBx/src/FunctionWrappers.jl:144 [inlined]
  [4] _call
    @ ~/.julia/packages/FunctionWrappersWrappers/9XR0m/src/FunctionWrappersWrappers.jl:12 [inlined]
  [5] FunctionWrappersWrapper
    @ ~/.julia/packages/FunctionWrappersWrappers/9XR0m/src/FunctionWrappersWrappers.jl:10 [inlined]
  [6] ODEFunction
    @ ~/.julia/packages/SciMLBase/gwbNe/src/scimlfunctions.jl:2580 [inlined]
  [7] initialize!
    @ ~/.julia/packages/OrdinaryDiffEqTsit5/DHYtz/src/tsit_perform_step.jl:175
  [8] #__init#63
    @ ~/.julia/packages/OrdinaryDiffEqCore/AYNr9/src/solve.jl:587
  [9] solve!
    @ ~/.julia/packages/OrdinaryDiffEqCore/AYNr9/src/solve.jl:626
 [10] solve_call
    @ ~/.julia/dev/DiffEqBase/src/solve.jl:627 [inlined]
 [11] solve_call
    @ ~/.julia/dev/DiffEqBase/src/solve.jl:0 [inlined]
 [12] augmented_julia_solve_call_105473_inner_191wrap
    @ ~/.julia/dev/DiffEqBase/src/solve.jl:0
 [13] macro expansion
    @ ~/.julia/packages/Enzyme/VsOlr/src/compiler.jl:5516 [inlined]
 [14] enzyme_call
    @ ~/.julia/packages/Enzyme/VsOlr/src/compiler.jl:5050 [inlined]
 [15] AugmentedForwardThunk
    @ ~/.julia/packages/Enzyme/VsOlr/src/compiler.jl:4989 [inlined]
 [16] macro expansion
    @ ~/.julia/packages/Enzyme/VsOlr/src/rules/jitrules.jl:447 [inlined]
 [17] runtime_generic_augfwd(::Type{…}, ::Val{…}, ::Val{…}, ::Val{…}, ::Val{…}, ::Val{…}, ::typeof(Core.kwcall), ::Nothing, ::@NamedTuple{…}, ::Base.RefValue{…}, ::typeof(DiffEqBase.solve_call), ::Nothing, ::ODEProblem{…}, ::ODEProblem{…}, ::Tsit5{…}, ::Nothing)
    @ Enzyme.Compiler ~/.julia/packages/Enzyme/VsOlr/src/rules/jitrules.jl:574
 [18] #solve_up#45
    @ ~/.julia/dev/DiffEqBase/src/solve.jl:1224
 [19] solve_up
    @ ~/.julia/dev/DiffEqBase/src/solve.jl:1201 [inlined]
 [20] #solve#43
    @ ~/.julia/dev/DiffEqBase/src/solve.jl:1096
 [21] solve
    @ ~/.julia/dev/DiffEqBase/src/solve.jl:1086 [inlined]
 [22] #452
    @ ~/.julia/dev/SciMLSensitivity/src/concrete_solve.jl:1280 [inlined]
 [23] augmented_julia__452_333548_inner_1wrap
    @ ~/.julia/dev/SciMLSensitivity/src/concrete_solve.jl:0
 [24] macro expansion
    @ ~/.julia/packages/Enzyme/VsOlr/src/compiler.jl:5516 [inlined]
 [25] enzyme_call(::Val{…}, ::Ptr{…}, ::Type{…}, ::Val{…}, ::Val{…}, ::Type{…}, ::Type{…}, ::Const{…}, ::Type{…}, ::Duplicated{…}, ::Duplicated{…})
    @ Enzyme.Compiler ~/.julia/packages/Enzyme/VsOlr/src/compiler.jl:5050
 [26] (::Enzyme.Compiler.AugmentedForwardThunk{…})(::Const{…}, ::Duplicated{…}, ::Vararg{…})
    @ Enzyme.Compiler ~/.julia/packages/Enzyme/VsOlr/src/compiler.jl:4989
 [27] _concrete_solve_adjoint(::ODEProblem{…}, ::Tsit5{…}, ::EnzymeAdjoint{…}, ::Vector{…}, ::Vector{…}, ::SciMLBase.ChainRulesOriginator; kwargs::@Kwargs{…})
    @ SciMLSensitivity ~/.julia/dev/SciMLSensitivity/src/concrete_solve.jl:1291
 [28] _concrete_solve_adjoint
    @ ~/.julia/dev/SciMLSensitivity/src/concrete_solve.jl:1263 [inlined]
 [29] #_solve_adjoint#67
    @ ~/.julia/dev/DiffEqBase/src/solve.jl:1710 [inlined]
 [30] _solve_adjoint
    @ ~/.julia/dev/DiffEqBase/src/solve.jl:1683 [inlined]
 [31] #rrule#4
    @ ~/.julia/dev/DiffEqBase/ext/DiffEqBaseChainRulesCoreExt.jl:28 [inlined]
 [32] rrule
    @ ~/.julia/dev/DiffEqBase/ext/DiffEqBaseChainRulesCoreExt.jl:24 [inlined]
 [33] rrule
    @ ~/.julia/packages/ChainRulesCore/XAgYn/src/rules.jl:144 [inlined]
 [34] chain_rrule_kw
    @ ~/.julia/packages/Zygote/55SqB/src/compiler/chainrules.jl:246 [inlined]
 [35] macro expansion
  …
@ChrisRackauckas
Copy link
Member Author

Failure on v1.10 seems to be an Enzyme issue with the update that was supposed to fix this. v1.11 seems to be fine though.

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 this pull request may close these issues.

2 participants