On your example, something odd is that using @code_llvm instead of @code_warntype, we can also detect that after the redefinition, the inner functions of ForwardDiff/partials.jl get called more often than before.
Just in case someone can parse them, here are the traces of @code_llvm before and after redefining J_flat in my code above.
; @ REPL[4]:1 within `nested_jacobian`
define nonnull {}* @julia_nested_jacobian_324([1 x [2 x double]]* nocapture noundef nonnull readonly align 8 dereferenceable(16) %0) #0 {
top:
%1 = alloca [3 x {}*], align 8
%gcframe10 = alloca [4 x {}*], align 16
%gcframe10.sub = getelementptr inbounds [4 x {}*], [4 x {}*]* %gcframe10, i64 0, i64 0
%.sub = getelementptr inbounds [3 x {}*], [3 x {}*]* %1, i64 0, i64 0
%2 = bitcast [4 x {}*]* %gcframe10 to i8*
call void @llvm.memset.p0i8.i64(i8* align 16 %2, i8 0, i64 32, i1 true)
%3 = alloca [1 x [2 x { double, [1 x [2 x double]] }]], align 8
%thread_ptr = call i8* asm "movq %fs:0, $0", "=r"() #9
%tls_ppgcstack = getelementptr i8, i8* %thread_ptr, i64 -8
%4 = bitcast i8* %tls_ppgcstack to {}****
%tls_pgcstack = load {}***, {}**** %4, align 8
; @ REPL[4]:2 within `nested_jacobian`
; β @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/ext/ForwardDiffStaticArraysExt.jl:66 within `jacobian`
; ββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/ext/ForwardDiffStaticArraysExt.jl:91 within `vector_mode_jacobian`
%5 = bitcast [4 x {}*]* %gcframe10 to i64*
store i64 8, i64* %5, align 16
%6 = getelementptr inbounds [4 x {}*], [4 x {}*]* %gcframe10, i64 0, i64 1
%7 = bitcast {}** %6 to {}***
%8 = load {}**, {}*** %tls_pgcstack, align 8
store {}** %8, {}*** %7, align 8
%9 = bitcast {}*** %tls_pgcstack to {}***
store {}** %gcframe10.sub, {}*** %9, align 8
call void @j_static_dual_eval_326([1 x [2 x { double, [1 x [2 x double]] }]]* noalias nocapture noundef nonnull sret([1 x [2 x { double, [1 x [2 x double]] }]]) %3, [1 x [2 x double]]* nocapture nonnull readonly %0)
%ptls_field11 = getelementptr inbounds {}**, {}*** %tls_pgcstack, i64 2
%10 = bitcast {}*** %ptls_field11 to i8**
%ptls_load1213 = load i8*, i8** %10, align 8
%box = call noalias nonnull dereferenceable(64) {}* @ijl_gc_pool_alloc(i8* %ptls_load1213, i32 896, i32 64) #6
%11 = bitcast {}* %box to i64*
%12 = getelementptr inbounds i64, i64* %11, i64 -1
store atomic i64 133696916920400, i64* %12 unordered, align 8
%13 = bitcast {}* %box to i8*
%14 = bitcast [1 x [2 x { double, [1 x [2 x double]] }]]* %3 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* noundef align 8 dereferenceable(48) %13, i8* noundef nonnull align 8 dereferenceable(48) %14, i64 48, i1 false)
%15 = getelementptr inbounds [4 x {}*], [4 x {}*]* %gcframe10, i64 0, i64 3
store {}* %box, {}** %15, align 8
%ptls_load81415 = load i8*, i8** %10, align 8
%box3 = call noalias nonnull dereferenceable(32) {}* @ijl_gc_pool_alloc(i8* %ptls_load81415, i32 800, i32 32) #6
%16 = bitcast {}* %box3 to i64*
%17 = getelementptr inbounds i64, i64* %16, i64 -1
store atomic i64 133696928609808, i64* %17 unordered, align 8
%18 = bitcast {}* %box3 to i8*
%19 = bitcast [1 x [2 x double]]* %0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* noundef align 8 dereferenceable(16) %18, i8* noundef nonnull align 8 dereferenceable(16) %19, i64 16, i1 false)
%20 = getelementptr inbounds [4 x {}*], [4 x {}*]* %gcframe10, i64 0, i64 2
store {}* %box3, {}** %20, align 16
store {}* inttoptr (i64 133696925208208 to {}*), {}** %.sub, align 8
%21 = getelementptr inbounds [3 x {}*], [3 x {}*]* %1, i64 0, i64 1
store {}* %box, {}** %21, align 8
%22 = getelementptr inbounds [3 x {}*], [3 x {}*]* %1, i64 0, i64 2
store {}* %box3, {}** %22, align 8
%23 = call nonnull {}* @ijl_apply_generic({}* inttoptr (i64 133696871410736 to {}*), {}** nonnull %.sub, i32 3)
%24 = load {}*, {}** %6, align 8
%25 = bitcast {}*** %tls_pgcstack to {}**
store {}* %24, {}** %25, align 8
; ββ
ret {}* %23
}
; @ REPL[4]:1 within `nested_jacobian`
define void @julia_nested_jacobian_343([1 x [4 x double]]* noalias nocapture noundef nonnull sret([1 x [4 x double]]) align 8 dereferenceable(32) %0, [1 x [2 x double]]* nocapture noundef nonnull readonly align 8 dereferenceable(16) %1) #0 {
top:
%2 = alloca [2 x double], align 8
; @ REPL[4]:2 within `nested_jacobian`
; β @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/ext/ForwardDiffStaticArraysExt.jl:66 within `jacobian`
; ββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/ext/ForwardDiffStaticArraysExt.jl:91 within `vector_mode_jacobian`
; βββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/ext/ForwardDiffStaticArraysExt.jl:24 within `static_dual_eval`
; ββββ @ REPL[8]:2 within `J_flat`
; βββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/ext/ForwardDiffStaticArraysExt.jl:66 within `jacobian`
; ββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/ext/ForwardDiffStaticArraysExt.jl:91 within `vector_mode_jacobian`
; βββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/ext/ForwardDiffStaticArraysExt.jl:24 within `static_dual_eval`
; ββββββββ @ REPL[2]:1 within `f`
; βββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:693 within `sin`
; ββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:703 within `sincos`
; βββββββββββ @ tuple.jl:92 within `indexed_iterate` @ tuple.jl:92
%3 = getelementptr inbounds [2 x double], [2 x double]* %2, i64 0, i64 0
; βββββββββββ @ tuple.jl:92 within `indexed_iterate`
%4 = getelementptr inbounds [2 x double], [2 x double]* %2, i64 0, i64 1
; βββββββββββ
%newstruct13.sroa.0.0..sroa_idx = getelementptr inbounds [1 x [4 x double]], [1 x [4 x double]]* %0, i64 0, i64 0, i64 0
%newstruct13.sroa.2.0..sroa_idx14 = getelementptr inbounds [1 x [4 x double]], [1 x [4 x double]]* %0, i64 0, i64 0, i64 1
%newstruct13.sroa.3.0..sroa_idx15 = getelementptr inbounds [1 x [4 x double]], [1 x [4 x double]]* %0, i64 0, i64 0, i64 2
; β @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/ext/ForwardDiffStaticArraysExt.jl:66 within `jacobian`
; ββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/ext/ForwardDiffStaticArraysExt.jl:91 within `vector_mode_jacobian`
; βββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/ext/ForwardDiffStaticArraysExt.jl:24 within `static_dual_eval`
; ββββ @ REPL[8]:2 within `J_flat`
; βββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/ext/ForwardDiffStaticArraysExt.jl:66 within `jacobian`
; ββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/ext/ForwardDiffStaticArraysExt.jl:91 within `vector_mode_jacobian`
; βββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/ext/ForwardDiffStaticArraysExt.jl:24 within `static_dual_eval`
; ββββββββ @ REPL[2]:1 within `f`
; βββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:577 within `literal_pow` @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:577 @ intfuncs.jl:332
; ββββββββββ @ float.jl:411 within `*`
%5 = bitcast [1 x [2 x double]]* %1 to <2 x double>*
%6 = load <2 x double>, <2 x double>* %5, align 8
; ββββββββββ
; βββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:577 within `literal_pow` @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:578
; ββββββββββ @ promotion.jl:423 within `*` @ float.jl:411
%7 = insertelement <2 x double> %6, double 2.000000e+00, i64 0
%8 = fmul <2 x double> %6, %7
; ββββββββββ
; βββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:577 within `literal_pow` @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:579
; ββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:83 within `*` @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:110
; βββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:199 within `scale_tuple`
; ββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:156 within `macro expansion`
; βββββββββββββ @ float.jl:411 within `*`
%9 = fmul <2 x double> %8, <double 0.000000e+00, double 3.000000e+00>
; βββββββββββββ
; βββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:579 within `literal_pow`
; ββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:83 within `*` @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:110
; βββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:199 within `scale_tuple`
; ββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:156 within `macro expansion`
; βββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:286 within `*`
; ββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:218 within `dual_definition_retval`
; βββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:118 within `_mul_partials`
; ββββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:219 within `mul_tuples`
; βββββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:156 within `macro expansion`
; ββββββββββββββββββ @ float.jl:409 within `+`
%10 = extractelement <2 x double> %9, i64 0
%11 = fadd double %10, 2.000000e+00
%12 = fadd double %10, 0.000000e+00
; ββββββββββββββββββ
; βββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:286 within `*`
; ββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:218 within `dual_definition_retval`
; βββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:118 within `_mul_partials`
; ββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:219 within `mul_tuples`
; βββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:156 within `macro expansion`
; ββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:286 within `*`
; βββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:218 within `dual_definition_retval`
; ββββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:118 within `_mul_partials`
; βββββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:219 within `mul_tuples`
; ββββββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:156 within `macro expansion`
; βββββββββββββββββββ @ float.jl:411 within `*`
%13 = extractelement <2 x double> %6, i64 1
%14 = fmul double %13, %11
; βββββββββββββββββββ
; βββββββββββββββββββ @ float.jl:409 within `+`
%15 = fadd double %10, %14
; βββββββββββββββββββ
; βββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:578 within `literal_pow` @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:578
; ββββββββββ @ promotion.jl:423 within `*` @ float.jl:411
%16 = fmul double %13, 2.000000e+00
; ββββββββββ
; βββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:577 within `literal_pow` @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:577 @ intfuncs.jl:332
; ββββββββββ @ float.jl:411 within `*`
%17 = insertelement <2 x double> %6, double %16, i64 1
%18 = insertelement <2 x double> %6, double 3.000000e+00, i64 1
%19 = fmul <2 x double> %17, %18
; ββββββββββ
; βββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:286 within `*`
; ββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:218 within `dual_definition_retval`
; βββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:118 within `_mul_partials`
; ββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:219 within `mul_tuples`
; βββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:156 within `macro expansion`
; ββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:286 within `*`
; βββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:218 within `dual_definition_retval`
; ββββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:118 within `_mul_partials`
; βββββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:219 within `mul_tuples`
; ββββββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:156 within `macro expansion`
; βββββββββββββββββββ @ float.jl:411 within `*`
%20 = fmul <2 x double> %19, zeroinitializer
; βββββββββββββββββββ
; βββββββββββββββββββ @ float.jl:409 within `+`
%21 = fadd <2 x double> %9, %20
%22 = extractelement <2 x double> %21, i64 0
; βββββββββββββββββββ
; ββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:487 within `+` @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:80
; βββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:207 within `add_tuples`
; ββββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:156 within `macro expansion`
; βββββββββββββββββ @ float.jl:409 within `+`
%23 = fadd double %22, %15
; βββββββββββββββββ
; βββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:693 within `sin`
; ββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:703 within `sincos`
%24 = extractelement <2 x double> %6, i64 0
call void @j_sincos_345([2 x double]* noalias nocapture noundef nonnull sret([2 x double]) %2, double %24)
; ββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:704 within `sincos`
; βββββββββββ @ float.jl:407 within `-`
%unbox7 = load double, double* %3, align 8
; βββββββββββ
; βββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:286 within `*`
; ββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:218 within `dual_definition_retval`
; βββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:118 within `_mul_partials`
; ββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:219 within `mul_tuples`
; βββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:156 within `macro expansion`
; ββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:286 within `*`
; βββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:218 within `dual_definition_retval`
; ββββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:118 within `_mul_partials`
; βββββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:219 within `mul_tuples`
; ββββββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:156 within `macro expansion`
; βββββββββββββββββββ @ float.jl:411 within `*`
%25 = insertelement <2 x double> %6, double %unbox7, i64 0
%26 = insertelement <2 x double> <double 0.000000e+00, double poison>, double %12, i64 1
%27 = fmul <2 x double> %25, %26
; βββββββββββββββββββ
; βββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:694 within `sin`
; ββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:83 within `*` @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:110
; βββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:199 within `scale_tuple`
; ββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:156 within `macro expansion`
; βββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:286 within `*`
; ββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:218 within `dual_definition_retval`
; βββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:118 within `_mul_partials`
; ββββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:219 within `mul_tuples`
; βββββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:156 within `macro expansion`
; ββββββββββββββββββ @ float.jl:411 within `*`
%unbox8 = load double, double* %4, align 8
%28 = fmul double %unbox8, 0.000000e+00
; ββββββββββββββββββ
; ββββββββββββββββββ @ float.jl:409 within `+`
%29 = fsub double %28, %unbox7
; ββββββββββββββββββ
; βββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:286 within `*`
; ββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:218 within `dual_definition_retval`
; βββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:118 within `_mul_partials`
; ββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:219 within `mul_tuples`
; βββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:156 within `macro expansion`
; ββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:286 within `*`
; βββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:218 within `dual_definition_retval`
; ββββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:118 within `_mul_partials`
; βββββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:219 within `mul_tuples`
; ββββββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:156 within `macro expansion`
; βββββββββββββββββββ @ float.jl:409 within `+`
%30 = insertelement <2 x double> poison, double %28, i64 0
%31 = shufflevector <2 x double> %30, <2 x double> %8, <2 x i32> <i32 0, i32 2>
%32 = fadd <2 x double> %31, %27
%33 = fsub <2 x double> %31, %27
%34 = shufflevector <2 x double> %32, <2 x double> %33, <2 x i32> <i32 1, i32 2>
; βββββββββββββββββββ
; βββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:578 within `literal_pow` @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:579
; ββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:83 within `*` @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:110
; βββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:199 within `scale_tuple`
; ββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:156 within `macro expansion`
; βββββββββββββ @ float.jl:411 within `*`
%35 = fmul double %16, 0.000000e+00
; βββββββββββββ
; βββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:578 within `literal_pow`
; ββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:296 within `*`
; βββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:215 within `dual_definition_retval`
; ββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:83 within `*` @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:110
; βββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:199 within `scale_tuple`
; ββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:156 within `macro expansion`
; βββββββββββββββ @ promotion.jl:423 within `*` @ float.jl:411
%36 = fmul double %35, 3.000000e+00
; βββββββββββββββ
; βββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:286 within `*`
; ββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:218 within `dual_definition_retval`
; βββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:118 within `_mul_partials`
; ββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:219 within `mul_tuples`
; βββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:156 within `macro expansion`
; ββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:286 within `*`
; βββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:218 within `dual_definition_retval`
; ββββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:118 within `_mul_partials`
; βββββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:219 within `mul_tuples`
; ββββββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:156 within `macro expansion`
; βββββββββββββββββββ @ float.jl:411 within `*`
%37 = fmul <2 x double> %9, zeroinitializer
; βββββββββββββββββββ
; βββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:579 within `literal_pow`
; ββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:83 within `*` @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:110
; βββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:199 within `scale_tuple`
; ββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:156 within `macro expansion`
; βββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:286 within `*`
; ββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:218 within `dual_definition_retval`
; βββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:118 within `_mul_partials`
; ββββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:219 within `mul_tuples`
; βββββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:156 within `macro expansion`
; ββββββββββββββββββ @ float.jl:411 within `*`
%38 = fmul double %36, 0.000000e+00
; ββββββββββββββββββ
; ββββββββββββββββββ @ float.jl:409 within `+`
%39 = extractelement <2 x double> %37, i64 1
%40 = fadd double %39, %38
; ββββββββββββββββββ
; βββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:286 within `*`
; ββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:218 within `dual_definition_retval`
; βββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:118 within `_mul_partials`
; ββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:219 within `mul_tuples`
; βββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:156 within `macro expansion`
; ββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:286 within `*`
; βββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:218 within `dual_definition_retval`
; ββββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:118 within `_mul_partials`
; βββββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:219 within `mul_tuples`
; ββββββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:156 within `macro expansion`
; βββββββββββββββββββ @ float.jl:409 within `+`
%41 = fadd <2 x double> %37, %20
; βββββββββββββββββββ
; βββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:487 within `+` @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:80
; ββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:207 within `add_tuples`
; βββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:156 within `macro expansion`
; ββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:487 within `+` @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:80
; βββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:207 within `add_tuples`
; ββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:156 within `macro expansion`
; βββββββββββββββ @ float.jl:409 within `+`
%42 = fadd double %29, %40
; βββββββββββββββ
; βββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:286 within `*`
; ββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:218 within `dual_definition_retval`
; βββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:118 within `_mul_partials`
; ββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:219 within `mul_tuples`
; βββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:156 within `macro expansion`
; ββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/dual.jl:487 within `+` @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:80
; βββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:207 within `add_tuples`
; ββββββββββββββββ @ /home/tremelow/.julia/packages/ForwardDiff/X74OO/src/partials.jl:156 within `macro expansion`
; βββββββββββββββββ @ float.jl:409 within `+`
%43 = fadd <2 x double> %41, %34
; βββββββββββββββββ
store double %23, double* %newstruct13.sroa.0.0..sroa_idx, align 8
store double %42, double* %newstruct13.sroa.2.0..sroa_idx14, align 8
%44 = bitcast double* %newstruct13.sroa.3.0..sroa_idx15 to <2 x double>*
store <2 x double> %43, <2 x double>* %44, align 8
ret void
}