; LLVM IR from ERGO-Code/HiGHS :: src/io (HMpsFF)

; 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::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Tuple_impl.base", %"struct.std::_Head_base.70" }
%"struct.std::_Tuple_impl.base" = type <{ %"struct.std::_Tuple_impl.68", %"struct.std::_Head_base.69" }>
%"struct.std::_Tuple_impl.68" = type { %"struct.std::_Head_base" }
%"struct.std::_Head_base" = type { double }
%"struct.std::_Head_base.69" = type { i32 }
%"struct.std::_Head_base.70" = type { i32 }
%"class.free_format_parser::HMpsFF" = type { double, i8, double, i32, i32, i32, %"class.std::__cxx11::basic_string", i32, double, %"class.std::vector", %"class.std::vector", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.13", i32, %"class.std::vector", %"class.std::vector", %"class.std::vector.3", %"class.std::vector.18", i32, i8, i8, %"class.std::__cxx11::basic_string", i32, i32, %"class.std::__cxx11::basic_string", i32, i32, i8, %"class.std::vector.18", i8, %"class.std::__cxx11::basic_string", %"class.std::vector.22", %"class.std::vector", %"class.std::vector.27", %"class.std::vector.27", %"class.std::vector.32", %"class.std::vector.37", %"class.std::vector.8", %"class.std::vector.42", %"class.std::vector.47", %"class.std::vector.8", %"class.std::vector.52", %"class.std::vector.3", %"class.std::vector.57", %"class.std::unordered_map", %"class.std::unordered_map", %"class.std::__cxx11::basic_string" }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = type { %"struct.std::_Vector_base<HighsVarType, std::allocator<HighsVarType>>::_Vector_impl" }
%"struct.std::_Vector_base<HighsVarType, std::allocator<HighsVarType>>::_Vector_impl" = type { %"struct.std::_Vector_base<HighsVarType, std::allocator<HighsVarType>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HighsVarType, std::allocator<HighsVarType>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.18" = type { %"struct.std::_Bvector_base" }
%"struct.std::_Bvector_base" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" = type { %"struct.std::_Bit_iterator", %"struct.std::_Bit_iterator", ptr }
%"struct.std::_Bit_iterator" = type { %"struct.std::_Bit_iterator_base.base", [4 x i8] }
%"struct.std::_Bit_iterator_base.base" = type <{ ptr, i32 }>
%"class.std::vector.22" = type { %"struct.std::_Vector_base.23" }
%"struct.std::_Vector_base.23" = type { %"struct.std::_Vector_base<free_format_parser::HMpsFF::Boundtype, std::allocator<free_format_parser::HMpsFF::Boundtype>>::_Vector_impl" }
%"struct.std::_Vector_base<free_format_parser::HMpsFF::Boundtype, std::allocator<free_format_parser::HMpsFF::Boundtype>>::_Vector_impl" = type { %"struct.std::_Vector_base<free_format_parser::HMpsFF::Boundtype, std::allocator<free_format_parser::HMpsFF::Boundtype>>::_Vector_impl_data" }
%"struct.std::_Vector_base<free_format_parser::HMpsFF::Boundtype, std::allocator<free_format_parser::HMpsFF::Boundtype>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.27" = type { %"struct.std::_Vector_base.28" }
%"struct.std::_Vector_base.28" = type { %"struct.std::_Vector_base<std::tuple<int, int, double>, std::allocator<std::tuple<int, int, double>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::tuple<int, int, double>, std::allocator<std::tuple<int, int, double>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::tuple<int, int, double>, std::allocator<std::tuple<int, int, double>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::tuple<int, int, double>, std::allocator<std::tuple<int, int, double>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.32" = type { %"struct.std::_Vector_base.33" }
%"struct.std::_Vector_base.33" = type { %"struct.std::_Vector_base<std::vector<std::tuple<int, int, double>>, std::allocator<std::vector<std::tuple<int, int, double>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<std::tuple<int, int, double>>, std::allocator<std::vector<std::tuple<int, int, double>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<std::tuple<int, int, double>>, std::allocator<std::vector<std::tuple<int, int, double>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<std::tuple<int, int, double>>, std::allocator<std::vector<std::tuple<int, int, double>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.37" = type { %"struct.std::_Vector_base.38" }
%"struct.std::_Vector_base.38" = type { %"struct.std::_Vector_base<std::pair<int, double>, std::allocator<std::pair<int, double>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<int, double>, std::allocator<std::pair<int, double>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<int, double>, std::allocator<std::pair<int, double>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<int, double>, std::allocator<std::pair<int, double>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.42" = type { %"struct.std::_Vector_base.43" }
%"struct.std::_Vector_base.43" = type { %"struct.std::_Vector_base<short, std::allocator<short>>::_Vector_impl" }
%"struct.std::_Vector_base<short, std::allocator<short>>::_Vector_impl" = type { %"struct.std::_Vector_base<short, std::allocator<short>>::_Vector_impl_data" }
%"struct.std::_Vector_base<short, std::allocator<short>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.47" = type { %"struct.std::_Vector_base.48" }
%"struct.std::_Vector_base.48" = type { %"struct.std::_Vector_base<std::vector<std::pair<int, double>>, std::allocator<std::vector<std::pair<int, double>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<std::pair<int, double>>, std::allocator<std::vector<std::pair<int, double>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<std::pair<int, double>>, std::allocator<std::vector<std::pair<int, double>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<std::pair<int, double>>, std::allocator<std::vector<std::pair<int, double>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.52" = type { %"struct.std::_Vector_base.53" }
%"struct.std::_Vector_base.53" = type { %"struct.std::_Vector_base<free_format_parser::HMpsFF::ConeType, std::allocator<free_format_parser::HMpsFF::ConeType>>::_Vector_impl" }
%"struct.std::_Vector_base<free_format_parser::HMpsFF::ConeType, std::allocator<free_format_parser::HMpsFF::ConeType>>::_Vector_impl" = type { %"struct.std::_Vector_base<free_format_parser::HMpsFF::ConeType, std::allocator<free_format_parser::HMpsFF::ConeType>>::_Vector_impl_data" }
%"struct.std::_Vector_base<free_format_parser::HMpsFF::ConeType, std::allocator<free_format_parser::HMpsFF::ConeType>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.57" = type { %"struct.std::_Vector_base.58" }
%"struct.std::_Vector_base.58" = type { %"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::unordered_map" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }

@.str.10 = external hidden unnamed_addr constant [1 x i8], align 1
@_ZL17default_non_charsB5cxx11 = external hidden global %"class.std::__cxx11::basic_string", align 8
@.str.64 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.181 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.182 = external hidden unnamed_addr constant [32 x i8], align 1
@__PRETTY_FUNCTION__._ZN18free_format_parser6HMpsFF12parseHessianERK15HighsLogOptionsRSiNS0_8ParsekeyE = external hidden unnamed_addr constant [132 x i8], align 1
@.str.183 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.184 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.185 = external hidden unnamed_addr constant [58 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

declare i32 @__gxx_personality_v0(...)

; 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 void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1 align 2

declare void @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89), i32 noundef, ptr noundef, ...) #2

; Function Attrs: mustprogress nounwind uwtable
declare noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN18free_format_parser6HMpsFF7timeoutEv(ptr noundef nonnull align 8 dereferenceable(1104)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN18free_format_parser6HMpsFF10getMpsLineERSiRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERb(ptr noundef nonnull align 8 dereferenceable(1104), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) #3 align 2

declare noundef nonnull align 8 dereferenceable(32) ptr @_Z4trimRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS4_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #2

declare void @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89), i32 noundef, ptr noundef, ...) #2

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN18free_format_parser6HMpsFF12parseHessianERK15HighsLogOptionsRSiNS0_8ParsekeyE(ptr noundef nonnull align 8 dereferenceable(1104) %0, ptr noundef nonnull align 8 dereferenceable(89) %1, ptr noundef nonnull align 8 dereferenceable(16) %2, i32 noundef %3) #3 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca i32, align 4
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca i8, align 1
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca i64, align 8
  %19 = alloca i64, align 8
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i8, align 1
  %23 = alloca i32, align 4
  %24 = alloca i64, align 8
  %25 = alloca i64, align 8
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca i8, align 1
  %31 = alloca double, align 8
  %32 = alloca %"class.std::tuple", align 8
  %33 = alloca %"class.std::tuple", align 8
  store ptr %0, ptr %6, align 8, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !5
  store ptr %2, ptr %8, align 8, !tbaa !5
  store i32 %3, ptr %9, align 4, !tbaa !9
  %34 = load ptr, ptr %6, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #6
  %35 = load i32, ptr %9, align 4, !tbaa !9
  %36 = icmp eq i32 %35, 10
  %37 = zext i1 %36 to i8
  store i8 %37, ptr %10, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 32, ptr %11) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  %38 = load i8, ptr %10, align 1, !tbaa !11, !range !13, !noundef !14
  %39 = trunc i8 %38 to i1
  br i1 %39, label %40, label %47

40:                                               ; preds = %4
  %41 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef @.str.87)
          to label %42 unwind label %43

42:                                               ; preds = %40
  br label %54

43:                                               ; preds = %50, %40
  %44 = landingpad { ptr, i32 }
          cleanup
  %45 = extractvalue { ptr, i32 } %44, 0
  store ptr %45, ptr %12, align 8
  %46 = extractvalue { ptr, i32 } %44, 1
  store i32 %46, ptr %13, align 4
  br label %233

47:                                               ; preds = %4
  %48 = load i32, ptr %9, align 4, !tbaa !9
  %49 = icmp eq i32 %48, 11
  br i1 %49, label %50, label %53

50:                                               ; preds = %47
  %51 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef @.str.88)
          to label %52 unwind label %43

52:                                               ; preds = %50
  br label %53

53:                                               ; preds = %52, %47
  br label %54

54:                                               ; preds = %53, %42
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %17) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #6
  br label %55

