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

; 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.anon.80 = type { ptr }
%class.anon.81 = type { ptr }
%"struct.std::__detail::_Node_iterator" = type { %"struct.std::__detail::_Node_iterator_base" }
%"struct.std::__detail::_Node_iterator_base" = type { ptr }
%"struct.std::_Bit_reference" = type { ptr, i64 }
%"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.173 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.174 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.175 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.176 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.177 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.178 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.179 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.180 = external hidden unnamed_addr constant [51 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_parser6HMpsFF11parseRangesERK15HighsLogOptionsRSi(ptr noundef nonnull align 8 dereferenceable(1104) %0, ptr noundef nonnull align 8 dereferenceable(89) %1, ptr noundef nonnull align 8 dereferenceable(16) %2) #3 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %class.anon.80, align 8
  %11 = alloca %class.anon.81, align 8
  %12 = alloca i8, align 1
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca i8, align 1
  %16 = alloca i64, align 8
  %17 = alloca i64, align 8
  %18 = alloca i64, align 8
  %19 = alloca i64, align 8
  %20 = alloca i32, align 4
  %21 = alloca i64, align 8
  %22 = alloca i64, align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca i64, align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"struct.std::__detail::_Node_iterator", align 8
  %30 = alloca %"struct.std::__detail::_Node_iterator", align 8
  %31 = alloca i8, align 1
  %32 = alloca double, align 8
  %33 = alloca %"struct.std::_Bit_reference", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca i64, align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"struct.std::__detail::_Node_iterator", align 8
  %38 = alloca %"struct.std::__detail::_Node_iterator", align 8
  %39 = alloca i8, align 1
  %40 = alloca double, align 8
  %41 = alloca %"struct.std::_Bit_reference", align 8
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store ptr %2, ptr %7, align 8, !tbaa !5
  %42 = load ptr, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr %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 %9) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #6
  %43 = getelementptr inbounds %class.anon.80, ptr %10, i32 0, i32 0
  store ptr %42, ptr %43, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #6
  %44 = getelementptr inbounds %class.anon.81, ptr %11, i32 0, i32 0
  store ptr %42, ptr %44, align 8, !tbaa !11
  %45 = getelementptr inbounds %"class.free_format_parser::HMpsFF", ptr %42, i32 0, i32 35
  %46 = getelementptr inbounds %"class.free_format_parser::HMpsFF", ptr %42, i32 0, i32 3
  %47 = load i32, ptr %46, align 8, !tbaa !13
  %48 = sext i32 %47 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #6
  store i8 0, ptr %12, align 1, !tbaa !81
  invoke void @_ZNSt6vectorIbSaIbEE6assignEmRKb(ptr noundef nonnull align 8 dereferenceable(40) %45, i64 noundef %48, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %49 unwind label %58

49:                                               ; preds = %3
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %15) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #6
  store i64 0, ptr %16, align 8, !tbaa !82
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #6
  store i64 1, ptr %17, align 8, !tbaa !82
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #6
  store i64 0, ptr %18, align 8, !tbaa !82
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #6
  store i64 1, ptr %19, align 8, !tbaa !82
  br label %50

50:                                               ; preds = %396, %57, %49
  %51 = load ptr, ptr %7, align 8, !tbaa !5
  %52 = invoke noundef zeroext i1 @_ZN18free_format_parser6HMpsFF10getMpsLineERSiRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERb(ptr noundef nonnull align 8 dereferenceable(1104) %42, ptr noundef nonnull align 8 dereferenceable(16) %51, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %53 unwind label %62

53:                                               ; preds = %50
  br i1 %52, label %54, label %401

54:                                               ; preds = %53
  %55 = load i8, ptr %15, align 1, !tbaa !81, !range !83, !noundef !84
  %56 = trunc i8 %55 to i1
  br i1 %56, label %57, label %66

57:                                               ; preds = %54
  br label %50, !llvm.loop !85

58:                                               ; preds = %3
  %59 = landingpad { ptr, i32 }
          cleanup
  %60 = extractvalue { ptr, i32 } %59, 0
  store ptr %60, ptr %13, align 8
  %61 = extractvalue { ptr, i32 } %59, 1
  store i32 %61, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #6
  br label %405

62:                                               ; preds = %66, %50
  %63 = landingpad { ptr, i32 }
          cleanup
  %64 = extractvalue { ptr, i32 } %63, 0
  store ptr %64, ptr %13, align 8
  %65 = extractvalue { ptr, i32 } %63, 1
  store i32 %65, ptr %14, align 4
  br label %404

66:                                               ; preds = %54
  %67 = invoke noundef zeroext i1 @_ZN18free_format_parser6HMpsFF7timeoutEv(ptr noundef nonnull align 8 dereferenceable(1104) %42)
          to label %68 unwind label %62

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

69:                                               ; preds = %68
  store i32 29, ptr %4, align 4
  store i32 1, ptr %20, align 4
  br label %402

70:                                               ; preds = %68
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #6
  %71 = invoke noundef i32 @_ZNK18free_format_parser6HMpsFF14checkFirstWordERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERmS8_S7_(ptr noundef nonnull align 8 dereferenceable(1104) %42, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(8) %22, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %72 unwind label %95

72:                                               ; preds = %70
  store i32 %71, ptr %24, align 4, !tbaa !87
  %73 = load i32, ptr %24, align 4, !tbaa !87
  %74 = icmp ne i32 %73, 24
  br i1 %74, label %75, label %103

75:                                               ; preds = %72
  %76 = load i64, ptr %16, align 8, !tbaa !82
  %77 = icmp ugt i64 %76, 0
  br i1 %77, label %81, label %78

78:                                               ; preds = %75
  %79 = load i64, ptr %18, align 8, !tbaa !82
  %80 = icmp ugt i64 %79, 0
  br label %81

81:                                               ; preds = %78, %75
  %82 = phi i1 [ true, %75 ], [ %80, %78 ]
  %83 = getelementptr inbounds %"class.free_format_parser::HMpsFF", ptr %42, i32 0, i32 1
  %84 = zext i1 %82 to i8
  store i8 %84, ptr %83, align 8, !tbaa !89
  %85 = getelementptr inbounds %"class.free_format_parser::HMpsFF", ptr %42, i32 0, i32 1
  %86 = load i8, ptr %85, align 8, !tbaa !89, !range !83, !noundef !84
  %87 = trunc i8 %86 to i1
  br i1 %87, label %88, label %99

88:                                               ; preds = %81
  %89 = load ptr, ptr %6, align 8, !tbaa !5
  %90 = load i64, ptr %16, align 8, !tbaa !82
  %91 = trunc i64 %90 to i32
  %92 = load i64, ptr %18, align 8, !tbaa !82
  %93 = trunc i64 %92 to i32
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %89, i32 noundef 4, ptr noundef @.str.173, i32 noundef %91, i32 noundef %93)
          to label %94 unwind label %95

94:                                               ; preds = %88
  br label %99

95:                                               ; preds = %99, %88, %70
  %96 = landingpad { ptr, i32 }
          cleanup
  %97 = extractvalue { ptr, i32 } %96, 0
  store ptr %97, ptr %13, align 8
  %98 = extractvalue { ptr, i32 } %96, 1
  store i32 %98, ptr %14, align 4
  br label %400

99:                                               ; preds = %94, %81
  %100 = load ptr, ptr %6, align 8, !tbaa !5
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %100, i32 noundef 1, ptr noundef @.str.174)
          to label %101 unwind label %95

101:                                              ; preds = %99
  %102 = load i32, ptr %24, align 4, !tbaa !87
  store i32 %102, ptr %4, align 4
  store i32 1, ptr %20, align 4
  br label %394

103:                                              ; preds = %72
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #6
  %104 = load i64, ptr %22, align 8, !tbaa !82
  invoke void @_Z10first_wordRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull align 8 dereferenceable(32) %8, i64 noundef %104)
          to label %105 unwind label %125

