; 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 }
%"class.qpOASES::QProblem" = type { %"class.qpOASES::QProblemB", i32, ptr, ptr, ptr, %"class.qpOASES::Constraints", ptr, ptr, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }

@.str = external hidden unnamed_addr constant [28 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [103 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 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)) #2 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40), i32 noundef) #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK7qpOASES9SubjectTo7getTypeEi(ptr noundef nonnull align 8 dereferenceable(40), i32 noundef) #3 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN7qpOASES8QProblem24setupAuxiliaryWorkingSetEPKNS_6BoundsEPKNS_11ConstraintsENS_11BooleanTypeE(ptr noundef nonnull align 8 dereferenceable(1064) %0, ptr noundef %1, ptr noundef %2, i32 noundef %3) unnamed_addr #4 align 2 {
  %5 = alloca i32, align 4
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %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 i32, align 4
  %17 = alloca double, align 8
  store ptr %0, ptr %6, align 8, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !5
  store ptr %2, ptr %8, align 8, !tbaa !5
  store i32 %3, ptr %9, align 4, !tbaa !9
  %18 = load ptr, ptr %6, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #5
  %19 = call noundef i32 @_ZNK7qpOASES9QProblemB5getNVEv(ptr noundef nonnull align 8 dereferenceable(800) %18)
  store i32 %19, ptr %11, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #5
  %20 = call noundef i32 @_ZNK7qpOASES8QProblem5getNCEv(ptr noundef nonnull align 8 dereferenceable(1064) %18)
  store i32 %20, ptr %12, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #5
  store i32 1, ptr %13, align 4, !tbaa !9
  %21 = load ptr, ptr %7, align 8, !tbaa !5
  %22 = icmp ne ptr %21, null
  br i1 %22, label %23, label %46

23:                                               ; preds = %4
  store i32 0, ptr %10, align 4, !tbaa !11
  br label %24

24:                                               ; preds = %42, %23
  %25 = load i32, ptr %10, align 4, !tbaa !11
  %26 = load i32, ptr %11, align 4, !tbaa !11
  %27 = icmp slt i32 %25, %26
  br i1 %27, label %28, label %45

28:                                               ; preds = %24
  %29 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %18, i32 0, i32 6
  %30 = load i32, ptr %10, align 4, !tbaa !11
  %31 = call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %29, i32 noundef %30)
  %32 = icmp eq i32 %31, 4
  br i1 %32, label %38, label %33

33:                                               ; preds = %28
  %34 = load ptr, ptr %7, align 8, !tbaa !5
  %35 = load i32, ptr %10, align 4, !tbaa !11
  %36 = call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %34, i32 noundef %35)
  %37 = icmp eq i32 %36, 4
  br i1 %37, label %38, label %41

38:                                               ; preds = %33, %28
  %39 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %40 = call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %39, i32 noundef 9, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 2366, i32 noundef 1)
  store i32 %40, ptr %5, align 4
  store i32 1, ptr %14, align 4
  br label %450

41:                                               ; preds = %33
  br label %42

42:                                               ; preds = %41
  %43 = load i32, ptr %10, align 4, !tbaa !11
  %44 = add nsw i32 %43, 1
  store i32 %44, ptr %10, align 4, !tbaa !11
  br label %24, !llvm.loop !13

45:                                               ; preds = %24
  br label %49

46:                                               ; preds = %4
  %47 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %48 = call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %47, i32 noundef 3, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 2370, i32 noundef 1)
  store i32 %48, ptr %5, align 4
  store i32 1, ptr %14, align 4
  br label %450

49:                                               ; preds = %45
  %50 = load ptr, ptr %8, align 8, !tbaa !5
  %51 = icmp ne ptr %50, null
  br i1 %51, label %52, label %75

52:                                               ; preds = %49
  store i32 0, ptr %10, align 4, !tbaa !11
  br label %53

53:                                               ; preds = %71, %52
  %54 = load i32, ptr %10, align 4, !tbaa !11
  %55 = load i32, ptr %12, align 4, !tbaa !11
  %56 = icmp slt i32 %54, %55
  br i1 %56, label %57, label %74

57:                                               ; preds = %53
  %58 = getelementptr inbounds %"class.qpOASES::QProblem", ptr %18, i32 0, i32 5
  %59 = load i32, ptr %10, align 4, !tbaa !11
  %60 = call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %58, i32 noundef %59)
  %61 = icmp eq i32 %60, 4
  br i1 %61, label %67, label %62

62:                                               ; preds = %57
  %63 = load ptr, ptr %8, align 8, !tbaa !5
  %64 = load i32, ptr %10, align 4, !tbaa !11
  %65 = call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %63, i32 noundef %64)
  %66 = icmp eq i32 %65, 4
  br i1 %66, label %67, label %70

67:                                               ; preds = %62, %57
  %68 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %69 = call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %68, i32 noundef 9, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 2377, i32 noundef 1)
  store i32 %69, ptr %5, align 4
  store i32 1, ptr %14, align 4
  br label %450

70:                                               ; preds = %62
  br label %71

71:                                               ; preds = %70
  %72 = load i32, ptr %10, align 4, !tbaa !11
  %73 = add nsw i32 %72, 1
  store i32 %73, ptr %10, align 4, !tbaa !11
  br label %53, !llvm.loop !15

74:                                               ; preds = %53
  br label %78

75:                                               ; preds = %49
  %76 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %77 = call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %76, i32 noundef 3, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 2381, i32 noundef 1)
  store i32 %77, ptr %5, align 4
  store i32 1, ptr %14, align 4
  br label %450

78:                                               ; preds = %74
  store i32 0, ptr %10, align 4, !tbaa !11
  br label %79

79:                                               ; preds = %90, %78
  %80 = load i32, ptr %10, align 4, !tbaa !11
  %81 = load i32, ptr %11, align 4, !tbaa !11
  %82 = icmp slt i32 %80, %81
  br i1 %82, label %83, label %93

83:                                               ; preds = %79
  %84 = load ptr, ptr %7, align 8, !tbaa !5
  %85 = load i32, ptr %10, align 4, !tbaa !11
  %86 = call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %84, i32 noundef %85)
  %87 = icmp eq i32 %86, 0
  br i1 %87, label %88, label %89

88:                                               ; preds = %83
  store i32 0, ptr %13, align 4, !tbaa !9
  br label %93

89:                                               ; preds = %83
  br label %90

90:                                               ; preds = %89
  %91 = load i32, ptr %10, align 4, !tbaa !11
  %92 = add nsw i32 %91, 1
  store i32 %92, ptr %10, align 4, !tbaa !11
  br label %79, !llvm.loop !16

93:                                               ; preds = %88, %79
  store i32 0, ptr %10, align 4, !tbaa !11
  br label %94

94:                                               ; preds = %110, %93
  %95 = load i32, ptr %10, align 4, !tbaa !11
  %96 = load i32, ptr %12, align 4, !tbaa !11
  %97 = icmp slt i32 %95, %96
  br i1 %97, label %98, label %113

98:                                               ; preds = %94
  %99 = getelementptr inbounds %"class.qpOASES::QProblem", ptr %18, i32 0, i32 5
  %100 = load i32, ptr %10, align 4, !tbaa !11
  %101 = call noundef i32 @_ZNK7qpOASES9SubjectTo7getTypeEi(ptr noundef nonnull align 8 dereferenceable(40) %99, i32 noundef %100)
  %102 = icmp eq i32 %101, 2
  br i1 %102, label %108, label %103

103:                                              ; preds = %98
  %104 = load ptr, ptr %8, align 8, !tbaa !5
  %105 = load i32, ptr %10, align 4, !tbaa !11
  %106 = call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %104, i32 noundef %105)
  %107 = icmp ne i32 %106, 0
  br i1 %107, label %108, label %109

108:                                              ; preds = %103, %98
  store i32 0, ptr %13, align 4, !tbaa !9
  br label %113