55:                                               ; preds = %227, %62, %54
  %56 = load ptr, ptr %8, align 8, !tbaa !5
  %57 = invoke noundef zeroext i1 @_ZN18free_format_parser6HMpsFF10getMpsLineERSiRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERb(ptr noundef nonnull align 8 dereferenceable(1104) %34, ptr noundef nonnull align 8 dereferenceable(16) %56, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %58 unwind label %63

58:                                               ; preds = %55
  br i1 %57, label %59, label %229

59:                                               ; preds = %58
  %60 = load i8, ptr %22, align 1, !tbaa !11, !range !13, !noundef !14
  %61 = trunc i8 %60 to i1
  br i1 %61, label %62, label %67

62:                                               ; preds = %59
  br label %55, !llvm.loop !15

63:                                               ; preds = %67, %55
  %64 = landingpad { ptr, i32 }
          cleanup
  %65 = extractvalue { ptr, i32 } %64, 0
  store ptr %65, ptr %12, align 8
  %66 = extractvalue { ptr, i32 } %64, 1
  store i32 %66, ptr %13, align 4
  br label %232

67:                                               ; preds = %59
  %68 = invoke noundef zeroext i1 @_ZN18free_format_parser6HMpsFF7timeoutEv(ptr noundef nonnull align 8 dereferenceable(1104) %34)
          to label %69 unwind label %63

69:                                               ; preds = %67
  br i1 %68, label %70, label %71

70:                                               ; preds = %69
  store i32 29, ptr %5, align 4
  store i32 1, ptr %23, align 4
  br label %230

71:                                               ; preds = %69
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #6
  store i64 0, ptr %24, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #6
  store i64 0, ptr %25, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #6
  %72 = invoke noundef i32 @_ZNK18free_format_parser6HMpsFF14checkFirstWordERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERmS8_S7_(ptr noundef nonnull align 8 dereferenceable(1104) %34, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %73 unwind label %81

73:                                               ; preds = %71
  store i32 %72, ptr %26, align 4, !tbaa !9
  %74 = load i32, ptr %26, align 4, !tbaa !9
  %75 = icmp ne i32 %74, 24
  br i1 %75, label %76, label %85

76:                                               ; preds = %73
  %77 = load ptr, ptr %7, align 8, !tbaa !5
  %78 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %77, i32 noundef 1, ptr noundef @.str.181, ptr noundef %78)
          to label %79 unwind label %81

79:                                               ; preds = %76
  %80 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %80, ptr %5, align 4
  store i32 1, ptr %23, align 4
  br label %225

81:                                               ; preds = %85, %76, %71
  %82 = landingpad { ptr, i32 }
          cleanup
  %83 = extractvalue { ptr, i32 } %82, 0
  store ptr %83, ptr %12, align 8
  %84 = extractvalue { ptr, i32 } %82, 1
  store i32 %84, ptr %13, align 4
  br label %228

85:                                               ; preds = %73
  %86 = invoke noundef i32 @_ZN18free_format_parser6HMpsFF9getColIdxERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(1104) %34, ptr noundef nonnull align 8 dereferenceable(32) %15, i1 noundef zeroext true)
          to label %87 unwind label %81

87:                                               ; preds = %85
  store i32 %86, ptr %20, align 4, !tbaa !19
  %88 = load i32, ptr %20, align 4, !tbaa !19
  %89 = icmp sge i32 %88, 0
  br i1 %89, label %90, label %95

90:                                               ; preds = %87
  %91 = load i32, ptr %20, align 4, !tbaa !19
  %92 = getelementptr inbounds %"class.free_format_parser::HMpsFF", ptr %34, i32 0, i32 4
  %93 = load i32, ptr %92, align 4, !tbaa !21
  %94 = icmp slt i32 %91, %93
  br label %95

95:                                               ; preds = %90, %87
  %96 = phi i1 [ false, %87 ], [ %94, %90 ]
  br i1 %96, label %97, label %98

97:                                               ; preds = %95
  br label %100

98:                                               ; preds = %95
  call void @__assert_fail(ptr noundef @.str.182, ptr noundef @.str.64, i32 noundef 1771, ptr noundef @__PRETTY_FUNCTION__._ZN18free_format_parser6HMpsFF12parseHessianERK15HighsLogOptionsRSiNS0_8ParsekeyE) #7
  unreachable

99:                                               ; No predecessors!
  br label %100

100:                                              ; preds = %99, %97
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #6
  store i32 0, ptr %27, align 4, !tbaa !19
  br label %101

101:                                              ; preds = %217, %100
  %102 = load i32, ptr %27, align 4, !tbaa !19
  %103 = icmp slt i32 %102, 2
  br i1 %103, label %105, label %104

104:                                              ; preds = %101
  store i32 4, ptr %23, align 4
  br label %221

105:                                              ; preds = %101
  %106 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef @.str.10)
          to label %107 unwind label %117

