; 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::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::Constraints" = type { %"class.qpOASES::SubjectTo", %"class.qpOASES::Indexlist", %"class.qpOASES::Indexlist" }
%"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::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 }
%"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

declare i32 @__gxx_personality_v0(...)

; 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: nounwind
declare void @_ZN7qpOASES11ConstraintsD1Ev(ptr noundef nonnull align 8 dereferenceable(120)) unnamed_addr #5

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZNK7qpOASES8QProblem5getNCEv(ptr noundef nonnull align 8 dereferenceable(1064)) #6 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

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN7qpOASES8QProblem14solveInitialQPEPKdS2_PKNS_6BoundsEPKNS_11ConstraintsES2_RiPd(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) #7 align 2 personality ptr @__gxx_personality_v0 {
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %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 i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca double, align 8
  %23 = alloca i32, align 4
  %24 = alloca %"class.qpOASES::Bounds", align 8
  %25 = alloca %"class.qpOASES::Constraints", align 8
  %26 = alloca ptr, align 8
  %27 = alloca i32, align 4
  %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 i32, align 4
  store ptr %0, ptr %10, align 8, !tbaa !5
  store ptr %1, ptr %11, align 8, !tbaa !5
  store ptr %2, ptr %12, align 8, !tbaa !5
  store ptr %3, ptr %13, align 8, !tbaa !5
  store ptr %4, ptr %14, align 8, !tbaa !5
  store ptr %5, ptr %15, align 8, !tbaa !5
  store ptr %6, ptr %16, align 8, !tbaa !5
  store ptr %7, ptr %17, align 8, !tbaa !5
  %34 = load ptr, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #9
  %35 = call noundef i32 @_ZNK7qpOASES9QProblemB5getNVEv(ptr noundef nonnull align 8 dereferenceable(800) %34)
  store i32 %35, ptr %20, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #9
  %36 = call noundef i32 @_ZNK7qpOASES8QProblem5getNCEv(ptr noundef nonnull align 8 dereferenceable(1064) %34)
  store i32 %36, ptr %21, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #9
  store double 0.000000e+00, ptr %22, align 8, !tbaa !11
  %37 = load ptr, ptr %17, align 8, !tbaa !5
  %38 = icmp ne ptr %37, null
  br i1 %38, label %39, label %41

39:                                               ; preds = %8
  %40 = call noundef double @_ZN7qpOASES10getCPUtimeEv()
  store double %40, ptr %22, align 8, !tbaa !11
  br label %41

41:                                               ; preds = %39, %8
  %42 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %34, i32 0, i32 12
  store i32 0, ptr %42, align 8, !tbaa !13
  %43 = call noundef i32 @_ZN7qpOASES9QProblemB20determineHessianTypeEv(ptr noundef nonnull align 8 dereferenceable(800) %34)
  %44 = icmp ne i32 %43, 0
  br i1 %44, label %45, label %48

45:                                               ; preds = %41
  %46 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %47 = call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %46, i32 noundef 33, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 1325, i32 noundef 1)
  store i32 %47, ptr %9, align 4
  store i32 1, ptr %23, align 4
  br label %522

48:                                               ; preds = %41
  %49 = load ptr, ptr %34, align 8, !tbaa !27
  %50 = getelementptr inbounds ptr, ptr %49, i64 10
  %51 = load ptr, ptr %50, align 8
  %52 = call noundef i32 %51(ptr noundef nonnull align 8 dereferenceable(1064) %34)
  %53 = icmp ne i32 %52, 0
  br i1 %53, label %54, label %57

54:                                               ; preds = %48
  %55 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %56 = call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %55, i32 noundef 33, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 1329, i32 noundef 1)
  store i32 %56, ptr %9, align 4
  store i32 1, ptr %23, align 4
  br label %522

57:                                               ; preds = %48
  %58 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %34, i32 0, i32 12
  store i32 1, ptr %58, align 8, !tbaa !13
  %59 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %34, i32 0, i32 6
  %60 = call noundef i32 @_ZN7qpOASES6Bounds12setupAllFreeEv(ptr noundef nonnull align 8 dereferenceable(120) %59)
  %61 = icmp ne i32 %60, 0
  br i1 %61, label %62, label %65

62:                                               ; preds = %57
  %63 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %64 = call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %63, i32 noundef 33, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 1337, i32 noundef 1)
  store i32 %64, ptr %9, align 4
  store i32 1, ptr %23, align 4
  br label %522

65:                                               ; preds = %57
  %66 = getelementptr inbounds %"class.qpOASES::QProblem", ptr %34, i32 0, i32 5
  %67 = call noundef i32 @_ZN7qpOASES11Constraints16setupAllInactiveEv(ptr noundef nonnull align 8 dereferenceable(120) %66)
  %68 = icmp ne i32 %67, 0
  br i1 %68, label %69, label %72

69:                                               ; preds = %65
  %70 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %71 = call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %70, i32 noundef 33, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 1340, i32 noundef 1)
  store i32 %71, ptr %9, align 4
  store i32 1, ptr %23, align 4
  br label %522

72:                                               ; preds = %65
  %73 = load ptr, ptr %11, align 8, !tbaa !5
  %74 = load ptr, ptr %12, align 8, !tbaa !5
  %75 = call noundef i32 @_ZN7qpOASES8QProblem24setupAuxiliaryQPsolutionEPKdS2_(ptr noundef nonnull align 8 dereferenceable(1064) %34, ptr noundef %73, ptr noundef %74)
  %76 = icmp ne i32 %75, 0
  br i1 %76, label %77, label %80

77:                                               ; preds = %72
  %78 = call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %79 = call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %78, i32 noundef 33, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 1344, i32 noundef 1)
  store i32 %79, ptr %9, align 4
  store i32 1, ptr %23, align 4
  br label %522

80:                                               ; preds = %72
  call void @llvm.lifetime.start.p0(i64 120, ptr %24) #9
  %81 = load i32, ptr %20, align 4, !tbaa !9
  call void @_ZN7qpOASES6BoundsC1Ei(ptr noundef nonnull align 8 dereferenceable(120) %24, i32 noundef %81)
  call void @llvm.lifetime.start.p0(i64 120, ptr %25) #9
  %82 = load i32, ptr %21, align 4, !tbaa !9
  invoke void @_ZN7qpOASES11ConstraintsC1Ei(ptr noundef nonnull align 8 dereferenceable(120) %25, i32 noundef %82)
          to label %83 unwind label %96

83:                                               ; preds = %80
  %84 = load ptr, ptr %11, align 8, !tbaa !5
  %85 = load ptr, ptr %12, align 8, !tbaa !5
  %86 = load ptr, ptr %13, align 8, !tbaa !5
  %87 = load ptr, ptr %14, align 8, !tbaa !5
  %88 = invoke noundef i32 @_ZNK7qpOASES8QProblem25obtainAuxiliaryWorkingSetEPKdS2_PKNS_6BoundsEPKNS_11ConstraintsEPS3_PS6_(ptr noundef nonnull align 8 dereferenceable(1064) %34, ptr noundef %84, ptr noundef %85, ptr noundef %86, ptr noundef %87, ptr noundef %24, ptr noundef %25)
          to label %89 unwind label %100

89:                                               ; preds = %83
  %90 = icmp ne i32 %88, 0
  br i1 %90, label %91, label %104

91:                                               ; preds = %89
  %92 = invoke noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
          to label %93 unwind label %100

93:                                               ; preds = %91
  %94 = invoke noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %92, i32 noundef 33, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 1352, i32 noundef 1)
          to label %95 unwind label %100

95:                                               ; preds = %93
  store i32 %94, ptr %9, align 4
  store i32 1, ptr %23, align 4
  br label %519

96:                                               ; preds = %80
  %97 = landingpad { ptr, i32 }
          cleanup
  %98 = extractvalue { ptr, i32 } %97, 0
  store ptr %98, ptr %26, align 8
  %99 = extractvalue { ptr, i32 } %97, 1
  store i32 %99, ptr %27, align 4
  br label %521

100:                                              ; preds = %220, %218, %157, %155, %143, %141, %134, %131, %129, %122, %118, %116, %112, %93, %91, %83
  %101 = landingpad { ptr, i32 }
          cleanup
  %102 = extractvalue { ptr, i32 } %101, 0
  store ptr %102, ptr %26, align 8
  %103 = extractvalue { ptr, i32 } %101, 1
  store i32 %103, ptr %27, align 4
  br label %520

104:                                              ; preds = %89
  %105 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %34, i32 0, i32 15
  %106 = load i32, ptr %105, align 4, !tbaa !29
  %107 = icmp eq i32 %106, 0
  br i1 %107, label %112, label %108

108:                                              ; preds = %104
  %109 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %34, i32 0, i32 15
  %110 = load i32, ptr %109, align 4, !tbaa !29
  %111 = icmp eq i32 %110, 4
  br i1 %111, label %112, label %122

112:                                              ; preds = %108, %104
  %113 = invoke noundef i32 @_ZN7qpOASES9QProblemB17regulariseHessianEv(ptr noundef nonnull align 8 dereferenceable(800) %34)
          to label %114 unwind label %100

114:                                              ; preds = %112
  %115 = icmp ne i32 %113, 0
  br i1 %115, label %116, label %121

116:                                              ; preds = %114
  %117 = invoke noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
          to label %118 unwind label %100

118:                                              ; preds = %116
  %119 = invoke noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %117, i32 noundef 39, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 1359, i32 noundef 1)
          to label %120 unwind label %100

120:                                              ; preds = %118
  store i32 %119, ptr %9, align 4
  store i32 1, ptr %23, align 4
  br label %519

121:                                              ; preds = %114
  br label %122

122:                                              ; preds = %121, %108
  %123 = load ptr, ptr %34, align 8, !tbaa !27
  %124 = getelementptr inbounds ptr, ptr %123, i64 23
  %125 = load ptr, ptr %124, align 8
  %126 = invoke noundef i32 %125(ptr noundef nonnull align 8 dereferenceable(1064) %34)
          to label %127 unwind label %100

127:                                              ; preds = %122
  %128 = icmp ne i32 %126, 0
  br i1 %128, label %129, label %134

129:                                              ; preds = %127
  %130 = invoke noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
          to label %131 unwind label %100

131:                                              ; preds = %129
  %132 = invoke noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %130, i32 noundef 34, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 1364, i32 noundef 1)
          to label %133 unwind label %100

133:                                              ; preds = %131
  store i32 %132, ptr %9, align 4
  store i32 1, ptr %23, align 4
  br label %519

134:                                              ; preds = %127
  %135 = load ptr, ptr %34, align 8, !tbaa !27
  %136 = getelementptr inbounds ptr, ptr %135, i64 24
  %137 = load ptr, ptr %136, align 8
  %138 = invoke noundef i32 %137(ptr noundef nonnull align 8 dereferenceable(1064) %34, ptr noundef %24, ptr noundef %25, i32 noundef 1)
          to label %139 unwind label %100

139:                                              ; preds = %134
  %140 = icmp ne i32 %138, 0
  br i1 %140, label %141, label %146

141:                                              ; preds = %139
  %142 = invoke noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
          to label %143 unwind label %100

