; LLVM IR from ERGO-Code/HiGHS :: src/test (DevKkt)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"struct.presolve::dev_kkt_check::KktConditionDetails" = type { i32, double, double, i32, i32 }
%"struct.presolve::dev_kkt_check::State" = type { i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.21 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [41 x i8], align 1

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #2

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #3

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8), double noundef) #4 align 2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #5

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fabs.f64(double) #5

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN8presolve13dev_kkt_check20checkDualFeasibilityERKNS0_5StateERNS0_19KktConditionDetailsE(ptr noundef nonnull align 8 dereferenceable(168) %0, ptr noundef nonnull align 8 dereferenceable(32) %1) #4 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca i32, align 4
  %6 = alloca double, align 8
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca double, align 8
  %10 = alloca double, align 8
  store ptr %0, ptr %3, align 8, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !5
  %11 = load ptr, ptr %4, align 8, !tbaa !5
  %12 = getelementptr inbounds %"struct.presolve::dev_kkt_check::KktConditionDetails", ptr %11, i32 0, i32 0
  store i32 1, ptr %12, align 8, !tbaa !9
  %13 = load ptr, ptr %4, align 8, !tbaa !5
  %14 = getelementptr inbounds %"struct.presolve::dev_kkt_check::KktConditionDetails", ptr %13, i32 0, i32 3
  store i32 0, ptr %14, align 8, !tbaa !14
  %15 = load ptr, ptr %4, align 8, !tbaa !5
  %16 = getelementptr inbounds %"struct.presolve::dev_kkt_check::KktConditionDetails", ptr %15, i32 0, i32 4
  store i32 0, ptr %16, align 4, !tbaa !15
  %17 = load ptr, ptr %4, align 8, !tbaa !5
  %18 = getelementptr inbounds %"struct.presolve::dev_kkt_check::KktConditionDetails", ptr %17, i32 0, i32 1
  store double 0.000000e+00, ptr %18, align 8, !tbaa !16
  %19 = load ptr, ptr %4, align 8, !tbaa !5
  %20 = getelementptr inbounds %"struct.presolve::dev_kkt_check::KktConditionDetails", ptr %19, i32 0, i32 2
  store double 0.000000e+00, ptr %20, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #7
  store i32 0, ptr %5, align 4, !tbaa !18
  br label %21

21:                                               ; preds = %309, %2
  %22 = load i32, ptr %5, align 4, !tbaa !18
  %23 = load ptr, ptr %3, align 8, !tbaa !5
  %24 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %23, i32 0, i32 0
  %25 = load i32, ptr %24, align 8, !tbaa !19
  %26 = icmp slt i32 %22, %25
  br i1 %26, label %28, label %27

27:                                               ; preds = %21
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #7
  br label %312

28:                                               ; preds = %21
  %29 = load ptr, ptr %3, align 8, !tbaa !5
  %30 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %29, i32 0, i32 14
  %31 = load ptr, ptr %30, align 8, !tbaa !21
  %32 = load i32, ptr %5, align 4, !tbaa !18
  %33 = sext i32 %32 to i64
  %34 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %33) #7
  %35 = load i32, ptr %34, align 4, !tbaa !18
  %36 = icmp ne i32 %35, 0
  br i1 %36, label %37, label %308

37:                                               ; preds = %28
  %38 = load ptr, ptr %4, align 8, !tbaa !5
  %39 = getelementptr inbounds %"struct.presolve::dev_kkt_check::KktConditionDetails", ptr %38, i32 0, i32 3
  %40 = load i32, ptr %39, align 8, !tbaa !14
  %41 = add nsw i32 %40, 1
  store i32 %41, ptr %39, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #7
  store double 0.000000e+00, ptr %6, align 8, !tbaa !22
  %42 = load ptr, ptr %3, align 8, !tbaa !5
  %43 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %42, i32 0, i32 10
  %44 = load ptr, ptr %43, align 8, !tbaa !23
  %45 = load i32, ptr %5, align 4, !tbaa !18
  %46 = sext i32 %45 to i64
  %47 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef %46) #7
  %48 = load double, ptr %47, align 8, !tbaa !22
  %49 = fcmp ole double %48, 0xFFF0000000000000
  br i1 %49, label %50, label %104

50:                                               ; preds = %37
  %51 = load ptr, ptr %3, align 8, !tbaa !5
  %52 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %51, i32 0, i32 11
  %53 = load ptr, ptr %52, align 8, !tbaa !24
  %54 = load i32, ptr %5, align 4, !tbaa !18
  %55 = sext i32 %54 to i64
  %56 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %53, i64 noundef %55) #7
  %57 = load double, ptr %56, align 8, !tbaa !22
  %58 = fcmp oge double %57, 0x7FF0000000000000
  br i1 %58, label %59, label %104

59:                                               ; preds = %50
  %60 = load ptr, ptr %3, align 8, !tbaa !5
  %61 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %60, i32 0, i32 17
  %62 = load ptr, ptr %61, align 8, !tbaa !25
  %63 = load i32, ptr %5, align 4, !tbaa !18
  %64 = sext i32 %63 to i64
  %65 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %62, i64 noundef %64) #7
  %66 = load double, ptr %65, align 8, !tbaa !22
  %67 = call double @llvm.fabs.f64(double %66)
  %68 = fcmp ogt double %67, 0x3E7AD7F29ABCAF48
  br i1 %68, label %69, label %103

69:                                               ; preds = %59
  %70 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.21)
  %71 = load i32, ptr %5, align 4, !tbaa !18
  %72 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %70, i32 noundef %71)
  %73 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %72, ptr noundef @.str.22)
  %74 = load ptr, ptr %3, align 8, !tbaa !5
  %75 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %74, i32 0, i32 16
  %76 = load ptr, ptr %75, align 8, !tbaa !26
  %77 = load i32, ptr %5, align 4, !tbaa !18
  %78 = sext i32 %77 to i64
  %79 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %76, i64 noundef %78) #7
  %80 = load double, ptr %79, align 8, !tbaa !22
  %81 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %73, double noundef %80)
  %82 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %81, ptr noundef @.str.23)
  %83 = load i32, ptr %5, align 4, !tbaa !18
  %84 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %82, i32 noundef %83)
  %85 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %84, ptr noundef @.str.22)
  %86 = load ptr, ptr %3, align 8, !tbaa !5
  %87 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %86, i32 0, i32 17
  %88 = load ptr, ptr %87, align 8, !tbaa !25
  %89 = load i32, ptr %5, align 4, !tbaa !18
  %90 = sext i32 %89 to i64
  %91 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %88, i64 noundef %90) #7
  %92 = load double, ptr %91, align 8, !tbaa !22
  %93 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %85, double noundef %92)
  %94 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %93, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %95 = load ptr, ptr %3, align 8, !tbaa !5
  %96 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %95, i32 0, i32 17
  %97 = load ptr, ptr %96, align 8, !tbaa !25
  %98 = load i32, ptr %5, align 4, !tbaa !18
  %99 = sext i32 %98 to i64
  %100 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %97, i64 noundef %99) #7
  %101 = load double, ptr %100, align 8, !tbaa !22
  %102 = call double @llvm.fabs.f64(double %101)
  store double %102, ptr %6, align 8, !tbaa !22
  br label %103

103:                                              ; preds = %69, %59
  br label %283

104:                                              ; preds = %50, %37
  %105 = load ptr, ptr %3, align 8, !tbaa !5
  %106 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %105, i32 0, i32 16
  %107 = load ptr, ptr %106, align 8, !tbaa !26
  %108 = load i32, ptr %5, align 4, !tbaa !18
  %109 = sext i32 %108 to i64
  %110 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %107, i64 noundef %109) #7
  %111 = load double, ptr %110, align 8, !tbaa !22
  %112 = load ptr, ptr %3, align 8, !tbaa !5
  %113 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %112, i32 0, i32 10
  %114 = load ptr, ptr %113, align 8, !tbaa !23
  %115 = load i32, ptr %5, align 4, !tbaa !18
  %116 = sext i32 %115 to i64
  %117 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %114, i64 noundef %116) #7
  %118 = load double, ptr %117, align 8, !tbaa !22
  %119 = fcmp oeq double %111, %118
  br i1 %119, label %120, label %202