107:                                              ; preds = %105
  call void @llvm.lifetime.start.p0(i64 32, ptr %28) #6
  %108 = load i64, ptr %25, align 8, !tbaa !17
  invoke void @_Z10first_wordRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %28, ptr noundef nonnull align 8 dereferenceable(32) %14, i64 noundef %108)
          to label %109 unwind label %121

109:                                              ; preds = %107
  %110 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(32) %28) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #6
  %111 = load i64, ptr %25, align 8, !tbaa !17
  %112 = invoke noundef i64 @_Z14first_word_endRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(32) %14, i64 noundef %111)
          to label %113 unwind label %117

113:                                              ; preds = %109
  store i64 %112, ptr %18, align 8, !tbaa !17
  %114 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef @.str.10)
          to label %115 unwind label %117

115:                                              ; preds = %113
  br i1 %114, label %116, label %125

116:                                              ; preds = %115
  store i32 4, ptr %23, align 4
  br label %221

117:                                              ; preds = %150, %140, %138, %136, %133, %129, %125, %113, %109, %105
  %118 = landingpad { ptr, i32 }
          cleanup
  %119 = extractvalue { ptr, i32 } %118, 0
  store ptr %119, ptr %12, align 8
  %120 = extractvalue { ptr, i32 } %118, 1
  store i32 %120, ptr %13, align 4
  br label %223

121:                                              ; preds = %107
  %122 = landingpad { ptr, i32 }
          cleanup
  %123 = extractvalue { ptr, i32 } %122, 0
  store ptr %123, ptr %12, align 8
  %124 = extractvalue { ptr, i32 } %122, 1
  store i32 %124, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #6
  br label %223

125:                                              ; preds = %115
  %126 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef @.str.10)
          to label %127 unwind label %117

127:                                              ; preds = %125
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #6
  %128 = load i64, ptr %18, align 8, !tbaa !17
  invoke void @_Z10first_wordRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull align 8 dereferenceable(32) %14, i64 noundef %128)
          to label %129 unwind label %146

129:                                              ; preds = %127
  %130 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(32) %29) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #6
  %131 = load i64, ptr %18, align 8, !tbaa !17
  %132 = invoke noundef i64 @_Z14first_word_endRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(32) %14, i64 noundef %131)
          to label %133 unwind label %117

133:                                              ; preds = %129
  store i64 %132, ptr %19, align 8, !tbaa !17
  %134 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef @.str.10)
          to label %135 unwind label %117

135:                                              ; preds = %133
  br i1 %134, label %136, label %150

136:                                              ; preds = %135
  %137 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_Z4trimRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(32) @_ZL17default_non_charsB5cxx11)
          to label %138 unwind label %117

138:                                              ; preds = %136
  %139 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_Z4trimRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) @_ZL17default_non_charsB5cxx11)
          to label %140 unwind label %117

140:                                              ; preds = %138
  %141 = load ptr, ptr %7, align 8, !tbaa !5
  %142 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  %143 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  %144 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %141, i32 noundef 5, ptr noundef @.str.183, ptr noundef %142, ptr noundef %143, ptr noundef %144)
          to label %145 unwind label %117

145:                                              ; preds = %140
  store i32 26, ptr %5, align 4
  store i32 1, ptr %23, align 4
  br label %221

146:                                              ; preds = %127
  %147 = landingpad { ptr, i32 }
          cleanup
  %148 = extractvalue { ptr, i32 } %147, 0
  store ptr %148, ptr %12, align 8
  %149 = extractvalue { ptr, i32 } %147, 1
  store i32 %149, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #6
  br label %223

150:                                              ; preds = %135
  %151 = invoke noundef i32 @_ZN18free_format_parser6HMpsFF9getColIdxERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(1104) %34, ptr noundef nonnull align 8 dereferenceable(32) %16, i1 noundef zeroext true)
          to label %152 unwind label %117

152:                                              ; preds = %150
  store i32 %151, ptr %21, align 4, !tbaa !19
  %153 = load i32, ptr %21, align 4, !tbaa !19
  %154 = icmp sge i32 %153, 0
  br i1 %154, label %155, label %160

155:                                              ; preds = %152
  %156 = load i32, ptr %21, align 4, !tbaa !19
  %157 = getelementptr inbounds %"class.free_format_parser::HMpsFF", ptr %34, i32 0, i32 4
  %158 = load i32, ptr %157, align 4, !tbaa !21
  %159 = icmp slt i32 %156, %158
  br label %160

160:                                              ; preds = %155, %152
  %161 = phi i1 [ false, %152 ], [ %159, %155 ]
  br i1 %161, label %162, label %163

162:                                              ; preds = %160
  br label %165

163:                                              ; preds = %160
  call void @__assert_fail(ptr noundef @.str.184, ptr noundef @.str.64, i32 noundef 1797, ptr noundef @__PRETTY_FUNCTION__._ZN18free_format_parser6HMpsFF12parseHessianERK15HighsLogOptionsRSiNS0_8ParsekeyE) #7
  unreachable

164:                                              ; No predecessors!
  br label %165

165:                                              ; preds = %164, %162
  call void @llvm.lifetime.start.p0(i64 1, ptr %30) #6
  store i8 0, ptr %30, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #6
  %166 = invoke noundef double @_ZNK18free_format_parser6HMpsFF8getValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERbi(ptr noundef nonnull align 8 dereferenceable(1104) %34, ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 1 dereferenceable(1) %30, i32 noundef -1)
          to label %167 unwind label %175

167:                                              ; preds = %165
  store double %166, ptr %31, align 8, !tbaa !86
  %168 = load i8, ptr %30, align 1, !tbaa !11, !range !13, !noundef !14
  %169 = trunc i8 %168 to i1
  br i1 %169, label %170, label %179

170:                                              ; preds = %167
  %171 = load ptr, ptr %7, align 8, !tbaa !5
  %172 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  %173 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %171, i32 noundef 5, ptr noundef @.str.185, ptr noundef %172, ptr noundef %173)
          to label %174 unwind label %175

174:                                              ; preds = %170
  store i32 26, ptr %5, align 4
  store i32 1, ptr %23, align 4
  br label %214

175:                                              ; preds = %170, %165
  %176 = landingpad { ptr, i32 }
          cleanup
  %177 = extractvalue { ptr, i32 } %176, 0
  store ptr %177, ptr %12, align 8
  %178 = extractvalue { ptr, i32 } %176, 1
  store i32 %178, ptr %13, align 4
  br label %220

179:                                              ; preds = %167
  %180 = load double, ptr %31, align 8, !tbaa !86
  %181 = fcmp une double %180, 0.000000e+00
  br i1 %181, label %182, label %207

182:                                              ; preds = %179
  %183 = load i8, ptr %10, align 1, !tbaa !11, !range !13, !noundef !14
  %184 = trunc i8 %183 to i1
  br i1 %184, label %185, label %198

185:                                              ; preds = %182
  %186 = load i32, ptr %21, align 4, !tbaa !19
  %187 = load i32, ptr %20, align 4, !tbaa !19
  %188 = icmp sge i32 %186, %187
  br i1 %188, label %189, label %197

189:                                              ; preds = %185
  %190 = getelementptr inbounds %"class.free_format_parser::HMpsFF", ptr %34, i32 0, i32 41
  call void @llvm.lifetime.start.p0(i64 16, ptr %32) #6
  invoke void @_ZSt10make_tupleIJRiS0_RdEESt5tupleIJDpNSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeEEEDpOS5_(ptr dead_on_unwind writable sret(%"class.std::tuple") align 8 %32, ptr noundef nonnull align 4 dereferenceable(4) %21, ptr noundef nonnull align 4 dereferenceable(4) %20, ptr noundef nonnull align 8 dereferenceable(8) %31)
          to label %191 unwind label %193