143:                                              ; preds = %141
  %144 = invoke noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %142, i32 noundef 33, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 1368, i32 noundef 1)
          to label %145 unwind label %100

145:                                              ; preds = %143
  store i32 %144, ptr %9, align 4
  store i32 1, ptr %23, align 4
  br label %519

146:                                              ; preds = %139
  %147 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %34, i32 0, i32 8
  store i32 0, ptr %147, align 8, !tbaa !30
  %148 = load ptr, ptr %15, align 8, !tbaa !5
  %149 = icmp ne ptr %148, null
  br i1 %149, label %150, label %226

150:                                              ; preds = %146
  %151 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %34, i32 0, i32 23
  %152 = getelementptr inbounds %"class.qpOASES::Options", ptr %151, i32 0, i32 21
  %153 = load i32, ptr %152, align 8, !tbaa !31
  %154 = icmp ne i32 %153, 0
  br i1 %154, label %155, label %160

155:                                              ; preds = %150
  %156 = invoke noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
          to label %157 unwind label %100

157:                                              ; preds = %155
  %158 = invoke noundef i32 @_ZN7qpOASES15MessageHandling12throwWarningENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %156, i32 noundef 44, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 1377, i32 noundef 1)
          to label %159 unwind label %100

159:                                              ; preds = %157
  br label %225

160:                                              ; preds = %150
  %161 = load ptr, ptr %15, align 8, !tbaa !5
  %162 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %34, i32 0, i32 7
  %163 = load ptr, ptr %162, align 8, !tbaa !32
  %164 = icmp eq ptr %161, %163
  br i1 %164, label %165, label %167

165:                                              ; preds = %160
  %166 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %34, i32 0, i32 8
  store i32 1, ptr %166, align 8, !tbaa !30
  br label %224

167:                                              ; preds = %160
  %168 = load ptr, ptr %11, align 8, !tbaa !5
  %169 = icmp eq ptr %168, null
  br i1 %169, label %170, label %218

170:                                              ; preds = %167
  %171 = load ptr, ptr %12, align 8, !tbaa !5
  %172 = icmp eq ptr %171, null
  br i1 %172, label %173, label %218

173:                                              ; preds = %170
  %174 = load ptr, ptr %13, align 8, !tbaa !5
  %175 = icmp eq ptr %174, null
  br i1 %175, label %176, label %218

176:                                              ; preds = %173
  %177 = load ptr, ptr %14, align 8, !tbaa !5
  %178 = icmp eq ptr %177, null
  br i1 %178, label %179, label %218

179:                                              ; preds = %176
  store i32 0, ptr %18, align 4, !tbaa !9
  br label %180

180:                                              ; preds = %213, %179
  %181 = load i32, ptr %18, align 4, !tbaa !9
  %182 = load i32, ptr %20, align 4, !tbaa !9
  %183 = icmp slt i32 %181, %182
  br i1 %183, label %184, label %216

184:                                              ; preds = %180
  %185 = load i32, ptr %18, align 4, !tbaa !9
  store i32 %185, ptr %19, align 4, !tbaa !9
  br label %186

186:                                              ; preds = %209, %184
  %187 = load i32, ptr %19, align 4, !tbaa !9
  %188 = load i32, ptr %20, align 4, !tbaa !9
  %189 = icmp slt i32 %187, %188
  br i1 %189, label %190, label %212

190:                                              ; preds = %186
  %191 = load ptr, ptr %15, align 8, !tbaa !5
  %192 = load i32, ptr %18, align 4, !tbaa !9
  %193 = load i32, ptr %20, align 4, !tbaa !9
  %194 = mul nsw i32 %192, %193
  %195 = load i32, ptr %19, align 4, !tbaa !9
  %196 = add nsw i32 %194, %195
  %197 = sext i32 %196 to i64
  %198 = getelementptr inbounds double, ptr %191, i64 %197
  %199 = load double, ptr %198, align 8, !tbaa !11
  %200 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %34, i32 0, i32 7
  %201 = load ptr, ptr %200, align 8, !tbaa !32
  %202 = load i32, ptr %18, align 4, !tbaa !9
  %203 = load i32, ptr %20, align 4, !tbaa !9
  %204 = load i32, ptr %19, align 4, !tbaa !9
  %205 = mul nsw i32 %203, %204
  %206 = add nsw i32 %202, %205
  %207 = sext i32 %206 to i64
  %208 = getelementptr inbounds double, ptr %201, i64 %207
  store double %199, ptr %208, align 8, !tbaa !11
  br label %209

209:                                              ; preds = %190
  %210 = load i32, ptr %19, align 4, !tbaa !9
  %211 = add nsw i32 %210, 1
  store i32 %211, ptr %19, align 4, !tbaa !9
  br label %186, !llvm.loop !33

212:                                              ; preds = %186
  br label %213

213:                                              ; preds = %212
  %214 = load i32, ptr %18, align 4, !tbaa !9
  %215 = add nsw i32 %214, 1
  store i32 %215, ptr %18, align 4, !tbaa !9
  br label %180, !llvm.loop !35

216:                                              ; preds = %180
  %217 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %34, i32 0, i32 8
  store i32 1, ptr %217, align 8, !tbaa !30
  br label %223

218:                                              ; preds = %176, %173, %170, %167
  %219 = invoke noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
          to label %220 unwind label %100

220:                                              ; preds = %218
  %221 = invoke noundef i32 @_ZN7qpOASES15MessageHandling12throwWarningENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %219, i32 noundef 44, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 1395, i32 noundef 1)
          to label %222 unwind label %100

222:                                              ; preds = %220
  br label %223

223:                                              ; preds = %222, %216
  br label %224

224:                                              ; preds = %223, %165
  br label %225

225:                                              ; preds = %224, %159
  br label %226

226:                                              ; preds = %225, %146
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #9
  %227 = load i32, ptr %20, align 4, !tbaa !9
  %228 = sext i32 %227 to i64
  %229 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %228, i64 8)
  %230 = extractvalue { i64, i1 } %229, 1
  %231 = extractvalue { i64, i1 } %229, 0
  %232 = select i1 %230, i64 -1, i64 %231
  %233 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %232) #10
          to label %234 unwind label %305

234:                                              ; preds = %226
  store ptr %233, ptr %28, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #9
  %235 = load i32, ptr %20, align 4, !tbaa !9
  %236 = sext i32 %235 to i64
  %237 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %236, i64 8)
  %238 = extractvalue { i64, i1 } %237, 1
  %239 = extractvalue { i64, i1 } %237, 0
  %240 = select i1 %238, i64 -1, i64 %239
  %241 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %240) #10
          to label %242 unwind label %309

242:                                              ; preds = %234
  store ptr %241, ptr %29, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #9
  %243 = load i32, ptr %20, align 4, !tbaa !9
  %244 = sext i32 %243 to i64
  %245 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %244, i64 8)
  %246 = extractvalue { i64, i1 } %245, 1
  %247 = extractvalue { i64, i1 } %245, 0
  %248 = select i1 %246, i64 -1, i64 %247
  %249 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %248) #10
          to label %250 unwind label %313

250:                                              ; preds = %242
  store ptr %249, ptr %30, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #9
  %251 = load i32, ptr %21, align 4, !tbaa !9
  %252 = sext i32 %251 to i64
  %253 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %252, i64 8)
  %254 = extractvalue { i64, i1 } %253, 1
  %255 = extractvalue { i64, i1 } %253, 0
  %256 = select i1 %254, i64 -1, i64 %255
  %257 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %256) #10
          to label %258 unwind label %317

258:                                              ; preds = %250
  store ptr %257, ptr %31, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #9
  %259 = load i32, ptr %21, align 4, !tbaa !9
  %260 = sext i32 %259 to i64
  %261 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %260, i64 8)
  %262 = extractvalue { i64, i1 } %261, 1
  %263 = extractvalue { i64, i1 } %261, 0
  %264 = select i1 %262, i64 -1, i64 %263
  %265 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %264) #10
          to label %266 unwind label %321

266:                                              ; preds = %258
  store ptr %265, ptr %32, align 8, !tbaa !5
  store i32 0, ptr %18, align 4, !tbaa !9
  br label %267

267:                                              ; preds = %302, %266
  %268 = load i32, ptr %18, align 4, !tbaa !9
  %269 = load i32, ptr %20, align 4, !tbaa !9
  %270 = icmp slt i32 %268, %269
  br i1 %270, label %271, label %325

271:                                              ; preds = %267
  %272 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %34, i32 0, i32 3
  %273 = load ptr, ptr %272, align 8, !tbaa !36
  %274 = load i32, ptr %18, align 4, !tbaa !9
  %275 = sext i32 %274 to i64
  %276 = getelementptr inbounds double, ptr %273, i64 %275
  %277 = load double, ptr %276, align 8, !tbaa !11
  %278 = load ptr, ptr %28, align 8, !tbaa !5
  %279 = load i32, ptr %18, align 4, !tbaa !9
  %280 = sext i32 %279 to i64
  %281 = getelementptr inbounds double, ptr %278, i64 %280
  store double %277, ptr %281, align 8, !tbaa !11
  %282 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %34, i32 0, i32 4
  %283 = load ptr, ptr %282, align 8, !tbaa !37
  %284 = load i32, ptr %18, align 4, !tbaa !9
  %285 = sext i32 %284 to i64
  %286 = getelementptr inbounds double, ptr %283, i64 %285
  %287 = load double, ptr %286, align 8, !tbaa !11
  %288 = load ptr, ptr %29, align 8, !tbaa !5
  %289 = load i32, ptr %18, align 4, !tbaa !9
  %290 = sext i32 %289 to i64
  %291 = getelementptr inbounds double, ptr %288, i64 %290
  store double %287, ptr %291, align 8, !tbaa !11
  %292 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %34, i32 0, i32 5
  %293 = load ptr, ptr %292, align 8, !tbaa !38
  %294 = load i32, ptr %18, align 4, !tbaa !9
  %295 = sext i32 %294 to i64
  %296 = getelementptr inbounds double, ptr %293, i64 %295
  %297 = load double, ptr %296, align 8, !tbaa !11
  %298 = load ptr, ptr %30, align 8, !tbaa !5
  %299 = load i32, ptr %18, align 4, !tbaa !9
  %300 = sext i32 %299 to i64
  %301 = getelementptr inbounds double, ptr %298, i64 %300
  store double %297, ptr %301, align 8, !tbaa !11
  br label %302

302:                                              ; preds = %271
  %303 = load i32, ptr %18, align 4, !tbaa !9
  %304 = add nsw i32 %303, 1
  store i32 %304, ptr %18, align 4, !tbaa !9
  br label %267, !llvm.loop !39

305:                                              ; preds = %226
  %306 = landingpad { ptr, i32 }
          cleanup
  %307 = extractvalue { ptr, i32 } %306, 0
  store ptr %307, ptr %26, align 8
  %308 = extractvalue { ptr, i32 } %306, 1
  store i32 %308, ptr %27, align 4
  br label %518

