ERROR: Enzyme execution failed.
Enzyme compilation failed.
Current scope: 
; Function Attrs: mustprogress willreturn
define internal fastcc void @preprocess_julia_sqrt_13911([2 x double]* noalias nocapture nofree noundef nonnull writeonly sret([2 x double]) align 8 dereferenceable(16) %0, [2 x double] addrspace(11)* nocapture noundef nonnull readonly align 8 dereferenceable(16) "enzymejl_parmtype"="132501377410576" "enzymejl_parmtype_ref"="1" %1) unnamed_addr #79 !dbg !9095 {
top:
  %2 = call noalias nonnull dereferenceable(16) dereferenceable_or_null(16) i8* @malloc(i64 16), !enzyme_fromstack !5228
  %3 = bitcast i8* %2 to { double, i64 }*, !enzyme_caststack !68
  %4 = call {}*** @julia.get_pgcstack() #81
  %ptls_field93 = getelementptr inbounds {}**, {}*** %4, i64 2
  %5 = bitcast {}*** %ptls_field93 to i64***
  %ptls_load9495 = load i64**, i64*** %5, align 8, !tbaa !69
  %6 = getelementptr inbounds i64*, i64** %ptls_load9495, i64 2
  %safepoint = load i64*, i64** %6, align 8, !tbaa !73, !invariant.load !68
  fence syncscope("singlethread") seq_cst
  call void @julia.safepoint(i64* %safepoint) #81, !dbg !9096
  fence syncscope("singlethread") seq_cst
  %7 = getelementptr inbounds [2 x double], [2 x double] addrspace(11)* %1, i64 0, i64 0, !dbg !9097
  %memcpy_refined_src = getelementptr inbounds [2 x double], [2 x double] addrspace(11)* %1, i64 0, i64 1, !dbg !9101
  %unbox = load double, double addrspace(11)* %7, align 8, !dbg !9103, !tbaa !73, !invariant.load !68, !alias.scope !187, !noalias !188
  %unbox2 = load double, double addrspace(11)* %memcpy_refined_src, align 8, !dbg !9103, !tbaa !73, !invariant.load !68, !alias.scope !187, !noalias !188
  %8 = fcmp oeq double %unbox, %unbox2, !dbg !9103
  %9 = fcmp oeq double %unbox2, 0.000000e+00, !dbg !9104
  %value_phi = and i1 %8, %9, !dbg !9104
  br i1 %value_phi, label %L12, label %L14, !dbg !9104

common.ret:                                       ; preds = %L237, %L12
  ret void, !dbg !9105

L12:                                              ; preds = %top
  %newstruct.sroa.0.0..sroa_idx = getelementptr inbounds [2 x double], [2 x double]* %0, i64 0, i64 0, !dbg !9106
  store double 0.000000e+00, double* %newstruct.sroa.0.0..sroa_idx, align 8, !dbg !9106, !noalias !9107
  %newstruct.sroa.2.0..sroa_idx89 = getelementptr inbounds [2 x double], [2 x double]* %0, i64 0, i64 1, !dbg !9106
  store double %unbox2, double* %newstruct.sroa.2.0..sroa_idx89, align 8, !dbg !9106, !noalias !9107
  br label %common.ret

L14:                                              ; preds = %top
  call fastcc void @julia_ssqs_13915({ double, i64 }* noalias nocapture nofree noundef nonnull writeonly sret({ double, i64 }) align 8 dereferenceable(16) %3, double %unbox, double %unbox2) #81, !dbg !9110
  %10 = getelementptr inbounds { double, i64 }, { double, i64 }* %3, i64 0, i32 0, !dbg !9111
  %11 = getelementptr inbounds { double, i64 }, { double, i64 }* %3, i64 0, i32 1, !dbg !9112
  %12 = fsub double %unbox, %unbox, !dbg !9113
  %13 = fcmp uno double %12, 0.000000e+00, !dbg !9116
  br i1 %13, label %L14.L114_crit_edge, label %L21, !dbg !9115

L14.L114_crit_edge:                               ; preds = %L14
  %unbox70 = load double, double* %10, align 8
  %unbox14.pre = load i64, i64* %11, align 8, !dbg !9118, !tbaa !206, !alias.scope !208, !noalias !289
  br label %L114, !dbg !9115

L21:                                              ; preds = %L14
  %14 = call double @llvm.fabs.f64(double %unbox) #81, !dbg !9121
  %unbox10 = load i64, i64* %11, align 8, !dbg !9122, !tbaa !206, !alias.scope !208, !noalias !289
  %15 = sub i64 0, %unbox10, !dbg !9122
  %bitcast_coercion = bitcast double %14 to i64, !dbg !9123
  %16 = and i64 %bitcast_coercion, 9223372036854775807, !dbg !9126
  %17 = icmp ult i64 %16, 9218868437227405312, !dbg !9128
  br i1 %17, label %L28, label %L111, !dbg !9130

L28:                                              ; preds = %L21
  %18 = lshr i64 %16, 52, !dbg !9131
  %19 = icmp ugt i64 %16, 4503599627370495, !dbg !9134
  br i1 %19, label %L69, label %L34, !dbg !9135

L34:                                              ; preds = %L28
  %.not98 = icmp eq i64 %16, 0, !dbg !9136
  br i1 %.not98, label %L111, label %L38, !dbg !9138

L38:                                              ; preds = %L34
  %20 = call i64 @llvm.ctlz.i64(i64 %16, i1 noundef true) #81, !dbg !9139, !range !1568
  %21 = add nsw i64 %20, -11, !dbg !9141
  %22 = shl i64 %16, %21, !dbg !9142
  %23 = icmp ugt i64 %21, 63, !dbg !9142
  %24 = select i1 %23, i64 0, i64 %22, !dbg !9142
  %25 = and i64 %bitcast_coercion, -9223372036854775808, !dbg !9144
  %26 = or i64 %24, %25, !dbg !9146
  %27 = sub nsw i64 12, %20, !dbg !9147
  %28 = icmp sgt i64 %15, -50001, !dbg !9149
  br i1 %28, label %L69, label %L48, !dbg !9150

L48:                                              ; preds = %L38
  %bitcast_coercion53 = bitcast i64 %25 to double, !dbg !9151
  br label %L111, !dbg !9150

L69:                                              ; preds = %L38, %L28
  %value_phi54 = phi i64 [ %18, %L28 ], [ %27, %L38 ]
  %value_phi55 = phi i64 [ %bitcast_coercion, %L28 ], [ %26, %L38 ]
  %29 = sub i64 %value_phi54, %unbox10, !dbg !9152
  %30 = icmp slt i64 %29, 2047, !dbg !9154
  br i1 %30, label %L77, label %L72, !dbg !9156

L72:                                              ; preds = %L69
  %31 = and i64 %bitcast_coercion, -9223372036854775808, !dbg !9157
  %32 = or i64 %31, 9218868437227405312, !dbg !9157
  %bitcast_coercion61 = bitcast i64 %32 to double, !dbg !9157
  br label %L111, !dbg !9158

L77:                                              ; preds = %L69
  %33 = icmp slt i64 %29, 1, !dbg !9159
  br i1 %33, label %L87, label %L79, !dbg !9161

L79:                                              ; preds = %L77
  %34 = and i64 %value_phi55, -9218868437227405313, !dbg !9162
  %35 = shl nuw nsw i64 %29, 52, !dbg !9164
  %36 = or i64 %34, %35, !dbg !9166
  %bitcast_coercion62 = bitcast i64 %36 to double, !dbg !9167
  br label %L111, !dbg !9168

L87:                                              ; preds = %L77
  %37 = icmp sgt i64 %29, -52, !dbg !9169
  br i1 %37, label %L101, label %L89, !dbg !9170

L89:                                              ; preds = %L87
  %38 = icmp slt i64 %15, 50001, !dbg !9171
  br i1 %38, label %L96, label %L91, !dbg !9173

L91:                                              ; preds = %L89
  %39 = and i64 %bitcast_coercion, -9223372036854775808, !dbg !9174
  %40 = or i64 %39, 9218868437227405312, !dbg !9174
  %bitcast_coercion64 = bitcast i64 %40 to double, !dbg !9174
  br label %L111, !dbg !9173

L96:                                              ; preds = %L89
  %41 = and i64 %bitcast_coercion, -9223372036854775808, !dbg !9175
  %bitcast_coercion66 = bitcast i64 %41 to double, !dbg !9175
  br label %L111, !dbg !9176