120:                                              ; preds = %104
  %121 = load ptr, ptr %3, align 8, !tbaa !5
  %122 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %121, i32 0, i32 10
  %123 = load ptr, ptr %122, align 8, !tbaa !23
  %124 = load i32, ptr %5, align 4, !tbaa !18
  %125 = sext i32 %124 to i64
  %126 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %123, i64 noundef %125) #7
  %127 = load double, ptr %126, align 8, !tbaa !22
  %128 = load ptr, ptr %3, align 8, !tbaa !5
  %129 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %128, i32 0, i32 11
  %130 = load ptr, ptr %129, align 8, !tbaa !24
  %131 = load i32, ptr %5, align 4, !tbaa !18
  %132 = sext i32 %131 to i64
  %133 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %130, i64 noundef %132) #7
  %134 = load double, ptr %133, align 8, !tbaa !22
  %135 = fcmp olt double %127, %134
  br i1 %135, label %136, label %202

136:                                              ; preds = %120
  %137 = load ptr, ptr %3, align 8, !tbaa !5
  %138 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %137, i32 0, i32 17
  %139 = load ptr, ptr %138, align 8, !tbaa !25
  %140 = load i32, ptr %5, align 4, !tbaa !18
  %141 = sext i32 %140 to i64
  %142 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %139, i64 noundef %141) #7
  %143 = load double, ptr %142, align 8, !tbaa !22
  %144 = fcmp olt double %143, 0.000000e+00
  br i1 %144, label %145, label %201

145:                                              ; preds = %136
  %146 = load ptr, ptr %3, align 8, !tbaa !5
  %147 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %146, i32 0, i32 17
  %148 = load ptr, ptr %147, align 8, !tbaa !25
  %149 = load i32, ptr %5, align 4, !tbaa !18
  %150 = sext i32 %149 to i64
  %151 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %148, i64 noundef %150) #7
  %152 = load double, ptr %151, align 8, !tbaa !22
  %153 = call double @llvm.fabs.f64(double %152)
  %154 = fcmp ogt double %153, 0x3E7AD7F29ABCAF48
  br i1 %154, label %155, label %201

155:                                              ; preds = %145
  %156 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.24)
  %157 = load i32, ptr %5, align 4, !tbaa !18
  %158 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %156, i32 noundef %157)
  %159 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %158, ptr noundef @.str.22)
  %160 = load ptr, ptr %3, align 8, !tbaa !5
  %161 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %160, i32 0, i32 10
  %162 = load ptr, ptr %161, align 8, !tbaa !23
  %163 = load i32, ptr %5, align 4, !tbaa !18
  %164 = sext i32 %163 to i64
  %165 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %162, i64 noundef %164) #7
  %166 = load double, ptr %165, align 8, !tbaa !22
  %167 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %159, double noundef %166)
  %168 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %167, ptr noundef @.str.25)
  %169 = load i32, ptr %5, align 4, !tbaa !18
  %170 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %168, i32 noundef %169)
  %171 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %170, ptr noundef @.str.22)
  %172 = load ptr, ptr %3, align 8, !tbaa !5
  %173 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %172, i32 0, i32 16
  %174 = load ptr, ptr %173, align 8, !tbaa !26
  %175 = load i32, ptr %5, align 4, !tbaa !18
  %176 = sext i32 %175 to i64
  %177 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %174, i64 noundef %176) #7
  %178 = load double, ptr %177, align 8, !tbaa !22
  %179 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %171, double noundef %178)
  %180 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %179, ptr noundef @.str.26)
  %181 = load i32, ptr %5, align 4, !tbaa !18
  %182 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %180, i32 noundef %181)
  %183 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %182, ptr noundef @.str.22)
  %184 = load ptr, ptr %3, align 8, !tbaa !5
  %185 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %184, i32 0, i32 17
  %186 = load ptr, ptr %185, align 8, !tbaa !25
  %187 = load i32, ptr %5, align 4, !tbaa !18
  %188 = sext i32 %187 to i64
  %189 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %186, i64 noundef %188) #7
  %190 = load double, ptr %189, align 8, !tbaa !22
  %191 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %183, double noundef %190)
  %192 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %191, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %193 = load ptr, ptr %3, align 8, !tbaa !5
  %194 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %193, i32 0, i32 17
  %195 = load ptr, ptr %194, align 8, !tbaa !25
  %196 = load i32, ptr %5, align 4, !tbaa !18
  %197 = sext i32 %196 to i64
  %198 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %195, i64 noundef %197) #7
  %199 = load double, ptr %198, align 8, !tbaa !22
  %200 = call double @llvm.fabs.f64(double %199)
  store double %200, ptr %6, align 8, !tbaa !22
  br label %201

201:                                              ; preds = %155, %145, %136
  br label %282

202:                                              ; preds = %120, %104
  %203 = load ptr, ptr %3, align 8, !tbaa !5
  %204 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %203, i32 0, i32 16
  %205 = load ptr, ptr %204, align 8, !tbaa !26
  %206 = load i32, ptr %5, align 4, !tbaa !18
  %207 = sext i32 %206 to i64
  %208 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %205, i64 noundef %207) #7
  %209 = load double, ptr %208, align 8, !tbaa !22
  %210 = load ptr, ptr %3, align 8, !tbaa !5
  %211 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %210, i32 0, i32 11
  %212 = load ptr, ptr %211, align 8, !tbaa !24
  %213 = load i32, ptr %5, align 4, !tbaa !18
  %214 = sext i32 %213 to i64
  %215 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %212, i64 noundef %214) #7
  %216 = load double, ptr %215, align 8, !tbaa !22
  %217 = fcmp oeq double %209, %216
  br i1 %217, label %218, label %281

218:                                              ; preds = %202
  %219 = load ptr, ptr %3, align 8, !tbaa !5
  %220 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %219, i32 0, i32 10
  %221 = load ptr, ptr %220, align 8, !tbaa !23
  %222 = load i32, ptr %5, align 4, !tbaa !18
  %223 = sext i32 %222 to i64
  %224 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %221, i64 noundef %223) #7
  %225 = load double, ptr %224, align 8, !tbaa !22
  %226 = load ptr, ptr %3, align 8, !tbaa !5
  %227 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %226, i32 0, i32 11
  %228 = load ptr, ptr %227, align 8, !tbaa !24
  %229 = load i32, ptr %5, align 4, !tbaa !18
  %230 = sext i32 %229 to i64
  %231 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %228, i64 noundef %230) #7
  %232 = load double, ptr %231, align 8, !tbaa !22
  %233 = fcmp olt double %225, %232
  br i1 %233, label %234, label %281

234:                                              ; preds = %218
  %235 = load ptr, ptr %3, align 8, !tbaa !5
  %236 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %235, i32 0, i32 17
  %237 = load ptr, ptr %236, align 8, !tbaa !25
  %238 = load i32, ptr %5, align 4, !tbaa !18
  %239 = sext i32 %238 to i64
  %240 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %237, i64 noundef %239) #7
  %241 = load double, ptr %240, align 8, !tbaa !22
  %242 = fcmp ogt double %241, 0x3E7AD7F29ABCAF48
  br i1 %242, label %243, label %280

243:                                              ; preds = %234
  %244 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.27)
  %245 = load i32, ptr %5, align 4, !tbaa !18
  %246 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %244, i32 noundef %245)
  %247 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %246, ptr noundef @.str.22)
  %248 = load ptr, ptr %3, align 8, !tbaa !5
  %249 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %248, i32 0, i32 16
  %250 = load ptr, ptr %249, align 8, !tbaa !26
  %251 = load i32, ptr %5, align 4, !tbaa !18
  %252 = sext i32 %251 to i64
  %253 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %250, i64 noundef %252) #7
  %254 = load double, ptr %253, align 8, !tbaa !22
  %255 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %247, double noundef %254)
  %256 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %255, ptr noundef @.str.28)
  %257 = load i32, ptr %5, align 4, !tbaa !18
  %258 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %256, i32 noundef %257)
  %259 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %258, ptr noundef @.str.29)
  %260 = load i32, ptr %5, align 4, !tbaa !18
  %261 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %259, i32 noundef %260)
  %262 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %261, ptr noundef @.str.22)
  %263 = load ptr, ptr %3, align 8, !tbaa !5
  %264 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %263, i32 0, i32 17
  %265 = load ptr, ptr %264, align 8, !tbaa !25
  %266 = load i32, ptr %5, align 4, !tbaa !18
  %267 = sext i32 %266 to i64
  %268 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %265, i64 noundef %267) #7
  %269 = load double, ptr %268, align 8, !tbaa !22
  %270 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %262, double noundef %269)
  %271 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %270, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %272 = load ptr, ptr %3, align 8, !tbaa !5
  %273 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %272, i32 0, i32 17
  %274 = load ptr, ptr %273, align 8, !tbaa !25
  %275 = load i32, ptr %5, align 4, !tbaa !18
  %276 = sext i32 %275 to i64
  %277 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %274, i64 noundef %276) #7
  %278 = load double, ptr %277, align 8, !tbaa !22
  %279 = call double @llvm.fabs.f64(double %278)
  store double %279, ptr %6, align 8, !tbaa !22
  br label %280

