; LLVM IR from Tencent-RoboticsX/jbdl :: src/jbdl/experimental/qpoases/src (QProblem)

; 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.qpOASES::QProblemB" = type { ptr, i32, ptr, ptr, ptr, ptr, %"class.qpOASES::Bounds", ptr, i32, ptr, ptr, double, i32, i32, i32, i32, double, i32, ptr, double, double, i32, [4 x i8], %"class.qpOASES::Options", %"class.qpOASES::Flipper", %"struct.qpOASES::TabularOutput" }
%"class.qpOASES::Bounds" = type { %"class.qpOASES::SubjectTo", %"class.qpOASES::Indexlist", %"class.qpOASES::Indexlist" }
%"class.qpOASES::SubjectTo" = type { ptr, i32, ptr, ptr, i32, i32 }
%"class.qpOASES::Indexlist" = type <{ ptr, ptr, i32, i32, i32, i32, i32, [4 x i8] }>
%"class.qpOASES::Options" = type <{ i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double, double, double, double, double, double, double, double, i32, [4 x i8], double, i32, [4 x i8], double, i32, [4 x i8], double, double, double, double, i32, i32, i32, i32, i32, [4 x i8] }>
%"class.qpOASES::Flipper" = type { i32, i32, %"class.qpOASES::Bounds", %"class.qpOASES::Constraints", ptr, ptr, ptr }
%"class.qpOASES::Constraints" = type { %"class.qpOASES::SubjectTo", %"class.qpOASES::Indexlist", %"class.qpOASES::Indexlist" }
%"struct.qpOASES::TabularOutput" = type { i32, i32, i32, i32, i32, i32, i32, i32 }

@.str = external hidden unnamed_addr constant [28 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [12 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 noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv() #1

declare noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28), i32 noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, i32 noundef) #1

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare { i64, i1 } @llvm.umul.with.overflow.i64(i64, i64) #2

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znam(i64 noundef) #3

; Function Attrs: nobuiltin nounwind
declare void @_ZdaPv(ptr noundef) #4

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZNK7qpOASES9QProblemB5getNVEv(ptr noundef nonnull align 8 dereferenceable(800)) #5 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZNK7qpOASES8QProblem5getNCEv(ptr noundef nonnull align 8 dereferenceable(1064)) #5 align 2

declare noundef i32 @_ZN7qpOASES15MessageHandling12throwWarningENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28), i32 noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, i32 noundef) #1

declare noundef double @_ZN7qpOASES10getCPUtimeEv() #1

declare noundef i32 @_ZN7qpOASES9QProblemB20setInfeasibilityFlagENS_11returnValueENS_11BooleanTypeE(ptr noundef nonnull align 8 dereferenceable(800), i32 noundef, i32 noundef) #1

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK7qpOASES9QProblemB9getStatusEv(ptr noundef nonnull align 8 dereferenceable(800)) #6 align 2

; Function Attrs: nounwind
declare i32 @snprintf(ptr noundef, i64 noundef, ptr noundef, ...) #7

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK7qpOASES9QProblemB12isInfeasibleEv(ptr noundef nonnull align 8 dereferenceable(800)) #6 align 2

declare noundef i32 @_ZN7qpOASES15MessageHandling9throwInfoENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28), i32 noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, i32 noundef) #1

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN7qpOASES8QProblem7solveQPEPKdS2_S2_S2_S2_RiPdiNS_11BooleanTypeE(ptr noundef nonnull align 8 dereferenceable(1064) %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef nonnull align 4 dereferenceable(4) %6, ptr noundef %7, i32 noundef %8, i32 noundef %9) #8 align 2 {
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca double, align 8
  %28 = alloca ptr, align 8
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca double, align 8
  %43 = alloca [160 x i8], align 16
  store ptr %0, ptr %12, align 8, !tbaa !5
  store ptr %1, ptr %13, align 8, !tbaa !5
  store ptr %2, ptr %14, align 8, !tbaa !5
  store ptr %3, ptr %15, align 8, !tbaa !5
  store ptr %4, ptr %16, align 8, !tbaa !5
  store ptr %5, ptr %17, align 8, !tbaa !5
  store ptr %6, ptr %18, align 8, !tbaa !5
  store ptr %7, ptr %19, align 8, !tbaa !5
  store i32 %8, ptr %20, align 4, !tbaa !9
  store i32 %9, ptr %21, align 4, !tbaa !11
  %44 = load ptr, ptr %12, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #9
  %45 = call noundef i32 @_ZNK7qpOASES9QProblemB5getNVEv(ptr noundef nonnull align 8 dereferenceable(800) %44)
  store i32 %45, ptr %23, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #9
  %46 = call noundef i32 @_ZNK7qpOASES8QProblem5getNCEv(ptr noundef nonnull align 8 dereferenceable(1064) %44)
  store i32 %46, ptr %24, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #9
  %47 = call noundef i32 @_ZNK7qpOASES9QProblemB9getStatusEv(ptr noundef nonnull align 8 dereferenceable(800) %44)
  %48 = icmp eq i32 %47, 0
  br i1 %48, label %55, label %49

49:                                               ; preds = %10
  %50 = call noundef i32 @_ZNK7qpOASES9QProblemB9getStatusEv(ptr noundef nonnull align 8 dereferenceable(800) %44)
  %51 = icmp eq i32 %50, 1
  br i1 %51, label %55, label %52

52:                                               ; preds = %49
  %53 = call noundef i32 @_ZNK7qpOASES9QProblemB9getStatusEv(ptr noundef nonnull align 8 dereferenceable(800) %44)
  %54 = icmp eq i32 %53, 3
  br i1 %54, label %55, label %58

55:                                               ; preds = %52, %49, %10
  %56 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %57 = call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %56, i32 noundef 54, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 1495, i32 noundef 1)
  store i32 %57, ptr %11, align 4
  store i32 1, ptr %26, align 4
  br label %724

58:                                               ; preds = %52
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #9
  store double 0.000000e+00, ptr %27, align 8, !tbaa !13
  %59 = load ptr, ptr %19, align 8, !tbaa !5
  %60 = icmp ne ptr %59, null
  br i1 %60, label %61, label %63

61:                                               ; preds = %58
  %62 = call noundef double @_ZN7qpOASES10getCPUtimeEv()
  store double %62, ptr %27, align 8, !tbaa !13
  br label %63

63:                                               ; preds = %61, %58
  %64 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %44, i32 0, i32 12
  store i32 3, ptr %64, align 8, !tbaa !15
  %65 = load ptr, ptr %14, align 8, !tbaa !5
  %66 = load ptr, ptr %15, align 8, !tbaa !5
  %67 = load ptr, ptr %16, align 8, !tbaa !5
  %68 = load ptr, ptr %17, align 8, !tbaa !5
  %69 = load ptr, ptr %44, align 8, !tbaa !28
  %70 = getelementptr inbounds ptr, ptr %69, i64 20
  %71 = load ptr, ptr %70, align 8
  %72 = call noundef i32 %71(ptr noundef nonnull align 8 dereferenceable(1064) %44, ptr noundef %65, ptr noundef %66, ptr noundef %67, ptr noundef %68)
  store i32 %72, ptr %25, align 4, !tbaa !30
  %73 = load i32, ptr %25, align 4, !tbaa !30
  %74 = icmp ne i32 %73, 0
  br i1 %74, label %75, label %79

75:                                               ; preds = %63
  %76 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %77 = call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %76, i32 noundef 52, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 1508, i32 noundef 1)
  %78 = load i32, ptr %25, align 4, !tbaa !30
  store i32 %78, ptr %11, align 4
  store i32 1, ptr %26, align 4
  br label %723

79:                                               ; preds = %63
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #9
  %80 = load i32, ptr %23, align 4, !tbaa !9
  %81 = sext i32 %80 to i64
  %82 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %81, i64 8)
  %83 = extractvalue { i64, i1 } %82, 1
  %84 = extractvalue { i64, i1 } %82, 0
  %85 = select i1 %83, i64 -1, i64 %84
  %86 = call noalias noundef nonnull ptr @_Znam(i64 noundef %85) #10
  store ptr %86, ptr %28, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #9
  %87 = load i32, ptr %23, align 4, !tbaa !9
  %88 = sext i32 %87 to i64
  %89 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %88, i64 8)
  %90 = extractvalue { i64, i1 } %89, 1
  %91 = extractvalue { i64, i1 } %89, 0
  %92 = select i1 %90, i64 -1, i64 %91
  %93 = call noalias noundef nonnull ptr @_Znam(i64 noundef %92) #10
  store ptr %93, ptr %29, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #9
  %94 = load i32, ptr %24, align 4, !tbaa !9
  %95 = sext i32 %94 to i64
  %96 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %95, i64 8)
  %97 = extractvalue { i64, i1 } %96, 1
  %98 = extractvalue { i64, i1 } %96, 0
  %99 = select i1 %97, i64 -1, i64 %98
  %100 = call noalias noundef nonnull ptr @_Znam(i64 noundef %99) #10
  store ptr %100, ptr %30, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #9
  %101 = load i32, ptr %23, align 4, !tbaa !9
  %102 = sext i32 %101 to i64
  %103 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %102, i64 8)
  %104 = extractvalue { i64, i1 } %103, 1
  %105 = extractvalue { i64, i1 } %103, 0
  %106 = select i1 %104, i64 -1, i64 %105
  %107 = call noalias noundef nonnull ptr @_Znam(i64 noundef %106) #10
  store ptr %107, ptr %31, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #9
  %108 = load i32, ptr %23, align 4, !tbaa !9
  %109 = sext i32 %108 to i64
  %110 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %109, i64 8)
  %111 = extractvalue { i64, i1 } %110, 1
  %112 = extractvalue { i64, i1 } %110, 0
  %113 = select i1 %111, i64 -1, i64 %112
  %114 = call noalias noundef nonnull ptr @_Znam(i64 noundef %113) #10
  store ptr %114, ptr %32, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #9
  %115 = load i32, ptr %23, align 4, !tbaa !9
  %116 = sext i32 %115 to i64
  %117 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %116, i64 8)
  %118 = extractvalue { i64, i1 } %117, 1
  %119 = extractvalue { i64, i1 } %117, 0
  %120 = select i1 %118, i64 -1, i64 %119
  %121 = call noalias noundef nonnull ptr @_Znam(i64 noundef %120) #10
  store ptr %121, ptr %33, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #9
  %122 = load i32, ptr %23, align 4, !tbaa !9
  %123 = sext i32 %122 to i64
  %124 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %123, i64 8)
  %125 = extractvalue { i64, i1 } %124, 1
  %126 = extractvalue { i64, i1 } %124, 0
  %127 = select i1 %125, i64 -1, i64 %126
  %128 = call noalias noundef nonnull ptr @_Znam(i64 noundef %127) #10
  store ptr %128, ptr %34, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #9
  %129 = load i32, ptr %24, align 4, !tbaa !9
  %130 = sext i32 %129 to i64
  %131 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %130, i64 8)
  %132 = extractvalue { i64, i1 } %131, 1
  %133 = extractvalue { i64, i1 } %131, 0
  %134 = select i1 %132, i64 -1, i64 %133
  %135 = call noalias noundef nonnull ptr @_Znam(i64 noundef %134) #10
  store ptr %135, ptr %35, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #9
  %136 = load i32, ptr %24, align 4, !tbaa !9
  %137 = sext i32 %136 to i64
  %138 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %137, i64 8)
  %139 = extractvalue { i64, i1 } %138, 1
  %140 = extractvalue { i64, i1 } %138, 0
  %141 = select i1 %139, i64 -1, i64 %140
  %142 = call noalias noundef nonnull ptr @_Znam(i64 noundef %141) #10
  store ptr %142, ptr %36, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #9
  call void @llvm.lifetime.start.p0(i64 160, ptr %43) #9
  %143 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %44, i32 0, i32 13
  store i32 0, ptr %143, align 4, !tbaa !32
  %144 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %44, i32 0, i32 14
  store i32 0, ptr %144, align 8, !tbaa !33
  %145 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %145, ptr %22, align 4, !tbaa !9
  br label %146