309:                                              ; preds = %234
  %310 = landingpad { ptr, i32 }
          cleanup
  %311 = extractvalue { ptr, i32 } %310, 0
  store ptr %311, ptr %26, align 8
  %312 = extractvalue { ptr, i32 } %310, 1
  store i32 %312, ptr %27, align 4
  br label %517

313:                                              ; preds = %242
  %314 = landingpad { ptr, i32 }
          cleanup
  %315 = extractvalue { ptr, i32 } %314, 0
  store ptr %315, ptr %26, align 8
  %316 = extractvalue { ptr, i32 } %314, 1
  store i32 %316, ptr %27, align 4
  br label %516

317:                                              ; preds = %250
  %318 = landingpad { ptr, i32 }
          cleanup
  %319 = extractvalue { ptr, i32 } %318, 0
  store ptr %319, ptr %26, align 8
  %320 = extractvalue { ptr, i32 } %318, 1
  store i32 %320, ptr %27, align 4
  br label %515

321:                                              ; preds = %427, %418, %409, %407, %383, %380, %378, %354, %258
  %322 = landingpad { ptr, i32 }
          cleanup
  %323 = extractvalue { ptr, i32 } %322, 0
  store ptr %323, ptr %26, align 8
  %324 = extractvalue { ptr, i32 } %322, 1
  store i32 %324, ptr %27, align 4
  br label %514

325:                                              ; preds = %267
  store i32 0, ptr %18, align 4, !tbaa !9
  br label %326

326:                                              ; preds = %351, %325
  %327 = load i32, ptr %18, align 4, !tbaa !9
  %328 = load i32, ptr %21, align 4, !tbaa !9
  %329 = icmp slt i32 %327, %328
  br i1 %329, label %330, label %354

330:                                              ; preds = %326
  %331 = getelementptr inbounds %"class.qpOASES::QProblem", ptr %34, i32 0, i32 3
  %332 = load ptr, ptr %331, align 8, !tbaa !40
  %333 = load i32, ptr %18, align 4, !tbaa !9
  %334 = sext i32 %333 to i64
  %335 = getelementptr inbounds double, ptr %332, i64 %334
  %336 = load double, ptr %335, align 8, !tbaa !11
  %337 = load ptr, ptr %31, align 8, !tbaa !5
  %338 = load i32, ptr %18, align 4, !tbaa !9
  %339 = sext i32 %338 to i64
  %340 = getelementptr inbounds double, ptr %337, i64 %339
  store double %336, ptr %340, align 8, !tbaa !11
  %341 = getelementptr inbounds %"class.qpOASES::QProblem", ptr %34, i32 0, i32 4
  %342 = load ptr, ptr %341, align 8, !tbaa !42
  %343 = load i32, ptr %18, align 4, !tbaa !9
  %344 = sext i32 %343 to i64
  %345 = getelementptr inbounds double, ptr %342, i64 %344
  %346 = load double, ptr %345, align 8, !tbaa !11
  %347 = load ptr, ptr %32, align 8, !tbaa !5
  %348 = load i32, ptr %18, align 4, !tbaa !9
  %349 = sext i32 %348 to i64
  %350 = getelementptr inbounds double, ptr %347, i64 %349
  store double %346, ptr %350, align 8, !tbaa !11
  br label %351

351:                                              ; preds = %330
  %352 = load i32, ptr %18, align 4, !tbaa !9
  %353 = add nsw i32 %352, 1
  store i32 %353, ptr %18, align 4, !tbaa !9
  br label %326, !llvm.loop !43

354:                                              ; preds = %326
  %355 = invoke noundef i32 @_ZN7qpOASES8QProblem24setupAuxiliaryQPgradientEv(ptr noundef nonnull align 8 dereferenceable(1064) %34)
          to label %356 unwind label %321

356:                                              ; preds = %354
  %357 = icmp ne i32 %355, 0
  br i1 %357, label %358, label %383

358:                                              ; preds = %356
  %359 = load ptr, ptr %32, 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 %31, 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 %30, 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 %29, 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 ptr, ptr %28, align 8, !tbaa !5
  %376 = icmp eq ptr %375, null
  br i1 %376, label %378, label %377

377:                                              ; preds = %374
  call void @_ZdaPv(ptr noundef %375) #11
  br label %378

378:                                              ; preds = %377, %374
  %379 = invoke noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
          to label %380 unwind label %321

380:                                              ; preds = %378
  %381 = invoke noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %379, i32 noundef 33, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 1425, i32 noundef 1)
          to label %382 unwind label %321

382:                                              ; preds = %380
  store i32 %381, ptr %9, align 4
  store i32 1, ptr %23, align 4
  br label %513

383:                                              ; preds = %356
  %384 = invoke noundef i32 @_ZN7qpOASES8QProblem22setupAuxiliaryQPboundsEPKNS_6BoundsEPKNS_11ConstraintsENS_11BooleanTypeE(ptr noundef nonnull align 8 dereferenceable(1064) %34, ptr noundef %24, ptr noundef %25, i32 noundef 1)
          to label %385 unwind label %321

385:                                              ; preds = %383
  %386 = icmp ne i32 %384, 0
  br i1 %386, label %387, label %412

387:                                              ; preds = %385
  %388 = load ptr, ptr %32, align 8, !tbaa !5
  %389 = icmp eq ptr %388, null
  br i1 %389, label %391, label %390

390:                                              ; preds = %387
  call void @_ZdaPv(ptr noundef %388) #11
  br label %391

391:                                              ; preds = %390, %387
  %392 = load ptr, ptr %31, align 8, !tbaa !5
  %393 = icmp eq ptr %392, null
  br i1 %393, label %395, label %394

394:                                              ; preds = %391
  call void @_ZdaPv(ptr noundef %392) #11
  br label %395

395:                                              ; preds = %394, %391
  %396 = load ptr, ptr %30, align 8, !tbaa !5
  %397 = icmp eq ptr %396, null
  br i1 %397, label %399, label %398

398:                                              ; preds = %395
  call void @_ZdaPv(ptr noundef %396) #11
  br label %399

399:                                              ; preds = %398, %395
  %400 = load ptr, ptr %29, align 8, !tbaa !5
  %401 = icmp eq ptr %400, null
  br i1 %401, label %403, label %402

402:                                              ; preds = %399
  call void @_ZdaPv(ptr noundef %400) #11
  br label %403

403:                                              ; preds = %402, %399
  %404 = load ptr, ptr %28, align 8, !tbaa !5
  %405 = icmp eq ptr %404, null
  br i1 %405, label %407, label %406

406:                                              ; preds = %403
  call void @_ZdaPv(ptr noundef %404) #11
  br label %407

407:                                              ; preds = %406, %403
  %408 = invoke noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
          to label %409 unwind label %321

409:                                              ; preds = %407
  %410 = invoke noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %408, i32 noundef 33, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 1431, i32 noundef 1)
          to label %411 unwind label %321

411:                                              ; preds = %409
  store i32 %410, ptr %9, align 4
  store i32 1, ptr %23, align 4
  br label %513

412:                                              ; preds = %385
  %413 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %34, i32 0, i32 12
  store i32 2, ptr %413, align 8, !tbaa !13
  %414 = getelementptr inbounds %"class.qpOASES::QProblemB", ptr %34, i32 0, i32 23
  %415 = getelementptr inbounds %"class.qpOASES::Options", ptr %414, i32 0, i32 1
  %416 = load i32, ptr %415, align 4, !tbaa !44
  %417 = icmp eq i32 %416, 1
  br i1 %417, label %418, label %424

418:                                              ; preds = %412
  %419 = load ptr, ptr %34, align 8, !tbaa !27
  %420 = getelementptr inbounds ptr, ptr %419, i64 16
  %421 = load ptr, ptr %420, align 8
  %422 = invoke noundef i32 %421(ptr noundef nonnull align 8 dereferenceable(1064) %34)
          to label %423 unwind label %321

423:                                              ; preds = %418
  br label %424

424:                                              ; preds = %423, %412
  %425 = load ptr, ptr %17, align 8, !tbaa !5
  %426 = icmp ne ptr %425, null
  br i1 %426, label %427, label %435

427:                                              ; preds = %424
  %428 = invoke noundef double @_ZN7qpOASES10getCPUtimeEv()
          to label %429 unwind label %321

429:                                              ; preds = %427
  %430 = load double, ptr %22, align 8, !tbaa !11
  %431 = fsub double %428, %430
  %432 = load ptr, ptr %17, align 8, !tbaa !5
  %433 = load double, ptr %432, align 8, !tbaa !11
  %434 = fsub double %433, %431
  store double %434, ptr %432, align 8, !tbaa !11
  br label %435

435:                                              ; preds = %429, %424
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #9
  %436 = load ptr, ptr %28, align 8, !tbaa !5
  %437 = load ptr, ptr %29, align 8, !tbaa !5
  %438 = load ptr, ptr %30, align 8, !tbaa !5
  %439 = load ptr, ptr %31, align 8, !tbaa !5
  %440 = load ptr, ptr %32, align 8, !tbaa !5
  %441 = load ptr, ptr %16, align 8, !tbaa !5
  %442 = load ptr, ptr %17, align 8, !tbaa !5
  %443 = invoke noundef i32 @_ZN7qpOASES8QProblem8hotstartEPKdS2_S2_S2_S2_RiPdPKNS_6BoundsEPKNS_11ConstraintsE(ptr noundef nonnull align 8 dereferenceable(1064) %34, ptr noundef %436, ptr noundef %437, ptr noundef %438, ptr noundef %439, ptr noundef %440, ptr noundef nonnull align 4 dereferenceable(4) %441, ptr noundef %442, ptr noundef null, ptr noundef null)
          to label %444 unwind label %473

444:                                              ; preds = %435
  store i32 %443, ptr %33, align 4, !tbaa !45
  %445 = load ptr, ptr %32, align 8, !tbaa !5
  %446 = icmp eq ptr %445, null
  br i1 %446, label %448, label %447

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

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

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

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

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

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

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

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

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

464:                                              ; preds = %463, %460
  %465 = invoke noundef i32 @_ZNK7qpOASES9QProblemB12isInfeasibleEv(ptr noundef nonnull align 8 dereferenceable(800) %34)
          to label %466 unwind label %473

466:                                              ; preds = %464
  %467 = icmp eq i32 %465, 1
  br i1 %467, label %468, label %477

468:                                              ; preds = %466
  %469 = invoke noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
          to label %470 unwind label %473

470:                                              ; preds = %468
  %471 = invoke noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %469, i32 noundef 37, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 1454, i32 noundef 1)
          to label %472 unwind label %473

472:                                              ; preds = %470
  store i32 %471, ptr %9, align 4
  store i32 1, ptr %23, align 4
  br label %512

473:                                              ; preds = %508, %506, %500, %494, %492, %483, %481, %477, %470, %468, %464, %435
  %474 = landingpad { ptr, i32 }
          cleanup
  %475 = extractvalue { ptr, i32 } %474, 0
  store ptr %475, ptr %26, align 8
  %476 = extractvalue { ptr, i32 } %474, 1
  store i32 %476, ptr %27, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  br label %514

477:                                              ; preds = %466
  %478 = invoke noundef i32 @_ZNK7qpOASES9QProblemB11isUnboundedEv(ptr noundef nonnull align 8 dereferenceable(800) %34)
          to label %479 unwind label %473

479:                                              ; preds = %477
  %480 = icmp eq i32 %478, 1
  br i1 %480, label %481, label %486

481:                                              ; preds = %479
  %482 = invoke noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
          to label %483 unwind label %473

483:                                              ; preds = %481
  %484 = invoke noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %482, i32 noundef 38, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 1457, i32 noundef 1)
          to label %485 unwind label %473

485:                                              ; preds = %483
  store i32 %484, ptr %9, align 4
  store i32 1, ptr %23, align 4
  br label %512

486:                                              ; preds = %479
  %487 = load i32, ptr %33, align 4, !tbaa !45
  %488 = icmp ne i32 %487, 0
  br i1 %488, label %489, label %497

489:                                              ; preds = %486
  %490 = load i32, ptr %33, align 4, !tbaa !45
  %491 = icmp ne i32 %490, 64
  br i1 %491, label %492, label %497

492:                                              ; preds = %489
  %493 = invoke noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
          to label %494 unwind label %473

494:                                              ; preds = %492
  %495 = invoke noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %493, i32 noundef 36, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 1461, i32 noundef 1)
          to label %496 unwind label %473

496:                                              ; preds = %494
  store i32 %495, ptr %9, align 4
  store i32 1, ptr %23, align 4
  br label %512

497:                                              ; preds = %489, %486
  %498 = load ptr, ptr %17, align 8, !tbaa !5
  %499 = icmp ne ptr %498, null
  br i1 %499, label %500, label %506

500:                                              ; preds = %497
  %501 = invoke noundef double @_ZN7qpOASES10getCPUtimeEv()
          to label %502 unwind label %473

502:                                              ; preds = %500
  %503 = load double, ptr %22, align 8, !tbaa !11
  %504 = fsub double %501, %503
  %505 = load ptr, ptr %17, align 8, !tbaa !5
  store double %504, ptr %505, align 8, !tbaa !11
  br label %506

506:                                              ; preds = %502, %497
  %507 = invoke noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
          to label %508 unwind label %473

508:                                              ; preds = %506
  %509 = invoke noundef i32 @_ZN7qpOASES15MessageHandling9throwInfoENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %507, i32 noundef 40, ptr noundef null, ptr noundef @.str, ptr noundef @.str.1, i64 noundef 1468, i32 noundef 1)
          to label %510 unwind label %473

510:                                              ; preds = %508
  %511 = load i32, ptr %33, align 4, !tbaa !45
  store i32 %511, ptr %9, align 4
  store i32 1, ptr %23, align 4
  br label %512

512:                                              ; preds = %510, %496, %485, %472
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  br label %513

513:                                              ; preds = %512, %411, %382
  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 %519

514:                                              ; preds = %473, %321
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #9
  br label %515

515:                                              ; preds = %514, %317
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #9
  br label %516

516:                                              ; preds = %515, %313
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #9
  br label %517

517:                                              ; preds = %516, %309
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #9
  br label %518

518:                                              ; preds = %517, %305
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #9
  br label %520

519:                                              ; preds = %513, %145, %133, %120, %95
  call void @_ZN7qpOASES11ConstraintsD1Ev(ptr noundef nonnull align 8 dereferenceable(120) %25) #9
  call void @llvm.lifetime.end.p0(i64 120, ptr %25) #9
  call void @_ZN7qpOASES6BoundsD1Ev(ptr noundef nonnull align 8 dereferenceable(120) %24) #9
  call void @llvm.lifetime.end.p0(i64 120, ptr %24) #9
  br label %522

520:                                              ; preds = %518, %100
  call void @_ZN7qpOASES11ConstraintsD1Ev(ptr noundef nonnull align 8 dereferenceable(120) %25) #9
  br label %521

521:                                              ; preds = %520, %96
  call void @llvm.lifetime.end.p0(i64 120, ptr %25) #9
  call void @_ZN7qpOASES6BoundsD1Ev(ptr noundef nonnull align 8 dereferenceable(120) %24) #9
  call void @llvm.lifetime.end.p0(i64 120, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #9
  br label %524

522:                                              ; preds = %519, %77, %69, %62, %54, %45
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #9
  %523 = load i32, ptr %9, align 4
  ret i32 %523

524:                                              ; preds = %521
  %525 = load ptr, ptr %26, align 8
  %526 = load i32, ptr %27, align 4
  %527 = insertvalue { ptr, i32 } poison, ptr %525, 0
  %528 = insertvalue { ptr, i32 } %527, i32 %526, 1
  resume { ptr, i32 } %528
}

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

declare noundef double @_ZN7qpOASES10getCPUtimeEv() #1

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

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

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

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

declare void @_ZN7qpOASES6BoundsC1Ei(ptr noundef nonnull align 8 dereferenceable(120), i32 noundef) unnamed_addr #1

declare void @_ZN7qpOASES11ConstraintsC1Ei(ptr noundef nonnull align 8 dereferenceable(120), i32 noundef) unnamed_addr #1

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK7qpOASES9QProblemB11isUnboundedEv(ptr noundef nonnull align 8 dereferenceable(800)) #8 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: nounwind
declare void @_ZN7qpOASES6BoundsD1Ev(ptr noundef nonnull align 8 dereferenceable(120)) unnamed_addr #5

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 = { 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 #6 = { 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 #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 = { 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 #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 = !{!"double", !7, i64 0}
!13 = !{!14, !19, i64 208}
!14 = !{!"_ZTSN7qpOASES9QProblemBE", !15, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !16, i64 48, !6, i64 168, !15, i64 176, !6, i64 184, !6, i64 192, !12, i64 200, !19, i64 208, !15, i64 212, !15, i64 216, !20, i64 220, !12, i64 224, !10, i64 232, !6, i64 240, !12, i64 248, !12, i64 256, !10, i64 264, !21, i64 272, !24, i64 496, !26, i64 768}
!15 = !{!"_ZTSN7qpOASES11BooleanTypeE", !7, i64 0}
!16 = !{!"_ZTSN7qpOASES6BoundsE", !17, i64 0, !18, i64 40, !18, i64 80}
!17 = !{!"_ZTSN7qpOASES9SubjectToE", !10, i64 8, !6, i64 16, !6, i64 24, !15, i64 32, !15, i64 36}
!18 = !{!"_ZTSN7qpOASES9IndexlistE", !6, i64 0, !6, i64 8, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28, !10, i64 32}
!19 = !{!"_ZTSN7qpOASES14QProblemStatusE", !7, i64 0}
!20 = !{!"_ZTSN7qpOASES11HessianTypeE", !7, i64 0}
!21 = !{!"_ZTSN7qpOASES7OptionsE", !22, i64 0, !15, i64 4, !15, i64 8, !15, i64 12, !15, i64 16, !15, i64 20, !15, i64 24, !10, i64 28, !10, i64 32, !15, i64 36, !12, i64 40, !12, i64 48, !12, i64 56, !12, i64 64, !12, i64 72, !12, i64 80, !12, i64 88, !12, i64 96, !12, i64 104, !12, i64 112, !12, i64 120, !23, i64 128, !12, i64 136, !10, i64 144, !12, i64 152, !10, i64 160, !12, i64 168, !12, i64 176, !12, i64 184, !12, i64 192, !15, i64 200, !15, i64 204, !10, i64 208, !10, i64 212, !10, i64 216}
!22 = !{!"_ZTSN7qpOASES10PrintLevelE", !7, i64 0}
!23 = !{!"_ZTSN7qpOASES15SubjectToStatusE", !7, i64 0}
!24 = !{!"_ZTSN7qpOASES7FlipperE", !10, i64 0, !10, i64 4, !16, i64 8, !25, i64 128, !6, i64 248, !6, i64 256, !6, i64 264}
!25 = !{!"_ZTSN7qpOASES11ConstraintsE", !17, i64 0, !18, i64 40, !18, i64 80}
!26 = !{!"_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}
!27 = !{!28, !28, i64 0}
!28 = !{!"vtable pointer", !8, i64 0}
!29 = !{!14, !20, i64 220}
!30 = !{!14, !15, i64 176}
!31 = !{!14, !23, i64 400}
!32 = !{!14, !6, i64 168}
!33 = distinct !{!33, !34}
!34 = !{!"llvm.loop.mustprogress"}
!35 = distinct !{!35, !34}
!36 = !{!14, !6, i64 24}
!37 = !{!14, !6, i64 32}
!38 = !{!14, !6, i64 40}
!39 = distinct !{!39, !34}
!40 = !{!41, !6, i64 816}
!41 = !{!"_ZTSN7qpOASES8QProblemE", !14, i64 0, !15, i64 800, !6, i64 808, !6, i64 816, !6, i64 824, !25, i64 832, !6, i64 952, !6, i64 960, !10, i64 968, !6, i64 976, !6, i64 984, !6, i64 992, !6, i64 1000, !6, i64 1008, !6, i64 1016, !6, i64 1024, !6, i64 1032, !6, i64 1040, !6, i64 1048, !6, i64 1056}
!42 = !{!41, !6, i64 824}
!43 = distinct !{!43, !34}
!44 = !{!14, !15, i64 276}
!45 = !{!46, !46, i64 0}
!46 = !{!"_ZTSN7qpOASES11returnValueE", !7, i64 0}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.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::Constraints" = type { %"class.qpOASES::SubjectTo", %"class.qpOASES::Indexlist", %"class.qpOASES::Indexlist" }

@.str = external hidden unnamed_addr constant [28 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [103 x i8], align 1

declare i32 @__gxx_personality_v0(...)

; 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: nounwind
declare void @_ZN7qpOASES11ConstraintsD1Ev(ptr noundef nonnull align 8 dereferenceable(120)) unnamed_addr #4

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZNK7qpOASES8QProblem5getNCEv(ptr noundef nonnull align 8 dereferenceable(1064)) local_unnamed_addr #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) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN7qpOASES8QProblem14solveInitialQPEPKdS2_PKNS_6BoundsEPKNS_11ConstraintsES2_RiPd(ptr noundef nonnull align 8 dereferenceable(1064) %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef readonly %5, ptr noundef nonnull align 4 dereferenceable(4) %6, ptr noundef %7) local_unnamed_addr #6 align 2 personality ptr @__gxx_personality_v0 {
  %9 = alloca %"class.qpOASES::Bounds", align 8
  %10 = alloca %"class.qpOASES::Constraints", align 8
  %11 = tail call noundef i32 @_ZNK7qpOASES9QProblemB5getNVEv(ptr noundef nonnull align 8 dereferenceable(800) %0)
  %12 = tail call noundef i32 @_ZNK7qpOASES8QProblem5getNCEv(ptr noundef nonnull align 8 dereferenceable(1064) %0)
  %.not = icmp eq ptr %7, null
  br i1 %.not, label %15, label %13

13:                                               ; preds = %8
  %14 = tail call noundef double @_ZN7qpOASES10getCPUtimeEv()
  br label %15

15:                                               ; preds = %13, %8
  %.0100 = phi double [ %14, %13 ], [ 0.000000e+00, %8 ]
  %16 = getelementptr inbounds i8, ptr %0, i64 208
  store i32 0, ptr %16, align 8, !tbaa !5
  %17 = tail call noundef i32 @_ZN7qpOASES9QProblemB20determineHessianTypeEv(ptr noundef nonnull align 8 dereferenceable(800) %0)
  %.not117 = icmp eq i32 %17, 0
  br i1 %.not117, label %21, label %18

18:                                               ; preds = %15
  %19 = tail call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %20 = tail call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %19, i32 noundef 33, ptr noundef null, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef 1325, i32 noundef 1)
  br label %324

21:                                               ; preds = %15
  %22 = load ptr, ptr %0, align 8, !tbaa !24
  %23 = getelementptr inbounds i8, ptr %22, i64 80
  %24 = load ptr, ptr %23, align 8
  %25 = tail call noundef i32 %24(ptr noundef nonnull align 8 dereferenceable(1064) %0)
  %.not118 = icmp eq i32 %25, 0
  br i1 %.not118, label %29, label %26

26:                                               ; preds = %21
  %27 = tail call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %28 = tail call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %27, i32 noundef 33, ptr noundef null, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef 1329, i32 noundef 1)
  br label %324

29:                                               ; preds = %21
  store i32 1, ptr %16, align 8, !tbaa !5
  %30 = getelementptr inbounds i8, ptr %0, i64 48
  %31 = tail call noundef i32 @_ZN7qpOASES6Bounds12setupAllFreeEv(ptr noundef nonnull align 8 dereferenceable(120) %30)
  %.not119 = icmp eq i32 %31, 0
  br i1 %.not119, label %35, label %32

32:                                               ; preds = %29
  %33 = tail call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %34 = tail call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %33, i32 noundef 33, ptr noundef null, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef 1337, i32 noundef 1)
  br label %324

35:                                               ; preds = %29
  %36 = getelementptr inbounds i8, ptr %0, i64 832
  %37 = tail call noundef i32 @_ZN7qpOASES11Constraints16setupAllInactiveEv(ptr noundef nonnull align 8 dereferenceable(120) %36)
  %.not120 = icmp eq i32 %37, 0
  br i1 %.not120, label %41, label %38

38:                                               ; preds = %35
  %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 33, ptr noundef null, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef 1340, i32 noundef 1)
  br label %324

41:                                               ; preds = %35
  %42 = tail call noundef i32 @_ZN7qpOASES8QProblem24setupAuxiliaryQPsolutionEPKdS2_(ptr noundef nonnull align 8 dereferenceable(1064) %0, ptr noundef %1, ptr noundef %2)
  %.not121 = icmp eq i32 %42, 0
  br i1 %.not121, label %46, label %43

43:                                               ; preds = %41
  %44 = tail call noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
  %45 = tail call noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %44, i32 noundef 33, ptr noundef null, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef 1344, i32 noundef 1)
  br label %324

46:                                               ; preds = %41
  call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %9) #8
  call void @_ZN7qpOASES6BoundsC1Ei(ptr noundef nonnull align 8 dereferenceable(120) %9, i32 noundef %11)
  call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %10) #8
  invoke void @_ZN7qpOASES11ConstraintsC1Ei(ptr noundef nonnull align 8 dereferenceable(120) %10, i32 noundef %12)
          to label %47 unwind label %52

47:                                               ; preds = %46
  %48 = invoke noundef i32 @_ZNK7qpOASES8QProblem25obtainAuxiliaryWorkingSetEPKdS2_PKNS_6BoundsEPKNS_11ConstraintsEPS3_PS6_(ptr noundef nonnull align 8 dereferenceable(1064) %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef nonnull %9, ptr noundef nonnull %10)
          to label %49 unwind label %54

49:                                               ; preds = %47
  %.not122 = icmp eq i32 %48, 0
  br i1 %.not122, label %56, label %50

50:                                               ; preds = %49
  %51 = invoke noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
          to label %.invoke165 unwind label %54

52:                                               ; preds = %46
  %53 = landingpad { ptr, i32 }
          cleanup
  br label %323

54:                                               ; preds = %.invoke165, %.invoke, %115, %89, %78, %72, %70, %64, %62, %59, %50, %47
  %55 = landingpad { ptr, i32 }
          cleanup
  br label %322

56:                                               ; preds = %49
  %57 = getelementptr inbounds i8, ptr %0, i64 220
  %58 = load i32, ptr %57, align 4, !tbaa !26
  switch i32 %58, label %64 [
    i32 0, label %59
    i32 4, label %59
  ]

59:                                               ; preds = %56, %56
  %60 = invoke noundef i32 @_ZN7qpOASES9QProblemB17regulariseHessianEv(ptr noundef nonnull align 8 dereferenceable(800) %0)
          to label %61 unwind label %54

61:                                               ; preds = %59
  %.not123 = icmp eq i32 %60, 0
  br i1 %.not123, label %64, label %62

62:                                               ; preds = %61
  %63 = invoke noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
          to label %.invoke165 unwind label %54

64:                                               ; preds = %56, %61
  %65 = load ptr, ptr %0, align 8, !tbaa !24
  %66 = getelementptr inbounds i8, ptr %65, i64 184
  %67 = load ptr, ptr %66, align 8
  %68 = invoke noundef i32 %67(ptr noundef nonnull align 8 dereferenceable(1064) %0)
          to label %69 unwind label %54

69:                                               ; preds = %64
  %.not124 = icmp eq i32 %68, 0
  br i1 %.not124, label %72, label %70

70:                                               ; preds = %69
  %71 = invoke noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
          to label %.invoke165 unwind label %54

72:                                               ; preds = %69
  %73 = load ptr, ptr %0, align 8, !tbaa !24
  %74 = getelementptr inbounds i8, ptr %73, i64 192
  %75 = load ptr, ptr %74, align 8
  %76 = invoke noundef i32 %75(ptr noundef nonnull align 8 dereferenceable(1064) %0, ptr noundef nonnull %9, ptr noundef nonnull %10, i32 noundef 1)
          to label %77 unwind label %54

77:                                               ; preds = %72
  %.not125 = icmp eq i32 %76, 0
  br i1 %.not125, label %84, label %78

78:                                               ; preds = %77
  %79 = invoke noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
          to label %.invoke165 unwind label %54

.invoke165:                                       ; preds = %50, %78, %70, %62
  %80 = phi ptr [ %63, %62 ], [ %71, %70 ], [ %79, %78 ], [ %51, %50 ]
  %81 = phi i32 [ 39, %62 ], [ 34, %70 ], [ 33, %78 ], [ 33, %50 ]
  %82 = phi i64 [ 1359, %62 ], [ 1364, %70 ], [ 1368, %78 ], [ 1352, %50 ]
  %83 = invoke noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %80, i32 noundef %81, ptr noundef null, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef %82, i32 noundef 1)
          to label %321 unwind label %54

84:                                               ; preds = %77
  %85 = getelementptr inbounds i8, ptr %0, i64 176
  store i32 0, ptr %85, align 8, !tbaa !27
  %.not126 = icmp eq ptr %5, null
  br i1 %.not126, label %124, label %86

86:                                               ; preds = %84
  %87 = getelementptr inbounds i8, ptr %0, i64 400
  %88 = load i32, ptr %87, align 8, !tbaa !28
  %.not127 = icmp eq i32 %88, 0
  br i1 %.not127, label %91, label %89

89:                                               ; preds = %86
  %90 = invoke noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
          to label %.invoke unwind label %54

91:                                               ; preds = %86
  %92 = getelementptr inbounds i8, ptr %0, i64 168
  %93 = load ptr, ptr %92, align 8, !tbaa !29
  %94 = icmp eq ptr %93, %5
  br i1 %94, label %.sink.split, label %95

95:                                               ; preds = %91
  %96 = insertelement <4 x ptr> poison, ptr %1, i64 0
  %97 = insertelement <4 x ptr> %96, ptr %2, i64 1
  %98 = insertelement <4 x ptr> %97, ptr %3, i64 2
  %99 = insertelement <4 x ptr> %98, ptr %4, i64 3
  %100 = icmp ne <4 x ptr> %99, zeroinitializer
  %101 = bitcast <4 x i1> %100 to i4
  %102 = icmp eq i4 %101, 0
  br i1 %102, label %.preheader140, label %115

.preheader140:                                    ; preds = %95
  %103 = icmp sgt i32 %11, 0
  br i1 %103, label %.preheader139.preheader, label %.sink.split

.preheader139.preheader:                          ; preds = %.preheader140
  %104 = zext nneg i32 %11 to i64
  %xtraiter = and i64 %104, 1
  %105 = icmp eq i32 %11, 1
  br i1 %105, label %.sink.split.loopexit.unr-lcssa, label %.preheader139.preheader.new

.preheader139.preheader.new:                      ; preds = %.preheader139.preheader
  %unroll_iter = and i64 %104, 2147483646
  br label %.preheader139

.preheader139:                                    ; preds = %114, %.preheader139.preheader.new
  %indvars.iv = phi i64 [ 0, %.preheader139.preheader.new ], [ %indvars.iv.next.1, %114 ]
  %niter = phi i64 [ 0, %.preheader139.preheader.new ], [ %niter.next.1, %114 ]
  %106 = mul nuw nsw i64 %indvars.iv, %104
  %invariant.gep = getelementptr inbounds double, ptr %5, i64 %106
  %invariant.gep163 = getelementptr inbounds double, ptr %93, i64 %indvars.iv
  br label %107

107:                                              ; preds = %.preheader139, %107
  %indvars.iv147 = phi i64 [ %indvars.iv, %.preheader139 ], [ %indvars.iv.next148, %107 ]
  %gep = getelementptr inbounds double, ptr %invariant.gep, i64 %indvars.iv147
  %108 = load double, ptr %gep, align 8, !tbaa !30
  %109 = mul nuw nsw i64 %indvars.iv147, %104
  %gep164 = getelementptr inbounds double, ptr %invariant.gep163, i64 %109
  store double %108, ptr %gep164, align 8, !tbaa !30
  %indvars.iv.next148 = add nuw nsw i64 %indvars.iv147, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next148, %104
  br i1 %exitcond.not, label %.preheader139.1, label %107, !llvm.loop !31

.preheader139.1:                                  ; preds = %107
  %indvars.iv.next = or disjoint i64 %indvars.iv, 1
  %110 = mul nuw nsw i64 %indvars.iv.next, %104
  %invariant.gep.1 = getelementptr inbounds double, ptr %5, i64 %110
  %invariant.gep163.1 = getelementptr inbounds double, ptr %93, i64 %indvars.iv.next
  br label %111

111:                                              ; preds = %111, %.preheader139.1
  %indvars.iv147.1 = phi i64 [ %indvars.iv.next, %.preheader139.1 ], [ %indvars.iv.next148.1, %111 ]
  %gep.1 = getelementptr inbounds double, ptr %invariant.gep.1, i64 %indvars.iv147.1
  %112 = load double, ptr %gep.1, align 8, !tbaa !30
  %113 = mul nuw nsw i64 %indvars.iv147.1, %104
  %gep164.1 = getelementptr inbounds double, ptr %invariant.gep163.1, i64 %113
  store double %112, ptr %gep164.1, align 8, !tbaa !30
  %indvars.iv.next148.1 = add nuw nsw i64 %indvars.iv147.1, 1
  %exitcond.not.1 = icmp eq i64 %indvars.iv.next148.1, %104
  br i1 %exitcond.not.1, label %114, label %111, !llvm.loop !31

114:                                              ; preds = %111
  %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv, 2
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %.sink.split.loopexit.unr-lcssa, label %.preheader139, !llvm.loop !33

115:                                              ; preds = %95
  %116 = invoke noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
          to label %.invoke unwind label %54

.invoke:                                          ; preds = %115, %89
  %117 = phi ptr [ %90, %89 ], [ %116, %115 ]
  %118 = phi i64 [ 1377, %89 ], [ 1395, %115 ]
  %119 = invoke noundef i32 @_ZN7qpOASES15MessageHandling12throwWarningENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %117, i32 noundef 44, ptr noundef null, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef %118, i32 noundef 1)
          to label %124 unwind label %54

.sink.split.loopexit.unr-lcssa:                   ; preds = %114, %.preheader139.preheader
  %indvars.iv.unr = phi i64 [ 0, %.preheader139.preheader ], [ %indvars.iv.next.1, %114 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.sink.split, label %.preheader139.epil

.preheader139.epil:                               ; preds = %.sink.split.loopexit.unr-lcssa
  %120 = mul nuw nsw i64 %indvars.iv.unr, %104
  %invariant.gep.epil = getelementptr inbounds double, ptr %5, i64 %120
  %invariant.gep163.epil = getelementptr inbounds double, ptr %93, i64 %indvars.iv.unr
  br label %121

121:                                              ; preds = %121, %.preheader139.epil
  %indvars.iv147.epil = phi i64 [ %indvars.iv.unr, %.preheader139.epil ], [ %indvars.iv.next148.epil, %121 ]
  %gep.epil = getelementptr inbounds double, ptr %invariant.gep.epil, i64 %indvars.iv147.epil
  %122 = load double, ptr %gep.epil, align 8, !tbaa !30
  %123 = mul nuw nsw i64 %indvars.iv147.epil, %104
  %gep164.epil = getelementptr inbounds double, ptr %invariant.gep163.epil, i64 %123
  store double %122, ptr %gep164.epil, align 8, !tbaa !30
  %indvars.iv.next148.epil = add nuw nsw i64 %indvars.iv147.epil, 1
  %exitcond.not.epil = icmp eq i64 %indvars.iv.next148.epil, %104
  br i1 %exitcond.not.epil, label %.sink.split, label %121, !llvm.loop !31

.sink.split:                                      ; preds = %.sink.split.loopexit.unr-lcssa, %121, %.preheader140, %91
  store i32 1, ptr %85, align 8, !tbaa !27
  br label %124

124:                                              ; preds = %.sink.split, %.invoke, %84
  %125 = zext i32 %11 to i64
  %126 = icmp slt i32 %11, 0
  %127 = shl nuw nsw i64 %125, 3
  %128 = select i1 %126, i64 -1, i64 %127
  %129 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %128) #9
          to label %130 unwind label %240

130:                                              ; preds = %124
  %131 = ptrtoint ptr %129 to i64
  %132 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %128) #9
          to label %133 unwind label %242

133:                                              ; preds = %130
  %134 = ptrtoint ptr %132 to i64
  %135 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %128) #9
          to label %136 unwind label %244

136:                                              ; preds = %133
  %137 = ptrtoint ptr %135 to i64
  %138 = zext i32 %12 to i64
  %139 = icmp slt i32 %12, 0
  %140 = shl nuw nsw i64 %138, 3
  %141 = select i1 %139, i64 -1, i64 %140
  %142 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %141) #9
          to label %143 unwind label %246

143:                                              ; preds = %136
  %144 = ptrtoint ptr %142 to i64
  %145 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %141) #9
          to label %.preheader138 unwind label %248

.preheader138:                                    ; preds = %143
  %146 = ptrtoint ptr %145 to i64
  %147 = icmp sgt i32 %11, 0
  br i1 %147, label %.lr.ph, label %.preheader

.lr.ph:                                           ; preds = %.preheader138
  %148 = getelementptr inbounds i8, ptr %0, i64 24
  %149 = load ptr, ptr %148, align 8, !tbaa !34
  %150 = getelementptr inbounds i8, ptr %0, i64 32
  %151 = load ptr, ptr %150, align 8, !tbaa !35
  %152 = getelementptr inbounds i8, ptr %0, i64 40
  %153 = load ptr, ptr %152, align 8, !tbaa !36
  %min.iters.check = icmp ult i32 %11, 44
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.memcheck

scalar.ph.preheader:                              ; preds = %middle.block, %vector.memcheck, %.lr.ph
  %indvars.iv153.ph = phi i64 [ 0, %vector.memcheck ], [ 0, %.lr.ph ], [ %n.vec, %middle.block ]
  %xtraiter219 = and i64 %125, 1
  %lcmp.mod220.not = icmp eq i64 %xtraiter219, 0
  br i1 %lcmp.mod220.not, label %scalar.ph.prol.loopexit, label %scalar.ph.prol

scalar.ph.prol:                                   ; preds = %scalar.ph.preheader
  %154 = getelementptr inbounds double, ptr %149, i64 %indvars.iv153.ph
  %155 = load double, ptr %154, align 8, !tbaa !30
  %156 = getelementptr inbounds double, ptr %129, i64 %indvars.iv153.ph
  store double %155, ptr %156, align 8, !tbaa !30
  %157 = getelementptr inbounds double, ptr %151, i64 %indvars.iv153.ph
  %158 = load double, ptr %157, align 8, !tbaa !30
  %159 = getelementptr inbounds double, ptr %132, i64 %indvars.iv153.ph
  store double %158, ptr %159, align 8, !tbaa !30
  %160 = getelementptr inbounds double, ptr %153, i64 %indvars.iv153.ph
  %161 = load double, ptr %160, align 8, !tbaa !30
  %162 = getelementptr inbounds double, ptr %135, i64 %indvars.iv153.ph
  store double %161, ptr %162, align 8, !tbaa !30
  %indvars.iv.next154.prol = or disjoint i64 %indvars.iv153.ph, 1
  br label %scalar.ph.prol.loopexit

scalar.ph.prol.loopexit:                          ; preds = %scalar.ph.prol, %scalar.ph.preheader
  %indvars.iv153.unr = phi i64 [ %indvars.iv153.ph, %scalar.ph.preheader ], [ %indvars.iv.next154.prol, %scalar.ph.prol ]
  %163 = add nsw i64 %125, -1
  %164 = icmp eq i64 %indvars.iv153.ph, %163
  br i1 %164, label %.preheader, label %scalar.ph

vector.memcheck:                                  ; preds = %.lr.ph
  %165 = ptrtoint ptr %153 to i64
  %166 = ptrtoint ptr %151 to i64
  %167 = ptrtoint ptr %149 to i64
  %168 = sub i64 %134, %131
  %diff.check = icmp ult i64 %168, 32
  %169 = sub i64 %137, %131
  %diff.check168 = icmp ult i64 %169, 32
  %conflict.rdx = or i1 %diff.check, %diff.check168
  %170 = sub i64 %131, %167
  %diff.check169 = icmp ult i64 %170, 32
  %conflict.rdx170 = or i1 %conflict.rdx, %diff.check169
  %171 = sub i64 %166, %131
  %diff.check171 = icmp ult i64 %171, 32
  %conflict.rdx172 = or i1 %conflict.rdx170, %diff.check171
  %172 = sub i64 %165, %131
  %diff.check173 = icmp ult i64 %172, 32
  %conflict.rdx174 = or i1 %conflict.rdx172, %diff.check173
  %173 = sub i64 %137, %134
  %diff.check175 = icmp ult i64 %173, 32
  %conflict.rdx176 = or i1 %conflict.rdx174, %diff.check175
  %174 = sub i64 %134, %167
  %diff.check177 = icmp ult i64 %174, 32
  %conflict.rdx178 = or i1 %conflict.rdx176, %diff.check177
  %175 = sub i64 %134, %166
  %diff.check179 = icmp ult i64 %175, 32
  %conflict.rdx180 = or i1 %conflict.rdx178, %diff.check179
  %176 = sub i64 %165, %134
  %diff.check181 = icmp ult i64 %176, 32
  %conflict.rdx182 = or i1 %conflict.rdx180, %diff.check181
  %177 = sub i64 %137, %167
  %diff.check183 = icmp ult i64 %177, 32
  %conflict.rdx184 = or i1 %conflict.rdx182, %diff.check183
  %178 = sub i64 %137, %166
  %diff.check185 = icmp ult i64 %178, 32
  %conflict.rdx186 = or i1 %conflict.rdx184, %diff.check185
  %179 = sub i64 %137, %165
  %diff.check187 = icmp ult i64 %179, 32
  %conflict.rdx188 = or i1 %conflict.rdx186, %diff.check187
  br i1 %conflict.rdx188, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %vector.memcheck
  %n.vec = and i64 %125, 2147483644
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %180 = getelementptr inbounds double, ptr %149, i64 %index
  %181 = getelementptr inbounds i8, ptr %180, i64 16
  %wide.load = load <2 x double>, ptr %180, align 8, !tbaa !30
  %wide.load189 = load <2 x double>, ptr %181, align 8, !tbaa !30
  %182 = getelementptr inbounds double, ptr %129, i64 %index
  %183 = getelementptr inbounds i8, ptr %182, i64 16
  store <2 x double> %wide.load, ptr %182, align 8, !tbaa !30
  store <2 x double> %wide.load189, ptr %183, align 8, !tbaa !30
  %184 = getelementptr inbounds double, ptr %151, i64 %index
  %185 = getelementptr inbounds i8, ptr %184, i64 16
  %wide.load190 = load <2 x double>, ptr %184, align 8, !tbaa !30
  %wide.load191 = load <2 x double>, ptr %185, align 8, !tbaa !30
  %186 = getelementptr inbounds double, ptr %132, i64 %index
  %187 = getelementptr inbounds i8, ptr %186, i64 16
  store <2 x double> %wide.load190, ptr %186, align 8, !tbaa !30
  store <2 x double> %wide.load191, ptr %187, align 8, !tbaa !30
  %188 = getelementptr inbounds double, ptr %153, i64 %index
  %189 = getelementptr inbounds i8, ptr %188, i64 16
  %wide.load192 = load <2 x double>, ptr %188, align 8, !tbaa !30
  %wide.load193 = load <2 x double>, ptr %189, align 8, !tbaa !30
  %190 = getelementptr inbounds double, ptr %135, i64 %index
  %191 = getelementptr inbounds i8, ptr %190, i64 16
  store <2 x double> %wide.load192, ptr %190, align 8, !tbaa !30
  store <2 x double> %wide.load193, ptr %191, align 8, !tbaa !30
  %index.next = add nuw i64 %index, 4
  %192 = icmp eq i64 %index.next, %n.vec
  br i1 %192, label %middle.block, label %vector.body, !llvm.loop !37

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %n.vec, %125
  br i1 %cmp.n, label %.preheader, label %scalar.ph.preheader

