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

; 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.c_lst_pockets = type { ptr, ptr, ptr, i64, ptr }
%struct.node_pocket = type { ptr, ptr, ptr }
%struct.s_pocket = type { ptr, ptr, float, float, float, float, [3 x float], i32, i32, i32, i32 }
%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 void @set_normalized_descriptors(ptr noundef %0) #1 {
  %2 = alloca ptr, align 8
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca float, align 4
  %6 = alloca float, align 4
  %7 = alloca float, align 4
  %8 = alloca float, align 4
  %9 = alloca float, align 4
  %10 = alloca float, align 4
  %11 = alloca float, align 4
  %12 = alloca float, align 4
  %13 = alloca float, align 4
  %14 = alloca float, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  %19 = load ptr, ptr %2, align 8, !tbaa !5
  %20 = icmp ne ptr %19, null
  br i1 %20, label %21, label %26

21:                                               ; preds = %1
  %22 = load ptr, ptr %2, align 8, !tbaa !5
  %23 = getelementptr inbounds %struct.c_lst_pockets, ptr %22, i32 0, i32 3
  %24 = load i64, ptr %23, align 8, !tbaa !9
  %25 = icmp ule i64 %24, 0
  br i1 %25, label %26, label %27

26:                                               ; preds = %21, %1
  br label %399

27:                                               ; preds = %21
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #2
  store ptr null, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #2
  store ptr null, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #2
  store float 0.000000e+00, ptr %5, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #2
  store float 1.000000e+00, ptr %6, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #2
  store float 0.000000e+00, ptr %7, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #2
  store float 1.000000e+00, ptr %8, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #2
  store float 0.000000e+00, ptr %9, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #2
  store float 1.000000e+02, ptr %10, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #2
  store float 0.000000e+00, ptr %11, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #2
  store float 1.000000e+03, ptr %12, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #2
  store float 0.000000e+00, ptr %13, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #2
  store float 1.000000e+03, ptr %14, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #2
  store i32 0, ptr %15, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #2
  store i32 1000, ptr %16, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #2
  store i32 -1, ptr %17, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #2
  store i32 10000, ptr %18, align 4, !tbaa !14
  %28 = load ptr, ptr %2, align 8, !tbaa !5
  %29 = getelementptr inbounds %struct.c_lst_pockets, ptr %28, i32 0, i32 0
  %30 = load ptr, ptr %29, align 8, !tbaa !16
  store ptr %30, ptr %3, align 8, !tbaa !5
  br label %31

31:                                               ; preds = %215, %27
  %32 = load ptr, ptr %3, align 8, !tbaa !5
  %33 = icmp ne ptr %32, null
  br i1 %33, label %34, label %219

34:                                               ; preds = %31
  %35 = load ptr, ptr %3, align 8, !tbaa !5
  %36 = getelementptr inbounds %struct.node_pocket, ptr %35, i32 0, i32 2
  %37 = load ptr, ptr %36, align 8, !tbaa !17
  %38 = getelementptr inbounds %struct.s_pocket, ptr %37, i32 0, i32 0
  %39 = load ptr, ptr %38, align 8, !tbaa !19
  store ptr %39, ptr %4, align 8, !tbaa !5
  %40 = load ptr, ptr %3, align 8, !tbaa !5
  %41 = load ptr, ptr %2, align 8, !tbaa !5
  %42 = getelementptr inbounds %struct.c_lst_pockets, ptr %41, i32 0, i32 0
  %43 = load ptr, ptr %42, align 8, !tbaa !16
  %44 = icmp eq ptr %40, %43
  br i1 %44, label %45, label %67

45:                                               ; preds = %34
  %46 = load ptr, ptr %4, align 8, !tbaa !5
  %47 = getelementptr inbounds %struct.s_desc, ptr %46, i32 0, i32 10
  %48 = load float, ptr %47, align 4, !tbaa !21
  store float %48, ptr %14, align 4, !tbaa !12
  store float %48, ptr %13, align 4, !tbaa !12
  %49 = load ptr, ptr %4, align 8, !tbaa !5
  %50 = getelementptr inbounds %struct.s_desc, ptr %49, i32 0, i32 9
  %51 = load float, ptr %50, align 4, !tbaa !23
  store float %51, ptr %10, align 4, !tbaa !12
  store float %51, ptr %9, align 4, !tbaa !12
  %52 = load ptr, ptr %4, align 8, !tbaa !5
  %53 = getelementptr inbounds %struct.s_desc, ptr %52, i32 0, i32 30
  %54 = load i32, ptr %53, align 4, !tbaa !24
  store i32 %54, ptr %18, align 4, !tbaa !14
  store i32 %54, ptr %17, align 4, !tbaa !14
  %55 = load ptr, ptr %4, align 8, !tbaa !5
  %56 = getelementptr inbounds %struct.s_desc, ptr %55, i32 0, i32 11
  %57 = load float, ptr %56, align 4, !tbaa !25
  store float %57, ptr %6, align 4, !tbaa !12
  store float %57, ptr %5, align 4, !tbaa !12
  %58 = load ptr, ptr %4, align 8, !tbaa !5
  %59 = getelementptr inbounds %struct.s_desc, ptr %58, i32 0, i32 7
  %60 = load float, ptr %59, align 4, !tbaa !26
  store float %60, ptr %8, align 4, !tbaa !12
  store float %60, ptr %7, align 4, !tbaa !12
  %61 = load ptr, ptr %4, align 8, !tbaa !5
  %62 = getelementptr inbounds %struct.s_desc, ptr %61, i32 0, i32 8
  %63 = load float, ptr %62, align 4, !tbaa !27
  store float %63, ptr %12, align 4, !tbaa !12
  store float %63, ptr %11, align 4, !tbaa !12
  %64 = load ptr, ptr %4, align 8, !tbaa !5
  %65 = getelementptr inbounds %struct.s_desc, ptr %64, i32 0, i32 29
  %66 = load i32, ptr %65, align 4, !tbaa !28
  store i32 %66, ptr %16, align 4, !tbaa !14
  store i32 %66, ptr %15, align 4, !tbaa !14
  br label %215

67:                                               ; preds = %34
  %68 = load ptr, ptr %4, align 8, !tbaa !5
  %69 = getelementptr inbounds %struct.s_desc, ptr %68, i32 0, i32 10
  %70 = load float, ptr %69, align 4, !tbaa !21
  %71 = load float, ptr %13, align 4, !tbaa !12
  %72 = fcmp ogt float %70, %71
  br i1 %72, label %73, label %77

73:                                               ; preds = %67
  %74 = load ptr, ptr %4, align 8, !tbaa !5
  %75 = getelementptr inbounds %struct.s_desc, ptr %74, i32 0, i32 10
  %76 = load float, ptr %75, align 4, !tbaa !21
  store float %76, ptr %13, align 4, !tbaa !12
  br label %88

77:                                               ; preds = %67
  %78 = load ptr, ptr %4, align 8, !tbaa !5
  %79 = getelementptr inbounds %struct.s_desc, ptr %78, i32 0, i32 10
  %80 = load float, ptr %79, align 4, !tbaa !21
  %81 = load float, ptr %14, align 4, !tbaa !12
  %82 = fcmp olt float %80, %81
  br i1 %82, label %83, label %87

83:                                               ; preds = %77
  %84 = load ptr, ptr %4, align 8, !tbaa !5
  %85 = getelementptr inbounds %struct.s_desc, ptr %84, i32 0, i32 10
  %86 = load float, ptr %85, align 4, !tbaa !21
  store float %86, ptr %14, align 4, !tbaa !12
  br label %87

