; LLVM IR from Derek-TH-Wang/quadruped_ctrl :: src/osqp/src (osqp)

; 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.OSQPWorkspace = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i64, i64 }
%struct.OSQPData = type { i64, i64, ptr, ptr, ptr, ptr, ptr }
%struct.OSQPSettings = type { double, double, i64, i64, i64, double, double, i64, double, double, double, double, double, i32, double, i64, i64, i64, i64, i64, i64, double }
%struct.OSQPScaling = type { double, ptr, ptr, double, ptr, ptr }
%struct.linsys_solver = type { i32, ptr, ptr, ptr, ptr, i64 }
%struct.OSQPPolish = type { ptr, i64, i64, ptr, ptr, ptr, ptr, ptr, ptr, ptr, double, double, double }
%struct.OSQPSolution = type { ptr, ptr }

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

; Function Attrs: nounwind uwtable
define dso_local i64 @osqp_cleanup(ptr noundef %0) #1 {
  %2 = alloca ptr, align 8
  %3 = alloca i64, align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #4
  store i64 0, ptr %3, align 8, !tbaa !9
  %4 = load ptr, ptr %2, align 8, !tbaa !5
  %5 = icmp ne ptr %4, null
  br i1 %5, label %6, label %515

6:                                                ; preds = %1
  %7 = load ptr, ptr %2, align 8, !tbaa !5
  %8 = getelementptr inbounds %struct.OSQPWorkspace, ptr %7, i32 0, i32 0
  %9 = load ptr, ptr %8, align 8, !tbaa !11
  %10 = icmp ne ptr %9, null
  br i1 %10, label %11, label %80

11:                                               ; preds = %6
  %12 = load ptr, ptr %2, align 8, !tbaa !5
  %13 = getelementptr inbounds %struct.OSQPWorkspace, ptr %12, i32 0, i32 0
  %14 = load ptr, ptr %13, align 8, !tbaa !11
  %15 = getelementptr inbounds %struct.OSQPData, ptr %14, i32 0, i32 2
  %16 = load ptr, ptr %15, align 8, !tbaa !13
  %17 = icmp ne ptr %16, null
  br i1 %17, label %18, label %24

18:                                               ; preds = %11
  %19 = load ptr, ptr %2, align 8, !tbaa !5
  %20 = getelementptr inbounds %struct.OSQPWorkspace, ptr %19, i32 0, i32 0
  %21 = load ptr, ptr %20, align 8, !tbaa !11
  %22 = getelementptr inbounds %struct.OSQPData, ptr %21, i32 0, i32 2
  %23 = load ptr, ptr %22, align 8, !tbaa !13
  call void @csc_spfree(ptr noundef %23)
  br label %24

24:                                               ; preds = %18, %11
  %25 = load ptr, ptr %2, align 8, !tbaa !5
  %26 = getelementptr inbounds %struct.OSQPWorkspace, ptr %25, i32 0, i32 0
  %27 = load ptr, ptr %26, align 8, !tbaa !11
  %28 = getelementptr inbounds %struct.OSQPData, ptr %27, i32 0, i32 3
  %29 = load ptr, ptr %28, align 8, !tbaa !15
  %30 = icmp ne ptr %29, null
  br i1 %30, label %31, label %37

31:                                               ; preds = %24
  %32 = load ptr, ptr %2, align 8, !tbaa !5
  %33 = getelementptr inbounds %struct.OSQPWorkspace, ptr %32, i32 0, i32 0
  %34 = load ptr, ptr %33, align 8, !tbaa !11
  %35 = getelementptr inbounds %struct.OSQPData, ptr %34, i32 0, i32 3
  %36 = load ptr, ptr %35, align 8, !tbaa !15
  call void @csc_spfree(ptr noundef %36)
  br label %37

37:                                               ; preds = %31, %24
  %38 = load ptr, ptr %2, align 8, !tbaa !5
  %39 = getelementptr inbounds %struct.OSQPWorkspace, ptr %38, i32 0, i32 0
  %40 = load ptr, ptr %39, align 8, !tbaa !11
  %41 = getelementptr inbounds %struct.OSQPData, ptr %40, i32 0, i32 4
  %42 = load ptr, ptr %41, align 8, !tbaa !16
  %43 = icmp ne ptr %42, null
  br i1 %43, label %44, label %50

44:                                               ; preds = %37
  %45 = load ptr, ptr %2, align 8, !tbaa !5
  %46 = getelementptr inbounds %struct.OSQPWorkspace, ptr %45, i32 0, i32 0
  %47 = load ptr, ptr %46, align 8, !tbaa !11
  %48 = getelementptr inbounds %struct.OSQPData, ptr %47, i32 0, i32 4
  %49 = load ptr, ptr %48, align 8, !tbaa !16
  call void @free(ptr noundef %49) #4
  br label %50

50:                                               ; preds = %44, %37
  %51 = load ptr, ptr %2, align 8, !tbaa !5
  %52 = getelementptr inbounds %struct.OSQPWorkspace, ptr %51, i32 0, i32 0
  %53 = load ptr, ptr %52, align 8, !tbaa !11
  %54 = getelementptr inbounds %struct.OSQPData, ptr %53, i32 0, i32 5
  %55 = load ptr, ptr %54, align 8, !tbaa !17
  %56 = icmp ne ptr %55, null
  br i1 %56, label %57, label %63

57:                                               ; preds = %50
  %58 = load ptr, ptr %2, align 8, !tbaa !5
  %59 = getelementptr inbounds %struct.OSQPWorkspace, ptr %58, i32 0, i32 0
  %60 = load ptr, ptr %59, align 8, !tbaa !11
  %61 = getelementptr inbounds %struct.OSQPData, ptr %60, i32 0, i32 5
  %62 = load ptr, ptr %61, align 8, !tbaa !17
  call void @free(ptr noundef %62) #4
  br label %63

63:                                               ; preds = %57, %50
  %64 = load ptr, ptr %2, align 8, !tbaa !5
  %65 = getelementptr inbounds %struct.OSQPWorkspace, ptr %64, i32 0, i32 0
  %66 = load ptr, ptr %65, align 8, !tbaa !11
  %67 = getelementptr inbounds %struct.OSQPData, ptr %66, i32 0, i32 6
  %68 = load ptr, ptr %67, align 8, !tbaa !18
  %69 = icmp ne ptr %68, null
  br i1 %69, label %70, label %76

70:                                               ; preds = %63
  %71 = load ptr, ptr %2, align 8, !tbaa !5
  %72 = getelementptr inbounds %struct.OSQPWorkspace, ptr %71, i32 0, i32 0
  %73 = load ptr, ptr %72, align 8, !tbaa !11
  %74 = getelementptr inbounds %struct.OSQPData, ptr %73, i32 0, i32 6
  %75 = load ptr, ptr %74, align 8, !tbaa !18
  call void @free(ptr noundef %75) #4
  br label %76

76:                                               ; preds = %70, %63
  %77 = load ptr, ptr %2, align 8, !tbaa !5
  %78 = getelementptr inbounds %struct.OSQPWorkspace, ptr %77, i32 0, i32 0
  %79 = load ptr, ptr %78, align 8, !tbaa !11
  call void @free(ptr noundef %79) #4
  br label %80

80:                                               ; preds = %76, %6
  %81 = load ptr, ptr %2, align 8, !tbaa !5
  %82 = getelementptr inbounds %struct.OSQPWorkspace, ptr %81, i32 0, i32 23
  %83 = load ptr, ptr %82, align 8, !tbaa !19
  %84 = getelementptr inbounds %struct.OSQPSettings, ptr %83, i32 0, i32 2
  %85 = load i64, ptr %84, align 8, !tbaa !20
  %86 = icmp ne i64 %85, 0
  br i1 %86, label %87, label %170

87:                                               ; preds = %80
  %88 = load ptr, ptr %2, align 8, !tbaa !5
  %89 = getelementptr inbounds %struct.OSQPWorkspace, ptr %88, i32 0, i32 24
  %90 = load ptr, ptr %89, align 8, !tbaa !24
  %91 = getelementptr inbounds %struct.OSQPScaling, ptr %90, i32 0, i32 1
  %92 = load ptr, ptr %91, align 8, !tbaa !25
  %93 = icmp ne ptr %92, null
  br i1 %93, label %94, label %100

94:                                               ; preds = %87
  %95 = load ptr, ptr %2, align 8, !tbaa !5
  %96 = getelementptr inbounds %struct.OSQPWorkspace, ptr %95, i32 0, i32 24
  %97 = load ptr, ptr %96, align 8, !tbaa !24
  %98 = getelementptr inbounds %struct.OSQPScaling, ptr %97, i32 0, i32 1
  %99 = load ptr, ptr %98, align 8, !tbaa !25
  call void @free(ptr noundef %99) #4
  br label %100

100:                                              ; preds = %94, %87
  %101 = load ptr, ptr %2, align 8, !tbaa !5
  %102 = getelementptr inbounds %struct.OSQPWorkspace, ptr %101, i32 0, i32 24
  %103 = load ptr, ptr %102, align 8, !tbaa !24
  %104 = getelementptr inbounds %struct.OSQPScaling, ptr %103, i32 0, i32 4
  %105 = load ptr, ptr %104, align 8, !tbaa !27
  %106 = icmp ne ptr %105, null
  br i1 %106, label %107, label %113

107:                                              ; preds = %100
  %108 = load ptr, ptr %2, align 8, !tbaa !5
  %109 = getelementptr inbounds %struct.OSQPWorkspace, ptr %108, i32 0, i32 24
  %110 = load ptr, ptr %109, align 8, !tbaa !24
  %111 = getelementptr inbounds %struct.OSQPScaling, ptr %110, i32 0, i32 4
  %112 = load ptr, ptr %111, align 8, !tbaa !27
  call void @free(ptr noundef %112) #4
  br label %113

113:                                              ; preds = %107, %100
  %114 = load ptr, ptr %2, align 8, !tbaa !5
  %115 = getelementptr inbounds %struct.OSQPWorkspace, ptr %114, i32 0, i32 24
  %116 = load ptr, ptr %115, align 8, !tbaa !24
  %117 = getelementptr inbounds %struct.OSQPScaling, ptr %116, i32 0, i32 2
  %118 = load ptr, ptr %117, align 8, !tbaa !28
  %119 = icmp ne ptr %118, null
  br i1 %119, label %120, label %126

120:                                              ; preds = %113
  %121 = load ptr, ptr %2, align 8, !tbaa !5
  %122 = getelementptr inbounds %struct.OSQPWorkspace, ptr %121, i32 0, i32 24
  %123 = load ptr, ptr %122, align 8, !tbaa !24
  %124 = getelementptr inbounds %struct.OSQPScaling, ptr %123, i32 0, i32 2
  %125 = load ptr, ptr %124, align 8, !tbaa !28
  call void @free(ptr noundef %125) #4
  br label %126

126:                                              ; preds = %120, %113
  %127 = load ptr, ptr %2, align 8, !tbaa !5
  %128 = getelementptr inbounds %struct.OSQPWorkspace, ptr %127, i32 0, i32 24
  %129 = load ptr, ptr %128, align 8, !tbaa !24
  %130 = getelementptr inbounds %struct.OSQPScaling, ptr %129, i32 0, i32 5
  %131 = load ptr, ptr %130, align 8, !tbaa !29
  %132 = icmp ne ptr %131, null
  br i1 %132, label %133, label %139

133:                                              ; preds = %126
  %134 = load ptr, ptr %2, align 8, !tbaa !5
  %135 = getelementptr inbounds %struct.OSQPWorkspace, ptr %134, i32 0, i32 24
  %136 = load ptr, ptr %135, align 8, !tbaa !24
  %137 = getelementptr inbounds %struct.OSQPScaling, ptr %136, i32 0, i32 5
  %138 = load ptr, ptr %137, align 8, !tbaa !29
  call void @free(ptr noundef %138) #4
  br label %139

139:                                              ; preds = %133, %126
  %140 = load ptr, ptr %2, align 8, !tbaa !5
  %141 = getelementptr inbounds %struct.OSQPWorkspace, ptr %140, i32 0, i32 24
  %142 = load ptr, ptr %141, align 8, !tbaa !24
  call void @free(ptr noundef %142) #4
  %143 = load ptr, ptr %2, align 8, !tbaa !5
  %144 = getelementptr inbounds %struct.OSQPWorkspace, ptr %143, i32 0, i32 20
  %145 = load ptr, ptr %144, align 8, !tbaa !30
  %146 = icmp ne ptr %145, null
  br i1 %146, label %147, label %151

147:                                              ; preds = %139
  %148 = load ptr, ptr %2, align 8, !tbaa !5
  %149 = getelementptr inbounds %struct.OSQPWorkspace, ptr %148, i32 0, i32 20
  %150 = load ptr, ptr %149, align 8, !tbaa !30
  call void @free(ptr noundef %150) #4
  br label %151

151:                                              ; preds = %147, %139
  %152 = load ptr, ptr %2, align 8, !tbaa !5
  %153 = getelementptr inbounds %struct.OSQPWorkspace, ptr %152, i32 0, i32 21
  %154 = load ptr, ptr %153, align 8, !tbaa !31
  %155 = icmp ne ptr %154, null
  br i1 %155, label %156, label %160

156:                                              ; preds = %151
  %157 = load ptr, ptr %2, align 8, !tbaa !5
  %158 = getelementptr inbounds %struct.OSQPWorkspace, ptr %157, i32 0, i32 21
  %159 = load ptr, ptr %158, align 8, !tbaa !31
  call void @free(ptr noundef %159) #4
  br label %160

160:                                              ; preds = %156, %151
  %161 = load ptr, ptr %2, align 8, !tbaa !5
  %162 = getelementptr inbounds %struct.OSQPWorkspace, ptr %161, i32 0, i32 22
  %163 = load ptr, ptr %162, align 8, !tbaa !32
  %164 = icmp ne ptr %163, null
  br i1 %164, label %165, label %169

165:                                              ; preds = %160
  %166 = load ptr, ptr %2, align 8, !tbaa !5
  %167 = getelementptr inbounds %struct.OSQPWorkspace, ptr %166, i32 0, i32 22
  %168 = load ptr, ptr %167, align 8, !tbaa !32
  call void @free(ptr noundef %168) #4
  br label %169

169:                                              ; preds = %165, %160
  br label %170

170:                                              ; preds = %169, %80
  %171 = load ptr, ptr %2, align 8, !tbaa !5
  %172 = getelementptr inbounds %struct.OSQPWorkspace, ptr %171, i32 0, i32 1
  %173 = load ptr, ptr %172, align 8, !tbaa !33
  %174 = icmp ne ptr %173, null
  br i1 %174, label %175, label %192

175:                                              ; preds = %170
  %176 = load ptr, ptr %2, align 8, !tbaa !5
  %177 = getelementptr inbounds %struct.OSQPWorkspace, ptr %176, i32 0, i32 1
  %178 = load ptr, ptr %177, align 8, !tbaa !33
  %179 = getelementptr inbounds %struct.linsys_solver, ptr %178, i32 0, i32 2
  %180 = load ptr, ptr %179, align 8, !tbaa !34
  %181 = icmp ne ptr %180, null
  br i1 %181, label %182, label %191

182:                                              ; preds = %175
  %183 = load ptr, ptr %2, align 8, !tbaa !5
  %184 = getelementptr inbounds %struct.OSQPWorkspace, ptr %183, i32 0, i32 1
  %185 = load ptr, ptr %184, align 8, !tbaa !33
  %186 = getelementptr inbounds %struct.linsys_solver, ptr %185, i32 0, i32 2
  %187 = load ptr, ptr %186, align 8, !tbaa !34
  %188 = load ptr, ptr %2, align 8, !tbaa !5
  %189 = getelementptr inbounds %struct.OSQPWorkspace, ptr %188, i32 0, i32 1
  %190 = load ptr, ptr %189, align 8, !tbaa !33
  call void %187(ptr noundef %190)
  br label %191

191:                                              ; preds = %182, %175
  br label %192

192:                                              ; preds = %191, %170
  %193 = load ptr, ptr %2, align 8, !tbaa !5
  %194 = getelementptr inbounds %struct.OSQPWorkspace, ptr %193, i32 0, i32 23
  %195 = load ptr, ptr %194, align 8, !tbaa !19
  %196 = getelementptr inbounds %struct.OSQPSettings, ptr %195, i32 0, i32 13
  %197 = load i32, ptr %196, align 8, !tbaa !36
  %198 = call i64 @unload_linsys_solver(i32 noundef %197)
  store i64 %198, ptr %3, align 8, !tbaa !9
  %199 = load ptr, ptr %2, align 8, !tbaa !5
  %200 = getelementptr inbounds %struct.OSQPWorkspace, ptr %199, i32 0, i32 2
  %201 = load ptr, ptr %200, align 8, !tbaa !37
  %202 = icmp ne ptr %201, null
  br i1 %202, label %203, label %298

203:                                              ; preds = %192
  %204 = load ptr, ptr %2, align 8, !tbaa !5
  %205 = getelementptr inbounds %struct.OSQPWorkspace, ptr %204, i32 0, i32 2
  %206 = load ptr, ptr %205, align 8, !tbaa !37
  %207 = getelementptr inbounds %struct.OSQPPolish, ptr %206, i32 0, i32 5
  %208 = load ptr, ptr %207, align 8, !tbaa !38
  %209 = icmp ne ptr %208, null
  br i1 %209, label %210, label %216