105:                                              ; preds = %103
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #6
  %106 = load i64, ptr %22, align 8, !tbaa !82
  %107 = invoke noundef i64 @_Z14first_word_endRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(32) %8, i64 noundef %106)
          to label %108 unwind label %129

108:                                              ; preds = %105
  store i64 %107, ptr %27, align 8, !tbaa !82
  %109 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef @.str.10)
          to label %110 unwind label %129

110:                                              ; preds = %108
  call void @llvm.lifetime.start.p0(i64 32, ptr %28) #6
  %111 = load i64, ptr %27, align 8, !tbaa !82
  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) %8, i64 noundef %111)
          to label %112 unwind label %133

112:                                              ; preds = %110
  %113 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %23, 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
  %114 = load i64, ptr %27, align 8, !tbaa !82
  %115 = invoke noundef i64 @_Z14first_word_endRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(32) %8, i64 noundef %114)
          to label %116 unwind label %129

116:                                              ; preds = %112
  store i64 %115, ptr %22, align 8, !tbaa !82
  %117 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef @.str.10)
          to label %118 unwind label %129

118:                                              ; preds = %116
  br i1 %117, label %119, label %137

119:                                              ; preds = %118
  %120 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_Z4trimRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(32) @_ZL17default_non_charsB5cxx11)
          to label %121 unwind label %129

121:                                              ; preds = %119
  %122 = load ptr, ptr %6, align 8, !tbaa !5
  %123 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %26) #6
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %122, i32 noundef 5, ptr noundef @.str.175, ptr noundef %123)
          to label %124 unwind label %129

124:                                              ; preds = %121
  store i32 26, ptr %4, align 4
  store i32 1, ptr %20, align 4
  br label %393

125:                                              ; preds = %103
  %126 = landingpad { ptr, i32 }
          cleanup
  %127 = extractvalue { ptr, i32 } %126, 0
  store ptr %127, ptr %13, align 8
  %128 = extractvalue { ptr, i32 } %126, 1
  store i32 %128, ptr %14, align 4
  br label %399

129:                                              ; preds = %121, %119, %116, %112, %108, %105
  %130 = landingpad { ptr, i32 }
          cleanup
  %131 = extractvalue { ptr, i32 } %130, 0
  store ptr %131, ptr %13, align 8
  %132 = extractvalue { ptr, i32 } %130, 1
  store i32 %132, ptr %14, align 4
  br label %398

133:                                              ; preds = %110
  %134 = landingpad { ptr, i32 }
          cleanup
  %135 = extractvalue { ptr, i32 } %134, 0
  store ptr %135, ptr %13, align 8
  %136 = extractvalue { ptr, i32 } %134, 1
  store i32 %136, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #6
  br label %398

137:                                              ; preds = %118
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #6
  %138 = getelementptr inbounds %"class.free_format_parser::HMpsFF", ptr %42, i32 0, i32 51
  %139 = invoke ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_iEEE4findERSB_(ptr noundef nonnull align 8 dereferenceable(56) %138, ptr noundef nonnull align 8 dereferenceable(32) %26)
          to label %140 unwind label %161

140:                                              ; preds = %137
  %141 = getelementptr inbounds %"struct.std::__detail::_Node_iterator", ptr %29, i32 0, i32 0
  %142 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %141, i32 0, i32 0
  store ptr %139, ptr %142, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #6
  %143 = getelementptr inbounds %"class.free_format_parser::HMpsFF", ptr %42, i32 0, i32 51
  %144 = call ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_iEEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %143) #6
  %145 = getelementptr inbounds %"struct.std::__detail::_Node_iterator", ptr %30, i32 0, i32 0
  %146 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %145, i32 0, i32 0
  store ptr %144, ptr %146, align 8
  %147 = call noundef zeroext i1 @_ZNSt8__detaileqERKNS_19_Node_iterator_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiELb1EEESC_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #6
  br i1 %147, label %148, label %166

148:                                              ; preds = %140
  %149 = load i64, ptr %16, align 8, !tbaa !82
  %150 = add i64 %149, 1
  store i64 %150, ptr %16, align 8, !tbaa !82
  %151 = load i64, ptr %16, align 8, !tbaa !82
  %152 = load i64, ptr %17, align 8, !tbaa !82
  %153 = urem i64 %151, %152
  %154 = icmp eq i64 %153, 0
  br i1 %154, label %155, label %165

155:                                              ; preds = %148
  %156 = load ptr, ptr %6, align 8, !tbaa !5
  %157 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %26) #6
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %156, i32 noundef 4, ptr noundef @.str.176, ptr noundef %157)
          to label %158 unwind label %161

158:                                              ; preds = %155
  %159 = load i64, ptr %17, align 8, !tbaa !82
  %160 = mul i64 %159, 2
  store i64 %160, ptr %17, align 8, !tbaa !82
  br label %165

161:                                              ; preds = %236, %177, %166, %155, %137
  %162 = landingpad { ptr, i32 }
          cleanup
  %163 = extractvalue { ptr, i32 } %162, 0
  store ptr %163, ptr %13, align 8
  %164 = extractvalue { ptr, i32 } %162, 1
  store i32 %164, ptr %14, align 4
  br label %397

165:                                              ; preds = %158, %148
  br label %236

166:                                              ; preds = %140
  invoke void @"_ZZN18free_format_parser6HMpsFF11parseRangesERK15HighsLogOptionsRSiENK3$_0clERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERi"(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 4 dereferenceable(4) %25)
          to label %167 unwind label %161

167:                                              ; preds = %166
  %168 = load i32, ptr %25, align 4, !tbaa !90
  %169 = icmp slt i32 %168, 0
  br i1 %169, label %170, label %184

170:                                              ; preds = %167
  %171 = load i64, ptr %16, align 8, !tbaa !82
  %172 = add i64 %171, 1
  store i64 %172, ptr %16, align 8, !tbaa !82
  %173 = load i64, ptr %16, align 8, !tbaa !82
  %174 = load i64, ptr %17, align 8, !tbaa !82
  %175 = urem i64 %173, %174
  %176 = icmp eq i64 %175, 0
  br i1 %176, label %177, label %183

177:                                              ; preds = %170
  %178 = load ptr, ptr %6, align 8, !tbaa !5
  %179 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %26) #6
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %178, i32 noundef 4, ptr noundef @.str.177, ptr noundef %179)
          to label %180 unwind label %161

180:                                              ; preds = %177
  %181 = load i64, ptr %17, align 8, !tbaa !82
  %182 = mul i64 %181, 2
  store i64 %182, ptr %17, align 8, !tbaa !82
  br label %183

183:                                              ; preds = %180, %170
  br label %235

184:                                              ; preds = %167
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #6
  store i8 0, ptr %31, align 1, !tbaa !81
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #6
  %185 = invoke noundef double @_ZNK18free_format_parser6HMpsFF8getValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERbi(ptr noundef nonnull align 8 dereferenceable(1104) %42, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull align 1 dereferenceable(1) %31, i32 noundef -1)
          to label %186 unwind label %211

186:                                              ; preds = %184
  store double %185, ptr %32, align 8, !tbaa !91
  call void @llvm.lifetime.start.p0(i64 16, ptr %33) #6
  %187 = getelementptr inbounds %"class.free_format_parser::HMpsFF", ptr %42, i32 0, i32 35
  %188 = load i32, ptr %25, align 4, !tbaa !90
  %189 = sext i32 %188 to i64
  %190 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %187, i64 noundef %189)
          to label %191 unwind label %215

191:                                              ; preds = %186
  %192 = getelementptr inbounds { ptr, i64 }, ptr %33, i32 0, i32 0
  %193 = extractvalue { ptr, i64 } %190, 0
  store ptr %193, ptr %192, align 8
  %194 = getelementptr inbounds { ptr, i64 }, ptr %33, i32 0, i32 1
  %195 = extractvalue { ptr, i64 } %190, 1
  store i64 %195, ptr %194, align 8
  %196 = call noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16) %33) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %33) #6
  br i1 %196, label %197, label %220