191:                                              ; preds = %189
  invoke void @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %190, ptr noundef nonnull align 8 dereferenceable(16) %32)
          to label %192 unwind label %193

192:                                              ; preds = %191
  call void @llvm.lifetime.end.p0(i64 16, ptr %32) #6
  br label %197

193:                                              ; preds = %191, %189
  %194 = landingpad { ptr, i32 }
          cleanup
  %195 = extractvalue { ptr, i32 } %194, 0
  store ptr %195, ptr %12, align 8
  %196 = extractvalue { ptr, i32 } %194, 1
  store i32 %196, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %32) #6
  br label %220

197:                                              ; preds = %192, %185
  br label %206

198:                                              ; preds = %182
  %199 = getelementptr inbounds %"class.free_format_parser::HMpsFF", ptr %34, i32 0, i32 41
  call void @llvm.lifetime.start.p0(i64 16, ptr %33) #6
  invoke void @_ZSt10make_tupleIJRiS0_RdEESt5tupleIJDpNSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeEEEDpOS5_(ptr dead_on_unwind writable sret(%"class.std::tuple") align 8 %33, ptr noundef nonnull align 4 dereferenceable(4) %21, ptr noundef nonnull align 4 dereferenceable(4) %20, ptr noundef nonnull align 8 dereferenceable(8) %31)
          to label %200 unwind label %202

200:                                              ; preds = %198
  invoke void @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %199, ptr noundef nonnull align 8 dereferenceable(16) %33)
          to label %201 unwind label %202

201:                                              ; preds = %200
  call void @llvm.lifetime.end.p0(i64 16, ptr %33) #6
  br label %206

202:                                              ; preds = %200, %198
  %203 = landingpad { ptr, i32 }
          cleanup
  %204 = extractvalue { ptr, i32 } %203, 0
  store ptr %204, ptr %12, align 8
  %205 = extractvalue { ptr, i32 } %203, 1
  store i32 %205, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %33) #6
  br label %220

206:                                              ; preds = %201, %197
  br label %207

207:                                              ; preds = %206, %179
  %208 = load i64, ptr %19, align 8, !tbaa !17
  store i64 %208, ptr %25, align 8, !tbaa !17
  %209 = load i64, ptr %25, align 8, !tbaa !17
  %210 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  %211 = icmp eq i64 %209, %210
  br i1 %211, label %212, label %213

212:                                              ; preds = %207
  store i32 4, ptr %23, align 4
  br label %214

213:                                              ; preds = %207
  store i32 0, ptr %23, align 4
  br label %214

214:                                              ; preds = %213, %212, %174
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #6
  %215 = load i32, ptr %23, align 4
  switch i32 %215, label %221 [
    i32 0, label %216
  ]

216:                                              ; preds = %214
  br label %217

217:                                              ; preds = %216
  %218 = load i32, ptr %27, align 4, !tbaa !19
  %219 = add nsw i32 %218, 1
  store i32 %219, ptr %27, align 4, !tbaa !19
  br label %101, !llvm.loop !87

220:                                              ; preds = %202, %193, %175
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #6
  br label %223

221:                                              ; preds = %214, %145, %116, %104
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #6
  %222 = load i32, ptr %23, align 4
  switch i32 %222, label %225 [
    i32 4, label %224
  ]

223:                                              ; preds = %220, %146, %121, %117
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #6
  br label %228

224:                                              ; preds = %221
  store i32 0, ptr %23, align 4
  br label %225

225:                                              ; preds = %224, %221, %79
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #6
  %226 = load i32, ptr %23, align 4
  switch i32 %226, label %230 [
    i32 0, label %227
  ]

227:                                              ; preds = %225
  br label %55, !llvm.loop !15

228:                                              ; preds = %223, %81
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #6
  br label %232

229:                                              ; preds = %58
  store i32 26, ptr %5, align 4
  store i32 1, ptr %23, align 4
  br label %230

230:                                              ; preds = %229, %225, %70
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #6
  %231 = load i32, ptr %5, align 4
  ret i32 %231

232:                                              ; preds = %228, %63
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #6
  br label %233

233:                                              ; preds = %232, %43
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #6
  br label %234

234:                                              ; preds = %233
  %235 = load ptr, ptr %12, align 8
  %236 = load i32, ptr %13, align 4
  %237 = insertvalue { ptr, i32 } poison, ptr %235, 0
  %238 = insertvalue { ptr, i32 } %237, i32 %236, 1
  resume { ptr, i32 } %238
}

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) #4

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK18free_format_parser6HMpsFF14checkFirstWordERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERmS8_S7_(ptr noundef nonnull align 8 dereferenceable(1104), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) #3 align 2

declare noundef i64 @_Z14first_word_endRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(32), i64 noundef) #2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #5

; Function Attrs: mustprogress nounwind uwtable
declare noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32)) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN18free_format_parser6HMpsFF9getColIdxERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(1104), ptr noundef nonnull align 8 dereferenceable(32), i1 noundef zeroext) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1 align 2