210:                                              ; preds = %203
  %211 = load ptr, ptr %2, align 8, !tbaa !5
  %212 = getelementptr inbounds %struct.OSQPWorkspace, ptr %211, i32 0, i32 2
  %213 = load ptr, ptr %212, align 8, !tbaa !37
  %214 = getelementptr inbounds %struct.OSQPPolish, ptr %213, i32 0, i32 5
  %215 = load ptr, ptr %214, align 8, !tbaa !38
  call void @free(ptr noundef %215) #4
  br label %216

216:                                              ; preds = %210, %203
  %217 = load ptr, ptr %2, align 8, !tbaa !5
  %218 = getelementptr inbounds %struct.OSQPWorkspace, ptr %217, i32 0, i32 2
  %219 = load ptr, ptr %218, align 8, !tbaa !37
  %220 = getelementptr inbounds %struct.OSQPPolish, ptr %219, i32 0, i32 6
  %221 = load ptr, ptr %220, align 8, !tbaa !40
  %222 = icmp ne ptr %221, null
  br i1 %222, label %223, label %229

223:                                              ; preds = %216
  %224 = load ptr, ptr %2, align 8, !tbaa !5
  %225 = getelementptr inbounds %struct.OSQPWorkspace, ptr %224, i32 0, i32 2
  %226 = load ptr, ptr %225, align 8, !tbaa !37
  %227 = getelementptr inbounds %struct.OSQPPolish, ptr %226, i32 0, i32 6
  %228 = load ptr, ptr %227, align 8, !tbaa !40
  call void @free(ptr noundef %228) #4
  br label %229

229:                                              ; preds = %223, %216
  %230 = load ptr, ptr %2, align 8, !tbaa !5
  %231 = getelementptr inbounds %struct.OSQPWorkspace, ptr %230, i32 0, i32 2
  %232 = load ptr, ptr %231, align 8, !tbaa !37
  %233 = getelementptr inbounds %struct.OSQPPolish, ptr %232, i32 0, i32 3
  %234 = load ptr, ptr %233, align 8, !tbaa !41
  %235 = icmp ne ptr %234, null
  br i1 %235, label %236, label %242

236:                                              ; preds = %229
  %237 = load ptr, ptr %2, align 8, !tbaa !5
  %238 = getelementptr inbounds %struct.OSQPWorkspace, ptr %237, i32 0, i32 2
  %239 = load ptr, ptr %238, align 8, !tbaa !37
  %240 = getelementptr inbounds %struct.OSQPPolish, ptr %239, i32 0, i32 3
  %241 = load ptr, ptr %240, align 8, !tbaa !41
  call void @free(ptr noundef %241) #4
  br label %242

242:                                              ; preds = %236, %229
  %243 = load ptr, ptr %2, align 8, !tbaa !5
  %244 = getelementptr inbounds %struct.OSQPWorkspace, ptr %243, i32 0, i32 2
  %245 = load ptr, ptr %244, align 8, !tbaa !37
  %246 = getelementptr inbounds %struct.OSQPPolish, ptr %245, i32 0, i32 4
  %247 = load ptr, ptr %246, align 8, !tbaa !42
  %248 = icmp ne ptr %247, null
  br i1 %248, label %249, label %255

249:                                              ; preds = %242
  %250 = load ptr, ptr %2, align 8, !tbaa !5
  %251 = getelementptr inbounds %struct.OSQPWorkspace, ptr %250, i32 0, i32 2
  %252 = load ptr, ptr %251, align 8, !tbaa !37
  %253 = getelementptr inbounds %struct.OSQPPolish, ptr %252, i32 0, i32 4
  %254 = load ptr, ptr %253, align 8, !tbaa !42
  call void @free(ptr noundef %254) #4
  br label %255

255:                                              ; preds = %249, %242
  %256 = load ptr, ptr %2, align 8, !tbaa !5
  %257 = getelementptr inbounds %struct.OSQPWorkspace, ptr %256, i32 0, i32 2
  %258 = load ptr, ptr %257, align 8, !tbaa !37
  %259 = getelementptr inbounds %struct.OSQPPolish, ptr %258, i32 0, i32 7
  %260 = load ptr, ptr %259, align 8, !tbaa !43
  %261 = icmp ne ptr %260, null
  br i1 %261, label %262, label %268

262:                                              ; preds = %255
  %263 = load ptr, ptr %2, align 8, !tbaa !5
  %264 = getelementptr inbounds %struct.OSQPWorkspace, ptr %263, i32 0, i32 2
  %265 = load ptr, ptr %264, align 8, !tbaa !37
  %266 = getelementptr inbounds %struct.OSQPPolish, ptr %265, i32 0, i32 7
  %267 = load ptr, ptr %266, align 8, !tbaa !43
  call void @free(ptr noundef %267) #4
  br label %268

268:                                              ; preds = %262, %255
  %269 = load ptr, ptr %2, align 8, !tbaa !5
  %270 = getelementptr inbounds %struct.OSQPWorkspace, ptr %269, i32 0, i32 2
  %271 = load ptr, ptr %270, align 8, !tbaa !37
  %272 = getelementptr inbounds %struct.OSQPPolish, ptr %271, i32 0, i32 8
  %273 = load ptr, ptr %272, align 8, !tbaa !44
  %274 = icmp ne ptr %273, null
  br i1 %274, label %275, label %281

275:                                              ; preds = %268
  %276 = load ptr, ptr %2, align 8, !tbaa !5
  %277 = getelementptr inbounds %struct.OSQPWorkspace, ptr %276, i32 0, i32 2
  %278 = load ptr, ptr %277, align 8, !tbaa !37
  %279 = getelementptr inbounds %struct.OSQPPolish, ptr %278, i32 0, i32 8
  %280 = load ptr, ptr %279, align 8, !tbaa !44
  call void @free(ptr noundef %280) #4
  br label %281

281:                                              ; preds = %275, %268
  %282 = load ptr, ptr %2, align 8, !tbaa !5
  %283 = getelementptr inbounds %struct.OSQPWorkspace, ptr %282, i32 0, i32 2
  %284 = load ptr, ptr %283, align 8, !tbaa !37
  %285 = getelementptr inbounds %struct.OSQPPolish, ptr %284, i32 0, i32 9
  %286 = load ptr, ptr %285, align 8, !tbaa !45
  %287 = icmp ne ptr %286, null
  br i1 %287, label %288, label %294

288:                                              ; preds = %281
  %289 = load ptr, ptr %2, align 8, !tbaa !5
  %290 = getelementptr inbounds %struct.OSQPWorkspace, ptr %289, i32 0, i32 2
  %291 = load ptr, ptr %290, align 8, !tbaa !37
  %292 = getelementptr inbounds %struct.OSQPPolish, ptr %291, i32 0, i32 9
  %293 = load ptr, ptr %292, align 8, !tbaa !45
  call void @free(ptr noundef %293) #4
  br label %294

294:                                              ; preds = %288, %281
  %295 = load ptr, ptr %2, align 8, !tbaa !5
  %296 = getelementptr inbounds %struct.OSQPWorkspace, ptr %295, i32 0, i32 2
  %297 = load ptr, ptr %296, align 8, !tbaa !37
  call void @free(ptr noundef %297) #4
  br label %298

298:                                              ; preds = %294, %192
  %299 = load ptr, ptr %2, align 8, !tbaa !5
  %300 = getelementptr inbounds %struct.OSQPWorkspace, ptr %299, i32 0, i32 5
  %301 = load ptr, ptr %300, align 8, !tbaa !46
  %302 = icmp ne ptr %301, null
  br i1 %302, label %303, label %307

303:                                              ; preds = %298
  %304 = load ptr, ptr %2, align 8, !tbaa !5
  %305 = getelementptr inbounds %struct.OSQPWorkspace, ptr %304, i32 0, i32 5
  %306 = load ptr, ptr %305, align 8, !tbaa !46
  call void @free(ptr noundef %306) #4
  br label %307

307:                                              ; preds = %303, %298
  %308 = load ptr, ptr %2, align 8, !tbaa !5
  %309 = getelementptr inbounds %struct.OSQPWorkspace, ptr %308, i32 0, i32 3
  %310 = load ptr, ptr %309, align 8, !tbaa !47
  %311 = icmp ne ptr %310, null
  br i1 %311, label %312, label %316

312:                                              ; preds = %307
  %313 = load ptr, ptr %2, align 8, !tbaa !5
  %314 = getelementptr inbounds %struct.OSQPWorkspace, ptr %313, i32 0, i32 3
  %315 = load ptr, ptr %314, align 8, !tbaa !47
  call void @free(ptr noundef %315) #4
  br label %316

316:                                              ; preds = %312, %307
  %317 = load ptr, ptr %2, align 8, !tbaa !5
  %318 = getelementptr inbounds %struct.OSQPWorkspace, ptr %317, i32 0, i32 4
  %319 = load ptr, ptr %318, align 8, !tbaa !48
  %320 = icmp ne ptr %319, null
  br i1 %320, label %321, label %325

321:                                              ; preds = %316
  %322 = load ptr, ptr %2, align 8, !tbaa !5
  %323 = getelementptr inbounds %struct.OSQPWorkspace, ptr %322, i32 0, i32 4
  %324 = load ptr, ptr %323, align 8, !tbaa !48
  call void @free(ptr noundef %324) #4
  br label %325

325:                                              ; preds = %321, %316
  %326 = load ptr, ptr %2, align 8, !tbaa !5
  %327 = getelementptr inbounds %struct.OSQPWorkspace, ptr %326, i32 0, i32 6
  %328 = load ptr, ptr %327, align 8, !tbaa !49
  %329 = icmp ne ptr %328, null
  br i1 %329, label %330, label %334

330:                                              ; preds = %325
  %331 = load ptr, ptr %2, align 8, !tbaa !5
  %332 = getelementptr inbounds %struct.OSQPWorkspace, ptr %331, i32 0, i32 6
  %333 = load ptr, ptr %332, align 8, !tbaa !49
  call void @free(ptr noundef %333) #4
  br label %334

334:                                              ; preds = %330, %325
  %335 = load ptr, ptr %2, align 8, !tbaa !5
  %336 = getelementptr inbounds %struct.OSQPWorkspace, ptr %335, i32 0, i32 8
  %337 = load ptr, ptr %336, align 8, !tbaa !50
  %338 = icmp ne ptr %337, null
  br i1 %338, label %339, label %343

339:                                              ; preds = %334
  %340 = load ptr, ptr %2, align 8, !tbaa !5
  %341 = getelementptr inbounds %struct.OSQPWorkspace, ptr %340, i32 0, i32 8
  %342 = load ptr, ptr %341, align 8, !tbaa !50
  call void @free(ptr noundef %342) #4
  br label %343

343:                                              ; preds = %339, %334
  %344 = load ptr, ptr %2, align 8, !tbaa !5
  %345 = getelementptr inbounds %struct.OSQPWorkspace, ptr %344, i32 0, i32 9
  %346 = load ptr, ptr %345, align 8, !tbaa !51
  %347 = icmp ne ptr %346, null
  br i1 %347, label %348, label %352

348:                                              ; preds = %343
  %349 = load ptr, ptr %2, align 8, !tbaa !5
  %350 = getelementptr inbounds %struct.OSQPWorkspace, ptr %349, i32 0, i32 9
  %351 = load ptr, ptr %350, align 8, !tbaa !51
  call void @free(ptr noundef %351) #4
  br label %352

352:                                              ; preds = %348, %343
  %353 = load ptr, ptr %2, align 8, !tbaa !5
  %354 = getelementptr inbounds %struct.OSQPWorkspace, ptr %353, i32 0, i32 10
  %355 = load ptr, ptr %354, align 8, !tbaa !52
  %356 = icmp ne ptr %355, null
  br i1 %356, label %357, label %361

357:                                              ; preds = %352
  %358 = load ptr, ptr %2, align 8, !tbaa !5
  %359 = getelementptr inbounds %struct.OSQPWorkspace, ptr %358, i32 0, i32 10
  %360 = load ptr, ptr %359, align 8, !tbaa !52
  call void @free(ptr noundef %360) #4
  br label %361

361:                                              ; preds = %357, %352
  %362 = load ptr, ptr %2, align 8, !tbaa !5
  %363 = getelementptr inbounds %struct.OSQPWorkspace, ptr %362, i32 0, i32 11
  %364 = load ptr, ptr %363, align 8, !tbaa !53
  %365 = icmp ne ptr %364, null
  br i1 %365, label %366, label %370

366:                                              ; preds = %361
  %367 = load ptr, ptr %2, align 8, !tbaa !5
  %368 = getelementptr inbounds %struct.OSQPWorkspace, ptr %367, i32 0, i32 11
  %369 = load ptr, ptr %368, align 8, !tbaa !53
  call void @free(ptr noundef %369) #4
  br label %370

370:                                              ; preds = %366, %361
  %371 = load ptr, ptr %2, align 8, !tbaa !5
  %372 = getelementptr inbounds %struct.OSQPWorkspace, ptr %371, i32 0, i32 7
  %373 = load ptr, ptr %372, align 8, !tbaa !54
  %374 = icmp ne ptr %373, null
  br i1 %374, label %375, label %379

375:                                              ; preds = %370
  %376 = load ptr, ptr %2, align 8, !tbaa !5
  %377 = getelementptr inbounds %struct.OSQPWorkspace, ptr %376, i32 0, i32 7
  %378 = load ptr, ptr %377, align 8, !tbaa !54
  call void @free(ptr noundef %378) #4
  br label %379

379:                                              ; preds = %375, %370
  %380 = load ptr, ptr %2, align 8, !tbaa !5
  %381 = getelementptr inbounds %struct.OSQPWorkspace, ptr %380, i32 0, i32 12
  %382 = load ptr, ptr %381, align 8, !tbaa !55
  %383 = icmp ne ptr %382, null
  br i1 %383, label %384, label %388

384:                                              ; preds = %379
  %385 = load ptr, ptr %2, align 8, !tbaa !5
  %386 = getelementptr inbounds %struct.OSQPWorkspace, ptr %385, i32 0, i32 12
  %387 = load ptr, ptr %386, align 8, !tbaa !55
  call void @free(ptr noundef %387) #4
  br label %388

388:                                              ; preds = %384, %379
  %389 = load ptr, ptr %2, align 8, !tbaa !5
  %390 = getelementptr inbounds %struct.OSQPWorkspace, ptr %389, i32 0, i32 13
  %391 = load ptr, ptr %390, align 8, !tbaa !56
  %392 = icmp ne ptr %391, null
  br i1 %392, label %393, label %397

393:                                              ; preds = %388
  %394 = load ptr, ptr %2, align 8, !tbaa !5
  %395 = getelementptr inbounds %struct.OSQPWorkspace, ptr %394, i32 0, i32 13
  %396 = load ptr, ptr %395, align 8, !tbaa !56
  call void @free(ptr noundef %396) #4
  br label %397

397:                                              ; preds = %393, %388
  %398 = load ptr, ptr %2, align 8, !tbaa !5
  %399 = getelementptr inbounds %struct.OSQPWorkspace, ptr %398, i32 0, i32 14
  %400 = load ptr, ptr %399, align 8, !tbaa !57
  %401 = icmp ne ptr %400, null
  br i1 %401, label %402, label %406

402:                                              ; preds = %397
  %403 = load ptr, ptr %2, align 8, !tbaa !5
  %404 = getelementptr inbounds %struct.OSQPWorkspace, ptr %403, i32 0, i32 14
  %405 = load ptr, ptr %404, align 8, !tbaa !57
  call void @free(ptr noundef %405) #4
  br label %406

406:                                              ; preds = %402, %397
  %407 = load ptr, ptr %2, align 8, !tbaa !5
  %408 = getelementptr inbounds %struct.OSQPWorkspace, ptr %407, i32 0, i32 15
  %409 = load ptr, ptr %408, align 8, !tbaa !58
  %410 = icmp ne ptr %409, null
  br i1 %410, label %411, label %415

411:                                              ; preds = %406
  %412 = load ptr, ptr %2, align 8, !tbaa !5
  %413 = getelementptr inbounds %struct.OSQPWorkspace, ptr %412, i32 0, i32 15
  %414 = load ptr, ptr %413, align 8, !tbaa !58
  call void @free(ptr noundef %414) #4
  br label %415

415:                                              ; preds = %411, %406
  %416 = load ptr, ptr %2, align 8, !tbaa !5
  %417 = getelementptr inbounds %struct.OSQPWorkspace, ptr %416, i32 0, i32 16
  %418 = load ptr, ptr %417, align 8, !tbaa !59
  %419 = icmp ne ptr %418, null
  br i1 %419, label %420, label %424

420:                                              ; preds = %415
  %421 = load ptr, ptr %2, align 8, !tbaa !5
  %422 = getelementptr inbounds %struct.OSQPWorkspace, ptr %421, i32 0, i32 16
  %423 = load ptr, ptr %422, align 8, !tbaa !59
  call void @free(ptr noundef %423) #4
  br label %424

424:                                              ; preds = %420, %415
  %425 = load ptr, ptr %2, align 8, !tbaa !5
  %426 = getelementptr inbounds %struct.OSQPWorkspace, ptr %425, i32 0, i32 17
  %427 = load ptr, ptr %426, align 8, !tbaa !60
  %428 = icmp ne ptr %427, null
  br i1 %428, label %429, label %433

429:                                              ; preds = %424
  %430 = load ptr, ptr %2, align 8, !tbaa !5
  %431 = getelementptr inbounds %struct.OSQPWorkspace, ptr %430, i32 0, i32 17
  %432 = load ptr, ptr %431, align 8, !tbaa !60
  call void @free(ptr noundef %432) #4
  br label %433

433:                                              ; preds = %429, %424
  %434 = load ptr, ptr %2, align 8, !tbaa !5
  %435 = getelementptr inbounds %struct.OSQPWorkspace, ptr %434, i32 0, i32 18
  %436 = load ptr, ptr %435, align 8, !tbaa !61
  %437 = icmp ne ptr %436, null
  br i1 %437, label %438, label %442

438:                                              ; preds = %433
  %439 = load ptr, ptr %2, align 8, !tbaa !5
  %440 = getelementptr inbounds %struct.OSQPWorkspace, ptr %439, i32 0, i32 18
  %441 = load ptr, ptr %440, align 8, !tbaa !61
  call void @free(ptr noundef %441) #4
  br label %442

442:                                              ; preds = %438, %433
  %443 = load ptr, ptr %2, align 8, !tbaa !5
  %444 = getelementptr inbounds %struct.OSQPWorkspace, ptr %443, i32 0, i32 19
  %445 = load ptr, ptr %444, align 8, !tbaa !62
  %446 = icmp ne ptr %445, null
  br i1 %446, label %447, label %451

447:                                              ; preds = %442
  %448 = load ptr, ptr %2, align 8, !tbaa !5
  %449 = getelementptr inbounds %struct.OSQPWorkspace, ptr %448, i32 0, i32 19
  %450 = load ptr, ptr %449, align 8, !tbaa !62
  call void @free(ptr noundef %450) #4
  br label %451

451:                                              ; preds = %447, %442
  %452 = load ptr, ptr %2, align 8, !tbaa !5
  %453 = getelementptr inbounds %struct.OSQPWorkspace, ptr %452, i32 0, i32 23
  %454 = load ptr, ptr %453, align 8, !tbaa !19
  %455 = icmp ne ptr %454, null
  br i1 %455, label %456, label %460

456:                                              ; preds = %451
  %457 = load ptr, ptr %2, align 8, !tbaa !5
  %458 = getelementptr inbounds %struct.OSQPWorkspace, ptr %457, i32 0, i32 23
  %459 = load ptr, ptr %458, align 8, !tbaa !19
  call void @free(ptr noundef %459) #4
  br label %460

460:                                              ; preds = %456, %451
  %461 = load ptr, ptr %2, align 8, !tbaa !5
  %462 = getelementptr inbounds %struct.OSQPWorkspace, ptr %461, i32 0, i32 25
  %463 = load ptr, ptr %462, align 8, !tbaa !63
  %464 = icmp ne ptr %463, null
  br i1 %464, label %465, label %495

465:                                              ; preds = %460
  %466 = load ptr, ptr %2, align 8, !tbaa !5
  %467 = getelementptr inbounds %struct.OSQPWorkspace, ptr %466, i32 0, i32 25
  %468 = load ptr, ptr %467, align 8, !tbaa !63
  %469 = getelementptr inbounds %struct.OSQPSolution, ptr %468, i32 0, i32 0
  %470 = load ptr, ptr %469, align 8, !tbaa !64
  %471 = icmp ne ptr %470, null
  br i1 %471, label %472, label %478

472:                                              ; preds = %465
  %473 = load ptr, ptr %2, align 8, !tbaa !5
  %474 = getelementptr inbounds %struct.OSQPWorkspace, ptr %473, i32 0, i32 25
  %475 = load ptr, ptr %474, align 8, !tbaa !63
  %476 = getelementptr inbounds %struct.OSQPSolution, ptr %475, i32 0, i32 0
  %477 = load ptr, ptr %476, align 8, !tbaa !64
  call void @free(ptr noundef %477) #4
  br label %478

478:                                              ; preds = %472, %465
  %479 = load ptr, ptr %2, align 8, !tbaa !5
  %480 = getelementptr inbounds %struct.OSQPWorkspace, ptr %479, i32 0, i32 25
  %481 = load ptr, ptr %480, align 8, !tbaa !63
  %482 = getelementptr inbounds %struct.OSQPSolution, ptr %481, i32 0, i32 1
  %483 = load ptr, ptr %482, align 8, !tbaa !66
  %484 = icmp ne ptr %483, null
  br i1 %484, label %485, label %491

485:                                              ; preds = %478
  %486 = load ptr, ptr %2, align 8, !tbaa !5
  %487 = getelementptr inbounds %struct.OSQPWorkspace, ptr %486, i32 0, i32 25
  %488 = load ptr, ptr %487, align 8, !tbaa !63
  %489 = getelementptr inbounds %struct.OSQPSolution, ptr %488, i32 0, i32 1
  %490 = load ptr, ptr %489, align 8, !tbaa !66
  call void @free(ptr noundef %490) #4
  br label %491

491:                                              ; preds = %485, %478
  %492 = load ptr, ptr %2, align 8, !tbaa !5
  %493 = getelementptr inbounds %struct.OSQPWorkspace, ptr %492, i32 0, i32 25
  %494 = load ptr, ptr %493, align 8, !tbaa !63
  call void @free(ptr noundef %494) #4
  br label %495

495:                                              ; preds = %491, %460
  %496 = load ptr, ptr %2, align 8, !tbaa !5
  %497 = getelementptr inbounds %struct.OSQPWorkspace, ptr %496, i32 0, i32 26
  %498 = load ptr, ptr %497, align 8, !tbaa !67
  %499 = icmp ne ptr %498, null
  br i1 %499, label %500, label %504

500:                                              ; preds = %495
  %501 = load ptr, ptr %2, align 8, !tbaa !5
  %502 = getelementptr inbounds %struct.OSQPWorkspace, ptr %501, i32 0, i32 26
  %503 = load ptr, ptr %502, align 8, !tbaa !67
  call void @free(ptr noundef %503) #4
  br label %504

504:                                              ; preds = %500, %495
  %505 = load ptr, ptr %2, align 8, !tbaa !5
  %506 = getelementptr inbounds %struct.OSQPWorkspace, ptr %505, i32 0, i32 27
  %507 = load ptr, ptr %506, align 8, !tbaa !68
  %508 = icmp ne ptr %507, null
  br i1 %508, label %509, label %513

509:                                              ; preds = %504
  %510 = load ptr, ptr %2, align 8, !tbaa !5
  %511 = getelementptr inbounds %struct.OSQPWorkspace, ptr %510, i32 0, i32 27
  %512 = load ptr, ptr %511, align 8, !tbaa !68
  call void @free(ptr noundef %512) #4
  br label %513

513:                                              ; preds = %509, %504
  %514 = load ptr, ptr %2, align 8, !tbaa !5
  call void @free(ptr noundef %514) #4
  br label %515

515:                                              ; preds = %513, %1
  %516 = load i64, ptr %3, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #4
  ret i64 %516
}

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

declare void @csc_spfree(ptr noundef) #2

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

declare i64 @unload_linsys_solver(i32 noundef) #2

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

!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/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long long", !7, i64 0}
!11 = !{!12, !6, i64 0}
!12 = !{!"", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88, !6, i64 96, !6, i64 104, !6, i64 112, !6, i64 120, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !6, i64 200, !6, i64 208, !6, i64 216, !10, i64 224, !10, i64 232}
!13 = !{!14, !6, i64 16}
!14 = !{!"", !10, i64 0, !10, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48}
!15 = !{!14, !6, i64 24}
!16 = !{!14, !6, i64 32}
!17 = !{!14, !6, i64 40}
!18 = !{!14, !6, i64 48}
!19 = !{!12, !6, i64 184}
!20 = !{!21, !10, i64 16}
!21 = !{!"", !22, i64 0, !22, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !22, i64 40, !22, i64 48, !10, i64 56, !22, i64 64, !22, i64 72, !22, i64 80, !22, i64 88, !22, i64 96, !23, i64 104, !22, i64 112, !10, i64 120, !10, i64 128, !10, i64 136, !10, i64 144, !10, i64 152, !10, i64 160, !22, i64 168}
!22 = !{!"double", !7, i64 0}
!23 = !{!"int", !7, i64 0}
!24 = !{!12, !6, i64 192}
!25 = !{!26, !6, i64 8}
!26 = !{!"", !22, i64 0, !6, i64 8, !6, i64 16, !22, i64 24, !6, i64 32, !6, i64 40}
!27 = !{!26, !6, i64 32}
!28 = !{!26, !6, i64 16}
!29 = !{!26, !6, i64 40}
!30 = !{!12, !6, i64 160}
!31 = !{!12, !6, i64 168}
!32 = !{!12, !6, i64 176}
!33 = !{!12, !6, i64 8}
!34 = !{!35, !6, i64 16}
!35 = !{!"linsys_solver", !23, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !10, i64 40}
!36 = !{!21, !23, i64 104}
!37 = !{!12, !6, i64 16}
!38 = !{!39, !6, i64 40}
!39 = !{!"", !6, i64 0, !10, i64 8, !10, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !22, i64 80, !22, i64 88, !22, i64 96}
!40 = !{!39, !6, i64 48}
!41 = !{!39, !6, i64 24}
!42 = !{!39, !6, i64 32}
!43 = !{!39, !6, i64 56}
!44 = !{!39, !6, i64 64}
!45 = !{!39, !6, i64 72}
!46 = !{!12, !6, i64 40}
!47 = !{!12, !6, i64 24}
!48 = !{!12, !6, i64 32}
!49 = !{!12, !6, i64 48}
!50 = !{!12, !6, i64 64}
!51 = !{!12, !6, i64 72}
!52 = !{!12, !6, i64 80}
!53 = !{!12, !6, i64 88}
!54 = !{!12, !6, i64 56}
!55 = !{!12, !6, i64 96}
!56 = !{!12, !6, i64 104}
!57 = !{!12, !6, i64 112}
!58 = !{!12, !6, i64 120}
!59 = !{!12, !6, i64 128}
!60 = !{!12, !6, i64 136}
!61 = !{!12, !6, i64 144}
!62 = !{!12, !6, i64 152}
!63 = !{!12, !6, i64 200}
!64 = !{!65, !6, i64 0}
!65 = !{!"", !6, i64 0, !6, i64 8}
!66 = !{!65, !6, i64 8}
!67 = !{!12, !6, i64 208}
!68 = !{!12, !6, i64 216}


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