280:                                              ; preds = %243, %234
  br label %281

281:                                              ; preds = %280, %218, %202
  br label %282

282:                                              ; preds = %281, %201
  br label %283

283:                                              ; preds = %282, %103
  %284 = load double, ptr %6, align 8, !tbaa !22
  %285 = fcmp ogt double %284, 0.000000e+00
  br i1 %285, label %286, label %307

286:                                              ; preds = %283
  %287 = load ptr, ptr %4, align 8, !tbaa !5
  %288 = getelementptr inbounds %"struct.presolve::dev_kkt_check::KktConditionDetails", ptr %287, i32 0, i32 4
  %289 = load i32, ptr %288, align 4, !tbaa !15
  %290 = add nsw i32 %289, 1
  store i32 %290, ptr %288, align 4, !tbaa !15
  %291 = load double, ptr %6, align 8, !tbaa !22
  %292 = load double, ptr %6, align 8, !tbaa !22
  %293 = load ptr, ptr %4, align 8, !tbaa !5
  %294 = getelementptr inbounds %"struct.presolve::dev_kkt_check::KktConditionDetails", ptr %293, i32 0, i32 2
  %295 = load double, ptr %294, align 8, !tbaa !17
  %296 = call double @llvm.fmuladd.f64(double %291, double %292, double %295)
  store double %296, ptr %294, align 8, !tbaa !17
  %297 = load ptr, ptr %4, align 8, !tbaa !5
  %298 = getelementptr inbounds %"struct.presolve::dev_kkt_check::KktConditionDetails", ptr %297, i32 0, i32 1
  %299 = load double, ptr %298, align 8, !tbaa !16
  %300 = load double, ptr %6, align 8, !tbaa !22
  %301 = fcmp olt double %299, %300
  br i1 %301, label %302, label %306

302:                                              ; preds = %286
  %303 = load double, ptr %6, align 8, !tbaa !22
  %304 = load ptr, ptr %4, align 8, !tbaa !5
  %305 = getelementptr inbounds %"struct.presolve::dev_kkt_check::KktConditionDetails", ptr %304, i32 0, i32 1
  store double %303, ptr %305, align 8, !tbaa !16
  br label %306

306:                                              ; preds = %302, %286
  br label %307

307:                                              ; preds = %306, %283
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #7
  br label %308

308:                                              ; preds = %307, %28
  br label %309

309:                                              ; preds = %308
  %310 = load i32, ptr %5, align 4, !tbaa !18
  %311 = add nsw i32 %310, 1
  store i32 %311, ptr %5, align 4, !tbaa !18
  br label %21, !llvm.loop !27

312:                                              ; preds = %27
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #7
  store i32 0, ptr %7, align 4, !tbaa !18
  br label %313

313:                                              ; preds = %621, %312
  %314 = load i32, ptr %7, align 4, !tbaa !18
  %315 = load ptr, ptr %3, align 8, !tbaa !5
  %316 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %315, i32 0, i32 1
  %317 = load i32, ptr %316, align 4, !tbaa !29
  %318 = icmp slt i32 %314, %317
  br i1 %318, label %320, label %319

319:                                              ; preds = %313
  store i32 5, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #7
  br label %624

320:                                              ; preds = %313
  %321 = load ptr, ptr %3, align 8, !tbaa !5
  %322 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %321, i32 0, i32 15
  %323 = load ptr, ptr %322, align 8, !tbaa !30
  %324 = load i32, ptr %7, align 4, !tbaa !18
  %325 = sext i32 %324 to i64
  %326 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %323, i64 noundef %325) #7
  %327 = load i32, ptr %326, align 4, !tbaa !18
  %328 = icmp ne i32 %327, 0
  br i1 %328, label %329, label %620

329:                                              ; preds = %320
  %330 = load ptr, ptr %4, align 8, !tbaa !5
  %331 = getelementptr inbounds %"struct.presolve::dev_kkt_check::KktConditionDetails", ptr %330, i32 0, i32 3
  %332 = load i32, ptr %331, align 8, !tbaa !14
  %333 = add nsw i32 %332, 1
  store i32 %333, ptr %331, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #7
  %334 = load ptr, ptr %3, align 8, !tbaa !5
  %335 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %334, i32 0, i32 18
  %336 = load ptr, ptr %335, align 8, !tbaa !31
  %337 = load i32, ptr %7, align 4, !tbaa !18
  %338 = sext i32 %337 to i64
  %339 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %336, i64 noundef %338) #7
  %340 = load double, ptr %339, align 8, !tbaa !22
  store double %340, ptr %9, align 8, !tbaa !22
  %341 = load ptr, ptr %3, align 8, !tbaa !5
  %342 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %341, i32 0, i32 12
  %343 = load ptr, ptr %342, align 8, !tbaa !32
  %344 = load i32, ptr %7, align 4, !tbaa !18
  %345 = sext i32 %344 to i64
  %346 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %343, i64 noundef %345) #7
  %347 = load double, ptr %346, align 8, !tbaa !22
  %348 = load double, ptr %9, align 8, !tbaa !22
  %349 = fsub double %347, %348
  %350 = call double @llvm.fabs.f64(double %349)
  %351 = fcmp olt double %350, 0x3E7AD7F29ABCAF48
  br i1 %351, label %352, label %365

352:                                              ; preds = %329
  %353 = load ptr, ptr %3, align 8, !tbaa !5
  %354 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %353, i32 0, i32 13
  %355 = load ptr, ptr %354, align 8, !tbaa !33
  %356 = load i32, ptr %7, align 4, !tbaa !18
  %357 = sext i32 %356 to i64
  %358 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %355, i64 noundef %357) #7
  %359 = load double, ptr %358, align 8, !tbaa !22
  %360 = load double, ptr %9, align 8, !tbaa !22
  %361 = fsub double %359, %360
  %362 = call double @llvm.fabs.f64(double %361)
  %363 = fcmp olt double %362, 0x3E7AD7F29ABCAF48
  br i1 %363, label %364, label %365

364:                                              ; preds = %352
  store i32 7, ptr %8, align 4
  br label %617

365:                                              ; preds = %352, %329
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #7
  store double 0.000000e+00, ptr %10, align 8, !tbaa !22
  %366 = load ptr, ptr %3, align 8, !tbaa !5
  %367 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %366, i32 0, i32 12
  %368 = load ptr, ptr %367, align 8, !tbaa !32
  %369 = load i32, ptr %7, align 4, !tbaa !18
  %370 = sext i32 %369 to i64
  %371 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %368, i64 noundef %370) #7
  %372 = load double, ptr %371, align 8, !tbaa !22
  %373 = load double, ptr %9, align 8, !tbaa !22
  %374 = fsub double %372, %373
  %375 = call double @llvm.fabs.f64(double %374)
  %376 = fcmp olt double %375, 0x3E7AD7F29ABCAF48
  br i1 %376, label %377, label %440

377:                                              ; preds = %365
  %378 = load double, ptr %9, align 8, !tbaa !22
  %379 = load ptr, ptr %3, align 8, !tbaa !5
  %380 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %379, i32 0, i32 13
  %381 = load ptr, ptr %380, align 8, !tbaa !33
  %382 = load i32, ptr %7, align 4, !tbaa !18
  %383 = sext i32 %382 to i64
  %384 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %381, i64 noundef %383) #7
  %385 = load double, ptr %384, align 8, !tbaa !22
  %386 = fcmp olt double %378, %385
  br i1 %386, label %387, label %440