109:                                              ; preds = %103
  br label %110

110:                                              ; preds = %109
  %111 = load i32, ptr %10, align 4, !tbaa !11
  %112 = add nsw i32 %111, 1
  store i32 %112, ptr %10, align 4, !tbaa !11
  br label %94, !llvm.loop !17

113:                                              ; preds = %108, %94
  %114 = load i32, ptr %13, align 4, !tbaa !9
  %115 = icmp eq i32 %114, 1
  br i1 %115, label %116, label %138

116:                                              ; preds = %113
  store i32 0, ptr %10, align 4, !tbaa !11
  br label %117

117:                                              ; preds = %134, %116
  %118 = load i32, ptr %10, align 4, !tbaa !11
  %119 = load i32, ptr %11, align 4, !tbaa !11
  %120 = icmp slt i32 %118, %119
  br i1 %120, label %121, label %137

121:                                              ; preds = %117
  %122 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %18, i32 0, i32 6
  %123 = load i32, ptr %10, align 4, !tbaa !11
  %124 = call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %122, i32 noundef %123)
  %125 = icmp eq i32 %124, 0
  br i1 %125, label %126, label %133

126:                                              ; preds = %121
  %127 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %18, i32 0, i32 6
  %128 = load i32, ptr %10, align 4, !tbaa !11
  %129 = load ptr, ptr %7, align 8, !tbaa !5
  %130 = load i32, ptr %10, align 4, !tbaa !11
  %131 = call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %129, i32 noundef %130)
  %132 = call noundef i32 @_ZN7qpOASES6Bounds15moveFreeToFixedEiNS_15SubjectToStatusE(ptr noundef nonnull align 8 dereferenceable(120) %127, i32 noundef %128, i32 noundef %131)
  br label %133

133:                                              ; preds = %126, %121
  br label %134

134:                                              ; preds = %133
  %135 = load i32, ptr %10, align 4, !tbaa !11
  %136 = add nsw i32 %135, 1
  store i32 %136, ptr %10, align 4, !tbaa !11
  br label %117, !llvm.loop !18

137:                                              ; preds = %117
  store i32 0, ptr %5, align 4
  store i32 1, ptr %14, align 4
  br label %450

138:                                              ; preds = %113
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #5
  %139 = load i32, ptr %9, align 4, !tbaa !9
  %140 = icmp eq i32 %139, 1
  br i1 %140, label %141, label %142

141:                                              ; preds = %138
  store i32 0, ptr %15, align 4, !tbaa !9
  br label %143

142:                                              ; preds = %138
  store i32 1, ptr %15, align 4, !tbaa !9
  br label %143

143:                                              ; preds = %142, %141
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #5
  %144 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %18, i32 0, i32 23
  %145 = getelementptr inbounds %"class.qpOASES::Options", ptr %144, i32 0, i32 5
  %146 = load i32, ptr %145, align 4, !tbaa !19
  store i32 %146, ptr %16, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #5
  %147 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %18, i32 0, i32 23
  %148 = getelementptr inbounds %"class.qpOASES::Options", ptr %147, i32 0, i32 30
  %149 = load double, ptr %148, align 8, !tbaa !33
  store double %149, ptr %17, align 8, !tbaa !34
  %150 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %18, i32 0, i32 23
  %151 = getelementptr inbounds %"class.qpOASES::Options", ptr %150, i32 0, i32 5
  store i32 0, ptr %151, align 4, !tbaa !19
  %152 = load i32, ptr %9, align 4, !tbaa !9
  %153 = icmp eq i32 %152, 0
  br i1 %153, label %154, label %273

154:                                              ; preds = %143
  store i32 0, ptr %10, align 4, !tbaa !11
  br label %155

155:                                              ; preds = %210, %154
  %156 = load i32, ptr %10, align 4, !tbaa !11
  %157 = load i32, ptr %12, align 4, !tbaa !11
  %158 = icmp slt i32 %156, %157
  br i1 %158, label %159, label %213

159:                                              ; preds = %155
  %160 = getelementptr inbounds %"class.qpOASES::QProblem", ptr %18, i32 0, i32 5
  %161 = load i32, ptr %10, align 4, !tbaa !11
  %162 = call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %160, i32 noundef %161)
  %163 = icmp eq i32 %162, -1
  br i1 %163, label %164, label %184

164:                                              ; preds = %159
  %165 = load ptr, ptr %8, align 8, !tbaa !5
  %166 = load i32, ptr %10, align 4, !tbaa !11
  %167 = call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %165, i32 noundef %166)
  %168 = icmp ne i32 %167, -1
  br i1 %168, label %169, label %184

169:                                              ; preds = %164
  %170 = load i32, ptr %10, align 4, !tbaa !11
  %171 = load i32, ptr %15, align 4, !tbaa !9
  %172 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %18, i32 0, i32 23
  %173 = getelementptr inbounds %"class.qpOASES::Options", ptr %172, i32 0, i32 6
  %174 = load i32, ptr %173, align 8, !tbaa !35
  %175 = load ptr, ptr %18, align 8, !tbaa !36
  %176 = getelementptr inbounds ptr, ptr %175, i64 31
  %177 = load ptr, ptr %176, align 8
  %178 = call noundef i32 %177(ptr noundef nonnull align 8 dereferenceable(1064) %18, i32 noundef %170, i32 noundef %171, i32 noundef 0, i32 noundef %174)
  %179 = icmp ne i32 %178, 0
  br i1 %179, label %180, label %183

180:                                              ; preds = %169
  %181 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %182 = call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %181, i32 noundef 42, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 2436, i32 noundef 1)
  store i32 %182, ptr %5, align 4
  store i32 1, ptr %14, align 4
  br label %449

183:                                              ; preds = %169
  br label %184

184:                                              ; preds = %183, %164, %159
  %185 = getelementptr inbounds %"class.qpOASES::QProblem", ptr %18, i32 0, i32 5
  %186 = load i32, ptr %10, align 4, !tbaa !11
  %187 = call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %185, i32 noundef %186)
  %188 = icmp eq i32 %187, 1
  br i1 %188, label %189, label %209

189:                                              ; preds = %184
  %190 = load ptr, ptr %8, align 8, !tbaa !5
  %191 = load i32, ptr %10, align 4, !tbaa !11
  %192 = call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %190, i32 noundef %191)
  %193 = icmp ne i32 %192, 1
  br i1 %193, label %194, label %209

194:                                              ; preds = %189
  %195 = load i32, ptr %10, align 4, !tbaa !11
  %196 = load i32, ptr %15, align 4, !tbaa !9
  %197 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %18, i32 0, i32 23
  %198 = getelementptr inbounds %"class.qpOASES::Options", ptr %197, i32 0, i32 6
  %199 = load i32, ptr %198, align 8, !tbaa !35
  %200 = load ptr, ptr %18, align 8, !tbaa !36
  %201 = getelementptr inbounds ptr, ptr %200, i64 31
  %202 = load ptr, ptr %201, align 8
  %203 = call noundef i32 %202(ptr noundef nonnull align 8 dereferenceable(1064) %18, i32 noundef %195, i32 noundef %196, i32 noundef 0, i32 noundef %199)
  %204 = icmp ne i32 %203, 0
  br i1 %204, label %205, label %208

205:                                              ; preds = %194
  %206 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %207 = call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %206, i32 noundef 42, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 2440, i32 noundef 1)
  store i32 %207, ptr %5, align 4
  store i32 1, ptr %14, align 4
  br label %449

208:                                              ; preds = %194
  br label %209

209:                                              ; preds = %208, %189, %184
  br label %210

210:                                              ; preds = %209
  %211 = load i32, ptr %10, align 4, !tbaa !11
  %212 = add nsw i32 %211, 1
  store i32 %212, ptr %10, align 4, !tbaa !11
  br label %155, !llvm.loop !38

213:                                              ; preds = %155
  store i32 0, ptr %10, align 4, !tbaa !11
  br label %214