L101:                                             ; preds = %L87
  %42 = and i64 %value_phi55, -9218868437227405313, !dbg !9177
  %43 = shl nsw i64 %29, 52, !dbg !9179
  %44 = add i64 %43, 234187180623265792, !dbg !9179
  %45 = or i64 %44, %42, !dbg !9181
  %bitcast_coercion67 = bitcast i64 %45 to double, !dbg !9182
  %46 = fmul double %bitcast_coercion67, 0x3CB0000000000000, !dbg !9184
  br label %L111, !dbg !9183

L111:                                             ; preds = %L101, %L96, %L91, %L79, %L72, %L48, %L34, %L21
  %value_phi11 = phi double [ %bitcast_coercion53, %L48 ], [ %bitcast_coercion61, %L72 ], [ %bitcast_coercion62, %L79 ], [ %bitcast_coercion64, %L91 ], [ %bitcast_coercion66, %L96 ], [ %46, %L101 ], [ %14, %L21 ], [ %14, %L34 ]
  %unbox12 = load double, double* %10, align 8, !dbg !9115, !tbaa !206, !alias.scope !208, !noalias !289
  %47 = call fastcc double @julia_sqrt_13785(double %unbox12) #82, !dbg !9115
  %48 = fadd double %value_phi11, %47, !dbg !9185
  br label %L114, !dbg !9185

L114:                                             ; preds = %L111, %L14.L114_crit_edge
  %unbox48 = phi i64 [ %unbox10, %L111 ], [ %unbox14.pre, %L14.L114_crit_edge ], !dbg !9118
  %value_phi13 = phi double [ %48, %L111 ], [ %unbox70, %L14.L114_crit_edge ]
  %49 = and i64 %unbox48, 1, !dbg !9186
  %50 = icmp eq i64 %49, 0, !dbg !9186
  br i1 %50, label %pass51, label %pass17, !dbg !9120

L125:                                             ; preds = %pass51, %pass17
  %value_phi18 = phi i64 [ %92, %pass17 ], [ %94, %pass51 ]
  %value_phi19 = phi double [ %value_phi13, %pass17 ], [ %95, %pass51 ]
  %51 = call fastcc double @julia_sqrt_13785(double %value_phi19) #82, !dbg !9188
  %bitcast_coercion20 = bitcast double %51 to i64, !dbg !9189
  %52 = and i64 %bitcast_coercion20, 9223372036854775807, !dbg !9192
  %53 = icmp ult i64 %52, 9218868437227405312, !dbg !9194
  br i1 %53, label %L133, label %L216, !dbg !9196

L133:                                             ; preds = %L125
  %54 = lshr i64 %52, 52, !dbg !9197
  %55 = icmp ugt i64 %52, 4503599627370495, !dbg !9200
  br i1 %55, label %L174, label %L139, !dbg !9201

L139:                                             ; preds = %L133
  %.not97 = icmp eq i64 %52, 0, !dbg !9202
  br i1 %.not97, label %L216, label %L143, !dbg !9204

L143:                                             ; preds = %L139
  %56 = call i64 @llvm.ctlz.i64(i64 %52, i1 noundef true) #81, !dbg !9205, !range !1568
  %57 = add nsw i64 %56, -11, !dbg !9207
  %58 = shl i64 %52, %57, !dbg !9208
  %59 = icmp ugt i64 %57, 63, !dbg !9208
  %60 = select i1 %59, i64 0, i64 %58, !dbg !9208
  %61 = and i64 %bitcast_coercion20, -9223372036854775808, !dbg !9210
  %62 = or i64 %60, %61, !dbg !9212
  %63 = sub nsw i64 12, %56, !dbg !9213
  %64 = icmp sgt i64 %value_phi18, -50001, !dbg !9215
  br i1 %64, label %L174, label %L153, !dbg !9216

L153:                                             ; preds = %L143
  %bitcast_coercion33 = bitcast i64 %61 to double, !dbg !9217
  br label %L216, !dbg !9216

L174:                                             ; preds = %L143, %L133
  %value_phi34 = phi i64 [ %54, %L133 ], [ %63, %L143 ]
  %value_phi35 = phi i64 [ %bitcast_coercion20, %L133 ], [ %62, %L143 ]
  %65 = add nsw i64 %value_phi34, %value_phi18, !dbg !9218
  %66 = icmp slt i64 %65, 2047, !dbg !9220
  br i1 %66, label %L182, label %L177, !dbg !9222

L177:                                             ; preds = %L174
  %67 = and i64 %bitcast_coercion20, -9223372036854775808, !dbg !9223
  %68 = or i64 %67, 9218868437227405312, !dbg !9223
  %bitcast_coercion41 = bitcast i64 %68 to double, !dbg !9223
  br label %L216, !dbg !9224

L182:                                             ; preds = %L174
  %69 = icmp slt i64 %65, 1, !dbg !9225
  br i1 %69, label %L192, label %L184, !dbg !9227

L184:                                             ; preds = %L182
  %70 = and i64 %value_phi35, -9218868437227405313, !dbg !9228
  %71 = shl nuw nsw i64 %65, 52, !dbg !9230
  %72 = or i64 %70, %71, !dbg !9232
  %bitcast_coercion42 = bitcast i64 %72 to double, !dbg !9233
  br label %L216, !dbg !9234

L192:                                             ; preds = %L182
  %73 = icmp sgt i64 %65, -52, !dbg !9235
  br i1 %73, label %L206, label %L194, !dbg !9236

L194:                                             ; preds = %L192
  %74 = icmp slt i64 %value_phi18, 50001, !dbg !9237
  br i1 %74, label %L201, label %L196, !dbg !9239

L196:                                             ; preds = %L194
  %75 = and i64 %bitcast_coercion20, -9223372036854775808, !dbg !9240
  %76 = or i64 %75, 9218868437227405312, !dbg !9240
  %bitcast_coercion44 = bitcast i64 %76 to double, !dbg !9240
  br label %L216, !dbg !9239

L201:                                             ; preds = %L194
  %77 = and i64 %bitcast_coercion20, -9223372036854775808, !dbg !9241
  %bitcast_coercion46 = bitcast i64 %77 to double, !dbg !9241
  br label %L216, !dbg !9242

L206:                                             ; preds = %L192
  %78 = and i64 %value_phi35, -9218868437227405313, !dbg !9243
  %79 = shl nsw i64 %65, 52, !dbg !9245
  %80 = add i64 %79, 234187180623265792, !dbg !9245
  %81 = or i64 %80, %78, !dbg !9247
  %bitcast_coercion47 = bitcast i64 %81 to double, !dbg !9248
  %82 = fmul double %bitcast_coercion47, 0x3CB0000000000000, !dbg !9250
  br label %L216, !dbg !9249

L216:                                             ; preds = %L206, %L201, %L196, %L184, %L177, %L153, %L139, %L125
  %value_phi21 = phi double [ %bitcast_coercion33, %L153 ], [ %bitcast_coercion41, %L177 ], [ %bitcast_coercion42, %L184 ], [ %bitcast_coercion44, %L196 ], [ %bitcast_coercion46, %L201 ], [ %82, %L206 ], [ %51, %L125 ], [ %51, %L139 ]
  %83 = fcmp oeq double %value_phi21, 0.000000e+00, !dbg !9251
  br i1 %83, label %L216.L237_crit_edge, label %L222, !dbg !9254

L216.L237_crit_edge:                              ; preds = %L216
  %unbox84 = load double, double addrspace(11)* %memcpy_refined_src, align 8
  br label %L237, !dbg !9254

L222:                                             ; preds = %L216
  %84 = fsub double %unbox2, %unbox2, !dbg !9255
  %85 = fcmp uno double %84, 0.000000e+00, !dbg !9258
  br i1 %85, label %L222.L228_crit_edge, label %L226, !dbg !9257

L222.L228_crit_edge:                              ; preds = %L222
  %unbox77 = load double, double addrspace(11)* %memcpy_refined_src, align 8
  br label %L228, !dbg !9257

L226:                                             ; preds = %L222
  %86 = fdiv double %unbox2, %value_phi21, !dbg !9260
  %87 = fmul double %86, 5.000000e-01, !dbg !9261
  br label %L228, !dbg !9261

L228:                                             ; preds = %L226, %L222.L228_crit_edge
  %unbox28 = phi double [ %unbox2, %L226 ], [ %unbox77, %L222.L228_crit_edge ]
  %value_phi25 = phi double [ %87, %L226 ], [ %unbox77, %L222.L228_crit_edge ]
  %88 = fcmp uge double %unbox, 0.000000e+00, !dbg !9263
  br i1 %88, label %L237, label %L235, !dbg !9265

L235:                                             ; preds = %L228
  %89 = call double @llvm.fabs.f64(double %value_phi25) #81, !dbg !9266
  %90 = call double @llvm.copysign.f64(double %value_phi21, double %unbox28) #81, !dbg !9268
  br label %L237, !dbg !9268