197:                                              ; preds = %191
  %198 = load i64, ptr %18, align 8, !tbaa !82
  %199 = add i64 %198, 1
  store i64 %199, ptr %18, align 8, !tbaa !82
  %200 = load i64, ptr %18, align 8, !tbaa !82
  %201 = load i64, ptr %19, align 8, !tbaa !82
  %202 = urem i64 %200, %201
  %203 = icmp eq i64 %202, 0
  br i1 %203, label %204, label %219

204:                                              ; preds = %197
  %205 = load ptr, ptr %6, align 8, !tbaa !5
  %206 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %26) #6
  %207 = load double, ptr %32, align 8, !tbaa !91
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %205, i32 noundef 4, ptr noundef @.str.178, ptr noundef %206, double noundef %207)
          to label %208 unwind label %211

208:                                              ; preds = %204
  %209 = load i64, ptr %19, align 8, !tbaa !82
  %210 = mul i64 %209, 2
  store i64 %210, ptr %19, align 8, !tbaa !82
  br label %219

211:                                              ; preds = %227, %223, %204, %184
  %212 = landingpad { ptr, i32 }
          cleanup
  %213 = extractvalue { ptr, i32 } %212, 0
  store ptr %213, ptr %13, align 8
  %214 = extractvalue { ptr, i32 } %212, 1
  store i32 %214, ptr %14, align 4
  br label %234

215:                                              ; preds = %186
  %216 = landingpad { ptr, i32 }
          cleanup
  %217 = extractvalue { ptr, i32 } %216, 0
  store ptr %217, ptr %13, align 8
  %218 = extractvalue { ptr, i32 } %216, 1
  store i32 %218, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %33) #6
  br label %234

219:                                              ; preds = %208, %197
  br label %230

220:                                              ; preds = %191
  %221 = load i8, ptr %31, align 1, !tbaa !81, !range !83, !noundef !84
  %222 = trunc i8 %221 to i1
  br i1 %222, label %223, label %227

223:                                              ; preds = %220
  %224 = load ptr, ptr %6, align 8, !tbaa !5
  %225 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %26) #6
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %224, i32 noundef 5, ptr noundef @.str.179, ptr noundef %225)
          to label %226 unwind label %211

226:                                              ; preds = %223
  store i32 26, ptr %4, align 4
  store i32 1, ptr %20, align 4
  br label %231

227:                                              ; preds = %220
  %228 = load double, ptr %32, align 8, !tbaa !91
  invoke void @"_ZZN18free_format_parser6HMpsFF11parseRangesERK15HighsLogOptionsRSiENK3$_1clEdRi"(ptr noundef nonnull align 8 dereferenceable(8) %11, double noundef %228, ptr noundef nonnull align 4 dereferenceable(4) %25)
          to label %229 unwind label %211

229:                                              ; preds = %227
  br label %230

230:                                              ; preds = %229, %219
  store i32 0, ptr %20, align 4
  br label %231

231:                                              ; preds = %230, %226
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #6
  %232 = load i32, ptr %20, align 4
  switch i32 %232, label %392 [
    i32 0, label %233
  ]

233:                                              ; preds = %231
  br label %235

234:                                              ; preds = %215, %211
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #6
  br label %397

235:                                              ; preds = %233, %183
  br label %236

236:                                              ; preds = %235, %165
  %237 = load i64, ptr %22, align 8, !tbaa !82
  %238 = invoke noundef zeroext i1 @_Z6is_endRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmRKS4_(ptr noundef nonnull align 8 dereferenceable(32) %8, i64 noundef %237, ptr noundef nonnull align 8 dereferenceable(32) @_ZL17default_non_charsB5cxx11)
          to label %239 unwind label %161

239:                                              ; preds = %236
  br i1 %238, label %391, label %240

240:                                              ; preds = %239
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #6
  %241 = load i64, ptr %22, align 8, !tbaa !82
  invoke void @_Z10first_wordRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %34, ptr noundef nonnull align 8 dereferenceable(32) %8, i64 noundef %241)
          to label %242 unwind label %262

242:                                              ; preds = %240
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #6
  %243 = load i64, ptr %22, align 8, !tbaa !82
  %244 = invoke noundef i64 @_Z14first_word_endRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(32) %8, i64 noundef %243)
          to label %245 unwind label %266

245:                                              ; preds = %242
  store i64 %244, ptr %35, align 8, !tbaa !82
  %246 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef @.str.10)
          to label %247 unwind label %266

247:                                              ; preds = %245
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #6
  %248 = load i64, ptr %35, align 8, !tbaa !82
  invoke void @_Z10first_wordRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef nonnull align 8 dereferenceable(32) %8, i64 noundef %248)
          to label %249 unwind label %270

249:                                              ; preds = %247
  %250 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull align 8 dereferenceable(32) %36) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #6
  %251 = load i64, ptr %35, align 8, !tbaa !82
  %252 = invoke noundef i64 @_Z14first_word_endRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(32) %8, i64 noundef %251)
          to label %253 unwind label %266

253:                                              ; preds = %249
  store i64 %252, ptr %22, align 8, !tbaa !82
  %254 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef @.str.10)
          to label %255 unwind label %266

255:                                              ; preds = %253
  br i1 %254, label %256, label %274

256:                                              ; preds = %255
  %257 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_Z4trimRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(32) @_ZL17default_non_charsB5cxx11)
          to label %258 unwind label %266

258:                                              ; preds = %256
  %259 = load ptr, ptr %6, align 8, !tbaa !5
  %260 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %34) #6
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %259, i32 noundef 5, ptr noundef @.str.175, ptr noundef %260)
          to label %261 unwind label %266

261:                                              ; preds = %258
  store i32 26, ptr %4, align 4
  store i32 1, ptr %20, align 4
  br label %385

262:                                              ; preds = %240
  %263 = landingpad { ptr, i32 }
          cleanup
  %264 = extractvalue { ptr, i32 } %263, 0
  store ptr %264, ptr %13, align 8
  %265 = extractvalue { ptr, i32 } %263, 1
  store i32 %265, ptr %14, align 4
  br label %390

266:                                              ; preds = %258, %256, %253, %249, %245, %242
  %267 = landingpad { ptr, i32 }
          cleanup
  %268 = extractvalue { ptr, i32 } %267, 0
  store ptr %268, ptr %13, align 8
  %269 = extractvalue { ptr, i32 } %267, 1
  store i32 %269, ptr %14, align 4
  br label %389

270:                                              ; preds = %247
  %271 = landingpad { ptr, i32 }
          cleanup
  %272 = extractvalue { ptr, i32 } %271, 0
  store ptr %272, ptr %13, align 8
  %273 = extractvalue { ptr, i32 } %271, 1
  store i32 %273, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #6
  br label %389

274:                                              ; preds = %255
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #6
  %275 = getelementptr inbounds %"class.free_format_parser::HMpsFF", ptr %42, i32 0, i32 51
  %276 = invoke ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_iEEE4findERSB_(ptr noundef nonnull align 8 dereferenceable(56) %275, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %277 unwind label %298

277:                                              ; preds = %274
  %278 = getelementptr inbounds %"struct.std::__detail::_Node_iterator", ptr %37, i32 0, i32 0
  %279 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %278, i32 0, i32 0
  store ptr %276, ptr %279, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #6
  %280 = getelementptr inbounds %"class.free_format_parser::HMpsFF", ptr %42, i32 0, i32 51
  %281 = call ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_iEEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %280) #6
  %282 = getelementptr inbounds %"struct.std::__detail::_Node_iterator", ptr %38, i32 0, i32 0
  %283 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %282, i32 0, i32 0
  store ptr %281, ptr %283, align 8
  %284 = call noundef zeroext i1 @_ZNSt8__detaileqERKNS_19_Node_iterator_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiELb1EEESC_(ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef nonnull align 8 dereferenceable(8) %38) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #6
  br i1 %284, label %285, label %303