declare void @_Z10first_wordRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), i64 noundef) #2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(16)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNK18free_format_parser6HMpsFF8getValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERbi(ptr noundef nonnull align 8 dereferenceable(1104), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1), i32 noundef) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZSt10make_tupleIJRiS0_RdEESt5tupleIJDpNSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeEEEDpOS5_(ptr dead_on_unwind noalias writable sret(%"class.std::tuple") align 8, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(8)) #1

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 = { "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 = { noreturn nounwind "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 = { 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 = { nounwind }
attributes #7 = { noreturn 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, !10, i64 0}
!10 = !{!"_ZTSN18free_format_parser6HMpsFF8ParsekeyE", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = distinct !{!15, !16}
!16 = !{!"llvm.loop.mustprogress"}
!17 = !{!18, !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!20, !20, i64 0}
!20 = !{!"int", !7, i64 0}
!21 = !{!22, !20, i64 28}
!22 = !{!"_ZTSN18free_format_parser6HMpsFFE", !23, i64 0, !12, i64 8, !23, i64 16, !20, i64 24, !20, i64 28, !20, i64 32, !24, i64 40, !26, i64 72, !23, i64 80, !27, i64 88, !27, i64 112, !31, i64 136, !31, i64 160, !31, i64 184, !31, i64 208, !31, i64 232, !31, i64 256, !35, i64 280, !35, i64 304, !39, i64 328, !20, i64 352, !27, i64 360, !27, i64 384, !31, i64 408, !43, i64 432, !20, i64 472, !12, i64 476, !12, i64 477, !24, i64 480, !20, i64 512, !20, i64 516, !24, i64 520, !20, i64 552, !20, i64 556, !12, i64 560, !43, i64 568, !12, i64 608, !24, i64 616, !49, i64 648, !27, i64 672, !53, i64 696, !53, i64 720, !57, i64 744, !61, i64 768, !35, i64 792, !65, i64 816, !69, i64 840, !35, i64 864, !73, i64 888, !31, i64 912, !77, i64 936, !81, i64 960, !81, i64 1016, !24, i64 1072}
!23 = !{!"double", !7, i64 0}
!24 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !25, i64 0, !18, i64 8, !7, i64 16}
!25 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!26 = !{!"_ZTS8ObjSense", !7, i64 0}
!27 = !{!"_ZTSSt6vectorIiSaIiEE", !28, i64 0}
!28 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!31 = !{!"_ZTSSt6vectorIdSaIdEE", !32, i64 0}
!32 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!35 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !36, i64 0}
!36 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!39 = !{!"_ZTSSt6vectorI12HighsVarTypeSaIS0_EE", !40, i64 0}
!40 = !{!"_ZTSSt12_Vector_baseI12HighsVarTypeSaIS0_EE", !41, i64 0}
!41 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE12_Vector_implE", !42, i64 0}
!42 = !{!"_ZTSNSt12_Vector_baseI12HighsVarTypeSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!43 = !{!"_ZTSSt6vectorIbSaIbEE", !44, i64 0}
!44 = !{!"_ZTSSt13_Bvector_baseISaIbEE", !45, i64 0}
!45 = !{!"_ZTSNSt13_Bvector_baseISaIbEE13_Bvector_implE", !46, i64 0}
!46 = !{!"_ZTSNSt13_Bvector_baseISaIbEE18_Bvector_impl_dataE", !47, i64 0, !47, i64 16, !6, i64 32}
!47 = !{!"_ZTSSt13_Bit_iterator", !48, i64 0}
!48 = !{!"_ZTSSt18_Bit_iterator_base", !6, i64 0, !20, i64 8}
!49 = !{!"_ZTSSt6vectorIN18free_format_parser6HMpsFF9BoundtypeESaIS2_EE", !50, i64 0}
!50 = !{!"_ZTSSt12_Vector_baseIN18free_format_parser6HMpsFF9BoundtypeESaIS2_EE", !51, i64 0}
!51 = !{!"_ZTSNSt12_Vector_baseIN18free_format_parser6HMpsFF9BoundtypeESaIS2_EE12_Vector_implE", !52, i64 0}
!52 = !{!"_ZTSNSt12_Vector_baseIN18free_format_parser6HMpsFF9BoundtypeESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!53 = !{!"_ZTSSt6vectorISt5tupleIJiidEESaIS1_EE", !54, i64 0}
!54 = !{!"_ZTSSt12_Vector_baseISt5tupleIJiidEESaIS1_EE", !55, i64 0}
!55 = !{!"_ZTSNSt12_Vector_baseISt5tupleIJiidEESaIS1_EE12_Vector_implE", !56, i64 0}
!56 = !{!"_ZTSNSt12_Vector_baseISt5tupleIJiidEESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!57 = !{!"_ZTSSt6vectorIS_ISt5tupleIJiidEESaIS1_EESaIS3_EE", !58, i64 0}
!58 = !{!"_ZTSSt12_Vector_baseISt6vectorISt5tupleIJiidEESaIS2_EESaIS4_EE", !59, i64 0}
!59 = !{!"_ZTSNSt12_Vector_baseISt6vectorISt5tupleIJiidEESaIS2_EESaIS4_EE12_Vector_implE", !60, i64 0}
!60 = !{!"_ZTSNSt12_Vector_baseISt6vectorISt5tupleIJiidEESaIS2_EESaIS4_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!61 = !{!"_ZTSSt6vectorISt4pairIidESaIS1_EE", !62, i64 0}
!62 = !{!"_ZTSSt12_Vector_baseISt4pairIidESaIS1_EE", !63, i64 0}
!63 = !{!"_ZTSNSt12_Vector_baseISt4pairIidESaIS1_EE12_Vector_implE", !64, i64 0}
!64 = !{!"_ZTSNSt12_Vector_baseISt4pairIidESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!65 = !{!"_ZTSSt6vectorIsSaIsEE", !66, i64 0}
!66 = !{!"_ZTSSt12_Vector_baseIsSaIsEE", !67, i64 0}
!67 = !{!"_ZTSNSt12_Vector_baseIsSaIsEE12_Vector_implE", !68, i64 0}
!68 = !{!"_ZTSNSt12_Vector_baseIsSaIsEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!69 = !{!"_ZTSSt6vectorIS_ISt4pairIidESaIS1_EESaIS3_EE", !70, i64 0}
!70 = !{!"_ZTSSt12_Vector_baseISt6vectorISt4pairIidESaIS2_EESaIS4_EE", !71, i64 0}
!71 = !{!"_ZTSNSt12_Vector_baseISt6vectorISt4pairIidESaIS2_EESaIS4_EE12_Vector_implE", !72, i64 0}
!72 = !{!"_ZTSNSt12_Vector_baseISt6vectorISt4pairIidESaIS2_EESaIS4_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!73 = !{!"_ZTSSt6vectorIN18free_format_parser6HMpsFF8ConeTypeESaIS2_EE", !74, i64 0}
!74 = !{!"_ZTSSt12_Vector_baseIN18free_format_parser6HMpsFF8ConeTypeESaIS2_EE", !75, i64 0}
!75 = !{!"_ZTSNSt12_Vector_baseIN18free_format_parser6HMpsFF8ConeTypeESaIS2_EE12_Vector_implE", !76, i64 0}
!76 = !{!"_ZTSNSt12_Vector_baseIN18free_format_parser6HMpsFF8ConeTypeESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!77 = !{!"_ZTSSt6vectorIS_IiSaIiEESaIS1_EE", !78, i64 0}
!78 = !{!"_ZTSSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EE", !79, i64 0}
!79 = !{!"_ZTSNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EE12_Vector_implE", !80, i64 0}
!80 = !{!"_ZTSNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!81 = !{!"_ZTSSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_iEEE", !82, i64 0}
!82 = !{!"_ZTSSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESaIS8_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb1ELb0ELb1EEEE", !6, i64 0, !18, i64 8, !83, i64 16, !18, i64 24, !84, i64 32, !6, i64 48}
!83 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!84 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !85, i64 0, !18, i64 8}
!85 = !{!"float", !7, i64 0}
!86 = !{!23, !23, i64 0}
!87 = distinct !{!87, !16}


; 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::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Tuple_impl.base", %"struct.std::_Head_base.70" }
%"struct.std::_Tuple_impl.base" = type <{ %"struct.std::_Tuple_impl.68", %"struct.std::_Head_base.69" }>
%"struct.std::_Tuple_impl.68" = type { %"struct.std::_Head_base" }
%"struct.std::_Head_base" = type { double }
%"struct.std::_Head_base.69" = type { i32 }
%"struct.std::_Head_base.70" = type { i32 }

@.str.10 = external hidden unnamed_addr constant [1 x i8], align 1
@_ZL17default_non_charsB5cxx11 = external hidden global %"class.std::__cxx11::basic_string", align 8
@.str.64 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.181 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.182 = external hidden unnamed_addr constant [32 x i8], align 1
@__PRETTY_FUNCTION__._ZN18free_format_parser6HMpsFF12parseHessianERK15HighsLogOptionsRSiNS0_8ParsekeyE = external hidden unnamed_addr constant [132 x i8], align 1
@.str.183 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.184 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.185 = external hidden unnamed_addr constant [58 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress 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 void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1 align 2

declare void @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89), i32 noundef, ptr noundef, ...) local_unnamed_addr #2

; Function Attrs: mustprogress nounwind uwtable
declare noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN18free_format_parser6HMpsFF7timeoutEv(ptr noundef nonnull align 8 dereferenceable(1104)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN18free_format_parser6HMpsFF10getMpsLineERSiRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERb(ptr noundef nonnull align 8 dereferenceable(1104), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #3 align 2

declare noundef nonnull align 8 dereferenceable(32) ptr @_Z4trimRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS4_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2

declare void @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89), i32 noundef, ptr noundef, ...) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN18free_format_parser6HMpsFF12parseHessianERK15HighsLogOptionsRSiNS0_8ParsekeyE(ptr noundef nonnull align 8 dereferenceable(1104) %0, ptr noundef nonnull align 8 dereferenceable(89) %1, ptr noundef nonnull align 8 dereferenceable(16) %2, i32 noundef %3) local_unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i8, align 1
  %13 = alloca i64, align 8
  %14 = alloca i64, align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca i8, align 1
  %18 = alloca double, align 8
  %19 = alloca %"class.std::tuple", align 8
  %20 = alloca %"class.std::tuple", align 8
  %21 = icmp eq i32 %3, 10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  br i1 %21, label %.invoke, label %24

22:                                               ; preds = %.invoke
  %23 = landingpad { ptr, i32 }
          cleanup
  br label %146

24:                                               ; preds = %4
  %25 = icmp eq i32 %3, 11
  br i1 %25, label %.invoke, label %28

.invoke:                                          ; preds = %4, %24
  %26 = phi ptr [ @.str.88, %24 ], [ @.str.87, %4 ]
  %27 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull %26)
          to label %28 unwind label %22

28:                                               ; preds = %.invoke, %24
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #6
  %29 = getelementptr inbounds i8, ptr %0, i64 28
  %30 = getelementptr inbounds i8, ptr %0, i64 720
  br label %.backedge

.backedge:                                        ; preds = %.backedge.backedge, %28
  %31 = invoke noundef zeroext i1 @_ZN18free_format_parser6HMpsFF10getMpsLineERSiRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERb(ptr noundef nonnull align 8 dereferenceable(1104) %0, ptr noundef nonnull align 8 dereferenceable(16) %2, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %32 unwind label %36

32:                                               ; preds = %.backedge
  br i1 %31, label %33, label %.loopexit78

33:                                               ; preds = %32
  %34 = load i8, ptr %12, align 1, !tbaa !5, !range !9, !noundef !10
  %35 = trunc nuw i8 %34 to i1
  br i1 %35, label %.backedge.backedge, label %38

.backedge.backedge:                               ; preds = %33, %.thread56
  br label %.backedge, !llvm.loop !11

36:                                               ; preds = %38, %.backedge
  %37 = landingpad { ptr, i32 }
          cleanup
  br label %145

38:                                               ; preds = %33
  %39 = invoke noundef zeroext i1 @_ZN18free_format_parser6HMpsFF7timeoutEv(ptr noundef nonnull align 8 dereferenceable(1104) %0)
          to label %40 unwind label %36

40:                                               ; preds = %38
  br i1 %39, label %.loopexit78, label %41

41:                                               ; preds = %40
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #6
  store i64 0, ptr %13, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #6
  store i64 0, ptr %14, align 8, !tbaa !13
  %42 = invoke noundef i32 @_ZNK18free_format_parser6HMpsFF14checkFirstWordERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERmS8_S7_(ptr noundef nonnull align 8 dereferenceable(1104) %0, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %43 unwind label %.loopexit79

43:                                               ; preds = %41
  %.not = icmp eq i32 %42, 24
  br i1 %.not, label %46, label %44

44:                                               ; preds = %43
  %45 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %1, i32 noundef 1, ptr noundef nonnull @.str.181, ptr noundef %45)
          to label %.thread68 unwind label %.loopexit.split-lp80

.loopexit79:                                      ; preds = %41, %46
  %lpad.loopexit81 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit

.loopexit.split-lp80:                             ; preds = %44
  %lpad.loopexit.split-lp82 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit

46:                                               ; preds = %43
  %47 = invoke noundef i32 @_ZN18free_format_parser6HMpsFF9getColIdxERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(1104) %0, ptr noundef nonnull align 8 dereferenceable(32) %7, i1 noundef zeroext true)
          to label %48 unwind label %.loopexit79

48:                                               ; preds = %46
  store i32 %47, ptr %10, align 4, !tbaa !15
  %49 = icmp sgt i32 %47, -1
  %50 = load i32, ptr %29, align 4
  %51 = icmp slt i32 %47, %50
  %or.cond96 = select i1 %49, i1 %51, i1 false
  br i1 %or.cond96, label %.preheader.peel, label %.critedge

.preheader.peel:                                  ; preds = %48
  %52 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.10)
          to label %53 unwind label %.loopexit.loopexit.split-lp

53:                                               ; preds = %.preheader.peel
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #6
  %54 = load i64, ptr %14, align 8, !tbaa !13
  invoke void @_Z10first_wordRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef nonnull align 8 dereferenceable(32) %6, i64 noundef %54)
          to label %55 unwind label %.loopexit.split-lp142

55:                                               ; preds = %53
  %56 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #6
  %57 = load i64, ptr %14, align 8, !tbaa !13
  %58 = invoke noundef i64 @_Z14first_word_endRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(32) %6, i64 noundef %57)
          to label %59 unwind label %.loopexit.loopexit.split-lp

59:                                               ; preds = %55
  %60 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.10)
  br i1 %60, label %.thread56, label %61

61:                                               ; preds = %59
  %62 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str.10)
          to label %63 unwind label %.loopexit.loopexit.split-lp

63:                                               ; preds = %61
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #6
  invoke void @_Z10first_wordRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 8 dereferenceable(32) %6, i64 noundef %58)
          to label %64 unwind label %.loopexit.split-lp146

64:                                               ; preds = %63
  %65 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #6
  %66 = invoke noundef i64 @_Z14first_word_endRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(32) %6, i64 noundef %58)
          to label %67 unwind label %.loopexit.loopexit.split-lp