L237:                                             ; preds = %L235, %L228, %L216.L237_crit_edge
  %value_phi29 = phi double [ %90, %L235 ], [ %unbox84, %L216.L237_crit_edge ], [ %value_phi25, %L228 ]
  %value_phi30 = phi double [ %89, %L235 ], [ %value_phi21, %L216.L237_crit_edge ], [ %value_phi21, %L228 ]
  %newstruct31.sroa.0.0..sroa_idx = getelementptr inbounds [2 x double], [2 x double]* %0, i64 0, i64 0, !dbg !9270
  store double %value_phi30, double* %newstruct31.sroa.0.0..sroa_idx, align 8, !dbg !9270, !noalias !9107
  %newstruct31.sroa.2.0..sroa_idx88 = getelementptr inbounds [2 x double], [2 x double]* %0, i64 0, i64 1, !dbg !9270
  store double %value_phi29, double* %newstruct31.sroa.2.0..sroa_idx88, align 8, !dbg !9270, !noalias !9107
  br label %common.ret

pass17:                                           ; preds = %L114
  %91 = add i64 %unbox48, -1, !dbg !9272
  %92 = sdiv i64 %91, 2, !dbg !9274
  br label %L125, !dbg !9274

pass51:                                           ; preds = %L114
  %93 = sdiv i64 %unbox48, 2, !dbg !9275
  %94 = add nsw i64 %93, -1, !dbg !9277
  %95 = fadd double %value_phi13, %value_phi13, !dbg !9278
  br label %L125, !dbg !9278
}

; Function Attrs: mustprogress willreturn
define internal fastcc void @preprocess_julia_sqrt_13911([2 x double]* noalias nocapture nofree noundef nonnull writeonly sret([2 x double]) align 8 dereferenceable(16) %0, [2 x double] addrspace(11)* nocapture noundef nonnull readonly align 8 dereferenceable(16) "enzymejl_parmtype"="132501377410576" "enzymejl_parmtype_ref"="1" %1) unnamed_addr #79 !dbg !9095 {
top:
  %2 = call noalias nonnull dereferenceable(16) dereferenceable_or_null(16) i8* @malloc(i64 16), !enzyme_fromstack !5228
  %3 = bitcast i8* %2 to { double, i64 }*, !enzyme_caststack !68
  %4 = call {}*** @julia.get_pgcstack() #81
  %ptls_field93 = getelementptr inbounds {}**, {}*** %4, i64 2
  %5 = bitcast {}*** %ptls_field93 to i64***
  %ptls_load9495 = load i64**, i64*** %5, align 8, !tbaa !69
  %6 = getelementptr inbounds i64*, i64** %ptls_load9495, i64 2
  %safepoint = load i64*, i64** %6, align 8, !tbaa !73, !invariant.load !68
  fence syncscope("singlethread") seq_cst
  call void @julia.safepoint(i64* %safepoint) #81, !dbg !9096
  fence syncscope("singlethread") seq_cst
  %7 = getelementptr inbounds [2 x double], [2 x double] addrspace(11)* %1, i64 0, i64 0, !dbg !9097
  %memcpy_refined_src = getelementptr inbounds [2 x double], [2 x double] addrspace(11)* %1, i64 0, i64 1, !dbg !9101
  %unbox = load double, double addrspace(11)* %7, align 8, !dbg !9103, !tbaa !73, !invariant.load !68, !alias.scope !187, !noalias !188
  %unbox2 = load double, double addrspace(11)* %memcpy_refined_src, align 8, !dbg !9103, !tbaa !73, !invariant.load !68, !alias.scope !187, !noalias !188
  %8 = fcmp oeq double %unbox, %unbox2, !dbg !9103
  %9 = fcmp oeq double %unbox2, 0.000000e+00, !dbg !9104
  %value_phi = and i1 %8, %9, !dbg !9104
  br i1 %value_phi, label %L12, label %L14, !dbg !9104

common.ret:                                       ; preds = %L237, %L12
  ret void, !dbg !9105

L12:                                              ; preds = %top
  %newstruct.sroa.0.0..sroa_idx = getelementptr inbounds [2 x double], [2 x double]* %0, i64 0, i64 0, !dbg !9106
  store double 0.000000e+00, double* %newstruct.sroa.0.0..sroa_idx, align 8, !dbg !9106, !noalias !9107
  %newstruct.sroa.2.0..sroa_idx89 = getelementptr inbounds [2 x double], [2 x double]* %0, i64 0, i64 1, !dbg !9106
  store double %unbox2, double* %newstruct.sroa.2.0..sroa_idx89, align 8, !dbg !9106, !noalias !9107
  br label %common.ret

L14:                                              ; preds = %top
  call fastcc void @julia_ssqs_13915({ double, i64 }* noalias nocapture nofree noundef nonnull writeonly sret({ double, i64 }) align 8 dereferenceable(16) %3, double %unbox, double %unbox2) #81, !dbg !9110
  %10 = getelementptr inbounds { double, i64 }, { double, i64 }* %3, i64 0, i32 0, !dbg !9111
  %11 = getelementptr inbounds { double, i64 }, { double, i64 }* %3, i64 0, i32 1, !dbg !9112
  %12 = fsub double %unbox, %unbox, !dbg !9113
  %13 = fcmp uno double %12, 0.000000e+00, !dbg !9116
  br i1 %13, label %L14.L114_crit_edge, label %L21, !dbg !9115

L14.L114_crit_edge:                               ; preds = %L14
  %unbox70 = load double, double* %10, align 8
  %unbox14.pre = load i64, i64* %11, align 8, !dbg !9118, !tbaa !206, !alias.scope !208, !noalias !289
  br label %L114, !dbg !9115

L21:                                              ; preds = %L14
  %14 = call double @llvm.fabs.f64(double %unbox) #81, !dbg !9121
  %unbox10 = load i64, i64* %11, align 8, !dbg !9122, !tbaa !206, !alias.scope !208, !noalias !289
  %15 = sub i64 0, %unbox10, !dbg !9122
  %bitcast_coercion = bitcast double %14 to i64, !dbg !9123
  %16 = and i64 %bitcast_coercion, 9223372036854775807, !dbg !9126
  %17 = icmp ult i64 %16, 9218868437227405312, !dbg !9128
  br i1 %17, label %L28, label %L111, !dbg !9130

L28:                                              ; preds = %L21
  %18 = lshr i64 %16, 52, !dbg !9131
  %19 = icmp ugt i64 %16, 4503599627370495, !dbg !9134
  br i1 %19, label %L69, label %L34, !dbg !9135

L34:                                              ; preds = %L28
  %.not98 = icmp eq i64 %16, 0, !dbg !9136
  br i1 %.not98, label %L111, label %L38, !dbg !9138

L38:                                              ; preds = %L34
  %20 = call i64 @llvm.ctlz.i64(i64 %16, i1 noundef true) #81, !dbg !9139, !range !1568
  %21 = add nsw i64 %20, -11, !dbg !9141
  %22 = shl i64 %16, %21, !dbg !9142
  %23 = icmp ugt i64 %21, 63, !dbg !9142
  %24 = select i1 %23, i64 0, i64 %22, !dbg !9142
  %25 = and i64 %bitcast_coercion, -9223372036854775808, !dbg !9144
  %26 = or i64 %24, %25, !dbg !9146
  %27 = sub nsw i64 12, %20, !dbg !9147
  %28 = icmp sgt i64 %15, -50001, !dbg !9149
  br i1 %28, label %L69, label %L48, !dbg !9150

L48:                                              ; preds = %L38
  %bitcast_coercion53 = bitcast i64 %25 to double, !dbg !9151
  br label %L111, !dbg !9150

L69:                                              ; preds = %L38, %L28
  %value_phi54 = phi i64 [ %18, %L28 ], [ %27, %L38 ]
  %value_phi55 = phi i64 [ %bitcast_coercion, %L28 ], [ %26, %L38 ]
  %29 = sub i64 %value_phi54, %unbox10, !dbg !9152
  %30 = icmp slt i64 %29, 2047, !dbg !9154
  br i1 %30, label %L77, label %L72, !dbg !9156

L72:                                              ; preds = %L69
  %31 = and i64 %bitcast_coercion, -9223372036854775808, !dbg !9157
  %32 = or i64 %31, 9218868437227405312, !dbg !9157
  %bitcast_coercion61 = bitcast i64 %32 to double, !dbg !9157
  br label %L111, !dbg !9158

L77:                                              ; preds = %L69
  %33 = icmp slt i64 %29, 1, !dbg !9159
  br i1 %33, label %L87, label %L79, !dbg !9161

L79:                                              ; preds = %L77
  %34 = and i64 %value_phi55, -9218868437227405313, !dbg !9162
  %35 = shl nuw nsw i64 %29, 52, !dbg !9164
  %36 = or i64 %34, %35, !dbg !9166
  %bitcast_coercion62 = bitcast i64 %36 to double, !dbg !9167
  br label %L111, !dbg !9168

L87:                                              ; preds = %L77
  %37 = icmp sgt i64 %29, -52, !dbg !9169
  br i1 %37, label %L101, label %L89, !dbg !9170

L89:                                              ; preds = %L87
  %38 = icmp slt i64 %15, 50001, !dbg !9171
  br i1 %38, label %L96, label %L91, !dbg !9173

L91:                                              ; preds = %L89
  %39 = and i64 %bitcast_coercion, -9223372036854775808, !dbg !9174
  %40 = or i64 %39, 9218868437227405312, !dbg !9174
  %bitcast_coercion64 = bitcast i64 %40 to double, !dbg !9174
  br label %L111, !dbg !9173

L96:                                              ; preds = %L89
  %41 = and i64 %bitcast_coercion, -9223372036854775808, !dbg !9175
  %bitcast_coercion66 = bitcast i64 %41 to double, !dbg !9175
  br label %L111, !dbg !9176

L101:                                             ; preds = %L87
  %42 = and i64 %value_phi55, -9218868437227405313, !dbg !9177
  %43 = shl nsw i64 %29, 52, !dbg !9179
  %44 = add i64 %43, 234187180623265792, !dbg !9179
  %45 = or i64 %44, %42, !dbg !9181
  %bitcast_coercion67 = bitcast i64 %45 to double, !dbg !9182
  %46 = fmul double %bitcast_coercion67, 0x3CB0000000000000, !dbg !9184
  br label %L111, !dbg !9183

L111:                                             ; preds = %L101, %L96, %L91, %L79, %L72, %L48, %L34, %L21
  %value_phi11 = phi double [ %bitcast_coercion53, %L48 ], [ %bitcast_coercion61, %L72 ], [ %bitcast_coercion62, %L79 ], [ %bitcast_coercion64, %L91 ], [ %bitcast_coercion66, %L96 ], [ %46, %L101 ], [ %14, %L21 ], [ %14, %L34 ]
  %unbox12 = load double, double* %10, align 8, !dbg !9115, !tbaa !206, !alias.scope !208, !noalias !289
  %47 = call fastcc double @julia_sqrt_13785(double %unbox12) #82, !dbg !9115
  %48 = fadd double %value_phi11, %47, !dbg !9185
  br label %L114, !dbg !9185

L114:                                             ; preds = %L111, %L14.L114_crit_edge
  %unbox48 = phi i64 [ %unbox10, %L111 ], [ %unbox14.pre, %L14.L114_crit_edge ], !dbg !9118
  %value_phi13 = phi double [ %48, %L111 ], [ %unbox70, %L14.L114_crit_edge ]
  %49 = and i64 %unbox48, 1, !dbg !9186
  %50 = icmp eq i64 %49, 0, !dbg !9186
  br i1 %50, label %pass51, label %pass17, !dbg !9120

L125:                                             ; preds = %pass51, %pass17
  %value_phi18 = phi i64 [ %92, %pass17 ], [ %94, %pass51 ]
  %value_phi19 = phi double [ %value_phi13, %pass17 ], [ %95, %pass51 ]
  %51 = call fastcc double @julia_sqrt_13785(double %value_phi19) #82, !dbg !9188
  %bitcast_coercion20 = bitcast double %51 to i64, !dbg !9189
  %52 = and i64 %bitcast_coercion20, 9223372036854775807, !dbg !9192
  %53 = icmp ult i64 %52, 9218868437227405312, !dbg !9194
  br i1 %53, label %L133, label %L216, !dbg !9196

L133:                                             ; preds = %L125
  %54 = lshr i64 %52, 52, !dbg !9197
  %55 = icmp ugt i64 %52, 4503599627370495, !dbg !9200
  br i1 %55, label %L174, label %L139, !dbg !9201

L139:                                             ; preds = %L133
  %.not97 = icmp eq i64 %52, 0, !dbg !9202
  br i1 %.not97, label %L216, label %L143, !dbg !9204

L143:                                             ; preds = %L139
  %56 = call i64 @llvm.ctlz.i64(i64 %52, i1 noundef true) #81, !dbg !9205, !range !1568
  %57 = add nsw i64 %56, -11, !dbg !9207
  %58 = shl i64 %52, %57, !dbg !9208
  %59 = icmp ugt i64 %57, 63, !dbg !9208
  %60 = select i1 %59, i64 0, i64 %58, !dbg !9208
  %61 = and i64 %bitcast_coercion20, -9223372036854775808, !dbg !9210
  %62 = or i64 %60, %61, !dbg !9212
  %63 = sub nsw i64 12, %56, !dbg !9213
  %64 = icmp sgt i64 %value_phi18, -50001, !dbg !9215
  br i1 %64, label %L174, label %L153, !dbg !9216

L153:                                             ; preds = %L143
  %bitcast_coercion33 = bitcast i64 %61 to double, !dbg !9217
  br label %L216, !dbg !9216

L174:                                             ; preds = %L143, %L133
  %value_phi34 = phi i64 [ %54, %L133 ], [ %63, %L143 ]
  %value_phi35 = phi i64 [ %bitcast_coercion20, %L133 ], [ %62, %L143 ]
  %65 = add nsw i64 %value_phi34, %value_phi18, !dbg !9218
  %66 = icmp slt i64 %65, 2047, !dbg !9220
  br i1 %66, label %L182, label %L177, !dbg !9222

L177:                                             ; preds = %L174
  %67 = and i64 %bitcast_coercion20, -9223372036854775808, !dbg !9223
  %68 = or i64 %67, 9218868437227405312, !dbg !9223
  %bitcast_coercion41 = bitcast i64 %68 to double, !dbg !9223
  br label %L216, !dbg !9224

L182:                                             ; preds = %L174
  %69 = icmp slt i64 %65, 1, !dbg !9225
  br i1 %69, label %L192, label %L184, !dbg !9227

L184:                                             ; preds = %L182
  %70 = and i64 %value_phi35, -9218868437227405313, !dbg !9228
  %71 = shl nuw nsw i64 %65, 52, !dbg !9230
  %72 = or i64 %70, %71, !dbg !9232
  %bitcast_coercion42 = bitcast i64 %72 to double, !dbg !9233
  br label %L216, !dbg !9234

L192:                                             ; preds = %L182
  %73 = icmp sgt i64 %65, -52, !dbg !9235
  br i1 %73, label %L206, label %L194, !dbg !9236

L194:                                             ; preds = %L192
  %74 = icmp slt i64 %value_phi18, 50001, !dbg !9237
  br i1 %74, label %L201, label %L196, !dbg !9239

L196:                                             ; preds = %L194
  %75 = and i64 %bitcast_coercion20, -9223372036854775808, !dbg !9240
  %76 = or i64 %75, 9218868437227405312, !dbg !9240
  %bitcast_coercion44 = bitcast i64 %76 to double, !dbg !9240
  br label %L216, !dbg !9239

L201:                                             ; preds = %L194
  %77 = and i64 %bitcast_coercion20, -9223372036854775808, !dbg !9241
  %bitcast_coercion46 = bitcast i64 %77 to double, !dbg !9241
  br label %L216, !dbg !9242

L206:                                             ; preds = %L192
  %78 = and i64 %value_phi35, -9218868437227405313, !dbg !9243
  %79 = shl nsw i64 %65, 52, !dbg !9245
  %80 = add i64 %79, 234187180623265792, !dbg !9245
  %81 = or i64 %80, %78, !dbg !9247
  %bitcast_coercion47 = bitcast i64 %81 to double, !dbg !9248
  %82 = fmul double %bitcast_coercion47, 0x3CB0000000000000, !dbg !9250
  br label %L216, !dbg !9249

L216:                                             ; preds = %L206, %L201, %L196, %L184, %L177, %L153, %L139, %L125
  %value_phi21 = phi double [ %bitcast_coercion33, %L153 ], [ %bitcast_coercion41, %L177 ], [ %bitcast_coercion42, %L184 ], [ %bitcast_coercion44, %L196 ], [ %bitcast_coercion46, %L201 ], [ %82, %L206 ], [ %51, %L125 ], [ %51, %L139 ]
  %83 = fcmp oeq double %value_phi21, 0.000000e+00, !dbg !9251
  br i1 %83, label %L216.L237_crit_edge, label %L222, !dbg !9254

L216.L237_crit_edge:                              ; preds = %L216
  %unbox84 = load double, double addrspace(11)* %memcpy_refined_src, align 8
  br label %L237, !dbg !9254

L222:                                             ; preds = %L216
  %84 = fsub double %unbox2, %unbox2, !dbg !9255
  %85 = fcmp uno double %84, 0.000000e+00, !dbg !9258
  br i1 %85, label %L222.L228_crit_edge, label %L226, !dbg !9257

L222.L228_crit_edge:                              ; preds = %L222
  %unbox77 = load double, double addrspace(11)* %memcpy_refined_src, align 8
  br label %L228, !dbg !9257

L226:                                             ; preds = %L222
  %86 = fdiv double %unbox2, %value_phi21, !dbg !9260
  %87 = fmul double %86, 5.000000e-01, !dbg !9261
  br label %L228, !dbg !9261

L228:                                             ; preds = %L226, %L222.L228_crit_edge
  %unbox28 = phi double [ %unbox2, %L226 ], [ %unbox77, %L222.L228_crit_edge ]
  %value_phi25 = phi double [ %87, %L226 ], [ %unbox77, %L222.L228_crit_edge ]
  %88 = fcmp uge double %unbox, 0.000000e+00, !dbg !9263
  br i1 %88, label %L237, label %L235, !dbg !9265

L235:                                             ; preds = %L228
  %89 = call double @llvm.fabs.f64(double %value_phi25) #81, !dbg !9266
  %90 = call double @llvm.copysign.f64(double %value_phi21, double %unbox28) #81, !dbg !9268
  br label %L237, !dbg !9268

L237:                                             ; preds = %L235, %L228, %L216.L237_crit_edge
  %value_phi29 = phi double [ %90, %L235 ], [ %unbox84, %L216.L237_crit_edge ], [ %value_phi25, %L228 ]
  %value_phi30 = phi double [ %89, %L235 ], [ %value_phi21, %L216.L237_crit_edge ], [ %value_phi21, %L228 ]
  %newstruct31.sroa.0.0..sroa_idx = getelementptr inbounds [2 x double], [2 x double]* %0, i64 0, i64 0, !dbg !9270
  store double %value_phi30, double* %newstruct31.sroa.0.0..sroa_idx, align 8, !dbg !9270, !noalias !9107
  %newstruct31.sroa.2.0..sroa_idx88 = getelementptr inbounds [2 x double], [2 x double]* %0, i64 0, i64 1, !dbg !9270
  store double %value_phi29, double* %newstruct31.sroa.2.0..sroa_idx88, align 8, !dbg !9270, !noalias !9107
  br label %common.ret

pass17:                                           ; preds = %L114
  %91 = add i64 %unbox48, -1, !dbg !9272
  %92 = sdiv i64 %91, 2, !dbg !9274
  br label %L125, !dbg !9274