387:                                              ; preds = %377
  %388 = load ptr, ptr %3, align 8, !tbaa !5
  %389 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %388, i32 0, i32 19
  %390 = load ptr, ptr %389, align 8, !tbaa !34
  %391 = load i32, ptr %7, align 4, !tbaa !18
  %392 = sext i32 %391 to i64
  %393 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %390, i64 noundef %392) #7
  %394 = load double, ptr %393, align 8, !tbaa !22
  %395 = fcmp olt double %394, 0xBE7AD7F29ABCAF48
  br i1 %395, label %396, label %439

396:                                              ; preds = %387
  %397 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.30)
  %398 = load i32, ptr %7, align 4, !tbaa !18
  %399 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %397, i32 noundef %398)
  %400 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %399, ptr noundef @.str.31)
  %401 = load ptr, ptr %3, align 8, !tbaa !5
  %402 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %401, i32 0, i32 12
  %403 = load ptr, ptr %402, align 8, !tbaa !32
  %404 = load i32, ptr %7, align 4, !tbaa !18
  %405 = sext i32 %404 to i64
  %406 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %403, i64 noundef %405) #7
  %407 = load double, ptr %406, align 8, !tbaa !22
  %408 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %400, double noundef %407)
  %409 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %408, ptr noundef @.str.32)
  %410 = load double, ptr %9, align 8, !tbaa !22
  %411 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %409, double noundef %410)
  %412 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %411, ptr noundef @.str.33)
  %413 = load ptr, ptr %3, align 8, !tbaa !5
  %414 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %413, i32 0, i32 13
  %415 = load ptr, ptr %414, align 8, !tbaa !33
  %416 = load i32, ptr %7, align 4, !tbaa !18
  %417 = sext i32 %416 to i64
  %418 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %415, i64 noundef %417) #7
  %419 = load double, ptr %418, align 8, !tbaa !22
  %420 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %412, double noundef %419)
  %421 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %420, ptr noundef @.str.34)
  %422 = load ptr, ptr %3, align 8, !tbaa !5
  %423 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %422, i32 0, i32 19
  %424 = load ptr, ptr %423, align 8, !tbaa !34
  %425 = load i32, ptr %7, align 4, !tbaa !18
  %426 = sext i32 %425 to i64
  %427 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %424, i64 noundef %426) #7
  %428 = load double, ptr %427, align 8, !tbaa !22
  %429 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %421, double noundef %428)
  %430 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %429, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %431 = load ptr, ptr %3, align 8, !tbaa !5
  %432 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %431, i32 0, i32 19
  %433 = load ptr, ptr %432, align 8, !tbaa !34
  %434 = load i32, ptr %7, align 4, !tbaa !18
  %435 = sext i32 %434 to i64
  %436 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %433, i64 noundef %435) #7
  %437 = load double, ptr %436, align 8, !tbaa !22
  %438 = fneg double %437
  store double %438, ptr %10, align 8, !tbaa !22
  br label %439

439:                                              ; preds = %396, %387
  br label %592

440:                                              ; preds = %377, %365
  %441 = load ptr, ptr %3, align 8, !tbaa !5
  %442 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %441, i32 0, i32 12
  %443 = load ptr, ptr %442, align 8, !tbaa !32
  %444 = load i32, ptr %7, align 4, !tbaa !18
  %445 = sext i32 %444 to i64
  %446 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %443, i64 noundef %445) #7
  %447 = load double, ptr %446, align 8, !tbaa !22
  %448 = load double, ptr %9, align 8, !tbaa !22
  %449 = fcmp olt double %447, %448
  br i1 %449, label %450, label %514

450:                                              ; preds = %440
  %451 = load double, ptr %9, align 8, !tbaa !22
  %452 = load ptr, ptr %3, align 8, !tbaa !5
  %453 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %452, i32 0, i32 13
  %454 = load ptr, ptr %453, align 8, !tbaa !33
  %455 = load i32, ptr %7, align 4, !tbaa !18
  %456 = sext i32 %455 to i64
  %457 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %454, i64 noundef %456) #7
  %458 = load double, ptr %457, align 8, !tbaa !22
  %459 = fsub double %451, %458
  %460 = call double @llvm.fabs.f64(double %459)
  %461 = fcmp olt double %460, 0x3E7AD7F29ABCAF48
  br i1 %461, label %462, label %514

462:                                              ; preds = %450
  %463 = load ptr, ptr %3, align 8, !tbaa !5
  %464 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %463, i32 0, i32 19
  %465 = load ptr, ptr %464, align 8, !tbaa !34
  %466 = load i32, ptr %7, align 4, !tbaa !18
  %467 = sext i32 %466 to i64
  %468 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %465, i64 noundef %467) #7
  %469 = load double, ptr %468, align 8, !tbaa !22
  %470 = fcmp ogt double %469, 0x3E7AD7F29ABCAF48
  br i1 %470, label %471, label %513

471:                                              ; preds = %462
  %472 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.30)
  %473 = load i32, ptr %7, align 4, !tbaa !18
  %474 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %472, i32 noundef %473)
  %475 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %474, ptr noundef @.str.31)
  %476 = load ptr, ptr %3, align 8, !tbaa !5
  %477 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %476, i32 0, i32 12
  %478 = load ptr, ptr %477, align 8, !tbaa !32
  %479 = load i32, ptr %7, align 4, !tbaa !18
  %480 = sext i32 %479 to i64
  %481 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %478, i64 noundef %480) #7
  %482 = load double, ptr %481, align 8, !tbaa !22
  %483 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %475, double noundef %482)
  %484 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %483, ptr noundef @.str.32)
  %485 = load double, ptr %9, align 8, !tbaa !22
  %486 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %484, double noundef %485)
  %487 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %486, ptr noundef @.str.33)
  %488 = load ptr, ptr %3, align 8, !tbaa !5
  %489 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %488, i32 0, i32 13
  %490 = load ptr, ptr %489, align 8, !tbaa !33
  %491 = load i32, ptr %7, align 4, !tbaa !18
  %492 = sext i32 %491 to i64
  %493 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %490, i64 noundef %492) #7
  %494 = load double, ptr %493, align 8, !tbaa !22
  %495 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %487, double noundef %494)
  %496 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %495, ptr noundef @.str.34)
  %497 = load ptr, ptr %3, align 8, !tbaa !5
  %498 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %497, i32 0, i32 19
  %499 = load ptr, ptr %498, align 8, !tbaa !34
  %500 = load i32, ptr %7, align 4, !tbaa !18
  %501 = sext i32 %500 to i64
  %502 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %499, i64 noundef %501) #7
  %503 = load double, ptr %502, align 8, !tbaa !22
  %504 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %496, double noundef %503)
  %505 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %504, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %506 = load ptr, ptr %3, align 8, !tbaa !5
  %507 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %506, i32 0, i32 19
  %508 = load ptr, ptr %507, align 8, !tbaa !34
  %509 = load i32, ptr %7, align 4, !tbaa !18
  %510 = sext i32 %509 to i64
  %511 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %508, i64 noundef %510) #7
  %512 = load double, ptr %511, align 8, !tbaa !22
  store double %512, ptr %10, align 8, !tbaa !22
  br label %513

513:                                              ; preds = %471, %462
  br label %591

514:                                              ; preds = %450, %440
  %515 = load ptr, ptr %3, align 8, !tbaa !5
  %516 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %515, i32 0, i32 12
  %517 = load ptr, ptr %516, align 8, !tbaa !32
  %518 = load i32, ptr %7, align 4, !tbaa !18
  %519 = sext i32 %518 to i64
  %520 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %517, i64 noundef %519) #7
  %521 = load double, ptr %520, align 8, !tbaa !22
  %522 = load double, ptr %9, align 8, !tbaa !22
  %523 = fadd double %522, 0x3E7AD7F29ABCAF48
  %524 = fcmp olt double %521, %523
  br i1 %524, label %525, label %590

