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