Compiling libm v0.2.8 Compiling gmmrs v0.1.0 (/h/344/drehwald/prog/Enzyme/enzyme/benchmarks/ReverseMode/gmmrs) [compiler/rustc_builtin_macros/src/autodiff.rs:127:5] &x = AutoDiffAttrs { [compiler/rustc_builtin_macros/src/autodiff.rs:127:5] &x = AutoDiffAttrs { mode: Reverse, ret_activity: None, input_activity: [ mode: Reverse, Const, ret_activity: None, Const, input_activity: [ Const, Const, Duplicated, Const, Duplicated, Const, Duplicated, Duplicated, Const, Const, Duplicated, Duplicated, Duplicated, ], Const, } Const, Duplicated, ], } warning: unused variable: `d_x` --> src/main.rs:18:13 | 18 | let mut d_x = vec![0.; x.len()]; | ^^^ help: if this is intentional, prefix it with an underscore: `_d_x` | = note: `#[warn(unused_variables)]` on by default warning: variable does not need to be mutable --> src/main.rs:18:9 | 18 | let mut d_x = vec![0.; x.len()]; | ----^^^ | | | help: remove this `mut` | = note: `#[warn(unused_mut)]` on by default warning: variable does not need to be mutable --> src/main.rs:20:9 | 20 | let mut err2 = &mut err; | ----^^^^ | | | help: remove this `mut` warning: variable does not need to be mutable --> src/main.rs:21:9 | 21 | let mut d_err2 = &mut d_err; | ----^^^^^^ | | | help: remove this `mut` warning: unused variable: `n` --> src/lib.rs:124:11 | 124 | fn sqnorm(n: usize, x: &[f64]) -> f64 { | ^ help: if this is intentional, prefix it with an underscore: `_n` | = note: `#[warn(unused_variables)]` on by default [compiler/rustc_ast/src/expand/autodiff_attrs.rs:212:17] &self = AutoDiffAttrs { mode: Reverse, ret_activity: None, input_activity: [ Const, Const, Const, Duplicated, Duplicated, Duplicated, Const, Const, Duplicated, ], } warning: function `Qtimesx` should have a snake case name --> src/lib.rs:78:4 | 78 | fn Qtimesx(d: usize, q_diag: &[f64], ltri: &[f64], x: &[f64], out: &mut [f64]) { | ^^^^^^^ help: convert the identifier to snake case: `qtimesx` | = note: `#[warn(non_snake_case)]` on by default warning: unused variable: `n` --> src/main.rs:145:11 | 145 | fn sqnorm(n: usize, x: &[f64]) -> f64 { | ^ help: if this is intentional, prefix it with an underscore: `_n` [compiler/rustc_ast/src/expand/autodiff_attrs.rs:212:17] &self = AutoDiffAttrs { mode: Reverse, ret_activity: None, input_activity: [ Const, Const, Const, Duplicated, Duplicated, Duplicated, Const, Const, Duplicated, ], } warning: function `Qtimesx` should have a snake case name --> src/main.rs:99:4 | 99 | fn Qtimesx(d: usize, q_diag: &[f64], ltri: &[f64], x: &[f64], out: &mut [f64]) { | ^^^^^^^ help: convert the identifier to snake case: `qtimesx` | = note: `#[warn(non_snake_case)]` on by default [compiler/rustc_ast/src/expand/autodiff_attrs.rs:212:17] &self = AutoDiffAttrs { mode: Reverse, ret_activity: None, input_activity: [ Const, Const, Const, Duplicated, Duplicated, Duplicated, Const, Const, Duplicated, ], } [compiler/rustc_ast/src/expand/autodiff_attrs.rs:225:9] &self = AutoDiffAttrs { mode: Reverse, ret_activity: None, input_activity: [ Const, Const, Const, Duplicated, Duplicated, Duplicated, Const, Const, Duplicated, ], } source_id: DefId(0:18 ~ gmmrs[cdc1]::gmm_objective_c) AUTODIFF ITEMS EXIST [compiler/rustc_monomorphize/src/partitioning.rs:1172:17] "source" = "source" [compiler/rustc_monomorphize/src/partitioning.rs:1173:17] &target_attrs = AutoDiffAttrs { mode: Source, ret_activity: None, input_activity: [], } [compiler/rustc_monomorphize/src/partitioning.rs:1268:13] &item = AutoDiffItem { source: "_ZN5gmmrs15gmm_objective_c17h4ad272ea355e6324E", target: "_ZN5gmmrs14dgmm_objective17h294e462510e98a87E", attrs: AutoDiffAttrs { mode: Reverse, ret_activity: None, input_activity: [ Const, Const, Const, Duplicated, Duplicated, Duplicated, Const, Const, Duplicated, ], }, inputs: [ TypeTree( [ Type { offset: -1, size: 8, kind: Integer, child: TypeTree( [], ), }, ], ), TypeTree( [ Type { offset: -1, size: 8, kind: Integer, child: TypeTree( [], ), }, ], ), TypeTree( [ Type { offset: -1, size: 8, kind: Integer, child: TypeTree( [], ), }, ], ), TypeTree( [ Type { offset: -1, size: 8, kind: Pointer, child: TypeTree( [ Type { offset: -1, size: 8, kind: Double, child: TypeTree( [], ), }, ], ), }, ], ), TypeTree( [ Type { offset: -1, size: 8, kind: Pointer, child: TypeTree( [ Type { offset: -1, size: 8, kind: Double, child: TypeTree( [], ), }, ], ), }, ], ), TypeTree( [ Type { offset: -1, size: 8, kind: Pointer, child: TypeTree( [ Type { offset: -1, size: 8, kind: Double, child: TypeTree( [], ), }, ], ), }, ], ), TypeTree( [ Type { offset: -1, size: 8, kind: Pointer, child: TypeTree( [ Type { offset: -1, size: 8, kind: Double, child: TypeTree( [], ), }, ], ), }, ], ), TypeTree( [ Type { offset: -1, size: 8, kind: Pointer, child: TypeTree( [ Type { offset: 0, size: 8, kind: Double, child: TypeTree( [], ), }, Type { offset: 8, size: 8, kind: Integer, child: TypeTree( [], ), }, ], ), }, ], ), TypeTree( [ Type { offset: -1, size: 8, kind: Pointer, child: TypeTree( [ Type { offset: -1, size: 8, kind: Double, child: TypeTree( [], ), }, ], ), }, ], ), ], output: TypeTree( [], ), } [compiler/rustc_ast/src/expand/autodiff_attrs.rs:212:17] &self = AutoDiffAttrs { mode: Reverse, ret_activity: None, input_activity: [ Const, Const, Const, Duplicated, Duplicated, Duplicated, Const, Const, Duplicated, ], } [compiler/rustc_ast/src/expand/autodiff_attrs.rs:225:9] &self = AutoDiffAttrs { mode: Reverse, ret_activity: None, input_activity: [ Const, Const, Const, Duplicated, Duplicated, Duplicated, Const, Const, Duplicated, ], } source_id: DefId(0:19 ~ gmmrs[3121]::gmm_objective_c) AUTODIFF ITEMS EXIST [compiler/rustc_monomorphize/src/partitioning.rs:1172:17] "source" = "source" [compiler/rustc_monomorphize/src/partitioning.rs:1173:17] &target_attrs = AutoDiffAttrs { mode: Source, ret_activity: None, input_activity: [], } [compiler/rustc_monomorphize/src/partitioning.rs:1268:13] &item = AutoDiffItem { source: "_ZN5gmmrs15gmm_objective_c17h321280d53201d2cdE", target: "_ZN5gmmrs14dgmm_objective17h58593b6c05b92b3fE", attrs: AutoDiffAttrs { mode: Reverse, ret_activity: None, input_activity: [ Const, Const, Const, Duplicated, Duplicated, Duplicated, Const, Const, Duplicated, ], }, inputs: [ TypeTree( [ Type { offset: -1, size: 8, kind: Integer, child: TypeTree( [], ), }, ], ), TypeTree( [ Type { offset: -1, size: 8, kind: Integer, child: TypeTree( [], ), }, ], ), TypeTree( [ Type { offset: -1, size: 8, kind: Integer, child: TypeTree( [], ), }, ], ), TypeTree( [ Type { offset: -1, size: 8, kind: Pointer, child: TypeTree( [ Type { offset: -1, size: 8, kind: Double, child: TypeTree( [], ), }, ], ), }, ], ), TypeTree( [ Type { offset: -1, size: 8, kind: Pointer, child: TypeTree( [ Type { offset: -1, size: 8, kind: Double, child: TypeTree( [], ), }, ], ), }, ], ), TypeTree( [ Type { offset: -1, size: 8, kind: Pointer, child: TypeTree( [ Type { offset: -1, size: 8, kind: Double, child: TypeTree( [], ), }, ], ), }, ], ), TypeTree( [ Type { offset: -1, size: 8, kind: Pointer, child: TypeTree( [ Type { offset: -1, size: 8, kind: Double, child: TypeTree( [], ), }, ], ), }, ], ), TypeTree( [ Type { offset: -1, size: 8, kind: Pointer, child: TypeTree( [ Type { offset: 0, size: 8, kind: Double, child: TypeTree( [], ), }, Type { offset: 8, size: 8, kind: Integer, child: TypeTree( [], ), }, ], ), }, ], ), TypeTree( [ Type { offset: -1, size: 8, kind: Pointer, child: TypeTree( [ Type { offset: -1, size: 8, kind: Double, child: TypeTree( [], ), }, ], ), }, ], ), ], output: TypeTree( [], ), } [compiler/rustc_codegen_llvm/src/back/write.rs:902:5] &diff_items = [ AutoDiffItem { source: "_ZN5gmmrs15gmm_objective_c17h321280d53201d2cdE", target: "_ZN5gmmrs14dgmm_objective17h58593b6c05b92b3fE", attrs: AutoDiffAttrs { mode: Reverse, ret_activity: None, input_activity: [ Const, Const, Const, Duplicated, Duplicated, Duplicated, Const, Const, Duplicated, ], }, inputs: [ TypeTree( [ Type { offset: -1, size: 8, kind: Integer, child: TypeTree( [], ), }, ], ), TypeTree( [ Type { offset: -1, size: 8, kind: Integer, child: TypeTree( [], ), }, ], ), TypeTree( [ Type { offset: -1, size: 8, kind: Integer, child: TypeTree( [], ), }, ], ), TypeTree( [ Type { offset: -1, size: 8, kind: Pointer, child: TypeTree( [ Type { offset: -1, size: 8, kind: Double, child: TypeTree( [], ), }, ], ), }, ], ), TypeTree( [ Type { offset: -1, size: 8, kind: Pointer, child: TypeTree( [ Type { offset: -1, size: 8, kind: Double, child: TypeTree( [], ), }, ], ), }, ], ), TypeTree( [ Type { offset: -1, size: 8, kind: Pointer, child: TypeTree( [ Type { offset: -1, size: 8, kind: Double, child: TypeTree( [], ), }, ], ), }, ], ), TypeTree( [ Type { offset: -1, size: 8, kind: Pointer, child: TypeTree( [ Type { offset: -1, size: 8, kind: Double, child: TypeTree( [], ), }, ], ), }, ], ), TypeTree( [ Type { offset: -1, size: 8, kind: Pointer, child: TypeTree( [ Type { offset: 0, size: 8, kind: Double, child: TypeTree( [], ), }, Type { offset: 8, size: 8, kind: Integer, child: TypeTree( [], ), }, ], ), }, ], ), TypeTree( [ Type { offset: -1, size: 8, kind: Pointer, child: TypeTree( [ Type { offset: -1, size: 8, kind: Double, child: TypeTree( [], ), }, ], ), }, ], ), ], output: TypeTree( [], ), }, ] [compiler/rustc_codegen_llvm/src/llvm/ffi.rs:942:5] &fnc = (ptr:; Function Attrs: noinline nonlazybind sanitize_hwaddress uwtable define internal void @_ZN5gmmrs15gmm_objective_c17h321280d53201d2cdE(i64 noundef %0, i64 noundef %1, i64 noundef %2, ptr noundef %3, ptr nocapture noundef readonly %4, ptr noundef %5, ptr nocapture noundef readonly %6, ptr nocapture noundef readonly %7, ptr nocapture readnone %8) unnamed_addr #3 personality ptr @rust_eh_personality { %10 = alloca { { ptr, ptr }, ptr }, align 8 %11 = alloca double, align 8 %12 = alloca { ptr, { i64, i64, i8, [7 x i8] } }, align 8 %13 = alloca double, align 8 %14 = alloca { { ptr, { ptr, i64 }, ptr, { ptr, i64 }, ptr, ptr, { ptr, i64 } }, { i64, i64 } }, align 8 %15 = alloca i64, align 8 %16 = alloca { double, i64 }, align 8 %17 = alloca i64, align 8 %18 = alloca { { ptr, ptr }, ptr }, align 8 %19 = alloca double, align 8 %20 = alloca { { i64, ptr }, i64 }, align 8 %21 = alloca { { i64, ptr }, i64 }, align 8 %22 = alloca { { i64, ptr }, i64 }, align 8 %23 = alloca { { i64, ptr }, i64 }, align 8 %24 = alloca { { i64, ptr }, i64 }, align 8 %25 = mul i64 %1, %0 %26 = add i64 %0, 1 %27 = mul i64 %25, %26 %28 = lshr i64 %27, 1 %29 = mul i64 %2, %0 %30 = load double, ptr %7, align 8, !noundef !5 %31 = getelementptr inbounds { double, i64 }, ptr %7, i64 0, i32 1 %32 = load i64, ptr %31, align 8, !noundef !5 tail call void @llvm.experimental.noalias.scope.decl(metadata !10951) tail call void @llvm.experimental.noalias.scope.decl(metadata !10954) tail call void @llvm.experimental.noalias.scope.decl(metadata !10956) tail call void @llvm.experimental.noalias.scope.decl(metadata !10958) %33 = uitofp i64 %0 to double %34 = mul i64 %26, %0 %35 = lshr i64 %34, 1 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %24), !noalias !10960 tail call void @llvm.experimental.noalias.scope.decl(metadata !10962) %36 = tail call { i64, ptr } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$11allocate_in17h6f69ccb19334acffE"(i64 noundef %25, i1 noundef zeroext true), !noalias !10965 %37 = extractvalue { i64, ptr } %36, 0 %38 = extractvalue { i64, ptr } %36, 1 store i64 %37, ptr %24, align 8, !alias.scope !10962, !noalias !10960 %39 = getelementptr inbounds { i64, ptr }, ptr %24, i64 0, i32 1 store ptr %38, ptr %39, align 8, !alias.scope !10962, !noalias !10960 %40 = getelementptr inbounds { { i64, ptr }, i64 }, ptr %24, i64 0, i32 1 store i64 %25, ptr %40, align 8, !alias.scope !10962, !noalias !10960 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %23), !noalias !10960 %41 = invoke { i64, ptr } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$11allocate_in17h6f69ccb19334acffE"(i64 noundef %1, i1 noundef zeroext true) to label %51 unwind label %49, !noalias !10960 42: ; preds = %254, %61, %49 %43 = phi { ptr, i32 } [ %50, %49 ], [ %58, %61 ], [ %255, %254 ] invoke void @"_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7404fb79d57f35a1E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %24) to label %46 unwind label %44, !noalias !10966 44: ; preds = %42 %45 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer invoke void @"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd71a34f403f88ecaE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %24) to label %408 unwind label %47, !noalias !10966 46: ; preds = %42 invoke void @"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd71a34f403f88ecaE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %24) to label %264 unwind label %406, !noalias !10966 47: ; preds = %44 %48 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h7c90653848f35e4dE() #38, !noalias !10966 unreachable 49: ; preds = %256, %9 %50 = landingpad { ptr, i32 } cleanup br label %42 51: ; preds = %9 %52 = extractvalue { i64, ptr } %41, 0 %53 = extractvalue { i64, ptr } %41, 1 store i64 %52, ptr %23, align 8, !alias.scope !10967, !noalias !10960 %54 = getelementptr inbounds { i64, ptr }, ptr %23, i64 0, i32 1 store ptr %53, ptr %54, align 8, !alias.scope !10967, !noalias !10960 %55 = getelementptr inbounds { { i64, ptr }, i64 }, ptr %23, i64 0, i32 1 store i64 %1, ptr %55, align 8, !alias.scope !10967, !noalias !10960 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %22), !noalias !10960 %56 = invoke { i64, ptr } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$11allocate_in17h6f69ccb19334acffE"(i64 noundef %0, i1 noundef zeroext true) to label %66 unwind label %64, !noalias !10966 57: ; preds = %248, %76, %64 %58 = phi { ptr, i32 } [ %65, %64 ], [ %73, %76 ], [ %249, %248 ] invoke void @"_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7404fb79d57f35a1E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %23) to label %61 unwind label %59, !noalias !10966 59: ; preds = %57 %60 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer invoke void @"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd71a34f403f88ecaE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %23) to label %408 unwind label %62, !noalias !10966 61: ; preds = %57 invoke void @"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd71a34f403f88ecaE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %23) to label %42 unwind label %406, !noalias !10966 62: ; preds = %59 %63 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h7c90653848f35e4dE() #38, !noalias !10966 unreachable 64: ; preds = %250, %51 %65 = landingpad { ptr, i32 } cleanup br label %57 66: ; preds = %51 %67 = extractvalue { i64, ptr } %56, 0 %68 = extractvalue { i64, ptr } %56, 1 store i64 %67, ptr %22, align 8, !alias.scope !10970, !noalias !10960 %69 = getelementptr inbounds { i64, ptr }, ptr %22, i64 0, i32 1 store ptr %68, ptr %69, align 8, !alias.scope !10970, !noalias !10960 %70 = getelementptr inbounds { { i64, ptr }, i64 }, ptr %22, i64 0, i32 1 store i64 %0, ptr %70, align 8, !alias.scope !10970, !noalias !10960 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %21), !noalias !10960 %71 = invoke { i64, ptr } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$11allocate_in17h6f69ccb19334acffE"(i64 noundef %0, i1 noundef zeroext true) to label %81 unwind label %79, !noalias !10966 72: ; preds = %242, %91, %79 %73 = phi { ptr, i32 } [ %80, %79 ], [ %88, %91 ], [ %243, %242 ] invoke void @"_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7404fb79d57f35a1E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %22) to label %76 unwind label %74, !noalias !10966 74: ; preds = %72 %75 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer invoke void @"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd71a34f403f88ecaE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %22) to label %408 unwind label %77, !noalias !10966 76: ; preds = %72 invoke void @"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd71a34f403f88ecaE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %22) to label %57 unwind label %406, !noalias !10966 77: ; preds = %74 %78 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h7c90653848f35e4dE() #38, !noalias !10966 unreachable 79: ; preds = %244, %66 %80 = landingpad { ptr, i32 } cleanup br label %72 81: ; preds = %66 %82 = extractvalue { i64, ptr } %71, 0 %83 = extractvalue { i64, ptr } %71, 1 store i64 %82, ptr %21, align 8, !alias.scope !10973, !noalias !10960 %84 = getelementptr inbounds { i64, ptr }, ptr %21, i64 0, i32 1 store ptr %83, ptr %84, align 8, !alias.scope !10973, !noalias !10960 %85 = getelementptr inbounds { { i64, ptr }, i64 }, ptr %21, i64 0, i32 1 store i64 %0, ptr %85, align 8, !alias.scope !10973, !noalias !10960 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %20), !noalias !10960 %86 = invoke { i64, ptr } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$11allocate_in17h6f69ccb19334acffE"(i64 noundef %1, i1 noundef zeroext true) to label %96 unwind label %94, !noalias !10966 87: ; preds = %236, %179, %94 %88 = phi { ptr, i32 } [ %95, %94 ], [ %176, %179 ], [ %237, %236 ] invoke void @"_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7404fb79d57f35a1E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %21) to label %91 unwind label %89, !noalias !10966 89: ; preds = %87 %90 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer invoke void @"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd71a34f403f88ecaE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %21) to label %408 unwind label %92, !noalias !10966 91: ; preds = %87 invoke void @"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd71a34f403f88ecaE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %21) to label %72 unwind label %406, !noalias !10966 92: ; preds = %89 %93 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h7c90653848f35e4dE() #38, !noalias !10966 unreachable 94: ; preds = %238, %81 %95 = landingpad { ptr, i32 } cleanup br label %87 96: ; preds = %81 %97 = extractvalue { i64, ptr } %86, 0 %98 = extractvalue { i64, ptr } %86, 1 store i64 %97, ptr %20, align 8, !alias.scope !10976, !noalias !10960 %99 = getelementptr inbounds { i64, ptr }, ptr %20, i64 0, i32 1 store ptr %98, ptr %99, align 8, !alias.scope !10976, !noalias !10960 %100 = getelementptr inbounds { { i64, ptr }, i64 }, ptr %20, i64 0, i32 1 store i64 %1, ptr %100, align 8, !alias.scope !10976, !noalias !10960 %101 = load ptr, ptr %54, align 8, !noalias !10960, !nonnull !5, !noundef !5 %102 = load i64, ptr %55, align 8, !noalias !10960, !noundef !5 %103 = load ptr, ptr %39, align 8, !noalias !10960, !nonnull !5, !noundef !5 %104 = load i64, ptr %40, align 8, !noalias !10960, !noundef !5 tail call void @llvm.experimental.noalias.scope.decl(metadata !10979) tail call void @llvm.experimental.noalias.scope.decl(metadata !10982) tail call void @llvm.experimental.noalias.scope.decl(metadata !10984) %105 = icmp eq i64 %1, 0 br i1 %105, label %143, label %106 106: ; preds = %96 %107 = icmp eq i64 %0, 0 br i1 %107, label %134, label %108 108: ; preds = %132, %106 %109 = phi i64 [ %110, %132 ], [ 0, %106 ] %110 = add nuw i64 %109, 1 %111 = icmp eq i64 %109, %102 br i1 %111, label %395, label %112, !prof !110 112: ; preds = %108 %113 = getelementptr inbounds [0 x double], ptr %101, i64 0, i64 %109 store double 0.000000e+00, ptr %113, align 8, !alias.scope !10982, !noalias !10986 %114 = mul i64 %109, %35 %115 = mul i64 %109, %0 br label %116 116: ; preds = %128, %112 %117 = phi i64 [ 0, %112 ], [ %118, %128 ] %118 = add nuw i64 %117, 1 %119 = add nuw nsw i64 %117, %114 %120 = icmp ult i64 %119, %28 br i1 %120, label %121, label %395, !prof !13 121: ; preds = %116 %122 = getelementptr inbounds [0 x double], ptr %5, i64 0, i64 %119 %123 = load double, ptr %122, align 8, !alias.scope !10987, !noalias !10988, !noundef !5 %124 = load double, ptr %113, align 8, !alias.scope !10982, !noalias !10986, !noundef !5 %125 = fadd double %123, %124 store double %125, ptr %113, align 8, !alias.scope !10982, !noalias !10986 %126 = add nuw i64 %117, %115 %127 = icmp ult i64 %126, %104 br i1 %127, label %128, label %395, !prof !13 128: ; preds = %121 %129 = tail call double @llvm.exp.f64(double %123) %130 = getelementptr inbounds [0 x double], ptr %103, i64 0, i64 %126 store double %129, ptr %130, align 8, !alias.scope !10984, !noalias !10989 %131 = icmp eq i64 %118, %0 br i1 %131, label %132, label %116 132: ; preds = %128 %133 = icmp eq i64 %110, %1 br i1 %133, label %141, label %108 134: ; preds = %137, %106 %135 = phi i64 [ %138, %137 ], [ 0, %106 ] %136 = icmp eq i64 %135, %102 br i1 %136, label %395, label %137, !prof !110 137: ; preds = %134 %138 = add nuw i64 %135, 1 %139 = getelementptr inbounds [0 x double], ptr %101, i64 0, i64 %135 store double 0.000000e+00, ptr %139, align 8, !alias.scope !10982, !noalias !10986 %140 = icmp eq i64 %138, %1 br i1 %140, label %141, label %134 141: ; preds = %137, %132 %142 = icmp eq i64 %2, 0 br i1 %142, label %192, label %149 143: ; preds = %96 %144 = icmp eq i64 %2, 0 br i1 %144, label %145, label %146 145: ; preds = %143 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19), !noalias !10990 br label %202 146: ; preds = %143 %147 = getelementptr inbounds { ptr, ptr }, ptr %10, i64 0, i32 1 %148 = getelementptr inbounds { { ptr, ptr }, ptr }, ptr %10, i64 0, i32 1 br label %155 149: ; preds = %141 %150 = icmp eq i64 %0, 0 %151 = shl i64 %0, 1 %152 = add i64 %1, -1 %153 = getelementptr inbounds { ptr, ptr }, ptr %10, i64 0, i32 1 %154 = getelementptr inbounds { { ptr, ptr }, ptr }, ptr %10, i64 0, i32 1 br i1 %105, label %155, label %182 155: ; preds = %149, %146 %156 = phi ptr [ %148, %146 ], [ %154, %149 ] %157 = phi ptr [ %147, %146 ], [ %153, %149 ] br label %158 158: ; preds = %164, %155 %159 = phi i64 [ %165, %164 ], [ 0, %155 ] %160 = load ptr, ptr %99, align 8, !noalias !10960, !nonnull !5, !noundef !5 %161 = load i64, ptr %100, align 8, !noalias !10960, !noundef !5 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11), !noalias !10993 store double 0xFFF0000000000000, ptr %11, align 8, !noalias !10996 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10), !noalias !10996 %162 = getelementptr inbounds double, ptr %160, i64 %161 store ptr %160, ptr %10, align 8, !noalias !10996 store ptr %162, ptr %157, align 8, !noalias !10996 store ptr %11, ptr %156, align 8, !noalias !10996 %163 = invoke noundef double @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h4c53c3dcde398197E"(ptr noalias nocapture noundef nonnull align 8 dereferenceable(24) %10, double noundef 0.000000e+00) to label %164 unwind label %167, !noalias !10966 164: ; preds = %158 %165 = add nuw i64 %159, 1 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10), !noalias !10996 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11), !noalias !10996 %166 = icmp eq i64 %165, %2 br i1 %166, label %192, label %158 167: ; preds = %158 %168 = landingpad { ptr, i32 } cleanup br label %175 169: ; preds = %381 %170 = landingpad { ptr, i32 } cleanup br label %175 171: ; preds = %279 %172 = landingpad { ptr, i32 } cleanup br label %175 173: ; preds = %395, %336, %311, %222, %208, %202 %174 = landingpad { ptr, i32 } cleanup br label %175 175: ; preds = %173, %171, %169, %167 %176 = phi { ptr, i32 } [ %170, %169 ], [ %174, %173 ], [ %172, %171 ], [ %168, %167 ] invoke void @"_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7404fb79d57f35a1E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %20) to label %179 unwind label %177, !noalias !10966 177: ; preds = %175 %178 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer invoke void @"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd71a34f403f88ecaE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %20) to label %408 unwind label %180, !noalias !10966 179: ; preds = %175 invoke void @"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd71a34f403f88ecaE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %20) to label %87 unwind label %406, !noalias !10966 180: ; preds = %177 %181 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h7c90653848f35e4dE() #38, !noalias !10966 unreachable 182: ; preds = %287, %149 %183 = phi i64 [ %184, %287 ], [ 0, %149 ] %184 = add nuw i64 %183, 1 %185 = mul i64 %183, %0 %186 = icmp ugt i64 %185, %29 %187 = getelementptr inbounds double, ptr %6, i64 %185 br i1 %186, label %311, label %188 188: ; preds = %182 %189 = sub i64 %29, %185 %190 = icmp ult i64 %189, %0 br i1 %190, label %191, label %282 191: ; preds = %188 call void @llvm.experimental.noalias.scope.decl(metadata !10998) call void @llvm.experimental.noalias.scope.decl(metadata !11001) call void @llvm.experimental.noalias.scope.decl(metadata !11003) br label %336 192: ; preds = %287, %164, %141 call void @llvm.experimental.noalias.scope.decl(metadata !11005) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19), !noalias !11007 br i1 %105, label %202, label %193 193: ; preds = %193, %192 %194 = phi double [ %200, %193 ], [ 0xFFF0000000000000, %192 ] %195 = phi i64 [ %196, %193 ], [ 0, %192 ] %196 = add nuw i64 %195, 1 %197 = getelementptr inbounds [0 x double], ptr %3, i64 0, i64 %195 %198 = load double, ptr %197, align 8, !alias.scope !11008, !noalias !11011, !noundef !5 %199 = fcmp olt double %194, %198 %200 = select i1 %199, double %198, double %194 %201 = icmp eq i64 %196, %1 br i1 %201, label %202, label %193 202: ; preds = %193, %192, %145 %203 = phi double [ 0xFFF0000000000000, %192 ], [ 0xFFF0000000000000, %145 ], [ %200, %193 ] store double %203, ptr %19, align 8, !noalias !11007 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %18), !noalias !11007 %204 = getelementptr inbounds double, ptr %3, i64 %1 store ptr %3, ptr %18, align 8, !noalias !11007 %205 = getelementptr inbounds { ptr, ptr }, ptr %18, i64 0, i32 1 store ptr %204, ptr %205, align 8, !noalias !11007 %206 = getelementptr inbounds { { ptr, ptr }, ptr }, ptr %18, i64 0, i32 1 store ptr %19, ptr %206, align 8, !noalias !11007 %207 = invoke noundef double @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h4c53c3dcde398197E"(ptr noalias nocapture noundef nonnull align 8 dereferenceable(24) %18, double noundef 0.000000e+00) to label %208 unwind label %173, !noalias !10966 208: ; preds = %202 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18), !noalias !11007 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19), !noalias !11007 %209 = load ptr, ptr %54, align 8, !noalias !10960, !nonnull !5, !noundef !5 %210 = load i64, ptr %55, align 8, !noalias !10960, !noundef !5 %211 = load ptr, ptr %39, align 8, !noalias !10960, !nonnull !5, !noundef !5 %212 = load i64, ptr %40, align 8, !noalias !10960, !noundef !5 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %16), !noalias !10960 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17), !noalias !10960 store i64 %0, ptr %17, align 8, !noalias !11012 store double %30, ptr %16, align 8, !noalias !11012 %213 = getelementptr inbounds { double, i64 }, ptr %16, i64 0, i32 1 store i64 %32, ptr %213, align 8, !noalias !11012 %214 = add i64 %32, %26 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15), !noalias !11012 store i64 %35, ptr %15, align 8, !noalias !11012 %215 = uitofp i64 %214 to double %216 = fmul double %215, 5.000000e-01 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13), !noalias !11012 store double %216, ptr %13, align 8, !noalias !11012 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12), !noalias !11012 %217 = call i64 @llvm.fptoui.sat.i64.f64(double %33) %218 = getelementptr inbounds { ptr, { i64, i64, i8, [7 x i8] } }, ptr %12, i64 0, i32 1 store i64 1, ptr %218, align 8, !noalias !11012 %219 = getelementptr inbounds { ptr, { i64, i64, i8, [7 x i8] } }, ptr %12, i64 0, i32 1, i32 1 store i64 %217, ptr %219, align 8, !noalias !11012 %220 = getelementptr inbounds { ptr, { i64, i64, i8, [7 x i8] } }, ptr %12, i64 0, i32 1, i32 2 store i8 0, ptr %220, align 8, !noalias !11012 store ptr %13, ptr %12, align 8, !noalias !11012 %221 = invoke noundef double @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hcaefa20ea3e0a9dbE"(ptr noalias nocapture noundef nonnull align 8 dereferenceable(32) %12, double noundef 0.000000e+00) to label %222 unwind label %173, !noalias !10966 222: ; preds = %208 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12), !noalias !11012 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13), !noalias !11012 call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %14), !noalias !11012 %223 = getelementptr inbounds { { ptr, { ptr, i64 }, ptr, { ptr, i64 }, ptr, ptr, { ptr, i64 } }, { i64, i64 } }, ptr %14, i64 0, i32 1 store i64 0, ptr %223, align 8, !noalias !11012 %224 = getelementptr inbounds { { ptr, { ptr, i64 }, ptr, { ptr, i64 }, ptr, ptr, { ptr, i64 } }, { i64, i64 } }, ptr %14, i64 0, i32 1, i32 1 store i64 %1, ptr %224, align 8, !noalias !11012 store ptr %17, ptr %14, align 8, !noalias !11012 %225 = getelementptr inbounds i8, ptr %14, i64 8 store ptr %211, ptr %225, align 8, !noalias !11012 %226 = getelementptr inbounds i8, ptr %14, i64 16 store i64 %212, ptr %226, align 8, !noalias !11012 %227 = getelementptr inbounds i8, ptr %14, i64 24 store ptr %15, ptr %227, align 8, !noalias !11012 %228 = getelementptr inbounds i8, ptr %14, i64 32 store ptr %5, ptr %228, align 8, !noalias !11012 %229 = getelementptr inbounds i8, ptr %14, i64 40 store i64 %28, ptr %229, align 8, !noalias !11012 %230 = getelementptr inbounds i8, ptr %14, i64 48 store ptr %16, ptr %230, align 8, !noalias !11012 %231 = getelementptr inbounds i8, ptr %14, i64 56 store ptr %213, ptr %231, align 8, !noalias !11012 %232 = getelementptr inbounds i8, ptr %14, i64 64 store ptr %209, ptr %232, align 8, !noalias !11012 %233 = getelementptr inbounds i8, ptr %14, i64 72 store i64 %210, ptr %233, align 8, !noalias !11012 %234 = invoke noundef double @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h1344a0eb1e13aa94E"(ptr noalias nocapture noundef nonnull align 8 dereferenceable(96) %14, double noundef 0.000000e+00) to label %235 unwind label %173, !noalias !10966 235: ; preds = %222 call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %14), !noalias !11012 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15), !noalias !11012 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16), !noalias !10960 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17), !noalias !10960 invoke void @"_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7404fb79d57f35a1E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %20) to label %238 unwind label %236, !noalias !10966 236: ; preds = %235 %237 = landingpad { ptr, i32 } cleanup invoke void @"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd71a34f403f88ecaE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %20) to label %87 unwind label %239, !noalias !10966 238: ; preds = %235 invoke void @"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd71a34f403f88ecaE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %20) to label %241 unwind label %94, !noalias !10966 239: ; preds = %236 %240 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h7c90653848f35e4dE() #38, !noalias !10966 unreachable 241: ; preds = %238 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20), !noalias !10960 invoke void @"_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7404fb79d57f35a1E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %21) to label %244 unwind label %242, !noalias !10966 242: ; preds = %241 %243 = landingpad { ptr, i32 } cleanup invoke void @"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd71a34f403f88ecaE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %21) to label %72 unwind label %245, !noalias !10966 244: ; preds = %241 invoke void @"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd71a34f403f88ecaE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %21) to label %247 unwind label %79, !noalias !10966 245: ; preds = %242 %246 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h7c90653848f35e4dE() #38, !noalias !10966 unreachable 247: ; preds = %244 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21), !noalias !10960 invoke void @"_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7404fb79d57f35a1E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %22) to label %250 unwind label %248, !noalias !10966 248: ; preds = %247 %249 = landingpad { ptr, i32 } cleanup invoke void @"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd71a34f403f88ecaE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %22) to label %57 unwind label %251, !noalias !10966 250: ; preds = %247 invoke void @"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd71a34f403f88ecaE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %22) to label %253 unwind label %64, !noalias !10966 251: ; preds = %248 %252 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h7c90653848f35e4dE() #38, !noalias !10966 unreachable 253: ; preds = %250 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %22), !noalias !10960 invoke void @"_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7404fb79d57f35a1E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %23) to label %256 unwind label %254, !noalias !10966 254: ; preds = %253 %255 = landingpad { ptr, i32 } cleanup invoke void @"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd71a34f403f88ecaE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %23) to label %42 unwind label %257, !noalias !10966 256: ; preds = %253 invoke void @"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd71a34f403f88ecaE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %23) to label %259 unwind label %49, !noalias !10966 257: ; preds = %254 %258 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h7c90653848f35e4dE() #38, !noalias !10966 unreachable 259: ; preds = %256 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %23), !noalias !10960 invoke void @"_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7404fb79d57f35a1E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %24) to label %409 unwind label %260, !noalias !10966 260: ; preds = %259 %261 = landingpad { ptr, i32 } cleanup invoke void @"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd71a34f403f88ecaE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %24) to label %264 unwind label %262, !noalias !10966 262: ; preds = %260 %263 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h7c90653848f35e4dE() #38, !noalias !10966 unreachable 264: ; preds = %260, %46 %265 = phi { ptr, i32 } [ %261, %260 ], [ %43, %46 ] resume { ptr, i32 } %265 266: ; preds = %400 %267 = load ptr, ptr %99, align 8, !noalias !10960, !nonnull !5, !noundef !5 %268 = load i64, ptr %100, align 8, !noalias !10960, !noundef !5 call void @llvm.experimental.noalias.scope.decl(metadata !11017) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11), !noalias !10996 %269 = icmp ult i64 %152, %268 br i1 %269, label %270, label %395, !prof !13 270: ; preds = %270, %266 %271 = phi double [ %277, %270 ], [ 0xFFF0000000000000, %266 ] %272 = phi i64 [ %273, %270 ], [ 0, %266 ] %273 = add nuw i64 %272, 1 %274 = getelementptr inbounds [0 x double], ptr %267, i64 0, i64 %272 %275 = load double, ptr %274, align 8, !alias.scope !11018, !noalias !10966, !noundef !5 %276 = fcmp olt double %271, %275 %277 = select i1 %276, double %275, double %271 %278 = icmp eq i64 %273, %1 br i1 %278, label %279, label %270 279: ; preds = %270 store double %277, ptr %11, align 8, !noalias !10996 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10), !noalias !10996 %280 = getelementptr inbounds double, ptr %267, i64 %268 store ptr %267, ptr %10, align 8, !noalias !10996 store ptr %280, ptr %153, align 8, !noalias !10996 store ptr %11, ptr %154, align 8, !noalias !10996 %281 = invoke noundef double @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h4c53c3dcde398197E"(ptr noalias nocapture noundef nonnull align 8 dereferenceable(24) %10, double noundef 0.000000e+00) to label %287 unwind label %171, !noalias !10966 282: ; preds = %400, %188 %283 = phi i64 [ %284, %400 ], [ 0, %188 ] %284 = add nuw i64 %283, 1 %285 = mul i64 %283, %0 %286 = icmp ugt i64 %285, %25 br i1 %286, label %311, label %289 287: ; preds = %279 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10), !noalias !10996 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11), !noalias !10996 %288 = icmp eq i64 %184, %2 br i1 %288, label %192, label %182 289: ; preds = %282 %290 = getelementptr inbounds double, ptr %4, i64 %285 %291 = load ptr, ptr %69, align 8, !noalias !10960, !nonnull !5, !noundef !5 %292 = load i64, ptr %70, align 8, !noalias !10960, !noundef !5 call void @llvm.experimental.noalias.scope.decl(metadata !10998) call void @llvm.experimental.noalias.scope.decl(metadata !11001) call void @llvm.experimental.noalias.scope.decl(metadata !11003) %293 = sub nuw i64 %25, %285 %294 = icmp ult i64 %293, %0 br i1 %294, label %336, label %295 295: ; preds = %289 %296 = icmp ult i64 %292, %0 br i1 %296, label %336, label %297 297: ; preds = %295 br i1 %150, label %308, label %298 298: ; preds = %298, %297 %299 = phi i64 [ %300, %298 ], [ 0, %297 ] %300 = add nuw i64 %299, 1 %301 = getelementptr inbounds [0 x double], ptr %187, i64 0, i64 %299 %302 = load double, ptr %301, align 8, !alias.scope !11021, !noalias !11022, !noundef !5 %303 = getelementptr inbounds [0 x double], ptr %290, i64 0, i64 %299 %304 = load double, ptr %303, align 8, !alias.scope !11023, !noalias !11024, !noundef !5 %305 = getelementptr inbounds [0 x double], ptr %291, i64 0, i64 %299 %306 = fsub double %302, %304 store double %306, ptr %305, align 8, !alias.scope !11003, !noalias !11025 %307 = icmp eq i64 %300, %0 br i1 %307, label %308, label %298 308: ; preds = %298, %297 %309 = load i64, ptr %40, align 8, !noalias !10960, !noundef !5 %310 = icmp ugt i64 %285, %309 br i1 %310, label %311, label %316 311: ; preds = %316, %308, %282, %182 %312 = phi i64 [ %321, %316 ], [ %285, %308 ], [ %285, %282 ], [ %185, %182 ] %313 = phi i64 [ %28, %316 ], [ %309, %308 ], [ %25, %282 ], [ %29, %182 ] %314 = phi ptr [ @anon.f15b97978e6ce3065fe88aa14f1543dc.5, %316 ], [ @anon.f15b97978e6ce3065fe88aa14f1543dc.2, %308 ], [ @anon.f15b97978e6ce3065fe88aa14f1543dc.6, %282 ], [ @anon.f15b97978e6ce3065fe88aa14f1543dc.7, %182 ] invoke void @_ZN4core5slice5index26slice_start_index_len_fail17h30e606d626589a22E(i64 noundef %312, i64 noundef %313, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %314) #114 to label %315 unwind label %173, !noalias !10966 315: ; preds = %311 unreachable 316: ; preds = %308 %317 = load ptr, ptr %39, align 8, !noalias !10960, !nonnull !5, !noundef !5 %318 = sub nuw i64 %309, %285 %319 = getelementptr inbounds double, ptr %317, i64 %285 %320 = mul i64 %283, %35 %321 = add i64 %320, %0 %322 = icmp ugt i64 %321, %28 br i1 %322, label %311, label %323 323: ; preds = %316 %324 = sub nuw nsw i64 %28, %321 %325 = getelementptr inbounds double, ptr %5, i64 %321 %326 = load ptr, ptr %69, align 8, !noalias !10960, !nonnull !5, !noundef !5 %327 = load i64, ptr %70, align 8, !noalias !10960, !noundef !5 %328 = load ptr, ptr %84, align 8, !noalias !10960, !nonnull !5, !noundef !5 %329 = load i64, ptr %85, align 8, !noalias !10960, !noundef !5 call void @llvm.experimental.noalias.scope.decl(metadata !11026) call void @llvm.experimental.noalias.scope.decl(metadata !11029) call void @llvm.experimental.noalias.scope.decl(metadata !11031) call void @llvm.experimental.noalias.scope.decl(metadata !11033) %330 = icmp ult i64 %329, %0 br i1 %330, label %336, label %331 331: ; preds = %323 %332 = icmp ult i64 %318, %0 br i1 %332, label %336, label %333 333: ; preds = %331 %334 = icmp ult i64 %327, %0 br i1 %334, label %336, label %335 335: ; preds = %333 br i1 %150, label %378, label %341 336: ; preds = %333, %331, %323, %295, %289, %191 %337 = phi ptr [ @anon.f15b97978e6ce3065fe88aa14f1543dc.11, %191 ], [ @anon.f15b97978e6ce3065fe88aa14f1543dc.11, %333 ], [ @anon.f15b97978e6ce3065fe88aa14f1543dc.18, %331 ], [ @anon.f15b97978e6ce3065fe88aa14f1543dc.15, %323 ], [ @anon.f15b97978e6ce3065fe88aa14f1543dc.15, %295 ], [ @anon.f15b97978e6ce3065fe88aa14f1543dc.13, %289 ] %338 = phi i64 [ 30, %191 ], [ 30, %333 ], [ 35, %331 ], [ 32, %323 ], [ 32, %295 ], [ 30, %289 ] %339 = phi ptr [ @anon.f15b97978e6ce3065fe88aa14f1543dc.12, %191 ], [ @anon.f15b97978e6ce3065fe88aa14f1543dc.20, %333 ], [ @anon.f15b97978e6ce3065fe88aa14f1543dc.19, %331 ], [ @anon.f15b97978e6ce3065fe88aa14f1543dc.17, %323 ], [ @anon.f15b97978e6ce3065fe88aa14f1543dc.16, %295 ], [ @anon.f15b97978e6ce3065fe88aa14f1543dc.14, %289 ] invoke void @_ZN4core9panicking5panic17h2166c12a14f0cee6E(ptr noalias noundef nonnull readonly align 1 %337, i64 noundef %338, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %339) #114 to label %340 unwind label %173, !noalias !10966 340: ; preds = %336 unreachable 341: ; preds = %341, %335 %342 = phi i64 [ %343, %341 ], [ 0, %335 ] %343 = add nuw i64 %342, 1 %344 = getelementptr inbounds [0 x double], ptr %319, i64 0, i64 %342 %345 = load double, ptr %344, align 8, !alias.scope !11026, !noalias !11035, !noundef !5 %346 = getelementptr inbounds [0 x double], ptr %326, i64 0, i64 %342 %347 = load double, ptr %346, align 8, !alias.scope !11031, !noalias !11036, !noundef !5 %348 = getelementptr inbounds [0 x double], ptr %328, i64 0, i64 %342 %349 = fmul double %345, %347 store double %349, ptr %348, align 8, !alias.scope !11033, !noalias !11037 %350 = icmp eq i64 %343, %0 br i1 %350, label %353, label %341 351: ; preds = %367, %353 %352 = icmp eq i64 %355, %0 br i1 %352, label %378, label %353 353: ; preds = %351, %341 %354 = phi i64 [ %355, %351 ], [ 0, %341 ] %355 = add nuw i64 %354, 1 %356 = icmp ult i64 %355, %0 br i1 %356, label %357, label %351 357: ; preds = %353 %358 = xor i64 %354, -1 %359 = add i64 %151, %358 %360 = mul i64 %359, %354 %361 = lshr i64 %360, 1 %362 = getelementptr inbounds [0 x double], ptr %326, i64 0, i64 %354 br label %363 363: ; preds = %367, %357 %364 = phi i64 [ %355, %357 ], [ %376, %367 ] %365 = phi i64 [ %361, %357 ], [ %375, %367 ] %366 = icmp ult i64 %365, %324 br i1 %366, label %367, label %395, !prof !13 367: ; preds = %363 %368 = getelementptr inbounds [0 x double], ptr %328, i64 0, i64 %364 %369 = load double, ptr %368, align 8, !alias.scope !11033, !noalias !11037, !noundef !5 %370 = getelementptr inbounds [0 x double], ptr %325, i64 0, i64 %365 %371 = load double, ptr %370, align 8, !alias.scope !11038, !noalias !11039, !noundef !5 %372 = load double, ptr %362, align 8, !alias.scope !11031, !noalias !11036, !noundef !5 %373 = fmul double %371, %372 %374 = fadd double %369, %373 store double %374, ptr %368, align 8, !alias.scope !11033, !noalias !11037 %375 = add nuw i64 %365, 1 %376 = add nuw i64 %364, 1 %377 = icmp ult i64 %376, %0 br i1 %377, label %363, label %351 378: ; preds = %351, %335 %379 = load i64, ptr %55, align 8, !noalias !10960, !noundef !5 %380 = icmp ult i64 %283, %379 br i1 %380, label %381, label %395, !prof !13 381: ; preds = %378 %382 = load ptr, ptr %54, align 8, !noalias !10960, !nonnull !5, !noundef !5 %383 = getelementptr inbounds [0 x double], ptr %3, i64 0, i64 %283 %384 = load double, ptr %383, align 8, !alias.scope !10951, !noalias !11011, !noundef !5 %385 = getelementptr inbounds [0 x double], ptr %382, i64 0, i64 %283 %386 = load double, ptr %385, align 8, !noalias !10966, !noundef !5 %387 = fadd double %384, %386 %388 = load ptr, ptr %84, align 8, !noalias !10960, !nonnull !5, !noundef !5 %389 = load i64, ptr %85, align 8, !noalias !10960, !noundef !5 %390 = getelementptr inbounds double, ptr %388, i64 %389 %391 = invoke noundef double @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17he5b3733469ab333aE"(ptr noundef nonnull %388, ptr noundef nonnull %390, double noundef 0.000000e+00) to label %392 unwind label %169, !noalias !10966 392: ; preds = %381 %393 = load i64, ptr %100, align 8, !noalias !10960, !noundef !5 %394 = icmp ult i64 %283, %393 br i1 %394, label %400, label %395, !prof !13 395: ; preds = %392, %378, %363, %266, %134, %121, %116, %108 %396 = phi i64 [ %365, %363 ], [ %283, %378 ], [ %283, %392 ], [ %268, %266 ], [ %102, %134 ], [ %126, %121 ], [ %119, %116 ], [ %102, %108 ] %397 = phi i64 [ %324, %363 ], [ %393, %392 ], [ %379, %378 ], [ %268, %266 ], [ %102, %134 ], [ %104, %121 ], [ %28, %116 ], [ %102, %108 ] %398 = phi ptr [ @anon.f15b97978e6ce3065fe88aa14f1543dc.21, %363 ], [ @anon.f15b97978e6ce3065fe88aa14f1543dc.4, %392 ], [ @anon.f15b97978e6ce3065fe88aa14f1543dc.3, %378 ], [ @anon.f15b97978e6ce3065fe88aa14f1543dc.1, %266 ], [ @anon.f15b97978e6ce3065fe88aa14f1543dc.8, %134 ], [ @anon.f15b97978e6ce3065fe88aa14f1543dc.10, %121 ], [ @anon.f15b97978e6ce3065fe88aa14f1543dc.9, %116 ], [ @anon.f15b97978e6ce3065fe88aa14f1543dc.8, %108 ] invoke void @_ZN4core9panicking18panic_bounds_check17h383135d9b6be1c13E(i64 noundef %396, i64 noundef %397, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %398) #114 to label %399 unwind label %173, !noalias !10966 399: ; preds = %395 unreachable 400: ; preds = %392 %401 = load ptr, ptr %99, align 8, !noalias !10960, !nonnull !5, !noundef !5 %402 = getelementptr inbounds [0 x double], ptr %401, i64 0, i64 %283 %403 = fmul double %391, 5.000000e-01 %404 = fsub double %387, %403 store double %404, ptr %402, align 8, !noalias !10966 %405 = icmp eq i64 %284, %1 br i1 %405, label %266, label %282 406: ; preds = %179, %91, %76, %61, %46 %407 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer br label %408 408: ; preds = %406, %177, %89, %74, %59, %44 call void @_ZN4core9panicking16panic_in_cleanup17h7c90653848f35e4dE() #38, !noalias !10966 unreachable 409: ; preds = %259 call void @"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd71a34f403f88ecaE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %24), !noalias !10966 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %24), !noalias !10960 ret void } ) [compiler/rustc_codegen_llvm/src/llvm/ffi.rs:964:5] &primary_ret = false [compiler/rustc_codegen_llvm/src/llvm/ffi.rs:965:5] &ret_activity = DFT_CONSTANT [compiler/rustc_codegen_llvm/src/llvm/ffi.rs:966:5] &input_activity = [ DFT_CONSTANT, DFT_CONSTANT, DFT_CONSTANT, DFT_DUP_ARG, DFT_DUP_ARG, DFT_DUP_ARG, DFT_CONSTANT, DFT_CONSTANT, DFT_DUP_ARG, ] num_fnc_args: 9 input_activity.len(): 9 [compiler/rustc_codegen_llvm/src/back/write.rs:902:5] &diff_items = [ AutoDiffItem { source: "_ZN5gmmrs15gmm_objective_c17h4ad272ea355e6324E", target: "_ZN5gmmrs14dgmm_objective17h294e462510e98a87E", attrs: AutoDiffAttrs { mode: Reverse, ret_activity: None, input_activity: [ Const, Const, Const, Duplicated, Duplicated, Duplicated, Const, Const, Duplicated, ], }, inputs: [ TypeTree( [ Type { offset: -1, size: 8, kind: Integer, child: TypeTree( [], ), }, ], ), TypeTree( [ Type { offset: -1, size: 8, kind: Integer, child: TypeTree( [], ), }, ], ), TypeTree( [ Type { offset: -1, size: 8, kind: Integer, child: TypeTree( [], ), }, ], ), TypeTree( [ Type { offset: -1, size: 8, kind: Pointer, child: TypeTree( [ Type { offset: -1, size: 8, kind: Double, child: TypeTree( [], ), }, ], ), }, ], ), TypeTree( [ Type { offset: -1, size: 8, kind: Pointer, child: TypeTree( [ Type { offset: -1, size: 8, kind: Double, child: TypeTree( [], ), }, ], ), }, ], ), TypeTree( [ Type { offset: -1, size: 8, kind: Pointer, child: TypeTree( [ Type { offset: -1, size: 8, kind: Double, child: TypeTree( [], ), }, ], ), }, ], ), TypeTree( [ Type { offset: -1, size: 8, kind: Pointer, child: TypeTree( [ Type { offset: -1, size: 8, kind: Double, child: TypeTree( [], ), }, ], ), }, ], ), TypeTree( [ Type { offset: -1, size: 8, kind: Pointer, child: TypeTree( [ Type { offset: 0, size: 8, kind: Double, child: TypeTree( [], ), }, Type { offset: 8, size: 8, kind: Integer, child: TypeTree( [], ), }, ], ), }, ], ), TypeTree( [ Type { offset: -1, size: 8, kind: Pointer, child: TypeTree( [ Type { offset: -1, size: 8, kind: Double, child: TypeTree( [], ), }, ], ), }, ], ), ], output: TypeTree( [], ), }, ] [compiler/rustc_codegen_llvm/src/llvm/ffi.rs:942:5] &fnc = (ptr:; Function Attrs: noinline nonlazybind sanitize_hwaddress uwtable define internal void @_ZN5gmmrs15gmm_objective_c17h4ad272ea355e6324E(i64 noundef %0, i64 noundef %1, i64 noundef %2, ptr nocapture noundef readonly %3, ptr nocapture noundef readonly %4, ptr nocapture noundef readonly %5, ptr nocapture noundef readonly %6, ptr nocapture noundef readonly %7, ptr nocapture readnone %8) unnamed_addr #1 personality ptr @rust_eh_personality { %10 = mul i64 %1, %0 %11 = add i64 %0, 1 %12 = mul i64 %10, %11 %13 = lshr i64 %12, 1 %14 = mul i64 %2, %0 %15 = getelementptr inbounds { double, i64 }, ptr %7, i64 0, i32 1 %16 = load i64, ptr %15, align 8, !noundef !4 tail call void @llvm.experimental.noalias.scope.decl(metadata !5) tail call void @llvm.experimental.noalias.scope.decl(metadata !8) tail call void @llvm.experimental.noalias.scope.decl(metadata !10) tail call void @llvm.experimental.noalias.scope.decl(metadata !12) %17 = uitofp i64 %0 to double %18 = mul i64 %11, %0 %19 = lshr i64 %18, 1 %20 = icmp eq i64 %10, 0 br i1 %20, label %29, label %21 21: ; preds = %9 %22 = icmp ugt i64 %10, 1152921504606846975 %23 = shl nuw i64 %10, 3 br i1 %22, label %27, label %24 24: ; preds = %21 %25 = tail call noundef align 8 ptr @__rust_alloc_zeroed(i64 noundef %23, i64 noundef 8) #84, !noalias !14 %26 = icmp eq ptr %25, null br i1 %26, label %28, label %29 27: ; preds = %21 tail call void @_ZN5alloc7raw_vec17capacity_overflow17hc237193e7a3fb50bE() #113, !noalias !14 unreachable 28: ; preds = %24 tail call void @_ZN5alloc5alloc18handle_alloc_error17h188b05f6633a0e1cE(i64 noundef 8, i64 noundef %23) #113, !noalias !14 unreachable 29: ; preds = %24, %9 %30 = phi ptr [ inttoptr (i64 8 to ptr), %9 ], [ %25, %24 ] %31 = icmp eq i64 %1, 0 br i1 %31, label %49, label %32 32: ; preds = %29 %33 = icmp ugt i64 %1, 1152921504606846975 %34 = shl nuw i64 %1, 3 br i1 %33, label %38, label %35 35: ; preds = %32 %36 = tail call noundef align 8 ptr @__rust_alloc_zeroed(i64 noundef %34, i64 noundef 8) #84, !noalias !18 %37 = icmp eq ptr %36, null br i1 %37, label %40, label %49 38: ; preds = %32 invoke void @_ZN5alloc7raw_vec17capacity_overflow17hc237193e7a3fb50bE() #113 to label %39 unwind label %47, !noalias !21 39: ; preds = %38 unreachable 40: ; preds = %35 invoke void @_ZN5alloc5alloc18handle_alloc_error17h188b05f6633a0e1cE(i64 noundef 8, i64 noundef %34) #113 to label %41 unwind label %47, !noalias !21 41: ; preds = %40 unreachable 42: ; preds = %64, %47 %43 = phi { ptr, i32 } [ %48, %47 ], [ %63, %64 ] br i1 %20, label %325, label %44 44: ; preds = %42 %45 = icmp ne ptr %30, null tail call void @llvm.assume(i1 %45) %46 = shl nuw i64 %10, 3 tail call void @__rust_dealloc(ptr noundef nonnull %30, i64 noundef %46, i64 noundef 8) #84 br label %325 47: ; preds = %40, %38 %48 = landingpad { ptr, i32 } cleanup br label %42 49: ; preds = %35, %29 %50 = phi ptr [ inttoptr (i64 8 to ptr), %29 ], [ %36, %35 ] %51 = icmp eq i64 %0, 0 br i1 %51, label %83, label %52 52: ; preds = %49 %53 = icmp ugt i64 %0, 1152921504606846975 %54 = shl nuw i64 %0, 3 br i1 %53, label %58, label %55 55: ; preds = %52 %56 = tail call noundef align 8 ptr @__rust_alloc_zeroed(i64 noundef %54, i64 noundef 8) #84, !noalias !22 %57 = icmp eq ptr %56, null br i1 %57, label %60, label %69 58: ; preds = %52 invoke void @_ZN5alloc7raw_vec17capacity_overflow17hc237193e7a3fb50bE() #113 to label %59 unwind label %67, !noalias !21 59: ; preds = %58 unreachable 60: ; preds = %55 invoke void @_ZN5alloc5alloc18handle_alloc_error17h188b05f6633a0e1cE(i64 noundef 8, i64 noundef %54) #113 to label %61 unwind label %67, !noalias !21 61: ; preds = %60 unreachable 62: ; preds = %92, %77, %67 %63 = phi { ptr, i32 } [ %68, %67 ], [ %79, %77 ], [ %93, %92 ] br i1 %31, label %325, label %64 64: ; preds = %62 %65 = icmp ne ptr %50, null tail call void @llvm.assume(i1 %65) %66 = shl nuw i64 %1, 3 tail call void @__rust_dealloc(ptr noundef nonnull %50, i64 noundef %66, i64 noundef 8) #84 br label %42 67: ; preds = %60, %58 %68 = landingpad { ptr, i32 } cleanup br label %62 69: ; preds = %55 %70 = tail call noundef align 8 ptr @__rust_alloc_zeroed(i64 noundef %54, i64 noundef 8) #84, !noalias !25 %71 = icmp eq ptr %70, null br i1 %71, label %72, label %83 72: ; preds = %69 invoke void @_ZN5alloc5alloc18handle_alloc_error17h188b05f6633a0e1cE(i64 noundef 8, i64 noundef %54) #113 to label %73 unwind label %81, !noalias !21 73: ; preds = %72 unreachable 74: ; preds = %92 %75 = icmp ne ptr %85, null tail call void @llvm.assume(i1 %75) %76 = shl nuw i64 %0, 3 tail call void @__rust_dealloc(ptr noundef nonnull %85, i64 noundef %76, i64 noundef 8) #84 br label %77 77: ; preds = %81, %74 %78 = phi i64 [ %76, %74 ], [ %54, %81 ] %79 = phi { ptr, i32 } [ %93, %74 ], [ %82, %81 ] %80 = phi ptr [ %84, %74 ], [ %56, %81 ] tail call void @__rust_dealloc(ptr noundef nonnull %80, i64 noundef %78, i64 noundef 8) #84 br label %62 81: ; preds = %72 %82 = landingpad { ptr, i32 } cleanup br label %77 83: ; preds = %69, %49 %84 = phi ptr [ %56, %69 ], [ inttoptr (i64 8 to ptr), %49 ] %85 = phi ptr [ %70, %69 ], [ inttoptr (i64 8 to ptr), %49 ] br i1 %31, label %125, label %86 86: ; preds = %83 %87 = shl nuw nsw i64 %1, 3 %88 = tail call noundef align 8 ptr @__rust_alloc_zeroed(i64 noundef %87, i64 noundef 8) #84, !noalias !28 %89 = icmp eq ptr %88, null br i1 %89, label %90, label %96 90: ; preds = %86 invoke void @_ZN5alloc5alloc18handle_alloc_error17h188b05f6633a0e1cE(i64 noundef 8, i64 noundef %87) #113 to label %91 unwind label %94, !noalias !21 91: ; preds = %90 unreachable 92: ; preds = %145, %142, %94 %93 = phi { ptr, i32 } [ %95, %94 ], [ %144, %142 ], [ %146, %145 ] br i1 %51, label %62, label %74 94: ; preds = %90 %95 = landingpad { ptr, i32 } cleanup br label %92 96: ; preds = %86 %97 = icmp ne ptr %50, null tail call void @llvm.assume(i1 %97) %98 = icmp ne ptr %30, null tail call void @llvm.assume(i1 %98) tail call void @llvm.experimental.noalias.scope.decl(metadata !31) tail call void @llvm.experimental.noalias.scope.decl(metadata !34) tail call void @llvm.experimental.noalias.scope.decl(metadata !36) br i1 %51, label %128, label %99 99: ; preds = %96, %121 %100 = phi i64 [ %101, %121 ], [ 0, %96 ] %101 = add nuw i64 %100, 1 %102 = getelementptr inbounds [0 x double], ptr %50, i64 0, i64 %100 store double 0.000000e+00, ptr %102, align 8, !alias.scope !34, !noalias !38 %103 = mul i64 %100, %19 %104 = mul i64 %100, %0 br label %105 105: ; preds = %117, %99 %106 = phi i64 [ 0, %99 ], [ %107, %117 ] %107 = add nuw i64 %106, 1 %108 = add nuw nsw i64 %106, %103 %109 = icmp ult i64 %108, %13 br i1 %109, label %110, label %303, !prof !39 110: ; preds = %105 %111 = getelementptr inbounds [0 x double], ptr %5, i64 0, i64 %108 %112 = load double, ptr %111, align 8, !alias.scope !40, !noalias !41, !noundef !4 %113 = load double, ptr %102, align 8, !alias.scope !34, !noalias !38, !noundef !4 %114 = fadd double %112, %113 store double %114, ptr %102, align 8, !alias.scope !34, !noalias !38 %115 = add nuw i64 %106, %104 %116 = icmp ult i64 %115, %10 br i1 %116, label %117, label %303, !prof !39 117: ; preds = %110 %118 = tail call double @llvm.exp.f64(double %112) %119 = getelementptr inbounds [0 x double], ptr %30, i64 0, i64 %115 store double %118, ptr %119, align 8, !alias.scope !36, !noalias !42 %120 = icmp eq i64 %107, %0 br i1 %120, label %121, label %105 121: ; preds = %117 %122 = icmp eq i64 %101, %1 br i1 %122, label %123, label %99 123: ; preds = %121 %124 = icmp eq i64 %2, 0 br i1 %124, label %173, label %130 125: ; preds = %83 %126 = icmp ne ptr %50, null tail call void @llvm.assume(i1 %126) %127 = icmp ne ptr %30, null tail call void @llvm.assume(i1 %127) br label %173 128: ; preds = %96 tail call void @llvm.memset.p0.i64(ptr nonnull align 8 %50, i8 0, i64 %87, i1 false), !alias.scope !34, !noalias !38 %129 = icmp eq i64 %2, 0 br i1 %129, label %173, label %132 130: ; preds = %123 %131 = shl i64 %0, 1 br i1 %31, label %173, label %132 132: ; preds = %128, %130 %133 = phi i64 [ %131, %130 ], [ 0, %128 ] %134 = icmp ne ptr %85, null br label %149 135: ; preds = %232, %223 %136 = landingpad { ptr, i32 } cleanup br label %145 137: ; preds = %179 %138 = landingpad { ptr, i32 } cleanup br label %142 139: ; preds = %303, %292, %189 %140 = phi ptr [ %174, %189 ], [ %293, %292 ], [ %88, %303 ] %141 = landingpad { ptr, i32 } cleanup br label %142 142: ; preds = %139, %137 %143 = phi ptr [ %174, %137 ], [ %140, %139 ] %144 = phi { ptr, i32 } [ %138, %137 ], [ %141, %139 ] br i1 %31, label %92, label %145 145: ; preds = %142, %135 %146 = phi { ptr, i32 } [ %144, %142 ], [ %136, %135 ] %147 = phi ptr [ %143, %142 ], [ %88, %135 ] %148 = shl nuw i64 %1, 3 tail call void @__rust_dealloc(ptr noundef nonnull %147, i64 noundef %148, i64 noundef 8) #84 br label %92 149: ; preds = %132, %323 %150 = phi i64 [ %151, %323 ], [ 0, %132 ] %151 = add nuw i64 %150, 1 %152 = mul i64 %150, %0 %153 = icmp ugt i64 %152, %14 %154 = getelementptr inbounds double, ptr %6, i64 %152 br i1 %153, label %223, label %155 155: ; preds = %149 %156 = sub i64 %14, %152 %157 = icmp ult i64 %156, %0 br i1 %157, label %172, label %158 158: ; preds = %155 br i1 %51, label %159, label %218 159: ; preds = %158, %163 %160 = phi i64 [ %164, %163 ], [ 0, %158 ] tail call void @llvm.experimental.noalias.scope.decl(metadata !43) tail call void @llvm.experimental.noalias.scope.decl(metadata !46) tail call void @llvm.experimental.noalias.scope.decl(metadata !48) %161 = mul i64 %160, %19 %162 = icmp ugt i64 %161, %13 br i1 %162, label %292, label %163 163: ; preds = %159 %164 = add nuw i64 %160, 1 tail call void @llvm.assume(i1 %134) %165 = getelementptr inbounds [0 x double], ptr %3, i64 0, i64 %160 %166 = load double, ptr %165, align 8, !alias.scope !5, !noalias !50, !noundef !4 %167 = getelementptr inbounds [0 x double], ptr %50, i64 0, i64 %160 %168 = load double, ptr %167, align 8, !noundef !4 %169 = fadd double %166, %168 %170 = getelementptr inbounds [0 x double], ptr %88, i64 0, i64 %160 store double %169, ptr %170, align 8 %171 = icmp eq i64 %164, %1 br i1 %171, label %323, label %159 172: ; preds = %155 tail call void @llvm.experimental.noalias.scope.decl(metadata !43) tail call void @llvm.experimental.noalias.scope.decl(metadata !46) tail call void @llvm.experimental.noalias.scope.decl(metadata !48) br label %232 173: ; preds = %323, %123, %125, %130, %128 %174 = phi ptr [ %88, %128 ], [ %88, %130 ], [ inttoptr (i64 8 to ptr), %125 ], [ %88, %123 ], [ %88, %323 ] %175 = add i64 %16, %11 %176 = uitofp i64 %175 to double %177 = fmul double %176, 5.000000e-01 %178 = tail call i64 @llvm.fptoui.sat.i64.f64(double %17) switch i64 %178, label %179 [ i64 0, label %195 i64 1, label %189 ] 179: ; preds = %173, %186 %180 = phi i64 [ %187, %186 ], [ 1, %173 ] %181 = uitofp i64 %180 to double %182 = fsub double 1.000000e+00, %181 %183 = fmul double %182, 5.000000e-01 %184 = fadd double %177, %183 %185 = invoke noundef double @_ZN4libm4math6lgamma6lgamma17hc79ee1ce764ac757E(double noundef %184) to label %186 unwind label %137, !noalias !21 186: ; preds = %179 %187 = add i64 %180, 1 %188 = icmp eq i64 %187, %178 br i1 %188, label %189, label %179 189: ; preds = %186, %173 %190 = uitofp i64 %178 to double %191 = fsub double 1.000000e+00, %190 %192 = fmul double %191, 5.000000e-01 %193 = fadd double %192, %177 %194 = invoke noundef double @_ZN4libm4math6lgamma6lgamma17hc79ee1ce764ac757E(double noundef %193) to label %195 unwind label %139, !noalias !21 195: ; preds = %189, %173 br i1 %31, label %209, label %196 196: ; preds = %195, %205 %197 = phi i64 [ %198, %205 ], [ 0, %195 ] %198 = add nuw i64 %197, 1 %199 = mul i64 %197, %0 %200 = icmp ugt i64 %199, %10 br i1 %200, label %292, label %201 201: ; preds = %196 %202 = mul i64 %197, %19 %203 = add i64 %202, %0 %204 = icmp ugt i64 %203, %13 br i1 %204, label %292, label %205 205: ; preds = %201 %206 = icmp eq i64 %198, %1 br i1 %206, label %207, label %196 207: ; preds = %205 %208 = shl nuw i64 %1, 3 tail call void @__rust_dealloc(ptr noundef nonnull %174, i64 noundef %208, i64 noundef 8) #84 br label %209 209: ; preds = %195, %207 br i1 %51, label %213, label %210 210: ; preds = %209 %211 = icmp ne ptr %85, null tail call void @llvm.assume(i1 %211) %212 = shl nuw i64 %0, 3 tail call void @__rust_dealloc(ptr noundef nonnull %85, i64 noundef %212, i64 noundef 8) #84 tail call void @__rust_dealloc(ptr noundef nonnull %84, i64 noundef %212, i64 noundef 8) #84 br label %213 213: ; preds = %210, %209 br i1 %31, label %327, label %214 214: ; preds = %213 %215 = shl nuw i64 %1, 3 tail call void @__rust_dealloc(ptr noundef nonnull %50, i64 noundef %215, i64 noundef 8) #84 br i1 %20, label %327, label %216 216: ; preds = %214 %217 = shl nuw i64 %10, 3 tail call void @__rust_dealloc(ptr noundef nonnull %30, i64 noundef %217, i64 noundef 8) #84 br label %327 218: ; preds = %158, %317 %219 = phi i64 [ %220, %317 ], [ 0, %158 ] %220 = add nuw i64 %219, 1 %221 = mul i64 %219, %0 %222 = icmp ugt i64 %221, %10 br i1 %222, label %223, label %228 223: ; preds = %149, %218 %224 = phi i64 [ %221, %218 ], [ %152, %149 ] %225 = phi i64 [ %10, %218 ], [ %14, %149 ] %226 = phi ptr [ @anon.abbed100f06311471d75933e55f2338a.2, %218 ], [ @anon.abbed100f06311471d75933e55f2338a.3, %149 ] invoke void @_ZN4core5slice5index26slice_start_index_len_fail17h30e606d626589a22E(i64 noundef %224, i64 noundef %225, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %226) #113 to label %227 unwind label %135, !noalias !21 227: ; preds = %223 unreachable 228: ; preds = %218 %229 = getelementptr inbounds double, ptr %4, i64 %221 tail call void @llvm.experimental.noalias.scope.decl(metadata !43) tail call void @llvm.experimental.noalias.scope.decl(metadata !46) tail call void @llvm.experimental.noalias.scope.decl(metadata !48) %230 = sub nuw i64 %10, %221 %231 = icmp ult i64 %230, %0 br i1 %231, label %232, label %236 232: ; preds = %228, %172 %233 = phi ptr [ @anon.abbed100f06311471d75933e55f2338a.6, %172 ], [ @anon.abbed100f06311471d75933e55f2338a.8, %228 ] %234 = phi ptr [ @anon.abbed100f06311471d75933e55f2338a.7, %172 ], [ @anon.abbed100f06311471d75933e55f2338a.9, %228 ] invoke void @_ZN4core9panicking5panic17h2166c12a14f0cee6E(ptr noalias noundef nonnull readonly align 1 %233, i64 noundef 30, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %234) #113 to label %235 unwind label %135, !noalias !21 235: ; preds = %232 unreachable 236: ; preds = %228, %236 %237 = phi i64 [ %238, %236 ], [ 0, %228 ] %238 = add nuw i64 %237, 1 %239 = getelementptr inbounds [0 x double], ptr %154, i64 0, i64 %237 %240 = load double, ptr %239, align 8, !alias.scope !51, !noalias !52, !noundef !4 %241 = getelementptr inbounds [0 x double], ptr %229, i64 0, i64 %237 %242 = load double, ptr %241, align 8, !alias.scope !53, !noalias !54, !noundef !4 %243 = getelementptr inbounds [0 x double], ptr %84, i64 0, i64 %237 %244 = fsub double %240, %242 store double %244, ptr %243, align 8, !alias.scope !48, !noalias !55 %245 = icmp eq i64 %238, %0 br i1 %245, label %246, label %236 246: ; preds = %236 %247 = getelementptr inbounds double, ptr %30, i64 %221 %248 = mul i64 %219, %19 %249 = add i64 %248, %0 %250 = icmp ugt i64 %249, %13 br i1 %250, label %292, label %251 251: ; preds = %246 %252 = sub nuw nsw i64 %13, %249 tail call void @llvm.assume(i1 %134) tail call void @llvm.experimental.noalias.scope.decl(metadata !56) tail call void @llvm.experimental.noalias.scope.decl(metadata !59) tail call void @llvm.experimental.noalias.scope.decl(metadata !61) tail call void @llvm.experimental.noalias.scope.decl(metadata !63) br label %253 253: ; preds = %251, %253 %254 = phi i64 [ %255, %253 ], [ 0, %251 ] %255 = add nuw i64 %254, 1 %256 = getelementptr inbounds [0 x double], ptr %247, i64 0, i64 %254 %257 = load double, ptr %256, align 8, !alias.scope !56, !noalias !65, !noundef !4 %258 = getelementptr inbounds [0 x double], ptr %84, i64 0, i64 %254 %259 = load double, ptr %258, align 8, !alias.scope !61, !noalias !66, !noundef !4 %260 = getelementptr inbounds [0 x double], ptr %85, i64 0, i64 %254 %261 = fmul double %257, %259 store double %261, ptr %260, align 8, !alias.scope !63, !noalias !67 %262 = icmp eq i64 %255, %0 br i1 %262, label %263, label %253 263: ; preds = %253 %264 = getelementptr inbounds double, ptr %5, i64 %249 br label %267 265: ; preds = %281, %267 %266 = icmp eq i64 %269, %0 br i1 %266, label %298, label %267 267: ; preds = %263, %265 %268 = phi i64 [ %269, %265 ], [ 0, %263 ] %269 = add nuw i64 %268, 1 %270 = icmp ult i64 %269, %0 br i1 %270, label %271, label %265 271: ; preds = %267 %272 = xor i64 %268, -1 %273 = add i64 %133, %272 %274 = mul i64 %273, %268 %275 = lshr i64 %274, 1 %276 = getelementptr inbounds [0 x double], ptr %84, i64 0, i64 %268 br label %277 277: ; preds = %281, %271 %278 = phi i64 [ %269, %271 ], [ %290, %281 ] %279 = phi i64 [ %275, %271 ], [ %289, %281 ] %280 = icmp ult i64 %279, %252 br i1 %280, label %281, label %303, !prof !39 281: ; preds = %277 %282 = getelementptr inbounds [0 x double], ptr %85, i64 0, i64 %278 %283 = load double, ptr %282, align 8, !alias.scope !63, !noalias !67, !noundef !4 %284 = getelementptr inbounds [0 x double], ptr %264, i64 0, i64 %279 %285 = load double, ptr %284, align 8, !alias.scope !68, !noalias !69, !noundef !4 %286 = load double, ptr %276, align 8, !alias.scope !61, !noalias !66, !noundef !4 %287 = fmul double %285, %286 %288 = fadd double %283, %287 store double %288, ptr %282, align 8, !alias.scope !63, !noalias !67 %289 = add nuw i64 %279, 1 %290 = add nuw i64 %278, 1 %291 = icmp ult i64 %290, %0 br i1 %291, label %277, label %265 292: ; preds = %246, %159, %201, %196 %293 = phi ptr [ %174, %196 ], [ %174, %201 ], [ %88, %159 ], [ %88, %246 ] %294 = phi i64 [ %203, %201 ], [ %199, %196 ], [ %161, %159 ], [ %249, %246 ] %295 = phi i64 [ %13, %201 ], [ %10, %196 ], [ %13, %159 ], [ %13, %246 ] %296 = phi ptr [ @anon.abbed100f06311471d75933e55f2338a.11, %201 ], [ @anon.abbed100f06311471d75933e55f2338a.12, %196 ], [ @anon.abbed100f06311471d75933e55f2338a.1, %159 ], [ @anon.abbed100f06311471d75933e55f2338a.1, %246 ] invoke void @_ZN4core5slice5index26slice_start_index_len_fail17h30e606d626589a22E(i64 noundef %294, i64 noundef %295, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %296) #113 to label %297 unwind label %139, !noalias !21 297: ; preds = %292 unreachable 298: ; preds = %265 %299 = getelementptr inbounds [0 x double], ptr %3, i64 0, i64 %219 %300 = load double, ptr %299, align 8, !alias.scope !5, !noalias !50, !noundef !4 %301 = getelementptr inbounds [0 x double], ptr %50, i64 0, i64 %219 %302 = load double, ptr %301, align 8, !noundef !4 br label %308 303: ; preds = %105, %110, %277 %304 = phi i64 [ %279, %277 ], [ %115, %110 ], [ %108, %105 ] %305 = phi i64 [ %252, %277 ], [ %10, %110 ], [ %13, %105 ] %306 = phi ptr [ @anon.abbed100f06311471d75933e55f2338a.10, %277 ], [ @anon.abbed100f06311471d75933e55f2338a.5, %110 ], [ @anon.abbed100f06311471d75933e55f2338a.4, %105 ] invoke void @_ZN4core9panicking18panic_bounds_check17h383135d9b6be1c13E(i64 noundef %304, i64 noundef %305, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %306) #113 to label %307 unwind label %139, !noalias !21 307: ; preds = %303 unreachable 308: ; preds = %298, %308 %309 = phi double [ %314, %308 ], [ 0.000000e+00, %298 ] %310 = phi i64 [ %315, %308 ], [ 0, %298 ] %311 = getelementptr inbounds double, ptr %85, i64 %310 %312 = load double, ptr %311, align 8, !alias.scope !70, !noundef !4 %313 = fmul double %312, %312 %314 = fadd double %309, %313 %315 = add nuw i64 %310, 1 %316 = icmp eq i64 %315, %0 br i1 %316, label %317, label %308 317: ; preds = %308 %318 = fadd double %300, %302 %319 = getelementptr inbounds [0 x double], ptr %88, i64 0, i64 %219 %320 = fmul double %314, 5.000000e-01 %321 = fsub double %318, %320 store double %321, ptr %319, align 8 %322 = icmp eq i64 %220, %1 br i1 %322, label %323, label %218 323: ; preds = %317, %163 %324 = icmp eq i64 %151, %2 br i1 %324, label %173, label %149 325: ; preds = %62, %44, %42 %326 = phi { ptr, i32 } [ %43, %44 ], [ %43, %42 ], [ %63, %62 ] resume { ptr, i32 } %326 327: ; preds = %213, %214, %216 ret void } ) [compiler/rustc_codegen_llvm/src/llvm/ffi.rs:964:5] &primary_ret = false [compiler/rustc_codegen_llvm/src/llvm/ffi.rs:965:5] &ret_activity = DFT_CONSTANT [compiler/rustc_codegen_llvm/src/llvm/ffi.rs:966:5] &input_activity = [ DFT_CONSTANT, DFT_CONSTANT, DFT_CONSTANT, DFT_DUP_ARG, DFT_DUP_ARG, DFT_DUP_ARG, DFT_CONSTANT, DFT_CONSTANT, DFT_DUP_ARG, ] num_fnc_args: 9 input_activity.len(): 9 todo - hook in rust allocation fns UNREACHABLE executed at /h/344/drehwald/prog/rust/src/tools/enzyme/enzyme/Enzyme/GradientUtils.cpp:9107! warning: `gmmrs` (lib) generated 2 warnings (run `cargo fix --lib -p gmmrs` to apply 1 suggestion) error: could not compile `gmmrs` (lib); 2 warnings emitted Caused by: process didn't exit successfully: `/u/drehwald/.rustup/toolchains/enzyme/bin/rustc --crate-name gmmrs --edition=2021 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type cdylib --emit=dep-info,link -C opt-level=3 -C lto=fat -C metadata=aac7702709ef0710 --out-dir /h/344/drehwald/prog/Enzyme/enzyme/benchmarks/ReverseMode/gmmrs/target/release/deps -L dependency=/h/344/drehwald/prog/Enzyme/enzyme/benchmarks/ReverseMode/gmmrs/target/release/deps --extern libm=/h/344/drehwald/prog/Enzyme/enzyme/benchmarks/ReverseMode/gmmrs/target/release/deps/liblibm-f4274e1a8baf3391.rlib` (signal: 6, SIGABRT: process abort signal) warning: build failed, waiting for other jobs to finish... [compiler/rustc_codegen_llvm/src/llvm/ffi.rs:989:5] &res = (ptr:; Function Attrs: mustprogress noinline nonlazybind sanitize_hwaddress willreturn memory(readwrite) uwtable define internal void @diffe_ZN5gmmrs15gmm_objective_c17h321280d53201d2cdE(i64 noundef %0, i64 noundef %1, i64 noundef %2, ptr noundef %3, ptr %4, ptr nocapture noundef readonly %5, ptr nocapture %6, ptr noundef %7, ptr %8, ptr nocapture noundef readonly %9, ptr nocapture noundef readonly %10, ptr nocapture readnone %11, ptr nocapture readnone %12) unnamed_addr #115 personality ptr @rust_eh_personality { %14 = alloca { { ptr, ptr }, ptr }, align 8 %15 = getelementptr inbounds { { ptr, ptr }, ptr }, ptr %14, i32 0, i32 0, i32 0 store ptr null, ptr %15, align 8 %16 = getelementptr inbounds { { ptr, ptr }, ptr }, ptr %14, i32 0, i32 0, i32 1 store ptr null, ptr %16, align 8 %17 = getelementptr inbounds { { ptr, ptr }, ptr }, ptr %14, i32 0, i32 1 store ptr null, ptr %17, align 8 %18 = alloca { { ptr, ptr }, ptr }, align 8 %19 = alloca double, align 8 store double 0.000000e+00, ptr %19, align 8 %20 = alloca double, align 8 %21 = alloca { ptr, { i64, i64, i8, [7 x i8] } }, align 8 %22 = alloca double, align 8 %23 = alloca { { ptr, { ptr, i64 }, ptr, { ptr, i64 }, ptr, ptr, { ptr, i64 } }, { i64, i64 } }, align 8 %24 = getelementptr inbounds { { ptr, { ptr, i64 }, ptr, { ptr, i64 }, ptr, ptr, { ptr, i64 } }, { i64, i64 } }, ptr %23, i32 0, i32 0, i32 0 store ptr null, ptr %24, align 8 %25 = getelementptr inbounds { { ptr, { ptr, i64 }, ptr, { ptr, i64 }, ptr, ptr, { ptr, i64 } }, { i64, i64 } }, ptr %23, i32 0, i32 0, i32 1, i32 0 store ptr null, ptr %25, align 8 %26 = getelementptr inbounds { { ptr, { ptr, i64 }, ptr, { ptr, i64 }, ptr, ptr, { ptr, i64 } }, { i64, i64 } }, ptr %23, i32 0, i32 0, i32 1, i32 1 store i64 0, ptr %26, align 8 %27 = getelementptr inbounds { { ptr, { ptr, i64 }, ptr, { ptr, i64 }, ptr, ptr, { ptr, i64 } }, { i64, i64 } }, ptr %23, i32 0, i32 0, i32 2 store ptr null, ptr %27, align 8 %28 = getelementptr inbounds { { ptr, { ptr, i64 }, ptr, { ptr, i64 }, ptr, ptr, { ptr, i64 } }, { i64, i64 } }, ptr %23, i32 0, i32 0, i32 3, i32 0 store ptr null, ptr %28, align 8 %29 = getelementptr inbounds { { ptr, { ptr, i64 }, ptr, { ptr, i64 }, ptr, ptr, { ptr, i64 } }, { i64, i64 } }, ptr %23, i32 0, i32 0, i32 3, i32 1 store i64 0, ptr %29, align 8 %30 = getelementptr inbounds { { ptr, { ptr, i64 }, ptr, { ptr, i64 }, ptr, ptr, { ptr, i64 } }, { i64, i64 } }, ptr %23, i32 0, i32 0, i32 4 store ptr null, ptr %30, align 8 %31 = getelementptr inbounds { { ptr, { ptr, i64 }, ptr, { ptr, i64 }, ptr, ptr, { ptr, i64 } }, { i64, i64 } }, ptr %23, i32 0, i32 0, i32 5 store ptr null, ptr %31, align 8 %32 = getelementptr inbounds { { ptr, { ptr, i64 }, ptr, { ptr, i64 }, ptr, ptr, { ptr, i64 } }, { i64, i64 } }, ptr %23, i32 0, i32 0, i32 6, i32 0 store ptr null, ptr %32, align 8 %33 = getelementptr inbounds { { ptr, { ptr, i64 }, ptr, { ptr, i64 }, ptr, ptr, { ptr, i64 } }, { i64, i64 } }, ptr %23, i32 0, i32 0, i32 6, i32 1 store i64 0, ptr %33, align 8 %34 = getelementptr inbounds { { ptr, { ptr, i64 }, ptr, { ptr, i64 }, ptr, ptr, { ptr, i64 } }, { i64, i64 } }, ptr %23, i32 0, i32 1, i32 0 store i64 0, ptr %34, align 8 %35 = getelementptr inbounds { { ptr, { ptr, i64 }, ptr, { ptr, i64 }, ptr, ptr, { ptr, i64 } }, { i64, i64 } }, ptr %23, i32 0, i32 1, i32 1 store i64 0, ptr %35, align 8 %36 = alloca { { ptr, { ptr, i64 }, ptr, { ptr, i64 }, ptr, ptr, { ptr, i64 } }, { i64, i64 } }, align 8 %37 = alloca i64, align 8 %38 = alloca { double, i64 }, align 8 %39 = getelementptr inbounds { double, i64 }, ptr %38, i32 0, i32 0 store double 0.000000e+00, ptr %39, align 8 %40 = getelementptr inbounds { double, i64 }, ptr %38, i32 0, i32 1 store i64 0, ptr %40, align 8 %41 = alloca { double, i64 }, align 8 %42 = alloca i64, align 8 %43 = alloca { { ptr, ptr }, ptr }, align 8 %44 = getelementptr inbounds { { ptr, ptr }, ptr }, ptr %43, i32 0, i32 0, i32 0 store ptr null, ptr %44, align 8 %45 = getelementptr inbounds { { ptr, ptr }, ptr }, ptr %43, i32 0, i32 0, i32 1 store ptr null, ptr %45, align 8 %46 = getelementptr inbounds { { ptr, ptr }, ptr }, ptr %43, i32 0, i32 1 store ptr null, ptr %46, align 8 %47 = alloca { { ptr, ptr }, ptr }, align 8 %48 = alloca double, align 8 store double 0.000000e+00, ptr %48, align 8 %49 = alloca double, align 8 %50 = alloca { { i64, ptr }, i64 }, align 8 %51 = alloca { { i64, ptr }, i64 }, align 8 %52 = alloca { { i64, ptr }, i64 }, align 8 %53 = alloca { { i64, ptr }, i64 }, align 8 %54 = alloca { { i64, ptr }, i64 }, align 8 %55 = mul i64 %1, %0 %56 = add i64 %0, 1 %57 = mul i64 %55, %56 %58 = lshr i64 %57, 1 %59 = mul i64 %2, %0 %60 = load double, ptr %10, align 8, !alias.scope !42049, !noalias !42052, !noundef !5 %61 = getelementptr inbounds { double, i64 }, ptr %10, i64 0, i32 1 %62 = load i64, ptr %61, align 8, !alias.scope !42049, !noalias !42052, !noundef !5 tail call void @llvm.experimental.noalias.scope.decl(metadata !10951) #120 tail call void @llvm.experimental.noalias.scope.decl(metadata !10954) #120 tail call void @llvm.experimental.noalias.scope.decl(metadata !10956) #120 tail call void @llvm.experimental.noalias.scope.decl(metadata !10958) #120 %63 = uitofp i64 %0 to double %64 = mul i64 %56, %0 %65 = lshr i64 %64, 1 tail call void @llvm.experimental.noalias.scope.decl(metadata !10962) #120 %66 = tail call { i64, ptr } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$11allocate_in17h6f69ccb19334acffE"(i64 noundef %55, i1 noundef zeroext true) #120, !noalias !10965 %67 = extractvalue { i64, ptr } %66, 0 %68 = extractvalue { i64, ptr } %66, 1 store i64 %67, ptr %54, align 8, !alias.scope !10962, !noalias !10960 %69 = getelementptr inbounds { i64, ptr }, ptr %54, i64 0, i32 1 store ptr %68, ptr %69, align 8, !alias.scope !10962, !noalias !10960 %70 = getelementptr inbounds { { i64, ptr }, i64 }, ptr %54, i64 0, i32 1 store i64 %55, ptr %70, align 8, !alias.scope !10962, !noalias !10960 %71 = call { i64, ptr } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$11allocate_in17h6f69ccb19334acffE"(i64 noundef %1, i1 noundef zeroext true) #120 %72 = extractvalue { i64, ptr } %71, 0 %73 = extractvalue { i64, ptr } %71, 1 store i64 %72, ptr %53, align 8, !alias.scope !10967, !noalias !10960 %74 = getelementptr inbounds { i64, ptr }, ptr %53, i64 0, i32 1 store ptr %73, ptr %74, align 8, !alias.scope !10967, !noalias !10960 %75 = getelementptr inbounds { { i64, ptr }, i64 }, ptr %53, i64 0, i32 1 store i64 %1, ptr %75, align 8, !alias.scope !10967, !noalias !10960 %76 = call { i64, ptr } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$11allocate_in17h6f69ccb19334acffE"(i64 noundef %0, i1 noundef zeroext true) #120 %77 = extractvalue { i64, ptr } %76, 0 %78 = extractvalue { i64, ptr } %76, 1 store i64 %77, ptr %52, align 8, !alias.scope !10970, !noalias !10960 %79 = getelementptr inbounds { i64, ptr }, ptr %52, i64 0, i32 1 store ptr %78, ptr %79, align 8, !alias.scope !10970, !noalias !10960 %80 = getelementptr inbounds { { i64, ptr }, i64 }, ptr %52, i64 0, i32 1 store i64 %0, ptr %80, align 8, !alias.scope !10970, !noalias !10960 %81 = call { i64, ptr } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$11allocate_in17h6f69ccb19334acffE"(i64 noundef %0, i1 noundef zeroext true) #120 %82 = extractvalue { i64, ptr } %81, 0 %83 = extractvalue { i64, ptr } %81, 1 store i64 %82, ptr %51, align 8, !alias.scope !10973, !noalias !10960 %84 = getelementptr inbounds { i64, ptr }, ptr %51, i64 0, i32 1 store ptr %83, ptr %84, align 8, !alias.scope !10973, !noalias !10960 %85 = getelementptr inbounds { { i64, ptr }, i64 }, ptr %51, i64 0, i32 1 store i64 %0, ptr %85, align 8, !alias.scope !10973, !noalias !10960 %86 = call { i64, ptr } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$11allocate_in17h6f69ccb19334acffE"(i64 noundef %1, i1 noundef zeroext true) #120 %87 = extractvalue { i64, ptr } %86, 0 %88 = extractvalue { i64, ptr } %86, 1 store i64 %87, ptr %50, align 8, !alias.scope !10976, !noalias !10960 %89 = getelementptr inbounds { i64, ptr }, ptr %50, i64 0, i32 1 store ptr %88, ptr %89, align 8, !alias.scope !10976, !noalias !10960 %90 = getelementptr inbounds { { i64, ptr }, i64 }, ptr %50, i64 0, i32 1 store i64 %1, ptr %90, align 8, !alias.scope !10976, !noalias !10960 tail call void @llvm.experimental.noalias.scope.decl(metadata !10979) #120 tail call void @llvm.experimental.noalias.scope.decl(metadata !10982) #120 tail call void @llvm.experimental.noalias.scope.decl(metadata !10984) #120 %91 = icmp eq i64 %1, 0 br i1 %91, label %141, label %92 92: ; preds = %13 %93 = icmp eq i64 %0, 0 br i1 %93, label %100, label %94 94: ; preds = %92 %95 = add i64 %1, -1 %96 = add i64 %0, -1 %97 = shl i64 %65, 3 %98 = mul nuw nsw i64 %55, 8 %99 = tail call noalias nonnull ptr @malloc(i64 %98), !enzyme_cache_alloc !42054 br label %102 100: ; preds = %92 %101 = add i64 %1, -1 br label %131 102: ; preds = %129, %94 %103 = phi i64 [ 0, %94 ], [ %104, %129 ] %104 = add nuw nsw i64 %103, 1 %105 = icmp eq i64 %103, %1 %106 = xor i1 %105, true call void @llvm.assume(i1 %106) %107 = getelementptr inbounds [0 x double], ptr %73, i64 0, i64 %103 store double 0.000000e+00, ptr %107, align 8, !alias.scope !10982, !noalias !10986 %108 = mul i64 %103, %65 %109 = mul i64 %103, %0 %110 = mul i64 %97, %103 %111 = getelementptr i8, ptr %7, i64 %110 %112 = getelementptr inbounds double, ptr %99, i64 %109 %113 = mul nuw nsw i64 8, %0 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %112, ptr nonnull align 8 %111, i64 %113, i1 false) br label %114 114: ; preds = %114, %102 %115 = phi i64 [ %116, %114 ], [ 0, %102 ] %116 = add nuw nsw i64 %115, 1 %117 = add nuw nsw i64 %115, %108 %118 = icmp ult i64 %117, %58 call void @llvm.assume(i1 %118) %119 = getelementptr inbounds [0 x double], ptr %8, i64 0, i64 %117 %120 = getelementptr inbounds [0 x double], ptr %7, i64 0, i64 %117 %121 = load double, ptr %120, align 8, !alias.scope !42056, !noalias !42059, !noundef !5 %122 = load double, ptr %107, align 8, !alias.scope !42061, !noalias !42064, !noundef !5 %123 = fadd double %121, %122 store double %123, ptr %107, align 8, !alias.scope !10982, !noalias !10986 %124 = add nuw i64 %115, %109 %125 = icmp ult i64 %124, %55 call void @llvm.assume(i1 %125) %126 = tail call double @llvm.exp.f64(double %121) #120 %127 = getelementptr inbounds [0 x double], ptr %68, i64 0, i64 %124 store double %126, ptr %127, align 8, !alias.scope !10984, !noalias !10989 %128 = icmp eq i64 %116, %0 br i1 %128, label %129, label %114 129: ; preds = %114 %130 = icmp eq i64 %104, %1 br i1 %130, label %138, label %102 131: ; preds = %131, %100 %132 = phi i64 [ 0, %100 ], [ %133, %131 ] %133 = add nuw nsw i64 %132, 1 %134 = icmp eq i64 %132, %1 %135 = xor i1 %134, true call void @llvm.assume(i1 %135) %136 = getelementptr inbounds [0 x double], ptr %73, i64 0, i64 %132 store double 0.000000e+00, ptr %136, align 8, !alias.scope !10982, !noalias !10986 %137 = icmp eq i64 %133, %1 br i1 %137, label %138, label %131 138: ; preds = %129, %131 %139 = phi ptr [ undef, %131 ], [ %99, %129 ] %140 = icmp eq i64 %2, 0 br i1 %140, label %183, label %151 141: ; preds = %13 %142 = icmp eq i64 %2, 0 br i1 %142, label %202, label %143 143: ; preds = %141 %144 = getelementptr inbounds { ptr, ptr }, ptr %14, i64 0, i32 1 %145 = getelementptr inbounds { ptr, ptr }, ptr %18, i64 0, i32 1 %146 = getelementptr inbounds { { ptr, ptr }, ptr }, ptr %14, i64 0, i32 1 %147 = getelementptr inbounds { { ptr, ptr }, ptr }, ptr %18, i64 0, i32 1 %148 = add i64 %2, -1 %149 = mul nuw nsw i64 %2, 16 %150 = tail call noalias nonnull ptr @malloc(i64 %149), !enzyme_cache_alloc !42066 br label %164 151: ; preds = %138 %152 = shl i64 %0, 1 %153 = add i64 %1, -1 %154 = getelementptr inbounds { ptr, ptr }, ptr %14, i64 0, i32 1 %155 = getelementptr inbounds { ptr, ptr }, ptr %18, i64 0, i32 1 %156 = getelementptr inbounds { { ptr, ptr }, ptr }, ptr %14, i64 0, i32 1 %157 = getelementptr inbounds { { ptr, ptr }, ptr }, ptr %18, i64 0, i32 1 %158 = add i64 %152, -2 %159 = add i64 %2, -1 %160 = add i64 %0, -1 %161 = add i64 %0, -2 %162 = mul nuw nsw i64 %2, 16 %163 = tail call noalias nonnull ptr @malloc(i64 %162), !enzyme_cache_alloc !42068 br label %173 164: ; preds = %164, %143 %165 = phi i64 [ %166, %164 ], [ 0, %143 ] %166 = add nuw nsw i64 %165, 1 %167 = load ptr, ptr %89, align 8, !alias.scope !42070, !noalias !42073, !nonnull !5, !noundef !5 %168 = load i64, ptr %90, align 8, !alias.scope !42070, !noalias !42073, !noundef !5 store double 0xFFF0000000000000, ptr %20, align 8, !alias.scope !42075, !noalias !42078 %169 = getelementptr inbounds double, ptr %167, i64 %168 store ptr %167, ptr %14, align 8, !alias.scope !42080, !noalias !42083 store ptr %167, ptr %18, align 8, !alias.scope !42085, !noalias !42086 store ptr %169, ptr %144, align 8, !alias.scope !42087, !noalias !42090 store ptr %169, ptr %145, align 8, !alias.scope !42092, !noalias !42093 store ptr %19, ptr %146, align 8, !alias.scope !42094, !noalias !42097 store ptr %20, ptr %147, align 8, !alias.scope !42099, !noalias !42100 %170 = call { ptr, ptr } @"augmented__ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h4c53c3dcde398197E"(ptr nocapture nonnull align 8 %18, ptr nocapture nonnull align 8 %14, double 0.000000e+00) %171 = getelementptr inbounds { ptr, ptr }, ptr %150, i64 %165 store { ptr, ptr } %170, ptr %171, align 8, !invariant.group !42101 %172 = icmp eq i64 %166, %2 br i1 %172, label %183, label %164 173: ; preds = %272, %151 %174 = phi i64 [ 0, %151 ], [ %175, %272 ] %175 = add nuw nsw i64 %174, 1 %176 = mul i64 %174, %0 %177 = icmp ugt i64 %176, %59 %178 = getelementptr inbounds double, ptr %9, i64 %176 %179 = xor i1 %177, true call void @llvm.assume(i1 %179) %180 = sub i64 %59, %176 %181 = icmp ult i64 %180, %0 %182 = xor i1 %181, true call void @llvm.assume(i1 %182) br label %277 183: ; preds = %272, %164, %138 %184 = phi ptr [ undef, %138 ], [ undef, %164 ], [ %163, %272 ] %185 = phi i8 [ 1, %138 ], [ 0, %164 ], [ 2, %272 ] %186 = phi ptr [ undef, %138 ], [ %150, %164 ], [ undef, %272 ] %187 = phi ptr [ %139, %138 ], [ undef, %164 ], [ %139, %272 ] call void @llvm.experimental.noalias.scope.decl(metadata !11005) #120 br i1 %91, label %202, label %188 188: ; preds = %183 %189 = add i64 %1, -1 br label %190 190: ; preds = %190, %188 %191 = phi i64 [ 0, %188 ], [ %199, %190 ] %192 = phi i64 [ 0, %188 ], [ %194, %190 ] %193 = phi double [ %200, %190 ], [ 0xFFF0000000000000, %188 ] %194 = add nuw nsw i64 %192, 1 %195 = getelementptr inbounds [0 x double], ptr %4, i64 0, i64 %192 %196 = getelementptr inbounds [0 x double], ptr %3, i64 0, i64 %192 %197 = load double, ptr %196, align 8, !alias.scope !42102, !noalias !42105, !noundef !5 %198 = fcmp olt double %193, %197 %199 = select i1 %198, i64 %194, i64 %191 %200 = select i1 %198, double %197, double %193 %201 = icmp eq i64 %194, %1 br i1 %201, label %202, label %190 202: ; preds = %190, %141, %183 %203 = phi i8 [ 1, %183 ], [ 0, %141 ], [ 2, %190 ] %204 = phi i1 [ true, %183 ], [ true, %141 ], [ false, %190 ] %205 = phi ptr [ %184, %183 ], [ undef, %141 ], [ %184, %190 ] %206 = phi i64 [ undef, %183 ], [ undef, %141 ], [ %191, %190 ] %207 = phi i1 [ undef, %183 ], [ undef, %141 ], [ %198, %190 ] %208 = phi i8 [ %185, %183 ], [ undef, %141 ], [ %185, %190 ] %209 = phi ptr [ %186, %183 ], [ undef, %141 ], [ %186, %190 ] %210 = phi ptr [ %187, %183 ], [ undef, %141 ], [ %187, %190 ] %211 = phi double [ 0xFFF0000000000000, %183 ], [ 0xFFF0000000000000, %141 ], [ %200, %190 ] store double %211, ptr %49, align 8, !alias.scope !42107, !noalias !42110 %212 = getelementptr inbounds double, ptr %4, i64 %1 %213 = getelementptr inbounds double, ptr %3, i64 %1 store ptr %4, ptr %43, align 8, !alias.scope !42112, !noalias !42115 store ptr %3, ptr %47, align 8, !alias.scope !42117, !noalias !42118 %214 = getelementptr inbounds { ptr, ptr }, ptr %43, i64 0, i32 1 %215 = getelementptr inbounds { ptr, ptr }, ptr %47, i64 0, i32 1 store ptr %212, ptr %214, align 8, !alias.scope !42112, !noalias !42115 store ptr %213, ptr %215, align 8, !alias.scope !42117, !noalias !42118 %216 = getelementptr inbounds { { ptr, ptr }, ptr }, ptr %43, i64 0, i32 1 %217 = getelementptr inbounds { { ptr, ptr }, ptr }, ptr %47, i64 0, i32 1 store ptr %48, ptr %216, align 8, !alias.scope !42112, !noalias !42115 store ptr %49, ptr %217, align 8, !alias.scope !42117, !noalias !42118 call void @"augmented__ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h4c53c3dcde398197E.928"(ptr nocapture nonnull align 8 %47, ptr nocapture nonnull align 8 %43, double 0.000000e+00) %218 = load ptr, ptr %74, align 8, !alias.scope !42119, !noalias !42122, !nonnull !5, !noundef !5 %219 = load i64, ptr %75, align 8, !alias.scope !42119, !noalias !42122, !noundef !5 %220 = load ptr, ptr %69, align 8, !alias.scope !42124, !noalias !42127, !nonnull !5, !noundef !5 %221 = load i64, ptr %70, align 8, !alias.scope !42124, !noalias !42127, !noundef !5 store i64 %0, ptr %42, align 8, !noalias !11012 store double %60, ptr %41, align 8, !alias.scope !42129, !noalias !42132 %222 = getelementptr inbounds { double, i64 }, ptr %38, i64 0, i32 1 %223 = getelementptr inbounds { double, i64 }, ptr %41, i64 0, i32 1 store i64 %62, ptr %222, align 8, !alias.scope !42134, !noalias !42135 store i64 %62, ptr %223, align 8, !alias.scope !42129, !noalias !42132 %224 = add i64 %62, %56 store i64 %65, ptr %37, align 8, !noalias !11012 %225 = uitofp i64 %224 to double %226 = fmul double %225, 5.000000e-01 store double %226, ptr %22, align 8, !noalias !11012 %227 = call i64 @llvm.fptoui.sat.i64.f64(double %63) #120 %228 = getelementptr inbounds { ptr, { i64, i64, i8, [7 x i8] } }, ptr %21, i64 0, i32 1 store i64 1, ptr %228, align 8, !noalias !11012 %229 = getelementptr inbounds { ptr, { i64, i64, i8, [7 x i8] } }, ptr %21, i64 0, i32 1, i32 1 store i64 %227, ptr %229, align 8, !noalias !11012 %230 = getelementptr inbounds { ptr, { i64, i64, i8, [7 x i8] } }, ptr %21, i64 0, i32 1, i32 2 store i8 0, ptr %230, align 8, !noalias !11012 store ptr %22, ptr %21, align 8, !noalias !11012 %231 = call noundef double @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hcaefa20ea3e0a9dbE"(ptr noalias nocapture noundef nonnull align 8 dereferenceable(32) %21, double noundef 0.000000e+00) #120 %232 = getelementptr inbounds { { ptr, { ptr, i64 }, ptr, { ptr, i64 }, ptr, ptr, { ptr, i64 } }, { i64, i64 } }, ptr %23, i64 0, i32 1 %233 = getelementptr inbounds { { ptr, { ptr, i64 }, ptr, { ptr, i64 }, ptr, ptr, { ptr, i64 } }, { i64, i64 } }, ptr %36, i64 0, i32 1 store i64 0, ptr %232, align 8, !alias.scope !42136, !noalias !42139 store i64 0, ptr %233, align 8, !alias.scope !42141, !noalias !42142 %234 = getelementptr inbounds { { ptr, { ptr, i64 }, ptr, { ptr, i64 }, ptr, ptr, { ptr, i64 } }, { i64, i64 } }, ptr %23, i64 0, i32 1, i32 1 %235 = getelementptr inbounds { { ptr, { ptr, i64 }, ptr, { ptr, i64 }, ptr, ptr, { ptr, i64 } }, { i64, i64 } }, ptr %36, i64 0, i32 1, i32 1 store i64 %1, ptr %234, align 8, !alias.scope !42136, !noalias !42139 store i64 %1, ptr %235, align 8, !alias.scope !42141, !noalias !42142 store ptr %42, ptr %23, align 8, !alias.scope !42136, !noalias !42139 store ptr %42, ptr %36, align 8, !alias.scope !42141, !noalias !42142 %236 = getelementptr inbounds i8, ptr %23, i64 8 %237 = getelementptr inbounds i8, ptr %36, i64 8 store ptr %220, ptr %236, align 8, !alias.scope !42136, !noalias !42139 store ptr %220, ptr %237, align 8, !alias.scope !42141, !noalias !42142 %238 = getelementptr inbounds i8, ptr %23, i64 16 %239 = getelementptr inbounds i8, ptr %36, i64 16 store i64 %221, ptr %238, align 8, !alias.scope !42136, !noalias !42139 store i64 %221, ptr %239, align 8, !alias.scope !42141, !noalias !42142 %240 = getelementptr inbounds i8, ptr %23, i64 24 %241 = getelementptr inbounds i8, ptr %36, i64 24 store ptr %37, ptr %240, align 8, !alias.scope !42136, !noalias !42139 store ptr %37, ptr %241, align 8, !alias.scope !42141, !noalias !42142 %242 = getelementptr inbounds i8, ptr %23, i64 32 %243 = getelementptr inbounds i8, ptr %36, i64 32 store ptr %8, ptr %242, align 8, !alias.scope !42136, !noalias !42139 store ptr %7, ptr %243, align 8, !alias.scope !42141, !noalias !42142 %244 = getelementptr inbounds i8, ptr %23, i64 40 %245 = getelementptr inbounds i8, ptr %36, i64 40 store i64 %58, ptr %244, align 8, !alias.scope !42136, !noalias !42139 store i64 %58, ptr %245, align 8, !alias.scope !42141, !noalias !42142 %246 = getelementptr inbounds i8, ptr %23, i64 48 %247 = getelementptr inbounds i8, ptr %36, i64 48 store ptr %38, ptr %246, align 8, !alias.scope !42136, !noalias !42139 store ptr %41, ptr %247, align 8, !alias.scope !42141, !noalias !42142 %248 = getelementptr inbounds i8, ptr %23, i64 56 %249 = getelementptr inbounds i8, ptr %36, i64 56 store ptr %222, ptr %248, align 8, !alias.scope !42136, !noalias !42139 store ptr %223, ptr %249, align 8, !alias.scope !42141, !noalias !42142 %250 = getelementptr inbounds i8, ptr %23, i64 64 %251 = getelementptr inbounds i8, ptr %36, i64 64 store ptr %218, ptr %250, align 8, !alias.scope !42136, !noalias !42139 store ptr %218, ptr %251, align 8, !alias.scope !42141, !noalias !42142 %252 = getelementptr inbounds i8, ptr %23, i64 72 %253 = getelementptr inbounds i8, ptr %36, i64 72 store i64 %219, ptr %252, align 8, !alias.scope !42136, !noalias !42139 store i64 %219, ptr %253, align 8, !alias.scope !42141, !noalias !42142 %254 = call { ptr, ptr, ptr } @"augmented__ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h1344a0eb1e13aa94E"(ptr nocapture nonnull align 8 %36, ptr nocapture nonnull align 8 %23, double 0.000000e+00) call void @"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd71a34f403f88ecaE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %50) #120 call void @"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd71a34f403f88ecaE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %51) #120 call void @"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd71a34f403f88ecaE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %52) #120 call void @"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd71a34f403f88ecaE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %53) #120 call void @"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd71a34f403f88ecaE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %54) #120, !noalias !10966 call void @"diffe_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h1344a0eb1e13aa94E"(ptr nocapture nonnull align 8 %36, ptr nocapture nonnull align 8 %23, double 0.000000e+00, { ptr, ptr, ptr } %254) store double 0.000000e+00, ptr %38, align 8, !alias.scope !42134, !noalias !42135 call void @"diffe_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h4c53c3dcde398197E.929"(ptr nocapture nonnull align 8 %47, ptr nocapture nonnull align 8 %43, double 0.000000e+00) %255 = load double, ptr %48, align 8, !alias.scope !42143, !noalias !42144 store double 0.000000e+00, ptr %48, align 8, !alias.scope !42143, !noalias !42144 %256 = xor i1 %204, true %257 = select fast i1 %256, double %255, double 0.000000e+00 %258 = select fast i1 %204, double 0.000000e+00, double %255 switch i8 %203, label %454 [ i8 0, label %384 i8 1, label %440 ] 259: ; preds = %364 %260 = load ptr, ptr %89, align 8, !alias.scope !42070, !noalias !42073, !nonnull !5, !noundef !5 %261 = load i64, ptr %90, align 8, !alias.scope !42070, !noalias !42073, !noundef !5 call void @llvm.experimental.noalias.scope.decl(metadata !11017) #120 %262 = icmp ult i64 %153, %261 call void @llvm.assume(i1 %262) br label %263 263: ; preds = %259, %263 %264 = phi i64 [ %266, %263 ], [ 0, %259 ] %265 = phi double [ %270, %263 ], [ 0xFFF0000000000000, %259 ] %266 = add nuw nsw i64 %264, 1 %267 = getelementptr inbounds [0 x double], ptr %260, i64 0, i64 %264 %268 = load double, ptr %267, align 8, !alias.scope !42145, !noalias !42148, !noundef !5 %269 = fcmp olt double %265, %268 %270 = select i1 %269, double %268, double %265 %271 = icmp eq i64 %266, %1 br i1 %271, label %272, label %263 272: ; preds = %263 store double %270, ptr %20, align 8, !alias.scope !42075, !noalias !42078 %273 = getelementptr inbounds double, ptr %260, i64 %261 store ptr %260, ptr %14, align 8, !alias.scope !42080, !noalias !42083 store ptr %260, ptr %18, align 8, !alias.scope !42085, !noalias !42086 store ptr %273, ptr %154, align 8, !alias.scope !42080, !noalias !42083 store ptr %273, ptr %155, align 8, !alias.scope !42085, !noalias !42086 store ptr %19, ptr %156, align 8, !alias.scope !42080, !noalias !42083 store ptr %20, ptr %157, align 8, !alias.scope !42085, !noalias !42086 %274 = call { ptr, ptr } @"augmented__ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h4c53c3dcde398197E"(ptr nocapture nonnull align 8 %18, ptr nocapture nonnull align 8 %14, double 0.000000e+00) %275 = getelementptr inbounds { ptr, ptr }, ptr %163, i64 %174 store { ptr, ptr } %274, ptr %275, align 8, !invariant.group !42150 %276 = icmp eq i64 %175, %2 br i1 %276, label %183, label %173 277: ; preds = %173, %364 %278 = phi i64 [ %279, %364 ], [ 0, %173 ] %279 = add nuw nsw i64 %278, 1 %280 = mul i64 %278, %0 %281 = icmp ugt i64 %280, %55 %282 = xor i1 %281, true call void @llvm.assume(i1 %282) %283 = getelementptr inbounds double, ptr %5, i64 %280 %284 = load ptr, ptr %79, align 8, !alias.scope !42151, !noalias !42154, !nonnull !5, !noundef !5 %285 = load i64, ptr %80, align 8, !alias.scope !42151, !noalias !42154, !noundef !5 call void @llvm.experimental.noalias.scope.decl(metadata !10998) #120 call void @llvm.experimental.noalias.scope.decl(metadata !11001) #120 call void @llvm.experimental.noalias.scope.decl(metadata !11003) #120 %286 = sub nuw i64 %55, %280 %287 = icmp ult i64 %286, %0 %288 = xor i1 %287, true call void @llvm.assume(i1 %288) %289 = icmp ult i64 %285, %0 %290 = xor i1 %289, true call void @llvm.assume(i1 %290) br i1 %93, label %301, label %291 291: ; preds = %277, %291 %292 = phi i64 [ %293, %291 ], [ 0, %277 ] %293 = add nuw nsw i64 %292, 1 %294 = getelementptr inbounds [0 x double], ptr %178, i64 0, i64 %292 %295 = load double, ptr %294, align 8, !alias.scope !42156, !noalias !42159, !noundef !5 %296 = getelementptr inbounds [0 x double], ptr %283, i64 0, i64 %292 %297 = load double, ptr %296, align 8, !alias.scope !42161, !noalias !42164, !noundef !5 %298 = getelementptr inbounds [0 x double], ptr %284, i64 0, i64 %292 %299 = fsub double %295, %297 store double %299, ptr %298, align 8, !alias.scope !11003, !noalias !11025 %300 = icmp eq i64 %293, %0 br i1 %300, label %301, label %291 301: ; preds = %291, %277 %302 = load i64, ptr %70, align 8, !alias.scope !42124, !noalias !42127, !noundef !5 %303 = icmp ugt i64 %280, %302 %304 = xor i1 %303, true call void @llvm.assume(i1 %304) %305 = load ptr, ptr %69, align 8, !alias.scope !42124, !noalias !42127, !nonnull !5, !noundef !5 %306 = sub nuw i64 %302, %280 %307 = getelementptr inbounds double, ptr %305, i64 %280 %308 = mul i64 %278, %65 %309 = add i64 %308, %0 %310 = icmp ugt i64 %309, %58 %311 = xor i1 %310, true call void @llvm.assume(i1 %311) %312 = sub nuw nsw i64 %58, %309 %313 = getelementptr inbounds double, ptr %7, i64 %309 %314 = load ptr, ptr %79, align 8, !alias.scope !42151, !noalias !42154, !nonnull !5, !noundef !5 %315 = load i64, ptr %80, align 8, !alias.scope !42151, !noalias !42154, !noundef !5 %316 = load ptr, ptr %84, align 8, !alias.scope !42166, !noalias !42169, !nonnull !5, !noundef !5 %317 = load i64, ptr %85, align 8, !alias.scope !42166, !noalias !42169, !noundef !5 call void @llvm.experimental.noalias.scope.decl(metadata !11026) #120 call void @llvm.experimental.noalias.scope.decl(metadata !11029) #120 call void @llvm.experimental.noalias.scope.decl(metadata !11031) #120 call void @llvm.experimental.noalias.scope.decl(metadata !11033) #120 %318 = icmp ult i64 %317, %0 %319 = xor i1 %318, true call void @llvm.assume(i1 %319) %320 = icmp ult i64 %306, %0 %321 = xor i1 %320, true call void @llvm.assume(i1 %321) %322 = icmp ult i64 %315, %0 %323 = xor i1 %322, true call void @llvm.assume(i1 %323) br i1 %93, label %364, label %324 324: ; preds = %301, %324 %325 = phi i64 [ %326, %324 ], [ 0, %301 ] %326 = add nuw nsw i64 %325, 1 %327 = getelementptr inbounds [0 x double], ptr %307, i64 0, i64 %325 %328 = load double, ptr %327, align 8, !alias.scope !42171, !noalias !42174, !noundef !5 %329 = getelementptr inbounds [0 x double], ptr %314, i64 0, i64 %325 %330 = load double, ptr %329, align 8, !alias.scope !42176, !noalias !42179, !noundef !5 %331 = getelementptr inbounds [0 x double], ptr %316, i64 0, i64 %325 %332 = fmul double %328, %330 store double %332, ptr %331, align 8, !alias.scope !11033, !noalias !11037 %333 = icmp eq i64 %326, %0 br i1 %333, label %337, label %324 334: ; preds = %349, %337 %335 = icmp eq i64 %342, %0 %336 = add i64 %338, %344 br i1 %335, label %364, label %337 337: ; preds = %324, %334 %338 = phi i64 [ %336, %334 ], [ 0, %324 ] %339 = phi i64 [ %342, %334 ], [ 0, %324 ] %340 = mul nsw i64 %339, -1 %341 = add i64 %161, %340 %342 = add i64 %339, 1 %343 = mul i64 %339, -2 %344 = add i64 %158, %343 %345 = lshr i64 %338, 1 %346 = icmp ult i64 %342, %0 br i1 %346, label %347, label %334 347: ; preds = %337 %348 = getelementptr inbounds [0 x double], ptr %314, i64 0, i64 %339 br label %349 349: ; preds = %349, %347 %350 = phi i64 [ %351, %349 ], [ 0, %347 ] %351 = add nuw nsw i64 %350, 1 %352 = add nuw i64 %345, %350 %353 = add nuw i64 %342, %350 %354 = icmp ult i64 %352, %312 call void @llvm.assume(i1 %354) %355 = getelementptr inbounds [0 x double], ptr %316, i64 0, i64 %353 %356 = load double, ptr %355, align 8, !alias.scope !42181, !noalias !42184, !noundef !5 %357 = getelementptr inbounds [0 x double], ptr %313, i64 0, i64 %352 %358 = load double, ptr %357, align 8, !alias.scope !42186, !noalias !42187, !noundef !5 %359 = load double, ptr %348, align 8, !alias.scope !42176, !noalias !42179, !noundef !5 %360 = fmul double %358, %359 %361 = fadd double %356, %360 store double %361, ptr %355, align 8, !alias.scope !11033, !noalias !11037 %362 = add nuw i64 %353, 1 %363 = icmp ult i64 %362, %0 br i1 %363, label %349, label %334 364: ; preds = %334, %301 %365 = load i64, ptr %75, align 8, !alias.scope !42119, !noalias !42122, !noundef !5 %366 = icmp ult i64 %278, %365 call void @llvm.assume(i1 %366) %367 = load ptr, ptr %74, align 8, !alias.scope !42119, !noalias !42122, !nonnull !5, !noundef !5 %368 = getelementptr inbounds [0 x double], ptr %3, i64 0, i64 %278 %369 = load double, ptr %368, align 8, !alias.scope !42188, !noalias !42105, !noundef !5 %370 = getelementptr inbounds [0 x double], ptr %367, i64 0, i64 %278 %371 = load double, ptr %370, align 8, !alias.scope !42189, !noalias !42192, !noundef !5 %372 = fadd double %369, %371 %373 = load ptr, ptr %84, align 8, !alias.scope !42166, !noalias !42169, !nonnull !5, !noundef !5 %374 = load i64, ptr %85, align 8, !alias.scope !42166, !noalias !42169, !noundef !5 %375 = getelementptr inbounds double, ptr %373, i64 %374 %376 = call noundef double @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17he5b3733469ab333aE"(ptr noundef nonnull %373, ptr noundef nonnull %375, double noundef 0.000000e+00) #120 %377 = load i64, ptr %90, align 8, !alias.scope !42070, !noalias !42073, !noundef !5 %378 = icmp ult i64 %278, %377 call void @llvm.assume(i1 %378) %379 = load ptr, ptr %89, align 8, !alias.scope !42070, !noalias !42073, !nonnull !5, !noundef !5 %380 = getelementptr inbounds [0 x double], ptr %379, i64 0, i64 %278 %381 = fmul double %376, 5.000000e-01 %382 = fsub double %372, %381 store double %382, ptr %380, align 8, !noalias !10966 %383 = icmp eq i64 %279, %1 br i1 %383, label %259, label %277 384: ; preds = %422, %202, %411, %385 ret void 385: ; preds = %388 tail call void @free(ptr nonnull %210), !enzyme_cache_free !42054 br label %384 386: ; preds = %388 %387 = add nsw i64 %407, -1 br label %406 388: ; preds = %393 %389 = icmp eq i64 %407, 0 %390 = xor i1 %389, true br i1 %389, label %385, label %386 391: ; preds = %393 %392 = add nsw i64 %394, -1 br label %393 393: ; preds = %406, %391 %394 = phi i64 [ %408, %406 ], [ %392, %391 ] %395 = mul nuw nsw i64 %407, %0 %396 = getelementptr inbounds double, ptr %210, i64 %395 %397 = getelementptr inbounds double, ptr %396, i64 %394 %398 = load double, ptr %397, align 8, !invariant.group !42194 %399 = call fast double @llvm.exp.f64(double %398) %400 = mul i64 %407, %65 %401 = add nuw nsw i64 %394, %400 %402 = getelementptr inbounds [0 x double], ptr %8, i64 0, i64 %401 %403 = load double, ptr %402, align 8, !alias.scope !42195, !noalias !42196 store double %403, ptr %402, align 8, !alias.scope !42195, !noalias !42196 %404 = icmp eq i64 %394, 0 %405 = xor i1 %404, true br i1 %404, label %388, label %391 406: ; preds = %417, %386 %407 = phi i64 [ %418, %417 ], [ %387, %386 ] %408 = add i64 %0, -1 br label %393 409: ; preds = %411 %410 = add nsw i64 %412, -1 br label %411 411: ; preds = %415, %409 %412 = phi i64 [ %416, %415 ], [ %410, %409 ] %413 = icmp eq i64 %412, 0 %414 = xor i1 %413, true br i1 %413, label %384, label %409 415: ; preds = %419 %416 = add i64 %1, -1 br label %411 417: ; preds = %419 %418 = add i64 %1, -1 br label %406 419: ; preds = %421, %422, %440 %420 = icmp eq i64 %0, 0 br i1 %420, label %415, label %417 421: ; preds = %433 tail call void @free(ptr nonnull %205), !enzyme_cache_free !42068 br label %419 422: ; preds = %423 tail call void @free(ptr nonnull %209), !enzyme_cache_free !42066 br i1 %91, label %384, label %419 423: ; preds = %436, %429 %424 = phi i64 [ %437, %436 ], [ %430, %429 ] %425 = getelementptr inbounds { ptr, ptr }, ptr %209, i64 %424 %426 = load { ptr, ptr }, ptr %425, align 8, !invariant.group !42101 call void @"diffe_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h4c53c3dcde398197E"(ptr nocapture nonnull align 8 %18, ptr nocapture nonnull align 8 %14, double 0.000000e+00, { ptr, ptr } %426) store double 0.000000e+00, ptr %19, align 8, !alias.scope !42197, !noalias !42198 %427 = icmp eq i64 %424, 0 %428 = xor i1 %427, true br i1 %427, label %422, label %429 429: ; preds = %423 %430 = add nsw i64 %424, -1 br label %423 431: ; preds = %433 %432 = add nsw i64 %464, -1 br label %463 433: ; preds = %470 %434 = icmp eq i64 %464, 0 %435 = xor i1 %434, true br i1 %434, label %421, label %431 436: ; preds = %440 %437 = add i64 %2, -1 br label %423 438: ; preds = %440 %439 = add i64 %2, -1 br label %463 440: ; preds = %441, %202 switch i8 %208, label %438 [ i8 0, label %436 i8 1, label %419 ] 441: ; preds = %454, %452 %442 = phi i64 [ %455, %454 ], [ %453, %452 ] %443 = add nuw nsw i64 %442, 1 %444 = icmp eq i64 %456, %443 %445 = select fast i1 %444, double %258, double 0.000000e+00 %446 = getelementptr inbounds [0 x double], ptr %4, i64 0, i64 %442 %447 = load double, ptr %446, align 8, !alias.scope !42199, !noalias !42200 %448 = fadd fast double %447, %445 store double %448, ptr %446, align 8, !alias.scope !42199, !noalias !42200 %449 = icmp eq i64 %442, 0 %450 = xor i1 %449, true %451 = select fast i1 %449, double 0.000000e+00, double %258 br i1 %449, label %440, label %452 452: ; preds = %441 %453 = add nsw i64 %442, -1 br label %441 454: ; preds = %202 %455 = add i64 %1, -1 %456 = select i1 %207, i64 %1, i64 %206 br label %441 457: ; preds = %463, %461 %458 = phi i64 [ %467, %463 ], [ %462, %461 ] %459 = icmp eq i64 %458, 0 %460 = xor i1 %459, true br i1 %459, label %509, label %461 461: ; preds = %457 %462 = add nsw i64 %458, -1 br label %457 463: ; preds = %438, %431 %464 = phi i64 [ %439, %438 ], [ %432, %431 ] %465 = getelementptr inbounds { ptr, ptr }, ptr %205, i64 %464 %466 = load { ptr, ptr }, ptr %465, align 8, !invariant.group !42150 call void @"diffe_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h4c53c3dcde398197E"(ptr nocapture nonnull align 8 %18, ptr nocapture nonnull align 8 %14, double 0.000000e+00, { ptr, ptr } %466) store double 0.000000e+00, ptr %19, align 8, !alias.scope !42197, !noalias !42198 %467 = add i64 %1, -1 br label %457 468: ; preds = %470 %469 = add nsw i64 %510, -1 br label %509 470: ; preds = %509, %473, %481 %471 = icmp eq i64 %510, 0 %472 = xor i1 %471, true br i1 %471, label %433, label %468 473: ; preds = %479, %477 %474 = phi i64 [ %480, %479 ], [ %478, %477 ] %475 = icmp eq i64 %474, 0 %476 = xor i1 %475, true br i1 %475, label %470, label %477 477: ; preds = %473 %478 = add nsw i64 %474, -1 br label %473 479: ; preds = %481 %480 = add i64 %0, -1 br label %473 481: ; preds = %482 br i1 %511, label %470, label %479 482: ; preds = %496, %486 %483 = phi i64 [ %487, %486 ], [ %508, %496 ] %484 = icmp eq i64 %483, 0 %485 = xor i1 %484, true br i1 %484, label %481, label %486 486: ; preds = %482 %487 = add nsw i64 %483, -1 br label %482 488: ; preds = %492 %489 = add i64 %0, -2 %490 = mul nsw i64 %493, -1 %491 = add i64 %489, %490 br label %503 492: ; preds = %507, %499 %493 = phi i64 [ %508, %507 ], [ %500, %499 ] %494 = add nuw nsw i64 %493, 1 %495 = icmp ult i64 %494, %0 br i1 %495, label %488, label %496 496: ; preds = %503, %492 %497 = icmp eq i64 %493, 0 %498 = xor i1 %497, true br i1 %497, label %482, label %499 499: ; preds = %496 %500 = add nsw i64 %493, -1 br label %492 501: ; preds = %503 %502 = add nsw i64 %504, -1 br label %503 503: ; preds = %501, %488 %504 = phi i64 [ %491, %488 ], [ %502, %501 ] %505 = icmp eq i64 %504, 0 %506 = xor i1 %505, true br i1 %505, label %496, label %501 507: ; preds = %509 %508 = add i64 %0, -1 br label %492 509: ; preds = %457, %468 %510 = phi i64 [ %469, %468 ], [ %467, %457 ] %511 = icmp eq i64 %0, 0 br i1 %511, label %470, label %507 } ) [compiler/rustc_codegen_llvm/src/back/write.rs:696:5] &tgt = (ptr:; Function Attrs: noinline nonlazybind sanitize_hwaddress uwtable define internal void @_ZN5gmmrs14dgmm_objective17h58593b6c05b92b3fE(i64 noundef %0, i64 noundef %1, i64 noundef %2, ptr noundef %3, ptr noundef %4, ptr nocapture noundef readonly %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr nocapture noundef readonly %9, ptr nocapture noundef readonly %10, ptr nocapture readnone %11, ptr noundef %12) unnamed_addr #3 { %14 = alloca { ptr, ptr, ptr, ptr }, align 8 tail call void asm sideeffect alignstack inteldialect "NOP", "~{dirflag},~{fpsr},~{flags},~{memory}"() #83, !srcloc !5 tail call void @_ZN5gmmrs15gmm_objective_c17h321280d53201d2cdE(i64 noundef %0, i64 noundef %1, i64 noundef %2, ptr noundef %3, ptr noundef %5, ptr noundef %7, ptr noundef %9, ptr noundef %10, ptr poison) tail call void asm sideeffect "", "~{memory}"() #83, !srcloc !24 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) store ptr %4, ptr %14, align 8 %15 = getelementptr inbounds i8, ptr %14, i64 8 store ptr %6, ptr %15, align 8 %16 = getelementptr inbounds i8, ptr %14, i64 16 store ptr %8, ptr %16, align 8 %17 = getelementptr inbounds i8, ptr %14, i64 24 store ptr %12, ptr %17, align 8 call void asm sideeffect "", "r,~{memory}"(ptr nonnull %14) #83, !srcloc !24 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) ret void } ) [compiler/rustc_codegen_llvm/src/back/write.rs:742:9] "No dbg info" = "No dbg info" [compiler/rustc_codegen_llvm/src/back/write.rs:743:9] &inst = (ptr: %14 = alloca { ptr, ptr, ptr, ptr }, align 8) [compiler/rustc_codegen_llvm/src/back/write.rs:750:5] &tgt = (ptr:; Function Attrs: noinline nonlazybind sanitize_hwaddress uwtable define internal void @_ZN5gmmrs14dgmm_objective17h58593b6c05b92b3fE(i64 noundef %0, i64 noundef %1, i64 noundef %2, ptr noundef %3, ptr noundef %4, ptr nocapture noundef readonly %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr nocapture noundef readonly %9, ptr nocapture noundef readonly %10, ptr nocapture readnone %11, ptr noundef %12) unnamed_addr #3 { %14 = alloca { ptr, ptr, ptr, ptr }, align 8 tail call void asm sideeffect alignstack inteldialect "NOP", "~{dirflag},~{fpsr},~{flags},~{memory}"() #83, !srcloc !5 tail call void @_ZN5gmmrs15gmm_objective_c17h321280d53201d2cdE(i64 noundef %0, i64 noundef %1, i64 noundef %2, ptr noundef %3, ptr noundef %5, ptr noundef %7, ptr noundef %9, ptr noundef %10, ptr poison) tail call void asm sideeffect "", "~{memory}"() #83, !srcloc !24 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) store ptr %4, ptr %14, align 8 %15 = getelementptr inbounds i8, ptr %14, i64 8 store ptr %6, ptr %15, align 8 %16 = getelementptr inbounds i8, ptr %14, i64 16 store ptr %8, ptr %16, align 8 %17 = getelementptr inbounds i8, ptr %14, i64 24 store ptr %12, ptr %17, align 8 call void asm sideeffect "", "r,~{memory}"(ptr nonnull %14) #83, !srcloc !24 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) call void @diffe_ZN5gmmrs15gmm_objective_c17h321280d53201d2cdE(i64 %0, i64 %1, i64 %2, ptr %3, ptr %4, ptr %5, ptr %6, ptr %7, ptr %8, ptr %9, ptr %10, ptr %11, ptr %12) } ) [compiler/rustc_codegen_llvm/src/back/write.rs:770:9] "Returning void" = "Returning void" [compiler/rustc_codegen_llvm/src/back/write.rs:775:5] &tgt = (ptr:; Function Attrs: noinline nonlazybind sanitize_hwaddress uwtable define internal void @_ZN5gmmrs14dgmm_objective17h58593b6c05b92b3fE(i64 noundef %0, i64 noundef %1, i64 noundef %2, ptr noundef %3, ptr noundef %4, ptr nocapture noundef readonly %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr nocapture noundef readonly %9, ptr nocapture noundef readonly %10, ptr nocapture readnone %11, ptr noundef %12) unnamed_addr #3 { call void @diffe_ZN5gmmrs15gmm_objective_c17h321280d53201d2cdE(i64 %0, i64 %1, i64 %2, ptr %3, ptr %4, ptr %5, ptr %6, ptr %7, ptr %8, ptr %9, ptr %10, ptr %11, ptr %12) ret void } ) warning: `gmmrs` (bin "gmmrs") generated 6 warnings (run `cargo fix --bin "gmmrs"` to apply 5 suggestions)