214:                                              ; preds = %269, %213
  %215 = load i32, ptr %10, align 4, !tbaa !11
  %216 = load i32, ptr %11, align 4, !tbaa !11
  %217 = icmp slt i32 %215, %216
  br i1 %217, label %218, label %272

218:                                              ; preds = %214
  %219 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %18, i32 0, i32 6
  %220 = load i32, ptr %10, align 4, !tbaa !11
  %221 = call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %219, i32 noundef %220)
  %222 = icmp eq i32 %221, -1
  br i1 %222, label %223, label %243

223:                                              ; preds = %218
  %224 = load ptr, ptr %7, align 8, !tbaa !5
  %225 = load i32, ptr %10, align 4, !tbaa !11
  %226 = call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %224, i32 noundef %225)
  %227 = icmp ne i32 %226, -1
  br i1 %227, label %228, label %243

228:                                              ; preds = %223
  %229 = load i32, ptr %10, align 4, !tbaa !11
  %230 = load i32, ptr %15, align 4, !tbaa !9
  %231 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %18, i32 0, i32 23
  %232 = getelementptr inbounds %"class.qpOASES::Options", ptr %231, i32 0, i32 6
  %233 = load i32, ptr %232, align 8, !tbaa !35
  %234 = load ptr, ptr %18, align 8, !tbaa !36
  %235 = getelementptr inbounds ptr, ptr %234, i64 32
  %236 = load ptr, ptr %235, align 8
  %237 = call noundef i32 %236(ptr noundef nonnull align 8 dereferenceable(1064) %18, i32 noundef %229, i32 noundef %230, i32 noundef 0, i32 noundef %233)
  %238 = icmp ne i32 %237, 0
  br i1 %238, label %239, label %242

239:                                              ; preds = %228
  %240 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %241 = call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %240, i32 noundef 42, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 2449, i32 noundef 1)
  store i32 %241, ptr %5, align 4
  store i32 1, ptr %14, align 4
  br label %449

242:                                              ; preds = %228
  br label %243

243:                                              ; preds = %242, %223, %218
  %244 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %18, i32 0, i32 6
  %245 = load i32, ptr %10, align 4, !tbaa !11
  %246 = call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %244, i32 noundef %245)
  %247 = icmp eq i32 %246, 1
  br i1 %247, label %248, label %268

248:                                              ; preds = %243
  %249 = load ptr, ptr %7, align 8, !tbaa !5
  %250 = load i32, ptr %10, align 4, !tbaa !11
  %251 = call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %249, i32 noundef %250)
  %252 = icmp ne i32 %251, 1
  br i1 %252, label %253, label %268

253:                                              ; preds = %248
  %254 = load i32, ptr %10, align 4, !tbaa !11
  %255 = load i32, ptr %15, align 4, !tbaa !9
  %256 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %18, i32 0, i32 23
  %257 = getelementptr inbounds %"class.qpOASES::Options", ptr %256, i32 0, i32 6
  %258 = load i32, ptr %257, align 8, !tbaa !35
  %259 = load ptr, ptr %18, align 8, !tbaa !36
  %260 = getelementptr inbounds ptr, ptr %259, i64 32
  %261 = load ptr, ptr %260, align 8
  %262 = call noundef i32 %261(ptr noundef nonnull align 8 dereferenceable(1064) %18, i32 noundef %254, i32 noundef %255, i32 noundef 0, i32 noundef %258)
  %263 = icmp ne i32 %262, 0
  br i1 %263, label %264, label %267

264:                                              ; preds = %253
  %265 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %266 = call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %265, i32 noundef 42, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 2453, i32 noundef 1)
  store i32 %266, ptr %5, align 4
  store i32 1, ptr %14, align 4
  br label %449

267:                                              ; preds = %253
  br label %268

268:                                              ; preds = %267, %248, %243
  br label %269

269:                                              ; preds = %268
  %270 = load i32, ptr %10, align 4, !tbaa !11
  %271 = add nsw i32 %270, 1
  store i32 %271, ptr %10, align 4, !tbaa !11
  br label %214, !llvm.loop !39

272:                                              ; preds = %214
  br label %273

273:                                              ; preds = %272, %143
  store i32 0, ptr %10, align 4, !tbaa !11
  br label %274

274:                                              ; preds = %301, %273
  %275 = load i32, ptr %10, align 4, !tbaa !11
  %276 = load i32, ptr %11, align 4, !tbaa !11
  %277 = icmp slt i32 %275, %276
  br i1 %277, label %278, label %304

278:                                              ; preds = %274
  %279 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %18, i32 0, i32 6
  %280 = load i32, ptr %10, align 4, !tbaa !11
  %281 = call noundef i32 @_ZNK7qpOASES9SubjectTo7getTypeEi(ptr noundef nonnull align 8 dereferenceable(40) %279, i32 noundef %280)
  %282 = icmp eq i32 %281, 2
  br i1 %282, label %283, label %300

283:                                              ; preds = %278
  %284 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %18, i32 0, i32 6
  %285 = load i32, ptr %10, align 4, !tbaa !11
  %286 = call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %284, i32 noundef %285)
  %287 = icmp eq i32 %286, 0
  br i1 %287, label %288, label %300

288:                                              ; preds = %283
  %289 = load i32, ptr %10, align 4, !tbaa !11
  %290 = load i32, ptr %15, align 4, !tbaa !9
  %291 = load ptr, ptr %18, align 8, !tbaa !36
  %292 = getelementptr inbounds ptr, ptr %291, i64 28
  %293 = load ptr, ptr %292, align 8
  %294 = call noundef i32 %293(ptr noundef nonnull align 8 dereferenceable(1064) %18, i32 noundef %289, i32 noundef -1, i32 noundef %290, i32 noundef 1)
  %295 = icmp ne i32 %294, 0
  br i1 %295, label %296, label %299

296:                                              ; preds = %288
  %297 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %298 = call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %297, i32 noundef 42, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 2472, i32 noundef 1)
  store i32 %298, ptr %5, align 4
  store i32 1, ptr %14, align 4
  br label %449

299:                                              ; preds = %288
  br label %300

300:                                              ; preds = %299, %283, %278
  br label %301

301:                                              ; preds = %300
  %302 = load i32, ptr %10, align 4, !tbaa !11
  %303 = add nsw i32 %302, 1
  store i32 %303, ptr %10, align 4, !tbaa !11
  br label %274, !llvm.loop !40

304:                                              ; preds = %274
  store i32 0, ptr %10, align 4, !tbaa !11
  br label %305

305:                                              ; preds = %344, %304
  %306 = load i32, ptr %10, align 4, !tbaa !11
  %307 = load i32, ptr %12, align 4, !tbaa !11
  %308 = icmp slt i32 %306, %307
  br i1 %308, label %309, label %347

309:                                              ; preds = %305
  %310 = getelementptr inbounds %"class.qpOASES::QProblem", ptr %18, i32 0, i32 5
  %311 = load i32, ptr %10, align 4, !tbaa !11
  %312 = call noundef i32 @_ZNK7qpOASES9SubjectTo7getTypeEi(ptr noundef nonnull align 8 dereferenceable(40) %310, i32 noundef %311)
  %313 = icmp eq i32 %312, 2
  br i1 %313, label %314, label %343

314:                                              ; preds = %309
  %315 = getelementptr inbounds %"class.qpOASES::QProblem", ptr %18, i32 0, i32 5
  %316 = load i32, ptr %10, align 4, !tbaa !11
  %317 = call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %315, i32 noundef %316)
  %318 = icmp eq i32 %317, 0
  br i1 %318, label %319, label %343

319:                                              ; preds = %314
  %320 = load i32, ptr %10, align 4, !tbaa !11
  %321 = load ptr, ptr %18, align 8, !tbaa !36
  %322 = getelementptr inbounds ptr, ptr %321, i64 26
  %323 = load ptr, ptr %322, align 8
  %324 = call noundef i32 %323(ptr noundef nonnull align 8 dereferenceable(1064) %18, i32 noundef %320)
  %325 = icmp eq i32 %324, 89
  br i1 %325, label %326, label %338