67:                                               ; preds = %64
  %68 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str.10)
  br i1 %68, label %.loopexit150, label %69

69:                                               ; preds = %67
  %70 = invoke noundef i32 @_ZN18free_format_parser6HMpsFF9getColIdxERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(1104) %0, ptr noundef nonnull align 8 dereferenceable(32) %8, i1 noundef zeroext true)
          to label %71 unwind label %.loopexit.loopexit.split-lp

71:                                               ; preds = %69
  store i32 %70, ptr %11, align 4, !tbaa !15
  %72 = icmp sgt i32 %70, -1
  %73 = load i32, ptr %29, align 4
  %74 = icmp slt i32 %70, %73
  %or.cond.peel = select i1 %72, i1 %74, i1 false
  br i1 %or.cond.peel, label %75, label %.critedge4

75:                                               ; preds = %71
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #6
  store i8 0, ptr %17, align 1, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #6
  %76 = invoke noundef double @_ZNK18free_format_parser6HMpsFF8getValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERbi(ptr noundef nonnull align 8 dereferenceable(1104) %0, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 1 dereferenceable(1) %17, i32 noundef -1)
          to label %77 unwind label %.loopexit73.loopexit.split-lp

77:                                               ; preds = %75
  store double %76, ptr %18, align 8, !tbaa !17
  %78 = load i8, ptr %17, align 1, !tbaa !5, !range !9, !noundef !10
  %79 = trunc nuw i8 %78 to i1
  br i1 %79, label %.loopexit154, label %80

80:                                               ; preds = %77
  %81 = fcmp une double %76, 0.000000e+00
  br i1 %81, label %82, label %90