525:                                              ; preds = %514
  %526 = load double, ptr %9, align 8, !tbaa !22
  %527 = load ptr, ptr %3, align 8, !tbaa !5
  %528 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %527, i32 0, i32 13
  %529 = load ptr, ptr %528, align 8, !tbaa !33
  %530 = load i32, ptr %7, align 4, !tbaa !18
  %531 = sext i32 %530 to i64
  %532 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %529, i64 noundef %531) #7
  %533 = load double, ptr %532, align 8, !tbaa !22
  %534 = fadd double %533, 0x3E7AD7F29ABCAF48
  %535 = fcmp olt double %526, %534
  br i1 %535, label %536, label %590

536:                                              ; preds = %525
  %537 = load ptr, ptr %3, align 8, !tbaa !5
  %538 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %537, i32 0, i32 19
  %539 = load ptr, ptr %538, align 8, !tbaa !34
  %540 = load i32, ptr %7, align 4, !tbaa !18
  %541 = sext i32 %540 to i64
  %542 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %539, i64 noundef %541) #7
  %543 = load double, ptr %542, align 8, !tbaa !22
  %544 = call double @llvm.fabs.f64(double %543)
  %545 = fcmp ogt double %544, 0x3E7AD7F29ABCAF48
  br i1 %545, label %546, label %589

546:                                              ; preds = %536
  %547 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.30)
  %548 = load i32, ptr %7, align 4, !tbaa !18
  %549 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %547, i32 noundef %548)
  %550 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %549, ptr noundef @.str.31)
  %551 = load ptr, ptr %3, align 8, !tbaa !5
  %552 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %551, i32 0, i32 12
  %553 = load ptr, ptr %552, align 8, !tbaa !32
  %554 = load i32, ptr %7, align 4, !tbaa !18
  %555 = sext i32 %554 to i64
  %556 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %553, i64 noundef %555) #7
  %557 = load double, ptr %556, align 8, !tbaa !22
  %558 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %550, double noundef %557)
  %559 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %558, ptr noundef @.str.32)
  %560 = load double, ptr %9, align 8, !tbaa !22
  %561 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %559, double noundef %560)
  %562 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %561, ptr noundef @.str.33)
  %563 = load ptr, ptr %3, align 8, !tbaa !5
  %564 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %563, i32 0, i32 13
  %565 = load ptr, ptr %564, align 8, !tbaa !33
  %566 = load i32, ptr %7, align 4, !tbaa !18
  %567 = sext i32 %566 to i64
  %568 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %565, i64 noundef %567) #7
  %569 = load double, ptr %568, align 8, !tbaa !22
  %570 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %562, double noundef %569)
  %571 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %570, ptr noundef @.str.34)
  %572 = load ptr, ptr %3, align 8, !tbaa !5
  %573 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %572, i32 0, i32 19
  %574 = load ptr, ptr %573, align 8, !tbaa !34
  %575 = load i32, ptr %7, align 4, !tbaa !18
  %576 = sext i32 %575 to i64
  %577 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %574, i64 noundef %576) #7
  %578 = load double, ptr %577, align 8, !tbaa !22
  %579 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %571, double noundef %578)
  %580 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %579, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %581 = load ptr, ptr %3, align 8, !tbaa !5
  %582 = getelementptr inbounds %"struct.presolve::dev_kkt_check::State", ptr %581, i32 0, i32 19
  %583 = load ptr, ptr %582, align 8, !tbaa !34
  %584 = load i32, ptr %7, align 4, !tbaa !18
  %585 = sext i32 %584 to i64
  %586 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %583, i64 noundef %585) #7
  %587 = load double, ptr %586, align 8, !tbaa !22
  %588 = call noundef double @_ZSt3absd(double noundef %587)
  store double %588, ptr %10, align 8, !tbaa !22
  br label %589

589:                                              ; preds = %546, %536
  br label %590

590:                                              ; preds = %589, %525, %514
  br label %591

591:                                              ; preds = %590, %513
  br label %592

592:                                              ; preds = %591, %439
  %593 = load double, ptr %10, align 8, !tbaa !22
  %594 = fcmp ogt double %593, 0.000000e+00
  br i1 %594, label %595, label %616

595:                                              ; preds = %592
  %596 = load ptr, ptr %4, align 8, !tbaa !5
  %597 = getelementptr inbounds %"struct.presolve::dev_kkt_check::KktConditionDetails", ptr %596, i32 0, i32 4
  %598 = load i32, ptr %597, align 4, !tbaa !15
  %599 = add nsw i32 %598, 1
  store i32 %599, ptr %597, align 4, !tbaa !15
  %600 = load double, ptr %10, align 8, !tbaa !22
  %601 = load double, ptr %10, align 8, !tbaa !22
  %602 = load ptr, ptr %4, align 8, !tbaa !5
  %603 = getelementptr inbounds %"struct.presolve::dev_kkt_check::KktConditionDetails", ptr %602, i32 0, i32 2
  %604 = load double, ptr %603, align 8, !tbaa !17
  %605 = call double @llvm.fmuladd.f64(double %600, double %601, double %604)
  store double %605, ptr %603, align 8, !tbaa !17
  %606 = load ptr, ptr %4, align 8, !tbaa !5
  %607 = getelementptr inbounds %"struct.presolve::dev_kkt_check::KktConditionDetails", ptr %606, i32 0, i32 1
  %608 = load double, ptr %607, align 8, !tbaa !16
  %609 = load double, ptr %10, align 8, !tbaa !22
  %610 = fcmp olt double %608, %609
  br i1 %610, label %611, label %615

611:                                              ; preds = %595
  %612 = load double, ptr %10, align 8, !tbaa !22
  %613 = load ptr, ptr %4, align 8, !tbaa !5
  %614 = getelementptr inbounds %"struct.presolve::dev_kkt_check::KktConditionDetails", ptr %613, i32 0, i32 1
  store double %612, ptr %614, align 8, !tbaa !16
  br label %615

615:                                              ; preds = %611, %595
  br label %616

616:                                              ; preds = %615, %592
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #7
  store i32 0, ptr %8, align 4
  br label %617

617:                                              ; preds = %616, %364
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #7
  %618 = load i32, ptr %8, align 4
  switch i32 %618, label %634 [
    i32 0, label %619
    i32 7, label %621
  ]

619:                                              ; preds = %617
  br label %620

620:                                              ; preds = %619, %320
  br label %621

621:                                              ; preds = %620, %617
  %622 = load i32, ptr %7, align 4, !tbaa !18
  %623 = add nsw i32 %622, 1
  store i32 %623, ptr %7, align 4, !tbaa !18
  br label %313, !llvm.loop !35

624:                                              ; preds = %319
  %625 = load ptr, ptr %4, align 8, !tbaa !5
  %626 = getelementptr inbounds %"struct.presolve::dev_kkt_check::KktConditionDetails", ptr %625, i32 0, i32 4
  %627 = load i32, ptr %626, align 4, !tbaa !15
  %628 = icmp eq i32 %627, 0
  br i1 %628, label %629, label %631

629:                                              ; preds = %624
  %630 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.35)
  br label %633

631:                                              ; preds = %624
  %632 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.36)
  br label %633

633:                                              ; preds = %631, %629
  ret void

634:                                              ; preds = %617
  unreachable
}

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZSt3absd(double noundef) #6

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !11, i64 0}
!10 = !{!"_ZTSN8presolve13dev_kkt_check19KktConditionDetailsE", !11, i64 0, !12, i64 8, !12, i64 16, !13, i64 24, !13, i64 28}
!11 = !{!"_ZTSN8presolve13dev_kkt_check12KktConditionE", !7, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = !{!"int", !7, i64 0}
!14 = !{!10, !13, i64 24}
!15 = !{!10, !13, i64 28}
!16 = !{!10, !12, i64 8}
!17 = !{!10, !12, i64 16}
!18 = !{!13, !13, i64 0}
!19 = !{!20, !13, i64 0}
!20 = !{!"_ZTSN8presolve13dev_kkt_check5StateE", !13, i64 0, !13, i64 4, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88, !6, i64 96, !6, i64 104, !6, i64 112, !6, i64 120, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160}
!21 = !{!20, !6, i64 104}
!22 = !{!12, !12, i64 0}
!23 = !{!20, !6, i64 72}
!24 = !{!20, !6, i64 80}
!25 = !{!20, !6, i64 128}
!26 = !{!20, !6, i64 120}
!27 = distinct !{!27, !28}
!28 = !{!"llvm.loop.mustprogress"}
!29 = !{!20, !13, i64 4}
!30 = !{!20, !6, i64 112}
!31 = !{!20, !6, i64 136}
!32 = !{!20, !6, i64 88}
!33 = !{!20, !6, i64 96}
!34 = !{!20, !6, i64 144}
!35 = distinct !{!35, !28}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.21 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [41 x i8], align 1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #0 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #1

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8), double noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #1

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #4

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fabs.f64(double) #4

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN8presolve13dev_kkt_check20checkDualFeasibilityERKNS0_5StateERNS0_19KktConditionDetailsE(ptr nocapture noundef nonnull readonly align 8 dereferenceable(168) %0, ptr nocapture noundef nonnull align 8 dereferenceable(32) %1) local_unnamed_addr #3 {
  store i32 1, ptr %1, align 8, !tbaa !5
  %3 = getelementptr inbounds i8, ptr %1, i64 24
  %4 = getelementptr inbounds i8, ptr %1, i64 28
  %5 = getelementptr inbounds i8, ptr %1, i64 8
  %6 = getelementptr inbounds i8, ptr %1, i64 16
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %5, i8 0, i64 24, i1 false)
  %7 = load i32, ptr %0, align 8, !tbaa !12
  %8 = icmp sgt i32 %7, 0
  br i1 %8, label %.lr.ph, label %.preheader

.lr.ph:                                           ; preds = %2
  %9 = getelementptr inbounds i8, ptr %0, i64 104
  %10 = getelementptr inbounds i8, ptr %0, i64 72
  %11 = getelementptr inbounds i8, ptr %0, i64 80
  %12 = getelementptr inbounds i8, ptr %0, i64 120
  %13 = getelementptr inbounds i8, ptr %0, i64 128
  br label %22

.preheader:                                       ; preds = %.thread, %2
  %14 = getelementptr inbounds i8, ptr %0, i64 4
  %15 = load i32, ptr %14, align 4, !tbaa !15
  %16 = icmp sgt i32 %15, 0
  br i1 %16, label %.lr.ph166, label %._crit_edge

.lr.ph166:                                        ; preds = %.preheader
  %17 = getelementptr inbounds i8, ptr %0, i64 112
  %18 = getelementptr inbounds i8, ptr %0, i64 136
  %19 = getelementptr inbounds i8, ptr %0, i64 88
  %20 = getelementptr inbounds i8, ptr %0, i64 96
  %21 = getelementptr inbounds i8, ptr %0, i64 144
  br label %160

22:                                               ; preds = %.lr.ph, %.thread
  %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %.thread ]
  %23 = load ptr, ptr %9, align 8, !tbaa !16
  %24 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %23, i64 noundef %indvars.iv) #7
  %25 = load i32, ptr %24, align 4, !tbaa !17
  %.not157 = icmp eq i32 %25, 0
  br i1 %.not157, label %.thread, label %26

26:                                               ; preds = %22
  %27 = load i32, ptr %3, align 8, !tbaa !18
  %28 = add nsw i32 %27, 1
  store i32 %28, ptr %3, align 8, !tbaa !18
  %29 = load ptr, ptr %10, align 8, !tbaa !19
  %30 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %29, i64 noundef %indvars.iv) #7
  %31 = load double, ptr %30, align 8, !tbaa !20
  %32 = fcmp oeq double %31, 0xFFF0000000000000
  br i1 %32, label %33, label %55

33:                                               ; preds = %26
  %34 = load ptr, ptr %11, align 8, !tbaa !21
  %35 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %34, i64 noundef %indvars.iv) #7
  %36 = load double, ptr %35, align 8, !tbaa !20
  %37 = fcmp oeq double %36, 0x7FF0000000000000
  br i1 %37, label %38, label %55

38:                                               ; preds = %33
  %39 = load ptr, ptr %13, align 8, !tbaa !22
  %40 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %39, i64 noundef %indvars.iv) #7
  %41 = load double, ptr %40, align 8, !tbaa !20
  %42 = tail call double @llvm.fabs.f64(double %41)
  %43 = fcmp ogt double %42, 0x3E7AD7F29ABCAF48
  br i1 %43, label %44, label %.thread

44:                                               ; preds = %38
  %45 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.21)
  %46 = trunc nuw nsw i64 %indvars.iv to i32
  %47 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %45, i32 noundef %46)
  %48 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef nonnull @.str.22)
  %49 = load ptr, ptr %12, align 8, !tbaa !23
  %50 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %49, i64 noundef %indvars.iv) #7
  %51 = load double, ptr %50, align 8, !tbaa !20
  %52 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %48, double noundef %51)
  %53 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %52, ptr noundef nonnull @.str.23)
  %54 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %53, i32 noundef %46)
  br label %134

55:                                               ; preds = %33, %26
  %56 = load ptr, ptr %12, align 8, !tbaa !23
  %57 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %56, i64 noundef %indvars.iv) #7
  %58 = load double, ptr %57, align 8, !tbaa !20
  %59 = load ptr, ptr %10, align 8, !tbaa !19
  %60 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %59, i64 noundef %indvars.iv) #7
  %61 = load double, ptr %60, align 8, !tbaa !20
  %62 = fcmp oeq double %58, %61
  br i1 %62, label %63, label %100

63:                                               ; preds = %55
  %64 = load ptr, ptr %10, align 8, !tbaa !19
  %65 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %64, i64 noundef %indvars.iv) #7
  %66 = load double, ptr %65, align 8, !tbaa !20
  %67 = load ptr, ptr %11, align 8, !tbaa !21
  %68 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %67, i64 noundef %indvars.iv) #7
  %69 = load double, ptr %68, align 8, !tbaa !20
  %70 = fcmp olt double %66, %69
  br i1 %70, label %71, label %100

71:                                               ; preds = %63
  %72 = load ptr, ptr %13, align 8, !tbaa !22
  %73 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %72, i64 noundef %indvars.iv) #7
  %74 = load double, ptr %73, align 8, !tbaa !20
  %75 = fcmp olt double %74, 0.000000e+00
  br i1 %75, label %76, label %.thread

76:                                               ; preds = %71
  %77 = load ptr, ptr %13, align 8, !tbaa !22
  %78 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %77, i64 noundef %indvars.iv) #7
  %79 = load double, ptr %78, align 8, !tbaa !20
  %80 = tail call double @llvm.fabs.f64(double %79)
  %81 = fcmp ogt double %80, 0x3E7AD7F29ABCAF48
  br i1 %81, label %82, label %.thread

82:                                               ; preds = %76
  %83 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.24)
  %84 = trunc nuw nsw i64 %indvars.iv to i32
  %85 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %83, i32 noundef %84)
  %86 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %85, ptr noundef nonnull @.str.22)
  %87 = load ptr, ptr %10, align 8, !tbaa !19
  %88 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef %indvars.iv) #7
  %89 = load double, ptr %88, align 8, !tbaa !20
  %90 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %86, double noundef %89)
  %91 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %90, ptr noundef nonnull @.str.25)
  %92 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %91, i32 noundef %84)
  %93 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %92, ptr noundef nonnull @.str.22)
  %94 = load ptr, ptr %12, align 8, !tbaa !23
  %95 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %94, i64 noundef %indvars.iv) #7
  %96 = load double, ptr %95, align 8, !tbaa !20
  %97 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %93, double noundef %96)
  %98 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %97, ptr noundef nonnull @.str.26)
  %99 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %98, i32 noundef %84)
  br label %134

100:                                              ; preds = %63, %55
  %101 = load ptr, ptr %12, align 8, !tbaa !23
  %102 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %101, i64 noundef %indvars.iv) #7
  %103 = load double, ptr %102, align 8, !tbaa !20
  %104 = load ptr, ptr %11, align 8, !tbaa !21
  %105 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %104, i64 noundef %indvars.iv) #7
  %106 = load double, ptr %105, align 8, !tbaa !20
  %107 = fcmp oeq double %103, %106
  br i1 %107, label %108, label %.thread

108:                                              ; preds = %100
  %109 = load ptr, ptr %10, align 8, !tbaa !19
  %110 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %109, i64 noundef %indvars.iv) #7
  %111 = load double, ptr %110, align 8, !tbaa !20
  %112 = load ptr, ptr %11, align 8, !tbaa !21
  %113 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %112, i64 noundef %indvars.iv) #7
  %114 = load double, ptr %113, align 8, !tbaa !20
  %115 = fcmp olt double %111, %114
  br i1 %115, label %116, label %.thread

116:                                              ; preds = %108
  %117 = load ptr, ptr %13, align 8, !tbaa !22
  %118 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %117, i64 noundef %indvars.iv) #7
  %119 = load double, ptr %118, align 8, !tbaa !20
  %120 = fcmp ogt double %119, 0x3E7AD7F29ABCAF48
  br i1 %120, label %121, label %.thread

121:                                              ; preds = %116
  %122 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.27)
  %123 = trunc nuw nsw i64 %indvars.iv to i32
  %124 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %122, i32 noundef %123)
  %125 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %124, ptr noundef nonnull @.str.22)
  %126 = load ptr, ptr %12, align 8, !tbaa !23
  %127 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %126, i64 noundef %indvars.iv) #7
  %128 = load double, ptr %127, align 8, !tbaa !20
  %129 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %125, double noundef %128)
  %130 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %129, ptr noundef nonnull @.str.28)
  %131 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %130, i32 noundef %123)
  %132 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %131, ptr noundef nonnull @.str.29)
  %133 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %132, i32 noundef %123)
  br label %134

134:                                              ; preds = %82, %121, %44
  %.sink = phi ptr [ %99, %82 ], [ %133, %121 ], [ %54, %44 ]
  %135 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %.sink, ptr noundef nonnull @.str.22)
  %136 = load ptr, ptr %13, align 8, !tbaa !22
  %137 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %136, i64 noundef %indvars.iv) #7
  %138 = load double, ptr %137, align 8, !tbaa !20
  %139 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %135, double noundef %138)
  %140 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %139, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %141 = load ptr, ptr %13, align 8, !tbaa !22
  %142 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %141, i64 noundef %indvars.iv) #7
  %143 = load double, ptr %142, align 8, !tbaa !20
  %144 = tail call double @llvm.fabs.f64(double %143)
  %145 = fcmp ueq double %143, 0.000000e+00
  br i1 %145, label %.thread, label %146

146:                                              ; preds = %134
  %147 = load i32, ptr %4, align 4, !tbaa !24
  %148 = add nsw i32 %147, 1
  store i32 %148, ptr %4, align 4, !tbaa !24
  %149 = load double, ptr %6, align 8, !tbaa !25
  %150 = tail call double @llvm.fmuladd.f64(double %143, double %143, double %149)
  store double %150, ptr %6, align 8, !tbaa !25
  %151 = load double, ptr %5, align 8, !tbaa !26
  %152 = fcmp olt double %151, %144
  br i1 %152, label %153, label %.thread

153:                                              ; preds = %146
  store double %144, ptr %5, align 8, !tbaa !26
  br label %.thread

.thread:                                          ; preds = %100, %108, %116, %71, %76, %38, %134, %153, %146, %22
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %154 = load i32, ptr %0, align 8, !tbaa !12
  %155 = sext i32 %154 to i64
  %156 = icmp slt i64 %indvars.iv.next, %155
  br i1 %156, label %22, label %.preheader, !llvm.loop !27

._crit_edge:                                      ; preds = %.thread160, %.preheader
  %157 = load i32, ptr %4, align 4, !tbaa !24
  %158 = icmp eq i32 %157, 0
  %.str.35..str.36 = select i1 %158, ptr @.str.35, ptr @.str.36
  %159 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull %.str.35..str.36)
  ret void

160:                                              ; preds = %.lr.ph166, %.thread160
  %indvars.iv168 = phi i64 [ 0, %.lr.ph166 ], [ %indvars.iv.next169, %.thread160 ]
  %161 = load ptr, ptr %17, align 8, !tbaa !29
  %162 = tail call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %161, i64 noundef %indvars.iv168) #7
  %163 = load i32, ptr %162, align 4, !tbaa !17
  %.not = icmp eq i32 %163, 0
  br i1 %.not, label %.thread160, label %164

164:                                              ; preds = %160
  %165 = load i32, ptr %3, align 8, !tbaa !18
  %166 = add nsw i32 %165, 1
  store i32 %166, ptr %3, align 8, !tbaa !18
  %167 = load ptr, ptr %18, align 8, !tbaa !30
  %168 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %167, i64 noundef %indvars.iv168) #7
  %169 = load double, ptr %168, align 8, !tbaa !20
  %170 = load ptr, ptr %19, align 8, !tbaa !31
  %171 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %170, i64 noundef %indvars.iv168) #7
  %172 = load double, ptr %171, align 8, !tbaa !20
  %173 = fsub double %172, %169
  %174 = tail call double @llvm.fabs.f64(double %173)
  %175 = fcmp olt double %174, 0x3E7AD7F29ABCAF48
  br i1 %175, label %176, label %183

176:                                              ; preds = %164
  %177 = load ptr, ptr %20, align 8, !tbaa !32
  %178 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %177, i64 noundef %indvars.iv168) #7
  %179 = load double, ptr %178, align 8, !tbaa !20
  %180 = fsub double %179, %169
  %181 = tail call double @llvm.fabs.f64(double %180)
  %182 = fcmp olt double %181, 0x3E7AD7F29ABCAF48
  br i1 %182, label %.thread160, label %183

183:                                              ; preds = %176, %164
  %184 = load ptr, ptr %19, align 8, !tbaa !31
  %185 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %184, i64 noundef %indvars.iv168) #7
  %186 = load double, ptr %185, align 8, !tbaa !20
  %187 = fsub double %186, %169
  %188 = tail call double @llvm.fabs.f64(double %187)
  %189 = fcmp olt double %188, 0x3E7AD7F29ABCAF48
  br i1 %189, label %190, label %226

190:                                              ; preds = %183
  %191 = load ptr, ptr %20, align 8, !tbaa !32
  %192 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %191, i64 noundef %indvars.iv168) #7
  %193 = load double, ptr %192, align 8, !tbaa !20
  %194 = fcmp olt double %169, %193
  br i1 %194, label %195, label %226

195:                                              ; preds = %190
  %196 = load ptr, ptr %21, align 8, !tbaa !33
  %197 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %196, i64 noundef %indvars.iv168) #7
  %198 = load double, ptr %197, align 8, !tbaa !20
  %199 = fcmp olt double %198, 0xBE7AD7F29ABCAF48
  br i1 %199, label %200, label %.thread160

200:                                              ; preds = %195
  %201 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.30)
  %202 = trunc nuw nsw i64 %indvars.iv168 to i32
  %203 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %201, i32 noundef %202)
  %204 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %203, ptr noundef nonnull @.str.31)
  %205 = load ptr, ptr %19, align 8, !tbaa !31
  %206 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %205, i64 noundef %indvars.iv168) #7
  %207 = load double, ptr %206, align 8, !tbaa !20
  %208 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %204, double noundef %207)
  %209 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %208, ptr noundef nonnull @.str.32)
  %210 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %209, double noundef %169)
  %211 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %210, ptr noundef nonnull @.str.33)
  %212 = load ptr, ptr %20, align 8, !tbaa !32
  %213 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %212, i64 noundef %indvars.iv168) #7
  %214 = load double, ptr %213, align 8, !tbaa !20
  %215 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %211, double noundef %214)
  %216 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %215, ptr noundef nonnull @.str.34)
  %217 = load ptr, ptr %21, align 8, !tbaa !33
  %218 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %217, i64 noundef %indvars.iv168) #7
  %219 = load double, ptr %218, align 8, !tbaa !20
  %220 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %216, double noundef %219)
  %221 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %220, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %222 = load ptr, ptr %21, align 8, !tbaa !33
  %223 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %222, i64 noundef %indvars.iv168) #7
  %224 = load double, ptr %223, align 8, !tbaa !20
  %225 = fneg double %224
  br label %312

226:                                              ; preds = %190, %183
  %227 = load ptr, ptr %19, align 8, !tbaa !31
  %228 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %227, i64 noundef %indvars.iv168) #7
  %229 = load double, ptr %228, align 8, !tbaa !20
  %230 = fcmp olt double %229, %169
  br i1 %230, label %231, label %268