326:                                              ; preds = %319
  %327 = load i32, ptr %10, align 4, !tbaa !11
  %328 = load i32, ptr %15, align 4, !tbaa !9
  %329 = load ptr, ptr %18, align 8, !tbaa !36
  %330 = getelementptr inbounds ptr, ptr %329, i64 25
  %331 = load ptr, ptr %330, align 8
  %332 = call noundef i32 %331(ptr noundef nonnull align 8 dereferenceable(1064) %18, i32 noundef %327, i32 noundef -1, i32 noundef %328, i32 noundef 1)
  %333 = icmp ne i32 %332, 0
  br i1 %333, label %334, label %337

334:                                              ; preds = %326
  %335 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %336 = call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %335, i32 noundef 42, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 2490, i32 noundef 1)
  store i32 %336, ptr %5, align 4
  store i32 1, ptr %14, align 4
  br label %449

337:                                              ; preds = %326
  br label %342

338:                                              ; preds = %319
  %339 = getelementptr inbounds %"class.qpOASES::QProblem", ptr %18, i32 0, i32 5
  %340 = load i32, ptr %10, align 4, !tbaa !11
  %341 = call noundef i32 @_ZN7qpOASES9SubjectTo7setTypeEiNS_13SubjectToTypeE(ptr noundef nonnull align 8 dereferenceable(40) %339, i32 noundef %340, i32 noundef 1)
  br label %342

342:                                              ; preds = %338, %337
  br label %343

343:                                              ; preds = %342, %314, %309
  br label %344

344:                                              ; preds = %343
  %345 = load i32, ptr %10, align 4, !tbaa !11
  %346 = add nsw i32 %345, 1
  store i32 %346, ptr %10, align 4, !tbaa !11
  br label %305, !llvm.loop !41

347:                                              ; preds = %305
  store i32 0, ptr %10, align 4, !tbaa !11
  br label %348

348:                                              ; preds = %391, %347
  %349 = load i32, ptr %10, align 4, !tbaa !11
  %350 = load i32, ptr %11, align 4, !tbaa !11
  %351 = icmp slt i32 %349, %350
  br i1 %351, label %352, label %394

352:                                              ; preds = %348
  %353 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %18, i32 0, i32 6
  %354 = load i32, ptr %10, align 4, !tbaa !11
  %355 = call noundef i32 @_ZNK7qpOASES9SubjectTo7getTypeEi(ptr noundef nonnull align 8 dereferenceable(40) %353, i32 noundef %354)
  %356 = icmp ne i32 %355, 2
  br i1 %356, label %357, label %390

357:                                              ; preds = %352
  %358 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %18, i32 0, i32 6
  %359 = load i32, ptr %10, align 4, !tbaa !11
  %360 = call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %358, i32 noundef %359)
  %361 = icmp eq i32 %360, 0
  br i1 %361, label %362, label %390

362:                                              ; preds = %357
  %363 = load ptr, ptr %7, align 8, !tbaa !5
  %364 = load i32, ptr %10, align 4, !tbaa !11
  %365 = call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %363, i32 noundef %364)
  %366 = icmp ne i32 %365, 0
  br i1 %366, label %367, label %390

367:                                              ; preds = %362
  %368 = load i32, ptr %10, align 4, !tbaa !11
  %369 = load ptr, ptr %18, align 8, !tbaa !36
  %370 = getelementptr inbounds ptr, ptr %369, i64 29
  %371 = load ptr, ptr %370, align 8
  %372 = call noundef i32 %371(ptr noundef nonnull align 8 dereferenceable(1064) %18, i32 noundef %368)
  %373 = icmp eq i32 %372, 89
  br i1 %373, label %374, label %389

374:                                              ; preds = %367
  %375 = load i32, ptr %10, align 4, !tbaa !11
  %376 = load ptr, ptr %7, align 8, !tbaa !5
  %377 = load i32, ptr %10, align 4, !tbaa !11
  %378 = call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %376, i32 noundef %377)
  %379 = load i32, ptr %15, align 4, !tbaa !9
  %380 = load ptr, ptr %18, align 8, !tbaa !36
  %381 = getelementptr inbounds ptr, ptr %380, i64 28
  %382 = load ptr, ptr %381, align 8
  %383 = call noundef i32 %382(ptr noundef nonnull align 8 dereferenceable(1064) %18, i32 noundef %375, i32 noundef %378, i32 noundef %379, i32 noundef 1)
  %384 = icmp ne i32 %383, 0
  br i1 %384, label %385, label %388

385:                                              ; preds = %374
  %386 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %387 = call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %386, i32 noundef 42, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 2511, i32 noundef 1)
  store i32 %387, ptr %5, align 4
  store i32 1, ptr %14, align 4
  br label %449

388:                                              ; preds = %374
  br label %389

389:                                              ; preds = %388, %367
  br label %390

390:                                              ; preds = %389, %362, %357, %352
  br label %391

391:                                              ; preds = %390
  %392 = load i32, ptr %10, align 4, !tbaa !11
  %393 = add nsw i32 %392, 1
  store i32 %393, ptr %10, align 4, !tbaa !11
  br label %348, !llvm.loop !42

394:                                              ; preds = %348
  store i32 0, ptr %10, align 4, !tbaa !11
  br label %395

395:                                              ; preds = %439, %394
  %396 = load i32, ptr %10, align 4, !tbaa !11
  %397 = load i32, ptr %12, align 4, !tbaa !11
  %398 = icmp slt i32 %396, %397
  br i1 %398, label %399, label %442

399:                                              ; preds = %395
  %400 = getelementptr inbounds %"class.qpOASES::QProblem", ptr %18, i32 0, i32 5
  %401 = load i32, ptr %10, align 4, !tbaa !11
  %402 = call noundef i32 @_ZNK7qpOASES9SubjectTo7getTypeEi(ptr noundef nonnull align 8 dereferenceable(40) %400, i32 noundef %401)
  %403 = icmp ne i32 %402, 2
  br i1 %403, label %404, label %438

404:                                              ; preds = %399
  %405 = load ptr, ptr %8, align 8, !tbaa !5
  %406 = load i32, ptr %10, align 4, !tbaa !11
  %407 = call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %405, i32 noundef %406)
  %408 = icmp ne i32 %407, 0
  br i1 %408, label %409, label %438

409:                                              ; preds = %404
  %410 = getelementptr inbounds %"class.qpOASES::QProblem", ptr %18, i32 0, i32 5
  %411 = load i32, ptr %10, align 4, !tbaa !11
  %412 = call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %410, i32 noundef %411)
  %413 = icmp eq i32 %412, 0
  br i1 %413, label %414, label %437

414:                                              ; preds = %409
  %415 = load i32, ptr %10, align 4, !tbaa !11
  %416 = load ptr, ptr %18, align 8, !tbaa !36
  %417 = getelementptr inbounds ptr, ptr %416, i64 26
  %418 = load ptr, ptr %417, align 8
  %419 = call noundef i32 %418(ptr noundef nonnull align 8 dereferenceable(1064) %18, i32 noundef %415)
  %420 = icmp eq i32 %419, 89
  br i1 %420, label %421, label %436

421:                                              ; preds = %414
  %422 = load i32, ptr %10, align 4, !tbaa !11
  %423 = load ptr, ptr %8, align 8, !tbaa !5
  %424 = load i32, ptr %10, align 4, !tbaa !11
  %425 = call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %423, i32 noundef %424)
  %426 = load i32, ptr %15, align 4, !tbaa !9
  %427 = load ptr, ptr %18, align 8, !tbaa !36
  %428 = getelementptr inbounds ptr, ptr %427, i64 25
  %429 = load ptr, ptr %428, align 8
  %430 = call noundef i32 %429(ptr noundef nonnull align 8 dereferenceable(1064) %18, i32 noundef %422, i32 noundef %425, i32 noundef %426, i32 noundef 1)
  %431 = icmp ne i32 %430, 0
  br i1 %431, label %432, label %435

432:                                              ; preds = %421
  %433 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %434 = call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %433, i32 noundef 42, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 2529, i32 noundef 1)
  store i32 %434, ptr %5, align 4
  store i32 1, ptr %14, align 4
  br label %449

435:                                              ; preds = %421
  br label %436

436:                                              ; preds = %435, %414
  br label %437

437:                                              ; preds = %436, %409
  br label %438

438:                                              ; preds = %437, %404, %399
  br label %439

439:                                              ; preds = %438
  %440 = load i32, ptr %10, align 4, !tbaa !11
  %441 = add nsw i32 %440, 1
  store i32 %441, ptr %10, align 4, !tbaa !11
  br label %395, !llvm.loop !43

442:                                              ; preds = %395
  %443 = load i32, ptr %16, align 4, !tbaa !9
  %444 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %18, i32 0, i32 23
  %445 = getelementptr inbounds %"class.qpOASES::Options", ptr %444, i32 0, i32 5
  store i32 %443, ptr %445, align 4, !tbaa !19
  %446 = load double, ptr %17, align 8, !tbaa !34
  %447 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %18, i32 0, i32 23
  %448 = getelementptr inbounds %"class.qpOASES::Options", ptr %447, i32 0, i32 30
  store double %446, ptr %448, align 8, !tbaa !33
  store i32 0, ptr %5, align 4
  store i32 1, ptr %14, align 4
  br label %449

449:                                              ; preds = %442, %432, %385, %334, %296, %264, %239, %205, %180
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #5
  br label %450

450:                                              ; preds = %449, %137, %75, %67, %46, %38
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #5
  %451 = load i32, ptr %5, align 4
  ret i32 %451
}

declare noundef i32 @_ZN7qpOASES6Bounds15moveFreeToFixedEiNS_15SubjectToStatusE(ptr noundef nonnull align 8 dereferenceable(120), i32 noundef, i32 noundef) #1

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


; 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

declare noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv() local_unnamed_addr #0

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 #0

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40), i32 noundef) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK7qpOASES9SubjectTo7getTypeEi(ptr noundef nonnull align 8 dereferenceable(40), i32 noundef) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZN7qpOASES9SubjectTo7setTypeEiNS_13SubjectToTypeE(ptr noundef nonnull align 8 dereferenceable(40), i32 noundef, i32 noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN7qpOASES8QProblem24setupAuxiliaryWorkingSetEPKNS_6BoundsEPKNS_11ConstraintsENS_11BooleanTypeE(ptr noundef nonnull align 8 dereferenceable(1064) %0, ptr noundef %1, ptr noundef %2, i32 noundef %3) unnamed_addr #3 align 2 {
  %5 = tail call noundef i32 @_ZNK7qpOASES9QProblemB5getNVEv(ptr noundef nonnull align 8 dereferenceable(800) %0)
  %6 = tail call noundef i32 @_ZNK7qpOASES8QProblem5getNCEv(ptr noundef nonnull align 8 dereferenceable(1064) %0)
  %.not = icmp eq ptr %1, null
  br i1 %.not, label %20, label %.preheader141

.preheader141:                                    ; preds = %4
  %7 = icmp sgt i32 %5, 0
  br i1 %7, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %.preheader141
  %8 = getelementptr inbounds i8, ptr %0, i64 48
  br label %11

9:                                                ; preds = %14
  %10 = add nuw nsw i32 %.0104142, 1
  %exitcond.not = icmp eq i32 %10, %5
  br i1 %exitcond.not, label %._crit_edge, label %11, !llvm.loop !5

11:                                               ; preds = %.lr.ph, %9
  %.0104142 = phi i32 [ 0, %.lr.ph ], [ %10, %9 ]
  %12 = tail call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %8, i32 noundef %.0104142)
  %13 = icmp eq i32 %12, 4
  br i1 %13, label %17, label %14

14:                                               ; preds = %11
  %15 = tail call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %1, i32 noundef %.0104142)
  %16 = icmp eq i32 %15, 4
  br i1 %16, label %17, label %9

17:                                               ; preds = %14, %11
  %18 = tail call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %19 = tail call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %18, i32 noundef 9, ptr noundef null, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef 2366, i32 noundef 1)
  br label %.loopexit138

20:                                               ; preds = %4
  %21 = tail call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %22 = tail call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %21, i32 noundef 3, ptr noundef null, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef 2370, i32 noundef 1)
  br label %.loopexit138

._crit_edge:                                      ; preds = %9, %.preheader141
  %.not113 = icmp eq ptr %2, null
  br i1 %.not113, label %38, label %.preheader140

.preheader140:                                    ; preds = %._crit_edge
  %23 = icmp sgt i32 %6, 0
  br i1 %23, label %.lr.ph144, label %.preheader139

.lr.ph144:                                        ; preds = %.preheader140
  %24 = getelementptr inbounds i8, ptr %0, i64 832
  br label %29

25:                                               ; preds = %32
  %26 = add nuw nsw i32 %.1105143, 1
  %exitcond172.not = icmp eq i32 %26, %6
  br i1 %exitcond172.not, label %.preheader139, label %29, !llvm.loop !7

.preheader139:                                    ; preds = %25, %.preheader140
  br i1 %7, label %.lr.ph148.preheader, label %._crit_edge149

.lr.ph148.preheader:                              ; preds = %.preheader139
  %27 = tail call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %1, i32 noundef 0)
  %28 = icmp eq i32 %27, 0
  br i1 %28, label %._crit_edge149, label %.lr.ph183

29:                                               ; preds = %.lr.ph144, %25
  %.1105143 = phi i32 [ 0, %.lr.ph144 ], [ %26, %25 ]
  %30 = tail call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %24, i32 noundef %.1105143)
  %31 = icmp eq i32 %30, 4
  br i1 %31, label %35, label %32

32:                                               ; preds = %29
  %33 = tail call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %2, i32 noundef %.1105143)
  %34 = icmp eq i32 %33, 4
  br i1 %34, label %35, label %25

35:                                               ; preds = %32, %29
  %36 = tail call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %37 = tail call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %36, i32 noundef 9, ptr noundef null, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef 2377, i32 noundef 1)
  br label %.loopexit138

38:                                               ; preds = %._crit_edge
  %39 = tail call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %40 = tail call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %39, i32 noundef 3, ptr noundef null, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef 2381, i32 noundef 1)
  br label %.loopexit138

.lr.ph183:                                        ; preds = %.lr.ph148.preheader, %.lr.ph148
  %.2146182 = phi i32 [ %41, %.lr.ph148 ], [ 0, %.lr.ph148.preheader ]
  %41 = add nuw nsw i32 %.2146182, 1
  %exitcond173.not = icmp eq i32 %41, %5
  br i1 %exitcond173.not, label %._crit_edge149.loopexit, label %.lr.ph148, !llvm.loop !8

.lr.ph148:                                        ; preds = %.lr.ph183
  %42 = tail call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %1, i32 noundef %41)
  %43 = icmp eq i32 %42, 0
  br i1 %43, label %._crit_edge149.loopexit, label %.lr.ph183, !llvm.loop !8

._crit_edge149.loopexit:                          ; preds = %.lr.ph183, %.lr.ph148
  %.not132.le = icmp slt i32 %41, %5
  br label %._crit_edge149

._crit_edge149:                                   ; preds = %._crit_edge149.loopexit, %.lr.ph148.preheader, %.preheader139
  %.not132.lcssa = phi i1 [ false, %.preheader139 ], [ true, %.lr.ph148.preheader ], [ %.not132.le, %._crit_edge149.loopexit ]
  br i1 %23, label %.lr.ph154, label %._crit_edge155

