We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
The following code worked with Enzyme 0.11.20 (julia 1.10.2) but fails on Enzyme 0.12.9. Apologies for the not so minimal MWE.
using Pkg Pkg.activate(temp = true) Pkg.add(["Distributions", "ComponentArrays", "ConcreteStructs"]) # Pkg.add(name = "Enzyme", version = "0.11.20") Pkg.add(name = "Enzyme", version = "0.12.9") using Distributions, Enzyme, ComponentArrays, ConcreteStructs struct BiasedCoin end parameters(::BiasedCoin) = ComponentArray(ρ = .5) function logp(data, ::BiasedCoin, parameters) logp = 0. ρ = parameters.ρ for d in data logp += logpdf(Bernoulli(ρ), d) end logp end sigmoid(w) = 1/(1 + exp(-w)) @concrete struct HabituatingBiasedCoin w end HabituatingBiasedCoin() = HabituatingBiasedCoin(Base.RefValue(0.)) function initialize!(m::HabituatingBiasedCoin, parameters) m.w[] = parameters.w₀ end parameters(::HabituatingBiasedCoin) = ComponentArray(w₀ = 0., η = 0.) function logp(data, m::HabituatingBiasedCoin, parameters) initialize!(m, parameters) η = parameters.η logp = 0. for d in data ρ = sigmoid(m.w[]) logp += logpdf(Bernoulli(ρ), d) m.w[] += η * (d - ρ) end logp end @concrete terse struct HessLogP{T} logp dlogp data ddata model::T dmodel parameters dparameters end function HessLogP(data, model, parameters = ComponentArray(parameters(model))) dd = _zero(data) _data = convert(typeof(dd), data) n = length(parameters) vx = ntuple(i -> begin t = _zero(parameters); t[i] = 1; t end, n) ddx = ntuple(_ -> _zero(parameters), n) HessLogP(Const([0.]), Const([1.]), BatchDuplicated(_data, ntuple(_ -> _zero(dd), n)), BatchDuplicated(_zero(dd), ntuple(_ -> _zero(dd), n)), _deep_ismutable(model) ? BatchDuplicated(model, ntuple(_ -> _zero(model), n)) : Const(model), _deep_ismutable(model) ? BatchDuplicated(_zero(model), ntuple(_ -> _zero(model), n)) : Const(model), BatchDuplicated(parameters, vx), BatchDuplicated(_zero(parameters), ddx)) end function logp!(_logp, data, model, parameters) _logp[] = logp(data, model, parameters) nothing end function _grad1(logp, dlogp, data, ddata, model, params, dparams) autodiff_deferred(Reverse, logp!, DuplicatedNoNeed(logp, dlogp), DuplicatedNoNeed(data, ddata), Const(model), Duplicated(params, dparams)) nothing end function _grad2(logp, dlogp, data, ddata, model, dmodel, params, dparams) autodiff_deferred(Reverse, logp!, DuplicatedNoNeed(logp, dlogp), DuplicatedNoNeed(data, ddata), DuplicatedNoNeed(model, dmodel), Duplicated(params, dparams)) nothing end function _hess(h::HessLogP{<:Const}) autodiff(Forward, _grad1, h.logp, h.dlogp, h.data, h.ddata, h.model, h.parameters, h.dparameters) end function _hess(h::HessLogP) autodiff(Forward, _grad2, h.logp, h.dlogp, h.data, h.ddata, h.model, h.dmodel, h.parameters, h.dparameters) end _deep_ismutable(x::T) where T = _deep_ismutable(T) function _deep_ismutable(x::Type) ismutabletype(x) && return true any(_deep_ismutable, fieldtypes(x)) end _zero(x::AbstractArray) = _zero.(x) _zero(x::Number) = zero(x) _zero(x::Base.RefValue) = Ref(_zero(x[])) _zero(x::Tuple) = _zero.(x) _zero(x::NamedTuple{K}) where K = NamedTuple{K}(_zero.(values(x))) function _zero(x::D) where D D.name.wrapper((_zero(getfield(x, f)) for f in fieldnames(D))...) end function (h::HessLogP)(ddx, x) h.parameters.val .= x h.dlogp.val .= 1 _hess(h) for (i, v) in pairs(h.dparameters.dval) ddx[:, i] .= v v .= 0 end end
julia> m = BiasedCoin(); julia> p = parameters(m); julia> h! = HessLogP(rand(0:1, 10), m); julia> H = zeros(length(p), length(p)); julia> h!(H, p) ERROR: Enzyme compilation failed due to illegal type analysis. Current scope: ; Function Attrs: mustprogress willreturn define private fastcc "enzyme_type"="{[-1]:Float@double}" { i64, i64*, double, i64 } @preprocess_augmented_julia_logp_4940({} addrspace(10)* nocapture nonnull readonly align 16 dereferenceable(40) "enzyme_inactive" "enzyme_type"="{[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Integer, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}" "enzymejl_parmtype"="132511560660096" "enzymejl_parmtype_ref"="2" %0, { {} addrspace(10)* } addrspace(11)* nocapture nofree noundef nonnull readonly align 8 dereferenceable(8) "enzyme_type"="{[-1]:Pointer, [-1,0]:Pointer, [-1,0,0]:Pointer, [-1,0,0,-1]:Float@double, [-1,0,8]:Integer, [-1,0,9]:Integer, [-1,0,10]:Integer, [-1,0,11]:Integer, [-1,0,12]:Integer, [-1,0,13]:Integer, [-1,0,14]:Integer, [-1,0,15]: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,0,24]:Integer, [-1,0,25]:Integer, [-1,0,26]:Integer, [-1,0,27]:Integer, [-1,0,28]:Integer, [-1,0,29]:Integer, [-1,0,30]:Integer, [-1,0,31]:Integer, [-1,0,32]:Integer, [-1,0,33]:Integer, [-1,0,34]:Integer, [-1,0,35]:Integer, [-1,0,36]:Integer, [-1,0,37]:Integer, [-1,0,38]:Integer, [-1,0,39]:Integer}" "enzymejl_parmtype"="132509096788432" "enzymejl_parmtype_ref"="1" %1) unnamed_addr #4 !dbg !501 { top: %2 = call {}*** @julia.get_pgcstack() #15 %ptls_field28 = getelementptr inbounds {}**, {}*** %2, i64 2 %3 = bitcast {}*** %ptls_field28 to i64*** %ptls_load2930 = load i64**, i64*** %3, align 8, !tbaa !39, !alias.scope !502, !noalias !505 %4 = getelementptr inbounds i64*, i64** %ptls_load2930, i64 2 %safepoint = load i64*, i64** %4, align 8, !tbaa !48, !alias.scope !507, !noalias !510 fence syncscope("singlethread") seq_cst call void @julia.safepoint(i64* %safepoint) #15, !dbg !512 fence syncscope("singlethread") seq_cst %getfield_addr = getelementptr inbounds { {} addrspace(10)* }, { {} addrspace(10)* } addrspace(11)* %1, i64 0, i32 0, !dbg !513 %getfield = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %getfield_addr unordered, align 8, !dbg !513, !tbaa !48, !alias.scope !518, !noalias !521, !nonnull !16, !dereferenceable !146, !align !147 %5 = addrspacecast {} addrspace(10)* %getfield to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !523 %arraylen_ptr = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %5, i64 0, i32 1, !dbg !523 %arraylen = load i64, i64 addrspace(11)* %arraylen_ptr, align 8, !dbg !523, !tbaa !72, !range !75, !alias.scope !525, !noalias !528 %inbounds.not = icmp eq i64 %arraylen, 0, !dbg !523 br i1 %inbounds.not, label %oob, label %idxend, !dbg !523 L19: ; preds = %idxend %6 = fcmp ult double %arrayref, 0.000000e+00, !dbg !530 %7 = fcmp ugt double %arrayref, 1.000000e+00, !dbg !531 %8 = or i1 %6, %7, !dbg !531 br i1 %8, label %L32, label %L38.lr.ph, !dbg !531 L38.lr.ph: ; preds = %L19 %9 = addrspacecast {} addrspace(10)* %0 to i64 addrspace(13)* addrspace(11)*, !dbg !536 %arrayptr532 = load i64 addrspace(13)*, i64 addrspace(13)* addrspace(11)* %9, align 16, !dbg !536, !alias.scope !540, !noalias !547, !nonnull !16 %value_phi944 = load i64, i64 addrspace(13)* %arrayptr532, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %exitcond.not49 = icmp eq i64 %arraylen3, 1, !dbg !555 br i1 %exitcond.not49, label %L68, label %L62.preheader, !dbg !557 L62.preheader: ; preds = %L38.lr.ph %10 = shl i64 %arraylen3, 3, !dbg !557 %11 = add i64 %10, -8, !dbg !557 %12 = call noalias nonnull i8* @malloc(i64 %11) #15, !dbg !557 %13 = bitcast i8* %12 to i64*, !dbg !557 %14 = add nuw i64 %arraylen3, 7, !dbg !557 %15 = add nsw i64 %arraylen3, -2, !dbg !557 %xtraiter = and i64 %14, 7, !dbg !557 %16 = icmp ult i64 %15, 7, !dbg !557 br i1 %16, label %L68.loopexit.unr-lcssa, label %L62.preheader.new, !dbg !557 L62.preheader.new: ; preds = %L62.preheader %17 = add nsw i64 %arraylen3, -9, !dbg !557 %18 = lshr i64 %17, 3, !dbg !557 %19 = add nuw nsw i64 %18, 1, !dbg !557 %xtraiter4 = and i64 %19, 7, !dbg !557 %20 = icmp ult i64 %17, 56, !dbg !557 br i1 %20, label %L68.loopexit.unr-lcssa.loopexit.unr-lcssa, label %L62.preheader.new.new, !dbg !557 L62.preheader.new.new: ; preds = %L62.preheader.new %unroll_iter12 = and i64 %19, 4611686018427387896, !dbg !557 br label %L62, !dbg !557 L32: ; preds = %L19 %current_task127 = getelementptr inbounds {}**, {}*** %2, i64 -14 %current_task1 = bitcast {}*** %current_task127 to {}** %box = call noalias nonnull dereferenceable(8) "enzyme_type"="{[-1]:Pointer, [-1,-1]:Float@double}" {} addrspace(10)* @julia.gc_alloc_obj({}** nonnull %current_task1, i64 noundef 8, {} addrspace(10)* noundef addrspacecast ({}* inttoptr (i64 132511632845536 to {}*) to {} addrspace(10)*)) #16, !dbg !531 %21 = bitcast {} addrspace(10)* %box to double addrspace(10)*, !dbg !531 store double %arrayref, double addrspace(10)* %21, align 8, !dbg !531, !tbaa !197, !alias.scope !200, !noalias !559 %22 = call nonnull "enzyme_type"="{[-1]:Pointer}" {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32, {} addrspace(10)*)*, {} addrspace(10)*, {} addrspace(10)*, ...) @julia.call2({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32, {} addrspace(10)*)* noundef nonnull @ijl_invoke, {} addrspace(10)* noundef addrspacecast ({}* inttoptr (i64 132511603774560 to {}*) to {} addrspace(10)*), {} addrspace(10)* noundef addrspacecast ({}* inttoptr (i64 132511562750992 to {}*) to {} addrspace(10)*), {} addrspace(10)* nofree nonnull %box, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 132509245371280 to {}*) to {} addrspace(10)*)) #17, !dbg !531 %23 = addrspacecast {} addrspace(10)* %22 to {} addrspace(12)*, !dbg !531 call void @ijl_throw({} addrspace(12)* %23) #18, !dbg !531 unreachable, !dbg !531 L62: ; preds = %L62, %L62.preheader.new.new %iv1 = phi i64 [ %iv.next2, %L62 ], [ 0, %L62.preheader.new.new ] %24 = shl i64 %iv1, 3, !dbg !562 %iv.next2 = add nuw nsw i64 %iv1, 1, !dbg !562 %25 = shl nuw i64 %iv1, 6, !dbg !562 %iv.next = or i64 %25, 1, !dbg !562 %26 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next, !dbg !564 %value_phi9 = load i64, i64 addrspace(13)* %26, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %27 = getelementptr inbounds i64, i64* %13, i64 %25, !dbg !565 store i64 %value_phi9, i64* %27, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.1 = or i64 %25, 2, !dbg !562 %28 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.1, !dbg !564 %value_phi9.1 = load i64, i64 addrspace(13)* %28, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %29 = getelementptr inbounds i64, i64* %13, i64 %iv.next, !dbg !565 store i64 %value_phi9.1, i64* %29, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.2 = or i64 %25, 3, !dbg !562 %30 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.2, !dbg !564 %value_phi9.2 = load i64, i64 addrspace(13)* %30, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %31 = getelementptr inbounds i64, i64* %13, i64 %iv.next.1, !dbg !565 store i64 %value_phi9.2, i64* %31, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.3 = or i64 %25, 4, !dbg !562 %32 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.3, !dbg !564 %value_phi9.3 = load i64, i64 addrspace(13)* %32, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %33 = getelementptr inbounds i64, i64* %13, i64 %iv.next.2, !dbg !565 store i64 %value_phi9.3, i64* %33, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.4 = or i64 %25, 5, !dbg !562 %34 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.4, !dbg !564 %value_phi9.4 = load i64, i64 addrspace(13)* %34, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %35 = getelementptr inbounds i64, i64* %13, i64 %iv.next.3, !dbg !565 store i64 %value_phi9.4, i64* %35, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.5 = or i64 %25, 6, !dbg !562 %36 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.5, !dbg !564 %value_phi9.5 = load i64, i64 addrspace(13)* %36, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %37 = getelementptr inbounds i64, i64* %13, i64 %iv.next.4, !dbg !565 store i64 %value_phi9.5, i64* %37, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.6 = or i64 %25, 7, !dbg !562 %38 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.6, !dbg !564 %value_phi9.6 = load i64, i64 addrspace(13)* %38, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %39 = getelementptr inbounds i64, i64* %13, i64 %iv.next.5, !dbg !565 store i64 %value_phi9.6, i64* %39, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.7 = or i64 %25, 8, !dbg !562 %40 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.7, !dbg !564 %value_phi9.7 = load i64, i64 addrspace(13)* %40, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %41 = getelementptr inbounds i64, i64* %13, i64 %iv.next.6, !dbg !565 store i64 %value_phi9.7, i64* %41, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.113 = or i64 %25, 9, !dbg !562 %42 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.113, !dbg !564 %value_phi9.114 = load i64, i64 addrspace(13)* %42, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %43 = getelementptr inbounds i64, i64* %13, i64 %iv.next.7, !dbg !565 store i64 %value_phi9.114, i64* %43, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.1.1 = or i64 %25, 10, !dbg !562 %44 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.1.1, !dbg !564 %value_phi9.1.1 = load i64, i64 addrspace(13)* %44, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %45 = getelementptr inbounds i64, i64* %13, i64 %iv.next.113, !dbg !565 store i64 %value_phi9.1.1, i64* %45, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.2.1 = or i64 %25, 11, !dbg !562 %46 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.2.1, !dbg !564 %value_phi9.2.1 = load i64, i64 addrspace(13)* %46, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %47 = getelementptr inbounds i64, i64* %13, i64 %iv.next.1.1, !dbg !565 store i64 %value_phi9.2.1, i64* %47, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.3.1 = or i64 %25, 12, !dbg !562 %48 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.3.1, !dbg !564 %value_phi9.3.1 = load i64, i64 addrspace(13)* %48, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %49 = getelementptr inbounds i64, i64* %13, i64 %iv.next.2.1, !dbg !565 store i64 %value_phi9.3.1, i64* %49, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.4.1 = or i64 %25, 13, !dbg !562 %50 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.4.1, !dbg !564 %value_phi9.4.1 = load i64, i64 addrspace(13)* %50, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %51 = getelementptr inbounds i64, i64* %13, i64 %iv.next.3.1, !dbg !565 store i64 %value_phi9.4.1, i64* %51, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.5.1 = or i64 %25, 14, !dbg !562 %52 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.5.1, !dbg !564 %value_phi9.5.1 = load i64, i64 addrspace(13)* %52, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %53 = getelementptr inbounds i64, i64* %13, i64 %iv.next.4.1, !dbg !565 store i64 %value_phi9.5.1, i64* %53, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.6.1 = or i64 %25, 15, !dbg !562 %54 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.6.1, !dbg !564 %value_phi9.6.1 = load i64, i64 addrspace(13)* %54, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %55 = getelementptr inbounds i64, i64* %13, i64 %iv.next.5.1, !dbg !565 store i64 %value_phi9.6.1, i64* %55, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.7.1 = or i64 %25, 16, !dbg !562 %56 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.7.1, !dbg !564 %value_phi9.7.1 = load i64, i64 addrspace(13)* %56, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %57 = getelementptr inbounds i64, i64* %13, i64 %iv.next.6.1, !dbg !565 store i64 %value_phi9.7.1, i64* %57, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.215 = or i64 %25, 17, !dbg !562 %58 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.215, !dbg !564 %value_phi9.216 = load i64, i64 addrspace(13)* %58, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %59 = getelementptr inbounds i64, i64* %13, i64 %iv.next.7.1, !dbg !565 store i64 %value_phi9.216, i64* %59, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.1.2 = or i64 %25, 18, !dbg !562 %60 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.1.2, !dbg !564 %value_phi9.1.2 = load i64, i64 addrspace(13)* %60, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %61 = getelementptr inbounds i64, i64* %13, i64 %iv.next.215, !dbg !565 store i64 %value_phi9.1.2, i64* %61, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.2.2 = or i64 %25, 19, !dbg !562 %62 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.2.2, !dbg !564 %value_phi9.2.2 = load i64, i64 addrspace(13)* %62, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %63 = getelementptr inbounds i64, i64* %13, i64 %iv.next.1.2, !dbg !565 store i64 %value_phi9.2.2, i64* %63, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.3.2 = or i64 %25, 20, !dbg !562 %64 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.3.2, !dbg !564 %value_phi9.3.2 = load i64, i64 addrspace(13)* %64, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %65 = getelementptr inbounds i64, i64* %13, i64 %iv.next.2.2, !dbg !565 store i64 %value_phi9.3.2, i64* %65, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.4.2 = or i64 %25, 21, !dbg !562 %66 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.4.2, !dbg !564 %value_phi9.4.2 = load i64, i64 addrspace(13)* %66, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %67 = getelementptr inbounds i64, i64* %13, i64 %iv.next.3.2, !dbg !565 store i64 %value_phi9.4.2, i64* %67, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.5.2 = or i64 %25, 22, !dbg !562 %68 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.5.2, !dbg !564 %value_phi9.5.2 = load i64, i64 addrspace(13)* %68, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %69 = getelementptr inbounds i64, i64* %13, i64 %iv.next.4.2, !dbg !565 store i64 %value_phi9.5.2, i64* %69, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.6.2 = or i64 %25, 23, !dbg !562 %70 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.6.2, !dbg !564 %value_phi9.6.2 = load i64, i64 addrspace(13)* %70, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %71 = getelementptr inbounds i64, i64* %13, i64 %iv.next.5.2, !dbg !565 store i64 %value_phi9.6.2, i64* %71, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.7.2 = or i64 %25, 24, !dbg !562 %72 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.7.2, !dbg !564 %value_phi9.7.2 = load i64, i64 addrspace(13)* %72, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %73 = getelementptr inbounds i64, i64* %13, i64 %iv.next.6.2, !dbg !565 store i64 %value_phi9.7.2, i64* %73, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.317 = or i64 %25, 25, !dbg !562 %74 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.317, !dbg !564 %value_phi9.318 = load i64, i64 addrspace(13)* %74, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %75 = getelementptr inbounds i64, i64* %13, i64 %iv.next.7.2, !dbg !565 store i64 %value_phi9.318, i64* %75, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.1.3 = or i64 %25, 26, !dbg !562 %76 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.1.3, !dbg !564 %value_phi9.1.3 = load i64, i64 addrspace(13)* %76, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %77 = getelementptr inbounds i64, i64* %13, i64 %iv.next.317, !dbg !565 store i64 %value_phi9.1.3, i64* %77, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.2.3 = or i64 %25, 27, !dbg !562 %78 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.2.3, !dbg !564 %value_phi9.2.3 = load i64, i64 addrspace(13)* %78, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %79 = getelementptr inbounds i64, i64* %13, i64 %iv.next.1.3, !dbg !565 store i64 %value_phi9.2.3, i64* %79, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.3.3 = or i64 %25, 28, !dbg !562 %80 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.3.3, !dbg !564 %value_phi9.3.3 = load i64, i64 addrspace(13)* %80, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %81 = getelementptr inbounds i64, i64* %13, i64 %iv.next.2.3, !dbg !565 store i64 %value_phi9.3.3, i64* %81, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.4.3 = or i64 %25, 29, !dbg !562 %82 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.4.3, !dbg !564 %value_phi9.4.3 = load i64, i64 addrspace(13)* %82, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %83 = getelementptr inbounds i64, i64* %13, i64 %iv.next.3.3, !dbg !565 store i64 %value_phi9.4.3, i64* %83, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.5.3 = or i64 %25, 30, !dbg !562 %84 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.5.3, !dbg !564 %value_phi9.5.3 = load i64, i64 addrspace(13)* %84, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %85 = getelementptr inbounds i64, i64* %13, i64 %iv.next.4.3, !dbg !565 store i64 %value_phi9.5.3, i64* %85, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.6.3 = or i64 %25, 31, !dbg !562 %86 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.6.3, !dbg !564 %value_phi9.6.3 = load i64, i64 addrspace(13)* %86, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %87 = getelementptr inbounds i64, i64* %13, i64 %iv.next.5.3, !dbg !565 store i64 %value_phi9.6.3, i64* %87, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.7.3 = or i64 %25, 32, !dbg !562 %88 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.7.3, !dbg !564 %value_phi9.7.3 = load i64, i64 addrspace(13)* %88, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %89 = getelementptr inbounds i64, i64* %13, i64 %iv.next.6.3, !dbg !565 store i64 %value_phi9.7.3, i64* %89, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.419 = or i64 %25, 33, !dbg !562 %90 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.419, !dbg !564 %value_phi9.420 = load i64, i64 addrspace(13)* %90, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %91 = getelementptr inbounds i64, i64* %13, i64 %iv.next.7.3, !dbg !565 store i64 %value_phi9.420, i64* %91, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.1.4 = or i64 %25, 34, !dbg !562 %92 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.1.4, !dbg !564 %value_phi9.1.4 = load i64, i64 addrspace(13)* %92, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %93 = getelementptr inbounds i64, i64* %13, i64 %iv.next.419, !dbg !565 store i64 %value_phi9.1.4, i64* %93, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.2.4 = or i64 %25, 35, !dbg !562 %94 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.2.4, !dbg !564 %value_phi9.2.4 = load i64, i64 addrspace(13)* %94, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %95 = getelementptr inbounds i64, i64* %13, i64 %iv.next.1.4, !dbg !565 store i64 %value_phi9.2.4, i64* %95, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.3.4 = or i64 %25, 36, !dbg !562 %96 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.3.4, !dbg !564 %value_phi9.3.4 = load i64, i64 addrspace(13)* %96, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %97 = getelementptr inbounds i64, i64* %13, i64 %iv.next.2.4, !dbg !565 store i64 %value_phi9.3.4, i64* %97, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.4.4 = or i64 %25, 37, !dbg !562 %98 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.4.4, !dbg !564 %value_phi9.4.4 = load i64, i64 addrspace(13)* %98, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %99 = getelementptr inbounds i64, i64* %13, i64 %iv.next.3.4, !dbg !565 store i64 %value_phi9.4.4, i64* %99, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.5.4 = or i64 %25, 38, !dbg !562 %100 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.5.4, !dbg !564 %value_phi9.5.4 = load i64, i64 addrspace(13)* %100, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %101 = getelementptr inbounds i64, i64* %13, i64 %iv.next.4.4, !dbg !565 store i64 %value_phi9.5.4, i64* %101, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.6.4 = or i64 %25, 39, !dbg !562 %102 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.6.4, !dbg !564 %value_phi9.6.4 = load i64, i64 addrspace(13)* %102, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %103 = getelementptr inbounds i64, i64* %13, i64 %iv.next.5.4, !dbg !565 store i64 %value_phi9.6.4, i64* %103, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.7.4 = or i64 %25, 40, !dbg !562 %104 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.7.4, !dbg !564 %value_phi9.7.4 = load i64, i64 addrspace(13)* %104, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %105 = getelementptr inbounds i64, i64* %13, i64 %iv.next.6.4, !dbg !565 store i64 %value_phi9.7.4, i64* %105, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.521 = or i64 %25, 41, !dbg !562 %106 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.521, !dbg !564 %value_phi9.522 = load i64, i64 addrspace(13)* %106, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %107 = getelementptr inbounds i64, i64* %13, i64 %iv.next.7.4, !dbg !565 store i64 %value_phi9.522, i64* %107, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.1.5 = or i64 %25, 42, !dbg !562 %108 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.1.5, !dbg !564 %value_phi9.1.5 = load i64, i64 addrspace(13)* %108, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %109 = getelementptr inbounds i64, i64* %13, i64 %iv.next.521, !dbg !565 store i64 %value_phi9.1.5, i64* %109, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.2.5 = or i64 %25, 43, !dbg !562 %110 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.2.5, !dbg !564 %value_phi9.2.5 = load i64, i64 addrspace(13)* %110, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %111 = getelementptr inbounds i64, i64* %13, i64 %iv.next.1.5, !dbg !565 store i64 %value_phi9.2.5, i64* %111, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.3.5 = or i64 %25, 44, !dbg !562 %112 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.3.5, !dbg !564 %value_phi9.3.5 = load i64, i64 addrspace(13)* %112, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %113 = getelementptr inbounds i64, i64* %13, i64 %iv.next.2.5, !dbg !565 store i64 %value_phi9.3.5, i64* %113, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.4.5 = or i64 %25, 45, !dbg !562 %114 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.4.5, !dbg !564 %value_phi9.4.5 = load i64, i64 addrspace(13)* %114, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %115 = getelementptr inbounds i64, i64* %13, i64 %iv.next.3.5, !dbg !565 store i64 %value_phi9.4.5, i64* %115, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.5.5 = or i64 %25, 46, !dbg !562 %116 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.5.5, !dbg !564 %value_phi9.5.5 = load i64, i64 addrspace(13)* %116, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %117 = getelementptr inbounds i64, i64* %13, i64 %iv.next.4.5, !dbg !565 store i64 %value_phi9.5.5, i64* %117, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.6.5 = or i64 %25, 47, !dbg !562 %118 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.6.5, !dbg !564 %value_phi9.6.5 = load i64, i64 addrspace(13)* %118, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %119 = getelementptr inbounds i64, i64* %13, i64 %iv.next.5.5, !dbg !565 store i64 %value_phi9.6.5, i64* %119, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.7.5 = or i64 %25, 48, !dbg !562 %120 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.7.5, !dbg !564 %value_phi9.7.5 = load i64, i64 addrspace(13)* %120, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %121 = getelementptr inbounds i64, i64* %13, i64 %iv.next.6.5, !dbg !565 store i64 %value_phi9.7.5, i64* %121, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.623 = or i64 %25, 49, !dbg !562 %122 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.623, !dbg !564 %value_phi9.624 = load i64, i64 addrspace(13)* %122, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %123 = getelementptr inbounds i64, i64* %13, i64 %iv.next.7.5, !dbg !565 store i64 %value_phi9.624, i64* %123, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.1.6 = or i64 %25, 50, !dbg !562 %124 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.1.6, !dbg !564 %value_phi9.1.6 = load i64, i64 addrspace(13)* %124, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %125 = getelementptr inbounds i64, i64* %13, i64 %iv.next.623, !dbg !565 store i64 %value_phi9.1.6, i64* %125, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.2.6 = or i64 %25, 51, !dbg !562 %126 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.2.6, !dbg !564 %value_phi9.2.6 = load i64, i64 addrspace(13)* %126, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %127 = getelementptr inbounds i64, i64* %13, i64 %iv.next.1.6, !dbg !565 store i64 %value_phi9.2.6, i64* %127, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.3.6 = or i64 %25, 52, !dbg !562 %128 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.3.6, !dbg !564 %value_phi9.3.6 = load i64, i64 addrspace(13)* %128, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %129 = getelementptr inbounds i64, i64* %13, i64 %iv.next.2.6, !dbg !565 store i64 %value_phi9.3.6, i64* %129, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.4.6 = or i64 %25, 53, !dbg !562 %130 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.4.6, !dbg !564 %value_phi9.4.6 = load i64, i64 addrspace(13)* %130, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %131 = getelementptr inbounds i64, i64* %13, i64 %iv.next.3.6, !dbg !565 store i64 %value_phi9.4.6, i64* %131, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.5.6 = or i64 %25, 54, !dbg !562 %132 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.5.6, !dbg !564 %value_phi9.5.6 = load i64, i64 addrspace(13)* %132, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %133 = getelementptr inbounds i64, i64* %13, i64 %iv.next.4.6, !dbg !565 store i64 %value_phi9.5.6, i64* %133, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.6.6 = or i64 %25, 55, !dbg !562 %134 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.6.6, !dbg !564 %value_phi9.6.6 = load i64, i64 addrspace(13)* %134, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %135 = getelementptr inbounds i64, i64* %13, i64 %iv.next.5.6, !dbg !565 store i64 %value_phi9.6.6, i64* %135, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.7.6 = or i64 %25, 56, !dbg !562 %136 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.7.6, !dbg !564 %value_phi9.7.6 = load i64, i64 addrspace(13)* %136, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %137 = getelementptr inbounds i64, i64* %13, i64 %iv.next.6.6, !dbg !565 store i64 %value_phi9.7.6, i64* %137, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.725 = or i64 %25, 57, !dbg !562 %138 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.725, !dbg !564 %value_phi9.726 = load i64, i64 addrspace(13)* %138, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %139 = getelementptr inbounds i64, i64* %13, i64 %iv.next.7.6, !dbg !565 store i64 %value_phi9.726, i64* %139, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.1.7 = or i64 %25, 58, !dbg !562 %140 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.1.7, !dbg !564 %value_phi9.1.7 = load i64, i64 addrspace(13)* %140, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %141 = getelementptr inbounds i64, i64* %13, i64 %iv.next.725, !dbg !565 store i64 %value_phi9.1.7, i64* %141, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.2.7 = or i64 %25, 59, !dbg !562 %142 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.2.7, !dbg !564 %value_phi9.2.7 = load i64, i64 addrspace(13)* %142, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %143 = getelementptr inbounds i64, i64* %13, i64 %iv.next.1.7, !dbg !565 store i64 %value_phi9.2.7, i64* %143, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.3.7 = or i64 %25, 60, !dbg !562 %144 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.3.7, !dbg !564 %value_phi9.3.7 = load i64, i64 addrspace(13)* %144, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %145 = getelementptr inbounds i64, i64* %13, i64 %iv.next.2.7, !dbg !565 store i64 %value_phi9.3.7, i64* %145, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.4.7 = or i64 %25, 61, !dbg !562 %146 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.4.7, !dbg !564 %value_phi9.4.7 = load i64, i64 addrspace(13)* %146, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %147 = getelementptr inbounds i64, i64* %13, i64 %iv.next.3.7, !dbg !565 store i64 %value_phi9.4.7, i64* %147, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.5.7 = or i64 %25, 62, !dbg !562 %148 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.5.7, !dbg !564 %value_phi9.5.7 = load i64, i64 addrspace(13)* %148, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %149 = getelementptr inbounds i64, i64* %13, i64 %iv.next.4.7, !dbg !565 store i64 %value_phi9.5.7, i64* %149, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.6.7 = or i64 %25, 63, !dbg !562 %150 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.6.7, !dbg !564 %value_phi9.6.7 = load i64, i64 addrspace(13)* %150, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %151 = getelementptr inbounds i64, i64* %13, i64 %iv.next.5.7, !dbg !565 store i64 %value_phi9.6.7, i64* %151, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.7.7 = add nuw i64 %25, 64, !dbg !562 %152 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.7.7, !dbg !564 %value_phi9.7.7 = load i64, i64 addrspace(13)* %152, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %153 = getelementptr inbounds i64, i64* %13, i64 %iv.next.6.7, !dbg !565 store i64 %value_phi9.7.7, i64* %153, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %niter.next.7 = add i64 %24, 8, !dbg !557 %niter.ncmp.727 = icmp eq i64 %niter.next.7, %unroll_iter12, !dbg !557 br i1 %niter.ncmp.727, label %L68.loopexit.unr-lcssa.loopexit.unr-lcssa.loopexit, label %L62, !dbg !557 L68.loopexit.unr-lcssa.loopexit.unr-lcssa.loopexit: ; preds = %L62 br label %L68.loopexit.unr-lcssa.loopexit.unr-lcssa, !dbg !557 L68.loopexit.unr-lcssa.loopexit.unr-lcssa: ; preds = %L68.loopexit.unr-lcssa.loopexit.unr-lcssa.loopexit, %L62.preheader.new %iv.next.7.lcssa.ph = phi i64 [ undef, %L62.preheader.new ], [ %iv.next.7.7, %L68.loopexit.unr-lcssa.loopexit.unr-lcssa.loopexit ] %iv.unr10 = phi i64 [ 0, %L62.preheader.new ], [ %iv.next.7.7, %L68.loopexit.unr-lcssa.loopexit.unr-lcssa.loopexit ] %lcmp.mod.not28 = icmp eq i64 %xtraiter4, 0, !dbg !557 br i1 %lcmp.mod.not28, label %L68.loopexit.unr-lcssa, label %L62.epil5.preheader, !dbg !557 L62.epil5.preheader: ; preds = %L68.loopexit.unr-lcssa.loopexit.unr-lcssa br label %L62.epil5, !dbg !557 L62.epil5: ; preds = %L62.epil5.preheader, %L62.epil5 %iv = phi i64 [ 0, %L62.epil5.preheader ], [ %iv.next3, %L62.epil5 ] %154 = shl nuw nsw i64 %iv, 3, !dbg !562 %iv.next3 = add nuw nsw i64 %iv, 1, !dbg !562 %155 = add nuw nsw i64 %iv.unr10, %154, !dbg !562 %iv.next.epil7 = or i64 %155, 1, !dbg !562 %156 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.epil7, !dbg !564 %value_phi9.epil8 = load i64, i64 addrspace(13)* %156, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %157 = getelementptr inbounds i64, i64* %13, i64 %155, !dbg !565 store i64 %value_phi9.epil8, i64* %157, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.1.epil = or i64 %155, 2, !dbg !562 %158 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.1.epil, !dbg !564 %value_phi9.1.epil = load i64, i64 addrspace(13)* %158, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %159 = getelementptr inbounds i64, i64* %13, i64 %iv.next.epil7, !dbg !565 store i64 %value_phi9.1.epil, i64* %159, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.2.epil = or i64 %155, 3, !dbg !562 %160 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.2.epil, !dbg !564 %value_phi9.2.epil = load i64, i64 addrspace(13)* %160, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %161 = getelementptr inbounds i64, i64* %13, i64 %iv.next.1.epil, !dbg !565 store i64 %value_phi9.2.epil, i64* %161, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.3.epil = or i64 %155, 4, !dbg !562 %162 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.3.epil, !dbg !564 %value_phi9.3.epil = load i64, i64 addrspace(13)* %162, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %163 = getelementptr inbounds i64, i64* %13, i64 %iv.next.2.epil, !dbg !565 store i64 %value_phi9.3.epil, i64* %163, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.4.epil = or i64 %155, 5, !dbg !562 %164 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.4.epil, !dbg !564 %value_phi9.4.epil = load i64, i64 addrspace(13)* %164, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %165 = getelementptr inbounds i64, i64* %13, i64 %iv.next.3.epil, !dbg !565 store i64 %value_phi9.4.epil, i64* %165, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.5.epil = or i64 %155, 6, !dbg !562 %166 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.5.epil, !dbg !564 %value_phi9.5.epil = load i64, i64 addrspace(13)* %166, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %167 = getelementptr inbounds i64, i64* %13, i64 %iv.next.4.epil, !dbg !565 store i64 %value_phi9.5.epil, i64* %167, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.6.epil = or i64 %155, 7, !dbg !562 %168 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.6.epil, !dbg !564 %value_phi9.6.epil = load i64, i64 addrspace(13)* %168, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %169 = getelementptr inbounds i64, i64* %13, i64 %iv.next.5.epil, !dbg !565 store i64 %value_phi9.6.epil, i64* %169, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %iv.next.7.epil = add nuw nsw i64 %155, 8, !dbg !562 %170 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.7.epil, !dbg !564 %value_phi9.7.epil = load i64, i64 addrspace(13)* %170, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %171 = getelementptr inbounds i64, i64* %13, i64 %iv.next.6.epil, !dbg !565 store i64 %value_phi9.7.epil, i64* %171, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %epil.iter9.cmp.not = icmp eq i64 %iv.next3, %xtraiter4, !dbg !557 br i1 %epil.iter9.cmp.not, label %L68.loopexit.unr-lcssa.loopexit, label %L62.epil5, !dbg !557, !llvm.loop !570 L68.loopexit.unr-lcssa.loopexit: ; preds = %L62.epil5 br label %L68.loopexit.unr-lcssa, !dbg !557 L68.loopexit.unr-lcssa: ; preds = %L68.loopexit.unr-lcssa.loopexit, %L68.loopexit.unr-lcssa.loopexit.unr-lcssa, %L62.preheader %iv.unr = phi i64 [ 0, %L62.preheader ], [ %iv.next.7.lcssa.ph, %L68.loopexit.unr-lcssa.loopexit.unr-lcssa ], [ %iv.next.7.epil, %L68.loopexit.unr-lcssa.loopexit ] %lcmp.mod.not = icmp eq i64 %xtraiter, 0, !dbg !557 br i1 %lcmp.mod.not, label %L68, label %L62.epil.preheader, !dbg !557 L62.epil.preheader: ; preds = %L68.loopexit.unr-lcssa br label %L62.epil, !dbg !557 L62.epil: ; preds = %L62.epil.preheader, %L62.epil %iv4 = phi i64 [ 0, %L62.epil.preheader ], [ %iv.next5, %L62.epil ] %172 = add nuw nsw i64 %iv.unr, %iv4, !dbg !562 %iv.next5 = add nuw nsw i64 %iv4, 1, !dbg !562 %iv.next.epil = add nuw nsw i64 %172, 1, !dbg !562 %173 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.epil, !dbg !564 %value_phi9.epil = load i64, i64 addrspace(13)* %173, align 8, !dbg !549, !tbaa !107, !alias.scope !550, !noalias !553 %174 = getelementptr inbounds i64, i64* %13, i64 %172, !dbg !565 store i64 %value_phi9.epil, i64* %174, align 8, !dbg !565, !tbaa !107, !noalias !568, !invariant.group !569 %epil.iter.cmp.not = icmp eq i64 %iv.next5, %xtraiter, !dbg !557 br i1 %epil.iter.cmp.not, label %L68.loopexit, label %L62.epil, !dbg !557, !llvm.loop !571 L68.loopexit: ; preds = %L62.epil br label %L68, !dbg !558 L68: ; preds = %L68.loopexit, %idxend, %L68.loopexit.unr-lcssa, %L38.lr.ph %.sroa.0.0 = phi i64 [ undef, %idxend ], [ %value_phi944, %L38.lr.ph ], [ %value_phi944, %L68.loopexit.unr-lcssa ], [ %value_phi944, %L68.loopexit ] %.sroa.2.0 = phi i64* [ undef, %idxend ], [ undef, %L38.lr.ph ], [ %13, %L68.loopexit.unr-lcssa ], [ %13, %L68.loopexit ] %175 = insertvalue { i64, i64*, double, i64 } undef, i64 %.sroa.0.0, 0, !dbg !558 %176 = insertvalue { i64, i64*, double, i64 } %175, i64* %.sroa.2.0, 1, !dbg !558 %177 = insertvalue { i64, i64*, double, i64 } %176, double %arrayref, 2, !dbg !558 %178 = insertvalue { i64, i64*, double, i64 } %177, i64 %arraylen3, 3, !dbg !558 ret { i64, i64*, double, i64 } %178, !dbg !558 oob: ; preds = %top %errorbox = alloca i64, align 8, !dbg !523 store i64 1, i64* %errorbox, align 8, !dbg !523, !noalias !572 %179 = addrspacecast {} addrspace(10)* %getfield to {} addrspace(12)*, !dbg !523 call void @ijl_bounds_error_ints({} addrspace(12)* noundef %179, i64* noundef nonnull align 8 %errorbox, i64 noundef 1) #18, !dbg !523 unreachable, !dbg !523 idxend: ; preds = %top %180 = addrspacecast {} addrspace(10)* %getfield to double addrspace(13)* addrspace(11)*, !dbg !523 %arrayptr31 = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %180, align 16, !dbg !523, !tbaa !103, !alias.scope !573, !noalias !528, !nonnull !16 %arrayref = load double, double addrspace(13)* %arrayptr31, align 8, !dbg !523, !tbaa !107, !alias.scope !576, !noalias !579 %181 = addrspacecast {} addrspace(10)* %0 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !581 %arraylen_ptr2 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %181, i64 0, i32 1, !dbg !581 %arraylen3 = load i64, i64 addrspace(11)* %arraylen_ptr2, align 8, !dbg !581, !tbaa !72, !range !75, !alias.scope !582, !noalias !583 %.not = icmp eq i64 %arraylen3, 0, !dbg !584 br i1 %.not, label %L68, label %L19, !dbg !537 } Type analysis state: <analysis> %47 = getelementptr inbounds i64, i64* %13, i64 %iv.next.1.1, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.3.1 = or i64 %25, 12, !dbg !125: {[-1]:Integer}, intvals: {} %48 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.3.1, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.3.1 = load i64, i64 addrspace(13)* %48, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %iv.next.7.lcssa.ph = phi i64 [ undef, %L62.preheader.new ], [ %iv.next.7.7, %L68.loopexit.unr-lcssa.loopexit.unr-lcssa.loopexit ]: {[-1]:Integer}, intvals: {} %iv.next = or i64 %25, 1, !dbg !125: {[-1]:Integer}, intvals: {} %26 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9 = load i64, i64 addrspace(13)* %26, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %value_phi9.1 = load i64, i64 addrspace(13)* %28, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %value_phi9.2 = load i64, i64 addrspace(13)* %30, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %115 = getelementptr inbounds i64, i64* %13, i64 %iv.next.3.5, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.5.5 = or i64 %25, 46, !dbg !125: {[-1]:Integer}, intvals: {} %116 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.5.5, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.5.5 = load i64, i64 addrspace(13)* %116, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %117 = getelementptr inbounds i64, i64* %13, i64 %iv.next.4.5, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.6.5 = or i64 %25, 47, !dbg !125: {[-1]:Integer}, intvals: {} %value_phi9.6.5 = load i64, i64 addrspace(13)* %118, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %iv.next.1.1 = or i64 %25, 10, !dbg !125: {[-1]:Integer}, intvals: {} %44 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.1.1, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.1.1 = load i64, i64 addrspace(13)* %44, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %45 = getelementptr inbounds i64, i64* %13, i64 %iv.next.113, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.2.1 = or i64 %25, 11, !dbg !125: {[-1]:Integer}, intvals: {} %46 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.2.1, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.2.1 = load i64, i64 addrspace(13)* %46, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %33 = getelementptr inbounds i64, i64* %13, i64 %iv.next.2, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.4 = or i64 %25, 5, !dbg !125: {[-1]:Integer}, intvals: {} %34 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.4, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.4 = load i64, i64 addrspace(13)* %34, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %35 = getelementptr inbounds i64, i64* %13, i64 %iv.next.3, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.5 = or i64 %25, 6, !dbg !125: {[-1]:Integer}, intvals: {} %36 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.5, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.5 = load i64, i64 addrspace(13)* %36, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %37 = getelementptr inbounds i64, i64* %13, i64 %iv.next.4, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.6 = or i64 %25, 7, !dbg !125: {[-1]:Integer}, intvals: {} %38 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.6, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.6 = load i64, i64 addrspace(13)* %38, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %39 = getelementptr inbounds i64, i64* %13, i64 %iv.next.5, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.7 = or i64 %25, 8, !dbg !125: {[-1]:Integer}, intvals: {} i64 20: {[-1]:Integer}, intvals: {20,} i64 21: {[-1]:Integer}, intvals: {21,} %iv.next.5.epil = or i64 %155, 6, !dbg !125: {[-1]:Integer}, intvals: {} %166 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.5.epil, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.5.epil = load i64, i64 addrspace(13)* %166, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %167 = getelementptr inbounds i64, i64* %13, i64 %iv.next.4.epil, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.6.epil = or i64 %155, 7, !dbg !125: {[-1]:Integer}, intvals: {} %168 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.6.epil, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.6.epil = load i64, i64 addrspace(13)* %168, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} i64* undef: {[-1]:Anything}, intvals: {} i64 -9: {[-1]:Integer}, intvals: {-9,} %79 = getelementptr inbounds i64, i64* %13, i64 %iv.next.1.3, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.3.3 = or i64 %25, 28, !dbg !125: {[-1]:Integer}, intvals: {} %80 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.3.3, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.3.3 = load i64, i64 addrspace(13)* %80, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %81 = getelementptr inbounds i64, i64* %13, i64 %iv.next.2.3, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.4.3 = or i64 %25, 29, !dbg !125: {[-1]:Integer}, intvals: {} %82 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.4.3, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %iv.next.1.3 = or i64 %25, 26, !dbg !125: {[-1]:Integer}, intvals: {} %76 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.1.3, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.1.3 = load i64, i64 addrspace(13)* %76, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %77 = getelementptr inbounds i64, i64* %13, i64 %iv.next.317, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.2.3 = or i64 %25, 27, !dbg !125: {[-1]:Integer}, intvals: {} %78 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.2.3, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.2.3 = load i64, i64 addrspace(13)* %78, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} i64 15: {[-1]:Integer}, intvals: {15,} %40 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.7, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.7 = load i64, i64 addrspace(13)* %40, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %41 = getelementptr inbounds i64, i64* %13, i64 %iv.next.6, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.113 = or i64 %25, 9, !dbg !125: {[-1]:Integer}, intvals: {} %42 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.113, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.114 = load i64, i64 addrspace(13)* %42, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %43 = getelementptr inbounds i64, i64* %13, i64 %iv.next.7, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %150 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.6.7, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.6.7 = load i64, i64 addrspace(13)* %150, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %151 = getelementptr inbounds i64, i64* %13, i64 %iv.next.5.7, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.7.7 = add nuw i64 %25, 64, !dbg !125: {[-1]:Integer}, intvals: {64,} %152 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.7.7, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.7.7 = load i64, i64 addrspace(13)* %152, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %153 = getelementptr inbounds i64, i64* %13, i64 %iv.next.6.7, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} i64 32: {[-1]:Integer}, intvals: {32,} i64 28: {[-1]:Integer}, intvals: {28,} i64 29: {[-1]:Integer}, intvals: {29,} %3 = bitcast {}*** %ptls_field28 to i64***: {[-1]:Pointer}, intvals: {} %ptls_load2930 = load i64**, i64*** %3, align 8, !tbaa !17, !alias.scope !21, !noalias !24: {}, intvals: {} %iv.next.3.6 = or i64 %25, 52, !dbg !125: {[-1]:Integer}, intvals: {} %128 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.3.6, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.3.6 = load i64, i64 addrspace(13)* %128, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %129 = getelementptr inbounds i64, i64* %13, i64 %iv.next.2.6, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.4.6 = or i64 %25, 53, !dbg !125: {[-1]:Integer}, intvals: {} %130 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.4.6, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.4.6 = load i64, i64 addrspace(13)* %130, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} i64 55: {[-1]:Integer}, intvals: {55,} %iv.next.3.4 = or i64 %25, 36, !dbg !125: {[-1]:Integer}, intvals: {} %96 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.3.4, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.3.4 = load i64, i64 addrspace(13)* %96, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %97 = getelementptr inbounds i64, i64* %13, i64 %iv.next.2.4, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.4.4 = or i64 %25, 37, !dbg !125: {[-1]:Integer}, intvals: {} %98 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.4.4, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.4.4 = load i64, i64 addrspace(13)* %98, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} i64 50: {[-1]:Integer}, intvals: {50,} i64 51: {[-1]:Integer}, intvals: {51,} i64 54: {[-1]:Integer}, intvals: {54,} i64 undef: {[-1]:Anything}, intvals: {} %52 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.5.1, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.5.1 = load i64, i64 addrspace(13)* %52, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %53 = getelementptr inbounds i64, i64* %13, i64 %iv.next.4.1, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.6.1 = or i64 %25, 15, !dbg !125: {[-1]:Integer}, intvals: {} %54 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.6.1, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.6.1 = load i64, i64 addrspace(13)* %54, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %55 = getelementptr inbounds i64, i64* %13, i64 %iv.next.5.1, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.725 = or i64 %25, 57, !dbg !125: {[-1]:Integer}, intvals: {} %138 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.725, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.726 = load i64, i64 addrspace(13)* %138, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %139 = getelementptr inbounds i64, i64* %13, i64 %iv.next.7.6, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.1.7 = or i64 %25, 58, !dbg !125: {[-1]:Integer}, intvals: {} i64 52: {[-1]:Integer}, intvals: {52,} %109 = getelementptr inbounds i64, i64* %13, i64 %iv.next.521, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.2.5 = or i64 %25, 43, !dbg !125: {[-1]:Integer}, intvals: {} %110 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.2.5, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.2.5 = load i64, i64 addrspace(13)* %110, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %111 = getelementptr inbounds i64, i64* %13, i64 %iv.next.1.5, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.3.5 = or i64 %25, 44, !dbg !125: {[-1]:Integer}, intvals: {} i64 17: {[-1]:Integer}, intvals: {17,} %value_phi9.1.4 = load i64, i64 addrspace(13)* %92, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %93 = getelementptr inbounds i64, i64* %13, i64 %iv.next.419, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.2.4 = or i64 %25, 35, !dbg !125: {[-1]:Integer}, intvals: {} %94 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.2.4, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.2.4 = load i64, i64 addrspace(13)* %94, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %95 = getelementptr inbounds i64, i64* %13, i64 %iv.next.1.4, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} double 0.000000e+00: {[-1]:Anything}, intvals: {} double 1.000000e+00: {[-1]:Float@double}, intvals: {} i64 33: {[-1]:Integer}, intvals: {33,} %131 = getelementptr inbounds i64, i64* %13, i64 %iv.next.3.6, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.5.6 = or i64 %25, 54, !dbg !125: {[-1]:Integer}, intvals: {} %132 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.5.6, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.5.6 = load i64, i64 addrspace(13)* %132, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %133 = getelementptr inbounds i64, i64* %13, i64 %iv.next.4.6, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.6.6 = or i64 %25, 55, !dbg !125: {[-1]:Integer}, intvals: {} i64 25: {[-1]:Integer}, intvals: {25,} %5 = addrspacecast {} addrspace(10)* %getfield to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !59: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Float@double, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}, intvals: {} %getfield = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %getfield_addr unordered, align 8, !dbg !34, !tbaa !26, !alias.scope !46, !noalias !51, !nonnull !16, !dereferenceable !57, !align !58: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Float@double, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}, intvals: {} %safepoint = load i64*, i64** %4, align 8, !tbaa !26, !alias.scope !28, !noalias !31: {}, intvals: {} %value_phi9.7.2 = load i64, i64 addrspace(13)* %72, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %73 = getelementptr inbounds i64, i64* %13, i64 %iv.next.6.2, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.317 = or i64 %25, 25, !dbg !125: {[-1]:Integer}, intvals: {} %74 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.317, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.318 = load i64, i64 addrspace(13)* %74, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %75 = getelementptr inbounds i64, i64* %13, i64 %iv.next.7.2, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} i64 9: {[-1]:Integer}, intvals: {9,} %iv1 = phi i64 [ %iv.next2, %L62 ], [ 0, %L62.preheader.new.new ]: {[-1]:Integer}, intvals: {0,} %iv = phi i64 [ 0, %L62.epil5.preheader ], [ %iv.next3, %L62.epil5 ]: {[-1]:Integer}, intvals: {0,} %iv.next.3.7 = or i64 %25, 60, !dbg !125: {[-1]:Integer}, intvals: {} %144 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.3.7, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.3.7 = load i64, i64 addrspace(13)* %144, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %145 = getelementptr inbounds i64, i64* %13, i64 %iv.next.2.7, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.4.7 = or i64 %25, 61, !dbg !125: {[-1]:Integer}, intvals: {} %146 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.4.7, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.4.7 = load i64, i64 addrspace(13)* %146, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} i64 47: {[-1]:Integer}, intvals: {47,} i64 0: {[-1]:Anything}, intvals: {0,} i64 57: {[-1]:Integer}, intvals: {57,} i64 4: {[-1]:Integer}, intvals: {4,} i64 13: {[-1]:Integer}, intvals: {13,} i64 14: {[-1]:Integer}, intvals: {14,} i64 48: {[-1]:Integer}, intvals: {48,} i64 56: {[-1]:Integer}, intvals: {56,} {} addrspace(10)* %0: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Integer, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}, intvals: {} { {} addrspace(10)* } addrspace(11)* %1: {[-1]:Pointer, [-1,-1]:Pointer, [-1,-1,0]:Pointer, [-1,-1,0,-1]:Float@double, [-1,-1,8]:Integer, [-1,-1,9]:Integer, [-1,-1,10]:Integer, [-1,-1,11]:Integer, [-1,-1,12]:Integer, [-1,-1,13]:Integer, [-1,-1,14]:Integer, [-1,-1,15]:Integer, [-1,-1,16]:Integer, [-1,-1,17]:Integer, [-1,-1,18]:Integer, [-1,-1,19]:Integer, [-1,-1,20]:Integer, [-1,-1,21]:Integer, [-1,-1,22]:Integer, [-1,-1,23]:Integer, [-1,-1,24]:Integer, [-1,-1,25]:Integer, [-1,-1,26]:Integer, [-1,-1,27]:Integer, [-1,-1,28]:Integer, [-1,-1,29]:Integer, [-1,-1,30]:Integer, [-1,-1,31]:Integer, [-1,-1,32]:Integer, [-1,-1,33]:Integer, [-1,-1,34]:Integer, [-1,-1,35]:Integer, [-1,-1,36]:Integer, [-1,-1,37]:Integer, [-1,-1,38]:Integer, [-1,-1,39]:Integer}, intvals: {} %arraylen3 = load i64, i64 addrspace(11)* %arraylen_ptr2, align 8, !dbg !152, !tbaa !65, !range !68, !alias.scope !154, !noalias !155: {[-1]:Integer}, intvals: {} %99 = getelementptr inbounds i64, i64* %13, i64 %iv.next.3.4, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.5.4 = or i64 %25, 38, !dbg !125: {[-1]:Integer}, intvals: {} %100 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.5.4, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.5.4 = load i64, i64 addrspace(13)* %100, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %101 = getelementptr inbounds i64, i64* %13, i64 %iv.next.4.4, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.6.4 = or i64 %25, 39, !dbg !125: {[-1]:Integer}, intvals: {} %102 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.6.4, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} i64 2: {[-1]:Integer}, intvals: {2,} i64 11: {[-1]:Integer}, intvals: {11,} i64 26: {[-1]:Integer}, intvals: {26,} i64 27: {[-1]:Integer}, intvals: {27,} %value_phi9.4.3 = load i64, i64 addrspace(13)* %82, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %83 = getelementptr inbounds i64, i64* %13, i64 %iv.next.3.3, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.5.3 = or i64 %25, 30, !dbg !125: {[-1]:Integer}, intvals: {} %84 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.5.3, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.5.3 = load i64, i64 addrspace(13)* %84, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %85 = getelementptr inbounds i64, i64* %13, i64 %iv.next.4.3, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %59 = getelementptr inbounds i64, i64* %13, i64 %iv.next.7.1, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.1.2 = or i64 %25, 18, !dbg !125: {[-1]:Integer}, intvals: {} %60 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.1.2, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.1.2 = load i64, i64 addrspace(13)* %60, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %61 = getelementptr inbounds i64, i64* %13, i64 %iv.next.215, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.2.2 = or i64 %25, 19, !dbg !125: {[-1]:Integer}, intvals: {} %62 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.2.2, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %180 = addrspacecast {} addrspace(10)* %getfield to double addrspace(13)* addrspace(11)*, !dbg !59: {[-1]:Pointer, [-1,0]:Pointer}, intvals: {} %arrayptr31 = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %180, align 16, !dbg !59, !tbaa !142, !alias.scope !144, !noalias !72, !nonnull !16: {[-1]:Pointer}, intvals: {} %arrayref = load double, double addrspace(13)* %arrayptr31, align 8, !dbg !59, !tbaa !104, !alias.scope !147, !noalias !150: {[-1]:Float@double}, intvals: {} %arraylen_ptr2 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %181, i64 0, i32 1, !dbg !152: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %17 = add nsw i64 %arraylen3, -9, !dbg !116: {[-1]:Integer}, intvals: {} %18 = lshr i64 %17, 3, !dbg !116: {[-1]:Integer}, intvals: {} %19 = add nuw nsw i64 %18, 1, !dbg !116: {[-1]:Integer}, intvals: {} %xtraiter4 = and i64 %19, 7, !dbg !116: {[-1]:Integer}, intvals: {} %20 = icmp ult i64 %17, 56, !dbg !116: {[-1]:Integer}, intvals: {} %unroll_iter12 = and i64 %19, 4611686018427387896, !dbg !116: {[-1]:Integer}, intvals: {} %69 = getelementptr inbounds i64, i64* %13, i64 %iv.next.4.2, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.6.2 = or i64 %25, 23, !dbg !125: {[-1]:Integer}, intvals: {} %70 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.6.2, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.6.2 = load i64, i64 addrspace(13)* %70, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %71 = getelementptr inbounds i64, i64* %13, i64 %iv.next.5.2, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.7.2 = or i64 %25, 24, !dbg !125: {[-1]:Integer}, intvals: {} %72 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.7.2, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %arraylen_ptr = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %5, i64 0, i32 1, !dbg !59: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %inbounds.not = icmp eq i64 %arraylen, 0, !dbg !59: {[-1]:Integer}, intvals: {} %6 = fcmp ult double %arrayref, 0.000000e+00, !dbg !74: {[-1]:Integer}, intvals: {} %7 = fcmp ugt double %arrayref, 1.000000e+00, !dbg !77: {[-1]:Integer}, intvals: {} %8 = or i1 %6, %7, !dbg !77: {[-1]:Integer}, intvals: {} %iv.next2 = add nuw nsw i64 %iv1, 1, !dbg !125: {[-1]:Integer}, intvals: {1,} %9 = addrspacecast {} addrspace(10)* %0 to i64 addrspace(13)* addrspace(11)*, !dbg !88: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Integer, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}, intvals: {} %arrayptr532 = load i64 addrspace(13)*, i64 addrspace(13)* addrspace(11)* %9, align 16, !dbg !88, !alias.scope !94, !noalias !101, !nonnull !16: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} { i64, i64*, double, i64 } undef: {[-1]:Anything}, intvals: {} %89 = getelementptr inbounds i64, i64* %13, i64 %iv.next.6.3, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.419 = or i64 %25, 33, !dbg !125: {[-1]:Integer}, intvals: {} %90 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.419, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.420 = load i64, i64 addrspace(13)* %90, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %91 = getelementptr inbounds i64, i64* %13, i64 %iv.next.7.3, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.1.4 = or i64 %25, 34, !dbg !125: {[-1]:Integer}, intvals: {} %92 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.1.4, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} i64 30: {[-1]:Integer}, intvals: {30,} i64 31: {[-1]:Integer}, intvals: {31,} i64 61: {[-1]:Integer}, intvals: {61,} i64 62: {[-1]:Integer}, intvals: {62,} %.sroa.0.0 = phi i64 [ undef, %idxend ], [ %value_phi944, %L38.lr.ph ], [ %value_phi944, %L68.loopexit.unr-lcssa ], [ %value_phi944, %L68.loopexit ]: {[-1]:Integer}, intvals: {} %.sroa.2.0 = phi i64* [ undef, %idxend ], [ undef, %L38.lr.ph ], [ %13, %L68.loopexit.unr-lcssa ], [ %13, %L68.loopexit ]: {[-1]:Pointer}, intvals: {} i64 40: {[-1]:Integer}, intvals: {40,} i64 34: {[-1]:Integer}, intvals: {34,} i64 35: {[-1]:Integer}, intvals: {35,} i64 4611686018427387896: {[-1]:Anything}, intvals: {4611686018427387896,} i64 53: {[-1]:Integer}, intvals: {53,} i64 36: {[-1]:Integer}, intvals: {36,} i64 37: {[-1]:Integer}, intvals: {37,} %iv.unr10 = phi i64 [ 0, %L62.preheader.new ], [ %iv.next.7.7, %L68.loopexit.unr-lcssa.loopexit.unr-lcssa.loopexit ]: {[-1]:Integer}, intvals: {0,} %lcmp.mod.not28 = icmp eq i64 %xtraiter4, 0, !dbg !116: {[-1]:Integer}, intvals: {} %140 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.1.7, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.1.7 = load i64, i64 addrspace(13)* %140, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %141 = getelementptr inbounds i64, i64* %13, i64 %iv.next.725, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.2.7 = or i64 %25, 59, !dbg !125: {[-1]:Integer}, intvals: {} %142 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.2.7, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.2.7 = load i64, i64 addrspace(13)* %142, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %143 = getelementptr inbounds i64, i64* %13, i64 %iv.next.1.7, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} i64 22: {[-1]:Integer}, intvals: {22,} i64 23: {[-1]:Integer}, intvals: {23,} i64 16: {[-1]:Integer}, intvals: {16,} %value_phi9.6.4 = load i64, i64 addrspace(13)* %102, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %103 = getelementptr inbounds i64, i64* %13, i64 %iv.next.5.4, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.7.4 = or i64 %25, 40, !dbg !125: {[-1]:Integer}, intvals: {} %104 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.7.4, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.7.4 = load i64, i64 addrspace(13)* %104, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %105 = getelementptr inbounds i64, i64* %13, i64 %iv.next.6.4, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %25 = shl nuw i64 %iv1, 6, !dbg !125: {[-1]:Integer}, intvals: {0,} %24 = shl i64 %iv1, 3, !dbg !125: {[-1]:Integer}, intvals: {0,} %iv.next3 = add nuw nsw i64 %iv, 1, !dbg !125: {[-1]:Integer}, intvals: {1,} %112 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.3.5, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.3.5 = load i64, i64 addrspace(13)* %112, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %113 = getelementptr inbounds i64, i64* %13, i64 %iv.next.2.5, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.4.5 = or i64 %25, 45, !dbg !125: {[-1]:Integer}, intvals: {} %114 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.4.5, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.4.5 = load i64, i64 addrspace(13)* %114, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %169 = getelementptr inbounds i64, i64* %13, i64 %iv.next.5.epil, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.7.epil = add nuw nsw i64 %155, 8, !dbg !125: {[-1]:Integer}, intvals: {8,} %170 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.7.epil, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.7.epil = load i64, i64 addrspace(13)* %170, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %171 = getelementptr inbounds i64, i64* %13, i64 %iv.next.6.epil, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %niter.next.7 = add i64 %24, 8, !dbg !116: {[-1]:Integer}, intvals: {8,} %niter.ncmp.727 = icmp eq i64 %niter.next.7, %unroll_iter12, !dbg !116: {[-1]:Integer}, intvals: {} %iv4 = phi i64 [ 0, %L62.epil.preheader ], [ %iv.next5, %L62.epil ]: {[-1]:Integer}, intvals: {0,} %iv.next.epil7 = or i64 %155, 1, !dbg !125: {[-1]:Integer}, intvals: {} i64 -2: {[-1]:Integer}, intvals: {-2,} %iv.next5 = add nuw nsw i64 %iv4, 1, !dbg !125: {[-1]:Integer}, intvals: {1,} %epil.iter9.cmp.not = icmp eq i64 %iv.next3, %xtraiter4, !dbg !116: {[-1]:Integer}, intvals: {} %iv.unr = phi i64 [ 0, %L62.preheader ], [ %iv.next.7.lcssa.ph, %L68.loopexit.unr-lcssa.loopexit.unr-lcssa ], [ %iv.next.7.epil, %L68.loopexit.unr-lcssa.loopexit ]: {[-1]:Integer}, intvals: {0,8,} %lcmp.mod.not = icmp eq i64 %xtraiter, 0, !dbg !116: {[-1]:Integer}, intvals: {} i64 10: {[-1]:Integer}, intvals: {10,} %iv.next.6.3 = or i64 %25, 31, !dbg !125: {[-1]:Integer}, intvals: {} %86 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.6.3, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.6.3 = load i64, i64 addrspace(13)* %86, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %87 = getelementptr inbounds i64, i64* %13, i64 %iv.next.5.3, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.7.3 = or i64 %25, 32, !dbg !125: {[-1]:Integer}, intvals: {} %88 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.7.3, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.7.3 = load i64, i64 addrspace(13)* %88, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %156 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.epil7, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.epil8 = load i64, i64 addrspace(13)* %156, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %157 = getelementptr inbounds i64, i64* %13, i64 %155, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.1.epil = or i64 %155, 2, !dbg !125: {[-1]:Integer}, intvals: {} %158 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.1.epil, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.1.epil = load i64, i64 addrspace(13)* %158, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %159 = getelementptr inbounds i64, i64* %13, i64 %iv.next.epil7, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %118 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.6.5, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %119 = getelementptr inbounds i64, i64* %13, i64 %iv.next.5.5, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.7.5 = or i64 %25, 48, !dbg !125: {[-1]:Integer}, intvals: {} %120 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.7.5, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.7.5 = load i64, i64 addrspace(13)* %120, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %121 = getelementptr inbounds i64, i64* %13, i64 %iv.next.6.5, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} i64 7: {[-1]:Integer}, intvals: {7,} %exitcond.not49 = icmp eq i64 %arraylen3, 1, !dbg !112: {[-1]:Integer}, intvals: {} %4 = getelementptr inbounds i64*, i64** %ptls_load2930, i64 2: {[-1]:Pointer}, intvals: {} %getfield_addr = getelementptr inbounds { {} addrspace(10)* }, { {} addrspace(10)* } addrspace(11)* %1, i64 0, i32 0, !dbg !34: {[-1]:Pointer, [-1,-1]:Pointer, [-1,-1,0]:Pointer, [-1,-1,0,-1]:Float@double, [-1,-1,8]:Integer, [-1,-1,9]:Integer, [-1,-1,10]:Integer, [-1,-1,11]:Integer, [-1,-1,12]:Integer, [-1,-1,13]:Integer, [-1,-1,14]:Integer, [-1,-1,15]:Integer, [-1,-1,16]:Integer, [-1,-1,17]:Integer, [-1,-1,18]:Integer, [-1,-1,19]:Integer, [-1,-1,20]:Integer, [-1,-1,21]:Integer, [-1,-1,22]:Integer, [-1,-1,23]:Integer, [-1,-1,24]:Integer, [-1,-1,25]:Integer, [-1,-1,26]:Integer, [-1,-1,27]:Integer, [-1,-1,28]:Integer, [-1,-1,29]:Integer, [-1,-1,30]:Integer, [-1,-1,31]:Integer, [-1,-1,32]:Integer, [-1,-1,33]:Integer, [-1,-1,34]:Integer, [-1,-1,35]:Integer, [-1,-1,36]:Integer, [-1,-1,37]:Integer, [-1,-1,38]:Integer, [-1,-1,39]:Integer}, intvals: {} %12 = call noalias nonnull i8* @malloc(i64 %11) #15, !dbg !116: {[-1]:Pointer}, intvals: {} %value_phi944 = load i64, i64 addrspace(13)* %arrayptr532, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %value_phi9.2.2 = load i64, i64 addrspace(13)* %62, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %63 = getelementptr inbounds i64, i64* %13, i64 %iv.next.1.2, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.3.2 = or i64 %25, 20, !dbg !125: {[-1]:Integer}, intvals: {} %64 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.3.2, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.3.2 = load i64, i64 addrspace(13)* %64, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %65 = getelementptr inbounds i64, i64* %13, i64 %iv.next.2.2, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %29 = getelementptr inbounds i64, i64* %13, i64 %iv.next, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.2 = or i64 %25, 3, !dbg !125: {[-1]:Integer}, intvals: {} %30 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.2, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %31 = getelementptr inbounds i64, i64* %13, i64 %iv.next.1, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.3 = or i64 %25, 4, !dbg !125: {[-1]:Integer}, intvals: {} %32 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.3, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.3 = load i64, i64 addrspace(13)* %32, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %iv.next.epil = add nuw nsw i64 %172, 1, !dbg !125: {[-1]:Integer}, intvals: {1,9,} %173 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.epil, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.epil = load i64, i64 addrspace(13)* %173, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %174 = getelementptr inbounds i64, i64* %13, i64 %172, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %epil.iter.cmp.not = icmp eq i64 %iv.next5, %xtraiter, !dbg !116: {[-1]:Integer}, intvals: {} %2 = call {}*** @julia.get_pgcstack() #15: {}, intvals: {} %arraylen = load i64, i64 addrspace(11)* %arraylen_ptr, align 8, !dbg !59, !tbaa !65, !range !68, !alias.scope !69, !noalias !72: {[-1]:Integer}, intvals: {} %154 = shl nuw nsw i64 %iv, 3, !dbg !125: {[-1]:Integer}, intvals: {0,} %155 = add nuw nsw i64 %iv.unr10, %154, !dbg !125: {[-1]:Integer}, intvals: {0,} %172 = add nuw nsw i64 %iv.unr, %iv4, !dbg !125: {[-1]:Integer}, intvals: {0,8,} %box = call noalias nonnull dereferenceable(8) "enzyme_type"="{[-1]:Pointer, [-1,-1]:Float@double}" {} addrspace(10)* @julia.gc_alloc_obj({}** nonnull %current_task1, i64 noundef 8, {} addrspace(10)* noundef addrspacecast ({}* inttoptr (i64 132511632845536 to {}*) to {} addrspace(10)*)) #16, !dbg !77: {[-1]:Pointer, [-1,-1]:Float@double}, intvals: {} %175 = insertvalue { i64, i64*, double, i64 } undef, i64 %.sroa.0.0, 0, !dbg !117: {[0]:Integer, [1]:Integer, [2]:Integer, [3]:Integer, [4]:Integer, [5]:Integer, [6]:Integer, [7]:Integer, [8]:Anything, [9]:Anything, [10]:Anything, [11]:Anything, [12]:Anything, [13]:Anything, [14]:Anything, [15]:Anything, [16]:Anything, [17]:Anything, [18]:Anything, [19]:Anything, [20]:Anything, [21]:Anything, [22]:Anything, [23]:Anything, [24]:Anything, [25]:Anything, [26]:Anything, [27]:Anything, [28]:Anything, [29]:Anything, [30]:Anything, [31]:Anything}, intvals: {} %176 = insertvalue { i64, i64*, double, i64 } %175, i64* %.sroa.2.0, 1, !dbg !117: {[0]:Integer, [1]:Integer, [2]:Integer, [3]:Integer, [4]:Integer, [5]:Integer, [6]:Integer, [7]:Integer, [8]:Pointer, [16]:Anything, [17]:Anything, [18]:Anything, [19]:Anything, [20]:Anything, [21]:Anything, [22]:Anything, [23]:Anything, [24]:Anything, [25]:Anything, [26]:Anything, [27]:Anything, [28]:Anything, [29]:Anything, [30]:Anything, [31]:Anything}, intvals: {} %177 = insertvalue { i64, i64*, double, i64 } %176, double %arrayref, 2, !dbg !117: {[0]:Integer, [1]:Integer, [2]:Integer, [3]:Integer, [4]:Integer, [5]:Integer, [6]:Integer, [7]:Integer, [8]:Pointer, [16]:Float@double, [24]:Anything, [25]:Anything, [26]:Anything, [27]:Anything, [28]:Anything, [29]:Anything, [30]:Anything, [31]:Anything}, intvals: {} %178 = insertvalue { i64, i64*, double, i64 } %177, i64 %arraylen3, 3, !dbg !117: {[-1]:Float@double}, intvals: {} %49 = getelementptr inbounds i64, i64* %13, i64 %iv.next.2.1, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.4.1 = or i64 %25, 13, !dbg !125: {[-1]:Integer}, intvals: {} %50 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.4.1, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.4.1 = load i64, i64 addrspace(13)* %50, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %51 = getelementptr inbounds i64, i64* %13, i64 %iv.next.3.1, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.5.1 = or i64 %25, 14, !dbg !125: {[-1]:Integer}, intvals: {} %iv.next.521 = or i64 %25, 41, !dbg !125: {[-1]:Integer}, intvals: {} %106 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.521, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.522 = load i64, i64 addrspace(13)* %106, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %107 = getelementptr inbounds i64, i64* %13, i64 %iv.next.7.4, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.1.5 = or i64 %25, 42, !dbg !125: {[-1]:Integer}, intvals: {} %108 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.1.5, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.1.5 = load i64, i64 addrspace(13)* %108, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} i64 6: {[-1]:Integer}, intvals: {6,} i64 12: {[-1]:Integer}, intvals: {12,} i64 5: {[-1]:Integer}, intvals: {5,} i64 41: {[-1]:Integer}, intvals: {41,} i64 42: {[-1]:Integer}, intvals: {42,} %iv.next.2.epil = or i64 %155, 3, !dbg !125: {[-1]:Integer}, intvals: {} %160 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.2.epil, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.2.epil = load i64, i64 addrspace(13)* %160, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %161 = getelementptr inbounds i64, i64* %13, i64 %iv.next.1.epil, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.3.epil = or i64 %155, 4, !dbg !125: {[-1]:Integer}, intvals: {} %162 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.3.epil, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.3.epil = load i64, i64 addrspace(13)* %162, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %163 = getelementptr inbounds i64, i64* %13, i64 %iv.next.2.epil, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.4.epil = or i64 %155, 5, !dbg !125: {[-1]:Integer}, intvals: {} %164 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.4.epil, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.4.epil = load i64, i64 addrspace(13)* %164, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %165 = getelementptr inbounds i64, i64* %13, i64 %iv.next.3.epil, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} i64 49: {[-1]:Integer}, intvals: {49,} %134 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.6.6, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.6.6 = load i64, i64 addrspace(13)* %134, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %135 = getelementptr inbounds i64, i64* %13, i64 %iv.next.5.6, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.7.6 = or i64 %25, 56, !dbg !125: {[-1]:Integer}, intvals: {} %136 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.7.6, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.7.6 = load i64, i64 addrspace(13)* %136, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %137 = getelementptr inbounds i64, i64* %13, i64 %iv.next.6.6, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %27 = getelementptr inbounds i64, i64* %13, i64 %25, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.1 = or i64 %25, 2, !dbg !125: {[-1]:Integer}, intvals: {} %28 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.1, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} i64 3: {[-1]:Integer}, intvals: {3,} %iv.next.7.1 = or i64 %25, 16, !dbg !125: {[-1]:Integer}, intvals: {} %56 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.7.1, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.7.1 = load i64, i64 addrspace(13)* %56, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %57 = getelementptr inbounds i64, i64* %13, i64 %iv.next.6.1, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.215 = or i64 %25, 17, !dbg !125: {[-1]:Integer}, intvals: {} %58 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.215, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.216 = load i64, i64 addrspace(13)* %58, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} i64 8: {[-1]:Integer}, intvals: {8,} i64 63: {[-1]:Integer}, intvals: {63,} i64 58: {[-1]:Integer}, intvals: {58,} i64 59: {[-1]:Integer}, intvals: {59,} i64 60: {[-1]:Integer}, intvals: {60,} %124 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.1.6, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.1.6 = load i64, i64 addrspace(13)* %124, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %125 = getelementptr inbounds i64, i64* %13, i64 %iv.next.623, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.2.6 = or i64 %25, 51, !dbg !125: {[-1]:Integer}, intvals: {} %126 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.2.6, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.2.6 = load i64, i64 addrspace(13)* %126, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %127 = getelementptr inbounds i64, i64* %13, i64 %iv.next.1.6, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.623 = or i64 %25, 49, !dbg !125: {[-1]:Integer}, intvals: {} %122 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.623, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.624 = load i64, i64 addrspace(13)* %122, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %123 = getelementptr inbounds i64, i64* %13, i64 %iv.next.7.5, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.1.6 = or i64 %25, 50, !dbg !125: {[-1]:Integer}, intvals: {} %iv.next.4.2 = or i64 %25, 21, !dbg !125: {[-1]:Integer}, intvals: {} %66 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.4.2, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.4.2 = load i64, i64 addrspace(13)* %66, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %67 = getelementptr inbounds i64, i64* %13, i64 %iv.next.3.2, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.5.2 = or i64 %25, 22, !dbg !125: {[-1]:Integer}, intvals: {} %68 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.5.2, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.5.2 = load i64, i64 addrspace(13)* %68, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} i64 43: {[-1]:Integer}, intvals: {43,} i64 44: {[-1]:Integer}, intvals: {44,} i64 24: {[-1]:Integer}, intvals: {24,} i64 45: {[-1]:Integer}, intvals: {45,} i64 46: {[-1]:Integer}, intvals: {46,} i64 -8: {[-1]:Integer}, intvals: {-8,} %10 = shl i64 %arraylen3, 3, !dbg !116: {[-1]:Integer}, intvals: {} %11 = add i64 %10, -8, !dbg !116: {[-1]:Integer}, intvals: {} %13 = bitcast i8* %12 to i64*, !dbg !116: {[-1]:Pointer}, intvals: {} %14 = add nuw i64 %arraylen3, 7, !dbg !116: {[-1]:Integer}, intvals: {} %15 = add nsw i64 %arraylen3, -2, !dbg !116: {[-1]:Integer}, intvals: {} %xtraiter = and i64 %14, 7, !dbg !116: {[-1]:Integer}, intvals: {} %16 = icmp ult i64 %15, 7, !dbg !116: {[-1]:Integer}, intvals: {} %22 = call nonnull "enzyme_type"="{[-1]:Pointer}" {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32, {} addrspace(10)*)*, {} addrspace(10)*, {} addrspace(10)*, ...) @julia.call2({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32, {} addrspace(10)*)* noundef nonnull @ijl_invoke, {} addrspace(10)* noundef addrspacecast ({}* inttoptr (i64 132511603774560 to {}*) to {} addrspace(10)*), {} addrspace(10)* noundef addrspacecast ({}* inttoptr (i64 132511562750992 to {}*) to {} addrspace(10)*), {} addrspace(10)* nofree nonnull %box, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 132509245371280 to {}*) to {} addrspace(10)*)) #17, !dbg !77: {[-1]:Pointer}, intvals: {} %147 = getelementptr inbounds i64, i64* %13, i64 %iv.next.3.7, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.5.7 = or i64 %25, 62, !dbg !125: {[-1]:Integer}, intvals: {} %148 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr532, i64 %iv.next.5.7, !dbg !128: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi9.5.7 = load i64, i64 addrspace(13)* %148, align 8, !dbg !103, !tbaa !104, !alias.scope !107, !noalias !110: {[-1]:Integer}, intvals: {} %149 = getelementptr inbounds i64, i64* %13, i64 %iv.next.4.7, !dbg !129: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %iv.next.6.7 = or i64 %25, 63, !dbg !125: {[-1]:Integer}, intvals: {} %ptls_field28 = getelementptr inbounds {}**, {}*** %2, i64 2: {}, intvals: {} i64 64: {[-1]:Integer}, intvals: {64,} i64 1: {[-1]:Integer}, intvals: {1,} i64 18: {[-1]:Integer}, intvals: {18,} i64 19: {[-1]:Integer}, intvals: {19,} i64 38: {[-1]:Integer}, intvals: {38,} i64 39: {[-1]:Integer}, intvals: {39,} </analysis> Illegal updateAnalysis prev:{[0]:Integer, [1]:Integer, [2]:Integer, [3]:Integer, [4]:Integer, [5]:Integer, [6]:Integer, [7]:Integer, [8]:Pointer, [16]:Float@double, [24]:Anything, [25]:Anything, [26]:Anything, [27]:Anything, [28]:Anything, [29]:Anything, [30]:Anything, [31]:Anything} new: {[0]:Float@double, [1]:Float@double, [2]:Float@double, [3]:Float@double, [4]:Float@double, [5]:Float@double, [6]:Float@double, [7]:Float@double, [8]:Float@double, [9]:Float@double, [10]:Float@double, [11]:Float@double, [12]:Float@double, [13]:Float@double, [14]:Float@double, [15]:Float@double, [16]:Float@double, [17]:Float@double, [18]:Float@double, [19]:Float@double, [20]:Float@double, [21]:Float@double, [22]:Float@double, [23]:Float@double} val: %177 = insertvalue { i64, i64*, double, i64 } %176, double %arrayref, 2, !dbg !117 origin= %178 = insertvalue { i64, i64*, double, i64 } %177, i64 %arraylen3, 3, !dbg !117 MethodInstance for logp(::Vector{Int64}, ::BiasedCoin, ::ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(ρ = 1,)}}}) Caused by: Stacktrace: [1] logp @ ./REPL[10]:6 Stacktrace: [1] julia_error(cstr::Cstring, val::Ptr{…}, errtype::Enzyme.API.ErrorType, data::Ptr{…}, data2::Ptr{…}, B::Ptr{…}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/F71IJ/src/compiler.jl:1711 [2] EnzymeCreateForwardDiff(logic::Enzyme.Logic, todiff::LLVM.Function, retType::Enzyme.API.CDIFFE_TYPE, constant_args::Vector{…}, TA::Enzyme.TypeAnalysis, returnValue::Bool, mode::Enzyme.API.CDerivativeMode, width::Int64, additionalArg::Ptr{…}, typeInfo::Enzyme.FnTypeInfo, uncacheable_args::Vector{…}) @ Enzyme.API ~/.julia/packages/Enzyme/F71IJ/src/api.jl:168 [3] enzyme!(job::GPUCompiler.CompilerJob{…}, mod::LLVM.Module, primalf::LLVM.Function, TT::Type, mode::Enzyme.API.CDerivativeMode, width::Int64, parallel::Bool, actualRetType::Type, wrap::Bool, modifiedBetween::NTuple{…}, returnPrimal::Bool, expectedTapeType::Type, loweredArgs::Set{…}, boxedArgs::Set{…}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/F71IJ/src/compiler.jl:3304 [4] codegen(output::Symbol, job::GPUCompiler.CompilerJob{…}; libraries::Bool, deferred_codegen::Bool, optimize::Bool, toplevel::Bool, strip::Bool, validate::Bool, only_entry::Bool, parent_job::Nothing) @ Enzyme.Compiler ~/.julia/packages/Enzyme/F71IJ/src/compiler.jl:5250 [5] codegen @ ~/.julia/packages/Enzyme/F71IJ/src/compiler.jl:4592 [inlined] [6] _thunk(job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget, Enzyme.Compiler.EnzymeCompilerParams}, postopt::Bool) @ Enzyme.Compiler ~/.julia/packages/Enzyme/F71IJ/src/compiler.jl:5968 [7] _thunk @ ~/.julia/packages/Enzyme/F71IJ/src/compiler.jl:5968 [inlined] [8] cached_compilation @ ~/.julia/packages/Enzyme/F71IJ/src/compiler.jl:6006 [inlined] [9] (::Enzyme.Compiler.var"#1220#1221"{…})(ctx::LLVM.Context) @ Enzyme.Compiler ~/.julia/packages/Enzyme/F71IJ/src/compiler.jl:6073 [10] JuliaContext(f::Enzyme.Compiler.var"#1220#1221"{…}; kwargs::@Kwargs{}) @ GPUCompiler ~/.julia/packages/GPUCompiler/nWT2N/src/driver.jl:52 [11] JuliaContext(f::Function) @ GPUCompiler ~/.julia/packages/GPUCompiler/nWT2N/src/driver.jl:42 [12] #s1957#1219 @ ~/.julia/packages/Enzyme/F71IJ/src/compiler.jl:6024 [inlined] [13] @ Enzyme.Compiler ./none:0 [14] (::Core.GeneratedFunctionStub)(::UInt64, ::LineNumberNode, ::Any, ::Vararg{Any}) @ Core ./boot.jl:602 [15] autodiff @ ~/.julia/packages/Enzyme/F71IJ/src/Enzyme.jl:397 [inlined] [16] autodiff @ ~/.julia/packages/Enzyme/F71IJ/src/Enzyme.jl:315 [inlined] [17] autodiff @ ~/.julia/packages/Enzyme/F71IJ/src/Enzyme.jl:300 [inlined] [18] _hess(h::HessLogP{Const{BiasedCoin}}) @ Main ./REPL[22]:2 [19] (::HessLogP{Const{BiasedCoin}})(ddx::Matrix{Float64}, x::ComponentVector{Float64, Vector{Float64}, Tuple{Axis{…}}}) @ Main ./REPL[32]:4 [20] top-level scope @ REPL[37]:1 Some type information was truncated. Use `show(err)` to see complete types.
julia> m = HabituatingBiasedCoin(); julia> p = parameters(m); julia> h! = HessLogP(rand(0:1, 10), m); julia> H = zeros(length(p), length(p)); julia> h!(H, p) ERROR: Enzyme compilation failed due to illegal type analysis. Current scope: ; Function Attrs: mustprogress willreturn define private fastcc "enzyme_type"="{[-1]:Float@double}" { double*, i64*, double*, double, double, i64 } @preprocess_augmented_julia_logp_5535({} addrspace(10)* nocapture nonnull readonly align 16 dereferenceable(40) "enzyme_inactive" "enzyme_type"="{[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Integer, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}" "enzymejl_parmtype"="132511560660096" "enzymejl_parmtype_ref"="2" %0, [1 x {} addrspace(10)*] addrspace(11)* nocapture nofree noundef nonnull readonly align 8 dereferenceable(8) "enzyme_type"="{[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Float@double}" "enzymejl_parmtype"="132509954024144" "enzymejl_parmtype_ref"="1" %1, { {} addrspace(10)* } addrspace(11)* nocapture nofree noundef nonnull readonly align 8 dereferenceable(8) "enzyme_type"="{[-1]:Pointer, [-1,0]:Pointer, [-1,0,0]:Pointer, [-1,0,0,-1]:Float@double, [-1,0,8]:Integer, [-1,0,9]:Integer, [-1,0,10]:Integer, [-1,0,11]:Integer, [-1,0,12]:Integer, [-1,0,13]:Integer, [-1,0,14]:Integer, [-1,0,15]: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,0,24]:Integer, [-1,0,25]:Integer, [-1,0,26]:Integer, [-1,0,27]:Integer, [-1,0,28]:Integer, [-1,0,29]:Integer, [-1,0,30]:Integer, [-1,0,31]:Integer, [-1,0,32]:Integer, [-1,0,33]:Integer, [-1,0,34]:Integer, [-1,0,35]:Integer, [-1,0,36]:Integer, [-1,0,37]:Integer, [-1,0,38]:Integer, [-1,0,39]:Integer}" "enzymejl_parmtype"="132509965944528" "enzymejl_parmtype_ref"="1" %2) unnamed_addr #4 !dbg !734 { top: %3 = call {}*** @julia.get_pgcstack() #16 %ptls_field48 = getelementptr inbounds {}**, {}*** %3, i64 2 %4 = bitcast {}*** %ptls_field48 to i64*** %ptls_load4950 = load i64**, i64*** %4, align 8, !tbaa !49, !alias.scope !735, !noalias !738 %5 = getelementptr inbounds i64*, i64** %ptls_load4950, i64 2 %safepoint = load i64*, i64** %5, align 8, !tbaa !58, !alias.scope !740, !noalias !743 fence syncscope("singlethread") seq_cst call void @julia.safepoint(i64* %safepoint) #16, !dbg !745 fence syncscope("singlethread") seq_cst %getfield_addr = getelementptr inbounds { {} addrspace(10)* }, { {} addrspace(10)* } addrspace(11)* %2, i64 0, i32 0, !dbg !746 %getfield = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %getfield_addr unordered, align 8, !dbg !746, !tbaa !58, !alias.scope !752, !noalias !755, !nonnull !17, !dereferenceable !159, !align !160 %6 = addrspacecast {} addrspace(10)* %getfield to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !757 %arraylen_ptr = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %6, i64 0, i32 1, !dbg !757 %arraylen = load i64, i64 addrspace(11)* %arraylen_ptr, align 8, !dbg !757, !tbaa !82, !range !85, !alias.scope !759, !noalias !762 %inbounds.not = icmp eq i64 %arraylen, 0, !dbg !757 br i1 %inbounds.not, label %oob, label %idxend, !dbg !757 L23: ; preds = %idxend11 %7 = fneg double %arrayref, !dbg !764 %8 = call double @julia_exp_5556(double %7) #17, !dbg !765 %9 = fadd double %8, 1.000000e+00, !dbg !767 %10 = fdiv double 1.000000e+00, %9, !dbg !769 %11 = fcmp ult double %10, 0.000000e+00, !dbg !771 %12 = fcmp ugt double %10, 1.000000e+00, !dbg !772 %13 = or i1 %11, %12, !dbg !772 br i1 %13, label %L42, label %L48.lr.ph, !dbg !772 L48.lr.ph: ; preds = %L23 %14 = shl nuw i64 %arraylen16, 3, !dbg !772 %15 = call noalias nonnull i8* @malloc(i64 %14) #16, !dbg !772 %16 = bitcast i8* %15 to double*, !dbg !772 %17 = call noalias nonnull i8* @malloc(i64 %14) #16, !dbg !772 %18 = bitcast i8* %17 to i64*, !dbg !772 %19 = call noalias nonnull i8* @malloc(i64 %14) #16, !dbg !772 %20 = bitcast i8* %19 to double*, !dbg !772 %21 = bitcast {} addrspace(10)* %0 to i64 addrspace(13)* addrspace(10)* %22 = addrspacecast i64 addrspace(13)* addrspace(10)* %21 to i8 addrspace(13)* addrspace(11)* %23 = load i8 addrspace(13)*, i8 addrspace(13)* addrspace(11)* %22, align 16, !alias.scope !777, !noalias !784 br label %L48, !dbg !772 L42.loopexit: ; preds = %L80 br label %L42 L42: ; preds = %L42.loopexit, %L23 %.lcssa = phi double [ %10, %L23 ], [ %42, %L42.loopexit ], !dbg !769 %current_task147 = getelementptr inbounds {}**, {}*** %3, i64 -14 %current_task1 = bitcast {}*** %current_task147 to {}** %box = call noalias nonnull dereferenceable(8) "enzyme_type"="{[-1]:Pointer, [-1,-1]:Float@double}" {} addrspace(10)* @julia.gc_alloc_obj({}** nonnull %current_task1, i64 noundef 8, {} addrspace(10)* noundef addrspacecast ({}* inttoptr (i64 132511632845536 to {}*) to {} addrspace(10)*)) #18, !dbg !772 %24 = bitcast {} addrspace(10)* %box to double addrspace(10)*, !dbg !772 store double %.lcssa, double addrspace(10)* %24, align 8, !dbg !772, !tbaa !207, !alias.scope !210, !noalias !786 %25 = call nonnull "enzyme_type"="{[-1]:Pointer}" {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32, {} addrspace(10)*)*, {} addrspace(10)*, {} addrspace(10)*, ...) @julia.call2({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32, {} addrspace(10)*)* noundef nonnull @ijl_invoke, {} addrspace(10)* noundef addrspacecast ({}* inttoptr (i64 132511603774560 to {}*) to {} addrspace(10)*), {} addrspace(10)* noundef addrspacecast ({}* inttoptr (i64 132511562750992 to {}*) to {} addrspace(10)*), {} addrspace(10)* nofree nonnull %box, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 132509245371280 to {}*) to {} addrspace(10)*)) #19, !dbg !772 %26 = addrspacecast {} addrspace(10)* %25 to {} addrspace(12)*, !dbg !772 call void @ijl_throw({} addrspace(12)* %26) #20, !dbg !772 unreachable, !dbg !772 L48: ; preds = %L80, %L48.lr.ph %iv1 = phi i64 [ %iv.next, %L80 ], [ 0, %L48.lr.ph ] %27 = phi double [ %42, %L80 ], [ %10, %L48.lr.ph ] %28 = phi double [ %35, %L80 ], [ %arrayref, %L48.lr.ph ] %iv.next = add nuw nsw i64 %iv1, 1, !dbg !789 %29 = shl i64 %iv1, 3, !dbg !789 %30 = getelementptr i8, i8 addrspace(13)* %23, i64 %29, !dbg !789 %31 = bitcast i8 addrspace(13)* %30 to i64 addrspace(13)*, !dbg !789 %value_phi22 = load i64, i64 addrspace(13)* %31, align 8, !dbg !789, !tbaa !117, !alias.scope !790, !noalias !793 %32 = sitofp i64 %value_phi22 to double, !dbg !795 %33 = fsub double %32, %27, !dbg !801 %34 = fmul double %arrayref14, %33, !dbg !802 %35 = fadd double %28, %34, !dbg !803 store double %35, double addrspace(11)* %54, align 8, !dbg !804, !tbaa !242, !alias.scope !806, !noalias !809 %36 = getelementptr inbounds i64, i64* %18, i64 %iv1, !dbg !813 store i64 %value_phi22, i64* %36, align 8, !dbg !813, !tbaa !117, !noalias !817, !invariant.group !818 %37 = getelementptr inbounds double, double* %20, i64 %iv1, !dbg !813 store double %35, double* %37, align 8, !dbg !813, !noalias !817, !invariant.group !819 %38 = getelementptr inbounds double, double* %16, i64 %iv1, !dbg !813 store double %27, double* %38, align 8, !dbg !813, !noalias !817, !invariant.group !820 %exitcond.not = icmp eq i64 %iv.next, %arraylen16, !dbg !813 br i1 %exitcond.not, label %L86.loopexit, label %L80, !dbg !815 L80: ; preds = %L48 %39 = fneg double %35, !dbg !764 %40 = call double @julia_exp_5556(double %39) #21, !dbg !765 %41 = fadd double %40, 1.000000e+00, !dbg !767 %42 = fdiv double 1.000000e+00, %41, !dbg !769 %43 = fcmp ult double %42, 0.000000e+00, !dbg !771 %44 = fcmp ugt double %42, 1.000000e+00, !dbg !772 %45 = or i1 %43, %44, !dbg !772 br i1 %45, label %L42.loopexit, label %L48, !dbg !772 L86.loopexit: ; preds = %L48 br label %L86, !dbg !816 L86: ; preds = %L86.loopexit, %idxend11 %.sroa.0.0 = phi double* [ undef, %idxend11 ], [ %16, %L86.loopexit ] %.sroa.2.0 = phi i64* [ undef, %idxend11 ], [ %18, %L86.loopexit ] %.sroa.4.0 = phi double* [ undef, %idxend11 ], [ %20, %L86.loopexit ] %46 = insertvalue { double*, i64*, double*, double, double, i64 } undef, double* %.sroa.0.0, 0, !dbg !816 %47 = insertvalue { double*, i64*, double*, double, double, i64 } %46, i64* %.sroa.2.0, 1, !dbg !816 %48 = insertvalue { double*, i64*, double*, double, double, i64 } %47, double* %.sroa.4.0, 2, !dbg !816 %49 = insertvalue { double*, i64*, double*, double, double, i64 } %48, double %arrayref, 3, !dbg !816 %50 = insertvalue { double*, i64*, double*, double, double, i64 } %49, double %arrayref14, 4, !dbg !816 %51 = insertvalue { double*, i64*, double*, double, double, i64 } %50, i64 %arraylen16, 5, !dbg !816 ret { double*, i64*, double*, double, double, i64 } %51, !dbg !816 oob: ; preds = %top %errorbox = alloca i64, align 8, !dbg !757 store i64 1, i64* %errorbox, align 8, !dbg !757, !noalias !821 %52 = addrspacecast {} addrspace(10)* %getfield to {} addrspace(12)*, !dbg !757 call void @ijl_bounds_error_ints({} addrspace(12)* noundef %52, i64* noundef nonnull align 8 %errorbox, i64 noundef 1) #20, !dbg !757 unreachable, !dbg !757 idxend: ; preds = %top %53 = addrspacecast {} addrspace(10)* %getfield to double addrspace(13)* addrspace(11)*, !dbg !757 %arrayptr51 = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %53, align 16, !dbg !757, !tbaa !113, !alias.scope !822, !noalias !762, !nonnull !17 %arrayref = load double, double addrspace(13)* %arrayptr51, align 8, !dbg !757, !tbaa !117, !alias.scope !823, !noalias !826 %getfield_addr2 = getelementptr inbounds [1 x {} addrspace(10)*], [1 x {} addrspace(10)*] addrspace(11)* %1, i64 0, i64 0, !dbg !828 %getfield3 = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %getfield_addr2 unordered, align 8, !dbg !828, !tbaa !58, !alias.scope !829, !noalias !832, !nonnull !17, !dereferenceable !276, !align !276 %54 = addrspacecast {} addrspace(10)* %getfield3 to double addrspace(11)*, !dbg !834 store double %arrayref, double addrspace(11)* %54, align 8, !dbg !834, !tbaa !242, !alias.scope !806, !noalias !809 %inbounds8.not = icmp eq i64 %arraylen, 1, !dbg !836 br i1 %inbounds8.not, label %oob9, label %idxend11, !dbg !836 oob9: ; preds = %idxend %errorbox10 = alloca i64, align 8, !dbg !836 store i64 2, i64* %errorbox10, align 8, !dbg !836, !noalias !821 %55 = addrspacecast {} addrspace(10)* %getfield to {} addrspace(12)*, !dbg !836 call void @ijl_bounds_error_ints({} addrspace(12)* noundef %55, i64* noundef nonnull align 8 %errorbox10, i64 noundef 1) #20, !dbg !836 unreachable, !dbg !836 idxend11: ; preds = %idxend %56 = getelementptr inbounds double, double addrspace(13)* %arrayptr51, i64 1, !dbg !836 %arrayref14 = load double, double addrspace(13)* %56, align 8, !dbg !836, !tbaa !117, !alias.scope !823, !noalias !826 %57 = addrspacecast {} addrspace(10)* %0 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !842 %arraylen_ptr15 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %57, i64 0, i32 1, !dbg !842 %arraylen16 = load i64, i64 addrspace(11)* %arraylen_ptr15, align 8, !dbg !842, !tbaa !82, !range !85, !alias.scope !846, !noalias !849 %.not = icmp eq i64 %arraylen16, 0, !dbg !851 br i1 %.not, label %L86, label %L23, !dbg !843 } Type analysis state: <analysis> i64 1: {[-1]:Integer}, intvals: {1,} %4 = bitcast {}*** %ptls_field48 to i64***: {[-1]:Pointer}, intvals: {} %ptls_load4950 = load i64**, i64*** %4, align 8, !tbaa !18, !alias.scope !22, !noalias !25: {}, intvals: {} %safepoint = load i64*, i64** %5, align 8, !tbaa !27, !alias.scope !29, !noalias !32: {}, intvals: {} %getfield = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %getfield_addr unordered, align 8, !dbg !35, !tbaa !27, !alias.scope !50, !noalias !55, !nonnull !17, !dereferenceable !61, !align !62: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Float@double, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}, intvals: {} %6 = addrspacecast {} addrspace(10)* %getfield to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !63: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Float@double, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}, intvals: {} %arraylen = load i64, i64 addrspace(11)* %arraylen_ptr, align 8, !dbg !63, !tbaa !69, !range !72, !alias.scope !73, !noalias !76: {[-1]:Integer}, intvals: {} i64 3: {[-1]:Integer}, intvals: {3,} %8 = call double @julia_exp_5556(double %7) #17, !dbg !81: {[-1]:Float@double}, intvals: {} %25 = call nonnull "enzyme_type"="{[-1]:Pointer}" {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32, {} addrspace(10)*)*, {} addrspace(10)*, {} addrspace(10)*, ...) @julia.call2({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32, {} addrspace(10)*)* noundef nonnull @ijl_invoke, {} addrspace(10)* noundef addrspacecast ({}* inttoptr (i64 132511603774560 to {}*) to {} addrspace(10)*), {} addrspace(10)* noundef addrspacecast ({}* inttoptr (i64 132511562750992 to {}*) to {} addrspace(10)*), {} addrspace(10)* nofree nonnull %box, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 132509245371280 to {}*) to {} addrspace(10)*)) #19, !dbg !96: {[-1]:Pointer}, intvals: {} %17 = call noalias nonnull i8* @malloc(i64 %14) #16, !dbg !96: {[-1]:Pointer}, intvals: {} double 1.000000e+00: {[-1]:Float@double}, intvals: {} double 0.000000e+00: {[-1]:Anything}, intvals: {} double* undef: {[-1]:Anything}, intvals: {} { double*, i64*, double*, double, double, i64 } undef: {[-1]:Anything}, intvals: {} i64* undef: {[-1]:Anything}, intvals: {} %12 = fcmp ugt double %10, 1.000000e+00, !dbg !96: {[-1]:Integer}, intvals: {} %13 = or i1 %11, %12, !dbg !96: {[-1]:Integer}, intvals: {} %14 = shl nuw i64 %arraylen16, 3, !dbg !96: {[-1]:Integer}, intvals: {} %16 = bitcast i8* %15 to double*, !dbg !96: {[-1]:Pointer}, intvals: {} %18 = bitcast i8* %17 to i64*, !dbg !96: {[-1]:Pointer}, intvals: {} %19 = call noalias nonnull i8* @malloc(i64 %14) #16, !dbg !96: {[-1]:Pointer}, intvals: {} %20 = bitcast i8* %19 to double*, !dbg !96: {[-1]:Pointer}, intvals: {} %21 = bitcast {} addrspace(10)* %0 to i64 addrspace(13)* addrspace(10)*: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Integer, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}, intvals: {} %22 = addrspacecast i64 addrspace(13)* addrspace(10)* %21 to i8 addrspace(13)* addrspace(11)*: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Integer, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}, intvals: {} %23 = load i8 addrspace(13)*, i8 addrspace(13)* addrspace(11)* %22, align 16, !alias.scope !107, !noalias !114: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %46 = insertvalue { double*, i64*, double*, double, double, i64 } undef, double* %.sroa.0.0, 0, !dbg !170: {[0]:Pointer, [8]:Anything, [9]:Anything, [10]:Anything, [11]:Anything, [12]:Anything, [13]:Anything, [14]:Anything, [15]:Anything, [16]:Anything, [17]:Anything, [18]:Anything, [19]:Anything, [20]:Anything, [21]:Anything, [22]:Anything, [23]:Anything, [24]:Anything, [25]:Anything, [26]:Anything, [27]:Anything, [28]:Anything, [29]:Anything, [30]:Anything, [31]:Anything, [32]:Anything, [33]:Anything, [34]:Anything, [35]:Anything, [36]:Anything, [37]:Anything, [38]:Anything, [39]:Anything, [40]:Anything, [41]:Anything, [42]:Anything, [43]:Anything, [44]:Anything, [45]:Anything, [46]:Anything, [47]:Anything}, intvals: {} %47 = insertvalue { double*, i64*, double*, double, double, i64 } %46, i64* %.sroa.2.0, 1, !dbg !170: {[0]:Pointer, [8]:Pointer, [16]:Anything, [17]:Anything, [18]:Anything, [19]:Anything, [20]:Anything, [21]:Anything, [22]:Anything, [23]:Anything, [24]:Anything, [25]:Anything, [26]:Anything, [27]:Anything, [28]:Anything, [29]:Anything, [30]:Anything, [31]:Anything, [32]:Anything, [33]:Anything, [34]:Anything, [35]:Anything, [36]:Anything, [37]:Anything, [38]:Anything, [39]:Anything, [40]:Anything, [41]:Anything, [42]:Anything, [43]:Anything, [44]:Anything, [45]:Anything, [46]:Anything, [47]:Anything}, intvals: {} %27 = phi double [ %42, %L80 ], [ %10, %L48.lr.ph ]: {[-1]:Float@double}, intvals: {} %28 = phi double [ %35, %L80 ], [ %arrayref, %L48.lr.ph ]: {[-1]:Float@double}, intvals: {} %29 = shl i64 %iv1, 3, !dbg !124: {[-1]:Integer}, intvals: {0,} %30 = getelementptr i8, i8 addrspace(13)* %23, i64 %29, !dbg !124: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %31 = bitcast i8 addrspace(13)* %30 to i64 addrspace(13)*, !dbg !124: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {} %value_phi22 = load i64, i64 addrspace(13)* %31, align 8, !dbg !124, !tbaa !125, !alias.scope !127, !noalias !130: {[-1]:Integer}, intvals: {} %32 = sitofp i64 %value_phi22 to double, !dbg !132: {[-1]:Float@double}, intvals: {} %33 = fsub double %32, %27, !dbg !144: {[-1]:Float@double}, intvals: {} %34 = fmul double %arrayref14, %33, !dbg !145: {[-1]:Float@double}, intvals: {} %35 = fadd double %28, %34, !dbg !147: {[-1]:Float@double}, intvals: {} %36 = getelementptr inbounds i64, i64* %18, i64 %iv1, !dbg !163: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %37 = getelementptr inbounds double, double* %20, i64 %iv1, !dbg !163: {[-1]:Pointer, [-1,0]:Float@double}, intvals: {} %38 = getelementptr inbounds double, double* %16, i64 %iv1, !dbg !163: {[-1]:Pointer, [-1,0]:Float@double}, intvals: {} %exitcond.not = icmp eq i64 %iv.next, %arraylen16, !dbg !163: {[-1]:Integer}, intvals: {} %39 = fneg double %35, !dbg !78: {[-1]:Float@double}, intvals: {} %40 = call double @julia_exp_5556(double %39) #21, !dbg !81: {[-1]:Float@double}, intvals: {} %41 = fadd double %40, 1.000000e+00, !dbg !85: {[-1]:Float@double}, intvals: {} %42 = fdiv double 1.000000e+00, %41, !dbg !90: {[-1]:Float@double}, intvals: {} %43 = fcmp ult double %42, 0.000000e+00, !dbg !94: {[-1]:Integer}, intvals: {} %44 = fcmp ugt double %42, 1.000000e+00, !dbg !96: {[-1]:Integer}, intvals: {} %45 = or i1 %43, %44, !dbg !96: {[-1]:Integer}, intvals: {} %.sroa.0.0 = phi double* [ undef, %idxend11 ], [ %16, %L86.loopexit ]: {[-1]:Pointer}, intvals: {} %.sroa.2.0 = phi i64* [ undef, %idxend11 ], [ %18, %L86.loopexit ]: {[-1]:Pointer}, intvals: {} %.sroa.4.0 = phi double* [ undef, %idxend11 ], [ %20, %L86.loopexit ]: {[-1]:Pointer}, intvals: {} %48 = insertvalue { double*, i64*, double*, double, double, i64 } %47, double* %.sroa.4.0, 2, !dbg !170: {[0]:Pointer, [8]:Pointer, [16]:Pointer, [24]:Anything, [25]:Anything, [26]:Anything, [27]:Anything, [28]:Anything, [29]:Anything, [30]:Anything, [31]:Anything, [32]:Anything, [33]:Anything, [34]:Anything, [35]:Anything, [36]:Anything, [37]:Anything, [38]:Anything, [39]:Anything, [40]:Anything, [41]:Anything, [42]:Anything, [43]:Anything, [44]:Anything, [45]:Anything, [46]:Anything, [47]:Anything}, intvals: {} %49 = insertvalue { double*, i64*, double*, double, double, i64 } %48, double %arrayref, 3, !dbg !170: {[0]:Pointer, [8]:Pointer, [16]:Pointer, [24]:Float@double, [32]:Anything, [33]:Anything, [34]:Anything, [35]:Anything, [36]:Anything, [37]:Anything, [38]:Anything, [39]:Anything, [40]:Anything, [41]:Anything, [42]:Anything, [43]:Anything, [44]:Anything, [45]:Anything, [46]:Anything, [47]:Anything}, intvals: {} %50 = insertvalue { double*, i64*, double*, double, double, i64 } %49, double %arrayref14, 4, !dbg !170: {[0]:Pointer, [8]:Pointer, [16]:Pointer, [24]:Float@double, [32]:Float@double, [40]:Anything, [41]:Anything, [42]:Anything, [43]:Anything, [44]:Anything, [45]:Anything, [46]:Anything, [47]:Anything}, intvals: {} %51 = insertvalue { double*, i64*, double*, double, double, i64 } %50, i64 %arraylen16, 5, !dbg !170: {[-1]:Float@double}, intvals: {} %53 = addrspacecast {} addrspace(10)* %getfield to double addrspace(13)* addrspace(11)*, !dbg !63: {[-1]:Pointer, [-1,0]:Pointer}, intvals: {} %arrayptr51 = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %53, align 16, !dbg !63, !tbaa !176, !alias.scope !178, !noalias !76, !nonnull !17: {[-1]:Pointer}, intvals: {} %arrayref = load double, double addrspace(13)* %arrayptr51, align 8, !dbg !63, !tbaa !125, !alias.scope !179, !noalias !182: {[-1]:Float@double}, intvals: {} %54 = addrspacecast {} addrspace(10)* %getfield3 to double addrspace(11)*, !dbg !192: {[-1]:Pointer, [-1,0]:Float@double}, intvals: {} %arrayref14 = load double, double addrspace(13)* %56, align 8, !dbg !194, !tbaa !125, !alias.scope !179, !noalias !182: {[-1]:Float@double}, intvals: {} %arraylen_ptr15 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %57, i64 0, i32 1, !dbg !200: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %arraylen16 = load i64, i64 addrspace(11)* %arraylen_ptr15, align 8, !dbg !200, !tbaa !69, !range !72, !alias.scope !205, !noalias !208: {[-1]:Integer}, intvals: {} %getfield_addr = getelementptr inbounds { {} addrspace(10)* }, { {} addrspace(10)* } addrspace(11)* %2, i64 0, i32 0, !dbg !35: {[-1]:Pointer, [-1,-1]:Pointer, [-1,-1,0]:Pointer, [-1,-1,0,-1]:Float@double, [-1,-1,8]:Integer, [-1,-1,9]:Integer, [-1,-1,10]:Integer, [-1,-1,11]:Integer, [-1,-1,12]:Integer, [-1,-1,13]:Integer, [-1,-1,14]:Integer, [-1,-1,15]:Integer, [-1,-1,16]:Integer, [-1,-1,17]:Integer, [-1,-1,18]:Integer, [-1,-1,19]:Integer, [-1,-1,20]:Integer, [-1,-1,21]:Integer, [-1,-1,22]:Integer, [-1,-1,23]:Integer, [-1,-1,24]:Integer, [-1,-1,25]:Integer, [-1,-1,26]:Integer, [-1,-1,27]:Integer, [-1,-1,28]:Integer, [-1,-1,29]:Integer, [-1,-1,30]:Integer, [-1,-1,31]:Integer, [-1,-1,32]:Integer, [-1,-1,33]:Integer, [-1,-1,34]:Integer, [-1,-1,35]:Integer, [-1,-1,36]:Integer, [-1,-1,37]:Integer, [-1,-1,38]:Integer, [-1,-1,39]:Integer}, intvals: {} %arraylen_ptr = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %6, i64 0, i32 1, !dbg !63: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {} %inbounds.not = icmp eq i64 %arraylen, 0, !dbg !63: {[-1]:Integer}, intvals: {} %11 = fcmp ult double %10, 0.000000e+00, !dbg !94: {[-1]:Integer}, intvals: {} %7 = fneg double %arrayref, !dbg !78: {[-1]:Float@double}, intvals: {} %iv.next = add nuw nsw i64 %iv1, 1, !dbg !124: {[-1]:Integer}, intvals: {1,} %9 = fadd double %8, 1.000000e+00, !dbg !85: {[-1]:Float@double}, intvals: {} %10 = fdiv double 1.000000e+00, %9, !dbg !90: {[-1]:Float@double}, intvals: {} %box = call noalias nonnull dereferenceable(8) "enzyme_type"="{[-1]:Pointer, [-1,-1]:Float@double}" {} addrspace(10)* @julia.gc_alloc_obj({}** nonnull %current_task1, i64 noundef 8, {} addrspace(10)* noundef addrspacecast ({}* inttoptr (i64 132511632845536 to {}*) to {} addrspace(10)*)) #18, !dbg !96: {[-1]:Pointer, [-1,-1]:Float@double}, intvals: {} %iv1 = phi i64 [ %iv.next, %L80 ], [ 0, %L48.lr.ph ]: {[-1]:Integer}, intvals: {0,} {} addrspace(10)* %0: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Integer, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}, intvals: {} [1 x {} addrspace(10)*] addrspace(11)* %1: {[-1]:Pointer, [-1,-1]:Pointer, [-1,-1,-1]:Float@double}, intvals: {} { {} addrspace(10)* } addrspace(11)* %2: {[-1]:Pointer, [-1,-1]:Pointer, [-1,-1,0]:Pointer, [-1,-1,0,-1]:Float@double, [-1,-1,8]:Integer, [-1,-1,9]:Integer, [-1,-1,10]:Integer, [-1,-1,11]:Integer, [-1,-1,12]:Integer, [-1,-1,13]:Integer, [-1,-1,14]:Integer, [-1,-1,15]:Integer, [-1,-1,16]:Integer, [-1,-1,17]:Integer, [-1,-1,18]:Integer, [-1,-1,19]:Integer, [-1,-1,20]:Integer, [-1,-1,21]:Integer, [-1,-1,22]:Integer, [-1,-1,23]:Integer, [-1,-1,24]:Integer, [-1,-1,25]:Integer, [-1,-1,26]:Integer, [-1,-1,27]:Integer, [-1,-1,28]:Integer, [-1,-1,29]:Integer, [-1,-1,30]:Integer, [-1,-1,31]:Integer, [-1,-1,32]:Integer, [-1,-1,33]:Integer, [-1,-1,34]:Integer, [-1,-1,35]:Integer, [-1,-1,36]:Integer, [-1,-1,37]:Integer, [-1,-1,38]:Integer, [-1,-1,39]:Integer}, intvals: {} %ptls_field48 = getelementptr inbounds {}**, {}*** %3, i64 2: {}, intvals: {} %15 = call noalias nonnull i8* @malloc(i64 %14) #16, !dbg !96: {[-1]:Pointer}, intvals: {} %3 = call {}*** @julia.get_pgcstack() #16: {}, intvals: {} i64 0: {[-1]:Anything}, intvals: {0,} %5 = getelementptr inbounds i64*, i64** %ptls_load4950, i64 2: {[-1]:Pointer}, intvals: {} </analysis> Illegal updateAnalysis prev:{[0]:Pointer, [8]:Pointer, [16]:Pointer, [24]:Float@double, [32]:Float@double, [40]:Anything, [41]:Anything, [42]:Anything, [43]:Anything, [44]:Anything, [45]:Anything, [46]:Anything, [47]:Anything} new: {[0]:Float@double, [1]:Float@double, [2]:Float@double, [3]:Float@double, [4]:Float@double, [5]:Float@double, [6]:Float@double, [7]:Float@double, [8]:Float@double, [9]:Float@double, [10]:Float@double, [11]:Float@double, [12]:Float@double, [13]:Float@double, [14]:Float@double, [15]:Float@double, [16]:Float@double, [17]:Float@double, [18]:Float@double, [19]:Float@double, [20]:Float@double, [21]:Float@double, [22]:Float@double, [23]:Float@double, [24]:Float@double, [25]:Float@double, [26]:Float@double, [27]:Float@double, [28]:Float@double, [29]:Float@double, [30]:Float@double, [31]:Float@double, [32]:Float@double, [33]:Float@double, [34]:Float@double, [35]:Float@double, [36]:Float@double, [37]:Float@double, [38]:Float@double, [39]:Float@double} val: %50 = insertvalue { double*, i64*, double*, double, double, i64 } %49, double %arrayref14, 4, !dbg !170 origin= %51 = insertvalue { double*, i64*, double*, double, double, i64 } %50, i64 %arraylen16, 5, !dbg !170 MethodInstance for logp(::Vector{Int64}, ::HabituatingBiasedCoin{Base.RefValue{Float64}}, ::ComponentVector{Float64, Vector{Float64}, Tuple{Axis{(w₀ = 1, η = 2)}}}) Caused by: Stacktrace: [1] logp @ ./REPL[16]:9 Stacktrace: [1] julia_error(cstr::Cstring, val::Ptr{…}, errtype::Enzyme.API.ErrorType, data::Ptr{…}, data2::Ptr{…}, B::Ptr{…}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/F71IJ/src/compiler.jl:1711 [2] EnzymeCreateForwardDiff(logic::Enzyme.Logic, todiff::LLVM.Function, retType::Enzyme.API.CDIFFE_TYPE, constant_args::Vector{…}, TA::Enzyme.TypeAnalysis, returnValue::Bool, mode::Enzyme.API.CDerivativeMode, width::Int64, additionalArg::Ptr{…}, typeInfo::Enzyme.FnTypeInfo, uncacheable_args::Vector{…}) @ Enzyme.API ~/.julia/packages/Enzyme/F71IJ/src/api.jl:168 [3] enzyme!(job::GPUCompiler.CompilerJob{…}, mod::LLVM.Module, primalf::LLVM.Function, TT::Type, mode::Enzyme.API.CDerivativeMode, width::Int64, parallel::Bool, actualRetType::Type, wrap::Bool, modifiedBetween::NTuple{…}, returnPrimal::Bool, expectedTapeType::Type, loweredArgs::Set{…}, boxedArgs::Set{…}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/F71IJ/src/compiler.jl:3304 [4] codegen(output::Symbol, job::GPUCompiler.CompilerJob{…}; libraries::Bool, deferred_codegen::Bool, optimize::Bool, toplevel::Bool, strip::Bool, validate::Bool, only_entry::Bool, parent_job::Nothing) @ Enzyme.Compiler ~/.julia/packages/Enzyme/F71IJ/src/compiler.jl:5250 [5] codegen @ ~/.julia/packages/Enzyme/F71IJ/src/compiler.jl:4592 [inlined] [6] _thunk(job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget, Enzyme.Compiler.EnzymeCompilerParams}, postopt::Bool) @ Enzyme.Compiler ~/.julia/packages/Enzyme/F71IJ/src/compiler.jl:5968 [7] _thunk @ ~/.julia/packages/Enzyme/F71IJ/src/compiler.jl:5968 [inlined] [8] cached_compilation @ ~/.julia/packages/Enzyme/F71IJ/src/compiler.jl:6006 [inlined] [9] (::Enzyme.Compiler.var"#1220#1221"{…})(ctx::LLVM.Context) @ Enzyme.Compiler ~/.julia/packages/Enzyme/F71IJ/src/compiler.jl:6073 [10] JuliaContext(f::Enzyme.Compiler.var"#1220#1221"{…}; kwargs::@Kwargs{}) @ GPUCompiler ~/.julia/packages/GPUCompiler/nWT2N/src/driver.jl:52 [11] JuliaContext(f::Function) @ GPUCompiler ~/.julia/packages/GPUCompiler/nWT2N/src/driver.jl:42 [12] #s1957#1219 @ ~/.julia/packages/Enzyme/F71IJ/src/compiler.jl:6024 [inlined] [13] @ Enzyme.Compiler ./none:0 [14] (::Core.GeneratedFunctionStub)(::UInt64, ::LineNumberNode, ::Any, ::Vararg{Any}) @ Core ./boot.jl:602 [15] autodiff @ ~/.julia/packages/Enzyme/F71IJ/src/Enzyme.jl:397 [inlined] [16] autodiff @ ~/.julia/packages/Enzyme/F71IJ/src/Enzyme.jl:315 [inlined] [17] autodiff @ ~/.julia/packages/Enzyme/F71IJ/src/Enzyme.jl:300 [inlined] [18] _hess(h::HessLogP{BatchDuplicated{HabituatingBiasedCoin{Base.RefValue{Float64}}, 2}}) @ Main ./REPL[23]:2 [19] (::HessLogP{BatchDuplicated{…}})(ddx::Matrix{Float64}, x::ComponentVector{Float64, Vector{…}, Tuple{…}}) @ Main ./REPL[32]:4 [20] top-level scope @ REPL[42]:1 Some type information was truncated. Use `show(err)` to see complete types.
The text was updated successfully, but these errors were encountered:
@jbrea can you reduce this code to say just the logp function which causes the error?
Sorry, something went wrong.
No branches or pull requests
The following code worked with Enzyme 0.11.20 (julia 1.10.2) but fails on Enzyme 0.12.9.
Apologies for the not so minimal MWE.
Setup
First Error
Second Error
The text was updated successfully, but these errors were encountered: