; LLVM IR from Discngine/fpocket :: src (tpocket)

; 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.s_pocket = type { ptr, ptr, float, float, float, float, [3 x float], i32, i32, i32, i32 }
%struct.s_atm = type { i32, float, float, float, float, float, float, float, [5 x i8], [7 x i8], [16 x i8], [16 x i8], [3 x i8], [8 x i8], i32, i32, i32, i32, i32, i32, i32, float, float, float, float, float, float, float, i8, i8, float, float, float, float, i16, ptr, i32 }
%struct.c_lst_vertices = type { ptr, ptr, ptr, i64 }
%struct.node_vertice = type { ptr, ptr, ptr }
%struct.s_vvertice = type { i32, i32, i32, i32, i32, float, float, float, float, i32, i32, [4 x i32], [4 x ptr], [3 x float], float }
%struct.s_desc = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, i32, [20 x i32], i32, i32, i32, float, float, i32, i32, i32, i32, i32, [255 x i8], [255 x i8], [8 x i8] }

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

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

; Function Attrs: nounwind uwtable
define dso_local float @set_basic_overlap_volume(ptr noundef %0, i32 noundef %1, float noundef %2, ptr noundef %3, i32 noundef %4) #1 {
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca float, align 4
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca float, align 4
  %19 = alloca float, align 4
  %20 = alloca float, align 4
  %21 = alloca float, align 4
  %22 = alloca float, align 4
  %23 = alloca float, align 4
  %24 = alloca float, align 4
  %25 = alloca float, align 4
  %26 = alloca float, align 4
  %27 = alloca float, align 4
  %28 = alloca float, align 4
  %29 = alloca float, align 4
  %30 = alloca float, align 4
  %31 = alloca float, align 4
  %32 = alloca float, align 4
  %33 = alloca float, align 4
  %34 = alloca float, align 4
  %35 = alloca float, align 4
  %36 = alloca ptr, align 8
  %37 = alloca ptr, align 8
  store ptr %0, ptr %6, align 8, !tbaa !5
  store i32 %1, ptr %7, align 4, !tbaa !9
  store float %2, ptr %8, align 4, !tbaa !11
  store ptr %3, ptr %9, align 8, !tbaa !5
  store i32 %4, ptr %10, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #3
  %38 = load ptr, ptr %9, align 8, !tbaa !5
  %39 = getelementptr inbounds %struct.s_pocket, ptr %38, i32 0, i32 1
  %40 = load ptr, ptr %39, align 8, !tbaa !13
  store ptr %40, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #3
  store ptr null, ptr %12, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #3
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #3
  store i32 0, ptr %14, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #3
  store i32 0, ptr %15, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #3
  store i32 0, ptr %16, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #3
  store i32 0, ptr %17, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #3
  %41 = load i32, ptr %10, align 4, !tbaa !9
  %42 = sitofp i32 %41 to float
  %43 = fpext float %42 to double
  %44 = fdiv double 1.000000e+00, %43
  %45 = fptrunc double %44 to float
  store float %45, ptr %18, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #3
  store float 0.000000e+00, ptr %19, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #3
  store float 0.000000e+00, ptr %20, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #3
  store float 0.000000e+00, ptr %21, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #3
  store float 0.000000e+00, ptr %22, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #3
  store float 0.000000e+00, ptr %23, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #3
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #3
  store float 0.000000e+00, ptr %25, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #3
  store float 0.000000e+00, ptr %26, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #3
  store float 0.000000e+00, ptr %27, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #3
  store float 0.000000e+00, ptr %28, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #3
  store float 0.000000e+00, ptr %29, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #3
  store float 0.000000e+00, ptr %30, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #3
  store float 0.000000e+00, ptr %31, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #3
  store float 0.000000e+00, ptr %32, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #3
  store float 0.000000e+00, ptr %33, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #3
  store float 0.000000e+00, ptr %34, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #3
  store float 0.000000e+00, ptr %35, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #3
  store ptr null, ptr %36, align 8, !tbaa !5
  store i32 0, ptr %13, align 4, !tbaa !9
  br label %46

46:                                               ; preds = %178, %5
  %47 = load i32, ptr %13, align 4, !tbaa !9
  %48 = load i32, ptr %7, align 4, !tbaa !9
  %49 = icmp slt i32 %47, %48
  br i1 %49, label %50, label %181

50:                                               ; preds = %46
  %51 = load ptr, ptr %6, align 8, !tbaa !5
  %52 = load i32, ptr %13, align 4, !tbaa !9
  %53 = sext i32 %52 to i64
  %54 = getelementptr inbounds ptr, ptr %51, i64 %53
  %55 = load ptr, ptr %54, align 8, !tbaa !5
  store ptr %55, ptr %36, align 8, !tbaa !5
  %56 = load i32, ptr %13, align 4, !tbaa !9
  %57 = icmp eq i32 %56, 0
  br i1 %57, label %58, label %101

58:                                               ; preds = %50
  %59 = load ptr, ptr %36, align 8, !tbaa !5
  %60 = getelementptr inbounds %struct.s_atm, ptr %59, i32 0, i32 5
  %61 = load float, ptr %60, align 4, !tbaa !15
  %62 = load ptr, ptr %36, align 8, !tbaa !5
  %63 = getelementptr inbounds %struct.s_atm, ptr %62, i32 0, i32 3
  %64 = load float, ptr %63, align 4, !tbaa !18
  %65 = fsub float %61, %64
  store float %65, ptr %25, align 4, !tbaa !11
  %66 = load ptr, ptr %36, align 8, !tbaa !5
  %67 = getelementptr inbounds %struct.s_atm, ptr %66, i32 0, i32 5
  %68 = load float, ptr %67, align 4, !tbaa !15
  %69 = load ptr, ptr %36, align 8, !tbaa !5
  %70 = getelementptr inbounds %struct.s_atm, ptr %69, i32 0, i32 3
  %71 = load float, ptr %70, align 4, !tbaa !18
  %72 = fadd float %68, %71
  store float %72, ptr %26, align 4, !tbaa !11
  %73 = load ptr, ptr %36, align 8, !tbaa !5
  %74 = getelementptr inbounds %struct.s_atm, ptr %73, i32 0, i32 6
  %75 = load float, ptr %74, align 8, !tbaa !19
  %76 = load ptr, ptr %36, align 8, !tbaa !5
  %77 = getelementptr inbounds %struct.s_atm, ptr %76, i32 0, i32 3
  %78 = load float, ptr %77, align 4, !tbaa !18
  %79 = fsub float %75, %78
  store float %79, ptr %27, align 4, !tbaa !11
  %80 = load ptr, ptr %36, align 8, !tbaa !5
  %81 = getelementptr inbounds %struct.s_atm, ptr %80, i32 0, i32 6
  %82 = load float, ptr %81, align 8, !tbaa !19
  %83 = load ptr, ptr %36, align 8, !tbaa !5
  %84 = getelementptr inbounds %struct.s_atm, ptr %83, i32 0, i32 3
  %85 = load float, ptr %84, align 4, !tbaa !18
  %86 = fadd float %82, %85
  store float %86, ptr %28, align 4, !tbaa !11
  %87 = load ptr, ptr %36, align 8, !tbaa !5
  %88 = getelementptr inbounds %struct.s_atm, ptr %87, i32 0, i32 7
  %89 = load float, ptr %88, align 4, !tbaa !20
  %90 = load ptr, ptr %36, align 8, !tbaa !5
  %91 = getelementptr inbounds %struct.s_atm, ptr %90, i32 0, i32 3
  %92 = load float, ptr %91, align 4, !tbaa !18
  %93 = fsub float %89, %92
  store float %93, ptr %29, align 4, !tbaa !11
  %94 = load ptr, ptr %36, align 8, !tbaa !5
  %95 = getelementptr inbounds %struct.s_atm, ptr %94, i32 0, i32 7
  %96 = load float, ptr %95, align 4, !tbaa !20
  %97 = load ptr, ptr %36, align 8, !tbaa !5
  %98 = getelementptr inbounds %struct.s_atm, ptr %97, i32 0, i32 3
  %99 = load float, ptr %98, align 4, !tbaa !18
  %100 = fadd float %96, %99
  store float %100, ptr %30, align 4, !tbaa !11
  br label %177

101:                                              ; preds = %50
  %102 = load float, ptr %25, align 4, !tbaa !11
  %103 = load ptr, ptr %36, align 8, !tbaa !5
  %104 = getelementptr inbounds %struct.s_atm, ptr %103, i32 0, i32 5
  %105 = load float, ptr %104, align 4, !tbaa !15
  %106 = load ptr, ptr %36, align 8, !tbaa !5
  %107 = getelementptr inbounds %struct.s_atm, ptr %106, i32 0, i32 3
  %108 = load float, ptr %107, align 4, !tbaa !18
  %109 = fsub float %105, %108
  store float %109, ptr %31, align 4, !tbaa !11
  %110 = fcmp ogt float %102, %109
  br i1 %110, label %111, label %113

111:                                              ; preds = %101
  %112 = load float, ptr %31, align 4, !tbaa !11
  store float %112, ptr %25, align 4, !tbaa !11
  br label %126

113:                                              ; preds = %101
  %114 = load float, ptr %26, align 4, !tbaa !11
  %115 = load ptr, ptr %36, align 8, !tbaa !5
  %116 = getelementptr inbounds %struct.s_atm, ptr %115, i32 0, i32 5
  %117 = load float, ptr %116, align 4, !tbaa !15
  %118 = load ptr, ptr %36, align 8, !tbaa !5
  %119 = getelementptr inbounds %struct.s_atm, ptr %118, i32 0, i32 3
  %120 = load float, ptr %119, align 4, !tbaa !18
  %121 = fadd float %117, %120
  store float %121, ptr %31, align 4, !tbaa !11
  %122 = fcmp olt float %114, %121
  br i1 %122, label %123, label %125

123:                                              ; preds = %113
  %124 = load float, ptr %31, align 4, !tbaa !11
  store float %124, ptr %26, align 4, !tbaa !11
  br label %125

125:                                              ; preds = %123, %113
  br label %126

126:                                              ; preds = %125, %111
  %127 = load float, ptr %27, align 4, !tbaa !11
  %128 = load ptr, ptr %36, align 8, !tbaa !5
  %129 = getelementptr inbounds %struct.s_atm, ptr %128, i32 0, i32 6
  %130 = load float, ptr %129, align 8, !tbaa !19
  %131 = load ptr, ptr %36, align 8, !tbaa !5
  %132 = getelementptr inbounds %struct.s_atm, ptr %131, i32 0, i32 3
  %133 = load float, ptr %132, align 4, !tbaa !18
  %134 = fsub float %130, %133
  store float %134, ptr %32, align 4, !tbaa !11
  %135 = fcmp ogt float %127, %134
  br i1 %135, label %136, label %138

136:                                              ; preds = %126
  %137 = load float, ptr %32, align 4, !tbaa !11
  store float %137, ptr %27, align 4, !tbaa !11
  br label %151

138:                                              ; preds = %126
  %139 = load float, ptr %28, align 4, !tbaa !11
  %140 = load ptr, ptr %36, align 8, !tbaa !5
  %141 = getelementptr inbounds %struct.s_atm, ptr %140, i32 0, i32 6
  %142 = load float, ptr %141, align 8, !tbaa !19
  %143 = load ptr, ptr %36, align 8, !tbaa !5
  %144 = getelementptr inbounds %struct.s_atm, ptr %143, i32 0, i32 3
  %145 = load float, ptr %144, align 4, !tbaa !18
  %146 = fadd float %142, %145
  store float %146, ptr %32, align 4, !tbaa !11
  %147 = fcmp olt float %139, %146
  br i1 %147, label %148, label %150

148:                                              ; preds = %138
  %149 = load float, ptr %32, align 4, !tbaa !11
  store float %149, ptr %28, align 4, !tbaa !11
  br label %150

150:                                              ; preds = %148, %138
  br label %151

151:                                              ; preds = %150, %136
  %152 = load float, ptr %29, align 4, !tbaa !11
  %153 = load ptr, ptr %36, align 8, !tbaa !5
  %154 = getelementptr inbounds %struct.s_atm, ptr %153, i32 0, i32 7
  %155 = load float, ptr %154, align 4, !tbaa !20
  %156 = load ptr, ptr %36, align 8, !tbaa !5
  %157 = getelementptr inbounds %struct.s_atm, ptr %156, i32 0, i32 3
  %158 = load float, ptr %157, align 4, !tbaa !18
  %159 = fsub float %155, %158
  store float %159, ptr %33, align 4, !tbaa !11
  %160 = fcmp ogt float %152, %159
  br i1 %160, label %161, label %163

161:                                              ; preds = %151
  %162 = load float, ptr %33, align 4, !tbaa !11
  store float %162, ptr %29, align 4, !tbaa !11
  br label %176

163:                                              ; preds = %151
  %164 = load float, ptr %30, align 4, !tbaa !11
  %165 = load ptr, ptr %36, align 8, !tbaa !5
  %166 = getelementptr inbounds %struct.s_atm, ptr %165, i32 0, i32 7
  %167 = load float, ptr %166, align 4, !tbaa !20
  %168 = load ptr, ptr %36, align 8, !tbaa !5
  %169 = getelementptr inbounds %struct.s_atm, ptr %168, i32 0, i32 3
  %170 = load float, ptr %169, align 4, !tbaa !18
  %171 = fadd float %167, %170
  store float %171, ptr %33, align 4, !tbaa !11
  %172 = fcmp olt float %164, %171
  br i1 %172, label %173, label %175

173:                                              ; preds = %163
  %174 = load float, ptr %33, align 4, !tbaa !11
  store float %174, ptr %30, align 4, !tbaa !11
  br label %175

175:                                              ; preds = %173, %163
  br label %176

176:                                              ; preds = %175, %161
  br label %177

177:                                              ; preds = %176, %58
  br label %178

178:                                              ; preds = %177
  %179 = load i32, ptr %13, align 4, !tbaa !9
  %180 = add nsw i32 %179, 1
  store i32 %180, ptr %13, align 4, !tbaa !9
  br label %46, !llvm.loop !21

181:                                              ; preds = %46
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #3
  %182 = load ptr, ptr %11, align 8, !tbaa !5
  %183 = getelementptr inbounds %struct.c_lst_vertices, ptr %182, i32 0, i32 0
  %184 = load ptr, ptr %183, align 8, !tbaa !23
  store ptr %184, ptr %37, align 8, !tbaa !5
  br label %185

185:                                              ; preds = %266, %181
  %186 = load ptr, ptr %37, align 8, !tbaa !5
  %187 = icmp ne ptr %186, null
  br i1 %187, label %188, label %270

188:                                              ; preds = %185
  %189 = load ptr, ptr %37, align 8, !tbaa !5
  %190 = getelementptr inbounds %struct.node_vertice, ptr %189, i32 0, i32 2
  %191 = load ptr, ptr %190, align 8, !tbaa !26
  store ptr %191, ptr %12, align 8, !tbaa !5
  %192 = load float, ptr %25, align 4, !tbaa !11
  %193 = load ptr, ptr %12, align 8, !tbaa !5
  %194 = getelementptr inbounds %struct.s_vvertice, ptr %193, i32 0, i32 6
  %195 = load float, ptr %194, align 8, !tbaa !28
  %196 = load ptr, ptr %12, align 8, !tbaa !5
  %197 = getelementptr inbounds %struct.s_vvertice, ptr %196, i32 0, i32 5
  %198 = load float, ptr %197, align 4, !tbaa !30
  %199 = fsub float %195, %198
  store float %199, ptr %31, align 4, !tbaa !11
  %200 = fcmp ogt float %192, %199
  br i1 %200, label %201, label %203

201:                                              ; preds = %188
  %202 = load float, ptr %31, align 4, !tbaa !11
  store float %202, ptr %25, align 4, !tbaa !11
  br label %216

203:                                              ; preds = %188
  %204 = load float, ptr %26, align 4, !tbaa !11
  %205 = load ptr, ptr %12, align 8, !tbaa !5
  %206 = getelementptr inbounds %struct.s_vvertice, ptr %205, i32 0, i32 6
  %207 = load float, ptr %206, align 8, !tbaa !28
  %208 = load ptr, ptr %12, align 8, !tbaa !5
  %209 = getelementptr inbounds %struct.s_vvertice, ptr %208, i32 0, i32 5
  %210 = load float, ptr %209, align 4, !tbaa !30
  %211 = fadd float %207, %210
  store float %211, ptr %31, align 4, !tbaa !11
  %212 = fcmp olt float %204, %211
  br i1 %212, label %213, label %215

213:                                              ; preds = %203
  %214 = load float, ptr %31, align 4, !tbaa !11
  store float %214, ptr %26, align 4, !tbaa !11
  br label %215

215:                                              ; preds = %213, %203
  br label %216

216:                                              ; preds = %215, %201
  %217 = load float, ptr %27, align 4, !tbaa !11
  %218 = load ptr, ptr %12, align 8, !tbaa !5
  %219 = getelementptr inbounds %struct.s_vvertice, ptr %218, i32 0, i32 7
  %220 = load float, ptr %219, align 4, !tbaa !31
  %221 = load ptr, ptr %12, align 8, !tbaa !5
  %222 = getelementptr inbounds %struct.s_vvertice, ptr %221, i32 0, i32 5
  %223 = load float, ptr %222, align 4, !tbaa !30
  %224 = fsub float %220, %223
  store float %224, ptr %32, align 4, !tbaa !11
  %225 = fcmp ogt float %217, %224
  br i1 %225, label %226, label %228

226:                                              ; preds = %216
  %227 = load float, ptr %32, align 4, !tbaa !11
  store float %227, ptr %27, align 4, !tbaa !11
  br label %241

228:                                              ; preds = %216
  %229 = load float, ptr %28, align 4, !tbaa !11
  %230 = load ptr, ptr %12, align 8, !tbaa !5
  %231 = getelementptr inbounds %struct.s_vvertice, ptr %230, i32 0, i32 7
  %232 = load float, ptr %231, align 4, !tbaa !31
  %233 = load ptr, ptr %12, align 8, !tbaa !5
  %234 = getelementptr inbounds %struct.s_vvertice, ptr %233, i32 0, i32 5
  %235 = load float, ptr %234, align 4, !tbaa !30
  %236 = fadd float %232, %235
  store float %236, ptr %32, align 4, !tbaa !11
  %237 = fcmp olt float %229, %236
  br i1 %237, label %238, label %240

238:                                              ; preds = %228
  %239 = load float, ptr %32, align 4, !tbaa !11
  store float %239, ptr %28, align 4, !tbaa !11
  br label %240

240:                                              ; preds = %238, %228
  br label %241

241:                                              ; preds = %240, %226
  %242 = load float, ptr %29, align 4, !tbaa !11
  %243 = load ptr, ptr %12, align 8, !tbaa !5
  %244 = getelementptr inbounds %struct.s_vvertice, ptr %243, i32 0, i32 8
  %245 = load float, ptr %244, align 8, !tbaa !32
  %246 = load ptr, ptr %12, align 8, !tbaa !5
  %247 = getelementptr inbounds %struct.s_vvertice, ptr %246, i32 0, i32 5
  %248 = load float, ptr %247, align 4, !tbaa !30
  %249 = fsub float %245, %248
  store float %249, ptr %33, align 4, !tbaa !11
  %250 = fcmp ogt float %242, %249
  br i1 %250, label %251, label %253

251:                                              ; preds = %241
  %252 = load float, ptr %33, align 4, !tbaa !11
  store float %252, ptr %29, align 4, !tbaa !11
  br label %266

253:                                              ; preds = %241
  %254 = load float, ptr %30, align 4, !tbaa !11
  %255 = load ptr, ptr %12, align 8, !tbaa !5
  %256 = getelementptr inbounds %struct.s_vvertice, ptr %255, i32 0, i32 8
  %257 = load float, ptr %256, align 8, !tbaa !32
  %258 = load ptr, ptr %12, align 8, !tbaa !5
  %259 = getelementptr inbounds %struct.s_vvertice, ptr %258, i32 0, i32 5
  %260 = load float, ptr %259, align 4, !tbaa !30
  %261 = fadd float %257, %260
  store float %261, ptr %33, align 4, !tbaa !11
  %262 = fcmp olt float %254, %261
  br i1 %262, label %263, label %265

263:                                              ; preds = %253
  %264 = load float, ptr %33, align 4, !tbaa !11
  store float %264, ptr %30, align 4, !tbaa !11
  br label %265

265:                                              ; preds = %263, %253
  br label %266

266:                                              ; preds = %265, %251
  %267 = load ptr, ptr %37, align 8, !tbaa !5
  %268 = getelementptr inbounds %struct.node_vertice, ptr %267, i32 0, i32 0
  %269 = load ptr, ptr %268, align 8, !tbaa !33
  store ptr %269, ptr %37, align 8, !tbaa !5
  br label %185, !llvm.loop !34

270:                                              ; preds = %185
  %271 = load float, ptr %26, align 4, !tbaa !11
  %272 = load float, ptr %25, align 4, !tbaa !11
  %273 = fsub float %271, %272
  %274 = load float, ptr %28, align 4, !tbaa !11
  %275 = load float, ptr %27, align 4, !tbaa !11
  %276 = fsub float %274, %275
  %277 = fmul float %273, %276
  %278 = load float, ptr %30, align 4, !tbaa !11
  %279 = load float, ptr %29, align 4, !tbaa !11
  %280 = fsub float %278, %279
  %281 = fmul float %277, %280
  store float %281, ptr %34, align 4, !tbaa !11
  %282 = load float, ptr %18, align 4, !tbaa !11
  %283 = load float, ptr %26, align 4, !tbaa !11
  %284 = load float, ptr %25, align 4, !tbaa !11
  %285 = fsub float %283, %284
  %286 = fmul float %282, %285
  store float %286, ptr %22, align 4, !tbaa !11
  %287 = load float, ptr %18, align 4, !tbaa !11
  %288 = load float, ptr %28, align 4, !tbaa !11
  %289 = load float, ptr %27, align 4, !tbaa !11
  %290 = fsub float %288, %289
  %291 = fmul float %287, %290
  store float %291, ptr %23, align 4, !tbaa !11
  %292 = load float, ptr %18, align 4, !tbaa !11
  %293 = load float, ptr %30, align 4, !tbaa !11
  %294 = load float, ptr %29, align 4, !tbaa !11
  %295 = fsub float %293, %294
  %296 = fmul float %292, %295
  store float %296, ptr %24, align 4, !tbaa !11
  %297 = load float, ptr %25, align 4, !tbaa !11
  store float %297, ptr %19, align 4, !tbaa !11
  br label %298

298:                                              ; preds = %431, %270
  %299 = load float, ptr %19, align 4, !tbaa !11
  %300 = load float, ptr %26, align 4, !tbaa !11
  %301 = fcmp olt float %299, %300
  br i1 %301, label %302, label %435

302:                                              ; preds = %298
  %303 = load float, ptr %27, align 4, !tbaa !11
  store float %303, ptr %20, align 4, !tbaa !11
  br label %304

304:                                              ; preds = %426, %302
  %305 = load float, ptr %20, align 4, !tbaa !11
  %306 = load float, ptr %28, align 4, !tbaa !11
  %307 = fcmp olt float %305, %306
  br i1 %307, label %308, label %430

308:                                              ; preds = %304
  %309 = load float, ptr %29, align 4, !tbaa !11
  store float %309, ptr %21, align 4, !tbaa !11
  br label %310

310:                                              ; preds = %421, %308
  %311 = load float, ptr %21, align 4, !tbaa !11
  %312 = load float, ptr %30, align 4, !tbaa !11
  %313 = fcmp olt float %311, %312
  br i1 %313, label %314, label %425

314:                                              ; preds = %310
  store i32 0, ptr %16, align 4, !tbaa !9
  %315 = load ptr, ptr %11, align 8, !tbaa !5
  %316 = getelementptr inbounds %struct.c_lst_vertices, ptr %315, i32 0, i32 0
  %317 = load ptr, ptr %316, align 8, !tbaa !23
  store ptr %317, ptr %37, align 8, !tbaa !5
  br label %318

318:                                              ; preds = %360, %314
  %319 = load ptr, ptr %37, align 8, !tbaa !5
  %320 = icmp ne ptr %319, null
  br i1 %320, label %321, label %364

321:                                              ; preds = %318
  %322 = load ptr, ptr %37, align 8, !tbaa !5
  %323 = getelementptr inbounds %struct.node_vertice, ptr %322, i32 0, i32 2
  %324 = load ptr, ptr %323, align 8, !tbaa !26
  store ptr %324, ptr %12, align 8, !tbaa !5
  %325 = load ptr, ptr %12, align 8, !tbaa !5
  %326 = getelementptr inbounds %struct.s_vvertice, ptr %325, i32 0, i32 6
  %327 = load float, ptr %326, align 8, !tbaa !28
  %328 = load float, ptr %19, align 4, !tbaa !11
  %329 = fsub float %327, %328
  store float %329, ptr %31, align 4, !tbaa !11
  %330 = load ptr, ptr %12, align 8, !tbaa !5
  %331 = getelementptr inbounds %struct.s_vvertice, ptr %330, i32 0, i32 7
  %332 = load float, ptr %331, align 4, !tbaa !31
  %333 = load float, ptr %20, align 4, !tbaa !11
  %334 = fsub float %332, %333
  store float %334, ptr %32, align 4, !tbaa !11
  %335 = load ptr, ptr %12, align 8, !tbaa !5
  %336 = getelementptr inbounds %struct.s_vvertice, ptr %335, i32 0, i32 8
  %337 = load float, ptr %336, align 8, !tbaa !32
  %338 = load float, ptr %21, align 4, !tbaa !11
  %339 = fsub float %337, %338
  store float %339, ptr %33, align 4, !tbaa !11
  %340 = load ptr, ptr %12, align 8, !tbaa !5
  %341 = getelementptr inbounds %struct.s_vvertice, ptr %340, i32 0, i32 5
  %342 = load float, ptr %341, align 4, !tbaa !30
  %343 = load ptr, ptr %12, align 8, !tbaa !5
  %344 = getelementptr inbounds %struct.s_vvertice, ptr %343, i32 0, i32 5
  %345 = load float, ptr %344, align 4, !tbaa !30
  %346 = fmul float %342, %345
  %347 = load float, ptr %31, align 4, !tbaa !11
  %348 = load float, ptr %31, align 4, !tbaa !11
  %349 = load float, ptr %32, align 4, !tbaa !11
  %350 = load float, ptr %32, align 4, !tbaa !11
  %351 = fmul float %349, %350
  %352 = call float @llvm.fmuladd.f32(float %347, float %348, float %351)
  %353 = load float, ptr %33, align 4, !tbaa !11
  %354 = load float, ptr %33, align 4, !tbaa !11
  %355 = call float @llvm.fmuladd.f32(float %353, float %354, float %352)
  %356 = fcmp ogt float %346, %355
  br i1 %356, label %357, label %360

357:                                              ; preds = %321
  %358 = load i32, ptr %15, align 4, !tbaa !9
  %359 = add nsw i32 %358, 1
  store i32 %359, ptr %15, align 4, !tbaa !9
  store i32 1, ptr %16, align 4, !tbaa !9
  br label %364

360:                                              ; preds = %321
  %361 = load ptr, ptr %37, align 8, !tbaa !5
  %362 = getelementptr inbounds %struct.node_vertice, ptr %361, i32 0, i32 0
  %363 = load ptr, ptr %362, align 8, !tbaa !33
  store ptr %363, ptr %37, align 8, !tbaa !5
  br label %318, !llvm.loop !35

364:                                              ; preds = %357, %318
  %365 = load i32, ptr %16, align 4, !tbaa !9
  %366 = icmp ne i32 %365, 0
  br i1 %366, label %418, label %367

367:                                              ; preds = %364
  store i32 0, ptr %14, align 4, !tbaa !9
  br label %368

368:                                              ; preds = %414, %367
  %369 = load i32, ptr %14, align 4, !tbaa !9
  %370 = load i32, ptr %7, align 4, !tbaa !9
  %371 = icmp slt i32 %369, %370
  br i1 %371, label %372, label %417

372:                                              ; preds = %368
  %373 = load ptr, ptr %6, align 8, !tbaa !5
  %374 = load i32, ptr %14, align 4, !tbaa !9
  %375 = sext i32 %374 to i64
  %376 = getelementptr inbounds ptr, ptr %373, i64 %375
  %377 = load ptr, ptr %376, align 8, !tbaa !5
  store ptr %377, ptr %36, align 8, !tbaa !5
  %378 = load ptr, ptr %36, align 8, !tbaa !5
  %379 = getelementptr inbounds %struct.s_atm, ptr %378, i32 0, i32 5
  %380 = load float, ptr %379, align 4, !tbaa !15
  %381 = load float, ptr %19, align 4, !tbaa !11
  %382 = fsub float %380, %381
  store float %382, ptr %31, align 4, !tbaa !11
  %383 = load ptr, ptr %36, align 8, !tbaa !5
  %384 = getelementptr inbounds %struct.s_atm, ptr %383, i32 0, i32 6
  %385 = load float, ptr %384, align 8, !tbaa !19
  %386 = load float, ptr %20, align 4, !tbaa !11
  %387 = fsub float %385, %386
  store float %387, ptr %32, align 4, !tbaa !11
  %388 = load ptr, ptr %36, align 8, !tbaa !5
  %389 = getelementptr inbounds %struct.s_atm, ptr %388, i32 0, i32 7
  %390 = load float, ptr %389, align 4, !tbaa !20
  %391 = load float, ptr %21, align 4, !tbaa !11
  %392 = fsub float %390, %391
  store float %392, ptr %33, align 4, !tbaa !11
  %393 = load ptr, ptr %36, align 8, !tbaa !5
  %394 = getelementptr inbounds %struct.s_atm, ptr %393, i32 0, i32 3
  %395 = load float, ptr %394, align 4, !tbaa !18
  %396 = load ptr, ptr %36, align 8, !tbaa !5
  %397 = getelementptr inbounds %struct.s_atm, ptr %396, i32 0, i32 3
  %398 = load float, ptr %397, align 4, !tbaa !18
  %399 = fmul float %395, %398
  %400 = load float, ptr %31, align 4, !tbaa !11
  %401 = load float, ptr %31, align 4, !tbaa !11
  %402 = load float, ptr %32, align 4, !tbaa !11
  %403 = load float, ptr %32, align 4, !tbaa !11
  %404 = fmul float %402, %403
  %405 = call float @llvm.fmuladd.f32(float %400, float %401, float %404)
  %406 = load float, ptr %33, align 4, !tbaa !11
  %407 = load float, ptr %33, align 4, !tbaa !11
  %408 = call float @llvm.fmuladd.f32(float %406, float %407, float %405)
  %409 = fcmp ogt float %399, %408
  br i1 %409, label %410, label %413

410:                                              ; preds = %372
  %411 = load i32, ptr %15, align 4, !tbaa !9
  %412 = add nsw i32 %411, 1
  store i32 %412, ptr %15, align 4, !tbaa !9
  br label %417

413:                                              ; preds = %372
  br label %414

414:                                              ; preds = %413
  %415 = load i32, ptr %14, align 4, !tbaa !9
  %416 = add nsw i32 %415, 1
  store i32 %416, ptr %14, align 4, !tbaa !9
  br label %368, !llvm.loop !36

417:                                              ; preds = %410, %368
  br label %418

418:                                              ; preds = %417, %364
  %419 = load i32, ptr %17, align 4, !tbaa !9
  %420 = add nsw i32 %419, 1
  store i32 %420, ptr %17, align 4, !tbaa !9
  br label %421

421:                                              ; preds = %418
  %422 = load float, ptr %24, align 4, !tbaa !11
  %423 = load float, ptr %21, align 4, !tbaa !11
  %424 = fadd float %423, %422
  store float %424, ptr %21, align 4, !tbaa !11
  br label %310, !llvm.loop !37

425:                                              ; preds = %310
  br label %426

426:                                              ; preds = %425
  %427 = load float, ptr %23, align 4, !tbaa !11
  %428 = load float, ptr %20, align 4, !tbaa !11
  %429 = fadd float %428, %427
  store float %429, ptr %20, align 4, !tbaa !11
  br label %304, !llvm.loop !38

430:                                              ; preds = %304
  br label %431

431:                                              ; preds = %430
  %432 = load float, ptr %22, align 4, !tbaa !11
  %433 = load float, ptr %19, align 4, !tbaa !11
  %434 = fadd float %433, %432
  store float %434, ptr %19, align 4, !tbaa !11
  br label %298, !llvm.loop !39

435:                                              ; preds = %298
  %436 = load i32, ptr %15, align 4, !tbaa !9
  %437 = sitofp i32 %436 to float
  %438 = load i32, ptr %17, align 4, !tbaa !9
  %439 = sitofp i32 %438 to float
  %440 = fdiv float %437, %439
  %441 = load float, ptr %34, align 4, !tbaa !11
  %442 = fmul float %440, %441
  store float %442, ptr %35, align 4, !tbaa !11
  %443 = load ptr, ptr %9, align 8, !tbaa !5
  %444 = getelementptr inbounds %struct.s_pocket, ptr %443, i32 0, i32 0
  %445 = load ptr, ptr %444, align 8, !tbaa !40
  %446 = getelementptr inbounds %struct.s_desc, ptr %445, i32 0, i32 2
  %447 = load float, ptr %446, align 4, !tbaa !41
  %448 = load float, ptr %8, align 4, !tbaa !11
  %449 = fadd float %447, %448
  %450 = load float, ptr %35, align 4, !tbaa !11
  %451 = fsub float %449, %450
  %452 = load float, ptr %8, align 4, !tbaa !11
  %453 = fdiv float %451, %452
  %454 = load ptr, ptr %9, align 8, !tbaa !5
  %455 = getelementptr inbounds %struct.s_pocket, ptr %454, i32 0, i32 5
  store float %453, ptr %455, align 4, !tbaa !43
  %456 = load ptr, ptr %9, align 8, !tbaa !5
  %457 = getelementptr inbounds %struct.s_pocket, ptr %456, i32 0, i32 5
  %458 = load float, ptr %457, align 4, !tbaa !43
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #3
  ret float %458
}

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare float @llvm.fmuladd.f32(float, float, float) #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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
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, !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 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = !{!14, !6, i64 8}
!14 = !{!"s_pocket", !6, i64 0, !6, i64 8, !12, i64 16, !12, i64 20, !12, i64 24, !12, i64 28, !7, i64 32, !10, i64 44, !10, i64 48, !10, i64 52, !10, i64 56}
!15 = !{!16, !12, i64 20}
!16 = !{!"s_atm", !10, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !12, i64 16, !12, i64 20, !12, i64 24, !12, i64 28, !7, i64 32, !7, i64 37, !7, i64 44, !7, i64 60, !7, i64 76, !7, i64 79, !10, i64 88, !10, i64 92, !10, i64 96, !10, i64 100, !10, i64 104, !10, i64 108, !10, i64 112, !12, i64 116, !12, i64 120, !12, i64 124, !12, i64 128, !12, i64 132, !12, i64 136, !12, i64 140, !7, i64 144, !7, i64 145, !12, i64 148, !12, i64 152, !12, i64 156, !12, i64 160, !17, i64 164, !6, i64 168, !10, i64 176}
!17 = !{!"short", !7, i64 0}
!18 = !{!16, !12, i64 12}
!19 = !{!16, !12, i64 24}
!20 = !{!16, !12, i64 28}
!21 = distinct !{!21, !22}
!22 = !{!"llvm.loop.mustprogress"}
!23 = !{!24, !6, i64 0}
!24 = !{!"c_lst_vertices", !6, i64 0, !6, i64 8, !6, i64 16, !25, i64 24}
!25 = !{!"long", !7, i64 0}
!26 = !{!27, !6, i64 16}
!27 = !{!"node_vertice", !6, i64 0, !6, i64 8, !6, i64 16}
!28 = !{!29, !12, i64 24}
!29 = !{!"s_vvertice", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !12, i64 20, !12, i64 24, !12, i64 28, !12, i64 32, !10, i64 36, !10, i64 40, !7, i64 44, !7, i64 64, !7, i64 96, !12, i64 108}
!30 = !{!29, !12, i64 20}
!31 = !{!29, !12, i64 28}
!32 = !{!29, !12, i64 32}
!33 = !{!27, !6, i64 0}
!34 = distinct !{!34, !22}
!35 = distinct !{!35, !22}
!36 = distinct !{!36, !22}
!37 = distinct !{!37, !22}
!38 = distinct !{!38, !22}
!39 = distinct !{!39, !22}
!40 = !{!14, !6, i64 0}
!41 = !{!42, !12, i64 8}
!42 = !{!"s_desc", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !12, i64 16, !12, i64 20, !12, i64 24, !12, i64 28, !12, i64 32, !12, i64 36, !12, i64 40, !12, i64 44, !12, i64 48, !12, i64 52, !12, i64 56, !12, i64 60, !12, i64 64, !12, i64 68, !12, i64 72, !12, i64 76, !12, i64 80, !12, i64 84, !12, i64 88, !12, i64 92, !12, i64 96, !12, i64 100, !12, i64 104, !10, i64 108, !7, i64 112, !10, i64 192, !10, i64 196, !10, i64 200, !12, i64 204, !12, i64 208, !10, i64 212, !10, i64 216, !10, i64 220, !10, i64 224, !10, i64 228, !7, i64 232, !7, i64 487, !7, i64 742}
!43 = !{!14, !12, i64 28}


; 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: nofree norecurse nosync nounwind memory(read, argmem: readwrite, inaccessiblemem: none) uwtable
define dso_local float @set_basic_overlap_volume(ptr nocapture noundef readonly %0, i32 noundef %1, float noundef %2, ptr nocapture noundef %3, i32 noundef %4) local_unnamed_addr #0 {
  %6 = getelementptr inbounds i8, ptr %3, i64 8
  %7 = load ptr, ptr %6, align 8, !tbaa !5
  %8 = sitofp i32 %4 to float
  %9 = fdiv float 1.000000e+00, %8
  %10 = icmp sgt i32 %1, 0
  br i1 %10, label %11, label %.preheader209

11:                                               ; preds = %5
  %wide.trip.count = zext nneg i32 %1 to i64
  %12 = load ptr, ptr %0, align 8, !tbaa !12
  %13 = getelementptr inbounds i8, ptr %12, i64 20
  %14 = load float, ptr %13, align 4, !tbaa !13
  %15 = getelementptr inbounds i8, ptr %12, i64 12
  %16 = load float, ptr %15, align 4, !tbaa !16
  %17 = fsub float %14, %16
  %18 = fadd float %14, %16
  %19 = getelementptr inbounds i8, ptr %12, i64 24
  %20 = load float, ptr %19, align 8, !tbaa !17
  %21 = fsub float %20, %16
  %22 = fadd float %16, %20
  %23 = getelementptr inbounds i8, ptr %12, i64 28
  %24 = load float, ptr %23, align 4, !tbaa !18
  %25 = fsub float %24, %16
  %26 = fadd float %16, %24
  %exitcond.peel.not = icmp eq i32 %1, 1
  br i1 %exitcond.peel.not, label %.preheader209, label %.lr.ph.peel.next

.preheader209:                                    ; preds = %57, %11, %5
  %.0171.lcssa = phi float [ 0.000000e+00, %5 ], [ %17, %11 ], [ %.1172, %57 ]
  %.0166.lcssa = phi float [ 0.000000e+00, %5 ], [ %18, %11 ], [ %.1167, %57 ]
  %.0161.lcssa = phi float [ 0.000000e+00, %5 ], [ %21, %11 ], [ %.1162, %57 ]
  %.0157.lcssa = phi float [ 0.000000e+00, %5 ], [ %22, %11 ], [ %.1158, %57 ]
  %.0153.lcssa = phi float [ 0.000000e+00, %5 ], [ %25, %11 ], [ %.1154, %57 ]
  %.0151.lcssa = phi float [ 0.000000e+00, %5 ], [ %26, %11 ], [ %.1152, %57 ]
  %.0222 = load ptr, ptr %7, align 8, !tbaa !12
  %.not223 = icmp eq ptr %.0222, null
  br i1 %.not223, label %._crit_edge, label %.lr.ph231

.lr.ph.peel.next:                                 ; preds = %11, %57
  %indvars.iv = phi i64 [ %indvars.iv.next, %57 ], [ 1, %11 ]
  %.0151216 = phi float [ %.1152, %57 ], [ %26, %11 ]
  %.0153215 = phi float [ %.1154, %57 ], [ %25, %11 ]
  %.0157214 = phi float [ %.1158, %57 ], [ %22, %11 ]
  %.0161213 = phi float [ %.1162, %57 ], [ %21, %11 ]
  %.0166212 = phi float [ %.1167, %57 ], [ %18, %11 ]
  %.0171211 = phi float [ %.1172, %57 ], [ %17, %11 ]
  %27 = getelementptr inbounds ptr, ptr %0, i64 %indvars.iv
  %28 = load ptr, ptr %27, align 8, !tbaa !12
  %29 = getelementptr inbounds i8, ptr %28, i64 20
  %30 = load float, ptr %29, align 4, !tbaa !13
  %31 = getelementptr inbounds i8, ptr %28, i64 12
  %32 = load float, ptr %31, align 4, !tbaa !16
  %33 = fsub float %30, %32
  %34 = fcmp ogt float %.0171211, %33
  br i1 %34, label %39, label %35

35:                                               ; preds = %.lr.ph.peel.next
  %36 = fadd float %30, %32
  %37 = fcmp olt float %.0166212, %36
  br i1 %37, label %38, label %39

38:                                               ; preds = %35
  br label %39

39:                                               ; preds = %.lr.ph.peel.next, %35, %38
  %.1172 = phi float [ %.0171211, %38 ], [ %.0171211, %35 ], [ %33, %.lr.ph.peel.next ]
  %.1167 = phi float [ %36, %38 ], [ %.0166212, %35 ], [ %.0166212, %.lr.ph.peel.next ]
  %40 = getelementptr inbounds i8, ptr %28, i64 24
  %41 = load float, ptr %40, align 8, !tbaa !17
  %42 = fsub float %41, %32
  %43 = fcmp ogt float %.0161213, %42
  br i1 %43, label %48, label %44

44:                                               ; preds = %39
  %45 = fadd float %32, %41
  %46 = fcmp olt float %.0157214, %45
  br i1 %46, label %47, label %48

47:                                               ; preds = %44
  br label %48

48:                                               ; preds = %39, %44, %47
  %.1162 = phi float [ %.0161213, %47 ], [ %.0161213, %44 ], [ %42, %39 ]
  %.1158 = phi float [ %45, %47 ], [ %.0157214, %44 ], [ %.0157214, %39 ]
  %49 = getelementptr inbounds i8, ptr %28, i64 28
  %50 = load float, ptr %49, align 4, !tbaa !18
  %51 = fsub float %50, %32
  %52 = fcmp ogt float %.0153215, %51
  br i1 %52, label %57, label %53

53:                                               ; preds = %48
  %54 = fadd float %32, %50
  %55 = fcmp olt float %.0151216, %54
  br i1 %55, label %56, label %57

56:                                               ; preds = %53
  br label %57

57:                                               ; preds = %48, %53, %56
  %.1154 = phi float [ %.0153215, %56 ], [ %.0153215, %53 ], [ %51, %48 ]
  %.1152 = phi float [ %54, %56 ], [ %.0151216, %53 ], [ %.0151216, %48 ]
  %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 %.preheader209, label %.lr.ph.peel.next, !llvm.loop !19

.lr.ph231:                                        ; preds = %.preheader209, %88
  %.0230 = phi ptr [ %.0, %88 ], [ %.0222, %.preheader209 ]
  %.2229 = phi float [ %.3, %88 ], [ %.0151.lcssa, %.preheader209 ]
  %.2155228 = phi float [ %.3156, %88 ], [ %.0153.lcssa, %.preheader209 ]
  %.3160227 = phi float [ %.4, %88 ], [ %.0157.lcssa, %.preheader209 ]
  %.3164226 = phi float [ %.4165, %88 ], [ %.0161.lcssa, %.preheader209 ]
  %.3169225 = phi float [ %.4170, %88 ], [ %.0166.lcssa, %.preheader209 ]
  %.3174224 = phi float [ %.4175, %88 ], [ %.0171.lcssa, %.preheader209 ]
  %58 = getelementptr inbounds i8, ptr %.0230, i64 16
  %59 = load ptr, ptr %58, align 8, !tbaa !22
  %60 = getelementptr inbounds i8, ptr %59, i64 24
  %61 = load float, ptr %60, align 8, !tbaa !24
  %62 = getelementptr inbounds i8, ptr %59, i64 20
  %63 = load float, ptr %62, align 4, !tbaa !26
  %64 = fsub float %61, %63
  %65 = fcmp ogt float %.3174224, %64
  br i1 %65, label %70, label %66

66:                                               ; preds = %.lr.ph231
  %67 = fadd float %61, %63
  %68 = fcmp olt float %.3169225, %67
  br i1 %68, label %69, label %70

69:                                               ; preds = %66
  br label %70

70:                                               ; preds = %.lr.ph231, %66, %69
  %.4175 = phi float [ %.3174224, %69 ], [ %.3174224, %66 ], [ %64, %.lr.ph231 ]
  %.4170 = phi float [ %67, %69 ], [ %.3169225, %66 ], [ %.3169225, %.lr.ph231 ]
  %71 = getelementptr inbounds i8, ptr %59, i64 28
  %72 = load float, ptr %71, align 4, !tbaa !27
  %73 = fsub float %72, %63
  %74 = fcmp ogt float %.3164226, %73
  br i1 %74, label %79, label %75

75:                                               ; preds = %70
  %76 = fadd float %63, %72
  %77 = fcmp olt float %.3160227, %76
  br i1 %77, label %78, label %79

78:                                               ; preds = %75
  br label %79

79:                                               ; preds = %70, %75, %78
  %.4165 = phi float [ %.3164226, %78 ], [ %.3164226, %75 ], [ %73, %70 ]
  %.4 = phi float [ %76, %78 ], [ %.3160227, %75 ], [ %.3160227, %70 ]
  %80 = getelementptr inbounds i8, ptr %59, i64 32
  %81 = load float, ptr %80, align 8, !tbaa !28
  %82 = fsub float %81, %63
  %83 = fcmp ogt float %.2155228, %82
  br i1 %83, label %88, label %84

84:                                               ; preds = %79
  %85 = fadd float %63, %81
  %86 = fcmp olt float %.2229, %85
  br i1 %86, label %87, label %88

87:                                               ; preds = %84
  br label %88

88:                                               ; preds = %79, %84, %87
  %.3156 = phi float [ %.2155228, %87 ], [ %.2155228, %84 ], [ %82, %79 ]
  %.3 = phi float [ %85, %87 ], [ %.2229, %84 ], [ %.2229, %79 ]
  %.0 = load ptr, ptr %.0230, align 8, !tbaa !12
  %.not = icmp eq ptr %.0, null
  br i1 %.not, label %._crit_edge, label %.lr.ph231, !llvm.loop !29

._crit_edge:                                      ; preds = %88, %.preheader209
  %.3174.lcssa = phi float [ %.0171.lcssa, %.preheader209 ], [ %.4175, %88 ]
  %.3169.lcssa = phi float [ %.0166.lcssa, %.preheader209 ], [ %.4170, %88 ]
  %.3164.lcssa = phi float [ %.0161.lcssa, %.preheader209 ], [ %.4165, %88 ]
  %.3160.lcssa = phi float [ %.0157.lcssa, %.preheader209 ], [ %.4, %88 ]
  %.2155.lcssa = phi float [ %.0153.lcssa, %.preheader209 ], [ %.3156, %88 ]
  %.2.lcssa = phi float [ %.0151.lcssa, %.preheader209 ], [ %.3, %88 ]
  %89 = fsub float %.3169.lcssa, %.3174.lcssa
  %90 = fsub float %.3160.lcssa, %.3164.lcssa
  %91 = fsub float %.2.lcssa, %.2155.lcssa
  %92 = fmul float %9, %89
  %93 = fmul float %9, %90
  %94 = fmul float %9, %91
  %95 = fcmp olt float %.3174.lcssa, %.3169.lcssa
  %96 = fcmp olt float %.3164.lcssa, %.3160.lcssa
  %or.cond = select i1 %95, i1 %96, i1 false
  %97 = fcmp olt float %.2155.lcssa, %.2.lcssa
  %or.cond311 = select i1 %or.cond, i1 %97, i1 false
  br i1 %or.cond311, label %.preheader208.lr.ph.split.us.split.us, label %._crit_edge276

.preheader208.lr.ph.split.us.split.us:            ; preds = %._crit_edge
  br i1 %10, label %.preheader208.us.us.us.preheader, label %.preheader208.us.us

.preheader208.us.us.us.preheader:                 ; preds = %.preheader208.lr.ph.split.us.split.us
  %wide.trip.count305 = zext nneg i32 %1 to i64
  br label %.preheader208.us.us.us

.preheader208.us.us.us:                           ; preds = %.preheader208.us.us.us.preheader, %._crit_edge251.split.us.split.us.us.us.us
  %.0178273.us.us.us = phi float [ %145, %._crit_edge251.split.us.split.us.us.us.us ], [ %.3174.lcssa, %.preheader208.us.us.us.preheader ]
  %.0179272.us.us.us = phi i32 [ %140, %._crit_edge251.split.us.split.us.us.us.us ], [ 0, %.preheader208.us.us.us.preheader ]
  %.0183271.us.us.us = phi i32 [ %.4187.us.us.us.us.us.us, %._crit_edge251.split.us.split.us.us.us.us ], [ 0, %.preheader208.us.us.us.preheader ]
  br label %.preheader207.us.us.us.us.us

.preheader207.us.us.us.us.us:                     ; preds = %._crit_edge243.split.us.us.us.us.us.us, %.preheader208.us.us.us
  %.0177249.us.us.us.us.us = phi float [ %.3164.lcssa, %.preheader208.us.us.us ], [ %143, %._crit_edge243.split.us.us.us.us.us.us ]
  %.1180248.us.us.us.us.us = phi i32 [ %.0179272.us.us.us, %.preheader208.us.us.us ], [ %140, %._crit_edge243.split.us.us.us.us.us.us ]
  %.1184247.us.us.us.us.us = phi i32 [ %.0183271.us.us.us, %.preheader208.us.us.us ], [ %.4187.us.us.us.us.us.us, %._crit_edge243.split.us.us.us.us.us.us ]
  br label %.preheader206.us.us.us.us.us.us

.preheader206.us.us.us.us.us.us:                  ; preds = %..loopexit_crit_edge.us.us.us.us.us.us, %.preheader207.us.us.us.us.us
  %.0176242.us.us.us.us.us.us = phi float [ %.2155.lcssa, %.preheader207.us.us.us.us.us ], [ %141, %..loopexit_crit_edge.us.us.us.us.us.us ]
  %.2181241.us.us.us.us.us.us = phi i32 [ %.1180248.us.us.us.us.us, %.preheader207.us.us.us.us.us ], [ %140, %..loopexit_crit_edge.us.us.us.us.us.us ]
  %.2185240.us.us.us.us.us.us = phi i32 [ %.1184247.us.us.us.us.us, %.preheader207.us.us.us.us.us ], [ %.4187.us.us.us.us.us.us, %..loopexit_crit_edge.us.us.us.us.us.us ]
  br label %98

98:                                               ; preds = %99, %.preheader206.us.us.us.us.us.us
  %.1.in.us.us.us.us.us.us = phi ptr [ %.1.us.us.us.us.us.us, %99 ], [ %7, %.preheader206.us.us.us.us.us.us ]
  %.1.us.us.us.us.us.us = load ptr, ptr %.1.in.us.us.us.us.us.us, align 8, !tbaa !12
  %.not203.us.us.us.us.us.us = icmp eq ptr %.1.us.us.us.us.us.us, null
  br i1 %.not203.us.us.us.us.us.us, label %.preheader.us.us.us.us.us.us, label %99

99:                                               ; preds = %98
  %100 = getelementptr inbounds i8, ptr %.1.us.us.us.us.us.us, i64 16
  %101 = load ptr, ptr %100, align 8, !tbaa !22
  %102 = getelementptr inbounds i8, ptr %101, i64 24
  %103 = load float, ptr %102, align 8, !tbaa !24
  %104 = fsub float %103, %.0178273.us.us.us
  %105 = getelementptr inbounds i8, ptr %101, i64 28
  %106 = load float, ptr %105, align 4, !tbaa !27
  %107 = fsub float %106, %.0177249.us.us.us.us.us
  %108 = getelementptr inbounds i8, ptr %101, i64 32
  %109 = load float, ptr %108, align 8, !tbaa !28
  %110 = fsub float %109, %.0176242.us.us.us.us.us.us
  %111 = getelementptr inbounds i8, ptr %101, i64 20
  %112 = load float, ptr %111, align 4, !tbaa !26
  %113 = fmul float %112, %112
  %114 = fmul float %107, %107
  %115 = tail call float @llvm.fmuladd.f32(float %104, float %104, float %114)
  %116 = tail call float @llvm.fmuladd.f32(float %110, float %110, float %115)
  %117 = fcmp ogt float %113, %116
  br i1 %117, label %.thread.us.us.us.us.us.us, label %98, !llvm.loop !30

.thread.us.us.us.us.us.us:                        ; preds = %99
  %118 = add nsw i32 %.2185240.us.us.us.us.us.us, 1
  br label %..loopexit_crit_edge.us.us.us.us.us.us

119:                                              ; preds = %.preheader.us.us.us.us.us.us
  %indvars.iv.next303 = add nuw nsw i64 %indvars.iv302, 1
  %exitcond306.not = icmp eq i64 %indvars.iv.next303, %wide.trip.count305
  br i1 %exitcond306.not, label %..loopexit_crit_edge.us.us.us.us.us.us, label %.preheader.us.us.us.us.us.us, !llvm.loop !31

.preheader.us.us.us.us.us.us:                     ; preds = %98, %119
  %indvars.iv302 = phi i64 [ %indvars.iv.next303, %119 ], [ 0, %98 ]
  %120 = getelementptr inbounds ptr, ptr %0, i64 %indvars.iv302
  %121 = load ptr, ptr %120, align 8, !tbaa !12
  %122 = getelementptr inbounds i8, ptr %121, i64 20
  %123 = load float, ptr %122, align 4, !tbaa !13
  %124 = fsub float %123, %.0178273.us.us.us
  %125 = getelementptr inbounds i8, ptr %121, i64 24
  %126 = load float, ptr %125, align 8, !tbaa !17
  %127 = fsub float %126, %.0177249.us.us.us.us.us
  %128 = getelementptr inbounds i8, ptr %121, i64 28
  %129 = load float, ptr %128, align 4, !tbaa !18
  %130 = fsub float %129, %.0176242.us.us.us.us.us.us
  %131 = getelementptr inbounds i8, ptr %121, i64 12
  %132 = load float, ptr %131, align 4, !tbaa !16
  %133 = fmul float %132, %132
  %134 = fmul float %127, %127
  %135 = tail call float @llvm.fmuladd.f32(float %124, float %124, float %134)
  %136 = tail call float @llvm.fmuladd.f32(float %130, float %130, float %135)
  %137 = fcmp ogt float %133, %136
  br i1 %137, label %138, label %119

138:                                              ; preds = %.preheader.us.us.us.us.us.us
  %139 = add nsw i32 %.2185240.us.us.us.us.us.us, 1
  br label %..loopexit_crit_edge.us.us.us.us.us.us

..loopexit_crit_edge.us.us.us.us.us.us:           ; preds = %119, %138, %.thread.us.us.us.us.us.us
  %.4187.us.us.us.us.us.us = phi i32 [ %139, %138 ], [ %118, %.thread.us.us.us.us.us.us ], [ %.2185240.us.us.us.us.us.us, %119 ]
  %140 = add nsw i32 %.2181241.us.us.us.us.us.us, 1
  %141 = fadd float %94, %.0176242.us.us.us.us.us.us
  %142 = fcmp olt float %141, %.2.lcssa
  br i1 %142, label %.preheader206.us.us.us.us.us.us, label %._crit_edge243.split.us.us.us.us.us.us, !llvm.loop !32

._crit_edge243.split.us.us.us.us.us.us:           ; preds = %..loopexit_crit_edge.us.us.us.us.us.us
  %143 = fadd float %93, %.0177249.us.us.us.us.us
  %144 = fcmp olt float %143, %.3160.lcssa
  br i1 %144, label %.preheader207.us.us.us.us.us, label %._crit_edge251.split.us.split.us.us.us.us, !llvm.loop !33

._crit_edge251.split.us.split.us.us.us.us:        ; preds = %._crit_edge243.split.us.us.us.us.us.us
  %145 = fadd float %92, %.0178273.us.us.us
  %146 = fcmp olt float %145, %.3169.lcssa
  br i1 %146, label %.preheader208.us.us.us, label %._crit_edge276, !llvm.loop !34

.preheader208.us.us:                              ; preds = %.preheader208.lr.ph.split.us.split.us, %._crit_edge251.split.us.split.us287.us
  %.0178273.us.us = phi float [ %173, %._crit_edge251.split.us.split.us287.us ], [ %.3174.lcssa, %.preheader208.lr.ph.split.us.split.us ]
  %.0179272.us.us = phi i32 [ %168, %._crit_edge251.split.us.split.us287.us ], [ 0, %.preheader208.lr.ph.split.us.split.us ]
  %.0183271.us.us = phi i32 [ %.4187.us258.us.us, %._crit_edge251.split.us.split.us287.us ], [ 0, %.preheader208.lr.ph.split.us.split.us ]
  br label %.preheader207.us.us283.us

.preheader207.us.us283.us:                        ; preds = %.preheader208.us.us, %._crit_edge243.split.us264.us.us
  %.0177249.us.us284.us = phi float [ %.3164.lcssa, %.preheader208.us.us ], [ %171, %._crit_edge243.split.us264.us.us ]
  %.1180248.us.us285.us = phi i32 [ %.0179272.us.us, %.preheader208.us.us ], [ %168, %._crit_edge243.split.us264.us.us ]
  %.1184247.us.us286.us = phi i32 [ %.0183271.us.us, %.preheader208.us.us ], [ %.4187.us258.us.us, %._crit_edge243.split.us264.us.us ]
  br label %.preheader206.us260.us.us

147:                                              ; preds = %.preheader206.us260.us.us, %148
  %.1.in.us254.us.us = phi ptr [ %.1.us255.us.us, %148 ], [ %7, %.preheader206.us260.us.us ]
  %.1.us255.us.us = load ptr, ptr %.1.in.us254.us.us, align 8, !tbaa !12
  %.not203.us256.us.us = icmp eq ptr %.1.us255.us.us, null
  br i1 %.not203.us256.us.us, label %.preheader.us259.us.us, label %148

148:                                              ; preds = %147
  %149 = getelementptr inbounds i8, ptr %.1.us255.us.us, i64 16
  %150 = load ptr, ptr %149, align 8, !tbaa !22
  %151 = getelementptr inbounds i8, ptr %150, i64 24
  %152 = load float, ptr %151, align 8, !tbaa !24
  %153 = fsub float %152, %.0178273.us.us
  %154 = getelementptr inbounds i8, ptr %150, i64 28
  %155 = load float, ptr %154, align 4, !tbaa !27
  %156 = fsub float %155, %.0177249.us.us284.us
  %157 = getelementptr inbounds i8, ptr %150, i64 32
  %158 = load float, ptr %157, align 8, !tbaa !28
  %159 = fsub float %158, %.0176242.us261.us.us
  %160 = getelementptr inbounds i8, ptr %150, i64 20
  %161 = load float, ptr %160, align 4, !tbaa !26
  %162 = fmul float %161, %161
  %163 = fmul float %156, %156
  %164 = tail call float @llvm.fmuladd.f32(float %153, float %153, float %163)
  %165 = tail call float @llvm.fmuladd.f32(float %159, float %159, float %164)
  %166 = fcmp ogt float %162, %165
  br i1 %166, label %.thread.us257.us.us, label %147, !llvm.loop !30

.thread.us257.us.us:                              ; preds = %148
  %167 = add nsw i32 %.2185240.us263.us.us, 1
  br label %.preheader.us259.us.us

.preheader.us259.us.us:                           ; preds = %147, %.thread.us257.us.us
  %.4187.us258.us.us = phi i32 [ %167, %.thread.us257.us.us ], [ %.2185240.us263.us.us, %147 ]
  %168 = add nsw i32 %.2181241.us262.us.us, 1
  %169 = fadd float %94, %.0176242.us261.us.us
  %170 = fcmp olt float %169, %.2.lcssa
  br i1 %170, label %.preheader206.us260.us.us, label %._crit_edge243.split.us264.us.us, !llvm.loop !32

.preheader206.us260.us.us:                        ; preds = %.preheader.us259.us.us, %.preheader207.us.us283.us
  %.0176242.us261.us.us = phi float [ %.2155.lcssa, %.preheader207.us.us283.us ], [ %169, %.preheader.us259.us.us ]
  %.2181241.us262.us.us = phi i32 [ %.1180248.us.us285.us, %.preheader207.us.us283.us ], [ %168, %.preheader.us259.us.us ]
  %.2185240.us263.us.us = phi i32 [ %.1184247.us.us286.us, %.preheader207.us.us283.us ], [ %.4187.us258.us.us, %.preheader.us259.us.us ]
  br label %147

._crit_edge243.split.us264.us.us:                 ; preds = %.preheader.us259.us.us
  %171 = fadd float %93, %.0177249.us.us284.us
  %172 = fcmp olt float %171, %.3160.lcssa
  br i1 %172, label %.preheader207.us.us283.us, label %._crit_edge251.split.us.split.us287.us, !llvm.loop !33

._crit_edge251.split.us.split.us287.us:           ; preds = %._crit_edge243.split.us264.us.us
  %173 = fadd float %92, %.0178273.us.us
  %174 = fcmp olt float %173, %.3169.lcssa
  br i1 %174, label %.preheader208.us.us, label %._crit_edge276, !llvm.loop !34

._crit_edge276:                                   ; preds = %._crit_edge251.split.us.split.us287.us, %._crit_edge251.split.us.split.us.us.us.us, %._crit_edge
  %.0183.lcssa = phi i32 [ 0, %._crit_edge ], [ %.4187.us.us.us.us.us.us, %._crit_edge251.split.us.split.us.us.us.us ], [ %.4187.us258.us.us, %._crit_edge251.split.us.split.us287.us ]
  %.0179.lcssa = phi i32 [ 0, %._crit_edge ], [ %140, %._crit_edge251.split.us.split.us.us.us.us ], [ %168, %._crit_edge251.split.us.split.us287.us ]
  %175 = fmul float %89, %90
  %176 = fmul float %175, %91
  %177 = sitofp i32 %.0183.lcssa to float
  %178 = sitofp i32 %.0179.lcssa to float
  %179 = fdiv float %177, %178
  %180 = fmul float %176, %179
  %181 = load ptr, ptr %3, align 8, !tbaa !35
  %182 = getelementptr inbounds i8, ptr %181, i64 8
  %183 = load float, ptr %182, align 4, !tbaa !36
  %184 = fadd float %183, %2
  %185 = fsub float %184, %180
  %186 = fdiv float %185, %2
  %187 = getelementptr inbounds i8, ptr %3, i64 28
  store float %186, ptr %187, align 4, !tbaa !38
  ret float %186
}

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare float @llvm.fmuladd.f32(float, float, float) #1

attributes #0 = { nofree norecurse nosync nounwind memory(read, argmem: readwrite, inaccessiblemem: none) 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 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }

!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 8}
!6 = !{!"s_pocket", !7, i64 0, !7, i64 8, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28, !8, i64 32, !11, i64 44, !11, i64 48, !11, i64 52, !11, i64 56}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"float", !8, i64 0}
!11 = !{!"int", !8, i64 0}
!12 = !{!7, !7, i64 0}
!13 = !{!14, !10, i64 20}
!14 = !{!"s_atm", !11, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28, !8, i64 32, !8, i64 37, !8, i64 44, !8, i64 60, !8, i64 76, !8, i64 79, !11, i64 88, !11, i64 92, !11, i64 96, !11, i64 100, !11, i64 104, !11, i64 108, !11, i64 112, !10, i64 116, !10, i64 120, !10, i64 124, !10, i64 128, !10, i64 132, !10, i64 136, !10, i64 140, !8, i64 144, !8, i64 145, !10, i64 148, !10, i64 152, !10, i64 156, !10, i64 160, !15, i64 164, !7, i64 168, !11, i64 176}
!15 = !{!"short", !8, i64 0}
!16 = !{!14, !10, i64 12}
!17 = !{!14, !10, i64 24}
!18 = !{!14, !10, i64 28}
!19 = distinct !{!19, !20, !21}
!20 = !{!"llvm.loop.mustprogress"}
!21 = !{!"llvm.loop.peeled.count", i32 1}
!22 = !{!23, !7, i64 16}
!23 = !{!"node_vertice", !7, i64 0, !7, i64 8, !7, i64 16}
!24 = !{!25, !10, i64 24}
!25 = !{!"s_vvertice", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !11, i64 16, !10, i64 20, !10, i64 24, !10, i64 28, !10, i64 32, !11, i64 36, !11, i64 40, !8, i64 44, !8, i64 64, !8, i64 96, !10, i64 108}
!26 = !{!25, !10, i64 20}
!27 = !{!25, !10, i64 28}
!28 = !{!25, !10, i64 32}
!29 = distinct !{!29, !20}
!30 = distinct !{!30, !20}
!31 = distinct !{!31, !20}
!32 = distinct !{!32, !20}
!33 = distinct !{!33, !20}
!34 = distinct !{!34, !20}
!35 = !{!6, !7, i64 0}
!36 = !{!37, !10, i64 8}
!37 = !{!"s_desc", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28, !10, i64 32, !10, i64 36, !10, i64 40, !10, i64 44, !10, i64 48, !10, i64 52, !10, i64 56, !10, i64 60, !10, i64 64, !10, i64 68, !10, i64 72, !10, i64 76, !10, i64 80, !10, i64 84, !10, i64 88, !10, i64 92, !10, i64 96, !10, i64 100, !10, i64 104, !11, i64 108, !8, i64 112, !11, i64 192, !11, i64 196, !11, i64 200, !10, i64 204, !10, i64 208, !11, i64 212, !11, i64 216, !11, i64 220, !11, i64 224, !11, i64 228, !8, i64 232, !8, i64 487, !8, i64 742}
!38 = !{!6, !10, i64 28}


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