.lr.ph154:                                        ; preds = %._crit_edge149
  %44 = getelementptr inbounds i8, ptr %0, i64 832
  br label %47

45:                                               ; preds = %50
  %46 = add nuw nsw i32 %.3152, 1
  %exitcond174.not = icmp eq i32 %46, %6
  br i1 %exitcond174.not, label %._crit_edge155, label %47, !llvm.loop !9

47:                                               ; preds = %.lr.ph154, %45
  %.3152 = phi i32 [ 0, %.lr.ph154 ], [ %46, %45 ]
  %48 = tail call noundef i32 @_ZNK7qpOASES9SubjectTo7getTypeEi(ptr noundef nonnull align 8 dereferenceable(40) %44, i32 noundef %.3152)
  %49 = icmp eq i32 %48, 2
  br i1 %49, label %.thread, label %50

50:                                               ; preds = %47
  %51 = tail call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %2, i32 noundef %.3152)
  %.not114 = icmp eq i32 %51, 0
  br i1 %.not114, label %45, label %.thread

._crit_edge155:                                   ; preds = %45, %._crit_edge149
  br i1 %.not132.lcssa, label %.thread, label %.preheader137

.preheader137:                                    ; preds = %._crit_edge155
  br i1 %7, label %.lr.ph157, label %.loopexit138

.lr.ph157:                                        ; preds = %.preheader137
  %52 = getelementptr inbounds i8, ptr %0, i64 48
  br label %53

53:                                               ; preds = %.lr.ph157, %59
  %.4156 = phi i32 [ 0, %.lr.ph157 ], [ %60, %59 ]
  %54 = tail call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %52, i32 noundef %.4156)
  %55 = icmp eq i32 %54, 0
  br i1 %55, label %56, label %59

56:                                               ; preds = %53
  %57 = tail call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %1, i32 noundef %.4156)
  %58 = tail call noundef i32 @_ZN7qpOASES6Bounds15moveFreeToFixedEiNS_15SubjectToStatusE(ptr noundef nonnull align 8 dereferenceable(120) %52, i32 noundef %.4156, i32 noundef %57)
  br label %59

59:                                               ; preds = %53, %56
  %60 = add nuw nsw i32 %.4156, 1
  %exitcond175.not = icmp eq i32 %60, %5
  br i1 %exitcond175.not, label %.loopexit138, label %53, !llvm.loop !10

.thread:                                          ; preds = %47, %50, %._crit_edge155
  %61 = icmp ne i32 %3, 1
  %. = zext i1 %61 to i32
  %62 = getelementptr inbounds i8, ptr %0, i64 292
  %63 = load i32, ptr %62, align 4, !tbaa !11
  %64 = getelementptr inbounds i8, ptr %0, i64 448
  %65 = load double, ptr %64, align 8, !tbaa !30
  store i32 0, ptr %62, align 4, !tbaa !11
  %66 = icmp eq i32 %3, 0
  br i1 %66, label %.preheader136, label %.loopexit

.preheader136:                                    ; preds = %.thread
  br i1 %23, label %.lr.ph159, label %.preheader135

.lr.ph159:                                        ; preds = %.preheader136
  %67 = getelementptr inbounds i8, ptr %0, i64 832
  %68 = getelementptr inbounds i8, ptr %0, i64 296
  br label %71

.preheader135:                                    ; preds = %99, %.preheader136
  br i1 %7, label %.lr.ph161, label %.preheader134

.lr.ph161:                                        ; preds = %.preheader135
  %69 = getelementptr inbounds i8, ptr %0, i64 48
  %70 = getelementptr inbounds i8, ptr %0, i64 296
  br label %101

71:                                               ; preds = %.lr.ph159, %99
  %.5158 = phi i32 [ 0, %.lr.ph159 ], [ %100, %99 ]
  %72 = tail call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %67, i32 noundef %.5158)
  %73 = icmp eq i32 %72, -1
  br i1 %73, label %74, label %85

74:                                               ; preds = %71
  %75 = tail call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %2, i32 noundef %.5158)
  %.not127 = icmp eq i32 %75, -1
  br i1 %.not127, label %85, label %76

76:                                               ; preds = %74
  %77 = load i32, ptr %68, align 8, !tbaa !31
  %78 = load ptr, ptr %0, align 8, !tbaa !32
  %79 = getelementptr inbounds i8, ptr %78, i64 248
  %80 = load ptr, ptr %79, align 8
  %81 = tail call noundef i32 %80(ptr noundef nonnull align 8 dereferenceable(1064) %0, i32 noundef %.5158, i32 noundef %., i32 noundef 0, i32 noundef %77)
  %.not128 = icmp eq i32 %81, 0
  br i1 %.not128, label %85, label %82

82:                                               ; preds = %76
  %83 = tail call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %84 = tail call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %83, i32 noundef 42, ptr noundef null, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef 2436, i32 noundef 1)
  br label %.loopexit138

85:                                               ; preds = %76, %74, %71
  %86 = tail call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %67, i32 noundef %.5158)
  %87 = icmp eq i32 %86, 1
  br i1 %87, label %88, label %99

88:                                               ; preds = %85
  %89 = tail call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %2, i32 noundef %.5158)
  %.not129 = icmp eq i32 %89, 1
  br i1 %.not129, label %99, label %90

90:                                               ; preds = %88
  %91 = load i32, ptr %68, align 8, !tbaa !31
  %92 = load ptr, ptr %0, align 8, !tbaa !32
  %93 = getelementptr inbounds i8, ptr %92, i64 248
  %94 = load ptr, ptr %93, align 8
  %95 = tail call noundef i32 %94(ptr noundef nonnull align 8 dereferenceable(1064) %0, i32 noundef %.5158, i32 noundef %., i32 noundef 0, i32 noundef %91)
  %.not130 = icmp eq i32 %95, 0
  br i1 %.not130, label %99, label %96

96:                                               ; preds = %90
  %97 = tail call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %98 = tail call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %97, i32 noundef 42, ptr noundef null, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef 2440, i32 noundef 1)
  br label %.loopexit138

99:                                               ; preds = %85, %88, %90
  %100 = add nuw nsw i32 %.5158, 1
  %exitcond176.not = icmp eq i32 %100, %6
  br i1 %exitcond176.not, label %.preheader135, label %71, !llvm.loop !34

101:                                              ; preds = %.lr.ph161, %129
  %.6160 = phi i32 [ 0, %.lr.ph161 ], [ %130, %129 ]
  %102 = tail call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %69, i32 noundef %.6160)
  %103 = icmp eq i32 %102, -1
  br i1 %103, label %104, label %115

104:                                              ; preds = %101
  %105 = tail call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %1, i32 noundef %.6160)
  %.not123 = icmp eq i32 %105, -1
  br i1 %.not123, label %115, label %106

106:                                              ; preds = %104
  %107 = load i32, ptr %70, align 8, !tbaa !31
  %108 = load ptr, ptr %0, align 8, !tbaa !32
  %109 = getelementptr inbounds i8, ptr %108, i64 256
  %110 = load ptr, ptr %109, align 8
  %111 = tail call noundef i32 %110(ptr noundef nonnull align 8 dereferenceable(1064) %0, i32 noundef %.6160, i32 noundef %., i32 noundef 0, i32 noundef %107)
  %.not124 = icmp eq i32 %111, 0
  br i1 %.not124, label %115, label %112

112:                                              ; preds = %106
  %113 = tail call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %114 = tail call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %113, i32 noundef 42, ptr noundef null, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef 2449, i32 noundef 1)
  br label %.loopexit138

115:                                              ; preds = %106, %104, %101
  %116 = tail call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %69, i32 noundef %.6160)
  %117 = icmp eq i32 %116, 1
  br i1 %117, label %118, label %129