146:                                              ; preds = %662, %79
  %147 = load i32, ptr %22, align 4, !tbaa !9
  %148 = load ptr, ptr %18, align 8, !tbaa !5
  %149 = load i32, ptr %148, align 4, !tbaa !9
  %150 = icmp slt i32 %147, %149
  br i1 %150, label %151, label %665

151:                                              ; preds = %146
  %152 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %44, i32 0, i32 25
  %153 = getelementptr inbounds %"struct.qpOASES::TabularOutput", ptr %152, i32 0, i32 3
  store i32 -1, ptr %153, align 4, !tbaa !34
  %154 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %44, i32 0, i32 25
  %155 = getelementptr inbounds %"struct.qpOASES::TabularOutput", ptr %154, i32 0, i32 2
  store i32 -1, ptr %155, align 8, !tbaa !35
  %156 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %44, i32 0, i32 25
  %157 = getelementptr inbounds %"struct.qpOASES::TabularOutput", ptr %156, i32 0, i32 1
  store i32 -1, ptr %157, align 4, !tbaa !36
  %158 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %44, i32 0, i32 25
  %159 = getelementptr inbounds %"struct.qpOASES::TabularOutput", ptr %158, i32 0, i32 0
  store i32 -1, ptr %159, align 8, !tbaa !37
  %160 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %44, i32 0, i32 25
  %161 = getelementptr inbounds %"struct.qpOASES::TabularOutput", ptr %160, i32 0, i32 7
  store i32 0, ptr %161, align 4, !tbaa !38
  %162 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %44, i32 0, i32 25
  %163 = getelementptr inbounds %"struct.qpOASES::TabularOutput", ptr %162, i32 0, i32 6
  store i32 0, ptr %163, align 8, !tbaa !39
  %164 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %44, i32 0, i32 25
  %165 = getelementptr inbounds %"struct.qpOASES::TabularOutput", ptr %164, i32 0, i32 5
  store i32 0, ptr %165, align 4, !tbaa !40
  %166 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %44, i32 0, i32 25
  %167 = getelementptr inbounds %"struct.qpOASES::TabularOutput", ptr %166, i32 0, i32 4
  store i32 0, ptr %167, align 8, !tbaa !41
  %168 = load ptr, ptr %19, align 8, !tbaa !5
  %169 = load double, ptr %27, align 8, !tbaa !13
  %170 = load i32, ptr %22, align 4, !tbaa !9
  %171 = load i32, ptr %20, align 4, !tbaa !9
  %172 = sub nsw i32 %170, %171
  %173 = call noundef i32 @_ZNK7qpOASES9QProblemB22isCPUtimeLimitExceededEPKddi(ptr noundef nonnull align 8 dereferenceable(800) %44, ptr noundef %168, double noundef %169, i32 noundef %172)
  %174 = icmp eq i32 %173, 1
  br i1 %174, label %175, label %178

175:                                              ; preds = %151
  %176 = load i32, ptr %22, align 4, !tbaa !9
  %177 = load ptr, ptr %18, align 8, !tbaa !5
  store i32 %176, ptr %177, align 4, !tbaa !9
  br label %665

178:                                              ; preds = %151
  %179 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %44, i32 0, i32 12
  store i32 3, ptr %179, align 8, !tbaa !15
  %180 = load i32, ptr %21, align 4, !tbaa !11
  %181 = icmp eq i32 %180, 1
  br i1 %181, label %182, label %186

182:                                              ; preds = %178
  %183 = getelementptr inbounds [160 x i8], ptr %43, i64 0, i64 0
  %184 = load i32, ptr %22, align 4, !tbaa !9
  %185 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef %183, i64 noundef 160, ptr noundef @.str.38, i32 noundef %184) #9
  br label %190

186:                                              ; preds = %178
  %187 = getelementptr inbounds [160 x i8], ptr %43, i64 0, i64 0
  %188 = load i32, ptr %22, align 4, !tbaa !9
  %189 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef %187, i64 noundef 160, ptr noundef @.str.39, i32 noundef %188) #9
  br label %190

190:                                              ; preds = %186, %182
  %191 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %192 = getelementptr inbounds [160 x i8], ptr %43, i64 0, i64 0
  %193 = call noundef i32 @_ZN7qpOASES15MessageHandling9throwInfoENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %191, i32 noundef 55, ptr noundef %192, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 1575, i32 noundef 1)
  %194 = load ptr, ptr %13, align 8, !tbaa !5
  %195 = load ptr, ptr %16, align 8, !tbaa !5
  %196 = load ptr, ptr %17, align 8, !tbaa !5
  %197 = load ptr, ptr %14, align 8, !tbaa !5
  %198 = load ptr, ptr %15, align 8, !tbaa !5
  %199 = load ptr, ptr %32, align 8, !tbaa !5
  %200 = load ptr, ptr %35, align 8, !tbaa !5
  %201 = load ptr, ptr %36, align 8, !tbaa !5
  %202 = load ptr, ptr %33, align 8, !tbaa !5
  %203 = load ptr, ptr %34, align 8, !tbaa !5
  %204 = call noundef i32 @_ZN7qpOASES8QProblem18determineDataShiftEPKdS2_S2_S2_S2_PdS3_S3_S3_S3_RNS_11BooleanTypeES5_(ptr noundef nonnull align 8 dereferenceable(1064) %44, ptr noundef %194, ptr noundef %195, ptr noundef %196, ptr noundef %197, ptr noundef %198, ptr noundef %199, ptr noundef %200, ptr noundef %201, ptr noundef %202, ptr noundef %203, ptr noundef nonnull align 4 dereferenceable(4) %37, ptr noundef nonnull align 4 dereferenceable(4) %38)
  store i32 %204, ptr %25, align 4, !tbaa !30
  %205 = load i32, ptr %25, align 4, !tbaa !30
  %206 = icmp ne i32 %205, 0
  br i1 %206, label %207, label %257

207:                                              ; preds = %190
  %208 = load ptr, ptr %30, align 8, !tbaa !5
  %209 = icmp eq ptr %208, null
  br i1 %209, label %211, label %210

210:                                              ; preds = %207
  call void @_ZdaPv(ptr noundef %208) #11
  br label %211

211:                                              ; preds = %210, %207
  %212 = load ptr, ptr %31, align 8, !tbaa !5
  %213 = icmp eq ptr %212, null
  br i1 %213, label %215, label %214

214:                                              ; preds = %211
  call void @_ZdaPv(ptr noundef %212) #11
  br label %215

215:                                              ; preds = %214, %211
  %216 = load ptr, ptr %29, align 8, !tbaa !5
  %217 = icmp eq ptr %216, null
  br i1 %217, label %219, label %218

218:                                              ; preds = %215
  call void @_ZdaPv(ptr noundef %216) #11
  br label %219

219:                                              ; preds = %218, %215
  %220 = load ptr, ptr %28, align 8, !tbaa !5
  %221 = icmp eq ptr %220, null
  br i1 %221, label %223, label %222

222:                                              ; preds = %219
  call void @_ZdaPv(ptr noundef %220) #11
  br label %223

223:                                              ; preds = %222, %219
  %224 = load ptr, ptr %34, align 8, !tbaa !5
  %225 = icmp eq ptr %224, null
  br i1 %225, label %227, label %226

226:                                              ; preds = %223
  call void @_ZdaPv(ptr noundef %224) #11
  br label %227

227:                                              ; preds = %226, %223
  %228 = load ptr, ptr %33, align 8, !tbaa !5
  %229 = icmp eq ptr %228, null
  br i1 %229, label %231, label %230

230:                                              ; preds = %227
  call void @_ZdaPv(ptr noundef %228) #11
  br label %231

231:                                              ; preds = %230, %227
  %232 = load ptr, ptr %36, align 8, !tbaa !5
  %233 = icmp eq ptr %232, null
  br i1 %233, label %235, label %234

234:                                              ; preds = %231
  call void @_ZdaPv(ptr noundef %232) #11
  br label %235

235:                                              ; preds = %234, %231
  %236 = load ptr, ptr %35, align 8, !tbaa !5
  %237 = icmp eq ptr %236, null
  br i1 %237, label %239, label %238

238:                                              ; preds = %235
  call void @_ZdaPv(ptr noundef %236) #11
  br label %239

239:                                              ; preds = %238, %235
  %240 = load ptr, ptr %32, align 8, !tbaa !5
  %241 = icmp eq ptr %240, null
  br i1 %241, label %243, label %242

242:                                              ; preds = %239
  call void @_ZdaPv(ptr noundef %240) #11
  br label %243

243:                                              ; preds = %242, %239
  %244 = load i32, ptr %22, align 4, !tbaa !9
  %245 = load ptr, ptr %18, align 8, !tbaa !5
  store i32 %244, ptr %245, align 4, !tbaa !9
  %246 = load ptr, ptr %19, align 8, !tbaa !5
  %247 = icmp ne ptr %246, null
  br i1 %247, label %248, label %253

248:                                              ; preds = %243
  %249 = call noundef double @_ZN7qpOASES10getCPUtimeEv()
  %250 = load double, ptr %27, align 8, !tbaa !13
  %251 = fsub double %249, %250
  %252 = load ptr, ptr %19, align 8, !tbaa !5
  store double %251, ptr %252, align 8, !tbaa !13
  br label %253

253:                                              ; preds = %248, %243
  %254 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %255 = call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %254, i32 noundef 56, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 1593, i32 noundef 1)
  %256 = load i32, ptr %25, align 4, !tbaa !30
  store i32 %256, ptr %11, align 4
  store i32 1, ptr %26, align 4
  br label %722

257:                                              ; preds = %190
  %258 = load ptr, ptr %32, align 8, !tbaa !5
  %259 = load ptr, ptr %35, align 8, !tbaa !5
  %260 = load ptr, ptr %36, align 8, !tbaa !5
  %261 = load ptr, ptr %33, align 8, !tbaa !5
  %262 = load ptr, ptr %34, align 8, !tbaa !5
  %263 = load i32, ptr %37, align 4, !tbaa !11
  %264 = load i32, ptr %38, align 4, !tbaa !11
  %265 = load ptr, ptr %29, align 8, !tbaa !5
  %266 = load ptr, ptr %28, align 8, !tbaa !5
  %267 = load ptr, ptr %30, align 8, !tbaa !5
  %268 = load ptr, ptr %31, align 8, !tbaa !5
  %269 = load ptr, ptr %44, align 8, !tbaa !28
  %270 = getelementptr inbounds ptr, ptr %269, i64 34
  %271 = load ptr, ptr %270, align 8
  %272 = call noundef i32 %271(ptr noundef nonnull align 8 dereferenceable(1064) %44, ptr noundef %258, ptr noundef %259, ptr noundef %260, ptr noundef %261, ptr noundef %262, i32 noundef %263, i32 noundef %264, ptr noundef %265, ptr noundef %266, ptr noundef %267, ptr noundef %268)
  store i32 %272, ptr %25, align 4, !tbaa !30
  %273 = load i32, ptr %25, align 4, !tbaa !30
  %274 = icmp ne i32 %273, 0
  br i1 %274, label %275, label %325

275:                                              ; preds = %257
  %276 = load ptr, ptr %30, align 8, !tbaa !5
  %277 = icmp eq ptr %276, null
  br i1 %277, label %279, label %278

278:                                              ; preds = %275
  call void @_ZdaPv(ptr noundef %276) #11
  br label %279