285:                                              ; preds = %277
  %286 = load i64, ptr %16, align 8, !tbaa !82
  %287 = add i64 %286, 1
  store i64 %287, ptr %16, align 8, !tbaa !82
  %288 = load i64, ptr %16, align 8, !tbaa !82
  %289 = load i64, ptr %17, align 8, !tbaa !82
  %290 = urem i64 %288, %289
  %291 = icmp eq i64 %290, 0
  br i1 %291, label %292, label %302

292:                                              ; preds = %285
  %293 = load ptr, ptr %6, align 8, !tbaa !5
  %294 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %34) #6
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %293, i32 noundef 4, ptr noundef @.str.176, ptr noundef %294)
          to label %295 unwind label %298

295:                                              ; preds = %292
  %296 = load i64, ptr %17, align 8, !tbaa !82
  %297 = mul i64 %296, 2
  store i64 %297, ptr %17, align 8, !tbaa !82
  br label %302

298:                                              ; preds = %379, %377, %373, %314, %303, %292, %274
  %299 = landingpad { ptr, i32 }
          cleanup
  %300 = extractvalue { ptr, i32 } %299, 0
  store ptr %300, ptr %13, align 8
  %301 = extractvalue { ptr, i32 } %299, 1
  store i32 %301, ptr %14, align 4
  br label %388

302:                                              ; preds = %295, %285
  br label %373

303:                                              ; preds = %277
  invoke void @"_ZZN18free_format_parser6HMpsFF11parseRangesERK15HighsLogOptionsRSiENK3$_0clERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERi"(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 4 dereferenceable(4) %25)
          to label %304 unwind label %298

304:                                              ; preds = %303
  %305 = load i32, ptr %25, align 4, !tbaa !90
  %306 = icmp slt i32 %305, 0
  br i1 %306, label %307, label %321

307:                                              ; preds = %304
  %308 = load i64, ptr %16, align 8, !tbaa !82
  %309 = add i64 %308, 1
  store i64 %309, ptr %16, align 8, !tbaa !82
  %310 = load i64, ptr %16, align 8, !tbaa !82
  %311 = load i64, ptr %17, align 8, !tbaa !82
  %312 = urem i64 %310, %311
  %313 = icmp eq i64 %312, 0
  br i1 %313, label %314, label %320

314:                                              ; preds = %307
  %315 = load ptr, ptr %6, align 8, !tbaa !5
  %316 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %34) #6
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %315, i32 noundef 4, ptr noundef @.str.177, ptr noundef %316)
          to label %317 unwind label %298

317:                                              ; preds = %314
  %318 = load i64, ptr %17, align 8, !tbaa !82
  %319 = mul i64 %318, 2
  store i64 %319, ptr %17, align 8, !tbaa !82
  br label %320

320:                                              ; preds = %317, %307
  br label %372

321:                                              ; preds = %304
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #6
  store i8 0, ptr %39, align 1, !tbaa !81
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #6
  %322 = invoke noundef double @_ZNK18free_format_parser6HMpsFF8getValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERbi(ptr noundef nonnull align 8 dereferenceable(1104) %42, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull align 1 dereferenceable(1) %39, i32 noundef -1)
          to label %323 unwind label %348

323:                                              ; preds = %321
  store double %322, ptr %40, align 8, !tbaa !91
  call void @llvm.lifetime.start.p0(i64 16, ptr %41) #6
  %324 = getelementptr inbounds %"class.free_format_parser::HMpsFF", ptr %42, i32 0, i32 35
  %325 = load i32, ptr %25, align 4, !tbaa !90
  %326 = sext i32 %325 to i64
  %327 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %324, i64 noundef %326)
          to label %328 unwind label %352

328:                                              ; preds = %323
  %329 = getelementptr inbounds { ptr, i64 }, ptr %41, i32 0, i32 0
  %330 = extractvalue { ptr, i64 } %327, 0
  store ptr %330, ptr %329, align 8
  %331 = getelementptr inbounds { ptr, i64 }, ptr %41, i32 0, i32 1
  %332 = extractvalue { ptr, i64 } %327, 1
  store i64 %332, ptr %331, align 8
  %333 = call noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16) %41) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %41) #6
  br i1 %333, label %334, label %357

334:                                              ; preds = %328
  %335 = load i64, ptr %18, align 8, !tbaa !82
  %336 = add i64 %335, 1
  store i64 %336, ptr %18, align 8, !tbaa !82
  %337 = load i64, ptr %18, align 8, !tbaa !82
  %338 = load i64, ptr %19, align 8, !tbaa !82
  %339 = urem i64 %337, %338
  %340 = icmp eq i64 %339, 0
  br i1 %340, label %341, label %356

341:                                              ; preds = %334
  %342 = load ptr, ptr %6, align 8, !tbaa !5
  %343 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %34) #6
  %344 = load double, ptr %40, align 8, !tbaa !91
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %342, i32 noundef 4, ptr noundef @.str.178, ptr noundef %343, double noundef %344)
          to label %345 unwind label %348

345:                                              ; preds = %341
  %346 = load i64, ptr %19, align 8, !tbaa !82
  %347 = mul i64 %346, 2
  store i64 %347, ptr %19, align 8, !tbaa !82
  br label %356

348:                                              ; preds = %364, %360, %341, %321
  %349 = landingpad { ptr, i32 }
          cleanup
  %350 = extractvalue { ptr, i32 } %349, 0
  store ptr %350, ptr %13, align 8
  %351 = extractvalue { ptr, i32 } %349, 1
  store i32 %351, ptr %14, align 4
  br label %371

352:                                              ; preds = %323
  %353 = landingpad { ptr, i32 }
          cleanup
  %354 = extractvalue { ptr, i32 } %353, 0
  store ptr %354, ptr %13, align 8
  %355 = extractvalue { ptr, i32 } %353, 1
  store i32 %355, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %41) #6
  br label %371

356:                                              ; preds = %345, %334
  br label %367

357:                                              ; preds = %328
  %358 = load i8, ptr %39, align 1, !tbaa !81, !range !83, !noundef !84
  %359 = trunc i8 %358 to i1
  br i1 %359, label %360, label %364

360:                                              ; preds = %357
  %361 = load ptr, ptr %6, align 8, !tbaa !5
  %362 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %34) #6
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %361, i32 noundef 5, ptr noundef @.str.179, ptr noundef %362)
          to label %363 unwind label %348

363:                                              ; preds = %360
  store i32 26, ptr %4, align 4
  store i32 1, ptr %20, align 4
  br label %368

364:                                              ; preds = %357
  %365 = load double, ptr %40, align 8, !tbaa !91
  invoke void @"_ZZN18free_format_parser6HMpsFF11parseRangesERK15HighsLogOptionsRSiENK3$_1clEdRi"(ptr noundef nonnull align 8 dereferenceable(8) %11, double noundef %365, ptr noundef nonnull align 4 dereferenceable(4) %25)
          to label %366 unwind label %348

366:                                              ; preds = %364
  br label %367

367:                                              ; preds = %366, %356
  store i32 0, ptr %20, align 4
  br label %368

368:                                              ; preds = %367, %363
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #6
  %369 = load i32, ptr %20, align 4
  switch i32 %369, label %384 [
    i32 0, label %370
  ]

370:                                              ; preds = %368
  br label %372

371:                                              ; preds = %352, %348
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #6
  br label %388

372:                                              ; preds = %370, %320
  br label %373

373:                                              ; preds = %372, %302
  %374 = load i64, ptr %22, align 8, !tbaa !82
  %375 = invoke noundef zeroext i1 @_Z6is_endRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmRKS4_(ptr noundef nonnull align 8 dereferenceable(32) %8, i64 noundef %374, ptr noundef nonnull align 8 dereferenceable(32) @_ZL17default_non_charsB5cxx11)
          to label %376 unwind label %298

376:                                              ; preds = %373
  br i1 %375, label %383, label %377

377:                                              ; preds = %376
  %378 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_Z4trimRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(32) @_ZL17default_non_charsB5cxx11)
          to label %379 unwind label %298

379:                                              ; preds = %377
  %380 = load ptr, ptr %6, align 8, !tbaa !5
  %381 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %34) #6
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %380, i32 noundef 5, ptr noundef @.str.180, ptr noundef %381)
          to label %382 unwind label %298

382:                                              ; preds = %379
  store i32 26, ptr %4, align 4
  store i32 1, ptr %20, align 4
  br label %384

383:                                              ; preds = %376
  store i32 0, ptr %20, align 4
  br label %384

384:                                              ; preds = %383, %382, %368
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #6
  br label %385

385:                                              ; preds = %384, %261
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #6
  %386 = load i32, ptr %20, align 4
  switch i32 %386, label %392 [
    i32 0, label %387
  ]

387:                                              ; preds = %385
  br label %391

388:                                              ; preds = %371, %298
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #6
  br label %389

389:                                              ; preds = %388, %270, %266
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #6
  br label %390

390:                                              ; preds = %389, %262
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #6
  br label %397

391:                                              ; preds = %387, %239
  store i32 0, ptr %20, align 4
  br label %392

392:                                              ; preds = %391, %385, %231
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #6
  br label %393

393:                                              ; preds = %392, %124
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #6
  br label %394

394:                                              ; preds = %393, %101
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #6
  %395 = load i32, ptr %20, align 4
  switch i32 %395, label %402 [
    i32 0, label %396
  ]

396:                                              ; preds = %394
  br label %50, !llvm.loop !85

397:                                              ; preds = %390, %234, %161
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #6
  br label %398

398:                                              ; preds = %397, %133, %129
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #6
  br label %399

399:                                              ; preds = %398, %125
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #6
  br label %400

400:                                              ; preds = %399, %95
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #6
  br label %404

401:                                              ; preds = %53
  store i32 26, ptr %4, align 4
  store i32 1, ptr %20, align 4
  br label %402

402:                                              ; preds = %401, %394, %69
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %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 %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 %8) #6
  %403 = load i32, ptr %4, align 4
  ret i32 %403

404:                                              ; preds = %400, %62
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #6
  br label %405

405:                                              ; preds = %404, %58
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %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 %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 %8) #6
  br label %406

406:                                              ; preds = %405
  %407 = load ptr, ptr %13, align 8
  %408 = load i32, ptr %14, align 4
  %409 = insertvalue { ptr, i32 } poison, ptr %407, 0
  %410 = insertvalue { ptr, i32 } %409, i32 %408, 1
  resume { ptr, i32 } %410
}

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40), i64 noundef) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16)) #1 align 2

; 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) #4

declare noundef zeroext i1 @_Z6is_endRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmRKS4_(ptr noundef nonnull align 8 dereferenceable(32), i64 noundef, ptr noundef nonnull align 8 dereferenceable(32)) #2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_iEEE3endEv(ptr noundef nonnull align 8 dereferenceable(56)) #1 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 nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNSt8__detaileqERKNS_19_Node_iterator_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiELb1EEESC_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #1

; 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 uwtable
declare dso_local void @_ZNSt6vectorIbSaIbEE6assignEmRKb(ptr noundef nonnull align 8 dereferenceable(40), i64 noundef, ptr noundef nonnull align 1 dereferenceable(1)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN18free_format_parser6HMpsFF11parseRangesERK15HighsLogOptionsRSiENK3$_0clERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERi"(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 4 dereferenceable(4)) #5 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN18free_format_parser6HMpsFF11parseRangesERK15HighsLogOptionsRSiENK3$_1clEdRi"(ptr noundef nonnull align 8 dereferenceable(8), double noundef, ptr noundef nonnull align 4 dereferenceable(4)) #5 align 2

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


; 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.anon.80 = type { ptr }
%class.anon.81 = type { ptr }
%"struct.std::__detail::_Node_iterator" = type { %"struct.std::__detail::_Node_iterator_base" }
%"struct.std::__detail::_Node_iterator_base" = type { ptr }
%"struct.std::_Bit_reference" = type { ptr, 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.173 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.174 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.175 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.176 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.177 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.178 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.179 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.180 = external hidden unnamed_addr constant [51 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_parser6HMpsFF11parseRangesERK15HighsLogOptionsRSi(ptr noundef nonnull align 8 dereferenceable(1104) %0, ptr noundef nonnull align 8 dereferenceable(89) %1, ptr noundef nonnull align 8 dereferenceable(16) %2) local_unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %class.anon.80, align 8
  %7 = alloca %class.anon.81, align 8
  %8 = alloca i8, align 1
  %9 = alloca i8, align 1
  %10 = alloca i64, align 8
  %11 = alloca i64, align 8
  %12 = alloca %"class.std::__cxx11::basic_string", 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 %"struct.std::__detail::_Node_iterator", align 8
  %17 = alloca %"struct.std::__detail::_Node_iterator", align 8
  %18 = alloca i8, align 1
  %19 = alloca %"struct.std::_Bit_reference", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"struct.std::__detail::_Node_iterator", align 8
  %23 = alloca %"struct.std::__detail::_Node_iterator", align 8
  %24 = alloca i8, align 1
  %25 = alloca %"struct.std::_Bit_reference", align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #6
  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
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #6
  store ptr %0, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #6
  store ptr %0, ptr %7, align 8, !tbaa !10
  %26 = getelementptr inbounds i8, ptr %0, i64 568
  %27 = getelementptr inbounds i8, ptr %0, i64 24
  %28 = load i32, ptr %27, align 8, !tbaa !12
  %29 = sext i32 %28 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #6
  store i8 0, ptr %8, align 1, !tbaa !80
  invoke void @_ZNSt6vectorIbSaIbEE6assignEmRKb(ptr noundef nonnull align 8 dereferenceable(40) %26, i64 noundef %29, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %30 unwind label %40

30:                                               ; preds = %3
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #6
  %31 = getelementptr inbounds i8, ptr %0, i64 960
  %32 = getelementptr inbounds i8, ptr %19, i64 8
  %33 = getelementptr inbounds i8, ptr %25, i64 8
  br label %.outer

.outer:                                           ; preds = %235, %30
  %.0121.ph = phi i64 [ %.11132, %235 ], [ 0, %30 ]
  %.0109.ph = phi i64 [ %.11120, %235 ], [ 1, %30 ]
  %.093.ph = phi i64 [ %.7100, %235 ], [ 1, %30 ]
  %.084.ph = phi i64 [ %.791, %235 ], [ 0, %30 ]
  br label %34

34:                                               ; preds = %.outer, %37
  %35 = 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) %4, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %36 unwind label %.loopexit192

36:                                               ; preds = %34
  br i1 %35, label %37, label %.loopexit

37:                                               ; preds = %36
  %38 = load i8, ptr %9, align 1, !tbaa !80, !range !81, !noundef !82
  %39 = trunc nuw i8 %38 to i1
  br i1 %39, label %34, label %42, !llvm.loop !83

40:                                               ; preds = %3
  %41 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #6
  br label %241

.loopexit192:                                     ; preds = %34
  %lpad.loopexit194 = landingpad { ptr, i32 }
          cleanup
  br label %240

.loopexit.split-lp193:                            ; preds = %42
  %lpad.loopexit.split-lp195 = landingpad { ptr, i32 }
          cleanup
  br label %240

42:                                               ; preds = %37
  %43 = invoke noundef zeroext i1 @_ZN18free_format_parser6HMpsFF7timeoutEv(ptr noundef nonnull align 8 dereferenceable(1104) %0)
          to label %44 unwind label %.loopexit.split-lp193

44:                                               ; preds = %42
  br i1 %43, label %.loopexit, label %45

45:                                               ; preds = %44
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  %46 = 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) %4, ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %47 unwind label %.loopexit191

47:                                               ; preds = %45
  %.not = icmp eq i32 %46, 24
  br i1 %.not, label %58, label %48

48:                                               ; preds = %47
  %49 = icmp ne i64 %.084.ph, 0
  %50 = icmp ne i64 %.0121.ph, 0
  %51 = select i1 %49, i1 true, i1 %50
  %52 = getelementptr inbounds i8, ptr %0, i64 8
  %53 = zext i1 %51 to i8
  store i8 %53, ptr %52, align 8, !tbaa !85
  br i1 %51, label %54, label %57

54:                                               ; preds = %48
  %55 = trunc i64 %.084.ph to i32
  %56 = trunc i64 %.0121.ph to i32
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %1, i32 noundef 4, ptr noundef nonnull @.str.173, i32 noundef %55, i32 noundef %56)
          to label %57 unwind label %.loopexit.split-lp

.loopexit191:                                     ; preds = %45
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %239

.loopexit.split-lp:                               ; preds = %54, %57
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %239

57:                                               ; preds = %54, %48
  invoke void (ptr, i32, ptr, ...) @_Z11highsLogDevRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %1, i32 noundef 1, ptr noundef nonnull @.str.174)
          to label %.thread183 unwind label %.loopexit.split-lp

.thread183:                                       ; preds = %57
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #6
  br label %.loopexit

58:                                               ; preds = %47
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #6
  %59 = load i64, ptr %11, align 8, !tbaa !86
  invoke void @_Z10first_wordRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr noundef nonnull align 8 dereferenceable(32) %4, i64 noundef %59)
          to label %60 unwind label %75

60:                                               ; preds = %58
  %61 = load i64, ptr %11, align 8, !tbaa !86
  %62 = invoke noundef i64 @_Z14first_word_endRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(32) %4, i64 noundef %61)
          to label %63 unwind label %77

63:                                               ; preds = %60
  %64 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull @.str.10)
          to label %65 unwind label %77

65:                                               ; preds = %63
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #6
  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) %4, i64 noundef %62)
          to label %66 unwind label %79

66:                                               ; preds = %65
  %67 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, 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
  %68 = invoke noundef i64 @_Z14first_word_endRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(32) %4, i64 noundef %62)
          to label %69 unwind label %77

69:                                               ; preds = %66
  store i64 %68, ptr %11, align 8, !tbaa !86
  %70 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull @.str.10)
  br i1 %70, label %71, label %81

71:                                               ; preds = %69
  %72 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_Z4trimRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) @_ZL17default_non_charsB5cxx11)
          to label %73 unwind label %77

73:                                               ; preds = %71
  %74 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %1, i32 noundef 5, ptr noundef nonnull @.str.175, ptr noundef %74)
          to label %235 unwind label %77

75:                                               ; preds = %58
  %76 = landingpad { ptr, i32 }
          cleanup
  br label %238

77:                                               ; preds = %73, %71, %66, %63, %60
  %78 = landingpad { ptr, i32 }
          cleanup
  br label %237

79:                                               ; preds = %65
  %80 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #6
  br label %237

81:                                               ; preds = %69
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #6
  %82 = invoke ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_iEEE4findERSB_(ptr noundef nonnull align 8 dereferenceable(56) %31, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %83 unwind label %94

83:                                               ; preds = %81
  store ptr %82, ptr %16, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #6
  %84 = call ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_iEEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %31) #6
  store ptr %84, ptr %17, align 8
  %85 = call noundef zeroext i1 @_ZNSt8__detaileqERKNS_19_Node_iterator_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiELb1EEESC_(ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef nonnull align 8 dereferenceable(8) %17) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #6
  br i1 %85, label %86, label %96

86:                                               ; preds = %83
  %87 = add i64 %.084.ph, 1
  %88 = urem i64 %87, %.093.ph
  %89 = icmp eq i64 %88, 0
  br i1 %89, label %90, label %138

90:                                               ; preds = %86
  %91 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %1, i32 noundef 4, ptr noundef nonnull @.str.176, ptr noundef %91)
          to label %92 unwind label %94

92:                                               ; preds = %90
  %93 = shl i64 %.093.ph, 1
  br label %138

94:                                               ; preds = %138, %104, %96, %90, %81
  %95 = landingpad { ptr, i32 }
          cleanup
  br label %236

96:                                               ; preds = %83
  invoke void @"_ZZN18free_format_parser6HMpsFF11parseRangesERK15HighsLogOptionsRSiENK3$_0clERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERi"(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 4 dereferenceable(4) %13)
          to label %97 unwind label %94

97:                                               ; preds = %96
  %98 = load i32, ptr %13, align 4, !tbaa !87
  %99 = icmp slt i32 %98, 0
  br i1 %99, label %100, label %108

100:                                              ; preds = %97
  %101 = add i64 %.084.ph, 1
  %102 = urem i64 %101, %.093.ph
  %103 = icmp eq i64 %102, 0
  br i1 %103, label %104, label %138

104:                                              ; preds = %100
  %105 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %1, i32 noundef 4, ptr noundef nonnull @.str.177, ptr noundef %105)
          to label %106 unwind label %94

106:                                              ; preds = %104
  %107 = shl i64 %.093.ph, 1
  br label %138

108:                                              ; preds = %97
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %18) #6
  store i8 0, ptr %18, align 1, !tbaa !80
  %109 = invoke noundef double @_ZNK18free_format_parser6HMpsFF8getValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERbi(ptr noundef nonnull align 8 dereferenceable(1104) %0, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 1 dereferenceable(1) %18, i32 noundef -1)
          to label %110 unwind label %126

110:                                              ; preds = %108
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %19) #6
  %111 = load i32, ptr %13, align 4, !tbaa !87
  %112 = sext i32 %111 to i64
  %113 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %26, i64 noundef %112)
          to label %114 unwind label %128

114:                                              ; preds = %110
  %115 = extractvalue { ptr, i64 } %113, 0
  store ptr %115, ptr %19, align 8
  %116 = extractvalue { ptr, i64 } %113, 1
  store i64 %116, ptr %32, align 8
  %117 = call noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16) %19) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #6
  br i1 %117, label %118, label %130

118:                                              ; preds = %114
  %119 = add i64 %.0121.ph, 1
  %120 = urem i64 %119, %.0109.ph
  %121 = icmp eq i64 %120, 0
  br i1 %121, label %122, label %.thread

122:                                              ; preds = %118
  %123 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %1, i32 noundef 4, ptr noundef nonnull @.str.178, ptr noundef %123, double noundef %109)
          to label %124 unwind label %126

124:                                              ; preds = %122
  %125 = shl i64 %.0109.ph, 1
  br label %.thread

126:                                              ; preds = %135, %133, %122, %108
  %127 = landingpad { ptr, i32 }
          cleanup
  br label %137

128:                                              ; preds = %110
  %129 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #6
  br label %137

130:                                              ; preds = %114
  %131 = load i8, ptr %18, align 1, !tbaa !80, !range !81, !noundef !82
  %132 = trunc nuw i8 %131 to i1
  br i1 %132, label %133, label %135

133:                                              ; preds = %130
  %134 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %1, i32 noundef 5, ptr noundef nonnull @.str.179, ptr noundef %134)
          to label %136 unwind label %126

135:                                              ; preds = %130
  invoke void @"_ZZN18free_format_parser6HMpsFF11parseRangesERK15HighsLogOptionsRSiENK3$_1clEdRi"(ptr noundef nonnull align 8 dereferenceable(8) %7, double noundef %109, ptr noundef nonnull align 4 dereferenceable(4) %13)
          to label %.thread unwind label %126

.thread:                                          ; preds = %135, %118, %124
  %.2123.ph = phi i64 [ %.0121.ph, %135 ], [ %119, %118 ], [ %119, %124 ]
  %.2111.ph = phi i64 [ %.0109.ph, %135 ], [ %.0109.ph, %118 ], [ %125, %124 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #6
  br label %138

136:                                              ; preds = %133
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #6
  br label %234

137:                                              ; preds = %128, %126
  %.pn = phi { ptr, i32 } [ %127, %126 ], [ %129, %128 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #6
  br label %236

138:                                              ; preds = %.thread, %106, %100, %86, %92
  %.3124 = phi i64 [ %.0121.ph, %92 ], [ %.0121.ph, %86 ], [ %.0121.ph, %106 ], [ %.0121.ph, %100 ], [ %.2123.ph, %.thread ]
  %.3112 = phi i64 [ %.0109.ph, %92 ], [ %.0109.ph, %86 ], [ %.0109.ph, %106 ], [ %.0109.ph, %100 ], [ %.2111.ph, %.thread ]
  %.194 = phi i64 [ %93, %92 ], [ %.093.ph, %86 ], [ %107, %106 ], [ %.093.ph, %100 ], [ %.093.ph, %.thread ]
  %.185 = phi i64 [ %87, %92 ], [ %87, %86 ], [ %101, %106 ], [ %101, %100 ], [ %.084.ph, %.thread ]
  %139 = load i64, ptr %11, align 8, !tbaa !86
  %140 = invoke noundef zeroext i1 @_Z6is_endRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmRKS4_(ptr noundef nonnull align 8 dereferenceable(32) %4, i64 noundef %139, ptr noundef nonnull align 8 dereferenceable(32) @_ZL17default_non_charsB5cxx11)
          to label %141 unwind label %94

141:                                              ; preds = %138
  br i1 %140, label %234, label %142

142:                                              ; preds = %141
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #6
  %143 = load i64, ptr %11, align 8, !tbaa !86
  invoke void @_Z10first_wordRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %20, ptr noundef nonnull align 8 dereferenceable(32) %4, i64 noundef %143)
          to label %144 unwind label %159

144:                                              ; preds = %142
  %145 = load i64, ptr %11, align 8, !tbaa !86
  %146 = invoke noundef i64 @_Z14first_word_endRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(32) %4, i64 noundef %145)
          to label %147 unwind label %161

147:                                              ; preds = %144
  %148 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull @.str.10)
          to label %149 unwind label %161

149:                                              ; preds = %147
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #6
  invoke void @_Z10first_wordRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef nonnull align 8 dereferenceable(32) %4, i64 noundef %146)
          to label %150 unwind label %163

150:                                              ; preds = %149
  %151 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %21) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #6
  %152 = invoke noundef i64 @_Z14first_word_endRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEm(ptr noundef nonnull align 8 dereferenceable(32) %4, i64 noundef %146)
          to label %153 unwind label %161

153:                                              ; preds = %150
  store i64 %152, ptr %11, align 8, !tbaa !86
  %154 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull @.str.10)
  br i1 %154, label %155, label %165

155:                                              ; preds = %153
  %156 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_Z4trimRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 8 dereferenceable(32) @_ZL17default_non_charsB5cxx11)
          to label %157 unwind label %161

157:                                              ; preds = %155
  %158 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %1, i32 noundef 5, ptr noundef nonnull @.str.175, ptr noundef %158)
          to label %.thread161 unwind label %161

.thread161:                                       ; preds = %157
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #6
  br label %234

159:                                              ; preds = %142
  %160 = landingpad { ptr, i32 }
          cleanup
  br label %233

161:                                              ; preds = %157, %155, %150, %147, %144
  %162 = landingpad { ptr, i32 }
          cleanup
  br label %232

163:                                              ; preds = %149
  %164 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #6
  br label %232

165:                                              ; preds = %153
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #6
  %166 = invoke ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_iEEE4findERSB_(ptr noundef nonnull align 8 dereferenceable(56) %31, ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %167 unwind label %178

167:                                              ; preds = %165
  store ptr %166, ptr %22, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #6
  %168 = call ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_iEEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %31) #6
  store ptr %168, ptr %23, align 8
  %169 = call noundef zeroext i1 @_ZNSt8__detaileqERKNS_19_Node_iterator_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiELb1EEESC_(ptr noundef nonnull align 8 dereferenceable(8) %22, ptr noundef nonnull align 8 dereferenceable(8) %23) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #6
  br i1 %169, label %170, label %180

170:                                              ; preds = %167
  %171 = add i64 %.185, 1
  %172 = urem i64 %171, %.194
  %173 = icmp eq i64 %172, 0
  br i1 %173, label %174, label %222

174:                                              ; preds = %170
  %175 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %1, i32 noundef 4, ptr noundef nonnull @.str.176, ptr noundef %175)
          to label %176 unwind label %178

176:                                              ; preds = %174
  %177 = shl i64 %.194, 1
  br label %222

178:                                              ; preds = %228, %226, %222, %188, %180, %174, %165
  %179 = landingpad { ptr, i32 }
          cleanup
  br label %231

180:                                              ; preds = %167
  invoke void @"_ZZN18free_format_parser6HMpsFF11parseRangesERK15HighsLogOptionsRSiENK3$_0clERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERi"(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 4 dereferenceable(4) %13)
          to label %181 unwind label %178

181:                                              ; preds = %180
  %182 = load i32, ptr %13, align 4, !tbaa !87
  %183 = icmp slt i32 %182, 0
  br i1 %183, label %184, label %192

184:                                              ; preds = %181
  %185 = add i64 %.185, 1
  %186 = urem i64 %185, %.194
  %187 = icmp eq i64 %186, 0
  br i1 %187, label %188, label %222

188:                                              ; preds = %184
  %189 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %1, i32 noundef 4, ptr noundef nonnull @.str.177, ptr noundef %189)
          to label %190 unwind label %178

190:                                              ; preds = %188
  %191 = shl i64 %.194, 1
  br label %222

192:                                              ; preds = %181
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #6
  store i8 0, ptr %24, align 1, !tbaa !80
  %193 = invoke noundef double @_ZNK18free_format_parser6HMpsFF8getValueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERbi(ptr noundef nonnull align 8 dereferenceable(1104) %0, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 1 dereferenceable(1) %24, i32 noundef -1)
          to label %194 unwind label %210

194:                                              ; preds = %192
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %25) #6
  %195 = load i32, ptr %13, align 4, !tbaa !87
  %196 = sext i32 %195 to i64
  %197 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %26, i64 noundef %196)
          to label %198 unwind label %212

198:                                              ; preds = %194
  %199 = extractvalue { ptr, i64 } %197, 0
  store ptr %199, ptr %25, align 8
  %200 = extractvalue { ptr, i64 } %197, 1
  store i64 %200, ptr %33, align 8
  %201 = call noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16) %25) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %25) #6
  br i1 %201, label %202, label %214

202:                                              ; preds = %198
  %203 = add i64 %.3124, 1
  %204 = urem i64 %203, %.3112
  %205 = icmp eq i64 %204, 0
  br i1 %205, label %206, label %.thread156

206:                                              ; preds = %202
  %207 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %1, i32 noundef 4, ptr noundef nonnull @.str.178, ptr noundef %207, double noundef %193)
          to label %208 unwind label %210

208:                                              ; preds = %206
  %209 = shl i64 %.3112, 1
  br label %.thread156

210:                                              ; preds = %219, %217, %206, %192
  %211 = landingpad { ptr, i32 }
          cleanup
  br label %221

212:                                              ; preds = %194
  %213 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %25) #6
  br label %221

214:                                              ; preds = %198
  %215 = load i8, ptr %24, align 1, !tbaa !80, !range !81, !noundef !82
  %216 = trunc nuw i8 %215 to i1
  br i1 %216, label %217, label %219

217:                                              ; preds = %214
  %218 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %1, i32 noundef 5, ptr noundef nonnull @.str.179, ptr noundef %218)
          to label %220 unwind label %210