pass51:                                           ; preds = %L114
  %93 = sdiv i64 %unbox48, 2, !dbg !9275
  %94 = add nsw i64 %93, -1, !dbg !9277
  %95 = fadd double %value_phi13, %value_phi13, !dbg !9278
  br label %L125, !dbg !9278
}

 constantarg[[2 x double]* %0] = 0 type: {[-1]:Pointer, [-1,-1]:Float@double} - vals: {}
 constantarg[[2 x double] addrspace(11)* %1] = 0 type: {[-1]:Pointer, [-1,-1]:Float@double} - vals: {}
 constantinst[  %2 = call noalias nonnull dereferenceable(16) dereferenceable_or_null(16) i8* @malloc(i64 16), !enzyme_fromstack !69] = 1 val:0 type: {[-1]:Pointer, [-1,0]: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}
 constantinst[  %3 = bitcast i8* %2 to { double, i64 }*, !enzyme_caststack !68] = 1 val:0 type: {[-1]:Pointer, [-1,0]: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}
 constantinst[  %4 = call {}*** @julia.get_pgcstack() #81] = 1 val:1 type: {[-1]:Pointer, [-1,16]:Pointer}
 constantinst[  %ptls_field93 = getelementptr inbounds {}**, {}*** %4, i64 2] = 1 val:1 type: {[-1]:Pointer, [-1,0]:Pointer}
 constantinst[  %5 = bitcast {}*** %ptls_field93 to i64***] = 1 val:1 type: {[-1]:Pointer, [-1,0]:Pointer}
 constantinst[  %ptls_load9495 = load i64**, i64*** %5, align 8, !tbaa !70] = 1 val:1 type: {[-1]:Pointer}
 constantinst[  %6 = getelementptr inbounds i64*, i64** %ptls_load9495, i64 2] = 1 val:1 type: {[-1]:Pointer}
 constantinst[  %safepoint = load i64*, i64** %6, align 8, !tbaa !74, !invariant.load !68] = 1 val:1 type: {}
 constantinst[  fence syncscope("singlethread") seq_cst] = 1 val:1 type: {}
 constantinst[  call void @julia.safepoint(i64* %safepoint) #81, !dbg !76] = 1 val:1 type: {}
 constantinst[  fence syncscope("singlethread") seq_cst] = 1 val:1 type: {}
 constantinst[  %7 = getelementptr inbounds [2 x double], [2 x double] addrspace(11)* %1, i64 0, i64 0, !dbg !77] = 1 val:0 type: {[-1]:Pointer, [-1,-1]:Float@double}
 constantinst[  %memcpy_refined_src = getelementptr inbounds [2 x double], [2 x double] addrspace(11)* %1, i64 0, i64 1, !dbg !85] = 1 val:0 type: {[-1]:Pointer, [-1,-1]:Float@double}
 constantinst[  %unbox = load double, double addrspace(11)* %7, align 8, !dbg !88, !tbaa !74, !invariant.load !68, !alias.scope !92, !noalias !95] = 0 val:0 type: {[-1]:Float@double}
 constantinst[  %unbox2 = load double, double addrspace(11)* %memcpy_refined_src, align 8, !dbg !88, !tbaa !74, !invariant.load !68, !alias.scope !92, !noalias !95] = 0 val:0 type: {[-1]:Float@double}
 constantinst[  %8 = fcmp oeq double %unbox, %unbox2, !dbg !88] = 1 val:1 type: {[-1]:Integer}
 constantinst[  %9 = fcmp oeq double %unbox2, 0.000000e+00, !dbg !91] = 1 val:1 type: {[-1]:Integer}
 constantinst[  %value_phi = and i1 %8, %9, !dbg !91] = 1 val:1 type: {[-1]:Integer}
 constantinst[  br i1 %value_phi, label %L12, label %L14, !dbg !91] = 1 val:1 type: {}
 constantinst[  ret void, !dbg !100] = 1 val:1 type: {}
 constantinst[  %newstruct.sroa.0.0..sroa_idx = getelementptr inbounds [2 x double], [2 x double]* %0, i64 0, i64 0, !dbg !101] = 1 val:0 type: {[-1]:Pointer, [-1,-1]:Float@double}
 constantinst[  store double 0.000000e+00, double* %newstruct.sroa.0.0..sroa_idx, align 8, !dbg !101, !noalias !102] = 1 val:1 type: {}
 constantinst[  %newstruct.sroa.2.0..sroa_idx89 = getelementptr inbounds [2 x double], [2 x double]* %0, i64 0, i64 1, !dbg !101] = 1 val:0 type: {[-1]:Pointer, [-1,-1]:Float@double}
 constantinst[  store double %unbox2, double* %newstruct.sroa.2.0..sroa_idx89, align 8, !dbg !101, !noalias !102] = 0 val:1 type: {}
 constantinst[  br label %common.ret] = 1 val:1 type: {}
 constantinst[  call fastcc void @julia_ssqs_13915({ double, i64 }* noalias nocapture nofree noundef nonnull writeonly sret({ double, i64 }) align 8 dereferenceable(16) %3, double %unbox, double %unbox2) #81, !dbg !105] = 0 val:1 type: {}
 constantinst[  %10 = getelementptr inbounds { double, i64 }, { double, i64 }* %3, i64 0, i32 0, !dbg !106] = 1 val:0 type: {[-1]:Pointer, [-1,0]:Float@double}
 constantinst[  %11 = getelementptr inbounds { double, i64 }, { double, i64 }* %3, i64 0, i32 1, !dbg !109] = 1 val:0 type: {[-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}
 constantinst[  %12 = fsub double %unbox, %unbox, !dbg !110] = 1 val:1 type: {[-1]:Float@double}
 constantinst[  %13 = fcmp uno double %12, 0.000000e+00, !dbg !115] = 1 val:1 type: {[-1]:Integer}
 constantinst[  br i1 %13, label %L14.L114_crit_edge, label %L21, !dbg !114] = 1 val:1 type: {}
 constantinst[  %unbox70 = load double, double* %10, align 8] = 0 val:0 type: {[-1]:Float@double}
 constantinst[  %unbox14.pre = load i64, i64* %11, align 8, !dbg !119, !tbaa !125, !alias.scope !127, !noalias !128] = 1 val:1 type: {[-1]:Integer}
 constantinst[  br label %L114, !dbg !114] = 1 val:1 type: {}
 constantinst[  %14 = call double @llvm.fabs.f64(double %unbox) #81, !dbg !129] = 0 val:0 type: {[-1]:Float@double}
 constantinst[  %unbox10 = load i64, i64* %11, align 8, !dbg !131, !tbaa !125, !alias.scope !127, !noalias !128] = 1 val:1 type: {[-1]:Integer}
 constantinst[  %15 = sub i64 0, %unbox10, !dbg !131] = 1 val:1 type: {[-1]:Integer}
 constantinst[  %bitcast_coercion = bitcast double %14 to i64, !dbg !133] = 0 val:0 type: {[-1]:Float@double}
 constantinst[  %16 = and i64 %bitcast_coercion, 9223372036854775807, !dbg !141] = 0 val:0 type: {}
 constantinst[  %17 = icmp ult i64 %16, 9218868437227405312, !dbg !144] = 1 val:1 type: {[-1]:Integer}
 constantinst[  br i1 %17, label %L28, label %L111, !dbg !149] = 1 val:1 type: {}
 constantinst[  %18 = lshr i64 %16, 52, !dbg !150] = 1 val:1 type: {[-1]:Integer}
 constantinst[  %19 = icmp ugt i64 %16, 4503599627370495, !dbg !154] = 1 val:1 type: {[-1]:Integer}
 constantinst[  br i1 %19, label %L69, label %L34, !dbg !157] = 1 val:1 type: {}
 constantinst[  %.not98 = icmp eq i64 %16, 0, !dbg !158] = 1 val:1 type: {[-1]:Integer}
 constantinst[  br i1 %.not98, label %L111, label %L38, !dbg !161] = 1 val:1 type: {}
 constantinst[  %20 = call i64 @llvm.ctlz.i64(i64 %16, i1 noundef true) #81, !dbg !162, !range !165] = 1 val:1 type: {[-1]:Integer}
 constantinst[  %21 = add nsw i64 %20, -11, !dbg !166] = 1 val:1 type: {[-1]:Integer}
 constantinst[  %22 = shl i64 %16, %21, !dbg !167] = 0 val:0 type: {}
 constantinst[  %23 = icmp ugt i64 %21, 63, !dbg !167] = 1 val:1 type: {[-1]:Integer}
 constantinst[  %24 = select i1 %23, i64 0, i64 %22, !dbg !167] = 0 val:0 type: {}
 constantinst[  %25 = and i64 %bitcast_coercion, -9223372036854775808, !dbg !170] = 1 val:1 type: {[-1]:Float@double}
 constantinst[  %26 = or i64 %24, %25, !dbg !172] = 0 val:0 type: {}
 constantinst[  %27 = sub nsw i64 12, %20, !dbg !174] = 1 val:1 type: {[-1]:Integer}
 constantinst[  %28 = icmp sgt i64 %15, -50001, !dbg !176] = 1 val:1 type: {[-1]:Integer}
 constantinst[  br i1 %28, label %L69, label %L48, !dbg !178] = 1 val:1 type: {}
 constantinst[  %bitcast_coercion53 = bitcast i64 %25 to double, !dbg !179] = 1 val:1 type: {[-1]:Float@double}
 constantinst[  br label %L111, !dbg !178] = 1 val:1 type: {}
 constantinst[  %value_phi54 = phi i64 [ %18, %L28 ], [ %27, %L38 ]] = 1 val:1 type: {[-1]:Integer}
 constantinst[  %value_phi55 = phi i64 [ %bitcast_coercion, %L28 ], [ %26, %L38 ]] = 0 val:0 type: {}
 constantinst[  %29 = sub i64 %value_phi54, %unbox10, !dbg !182] = 1 val:1 type: {[-1]:Integer}
 constantinst[  %30 = icmp slt i64 %29, 2047, !dbg !185] = 1 val:1 type: {[-1]:Integer}
 constantinst[  br i1 %30, label %L77, label %L72, !dbg !187] = 1 val:1 type: {}
 constantinst[  %31 = and i64 %bitcast_coercion, -9223372036854775808, !dbg !188] = 1 val:1 type: {[-1]:Float@double}
 constantinst[  %32 = or i64 %31, 9218868437227405312, !dbg !188] = 1 val:1 type: {[-1]:Float@double}
 constantinst[  %bitcast_coercion61 = bitcast i64 %32 to double, !dbg !188] = 1 val:1 type: {[-1]:Float@double}
 constantinst[  br label %L111, !dbg !189] = 1 val:1 type: {}
 constantinst[  %33 = icmp slt i64 %29, 1, !dbg !190] = 1 val:1 type: {[-1]:Integer}
 constantinst[  br i1 %33, label %L87, label %L79, !dbg !193] = 1 val:1 type: {}
 constantinst[  %34 = and i64 %value_phi55, -9218868437227405313, !dbg !194] = 0 val:0 type: {}
 constantinst[  %35 = shl nuw nsw i64 %29, 52, !dbg !196] = 1 val:1 type: {[-1]:Integer}
 constantinst[  %36 = or i64 %34, %35, !dbg !198] = 0 val:0 type: {[-1]:Float@double}
 constantinst[  %bitcast_coercion62 = bitcast i64 %36 to double, !dbg !199] = 0 val:0 type: {[-1]:Float@double}
 constantinst[  br label %L111, !dbg !200] = 1 val:1 type: {}
 constantinst[  %37 = icmp sgt i64 %29, -52, !dbg !201] = 1 val:1 type: {[-1]:Integer}
 constantinst[  br i1 %37, label %L101, label %L89, !dbg !202] = 1 val:1 type: {}
 constantinst[  %38 = icmp slt i64 %15, 50001, !dbg !203] = 1 val:1 type: {[-1]:Integer}
 constantinst[  br i1 %38, label %L96, label %L91, !dbg !205] = 1 val:1 type: {}
 constantinst[  %39 = and i64 %bitcast_coercion, -9223372036854775808, !dbg !206] = 1 val:1 type: {[-1]:Float@double}
 constantinst[  %40 = or i64 %39, 9218868437227405312, !dbg !206] = 1 val:1 type: {[-1]:Float@double}
 constantinst[  %bitcast_coercion64 = bitcast i64 %40 to double, !dbg !206] = 1 val:1 type: {[-1]:Float@double}
 constantinst[  br label %L111, !dbg !205] = 1 val:1 type: {}
 constantinst[  %41 = and i64 %bitcast_coercion, -9223372036854775808, !dbg !207] = 1 val:1 type: {[-1]:Float@double}
 constantinst[  %bitcast_coercion66 = bitcast i64 %41 to double, !dbg !207] = 1 val:1 type: {[-1]:Float@double}
 constantinst[  br label %L111, !dbg !208] = 1 val:1 type: {}
 constantinst[  %42 = and i64 %value_phi55, -9218868437227405313, !dbg !209] = 0 val:0 type: {}
 constantinst[  %43 = shl nsw i64 %29, 52, !dbg !211] = 1 val:1 type: {[-1]:Integer}
 constantinst[  %44 = add i64 %43, 234187180623265792, !dbg !211] = 1 val:1 type: {[-1]:Anything}
 constantinst[  %45 = or i64 %44, %42, !dbg !213] = 0 val:0 type: {[-1]:Float@double}
 constantinst[  %bitcast_coercion67 = bitcast i64 %45 to double, !dbg !214] = 0 val:0 type: {[-1]:Float@double}
 constantinst[  %46 = fmul double %bitcast_coercion67, 0x3CB0000000000000, !dbg !216] = 0 val:0 type: {[-1]:Float@double}
 constantinst[  br label %L111, !dbg !215] = 1 val:1 type: {}
 constantinst[  %value_phi11 = phi double [ %bitcast_coercion53, %L48 ], [ %bitcast_coercion61, %L72 ], [ %bitcast_coercion62, %L79 ], [ %bitcast_coercion64, %L91 ], [ %bitcast_coercion66, %L96 ], [ %46, %L101 ], [ %14, %L21 ], [ %14, %L34 ]] = 0 val:0 type: {[-1]:Float@double}
 constantinst[  %unbox12 = load double, double* %10, align 8, !dbg !114, !tbaa !125, !alias.scope !127, !noalias !128] = 0 val:0 type: {[-1]:Float@double}
 constantinst[  %47 = call fastcc double @julia_sqrt_13785(double %unbox12) #82, !dbg !114] = 0 val:0 type: {[-1]:Float@double}
 constantinst[  %48 = fadd double %value_phi11, %47, !dbg !218] = 0 val:0 type: {[-1]:Float@double}
 constantinst[  br label %L114, !dbg !218] = 1 val:1 type: {}
 constantinst[  %unbox48 = phi i64 [ %unbox10, %L111 ], [ %unbox14.pre, %L14.L114_crit_edge ], !dbg !119] = 1 val:1 type: {[-1]:Integer}
 constantinst[  %value_phi13 = phi double [ %48, %L111 ], [ %unbox70, %L14.L114_crit_edge ]] = 0 val:0 type: {[-1]:Float@double}
 constantinst[  %49 = and i64 %unbox48, 1, !dbg !220] = 1 val:1 type: {[-1]:Integer}
 constantinst[  %50 = icmp eq i64 %49, 0, !dbg !220] = 1 val:1 type: {[-1]:Integer}
 constantinst[  br i1 %50, label %pass51, label %pass17, !dbg !124] = 1 val:1 type: {}
 constantinst[  %value_phi18 = phi i64 [ %92, %pass17 ], [ %94, %pass51 ]] = 1 val:1 type: {[-1]:Integer}
 constantinst[  %value_phi19 = phi double [ %value_phi13, %pass17 ], [ %95, %pass51 ]] = 0 val:0 type: {[-1]:Float@double}
 constantinst[  %51 = call fastcc double @julia_sqrt_13785(double %value_phi19) #82, !dbg !224] = 0 val:0 type: {[-1]:Float@double}
 constantinst[  %bitcast_coercion20 = bitcast double %51 to i64, !dbg !225] = 0 val:0 type: {[-1]:Float@double}
 constantinst[  %52 = and i64 %bitcast_coercion20, 9223372036854775807, !dbg !228] = 0 val:0 type: {}
 constantinst[  %53 = icmp ult i64 %52, 9218868437227405312, !dbg !230] = 1 val:1 type: {[-1]:Integer}
 constantinst[  br i1 %53, label %L133, label %L216, !dbg !232] = 1 val:1 type: {}
 constantinst[  %54 = lshr i64 %52, 52, !dbg !233] = 1 val:1 type: {[-1]:Integer}
 constantinst[  %55 = icmp ugt i64 %52, 4503599627370495, !dbg !236] = 1 val:1 type: {[-1]:Integer}
 constantinst[  br i1 %55, label %L174, label %L139, !dbg !237] = 1 val:1 type: {}
 constantinst[  %.not97 = icmp eq i64 %52, 0, !dbg !238] = 1 val:1 type: {[-1]:Integer}
 constantinst[  br i1 %.not97, label %L216, label %L143, !dbg !240] = 1 val:1 type: {}
 constantinst[  %56 = call i64 @llvm.ctlz.i64(i64 %52, i1 noundef true) #81, !dbg !241, !range !165] = 1 val:1 type: {[-1]:Integer}
 constantinst[  %57 = add nsw i64 %56, -11, !dbg !243] = 1 val:1 type: {[-1]:Integer}
 constantinst[  %58 = shl i64 %52, %57, !dbg !244] = 0 val:0 type: {}
 constantinst[  %59 = icmp ugt i64 %57, 63, !dbg !244] = 1 val:1 type: {[-1]:Integer}
 constantinst[  %60 = select i1 %59, i64 0, i64 %58, !dbg !244] = 0 val:0 type: {}
 constantinst[  %61 = and i64 %bitcast_coercion20, -9223372036854775808, !dbg !246] = 1 val:1 type: {[-1]:Float@double}
 constantinst[  %62 = or i64 %60, %61, !dbg !248] = 0 val:0 type: {}
 constantinst[  %63 = sub nsw i64 12, %56, !dbg !249] = 1 val:1 type: {[-1]:Integer}
 constantinst[  %64 = icmp sgt i64 %value_phi18, -50001, !dbg !251] = 1 val:1 type: {[-1]:Integer}
 constantinst[  br i1 %64, label %L174, label %L153, !dbg !252] = 1 val:1 type: {}
 constantinst[  %bitcast_coercion33 = bitcast i64 %61 to double, !dbg !253] = 1 val:1 type: {[-1]:Float@double}
 constantinst[  br label %L216, !dbg !252] = 1 val:1 type: {}
 constantinst[  %value_phi34 = phi i64 [ %54, %L133 ], [ %63, %L143 ]] = 1 val:1 type: {[-1]:Integer}
 constantinst[  %value_phi35 = phi i64 [ %bitcast_coercion20, %L133 ], [ %62, %L143 ]] = 0 val:0 type: {}
 constantinst[  %65 = add nsw i64 %value_phi34, %value_phi18, !dbg !254] = 1 val:1 type: {[-1]:Integer}
 constantinst[  %66 = icmp slt i64 %65, 2047, !dbg !256] = 1 val:1 type: {[-1]:Integer}
 constantinst[  br i1 %66, label %L182, label %L177, !dbg !258] = 1 val:1 type: {}
 constantinst[  %67 = and i64 %bitcast_coercion20, -9223372036854775808, !dbg !259] = 1 val:1 type: {[-1]:Float@double}
 constantinst[  %68 = or i64 %67, 9218868437227405312, !dbg !259] = 1 val:1 type: {[-1]:Float@double}
 constantinst[  %bitcast_coercion41 = bitcast i64 %68 to double, !dbg !259] = 1 val:1 type: {[-1]:Float@double}
 constantinst[  br label %L216, !dbg !260] = 1 val:1 type: {}
 constantinst[  %69 = icmp slt i64 %65, 1, !dbg !261] = 1 val:1 type: {[-1]:Integer}
 constantinst[  br i1 %69, label %L192, label %L184, !dbg !263] = 1 val:1 type: {}
 constantinst[  %70 = and i64 %value_phi35, -9218868437227405313, !dbg !264] = 0 val:0 type: {}
 constantinst[  %71 = shl nuw nsw i64 %65, 52, !dbg !266] = 1 val:1 type: {[-1]:Integer}
 constantinst[  %72 = or i64 %70, %71, !dbg !268] = 0 val:0 type: {[-1]:Float@double}
 constantinst[  %bitcast_coercion42 = bitcast i64 %72 to double, !dbg !269] = 0 val:0 type: {[-1]:Float@double}
 constantinst[  br label %L216, !dbg !270] = 1 val:1 type: {}
 constantinst[  %73 = icmp sgt i64 %65, -52, !dbg !271] = 1 val:1 type: {[-1]:Integer}
 constantinst[  br i1 %73, label %L206, label %L194, !dbg !272] = 1 val:1 type: {}
 constantinst[  %74 = icmp slt i64 %value_phi18, 50001, !dbg !273] = 1 val:1 type: {[-1]:Integer}
 constantinst[  br i1 %74, label %L201, label %L196, !dbg !275] = 1 val:1 type: {}
 constantinst[  %75 = and i64 %bitcast_coercion20, -9223372036854775808, !dbg !276] = 1 val:1 type: {[-1]:Float@double}
 constantinst[  %76 = or i64 %75, 9218868437227405312, !dbg !276] = 1 val:1 type: {[-1]:Float@double}
 constantinst[  %bitcast_coercion44 = bitcast i64 %76 to double, !dbg !276] = 1 val:1 type: {[-1]:Float@double}
 constantinst[  br label %L216, !dbg !275] = 1 val:1 type: {}
 constantinst[  %77 = and i64 %bitcast_coercion20, -9223372036854775808, !dbg !277] = 1 val:1 type: {[-1]:Float@double}
 constantinst[  %bitcast_coercion46 = bitcast i64 %77 to double, !dbg !277] = 1 val:1 type: {[-1]:Float@double}
 constantinst[  br label %L216, !dbg !278] = 1 val:1 type: {}
 constantinst[  %78 = and i64 %value_phi35, -9218868437227405313, !dbg !279] = 0 val:0 type: {}
 constantinst[  %79 = shl nsw i64 %65, 52, !dbg !281] = 1 val:1 type: {[-1]:Integer}
 constantinst[  %80 = add i64 %79, 234187180623265792, !dbg !281] = 1 val:1 type: {[-1]:Anything}
 constantinst[  %81 = or i64 %80, %78, !dbg !283] = 0 val:0 type: {[-1]:Float@double}
 constantinst[  %bitcast_coercion47 = bitcast i64 %81 to double, !dbg !284] = 0 val:0 type: {[-1]:Float@double}
 constantinst[  %82 = fmul double %bitcast_coercion47, 0x3CB0000000000000, !dbg !286] = 0 val:0 type: {[-1]:Float@double}
 constantinst[  br label %L216, !dbg !285] = 1 val:1 type: {}
 constantinst[  %value_phi21 = phi double [ %bitcast_coercion33, %L153 ], [ %bitcast_coercion41, %L177 ], [ %bitcast_coercion42, %L184 ], [ %bitcast_coercion44, %L196 ], [ %bitcast_coercion46, %L201 ], [ %82, %L206 ], [ %51, %L125 ], [ %51, %L139 ]] = 0 val:0 type: {[-1]:Float@double}
 constantinst[  %83 = fcmp oeq double %value_phi21, 0.000000e+00, !dbg !287] = 1 val:1 type: {[-1]:Integer}
 constantinst[  br i1 %83, label %L216.L237_crit_edge, label %L222, !dbg !291] = 1 val:1 type: {}
 constantinst[  %unbox84 = load double, double addrspace(11)* %memcpy_refined_src, align 8] = 0 val:0 type: {[-1]:Float@double}
 constantinst[  br label %L237, !dbg !291] = 1 val:1 type: {}
 constantinst[  %84 = fsub double %unbox2, %unbox2, !dbg !292] = 1 val:1 type: {[-1]:Float@double}
 constantinst[  %85 = fcmp uno double %84, 0.000000e+00, !dbg !295] = 1 val:1 type: {[-1]:Integer}
 constantinst[  br i1 %85, label %L222.L228_crit_edge, label %L226, !dbg !294] = 1 val:1 type: {}
 constantinst[  %unbox77 = load double, double addrspace(11)* %memcpy_refined_src, align 8] = 0 val:0 type: {[-1]:Float@double}
 constantinst[  br label %L228, !dbg !294] = 1 val:1 type: {}
 constantinst[  %86 = fdiv double %unbox2, %value_phi21, !dbg !297] = 0 val:0 type: {[-1]:Float@double}
 constantinst[  %87 = fmul double %86, 5.000000e-01, !dbg !299] = 0 val:0 type: {[-1]:Float@double}
 constantinst[  br label %L228, !dbg !299] = 1 val:1 type: {}
 constantinst[  %unbox28 = phi double [ %unbox2, %L226 ], [ %unbox77, %L222.L228_crit_edge ]] = 1 val:1 type: {[-1]:Float@double}
 constantinst[  %value_phi25 = phi double [ %87, %L226 ], [ %unbox77, %L222.L228_crit_edge ]] = 0 val:0 type: {[-1]:Float@double}
 constantinst[  %88 = fcmp uge double %unbox, 0.000000e+00, !dbg !302] = 1 val:1 type: {[-1]:Integer}
 constantinst[  br i1 %88, label %L237, label %L235, !dbg !305] = 1 val:1 type: {}
 constantinst[  %89 = call double @llvm.fabs.f64(double %value_phi25) #81, !dbg !306] = 0 val:0 type: {[-1]:Float@double}
 constantinst[  %90 = call double @llvm.copysign.f64(double %value_phi21, double %unbox28) #81, !dbg !308] = 0 val:0 type: {[-1]:Float@double}
 constantinst[  br label %L237, !dbg !308] = 1 val:1 type: {}
 constantinst[  %value_phi29 = phi double [ %90, %L235 ], [ %unbox84, %L216.L237_crit_edge ], [ %value_phi25, %L228 ]] = 0 val:0 type: {[-1]:Float@double}
 constantinst[  %value_phi30 = phi double [ %89, %L235 ], [ %value_phi21, %L216.L237_crit_edge ], [ %value_phi21, %L228 ]] = 0 val:0 type: {[-1]:Float@double}
 constantinst[  %newstruct31.sroa.0.0..sroa_idx = getelementptr inbounds [2 x double], [2 x double]* %0, i64 0, i64 0, !dbg !311] = 1 val:0 type: {[-1]:Pointer, [-1,-1]:Float@double}
 constantinst[  store double %value_phi30, double* %newstruct31.sroa.0.0..sroa_idx, align 8, !dbg !311, !noalias !102] = 0 val:1 type: {}
 constantinst[  %newstruct31.sroa.2.0..sroa_idx88 = getelementptr inbounds [2 x double], [2 x double]* %0, i64 0, i64 1, !dbg !311] = 1 val:0 type: {[-1]:Pointer, [-1,-1]:Float@double}
 constantinst[  store double %value_phi29, double* %newstruct31.sroa.2.0..sroa_idx88, align 8, !dbg !311, !noalias !102] = 0 val:1 type: {}
 constantinst[  br label %common.ret] = 1 val:1 type: {}
 constantinst[  %91 = add i64 %unbox48, -1, !dbg !314] = 1 val:1 type: {[-1]:Integer}
 constantinst[  %92 = sdiv i64 %91, 2, !dbg !316] = 1 val:1 type: {[-1]:Integer}
 constantinst[  br label %L125, !dbg !316] = 1 val:1 type: {}
 constantinst[  %93 = sdiv i64 %unbox48, 2, !dbg !318] = 1 val:1 type: {[-1]:Integer}
 constantinst[  %94 = add nsw i64 %93, -1, !dbg !320] = 1 val:1 type: {[-1]:Integer}
 constantinst[  %95 = fadd double %value_phi13, %value_phi13, !dbg !321] = 0 val:0 type: {[-1]:Float@double}
 constantinst[  br label %L125, !dbg !321] = 1 val:1 type: {}
cannot handle unknown binary operator:   %72 = or i64 %70, %71, !dbg !268


Stacktrace:
 [1] |
   @ ./int.jl:372
 [2] ldexp
   @ ./math.jl:964
 [3] sqrt
   @ ./complex.jl:541


Stacktrace:
  [1] throwerr(cstr::Cstring)
    @ Enzyme.Compiler ~/.local/share/julia/packages/Enzyme/qRjan/src/compiler.jl:1288
  [2] |
    @ ./int.jl:372 [inlined]
  [3] ldexp
    @ ./math.jl:964 [inlined]
  [4] sqrt
    @ ./complex.jl:541
  [5] Z₀
    @ ~/.local/share/julia/packages/CircuitNetworks/tk9xS/src/math/utils.jl:8 [inlined]
  [6] abcd_tline
    @ ~/Dropbox/Projects/Julia/WBLNAOptim/src/tline_model.jl:12
  [7] em_abcd
    @ ~/Dropbox/Projects/Julia/WBLNAOptim/src/tline_model.jl:40
  [8] imn
    @ ~/Dropbox/Projects/Julia/WBLNAOptim/src/matching_network.jl:16
  [9] cost
    @ ~/Dropbox/Projects/Julia/WBLNAOptim/scripts/multi_point_optim.jl:10
 [10] cost
    @ ~/Dropbox/Projects/Julia/WBLNAOptim/scripts/multi_point_optim.jl:22 [inlined]
 [11] cost
    @ ~/Dropbox/Projects/Julia/WBLNAOptim/scripts/multi_point_optim.jl:41 [inlined]
 [12] diffejulia_cost_13721wrap
    @ ~/Dropbox/Projects/Julia/WBLNAOptim/scripts/multi_point_optim.jl:0
 [13] macro expansion
    @ ~/.local/share/julia/packages/Enzyme/qRjan/src/compiler.jl:5377 [inlined]
 [14] enzyme_call
    @ ~/.local/share/julia/packages/Enzyme/qRjan/src/compiler.jl:5055 [inlined]
 [15] CombinedAdjointThunk
    @ ~/.local/share/julia/packages/Enzyme/qRjan/src/compiler.jl:4997 [inlined]
 [16] autodiff(::ReverseMode{false, FFIABI}, f::Const{typeof(cost)}, ::Type{Active}, args::Duplicated{Vector{Float64}})
    @ Enzyme ~/.local/share/julia/packages/Enzyme/qRjan/src/Enzyme.jl:215
 [17] autodiff
    @ ~/.local/share/julia/packages/Enzyme/qRjan/src/Enzyme.jl:224 [inlined]
 [18] gradient!(::ReverseMode{false, FFIABI}, dx::Vector{Float64}, f::Function, x::Vector{Float64})
    @ Enzyme ~/.local/share/julia/packages/Enzyme/qRjan/src/Enzyme.jl:833
 [19] top-level scope
    @ ~/Dropbox/Projects/Julia/WBLNAOptim/scripts/multi_point_optim.jl:47