279:                                              ; preds = %278, %275
  %280 = load ptr, ptr %31, align 8, !tbaa !5
  %281 = icmp eq ptr %280, null
  br i1 %281, label %283, label %282

282:                                              ; preds = %279
  call void @_ZdaPv(ptr noundef %280) #11
  br label %283

283:                                              ; preds = %282, %279
  %284 = load ptr, ptr %29, align 8, !tbaa !5
  %285 = icmp eq ptr %284, null
  br i1 %285, label %287, label %286

286:                                              ; preds = %283
  call void @_ZdaPv(ptr noundef %284) #11
  br label %287

287:                                              ; preds = %286, %283
  %288 = load ptr, ptr %28, align 8, !tbaa !5
  %289 = icmp eq ptr %288, null
  br i1 %289, label %291, label %290

290:                                              ; preds = %287
  call void @_ZdaPv(ptr noundef %288) #11
  br label %291

291:                                              ; preds = %290, %287
  %292 = load ptr, ptr %34, align 8, !tbaa !5
  %293 = icmp eq ptr %292, null
  br i1 %293, label %295, label %294

294:                                              ; preds = %291
  call void @_ZdaPv(ptr noundef %292) #11
  br label %295

295:                                              ; preds = %294, %291
  %296 = load ptr, ptr %33, align 8, !tbaa !5
  %297 = icmp eq ptr %296, null
  br i1 %297, label %299, label %298

298:                                              ; preds = %295
  call void @_ZdaPv(ptr noundef %296) #11
  br label %299

299:                                              ; preds = %298, %295
  %300 = load ptr, ptr %36, align 8, !tbaa !5
  %301 = icmp eq ptr %300, null
  br i1 %301, label %303, label %302

302:                                              ; preds = %299
  call void @_ZdaPv(ptr noundef %300) #11
  br label %303

303:                                              ; preds = %302, %299
  %304 = load ptr, ptr %35, align 8, !tbaa !5
  %305 = icmp eq ptr %304, null
  br i1 %305, label %307, label %306

306:                                              ; preds = %303
  call void @_ZdaPv(ptr noundef %304) #11
  br label %307

307:                                              ; preds = %306, %303
  %308 = load ptr, ptr %32, align 8, !tbaa !5
  %309 = icmp eq ptr %308, null
  br i1 %309, label %311, label %310

310:                                              ; preds = %307
  call void @_ZdaPv(ptr noundef %308) #11
  br label %311

311:                                              ; preds = %310, %307
  %312 = load i32, ptr %22, align 4, !tbaa !9
  %313 = load ptr, ptr %18, align 8, !tbaa !5
  store i32 %312, ptr %313, align 4, !tbaa !9
  %314 = load ptr, ptr %19, align 8, !tbaa !5
  %315 = icmp ne ptr %314, null
  br i1 %315, label %316, label %321

316:                                              ; preds = %311
  %317 = call noundef double @_ZN7qpOASES10getCPUtimeEv()
  %318 = load double, ptr %27, align 8, !tbaa !13
  %319 = fsub double %317, %318
  %320 = load ptr, ptr %19, align 8, !tbaa !5
  store double %319, ptr %320, align 8, !tbaa !13
  br label %321

321:                                              ; preds = %316, %311
  %322 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %323 = call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %322, i32 noundef 57, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 1612, i32 noundef 1)
  %324 = load i32, ptr %25, align 4, !tbaa !30
  store i32 %324, ptr %11, align 4
  store i32 1, ptr %26, align 4
  br label %722

325:                                              ; preds = %257
  %326 = load ptr, ptr %32, align 8, !tbaa !5
  %327 = load ptr, ptr %35, align 8, !tbaa !5
  %328 = load ptr, ptr %36, align 8, !tbaa !5
  %329 = load ptr, ptr %33, align 8, !tbaa !5
  %330 = load ptr, ptr %34, align 8, !tbaa !5
  %331 = load ptr, ptr %29, align 8, !tbaa !5
  %332 = load ptr, ptr %28, align 8, !tbaa !5
  %333 = load ptr, ptr %30, align 8, !tbaa !5
  %334 = load ptr, ptr %31, align 8, !tbaa !5
  %335 = call noundef i32 @_ZN7qpOASES8QProblem11performStepEPKdS2_S2_S2_S2_S2_S2_S2_S2_RiRNS_15SubjectToStatusERNS_11BooleanTypeE(ptr noundef nonnull align 8 dereferenceable(1064) %44, ptr noundef %326, ptr noundef %327, ptr noundef %328, ptr noundef %329, ptr noundef %330, ptr noundef %331, ptr noundef %332, ptr noundef %333, ptr noundef %334, ptr noundef nonnull align 4 dereferenceable(4) %39, ptr noundef nonnull align 4 dereferenceable(4) %40, ptr noundef nonnull align 4 dereferenceable(4) %41)
  store i32 %335, ptr %25, align 4, !tbaa !30
  %336 = load i32, ptr %25, align 4, !tbaa !30
  %337 = icmp ne i32 %336, 0
  br i1 %337, label %338, label %388

338:                                              ; preds = %325
  %339 = load ptr, ptr %30, align 8, !tbaa !5
  %340 = icmp eq ptr %339, null
  br i1 %340, label %342, label %341

341:                                              ; preds = %338
  call void @_ZdaPv(ptr noundef %339) #11
  br label %342

342:                                              ; preds = %341, %338
  %343 = load ptr, ptr %31, align 8, !tbaa !5
  %344 = icmp eq ptr %343, null
  br i1 %344, label %346, label %345

345:                                              ; preds = %342
  call void @_ZdaPv(ptr noundef %343) #11
  br label %346

346:                                              ; preds = %345, %342
  %347 = load ptr, ptr %29, align 8, !tbaa !5
  %348 = icmp eq ptr %347, null
  br i1 %348, label %350, label %349

349:                                              ; preds = %346
  call void @_ZdaPv(ptr noundef %347) #11
  br label %350

350:                                              ; preds = %349, %346
  %351 = load ptr, ptr %28, align 8, !tbaa !5
  %352 = icmp eq ptr %351, null
  br i1 %352, label %354, label %353

353:                                              ; preds = %350
  call void @_ZdaPv(ptr noundef %351) #11
  br label %354

354:                                              ; preds = %353, %350
  %355 = load ptr, ptr %34, align 8, !tbaa !5
  %356 = icmp eq ptr %355, null
  br i1 %356, label %358, label %357

357:                                              ; preds = %354
  call void @_ZdaPv(ptr noundef %355) #11
  br label %358

358:                                              ; preds = %357, %354
  %359 = load ptr, ptr %33, align 8, !tbaa !5
  %360 = icmp eq ptr %359, null
  br i1 %360, label %362, label %361

361:                                              ; preds = %358
  call void @_ZdaPv(ptr noundef %359) #11
  br label %362

362:                                              ; preds = %361, %358
  %363 = load ptr, ptr %36, align 8, !tbaa !5
  %364 = icmp eq ptr %363, null
  br i1 %364, label %366, label %365

365:                                              ; preds = %362
  call void @_ZdaPv(ptr noundef %363) #11
  br label %366

366:                                              ; preds = %365, %362
  %367 = load ptr, ptr %35, align 8, !tbaa !5
  %368 = icmp eq ptr %367, null
  br i1 %368, label %370, label %369

369:                                              ; preds = %366
  call void @_ZdaPv(ptr noundef %367) #11
  br label %370

370:                                              ; preds = %369, %366
  %371 = load ptr, ptr %32, align 8, !tbaa !5
  %372 = icmp eq ptr %371, null
  br i1 %372, label %374, label %373

373:                                              ; preds = %370
  call void @_ZdaPv(ptr noundef %371) #11
  br label %374

374:                                              ; preds = %373, %370
  %375 = load i32, ptr %22, align 4, !tbaa !9
  %376 = load ptr, ptr %18, align 8, !tbaa !5
  store i32 %375, ptr %376, align 4, !tbaa !9
  %377 = load ptr, ptr %19, align 8, !tbaa !5
  %378 = icmp ne ptr %377, null
  br i1 %378, label %379, label %384

379:                                              ; preds = %374
  %380 = call noundef double @_ZN7qpOASES10getCPUtimeEv()
  %381 = load double, ptr %27, align 8, !tbaa !13
  %382 = fsub double %380, %381
  %383 = load ptr, ptr %19, align 8, !tbaa !5
  store double %382, ptr %383, align 8, !tbaa !13
  br label %384

384:                                              ; preds = %379, %374
  %385 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %386 = call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %385, i32 noundef 58, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 1632, i32 noundef 1)
  %387 = load i32, ptr %25, align 4, !tbaa !30
  store i32 %387, ptr %11, align 4
  store i32 1, ptr %26, align 4
  br label %722

388:                                              ; preds = %325
  %389 = call noundef i32 @_ZNK7qpOASES9QProblemB5getNVEv(ptr noundef nonnull align 8 dereferenceable(800) %44)
  store i32 %389, ptr %23, align 4, !tbaa !9
  %390 = call noundef i32 @_ZNK7qpOASES8QProblem5getNCEv(ptr noundef nonnull align 8 dereferenceable(1064) %44)
  store i32 %390, ptr %24, align 4, !tbaa !9
  %391 = load ptr, ptr %13, align 8, !tbaa !5
  %392 = load ptr, ptr %14, align 8, !tbaa !5
  %393 = load ptr, ptr %15, align 8, !tbaa !5
  %394 = load ptr, ptr %16, align 8, !tbaa !5
  %395 = load ptr, ptr %17, align 8, !tbaa !5
  %396 = call noundef double @_ZN7qpOASES8QProblem25getRelativeHomotopyLengthEPKdS2_S2_S2_S2_(ptr noundef nonnull align 8 dereferenceable(1064) %44, ptr noundef %391, ptr noundef %392, ptr noundef %393, ptr noundef %394, ptr noundef %395)
  store double %396, ptr %42, align 8, !tbaa !13
  %397 = load double, ptr %42, align 8, !tbaa !13
  %398 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %44, i32 0, i32 23
  %399 = getelementptr inbounds %"class.qpOASES::Options", ptr %398, i32 0, i32 10
  %400 = load double, ptr %399, align 8, !tbaa !42
  %401 = fcmp ole double %397, %400
  br i1 %401, label %402, label %464

402:                                              ; preds = %388
  %403 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %44, i32 0, i32 12
  store i32 5, ptr %403, align 8, !tbaa !15
  %404 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %405 = call noundef i32 @_ZN7qpOASES15MessageHandling9throwInfoENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %404, i32 noundef 59, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 1645, i32 noundef 1)
  %406 = load i32, ptr %22, align 4, !tbaa !9
  %407 = load i32, ptr %39, align 4, !tbaa !9
  %408 = load i32, ptr %40, align 4, !tbaa !43
  %409 = load i32, ptr %41, align 4, !tbaa !11
  %410 = load double, ptr %42, align 8, !tbaa !13
  %411 = load i32, ptr %21, align 4, !tbaa !11
  %412 = call noundef i32 @_ZN7qpOASES8QProblem14printIterationEiiNS_15SubjectToStatusENS_11BooleanTypeEdS2_(ptr noundef nonnull align 8 dereferenceable(1064) %44, i32 noundef %406, i32 noundef %407, i32 noundef %408, i32 noundef %409, double noundef %410, i32 noundef %411)
  %413 = icmp ne i32 %412, 0
  br i1 %413, label %414, label %417

414:                                              ; preds = %402
  %415 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %416 = call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %415, i32 noundef 103, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 1648, i32 noundef 1)
  br label %417

417:                                              ; preds = %414, %402
  %418 = load i32, ptr %22, align 4, !tbaa !9
  %419 = load ptr, ptr %18, align 8, !tbaa !5
  store i32 %418, ptr %419, align 4, !tbaa !9
  %420 = load ptr, ptr %19, align 8, !tbaa !5
  %421 = icmp ne ptr %420, null
  br i1 %421, label %422, label %427

422:                                              ; preds = %417
  %423 = call noundef double @_ZN7qpOASES10getCPUtimeEv()
  %424 = load double, ptr %27, align 8, !tbaa !13
  %425 = fsub double %423, %424
  %426 = load ptr, ptr %19, align 8, !tbaa !5
  store double %425, ptr %426, align 8, !tbaa !13
  br label %427

427:                                              ; preds = %422, %417
  %428 = load ptr, ptr %30, align 8, !tbaa !5
  %429 = icmp eq ptr %428, null
  br i1 %429, label %431, label %430

430:                                              ; preds = %427
  call void @_ZdaPv(ptr noundef %428) #11
  br label %431

431:                                              ; preds = %430, %427
  %432 = load ptr, ptr %31, align 8, !tbaa !5
  %433 = icmp eq ptr %432, null
  br i1 %433, label %435, label %434

434:                                              ; preds = %431
  call void @_ZdaPv(ptr noundef %432) #11
  br label %435

435:                                              ; preds = %434, %431
  %436 = load ptr, ptr %29, align 8, !tbaa !5
  %437 = icmp eq ptr %436, null
  br i1 %437, label %439, label %438

438:                                              ; preds = %435
  call void @_ZdaPv(ptr noundef %436) #11
  br label %439

439:                                              ; preds = %438, %435
  %440 = load ptr, ptr %28, align 8, !tbaa !5
  %441 = icmp eq ptr %440, null
  br i1 %441, label %443, label %442

442:                                              ; preds = %439
  call void @_ZdaPv(ptr noundef %440) #11
  br label %443

443:                                              ; preds = %442, %439
  %444 = load ptr, ptr %34, align 8, !tbaa !5
  %445 = icmp eq ptr %444, null
  br i1 %445, label %447, label %446

446:                                              ; preds = %443
  call void @_ZdaPv(ptr noundef %444) #11
  br label %447

447:                                              ; preds = %446, %443
  %448 = load ptr, ptr %33, align 8, !tbaa !5
  %449 = icmp eq ptr %448, null
  br i1 %449, label %451, label %450

450:                                              ; preds = %447
  call void @_ZdaPv(ptr noundef %448) #11
  br label %451

451:                                              ; preds = %450, %447
  %452 = load ptr, ptr %36, align 8, !tbaa !5
  %453 = icmp eq ptr %452, null
  br i1 %453, label %455, label %454

454:                                              ; preds = %451
  call void @_ZdaPv(ptr noundef %452) #11
  br label %455

455:                                              ; preds = %454, %451
  %456 = load ptr, ptr %35, align 8, !tbaa !5
  %457 = icmp eq ptr %456, null
  br i1 %457, label %459, label %458

458:                                              ; preds = %455
  call void @_ZdaPv(ptr noundef %456) #11
  br label %459

459:                                              ; preds = %458, %455
  %460 = load ptr, ptr %32, align 8, !tbaa !5
  %461 = icmp eq ptr %460, null
  br i1 %461, label %463, label %462

462:                                              ; preds = %459
  call void @_ZdaPv(ptr noundef %460) #11
  br label %463

463:                                              ; preds = %462, %459
  store i32 0, ptr %11, align 4
  store i32 1, ptr %26, align 4
  br label %722

464:                                              ; preds = %388
  %465 = load i32, ptr %39, align 4, !tbaa !9
  %466 = load i32, ptr %40, align 4, !tbaa !43
  %467 = load i32, ptr %41, align 4, !tbaa !11
  %468 = call noundef i32 @_ZN7qpOASES8QProblem15changeActiveSetEiNS_15SubjectToStatusENS_11BooleanTypeE(ptr noundef nonnull align 8 dereferenceable(1064) %44, i32 noundef %465, i32 noundef %466, i32 noundef %467)
  store i32 %468, ptr %25, align 4, !tbaa !30
  %469 = load i32, ptr %25, align 4, !tbaa !30
  %470 = icmp ne i32 %469, 0
  br i1 %470, label %471, label %534

471:                                              ; preds = %464
  %472 = load ptr, ptr %30, align 8, !tbaa !5
  %473 = icmp eq ptr %472, null
  br i1 %473, label %475, label %474

474:                                              ; preds = %471
  call void @_ZdaPv(ptr noundef %472) #11
  br label %475

475:                                              ; preds = %474, %471
  %476 = load ptr, ptr %31, align 8, !tbaa !5
  %477 = icmp eq ptr %476, null
  br i1 %477, label %479, label %478

478:                                              ; preds = %475
  call void @_ZdaPv(ptr noundef %476) #11
  br label %479

479:                                              ; preds = %478, %475
  %480 = load ptr, ptr %29, align 8, !tbaa !5
  %481 = icmp eq ptr %480, null
  br i1 %481, label %483, label %482

482:                                              ; preds = %479
  call void @_ZdaPv(ptr noundef %480) #11
  br label %483

483:                                              ; preds = %482, %479
  %484 = load ptr, ptr %28, align 8, !tbaa !5
  %485 = icmp eq ptr %484, null
  br i1 %485, label %487, label %486

486:                                              ; preds = %483
  call void @_ZdaPv(ptr noundef %484) #11
  br label %487

487:                                              ; preds = %486, %483
  %488 = load ptr, ptr %34, align 8, !tbaa !5
  %489 = icmp eq ptr %488, null
  br i1 %489, label %491, label %490

490:                                              ; preds = %487
  call void @_ZdaPv(ptr noundef %488) #11
  br label %491

491:                                              ; preds = %490, %487
  %492 = load ptr, ptr %33, align 8, !tbaa !5
  %493 = icmp eq ptr %492, null
  br i1 %493, label %495, label %494

494:                                              ; preds = %491
  call void @_ZdaPv(ptr noundef %492) #11
  br label %495

495:                                              ; preds = %494, %491
  %496 = load ptr, ptr %36, align 8, !tbaa !5
  %497 = icmp eq ptr %496, null
  br i1 %497, label %499, label %498

498:                                              ; preds = %495
  call void @_ZdaPv(ptr noundef %496) #11
  br label %499

499:                                              ; preds = %498, %495
  %500 = load ptr, ptr %35, align 8, !tbaa !5
  %501 = icmp eq ptr %500, null
  br i1 %501, label %503, label %502

502:                                              ; preds = %499
  call void @_ZdaPv(ptr noundef %500) #11
  br label %503

503:                                              ; preds = %502, %499
  %504 = load ptr, ptr %32, align 8, !tbaa !5
  %505 = icmp eq ptr %504, null
  br i1 %505, label %507, label %506

506:                                              ; preds = %503
  call void @_ZdaPv(ptr noundef %504) #11
  br label %507

507:                                              ; preds = %506, %503
  %508 = load i32, ptr %22, align 4, !tbaa !9
  %509 = load ptr, ptr %18, align 8, !tbaa !5
  store i32 %508, ptr %509, align 4, !tbaa !9
  %510 = load ptr, ptr %19, align 8, !tbaa !5
  %511 = icmp ne ptr %510, null
  br i1 %511, label %512, label %517

512:                                              ; preds = %507
  %513 = call noundef double @_ZN7qpOASES10getCPUtimeEv()
  %514 = load double, ptr %27, align 8, !tbaa !13
  %515 = fsub double %513, %514
  %516 = load ptr, ptr %19, align 8, !tbaa !5
  store double %515, ptr %516, align 8, !tbaa !13
  br label %517

517:                                              ; preds = %512, %507
  %518 = call noundef i32 @_ZNK7qpOASES9QProblemB12isInfeasibleEv(ptr noundef nonnull align 8 dereferenceable(800) %44)
  %519 = icmp eq i32 %518, 1
  br i1 %519, label %520, label %523

520:                                              ; preds = %517
  %521 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %44, i32 0, i32 12
  store i32 4, ptr %521, align 8, !tbaa !15
  %522 = call noundef i32 @_ZN7qpOASES9QProblemB20setInfeasibilityFlagENS_11returnValueENS_11BooleanTypeE(ptr noundef nonnull align 8 dereferenceable(800) %44, i32 noundef 61, i32 noundef 0)
  store i32 %522, ptr %11, align 4
  store i32 1, ptr %26, align 4
  br label %722

523:                                              ; preds = %517
  %524 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %44, i32 0, i32 14
  %525 = load i32, ptr %524, align 8, !tbaa !33
  %526 = icmp eq i32 %525, 1
  br i1 %526, label %527, label %530

527:                                              ; preds = %523
  %528 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %529 = call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %528, i32 noundef 62, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 1681, i32 noundef 1)
  store i32 %529, ptr %11, align 4
  store i32 1, ptr %26, align 4
  br label %722

530:                                              ; preds = %523
  %531 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %532 = call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %531, i32 noundef 60, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 1684, i32 noundef 1)
  %533 = load i32, ptr %25, align 4, !tbaa !30
  store i32 %533, ptr %11, align 4
  store i32 1, ptr %26, align 4
  br label %722

534:                                              ; preds = %464
  %535 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %44, i32 0, i32 23
  %536 = getelementptr inbounds %"class.qpOASES::Options", ptr %535, i32 0, i32 8
  %537 = load i32, ptr %536, align 8, !tbaa !44
  %538 = icmp sgt i32 %537, 0
  br i1 %538, label %539, label %592

539:                                              ; preds = %534
  %540 = load i32, ptr %22, align 4, !tbaa !9
  %541 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %44, i32 0, i32 23
  %542 = getelementptr inbounds %"class.qpOASES::Options", ptr %541, i32 0, i32 8
  %543 = load i32, ptr %542, align 8, !tbaa !44
  %544 = srem i32 %540, %543
  %545 = icmp eq i32 %544, 0
  br i1 %545, label %546, label %592

546:                                              ; preds = %539
  %547 = load ptr, ptr %44, align 8, !tbaa !28
  %548 = getelementptr inbounds ptr, ptr %547, i64 22
  %549 = load ptr, ptr %548, align 8
  %550 = call noundef i32 %549(ptr noundef nonnull align 8 dereferenceable(1064) %44)
  store i32 %550, ptr %25, align 4, !tbaa !30
  %551 = load i32, ptr %25, align 4, !tbaa !30
  %552 = icmp ne i32 %551, 0
  br i1 %552, label %553, label %591

553:                                              ; preds = %546
  %554 = load ptr, ptr %30, align 8, !tbaa !5
  %555 = icmp eq ptr %554, null
  br i1 %555, label %557, label %556

556:                                              ; preds = %553
  call void @_ZdaPv(ptr noundef %554) #11
  br label %557

557:                                              ; preds = %556, %553
  %558 = load ptr, ptr %31, align 8, !tbaa !5
  %559 = icmp eq ptr %558, null
  br i1 %559, label %561, label %560

560:                                              ; preds = %557
  call void @_ZdaPv(ptr noundef %558) #11
  br label %561

561:                                              ; preds = %560, %557
  %562 = load ptr, ptr %29, align 8, !tbaa !5
  %563 = icmp eq ptr %562, null
  br i1 %563, label %565, label %564

564:                                              ; preds = %561
  call void @_ZdaPv(ptr noundef %562) #11
  br label %565

565:                                              ; preds = %564, %561
  %566 = load ptr, ptr %28, align 8, !tbaa !5
  %567 = icmp eq ptr %566, null
  br i1 %567, label %569, label %568

568:                                              ; preds = %565
  call void @_ZdaPv(ptr noundef %566) #11
  br label %569

569:                                              ; preds = %568, %565
  %570 = load ptr, ptr %34, align 8, !tbaa !5
  %571 = icmp eq ptr %570, null
  br i1 %571, label %573, label %572

572:                                              ; preds = %569
  call void @_ZdaPv(ptr noundef %570) #11
  br label %573

573:                                              ; preds = %572, %569
  %574 = load ptr, ptr %33, align 8, !tbaa !5
  %575 = icmp eq ptr %574, null
  br i1 %575, label %577, label %576

576:                                              ; preds = %573
  call void @_ZdaPv(ptr noundef %574) #11
  br label %577

577:                                              ; preds = %576, %573
  %578 = load ptr, ptr %36, align 8, !tbaa !5
  %579 = icmp eq ptr %578, null
  br i1 %579, label %581, label %580

580:                                              ; preds = %577
  call void @_ZdaPv(ptr noundef %578) #11
  br label %581

581:                                              ; preds = %580, %577
  %582 = load ptr, ptr %35, align 8, !tbaa !5
  %583 = icmp eq ptr %582, null
  br i1 %583, label %585, label %584

584:                                              ; preds = %581
  call void @_ZdaPv(ptr noundef %582) #11
  br label %585

585:                                              ; preds = %584, %581
  %586 = load ptr, ptr %32, align 8, !tbaa !5
  %587 = icmp eq ptr %586, null
  br i1 %587, label %589, label %588

588:                                              ; preds = %585
  call void @_ZdaPv(ptr noundef %586) #11
  br label %589

589:                                              ; preds = %588, %585
  %590 = load i32, ptr %25, align 4, !tbaa !30
  store i32 %590, ptr %11, align 4
  store i32 1, ptr %26, align 4
  br label %722

591:                                              ; preds = %546
  br label %592

592:                                              ; preds = %591, %539, %534
  %593 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %44, i32 0, i32 12
  store i32 4, ptr %593, align 8, !tbaa !15
  %594 = load i32, ptr %22, align 4, !tbaa !9
  %595 = load i32, ptr %39, align 4, !tbaa !9
  %596 = load i32, ptr %40, align 4, !tbaa !43
  %597 = load i32, ptr %41, align 4, !tbaa !11
  %598 = load double, ptr %42, align 8, !tbaa !13
  %599 = load i32, ptr %21, align 4, !tbaa !11
  %600 = call noundef i32 @_ZN7qpOASES8QProblem14printIterationEiiNS_15SubjectToStatusENS_11BooleanTypeEdS2_(ptr noundef nonnull align 8 dereferenceable(1064) %44, i32 noundef %594, i32 noundef %595, i32 noundef %596, i32 noundef %597, double noundef %598, i32 noundef %599)
  %601 = icmp ne i32 %600, 0
  br i1 %601, label %602, label %605

602:                                              ; preds = %592
  %603 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %604 = call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %603, i32 noundef 103, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 1704, i32 noundef 1)
  br label %605

605:                                              ; preds = %602, %592
  %606 = load i32, ptr %40, align 4, !tbaa !43
  %607 = icmp ne i32 %606, 4
  br i1 %607, label %608, label %642

608:                                              ; preds = %605
  %609 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %44, i32 0, i32 11
  %610 = load double, ptr %609, align 8, !tbaa !45
  %611 = fcmp ole double %610, 2.221000e-16
  br i1 %611, label %612, label %622

612:                                              ; preds = %608
  %613 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %44, i32 0, i32 23
  %614 = getelementptr inbounds %"class.qpOASES::Options", ptr %613, i32 0, i32 1
  %615 = load i32, ptr %614, align 4, !tbaa !46
  %616 = icmp eq i32 %615, 1
  br i1 %616, label %617, label %622

617:                                              ; preds = %612
  %618 = load ptr, ptr %44, align 8, !tbaa !28
  %619 = getelementptr inbounds ptr, ptr %618, i64 16
  %620 = load ptr, ptr %619, align 8
  %621 = call noundef i32 %620(ptr noundef nonnull align 8 dereferenceable(1064) %44)
  br label %641

622:                                              ; preds = %612, %608
  %623 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %44, i32 0, i32 23
  %624 = getelementptr inbounds %"class.qpOASES::Options", ptr %623, i32 0, i32 7
  %625 = load i32, ptr %624, align 4, !tbaa !47
  %626 = icmp sgt i32 %625, 0
  br i1 %626, label %627, label %640

627:                                              ; preds = %622
  %628 = load i32, ptr %22, align 4, !tbaa !9
  %629 = add nsw i32 %628, 1
  %630 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %44, i32 0, i32 23
  %631 = getelementptr inbounds %"class.qpOASES::Options", ptr %630, i32 0, i32 7
  %632 = load i32, ptr %631, align 4, !tbaa !47
  %633 = srem i32 %629, %632
  %634 = icmp eq i32 %633, 0
  br i1 %634, label %635, label %640

635:                                              ; preds = %627
  %636 = load ptr, ptr %44, align 8, !tbaa !28
  %637 = getelementptr inbounds ptr, ptr %636, i64 18
  %638 = load ptr, ptr %637, align 8
  %639 = call noundef i32 %638(ptr noundef nonnull align 8 dereferenceable(1064) %44)
  br label %640

640:                                              ; preds = %635, %627, %622
  br label %641

641:                                              ; preds = %640, %617
  br label %661

642:                                              ; preds = %605
  %643 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %44, i32 0, i32 23
  %644 = getelementptr inbounds %"class.qpOASES::Options", ptr %643, i32 0, i32 7
  %645 = load i32, ptr %644, align 4, !tbaa !47
  %646 = icmp sgt i32 %645, 0
  br i1 %646, label %647, label %660

647:                                              ; preds = %642
  %648 = load i32, ptr %22, align 4, !tbaa !9
  %649 = add nsw i32 %648, 1
  %650 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %44, i32 0, i32 23
  %651 = getelementptr inbounds %"class.qpOASES::Options", ptr %650, i32 0, i32 7
  %652 = load i32, ptr %651, align 4, !tbaa !47
  %653 = srem i32 %649, %652
  %654 = icmp eq i32 %653, 0
  br i1 %654, label %655, label %660

655:                                              ; preds = %647
  %656 = load ptr, ptr %44, align 8, !tbaa !28
  %657 = getelementptr inbounds ptr, ptr %656, i64 18
  %658 = load ptr, ptr %657, align 8
  %659 = call noundef i32 %658(ptr noundef nonnull align 8 dereferenceable(1064) %44)
  br label %660

660:                                              ; preds = %655, %647, %642
  br label %661

661:                                              ; preds = %660, %641
  br label %662

662:                                              ; preds = %661
  %663 = load i32, ptr %22, align 4, !tbaa !9
  %664 = add nsw i32 %663, 1
  store i32 %664, ptr %22, align 4, !tbaa !9
  br label %146, !llvm.loop !48

665:                                              ; preds = %175, %146
  %666 = load ptr, ptr %30, align 8, !tbaa !5
  %667 = icmp eq ptr %666, null
  br i1 %667, label %669, label %668

668:                                              ; preds = %665
  call void @_ZdaPv(ptr noundef %666) #11
  br label %669

669:                                              ; preds = %668, %665
  %670 = load ptr, ptr %31, align 8, !tbaa !5
  %671 = icmp eq ptr %670, null
  br i1 %671, label %673, label %672

672:                                              ; preds = %669
  call void @_ZdaPv(ptr noundef %670) #11
  br label %673

673:                                              ; preds = %672, %669
  %674 = load ptr, ptr %29, align 8, !tbaa !5
  %675 = icmp eq ptr %674, null
  br i1 %675, label %677, label %676

676:                                              ; preds = %673
  call void @_ZdaPv(ptr noundef %674) #11
  br label %677

677:                                              ; preds = %676, %673
  %678 = load ptr, ptr %28, align 8, !tbaa !5
  %679 = icmp eq ptr %678, null
  br i1 %679, label %681, label %680

680:                                              ; preds = %677
  call void @_ZdaPv(ptr noundef %678) #11
  br label %681

681:                                              ; preds = %680, %677
  %682 = load ptr, ptr %34, align 8, !tbaa !5
  %683 = icmp eq ptr %682, null
  br i1 %683, label %685, label %684

684:                                              ; preds = %681
  call void @_ZdaPv(ptr noundef %682) #11
  br label %685

685:                                              ; preds = %684, %681
  %686 = load ptr, ptr %33, align 8, !tbaa !5
  %687 = icmp eq ptr %686, null
  br i1 %687, label %689, label %688

688:                                              ; preds = %685
  call void @_ZdaPv(ptr noundef %686) #11
  br label %689

689:                                              ; preds = %688, %685
  %690 = load ptr, ptr %36, align 8, !tbaa !5
  %691 = icmp eq ptr %690, null
  br i1 %691, label %693, label %692

692:                                              ; preds = %689
  call void @_ZdaPv(ptr noundef %690) #11
  br label %693

693:                                              ; preds = %692, %689
  %694 = load ptr, ptr %35, align 8, !tbaa !5
  %695 = icmp eq ptr %694, null
  br i1 %695, label %697, label %696

696:                                              ; preds = %693
  call void @_ZdaPv(ptr noundef %694) #11
  br label %697

697:                                              ; preds = %696, %693
  %698 = load ptr, ptr %32, align 8, !tbaa !5
  %699 = icmp eq ptr %698, null
  br i1 %699, label %701, label %700

700:                                              ; preds = %697
  call void @_ZdaPv(ptr noundef %698) #11
  br label %701

701:                                              ; preds = %700, %697
  %702 = load ptr, ptr %19, align 8, !tbaa !5
  %703 = icmp ne ptr %702, null
  br i1 %703, label %704, label %709

704:                                              ; preds = %701
  %705 = call noundef double @_ZN7qpOASES10getCPUtimeEv()
  %706 = load double, ptr %27, align 8, !tbaa !13
  %707 = fsub double %705, %706
  %708 = load ptr, ptr %19, align 8, !tbaa !5
  store double %707, ptr %708, align 8, !tbaa !13
  br label %709

709:                                              ; preds = %704, %701
  %710 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %44, i32 0, i32 23
  %711 = getelementptr inbounds %"class.qpOASES::Options", ptr %710, i32 0, i32 0
  %712 = load i32, ptr %711, align 8, !tbaa !50
  %713 = icmp eq i32 %712, 3
  br i1 %713, label %714, label %721

714:                                              ; preds = %709
  %715 = getelementptr inbounds [160 x i8], ptr %43, i64 0, i64 0
  %716 = load i32, ptr %22, align 4, !tbaa !9
  %717 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef %715, i64 noundef 160, ptr noundef @.str.40, i32 noundef %716) #9
  %718 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %719 = getelementptr inbounds [160 x i8], ptr %43, i64 0, i64 0
  %720 = call noundef i32 @_ZN7qpOASES15MessageHandling12throwWarningENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %718, i32 noundef 64, ptr noundef %719, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 1738, i32 noundef 1)
  store i32 %720, ptr %11, align 4
  store i32 1, ptr %26, align 4
  br label %722

721:                                              ; preds = %709
  store i32 64, ptr %11, align 4
  store i32 1, ptr %26, align 4
  br label %722

722:                                              ; preds = %721, %714, %589, %530, %527, %520, %463, %384, %321, %253
  call void @llvm.lifetime.end.p0(i64 160, ptr %43) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #9
  br label %723

723:                                              ; preds = %722, %75
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #9
  br label %724

724:                                              ; preds = %723, %55
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #9
  %725 = load i32, ptr %11, align 4
  ret i32 %725
}

declare noundef i32 @_ZNK7qpOASES9QProblemB22isCPUtimeLimitExceededEPKddi(ptr noundef nonnull align 8 dereferenceable(800), ptr noundef, double noundef, i32 noundef) #1

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN7qpOASES8QProblem14printIterationEiiNS_15SubjectToStatusENS_11BooleanTypeEdS2_(ptr noundef nonnull align 8 dereferenceable(1064), i32 noundef, i32 noundef, i32 noundef, i32 noundef, double noundef, i32 noundef) #8 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN7qpOASES8QProblem15changeActiveSetEiNS_15SubjectToStatusENS_11BooleanTypeE(ptr noundef nonnull align 8 dereferenceable(1064), i32 noundef, i32 noundef, i32 noundef) #8 align 2

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #3 = { nobuiltin allocsize(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 = { nobuiltin nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint mustprogress 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 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind "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 #8 = { 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 #9 = { nounwind }
attributes #10 = { builtin allocsize(0) }
attributes #11 = { builtin 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 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_ZTSN7qpOASES11BooleanTypeE", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"double", !7, i64 0}
!15 = !{!16, !20, i64 208}
!16 = !{!"_ZTSN7qpOASES9QProblemBE", !12, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !17, i64 48, !6, i64 168, !12, i64 176, !6, i64 184, !6, i64 192, !14, i64 200, !20, i64 208, !12, i64 212, !12, i64 216, !21, i64 220, !14, i64 224, !10, i64 232, !6, i64 240, !14, i64 248, !14, i64 256, !10, i64 264, !22, i64 272, !25, i64 496, !27, i64 768}
!17 = !{!"_ZTSN7qpOASES6BoundsE", !18, i64 0, !19, i64 40, !19, i64 80}
!18 = !{!"_ZTSN7qpOASES9SubjectToE", !10, i64 8, !6, i64 16, !6, i64 24, !12, i64 32, !12, i64 36}
!19 = !{!"_ZTSN7qpOASES9IndexlistE", !6, i64 0, !6, i64 8, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28, !10, i64 32}
!20 = !{!"_ZTSN7qpOASES14QProblemStatusE", !7, i64 0}
!21 = !{!"_ZTSN7qpOASES11HessianTypeE", !7, i64 0}
!22 = !{!"_ZTSN7qpOASES7OptionsE", !23, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !12, i64 16, !12, i64 20, !12, i64 24, !10, i64 28, !10, i64 32, !12, i64 36, !14, i64 40, !14, i64 48, !14, i64 56, !14, i64 64, !14, i64 72, !14, i64 80, !14, i64 88, !14, i64 96, !14, i64 104, !14, i64 112, !14, i64 120, !24, i64 128, !14, i64 136, !10, i64 144, !14, i64 152, !10, i64 160, !14, i64 168, !14, i64 176, !14, i64 184, !14, i64 192, !12, i64 200, !12, i64 204, !10, i64 208, !10, i64 212, !10, i64 216}
!23 = !{!"_ZTSN7qpOASES10PrintLevelE", !7, i64 0}
!24 = !{!"_ZTSN7qpOASES15SubjectToStatusE", !7, i64 0}
!25 = !{!"_ZTSN7qpOASES7FlipperE", !10, i64 0, !10, i64 4, !17, i64 8, !26, i64 128, !6, i64 248, !6, i64 256, !6, i64 264}
!26 = !{!"_ZTSN7qpOASES11ConstraintsE", !18, i64 0, !19, i64 40, !19, i64 80}
!27 = !{!"_ZTSN7qpOASES13TabularOutputE", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28}
!28 = !{!29, !29, i64 0}
!29 = !{!"vtable pointer", !8, i64 0}
!30 = !{!31, !31, i64 0}
!31 = !{!"_ZTSN7qpOASES11returnValueE", !7, i64 0}
!32 = !{!16, !12, i64 212}
!33 = !{!16, !12, i64 216}
!34 = !{!16, !10, i64 780}
!35 = !{!16, !10, i64 776}
!36 = !{!16, !10, i64 772}
!37 = !{!16, !10, i64 768}
!38 = !{!16, !10, i64 796}
!39 = !{!16, !10, i64 792}
!40 = !{!16, !10, i64 788}
!41 = !{!16, !10, i64 784}
!42 = !{!16, !14, i64 312}
!43 = !{!24, !24, i64 0}
!44 = !{!16, !10, i64 304}
!45 = !{!16, !14, i64 200}
!46 = !{!16, !12, i64 276}
!47 = !{!16, !10, i64 300}
!48 = distinct !{!48, !49}
!49 = !{!"llvm.loop.mustprogress"}
!50 = !{!16, !23, i64 272}


; 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"

@.str = external hidden unnamed_addr constant [28 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [12 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 noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv() local_unnamed_addr #1

declare noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28), i32 noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, i32 noundef) local_unnamed_addr #1

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znam(i64 noundef) local_unnamed_addr #2

; Function Attrs: nobuiltin nounwind
declare void @_ZdaPv(ptr noundef) local_unnamed_addr #3

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZNK7qpOASES9QProblemB5getNVEv(ptr noundef nonnull align 8 dereferenceable(800)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZNK7qpOASES8QProblem5getNCEv(ptr noundef nonnull align 8 dereferenceable(1064)) local_unnamed_addr #4 align 2

declare noundef i32 @_ZN7qpOASES15MessageHandling12throwWarningENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28), i32 noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, i32 noundef) local_unnamed_addr #1

declare noundef double @_ZN7qpOASES10getCPUtimeEv() local_unnamed_addr #1

declare noundef i32 @_ZN7qpOASES9QProblemB20setInfeasibilityFlagENS_11returnValueENS_11BooleanTypeE(ptr noundef nonnull align 8 dereferenceable(800), i32 noundef, i32 noundef) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK7qpOASES9QProblemB9getStatusEv(ptr noundef nonnull align 8 dereferenceable(800)) local_unnamed_addr #5 align 2

; Function Attrs: nofree nounwind
declare noundef i32 @snprintf(ptr noalias nocapture noundef writeonly, i64 noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK7qpOASES9QProblemB12isInfeasibleEv(ptr noundef nonnull align 8 dereferenceable(800)) local_unnamed_addr #5 align 2

declare noundef i32 @_ZN7qpOASES15MessageHandling9throwInfoENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28), i32 noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, i32 noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN7qpOASES8QProblem7solveQPEPKdS2_S2_S2_S2_RiPdiNS_11BooleanTypeE(ptr noundef nonnull align 8 dereferenceable(1064) %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr nocapture noundef nonnull align 4 dereferenceable(4) %6, ptr noundef %7, i32 noundef %8, i32 noundef %9) local_unnamed_addr #7 align 2 {
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca [160 x i8], align 16
  %17 = tail call noundef i32 @_ZNK7qpOASES9QProblemB5getNVEv(ptr noundef nonnull align 8 dereferenceable(800) %0)
  %18 = tail call noundef i32 @_ZNK7qpOASES8QProblem5getNCEv(ptr noundef nonnull align 8 dereferenceable(1064) %0)
  %19 = tail call noundef i32 @_ZNK7qpOASES9QProblemB9getStatusEv(ptr noundef nonnull align 8 dereferenceable(800) %0)
  %20 = icmp eq i32 %19, 0
  br i1 %20, label %27, label %21

21:                                               ; preds = %10
  %22 = tail call noundef i32 @_ZNK7qpOASES9QProblemB9getStatusEv(ptr noundef nonnull align 8 dereferenceable(800) %0)
  %23 = icmp eq i32 %22, 1
  br i1 %23, label %27, label %24

24:                                               ; preds = %21
  %25 = tail call noundef i32 @_ZNK7qpOASES9QProblemB9getStatusEv(ptr noundef nonnull align 8 dereferenceable(800) %0)
  %26 = icmp eq i32 %25, 3
  br i1 %26, label %27, label %30

27:                                               ; preds = %24, %21, %10
  %28 = tail call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %29 = tail call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %28, i32 noundef 54, ptr noundef null, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef 1495, i32 noundef 1)
  br label %216

30:                                               ; preds = %24
  %.not = icmp eq ptr %7, null
  br i1 %.not, label %33, label %31

31:                                               ; preds = %30
  %32 = tail call noundef double @_ZN7qpOASES10getCPUtimeEv()
  br label %33

33:                                               ; preds = %31, %30
  %.0176 = phi double [ %32, %31 ], [ 0.000000e+00, %30 ]
  %34 = getelementptr inbounds i8, ptr %0, i64 208
  store i32 3, ptr %34, align 8, !tbaa !5
  %35 = load ptr, ptr %0, align 8, !tbaa !24
  %36 = getelementptr inbounds i8, ptr %35, i64 160
  %37 = load ptr, ptr %36, align 8
  %38 = tail call noundef i32 %37(ptr noundef nonnull align 8 dereferenceable(1064) %0, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5)
  %.not191 = icmp eq i32 %38, 0
  br i1 %.not191, label %42, label %39

39:                                               ; preds = %33
  %40 = tail call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %41 = tail call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %40, i32 noundef 52, ptr noundef null, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef 1508, i32 noundef 1)
  br label %216

42:                                               ; preds = %33
  %43 = zext nneg i32 %17 to i64
  %44 = icmp slt i32 %17, 0
  %45 = shl nuw nsw i64 %43, 3
  %46 = select i1 %44, i64 -1, i64 %45
  %47 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %46) #9
  %48 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %46) #9
  %49 = zext nneg i32 %18 to i64
  %50 = icmp slt i32 %18, 0
  %51 = shl nuw nsw i64 %49, 3
  %52 = select i1 %50, i64 -1, i64 %51
  %53 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %52) #9
  %54 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %46) #9
  %55 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %46) #9
  %56 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %46) #9
  %57 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %46) #9
  %58 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %52) #9
  %59 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %52) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #10
  call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %16) #10
  %60 = getelementptr inbounds i8, ptr %0, i64 212
  store i32 0, ptr %60, align 4, !tbaa !26
  %61 = getelementptr inbounds i8, ptr %0, i64 216
  store i32 0, ptr %61, align 8, !tbaa !27
  %62 = load i32, ptr %6, align 4, !tbaa !28
  %63 = icmp sgt i32 %62, %8
  br i1 %63, label %.lr.ph, label %.loopexit

.lr.ph:                                           ; preds = %42
  %64 = getelementptr inbounds i8, ptr %0, i64 768
  %65 = getelementptr inbounds i8, ptr %0, i64 784
  %66 = icmp eq i32 %9, 1
  %67 = getelementptr inbounds i8, ptr %0, i64 312
  %68 = getelementptr inbounds i8, ptr %0, i64 304
  %69 = getelementptr inbounds i8, ptr %0, i64 200
  %70 = getelementptr inbounds i8, ptr %0, i64 276
  %71 = getelementptr inbounds i8, ptr %0, i64 300
  %.str.38..str.39 = select i1 %66, ptr @.str.38, ptr @.str.39
  br label %72

72:                                               ; preds = %.lr.ph, %200
  %.0175230 = phi i32 [ %8, %.lr.ph ], [ %201, %200 ]
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %64, i8 -1, i64 16, i1 false)
  %73 = sub nsw i32 %.0175230, %8
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %65, i8 0, i64 16, i1 false)
  %74 = call noundef i32 @_ZNK7qpOASES9QProblemB22isCPUtimeLimitExceededEPKddi(ptr noundef nonnull align 8 dereferenceable(800) %0, ptr noundef %7, double noundef %.0176, i32 noundef %73)
  %75 = icmp eq i32 %74, 1
  br i1 %75, label %76, label %77

76:                                               ; preds = %72
  store i32 %.0175230, ptr %6, align 4, !tbaa !28
  br label %.loopexit