118:                                              ; preds = %115
  %119 = tail call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %1, i32 noundef %.6160)
  %.not125 = icmp eq i32 %119, 1
  br i1 %.not125, label %129, label %120

120:                                              ; preds = %118
  %121 = load i32, ptr %70, align 8, !tbaa !31
  %122 = load ptr, ptr %0, align 8, !tbaa !32
  %123 = getelementptr inbounds i8, ptr %122, i64 256
  %124 = load ptr, ptr %123, align 8
  %125 = tail call noundef i32 %124(ptr noundef nonnull align 8 dereferenceable(1064) %0, i32 noundef %.6160, i32 noundef %., i32 noundef 0, i32 noundef %121)
  %.not126 = icmp eq i32 %125, 0
  br i1 %.not126, label %129, label %126

126:                                              ; preds = %120
  %127 = tail call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %128 = tail call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %127, i32 noundef 42, ptr noundef null, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef 2453, i32 noundef 1)
  br label %.loopexit138

129:                                              ; preds = %115, %118, %120
  %130 = add nuw nsw i32 %.6160, 1
  %exitcond177.not = icmp eq i32 %130, %5
  br i1 %exitcond177.not, label %.loopexit, label %101, !llvm.loop !35

.loopexit:                                        ; preds = %129, %.thread
  br i1 %7, label %.lr.ph164, label %.preheader134

.lr.ph164:                                        ; preds = %.loopexit
  %131 = getelementptr inbounds i8, ptr %0, i64 48
  br label %133

.preheader134:                                    ; preds = %147, %.preheader135, %.loopexit
  br i1 %23, label %.lr.ph166, label %.preheader133

.lr.ph166:                                        ; preds = %.preheader134
  %132 = getelementptr inbounds i8, ptr %0, i64 832
  br label %150

133:                                              ; preds = %.lr.ph164, %147
  %.7162 = phi i32 [ 0, %.lr.ph164 ], [ %148, %147 ]
  %134 = tail call noundef i32 @_ZNK7qpOASES9SubjectTo7getTypeEi(ptr noundef nonnull align 8 dereferenceable(40) %131, i32 noundef %.7162)
  %135 = icmp eq i32 %134, 2
  br i1 %135, label %136, label %147

136:                                              ; preds = %133
  %137 = tail call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %131, i32 noundef %.7162)
  %138 = icmp eq i32 %137, 0
  br i1 %138, label %139, label %147

139:                                              ; preds = %136
  %140 = load ptr, ptr %0, align 8, !tbaa !32
  %141 = getelementptr inbounds i8, ptr %140, i64 224
  %142 = load ptr, ptr %141, align 8
  %143 = tail call noundef i32 %142(ptr noundef nonnull align 8 dereferenceable(1064) %0, i32 noundef %.7162, i32 noundef -1, i32 noundef %., i32 noundef 1)
  %.not122 = icmp eq i32 %143, 0
  br i1 %.not122, label %147, label %144

144:                                              ; preds = %139
  %145 = tail call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %146 = tail call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %145, i32 noundef 42, ptr noundef null, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef 2472, i32 noundef 1)
  br label %.loopexit138

147:                                              ; preds = %133, %136, %139
  %148 = add nuw nsw i32 %.7162, 1
  %exitcond178.not = icmp eq i32 %148, %5
  br i1 %exitcond178.not, label %.preheader134, label %133, !llvm.loop !36

.preheader133:                                    ; preds = %172, %.preheader134
  br i1 %7, label %.lr.ph168, label %.preheader

.lr.ph168:                                        ; preds = %.preheader133
  %149 = getelementptr inbounds i8, ptr %0, i64 48
  br label %175

150:                                              ; preds = %.lr.ph166, %172
  %.8165 = phi i32 [ 0, %.lr.ph166 ], [ %173, %172 ]
  %151 = tail call noundef i32 @_ZNK7qpOASES9SubjectTo7getTypeEi(ptr noundef nonnull align 8 dereferenceable(40) %132, i32 noundef %.8165)
  %152 = icmp eq i32 %151, 2
  br i1 %152, label %153, label %172

153:                                              ; preds = %150
  %154 = tail call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %132, i32 noundef %.8165)
  %155 = icmp eq i32 %154, 0
  br i1 %155, label %156, label %172

156:                                              ; preds = %153
  %157 = load ptr, ptr %0, align 8, !tbaa !32
  %158 = getelementptr inbounds i8, ptr %157, i64 208
  %159 = load ptr, ptr %158, align 8
  %160 = tail call noundef i32 %159(ptr noundef nonnull align 8 dereferenceable(1064) %0, i32 noundef %.8165)
  %161 = icmp eq i32 %160, 89
  br i1 %161, label %162, label %170

162:                                              ; preds = %156
  %163 = load ptr, ptr %0, align 8, !tbaa !32
  %164 = getelementptr inbounds i8, ptr %163, i64 200
  %165 = load ptr, ptr %164, align 8
  %166 = tail call noundef i32 %165(ptr noundef nonnull align 8 dereferenceable(1064) %0, i32 noundef %.8165, i32 noundef -1, i32 noundef %., i32 noundef 1)
  %.not121 = icmp eq i32 %166, 0
  br i1 %.not121, label %172, label %167

167:                                              ; preds = %162
  %168 = tail call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %169 = tail call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %168, i32 noundef 42, ptr noundef null, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef 2490, i32 noundef 1)
  br label %.loopexit138

170:                                              ; preds = %156
  %171 = tail call noundef i32 @_ZN7qpOASES9SubjectTo7setTypeEiNS_13SubjectToTypeE(ptr noundef nonnull align 8 dereferenceable(40) %132, i32 noundef %.8165, i32 noundef 1)
  br label %172

172:                                              ; preds = %150, %153, %162, %170
  %173 = add nuw nsw i32 %.8165, 1
  %exitcond179.not = icmp eq i32 %173, %6
  br i1 %exitcond179.not, label %.preheader133, label %150, !llvm.loop !37

.preheader:                                       ; preds = %197, %.preheader133
  br i1 %23, label %.lr.ph170, label %._crit_edge171

.lr.ph170:                                        ; preds = %.preheader
  %174 = getelementptr inbounds i8, ptr %0, i64 832
  br label %199

175:                                              ; preds = %.lr.ph168, %197
  %.9167 = phi i32 [ 0, %.lr.ph168 ], [ %198, %197 ]
  %176 = tail call noundef i32 @_ZNK7qpOASES9SubjectTo7getTypeEi(ptr noundef nonnull align 8 dereferenceable(40) %149, i32 noundef %.9167)
  %.not118 = icmp eq i32 %176, 2
  br i1 %.not118, label %197, label %177

177:                                              ; preds = %175
  %178 = tail call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %149, i32 noundef %.9167)
  %179 = icmp eq i32 %178, 0
  br i1 %179, label %180, label %197

180:                                              ; preds = %177
  %181 = tail call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %1, i32 noundef %.9167)
  %.not119 = icmp eq i32 %181, 0
  br i1 %.not119, label %197, label %182

182:                                              ; preds = %180
  %183 = load ptr, ptr %0, align 8, !tbaa !32
  %184 = getelementptr inbounds i8, ptr %183, i64 232
  %185 = load ptr, ptr %184, align 8
  %186 = tail call noundef i32 %185(ptr noundef nonnull align 8 dereferenceable(1064) %0, i32 noundef %.9167)
  %187 = icmp eq i32 %186, 89
  br i1 %187, label %188, label %197

188:                                              ; preds = %182
  %189 = tail call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %1, i32 noundef %.9167)
  %190 = load ptr, ptr %0, align 8, !tbaa !32
  %191 = getelementptr inbounds i8, ptr %190, i64 224
  %192 = load ptr, ptr %191, align 8
  %193 = tail call noundef i32 %192(ptr noundef nonnull align 8 dereferenceable(1064) %0, i32 noundef %.9167, i32 noundef %189, i32 noundef %., i32 noundef 1)
  %.not120 = icmp eq i32 %193, 0
  br i1 %.not120, label %197, label %194

194:                                              ; preds = %188
  %195 = tail call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %196 = tail call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %195, i32 noundef 42, ptr noundef null, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef 2511, i32 noundef 1)
  br label %.loopexit138

197:                                              ; preds = %175, %177, %180, %188, %182
  %198 = add nuw nsw i32 %.9167, 1
  %exitcond180.not = icmp eq i32 %198, %5
  br i1 %exitcond180.not, label %.preheader, label %175, !llvm.loop !38

199:                                              ; preds = %.lr.ph170, %221
  %.10169 = phi i32 [ 0, %.lr.ph170 ], [ %222, %221 ]
  %200 = tail call noundef i32 @_ZNK7qpOASES9SubjectTo7getTypeEi(ptr noundef nonnull align 8 dereferenceable(40) %174, i32 noundef %.10169)
  %.not115 = icmp eq i32 %200, 2
  br i1 %.not115, label %221, label %201

201:                                              ; preds = %199
  %202 = tail call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %2, i32 noundef %.10169)
  %.not116 = icmp eq i32 %202, 0
  br i1 %.not116, label %221, label %203

203:                                              ; preds = %201
  %204 = tail call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %174, i32 noundef %.10169)
  %205 = icmp eq i32 %204, 0
  br i1 %205, label %206, label %221

206:                                              ; preds = %203
  %207 = load ptr, ptr %0, align 8, !tbaa !32
  %208 = getelementptr inbounds i8, ptr %207, i64 208
  %209 = load ptr, ptr %208, align 8
  %210 = tail call noundef i32 %209(ptr noundef nonnull align 8 dereferenceable(1064) %0, i32 noundef %.10169)
  %211 = icmp eq i32 %210, 89
  br i1 %211, label %212, label %221

212:                                              ; preds = %206
  %213 = tail call noundef i32 @_ZNK7qpOASES9SubjectTo9getStatusEi(ptr noundef nonnull align 8 dereferenceable(40) %2, i32 noundef %.10169)
  %214 = load ptr, ptr %0, align 8, !tbaa !32
  %215 = getelementptr inbounds i8, ptr %214, i64 200
  %216 = load ptr, ptr %215, align 8
  %217 = tail call noundef i32 %216(ptr noundef nonnull align 8 dereferenceable(1064) %0, i32 noundef %.10169, i32 noundef %213, i32 noundef %., i32 noundef 1)
  %.not117 = icmp eq i32 %217, 0
  br i1 %.not117, label %221, label %218

218:                                              ; preds = %212
  %219 = tail call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %220 = tail call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %219, i32 noundef 42, ptr noundef null, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef 2529, i32 noundef 1)
  br label %.loopexit138

221:                                              ; preds = %199, %201, %206, %212, %203
  %222 = add nuw nsw i32 %.10169, 1
  %exitcond181.not = icmp eq i32 %222, %6
  br i1 %exitcond181.not, label %._crit_edge171, label %199, !llvm.loop !39

._crit_edge171:                                   ; preds = %221, %.preheader
  store i32 %63, ptr %62, align 4, !tbaa !11
  store double %65, ptr %64, align 8, !tbaa !30
  br label %.loopexit138

.loopexit138:                                     ; preds = %59, %.preheader137, %82, %96, %112, %126, %144, %167, %194, %218, %._crit_edge171, %38, %35, %20, %17
  %.1 = phi i32 [ %19, %17 ], [ %37, %35 ], [ %40, %38 ], [ %22, %20 ], [ %84, %82 ], [ %98, %96 ], [ %114, %112 ], [ %128, %126 ], [ %146, %144 ], [ %169, %167 ], [ %196, %194 ], [ %220, %218 ], [ 0, %._crit_edge171 ], [ 0, %.preheader137 ], [ 0, %59 ]
  ret i32 %.1
}

declare noundef i32 @_ZN7qpOASES6Bounds15moveFreeToFixedEiNS_15SubjectToStatusE(ptr noundef nonnull align 8 dereferenceable(120), i32 noundef, i32 noundef) local_unnamed_addr #0

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

!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 = distinct !{!5, !6}
!6 = !{!"llvm.loop.mustprogress"}
!7 = distinct !{!7, !6}
!8 = distinct !{!8, !6}
!9 = distinct !{!9, !6}
!10 = distinct !{!10, !6}
!11 = !{!12, !13, i64 292}
!12 = !{!"_ZTSN7qpOASES9QProblemBE", !13, i64 8, !16, i64 16, !16, i64 24, !16, i64 32, !16, i64 40, !17, i64 48, !16, i64 168, !13, i64 176, !16, i64 184, !16, i64 192, !21, i64 200, !22, i64 208, !13, i64 212, !13, i64 216, !23, i64 220, !21, i64 224, !19, i64 232, !16, i64 240, !21, i64 248, !21, i64 256, !19, i64 264, !24, i64 272, !27, i64 496, !29, i64 768}
!13 = !{!"_ZTSN7qpOASES11BooleanTypeE", !14, i64 0}
!14 = !{!"omnipotent char", !15, i64 0}
!15 = !{!"Simple C++ TBAA"}
!16 = !{!"any pointer", !14, i64 0}
!17 = !{!"_ZTSN7qpOASES6BoundsE", !18, i64 0, !20, i64 40, !20, i64 80}
!18 = !{!"_ZTSN7qpOASES9SubjectToE", !19, i64 8, !16, i64 16, !16, i64 24, !13, i64 32, !13, i64 36}
!19 = !{!"int", !14, i64 0}
!20 = !{!"_ZTSN7qpOASES9IndexlistE", !16, i64 0, !16, i64 8, !19, i64 16, !19, i64 20, !19, i64 24, !19, i64 28, !19, i64 32}
!21 = !{!"double", !14, i64 0}
!22 = !{!"_ZTSN7qpOASES14QProblemStatusE", !14, i64 0}
!23 = !{!"_ZTSN7qpOASES11HessianTypeE", !14, i64 0}
!24 = !{!"_ZTSN7qpOASES7OptionsE", !25, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !13, i64 16, !13, i64 20, !13, i64 24, !19, i64 28, !19, i64 32, !13, i64 36, !21, i64 40, !21, i64 48, !21, i64 56, !21, i64 64, !21, i64 72, !21, i64 80, !21, i64 88, !21, i64 96, !21, i64 104, !21, i64 112, !21, i64 120, !26, i64 128, !21, i64 136, !19, i64 144, !21, i64 152, !19, i64 160, !21, i64 168, !21, i64 176, !21, i64 184, !21, i64 192, !13, i64 200, !13, i64 204, !19, i64 208, !19, i64 212, !19, i64 216}
!25 = !{!"_ZTSN7qpOASES10PrintLevelE", !14, i64 0}
!26 = !{!"_ZTSN7qpOASES15SubjectToStatusE", !14, i64 0}
!27 = !{!"_ZTSN7qpOASES7FlipperE", !19, i64 0, !19, i64 4, !17, i64 8, !28, i64 128, !16, i64 248, !16, i64 256, !16, i64 264}
!28 = !{!"_ZTSN7qpOASES11ConstraintsE", !18, i64 0, !20, i64 40, !20, i64 80}
!29 = !{!"_ZTSN7qpOASES13TabularOutputE", !19, i64 0, !19, i64 4, !19, i64 8, !19, i64 12, !19, i64 16, !19, i64 20, !19, i64 24, !19, i64 28}
!30 = !{!12, !21, i64 448}
!31 = !{!12, !13, i64 296}
!32 = !{!33, !33, i64 0}
!33 = !{!"vtable pointer", !15, i64 0}
!34 = distinct !{!34, !6}
!35 = distinct !{!35, !6}
!36 = distinct !{!36, !6}
!37 = distinct !{!37, !6}
!38 = distinct !{!38, !6}
!39 = distinct !{!39, !6}


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