.preheader:                                       ; preds = %scalar.ph.prol.loopexit, %scalar.ph, %middle.block, %.preheader138
  %193 = icmp sgt i32 %12, 0
  br i1 %193, label %.lr.ph145, label %._crit_edge146

.lr.ph145:                                        ; preds = %.preheader
  %194 = getelementptr inbounds i8, ptr %0, i64 816
  %195 = load ptr, ptr %194, align 8, !tbaa !40
  %196 = getelementptr inbounds i8, ptr %0, i64 824
  %197 = load ptr, ptr %196, align 8, !tbaa !42
  %min.iters.check206 = icmp ult i32 %12, 24
  br i1 %min.iters.check206, label %scalar.ph205.preheader, label %vector.memcheck194

scalar.ph205.preheader:                           ; preds = %middle.block204, %vector.memcheck194, %.lr.ph145
  %indvars.iv158.ph = phi i64 [ 0, %vector.memcheck194 ], [ 0, %.lr.ph145 ], [ %n.vec209, %middle.block204 ]
  %xtraiter221 = and i64 %138, 1
  %lcmp.mod222.not = icmp eq i64 %xtraiter221, 0
  br i1 %lcmp.mod222.not, label %scalar.ph205.prol.loopexit, label %scalar.ph205.prol

scalar.ph205.prol:                                ; preds = %scalar.ph205.preheader
  %198 = getelementptr inbounds double, ptr %195, i64 %indvars.iv158.ph
  %199 = load double, ptr %198, align 8, !tbaa !30
  %200 = getelementptr inbounds double, ptr %142, i64 %indvars.iv158.ph
  store double %199, ptr %200, align 8, !tbaa !30
  %201 = getelementptr inbounds double, ptr %197, i64 %indvars.iv158.ph
  %202 = load double, ptr %201, align 8, !tbaa !30
  %203 = getelementptr inbounds double, ptr %145, i64 %indvars.iv158.ph
  store double %202, ptr %203, align 8, !tbaa !30
  %indvars.iv.next159.prol = or disjoint i64 %indvars.iv158.ph, 1
  br label %scalar.ph205.prol.loopexit

scalar.ph205.prol.loopexit:                       ; preds = %scalar.ph205.prol, %scalar.ph205.preheader
  %indvars.iv158.unr = phi i64 [ %indvars.iv158.ph, %scalar.ph205.preheader ], [ %indvars.iv.next159.prol, %scalar.ph205.prol ]
  %204 = add nsw i64 %138, -1
  %205 = icmp eq i64 %indvars.iv158.ph, %204
  br i1 %205, label %._crit_edge146, label %scalar.ph205

vector.memcheck194:                               ; preds = %.lr.ph145
  %206 = ptrtoint ptr %197 to i64
  %207 = ptrtoint ptr %195 to i64
  %208 = sub i64 %146, %144
  %diff.check195 = icmp ult i64 %208, 32
  %209 = sub i64 %144, %207
  %diff.check196 = icmp ult i64 %209, 32
  %conflict.rdx197 = or i1 %diff.check195, %diff.check196
  %210 = sub i64 %206, %144
  %diff.check198 = icmp ult i64 %210, 32
  %conflict.rdx199 = or i1 %conflict.rdx197, %diff.check198
  %211 = sub i64 %146, %207
  %diff.check200 = icmp ult i64 %211, 32
  %conflict.rdx201 = or i1 %conflict.rdx199, %diff.check200
  %212 = sub i64 %146, %206
  %diff.check202 = icmp ult i64 %212, 32
  %conflict.rdx203 = or i1 %conflict.rdx201, %diff.check202
  br i1 %conflict.rdx203, label %scalar.ph205.preheader, label %vector.ph207

vector.ph207:                                     ; preds = %vector.memcheck194
  %n.vec209 = and i64 %138, 2147483644
  br label %vector.body211

vector.body211:                                   ; preds = %vector.body211, %vector.ph207
  %index212 = phi i64 [ 0, %vector.ph207 ], [ %index.next217, %vector.body211 ]
  %213 = getelementptr inbounds double, ptr %195, i64 %index212
  %214 = getelementptr inbounds i8, ptr %213, i64 16
  %wide.load213 = load <2 x double>, ptr %213, align 8, !tbaa !30
  %wide.load214 = load <2 x double>, ptr %214, align 8, !tbaa !30
  %215 = getelementptr inbounds double, ptr %142, i64 %index212
  %216 = getelementptr inbounds i8, ptr %215, i64 16
  store <2 x double> %wide.load213, ptr %215, align 8, !tbaa !30
  store <2 x double> %wide.load214, ptr %216, align 8, !tbaa !30
  %217 = getelementptr inbounds double, ptr %197, i64 %index212
  %218 = getelementptr inbounds i8, ptr %217, i64 16
  %wide.load215 = load <2 x double>, ptr %217, align 8, !tbaa !30
  %wide.load216 = load <2 x double>, ptr %218, align 8, !tbaa !30
  %219 = getelementptr inbounds double, ptr %145, i64 %index212
  %220 = getelementptr inbounds i8, ptr %219, i64 16
  store <2 x double> %wide.load215, ptr %219, align 8, !tbaa !30
  store <2 x double> %wide.load216, ptr %220, align 8, !tbaa !30
  %index.next217 = add nuw i64 %index212, 4
  %221 = icmp eq i64 %index.next217, %n.vec209
  br i1 %221, label %middle.block204, label %vector.body211, !llvm.loop !43

middle.block204:                                  ; preds = %vector.body211
  %cmp.n218 = icmp eq i64 %n.vec209, %138
  br i1 %cmp.n218, label %._crit_edge146, label %scalar.ph205.preheader

scalar.ph:                                        ; preds = %scalar.ph.prol.loopexit, %scalar.ph
  %indvars.iv153 = phi i64 [ %indvars.iv.next154.1, %scalar.ph ], [ %indvars.iv153.unr, %scalar.ph.prol.loopexit ]
  %222 = getelementptr inbounds double, ptr %149, i64 %indvars.iv153
  %223 = load double, ptr %222, align 8, !tbaa !30
  %224 = getelementptr inbounds double, ptr %129, i64 %indvars.iv153
  store double %223, ptr %224, align 8, !tbaa !30
  %225 = getelementptr inbounds double, ptr %151, i64 %indvars.iv153
  %226 = load double, ptr %225, align 8, !tbaa !30
  %227 = getelementptr inbounds double, ptr %132, i64 %indvars.iv153
  store double %226, ptr %227, align 8, !tbaa !30
  %228 = getelementptr inbounds double, ptr %153, i64 %indvars.iv153
  %229 = load double, ptr %228, align 8, !tbaa !30
  %230 = getelementptr inbounds double, ptr %135, i64 %indvars.iv153
  store double %229, ptr %230, align 8, !tbaa !30
  %indvars.iv.next154 = add nuw nsw i64 %indvars.iv153, 1
  %231 = getelementptr inbounds double, ptr %149, i64 %indvars.iv.next154
  %232 = load double, ptr %231, align 8, !tbaa !30
  %233 = getelementptr inbounds double, ptr %129, i64 %indvars.iv.next154
  store double %232, ptr %233, align 8, !tbaa !30
  %234 = getelementptr inbounds double, ptr %151, i64 %indvars.iv.next154
  %235 = load double, ptr %234, align 8, !tbaa !30
  %236 = getelementptr inbounds double, ptr %132, i64 %indvars.iv.next154
  store double %235, ptr %236, align 8, !tbaa !30
  %237 = getelementptr inbounds double, ptr %153, i64 %indvars.iv.next154
  %238 = load double, ptr %237, align 8, !tbaa !30
  %239 = getelementptr inbounds double, ptr %135, i64 %indvars.iv.next154
  store double %238, ptr %239, align 8, !tbaa !30
  %indvars.iv.next154.1 = add nuw nsw i64 %indvars.iv153, 2
  %exitcond157.not.1 = icmp eq i64 %indvars.iv.next154.1, %125
  br i1 %exitcond157.not.1, label %.preheader, label %scalar.ph, !llvm.loop !44

240:                                              ; preds = %124
  %241 = landingpad { ptr, i32 }
          cleanup
  br label %322

242:                                              ; preds = %130
  %243 = landingpad { ptr, i32 }
          cleanup
  br label %322

244:                                              ; preds = %133
  %245 = landingpad { ptr, i32 }
          cleanup
  br label %322

246:                                              ; preds = %136
  %247 = landingpad { ptr, i32 }
          cleanup
  br label %322

248:                                              ; preds = %.invoke166, %284, %278, %269, %266, %264, %._crit_edge146, %143
  %249 = landingpad { ptr, i32 }
          cleanup
  br label %322

scalar.ph205:                                     ; preds = %scalar.ph205.prol.loopexit, %scalar.ph205
  %indvars.iv158 = phi i64 [ %indvars.iv.next159.1, %scalar.ph205 ], [ %indvars.iv158.unr, %scalar.ph205.prol.loopexit ]
  %250 = getelementptr inbounds double, ptr %195, i64 %indvars.iv158
  %251 = load double, ptr %250, align 8, !tbaa !30
  %252 = getelementptr inbounds double, ptr %142, i64 %indvars.iv158
  store double %251, ptr %252, align 8, !tbaa !30
  %253 = getelementptr inbounds double, ptr %197, i64 %indvars.iv158
  %254 = load double, ptr %253, align 8, !tbaa !30
  %255 = getelementptr inbounds double, ptr %145, i64 %indvars.iv158
  store double %254, ptr %255, align 8, !tbaa !30
  %indvars.iv.next159 = add nuw nsw i64 %indvars.iv158, 1
  %256 = getelementptr inbounds double, ptr %195, i64 %indvars.iv.next159
  %257 = load double, ptr %256, align 8, !tbaa !30
  %258 = getelementptr inbounds double, ptr %142, i64 %indvars.iv.next159
  store double %257, ptr %258, align 8, !tbaa !30
  %259 = getelementptr inbounds double, ptr %197, i64 %indvars.iv.next159
  %260 = load double, ptr %259, align 8, !tbaa !30
  %261 = getelementptr inbounds double, ptr %145, i64 %indvars.iv.next159
  store double %260, ptr %261, align 8, !tbaa !30
  %indvars.iv.next159.1 = add nuw nsw i64 %indvars.iv158, 2
  %exitcond162.not.1 = icmp eq i64 %indvars.iv.next159.1, %138
  br i1 %exitcond162.not.1, label %._crit_edge146, label %scalar.ph205, !llvm.loop !45

._crit_edge146:                                   ; preds = %scalar.ph205.prol.loopexit, %scalar.ph205, %middle.block204, %.preheader
  %262 = invoke noundef i32 @_ZN7qpOASES8QProblem24setupAuxiliaryQPgradientEv(ptr noundef nonnull align 8 dereferenceable(1064) %0)
          to label %263 unwind label %248

263:                                              ; preds = %._crit_edge146
  %.not128 = icmp eq i32 %262, 0
  br i1 %.not128, label %266, label %264