77:                                               ; preds = %72
  store i32 3, ptr %34, align 8, !tbaa !5
  %78 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %16, i64 noundef 160, ptr noundef nonnull %.str.38..str.39, i32 noundef %.0175230) #10
  %79 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %80 = call noundef i32 @_ZN7qpOASES15MessageHandling9throwInfoENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %79, i32 noundef 55, ptr noundef nonnull %16, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef 1575, i32 noundef 1)
  %81 = call noundef i32 @_ZN7qpOASES8QProblem18determineDataShiftEPKdS2_S2_S2_S2_PdS3_S3_S3_S3_RNS_11BooleanTypeES5_(ptr noundef nonnull align 8 dereferenceable(1064) %0, ptr noundef %1, ptr noundef %4, ptr noundef %5, ptr noundef %2, ptr noundef %3, ptr noundef nonnull %55, ptr noundef nonnull %58, ptr noundef nonnull %59, ptr noundef nonnull %56, ptr noundef nonnull %57, ptr noundef nonnull align 4 dereferenceable(4) %11, ptr noundef nonnull align 4 dereferenceable(4) %12)
  %.not192 = icmp eq i32 %81, 0
  br i1 %.not192, label %89, label %82

82:                                               ; preds = %77
  call void @_ZdaPv(ptr noundef nonnull %53) #11
  call void @_ZdaPv(ptr noundef nonnull %54) #11
  call void @_ZdaPv(ptr noundef nonnull %48) #11
  call void @_ZdaPv(ptr noundef nonnull %47) #11
  call void @_ZdaPv(ptr noundef nonnull %57) #11
  call void @_ZdaPv(ptr noundef nonnull %56) #11
  call void @_ZdaPv(ptr noundef nonnull %59) #11
  call void @_ZdaPv(ptr noundef nonnull %58) #11
  call void @_ZdaPv(ptr noundef nonnull %55) #11
  store i32 %.0175230, ptr %6, align 4, !tbaa !28
  br i1 %.not, label %86, label %83

83:                                               ; preds = %82
  %84 = call noundef double @_ZN7qpOASES10getCPUtimeEv()
  %85 = fsub double %84, %.0176
  store double %85, ptr %7, align 8, !tbaa !29
  br label %86

86:                                               ; preds = %83, %82
  %87 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %88 = call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %87, i32 noundef 56, ptr noundef null, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef 1593, i32 noundef 1)
  br label %215

89:                                               ; preds = %77
  %90 = load i32, ptr %11, align 4, !tbaa !30
  %91 = load i32, ptr %12, align 4, !tbaa !30
  %92 = load ptr, ptr %0, align 8, !tbaa !24
  %93 = getelementptr inbounds i8, ptr %92, i64 272
  %94 = load ptr, ptr %93, align 8
  %95 = call noundef i32 %94(ptr noundef nonnull align 8 dereferenceable(1064) %0, ptr noundef nonnull %55, ptr noundef nonnull %58, ptr noundef nonnull %59, ptr noundef nonnull %56, ptr noundef nonnull %57, i32 noundef %90, i32 noundef %91, ptr noundef nonnull %48, ptr noundef nonnull %47, ptr noundef nonnull %53, ptr noundef nonnull %54)
  %.not193 = icmp eq i32 %95, 0
  br i1 %.not193, label %103, label %96

96:                                               ; preds = %89
  call void @_ZdaPv(ptr noundef nonnull %53) #11
  call void @_ZdaPv(ptr noundef nonnull %54) #11
  call void @_ZdaPv(ptr noundef nonnull %48) #11
  call void @_ZdaPv(ptr noundef nonnull %47) #11
  call void @_ZdaPv(ptr noundef nonnull %57) #11
  call void @_ZdaPv(ptr noundef nonnull %56) #11
  call void @_ZdaPv(ptr noundef nonnull %59) #11
  call void @_ZdaPv(ptr noundef nonnull %58) #11
  call void @_ZdaPv(ptr noundef nonnull %55) #11
  store i32 %.0175230, ptr %6, align 4, !tbaa !28
  br i1 %.not, label %100, label %97

97:                                               ; preds = %96
  %98 = call noundef double @_ZN7qpOASES10getCPUtimeEv()
  %99 = fsub double %98, %.0176
  store double %99, ptr %7, align 8, !tbaa !29
  br label %100

100:                                              ; preds = %97, %96
  %101 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %102 = call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %101, i32 noundef 57, ptr noundef null, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef 1612, i32 noundef 1)
  br label %215

103:                                              ; preds = %89
  %104 = call noundef i32 @_ZN7qpOASES8QProblem11performStepEPKdS2_S2_S2_S2_S2_S2_S2_S2_RiRNS_15SubjectToStatusERNS_11BooleanTypeE(ptr noundef nonnull align 8 dereferenceable(1064) %0, ptr noundef nonnull %55, ptr noundef nonnull %58, ptr noundef nonnull %59, ptr noundef nonnull %56, ptr noundef nonnull %57, ptr noundef nonnull %48, ptr noundef nonnull %47, ptr noundef nonnull %53, ptr noundef nonnull %54, ptr noundef nonnull align 4 dereferenceable(4) %13, ptr noundef nonnull align 4 dereferenceable(4) %14, ptr noundef nonnull align 4 dereferenceable(4) %15)
  %.not194 = icmp eq i32 %104, 0
  br i1 %.not194, label %112, label %105

105:                                              ; preds = %103
  call void @_ZdaPv(ptr noundef nonnull %53) #11
  call void @_ZdaPv(ptr noundef nonnull %54) #11
  call void @_ZdaPv(ptr noundef nonnull %48) #11
  call void @_ZdaPv(ptr noundef nonnull %47) #11
  call void @_ZdaPv(ptr noundef nonnull %57) #11
  call void @_ZdaPv(ptr noundef nonnull %56) #11
  call void @_ZdaPv(ptr noundef nonnull %59) #11
  call void @_ZdaPv(ptr noundef nonnull %58) #11
  call void @_ZdaPv(ptr noundef nonnull %55) #11
  store i32 %.0175230, ptr %6, align 4, !tbaa !28
  br i1 %.not, label %109, label %106

106:                                              ; preds = %105
  %107 = call noundef double @_ZN7qpOASES10getCPUtimeEv()
  %108 = fsub double %107, %.0176
  store double %108, ptr %7, align 8, !tbaa !29
  br label %109

109:                                              ; preds = %106, %105
  %110 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %111 = call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %110, i32 noundef 58, ptr noundef null, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef 1632, i32 noundef 1)
  br label %215

112:                                              ; preds = %103
  %113 = call noundef i32 @_ZNK7qpOASES9QProblemB5getNVEv(ptr noundef nonnull align 8 dereferenceable(800) %0)
  %114 = call noundef i32 @_ZNK7qpOASES8QProblem5getNCEv(ptr noundef nonnull align 8 dereferenceable(1064) %0)
  %115 = call noundef double @_ZN7qpOASES8QProblem25getRelativeHomotopyLengthEPKdS2_S2_S2_S2_(ptr noundef nonnull align 8 dereferenceable(1064) %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5)
  %116 = load double, ptr %67, align 8, !tbaa !31
  %117 = fcmp ugt double %115, %116
  br i1 %117, label %133, label %118

118:                                              ; preds = %112
  store i32 5, ptr %34, align 8, !tbaa !5
  %119 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %120 = call noundef i32 @_ZN7qpOASES15MessageHandling9throwInfoENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %119, i32 noundef 59, ptr noundef null, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef 1645, i32 noundef 1)
  %121 = load i32, ptr %13, align 4, !tbaa !28
  %122 = load i32, ptr %14, align 4, !tbaa !32
  %123 = load i32, ptr %15, align 4, !tbaa !30
  %124 = call noundef i32 @_ZN7qpOASES8QProblem14printIterationEiiNS_15SubjectToStatusENS_11BooleanTypeEdS2_(ptr noundef nonnull align 8 dereferenceable(1064) %0, i32 noundef %.0175230, i32 noundef %121, i32 noundef %122, i32 noundef %123, double noundef %115, i32 noundef %9)
  %.not199 = icmp eq i32 %124, 0
  br i1 %.not199, label %128, label %125

125:                                              ; preds = %118
  %126 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %127 = call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %126, i32 noundef 103, ptr noundef null, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef 1648, i32 noundef 1)
  br label %128

128:                                              ; preds = %125, %118
  store i32 %.0175230, ptr %6, align 4, !tbaa !28
  br i1 %.not, label %132, label %129

129:                                              ; preds = %128
  %130 = call noundef double @_ZN7qpOASES10getCPUtimeEv()
  %131 = fsub double %130, %.0176
  store double %131, ptr %7, align 8, !tbaa !29
  br label %132

132:                                              ; preds = %128, %129
  call void @_ZdaPv(ptr noundef nonnull %53) #11
  call void @_ZdaPv(ptr noundef nonnull %54) #11
  call void @_ZdaPv(ptr noundef nonnull %48) #11
  call void @_ZdaPv(ptr noundef nonnull %47) #11
  call void @_ZdaPv(ptr noundef nonnull %57) #11
  call void @_ZdaPv(ptr noundef nonnull %56) #11
  call void @_ZdaPv(ptr noundef nonnull %59) #11
  call void @_ZdaPv(ptr noundef nonnull %58) #11
  call void @_ZdaPv(ptr noundef nonnull %55) #11
  br label %215

133:                                              ; preds = %112
  %134 = load i32, ptr %13, align 4, !tbaa !28
  %135 = load i32, ptr %14, align 4, !tbaa !32
  %136 = load i32, ptr %15, align 4, !tbaa !30
  %137 = call noundef i32 @_ZN7qpOASES8QProblem15changeActiveSetEiNS_15SubjectToStatusENS_11BooleanTypeE(ptr noundef nonnull align 8 dereferenceable(1064) %0, i32 noundef %134, i32 noundef %135, i32 noundef %136)
  %.not195 = icmp eq i32 %137, 0
  br i1 %.not195, label %155, label %138

138:                                              ; preds = %133
  call void @_ZdaPv(ptr noundef nonnull %53) #11
  call void @_ZdaPv(ptr noundef nonnull %54) #11
  call void @_ZdaPv(ptr noundef nonnull %48) #11
  call void @_ZdaPv(ptr noundef nonnull %47) #11
  call void @_ZdaPv(ptr noundef nonnull %57) #11
  call void @_ZdaPv(ptr noundef nonnull %56) #11
  call void @_ZdaPv(ptr noundef nonnull %59) #11
  call void @_ZdaPv(ptr noundef nonnull %58) #11
  call void @_ZdaPv(ptr noundef nonnull %55) #11
  store i32 %.0175230, ptr %6, align 4, !tbaa !28
  br i1 %.not, label %142, label %139

139:                                              ; preds = %138
  %140 = call noundef double @_ZN7qpOASES10getCPUtimeEv()
  %141 = fsub double %140, %.0176
  store double %141, ptr %7, align 8, !tbaa !29
  br label %142

142:                                              ; preds = %139, %138
  %143 = call noundef i32 @_ZNK7qpOASES9QProblemB12isInfeasibleEv(ptr noundef nonnull align 8 dereferenceable(800) %0)
  %144 = icmp eq i32 %143, 1
  br i1 %144, label %145, label %147

145:                                              ; preds = %142
  store i32 4, ptr %34, align 8, !tbaa !5
  %146 = call noundef i32 @_ZN7qpOASES9QProblemB20setInfeasibilityFlagENS_11returnValueENS_11BooleanTypeE(ptr noundef nonnull align 8 dereferenceable(800) %0, i32 noundef 61, i32 noundef 0)
  br label %215

147:                                              ; preds = %142
  %148 = load i32, ptr %61, align 8, !tbaa !27
  %149 = icmp eq i32 %148, 1
  %150 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  br i1 %149, label %151, label %153

151:                                              ; preds = %147
  %152 = call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %150, i32 noundef 62, ptr noundef null, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef 1681, i32 noundef 1)
  br label %215

153:                                              ; preds = %147
  %154 = call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %150, i32 noundef 60, ptr noundef null, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef 1684, i32 noundef 1)
  br label %215

155:                                              ; preds = %133
  %156 = load i32, ptr %68, align 8, !tbaa !33
  %157 = icmp sgt i32 %156, 0
  br i1 %157, label %158, label %167