87:                                               ; preds = %83, %77
  br label %88

88:                                               ; preds = %87, %73
  %89 = load ptr, ptr %4, align 8, !tbaa !5
  %90 = getelementptr inbounds %struct.s_desc, ptr %89, i32 0, i32 9
  %91 = load float, ptr %90, align 4, !tbaa !23
  %92 = load float, ptr %9, align 4, !tbaa !12
  %93 = fcmp ogt float %91, %92
  br i1 %93, label %94, label %98

94:                                               ; preds = %88
  %95 = load ptr, ptr %4, align 8, !tbaa !5
  %96 = getelementptr inbounds %struct.s_desc, ptr %95, i32 0, i32 9
  %97 = load float, ptr %96, align 4, !tbaa !23
  store float %97, ptr %9, align 4, !tbaa !12
  br label %109

98:                                               ; preds = %88
  %99 = load ptr, ptr %4, align 8, !tbaa !5
  %100 = getelementptr inbounds %struct.s_desc, ptr %99, i32 0, i32 9
  %101 = load float, ptr %100, align 4, !tbaa !23
  %102 = load float, ptr %10, align 4, !tbaa !12
  %103 = fcmp olt float %101, %102
  br i1 %103, label %104, label %108

104:                                              ; preds = %98
  %105 = load ptr, ptr %4, align 8, !tbaa !5
  %106 = getelementptr inbounds %struct.s_desc, ptr %105, i32 0, i32 9
  %107 = load float, ptr %106, align 4, !tbaa !23
  store float %107, ptr %10, align 4, !tbaa !12
  br label %108

108:                                              ; preds = %104, %98
  br label %109

109:                                              ; preds = %108, %94
  %110 = load ptr, ptr %4, align 8, !tbaa !5
  %111 = getelementptr inbounds %struct.s_desc, ptr %110, i32 0, i32 30
  %112 = load i32, ptr %111, align 4, !tbaa !24
  %113 = load i32, ptr %17, align 4, !tbaa !14
  %114 = icmp sgt i32 %112, %113
  br i1 %114, label %115, label %119

115:                                              ; preds = %109
  %116 = load ptr, ptr %4, align 8, !tbaa !5
  %117 = getelementptr inbounds %struct.s_desc, ptr %116, i32 0, i32 30
  %118 = load i32, ptr %117, align 4, !tbaa !24
  store i32 %118, ptr %17, align 4, !tbaa !14
  br label %130

119:                                              ; preds = %109
  %120 = load ptr, ptr %4, align 8, !tbaa !5
  %121 = getelementptr inbounds %struct.s_desc, ptr %120, i32 0, i32 30
  %122 = load i32, ptr %121, align 4, !tbaa !24
  %123 = load i32, ptr %18, align 4, !tbaa !14
  %124 = icmp slt i32 %122, %123
  br i1 %124, label %125, label %129

125:                                              ; preds = %119
  %126 = load ptr, ptr %4, align 8, !tbaa !5
  %127 = getelementptr inbounds %struct.s_desc, ptr %126, i32 0, i32 30
  %128 = load i32, ptr %127, align 4, !tbaa !24
  store i32 %128, ptr %18, align 4, !tbaa !14
  br label %129

129:                                              ; preds = %125, %119
  br label %130

130:                                              ; preds = %129, %115
  %131 = load ptr, ptr %4, align 8, !tbaa !5
  %132 = getelementptr inbounds %struct.s_desc, ptr %131, i32 0, i32 8
  %133 = load float, ptr %132, align 4, !tbaa !27
  %134 = load float, ptr %11, align 4, !tbaa !12
  %135 = fcmp ogt float %133, %134
  br i1 %135, label %136, label %140

136:                                              ; preds = %130
  %137 = load ptr, ptr %4, align 8, !tbaa !5
  %138 = getelementptr inbounds %struct.s_desc, ptr %137, i32 0, i32 8
  %139 = load float, ptr %138, align 4, !tbaa !27
  store float %139, ptr %11, align 4, !tbaa !12
  br label %151

140:                                              ; preds = %130
  %141 = load ptr, ptr %4, align 8, !tbaa !5
  %142 = getelementptr inbounds %struct.s_desc, ptr %141, i32 0, i32 8
  %143 = load float, ptr %142, align 4, !tbaa !27
  %144 = load float, ptr %12, align 4, !tbaa !12
  %145 = fcmp olt float %143, %144
  br i1 %145, label %146, label %150

146:                                              ; preds = %140
  %147 = load ptr, ptr %4, align 8, !tbaa !5
  %148 = getelementptr inbounds %struct.s_desc, ptr %147, i32 0, i32 8
  %149 = load float, ptr %148, align 4, !tbaa !27
  store float %149, ptr %12, align 4, !tbaa !12
  br label %150

150:                                              ; preds = %146, %140
  br label %151

151:                                              ; preds = %150, %136
  %152 = load ptr, ptr %4, align 8, !tbaa !5
  %153 = getelementptr inbounds %struct.s_desc, ptr %152, i32 0, i32 11
  %154 = load float, ptr %153, align 4, !tbaa !25
  %155 = load float, ptr %5, align 4, !tbaa !12
  %156 = fcmp ogt float %154, %155
  br i1 %156, label %157, label %161

157:                                              ; preds = %151
  %158 = load ptr, ptr %4, align 8, !tbaa !5
  %159 = getelementptr inbounds %struct.s_desc, ptr %158, i32 0, i32 11
  %160 = load float, ptr %159, align 4, !tbaa !25
  store float %160, ptr %5, align 4, !tbaa !12
  br label %172

161:                                              ; preds = %151
  %162 = load ptr, ptr %4, align 8, !tbaa !5
  %163 = getelementptr inbounds %struct.s_desc, ptr %162, i32 0, i32 11
  %164 = load float, ptr %163, align 4, !tbaa !25
  %165 = load float, ptr %6, align 4, !tbaa !12
  %166 = fcmp olt float %164, %165
  br i1 %166, label %167, label %171

167:                                              ; preds = %161
  %168 = load ptr, ptr %4, align 8, !tbaa !5
  %169 = getelementptr inbounds %struct.s_desc, ptr %168, i32 0, i32 11
  %170 = load float, ptr %169, align 4, !tbaa !25
  store float %170, ptr %6, align 4, !tbaa !12
  br label %171

171:                                              ; preds = %167, %161
  br label %172

172:                                              ; preds = %171, %157
  %173 = load ptr, ptr %4, align 8, !tbaa !5
  %174 = getelementptr inbounds %struct.s_desc, ptr %173, i32 0, i32 29
  %175 = load i32, ptr %174, align 4, !tbaa !28
  %176 = load i32, ptr %15, align 4, !tbaa !14
  %177 = icmp sgt i32 %175, %176
  br i1 %177, label %178, label %182

178:                                              ; preds = %172
  %179 = load ptr, ptr %4, align 8, !tbaa !5
  %180 = getelementptr inbounds %struct.s_desc, ptr %179, i32 0, i32 29
  %181 = load i32, ptr %180, align 4, !tbaa !28
  store i32 %181, ptr %15, align 4, !tbaa !14
  br label %193

182:                                              ; preds = %172
  %183 = load ptr, ptr %4, align 8, !tbaa !5
  %184 = getelementptr inbounds %struct.s_desc, ptr %183, i32 0, i32 29
  %185 = load i32, ptr %184, align 4, !tbaa !28
  %186 = load i32, ptr %16, align 4, !tbaa !14
  %187 = icmp slt i32 %185, %186
  br i1 %187, label %188, label %192

188:                                              ; preds = %182
  %189 = load ptr, ptr %4, align 8, !tbaa !5
  %190 = getelementptr inbounds %struct.s_desc, ptr %189, i32 0, i32 29
  %191 = load i32, ptr %190, align 4, !tbaa !28
  store i32 %191, ptr %16, align 4, !tbaa !14
  br label %192

192:                                              ; preds = %188, %182
  br label %193

193:                                              ; preds = %192, %178
  %194 = load ptr, ptr %4, align 8, !tbaa !5
  %195 = getelementptr inbounds %struct.s_desc, ptr %194, i32 0, i32 7
  %196 = load float, ptr %195, align 4, !tbaa !26
  %197 = load float, ptr %7, align 4, !tbaa !12
  %198 = fcmp ogt float %196, %197
  br i1 %198, label %199, label %203

199:                                              ; preds = %193
  %200 = load ptr, ptr %4, align 8, !tbaa !5
  %201 = getelementptr inbounds %struct.s_desc, ptr %200, i32 0, i32 7
  %202 = load float, ptr %201, align 4, !tbaa !26
  store float %202, ptr %7, align 4, !tbaa !12
  br label %214

203:                                              ; preds = %193
  %204 = load ptr, ptr %4, align 8, !tbaa !5
  %205 = getelementptr inbounds %struct.s_desc, ptr %204, i32 0, i32 7
  %206 = load float, ptr %205, align 4, !tbaa !26
  %207 = load float, ptr %8, align 4, !tbaa !12
  %208 = fcmp olt float %206, %207
  br i1 %208, label %209, label %213

209:                                              ; preds = %203
  %210 = load ptr, ptr %4, align 8, !tbaa !5
  %211 = getelementptr inbounds %struct.s_desc, ptr %210, i32 0, i32 7
  %212 = load float, ptr %211, align 4, !tbaa !26
  store float %212, ptr %8, align 4, !tbaa !12
  br label %213

213:                                              ; preds = %209, %203
  br label %214

214:                                              ; preds = %213, %199
  br label %215

215:                                              ; preds = %214, %45
  %216 = load ptr, ptr %3, align 8, !tbaa !5
  %217 = getelementptr inbounds %struct.node_pocket, ptr %216, i32 0, i32 0
  %218 = load ptr, ptr %217, align 8, !tbaa !29
  store ptr %218, ptr %3, align 8, !tbaa !5
  br label %31, !llvm.loop !30

219:                                              ; preds = %31
  %220 = load ptr, ptr %2, align 8, !tbaa !5
  %221 = getelementptr inbounds %struct.c_lst_pockets, ptr %220, i32 0, i32 0
  %222 = load ptr, ptr %221, align 8, !tbaa !16
  store ptr %222, ptr %3, align 8, !tbaa !5
  %223 = load ptr, ptr %2, align 8, !tbaa !5
  %224 = getelementptr inbounds %struct.c_lst_pockets, ptr %223, i32 0, i32 3
  %225 = load i64, ptr %224, align 8, !tbaa !9
  %226 = icmp ugt i64 %225, 1
  br i1 %226, label %227, label %371

227:                                              ; preds = %219
  br label %228

228:                                              ; preds = %366, %227
  %229 = load ptr, ptr %3, align 8, !tbaa !5
  %230 = icmp ne ptr %229, null
  br i1 %230, label %231, label %370

231:                                              ; preds = %228
  %232 = load ptr, ptr %3, align 8, !tbaa !5
  %233 = getelementptr inbounds %struct.node_pocket, ptr %232, i32 0, i32 2
  %234 = load ptr, ptr %233, align 8, !tbaa !17
  %235 = getelementptr inbounds %struct.s_pocket, ptr %234, i32 0, i32 0
  %236 = load ptr, ptr %235, align 8, !tbaa !19
  store ptr %236, ptr %4, align 8, !tbaa !5
  %237 = load float, ptr %13, align 4, !tbaa !12
  %238 = load float, ptr %14, align 4, !tbaa !12
  %239 = fsub float %237, %238
  %240 = fpext float %239 to double
  %241 = fcmp une double %240, 0.000000e+00
  br i1 %241, label %242, label %254

242:                                              ; preds = %231
  %243 = load ptr, ptr %4, align 8, !tbaa !5
  %244 = getelementptr inbounds %struct.s_desc, ptr %243, i32 0, i32 10
  %245 = load float, ptr %244, align 4, !tbaa !21
  %246 = load float, ptr %14, align 4, !tbaa !12
  %247 = fsub float %245, %246
  %248 = load float, ptr %13, align 4, !tbaa !12
  %249 = load float, ptr %14, align 4, !tbaa !12
  %250 = fsub float %248, %249
  %251 = fdiv float %247, %250
  %252 = load ptr, ptr %4, align 8, !tbaa !5
  %253 = getelementptr inbounds %struct.s_desc, ptr %252, i32 0, i32 17
  store float %251, ptr %253, align 4, !tbaa !32
  br label %254

254:                                              ; preds = %242, %231
  %255 = load float, ptr %9, align 4, !tbaa !12
  %256 = load float, ptr %10, align 4, !tbaa !12
  %257 = fsub float %255, %256
  %258 = fpext float %257 to double
  %259 = fcmp une double %258, 0.000000e+00
  br i1 %259, label %260, label %272

260:                                              ; preds = %254
  %261 = load ptr, ptr %4, align 8, !tbaa !5
  %262 = getelementptr inbounds %struct.s_desc, ptr %261, i32 0, i32 9
  %263 = load float, ptr %262, align 4, !tbaa !23
  %264 = load float, ptr %10, align 4, !tbaa !12
  %265 = fsub float %263, %264
  %266 = load float, ptr %9, align 4, !tbaa !12
  %267 = load float, ptr %10, align 4, !tbaa !12
  %268 = fsub float %266, %267
  %269 = fdiv float %265, %268
  %270 = load ptr, ptr %4, align 8, !tbaa !5
  %271 = getelementptr inbounds %struct.s_desc, ptr %270, i32 0, i32 16
  store float %269, ptr %271, align 4, !tbaa !33
  br label %272

272:                                              ; preds = %260, %254
  %273 = load i32, ptr %17, align 4, !tbaa !14
  %274 = load i32, ptr %18, align 4, !tbaa !14
  %275 = sub nsw i32 %273, %274
  %276 = sitofp i32 %275 to double
  %277 = fcmp une double %276, 0.000000e+00
  br i1 %277, label %278, label %292

278:                                              ; preds = %272
  %279 = load ptr, ptr %4, align 8, !tbaa !5
  %280 = getelementptr inbounds %struct.s_desc, ptr %279, i32 0, i32 30
  %281 = load i32, ptr %280, align 4, !tbaa !24
  %282 = load i32, ptr %18, align 4, !tbaa !14
  %283 = sub nsw i32 %281, %282
  %284 = sitofp i32 %283 to float
  %285 = load i32, ptr %17, align 4, !tbaa !14
  %286 = load i32, ptr %18, align 4, !tbaa !14
  %287 = sub nsw i32 %285, %286
  %288 = sitofp i32 %287 to float
  %289 = fdiv float %284, %288
  %290 = load ptr, ptr %4, align 8, !tbaa !5
  %291 = getelementptr inbounds %struct.s_desc, ptr %290, i32 0, i32 13
  store float %289, ptr %291, align 4, !tbaa !34
  br label %292

292:                                              ; preds = %278, %272
  %293 = load float, ptr %11, align 4, !tbaa !12
  %294 = load float, ptr %12, align 4, !tbaa !12
  %295 = fsub float %293, %294
  %296 = fpext float %295 to double
  %297 = fcmp une double %296, 0.000000e+00
  br i1 %297, label %298, label %310

298:                                              ; preds = %292
  %299 = load ptr, ptr %4, align 8, !tbaa !5
  %300 = getelementptr inbounds %struct.s_desc, ptr %299, i32 0, i32 8
  %301 = load float, ptr %300, align 4, !tbaa !27
  %302 = load float, ptr %12, align 4, !tbaa !12
  %303 = fsub float %301, %302
  %304 = load float, ptr %11, align 4, !tbaa !12
  %305 = load float, ptr %12, align 4, !tbaa !12
  %306 = fsub float %304, %305
  %307 = fdiv float %303, %306
  %308 = load ptr, ptr %4, align 8, !tbaa !5
  %309 = getelementptr inbounds %struct.s_desc, ptr %308, i32 0, i32 14
  store float %307, ptr %309, align 4, !tbaa !35
  br label %310

310:                                              ; preds = %298, %292
  %311 = load float, ptr %5, align 4, !tbaa !12
  %312 = load float, ptr %6, align 4, !tbaa !12
  %313 = fsub float %311, %312
  %314 = fpext float %313 to double
  %315 = fcmp une double %314, 0.000000e+00
  br i1 %315, label %316, label %328

316:                                              ; preds = %310
  %317 = load ptr, ptr %4, align 8, !tbaa !5
  %318 = getelementptr inbounds %struct.s_desc, ptr %317, i32 0, i32 11
  %319 = load float, ptr %318, align 4, !tbaa !25
  %320 = load float, ptr %6, align 4, !tbaa !12
  %321 = fsub float %319, %320
  %322 = load float, ptr %5, align 4, !tbaa !12
  %323 = load float, ptr %6, align 4, !tbaa !12
  %324 = fsub float %322, %323
  %325 = fdiv float %321, %324
  %326 = load ptr, ptr %4, align 8, !tbaa !5
  %327 = getelementptr inbounds %struct.s_desc, ptr %326, i32 0, i32 11
  store float %325, ptr %327, align 4, !tbaa !25
  br label %328

328:                                              ; preds = %316, %310
  %329 = load i32, ptr %15, align 4, !tbaa !14
  %330 = load i32, ptr %16, align 4, !tbaa !14
  %331 = sub nsw i32 %329, %330
  %332 = sitofp i32 %331 to double
  %333 = fcmp une double %332, 0.000000e+00
  br i1 %333, label %334, label %348

334:                                              ; preds = %328
  %335 = load ptr, ptr %4, align 8, !tbaa !5
  %336 = getelementptr inbounds %struct.s_desc, ptr %335, i32 0, i32 29
  %337 = load i32, ptr %336, align 4, !tbaa !28
  %338 = load i32, ptr %16, align 4, !tbaa !14
  %339 = sub nsw i32 %337, %338
  %340 = sitofp i32 %339 to float
  %341 = load i32, ptr %15, align 4, !tbaa !14
  %342 = load i32, ptr %16, align 4, !tbaa !14
  %343 = sub nsw i32 %341, %342
  %344 = sitofp i32 %343 to float
  %345 = fdiv float %340, %344
  %346 = load ptr, ptr %4, align 8, !tbaa !5
  %347 = getelementptr inbounds %struct.s_desc, ptr %346, i32 0, i32 12
  store float %345, ptr %347, align 4, !tbaa !36
  br label %348

348:                                              ; preds = %334, %328
  %349 = load float, ptr %7, align 4, !tbaa !12
  %350 = load float, ptr %8, align 4, !tbaa !12
  %351 = fsub float %349, %350
  %352 = fpext float %351 to double
  %353 = fcmp une double %352, 0.000000e+00
  br i1 %353, label %354, label %366

354:                                              ; preds = %348
  %355 = load ptr, ptr %4, align 8, !tbaa !5
  %356 = getelementptr inbounds %struct.s_desc, ptr %355, i32 0, i32 7
  %357 = load float, ptr %356, align 4, !tbaa !26
  %358 = load float, ptr %8, align 4, !tbaa !12
  %359 = fsub float %357, %358
  %360 = load float, ptr %7, align 4, !tbaa !12
  %361 = load float, ptr %8, align 4, !tbaa !12
  %362 = fsub float %360, %361
  %363 = fdiv float %359, %362
  %364 = load ptr, ptr %4, align 8, !tbaa !5
  %365 = getelementptr inbounds %struct.s_desc, ptr %364, i32 0, i32 15
  store float %363, ptr %365, align 4, !tbaa !37
  br label %366

366:                                              ; preds = %354, %348
  %367 = load ptr, ptr %3, align 8, !tbaa !5
  %368 = getelementptr inbounds %struct.node_pocket, ptr %367, i32 0, i32 0
  %369 = load ptr, ptr %368, align 8, !tbaa !29
  store ptr %369, ptr %3, align 8, !tbaa !5
  br label %228, !llvm.loop !38

370:                                              ; preds = %228
  br label %398

371:                                              ; preds = %219
  %372 = load ptr, ptr %3, align 8, !tbaa !5
  %373 = getelementptr inbounds %struct.node_pocket, ptr %372, i32 0, i32 2
  %374 = load ptr, ptr %373, align 8, !tbaa !17
  %375 = getelementptr inbounds %struct.s_pocket, ptr %374, i32 0, i32 0
  %376 = load ptr, ptr %375, align 8, !tbaa !19
  store ptr %376, ptr %4, align 8, !tbaa !5
  %377 = load ptr, ptr %4, align 8, !tbaa !5
  %378 = getelementptr inbounds %struct.s_desc, ptr %377, i32 0, i32 13
  store float 0.000000e+00, ptr %378, align 4, !tbaa !34
  %379 = load ptr, ptr %4, align 8, !tbaa !5
  %380 = getelementptr inbounds %struct.s_desc, ptr %379, i32 0, i32 16
  store float 0.000000e+00, ptr %380, align 4, !tbaa !33
  %381 = load ptr, ptr %4, align 8, !tbaa !5
  %382 = getelementptr inbounds %struct.s_desc, ptr %381, i32 0, i32 17
  store float 0.000000e+00, ptr %382, align 4, !tbaa !32
  %383 = load ptr, ptr %4, align 8, !tbaa !5
  %384 = getelementptr inbounds %struct.s_desc, ptr %383, i32 0, i32 8
  %385 = load float, ptr %384, align 4, !tbaa !27
  %386 = fpext float %385 to double
  %387 = fsub double %386, 8.230000e+00
  %388 = fdiv double %387, 0x402FF0A3D70A3D70
  %389 = fptrunc double %388 to float
  %390 = load ptr, ptr %4, align 8, !tbaa !5
  %391 = getelementptr inbounds %struct.s_desc, ptr %390, i32 0, i32 14
  store float %389, ptr %391, align 4, !tbaa !35
  %392 = load ptr, ptr %4, align 8, !tbaa !5
  %393 = getelementptr inbounds %struct.s_desc, ptr %392, i32 0, i32 11
  store float 0.000000e+00, ptr %393, align 4, !tbaa !25
  %394 = load ptr, ptr %4, align 8, !tbaa !5
  %395 = getelementptr inbounds %struct.s_desc, ptr %394, i32 0, i32 12
  store float 0.000000e+00, ptr %395, align 4, !tbaa !36
  %396 = load ptr, ptr %4, align 8, !tbaa !5
  %397 = getelementptr inbounds %struct.s_desc, ptr %396, i32 0, i32 15
  store float 0.000000e+00, ptr %397, align 4, !tbaa !37
  br label %398

398:                                              ; preds = %371, %370
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #2
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #2
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #2
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #2
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #2
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #2
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #2
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #2
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #2
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #2
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #2
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #2
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #2
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #2
  br label %399

399:                                              ; preds = %398, %26
  ret void
}

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 = { 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, !11, i64 24}
!10 = !{!"c_lst_pockets", !6, i64 0, !6, i64 8, !6, i64 16, !11, i64 24, !6, i64 32}
!11 = !{!"long", !7, i64 0}
!12 = !{!13, !13, i64 0}
!13 = !{!"float", !7, i64 0}
!14 = !{!15, !15, i64 0}
!15 = !{!"int", !7, i64 0}
!16 = !{!10, !6, i64 0}
!17 = !{!18, !6, i64 16}
!18 = !{!"node_pocket", !6, i64 0, !6, i64 8, !6, i64 16}
!19 = !{!20, !6, i64 0}
!20 = !{!"s_pocket", !6, i64 0, !6, i64 8, !13, i64 16, !13, i64 20, !13, i64 24, !13, i64 28, !7, i64 32, !15, i64 44, !15, i64 48, !15, i64 52, !15, i64 56}
!21 = !{!22, !13, i64 40}
!22 = !{!"s_desc", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !13, i64 16, !13, i64 20, !13, i64 24, !13, i64 28, !13, i64 32, !13, i64 36, !13, i64 40, !13, i64 44, !13, i64 48, !13, i64 52, !13, i64 56, !13, i64 60, !13, i64 64, !13, i64 68, !13, i64 72, !13, i64 76, !13, i64 80, !13, i64 84, !13, i64 88, !13, i64 92, !13, i64 96, !13, i64 100, !13, i64 104, !15, i64 108, !7, i64 112, !15, i64 192, !15, i64 196, !15, i64 200, !13, i64 204, !13, i64 208, !15, i64 212, !15, i64 216, !15, i64 220, !15, i64 224, !15, i64 228, !7, i64 232, !7, i64 487, !7, i64 742}
!23 = !{!22, !13, i64 36}
!24 = !{!22, !15, i64 196}
!25 = !{!22, !13, i64 44}
!26 = !{!22, !13, i64 28}
!27 = !{!22, !13, i64 32}
!28 = !{!22, !15, i64 192}
!29 = !{!18, !6, i64 0}
!30 = distinct !{!30, !31}
!31 = !{!"llvm.loop.mustprogress"}
!32 = !{!22, !13, i64 68}
!33 = !{!22, !13, i64 64}
!34 = !{!22, !13, i64 52}
!35 = !{!22, !13, i64 56}
!36 = !{!22, !13, i64 48}
!37 = !{!22, !13, i64 60}
!38 = distinct !{!38, !31}


; 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(readwrite, inaccessiblemem: none) uwtable
define dso_local void @set_normalized_descriptors(ptr noundef readonly %0) local_unnamed_addr #0 {
  %.not = icmp eq ptr %0, null
  br i1 %.not, label %.loopexit, label %2

2:                                                ; preds = %1
  %3 = getelementptr inbounds i8, ptr %0, i64 24
  %4 = load i64, ptr %3, align 8, !tbaa !5
  %5 = icmp eq i64 %4, 0
  br i1 %5, label %.loopexit, label %.preheader179

.preheader179:                                    ; preds = %2
  %.0156180 = load ptr, ptr %0, align 8, !tbaa !11
  %.not173181 = icmp eq ptr %.0156180, null
  br i1 %.not173181, label %._crit_edge.thread, label %.lr.ph

.lr.ph:                                           ; preds = %.preheader179, %64
  %.0156196 = phi ptr [ %.0156, %64 ], [ %.0156180, %.preheader179 ]
  %.0195 = phi i32 [ %.2, %64 ], [ 10000, %.preheader179 ]
  %.0119194 = phi i32 [ %.2121, %64 ], [ -1, %.preheader179 ]
  %.0122193 = phi i32 [ %.2124, %64 ], [ 1000, %.preheader179 ]
  %.0125192 = phi i32 [ %.2127, %64 ], [ 0, %.preheader179 ]
  %.0128191 = phi float [ %.2130, %64 ], [ 1.000000e+03, %.preheader179 ]
  %.0131190 = phi float [ %.2133, %64 ], [ 0.000000e+00, %.preheader179 ]
  %.0134189 = phi float [ %.2136, %64 ], [ 1.000000e+03, %.preheader179 ]
  %.0137188 = phi float [ %.2139, %64 ], [ 0.000000e+00, %.preheader179 ]
  %.0140187 = phi float [ %.2142, %64 ], [ 1.000000e+02, %.preheader179 ]
  %.0143186 = phi float [ %.2145, %64 ], [ 0.000000e+00, %.preheader179 ]
  %.0146185 = phi float [ %.1147, %64 ], [ 1.000000e+00, %.preheader179 ]
  %.0148184 = phi float [ %.1149, %64 ], [ 0.000000e+00, %.preheader179 ]
  %.0150183 = phi float [ %.2152, %64 ], [ 1.000000e+00, %.preheader179 ]
  %.0153182 = phi float [ %.2155, %64 ], [ 0.000000e+00, %.preheader179 ]
  %6 = getelementptr inbounds i8, ptr %.0156196, i64 16
  %7 = load ptr, ptr %6, align 8, !tbaa !12
  %8 = load ptr, ptr %7, align 8, !tbaa !14
  %9 = icmp eq ptr %.0156196, %.0156180
  %10 = getelementptr inbounds i8, ptr %8, i64 40
  %11 = load float, ptr %10, align 4, !tbaa !18
  br i1 %9, label %12, label %25

12:                                               ; preds = %.lr.ph
  %13 = getelementptr inbounds i8, ptr %8, i64 36
  %14 = load float, ptr %13, align 4, !tbaa !20
  %15 = getelementptr inbounds i8, ptr %8, i64 196
  %16 = load i32, ptr %15, align 4, !tbaa !21
  %17 = getelementptr inbounds i8, ptr %8, i64 44
  %18 = load float, ptr %17, align 4, !tbaa !22
  %19 = getelementptr inbounds i8, ptr %8, i64 28
  %20 = load float, ptr %19, align 4, !tbaa !23
  %21 = getelementptr inbounds i8, ptr %8, i64 32
  %22 = load float, ptr %21, align 4, !tbaa !24
  %23 = getelementptr inbounds i8, ptr %8, i64 192
  %24 = load i32, ptr %23, align 4, !tbaa !25
  br label %64

25:                                               ; preds = %.lr.ph
  %26 = fcmp ogt float %11, %.0131190
  br i1 %26, label %30, label %27

27:                                               ; preds = %25
  %28 = fcmp olt float %11, %.0128191
  br i1 %28, label %29, label %30

29:                                               ; preds = %27
  br label %30

30:                                               ; preds = %25, %27, %29
  %.1132 = phi float [ %.0131190, %29 ], [ %.0131190, %27 ], [ %11, %25 ]
  %.1129 = phi float [ %11, %29 ], [ %.0128191, %27 ], [ %.0128191, %25 ]
  %31 = getelementptr inbounds i8, ptr %8, i64 36
  %32 = load float, ptr %31, align 4, !tbaa !20
  %33 = fcmp ogt float %32, %.0143186
  br i1 %33, label %37, label %34

34:                                               ; preds = %30
  %35 = fcmp olt float %32, %.0140187
  br i1 %35, label %36, label %37

36:                                               ; preds = %34
  br label %37

37:                                               ; preds = %30, %34, %36
  %.1144 = phi float [ %.0143186, %36 ], [ %.0143186, %34 ], [ %32, %30 ]
  %.1141 = phi float [ %32, %36 ], [ %.0140187, %34 ], [ %.0140187, %30 ]
  %38 = getelementptr inbounds i8, ptr %8, i64 196
  %39 = load i32, ptr %38, align 4, !tbaa !21
  %40 = icmp sgt i32 %39, %.0119194
  %spec.select = tail call i32 @llvm.smin.i32(i32 %39, i32 %.0195)
  %.1120 = tail call i32 @llvm.smax.i32(i32 %39, i32 %.0119194)
  %.1 = select i1 %40, i32 %.0195, i32 %spec.select
  %41 = getelementptr inbounds i8, ptr %8, i64 32
  %42 = load float, ptr %41, align 4, !tbaa !24
  %43 = fcmp ogt float %42, %.0137188
  br i1 %43, label %47, label %44

44:                                               ; preds = %37
  %45 = fcmp olt float %42, %.0134189
  br i1 %45, label %46, label %47

46:                                               ; preds = %44
  br label %47

47:                                               ; preds = %37, %44, %46
  %.1138 = phi float [ %.0137188, %46 ], [ %.0137188, %44 ], [ %42, %37 ]
  %.1135 = phi float [ %42, %46 ], [ %.0134189, %44 ], [ %.0134189, %37 ]
  %48 = getelementptr inbounds i8, ptr %8, i64 44
  %49 = load float, ptr %48, align 4, !tbaa !22
  %50 = fcmp ogt float %49, %.0153182
  br i1 %50, label %54, label %51

51:                                               ; preds = %47
  %52 = fcmp olt float %49, %.0150183
  br i1 %52, label %53, label %54

53:                                               ; preds = %51
  br label %54

54:                                               ; preds = %47, %51, %53
  %.1154 = phi float [ %.0153182, %53 ], [ %.0153182, %51 ], [ %49, %47 ]
  %.1151 = phi float [ %49, %53 ], [ %.0150183, %51 ], [ %.0150183, %47 ]
  %55 = getelementptr inbounds i8, ptr %8, i64 192
  %56 = load i32, ptr %55, align 4, !tbaa !25
  %57 = icmp sgt i32 %56, %.0125192
  %spec.select177 = tail call i32 @llvm.smin.i32(i32 %56, i32 %.0122193)
  %.1126 = tail call i32 @llvm.smax.i32(i32 %56, i32 %.0125192)
  %.1123 = select i1 %57, i32 %.0122193, i32 %spec.select177
  %58 = getelementptr inbounds i8, ptr %8, i64 28
  %59 = load float, ptr %58, align 4, !tbaa !23
  %60 = fcmp ogt float %59, %.0148184
  br i1 %60, label %64, label %61

61:                                               ; preds = %54
  %62 = fcmp olt float %59, %.0146185
  br i1 %62, label %63, label %64

63:                                               ; preds = %61
  br label %64

64:                                               ; preds = %54, %63, %61, %12
  %.2155 = phi float [ %18, %12 ], [ %.1154, %63 ], [ %.1154, %61 ], [ %.1154, %54 ]
  %.2152 = phi float [ %18, %12 ], [ %.1151, %63 ], [ %.1151, %61 ], [ %.1151, %54 ]
  %.1149 = phi float [ %20, %12 ], [ %.0148184, %63 ], [ %.0148184, %61 ], [ %59, %54 ]
  %.1147 = phi float [ %20, %12 ], [ %59, %63 ], [ %.0146185, %61 ], [ %.0146185, %54 ]
  %.2145 = phi float [ %14, %12 ], [ %.1144, %63 ], [ %.1144, %61 ], [ %.1144, %54 ]
  %.2142 = phi float [ %14, %12 ], [ %.1141, %63 ], [ %.1141, %61 ], [ %.1141, %54 ]
  %.2139 = phi float [ %22, %12 ], [ %.1138, %63 ], [ %.1138, %61 ], [ %.1138, %54 ]
  %.2136 = phi float [ %22, %12 ], [ %.1135, %63 ], [ %.1135, %61 ], [ %.1135, %54 ]
  %.2133 = phi float [ %11, %12 ], [ %.1132, %63 ], [ %.1132, %61 ], [ %.1132, %54 ]
  %.2130 = phi float [ %11, %12 ], [ %.1129, %63 ], [ %.1129, %61 ], [ %.1129, %54 ]
  %.2127 = phi i32 [ %24, %12 ], [ %.1126, %63 ], [ %.1126, %61 ], [ %.1126, %54 ]
  %.2124 = phi i32 [ %24, %12 ], [ %.1123, %63 ], [ %.1123, %61 ], [ %.1123, %54 ]
  %.2121 = phi i32 [ %16, %12 ], [ %.1120, %63 ], [ %.1120, %61 ], [ %.1120, %54 ]
  %.2 = phi i32 [ %16, %12 ], [ %.1, %63 ], [ %.1, %61 ], [ %.1, %54 ]
  %.0156 = load ptr, ptr %.0156196, align 8, !tbaa !11
  %.not173 = icmp eq ptr %.0156, null
  br i1 %.not173, label %._crit_edge, label %.lr.ph, !llvm.loop !26

._crit_edge:                                      ; preds = %64
  %.not178 = icmp eq i64 %4, 1
  br i1 %.not178, label %219, label %.preheader

._crit_edge.thread:                               ; preds = %.preheader179
  %.not178231 = icmp eq i64 %4, 1
  br i1 %.not178231, label %219, label %.loopexit

.preheader:                                       ; preds = %._crit_edge
  br i1 %.not173181, label %.loopexit, label %.lr.ph212

.lr.ph212:                                        ; preds = %.preheader
  %65 = fsub float %.2133, %.2130
  %66 = fcmp une float %65, 0.000000e+00
  %67 = fsub float %.2145, %.2142
  %68 = fcmp une float %67, 0.000000e+00
  %.not175 = icmp eq i32 %.2121, %.2
  %69 = sub nsw i32 %.2121, %.2
  %70 = sitofp i32 %69 to float
  %71 = fsub float %.2139, %.2136
  %72 = fcmp une float %71, 0.000000e+00
  %73 = fsub float %.2155, %.2152
  %74 = fcmp une float %73, 0.000000e+00
  %.not176 = icmp eq i32 %.2127, %.2124
  %75 = sub nsw i32 %.2127, %.2124
  %76 = sitofp i32 %75 to float
  %77 = fsub float %.1149, %.1147
  %78 = fcmp une float %77, 0.000000e+00
  br i1 %.not175, label %.lr.ph212.split.us, label %.lr.ph212.split

.lr.ph212.split.us:                               ; preds = %.lr.ph212, %123
  %.1157211.us = phi ptr [ %124, %123 ], [ %.0156180, %.lr.ph212 ]
  %79 = getelementptr inbounds i8, ptr %.1157211.us, i64 16
  %80 = load ptr, ptr %79, align 8, !tbaa !12
  %81 = load ptr, ptr %80, align 8, !tbaa !14
  br i1 %66, label %82, label %88

82:                                               ; preds = %.lr.ph212.split.us
  %83 = getelementptr inbounds i8, ptr %81, i64 40
  %84 = load float, ptr %83, align 4, !tbaa !18
  %85 = fsub float %84, %.2130
  %86 = fdiv float %85, %65
  %87 = getelementptr inbounds i8, ptr %81, i64 68
  store float %86, ptr %87, align 4, !tbaa !28
  br label %88

88:                                               ; preds = %82, %.lr.ph212.split.us
  br i1 %68, label %89, label %95

89:                                               ; preds = %88
  %90 = getelementptr inbounds i8, ptr %81, i64 36
  %91 = load float, ptr %90, align 4, !tbaa !20
  %92 = fsub float %91, %.2142
  %93 = fdiv float %92, %67
  %94 = getelementptr inbounds i8, ptr %81, i64 64
  store float %93, ptr %94, align 4, !tbaa !29
  br label %95

95:                                               ; preds = %89, %88
  br i1 %72, label %96, label %102

96:                                               ; preds = %95
  %97 = getelementptr inbounds i8, ptr %81, i64 32
  %98 = load float, ptr %97, align 4, !tbaa !24
  %99 = fsub float %98, %.2136
  %100 = fdiv float %99, %71
  %101 = getelementptr inbounds i8, ptr %81, i64 56
  store float %100, ptr %101, align 4, !tbaa !30
  br label %102

102:                                              ; preds = %96, %95
  br i1 %74, label %103, label %108

103:                                              ; preds = %102
  %104 = getelementptr inbounds i8, ptr %81, i64 44
  %105 = load float, ptr %104, align 4, !tbaa !22
  %106 = fsub float %105, %.2152
  %107 = fdiv float %106, %73
  store float %107, ptr %104, align 4, !tbaa !22
  br label %108

108:                                              ; preds = %103, %102
  br i1 %.not176, label %116, label %109

109:                                              ; preds = %108
  %110 = getelementptr inbounds i8, ptr %81, i64 192
  %111 = load i32, ptr %110, align 4, !tbaa !25
  %112 = sub nsw i32 %111, %.2124
  %113 = sitofp i32 %112 to float
  %114 = fdiv float %113, %76
  %115 = getelementptr inbounds i8, ptr %81, i64 48
  store float %114, ptr %115, align 4, !tbaa !31
  br label %116

116:                                              ; preds = %109, %108
  br i1 %78, label %117, label %123

117:                                              ; preds = %116
  %118 = getelementptr inbounds i8, ptr %81, i64 28
  %119 = load float, ptr %118, align 4, !tbaa !23
  %120 = fsub float %119, %.1147
  %121 = fdiv float %120, %77
  %122 = getelementptr inbounds i8, ptr %81, i64 60
  store float %121, ptr %122, align 4, !tbaa !32
  br label %123

123:                                              ; preds = %117, %116
  %124 = load ptr, ptr %.1157211.us, align 8, !tbaa !33
  %.not174.us = icmp eq ptr %124, null
  br i1 %.not174.us, label %.loopexit, label %.lr.ph212.split.us, !llvm.loop !34

.lr.ph212.split:                                  ; preds = %.lr.ph212
  br i1 %.not176, label %.lr.ph212.split.split.us, label %.lr.ph212.split.split

.lr.ph212.split.split.us:                         ; preds = %.lr.ph212.split, %167
  %.1157211.us213 = phi ptr [ %168, %167 ], [ %.0156180, %.lr.ph212.split ]
  %125 = getelementptr inbounds i8, ptr %.1157211.us213, i64 16
  %126 = load ptr, ptr %125, align 8, !tbaa !12
  %127 = load ptr, ptr %126, align 8, !tbaa !14
  br i1 %66, label %128, label %134

128:                                              ; preds = %.lr.ph212.split.split.us
  %129 = getelementptr inbounds i8, ptr %127, i64 40
  %130 = load float, ptr %129, align 4, !tbaa !18
  %131 = fsub float %130, %.2130
  %132 = fdiv float %131, %65
  %133 = getelementptr inbounds i8, ptr %127, i64 68
  store float %132, ptr %133, align 4, !tbaa !28
  br label %134

134:                                              ; preds = %128, %.lr.ph212.split.split.us
  br i1 %68, label %135, label %141

135:                                              ; preds = %134
  %136 = getelementptr inbounds i8, ptr %127, i64 36
  %137 = load float, ptr %136, align 4, !tbaa !20
  %138 = fsub float %137, %.2142
  %139 = fdiv float %138, %67
  %140 = getelementptr inbounds i8, ptr %127, i64 64
  store float %139, ptr %140, align 4, !tbaa !29
  br label %141

141:                                              ; preds = %135, %134
  %142 = getelementptr inbounds i8, ptr %127, i64 196
  %143 = load i32, ptr %142, align 4, !tbaa !21
  %144 = sub nsw i32 %143, %.2
  %145 = sitofp i32 %144 to float
  %146 = fdiv float %145, %70
  %147 = getelementptr inbounds i8, ptr %127, i64 52
  store float %146, ptr %147, align 4, !tbaa !35
  br i1 %72, label %148, label %154

148:                                              ; preds = %141
  %149 = getelementptr inbounds i8, ptr %127, i64 32
  %150 = load float, ptr %149, align 4, !tbaa !24
  %151 = fsub float %150, %.2136
  %152 = fdiv float %151, %71
  %153 = getelementptr inbounds i8, ptr %127, i64 56
  store float %152, ptr %153, align 4, !tbaa !30
  br label %154

154:                                              ; preds = %148, %141
  br i1 %74, label %155, label %160

155:                                              ; preds = %154
  %156 = getelementptr inbounds i8, ptr %127, i64 44
  %157 = load float, ptr %156, align 4, !tbaa !22
  %158 = fsub float %157, %.2152
  %159 = fdiv float %158, %73
  store float %159, ptr %156, align 4, !tbaa !22
  br label %160

160:                                              ; preds = %155, %154
  br i1 %78, label %161, label %167

161:                                              ; preds = %160
  %162 = getelementptr inbounds i8, ptr %127, i64 28
  %163 = load float, ptr %162, align 4, !tbaa !23
  %164 = fsub float %163, %.1147
  %165 = fdiv float %164, %77
  %166 = getelementptr inbounds i8, ptr %127, i64 60
  store float %165, ptr %166, align 4, !tbaa !32
  br label %167

167:                                              ; preds = %161, %160
  %168 = load ptr, ptr %.1157211.us213, align 8, !tbaa !33
  %.not174.us214 = icmp eq ptr %168, null
  br i1 %.not174.us214, label %.loopexit, label %.lr.ph212.split.split.us, !llvm.loop !34

.lr.ph212.split.split:                            ; preds = %.lr.ph212.split, %217
  %.1157211 = phi ptr [ %218, %217 ], [ %.0156180, %.lr.ph212.split ]
  %169 = getelementptr inbounds i8, ptr %.1157211, i64 16
  %170 = load ptr, ptr %169, align 8, !tbaa !12
  %171 = load ptr, ptr %170, align 8, !tbaa !14
  br i1 %66, label %172, label %178

172:                                              ; preds = %.lr.ph212.split.split
  %173 = getelementptr inbounds i8, ptr %171, i64 40
  %174 = load float, ptr %173, align 4, !tbaa !18
  %175 = fsub float %174, %.2130
  %176 = fdiv float %175, %65
  %177 = getelementptr inbounds i8, ptr %171, i64 68
  store float %176, ptr %177, align 4, !tbaa !28
  br label %178

178:                                              ; preds = %172, %.lr.ph212.split.split
  br i1 %68, label %179, label %185

179:                                              ; preds = %178
  %180 = getelementptr inbounds i8, ptr %171, i64 36
  %181 = load float, ptr %180, align 4, !tbaa !20
  %182 = fsub float %181, %.2142
  %183 = fdiv float %182, %67
  %184 = getelementptr inbounds i8, ptr %171, i64 64
  store float %183, ptr %184, align 4, !tbaa !29
  br label %185

185:                                              ; preds = %179, %178
  %186 = getelementptr inbounds i8, ptr %171, i64 196
  %187 = load i32, ptr %186, align 4, !tbaa !21
  %188 = sub nsw i32 %187, %.2
  %189 = sitofp i32 %188 to float
  %190 = fdiv float %189, %70
  %191 = getelementptr inbounds i8, ptr %171, i64 52
  store float %190, ptr %191, align 4, !tbaa !35
  br i1 %72, label %192, label %198

192:                                              ; preds = %185
  %193 = getelementptr inbounds i8, ptr %171, i64 32
  %194 = load float, ptr %193, align 4, !tbaa !24
  %195 = fsub float %194, %.2136
  %196 = fdiv float %195, %71
  %197 = getelementptr inbounds i8, ptr %171, i64 56
  store float %196, ptr %197, align 4, !tbaa !30
  br label %198

198:                                              ; preds = %192, %185
  br i1 %74, label %199, label %204

199:                                              ; preds = %198
  %200 = getelementptr inbounds i8, ptr %171, i64 44
  %201 = load float, ptr %200, align 4, !tbaa !22
  %202 = fsub float %201, %.2152
  %203 = fdiv float %202, %73
  store float %203, ptr %200, align 4, !tbaa !22
  br label %204

204:                                              ; preds = %199, %198
  %205 = getelementptr inbounds i8, ptr %171, i64 192
  %206 = load i32, ptr %205, align 4, !tbaa !25
  %207 = sub nsw i32 %206, %.2124
  %208 = sitofp i32 %207 to float
  %209 = fdiv float %208, %76
  %210 = getelementptr inbounds i8, ptr %171, i64 48
  store float %209, ptr %210, align 4, !tbaa !31
  br i1 %78, label %211, label %217

211:                                              ; preds = %204
  %212 = getelementptr inbounds i8, ptr %171, i64 28
  %213 = load float, ptr %212, align 4, !tbaa !23
  %214 = fsub float %213, %.1147
  %215 = fdiv float %214, %77
  %216 = getelementptr inbounds i8, ptr %171, i64 60
  store float %215, ptr %216, align 4, !tbaa !32
  br label %217

217:                                              ; preds = %211, %204
  %218 = load ptr, ptr %.1157211, align 8, !tbaa !33
  %.not174 = icmp eq ptr %218, null
  br i1 %.not174, label %.loopexit, label %.lr.ph212.split.split, !llvm.loop !34

219:                                              ; preds = %._crit_edge.thread, %._crit_edge
  %220 = getelementptr inbounds i8, ptr %.0156180, i64 16
  %221 = load ptr, ptr %220, align 8, !tbaa !12
  %222 = load ptr, ptr %221, align 8, !tbaa !14
  %223 = getelementptr inbounds i8, ptr %222, i64 52
  store float 0.000000e+00, ptr %223, align 4, !tbaa !35
  %224 = getelementptr inbounds i8, ptr %222, i64 68
  store float 0.000000e+00, ptr %224, align 4, !tbaa !28
  %225 = getelementptr inbounds i8, ptr %222, i64 32
  %226 = load float, ptr %225, align 4, !tbaa !24
  %227 = fpext float %226 to double
  %228 = fadd double %227, -8.230000e+00
  %229 = fdiv double %228, 0x402FF0A3D70A3D70
  %230 = fptrunc double %229 to float
  %231 = getelementptr inbounds i8, ptr %222, i64 56
  store float %230, ptr %231, align 4, !tbaa !30
  %232 = getelementptr inbounds i8, ptr %222, i64 44
  store <2 x float> zeroinitializer, ptr %232, align 4, !tbaa !36
  %233 = getelementptr inbounds i8, ptr %222, i64 60
  store <2 x float> zeroinitializer, ptr %233, align 4, !tbaa !36
  br label %.loopexit

.loopexit:                                        ; preds = %217, %167, %123, %._crit_edge.thread, %.preheader, %219, %1, %2
  ret void
}

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.smin.i32(i32, i32) #1

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.smax.i32(i32, i32) #1

attributes #0 = { nofree norecurse nosync nounwind memory(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 = { 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, !10, i64 24}
!6 = !{!"c_lst_pockets", !7, i64 0, !7, i64 8, !7, i64 16, !10, i64 24, !7, i64 32}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"long", !8, i64 0}
!11 = !{!7, !7, i64 0}
!12 = !{!13, !7, i64 16}
!13 = !{!"node_pocket", !7, i64 0, !7, i64 8, !7, i64 16}
!14 = !{!15, !7, i64 0}
!15 = !{!"s_pocket", !7, i64 0, !7, i64 8, !16, i64 16, !16, i64 20, !16, i64 24, !16, i64 28, !8, i64 32, !17, i64 44, !17, i64 48, !17, i64 52, !17, i64 56}
!16 = !{!"float", !8, i64 0}
!17 = !{!"int", !8, i64 0}
!18 = !{!19, !16, i64 40}
!19 = !{!"s_desc", !16, i64 0, !16, i64 4, !16, i64 8, !16, i64 12, !16, i64 16, !16, i64 20, !16, i64 24, !16, i64 28, !16, i64 32, !16, i64 36, !16, i64 40, !16, i64 44, !16, i64 48, !16, i64 52, !16, i64 56, !16, i64 60, !16, i64 64, !16, i64 68, !16, i64 72, !16, i64 76, !16, i64 80, !16, i64 84, !16, i64 88, !16, i64 92, !16, i64 96, !16, i64 100, !16, i64 104, !17, i64 108, !8, i64 112, !17, i64 192, !17, i64 196, !17, i64 200, !16, i64 204, !16, i64 208, !17, i64 212, !17, i64 216, !17, i64 220, !17, i64 224, !17, i64 228, !8, i64 232, !8, i64 487, !8, i64 742}
!20 = !{!19, !16, i64 36}
!21 = !{!19, !17, i64 196}
!22 = !{!19, !16, i64 44}
!23 = !{!19, !16, i64 28}
!24 = !{!19, !16, i64 32}
!25 = !{!19, !17, i64 192}
!26 = distinct !{!26, !27}
!27 = !{!"llvm.loop.mustprogress"}
!28 = !{!19, !16, i64 68}
!29 = !{!19, !16, i64 64}
!30 = !{!19, !16, i64 56}
!31 = !{!19, !16, i64 48}
!32 = !{!19, !16, i64 60}
!33 = !{!13, !7, i64 0}
!34 = distinct !{!34, !27}
!35 = !{!19, !16, i64 52}
!36 = !{!16, !16, i64 0}


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