82:                                               ; preds = %80
  br i1 %21, label %85, label %83

83:                                               ; preds = %82
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %20) #6
  call void @_ZSt10make_tupleIJRiS0_RdEESt5tupleIJDpNSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeEEEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::tuple") align 8 %20, ptr noundef nonnull align 4 dereferenceable(4) %11, ptr noundef nonnull align 4 dereferenceable(4) %10, ptr noundef nonnull align 8 dereferenceable(8) %18)
  invoke void @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %30, ptr noundef nonnull align 8 dereferenceable(16) %20)
          to label %84 unwind label %.loopexit.split-lp156

84:                                               ; preds = %83
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %20) #6
  br label %90

85:                                               ; preds = %82
  %86 = load i32, ptr %11, align 4, !tbaa !15
  %87 = load i32, ptr %10, align 4, !tbaa !15
  %.not43.peel = icmp slt i32 %86, %87
  br i1 %.not43.peel, label %90, label %88

88:                                               ; preds = %85
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %19) #6
  call void @_ZSt10make_tupleIJRiS0_RdEESt5tupleIJDpNSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeEEEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::tuple") align 8 %19, ptr noundef nonnull align 4 dereferenceable(4) %11, ptr noundef nonnull align 4 dereferenceable(4) %10, ptr noundef nonnull align 8 dereferenceable(8) %18)
  invoke void @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %30, ptr noundef nonnull align 8 dereferenceable(16) %19)
          to label %89 unwind label %.loopexit.split-lp161

89:                                               ; preds = %88
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #6
  br label %90

90:                                               ; preds = %89, %85, %84, %80
  store i64 %66, ptr %14, align 8, !tbaa !13
  %91 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  %.not72.peel.not = icmp eq i64 %66, %91
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #6
  br i1 %.not72.peel.not, label %.thread56, label %.preheader

.critedge:                                        ; preds = %48
  call void @__assert_fail(ptr noundef nonnull @.str.182, ptr noundef nonnull @.str.64, i32 noundef 1771, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN18free_format_parser6HMpsFF12parseHessianERK15HighsLogOptionsRSiNS0_8ParsekeyE) #7
  unreachable

.preheader:                                       ; preds = %90
  %92 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.10)
          to label %93 unwind label %.loopexit.loopexit

93:                                               ; preds = %.preheader
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #6
  %94 = load i64, ptr %14, align 8, !tbaa !13
  invoke void @_Z10first_wordRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef nonnull align 8 dereferenceable(32) %6, i64 noundef %94)
          to label %95 unwind label %.loopexit141

95:                                               ; preds = %93
  %96 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #6
  %97 = load i64, ptr %14, align 8, !tbaa !13
  %98 = invoke noundef i64 @_Z14first_word_endRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(32) %6, i64 noundef %97)
          to label %99 unwind label %.loopexit.loopexit

99:                                               ; preds = %95
  %100 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.10)
  br i1 %100, label %.thread56, label %102

.loopexit.loopexit:                               ; preds = %118, %105, %102, %95, %.preheader
  %lpad.loopexit139 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit

.loopexit.loopexit.split-lp:                      ; preds = %.preheader.peel, %55, %61, %64, %69
  %lpad.loopexit.split-lp140 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit

.loopexit.split-lp:                               ; preds = %.loopexit150, %111, %113
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit

.loopexit141:                                     ; preds = %93
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %101

.loopexit.split-lp142:                            ; preds = %53
  %lpad.loopexit.split-lp143 = landingpad { ptr, i32 }
          cleanup
  br label %101

101:                                              ; preds = %.loopexit.split-lp142, %.loopexit141
  %lpad.phi144 = phi { ptr, i32 } [ %lpad.loopexit, %.loopexit141 ], [ %lpad.loopexit.split-lp143, %.loopexit.split-lp142 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #6
  br label %.loopexit

102:                                              ; preds = %99
  %103 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str.10)
          to label %104 unwind label %.loopexit.loopexit

104:                                              ; preds = %102
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #6
  invoke void @_Z10first_wordRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 8 dereferenceable(32) %6, i64 noundef %98)
          to label %105 unwind label %.loopexit145

105:                                              ; preds = %104
  %106 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #6
  %107 = invoke noundef i64 @_Z14first_word_endRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(32) %6, i64 noundef %98)
          to label %108 unwind label %.loopexit.loopexit

108:                                              ; preds = %105
  %109 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str.10)
  br i1 %109, label %.loopexit150, label %118

.loopexit150:                                     ; preds = %67, %108
  %110 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_Z4trimRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) @_ZL17default_non_charsB5cxx11)
          to label %111 unwind label %.loopexit.split-lp

111:                                              ; preds = %.loopexit150
  %112 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_Z4trimRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) @_ZL17default_non_charsB5cxx11)
          to label %113 unwind label %.loopexit.split-lp

113:                                              ; preds = %111
  %114 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  %115 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %8) #6
  %116 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %7) #6
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %1, i32 noundef 5, ptr noundef nonnull @.str.183, ptr noundef %114, ptr noundef %115, ptr noundef %116)
          to label %.thread68 unwind label %.loopexit.split-lp

.loopexit145:                                     ; preds = %104
  %lpad.loopexit147 = landingpad { ptr, i32 }
          cleanup
  br label %117

.loopexit.split-lp146:                            ; preds = %63
  %lpad.loopexit.split-lp148 = landingpad { ptr, i32 }
          cleanup
  br label %117

117:                                              ; preds = %.loopexit.split-lp146, %.loopexit145
  %lpad.phi149 = phi { ptr, i32 } [ %lpad.loopexit147, %.loopexit145 ], [ %lpad.loopexit.split-lp148, %.loopexit.split-lp146 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #6
  br label %.loopexit

118:                                              ; preds = %108
  %119 = invoke noundef i32 @_ZN18free_format_parser6HMpsFF9getColIdxERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(1104) %0, ptr noundef nonnull align 8 dereferenceable(32) %8, i1 noundef zeroext true)
          to label %120 unwind label %.loopexit.loopexit

120:                                              ; preds = %118
  store i32 %119, ptr %11, align 4, !tbaa !15
  %121 = icmp sgt i32 %119, -1
  %122 = load i32, ptr %29, align 4
  %123 = icmp slt i32 %119, %122
  %or.cond = select i1 %121, i1 %123, i1 false
  br i1 %or.cond, label %124, label %.critedge4

.critedge4:                                       ; preds = %71, %120
  call void @__assert_fail(ptr noundef nonnull @.str.184, ptr noundef nonnull @.str.64, i32 noundef 1797, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN18free_format_parser6HMpsFF12parseHessianERK15HighsLogOptionsRSiNS0_8ParsekeyE) #7
  unreachable

124:                                              ; preds = %120
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #6
  store i8 0, ptr %17, align 1, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #6
  %125 = invoke noundef double @_ZNK18free_format_parser6HMpsFF8getValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERbi(ptr noundef nonnull align 8 dereferenceable(1104) %0, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 1 dereferenceable(1) %17, i32 noundef -1)
          to label %126 unwind label %.loopexit73.loopexit

126:                                              ; preds = %124
  store double %125, ptr %18, align 8, !tbaa !17
  %127 = load i8, ptr %17, align 1, !tbaa !5, !range !9, !noundef !10
  %128 = trunc nuw i8 %127 to i1
  br i1 %128, label %.loopexit154, label %131