231:                                              ; preds = %226
  %232 = load ptr, ptr %20, align 8, !tbaa !32
  %233 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %232, i64 noundef %indvars.iv168) #7
  %234 = load double, ptr %233, align 8, !tbaa !20
  %235 = fsub double %169, %234
  %236 = tail call double @llvm.fabs.f64(double %235)
  %237 = fcmp olt double %236, 0x3E7AD7F29ABCAF48
  br i1 %237, label %238, label %268

238:                                              ; preds = %231
  %239 = load ptr, ptr %21, align 8, !tbaa !33
  %240 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %239, i64 noundef %indvars.iv168) #7
  %241 = load double, ptr %240, align 8, !tbaa !20
  %242 = fcmp ogt double %241, 0x3E7AD7F29ABCAF48
  br i1 %242, label %243, label %.thread160

243:                                              ; preds = %238
  %244 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.30)
  %245 = trunc nuw nsw i64 %indvars.iv168 to i32
  %246 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %244, i32 noundef %245)
  %247 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %246, ptr noundef nonnull @.str.31)
  %248 = load ptr, ptr %19, align 8, !tbaa !31
  %249 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %248, i64 noundef %indvars.iv168) #7
  %250 = load double, ptr %249, align 8, !tbaa !20
  %251 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %247, double noundef %250)
  %252 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %251, ptr noundef nonnull @.str.32)
  %253 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %252, double noundef %169)
  %254 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %253, ptr noundef nonnull @.str.33)
  %255 = load ptr, ptr %20, align 8, !tbaa !32
  %256 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %255, i64 noundef %indvars.iv168) #7
  %257 = load double, ptr %256, align 8, !tbaa !20
  %258 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %254, double noundef %257)
  %259 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %258, ptr noundef nonnull @.str.34)
  %260 = load ptr, ptr %21, align 8, !tbaa !33
  %261 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %260, i64 noundef %indvars.iv168) #7
  %262 = load double, ptr %261, align 8, !tbaa !20
  %263 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %259, double noundef %262)
  %264 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %263, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %265 = load ptr, ptr %21, align 8, !tbaa !33
  %266 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %265, i64 noundef %indvars.iv168) #7
  %267 = load double, ptr %266, align 8, !tbaa !20
  br label %312

268:                                              ; preds = %231, %226
  %269 = load ptr, ptr %19, align 8, !tbaa !31
  %270 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %269, i64 noundef %indvars.iv168) #7
  %271 = load double, ptr %270, align 8, !tbaa !20
  %272 = fadd double %169, 0x3E7AD7F29ABCAF48
  %273 = fcmp olt double %271, %272
  br i1 %273, label %274, label %.thread160

274:                                              ; preds = %268
  %275 = load ptr, ptr %20, align 8, !tbaa !32
  %276 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %275, i64 noundef %indvars.iv168) #7
  %277 = load double, ptr %276, align 8, !tbaa !20
  %278 = fadd double %277, 0x3E7AD7F29ABCAF48
  %279 = fcmp olt double %169, %278
  br i1 %279, label %280, label %.thread160

280:                                              ; preds = %274
  %281 = load ptr, ptr %21, align 8, !tbaa !33
  %282 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %281, i64 noundef %indvars.iv168) #7
  %283 = load double, ptr %282, align 8, !tbaa !20
  %284 = tail call double @llvm.fabs.f64(double %283)
  %285 = fcmp ogt double %284, 0x3E7AD7F29ABCAF48
  br i1 %285, label %286, label %.thread160

286:                                              ; preds = %280
  %287 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.30)
  %288 = trunc nuw nsw i64 %indvars.iv168 to i32
  %289 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %287, i32 noundef %288)
  %290 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %289, ptr noundef nonnull @.str.31)
  %291 = load ptr, ptr %19, align 8, !tbaa !31
  %292 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %291, i64 noundef %indvars.iv168) #7
  %293 = load double, ptr %292, align 8, !tbaa !20
  %294 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %290, double noundef %293)
  %295 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %294, ptr noundef nonnull @.str.32)
  %296 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %295, double noundef %169)
  %297 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %296, ptr noundef nonnull @.str.33)
  %298 = load ptr, ptr %20, align 8, !tbaa !32
  %299 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %298, i64 noundef %indvars.iv168) #7
  %300 = load double, ptr %299, align 8, !tbaa !20
  %301 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %297, double noundef %300)
  %302 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %301, ptr noundef nonnull @.str.34)
  %303 = load ptr, ptr %21, align 8, !tbaa !33
  %304 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %303, i64 noundef %indvars.iv168) #7
  %305 = load double, ptr %304, align 8, !tbaa !20
  %306 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %302, double noundef %305)
  %307 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %306, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %308 = load ptr, ptr %21, align 8, !tbaa !33
  %309 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %308, i64 noundef %indvars.iv168) #7
  %310 = load double, ptr %309, align 8, !tbaa !20
  %311 = tail call noundef double @_ZSt3absd(double noundef %310)
  br label %312

312:                                              ; preds = %243, %286, %200
  %.0 = phi double [ %225, %200 ], [ %267, %243 ], [ %311, %286 ]
  %313 = fcmp ogt double %.0, 0.000000e+00
  br i1 %313, label %314, label %.thread160

314:                                              ; preds = %312
  %315 = load i32, ptr %4, align 4, !tbaa !24
  %316 = add nsw i32 %315, 1
  store i32 %316, ptr %4, align 4, !tbaa !24
  %317 = load double, ptr %6, align 8, !tbaa !25
  %318 = tail call double @llvm.fmuladd.f64(double %.0, double %.0, double %317)
  store double %318, ptr %6, align 8, !tbaa !25
  %319 = load double, ptr %5, align 8, !tbaa !26
  %320 = fcmp olt double %319, %.0
  br i1 %320, label %321, label %.thread160

321:                                              ; preds = %314
  store double %.0, ptr %5, align 8, !tbaa !26
  br label %.thread160

.thread160:                                       ; preds = %268, %274, %280, %238, %195, %176, %314, %321, %312, %160
  %indvars.iv.next169 = add nuw nsw i64 %indvars.iv168, 1
  %322 = load i32, ptr %14, align 4, !tbaa !15
  %323 = sext i32 %322 to i64
  %324 = icmp slt i64 %indvars.iv.next169, %323
  br i1 %324, label %160, label %._crit_edge, !llvm.loop !34
}

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZSt3absd(double noundef) local_unnamed_addr #5

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #6

attributes #0 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #7 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 0}
!6 = !{!"_ZTSN8presolve13dev_kkt_check19KktConditionDetailsE", !7, i64 0, !10, i64 8, !10, i64 16, !11, i64 24, !11, i64 28}
!7 = !{!"_ZTSN8presolve13dev_kkt_check12KktConditionE", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"double", !8, i64 0}
!11 = !{!"int", !8, i64 0}
!12 = !{!13, !11, i64 0}
!13 = !{!"_ZTSN8presolve13dev_kkt_check5StateE", !11, i64 0, !11, i64 4, !14, i64 8, !14, i64 16, !14, i64 24, !14, i64 32, !14, i64 40, !14, i64 48, !14, i64 56, !14, i64 64, !14, i64 72, !14, i64 80, !14, i64 88, !14, i64 96, !14, i64 104, !14, i64 112, !14, i64 120, !14, i64 128, !14, i64 136, !14, i64 144, !14, i64 152, !14, i64 160}
!14 = !{!"any pointer", !8, i64 0}
!15 = !{!13, !11, i64 4}
!16 = !{!13, !14, i64 104}
!17 = !{!11, !11, i64 0}
!18 = !{!6, !11, i64 24}
!19 = !{!13, !14, i64 72}
!20 = !{!10, !10, i64 0}
!21 = !{!13, !14, i64 80}
!22 = !{!13, !14, i64 128}
!23 = !{!13, !14, i64 120}
!24 = !{!6, !11, i64 28}
!25 = !{!6, !10, i64 16}
!26 = !{!6, !10, i64 8}
!27 = distinct !{!27, !28}
!28 = !{!"llvm.loop.mustprogress"}
!29 = !{!13, !14, i64 112}
!30 = !{!13, !14, i64 136}
!31 = !{!13, !14, i64 88}
!32 = !{!13, !14, i64 96}
!33 = !{!13, !14, i64 144}
!34 = distinct !{!34, !28}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass