; LLVM IR from simbody/simbody :: SimTKmath/Optimizers/src/IpOpt (IpFilterLSAcceptor)

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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator.15" = type { i8 }
%"class.SimTKIpopt::FilterLSAcceptor" = type { %"class.SimTKIpopt::BacktrackingLSAcceptor.base", double, double, double, double, double, double, double, double, double, double, double, i32, double, double, i32, double, i8, i8, i32, i32, double, double, double, double, double, double, %"class.SimTKIpopt::Filter", double, i32, i32, %"class.SimTKIpopt::SmartPtr.13" }
%"class.SimTKIpopt::BacktrackingLSAcceptor.base" = type { %"class.SimTKIpopt::AlgorithmStrategyObject.base" }
%"class.SimTKIpopt::AlgorithmStrategyObject.base" = type <{ %"class.SimTKIpopt::ReferencedObject.base", [4 x i8], %"class.SimTKIpopt::SmartPtr.6", %"class.SimTKIpopt::SmartPtr.7", %"class.SimTKIpopt::SmartPtr.8", %"class.SimTKIpopt::SmartPtr.9", i8 }>
%"class.SimTKIpopt::ReferencedObject.base" = type <{ ptr, i32 }>
%"class.SimTKIpopt::SmartPtr.6" = type { ptr }
%"class.SimTKIpopt::SmartPtr.7" = type { ptr }
%"class.SimTKIpopt::SmartPtr.8" = type { ptr }
%"class.SimTKIpopt::SmartPtr.9" = type { ptr }
%"class.SimTKIpopt::Filter" = type { i32, %"class.std::__cxx11::list" }
%"class.std::__cxx11::list" = type { %"class.std::__cxx11::_List_base" }
%"class.std::__cxx11::_List_base" = type { %"struct.std::__cxx11::_List_base<SimTKIpopt::FilterEntry *, std::allocator<SimTKIpopt::FilterEntry *>>::_List_impl" }
%"struct.std::__cxx11::_List_base<SimTKIpopt::FilterEntry *, std::allocator<SimTKIpopt::FilterEntry *>>::_List_impl" = type { %"struct.std::__detail::_List_node_header" }
%"struct.std::__detail::_List_node_header" = type { %"struct.std::__detail::_List_node_base", i64 }
%"struct.std::__detail::_List_node_base" = type { ptr, ptr }
%"class.SimTKIpopt::SmartPtr.13" = type { ptr }

@.str.70 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [3 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 @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN10SimTKIpopt16FilterLSAcceptor7IsFtypeEd(ptr noundef nonnull align 8 dereferenceable(304), double noundef) #2 align 2

declare void @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40), i32 noundef, i32 noundef, ptr noundef, ...) #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49)) #2 align 2

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN10SimTKIpopt16FilterLSAcceptor30CheckAcceptabilityOfTrialPointEd(ptr noundef nonnull align 8 dereferenceable(304) %0, double noundef %1) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca i1, align 1
  %4 = alloca ptr, align 8
  %5 = alloca double, align 8
  %6 = alloca i8, align 1
  %7 = alloca double, align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::allocator.15", align 1
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca double, align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::allocator.15", align 1
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::allocator.15", align 1
  store ptr %0, ptr %4, align 8, !tbaa !5
  store double %1, ptr %5, align 8, !tbaa !9
  %18 = load ptr, ptr %4, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %6) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #5
  %19 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %18)
  %20 = call noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities26trial_constraint_violationEv(ptr noundef nonnull align 8 dereferenceable(2025) %19)
  store double %20, ptr %7, align 8, !tbaa !9
  %21 = getelementptr inbounds %"class.SimTKIpopt::FilterLSAcceptor", ptr %18, i32 0, i32 1
  %22 = load double, ptr %21, align 8, !tbaa !11
  %23 = fcmp olt double %22, 0.000000e+00
  br i1 %23, label %24, label %35

24:                                               ; preds = %2
  %25 = getelementptr inbounds %"class.SimTKIpopt::FilterLSAcceptor", ptr %18, i32 0, i32 2
  %26 = load double, ptr %25, align 8, !tbaa !31
  %27 = getelementptr inbounds %"class.SimTKIpopt::FilterLSAcceptor", ptr %18, i32 0, i32 21
  %28 = load double, ptr %27, align 8, !tbaa !32
  %29 = call noundef double @_ZN10SimTKIpopt3MaxEdd(double noundef 1.000000e+00, double noundef %28)
  %30 = fmul double %26, %29
  %31 = getelementptr inbounds %"class.SimTKIpopt::FilterLSAcceptor", ptr %18, i32 0, i32 1
  store double %30, ptr %31, align 8, !tbaa !11
  %32 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %18)
  %33 = getelementptr inbounds %"class.SimTKIpopt::FilterLSAcceptor", ptr %18, i32 0, i32 1
  %34 = load double, ptr %33, align 8, !tbaa !11
  call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %32, i32 noundef 5, i32 noundef 8, ptr noundef @.str.70, double noundef %34)
  br label %35

35:                                               ; preds = %24, %2
  %36 = getelementptr inbounds %"class.SimTKIpopt::FilterLSAcceptor", ptr %18, i32 0, i32 3
  %37 = load double, ptr %36, align 8, !tbaa !33
  %38 = fcmp olt double %37, 0.000000e+00
  br i1 %38, label %39, label %50

39:                                               ; preds = %35
  %40 = getelementptr inbounds %"class.SimTKIpopt::FilterLSAcceptor", ptr %18, i32 0, i32 4
  %41 = load double, ptr %40, align 8, !tbaa !34
  %42 = getelementptr inbounds %"class.SimTKIpopt::FilterLSAcceptor", ptr %18, i32 0, i32 21
  %43 = load double, ptr %42, align 8, !tbaa !32
  %44 = call noundef double @_ZN10SimTKIpopt3MaxEdd(double noundef 1.000000e+00, double noundef %43)
  %45 = fmul double %41, %44
  %46 = getelementptr inbounds %"class.SimTKIpopt::FilterLSAcceptor", ptr %18, i32 0, i32 3
  store double %45, ptr %46, align 8, !tbaa !33
  %47 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %18)
  %48 = getelementptr inbounds %"class.SimTKIpopt::FilterLSAcceptor", ptr %18, i32 0, i32 3
  %49 = load double, ptr %48, align 8, !tbaa !33
  call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %47, i32 noundef 5, i32 noundef 8, ptr noundef @.str.71, double noundef %49)
  br label %50

50:                                               ; preds = %39, %35
  %51 = getelementptr inbounds %"class.SimTKIpopt::FilterLSAcceptor", ptr %18, i32 0, i32 1
  %52 = load double, ptr %51, align 8, !tbaa !11
  %53 = fcmp ogt double %52, 0.000000e+00
  br i1 %53, label %54, label %76

54:                                               ; preds = %50
  %55 = load double, ptr %7, align 8, !tbaa !9
  %56 = getelementptr inbounds %"class.SimTKIpopt::FilterLSAcceptor", ptr %18, i32 0, i32 1
  %57 = load double, ptr %56, align 8, !tbaa !11
  %58 = fcmp ogt double %55, %57
  br i1 %58, label %59, label %76

59:                                               ; preds = %54
  %60 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %18)
  %61 = load double, ptr %7, align 8, !tbaa !9
  %62 = getelementptr inbounds %"class.SimTKIpopt::FilterLSAcceptor", ptr %18, i32 0, i32 1
  %63 = load double, ptr %62, align 8, !tbaa !11
  call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %60, i32 noundef 5, i32 noundef 8, ptr noundef @.str.72, double noundef %61, double noundef %63)
  %64 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %18)
  call void @llvm.lifetime.start.p0(i64 32, ptr %8) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef @.str.73, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %65 unwind label %67

65:                                               ; preds = %59
  invoke void @_ZN10SimTKIpopt9IpoptData18Append_info_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(864) %64, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %66 unwind label %71

66:                                               ; preds = %65
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #5
  store i1 false, ptr %3, align 1
  store i32 1, ptr %12, align 4
  br label %203

67:                                               ; preds = %59
  %68 = landingpad { ptr, i32 }
          cleanup
  %69 = extractvalue { ptr, i32 } %68, 0
  store ptr %69, ptr %10, align 8
  %70 = extractvalue { ptr, i32 } %68, 1
  store i32 %70, ptr %11, align 4
  br label %75

71:                                               ; preds = %65
  %72 = landingpad { ptr, i32 }
          cleanup
  %73 = extractvalue { ptr, i32 } %72, 0
  store ptr %73, ptr %10, align 8
  %74 = extractvalue { ptr, i32 } %72, 1
  store i32 %74, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #5
  br label %75

75:                                               ; preds = %71, %67
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #5
  br label %205

76:                                               ; preds = %54, %50
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #5
  %77 = call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %18)
  %78 = call noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities17trial_barrier_objEv(ptr noundef nonnull align 8 dereferenceable(2025) %77)
  store double %78, ptr %13, align 8, !tbaa !9
  %79 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %18)
  %80 = load double, ptr %5, align 8, !tbaa !9
  call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %79, i32 noundef 5, i32 noundef 8, ptr noundef @.str.74, double noundef %80)
  %81 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %18)
  %82 = load double, ptr %13, align 8, !tbaa !9
  %83 = getelementptr inbounds %"class.SimTKIpopt::FilterLSAcceptor", ptr %18, i32 0, i32 22
  %84 = load double, ptr %83, align 8, !tbaa !35
  call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %81, i32 noundef 5, i32 noundef 8, ptr noundef @.str.75, double noundef %82, double noundef %84)
  %85 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %18)
  %86 = load double, ptr %7, align 8, !tbaa !9
  %87 = getelementptr inbounds %"class.SimTKIpopt::FilterLSAcceptor", ptr %18, i32 0, i32 21
  %88 = load double, ptr %87, align 8, !tbaa !32
  call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %85, i32 noundef 5, i32 noundef 8, ptr noundef @.str.76, double noundef %86, double noundef %88)
  %89 = load double, ptr %5, align 8, !tbaa !9
  %90 = fcmp ogt double %89, 0.000000e+00
  br i1 %90, label %91, label %105

91:                                               ; preds = %76
  %92 = load double, ptr %5, align 8, !tbaa !9
  %93 = call noundef zeroext i1 @_ZN10SimTKIpopt16FilterLSAcceptor7IsFtypeEd(ptr noundef nonnull align 8 dereferenceable(304) %18, double noundef %92)
  br i1 %93, label %94, label %105

94:                                               ; preds = %91
  %95 = getelementptr inbounds %"class.SimTKIpopt::FilterLSAcceptor", ptr %18, i32 0, i32 21
  %96 = load double, ptr %95, align 8, !tbaa !32
  %97 = getelementptr inbounds %"class.SimTKIpopt::FilterLSAcceptor", ptr %18, i32 0, i32 3
  %98 = load double, ptr %97, align 8, !tbaa !33
  %99 = fcmp ole double %96, %98
  br i1 %99, label %100, label %105

100:                                              ; preds = %94
  %101 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %18)
  call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %101, i32 noundef 5, i32 noundef 8, ptr noundef @.str.77)
  %102 = load double, ptr %5, align 8, !tbaa !9
  %103 = call noundef zeroext i1 @_ZN10SimTKIpopt16FilterLSAcceptor11ArmijoHoldsEd(ptr noundef nonnull align 8 dereferenceable(304) %18, double noundef %102)
  %104 = zext i1 %103 to i8
  store i8 %104, ptr %6, align 1, !tbaa !36
  br label %111

105:                                              ; preds = %94, %91, %76
  %106 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %18)
  call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %106, i32 noundef 5, i32 noundef 8, ptr noundef @.str.78)
  %107 = load double, ptr %13, align 8, !tbaa !9
  %108 = load double, ptr %7, align 8, !tbaa !9
  %109 = call noundef zeroext i1 @_ZNK10SimTKIpopt16FilterLSAcceptor28IsAcceptableToCurrentIterateEddb(ptr noundef nonnull align 8 dereferenceable(304) %18, double noundef %107, double noundef %108, i1 noundef zeroext false)
  %110 = zext i1 %109 to i8
  store i8 %110, ptr %6, align 1, !tbaa !36
  br label %111

111:                                              ; preds = %105, %100
  %112 = load i8, ptr %6, align 1, !tbaa !36, !range !37, !noundef !38
  %113 = trunc i8 %112 to i1
  br i1 %113, label %119, label %114

114:                                              ; preds = %111
  %115 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %18)
  call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %115, i32 noundef 5, i32 noundef 8, ptr noundef @.str.79)
  %116 = getelementptr inbounds %"class.SimTKIpopt::FilterLSAcceptor", ptr %18, i32 0, i32 28
  store double 0.000000e+00, ptr %116, align 8, !tbaa !39
  %117 = load i8, ptr %6, align 1, !tbaa !36, !range !37, !noundef !38
  %118 = trunc i8 %117 to i1
  store i1 %118, ptr %3, align 1
  store i32 1, ptr %12, align 4
  br label %201

119:                                              ; preds = %111
  %120 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %18)
  call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %120, i32 noundef 5, i32 noundef 8, ptr noundef @.str.80)
  br label %121

121:                                              ; preds = %119
  %122 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %18)
  call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %122, i32 noundef 5, i32 noundef 8, ptr noundef @.str.81)
  %123 = load double, ptr %13, align 8, !tbaa !9
  %124 = load double, ptr %7, align 8, !tbaa !9
  %125 = call noundef zeroext i1 @_ZNK10SimTKIpopt16FilterLSAcceptor27IsAcceptableToCurrentFilterEdd(ptr noundef nonnull align 8 dereferenceable(304) %18, double noundef %123, double noundef %124)
  %126 = zext i1 %125 to i8
  store i8 %126, ptr %6, align 1, !tbaa !36
  %127 = load i8, ptr %6, align 1, !tbaa !36, !range !37, !noundef !38
  %128 = trunc i8 %127 to i1
  br i1 %128, label %134, label %129

129:                                              ; preds = %121
  %130 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %18)
  call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %130, i32 noundef 5, i32 noundef 8, ptr noundef @.str.79)
  %131 = getelementptr inbounds %"class.SimTKIpopt::FilterLSAcceptor", ptr %18, i32 0, i32 28
  store double 1.000000e+00, ptr %131, align 8, !tbaa !39
  %132 = load i8, ptr %6, align 1, !tbaa !36, !range !37, !noundef !38
  %133 = trunc i8 %132 to i1
  store i1 %133, ptr %3, align 1
  store i32 1, ptr %12, align 4
  br label %201

134:                                              ; preds = %121
  %135 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %18)
  call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %135, i32 noundef 5, i32 noundef 8, ptr noundef @.str.80)
  br label %136

136:                                              ; preds = %134
  %137 = getelementptr inbounds %"class.SimTKIpopt::FilterLSAcceptor", ptr %18, i32 0, i32 19
  %138 = load i32, ptr %137, align 4, !tbaa !40
  %139 = icmp sgt i32 %138, 0
  br i1 %139, label %140, label %197

140:                                              ; preds = %136
  %141 = getelementptr inbounds %"class.SimTKIpopt::FilterLSAcceptor", ptr %18, i32 0, i32 30
  %142 = load i32, ptr %141, align 4, !tbaa !41
  %143 = getelementptr inbounds %"class.SimTKIpopt::FilterLSAcceptor", ptr %18, i32 0, i32 19
  %144 = load i32, ptr %143, align 4, !tbaa !40
  %145 = icmp slt i32 %142, %144
  br i1 %145, label %146, label %182

146:                                              ; preds = %140
  %147 = getelementptr inbounds %"class.SimTKIpopt::FilterLSAcceptor", ptr %18, i32 0, i32 28
  %148 = load double, ptr %147, align 8, !tbaa !39
  %149 = fcmp une double %148, 0.000000e+00
  br i1 %149, label %150, label %179

150:                                              ; preds = %146
  %151 = getelementptr inbounds %"class.SimTKIpopt::FilterLSAcceptor", ptr %18, i32 0, i32 29
  %152 = load i32, ptr %151, align 8, !tbaa !42
  %153 = add nsw i32 %152, 1
  store i32 %153, ptr %151, align 8, !tbaa !42
  %154 = getelementptr inbounds %"class.SimTKIpopt::FilterLSAcceptor", ptr %18, i32 0, i32 29
  %155 = load i32, ptr %154, align 8, !tbaa !42
  %156 = getelementptr inbounds %"class.SimTKIpopt::FilterLSAcceptor", ptr %18, i32 0, i32 20
  %157 = load i32, ptr %156, align 8, !tbaa !43
  %158 = icmp sge i32 %155, %157
  br i1 %158, label %159, label %178

159:                                              ; preds = %150
  %160 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %18)
  %161 = getelementptr inbounds %"class.SimTKIpopt::FilterLSAcceptor", ptr %18, i32 0, i32 29
  %162 = load i32, ptr %161, align 8, !tbaa !42
  call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %160, i32 noundef 5, i32 noundef 8, ptr noundef @.str.82, i32 noundef %162)
  %163 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %18)
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %15) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.83, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %164 unwind label %169

164:                                              ; preds = %159
  invoke void @_ZN10SimTKIpopt9IpoptData18Append_info_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(864) %163, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %165 unwind label %173

165:                                              ; preds = %164
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #5
  %166 = load ptr, ptr %18, align 8, !tbaa !44
  %167 = getelementptr inbounds ptr, ptr %166, i64 3
  %168 = load ptr, ptr %167, align 8
  call void %168(ptr noundef nonnull align 8 dereferenceable(304) %18)
  br label %178

169:                                              ; preds = %159
  %170 = landingpad { ptr, i32 }
          cleanup
  %171 = extractvalue { ptr, i32 } %170, 0
  store ptr %171, ptr %10, align 8
  %172 = extractvalue { ptr, i32 } %170, 1
  store i32 %172, ptr %11, align 4
  br label %177

173:                                              ; preds = %164
  %174 = landingpad { ptr, i32 }
          cleanup
  %175 = extractvalue { ptr, i32 } %174, 0
  store ptr %175, ptr %10, align 8
  %176 = extractvalue { ptr, i32 } %174, 1
  store i32 %176, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #5
  br label %177

177:                                              ; preds = %173, %169
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #5
  br label %202

178:                                              ; preds = %165, %150
  br label %181

179:                                              ; preds = %146
  %180 = getelementptr inbounds %"class.SimTKIpopt::FilterLSAcceptor", ptr %18, i32 0, i32 29
  store i32 0, ptr %180, align 8, !tbaa !42
  br label %181

181:                                              ; preds = %179, %178
  br label %196

182:                                              ; preds = %140
  %183 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %18)
  call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %183, i32 noundef 5, i32 noundef 8, ptr noundef @.str.84)
  %184 = call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %18)
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef @.str.85, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %185 unwind label %187

185:                                              ; preds = %182
  invoke void @_ZN10SimTKIpopt9IpoptData18Append_info_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(864) %184, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %186 unwind label %191

186:                                              ; preds = %185
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #5
  br label %196

187:                                              ; preds = %182
  %188 = landingpad { ptr, i32 }
          cleanup
  %189 = extractvalue { ptr, i32 } %188, 0
  store ptr %189, ptr %10, align 8
  %190 = extractvalue { ptr, i32 } %188, 1
  store i32 %190, ptr %11, align 4
  br label %195

191:                                              ; preds = %185
  %192 = landingpad { ptr, i32 }
          cleanup
  %193 = extractvalue { ptr, i32 } %192, 0
  store ptr %193, ptr %10, align 8
  %194 = extractvalue { ptr, i32 } %192, 1
  store i32 %194, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #5
  br label %195

195:                                              ; preds = %191, %187
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #5
  br label %202

196:                                              ; preds = %186, %181
  br label %197

197:                                              ; preds = %196, %136
  %198 = getelementptr inbounds %"class.SimTKIpopt::FilterLSAcceptor", ptr %18, i32 0, i32 28
  store double 0.000000e+00, ptr %198, align 8, !tbaa !39
  %199 = load i8, ptr %6, align 1, !tbaa !36, !range !37, !noundef !38
  %200 = trunc i8 %199 to i1
  store i1 %200, ptr %3, align 1
  store i32 1, ptr %12, align 4
  br label %201

201:                                              ; preds = %197, %129, %114
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #5
  br label %203

202:                                              ; preds = %195, %177
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #5
  br label %205

203:                                              ; preds = %201, %66
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %6) #5
  %204 = load i1, ptr %3, align 1
  ret i1 %204

205:                                              ; preds = %202, %75
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %6) #5
  br label %206

206:                                              ; preds = %205
  %207 = load ptr, ptr %10, align 8
  %208 = load i32, ptr %11, align 4
  %209 = insertvalue { ptr, i32 } poison, ptr %207, 0
  %210 = insertvalue { ptr, i32 } %209, i32 %208, 1
  resume { ptr, i32 } %210
}

declare noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities26trial_constraint_violationEv(ptr noundef nonnull align 8 dereferenceable(2025)) #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZN10SimTKIpopt3MaxEdd(double noundef, double noundef) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt9IpoptData18Append_info_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(864), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

declare noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities17trial_barrier_objEv(ptr noundef nonnull align 8 dereferenceable(2025)) #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN10SimTKIpopt16FilterLSAcceptor11ArmijoHoldsEd(ptr noundef nonnull align 8 dereferenceable(304), double noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK10SimTKIpopt16FilterLSAcceptor28IsAcceptableToCurrentIterateEddb(ptr noundef nonnull align 8 dereferenceable(304), double noundef, double noundef, i1 noundef zeroext) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK10SimTKIpopt16FilterLSAcceptor27IsAcceptableToCurrentFilterEdd(ptr noundef nonnull align 8 dereferenceable(304), double noundef, double noundef) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 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 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"double", !7, i64 0}
!11 = !{!12, !10, i64 56}
!12 = !{!"_ZTSN10SimTKIpopt16FilterLSAcceptorE", !13, i64 0, !10, i64 56, !10, i64 64, !10, i64 72, !10, i64 80, !10, i64 88, !10, i64 96, !10, i64 104, !10, i64 112, !10, i64 120, !10, i64 128, !10, i64 136, !16, i64 144, !10, i64 152, !10, i64 160, !22, i64 168, !10, i64 176, !21, i64 184, !21, i64 185, !16, i64 188, !16, i64 192, !10, i64 200, !10, i64 208, !10, i64 216, !10, i64 224, !10, i64 232, !10, i64 240, !23, i64 248, !10, i64 280, !16, i64 288, !16, i64 292, !30, i64 296}
!13 = !{!"_ZTSN10SimTKIpopt22BacktrackingLSAcceptorE", !14, i64 0}
!14 = !{!"_ZTSN10SimTKIpopt23AlgorithmStrategyObjectE", !15, i64 0, !17, i64 16, !18, i64 24, !19, i64 32, !20, i64 40, !21, i64 48}
!15 = !{!"_ZTSN10SimTKIpopt16ReferencedObjectE", !16, i64 8}
!16 = !{!"int", !7, i64 0}
!17 = !{!"_ZTSN10SimTKIpopt8SmartPtrIKNS_10JournalistEEE", !6, i64 0}
!18 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_8IpoptNLPEEE", !6, i64 0}
!19 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_9IpoptDataEEE", !6, i64 0}
!20 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEE", !6, i64 0}
!21 = !{!"bool", !7, i64 0}
!22 = !{!"_ZTSN10SimTKIpopt16FilterLSAcceptor17CorrectorTypeEnumE", !7, i64 0}
!23 = !{!"_ZTSN10SimTKIpopt6FilterE", !16, i64 0, !24, i64 8}
!24 = !{!"_ZTSNSt7__cxx114listIPN10SimTKIpopt11FilterEntryESaIS3_EEE", !25, i64 0}
!25 = !{!"_ZTSNSt7__cxx1110_List_baseIPN10SimTKIpopt11FilterEntryESaIS3_EEE", !26, i64 0}
!26 = !{!"_ZTSNSt7__cxx1110_List_baseIPN10SimTKIpopt11FilterEntryESaIS3_EE10_List_implE", !27, i64 0}
!27 = !{!"_ZTSNSt8__detail17_List_node_headerE", !28, i64 0, !29, i64 16}
!28 = !{!"_ZTSNSt8__detail15_List_node_baseE", !6, i64 0, !6, i64 8}
!29 = !{!"long", !7, i64 0}
!30 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_14PDSystemSolverEEE", !6, i64 0}
!31 = !{!12, !10, i64 64}
!32 = !{!12, !10, i64 200}
!33 = !{!12, !10, i64 72}
!34 = !{!12, !10, i64 80}
!35 = !{!12, !10, i64 208}
!36 = !{!21, !21, i64 0}
!37 = !{i8 0, i8 2}
!38 = !{}
!39 = !{!12, !10, i64 280}
!40 = !{!12, !16, i64 188}
!41 = !{!12, !16, i64 292}
!42 = !{!12, !16, i64 288}
!43 = !{!12, !16, i64 192}
!44 = !{!45, !45, i64 0}
!45 = !{!"vtable pointer", !8, 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.std::allocator.15" = type { i8 }

@.str.70 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [3 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 @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN10SimTKIpopt16FilterLSAcceptor7IsFtypeEd(ptr noundef nonnull align 8 dereferenceable(304), double noundef) local_unnamed_addr #2 align 2

declare void @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40), i32 noundef, i32 noundef, ptr noundef, ...) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN10SimTKIpopt16FilterLSAcceptor30CheckAcceptabilityOfTrialPointEd(ptr noundef nonnull align 8 dereferenceable(304) %0, double noundef %1) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca %"class.std::__cxx11::basic_string", align 8
  %4 = alloca %"class.std::allocator.15", align 1
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::allocator.15", align 1
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::allocator.15", align 1
  %9 = tail call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %10 = tail call noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities26trial_constraint_violationEv(ptr noundef nonnull align 8 dereferenceable(2025) %9)
  %11 = getelementptr inbounds i8, ptr %0, i64 56
  %12 = load double, ptr %11, align 8, !tbaa !5
  %13 = fcmp olt double %12, 0.000000e+00
  br i1 %13, label %14, label %23