.loopexit154:                                     ; preds = %77, %126
  %129 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %8) #6
  %130 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %7) #6
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %1, i32 noundef 5, ptr noundef nonnull @.str.185, ptr noundef %129, ptr noundef %130)
          to label %.thread unwind label %.loopexit.split-lp74

.thread:                                          ; preds = %.loopexit154
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #6
  br label %.thread68

.loopexit73.loopexit:                             ; preds = %124
  %lpad.loopexit151 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit73

.loopexit73.loopexit.split-lp:                    ; preds = %75
  %lpad.loopexit.split-lp152 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit73

.loopexit.split-lp74:                             ; preds = %.loopexit154
  %lpad.loopexit.split-lp76 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit73

131:                                              ; preds = %126
  %132 = fcmp une double %125, 0.000000e+00
  br i1 %132, label %133, label %143

133:                                              ; preds = %131
  br i1 %21, label %134, label %140

134:                                              ; preds = %133
  %135 = load i32, ptr %11, align 4, !tbaa !15
  %136 = load i32, ptr %10, align 4, !tbaa !15
  %.not43 = icmp slt i32 %135, %136
  br i1 %.not43, label %143, label %137

137:                                              ; preds = %134
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %19) #6
  call void @_ZSt10make_tupleIJRiS0_RdEESt5tupleIJDpNSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeEEEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::tuple") align 8 %19, ptr noundef nonnull align 4 dereferenceable(4) %11, ptr noundef nonnull align 4 dereferenceable(4) %10, ptr noundef nonnull align 8 dereferenceable(8) %18)
  invoke void @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %30, ptr noundef nonnull align 8 dereferenceable(16) %19)
          to label %138 unwind label %.loopexit160

138:                                              ; preds = %137
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #6
  br label %143

.loopexit160:                                     ; preds = %137
  %lpad.loopexit162 = landingpad { ptr, i32 }
          cleanup
  br label %139

.loopexit.split-lp161:                            ; preds = %88
  %lpad.loopexit.split-lp163 = landingpad { ptr, i32 }
          cleanup
  br label %139

139:                                              ; preds = %.loopexit.split-lp161, %.loopexit160
  %lpad.phi164 = phi { ptr, i32 } [ %lpad.loopexit162, %.loopexit160 ], [ %lpad.loopexit.split-lp163, %.loopexit.split-lp161 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #6
  br label %.loopexit73

140:                                              ; preds = %133
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %20) #6
  call void @_ZSt10make_tupleIJRiS0_RdEESt5tupleIJDpNSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeEEEDpOS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::tuple") align 8 %20, ptr noundef nonnull align 4 dereferenceable(4) %11, ptr noundef nonnull align 4 dereferenceable(4) %10, ptr noundef nonnull align 8 dereferenceable(8) %18)
  invoke void @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %30, ptr noundef nonnull align 8 dereferenceable(16) %20)
          to label %141 unwind label %.loopexit155

141:                                              ; preds = %140
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %20) #6
  br label %143

.loopexit155:                                     ; preds = %140
  %lpad.loopexit157 = landingpad { ptr, i32 }
          cleanup
  br label %142

.loopexit.split-lp156:                            ; preds = %83
  %lpad.loopexit.split-lp158 = landingpad { ptr, i32 }
          cleanup
  br label %142

142:                                              ; preds = %.loopexit.split-lp156, %.loopexit155
  %lpad.phi159 = phi { ptr, i32 } [ %lpad.loopexit157, %.loopexit155 ], [ %lpad.loopexit.split-lp158, %.loopexit.split-lp156 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %20) #6
  br label %.loopexit73

143:                                              ; preds = %131, %134, %138, %141
  store i64 %107, ptr %14, align 8, !tbaa !13
  %144 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #6
  br label %.thread56, !llvm.loop !19

.loopexit73:                                      ; preds = %.loopexit73.loopexit, %.loopexit73.loopexit.split-lp, %.loopexit.split-lp74, %142, %139
  %.pn = phi { ptr, i32 } [ %lpad.phi164, %139 ], [ %lpad.phi159, %142 ], [ %lpad.loopexit.split-lp76, %.loopexit.split-lp74 ], [ %lpad.loopexit151, %.loopexit73.loopexit ], [ %lpad.loopexit.split-lp152, %.loopexit73.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #6
  br label %.loopexit

.thread68:                                        ; preds = %44, %113, %.thread
  %.4.ph = phi i32 [ %42, %44 ], [ 26, %113 ], [ 26, %.thread ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #6
  br label %.loopexit78

.thread56:                                        ; preds = %99, %143, %90, %59
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #6
  br label %.backedge.backedge

.loopexit:                                        ; preds = %.loopexit.loopexit, %.loopexit.loopexit.split-lp, %.loopexit.split-lp, %.loopexit79, %.loopexit.split-lp80, %101, %117, %.loopexit73
  %.pn47 = phi { ptr, i32 } [ %.pn, %.loopexit73 ], [ %lpad.phi149, %117 ], [ %lpad.phi144, %101 ], [ %lpad.loopexit81, %.loopexit79 ], [ %lpad.loopexit.split-lp82, %.loopexit.split-lp80 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ], [ %lpad.loopexit139, %.loopexit.loopexit ], [ %lpad.loopexit.split-lp140, %.loopexit.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #6
  br label %145

.loopexit78:                                      ; preds = %32, %40, %.thread68
  %.5 = phi i32 [ %.4.ph, %.thread68 ], [ 26, %32 ], [ 29, %40 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #6
  ret i32 %.5

145:                                              ; preds = %.loopexit, %36
  %.pn47.pn = phi { ptr, i32 } [ %.pn47, %.loopexit ], [ %37, %36 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #6
  br label %146

146:                                              ; preds = %145, %22
  %.pn47.pn.pn = phi { ptr, i32 } [ %.pn47.pn, %145 ], [ %23, %22 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #6
  resume { ptr, i32 } %.pn47.pn.pn
}

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK18free_format_parser6HMpsFF14checkFirstWordERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERmS8_S7_(ptr noundef nonnull align 8 dereferenceable(1104), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 align 2

declare noundef i64 @_Z14first_word_endRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(32), i64 noundef) local_unnamed_addr #2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
declare noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN18free_format_parser6HMpsFF9getColIdxERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(1104), ptr noundef nonnull align 8 dereferenceable(32), i1 noundef zeroext) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1 align 2

declare void @_Z10first_wordRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), i64 noundef) local_unnamed_addr #2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorISt5tupleIJiidEESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNK18free_format_parser6HMpsFF8getValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERbi(ptr noundef nonnull align 8 dereferenceable(1104), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1), i32 noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZSt10make_tupleIJRiS0_RdEESt5tupleIJDpNSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeEEEDpOS5_(ptr dead_on_unwind noalias writable sret(%"class.std::tuple") align 8, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1

attributes #0 = { mustprogress 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 = { "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 = { noreturn nounwind "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 = { 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 = { nounwind }
attributes #7 = { noreturn 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 = !{!"bool", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{i8 0, i8 2}
!10 = !{}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = !{!14, !14, i64 0}
!14 = !{!"long", !7, i64 0}
!15 = !{!16, !16, i64 0}
!16 = !{!"int", !7, i64 0}
!17 = !{!18, !18, i64 0}
!18 = !{!"double", !7, i64 0}
!19 = distinct !{!19, !12, !20}
!20 = !{!"llvm.loop.peeled.count", i32 1}


; Effective O3 passes: ADCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,SROAPass,SimplifyCFGPass