; Function Attrs: nounwind uwtable
define dso_local i64 @osqp_cleanup(ptr noundef %0) local_unnamed_addr #0 {
  %.not = icmp eq ptr %0, null
  br i1 %.not, label %212, label %2

2:                                                ; preds = %1
  %3 = load ptr, ptr %0, align 8, !tbaa !5
  %.not144 = icmp eq ptr %3, null
  br i1 %.not144, label %30, label %4

4:                                                ; preds = %2
  %5 = getelementptr inbounds i8, ptr %3, i64 16
  %6 = load ptr, ptr %5, align 8, !tbaa !11
  %.not145 = icmp eq ptr %6, null
  br i1 %.not145, label %8, label %7

7:                                                ; preds = %4
  tail call void @csc_spfree(ptr noundef nonnull %6) #3
  %.pre = load ptr, ptr %0, align 8, !tbaa !5
  br label %8

8:                                                ; preds = %7, %4
  %9 = phi ptr [ %.pre, %7 ], [ %3, %4 ]
  %10 = getelementptr inbounds i8, ptr %9, i64 24
  %11 = load ptr, ptr %10, align 8, !tbaa !13
  %.not146 = icmp eq ptr %11, null
  br i1 %.not146, label %13, label %12

12:                                               ; preds = %8
  tail call void @csc_spfree(ptr noundef nonnull %11) #3
  %.pre191 = load ptr, ptr %0, align 8, !tbaa !5
  br label %13

13:                                               ; preds = %12, %8
  %14 = phi ptr [ %.pre191, %12 ], [ %9, %8 ]
  %15 = getelementptr inbounds i8, ptr %14, i64 32
  %16 = load ptr, ptr %15, align 8, !tbaa !14
  %.not147 = icmp eq ptr %16, null
  br i1 %.not147, label %18, label %17

17:                                               ; preds = %13
  tail call void @free(ptr noundef nonnull %16) #3
  %.pre192 = load ptr, ptr %0, align 8, !tbaa !5
  br label %18

18:                                               ; preds = %17, %13
  %19 = phi ptr [ %.pre192, %17 ], [ %14, %13 ]
  %20 = getelementptr inbounds i8, ptr %19, i64 40
  %21 = load ptr, ptr %20, align 8, !tbaa !15
  %.not148 = icmp eq ptr %21, null
  br i1 %.not148, label %23, label %22

22:                                               ; preds = %18
  tail call void @free(ptr noundef nonnull %21) #3
  %.pre193 = load ptr, ptr %0, align 8, !tbaa !5
  br label %23

23:                                               ; preds = %22, %18
  %24 = phi ptr [ %.pre193, %22 ], [ %19, %18 ]
  %25 = getelementptr inbounds i8, ptr %24, i64 48
  %26 = load ptr, ptr %25, align 8, !tbaa !16
  %.not149 = icmp eq ptr %26, null
  br i1 %.not149, label %28, label %27

27:                                               ; preds = %23
  tail call void @free(ptr noundef nonnull %26) #3
  %.pre194 = load ptr, ptr %0, align 8, !tbaa !5
  br label %28

28:                                               ; preds = %27, %23
  %29 = phi ptr [ %.pre194, %27 ], [ %24, %23 ]
  tail call void @free(ptr noundef %29) #3
  br label %30

30:                                               ; preds = %28, %2
  %31 = getelementptr inbounds i8, ptr %0, i64 184
  %32 = load ptr, ptr %31, align 8, !tbaa !17
  %33 = getelementptr inbounds i8, ptr %32, i64 16
  %34 = load i64, ptr %33, align 8, !tbaa !18
  %.not150 = icmp eq i64 %34, 0
  br i1 %.not150, label %69, label %35

35:                                               ; preds = %30
  %36 = getelementptr inbounds i8, ptr %0, i64 192
  %37 = load ptr, ptr %36, align 8, !tbaa !22
  %38 = getelementptr inbounds i8, ptr %37, i64 8
  %39 = load ptr, ptr %38, align 8, !tbaa !23
  %.not151 = icmp eq ptr %39, null
  br i1 %.not151, label %41, label %40

40:                                               ; preds = %35
  tail call void @free(ptr noundef nonnull %39) #3
  %.pre195 = load ptr, ptr %36, align 8, !tbaa !22
  br label %41

41:                                               ; preds = %40, %35
  %42 = phi ptr [ %.pre195, %40 ], [ %37, %35 ]
  %43 = getelementptr inbounds i8, ptr %42, i64 32
  %44 = load ptr, ptr %43, align 8, !tbaa !25
  %.not152 = icmp eq ptr %44, null
  br i1 %.not152, label %46, label %45

45:                                               ; preds = %41
  tail call void @free(ptr noundef nonnull %44) #3
  %.pre196 = load ptr, ptr %36, align 8, !tbaa !22
  br label %46

46:                                               ; preds = %45, %41
  %47 = phi ptr [ %.pre196, %45 ], [ %42, %41 ]
  %48 = getelementptr inbounds i8, ptr %47, i64 16
  %49 = load ptr, ptr %48, align 8, !tbaa !26
  %.not153 = icmp eq ptr %49, null
  br i1 %.not153, label %51, label %50

50:                                               ; preds = %46
  tail call void @free(ptr noundef nonnull %49) #3
  %.pre197 = load ptr, ptr %36, align 8, !tbaa !22
  br label %51

51:                                               ; preds = %50, %46
  %52 = phi ptr [ %.pre197, %50 ], [ %47, %46 ]
  %53 = getelementptr inbounds i8, ptr %52, i64 40
  %54 = load ptr, ptr %53, align 8, !tbaa !27
  %.not154 = icmp eq ptr %54, null
  br i1 %.not154, label %56, label %55

55:                                               ; preds = %51
  tail call void @free(ptr noundef nonnull %54) #3
  %.pre198 = load ptr, ptr %36, align 8, !tbaa !22
  br label %56

56:                                               ; preds = %55, %51
  %57 = phi ptr [ %.pre198, %55 ], [ %52, %51 ]
  tail call void @free(ptr noundef %57) #3
  %58 = getelementptr inbounds i8, ptr %0, i64 160
  %59 = load ptr, ptr %58, align 8, !tbaa !28
  %.not155 = icmp eq ptr %59, null
  br i1 %.not155, label %61, label %60

60:                                               ; preds = %56
  tail call void @free(ptr noundef nonnull %59) #3
  br label %61

61:                                               ; preds = %60, %56
  %62 = getelementptr inbounds i8, ptr %0, i64 168
  %63 = load ptr, ptr %62, align 8, !tbaa !29
  %.not156 = icmp eq ptr %63, null
  br i1 %.not156, label %65, label %64

64:                                               ; preds = %61
  tail call void @free(ptr noundef nonnull %63) #3
  br label %65

65:                                               ; preds = %64, %61
  %66 = getelementptr inbounds i8, ptr %0, i64 176
  %67 = load ptr, ptr %66, align 8, !tbaa !30
  %.not157 = icmp eq ptr %67, null
  br i1 %.not157, label %69, label %68

68:                                               ; preds = %65
  tail call void @free(ptr noundef nonnull %67) #3
  br label %69

69:                                               ; preds = %65, %68, %30
  %70 = getelementptr inbounds i8, ptr %0, i64 8
  %71 = load ptr, ptr %70, align 8, !tbaa !31
  %.not158 = icmp eq ptr %71, null
  br i1 %.not158, label %76, label %72

72:                                               ; preds = %69
  %73 = getelementptr inbounds i8, ptr %71, i64 16
  %74 = load ptr, ptr %73, align 8, !tbaa !32
  %.not159 = icmp eq ptr %74, null
  br i1 %.not159, label %76, label %75

75:                                               ; preds = %72
  tail call void %74(ptr noundef nonnull %71) #3
  br label %76

76:                                               ; preds = %72, %75, %69
  %77 = load ptr, ptr %31, align 8, !tbaa !17
  %78 = getelementptr inbounds i8, ptr %77, i64 104
  %79 = load i32, ptr %78, align 8, !tbaa !34
  %80 = tail call i64 @unload_linsys_solver(i32 noundef %79) #3
  %81 = getelementptr inbounds i8, ptr %0, i64 16
  %82 = load ptr, ptr %81, align 8, !tbaa !35
  %.not160 = icmp eq ptr %82, null
  br i1 %.not160, label %119, label %83

83:                                               ; preds = %76
  %84 = getelementptr inbounds i8, ptr %82, i64 40
  %85 = load ptr, ptr %84, align 8, !tbaa !36
  %.not161 = icmp eq ptr %85, null
  br i1 %.not161, label %87, label %86

86:                                               ; preds = %83
  tail call void @free(ptr noundef nonnull %85) #3
  %.pre199 = load ptr, ptr %81, align 8, !tbaa !35
  br label %87

87:                                               ; preds = %86, %83
  %88 = phi ptr [ %.pre199, %86 ], [ %82, %83 ]
  %89 = getelementptr inbounds i8, ptr %88, i64 48
  %90 = load ptr, ptr %89, align 8, !tbaa !38
  %.not162 = icmp eq ptr %90, null
  br i1 %.not162, label %92, label %91

91:                                               ; preds = %87
  tail call void @free(ptr noundef nonnull %90) #3
  %.pre200 = load ptr, ptr %81, align 8, !tbaa !35
  br label %92

92:                                               ; preds = %91, %87
  %93 = phi ptr [ %.pre200, %91 ], [ %88, %87 ]
  %94 = getelementptr inbounds i8, ptr %93, i64 24
  %95 = load ptr, ptr %94, align 8, !tbaa !39
  %.not163 = icmp eq ptr %95, null
  br i1 %.not163, label %97, label %96

96:                                               ; preds = %92
  tail call void @free(ptr noundef nonnull %95) #3
  %.pre201 = load ptr, ptr %81, align 8, !tbaa !35
  br label %97

97:                                               ; preds = %96, %92
  %98 = phi ptr [ %.pre201, %96 ], [ %93, %92 ]
  %99 = getelementptr inbounds i8, ptr %98, i64 32
  %100 = load ptr, ptr %99, align 8, !tbaa !40
  %.not164 = icmp eq ptr %100, null
  br i1 %.not164, label %102, label %101

101:                                              ; preds = %97
  tail call void @free(ptr noundef nonnull %100) #3
  %.pre202 = load ptr, ptr %81, align 8, !tbaa !35
  br label %102

102:                                              ; preds = %101, %97
  %103 = phi ptr [ %.pre202, %101 ], [ %98, %97 ]
  %104 = getelementptr inbounds i8, ptr %103, i64 56
  %105 = load ptr, ptr %104, align 8, !tbaa !41
  %.not165 = icmp eq ptr %105, null
  br i1 %.not165, label %107, label %106

106:                                              ; preds = %102
  tail call void @free(ptr noundef nonnull %105) #3
  %.pre203 = load ptr, ptr %81, align 8, !tbaa !35
  br label %107

107:                                              ; preds = %106, %102
  %108 = phi ptr [ %.pre203, %106 ], [ %103, %102 ]
  %109 = getelementptr inbounds i8, ptr %108, i64 64
  %110 = load ptr, ptr %109, align 8, !tbaa !42
  %.not166 = icmp eq ptr %110, null
  br i1 %.not166, label %112, label %111

111:                                              ; preds = %107
  tail call void @free(ptr noundef nonnull %110) #3
  %.pre204 = load ptr, ptr %81, align 8, !tbaa !35
  br label %112

112:                                              ; preds = %111, %107
  %113 = phi ptr [ %.pre204, %111 ], [ %108, %107 ]
  %114 = getelementptr inbounds i8, ptr %113, i64 72
  %115 = load ptr, ptr %114, align 8, !tbaa !43
  %.not167 = icmp eq ptr %115, null
  br i1 %.not167, label %117, label %116

116:                                              ; preds = %112
  tail call void @free(ptr noundef nonnull %115) #3
  %.pre205 = load ptr, ptr %81, align 8, !tbaa !35
  br label %117

117:                                              ; preds = %116, %112
  %118 = phi ptr [ %.pre205, %116 ], [ %113, %112 ]
  tail call void @free(ptr noundef %118) #3
  br label %119

119:                                              ; preds = %117, %76
  %120 = getelementptr inbounds i8, ptr %0, i64 40
  %121 = load ptr, ptr %120, align 8, !tbaa !44
  %.not168 = icmp eq ptr %121, null
  br i1 %.not168, label %123, label %122

122:                                              ; preds = %119
  tail call void @free(ptr noundef nonnull %121) #3
  br label %123

123:                                              ; preds = %122, %119
  %124 = getelementptr inbounds i8, ptr %0, i64 24
  %125 = load ptr, ptr %124, align 8, !tbaa !45
  %.not169 = icmp eq ptr %125, null
  br i1 %.not169, label %127, label %126

126:                                              ; preds = %123
  tail call void @free(ptr noundef nonnull %125) #3
  br label %127

127:                                              ; preds = %126, %123
  %128 = getelementptr inbounds i8, ptr %0, i64 32
  %129 = load ptr, ptr %128, align 8, !tbaa !46
  %.not170 = icmp eq ptr %129, null
  br i1 %.not170, label %131, label %130

130:                                              ; preds = %127
  tail call void @free(ptr noundef nonnull %129) #3
  br label %131

131:                                              ; preds = %130, %127
  %132 = getelementptr inbounds i8, ptr %0, i64 48
  %133 = load ptr, ptr %132, align 8, !tbaa !47
  %.not171 = icmp eq ptr %133, null
  br i1 %.not171, label %135, label %134

134:                                              ; preds = %131
  tail call void @free(ptr noundef nonnull %133) #3
  br label %135

135:                                              ; preds = %134, %131
  %136 = getelementptr inbounds i8, ptr %0, i64 64
  %137 = load ptr, ptr %136, align 8, !tbaa !48
  %.not172 = icmp eq ptr %137, null
  br i1 %.not172, label %139, label %138

138:                                              ; preds = %135
  tail call void @free(ptr noundef nonnull %137) #3
  br label %139

139:                                              ; preds = %138, %135
  %140 = getelementptr inbounds i8, ptr %0, i64 72
  %141 = load ptr, ptr %140, align 8, !tbaa !49
  %.not173 = icmp eq ptr %141, null
  br i1 %.not173, label %143, label %142

142:                                              ; preds = %139
  tail call void @free(ptr noundef nonnull %141) #3
  br label %143

143:                                              ; preds = %142, %139
  %144 = getelementptr inbounds i8, ptr %0, i64 80
  %145 = load ptr, ptr %144, align 8, !tbaa !50
  %.not174 = icmp eq ptr %145, null
  br i1 %.not174, label %147, label %146

146:                                              ; preds = %143
  tail call void @free(ptr noundef nonnull %145) #3
  br label %147

147:                                              ; preds = %146, %143
  %148 = getelementptr inbounds i8, ptr %0, i64 88
  %149 = load ptr, ptr %148, align 8, !tbaa !51
  %.not175 = icmp eq ptr %149, null
  br i1 %.not175, label %151, label %150

150:                                              ; preds = %147
  tail call void @free(ptr noundef nonnull %149) #3
  br label %151

151:                                              ; preds = %150, %147
  %152 = getelementptr inbounds i8, ptr %0, i64 56
  %153 = load ptr, ptr %152, align 8, !tbaa !52
  %.not176 = icmp eq ptr %153, null
  br i1 %.not176, label %155, label %154

154:                                              ; preds = %151
  tail call void @free(ptr noundef nonnull %153) #3
  br label %155

155:                                              ; preds = %154, %151
  %156 = getelementptr inbounds i8, ptr %0, i64 96
  %157 = load ptr, ptr %156, align 8, !tbaa !53
  %.not177 = icmp eq ptr %157, null
  br i1 %.not177, label %159, label %158

158:                                              ; preds = %155
  tail call void @free(ptr noundef nonnull %157) #3
  br label %159

159:                                              ; preds = %158, %155
  %160 = getelementptr inbounds i8, ptr %0, i64 104
  %161 = load ptr, ptr %160, align 8, !tbaa !54
  %.not178 = icmp eq ptr %161, null
  br i1 %.not178, label %163, label %162

162:                                              ; preds = %159
  tail call void @free(ptr noundef nonnull %161) #3
  br label %163

163:                                              ; preds = %162, %159
  %164 = getelementptr inbounds i8, ptr %0, i64 112
  %165 = load ptr, ptr %164, align 8, !tbaa !55
  %.not179 = icmp eq ptr %165, null
  br i1 %.not179, label %167, label %166

166:                                              ; preds = %163
  tail call void @free(ptr noundef nonnull %165) #3
  br label %167

167:                                              ; preds = %166, %163
  %168 = getelementptr inbounds i8, ptr %0, i64 120
  %169 = load ptr, ptr %168, align 8, !tbaa !56
  %.not180 = icmp eq ptr %169, null
  br i1 %.not180, label %171, label %170

170:                                              ; preds = %167
  tail call void @free(ptr noundef nonnull %169) #3
  br label %171

171:                                              ; preds = %170, %167
  %172 = getelementptr inbounds i8, ptr %0, i64 128
  %173 = load ptr, ptr %172, align 8, !tbaa !57
  %.not181 = icmp eq ptr %173, null
  br i1 %.not181, label %175, label %174

174:                                              ; preds = %171
  tail call void @free(ptr noundef nonnull %173) #3
  br label %175

175:                                              ; preds = %174, %171
  %176 = getelementptr inbounds i8, ptr %0, i64 136
  %177 = load ptr, ptr %176, align 8, !tbaa !58
  %.not182 = icmp eq ptr %177, null
  br i1 %.not182, label %179, label %178

178:                                              ; preds = %175
  tail call void @free(ptr noundef nonnull %177) #3
  br label %179

179:                                              ; preds = %178, %175
  %180 = getelementptr inbounds i8, ptr %0, i64 144
  %181 = load ptr, ptr %180, align 8, !tbaa !59
  %.not183 = icmp eq ptr %181, null
  br i1 %.not183, label %183, label %182

182:                                              ; preds = %179
  tail call void @free(ptr noundef nonnull %181) #3
  br label %183

183:                                              ; preds = %182, %179
  %184 = getelementptr inbounds i8, ptr %0, i64 152
  %185 = load ptr, ptr %184, align 8, !tbaa !60
  %.not184 = icmp eq ptr %185, null
  br i1 %.not184, label %187, label %186

186:                                              ; preds = %183
  tail call void @free(ptr noundef nonnull %185) #3
  br label %187

187:                                              ; preds = %186, %183
  %188 = load ptr, ptr %31, align 8, !tbaa !17
  %.not185 = icmp eq ptr %188, null
  br i1 %.not185, label %190, label %189

189:                                              ; preds = %187
  tail call void @free(ptr noundef nonnull %188) #3
  br label %190

190:                                              ; preds = %189, %187
  %191 = getelementptr inbounds i8, ptr %0, i64 200
  %192 = load ptr, ptr %191, align 8, !tbaa !61
  %.not186 = icmp eq ptr %192, null
  br i1 %.not186, label %203, label %193

193:                                              ; preds = %190
  %194 = load ptr, ptr %192, align 8, !tbaa !62
  %.not187 = icmp eq ptr %194, null
  br i1 %.not187, label %196, label %195

195:                                              ; preds = %193
  tail call void @free(ptr noundef nonnull %194) #3
  %.pre206 = load ptr, ptr %191, align 8, !tbaa !61
  br label %196

196:                                              ; preds = %195, %193
  %197 = phi ptr [ %.pre206, %195 ], [ %192, %193 ]
  %198 = getelementptr inbounds i8, ptr %197, i64 8
  %199 = load ptr, ptr %198, align 8, !tbaa !64
  %.not188 = icmp eq ptr %199, null
  br i1 %.not188, label %201, label %200

200:                                              ; preds = %196
  tail call void @free(ptr noundef nonnull %199) #3
  %.pre207 = load ptr, ptr %191, align 8, !tbaa !61
  br label %201

201:                                              ; preds = %200, %196
  %202 = phi ptr [ %.pre207, %200 ], [ %197, %196 ]
  tail call void @free(ptr noundef %202) #3
  br label %203

203:                                              ; preds = %201, %190
  %204 = getelementptr inbounds i8, ptr %0, i64 208
  %205 = load ptr, ptr %204, align 8, !tbaa !65
  %.not189 = icmp eq ptr %205, null
  br i1 %.not189, label %207, label %206

206:                                              ; preds = %203
  tail call void @free(ptr noundef nonnull %205) #3
  br label %207

207:                                              ; preds = %206, %203
  %208 = getelementptr inbounds i8, ptr %0, i64 216
  %209 = load ptr, ptr %208, align 8, !tbaa !66
  %.not190 = icmp eq ptr %209, null
  br i1 %.not190, label %211, label %210

210:                                              ; preds = %207
  tail call void @free(ptr noundef nonnull %209) #3
  br label %211

211:                                              ; preds = %210, %207
  tail call void @free(ptr noundef nonnull %0) #3
  br label %212

212:                                              ; preds = %211, %1
  %.0 = phi i64 [ %80, %211 ], [ 0, %1 ]
  ret i64 %.0
}

declare void @csc_spfree(ptr noundef) local_unnamed_addr #1

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

declare i64 @unload_linsys_solver(i32 noundef) local_unnamed_addr #1

attributes #0 = { 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 #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 = { 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 #3 = { 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 = !{!"", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !7, i64 64, !7, i64 72, !7, i64 80, !7, i64 88, !7, i64 96, !7, i64 104, !7, i64 112, !7, i64 120, !7, i64 128, !7, i64 136, !7, i64 144, !7, i64 152, !7, i64 160, !7, i64 168, !7, i64 176, !7, i64 184, !7, i64 192, !7, i64 200, !7, i64 208, !7, i64 216, !10, i64 224, !10, i64 232}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"long long", !8, i64 0}
!11 = !{!12, !7, i64 16}
!12 = !{!"", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48}
!13 = !{!12, !7, i64 24}
!14 = !{!12, !7, i64 32}
!15 = !{!12, !7, i64 40}
!16 = !{!12, !7, i64 48}
!17 = !{!6, !7, i64 184}
!18 = !{!19, !10, i64 16}
!19 = !{!"", !20, i64 0, !20, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !20, i64 40, !20, i64 48, !10, i64 56, !20, i64 64, !20, i64 72, !20, i64 80, !20, i64 88, !20, i64 96, !21, i64 104, !20, i64 112, !10, i64 120, !10, i64 128, !10, i64 136, !10, i64 144, !10, i64 152, !10, i64 160, !20, i64 168}
!20 = !{!"double", !8, i64 0}
!21 = !{!"int", !8, i64 0}
!22 = !{!6, !7, i64 192}
!23 = !{!24, !7, i64 8}
!24 = !{!"", !20, i64 0, !7, i64 8, !7, i64 16, !20, i64 24, !7, i64 32, !7, i64 40}
!25 = !{!24, !7, i64 32}
!26 = !{!24, !7, i64 16}
!27 = !{!24, !7, i64 40}
!28 = !{!6, !7, i64 160}
!29 = !{!6, !7, i64 168}
!30 = !{!6, !7, i64 176}
!31 = !{!6, !7, i64 8}
!32 = !{!33, !7, i64 16}
!33 = !{!"linsys_solver", !21, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !10, i64 40}
!34 = !{!19, !21, i64 104}
!35 = !{!6, !7, i64 16}
!36 = !{!37, !7, i64 40}
!37 = !{!"", !7, i64 0, !10, i64 8, !10, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !7, i64 64, !7, i64 72, !20, i64 80, !20, i64 88, !20, i64 96}
!38 = !{!37, !7, i64 48}
!39 = !{!37, !7, i64 24}
!40 = !{!37, !7, i64 32}
!41 = !{!37, !7, i64 56}
!42 = !{!37, !7, i64 64}
!43 = !{!37, !7, i64 72}
!44 = !{!6, !7, i64 40}
!45 = !{!6, !7, i64 24}
!46 = !{!6, !7, i64 32}
!47 = !{!6, !7, i64 48}
!48 = !{!6, !7, i64 64}
!49 = !{!6, !7, i64 72}
!50 = !{!6, !7, i64 80}
!51 = !{!6, !7, i64 88}
!52 = !{!6, !7, i64 56}
!53 = !{!6, !7, i64 96}
!54 = !{!6, !7, i64 104}
!55 = !{!6, !7, i64 112}
!56 = !{!6, !7, i64 120}
!57 = !{!6, !7, i64 128}
!58 = !{!6, !7, i64 136}
!59 = !{!6, !7, i64 144}
!60 = !{!6, !7, i64 152}
!61 = !{!6, !7, i64 200}
!62 = !{!63, !7, i64 0}
!63 = !{!"", !7, i64 0, !7, i64 8}
!64 = !{!63, !7, i64 8}
!65 = !{!6, !7, i64 208}
!66 = !{!6, !7, i64 216}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,InferFunctionAttrsPass,InstCombinePass,SROAPass,SimplifyCFGPass,TailCallElimPass