219:                                              ; preds = %214
  invoke void @"_ZZN18free_format_parser6HMpsFF11parseRangesERK15HighsLogOptionsRSiENK3$_1clEdRi"(ptr noundef nonnull align 8 dereferenceable(8) %7, double noundef %193, ptr noundef nonnull align 4 dereferenceable(4) %13)
          to label %.thread156 unwind label %210

.thread156:                                       ; preds = %219, %202, %208
  %.5126.ph = phi i64 [ %.3124, %219 ], [ %203, %202 ], [ %203, %208 ]
  %.5114.ph = phi i64 [ %.3112, %219 ], [ %.3112, %202 ], [ %209, %208 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #6
  br label %222

220:                                              ; preds = %217
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #6
  br label %.thread175

221:                                              ; preds = %212, %210
  %.pn136 = phi { ptr, i32 } [ %211, %210 ], [ %213, %212 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #6
  br label %231

222:                                              ; preds = %.thread156, %190, %184, %170, %176
  %.6127 = phi i64 [ %.3124, %176 ], [ %.3124, %170 ], [ %.3124, %190 ], [ %.3124, %184 ], [ %.5126.ph, %.thread156 ]
  %.6115 = phi i64 [ %.3112, %176 ], [ %.3112, %170 ], [ %.3112, %190 ], [ %.3112, %184 ], [ %.5114.ph, %.thread156 ]
  %.295 = phi i64 [ %177, %176 ], [ %.194, %170 ], [ %191, %190 ], [ %.194, %184 ], [ %.194, %.thread156 ]
  %.286 = phi i64 [ %171, %176 ], [ %171, %170 ], [ %185, %190 ], [ %185, %184 ], [ %.185, %.thread156 ]
  %223 = load i64, ptr %11, align 8, !tbaa !86
  %224 = invoke noundef zeroext i1 @_Z6is_endRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmRKS4_(ptr noundef nonnull align 8 dereferenceable(32) %4, i64 noundef %223, ptr noundef nonnull align 8 dereferenceable(32) @_ZL17default_non_charsB5cxx11)
          to label %225 unwind label %178

225:                                              ; preds = %222
  br i1 %224, label %230, label %226

226:                                              ; preds = %225
  %227 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_Z4trimRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 8 dereferenceable(32) @_ZL17default_non_charsB5cxx11)
          to label %228 unwind label %178

228:                                              ; preds = %226
  %229 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  invoke void (ptr, i32, ptr, ...) @_Z12highsLogUserRK15HighsLogOptions12HighsLogTypePKcz(ptr noundef nonnull align 8 dereferenceable(89) %1, i32 noundef 5, ptr noundef nonnull @.str.180, ptr noundef %229)
          to label %.thread175 unwind label %178

.thread175:                                       ; preds = %220, %228
  %.7128.ph = phi i64 [ %.6127, %228 ], [ %.3124, %220 ]
  %.7116.ph = phi i64 [ %.6115, %228 ], [ %.3112, %220 ]
  %.396.ph = phi i64 [ %.295, %228 ], [ %.194, %220 ]
  %.387.ph = phi i64 [ %.286, %228 ], [ %.185, %220 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #6
  br label %234

230:                                              ; preds = %225
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #6
  br label %234

231:                                              ; preds = %221, %178
  %.pn138 = phi { ptr, i32 } [ %179, %178 ], [ %.pn136, %221 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #6
  br label %232

232:                                              ; preds = %231, %163, %161
  %.pn140 = phi { ptr, i32 } [ %162, %161 ], [ %.pn138, %231 ], [ %164, %163 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  br label %233

233:                                              ; preds = %232, %159
  %.pn140.pn = phi { ptr, i32 } [ %.pn140, %232 ], [ %160, %159 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #6
  br label %236

234:                                              ; preds = %230, %.thread161, %.thread175, %136, %141
  %.10131 = phi i64 [ %.0121.ph, %136 ], [ %.3124, %141 ], [ %.6127, %230 ], [ %.3124, %.thread161 ], [ %.7128.ph, %.thread175 ]
  %.10119 = phi i64 [ %.0109.ph, %136 ], [ %.3112, %141 ], [ %.6115, %230 ], [ %.3112, %.thread161 ], [ %.7116.ph, %.thread175 ]
  %.4106 = phi i32 [ 1, %136 ], [ 0, %141 ], [ 0, %230 ], [ 1, %.thread161 ], [ 1, %.thread175 ]
  %.699 = phi i64 [ %.093.ph, %136 ], [ %.194, %141 ], [ %.295, %230 ], [ %.194, %.thread161 ], [ %.396.ph, %.thread175 ]
  %.690 = phi i64 [ %.084.ph, %136 ], [ %.185, %141 ], [ %.286, %230 ], [ %.185, %.thread161 ], [ %.387.ph, %.thread175 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #6
  br label %235

235:                                              ; preds = %234, %73
  %.11132 = phi i64 [ %.10131, %234 ], [ %.0121.ph, %73 ]
  %.11120 = phi i64 [ %.10119, %234 ], [ %.0109.ph, %73 ]
  %.5107 = phi i32 [ %.4106, %234 ], [ 1, %73 ]
  %.7100 = phi i64 [ %.699, %234 ], [ %.093.ph, %73 ]
  %.791 = phi i64 [ %.690, %234 ], [ %.084.ph, %73 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #6
  %cond1 = icmp eq i32 %.5107, 0
  br i1 %cond1, label %.outer, label %.loopexit, !llvm.loop !83

236:                                              ; preds = %233, %137, %94
  %.pn140.pn.pn = phi { ptr, i32 } [ %.pn140.pn, %233 ], [ %95, %94 ], [ %.pn, %137 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #6
  br label %237

237:                                              ; preds = %236, %79, %77
  %.pn144 = phi { ptr, i32 } [ %78, %77 ], [ %.pn140.pn.pn, %236 ], [ %80, %79 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  br label %238

238:                                              ; preds = %237, %75
  %.pn144.pn = phi { ptr, i32 } [ %.pn144, %237 ], [ %76, %75 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #6
  br label %239

239:                                              ; preds = %.loopexit191, %.loopexit.split-lp, %238
  %.pn147 = phi { ptr, i32 } [ %.pn144.pn, %238 ], [ %lpad.loopexit, %.loopexit191 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #6
  br label %240

.loopexit:                                        ; preds = %44, %235, %36, %.thread183
  %.11 = phi i32 [ %46, %.thread183 ], [ 26, %36 ], [ 26, %235 ], [ 29, %44 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 8, 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
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #6
  ret i32 %.11

240:                                              ; preds = %.loopexit192, %.loopexit.split-lp193, %239
  %.pn147.pn = phi { ptr, i32 } [ %.pn147, %239 ], [ %lpad.loopexit194, %.loopexit192 ], [ %lpad.loopexit.split-lp195, %.loopexit.split-lp193 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #6
  br label %241

241:                                              ; preds = %240, %40
  %.pn147.pn.pn = phi { ptr, i32 } [ %.pn147.pn, %240 ], [ %41, %40 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 8, 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
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #6
  resume { ptr, i32 } %.pn147.pn.pn
}

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40), i64 noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 align 2

; 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 #4

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_iEEE3endEv(ptr noundef nonnull align 8 dereferenceable(56)) local_unnamed_addr #1 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 nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNSt8__detaileqERKNS_19_Node_iterator_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiELb1EEESC_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1

; 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 uwtable
declare dso_local void @_ZNSt6vectorIbSaIbEE6assignEmRKb(ptr noundef nonnull align 8 dereferenceable(40), i64 noundef, ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN18free_format_parser6HMpsFF11parseRangesERK15HighsLogOptionsRSiENK3$_0clERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERi"(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN18free_format_parser6HMpsFF11parseRangesERK15HighsLogOptionsRSiENK3$_1clEdRi"(ptr noundef nonnull align 8 dereferenceable(8), double noundef, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #5 align 2

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 = { 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 #5 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind }

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

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


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