264:                                              ; preds = %263
  call void @_ZdaPv(ptr noundef nonnull %145) #10
  call void @_ZdaPv(ptr noundef nonnull %142) #10
  call void @_ZdaPv(ptr noundef nonnull %135) #10
  call void @_ZdaPv(ptr noundef nonnull %132) #10
  call void @_ZdaPv(ptr noundef nonnull %129) #10
  %265 = invoke noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
          to label %.invoke166 unwind label %248

266:                                              ; preds = %263
  %267 = invoke noundef i32 @_ZN7qpOASES8QProblem22setupAuxiliaryQPboundsEPKNS_6BoundsEPKNS_11ConstraintsENS_11BooleanTypeE(ptr noundef nonnull align 8 dereferenceable(1064) %0, ptr noundef nonnull %9, ptr noundef nonnull %10, i32 noundef 1)
          to label %268 unwind label %248

268:                                              ; preds = %266
  %.not129 = icmp eq i32 %267, 0
  br i1 %.not129, label %274, label %269

269:                                              ; preds = %268
  call void @_ZdaPv(ptr noundef nonnull %145) #10
  call void @_ZdaPv(ptr noundef nonnull %142) #10
  call void @_ZdaPv(ptr noundef nonnull %135) #10
  call void @_ZdaPv(ptr noundef nonnull %132) #10
  call void @_ZdaPv(ptr noundef nonnull %129) #10
  %270 = invoke noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
          to label %.invoke166 unwind label %248

.invoke166:                                       ; preds = %269, %264
  %271 = phi ptr [ %265, %264 ], [ %270, %269 ]
  %272 = phi i64 [ 1425, %264 ], [ 1431, %269 ]
  %273 = invoke noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %271, i32 noundef 33, ptr noundef null, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef %272, i32 noundef 1)
          to label %321 unwind label %248

274:                                              ; preds = %268
  store i32 2, ptr %16, align 8, !tbaa !5
  %275 = getelementptr inbounds i8, ptr %0, i64 276
  %276 = load i32, ptr %275, align 4, !tbaa !46
  %277 = icmp eq i32 %276, 1
  br i1 %277, label %278, label %283

278:                                              ; preds = %274
  %279 = load ptr, ptr %0, align 8, !tbaa !24
  %280 = getelementptr inbounds i8, ptr %279, i64 128
  %281 = load ptr, ptr %280, align 8
  %282 = invoke noundef i32 %281(ptr noundef nonnull align 8 dereferenceable(1064) %0)
          to label %283 unwind label %248

283:                                              ; preds = %278, %274
  br i1 %.not, label %290, label %284

284:                                              ; preds = %283
  %285 = invoke noundef double @_ZN7qpOASES10getCPUtimeEv()
          to label %286 unwind label %248

286:                                              ; preds = %284
  %287 = fsub double %285, %.0100
  %288 = load double, ptr %7, align 8, !tbaa !30
  %289 = fsub double %288, %287
  store double %289, ptr %7, align 8, !tbaa !30
  br label %290

290:                                              ; preds = %286, %283
  %291 = invoke noundef i32 @_ZN7qpOASES8QProblem8hotstartEPKdS2_S2_S2_S2_RiPdPKNS_6BoundsEPKNS_11ConstraintsE(ptr noundef nonnull align 8 dereferenceable(1064) %0, ptr noundef nonnull %129, ptr noundef nonnull %132, ptr noundef nonnull %135, ptr noundef nonnull %142, ptr noundef nonnull %145, ptr noundef nonnull align 4 dereferenceable(4) %6, ptr noundef %7, ptr noundef null, ptr noundef null)
          to label %292 unwind label %297

292:                                              ; preds = %290
  call void @_ZdaPv(ptr noundef nonnull %145) #10
  call void @_ZdaPv(ptr noundef nonnull %142) #10
  call void @_ZdaPv(ptr noundef nonnull %135) #10
  call void @_ZdaPv(ptr noundef nonnull %132) #10
  call void @_ZdaPv(ptr noundef nonnull %129) #10
  %293 = call noundef i32 @_ZNK7qpOASES9QProblemB12isInfeasibleEv(ptr noundef nonnull align 8 dereferenceable(800) %0)
  %294 = icmp eq i32 %293, 1
  br i1 %294, label %295, label %299

295:                                              ; preds = %292
  %296 = invoke noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
          to label %.invoke167 unwind label %297

297:                                              ; preds = %.invoke167, %319, %317, %313, %306, %302, %295, %290
  %298 = landingpad { ptr, i32 }
          cleanup
  br label %322

299:                                              ; preds = %292
  %300 = call noundef i32 @_ZNK7qpOASES9QProblemB11isUnboundedEv(ptr noundef nonnull align 8 dereferenceable(800) %0)
  %301 = icmp eq i32 %300, 1
  br i1 %301, label %302, label %304

302:                                              ; preds = %299
  %303 = invoke noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
          to label %.invoke167 unwind label %297

304:                                              ; preds = %299
  %305 = and i32 %291, -65
  %or.cond7.not = icmp eq i32 %305, 0
  br i1 %or.cond7.not, label %312, label %306

306:                                              ; preds = %304
  %307 = invoke noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
          to label %.invoke167 unwind label %297

.invoke167:                                       ; preds = %295, %306, %302
  %308 = phi ptr [ %303, %302 ], [ %307, %306 ], [ %296, %295 ]
  %309 = phi i32 [ 38, %302 ], [ 36, %306 ], [ 37, %295 ]
  %310 = phi i64 [ 1457, %302 ], [ 1461, %306 ], [ 1454, %295 ]
  %311 = invoke noundef i32 @_ZN7qpOASES15MessageHandling10throwErrorENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %308, i32 noundef %309, ptr noundef null, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef %310, i32 noundef 1)
          to label %321 unwind label %297

312:                                              ; preds = %304
  br i1 %.not, label %317, label %313

313:                                              ; preds = %312
  %314 = invoke noundef double @_ZN7qpOASES10getCPUtimeEv()
          to label %315 unwind label %297

315:                                              ; preds = %313
  %316 = fsub double %314, %.0100
  store double %316, ptr %7, align 8, !tbaa !30
  br label %317

317:                                              ; preds = %315, %312
  %318 = invoke noundef ptr @_ZN7qpOASES23getGlobalMessageHandlerEv()
          to label %319 unwind label %297

319:                                              ; preds = %317
  %320 = invoke noundef i32 @_ZN7qpOASES15MessageHandling9throwInfoENS_11returnValueEPKcS3_S3_mNS_16VisibilityStatusE(ptr noundef nonnull align 8 dereferenceable(28) %318, i32 noundef 40, ptr noundef null, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i64 noundef 1468, i32 noundef 1)
          to label %321 unwind label %297

321:                                              ; preds = %.invoke167, %.invoke166, %.invoke165, %319
  %.2 = phi i32 [ %291, %319 ], [ %83, %.invoke165 ], [ %273, %.invoke166 ], [ %311, %.invoke167 ]
  call void @_ZN7qpOASES11ConstraintsD1Ev(ptr noundef nonnull align 8 dereferenceable(120) %10) #8
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %10) #8
  call void @_ZN7qpOASES6BoundsD1Ev(ptr noundef nonnull align 8 dereferenceable(120) %9) #8
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %9) #8
  br label %324

322:                                              ; preds = %240, %244, %248, %297, %246, %242, %54
  %.pn135 = phi { ptr, i32 } [ %55, %54 ], [ %241, %240 ], [ %243, %242 ], [ %245, %244 ], [ %247, %246 ], [ %249, %248 ], [ %298, %297 ]
  call void @_ZN7qpOASES11ConstraintsD1Ev(ptr noundef nonnull align 8 dereferenceable(120) %10) #8
  br label %323

323:                                              ; preds = %322, %52
  %.pn135.pn = phi { ptr, i32 } [ %.pn135, %322 ], [ %53, %52 ]
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %10) #8
  call void @_ZN7qpOASES6BoundsD1Ev(ptr noundef nonnull align 8 dereferenceable(120) %9) #8
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %9) #8
  resume { ptr, i32 } %.pn135.pn

324:                                              ; preds = %321, %43, %38, %32, %26, %18
  %.3 = phi i32 [ %20, %18 ], [ %28, %26 ], [ %34, %32 ], [ %40, %38 ], [ %45, %43 ], [ %.2, %321 ]
  ret i32 %.3
}

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

declare noundef double @_ZN7qpOASES10getCPUtimeEv() local_unnamed_addr #1

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

declare noundef i32 @_ZN7qpOASES6Bounds12setupAllFreeEv(ptr noundef nonnull align 8 dereferenceable(120)) local_unnamed_addr #1

declare noundef i32 @_ZN7qpOASES11Constraints16setupAllInactiveEv(ptr noundef nonnull align 8 dereferenceable(120)) local_unnamed_addr #1

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

declare void @_ZN7qpOASES6BoundsC1Ei(ptr noundef nonnull align 8 dereferenceable(120), i32 noundef) unnamed_addr #1

declare void @_ZN7qpOASES11ConstraintsC1Ei(ptr noundef nonnull align 8 dereferenceable(120), i32 noundef) unnamed_addr #1

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK7qpOASES9QProblemB11isUnboundedEv(ptr noundef nonnull align 8 dereferenceable(800)) local_unnamed_addr #7 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: nounwind
declare void @_ZN7qpOASES6BoundsD1Ev(ptr noundef nonnull align 8 dereferenceable(120)) unnamed_addr #4

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 = { 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 = { 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 #7 = { 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 #8 = { nounwind }
attributes #9 = { builtin allocsize(0) }
attributes #10 = { 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, !17, i64 220}
!27 = !{!6, !7, i64 176}
!28 = !{!6, !20, i64 400}
!29 = !{!6, !10, i64 168}
!30 = !{!15, !15, i64 0}
!31 = distinct !{!31, !32}
!32 = !{!"llvm.loop.mustprogress"}
!33 = distinct !{!33, !32}
!34 = !{!6, !10, i64 24}
!35 = !{!6, !10, i64 32}
!36 = !{!6, !10, i64 40}
!37 = distinct !{!37, !32, !38, !39}
!38 = !{!"llvm.loop.isvectorized", i32 1}
!39 = !{!"llvm.loop.unroll.runtime.disable"}
!40 = !{!41, !10, i64 816}
!41 = !{!"_ZTSN7qpOASES8QProblemE", !6, i64 0, !7, i64 800, !10, i64 808, !10, i64 816, !10, i64 824, !22, i64 832, !10, i64 952, !10, i64 960, !13, i64 968, !10, i64 976, !10, i64 984, !10, i64 992, !10, i64 1000, !10, i64 1008, !10, i64 1016, !10, i64 1024, !10, i64 1032, !10, i64 1040, !10, i64 1048, !10, i64 1056}
!42 = !{!41, !10, i64 824}
!43 = distinct !{!43, !32, !38, !39}
!44 = distinct !{!44, !32, !38}
!45 = distinct !{!45, !32, !38}
!46 = !{!6, !7, i64 276}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalDCEPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,PostOrderFunctionAttrsPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass