; LLVM IR from robotic-vision-lab/Cloud-Object-Recognition-Engine :: 3rdparty/libsvm (svm)

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

%struct.svm_parameter = type { i32, i32, i32, double, double, double, double, double, i32, ptr, ptr, double, double, i32, i32 }
%struct.svm_problem = type { i32, ptr, ptr }

@.str.49 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [27 x i8], align 1

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

; Function Attrs: nounwind
declare void @free(ptr noundef) #1

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

; Function Attrs: nounwind allocsize(1)
declare ptr @realloc(ptr noundef, i64 noundef) #2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef i32 @_ZL3minIiET_S0_S0_(i32 noundef, i32 noundef) #3

; Function Attrs: nounwind allocsize(0)
declare noalias ptr @malloc(i64 noundef) #4

; Function Attrs: mustprogress uwtable
define dso_local ptr @svm_check_parameter(ptr noundef %0, ptr noundef %1) #5 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  store ptr %0, ptr %4, align 8, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #6
  %20 = load ptr, ptr %5, align 8, !tbaa !5
  %21 = getelementptr inbounds %struct.svm_parameter, ptr %20, i32 0, i32 0
  %22 = load i32, ptr %21, align 8, !tbaa !9
  store i32 %22, ptr %6, align 4, !tbaa !13
  %23 = load i32, ptr %6, align 4, !tbaa !13
  %24 = icmp ne i32 %23, 0
  br i1 %24, label %25, label %38

25:                                               ; preds = %2
  %26 = load i32, ptr %6, align 4, !tbaa !13
  %27 = icmp ne i32 %26, 1
  br i1 %27, label %28, label %38

28:                                               ; preds = %25
  %29 = load i32, ptr %6, align 4, !tbaa !13
  %30 = icmp ne i32 %29, 2
  br i1 %30, label %31, label %38

31:                                               ; preds = %28
  %32 = load i32, ptr %6, align 4, !tbaa !13
  %33 = icmp ne i32 %32, 3
  br i1 %33, label %34, label %38

34:                                               ; preds = %31
  %35 = load i32, ptr %6, align 4, !tbaa !13
  %36 = icmp ne i32 %35, 4
  br i1 %36, label %37, label %38

37:                                               ; preds = %34
  store ptr @.str.49, ptr %3, align 8
  store i32 1, ptr %7, align 4
  br label %312

38:                                               ; preds = %34, %31, %28, %25, %2
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #6
  %39 = load ptr, ptr %5, align 8, !tbaa !5
  %40 = getelementptr inbounds %struct.svm_parameter, ptr %39, i32 0, i32 1
  %41 = load i32, ptr %40, align 4, !tbaa !14
  store i32 %41, ptr %8, align 4, !tbaa !13
  %42 = load i32, ptr %8, align 4, !tbaa !13
  %43 = icmp ne i32 %42, 0
  br i1 %43, label %44, label %57

44:                                               ; preds = %38
  %45 = load i32, ptr %8, align 4, !tbaa !13
  %46 = icmp ne i32 %45, 1
  br i1 %46, label %47, label %57

47:                                               ; preds = %44
  %48 = load i32, ptr %8, align 4, !tbaa !13
  %49 = icmp ne i32 %48, 2
  br i1 %49, label %50, label %57

50:                                               ; preds = %47
  %51 = load i32, ptr %8, align 4, !tbaa !13
  %52 = icmp ne i32 %51, 3
  br i1 %52, label %53, label %57

53:                                               ; preds = %50
  %54 = load i32, ptr %8, align 4, !tbaa !13
  %55 = icmp ne i32 %54, 4
  br i1 %55, label %56, label %57

56:                                               ; preds = %53
  store ptr @.str.50, ptr %3, align 8
  store i32 1, ptr %7, align 4
  br label %311

57:                                               ; preds = %53, %50, %47, %44, %38
  %58 = load ptr, ptr %5, align 8, !tbaa !5
  %59 = getelementptr inbounds %struct.svm_parameter, ptr %58, i32 0, i32 3
  %60 = load double, ptr %59, align 8, !tbaa !15
  %61 = fcmp olt double %60, 0.000000e+00
  br i1 %61, label %62, label %63

62:                                               ; preds = %57
  store ptr @.str.51, ptr %3, align 8
  store i32 1, ptr %7, align 4
  br label %311

63:                                               ; preds = %57
  %64 = load ptr, ptr %5, align 8, !tbaa !5
  %65 = getelementptr inbounds %struct.svm_parameter, ptr %64, i32 0, i32 2
  %66 = load i32, ptr %65, align 8, !tbaa !16
  %67 = icmp slt i32 %66, 0
  br i1 %67, label %68, label %69

68:                                               ; preds = %63
  store ptr @.str.52, ptr %3, align 8
  store i32 1, ptr %7, align 4
  br label %311

69:                                               ; preds = %63
  %70 = load ptr, ptr %5, align 8, !tbaa !5
  %71 = getelementptr inbounds %struct.svm_parameter, ptr %70, i32 0, i32 5
  %72 = load double, ptr %71, align 8, !tbaa !17
  %73 = fcmp ole double %72, 0.000000e+00
  br i1 %73, label %74, label %75

74:                                               ; preds = %69
  store ptr @.str.53, ptr %3, align 8
  store i32 1, ptr %7, align 4
  br label %311

75:                                               ; preds = %69
  %76 = load ptr, ptr %5, align 8, !tbaa !5
  %77 = getelementptr inbounds %struct.svm_parameter, ptr %76, i32 0, i32 6
  %78 = load double, ptr %77, align 8, !tbaa !18
  %79 = fcmp ole double %78, 0.000000e+00
  br i1 %79, label %80, label %81

80:                                               ; preds = %75
  store ptr @.str.54, ptr %3, align 8
  store i32 1, ptr %7, align 4
  br label %311

81:                                               ; preds = %75
  %82 = load i32, ptr %6, align 4, !tbaa !13
  %83 = icmp eq i32 %82, 0
  br i1 %83, label %90, label %84

84:                                               ; preds = %81
  %85 = load i32, ptr %6, align 4, !tbaa !13
  %86 = icmp eq i32 %85, 3
  br i1 %86, label %90, label %87

87:                                               ; preds = %84
  %88 = load i32, ptr %6, align 4, !tbaa !13
  %89 = icmp eq i32 %88, 4
  br i1 %89, label %90, label %97

90:                                               ; preds = %87, %84, %81
  %91 = load ptr, ptr %5, align 8, !tbaa !5
  %92 = getelementptr inbounds %struct.svm_parameter, ptr %91, i32 0, i32 7
  %93 = load double, ptr %92, align 8, !tbaa !19
  %94 = fcmp ole double %93, 0.000000e+00
  br i1 %94, label %95, label %96

95:                                               ; preds = %90
  store ptr @.str.55, ptr %3, align 8
  store i32 1, ptr %7, align 4
  br label %311

96:                                               ; preds = %90
  br label %97

97:                                               ; preds = %96, %87
  %98 = load i32, ptr %6, align 4, !tbaa !13
  %99 = icmp eq i32 %98, 1
  br i1 %99, label %106, label %100

100:                                              ; preds = %97
  %101 = load i32, ptr %6, align 4, !tbaa !13
  %102 = icmp eq i32 %101, 2
  br i1 %102, label %106, label %103

103:                                              ; preds = %100
  %104 = load i32, ptr %6, align 4, !tbaa !13
  %105 = icmp eq i32 %104, 4
  br i1 %105, label %106, label %118

106:                                              ; preds = %103, %100, %97
  %107 = load ptr, ptr %5, align 8, !tbaa !5
  %108 = getelementptr inbounds %struct.svm_parameter, ptr %107, i32 0, i32 11
  %109 = load double, ptr %108, align 8, !tbaa !20
  %110 = fcmp ole double %109, 0.000000e+00
  br i1 %110, label %116, label %111

111:                                              ; preds = %106
  %112 = load ptr, ptr %5, align 8, !tbaa !5
  %113 = getelementptr inbounds %struct.svm_parameter, ptr %112, i32 0, i32 11
  %114 = load double, ptr %113, align 8, !tbaa !20
  %115 = fcmp ogt double %114, 1.000000e+00
  br i1 %115, label %116, label %117

116:                                              ; preds = %111, %106
  store ptr @.str.56, ptr %3, align 8
  store i32 1, ptr %7, align 4
  br label %311

117:                                              ; preds = %111
  br label %118

118:                                              ; preds = %117, %103
  %119 = load i32, ptr %6, align 4, !tbaa !13
  %120 = icmp eq i32 %119, 3
  br i1 %120, label %121, label %128

121:                                              ; preds = %118
  %122 = load ptr, ptr %5, align 8, !tbaa !5
  %123 = getelementptr inbounds %struct.svm_parameter, ptr %122, i32 0, i32 12
  %124 = load double, ptr %123, align 8, !tbaa !21
  %125 = fcmp olt double %124, 0.000000e+00
  br i1 %125, label %126, label %127

126:                                              ; preds = %121
  store ptr @.str.57, ptr %3, align 8
  store i32 1, ptr %7, align 4
  br label %311

127:                                              ; preds = %121
  br label %128

128:                                              ; preds = %127, %118
  %129 = load ptr, ptr %5, align 8, !tbaa !5
  %130 = getelementptr inbounds %struct.svm_parameter, ptr %129, i32 0, i32 13
  %131 = load i32, ptr %130, align 8, !tbaa !22
  %132 = icmp ne i32 %131, 0
  br i1 %132, label %133, label %139

133:                                              ; preds = %128
  %134 = load ptr, ptr %5, align 8, !tbaa !5
  %135 = getelementptr inbounds %struct.svm_parameter, ptr %134, i32 0, i32 13
  %136 = load i32, ptr %135, align 8, !tbaa !22
  %137 = icmp ne i32 %136, 1
  br i1 %137, label %138, label %139

138:                                              ; preds = %133
  store ptr @.str.58, ptr %3, align 8
  store i32 1, ptr %7, align 4
  br label %311

139:                                              ; preds = %133, %128
  %140 = load ptr, ptr %5, align 8, !tbaa !5
  %141 = getelementptr inbounds %struct.svm_parameter, ptr %140, i32 0, i32 14
  %142 = load i32, ptr %141, align 4, !tbaa !23
  %143 = icmp ne i32 %142, 0
  br i1 %143, label %144, label %150

144:                                              ; preds = %139
  %145 = load ptr, ptr %5, align 8, !tbaa !5
  %146 = getelementptr inbounds %struct.svm_parameter, ptr %145, i32 0, i32 14
  %147 = load i32, ptr %146, align 4, !tbaa !23
  %148 = icmp ne i32 %147, 1
  br i1 %148, label %149, label %150

149:                                              ; preds = %144
  store ptr @.str.59, ptr %3, align 8
  store i32 1, ptr %7, align 4
  br label %311

150:                                              ; preds = %144, %139
  %151 = load ptr, ptr %5, align 8, !tbaa !5
  %152 = getelementptr inbounds %struct.svm_parameter, ptr %151, i32 0, i32 14
  %153 = load i32, ptr %152, align 4, !tbaa !23
  %154 = icmp eq i32 %153, 1
  br i1 %154, label %155, label %159

155:                                              ; preds = %150
  %156 = load i32, ptr %6, align 4, !tbaa !13
  %157 = icmp eq i32 %156, 2
  br i1 %157, label %158, label %159

158:                                              ; preds = %155
  store ptr @.str.60, ptr %3, align 8
  store i32 1, ptr %7, align 4
  br label %311

159:                                              ; preds = %155, %150
  %160 = load i32, ptr %6, align 4, !tbaa !13
  %161 = icmp eq i32 %160, 1
  br i1 %161, label %162, label %310

162:                                              ; preds = %159
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #6
  %163 = load ptr, ptr %4, align 8, !tbaa !5
  %164 = getelementptr inbounds %struct.svm_problem, ptr %163, i32 0, i32 0
  %165 = load i32, ptr %164, align 8, !tbaa !24
  store i32 %165, ptr %9, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #6
  store i32 16, ptr %10, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #6
  store i32 0, ptr %11, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #6
  %166 = load i32, ptr %10, align 4, !tbaa !13
  %167 = sext i32 %166 to i64
  %168 = mul i64 %167, 4
  %169 = call noalias ptr @malloc(i64 noundef %168) #7
  store ptr %169, ptr %12, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #6
  %170 = load i32, ptr %10, align 4, !tbaa !13
  %171 = sext i32 %170 to i64
  %172 = mul i64 %171, 4
  %173 = call noalias ptr @malloc(i64 noundef %172) #7
  store ptr %173, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #6
  store i32 0, ptr %14, align 4, !tbaa !13
  br label %174

174:                                              ; preds = %244, %162
  %175 = load i32, ptr %14, align 4, !tbaa !13
  %176 = load i32, ptr %9, align 4, !tbaa !13
  %177 = icmp slt i32 %175, %176
  br i1 %177, label %178, label %247

178:                                              ; preds = %174
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #6
  %179 = load ptr, ptr %4, align 8, !tbaa !5
  %180 = getelementptr inbounds %struct.svm_problem, ptr %179, i32 0, i32 1
  %181 = load ptr, ptr %180, align 8, !tbaa !26
  %182 = load i32, ptr %14, align 4, !tbaa !13
  %183 = sext i32 %182 to i64
  %184 = getelementptr inbounds double, ptr %181, i64 %183
  %185 = load double, ptr %184, align 8, !tbaa !27
  %186 = fptosi double %185 to i32
  store i32 %186, ptr %15, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #6
  store i32 0, ptr %16, align 4, !tbaa !13
  br label %187

187:                                              ; preds = %207, %178
  %188 = load i32, ptr %16, align 4, !tbaa !13
  %189 = load i32, ptr %11, align 4, !tbaa !13
  %190 = icmp slt i32 %188, %189
  br i1 %190, label %191, label %210

191:                                              ; preds = %187
  %192 = load i32, ptr %15, align 4, !tbaa !13
  %193 = load ptr, ptr %12, align 8, !tbaa !5
  %194 = load i32, ptr %16, align 4, !tbaa !13
  %195 = sext i32 %194 to i64
  %196 = getelementptr inbounds i32, ptr %193, i64 %195
  %197 = load i32, ptr %196, align 4, !tbaa !13
  %198 = icmp eq i32 %192, %197
  br i1 %198, label %199, label %206

199:                                              ; preds = %191
  %200 = load ptr, ptr %13, align 8, !tbaa !5
  %201 = load i32, ptr %16, align 4, !tbaa !13
  %202 = sext i32 %201 to i64
  %203 = getelementptr inbounds i32, ptr %200, i64 %202
  %204 = load i32, ptr %203, align 4, !tbaa !13
  %205 = add nsw i32 %204, 1
  store i32 %205, ptr %203, align 4, !tbaa !13
  br label %210

206:                                              ; preds = %191
  br label %207

207:                                              ; preds = %206
  %208 = load i32, ptr %16, align 4, !tbaa !13
  %209 = add nsw i32 %208, 1
  store i32 %209, ptr %16, align 4, !tbaa !13
  br label %187, !llvm.loop !28

210:                                              ; preds = %199, %187
  %211 = load i32, ptr %16, align 4, !tbaa !13
  %212 = load i32, ptr %11, align 4, !tbaa !13
  %213 = icmp eq i32 %211, %212
  br i1 %213, label %214, label %243

214:                                              ; preds = %210
  %215 = load i32, ptr %11, align 4, !tbaa !13
  %216 = load i32, ptr %10, align 4, !tbaa !13
  %217 = icmp eq i32 %215, %216
  br i1 %217, label %218, label %231

218:                                              ; preds = %214
  %219 = load i32, ptr %10, align 4, !tbaa !13
  %220 = mul nsw i32 %219, 2
  store i32 %220, ptr %10, align 4, !tbaa !13
  %221 = load ptr, ptr %12, align 8, !tbaa !5
  %222 = load i32, ptr %10, align 4, !tbaa !13
  %223 = sext i32 %222 to i64
  %224 = mul i64 %223, 4
  %225 = call ptr @realloc(ptr noundef %221, i64 noundef %224) #8
  store ptr %225, ptr %12, align 8, !tbaa !5
  %226 = load ptr, ptr %13, align 8, !tbaa !5
  %227 = load i32, ptr %10, align 4, !tbaa !13
  %228 = sext i32 %227 to i64
  %229 = mul i64 %228, 4
  %230 = call ptr @realloc(ptr noundef %226, i64 noundef %229) #8
  store ptr %230, ptr %13, align 8, !tbaa !5
  br label %231

231:                                              ; preds = %218, %214
  %232 = load i32, ptr %15, align 4, !tbaa !13
  %233 = load ptr, ptr %12, align 8, !tbaa !5
  %234 = load i32, ptr %11, align 4, !tbaa !13
  %235 = sext i32 %234 to i64
  %236 = getelementptr inbounds i32, ptr %233, i64 %235
  store i32 %232, ptr %236, align 4, !tbaa !13
  %237 = load ptr, ptr %13, align 8, !tbaa !5
  %238 = load i32, ptr %11, align 4, !tbaa !13
  %239 = sext i32 %238 to i64
  %240 = getelementptr inbounds i32, ptr %237, i64 %239
  store i32 1, ptr %240, align 4, !tbaa !13
  %241 = load i32, ptr %11, align 4, !tbaa !13
  %242 = add nsw i32 %241, 1
  store i32 %242, ptr %11, align 4, !tbaa !13
  br label %243

243:                                              ; preds = %231, %210
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #6
  br label %244

244:                                              ; preds = %243
  %245 = load i32, ptr %14, align 4, !tbaa !13
  %246 = add nsw i32 %245, 1
  store i32 %246, ptr %14, align 4, !tbaa !13
  br label %174, !llvm.loop !30

247:                                              ; preds = %174
  store i32 0, ptr %14, align 4, !tbaa !13
  br label %248

248:                                              ; preds = %301, %247
  %249 = load i32, ptr %14, align 4, !tbaa !13
  %250 = load i32, ptr %11, align 4, !tbaa !13
  %251 = icmp slt i32 %249, %250
  br i1 %251, label %252, label %304

252:                                              ; preds = %248
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #6
  %253 = load ptr, ptr %13, align 8, !tbaa !5
  %254 = load i32, ptr %14, align 4, !tbaa !13
  %255 = sext i32 %254 to i64
  %256 = getelementptr inbounds i32, ptr %253, i64 %255
  %257 = load i32, ptr %256, align 4, !tbaa !13
  store i32 %257, ptr %17, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #6
  %258 = load i32, ptr %14, align 4, !tbaa !13
  %259 = add nsw i32 %258, 1
  store i32 %259, ptr %18, align 4, !tbaa !13
  br label %260

260:                                              ; preds = %292, %252
  %261 = load i32, ptr %18, align 4, !tbaa !13
  %262 = load i32, ptr %11, align 4, !tbaa !13
  %263 = icmp slt i32 %261, %262
  br i1 %263, label %265, label %264

264:                                              ; preds = %260
  store i32 11, ptr %7, align 4
  br label %295

265:                                              ; preds = %260
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #6
  %266 = load ptr, ptr %13, align 8, !tbaa !5
  %267 = load i32, ptr %18, align 4, !tbaa !13
  %268 = sext i32 %267 to i64
  %269 = getelementptr inbounds i32, ptr %266, i64 %268
  %270 = load i32, ptr %269, align 4, !tbaa !13
  store i32 %270, ptr %19, align 4, !tbaa !13
  %271 = load ptr, ptr %5, align 8, !tbaa !5
  %272 = getelementptr inbounds %struct.svm_parameter, ptr %271, i32 0, i32 11
  %273 = load double, ptr %272, align 8, !tbaa !20
  %274 = load i32, ptr %17, align 4, !tbaa !13
  %275 = load i32, ptr %19, align 4, !tbaa !13
  %276 = add nsw i32 %274, %275
  %277 = sitofp i32 %276 to double
  %278 = fmul double %273, %277
  %279 = fdiv double %278, 2.000000e+00
  %280 = load i32, ptr %17, align 4, !tbaa !13
  %281 = load i32, ptr %19, align 4, !tbaa !13
  %282 = call noundef i32 @_ZL3minIiET_S0_S0_(i32 noundef %280, i32 noundef %281)
  %283 = sitofp i32 %282 to double
  %284 = fcmp ogt double %279, %283
  br i1 %284, label %285, label %288

285:                                              ; preds = %265
  %286 = load ptr, ptr %12, align 8, !tbaa !5
  call void @free(ptr noundef %286) #6
  %287 = load ptr, ptr %13, align 8, !tbaa !5
  call void @free(ptr noundef %287) #6
  store ptr @.str.61, ptr %3, align 8
  store i32 1, ptr %7, align 4
  br label %289

288:                                              ; preds = %265
  store i32 0, ptr %7, align 4
  br label %289

289:                                              ; preds = %288, %285
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #6
  %290 = load i32, ptr %7, align 4
  switch i32 %290, label %295 [
    i32 0, label %291
  ]

291:                                              ; preds = %289
  br label %292

292:                                              ; preds = %291
  %293 = load i32, ptr %18, align 4, !tbaa !13
  %294 = add nsw i32 %293, 1
  store i32 %294, ptr %18, align 4, !tbaa !13
  br label %260, !llvm.loop !31

295:                                              ; preds = %289, %264
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #6
  %296 = load i32, ptr %7, align 4
  switch i32 %296, label %298 [
    i32 11, label %297
  ]

297:                                              ; preds = %295
  store i32 0, ptr %7, align 4
  br label %298

298:                                              ; preds = %297, %295
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #6
  %299 = load i32, ptr %7, align 4
  switch i32 %299, label %307 [
    i32 0, label %300
  ]

300:                                              ; preds = %298
  br label %301

301:                                              ; preds = %300
  %302 = load i32, ptr %14, align 4, !tbaa !13
  %303 = add nsw i32 %302, 1
  store i32 %303, ptr %14, align 4, !tbaa !13
  br label %248, !llvm.loop !32

304:                                              ; preds = %248
  %305 = load ptr, ptr %12, align 8, !tbaa !5
  call void @free(ptr noundef %305) #6
  %306 = load ptr, ptr %13, align 8, !tbaa !5
  call void @free(ptr noundef %306) #6
  store i32 0, ptr %7, align 4
  br label %307

307:                                              ; preds = %304, %298
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #6
  %308 = load i32, ptr %7, align 4
  switch i32 %308, label %311 [
    i32 0, label %309
  ]

309:                                              ; preds = %307
  br label %310

310:                                              ; preds = %309, %159
  store ptr null, ptr %3, align 8
  store i32 1, ptr %7, align 4
  br label %311

311:                                              ; preds = %310, %307, %158, %149, %138, %126, %116, %95, %80, %74, %68, %62, %56
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #6
  br label %312

312:                                              ; preds = %311, %37
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #6
  %313 = load ptr, ptr %3, align 8
  ret ptr %313
}

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { nounwind allocsize(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 #3 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nounwind 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 #5 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind }
attributes #7 = { nounwind allocsize(0) }
attributes #8 = { nounwind allocsize(1) }

!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, !11, i64 0}
!10 = !{!"_ZTS13svm_parameter", !11, i64 0, !11, i64 4, !11, i64 8, !12, i64 16, !12, i64 24, !12, i64 32, !12, i64 40, !12, i64 48, !11, i64 56, !6, i64 64, !6, i64 72, !12, i64 80, !12, i64 88, !11, i64 96, !11, i64 100}
!11 = !{!"int", !7, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = !{!11, !11, i64 0}
!14 = !{!10, !11, i64 4}
!15 = !{!10, !12, i64 16}
!16 = !{!10, !11, i64 8}
!17 = !{!10, !12, i64 32}
!18 = !{!10, !12, i64 40}
!19 = !{!10, !12, i64 48}
!20 = !{!10, !12, i64 80}
!21 = !{!10, !12, i64 88}
!22 = !{!10, !11, i64 96}
!23 = !{!10, !11, i64 100}
!24 = !{!25, !11, i64 0}
!25 = !{!"_ZTS11svm_problem", !11, i64 0, !6, i64 8, !6, i64 16}
!26 = !{!25, !6, i64 8}
!27 = !{!12, !12, i64 0}
!28 = distinct !{!28, !29}
!29 = !{!"llvm.loop.mustprogress"}
!30 = distinct !{!30, !29}
!31 = distinct !{!31, !29}
!32 = distinct !{!32, !29}


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

@.str.49 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [27 x i8], align 1

; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite)
declare void @free(ptr allocptr nocapture noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite)
declare noalias noundef ptr @realloc(ptr allocptr nocapture noundef, i64 noundef) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef i32 @_ZL3minIiET_S0_S0_(i32 noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
define dso_local ptr @svm_check_parameter(ptr nocapture noundef readonly %0, ptr nocapture noundef readonly %1) local_unnamed_addr #4 {
  %3 = load i32, ptr %1, align 8, !tbaa !5
  %or.cond10 = icmp ugt i32 %3, 4
  br i1 %or.cond10, label %102, label %4

4:                                                ; preds = %2
  %5 = getelementptr inbounds i8, ptr %1, i64 4
  %6 = load i32, ptr %5, align 4, !tbaa !12
  %or.cond18 = icmp ugt i32 %6, 4
  br i1 %or.cond18, label %102, label %7

7:                                                ; preds = %4
  %8 = getelementptr inbounds i8, ptr %1, i64 16
  %9 = load double, ptr %8, align 8, !tbaa !13
  %10 = fcmp olt double %9, 0.000000e+00
  br i1 %10, label %102, label %11

11:                                               ; preds = %7
  %12 = getelementptr inbounds i8, ptr %1, i64 8
  %13 = load i32, ptr %12, align 8, !tbaa !14
  %14 = icmp slt i32 %13, 0
  br i1 %14, label %102, label %15

15:                                               ; preds = %11
  %16 = getelementptr inbounds i8, ptr %1, i64 32
  %17 = load double, ptr %16, align 8, !tbaa !15
  %18 = fcmp ugt double %17, 0.000000e+00
  br i1 %18, label %19, label %102

19:                                               ; preds = %15
  %20 = getelementptr inbounds i8, ptr %1, i64 40
  %21 = load double, ptr %20, align 8, !tbaa !16
  %22 = fcmp ugt double %21, 0.000000e+00
  br i1 %22, label %23, label %102

23:                                               ; preds = %19
  %24 = icmp eq i32 %3, 3
  switch i32 %3, label %29 [
    i32 4, label %25
    i32 3, label %25
    i32 0, label %25
  ]

25:                                               ; preds = %23, %23, %23
  %26 = getelementptr inbounds i8, ptr %1, i64 48
  %27 = load double, ptr %26, align 8, !tbaa !17
  %28 = fcmp ugt double %27, 0.000000e+00
  br i1 %28, label %29, label %102

29:                                               ; preds = %23, %25
  %.not = icmp eq i32 %3, 1
  %30 = icmp eq i32 %3, 2
  switch i32 %3, label %41 [
    i32 4, label %31
    i32 2, label %31
    i32 1, label %31
    i32 3, label %37
  ]

31:                                               ; preds = %29, %29, %29
  %32 = getelementptr inbounds i8, ptr %1, i64 80
  %33 = load double, ptr %32, align 8, !tbaa !18
  %34 = fcmp ole double %33, 0.000000e+00
  %35 = fcmp ogt double %33, 1.000000e+00
  %or.cond = or i1 %34, %35
  br i1 %or.cond, label %102, label %36

36:                                               ; preds = %31
  br i1 %24, label %37, label %41

37:                                               ; preds = %29, %36
  %38 = getelementptr inbounds i8, ptr %1, i64 88
  %39 = load double, ptr %38, align 8, !tbaa !19
  %40 = fcmp olt double %39, 0.000000e+00
  br i1 %40, label %102, label %41

41:                                               ; preds = %29, %37, %36
  %42 = getelementptr inbounds i8, ptr %1, i64 96
  %43 = load i32, ptr %42, align 8, !tbaa !20
  %switch = icmp ult i32 %43, 2
  br i1 %switch, label %44, label %102

44:                                               ; preds = %41
  %45 = getelementptr inbounds i8, ptr %1, i64 100
  %46 = load i32, ptr %45, align 4, !tbaa !21
  %switch142 = icmp ult i32 %46, 2
  br i1 %switch142, label %47, label %102

47:                                               ; preds = %44
  %48 = icmp eq i32 %46, 1
  %or.cond28 = and i1 %30, %48
  %.str.60.mux = select i1 %or.cond28, ptr @.str.60, ptr null
  br i1 %.not, label %49, label %102

49:                                               ; preds = %47
  %50 = load i32, ptr %0, align 8, !tbaa !22
  %51 = tail call noalias dereferenceable_or_null(64) ptr @malloc(i64 noundef 64) #5
  %52 = tail call noalias dereferenceable_or_null(64) ptr @malloc(i64 noundef 64) #5
  %53 = icmp sgt i32 %50, 0
  br i1 %53, label %.lr.ph156, label %.thread144

.lr.ph156:                                        ; preds = %49
  %54 = getelementptr inbounds i8, ptr %0, i64 8
  %wide.trip.count171 = zext nneg i32 %50 to i64
  br label %58

.preheader:                                       ; preds = %86
  %55 = icmp sgt i32 %.1134, 0
  br i1 %55, label %.lr.ph163, label %.thread144

.lr.ph163:                                        ; preds = %.preheader
  %56 = getelementptr inbounds i8, ptr %1, i64 80
  %57 = zext nneg i32 %.1134 to i64
  %wide.trip.count183 = zext nneg i32 %.1134 to i64
  br label %87

58:                                               ; preds = %.lr.ph156, %86
  %indvars.iv168 = phi i64 [ 0, %.lr.ph156 ], [ %indvars.iv.next169, %86 ]
  %.0122155 = phi i32 [ 16, %.lr.ph156 ], [ %.2124, %86 ]
  %.0127153 = phi ptr [ %52, %.lr.ph156 ], [ %.2129, %86 ]
  %.0130152 = phi ptr [ %51, %.lr.ph156 ], [ %.2132, %86 ]
  %.0133151 = phi i32 [ 0, %.lr.ph156 ], [ %.1134, %86 ]
  %59 = load ptr, ptr %54, align 8, !tbaa !24
  %60 = getelementptr inbounds double, ptr %59, i64 %indvars.iv168
  %61 = load double, ptr %60, align 8, !tbaa !25
  %62 = fptosi double %61 to i32
  %63 = icmp sgt i32 %.0133151, 0
  br i1 %63, label %.lr.ph.preheader, label %.loopexit147

.lr.ph.preheader:                                 ; preds = %58
  %wide.trip.count = zext nneg i32 %.0133151 to i64
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader, %72
  %indvars.iv = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next, %72 ]
  %64 = getelementptr inbounds i32, ptr %.0130152, i64 %indvars.iv
  %65 = load i32, ptr %64, align 4, !tbaa !26
  %66 = icmp eq i32 %65, %62
  br i1 %66, label %67, label %72

67:                                               ; preds = %.lr.ph
  %68 = trunc nuw nsw i64 %indvars.iv to i32
  %69 = getelementptr inbounds i32, ptr %.0127153, i64 %indvars.iv
  %70 = load i32, ptr %69, align 4, !tbaa !26
  %71 = add nsw i32 %70, 1
  store i32 %71, ptr %69, align 4, !tbaa !26
  br label %.loopexit147

72:                                               ; preds = %.lr.ph
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %.loopexit147.thread, label %.lr.ph, !llvm.loop !27

.loopexit147:                                     ; preds = %58, %67
  %.0121149 = phi i32 [ %68, %67 ], [ 0, %58 ]
  %73 = icmp eq i32 %.0121149, %.0133151
  br i1 %73, label %.loopexit147.thread, label %86

.loopexit147.thread:                              ; preds = %72, %.loopexit147
  %74 = icmp eq i32 %.0133151, %.0122155
  br i1 %74, label %75, label %81

75:                                               ; preds = %.loopexit147.thread
  %76 = shl nsw i32 %.0122155, 1
  %77 = sext i32 %76 to i64
  %78 = shl nsw i64 %77, 2
  %79 = tail call ptr @realloc(ptr noundef %.0130152, i64 noundef %78) #6
  %80 = tail call ptr @realloc(ptr noundef %.0127153, i64 noundef %78) #6
  br label %81

81:                                               ; preds = %75, %.loopexit147.thread
  %.1131 = phi ptr [ %79, %75 ], [ %.0130152, %.loopexit147.thread ]
  %.1128 = phi ptr [ %80, %75 ], [ %.0127153, %.loopexit147.thread ]
  %.1123 = phi i32 [ %76, %75 ], [ %.0122155, %.loopexit147.thread ]
  %82 = sext i32 %.0133151 to i64
  %83 = getelementptr inbounds i32, ptr %.1131, i64 %82
  store i32 %62, ptr %83, align 4, !tbaa !26
  %84 = getelementptr inbounds i32, ptr %.1128, i64 %82
  store i32 1, ptr %84, align 4, !tbaa !26
  %85 = add nsw i32 %.0133151, 1
  br label %86

86:                                               ; preds = %81, %.loopexit147
  %.1134 = phi i32 [ %85, %81 ], [ %.0133151, %.loopexit147 ]
  %.2132 = phi ptr [ %.1131, %81 ], [ %.0130152, %.loopexit147 ]
  %.2129 = phi ptr [ %.1128, %81 ], [ %.0127153, %.loopexit147 ]
  %.2124 = phi i32 [ %.1123, %81 ], [ %.0122155, %.loopexit147 ]
  %indvars.iv.next169 = add nuw nsw i64 %indvars.iv168, 1
  %exitcond172.not = icmp eq i64 %indvars.iv.next169, %wide.trip.count171
  br i1 %exitcond172.not, label %.preheader, label %58, !llvm.loop !29

.loopexit:                                        ; preds = %90, %87
  %indvars.iv.next174 = add nuw nsw i64 %indvars.iv173, 1
  %exitcond184.not = icmp eq i64 %indvars.iv.next181, %wide.trip.count183
  br i1 %exitcond184.not, label %.thread144, label %87

87:                                               ; preds = %.lr.ph163, %.loopexit
  %indvars.iv180 = phi i64 [ 0, %.lr.ph163 ], [ %indvars.iv.next181, %.loopexit ]
  %indvars.iv173 = phi i64 [ 1, %.lr.ph163 ], [ %indvars.iv.next174, %.loopexit ]
  %88 = getelementptr inbounds i32, ptr %.2129, i64 %indvars.iv180
  %89 = load i32, ptr %88, align 4, !tbaa !26
  %indvars.iv.next181 = add nuw nsw i64 %indvars.iv180, 1
  %.not141160 = icmp ult i64 %indvars.iv.next181, %57
  br i1 %.not141160, label %.critedge, label %.loopexit

90:                                               ; preds = %.critedge
  %indvars.iv.next176 = add nuw nsw i64 %indvars.iv175, 1
  %exitcond179.not = icmp eq i64 %indvars.iv.next176, %wide.trip.count183
  br i1 %exitcond179.not, label %.loopexit, label %.critedge, !llvm.loop !30

.critedge:                                        ; preds = %87, %90
  %indvars.iv175 = phi i64 [ %indvars.iv.next176, %90 ], [ %indvars.iv173, %87 ]
  %91 = getelementptr inbounds i32, ptr %.2129, i64 %indvars.iv175
  %92 = load i32, ptr %91, align 4, !tbaa !26
  %93 = load double, ptr %56, align 8, !tbaa !18
  %94 = add nsw i32 %92, %89
  %95 = sitofp i32 %94 to double
  %96 = fmul double %93, %95
  %97 = fmul double %96, 5.000000e-01
  %98 = tail call noundef i32 @_ZL3minIiET_S0_S0_(i32 noundef %89, i32 noundef %92)
  %99 = sitofp i32 %98 to double
  %100 = fcmp ule double %97, %99
  br i1 %100, label %90, label %101

.thread144:                                       ; preds = %.loopexit, %49, %.preheader
  %.0127.lcssa189 = phi ptr [ %.2129, %.preheader ], [ %52, %49 ], [ %.2129, %.loopexit ]
  %.0130.lcssa188 = phi ptr [ %.2132, %.preheader ], [ %51, %49 ], [ %.2132, %.loopexit ]
  tail call void @free(ptr noundef %.0130.lcssa188) #7
  tail call void @free(ptr noundef %.0127.lcssa189) #7
  br label %102

101:                                              ; preds = %.critedge
  tail call void @free(ptr noundef %.2132) #7
  tail call void @free(ptr noundef nonnull %.2129) #7
  br label %102

102:                                              ; preds = %47, %.thread144, %101, %44, %41, %4, %7, %11, %15, %19, %25, %31, %37, %2
  %.6 = phi ptr [ @.str.49, %2 ], [ @.str.61, %101 ], [ @.str.50, %4 ], [ @.str.51, %7 ], [ @.str.52, %11 ], [ @.str.53, %15 ], [ @.str.54, %19 ], [ @.str.55, %25 ], [ @.str.56, %31 ], [ @.str.57, %37 ], [ @.str.58, %41 ], [ @.str.59, %44 ], [ %.str.60.mux, %47 ], [ null, %.thread144 ]
  ret ptr %.6
}

attributes #0 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind allocsize(0) }
attributes #6 = { nounwind allocsize(1) }
attributes #7 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 0}
!6 = !{!"_ZTS13svm_parameter", !7, i64 0, !7, i64 4, !7, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !7, i64 56, !11, i64 64, !11, i64 72, !10, i64 80, !10, i64 88, !7, i64 96, !7, i64 100}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"double", !8, i64 0}
!11 = !{!"any pointer", !8, i64 0}
!12 = !{!6, !7, i64 4}
!13 = !{!6, !10, i64 16}
!14 = !{!6, !7, i64 8}
!15 = !{!6, !10, i64 32}
!16 = !{!6, !10, i64 40}
!17 = !{!6, !10, i64 48}
!18 = !{!6, !10, i64 80}
!19 = !{!6, !10, i64 88}
!20 = !{!6, !7, i64 96}
!21 = !{!6, !7, i64 100}
!22 = !{!23, !7, i64 0}
!23 = !{!"_ZTS11svm_problem", !7, i64 0, !11, i64 8, !11, i64 16}
!24 = !{!23, !11, i64 8}
!25 = !{!10, !10, i64 0}
!26 = !{!7, !7, i64 0}
!27 = distinct !{!27, !28}
!28 = !{!"llvm.loop.mustprogress"}
!29 = distinct !{!29, !28}
!30 = distinct !{!30, !28}


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