14:                                               ; preds = %2
  %15 = getelementptr inbounds i8, ptr %0, i64 64
  %16 = load double, ptr %15, align 8, !tbaa !29
  %17 = getelementptr inbounds i8, ptr %0, i64 200
  %18 = load double, ptr %17, align 8, !tbaa !30
  %19 = tail call noundef double @_ZN10SimTKIpopt3MaxEdd(double noundef 1.000000e+00, double noundef %18)
  %20 = fmul double %16, %19
  store double %20, ptr %11, align 8, !tbaa !5
  %21 = tail call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %22 = load double, ptr %11, align 8, !tbaa !5
  tail call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %21, i32 noundef 5, i32 noundef 8, ptr noundef nonnull @.str.70, double noundef %22)
  br label %23

23:                                               ; preds = %14, %2
  %24 = getelementptr inbounds i8, ptr %0, i64 72
  %25 = load double, ptr %24, align 8, !tbaa !31
  %26 = fcmp olt double %25, 0.000000e+00
  br i1 %26, label %27, label %36

27:                                               ; preds = %23
  %28 = getelementptr inbounds i8, ptr %0, i64 80
  %29 = load double, ptr %28, align 8, !tbaa !32
  %30 = getelementptr inbounds i8, ptr %0, i64 200
  %31 = load double, ptr %30, align 8, !tbaa !30
  %32 = tail call noundef double @_ZN10SimTKIpopt3MaxEdd(double noundef 1.000000e+00, double noundef %31)
  %33 = fmul double %29, %32
  store double %33, ptr %24, align 8, !tbaa !31
  %34 = tail call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %35 = load double, ptr %24, align 8, !tbaa !31
  tail call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %34, i32 noundef 5, i32 noundef 8, ptr noundef nonnull @.str.71, double noundef %35)
  br label %36

36:                                               ; preds = %27, %23
  %37 = load double, ptr %11, align 8, !tbaa !5
  %38 = fcmp ogt double %37, 0.000000e+00
  %39 = fcmp ogt double %10, %37
  %or.cond = and i1 %38, %39
  br i1 %or.cond, label %40, label %51

40:                                               ; preds = %36
  %41 = tail call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %42 = load double, ptr %11, align 8, !tbaa !5
  tail call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %41, i32 noundef 5, i32 noundef 8, ptr noundef nonnull @.str.72, double noundef %10, double noundef %42)
  %43 = tail call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %4) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull @.str.73, ptr noundef nonnull align 1 dereferenceable(1) %4)
          to label %44 unwind label %46

44:                                               ; preds = %40
  invoke void @_ZN10SimTKIpopt9IpoptData18Append_info_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(864) %43, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %45 unwind label %48

45:                                               ; preds = %44
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #5
  br label %129

46:                                               ; preds = %40
  %47 = landingpad { ptr, i32 }
          cleanup
  br label %50

48:                                               ; preds = %44
  %49 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #5
  br label %50

50:                                               ; preds = %48, %46
  %.pn38 = phi { ptr, i32 } [ %49, %48 ], [ %47, %46 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #5
  br label %130

51:                                               ; preds = %36
  %52 = tail call noundef nonnull align 8 dereferenceable(2025) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject4IpCqEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %53 = tail call noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities17trial_barrier_objEv(ptr noundef nonnull align 8 dereferenceable(2025) %52)
  %54 = tail call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  tail call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %54, i32 noundef 5, i32 noundef 8, ptr noundef nonnull @.str.74, double noundef %1)
  %55 = tail call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %56 = getelementptr inbounds i8, ptr %0, i64 208
  %57 = load double, ptr %56, align 8, !tbaa !33
  tail call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %55, i32 noundef 5, i32 noundef 8, ptr noundef nonnull @.str.75, double noundef %53, double noundef %57)
  %58 = tail call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %59 = getelementptr inbounds i8, ptr %0, i64 200
  %60 = load double, ptr %59, align 8, !tbaa !30
  tail call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %58, i32 noundef 5, i32 noundef 8, ptr noundef nonnull @.str.76, double noundef %10, double noundef %60)
  %61 = fcmp ogt double %1, 0.000000e+00
  br i1 %61, label %62, label %71

62:                                               ; preds = %51
  %63 = tail call noundef zeroext i1 @_ZN10SimTKIpopt16FilterLSAcceptor7IsFtypeEd(ptr noundef nonnull align 8 dereferenceable(304) %0, double noundef %1)
  br i1 %63, label %64, label %71

64:                                               ; preds = %62
  %65 = load double, ptr %59, align 8, !tbaa !30
  %66 = load double, ptr %24, align 8, !tbaa !31
  %67 = fcmp ugt double %65, %66
  br i1 %67, label %71, label %68

68:                                               ; preds = %64
  %69 = tail call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  tail call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %69, i32 noundef 5, i32 noundef 8, ptr noundef nonnull @.str.77)
  %70 = tail call noundef zeroext i1 @_ZN10SimTKIpopt16FilterLSAcceptor11ArmijoHoldsEd(ptr noundef nonnull align 8 dereferenceable(304) %0, double noundef %1)
  br i1 %70, label %77, label %74

71:                                               ; preds = %51, %62, %64
  %72 = tail call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  tail call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %72, i32 noundef 5, i32 noundef 8, ptr noundef nonnull @.str.78)
  %73 = tail call noundef zeroext i1 @_ZNK10SimTKIpopt16FilterLSAcceptor28IsAcceptableToCurrentIterateEddb(ptr noundef nonnull align 8 dereferenceable(304) %0, double noundef %53, double noundef %10, i1 noundef zeroext false)
  br i1 %73, label %77, label %74

74:                                               ; preds = %68, %71
  %75 = tail call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  tail call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %75, i32 noundef 5, i32 noundef 8, ptr noundef nonnull @.str.79)
  %76 = getelementptr inbounds i8, ptr %0, i64 280
  store double 0.000000e+00, ptr %76, align 8, !tbaa !34
  br label %129

77:                                               ; preds = %68, %71
  %78 = tail call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  tail call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %78, i32 noundef 5, i32 noundef 8, ptr noundef nonnull @.str.80)
  %79 = tail call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  tail call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %79, i32 noundef 5, i32 noundef 8, ptr noundef nonnull @.str.81)
  %80 = tail call noundef zeroext i1 @_ZNK10SimTKIpopt16FilterLSAcceptor27IsAcceptableToCurrentFilterEdd(ptr noundef nonnull align 8 dereferenceable(304) %0, double noundef %53, double noundef %10)
  %81 = tail call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  br i1 %80, label %84, label %82

82:                                               ; preds = %77
  tail call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %81, i32 noundef 5, i32 noundef 8, ptr noundef nonnull @.str.79)
  %83 = getelementptr inbounds i8, ptr %0, i64 280
  store double 1.000000e+00, ptr %83, align 8, !tbaa !34
  br label %129

84:                                               ; preds = %77
  tail call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %81, i32 noundef 5, i32 noundef 8, ptr noundef nonnull @.str.80)
  %85 = getelementptr inbounds i8, ptr %0, i64 188
  %86 = load i32, ptr %85, align 4, !tbaa !35
  %87 = icmp sgt i32 %86, 0
  br i1 %87, label %88, label %127

88:                                               ; preds = %84
  %89 = getelementptr inbounds i8, ptr %0, i64 292
  %90 = load i32, ptr %89, align 4, !tbaa !36
  %91 = icmp slt i32 %90, %86
  br i1 %91, label %92, label %117

92:                                               ; preds = %88
  %93 = getelementptr inbounds i8, ptr %0, i64 280
  %94 = load double, ptr %93, align 8, !tbaa !34
  %95 = fcmp une double %94, 0.000000e+00
  %96 = getelementptr inbounds i8, ptr %0, i64 288
  br i1 %95, label %97, label %116

97:                                               ; preds = %92
  %98 = load i32, ptr %96, align 8, !tbaa !37
  %99 = add nsw i32 %98, 1
  store i32 %99, ptr %96, align 8, !tbaa !37
  %100 = getelementptr inbounds i8, ptr %0, i64 192
  %101 = load i32, ptr %100, align 8, !tbaa !38
  %.not = icmp slt i32 %99, %101
  br i1 %.not, label %127, label %102

102:                                              ; preds = %97
  %103 = tail call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  %104 = load i32, ptr %96, align 8, !tbaa !37
  tail call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %103, i32 noundef 5, i32 noundef 8, ptr noundef nonnull @.str.82, i32 noundef %104)
  %105 = tail call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %6) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.83, ptr noundef nonnull align 1 dereferenceable(1) %6)
          to label %106 unwind label %111

106:                                              ; preds = %102
  invoke void @_ZN10SimTKIpopt9IpoptData18Append_info_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(864) %105, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %107 unwind label %113

107:                                              ; preds = %106
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #5
  %108 = load ptr, ptr %0, align 8, !tbaa !39
  %109 = getelementptr inbounds i8, ptr %108, i64 24
  %110 = load ptr, ptr %109, align 8
  call void %110(ptr noundef nonnull align 8 dereferenceable(304) %0)
  br label %127

111:                                              ; preds = %102
  %112 = landingpad { ptr, i32 }
          cleanup
  br label %115

113:                                              ; preds = %106
  %114 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #5
  br label %115

115:                                              ; preds = %113, %111
  %.pn35 = phi { ptr, i32 } [ %114, %113 ], [ %112, %111 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #5
  br label %130

116:                                              ; preds = %92
  store i32 0, ptr %96, align 8, !tbaa !37
  br label %127

117:                                              ; preds = %88
  %118 = tail call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject5JnlstEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  tail call void (ptr, i32, i32, ptr, ...) @_ZNK10SimTKIpopt10Journalist6PrintfENS_13EJournalLevelENS_16EJournalCategoryEPKcz(ptr noundef nonnull align 8 dereferenceable(40) %118, i32 noundef 5, i32 noundef 8, ptr noundef nonnull @.str.84)
  %119 = tail call noundef nonnull align 8 dereferenceable(864) ptr @_ZNK10SimTKIpopt23AlgorithmStrategyObject6IpDataEv(ptr noundef nonnull align 8 dereferenceable(49) %0)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.85, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %120 unwind label %122

120:                                              ; preds = %117
  invoke void @_ZN10SimTKIpopt9IpoptData18Append_info_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(864) %119, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %121 unwind label %124

121:                                              ; preds = %120
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #5
  br label %127

122:                                              ; preds = %117
  %123 = landingpad { ptr, i32 }
          cleanup
  br label %126

124:                                              ; preds = %120
  %125 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #5
  br label %126

126:                                              ; preds = %124, %122
  %.pn = phi { ptr, i32 } [ %125, %124 ], [ %123, %122 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #5
  br label %130

127:                                              ; preds = %121, %97, %107, %116, %84
  %128 = getelementptr inbounds i8, ptr %0, i64 280
  store double 0.000000e+00, ptr %128, align 8, !tbaa !34
  br label %129

129:                                              ; preds = %74, %82, %127, %45
  %.1 = phi i1 [ false, %45 ], [ true, %127 ], [ false, %82 ], [ false, %74 ]
  ret i1 %.1

130:                                              ; preds = %115, %126, %50
  %.pn38.pn = phi { ptr, i32 } [ %.pn38, %50 ], [ %.pn35, %115 ], [ %.pn, %126 ]
  resume { ptr, i32 } %.pn38.pn
}

declare noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities26trial_constraint_violationEv(ptr noundef nonnull align 8 dereferenceable(2025)) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZN10SimTKIpopt3MaxEdd(double noundef, double noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN10SimTKIpopt9IpoptData18Append_info_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(864), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

declare noundef double @_ZN10SimTKIpopt25IpoptCalculatedQuantities17trial_barrier_objEv(ptr noundef nonnull align 8 dereferenceable(2025)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN10SimTKIpopt16FilterLSAcceptor11ArmijoHoldsEd(ptr noundef nonnull align 8 dereferenceable(304), double noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK10SimTKIpopt16FilterLSAcceptor28IsAcceptableToCurrentIterateEddb(ptr noundef nonnull align 8 dereferenceable(304), double noundef, double noundef, i1 noundef zeroext) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK10SimTKIpopt16FilterLSAcceptor27IsAcceptableToCurrentFilterEdd(ptr noundef nonnull align 8 dereferenceable(304), double noundef, double noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 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 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 = { 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, !19, i64 56}
!6 = !{!"_ZTSN10SimTKIpopt16FilterLSAcceptorE", !7, i64 0, !19, i64 56, !19, i64 64, !19, i64 72, !19, i64 80, !19, i64 88, !19, i64 96, !19, i64 104, !19, i64 112, !19, i64 120, !19, i64 128, !19, i64 136, !10, i64 144, !19, i64 152, !19, i64 160, !20, i64 168, !19, i64 176, !18, i64 184, !18, i64 185, !10, i64 188, !10, i64 192, !19, i64 200, !19, i64 208, !19, i64 216, !19, i64 224, !19, i64 232, !19, i64 240, !21, i64 248, !19, i64 280, !10, i64 288, !10, i64 292, !28, i64 296}
!7 = !{!"_ZTSN10SimTKIpopt22BacktrackingLSAcceptorE", !8, i64 0}
!8 = !{!"_ZTSN10SimTKIpopt23AlgorithmStrategyObjectE", !9, i64 0, !13, i64 16, !15, i64 24, !16, i64 32, !17, i64 40, !18, i64 48}
!9 = !{!"_ZTSN10SimTKIpopt16ReferencedObjectE", !10, i64 8}
!10 = !{!"int", !11, i64 0}
!11 = !{!"omnipotent char", !12, i64 0}
!12 = !{!"Simple C++ TBAA"}
!13 = !{!"_ZTSN10SimTKIpopt8SmartPtrIKNS_10JournalistEEE", !14, i64 0}
!14 = !{!"any pointer", !11, i64 0}
!15 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_8IpoptNLPEEE", !14, i64 0}
!16 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_9IpoptDataEEE", !14, i64 0}
!17 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_25IpoptCalculatedQuantitiesEEE", !14, i64 0}
!18 = !{!"bool", !11, i64 0}
!19 = !{!"double", !11, i64 0}
!20 = !{!"_ZTSN10SimTKIpopt16FilterLSAcceptor17CorrectorTypeEnumE", !11, i64 0}
!21 = !{!"_ZTSN10SimTKIpopt6FilterE", !10, i64 0, !22, i64 8}
!22 = !{!"_ZTSNSt7__cxx114listIPN10SimTKIpopt11FilterEntryESaIS3_EEE", !23, i64 0}
!23 = !{!"_ZTSNSt7__cxx1110_List_baseIPN10SimTKIpopt11FilterEntryESaIS3_EEE", !24, i64 0}
!24 = !{!"_ZTSNSt7__cxx1110_List_baseIPN10SimTKIpopt11FilterEntryESaIS3_EE10_List_implE", !25, i64 0}
!25 = !{!"_ZTSNSt8__detail17_List_node_headerE", !26, i64 0, !27, i64 16}
!26 = !{!"_ZTSNSt8__detail15_List_node_baseE", !14, i64 0, !14, i64 8}
!27 = !{!"long", !11, i64 0}
!28 = !{!"_ZTSN10SimTKIpopt8SmartPtrINS_14PDSystemSolverEEE", !14, i64 0}
!29 = !{!6, !19, i64 64}
!30 = !{!6, !19, i64 200}
!31 = !{!6, !19, i64 72}
!32 = !{!6, !19, i64 80}
!33 = !{!6, !19, i64 208}
!34 = !{!6, !19, i64 280}
!35 = !{!6, !10, i64 188}
!36 = !{!6, !10, i64 292}
!37 = !{!6, !10, i64 288}
!38 = !{!6, !10, i64 192}
!39 = !{!40, !40, i64 0}
!40 = !{!"vtable pointer", !12, i64 0}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,SROAPass,SimplifyCFGPass,TailCallElimPass