158:                                              ; preds = %155
  %159 = srem i32 %.0175230, %156
  %160 = icmp eq i32 %159, 0
  br i1 %160, label %161, label %167

161:                                              ; preds = %158
  %162 = load ptr, ptr %0, align 8, !tbaa !24
  %163 = getelementptr inbounds i8, ptr %162, i64 176
  %164 = load ptr, ptr %163, align 8
  %165 = call noundef i32 %164(ptr noundef nonnull align 8 dereferenceable(1064) %0)
  %.not196 = icmp eq i32 %165, 0
  br i1 %.not196, label %167, label %166

166:                                              ; preds = %161
  call void @_ZdaPv(ptr noundef nonnull %53) #11
  call void @_ZdaPv(ptr noundef nonnull %54) #11
  call void @_ZdaPv(ptr noundef nonnull %48) #11
  call void @_ZdaPv(ptr noundef nonnull %47) #11
  call void @_ZdaPv(ptr noundef nonnull %57) #11
  call void @_ZdaPv(ptr noundef nonnull %56) #11
  call void @_ZdaPv(ptr noundef nonnull %59) #11
  call void @_ZdaPv(ptr noundef nonnull %58) #11
  call void @_ZdaPv(ptr noundef nonnull %55) #11
  br label %215

167:                                              ; preds = %161, %158, %155
  store i32 4, ptr %34, align 8, !tbaa !5
  %168 = load i32, ptr %13, align 4, !tbaa !28
  %169 = load i32, ptr %14, align 4, !tbaa !32
  %170 = load i32, ptr %15, align 4, !tbaa !30
  %171 = call noundef i32 @_ZN7qpOASES8QProblem14printIterationEiiNS_15SubjectToStatusENS_11BooleanTypeEdS2_(ptr noundef nonnull align 8 dereferenceable(1064) %0, i32 noundef %.0175230, i32 noundef %168, i32 noundef %169, i32 noundef %170, double noundef %115, i32 noundef %9)
  %.not197 = icmp eq i32 %171, 0
  br i1 %.not197, label %175, label %172

172:                                              ; preds = %167
  %173 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %174 = call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %173, i32 noundef 103, ptr noundef null, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef 1704, i32 noundef 1)
  br label %175

175:                                              ; preds = %172, %167
  %176 = load i32, ptr %14, align 4, !tbaa !32
  %.not198 = icmp eq i32 %176, 4
  br i1 %.not198, label %189, label %177

177:                                              ; preds = %175
  %178 = load double, ptr %69, align 8, !tbaa !34
  %179 = fcmp ole double %178, 2.221000e-16
  %180 = load i32, ptr %70, align 4
  %181 = icmp eq i32 %180, 1
  %or.cond = select i1 %179, i1 %181, i1 false
  br i1 %or.cond, label %.sink.split, label %182

182:                                              ; preds = %177
  %183 = load i32, ptr %71, align 4, !tbaa !35
  %184 = icmp sgt i32 %183, 0
  br i1 %184, label %185, label %200

185:                                              ; preds = %182
  %186 = add nsw i32 %.0175230, 1
  %187 = srem i32 %186, %183
  %188 = icmp eq i32 %187, 0
  br i1 %188, label %.sink.split, label %200

189:                                              ; preds = %175
  %190 = load i32, ptr %71, align 4, !tbaa !35
  %191 = icmp sgt i32 %190, 0
  br i1 %191, label %192, label %200

192:                                              ; preds = %189
  %193 = add nsw i32 %.0175230, 1
  %194 = srem i32 %193, %190
  %195 = icmp eq i32 %194, 0
  br i1 %195, label %.sink.split, label %200

.sink.split:                                      ; preds = %192, %185, %177
  %.sink298 = phi i64 [ 128, %177 ], [ 144, %185 ], [ 144, %192 ]
  %196 = load ptr, ptr %0, align 8, !tbaa !24
  %197 = getelementptr inbounds i8, ptr %196, i64 %.sink298
  %198 = load ptr, ptr %197, align 8
  %199 = call noundef i32 %198(ptr noundef nonnull align 8 dereferenceable(1064) %0)
  br label %200

200:                                              ; preds = %.sink.split, %182, %185, %192, %189
  %201 = add nsw i32 %.0175230, 1
  %202 = load i32, ptr %6, align 4, !tbaa !28
  %203 = icmp slt i32 %201, %202
  br i1 %203, label %72, label %.loopexit, !llvm.loop !36

.loopexit:                                        ; preds = %200, %42, %76
  %.0175209 = phi i32 [ %.0175230, %76 ], [ %8, %42 ], [ %201, %200 ]
  call void @_ZdaPv(ptr noundef nonnull %53) #11
  call void @_ZdaPv(ptr noundef nonnull %54) #11
  call void @_ZdaPv(ptr noundef nonnull %48) #11
  call void @_ZdaPv(ptr noundef nonnull %47) #11
  call void @_ZdaPv(ptr noundef nonnull %57) #11
  call void @_ZdaPv(ptr noundef nonnull %56) #11
  call void @_ZdaPv(ptr noundef nonnull %59) #11
  call void @_ZdaPv(ptr noundef nonnull %58) #11
  call void @_ZdaPv(ptr noundef nonnull %55) #11
  br i1 %.not, label %207, label %204

204:                                              ; preds = %.loopexit
  %205 = call noundef double @_ZN7qpOASES10getCPUtimeEv()
  %206 = fsub double %205, %.0176
  store double %206, ptr %7, align 8, !tbaa !29
  br label %207

207:                                              ; preds = %204, %.loopexit
  %208 = getelementptr inbounds i8, ptr %0, i64 272
  %209 = load i32, ptr %208, align 8, !tbaa !38
  %210 = icmp eq i32 %209, 3
  br i1 %210, label %211, label %215

211:                                              ; preds = %207
  %212 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %16, i64 noundef 160, ptr noundef nonnull @.str.40, i32 noundef %.0175209) #10
  %213 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %214 = call noundef i32 @_ZN7qpOASES15MessageHandling12throwWarningENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %213, i32 noundef 64, ptr noundef nonnull %16, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef 1738, i32 noundef 1)
  br label %215

215:                                              ; preds = %207, %211, %166, %153, %151, %145, %132, %109, %100, %86
  %.0 = phi i32 [ %214, %211 ], [ %81, %86 ], [ %95, %100 ], [ %104, %109 ], [ 0, %132 ], [ %146, %145 ], [ %152, %151 ], [ %137, %153 ], [ %165, %166 ], [ 64, %207 ]
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %16) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #10
  br label %216

216:                                              ; preds = %39, %215, %27
  %.2 = phi i32 [ %29, %27 ], [ %38, %39 ], [ %.0, %215 ]
  ret i32 %.2
}

declare noundef i32 @_ZNK7qpOASES9QProblemB22isCPUtimeLimitExceededEPKddi(ptr noundef nonnull align 8 dereferenceable(800), ptr noundef, double noundef, i32 noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN7qpOASES8QProblem18determineDataShiftEPKdS2_S2_S2_S2_PdS3_S3_S3_S3_RNS_11BooleanTypeES5_(ptr noundef nonnull align 8 dereferenceable(1064), ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN7qpOASES8QProblem11performStepEPKdS2_S2_S2_S2_S2_S2_S2_S2_RiRNS_15SubjectToStatusERNS_11BooleanTypeE(ptr noundef nonnull align 8 dereferenceable(1064), ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN7qpOASES8QProblem25getRelativeHomotopyLengthEPKdS2_S2_S2_S2_(ptr noundef nonnull align 8 dereferenceable(1064), ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN7qpOASES8QProblem14printIterationEiiNS_15SubjectToStatusENS_11BooleanTypeEdS2_(ptr noundef nonnull align 8 dereferenceable(1064), i32 noundef, i32 noundef, i32 noundef, i32 noundef, double noundef, i32 noundef) local_unnamed_addr #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN7qpOASES8QProblem15changeActiveSetEiNS_15SubjectToStatusENS_11BooleanTypeE(ptr noundef nonnull align 8 dereferenceable(1064), i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #7 align 2

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "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 = { nobuiltin allocsize(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 = { nobuiltin nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 #5 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { 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 #8 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { builtin allocsize(0) }
attributes #10 = { nounwind }
attributes #11 = { builtin 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, !16, i64 208}
!6 = !{!"_ZTSN7qpOASES9QProblemBE", !7, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !11, i64 48, !10, i64 168, !7, i64 176, !10, i64 184, !10, i64 192, !15, i64 200, !16, i64 208, !7, i64 212, !7, i64 216, !17, i64 220, !15, i64 224, !13, i64 232, !10, i64 240, !15, i64 248, !15, i64 256, !13, i64 264, !18, i64 272, !21, i64 496, !23, i64 768}
!7 = !{!"_ZTSN7qpOASES11BooleanTypeE", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"any pointer", !8, i64 0}
!11 = !{!"_ZTSN7qpOASES6BoundsE", !12, i64 0, !14, i64 40, !14, i64 80}
!12 = !{!"_ZTSN7qpOASES9SubjectToE", !13, i64 8, !10, i64 16, !10, i64 24, !7, i64 32, !7, i64 36}
!13 = !{!"int", !8, i64 0}
!14 = !{!"_ZTSN7qpOASES9IndexlistE", !10, i64 0, !10, i64 8, !13, i64 16, !13, i64 20, !13, i64 24, !13, i64 28, !13, i64 32}
!15 = !{!"double", !8, i64 0}
!16 = !{!"_ZTSN7qpOASES14QProblemStatusE", !8, i64 0}
!17 = !{!"_ZTSN7qpOASES11HessianTypeE", !8, i64 0}
!18 = !{!"_ZTSN7qpOASES7OptionsE", !19, i64 0, !7, i64 4, !7, i64 8, !7, i64 12, !7, i64 16, !7, i64 20, !7, i64 24, !13, i64 28, !13, i64 32, !7, i64 36, !15, i64 40, !15, i64 48, !15, i64 56, !15, i64 64, !15, i64 72, !15, i64 80, !15, i64 88, !15, i64 96, !15, i64 104, !15, i64 112, !15, i64 120, !20, i64 128, !15, i64 136, !13, i64 144, !15, i64 152, !13, i64 160, !15, i64 168, !15, i64 176, !15, i64 184, !15, i64 192, !7, i64 200, !7, i64 204, !13, i64 208, !13, i64 212, !13, i64 216}
!19 = !{!"_ZTSN7qpOASES10PrintLevelE", !8, i64 0}
!20 = !{!"_ZTSN7qpOASES15SubjectToStatusE", !8, i64 0}
!21 = !{!"_ZTSN7qpOASES7FlipperE", !13, i64 0, !13, i64 4, !11, i64 8, !22, i64 128, !10, i64 248, !10, i64 256, !10, i64 264}
!22 = !{!"_ZTSN7qpOASES11ConstraintsE", !12, i64 0, !14, i64 40, !14, i64 80}
!23 = !{!"_ZTSN7qpOASES13TabularOutputE", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !13, i64 16, !13, i64 20, !13, i64 24, !13, i64 28}
!24 = !{!25, !25, i64 0}
!25 = !{!"vtable pointer", !9, i64 0}
!26 = !{!6, !7, i64 212}
!27 = !{!6, !7, i64 216}
!28 = !{!13, !13, i64 0}
!29 = !{!15, !15, i64 0}
!30 = !{!7, !7, i64 0}
!31 = !{!6, !15, i64 312}
!32 = !{!20, !20, i64 0}
!33 = !{!6, !13, i64 304}
!34 = !{!6, !15, i64 200}
!35 = !{!6, !13, i64 300}
!36 = distinct !{!36, !37}
!37 = !{!"llvm.loop.mustprogress"}
!38 = !{!6, !19, i64 272}


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