; LLVM IR from ox-vgg/vise :: src/search_engine/relja_retrival/external/KMCode_relja/descriptor/EdgeDescripto_5658cc72 (iii)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%class.Corner = type { i32, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, i32, i32, float, i32, i32 }
%class.CornerDescriptor = type <{ %class.Corner, ptr, i32, float, i64, i32, [4 x i8] }>
%class.ImageContent = type { i32, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.23 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [4 x i8], align 1

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #3

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #3

; Function Attrs: inlinehint mustprogress uwtable
declare i32 @getchar() #3

; Function Attrs: nounwind
declare double @sqrt(double noundef) #5

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) #6

declare i32 @__gxx_personality_v0(...)

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) #7

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt3cosf(float noundef) #2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN14EdgeDescriptor17computeComponentsEP12ImageContentS1_S1_S1_iiiS1_S1_S1_S1_iii(ptr noundef nonnull align 8 dereferenceable(116) %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, i32 noundef %5, i32 noundef %6, i32 noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, i32 noundef %12, i32 noundef %13, i32 noundef %14) #4 align 2 personality ptr @__gxx_personality_v0 {
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, 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 float, align 4
  %37 = alloca float, align 4
  %38 = alloca float, align 4
  %39 = alloca float, align 4
  %40 = alloca float, align 4
  %41 = alloca float, align 4
  %42 = alloca float, align 4
  %43 = alloca float, align 4
  %44 = alloca float, align 4
  %45 = alloca float, align 4
  %46 = alloca float, align 4
  %47 = alloca float, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca float, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca ptr, align 8
  %66 = alloca ptr, align 8
  %67 = alloca i32, align 4
  %68 = alloca ptr, align 8
  %69 = alloca float, align 4
  %70 = alloca float, align 4
  %71 = alloca float, align 4
  %72 = alloca float, align 4
  %73 = alloca float, align 4
  %74 = alloca float, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca double, align 8
  %80 = alloca i32, align 4
  %81 = alloca float, align 4
  %82 = alloca i32, align 4
  %83 = alloca float, align 4
  %84 = alloca float, align 4
  %85 = alloca float, align 4
  %86 = alloca float, align 4
  %87 = alloca float, align 4
  %88 = alloca float, align 4
  %89 = alloca float, align 4
  %90 = alloca float, align 4
  %91 = alloca float, align 4
  %92 = alloca float, align 4
  %93 = alloca float, align 4
  %94 = alloca float, align 4
  %95 = alloca i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  store ptr %0, ptr %16, align 8, !tbaa !5
  store ptr %1, ptr %17, align 8, !tbaa !5
  store ptr %2, ptr %18, align 8, !tbaa !5
  store ptr %3, ptr %19, align 8, !tbaa !5
  store ptr %4, ptr %20, align 8, !tbaa !5
  store i32 %5, ptr %21, align 4, !tbaa !9
  store i32 %6, ptr %22, align 4, !tbaa !9
  store i32 %7, ptr %23, align 4, !tbaa !9
  store ptr %8, ptr %24, align 8, !tbaa !5
  store ptr %9, ptr %25, align 8, !tbaa !5
  store ptr %10, ptr %26, align 8, !tbaa !5
  store ptr %11, ptr %27, align 8, !tbaa !5
  store i32 %12, ptr %28, align 4, !tbaa !9
  store i32 %13, ptr %29, align 4, !tbaa !9
  store i32 %14, ptr %30, align 4, !tbaa !9
  %103 = load ptr, ptr %16, align 8
  %104 = load ptr, ptr %17, align 8, !tbaa !5
  %105 = icmp eq ptr %104, null
  br i1 %105, label %127, label %106

106:                                              ; preds = %15
  %107 = load ptr, ptr %24, align 8, !tbaa !5
  %108 = icmp eq ptr %107, null
  br i1 %108, label %127, label %109

109:                                              ; preds = %106
  %110 = load ptr, ptr %19, align 8, !tbaa !5
  %111 = icmp eq ptr %110, null
  br i1 %111, label %127, label %112

112:                                              ; preds = %109
  %113 = load ptr, ptr %26, align 8, !tbaa !5
  %114 = icmp eq ptr %113, null
  br i1 %114, label %127, label %115

115:                                              ; preds = %112
  %116 = load ptr, ptr %18, align 8, !tbaa !5
  %117 = icmp eq ptr %116, null
  br i1 %117, label %127, label %118

118:                                              ; preds = %115
  %119 = load ptr, ptr %25, align 8, !tbaa !5
  %120 = icmp eq ptr %119, null
  br i1 %120, label %127, label %121

121:                                              ; preds = %118
  %122 = load ptr, ptr %20, align 8, !tbaa !5
  %123 = icmp eq ptr %122, null
  br i1 %123, label %127, label %124

124:                                              ; preds = %121
  %125 = load ptr, ptr %27, align 8, !tbaa !5
  %126 = icmp eq ptr %125, null
  br i1 %126, label %127, label %128

127:                                              ; preds = %124, %121, %118, %115, %112, %109, %106, %15
  br label %1443

128:                                              ; preds = %124
  %129 = load i32, ptr %21, align 4, !tbaa !9
  %130 = load i32, ptr %23, align 4, !tbaa !9
  %131 = sub nsw i32 %129, %130
  %132 = icmp slt i32 %131, 0
  br i1 %132, label %152, label %133

133:                                              ; preds = %128
  %134 = load i32, ptr %22, align 4, !tbaa !9
  %135 = load i32, ptr %23, align 4, !tbaa !9
  %136 = sub nsw i32 %134, %135
  %137 = icmp slt i32 %136, 0
  br i1 %137, label %152, label %138

138:                                              ; preds = %133
  %139 = load i32, ptr %21, align 4, !tbaa !9
  %140 = load i32, ptr %23, align 4, !tbaa !9
  %141 = add nsw i32 %139, %140
  %142 = load ptr, ptr %17, align 8, !tbaa !5
  %143 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %142)
  %144 = icmp uge i32 %141, %143
  br i1 %144, label %152, label %145

145:                                              ; preds = %138
  %146 = load i32, ptr %22, align 4, !tbaa !9
  %147 = load i32, ptr %23, align 4, !tbaa !9
  %148 = add nsw i32 %146, %147
  %149 = load ptr, ptr %17, align 8, !tbaa !5
  %150 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %149)
  %151 = icmp uge i32 %148, %150
  br i1 %151, label %152, label %153

152:                                              ; preds = %145, %138, %133, %128
  br label %1443

153:                                              ; preds = %145
  %154 = load i32, ptr %28, align 4, !tbaa !9
  %155 = load i32, ptr %30, align 4, !tbaa !9
  %156 = sub nsw i32 %154, %155
  %157 = icmp slt i32 %156, 0
  br i1 %157, label %177, label %158

158:                                              ; preds = %153
  %159 = load i32, ptr %29, align 4, !tbaa !9
  %160 = load i32, ptr %30, align 4, !tbaa !9
  %161 = sub nsw i32 %159, %160
  %162 = icmp slt i32 %161, 0
  br i1 %162, label %177, label %163

163:                                              ; preds = %158
  %164 = load i32, ptr %28, align 4, !tbaa !9
  %165 = load i32, ptr %30, align 4, !tbaa !9
  %166 = add nsw i32 %164, %165
  %167 = load ptr, ptr %24, align 8, !tbaa !5
  %168 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %167)
  %169 = icmp uge i32 %166, %168
  br i1 %169, label %177, label %170

170:                                              ; preds = %163
  %171 = load i32, ptr %29, align 4, !tbaa !9
  %172 = load i32, ptr %30, align 4, !tbaa !9
  %173 = add nsw i32 %171, %172
  %174 = load ptr, ptr %24, align 8, !tbaa !5
  %175 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %174)
  %176 = icmp uge i32 %173, %175
  br i1 %176, label %177, label %178

177:                                              ; preds = %170, %163, %158, %153
  br label %1443

178:                                              ; preds = %170
  call void @_ZN16CornerDescriptor8allocVecEi(ptr noundef nonnull align 8 dereferenceable(116) %103, i32 noundef 436)
  %179 = getelementptr inbounds %class.Corner, ptr %103, i32 0, i32 14
  %180 = load float, ptr %179, align 8, !tbaa !11
  %181 = getelementptr inbounds %class.CornerDescriptor, ptr %103, i32 0, i32 3
  store float %180, ptr %181, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #9
  store float 0.000000e+00, ptr %31, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #9
  store float 0.000000e+00, ptr %32, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #9
  %182 = load i32, ptr %30, align 4, !tbaa !9
  %183 = sitofp i32 %182 to double
  %184 = fdiv double 3.000000e+01, %183
  %185 = fptrunc double %184 to float
  store float %185, ptr %56, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #9
  %186 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 80) #10
  invoke void @_ZN12ImageContentC2Ejjf(ptr noundef nonnull align 8 dereferenceable(80) %186, i32 noundef 50, i32 noundef 50, float noundef 0.000000e+00)
          to label %187 unwind label %216

187:                                              ; preds = %178
  store ptr %186, ptr %65, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #9
  %188 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 80) #10
  invoke void @_ZN12ImageContentC2Ejjf(ptr noundef nonnull align 8 dereferenceable(80) %188, i32 noundef 50, i32 noundef 50, float noundef 0.000000e+00)
          to label %189 unwind label %220

189:                                              ; preds = %187
  store ptr %188, ptr %68, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #9
  %190 = getelementptr inbounds %class.Corner, ptr %103, i32 0, i32 19
  %191 = load float, ptr %190, align 4, !tbaa !18
  %192 = call noundef float @_ZSt3cosf(float noundef %191)
  store float %192, ptr %69, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #9
  %193 = getelementptr inbounds %class.Corner, ptr %103, i32 0, i32 19
  %194 = load float, ptr %193, align 4, !tbaa !18
  %195 = call noundef float @_ZSt3sinf(float noundef %194)
  store float %195, ptr %70, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #9
  %196 = load float, ptr %56, align 4, !tbaa !17
  %197 = load float, ptr %69, align 4, !tbaa !17
  %198 = fmul float %196, %197
  store float %198, ptr %71, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #9
  %199 = load float, ptr %56, align 4, !tbaa !17
  %200 = load float, ptr %70, align 4, !tbaa !17
  %201 = fmul float %199, %200
  store float %201, ptr %72, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #9
  %202 = load float, ptr %70, align 4, !tbaa !17
  %203 = fneg float %202
  %204 = load float, ptr %56, align 4, !tbaa !17
  %205 = fmul float %203, %204
  store float %205, ptr %73, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #9
  %206 = load float, ptr %69, align 4, !tbaa !17
  %207 = load float, ptr %56, align 4, !tbaa !17
  %208 = fmul float %206, %207
  store float %208, ptr %74, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #9
  %209 = load i32, ptr %30, align 4, !tbaa !9
  %210 = sub nsw i32 0, %209
  store i32 %210, ptr %75, align 4, !tbaa !9
  br label %211

211:                                              ; preds = %726, %189
  %212 = load i32, ptr %75, align 4, !tbaa !9
  %213 = load i32, ptr %30, align 4, !tbaa !9
  %214 = icmp sle i32 %212, %213
  br i1 %214, label %224, label %215

215:                                              ; preds = %211
  store i32 2, ptr %76, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #9
  br label %729

216:                                              ; preds = %178
  %217 = landingpad { ptr, i32 }
          cleanup
  %218 = extractvalue { ptr, i32 } %217, 0
  store ptr %218, ptr %66, align 8
  %219 = extractvalue { ptr, i32 } %217, 1
  store i32 %219, ptr %67, align 4
  call void @_ZdlPvm(ptr noundef %186, i64 noundef 80) #11
  br label %1444

220:                                              ; preds = %187
  %221 = landingpad { ptr, i32 }
          cleanup
  %222 = extractvalue { ptr, i32 } %221, 0
  store ptr %222, ptr %66, align 8
  %223 = extractvalue { ptr, i32 } %221, 1
  store i32 %223, ptr %67, align 4
  call void @_ZdlPvm(ptr noundef %188, i64 noundef 80) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #9
  br label %1444

224:                                              ; preds = %211
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #9
  %225 = load i32, ptr %30, align 4, !tbaa !9
  %226 = sub nsw i32 0, %225
  store i32 %226, ptr %77, align 4, !tbaa !9
  br label %227

227:                                              ; preds = %722, %224
  %228 = load i32, ptr %77, align 4, !tbaa !9
  %229 = load i32, ptr %30, align 4, !tbaa !9
  %230 = icmp sle i32 %228, %229
  br i1 %230, label %232, label %231

231:                                              ; preds = %227
  store i32 5, ptr %76, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #9
  br label %725

232:                                              ; preds = %227
  %233 = load i32, ptr %28, align 4, !tbaa !9
  %234 = load i32, ptr %77, align 4, !tbaa !9
  %235 = add nsw i32 %233, %234
  store i32 %235, ptr %54, align 4, !tbaa !9
  %236 = load i32, ptr %29, align 4, !tbaa !9
  %237 = load i32, ptr %75, align 4, !tbaa !9
  %238 = add nsw i32 %236, %237
  store i32 %238, ptr %55, align 4, !tbaa !9
  %239 = load ptr, ptr %24, align 8, !tbaa !5
  %240 = getelementptr inbounds %class.ImageContent, ptr %239, i32 0, i32 4
  %241 = load ptr, ptr %240, align 8, !tbaa !19
  %242 = load i32, ptr %55, align 4, !tbaa !9
  %243 = sext i32 %242 to i64
  %244 = getelementptr inbounds ptr, ptr %241, i64 %243
  %245 = load ptr, ptr %244, align 8, !tbaa !5
  %246 = load i32, ptr %54, align 4, !tbaa !9
  %247 = sext i32 %246 to i64
  %248 = getelementptr inbounds float, ptr %245, i64 %247
  %249 = load float, ptr %248, align 4, !tbaa !17
  store float %249, ptr %31, align 4, !tbaa !17
  %250 = load ptr, ptr %25, align 8, !tbaa !5
  %251 = getelementptr inbounds %class.ImageContent, ptr %250, i32 0, i32 4
  %252 = load ptr, ptr %251, align 8, !tbaa !19
  %253 = load i32, ptr %55, align 4, !tbaa !9
  %254 = sext i32 %253 to i64
  %255 = getelementptr inbounds ptr, ptr %252, i64 %254
  %256 = load ptr, ptr %255, align 8, !tbaa !5
  %257 = load i32, ptr %54, align 4, !tbaa !9
  %258 = sext i32 %257 to i64
  %259 = getelementptr inbounds float, ptr %256, i64 %258
  %260 = load float, ptr %259, align 4, !tbaa !17
  %261 = getelementptr inbounds %class.Corner, ptr %103, i32 0, i32 19
  %262 = load float, ptr %261, align 4, !tbaa !18
  %263 = fsub float %260, %262
  store float %263, ptr %32, align 4, !tbaa !17
  %264 = load float, ptr %32, align 4, !tbaa !17
  %265 = fpext float %264 to double
  %266 = fcmp olt double %265, 0xC00921FB54442D18
  br i1 %266, label %267, label %272

267:                                              ; preds = %232
  %268 = load float, ptr %32, align 4, !tbaa !17
  %269 = fpext float %268 to double
  %270 = fadd double %269, 0x401921FB544486E0
  %271 = fptrunc double %270 to float
  store float %271, ptr %32, align 4, !tbaa !17
  br label %281

272:                                              ; preds = %232
  %273 = load float, ptr %32, align 4, !tbaa !17
  %274 = fcmp olt float %273, 0.000000e+00
  br i1 %274, label %275, label %280

275:                                              ; preds = %272
  %276 = load float, ptr %32, align 4, !tbaa !17
  %277 = fpext float %276 to double
  %278 = fadd double %277, 0x400921FB54442D18
  %279 = fptrunc double %278 to float
  store float %279, ptr %32, align 4, !tbaa !17
  br label %280

280:                                              ; preds = %275, %272
  br label %281

281:                                              ; preds = %280, %267
  %282 = load float, ptr %31, align 4, !tbaa !17
  %283 = fcmp olt float %282, 1.000000e+00
  br i1 %283, label %284, label %285

284:                                              ; preds = %281
  br label %722

285:                                              ; preds = %281
  %286 = load float, ptr %32, align 4, !tbaa !17
  %287 = fmul float %286, 0x3FF45F3060000000
  store float %287, ptr %32, align 4, !tbaa !17
  %288 = load float, ptr %32, align 4, !tbaa !17
  %289 = call float @llvm.floor.f32(float %288)
  %290 = fptosi float %289 to i32
  store i32 %290, ptr %52, align 4, !tbaa !9
  %291 = load float, ptr %32, align 4, !tbaa !17
  %292 = load i32, ptr %52, align 4, !tbaa !9
  %293 = sitofp i32 %292 to float
  %294 = fsub float %291, %293
  store float %294, ptr %39, align 4, !tbaa !17
  %295 = load i32, ptr %52, align 4, !tbaa !9
  store i32 %295, ptr %57, align 4, !tbaa !9
  %296 = load i32, ptr %52, align 4, !tbaa !9
  %297 = add nsw i32 %296, 1
  %298 = icmp slt i32 %297, 4
  br i1 %298, label %299, label %302

299:                                              ; preds = %285
  %300 = load i32, ptr %52, align 4, !tbaa !9
  %301 = add nsw i32 %300, 1
  br label %303

302:                                              ; preds = %285
  br label %303

303:                                              ; preds = %302, %299
  %304 = phi i32 [ %301, %299 ], [ 0, %302 ]
  store i32 %304, ptr %58, align 4, !tbaa !9
  %305 = load i32, ptr %77, align 4, !tbaa !9
  %306 = sitofp i32 %305 to float
  %307 = load float, ptr %71, align 4, !tbaa !17
  %308 = load i32, ptr %75, align 4, !tbaa !9
  %309 = sitofp i32 %308 to float
  %310 = load float, ptr %72, align 4, !tbaa !17
  %311 = fmul float %309, %310
  %312 = call float @llvm.fmuladd.f32(float %306, float %307, float %311)
  store float %312, ptr %35, align 4, !tbaa !17
  %313 = load i32, ptr %77, align 4, !tbaa !9
  %314 = sitofp i32 %313 to float
  %315 = load float, ptr %73, align 4, !tbaa !17
  %316 = load i32, ptr %75, align 4, !tbaa !9
  %317 = sitofp i32 %316 to float
  %318 = load float, ptr %74, align 4, !tbaa !17
  %319 = fmul float %317, %318
  %320 = call float @llvm.fmuladd.f32(float %314, float %315, float %319)
  store float %320, ptr %36, align 4, !tbaa !17
  %321 = load float, ptr %35, align 4, !tbaa !17
  %322 = call float @llvm.floor.f32(float %321)
  %323 = fptosi float %322 to i32
  store i32 %323, ptr %48, align 4, !tbaa !9
  %324 = load float, ptr %36, align 4, !tbaa !17
  %325 = call float @llvm.floor.f32(float %324)
  %326 = fptosi float %325 to i32
  store i32 %326, ptr %49, align 4, !tbaa !9
  %327 = load float, ptr %35, align 4, !tbaa !17
  %328 = load i32, ptr %48, align 4, !tbaa !9
  %329 = sitofp i32 %328 to float
  %330 = fsub float %327, %329
  store float %330, ptr %37, align 4, !tbaa !17
  %331 = load float, ptr %36, align 4, !tbaa !17
  %332 = load i32, ptr %49, align 4, !tbaa !9
  %333 = sitofp i32 %332 to float
  %334 = fsub float %331, %333
  store float %334, ptr %38, align 4, !tbaa !17
  %335 = load float, ptr %38, align 4, !tbaa !17
  %336 = load float, ptr %31, align 4, !tbaa !17
  %337 = fmul float %335, %336
  store float %337, ptr %34, align 4, !tbaa !17
  %338 = load float, ptr %37, align 4, !tbaa !17
  %339 = load float, ptr %34, align 4, !tbaa !17
  %340 = fmul float %338, %339
  store float %340, ptr %33, align 4, !tbaa !17
  %341 = load float, ptr %39, align 4, !tbaa !17
  %342 = load float, ptr %33, align 4, !tbaa !17
  %343 = fmul float %341, %342
  store float %343, ptr %47, align 4, !tbaa !17
  %344 = load float, ptr %33, align 4, !tbaa !17
  %345 = load float, ptr %47, align 4, !tbaa !17
  %346 = fsub float %344, %345
  store float %346, ptr %43, align 4, !tbaa !17
  %347 = load float, ptr %37, align 4, !tbaa !17
  %348 = fsub float 1.000000e+00, %347
  %349 = load float, ptr %34, align 4, !tbaa !17
  %350 = fmul float %348, %349
  store float %350, ptr %33, align 4, !tbaa !17
  %351 = load float, ptr %39, align 4, !tbaa !17
  %352 = load float, ptr %33, align 4, !tbaa !17
  %353 = fmul float %351, %352
  store float %353, ptr %45, align 4, !tbaa !17
  %354 = load float, ptr %33, align 4, !tbaa !17
  %355 = load float, ptr %45, align 4, !tbaa !17
  %356 = fsub float %354, %355
  store float %356, ptr %41, align 4, !tbaa !17
  %357 = load float, ptr %38, align 4, !tbaa !17
  %358 = fsub float 1.000000e+00, %357
  %359 = load float, ptr %31, align 4, !tbaa !17
  %360 = fmul float %358, %359
  store float %360, ptr %34, align 4, !tbaa !17
  %361 = load float, ptr %37, align 4, !tbaa !17
  %362 = load float, ptr %34, align 4, !tbaa !17
  %363 = fmul float %361, %362
  store float %363, ptr %33, align 4, !tbaa !17
  %364 = load float, ptr %39, align 4, !tbaa !17
  %365 = load float, ptr %33, align 4, !tbaa !17
  %366 = fmul float %364, %365
  store float %366, ptr %46, align 4, !tbaa !17
  %367 = load float, ptr %33, align 4, !tbaa !17
  %368 = load float, ptr %46, align 4, !tbaa !17
  %369 = fsub float %367, %368
  store float %369, ptr %42, align 4, !tbaa !17
  %370 = load float, ptr %37, align 4, !tbaa !17
  %371 = fsub float 1.000000e+00, %370
  %372 = load float, ptr %34, align 4, !tbaa !17
  %373 = fmul float %371, %372
  store float %373, ptr %33, align 4, !tbaa !17
  %374 = load float, ptr %39, align 4, !tbaa !17
  %375 = load float, ptr %33, align 4, !tbaa !17
  %376 = fmul float %374, %375
  store float %376, ptr %44, align 4, !tbaa !17
  %377 = load float, ptr %33, align 4, !tbaa !17
  %378 = load float, ptr %44, align 4, !tbaa !17
  %379 = fsub float %377, %378
  store float %379, ptr %40, align 4, !tbaa !17
  %380 = load i32, ptr %48, align 4, !tbaa !9
  %381 = add nsw i32 %380, 25
  store i32 %381, ptr %59, align 4, !tbaa !9
  %382 = load i32, ptr %49, align 4, !tbaa !9
  %383 = add nsw i32 %382, 25
  store i32 %383, ptr %60, align 4, !tbaa !9
  %384 = load i32, ptr %59, align 4, !tbaa !9
  %385 = add nsw i32 %384, 1
  store i32 %385, ptr %61, align 4, !tbaa !9
  %386 = load i32, ptr %60, align 4, !tbaa !9
  %387 = add nsw i32 %386, 1
  store i32 %387, ptr %62, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #9
  store i32 3, ptr %78, align 4, !tbaa !9
  %388 = load i32, ptr %60, align 4, !tbaa !9
  %389 = icmp sge i32 %388, 0
  br i1 %389, label %390, label %554

390:                                              ; preds = %303
  %391 = load i32, ptr %60, align 4, !tbaa !9
  %392 = icmp slt i32 %391, 50
  br i1 %392, label %393, label %554

393:                                              ; preds = %390
  %394 = load i32, ptr %60, align 4, !tbaa !9
  %395 = mul nsw i32 %394, 12
  store i32 %395, ptr %64, align 4, !tbaa !9
  %396 = load i32, ptr %59, align 4, !tbaa !9
  %397 = icmp sge i32 %396, 0
  br i1 %397, label %398, label %474

398:                                              ; preds = %393
  %399 = load i32, ptr %59, align 4, !tbaa !9
  %400 = icmp slt i32 %399, 50
  br i1 %400, label %401, label %474

401:                                              ; preds = %398
  %402 = load i32, ptr %64, align 4, !tbaa !9
  %403 = load i32, ptr %59, align 4, !tbaa !9
  %404 = mul nsw i32 %403, 4
  %405 = add nsw i32 %402, %404
  store i32 %405, ptr %63, align 4, !tbaa !9
  %406 = load i32, ptr %57, align 4, !tbaa !9
  %407 = load i32, ptr %78, align 4, !tbaa !9
  %408 = icmp eq i32 %406, %407
  br i1 %408, label %409, label %423

409:                                              ; preds = %401
  %410 = load float, ptr %40, align 4, !tbaa !17
  %411 = load ptr, ptr %65, align 8, !tbaa !5
  %412 = getelementptr inbounds %class.ImageContent, ptr %411, i32 0, i32 4
  %413 = load ptr, ptr %412, align 8, !tbaa !19
  %414 = load i32, ptr %60, align 4, !tbaa !9
  %415 = sext i32 %414 to i64
  %416 = getelementptr inbounds ptr, ptr %413, i64 %415
  %417 = load ptr, ptr %416, align 8, !tbaa !5
  %418 = load i32, ptr %59, align 4, !tbaa !9
  %419 = sext i32 %418 to i64
  %420 = getelementptr inbounds float, ptr %417, i64 %419
  %421 = load float, ptr %420, align 4, !tbaa !17
  %422 = fadd float %421, %410
  store float %422, ptr %420, align 4, !tbaa !17
  br label %442

423:                                              ; preds = %401
  %424 = load i32, ptr %58, align 4, !tbaa !9
  %425 = load i32, ptr %78, align 4, !tbaa !9
  %426 = icmp eq i32 %424, %425
  br i1 %426, label %427, label %441

427:                                              ; preds = %423
  %428 = load float, ptr %44, align 4, !tbaa !17
  %429 = load ptr, ptr %65, align 8, !tbaa !5
  %430 = getelementptr inbounds %class.ImageContent, ptr %429, i32 0, i32 4
  %431 = load ptr, ptr %430, align 8, !tbaa !19
  %432 = load i32, ptr %60, align 4, !tbaa !9
  %433 = sext i32 %432 to i64
  %434 = getelementptr inbounds ptr, ptr %431, i64 %433
  %435 = load ptr, ptr %434, align 8, !tbaa !5
  %436 = load i32, ptr %59, align 4, !tbaa !9
  %437 = sext i32 %436 to i64
  %438 = getelementptr inbounds float, ptr %435, i64 %437
  %439 = load float, ptr %438, align 4, !tbaa !17
  %440 = fadd float %439, %428
  store float %440, ptr %438, align 4, !tbaa !17
  br label %441

441:                                              ; preds = %427, %423
  br label %442

442:                                              ; preds = %441, %409
  %443 = load i32, ptr %57, align 4, !tbaa !9
  %444 = icmp eq i32 %443, 1
  br i1 %444, label %445, label %459

445:                                              ; preds = %442
  %446 = load float, ptr %40, align 4, !tbaa !17
  %447 = load ptr, ptr %68, align 8, !tbaa !5
  %448 = getelementptr inbounds %class.ImageContent, ptr %447, i32 0, i32 4
  %449 = load ptr, ptr %448, align 8, !tbaa !19
  %450 = load i32, ptr %60, align 4, !tbaa !9
  %451 = sext i32 %450 to i64
  %452 = getelementptr inbounds ptr, ptr %449, i64 %451
  %453 = load ptr, ptr %452, align 8, !tbaa !5
  %454 = load i32, ptr %59, align 4, !tbaa !9
  %455 = sext i32 %454 to i64
  %456 = getelementptr inbounds float, ptr %453, i64 %455
  %457 = load float, ptr %456, align 4, !tbaa !17
  %458 = fadd float %457, %446
  store float %458, ptr %456, align 4, !tbaa !17
  br label %473

459:                                              ; preds = %442
  %460 = load float, ptr %44, align 4, !tbaa !17
  %461 = load ptr, ptr %68, align 8, !tbaa !5
  %462 = getelementptr inbounds %class.ImageContent, ptr %461, i32 0, i32 4
  %463 = load ptr, ptr %462, align 8, !tbaa !19
  %464 = load i32, ptr %60, align 4, !tbaa !9
  %465 = sext i32 %464 to i64
  %466 = getelementptr inbounds ptr, ptr %463, i64 %465
  %467 = load ptr, ptr %466, align 8, !tbaa !5
  %468 = load i32, ptr %59, align 4, !tbaa !9
  %469 = sext i32 %468 to i64
  %470 = getelementptr inbounds float, ptr %467, i64 %469
  %471 = load float, ptr %470, align 4, !tbaa !17
  %472 = fadd float %471, %460
  store float %472, ptr %470, align 4, !tbaa !17
  br label %473

473:                                              ; preds = %459, %445
  br label %474

474:                                              ; preds = %473, %398, %393
  %475 = load i32, ptr %61, align 4, !tbaa !9
  %476 = icmp sge i32 %475, 0
  br i1 %476, label %477, label %553

477:                                              ; preds = %474
  %478 = load i32, ptr %61, align 4, !tbaa !9
  %479 = icmp slt i32 %478, 50
  br i1 %479, label %480, label %553

480:                                              ; preds = %477
  %481 = load i32, ptr %64, align 4, !tbaa !9
  %482 = load i32, ptr %61, align 4, !tbaa !9
  %483 = mul nsw i32 %482, 4
  %484 = add nsw i32 %481, %483
  store i32 %484, ptr %63, align 4, !tbaa !9
  %485 = load i32, ptr %57, align 4, !tbaa !9
  %486 = load i32, ptr %78, align 4, !tbaa !9
  %487 = icmp eq i32 %485, %486
  br i1 %487, label %488, label %502

488:                                              ; preds = %480
  %489 = load float, ptr %42, align 4, !tbaa !17
  %490 = load ptr, ptr %65, align 8, !tbaa !5
  %491 = getelementptr inbounds %class.ImageContent, ptr %490, i32 0, i32 4
  %492 = load ptr, ptr %491, align 8, !tbaa !19
  %493 = load i32, ptr %60, align 4, !tbaa !9
  %494 = sext i32 %493 to i64
  %495 = getelementptr inbounds ptr, ptr %492, i64 %494
  %496 = load ptr, ptr %495, align 8, !tbaa !5
  %497 = load i32, ptr %61, align 4, !tbaa !9
  %498 = sext i32 %497 to i64
  %499 = getelementptr inbounds float, ptr %496, i64 %498
  %500 = load float, ptr %499, align 4, !tbaa !17
  %501 = fadd float %500, %489
  store float %501, ptr %499, align 4, !tbaa !17
  br label %521

502:                                              ; preds = %480
  %503 = load i32, ptr %58, align 4, !tbaa !9
  %504 = load i32, ptr %78, align 4, !tbaa !9
  %505 = icmp eq i32 %503, %504
  br i1 %505, label %506, label %520

506:                                              ; preds = %502
  %507 = load float, ptr %46, align 4, !tbaa !17
  %508 = load ptr, ptr %65, align 8, !tbaa !5
  %509 = getelementptr inbounds %class.ImageContent, ptr %508, i32 0, i32 4
  %510 = load ptr, ptr %509, align 8, !tbaa !19
  %511 = load i32, ptr %60, align 4, !tbaa !9
  %512 = sext i32 %511 to i64
  %513 = getelementptr inbounds ptr, ptr %510, i64 %512
  %514 = load ptr, ptr %513, align 8, !tbaa !5
  %515 = load i32, ptr %61, align 4, !tbaa !9
  %516 = sext i32 %515 to i64
  %517 = getelementptr inbounds float, ptr %514, i64 %516
  %518 = load float, ptr %517, align 4, !tbaa !17
  %519 = fadd float %518, %507
  store float %519, ptr %517, align 4, !tbaa !17
  br label %520

520:                                              ; preds = %506, %502
  br label %521

521:                                              ; preds = %520, %488
  %522 = load i32, ptr %58, align 4, !tbaa !9
  %523 = icmp eq i32 %522, 0
  br i1 %523, label %524, label %538

524:                                              ; preds = %521
  %525 = load float, ptr %42, align 4, !tbaa !17
  %526 = load ptr, ptr %68, align 8, !tbaa !5
  %527 = getelementptr inbounds %class.ImageContent, ptr %526, i32 0, i32 4
  %528 = load ptr, ptr %527, align 8, !tbaa !19
  %529 = load i32, ptr %60, align 4, !tbaa !9
  %530 = sext i32 %529 to i64
  %531 = getelementptr inbounds ptr, ptr %528, i64 %530
  %532 = load ptr, ptr %531, align 8, !tbaa !5
  %533 = load i32, ptr %61, align 4, !tbaa !9
  %534 = sext i32 %533 to i64
  %535 = getelementptr inbounds float, ptr %532, i64 %534
  %536 = load float, ptr %535, align 4, !tbaa !17
  %537 = fadd float %536, %525
  store float %537, ptr %535, align 4, !tbaa !17
  br label %552

538:                                              ; preds = %521
  %539 = load float, ptr %46, align 4, !tbaa !17
  %540 = load ptr, ptr %68, align 8, !tbaa !5
  %541 = getelementptr inbounds %class.ImageContent, ptr %540, i32 0, i32 4
  %542 = load ptr, ptr %541, align 8, !tbaa !19
  %543 = load i32, ptr %60, align 4, !tbaa !9
  %544 = sext i32 %543 to i64
  %545 = getelementptr inbounds ptr, ptr %542, i64 %544
  %546 = load ptr, ptr %545, align 8, !tbaa !5
  %547 = load i32, ptr %61, align 4, !tbaa !9
  %548 = sext i32 %547 to i64
  %549 = getelementptr inbounds float, ptr %546, i64 %548
  %550 = load float, ptr %549, align 4, !tbaa !17
  %551 = fadd float %550, %539
  store float %551, ptr %549, align 4, !tbaa !17
  br label %552

552:                                              ; preds = %538, %524
  br label %553

553:                                              ; preds = %552, %477, %474
  br label %554

554:                                              ; preds = %553, %390, %303
  %555 = load i32, ptr %62, align 4, !tbaa !9
  %556 = icmp sge i32 %555, 0
  br i1 %556, label %557, label %721

557:                                              ; preds = %554
  %558 = load i32, ptr %62, align 4, !tbaa !9
  %559 = icmp slt i32 %558, 50
  br i1 %559, label %560, label %721

560:                                              ; preds = %557
  %561 = load i32, ptr %62, align 4, !tbaa !9
  %562 = mul nsw i32 %561, 12
  store i32 %562, ptr %64, align 4, !tbaa !9
  %563 = load i32, ptr %59, align 4, !tbaa !9
  %564 = icmp sge i32 %563, 0
  br i1 %564, label %565, label %641

565:                                              ; preds = %560
  %566 = load i32, ptr %59, align 4, !tbaa !9
  %567 = icmp slt i32 %566, 50
  br i1 %567, label %568, label %641

568:                                              ; preds = %565
  %569 = load i32, ptr %64, align 4, !tbaa !9
  %570 = load i32, ptr %59, align 4, !tbaa !9
  %571 = mul nsw i32 %570, 4
  %572 = add nsw i32 %569, %571
  store i32 %572, ptr %63, align 4, !tbaa !9
  %573 = load i32, ptr %57, align 4, !tbaa !9
  %574 = load i32, ptr %78, align 4, !tbaa !9
  %575 = icmp eq i32 %573, %574
  br i1 %575, label %576, label %590

576:                                              ; preds = %568
  %577 = load float, ptr %41, align 4, !tbaa !17
  %578 = load ptr, ptr %65, align 8, !tbaa !5
  %579 = getelementptr inbounds %class.ImageContent, ptr %578, i32 0, i32 4
  %580 = load ptr, ptr %579, align 8, !tbaa !19
  %581 = load i32, ptr %62, align 4, !tbaa !9
  %582 = sext i32 %581 to i64
  %583 = getelementptr inbounds ptr, ptr %580, i64 %582
  %584 = load ptr, ptr %583, align 8, !tbaa !5
  %585 = load i32, ptr %59, align 4, !tbaa !9
  %586 = sext i32 %585 to i64
  %587 = getelementptr inbounds float, ptr %584, i64 %586
  %588 = load float, ptr %587, align 4, !tbaa !17
  %589 = fadd float %588, %577
  store float %589, ptr %587, align 4, !tbaa !17
  br label %609

590:                                              ; preds = %568
  %591 = load i32, ptr %58, align 4, !tbaa !9
  %592 = load i32, ptr %78, align 4, !tbaa !9
  %593 = icmp eq i32 %591, %592
  br i1 %593, label %594, label %608

594:                                              ; preds = %590
  %595 = load float, ptr %45, align 4, !tbaa !17
  %596 = load ptr, ptr %65, align 8, !tbaa !5
  %597 = getelementptr inbounds %class.ImageContent, ptr %596, i32 0, i32 4
  %598 = load ptr, ptr %597, align 8, !tbaa !19
  %599 = load i32, ptr %62, align 4, !tbaa !9
  %600 = sext i32 %599 to i64
  %601 = getelementptr inbounds ptr, ptr %598, i64 %600
  %602 = load ptr, ptr %601, align 8, !tbaa !5
  %603 = load i32, ptr %59, align 4, !tbaa !9
  %604 = sext i32 %603 to i64
  %605 = getelementptr inbounds float, ptr %602, i64 %604
  %606 = load float, ptr %605, align 4, !tbaa !17
  %607 = fadd float %606, %595
  store float %607, ptr %605, align 4, !tbaa !17
  br label %608

608:                                              ; preds = %594, %590
  br label %609

609:                                              ; preds = %608, %576
  %610 = load i32, ptr %58, align 4, !tbaa !9
  %611 = icmp eq i32 %610, 0
  br i1 %611, label %612, label %626

612:                                              ; preds = %609
  %613 = load float, ptr %41, align 4, !tbaa !17
  %614 = load ptr, ptr %68, align 8, !tbaa !5
  %615 = getelementptr inbounds %class.ImageContent, ptr %614, i32 0, i32 4
  %616 = load ptr, ptr %615, align 8, !tbaa !19
  %617 = load i32, ptr %62, align 4, !tbaa !9
  %618 = sext i32 %617 to i64
  %619 = getelementptr inbounds ptr, ptr %616, i64 %618
  %620 = load ptr, ptr %619, align 8, !tbaa !5
  %621 = load i32, ptr %59, align 4, !tbaa !9
  %622 = sext i32 %621 to i64
  %623 = getelementptr inbounds float, ptr %620, i64 %622
  %624 = load float, ptr %623, align 4, !tbaa !17
  %625 = fadd float %624, %613
  store float %625, ptr %623, align 4, !tbaa !17
  br label %640

626:                                              ; preds = %609
  %627 = load float, ptr %45, align 4, !tbaa !17
  %628 = load ptr, ptr %68, align 8, !tbaa !5
  %629 = getelementptr inbounds %class.ImageContent, ptr %628, i32 0, i32 4
  %630 = load ptr, ptr %629, align 8, !tbaa !19
  %631 = load i32, ptr %62, align 4, !tbaa !9
  %632 = sext i32 %631 to i64
  %633 = getelementptr inbounds ptr, ptr %630, i64 %632
  %634 = load ptr, ptr %633, align 8, !tbaa !5
  %635 = load i32, ptr %59, align 4, !tbaa !9
  %636 = sext i32 %635 to i64
  %637 = getelementptr inbounds float, ptr %634, i64 %636
  %638 = load float, ptr %637, align 4, !tbaa !17
  %639 = fadd float %638, %627
  store float %639, ptr %637, align 4, !tbaa !17
  br label %640

640:                                              ; preds = %626, %612
  br label %641

641:                                              ; preds = %640, %565, %560
  %642 = load i32, ptr %61, align 4, !tbaa !9
  %643 = icmp sge i32 %642, 0
  br i1 %643, label %644, label %720

644:                                              ; preds = %641
  %645 = load i32, ptr %61, align 4, !tbaa !9
  %646 = icmp slt i32 %645, 50
  br i1 %646, label %647, label %720

647:                                              ; preds = %644
  %648 = load i32, ptr %64, align 4, !tbaa !9
  %649 = load i32, ptr %61, align 4, !tbaa !9
  %650 = mul nsw i32 %649, 4
  %651 = add nsw i32 %648, %650
  store i32 %651, ptr %63, align 4, !tbaa !9
  %652 = load i32, ptr %57, align 4, !tbaa !9
  %653 = load i32, ptr %78, align 4, !tbaa !9
  %654 = icmp eq i32 %652, %653
  br i1 %654, label %655, label %669

655:                                              ; preds = %647
  %656 = load float, ptr %43, align 4, !tbaa !17
  %657 = load ptr, ptr %65, align 8, !tbaa !5
  %658 = getelementptr inbounds %class.ImageContent, ptr %657, i32 0, i32 4
  %659 = load ptr, ptr %658, align 8, !tbaa !19
  %660 = load i32, ptr %62, align 4, !tbaa !9
  %661 = sext i32 %660 to i64
  %662 = getelementptr inbounds ptr, ptr %659, i64 %661
  %663 = load ptr, ptr %662, align 8, !tbaa !5
  %664 = load i32, ptr %61, align 4, !tbaa !9
  %665 = sext i32 %664 to i64
  %666 = getelementptr inbounds float, ptr %663, i64 %665
  %667 = load float, ptr %666, align 4, !tbaa !17
  %668 = fadd float %667, %656
  store float %668, ptr %666, align 4, !tbaa !17
  br label %688

669:                                              ; preds = %647
  %670 = load i32, ptr %58, align 4, !tbaa !9
  %671 = load i32, ptr %78, align 4, !tbaa !9
  %672 = icmp eq i32 %670, %671
  br i1 %672, label %673, label %687

673:                                              ; preds = %669
  %674 = load float, ptr %47, align 4, !tbaa !17
  %675 = load ptr, ptr %65, align 8, !tbaa !5
  %676 = getelementptr inbounds %class.ImageContent, ptr %675, i32 0, i32 4
  %677 = load ptr, ptr %676, align 8, !tbaa !19
  %678 = load i32, ptr %62, align 4, !tbaa !9
  %679 = sext i32 %678 to i64
  %680 = getelementptr inbounds ptr, ptr %677, i64 %679
  %681 = load ptr, ptr %680, align 8, !tbaa !5
  %682 = load i32, ptr %61, align 4, !tbaa !9
  %683 = sext i32 %682 to i64
  %684 = getelementptr inbounds float, ptr %681, i64 %683
  %685 = load float, ptr %684, align 4, !tbaa !17
  %686 = fadd float %685, %674
  store float %686, ptr %684, align 4, !tbaa !17
  br label %687

687:                                              ; preds = %673, %669
  br label %688

688:                                              ; preds = %687, %655
  %689 = load i32, ptr %58, align 4, !tbaa !9
  %690 = icmp eq i32 %689, 0
  br i1 %690, label %691, label %705

691:                                              ; preds = %688
  %692 = load float, ptr %43, align 4, !tbaa !17
  %693 = load ptr, ptr %68, align 8, !tbaa !5
  %694 = getelementptr inbounds %class.ImageContent, ptr %693, i32 0, i32 4
  %695 = load ptr, ptr %694, align 8, !tbaa !19
  %696 = load i32, ptr %62, align 4, !tbaa !9
  %697 = sext i32 %696 to i64
  %698 = getelementptr inbounds ptr, ptr %695, i64 %697
  %699 = load ptr, ptr %698, align 8, !tbaa !5
  %700 = load i32, ptr %61, align 4, !tbaa !9
  %701 = sext i32 %700 to i64
  %702 = getelementptr inbounds float, ptr %699, i64 %701
  %703 = load float, ptr %702, align 4, !tbaa !17
  %704 = fadd float %703, %692
  store float %704, ptr %702, align 4, !tbaa !17
  br label %719

705:                                              ; preds = %688
  %706 = load float, ptr %47, align 4, !tbaa !17
  %707 = load ptr, ptr %68, align 8, !tbaa !5
  %708 = getelementptr inbounds %class.ImageContent, ptr %707, i32 0, i32 4
  %709 = load ptr, ptr %708, align 8, !tbaa !19
  %710 = load i32, ptr %62, align 4, !tbaa !9
  %711 = sext i32 %710 to i64
  %712 = getelementptr inbounds ptr, ptr %709, i64 %711
  %713 = load ptr, ptr %712, align 8, !tbaa !5
  %714 = load i32, ptr %61, align 4, !tbaa !9
  %715 = sext i32 %714 to i64
  %716 = getelementptr inbounds float, ptr %713, i64 %715
  %717 = load float, ptr %716, align 4, !tbaa !17
  %718 = fadd float %717, %706
  store float %718, ptr %716, align 4, !tbaa !17
  br label %719

719:                                              ; preds = %705, %691
  br label %720

720:                                              ; preds = %719, %644, %641
  br label %721

721:                                              ; preds = %720, %557, %554
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #9
  br label %722

722:                                              ; preds = %721, %284
  %723 = load i32, ptr %77, align 4, !tbaa !9
  %724 = add nsw i32 %723, 1
  store i32 %724, ptr %77, align 4, !tbaa !9
  br label %227, !llvm.loop !21

725:                                              ; preds = %231
  br label %726

726:                                              ; preds = %725
  %727 = load i32, ptr %75, align 4, !tbaa !9
  %728 = add nsw i32 %727, 1
  store i32 %728, ptr %75, align 4, !tbaa !9
  br label %211, !llvm.loop !23

729:                                              ; preds = %215
  %730 = load ptr, ptr %65, align 8, !tbaa !5
  call void @_ZN12ImageContent5writeEPKc(ptr noundef nonnull align 8 dereferenceable(80) %730, ptr noundef @.str.23)
  %731 = load ptr, ptr %68, align 8, !tbaa !5
  call void @_ZN12ImageContent5writeEPKc(ptr noundef nonnull align 8 dereferenceable(80) %731, ptr noundef @.str.24)
  %732 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.25)
  %733 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %732, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %734 = call i32 @getchar()
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #9
  store double 0.000000e+00, ptr %79, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #9
  store i32 0, ptr %80, align 4, !tbaa !9
  br label %735

735:                                              ; preds = %756, %729
  %736 = load i32, ptr %80, align 4, !tbaa !9
  %737 = icmp slt i32 %736, 36
  br i1 %737, label %739, label %738

738:                                              ; preds = %735
  store i32 8, ptr %76, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #9
  br label %759

739:                                              ; preds = %735
  %740 = getelementptr inbounds %class.CornerDescriptor, ptr %103, i32 0, i32 1
  %741 = load ptr, ptr %740, align 8, !tbaa !26
  %742 = load i32, ptr %80, align 4, !tbaa !9
  %743 = sext i32 %742 to i64
  %744 = getelementptr inbounds float, ptr %741, i64 %743
  %745 = load float, ptr %744, align 4, !tbaa !17
  %746 = getelementptr inbounds %class.CornerDescriptor, ptr %103, i32 0, i32 1
  %747 = load ptr, ptr %746, align 8, !tbaa !26
  %748 = load i32, ptr %80, align 4, !tbaa !9
  %749 = sext i32 %748 to i64
  %750 = getelementptr inbounds float, ptr %747, i64 %749
  %751 = load float, ptr %750, align 4, !tbaa !17
  %752 = fmul float %745, %751
  %753 = fpext float %752 to double
  %754 = load double, ptr %79, align 8, !tbaa !24
  %755 = fadd double %754, %753
  store double %755, ptr %79, align 8, !tbaa !24
  br label %756

756:                                              ; preds = %739
  %757 = load i32, ptr %80, align 4, !tbaa !9
  %758 = add nsw i32 %757, 1
  store i32 %758, ptr %80, align 4, !tbaa !9
  br label %735, !llvm.loop !27

759:                                              ; preds = %738
  %760 = load double, ptr %79, align 8, !tbaa !24
  %761 = fcmp olt double %760, 1.000000e+01
  br i1 %761, label %762, label %763

762:                                              ; preds = %759
  store i32 1, ptr %76, align 4
  br label %1441

763:                                              ; preds = %759
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #9
  %764 = load double, ptr %79, align 8, !tbaa !24
  %765 = call double @sqrt(double noundef %764) #9
  %766 = fdiv double 1.000000e+00, %765
  %767 = fptrunc double %766 to float
  store float %767, ptr %81, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #9
  store i32 0, ptr %82, align 4, !tbaa !9
  br label %768

768:                                              ; preds = %781, %763
  %769 = load i32, ptr %82, align 4, !tbaa !9
  %770 = icmp slt i32 %769, 36
  br i1 %770, label %772, label %771

771:                                              ; preds = %768
  store i32 11, ptr %76, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #9
  br label %784

772:                                              ; preds = %768
  %773 = load float, ptr %81, align 4, !tbaa !17
  %774 = getelementptr inbounds %class.CornerDescriptor, ptr %103, i32 0, i32 1
  %775 = load ptr, ptr %774, align 8, !tbaa !26
  %776 = load i32, ptr %82, align 4, !tbaa !9
  %777 = sext i32 %776 to i64
  %778 = getelementptr inbounds float, ptr %775, i64 %777
  %779 = load float, ptr %778, align 4, !tbaa !17
  %780 = fmul float %779, %773
  store float %780, ptr %778, align 4, !tbaa !17
  br label %781

781:                                              ; preds = %772
  %782 = load i32, ptr %82, align 4, !tbaa !9
  %783 = add nsw i32 %782, 1
  store i32 %783, ptr %82, align 4, !tbaa !9
  br label %768, !llvm.loop !28

784:                                              ; preds = %771
  %785 = load i32, ptr %23, align 4, !tbaa !9
  %786 = sitofp i32 %785 to double
  %787 = fdiv double 3.000000e+00, %786
  %788 = fptrunc double %787 to float
  store float %788, ptr %56, align 4, !tbaa !17
  %789 = load float, ptr %56, align 4, !tbaa !17
  %790 = load float, ptr %69, align 4, !tbaa !17
  %791 = fmul float %789, %790
  store float %791, ptr %71, align 4, !tbaa !17
  %792 = load float, ptr %56, align 4, !tbaa !17
  %793 = load float, ptr %70, align 4, !tbaa !17
  %794 = fmul float %792, %793
  store float %794, ptr %72, align 4, !tbaa !17
  %795 = load float, ptr %70, align 4, !tbaa !17
  %796 = fneg float %795
  %797 = load float, ptr %56, align 4, !tbaa !17
  %798 = fmul float %796, %797
  store float %798, ptr %73, align 4, !tbaa !17
  %799 = load float, ptr %69, align 4, !tbaa !17
  %800 = load float, ptr %56, align 4, !tbaa !17
  %801 = fmul float %799, %800
  store float %801, ptr %74, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #9
  %802 = load i32, ptr %23, align 4, !tbaa !9
  %803 = sub nsw i32 0, %802
  store i32 %803, ptr %97, align 4, !tbaa !9
  br label %804

804:                                              ; preds = %1344, %784
  %805 = load i32, ptr %97, align 4, !tbaa !9
  %806 = load i32, ptr %23, align 4, !tbaa !9
  %807 = icmp slt i32 %805, %806
  br i1 %807, label %809, label %808

808:                                              ; preds = %804
  store i32 14, ptr %76, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #9
  br label %1347

809:                                              ; preds = %804
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #9
  %810 = load i32, ptr %23, align 4, !tbaa !9
  %811 = sub nsw i32 0, %810
  store i32 %811, ptr %98, align 4, !tbaa !9
  br label %812

812:                                              ; preds = %1340, %809
  %813 = load i32, ptr %98, align 4, !tbaa !9
  %814 = load i32, ptr %23, align 4, !tbaa !9
  %815 = icmp slt i32 %813, %814
  br i1 %815, label %817, label %816

816:                                              ; preds = %812
  store i32 17, ptr %76, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #9
  br label %1343

817:                                              ; preds = %812
  %818 = load i32, ptr %21, align 4, !tbaa !9
  %819 = load i32, ptr %98, align 4, !tbaa !9
  %820 = add nsw i32 %818, %819
  store i32 %820, ptr %54, align 4, !tbaa !9
  %821 = load i32, ptr %22, align 4, !tbaa !9
  %822 = load i32, ptr %97, align 4, !tbaa !9
  %823 = add nsw i32 %821, %822
  store i32 %823, ptr %55, align 4, !tbaa !9
  %824 = load ptr, ptr %17, align 8, !tbaa !5
  %825 = getelementptr inbounds %class.ImageContent, ptr %824, i32 0, i32 4
  %826 = load ptr, ptr %825, align 8, !tbaa !19
  %827 = load i32, ptr %55, align 4, !tbaa !9
  %828 = sext i32 %827 to i64
  %829 = getelementptr inbounds ptr, ptr %826, i64 %828
  %830 = load ptr, ptr %829, align 8, !tbaa !5
  %831 = load i32, ptr %54, align 4, !tbaa !9
  %832 = sext i32 %831 to i64
  %833 = getelementptr inbounds float, ptr %830, i64 %832
  %834 = load float, ptr %833, align 4, !tbaa !17
  store float %834, ptr %31, align 4, !tbaa !17
  %835 = load ptr, ptr %19, align 8, !tbaa !5
  %836 = getelementptr inbounds %class.ImageContent, ptr %835, i32 0, i32 4
  %837 = load ptr, ptr %836, align 8, !tbaa !19
  %838 = load i32, ptr %55, align 4, !tbaa !9
  %839 = sext i32 %838 to i64
  %840 = getelementptr inbounds ptr, ptr %837, i64 %839
  %841 = load ptr, ptr %840, align 8, !tbaa !5
  %842 = load i32, ptr %54, align 4, !tbaa !9
  %843 = sext i32 %842 to i64
  %844 = getelementptr inbounds float, ptr %841, i64 %843
  %845 = load float, ptr %844, align 4, !tbaa !17
  %846 = call float @llvm.fabs.f32(float %845)
  store float %846, ptr %83, align 4, !tbaa !17
  %847 = load ptr, ptr %18, align 8, !tbaa !5
  %848 = getelementptr inbounds %class.ImageContent, ptr %847, i32 0, i32 4
  %849 = load ptr, ptr %848, align 8, !tbaa !19
  %850 = load i32, ptr %55, align 4, !tbaa !9
  %851 = sext i32 %850 to i64
  %852 = getelementptr inbounds ptr, ptr %849, i64 %851
  %853 = load ptr, ptr %852, align 8, !tbaa !5
  %854 = load i32, ptr %54, align 4, !tbaa !9
  %855 = sext i32 %854 to i64
  %856 = getelementptr inbounds float, ptr %853, i64 %855
  %857 = load float, ptr %856, align 4, !tbaa !17
  %858 = fpext float %857 to double
  %859 = fadd double %858, 0x400921FB54442D18
  %860 = getelementptr inbounds %class.Corner, ptr %103, i32 0, i32 19
  %861 = load float, ptr %860, align 4, !tbaa !18
  %862 = fpext float %861 to double
  %863 = fsub double %859, %862
  %864 = fptrunc double %863 to float
  store float %864, ptr %32, align 4, !tbaa !17
  %865 = load ptr, ptr %20, align 8, !tbaa !5
  %866 = getelementptr inbounds %class.ImageContent, ptr %865, i32 0, i32 4
  %867 = load ptr, ptr %866, align 8, !tbaa !19
  %868 = load i32, ptr %55, align 4, !tbaa !9
  %869 = sext i32 %868 to i64
  %870 = getelementptr inbounds ptr, ptr %867, i64 %869
  %871 = load ptr, ptr %870, align 8, !tbaa !5
  %872 = load i32, ptr %54, align 4, !tbaa !9
  %873 = sext i32 %872 to i64
  %874 = getelementptr inbounds float, ptr %871, i64 %873
  %875 = load float, ptr %874, align 4, !tbaa !17
  %876 = fpext float %875 to double
  %877 = fadd double %876, 0x400921FB54442D18
  %878 = getelementptr inbounds %class.Corner, ptr %103, i32 0, i32 19
  %879 = load float, ptr %878, align 4, !tbaa !18
  %880 = fpext float %879 to double
  %881 = fsub double %877, %880
  %882 = fptrunc double %881 to float
  store float %882, ptr %94, align 4, !tbaa !17
  %883 = load float, ptr %32, align 4, !tbaa !17
  %884 = fcmp olt float %883, 0.000000e+00
  br i1 %884, label %885, label %890

885:                                              ; preds = %817
  %886 = load float, ptr %32, align 4, !tbaa !17
  %887 = fpext float %886 to double
  %888 = fadd double %887, 0x401921FB544486E0
  %889 = fptrunc double %888 to float
  store float %889, ptr %32, align 4, !tbaa !17
  br label %890

890:                                              ; preds = %885, %817
  %891 = load float, ptr %94, align 4, !tbaa !17
  %892 = fcmp olt float %891, 0.000000e+00
  br i1 %892, label %893, label %898

893:                                              ; preds = %890
  %894 = load float, ptr %94, align 4, !tbaa !17
  %895 = fpext float %894 to double
  %896 = fadd double %895, 0x401921FB544486E0
  %897 = fptrunc double %896 to float
  store float %897, ptr %94, align 4, !tbaa !17
  br label %898

898:                                              ; preds = %893, %890
  %899 = load float, ptr %32, align 4, !tbaa !17
  %900 = fpext float %899 to double
  %901 = fcmp ogt double %900, 0x401921FB544486E0
  br i1 %901, label %902, label %907

902:                                              ; preds = %898
  %903 = load float, ptr %32, align 4, !tbaa !17
  %904 = fpext float %903 to double
  %905 = fsub double %904, 0x401921FB544486E0
  %906 = fptrunc double %905 to float
  store float %906, ptr %32, align 4, !tbaa !17
  br label %907

907:                                              ; preds = %902, %898
  %908 = load float, ptr %94, align 4, !tbaa !17
  %909 = fpext float %908 to double
  %910 = fcmp ogt double %909, 0x401921FB544486E0
  br i1 %910, label %911, label %916

911:                                              ; preds = %907
  %912 = load float, ptr %94, align 4, !tbaa !17
  %913 = fpext float %912 to double
  %914 = fsub double %913, 0x401921FB544486E0
  %915 = fptrunc double %914 to float
  store float %915, ptr %94, align 4, !tbaa !17
  br label %916

916:                                              ; preds = %911, %907
  %917 = load float, ptr %31, align 4, !tbaa !17
  %918 = fcmp olt float %917, 1.000000e+00
  br i1 %918, label %922, label %919

919:                                              ; preds = %916
  %920 = load float, ptr %83, align 4, !tbaa !17
  %921 = fcmp olt float %920, 1.000000e+00
  br i1 %921, label %922, label %923

922:                                              ; preds = %919, %916
  br label %1340

923:                                              ; preds = %919
  %924 = load float, ptr %32, align 4, !tbaa !17
  %925 = fmul float %924, 0x3FF45F3060000000
  store float %925, ptr %32, align 4, !tbaa !17
  %926 = load float, ptr %94, align 4, !tbaa !17
  %927 = fmul float %926, 0x3FF45F3060000000
  store float %927, ptr %94, align 4, !tbaa !17
  %928 = load float, ptr %32, align 4, !tbaa !17
  %929 = call float @llvm.floor.f32(float %928)
  %930 = fptosi float %929 to i32
  store i32 %930, ptr %52, align 4, !tbaa !9
  %931 = load float, ptr %32, align 4, !tbaa !17
  %932 = load i32, ptr %52, align 4, !tbaa !9
  %933 = sitofp i32 %932 to float
  %934 = fsub float %931, %933
  store float %934, ptr %39, align 4, !tbaa !17
  %935 = load float, ptr %94, align 4, !tbaa !17
  %936 = call float @llvm.floor.f32(float %935)
  store float %936, ptr %92, align 4, !tbaa !17
  %937 = load float, ptr %94, align 4, !tbaa !17
  %938 = load float, ptr %92, align 4, !tbaa !17
  %939 = fsub float %937, %938
  store float %939, ptr %93, align 4, !tbaa !17
  %940 = load i32, ptr %52, align 4, !tbaa !9
  store i32 %940, ptr %57, align 4, !tbaa !9
  %941 = load i32, ptr %52, align 4, !tbaa !9
  %942 = add nsw i32 %941, 1
  %943 = icmp slt i32 %942, 8
  br i1 %943, label %944, label %947

944:                                              ; preds = %923
  %945 = load i32, ptr %52, align 4, !tbaa !9
  %946 = add nsw i32 %945, 1
  br label %948

947:                                              ; preds = %923
  br label %948

948:                                              ; preds = %947, %944
  %949 = phi i32 [ %946, %944 ], [ 0, %947 ]
  store i32 %949, ptr %58, align 4, !tbaa !9
  %950 = load i32, ptr %57, align 4, !tbaa !9
  %951 = icmp slt i32 %950, 0
  br i1 %951, label %955, label %952

952:                                              ; preds = %948
  %953 = load i32, ptr %58, align 4, !tbaa !9
  %954 = icmp slt i32 %953, 0
  br i1 %954, label %955, label %956

955:                                              ; preds = %952, %948
  br label %1340

956:                                              ; preds = %952
  %957 = load float, ptr %92, align 4, !tbaa !17
  %958 = fptosi float %957 to i32
  store i32 %958, ptr %95, align 4, !tbaa !9
  %959 = load float, ptr %92, align 4, !tbaa !17
  %960 = fadd float %959, 1.000000e+00
  %961 = fcmp olt float %960, 8.000000e+00
  br i1 %961, label %962, label %965

962:                                              ; preds = %956
  %963 = load float, ptr %92, align 4, !tbaa !17
  %964 = fadd float %963, 1.000000e+00
  br label %966

965:                                              ; preds = %956
  br label %966

966:                                              ; preds = %965, %962
  %967 = phi float [ %964, %962 ], [ 0.000000e+00, %965 ]
  %968 = fptosi float %967 to i32
  store i32 %968, ptr %96, align 4, !tbaa !9
  %969 = load i32, ptr %95, align 4, !tbaa !9
  %970 = icmp slt i32 %969, 0
  br i1 %970, label %974, label %971

971:                                              ; preds = %966
  %972 = load i32, ptr %96, align 4, !tbaa !9
  %973 = icmp slt i32 %972, 0
  br i1 %973, label %974, label %975

974:                                              ; preds = %971, %966
  br label %1340

975:                                              ; preds = %971
  %976 = load i32, ptr %98, align 4, !tbaa !9
  %977 = sitofp i32 %976 to float
  %978 = load float, ptr %71, align 4, !tbaa !17
  %979 = load i32, ptr %97, align 4, !tbaa !9
  %980 = sitofp i32 %979 to float
  %981 = load float, ptr %72, align 4, !tbaa !17
  %982 = fmul float %980, %981
  %983 = call float @llvm.fmuladd.f32(float %977, float %978, float %982)
  store float %983, ptr %35, align 4, !tbaa !17
  %984 = load i32, ptr %98, align 4, !tbaa !9
  %985 = sitofp i32 %984 to float
  %986 = load float, ptr %73, align 4, !tbaa !17
  %987 = load i32, ptr %97, align 4, !tbaa !9
  %988 = sitofp i32 %987 to float
  %989 = load float, ptr %74, align 4, !tbaa !17
  %990 = fmul float %988, %989
  %991 = call float @llvm.fmuladd.f32(float %985, float %986, float %990)
  store float %991, ptr %36, align 4, !tbaa !17
  %992 = load float, ptr %35, align 4, !tbaa !17
  %993 = call float @llvm.floor.f32(float %992)
  %994 = fptosi float %993 to i32
  store i32 %994, ptr %48, align 4, !tbaa !9
  %995 = load float, ptr %36, align 4, !tbaa !17
  %996 = call float @llvm.floor.f32(float %995)
  %997 = fptosi float %996 to i32
  store i32 %997, ptr %49, align 4, !tbaa !9
  %998 = load float, ptr %35, align 4, !tbaa !17
  %999 = load i32, ptr %48, align 4, !tbaa !9
  %1000 = sitofp i32 %999 to float
  %1001 = fsub float %998, %1000
  store float %1001, ptr %37, align 4, !tbaa !17
  %1002 = load float, ptr %36, align 4, !tbaa !17
  %1003 = load i32, ptr %49, align 4, !tbaa !9
  %1004 = sitofp i32 %1003 to float
  %1005 = fsub float %1002, %1004
  store float %1005, ptr %38, align 4, !tbaa !17
  %1006 = load float, ptr %37, align 4, !tbaa !17
  %1007 = load float, ptr %38, align 4, !tbaa !17
  %1008 = fmul float %1006, %1007
  store float %1008, ptr %34, align 4, !tbaa !17
  %1009 = load float, ptr %34, align 4, !tbaa !17
  %1010 = load float, ptr %31, align 4, !tbaa !17
  %1011 = fmul float %1009, %1010
  store float %1011, ptr %33, align 4, !tbaa !17
  %1012 = load float, ptr %39, align 4, !tbaa !17
  %1013 = load float, ptr %33, align 4, !tbaa !17
  %1014 = fmul float %1012, %1013
  store float %1014, ptr %47, align 4, !tbaa !17
  %1015 = load float, ptr %33, align 4, !tbaa !17
  %1016 = load float, ptr %47, align 4, !tbaa !17
  %1017 = fsub float %1015, %1016
  store float %1017, ptr %43, align 4, !tbaa !17
  %1018 = load float, ptr %34, align 4, !tbaa !17
  %1019 = load float, ptr %83, align 4, !tbaa !17
  %1020 = fmul float %1018, %1019
  store float %1020, ptr %33, align 4, !tbaa !17
  %1021 = load float, ptr %93, align 4, !tbaa !17
  %1022 = load float, ptr %33, align 4, !tbaa !17
  %1023 = fmul float %1021, %1022
  store float %1023, ptr %84, align 4, !tbaa !17
  %1024 = load float, ptr %33, align 4, !tbaa !17
  %1025 = load float, ptr %84, align 4, !tbaa !17
  %1026 = fsub float %1024, %1025
  store float %1026, ptr %85, align 4, !tbaa !17
  %1027 = load float, ptr %37, align 4, !tbaa !17
  %1028 = fsub float 1.000000e+00, %1027
  %1029 = load float, ptr %38, align 4, !tbaa !17
  %1030 = fmul float %1028, %1029
  store float %1030, ptr %34, align 4, !tbaa !17
  %1031 = load float, ptr %34, align 4, !tbaa !17
  %1032 = load float, ptr %31, align 4, !tbaa !17
  %1033 = fmul float %1031, %1032
  store float %1033, ptr %33, align 4, !tbaa !17
  %1034 = load float, ptr %39, align 4, !tbaa !17
  %1035 = load float, ptr %33, align 4, !tbaa !17
  %1036 = fmul float %1034, %1035
  store float %1036, ptr %45, align 4, !tbaa !17
  %1037 = load float, ptr %33, align 4, !tbaa !17
  %1038 = load float, ptr %45, align 4, !tbaa !17
  %1039 = fsub float %1037, %1038
  store float %1039, ptr %41, align 4, !tbaa !17
  %1040 = load float, ptr %34, align 4, !tbaa !17
  %1041 = load float, ptr %83, align 4, !tbaa !17
  %1042 = fmul float %1040, %1041
  store float %1042, ptr %33, align 4, !tbaa !17
  %1043 = load float, ptr %93, align 4, !tbaa !17
  %1044 = load float, ptr %33, align 4, !tbaa !17
  %1045 = fmul float %1043, %1044
  store float %1045, ptr %86, align 4, !tbaa !17
  %1046 = load float, ptr %33, align 4, !tbaa !17
  %1047 = load float, ptr %86, align 4, !tbaa !17
  %1048 = fsub float %1046, %1047
  store float %1048, ptr %87, align 4, !tbaa !17
  %1049 = load float, ptr %37, align 4, !tbaa !17
  %1050 = fsub float 1.000000e+00, %1049
  %1051 = load float, ptr %38, align 4, !tbaa !17
  %1052 = fmul float %1050, %1051
  store float %1052, ptr %34, align 4, !tbaa !17
  %1053 = load float, ptr %34, align 4, !tbaa !17
  %1054 = load float, ptr %31, align 4, !tbaa !17
  %1055 = fmul float %1053, %1054
  store float %1055, ptr %33, align 4, !tbaa !17
  %1056 = load float, ptr %39, align 4, !tbaa !17
  %1057 = load float, ptr %33, align 4, !tbaa !17
  %1058 = fmul float %1056, %1057
  store float %1058, ptr %46, align 4, !tbaa !17
  %1059 = load float, ptr %33, align 4, !tbaa !17
  %1060 = load float, ptr %46, align 4, !tbaa !17
  %1061 = fsub float %1059, %1060
  store float %1061, ptr %42, align 4, !tbaa !17
  %1062 = load float, ptr %34, align 4, !tbaa !17
  %1063 = load float, ptr %83, align 4, !tbaa !17
  %1064 = fmul float %1062, %1063
  store float %1064, ptr %33, align 4, !tbaa !17
  %1065 = load float, ptr %93, align 4, !tbaa !17
  %1066 = load float, ptr %33, align 4, !tbaa !17
  %1067 = fmul float %1065, %1066
  store float %1067, ptr %88, align 4, !tbaa !17
  %1068 = load float, ptr %33, align 4, !tbaa !17
  %1069 = load float, ptr %88, align 4, !tbaa !17
  %1070 = fsub float %1068, %1069
  store float %1070, ptr %89, align 4, !tbaa !17
  %1071 = load float, ptr %38, align 4, !tbaa !17
  %1072 = fsub float 1.000000e+00, %1071
  %1073 = load float, ptr %37, align 4, !tbaa !17
  %1074 = fsub float 1.000000e+00, %1073
  %1075 = fmul float %1072, %1074
  store float %1075, ptr %34, align 4, !tbaa !17
  %1076 = load float, ptr %34, align 4, !tbaa !17
  %1077 = load float, ptr %31, align 4, !tbaa !17
  %1078 = fmul float %1076, %1077
  store float %1078, ptr %33, align 4, !tbaa !17
  %1079 = load float, ptr %39, align 4, !tbaa !17
  %1080 = load float, ptr %33, align 4, !tbaa !17
  %1081 = fmul float %1079, %1080
  store float %1081, ptr %44, align 4, !tbaa !17
  %1082 = load float, ptr %33, align 4, !tbaa !17
  %1083 = load float, ptr %44, align 4, !tbaa !17
  %1084 = fsub float %1082, %1083
  store float %1084, ptr %40, align 4, !tbaa !17
  %1085 = load float, ptr %34, align 4, !tbaa !17
  %1086 = load float, ptr %83, align 4, !tbaa !17
  %1087 = fmul float %1085, %1086
  store float %1087, ptr %33, align 4, !tbaa !17
  %1088 = load float, ptr %93, align 4, !tbaa !17
  %1089 = load float, ptr %33, align 4, !tbaa !17
  %1090 = fmul float %1088, %1089
  store float %1090, ptr %90, align 4, !tbaa !17
  %1091 = load float, ptr %33, align 4, !tbaa !17
  %1092 = load float, ptr %90, align 4, !tbaa !17
  %1093 = fsub float %1091, %1092
  store float %1093, ptr %91, align 4, !tbaa !17
  %1094 = load i32, ptr %48, align 4, !tbaa !9
  %1095 = add nsw i32 %1094, 2
  store i32 %1095, ptr %59, align 4, !tbaa !9
  %1096 = load i32, ptr %49, align 4, !tbaa !9
  %1097 = add nsw i32 %1096, 2
  store i32 %1097, ptr %60, align 4, !tbaa !9
  %1098 = load i32, ptr %59, align 4, !tbaa !9
  %1099 = add nsw i32 %1098, 1
  store i32 %1099, ptr %61, align 4, !tbaa !9
  %1100 = load i32, ptr %60, align 4, !tbaa !9
  %1101 = add nsw i32 %1100, 1
  store i32 %1101, ptr %62, align 4, !tbaa !9
  %1102 = load i32, ptr %60, align 4, !tbaa !9
  %1103 = icmp sge i32 %1102, 0
  br i1 %1103, label %1104, label %1220

1104:                                             ; preds = %975
  %1105 = load i32, ptr %60, align 4, !tbaa !9
  %1106 = icmp slt i32 %1105, 5
  br i1 %1106, label %1107, label %1220

1107:                                             ; preds = %1104
  %1108 = load i32, ptr %60, align 4, !tbaa !9
  %1109 = mul nsw i32 %1108, 40
  store i32 %1109, ptr %64, align 4, !tbaa !9
  %1110 = load i32, ptr %59, align 4, !tbaa !9
  %1111 = icmp sge i32 %1110, 0
  br i1 %1111, label %1112, label %1164

1112:                                             ; preds = %1107
  %1113 = load i32, ptr %59, align 4, !tbaa !9
  %1114 = icmp slt i32 %1113, 5
  br i1 %1114, label %1115, label %1164

1115:                                             ; preds = %1112
  %1116 = load i32, ptr %64, align 4, !tbaa !9
  %1117 = load i32, ptr %59, align 4, !tbaa !9
  %1118 = mul nsw i32 %1117, 8
  %1119 = add nsw i32 %1116, %1118
  store i32 %1119, ptr %63, align 4, !tbaa !9
  %1120 = load float, ptr %40, align 4, !tbaa !17
  %1121 = getelementptr inbounds %class.CornerDescriptor, ptr %103, i32 0, i32 1
  %1122 = load ptr, ptr %1121, align 8, !tbaa !26
  %1123 = load i32, ptr %63, align 4, !tbaa !9
  %1124 = add nsw i32 36, %1123
  %1125 = load i32, ptr %57, align 4, !tbaa !9
  %1126 = add nsw i32 %1124, %1125
  %1127 = sext i32 %1126 to i64
  %1128 = getelementptr inbounds float, ptr %1122, i64 %1127
  %1129 = load float, ptr %1128, align 4, !tbaa !17
  %1130 = fadd float %1129, %1120
  store float %1130, ptr %1128, align 4, !tbaa !17
  %1131 = load float, ptr %44, align 4, !tbaa !17
  %1132 = getelementptr inbounds %class.CornerDescriptor, ptr %103, i32 0, i32 1
  %1133 = load ptr, ptr %1132, align 8, !tbaa !26
  %1134 = load i32, ptr %63, align 4, !tbaa !9
  %1135 = add nsw i32 36, %1134
  %1136 = load i32, ptr %58, align 4, !tbaa !9
  %1137 = add nsw i32 %1135, %1136
  %1138 = sext i32 %1137 to i64
  %1139 = getelementptr inbounds float, ptr %1133, i64 %1138
  %1140 = load float, ptr %1139, align 4, !tbaa !17
  %1141 = fadd float %1140, %1131
  store float %1141, ptr %1139, align 4, !tbaa !17
  %1142 = load float, ptr %91, align 4, !tbaa !17
  %1143 = getelementptr inbounds %class.CornerDescriptor, ptr %103, i32 0, i32 1
  %1144 = load ptr, ptr %1143, align 8, !tbaa !26
  %1145 = load i32, ptr %63, align 4, !tbaa !9
  %1146 = add nsw i32 236, %1145
  %1147 = load i32, ptr %95, align 4, !tbaa !9
  %1148 = add nsw i32 %1146, %1147
  %1149 = sext i32 %1148 to i64
  %1150 = getelementptr inbounds float, ptr %1144, i64 %1149
  %1151 = load float, ptr %1150, align 4, !tbaa !17
  %1152 = fadd float %1151, %1142
  store float %1152, ptr %1150, align 4, !tbaa !17
  %1153 = load float, ptr %90, align 4, !tbaa !17
  %1154 = getelementptr inbounds %class.CornerDescriptor, ptr %103, i32 0, i32 1
  %1155 = load ptr, ptr %1154, align 8, !tbaa !26
  %1156 = load i32, ptr %63, align 4, !tbaa !9
  %1157 = add nsw i32 236, %1156
  %1158 = load i32, ptr %96, align 4, !tbaa !9
  %1159 = add nsw i32 %1157, %1158
  %1160 = sext i32 %1159 to i64
  %1161 = getelementptr inbounds float, ptr %1155, i64 %1160
  %1162 = load float, ptr %1161, align 4, !tbaa !17
  %1163 = fadd float %1162, %1153
  store float %1163, ptr %1161, align 4, !tbaa !17
  br label %1164

1164:                                             ; preds = %1115, %1112, %1107
  %1165 = load i32, ptr %61, align 4, !tbaa !9
  %1166 = icmp sge i32 %1165, 0
  br i1 %1166, label %1167, label %1219

1167:                                             ; preds = %1164
  %1168 = load i32, ptr %61, align 4, !tbaa !9
  %1169 = icmp slt i32 %1168, 5
  br i1 %1169, label %1170, label %1219

1170:                                             ; preds = %1167
  %1171 = load i32, ptr %64, align 4, !tbaa !9
  %1172 = load i32, ptr %61, align 4, !tbaa !9
  %1173 = mul nsw i32 %1172, 8
  %1174 = add nsw i32 %1171, %1173
  store i32 %1174, ptr %63, align 4, !tbaa !9
  %1175 = load float, ptr %42, align 4, !tbaa !17
  %1176 = getelementptr inbounds %class.CornerDescriptor, ptr %103, i32 0, i32 1
  %1177 = load ptr, ptr %1176, align 8, !tbaa !26
  %1178 = load i32, ptr %63, align 4, !tbaa !9
  %1179 = add nsw i32 36, %1178
  %1180 = load i32, ptr %57, align 4, !tbaa !9
  %1181 = add nsw i32 %1179, %1180
  %1182 = sext i32 %1181 to i64
  %1183 = getelementptr inbounds float, ptr %1177, i64 %1182
  %1184 = load float, ptr %1183, align 4, !tbaa !17
  %1185 = fadd float %1184, %1175
  store float %1185, ptr %1183, align 4, !tbaa !17
  %1186 = load float, ptr %46, align 4, !tbaa !17
  %1187 = getelementptr inbounds %class.CornerDescriptor, ptr %103, i32 0, i32 1
  %1188 = load ptr, ptr %1187, align 8, !tbaa !26
  %1189 = load i32, ptr %63, align 4, !tbaa !9
  %1190 = add nsw i32 36, %1189
  %1191 = load i32, ptr %58, align 4, !tbaa !9
  %1192 = add nsw i32 %1190, %1191
  %1193 = sext i32 %1192 to i64
  %1194 = getelementptr inbounds float, ptr %1188, i64 %1193
  %1195 = load float, ptr %1194, align 4, !tbaa !17
  %1196 = fadd float %1195, %1186
  store float %1196, ptr %1194, align 4, !tbaa !17
  %1197 = load float, ptr %89, align 4, !tbaa !17
  %1198 = getelementptr inbounds %class.CornerDescriptor, ptr %103, i32 0, i32 1
  %1199 = load ptr, ptr %1198, align 8, !tbaa !26
  %1200 = load i32, ptr %63, align 4, !tbaa !9
  %1201 = add nsw i32 236, %1200
  %1202 = load i32, ptr %95, align 4, !tbaa !9
  %1203 = add nsw i32 %1201, %1202
  %1204 = sext i32 %1203 to i64
  %1205 = getelementptr inbounds float, ptr %1199, i64 %1204
  %1206 = load float, ptr %1205, align 4, !tbaa !17
  %1207 = fadd float %1206, %1197
  store float %1207, ptr %1205, align 4, !tbaa !17
  %1208 = load float, ptr %88, align 4, !tbaa !17
  %1209 = getelementptr inbounds %class.CornerDescriptor, ptr %103, i32 0, i32 1
  %1210 = load ptr, ptr %1209, align 8, !tbaa !26
  %1211 = load i32, ptr %63, align 4, !tbaa !9
  %1212 = add nsw i32 236, %1211
  %1213 = load i32, ptr %96, align 4, !tbaa !9
  %1214 = add nsw i32 %1212, %1213
  %1215 = sext i32 %1214 to i64
  %1216 = getelementptr inbounds float, ptr %1210, i64 %1215
  %1217 = load float, ptr %1216, align 4, !tbaa !17
  %1218 = fadd float %1217, %1208
  store float %1218, ptr %1216, align 4, !tbaa !17
  br label %1219

1219:                                             ; preds = %1170, %1167, %1164
  br label %1220

1220:                                             ; preds = %1219, %1104, %975
  %1221 = load i32, ptr %62, align 4, !tbaa !9
  %1222 = icmp sge i32 %1221, 0
  br i1 %1222, label %1223, label %1339

1223:                                             ; preds = %1220
  %1224 = load i32, ptr %62, align 4, !tbaa !9
  %1225 = icmp slt i32 %1224, 5
  br i1 %1225, label %1226, label %1339

1226:                                             ; preds = %1223
  %1227 = load i32, ptr %62, align 4, !tbaa !9
  %1228 = mul nsw i32 %1227, 40
  store i32 %1228, ptr %64, align 4, !tbaa !9
  %1229 = load i32, ptr %59, align 4, !tbaa !9
  %1230 = icmp sge i32 %1229, 0
  br i1 %1230, label %1231, label %1283

1231:                                             ; preds = %1226
  %1232 = load i32, ptr %59, align 4, !tbaa !9
  %1233 = icmp slt i32 %1232, 5
  br i1 %1233, label %1234, label %1283

1234:                                             ; preds = %1231
  %1235 = load i32, ptr %64, align 4, !tbaa !9
  %1236 = load i32, ptr %59, align 4, !tbaa !9
  %1237 = mul nsw i32 %1236, 8
  %1238 = add nsw i32 %1235, %1237
  store i32 %1238, ptr %63, align 4, !tbaa !9
  %1239 = load float, ptr %41, align 4, !tbaa !17
  %1240 = getelementptr inbounds %class.CornerDescriptor, ptr %103, i32 0, i32 1
  %1241 = load ptr, ptr %1240, align 8, !tbaa !26
  %1242 = load i32, ptr %63, align 4, !tbaa !9
  %1243 = add nsw i32 36, %1242
  %1244 = load i32, ptr %57, align 4, !tbaa !9
  %1245 = add nsw i32 %1243, %1244
  %1246 = sext i32 %1245 to i64
  %1247 = getelementptr inbounds float, ptr %1241, i64 %1246
  %1248 = load float, ptr %1247, align 4, !tbaa !17
  %1249 = fadd float %1248, %1239
  store float %1249, ptr %1247, align 4, !tbaa !17
  %1250 = load float, ptr %45, align 4, !tbaa !17
  %1251 = getelementptr inbounds %class.CornerDescriptor, ptr %103, i32 0, i32 1
  %1252 = load ptr, ptr %1251, align 8, !tbaa !26
  %1253 = load i32, ptr %63, align 4, !tbaa !9
  %1254 = add nsw i32 36, %1253
  %1255 = load i32, ptr %58, align 4, !tbaa !9
  %1256 = add nsw i32 %1254, %1255
  %1257 = sext i32 %1256 to i64
  %1258 = getelementptr inbounds float, ptr %1252, i64 %1257
  %1259 = load float, ptr %1258, align 4, !tbaa !17
  %1260 = fadd float %1259, %1250
  store float %1260, ptr %1258, align 4, !tbaa !17
  %1261 = load float, ptr %87, align 4, !tbaa !17
  %1262 = getelementptr inbounds %class.CornerDescriptor, ptr %103, i32 0, i32 1
  %1263 = load ptr, ptr %1262, align 8, !tbaa !26
  %1264 = load i32, ptr %63, align 4, !tbaa !9
  %1265 = add nsw i32 236, %1264
  %1266 = load i32, ptr %95, align 4, !tbaa !9
  %1267 = add nsw i32 %1265, %1266
  %1268 = sext i32 %1267 to i64
  %1269 = getelementptr inbounds float, ptr %1263, i64 %1268
  %1270 = load float, ptr %1269, align 4, !tbaa !17
  %1271 = fadd float %1270, %1261
  store float %1271, ptr %1269, align 4, !tbaa !17
  %1272 = load float, ptr %86, align 4, !tbaa !17
  %1273 = getelementptr inbounds %class.CornerDescriptor, ptr %103, i32 0, i32 1
  %1274 = load ptr, ptr %1273, align 8, !tbaa !26
  %1275 = load i32, ptr %63, align 4, !tbaa !9
  %1276 = add nsw i32 236, %1275
  %1277 = load i32, ptr %96, align 4, !tbaa !9
  %1278 = add nsw i32 %1276, %1277
  %1279 = sext i32 %1278 to i64
  %1280 = getelementptr inbounds float, ptr %1274, i64 %1279
  %1281 = load float, ptr %1280, align 4, !tbaa !17
  %1282 = fadd float %1281, %1272
  store float %1282, ptr %1280, align 4, !tbaa !17
  br label %1283

1283:                                             ; preds = %1234, %1231, %1226
  %1284 = load i32, ptr %61, align 4, !tbaa !9
  %1285 = icmp sge i32 %1284, 0
  br i1 %1285, label %1286, label %1338

1286:                                             ; preds = %1283
  %1287 = load i32, ptr %61, align 4, !tbaa !9
  %1288 = icmp slt i32 %1287, 5
  br i1 %1288, label %1289, label %1338

1289:                                             ; preds = %1286
  %1290 = load i32, ptr %64, align 4, !tbaa !9
  %1291 = load i32, ptr %61, align 4, !tbaa !9
  %1292 = mul nsw i32 %1291, 8
  %1293 = add nsw i32 %1290, %1292
  store i32 %1293, ptr %63, align 4, !tbaa !9
  %1294 = load float, ptr %43, align 4, !tbaa !17
  %1295 = getelementptr inbounds %class.CornerDescriptor, ptr %103, i32 0, i32 1
  %1296 = load ptr, ptr %1295, align 8, !tbaa !26
  %1297 = load i32, ptr %63, align 4, !tbaa !9
  %1298 = add nsw i32 36, %1297
  %1299 = load i32, ptr %57, align 4, !tbaa !9
  %1300 = add nsw i32 %1298, %1299
  %1301 = sext i32 %1300 to i64
  %1302 = getelementptr inbounds float, ptr %1296, i64 %1301
  %1303 = load float, ptr %1302, align 4, !tbaa !17
  %1304 = fadd float %1303, %1294
  store float %1304, ptr %1302, align 4, !tbaa !17
  %1305 = load float, ptr %47, align 4, !tbaa !17
  %1306 = getelementptr inbounds %class.CornerDescriptor, ptr %103, i32 0, i32 1
  %1307 = load ptr, ptr %1306, align 8, !tbaa !26
  %1308 = load i32, ptr %63, align 4, !tbaa !9
  %1309 = add nsw i32 36, %1308
  %1310 = load i32, ptr %58, align 4, !tbaa !9
  %1311 = add nsw i32 %1309, %1310
  %1312 = sext i32 %1311 to i64
  %1313 = getelementptr inbounds float, ptr %1307, i64 %1312
  %1314 = load float, ptr %1313, align 4, !tbaa !17
  %1315 = fadd float %1314, %1305
  store float %1315, ptr %1313, align 4, !tbaa !17
  %1316 = load float, ptr %85, align 4, !tbaa !17
  %1317 = getelementptr inbounds %class.CornerDescriptor, ptr %103, i32 0, i32 1
  %1318 = load ptr, ptr %1317, align 8, !tbaa !26
  %1319 = load i32, ptr %63, align 4, !tbaa !9
  %1320 = add nsw i32 236, %1319
  %1321 = load i32, ptr %95, align 4, !tbaa !9
  %1322 = add nsw i32 %1320, %1321
  %1323 = sext i32 %1322 to i64
  %1324 = getelementptr inbounds float, ptr %1318, i64 %1323
  %1325 = load float, ptr %1324, align 4, !tbaa !17
  %1326 = fadd float %1325, %1316
  store float %1326, ptr %1324, align 4, !tbaa !17
  %1327 = load float, ptr %84, align 4, !tbaa !17
  %1328 = getelementptr inbounds %class.CornerDescriptor, ptr %103, i32 0, i32 1
  %1329 = load ptr, ptr %1328, align 8, !tbaa !26
  %1330 = load i32, ptr %63, align 4, !tbaa !9
  %1331 = add nsw i32 236, %1330
  %1332 = load i32, ptr %96, align 4, !tbaa !9
  %1333 = add nsw i32 %1331, %1332
  %1334 = sext i32 %1333 to i64
  %1335 = getelementptr inbounds float, ptr %1329, i64 %1334
  %1336 = load float, ptr %1335, align 4, !tbaa !17
  %1337 = fadd float %1336, %1327
  store float %1337, ptr %1335, align 4, !tbaa !17
  br label %1338

1338:                                             ; preds = %1289, %1286, %1283
  br label %1339

1339:                                             ; preds = %1338, %1223, %1220
  br label %1340

1340:                                             ; preds = %1339, %974, %955, %922
  %1341 = load i32, ptr %98, align 4, !tbaa !9
  %1342 = add nsw i32 %1341, 1
  store i32 %1342, ptr %98, align 4, !tbaa !9
  br label %812, !llvm.loop !29

1343:                                             ; preds = %816
  br label %1344

1344:                                             ; preds = %1343
  %1345 = load i32, ptr %97, align 4, !tbaa !9
  %1346 = add nsw i32 %1345, 1
  store i32 %1346, ptr %97, align 4, !tbaa !9
  br label %804, !llvm.loop !30

1347:                                             ; preds = %808
  store double 0.000000e+00, ptr %79, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #9
  store i32 36, ptr %99, align 4, !tbaa !9
  br label %1348

1348:                                             ; preds = %1369, %1347
  %1349 = load i32, ptr %99, align 4, !tbaa !9
  %1350 = icmp slt i32 %1349, 236
  br i1 %1350, label %1352, label %1351

1351:                                             ; preds = %1348
  store i32 20, ptr %76, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #9
  br label %1372

1352:                                             ; preds = %1348
  %1353 = getelementptr inbounds %class.CornerDescriptor, ptr %103, i32 0, i32 1
  %1354 = load ptr, ptr %1353, align 8, !tbaa !26
  %1355 = load i32, ptr %99, align 4, !tbaa !9
  %1356 = sext i32 %1355 to i64
  %1357 = getelementptr inbounds float, ptr %1354, i64 %1356
  %1358 = load float, ptr %1357, align 4, !tbaa !17
  %1359 = getelementptr inbounds %class.CornerDescriptor, ptr %103, i32 0, i32 1
  %1360 = load ptr, ptr %1359, align 8, !tbaa !26
  %1361 = load i32, ptr %99, align 4, !tbaa !9
  %1362 = sext i32 %1361 to i64
  %1363 = getelementptr inbounds float, ptr %1360, i64 %1362
  %1364 = load float, ptr %1363, align 4, !tbaa !17
  %1365 = fmul float %1358, %1364
  %1366 = fpext float %1365 to double
  %1367 = load double, ptr %79, align 8, !tbaa !24
  %1368 = fadd double %1367, %1366
  store double %1368, ptr %79, align 8, !tbaa !24
  br label %1369

1369:                                             ; preds = %1352
  %1370 = load i32, ptr %99, align 4, !tbaa !9
  %1371 = add nsw i32 %1370, 1
  store i32 %1371, ptr %99, align 4, !tbaa !9
  br label %1348, !llvm.loop !31

1372:                                             ; preds = %1351
  %1373 = load double, ptr %79, align 8, !tbaa !24
  %1374 = call double @sqrt(double noundef %1373) #9
  %1375 = fdiv double 1.000000e+00, %1374
  %1376 = fptrunc double %1375 to float
  store float %1376, ptr %81, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #9
  store i32 36, ptr %100, align 4, !tbaa !9
  br label %1377

1377:                                             ; preds = %1390, %1372
  %1378 = load i32, ptr %100, align 4, !tbaa !9
  %1379 = icmp slt i32 %1378, 236
  br i1 %1379, label %1381, label %1380

1380:                                             ; preds = %1377
  store i32 23, ptr %76, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #9
  br label %1393

1381:                                             ; preds = %1377
  %1382 = load float, ptr %81, align 4, !tbaa !17
  %1383 = getelementptr inbounds %class.CornerDescriptor, ptr %103, i32 0, i32 1
  %1384 = load ptr, ptr %1383, align 8, !tbaa !26
  %1385 = load i32, ptr %100, align 4, !tbaa !9
  %1386 = sext i32 %1385 to i64
  %1387 = getelementptr inbounds float, ptr %1384, i64 %1386
  %1388 = load float, ptr %1387, align 4, !tbaa !17
  %1389 = fmul float %1388, %1382
  store float %1389, ptr %1387, align 4, !tbaa !17
  br label %1390

1390:                                             ; preds = %1381
  %1391 = load i32, ptr %100, align 4, !tbaa !9
  %1392 = add nsw i32 %1391, 1
  store i32 %1392, ptr %100, align 4, !tbaa !9
  br label %1377, !llvm.loop !32

1393:                                             ; preds = %1380
  store double 0.000000e+00, ptr %79, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #9
  store i32 236, ptr %101, align 4, !tbaa !9
  br label %1394

1394:                                             ; preds = %1415, %1393
  %1395 = load i32, ptr %101, align 4, !tbaa !9
  %1396 = icmp slt i32 %1395, 436
  br i1 %1396, label %1398, label %1397

1397:                                             ; preds = %1394
  store i32 26, ptr %76, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #9
  br label %1418

1398:                                             ; preds = %1394
  %1399 = getelementptr inbounds %class.CornerDescriptor, ptr %103, i32 0, i32 1
  %1400 = load ptr, ptr %1399, align 8, !tbaa !26
  %1401 = load i32, ptr %101, align 4, !tbaa !9
  %1402 = sext i32 %1401 to i64
  %1403 = getelementptr inbounds float, ptr %1400, i64 %1402
  %1404 = load float, ptr %1403, align 4, !tbaa !17
  %1405 = getelementptr inbounds %class.CornerDescriptor, ptr %103, i32 0, i32 1
  %1406 = load ptr, ptr %1405, align 8, !tbaa !26
  %1407 = load i32, ptr %101, align 4, !tbaa !9
  %1408 = sext i32 %1407 to i64
  %1409 = getelementptr inbounds float, ptr %1406, i64 %1408
  %1410 = load float, ptr %1409, align 4, !tbaa !17
  %1411 = fmul float %1404, %1410
  %1412 = fpext float %1411 to double
  %1413 = load double, ptr %79, align 8, !tbaa !24
  %1414 = fadd double %1413, %1412
  store double %1414, ptr %79, align 8, !tbaa !24
  br label %1415

1415:                                             ; preds = %1398
  %1416 = load i32, ptr %101, align 4, !tbaa !9
  %1417 = add nsw i32 %1416, 1
  store i32 %1417, ptr %101, align 4, !tbaa !9
  br label %1394, !llvm.loop !33

1418:                                             ; preds = %1397
  %1419 = load double, ptr %79, align 8, !tbaa !24
  %1420 = call double @sqrt(double noundef %1419) #9
  %1421 = fdiv double 1.000000e+00, %1420
  %1422 = fptrunc double %1421 to float
  store float %1422, ptr %81, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #9
  store i32 236, ptr %102, align 4, !tbaa !9
  br label %1423

1423:                                             ; preds = %1436, %1418
  %1424 = load i32, ptr %102, align 4, !tbaa !9
  %1425 = icmp slt i32 %1424, 436
  br i1 %1425, label %1427, label %1426

1426:                                             ; preds = %1423
  store i32 29, ptr %76, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #9
  br label %1439

1427:                                             ; preds = %1423
  %1428 = load float, ptr %81, align 4, !tbaa !17
  %1429 = getelementptr inbounds %class.CornerDescriptor, ptr %103, i32 0, i32 1
  %1430 = load ptr, ptr %1429, align 8, !tbaa !26
  %1431 = load i32, ptr %102, align 4, !tbaa !9
  %1432 = sext i32 %1431 to i64
  %1433 = getelementptr inbounds float, ptr %1430, i64 %1432
  %1434 = load float, ptr %1433, align 4, !tbaa !17
  %1435 = fmul float %1434, %1428
  store float %1435, ptr %1433, align 4, !tbaa !17
  br label %1436

1436:                                             ; preds = %1427
  %1437 = load i32, ptr %102, align 4, !tbaa !9
  %1438 = add nsw i32 %1437, 1
  store i32 %1438, ptr %102, align 4, !tbaa !9
  br label %1423, !llvm.loop !34

1439:                                             ; preds = %1426
  %1440 = getelementptr inbounds %class.Corner, ptr %103, i32 0, i32 20
  store i32 1, ptr %1440, align 8, !tbaa !35
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #9
  store i32 0, ptr %76, align 4
  br label %1441

1441:                                             ; preds = %1439, %762
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #9
  %1442 = load i32, ptr %76, align 4
  switch i32 %1442, label %1450 [
    i32 0, label %1443
    i32 1, label %1443
  ]

1443:                                             ; preds = %1441, %1441, %177, %152, %127
  ret void

1444:                                             ; preds = %220, %216
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #9
  br label %1445

1445:                                             ; preds = %1444
  %1446 = load ptr, ptr %66, align 8
  %1447 = load i32, ptr %67, align 4
  %1448 = insertvalue { ptr, i32 } poison, ptr %1446, 0
  %1449 = insertvalue { ptr, i32 } %1448, i32 %1447, 1
  resume { ptr, i32 } %1449

1450:                                             ; preds = %1441
  unreachable
}

declare void @_ZN16CornerDescriptor8allocVecEi(ptr noundef nonnull align 8 dereferenceable(116), i32 noundef) #8

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN12ImageContentC2Ejjf(ptr noundef nonnull align 8 dereferenceable(80), i32 noundef, i32 noundef, float noundef) unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt3sinf(float noundef) #2

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

declare void @_ZN12ImageContent5writeEPKc(ptr noundef nonnull align 8 dereferenceable(80), ptr noundef) #8

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !13, i64 56}
!12 = !{!"_ZTS6Corner", !10, 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, !10, i64 68, !10, i64 72, !13, i64 76, !10, i64 80, !10, i64 84}
!13 = !{!"float", !7, i64 0}
!14 = !{!15, !13, i64 100}
!15 = !{!"_ZTS16CornerDescriptor", !12, i64 0, !6, i64 88, !10, i64 96, !13, i64 100, !16, i64 104, !10, i64 112}
!16 = !{!"long", !7, i64 0}
!17 = !{!13, !13, i64 0}
!18 = !{!12, !13, i64 76}
!19 = !{!20, !6, i64 16}
!20 = !{!"_ZTS12ImageContent", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72}
!21 = distinct !{!21, !22}
!22 = !{!"llvm.loop.mustprogress"}
!23 = distinct !{!23, !22}
!24 = !{!25, !25, i64 0}
!25 = !{!"double", !7, i64 0}
!26 = !{!15, !6, i64 88}
!27 = distinct !{!27, !22}
!28 = distinct !{!28, !22}
!29 = distinct !{!29, !22}
!30 = distinct !{!30, !22}
!31 = distinct !{!31, !22}
!32 = distinct !{!32, !22}
!33 = distinct !{!33, !22}
!34 = distinct !{!34, !22}
!35 = !{!12, !10, i64 80}


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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.23 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [4 x i8], align 1

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80)) local_unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80)) local_unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #2

; Function Attrs: inlinehint mustprogress nofree nounwind uwtable
declare noundef i32 @getchar() local_unnamed_addr #4

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @sqrt(double noundef) local_unnamed_addr #5

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) local_unnamed_addr #6

declare i32 @__gxx_personality_v0(...)

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) local_unnamed_addr #7

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt3cosf(float noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN14EdgeDescriptor17computeComponentsEP12ImageContentS1_S1_S1_iiiS1_S1_S1_S1_iii(ptr noundef nonnull align 8 dereferenceable(116) %0, ptr noundef %1, ptr noundef readonly %2, ptr noundef readonly %3, ptr noundef readonly %4, i32 noundef %5, i32 noundef %6, i32 noundef %7, ptr noundef %8, ptr noundef readonly %9, ptr noundef readnone %10, ptr noundef readnone %11, i32 noundef %12, i32 noundef %13, i32 noundef %14) local_unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %16 = insertelement <8 x ptr> poison, ptr %1, i64 0
  %17 = insertelement <8 x ptr> %16, ptr %8, i64 1
  %18 = insertelement <8 x ptr> %17, ptr %3, i64 2
  %19 = insertelement <8 x ptr> %18, ptr %10, i64 3
  %20 = insertelement <8 x ptr> %19, ptr %2, i64 4
  %21 = insertelement <8 x ptr> %20, ptr %9, i64 5
  %22 = insertelement <8 x ptr> %21, ptr %4, i64 6
  %23 = insertelement <8 x ptr> %22, ptr %11, i64 7
  %24 = icmp eq <8 x ptr> %23, zeroinitializer
  %25 = icmp slt i32 %5, %7
  %26 = icmp slt i32 %6, %7
  %27 = bitcast <8 x i1> %24 to i8
  %28 = icmp ne i8 %27, 0
  %op.rdx = or i1 %28, %25
  %op.rdx697 = or i1 %op.rdx, %26
  br i1 %op.rdx697, label %987, label %29

29:                                               ; preds = %15
  %30 = add nsw i32 %7, %5
  %31 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %1)
  %.not = icmp ult i32 %30, %31
  br i1 %.not, label %32, label %987

32:                                               ; preds = %29
  %33 = add nsw i32 %7, %6
  %34 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %1)
  %.not550 = icmp uge i32 %33, %34
  %35 = icmp slt i32 %12, %14
  %or.cond558 = or i1 %35, %.not550
  %36 = icmp slt i32 %13, %14
  %or.cond559 = or i1 %36, %or.cond558
  br i1 %or.cond559, label %987, label %37

37:                                               ; preds = %32
  %38 = add nsw i32 %14, %12
  %39 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %8)
  %.not551 = icmp ult i32 %38, %39
  br i1 %.not551, label %40, label %987

40:                                               ; preds = %37
  %41 = add nsw i32 %14, %13
  %42 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %8)
  %.not552 = icmp ult i32 %41, %42
  br i1 %.not552, label %43, label %987

43:                                               ; preds = %40
  tail call void @_ZN16CornerDescriptor8allocVecEi(ptr noundef nonnull align 8 dereferenceable(116) %0, i32 noundef 436)
  %44 = getelementptr inbounds i8, ptr %0, i64 56
  %45 = load float, ptr %44, align 8, !tbaa !5
  %46 = getelementptr inbounds i8, ptr %0, i64 100
  store float %45, ptr %46, align 4, !tbaa !11
  %47 = sitofp i32 %14 to double
  %48 = fdiv double 3.000000e+01, %47
  %49 = fptrunc double %48 to float
  %50 = tail call noalias noundef nonnull dereferenceable(80) ptr @_Znwm(i64 noundef 80) #9
  invoke void @_ZN12ImageContentC2Ejjf(ptr noundef nonnull align 8 dereferenceable(80) %50, i32 noundef 50, i32 noundef 50, float noundef 0.000000e+00)
          to label %51 unwind label %267

51:                                               ; preds = %43
  %52 = tail call noalias noundef nonnull dereferenceable(80) ptr @_Znwm(i64 noundef 80) #9
  invoke void @_ZN12ImageContentC2Ejjf(ptr noundef nonnull align 8 dereferenceable(80) %52, i32 noundef 50, i32 noundef 50, float noundef 0.000000e+00)
          to label %53 unwind label %269

53:                                               ; preds = %51
  %54 = getelementptr inbounds i8, ptr %0, i64 76
  %55 = load float, ptr %54, align 4, !tbaa !15
  %56 = tail call noundef float @_ZSt3cosf(float noundef %55)
  %57 = load float, ptr %54, align 4, !tbaa !15
  %58 = tail call noundef float @_ZSt3sinf(float noundef %57)
  %59 = fmul float %56, %49
  %60 = fmul float %58, %49
  %61 = fneg float %58
  %62 = fmul float %49, %61
  %.not554571 = icmp slt i32 %14, 0
  br i1 %.not554571, label %._crit_edge573, label %.preheader568.lr.ph

.preheader568.lr.ph:                              ; preds = %53
  %63 = sub nsw i32 0, %14
  %64 = getelementptr inbounds i8, ptr %8, i64 16
  %65 = getelementptr inbounds i8, ptr %9, i64 16
  %66 = getelementptr inbounds i8, ptr %50, i64 16
  %67 = getelementptr inbounds i8, ptr %52, i64 16
  %68 = load ptr, ptr %64, align 8, !tbaa !16
  %69 = load ptr, ptr %65, align 8, !tbaa !16
  %70 = sext i32 %63 to i64
  %71 = sext i32 %12 to i64
  %72 = add nuw i32 %14, 1
  %73 = sext i32 %13 to i64
  br label %.preheader568

.preheader568:                                    ; preds = %.preheader568.lr.ph, %._crit_edge
  %indvars.iv589 = phi i64 [ %70, %.preheader568.lr.ph ], [ %indvars.iv.next590, %._crit_edge ]
  %74 = add nsw i64 %indvars.iv589, %73
  %75 = getelementptr inbounds ptr, ptr %68, i64 %74
  %76 = load ptr, ptr %75, align 8, !tbaa !18
  %77 = getelementptr inbounds ptr, ptr %69, i64 %74
  %78 = load ptr, ptr %77, align 8, !tbaa !18
  %79 = trunc nsw i64 %indvars.iv589 to i32
  %80 = sitofp i32 %79 to float
  %81 = fmul float %60, %80
  %82 = fmul float %59, %80
  br label %271

._crit_edge573:                                   ; preds = %._crit_edge, %53
  tail call void @_ZN12ImageContent5writeEPKc(ptr noundef nonnull align 8 dereferenceable(80) %50, ptr noundef nonnull @.str.23)
  tail call void @_ZN12ImageContent5writeEPKc(ptr noundef nonnull align 8 dereferenceable(80) %52, ptr noundef nonnull @.str.24)
  %83 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.25)
  %84 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %83, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %85 = tail call i32 @getchar()
  %86 = getelementptr inbounds i8, ptr %0, i64 88
  %87 = load ptr, ptr %86, align 8, !tbaa !19
  %88 = load float, ptr %87, align 4, !tbaa !20
  %89 = fmul float %88, %88
  %90 = fpext float %89 to double
  %91 = getelementptr inbounds i8, ptr %87, i64 4
  %92 = load float, ptr %91, align 4, !tbaa !20
  %93 = fmul float %92, %92
  %94 = fpext float %93 to double
  %95 = fadd double %90, %94
  %96 = getelementptr inbounds i8, ptr %87, i64 8
  %97 = load float, ptr %96, align 4, !tbaa !20
  %98 = fmul float %97, %97
  %99 = fpext float %98 to double
  %100 = fadd double %95, %99
  %101 = getelementptr inbounds i8, ptr %87, i64 12
  %102 = load float, ptr %101, align 4, !tbaa !20
  %103 = fmul float %102, %102
  %104 = fpext float %103 to double
  %105 = fadd double %100, %104
  %106 = getelementptr inbounds i8, ptr %87, i64 16
  %107 = load float, ptr %106, align 4, !tbaa !20
  %108 = fmul float %107, %107
  %109 = fpext float %108 to double
  %110 = fadd double %105, %109
  %111 = getelementptr inbounds i8, ptr %87, i64 20
  %112 = load float, ptr %111, align 4, !tbaa !20
  %113 = fmul float %112, %112
  %114 = fpext float %113 to double
  %115 = fadd double %110, %114
  %116 = getelementptr inbounds i8, ptr %87, i64 24
  %117 = load float, ptr %116, align 4, !tbaa !20
  %118 = fmul float %117, %117
  %119 = fpext float %118 to double
  %120 = fadd double %115, %119
  %121 = getelementptr inbounds i8, ptr %87, i64 28
  %122 = load float, ptr %121, align 4, !tbaa !20
  %123 = fmul float %122, %122
  %124 = fpext float %123 to double
  %125 = fadd double %120, %124
  %126 = getelementptr inbounds i8, ptr %87, i64 32
  %127 = load float, ptr %126, align 4, !tbaa !20
  %128 = fmul float %127, %127
  %129 = fpext float %128 to double
  %130 = fadd double %125, %129
  %131 = getelementptr inbounds i8, ptr %87, i64 36
  %132 = load float, ptr %131, align 4, !tbaa !20
  %133 = fmul float %132, %132
  %134 = fpext float %133 to double
  %135 = fadd double %130, %134
  %136 = getelementptr inbounds i8, ptr %87, i64 40
  %137 = load float, ptr %136, align 4, !tbaa !20
  %138 = fmul float %137, %137
  %139 = fpext float %138 to double
  %140 = fadd double %135, %139
  %141 = getelementptr inbounds i8, ptr %87, i64 44
  %142 = load float, ptr %141, align 4, !tbaa !20
  %143 = fmul float %142, %142
  %144 = fpext float %143 to double
  %145 = fadd double %140, %144
  %146 = getelementptr inbounds i8, ptr %87, i64 48
  %147 = load float, ptr %146, align 4, !tbaa !20
  %148 = fmul float %147, %147
  %149 = fpext float %148 to double
  %150 = fadd double %145, %149
  %151 = getelementptr inbounds i8, ptr %87, i64 52
  %152 = load float, ptr %151, align 4, !tbaa !20
  %153 = fmul float %152, %152
  %154 = fpext float %153 to double
  %155 = fadd double %150, %154
  %156 = getelementptr inbounds i8, ptr %87, i64 56
  %157 = load float, ptr %156, align 4, !tbaa !20
  %158 = fmul float %157, %157
  %159 = fpext float %158 to double
  %160 = fadd double %155, %159
  %161 = getelementptr inbounds i8, ptr %87, i64 60
  %162 = load float, ptr %161, align 4, !tbaa !20
  %163 = fmul float %162, %162
  %164 = fpext float %163 to double
  %165 = fadd double %160, %164
  %166 = getelementptr inbounds i8, ptr %87, i64 64
  %167 = load float, ptr %166, align 4, !tbaa !20
  %168 = fmul float %167, %167
  %169 = fpext float %168 to double
  %170 = fadd double %165, %169
  %171 = getelementptr inbounds i8, ptr %87, i64 68
  %172 = load float, ptr %171, align 4, !tbaa !20
  %173 = fmul float %172, %172
  %174 = fpext float %173 to double
  %175 = fadd double %170, %174
  %176 = getelementptr inbounds i8, ptr %87, i64 72
  %177 = load float, ptr %176, align 4, !tbaa !20
  %178 = fmul float %177, %177
  %179 = fpext float %178 to double
  %180 = fadd double %175, %179
  %181 = getelementptr inbounds i8, ptr %87, i64 76
  %182 = load float, ptr %181, align 4, !tbaa !20
  %183 = fmul float %182, %182
  %184 = fpext float %183 to double
  %185 = fadd double %180, %184
  %186 = getelementptr inbounds i8, ptr %87, i64 80
  %187 = load float, ptr %186, align 4, !tbaa !20
  %188 = fmul float %187, %187
  %189 = fpext float %188 to double
  %190 = fadd double %185, %189
  %191 = getelementptr inbounds i8, ptr %87, i64 84
  %192 = load float, ptr %191, align 4, !tbaa !20
  %193 = fmul float %192, %192
  %194 = fpext float %193 to double
  %195 = fadd double %190, %194
  %196 = getelementptr inbounds i8, ptr %87, i64 88
  %197 = load float, ptr %196, align 4, !tbaa !20
  %198 = fmul float %197, %197
  %199 = fpext float %198 to double
  %200 = fadd double %195, %199
  %201 = getelementptr inbounds i8, ptr %87, i64 92
  %202 = load float, ptr %201, align 4, !tbaa !20
  %203 = fmul float %202, %202
  %204 = fpext float %203 to double
  %205 = fadd double %200, %204
  %206 = getelementptr inbounds i8, ptr %87, i64 96
  %207 = load float, ptr %206, align 4, !tbaa !20
  %208 = fmul float %207, %207
  %209 = fpext float %208 to double
  %210 = fadd double %205, %209
  %211 = getelementptr inbounds i8, ptr %87, i64 100
  %212 = load float, ptr %211, align 4, !tbaa !20
  %213 = fmul float %212, %212
  %214 = fpext float %213 to double
  %215 = fadd double %210, %214
  %216 = getelementptr inbounds i8, ptr %87, i64 104
  %217 = load float, ptr %216, align 4, !tbaa !20
  %218 = fmul float %217, %217
  %219 = fpext float %218 to double
  %220 = fadd double %215, %219
  %221 = getelementptr inbounds i8, ptr %87, i64 108
  %222 = load float, ptr %221, align 4, !tbaa !20
  %223 = fmul float %222, %222
  %224 = fpext float %223 to double
  %225 = fadd double %220, %224
  %226 = getelementptr inbounds i8, ptr %87, i64 112
  %227 = load float, ptr %226, align 4, !tbaa !20
  %228 = fmul float %227, %227
  %229 = fpext float %228 to double
  %230 = fadd double %225, %229
  %231 = getelementptr inbounds i8, ptr %87, i64 116
  %232 = load float, ptr %231, align 4, !tbaa !20
  %233 = fmul float %232, %232
  %234 = fpext float %233 to double
  %235 = fadd double %230, %234
  %236 = getelementptr inbounds i8, ptr %87, i64 120
  %237 = load float, ptr %236, align 4, !tbaa !20
  %238 = fmul float %237, %237
  %239 = fpext float %238 to double
  %240 = fadd double %235, %239
  %241 = getelementptr inbounds i8, ptr %87, i64 124
  %242 = load float, ptr %241, align 4, !tbaa !20
  %243 = fmul float %242, %242
  %244 = fpext float %243 to double
  %245 = fadd double %240, %244
  %246 = getelementptr inbounds i8, ptr %87, i64 128
  %247 = load float, ptr %246, align 4, !tbaa !20
  %248 = fmul float %247, %247
  %249 = fpext float %248 to double
  %250 = fadd double %245, %249
  %251 = getelementptr inbounds i8, ptr %87, i64 132
  %252 = load float, ptr %251, align 4, !tbaa !20
  %253 = fmul float %252, %252
  %254 = fpext float %253 to double
  %255 = fadd double %250, %254
  %256 = getelementptr inbounds i8, ptr %87, i64 136
  %257 = load float, ptr %256, align 4, !tbaa !20
  %258 = fmul float %257, %257
  %259 = fpext float %258 to double
  %260 = fadd double %255, %259
  %261 = getelementptr inbounds i8, ptr %87, i64 140
  %262 = load float, ptr %261, align 4, !tbaa !20
  %263 = fmul float %262, %262
  %264 = fpext float %263 to double
  %265 = fadd double %260, %264
  %266 = fcmp olt double %265, 1.000000e+01
  br i1 %266, label %987, label %452

267:                                              ; preds = %43
  %268 = landingpad { ptr, i32 }
          cleanup
  br label %988

269:                                              ; preds = %51
  %270 = landingpad { ptr, i32 }
          cleanup
  br label %988

._crit_edge:                                      ; preds = %451
  %indvars.iv.next590 = add nsw i64 %indvars.iv589, 1
  %lftr.wideiv592 = trunc i64 %indvars.iv.next590 to i32
  %exitcond593.not = icmp eq i32 %72, %lftr.wideiv592
  br i1 %exitcond593.not, label %._crit_edge573, label %.preheader568, !llvm.loop !21

271:                                              ; preds = %.preheader568, %451
  %indvars.iv = phi i64 [ %70, %.preheader568 ], [ %indvars.iv.next, %451 ]
  %272 = add nsw i64 %indvars.iv, %71
  %273 = getelementptr inbounds float, ptr %76, i64 %272
  %274 = load float, ptr %273, align 4, !tbaa !20
  %275 = getelementptr inbounds float, ptr %78, i64 %272
  %276 = load float, ptr %275, align 4, !tbaa !20
  %277 = load float, ptr %54, align 4, !tbaa !15
  %278 = fsub float %276, %277
  %279 = fpext float %278 to double
  %280 = fcmp olt double %279, 0xC00921FB54442D18
  br i1 %280, label %281, label %284

281:                                              ; preds = %271
  %282 = fadd double %279, 0x401921FB544486E0
  %283 = fptrunc double %282 to float
  br label %289

284:                                              ; preds = %271
  %285 = fcmp olt float %278, 0.000000e+00
  br i1 %285, label %286, label %289

286:                                              ; preds = %284
  %287 = fadd double %279, 0x400921FB54442D18
  %288 = fptrunc double %287 to float
  br label %289

289:                                              ; preds = %284, %286, %281
  %.0507 = phi float [ %283, %281 ], [ %288, %286 ], [ %278, %284 ]
  %290 = fcmp olt float %274, 1.000000e+00
  br i1 %290, label %451, label %291

291:                                              ; preds = %289
  %292 = fmul float %.0507, 0x3FF45F3060000000
  %293 = tail call float @llvm.floor.f32(float %292)
  %294 = fptosi float %293 to i32
  %295 = sitofp i32 %294 to float
  %296 = fsub float %292, %295
  %297 = add nsw i32 %294, 1
  %298 = icmp slt i32 %294, 3
  %299 = select i1 %298, i32 %297, i32 0
  %300 = trunc nsw i64 %indvars.iv to i32
  %301 = sitofp i32 %300 to float
  %302 = tail call float @llvm.fmuladd.f32(float %301, float %59, float %81)
  %303 = tail call float @llvm.fmuladd.f32(float %301, float %62, float %82)
  %304 = tail call float @llvm.floor.f32(float %302)
  %305 = fptosi float %304 to i32
  %306 = tail call float @llvm.floor.f32(float %303)
  %307 = fptosi float %306 to i32
  %308 = sitofp i32 %305 to float
  %309 = fsub float %302, %308
  %310 = sitofp i32 %307 to float
  %311 = fsub float %303, %310
  %312 = fmul float %311, %274
  %313 = fmul float %309, %312
  %314 = fmul float %313, %296
  %315 = fsub float %313, %314
  %316 = fsub float 1.000000e+00, %309
  %317 = fmul float %316, %312
  %318 = fmul float %317, %296
  %319 = fsub float %317, %318
  %320 = fsub float 1.000000e+00, %311
  %321 = fmul float %320, %274
  %322 = fmul float %309, %321
  %323 = fmul float %322, %296
  %324 = fsub float %322, %323
  %325 = fmul float %316, %321
  %326 = fmul float %325, %296
  %327 = fsub float %325, %326
  %328 = add i32 %305, 25
  %329 = add i32 %307, 25
  %330 = add i32 %305, 26
  %331 = add i32 %307, 26
  %or.cond15 = icmp ult i32 %329, 50
  br i1 %or.cond15, label %332, label %396

332:                                              ; preds = %291
  %or.cond17 = icmp ult i32 %328, 50
  br i1 %or.cond17, label %333, label %364

333:                                              ; preds = %332
  %334 = icmp eq i32 %294, 3
  br i1 %334, label %.thread, label %343

.thread:                                          ; preds = %333
  %335 = load ptr, ptr %66, align 8, !tbaa !16
  %336 = zext nneg i32 %329 to i64
  %337 = getelementptr inbounds ptr, ptr %335, i64 %336
  %338 = load ptr, ptr %337, align 8, !tbaa !18
  %339 = zext nneg i32 %328 to i64
  %340 = getelementptr inbounds float, ptr %338, i64 %339
  %341 = load float, ptr %340, align 4, !tbaa !20
  %342 = fadd float %327, %341
  store float %342, ptr %340, align 4, !tbaa !20
  %.pre = load ptr, ptr %67, align 8, !tbaa !16
  br label %357

343:                                              ; preds = %333
  %344 = icmp eq i32 %299, 3
  br i1 %344, label %345, label %354

345:                                              ; preds = %343
  %346 = load ptr, ptr %66, align 8, !tbaa !16
  %347 = zext nneg i32 %329 to i64
  %348 = getelementptr inbounds ptr, ptr %346, i64 %347
  %349 = load ptr, ptr %348, align 8, !tbaa !18
  %350 = zext nneg i32 %328 to i64
  %351 = getelementptr inbounds float, ptr %349, i64 %350
  %352 = load float, ptr %351, align 4, !tbaa !20
  %353 = fadd float %326, %352
  store float %353, ptr %351, align 4, !tbaa !20
  br label %354

354:                                              ; preds = %343, %345
  %355 = icmp eq i32 %294, 1
  %.pre628 = load ptr, ptr %67, align 8, !tbaa !16
  %356 = zext nneg i32 %329 to i64
  br i1 %355, label %.thread560, label %._crit_edge635

._crit_edge635:                                   ; preds = %354
  %.pre637 = zext nneg i32 %328 to i64
  br label %357

357:                                              ; preds = %._crit_edge635, %.thread
  %.pre-phi638 = phi i64 [ %.pre637, %._crit_edge635 ], [ %339, %.thread ]
  %.pre-phi = phi i64 [ %356, %._crit_edge635 ], [ %336, %.thread ]
  %358 = phi ptr [ %.pre628, %._crit_edge635 ], [ %.pre, %.thread ]
  %359 = getelementptr inbounds ptr, ptr %358, i64 %.pre-phi
  %360 = load ptr, ptr %359, align 8, !tbaa !18
  %361 = getelementptr inbounds float, ptr %360, i64 %.pre-phi638
  %362 = load float, ptr %361, align 4, !tbaa !20
  %363 = fadd float %326, %362
  store float %363, ptr %361, align 4, !tbaa !20
  br label %364

364:                                              ; preds = %357, %332
  %or.cond19 = icmp ult i32 %330, 50
  br i1 %or.cond19, label %371, label %396

.thread560:                                       ; preds = %354
  %365 = getelementptr inbounds ptr, ptr %.pre628, i64 %356
  %366 = load ptr, ptr %365, align 8, !tbaa !18
  %367 = zext nneg i32 %328 to i64
  %368 = getelementptr inbounds float, ptr %366, i64 %367
  %369 = load float, ptr %368, align 4, !tbaa !20
  %370 = fadd float %327, %369
  store float %370, ptr %368, align 4, !tbaa !20
  %or.cond19561 = icmp ult i32 %330, 50
  br i1 %or.cond19561, label %.thread562, label %396

371:                                              ; preds = %364
  %372 = icmp eq i32 %294, 3
  br i1 %372, label %381, label %.thread562

.thread562:                                       ; preds = %.thread560, %371
  switch i32 %299, label %.thread562._crit_edge [
    i32 3, label %.thread563
    i32 0, label %.thread562._crit_edge634
  ]

.thread562._crit_edge634:                         ; preds = %.thread562
  %.pre639 = zext nneg i32 %329 to i64
  %.pre641 = zext nneg i32 %330 to i64
  br label %.sink.split

.thread562._crit_edge:                            ; preds = %.thread562
  %.pre659 = zext nneg i32 %329 to i64
  %.pre661 = zext nneg i32 %330 to i64
  br label %.sink.split

.thread563:                                       ; preds = %.thread562
  %373 = load ptr, ptr %66, align 8, !tbaa !16
  %374 = zext nneg i32 %329 to i64
  %375 = getelementptr inbounds ptr, ptr %373, i64 %374
  %376 = load ptr, ptr %375, align 8, !tbaa !18
  %377 = zext nneg i32 %330 to i64
  %378 = getelementptr inbounds float, ptr %376, i64 %377
  %379 = load float, ptr %378, align 4, !tbaa !20
  %380 = fadd float %323, %379
  store float %380, ptr %378, align 4, !tbaa !20
  br label %.sink.split

381:                                              ; preds = %371
  %382 = load ptr, ptr %66, align 8, !tbaa !16
  %383 = zext nneg i32 %329 to i64
  %384 = getelementptr inbounds ptr, ptr %382, i64 %383
  %385 = load ptr, ptr %384, align 8, !tbaa !18
  %386 = zext nneg i32 %330 to i64
  %387 = getelementptr inbounds float, ptr %385, i64 %386
  %388 = load float, ptr %387, align 4, !tbaa !20
  %389 = fadd float %324, %388
  store float %389, ptr %387, align 4, !tbaa !20
  br label %.sink.split

.sink.split:                                      ; preds = %.thread563, %.thread562._crit_edge, %381, %.thread562._crit_edge634
  %.pre-phi660.sink = phi i64 [ %.pre639, %.thread562._crit_edge634 ], [ %383, %381 ], [ %.pre659, %.thread562._crit_edge ], [ %374, %.thread563 ]
  %.pre-phi662.sink = phi i64 [ %.pre641, %.thread562._crit_edge634 ], [ %386, %381 ], [ %.pre661, %.thread562._crit_edge ], [ %377, %.thread563 ]
  %.sink666 = phi float [ %324, %.thread562._crit_edge634 ], [ %324, %381 ], [ %323, %.thread562._crit_edge ], [ %323, %.thread563 ]
  %390 = load ptr, ptr %67, align 8, !tbaa !16
  %391 = getelementptr inbounds ptr, ptr %390, i64 %.pre-phi660.sink
  %392 = load ptr, ptr %391, align 8, !tbaa !18
  %393 = getelementptr inbounds float, ptr %392, i64 %.pre-phi662.sink
  %394 = load float, ptr %393, align 4, !tbaa !20
  %395 = fadd float %.sink666, %394
  store float %395, ptr %393, align 4, !tbaa !20
  br label %396

396:                                              ; preds = %.sink.split, %.thread560, %364, %291
  %or.cond21 = icmp ult i32 %331, 50
  br i1 %or.cond21, label %397, label %451

397:                                              ; preds = %396
  %or.cond23 = icmp ult i32 %328, 50
  br i1 %or.cond23, label %398, label %424

398:                                              ; preds = %397
  %399 = icmp eq i32 %294, 3
  br i1 %399, label %409, label %400

400:                                              ; preds = %398
  switch i32 %299, label %._crit_edge630 [
    i32 3, label %.thread564
    i32 0, label %._crit_edge633
  ]

._crit_edge633:                                   ; preds = %400
  %.pre643 = zext nneg i32 %331 to i64
  %.pre645 = zext nneg i32 %328 to i64
  br label %.sink.split670

._crit_edge630:                                   ; preds = %400
  %.pre655 = zext nneg i32 %331 to i64
  %.pre657 = zext nneg i32 %328 to i64
  br label %.sink.split670

.thread564:                                       ; preds = %400
  %401 = load ptr, ptr %66, align 8, !tbaa !16
  %402 = zext nneg i32 %331 to i64
  %403 = getelementptr inbounds ptr, ptr %401, i64 %402
  %404 = load ptr, ptr %403, align 8, !tbaa !18
  %405 = zext nneg i32 %328 to i64
  %406 = getelementptr inbounds float, ptr %404, i64 %405
  %407 = load float, ptr %406, align 4, !tbaa !20
  %408 = fadd float %318, %407
  store float %408, ptr %406, align 4, !tbaa !20
  br label %.sink.split670

409:                                              ; preds = %398
  %410 = load ptr, ptr %66, align 8, !tbaa !16
  %411 = zext nneg i32 %331 to i64
  %412 = getelementptr inbounds ptr, ptr %410, i64 %411
  %413 = load ptr, ptr %412, align 8, !tbaa !18
  %414 = zext nneg i32 %328 to i64
  %415 = getelementptr inbounds float, ptr %413, i64 %414
  %416 = load float, ptr %415, align 4, !tbaa !20
  %417 = fadd float %319, %416
  store float %417, ptr %415, align 4, !tbaa !20
  br label %.sink.split670

.sink.split670:                                   ; preds = %.thread564, %._crit_edge630, %409, %._crit_edge633
  %.pre-phi644.sink = phi i64 [ %.pre643, %._crit_edge633 ], [ %411, %409 ], [ %.pre655, %._crit_edge630 ], [ %402, %.thread564 ]
  %.pre-phi646.sink = phi i64 [ %.pre645, %._crit_edge633 ], [ %414, %409 ], [ %.pre657, %._crit_edge630 ], [ %405, %.thread564 ]
  %.sink672 = phi float [ %319, %._crit_edge633 ], [ %319, %409 ], [ %318, %._crit_edge630 ], [ %318, %.thread564 ]
  %418 = load ptr, ptr %67, align 8, !tbaa !16
  %419 = getelementptr inbounds ptr, ptr %418, i64 %.pre-phi644.sink
  %420 = load ptr, ptr %419, align 8, !tbaa !18
  %421 = getelementptr inbounds float, ptr %420, i64 %.pre-phi646.sink
  %422 = load float, ptr %421, align 4, !tbaa !20
  %423 = fadd float %.sink672, %422
  store float %423, ptr %421, align 4, !tbaa !20
  br label %424

424:                                              ; preds = %.sink.split670, %397
  %or.cond25 = icmp ult i32 %330, 50
  br i1 %or.cond25, label %425, label %451

425:                                              ; preds = %424
  %426 = icmp eq i32 %294, 3
  br i1 %426, label %436, label %427

427:                                              ; preds = %425
  switch i32 %299, label %._crit_edge631 [
    i32 3, label %.thread565
    i32 0, label %._crit_edge632
  ]

._crit_edge632:                                   ; preds = %427
  %.pre647 = zext nneg i32 %331 to i64
  %.pre649 = zext nneg i32 %330 to i64
  br label %.sink.split676

._crit_edge631:                                   ; preds = %427
  %.pre651 = zext nneg i32 %331 to i64
  %.pre653 = zext nneg i32 %330 to i64
  br label %.sink.split676

.thread565:                                       ; preds = %427
  %428 = load ptr, ptr %66, align 8, !tbaa !16
  %429 = zext nneg i32 %331 to i64
  %430 = getelementptr inbounds ptr, ptr %428, i64 %429
  %431 = load ptr, ptr %430, align 8, !tbaa !18
  %432 = zext nneg i32 %330 to i64
  %433 = getelementptr inbounds float, ptr %431, i64 %432
  %434 = load float, ptr %433, align 4, !tbaa !20
  %435 = fadd float %314, %434
  store float %435, ptr %433, align 4, !tbaa !20
  br label %.sink.split676

436:                                              ; preds = %425
  %437 = load ptr, ptr %66, align 8, !tbaa !16
  %438 = zext nneg i32 %331 to i64
  %439 = getelementptr inbounds ptr, ptr %437, i64 %438
  %440 = load ptr, ptr %439, align 8, !tbaa !18
  %441 = zext nneg i32 %330 to i64
  %442 = getelementptr inbounds float, ptr %440, i64 %441
  %443 = load float, ptr %442, align 4, !tbaa !20
  %444 = fadd float %315, %443
  store float %444, ptr %442, align 4, !tbaa !20
  br label %.sink.split676

.sink.split676:                                   ; preds = %.thread565, %._crit_edge631, %436, %._crit_edge632
  %.pre-phi648.sink = phi i64 [ %.pre647, %._crit_edge632 ], [ %438, %436 ], [ %.pre651, %._crit_edge631 ], [ %429, %.thread565 ]
  %.pre-phi650.sink = phi i64 [ %.pre649, %._crit_edge632 ], [ %441, %436 ], [ %.pre653, %._crit_edge631 ], [ %432, %.thread565 ]
  %.sink678 = phi float [ %315, %._crit_edge632 ], [ %315, %436 ], [ %314, %._crit_edge631 ], [ %314, %.thread565 ]
  %445 = load ptr, ptr %67, align 8, !tbaa !16
  %446 = getelementptr inbounds ptr, ptr %445, i64 %.pre-phi648.sink
  %447 = load ptr, ptr %446, align 8, !tbaa !18
  %448 = getelementptr inbounds float, ptr %447, i64 %.pre-phi650.sink
  %449 = load float, ptr %448, align 4, !tbaa !20
  %450 = fadd float %.sink678, %449
  store float %450, ptr %448, align 4, !tbaa !20
  br label %451

451:                                              ; preds = %.sink.split676, %396, %424, %289
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
  %exitcond.not = icmp eq i32 %72, %lftr.wideiv
  br i1 %exitcond.not, label %._crit_edge, label %271, !llvm.loop !23

452:                                              ; preds = %._crit_edge573
  %453 = tail call double @sqrt(double noundef %265) #10
  %454 = fdiv double 1.000000e+00, %453
  %455 = fptrunc double %454 to float
  %456 = load ptr, ptr %86, align 8, !tbaa !19
  %457 = load <4 x float>, ptr %456, align 4, !tbaa !20
  %458 = insertelement <4 x float> poison, float %455, i64 0
  %459 = shufflevector <4 x float> %458, <4 x float> poison, <4 x i32> zeroinitializer
  %460 = fmul <4 x float> %457, %459
  store <4 x float> %460, ptr %456, align 4, !tbaa !20
  %461 = getelementptr inbounds i8, ptr %456, i64 16
  %462 = load <4 x float>, ptr %461, align 4, !tbaa !20
  %463 = fmul <4 x float> %462, %459
  store <4 x float> %463, ptr %461, align 4, !tbaa !20
  %464 = getelementptr inbounds i8, ptr %456, i64 32
  %465 = load <4 x float>, ptr %464, align 4, !tbaa !20
  %466 = fmul <4 x float> %465, %459
  store <4 x float> %466, ptr %464, align 4, !tbaa !20
  %467 = getelementptr inbounds i8, ptr %456, i64 48
  %468 = load <4 x float>, ptr %467, align 4, !tbaa !20
  %469 = fmul <4 x float> %468, %459
  store <4 x float> %469, ptr %467, align 4, !tbaa !20
  %470 = getelementptr inbounds i8, ptr %456, i64 64
  %471 = load <4 x float>, ptr %470, align 4, !tbaa !20
  %472 = fmul <4 x float> %471, %459
  store <4 x float> %472, ptr %470, align 4, !tbaa !20
  %473 = getelementptr inbounds i8, ptr %456, i64 80
  %474 = load <4 x float>, ptr %473, align 4, !tbaa !20
  %475 = fmul <4 x float> %474, %459
  store <4 x float> %475, ptr %473, align 4, !tbaa !20
  %476 = getelementptr inbounds i8, ptr %456, i64 96
  %477 = load <4 x float>, ptr %476, align 4, !tbaa !20
  %478 = fmul <4 x float> %477, %459
  store <4 x float> %478, ptr %476, align 4, !tbaa !20
  %479 = getelementptr inbounds i8, ptr %456, i64 112
  %480 = load <4 x float>, ptr %479, align 4, !tbaa !20
  %481 = fmul <4 x float> %480, %459
  store <4 x float> %481, ptr %479, align 4, !tbaa !20
  %482 = getelementptr inbounds i8, ptr %456, i64 128
  %483 = load <4 x float>, ptr %482, align 4, !tbaa !20
  %484 = fmul <4 x float> %483, %459
  store <4 x float> %484, ptr %482, align 4, !tbaa !20
  %485 = sitofp i32 %7 to double
  %486 = fdiv double 3.000000e+00, %485
  %487 = fptrunc double %486 to float
  %488 = fmul float %56, %487
  %489 = fmul float %58, %487
  %490 = fmul float %487, %61
  %491 = icmp sgt i32 %7, 0
  br i1 %491, label %.preheader567.lr.ph, label %..preheader566_crit_edge

..preheader566_crit_edge:                         ; preds = %452
  %.pre629 = load ptr, ptr %86, align 8, !tbaa !19
  br label %.preheader566

.preheader567.lr.ph:                              ; preds = %452
  %492 = sub nsw i32 0, %7
  %493 = getelementptr inbounds i8, ptr %1, i64 16
  %494 = getelementptr inbounds i8, ptr %3, i64 16
  %495 = getelementptr inbounds i8, ptr %4, i64 16
  %496 = getelementptr inbounds i8, ptr %2, i64 16
  %497 = load ptr, ptr %493, align 8, !tbaa !16
  %498 = load ptr, ptr %494, align 8, !tbaa !16
  %499 = sext i32 %492 to i64
  %500 = sext i32 %5 to i64
  %501 = sext i32 %6 to i64
  br label %.preheader567.us

.preheader567.us:                                 ; preds = %._crit_edge578.us, %.preheader567.lr.ph
  %indvars.iv607 = phi i64 [ %indvars.iv.next608, %._crit_edge578.us ], [ %499, %.preheader567.lr.ph ]
  %502 = add nsw i64 %indvars.iv607, %501
  %503 = getelementptr inbounds ptr, ptr %497, i64 %502
  %504 = load ptr, ptr %503, align 8, !tbaa !18
  %505 = getelementptr inbounds ptr, ptr %498, i64 %502
  %506 = load ptr, ptr %505, align 8, !tbaa !18
  %507 = trunc nsw i64 %indvars.iv607 to i32
  %508 = sitofp i32 %507 to float
  %509 = fmul float %489, %508
  %510 = fmul float %488, %508
  %511 = load ptr, ptr %86, align 8
  br label %512

512:                                              ; preds = %.preheader567.us, %729
  %indvars.iv602 = phi i64 [ %499, %.preheader567.us ], [ %indvars.iv.next603, %729 ]
  %513 = add nsw i64 %indvars.iv602, %500
  %514 = getelementptr inbounds float, ptr %504, i64 %513
  %515 = load float, ptr %514, align 4, !tbaa !20
  %516 = getelementptr inbounds float, ptr %506, i64 %513
  %517 = load float, ptr %516, align 4, !tbaa !20
  %518 = tail call float @llvm.fabs.f32(float %517)
  %519 = fcmp olt float %515, 1.000000e+00
  %520 = fcmp olt float %518, 1.000000e+00
  %or.cond27.us = select i1 %519, i1 true, i1 %520
  br i1 %or.cond27.us, label %729, label %521

521:                                              ; preds = %512
  %522 = load ptr, ptr %495, align 8, !tbaa !16
  %523 = getelementptr inbounds ptr, ptr %522, i64 %502
  %524 = load ptr, ptr %523, align 8, !tbaa !18
  %525 = getelementptr inbounds float, ptr %524, i64 %513
  %526 = load float, ptr %525, align 4, !tbaa !20
  %527 = load float, ptr %54, align 4, !tbaa !15
  %528 = fpext float %527 to double
  %529 = load ptr, ptr %496, align 8, !tbaa !16
  %530 = getelementptr inbounds ptr, ptr %529, i64 %502
  %531 = load ptr, ptr %530, align 8, !tbaa !18
  %532 = getelementptr inbounds float, ptr %531, i64 %513
  %533 = load float, ptr %532, align 4, !tbaa !20
  %534 = insertelement <2 x float> poison, float %533, i64 0
  %535 = insertelement <2 x float> %534, float %526, i64 1
  %536 = fpext <2 x float> %535 to <2 x double>
  %537 = fadd <2 x double> %536, <double 0x400921FB54442D18, double 0x400921FB54442D18>
  %538 = insertelement <2 x double> poison, double %528, i64 0
  %539 = shufflevector <2 x double> %538, <2 x double> poison, <2 x i32> zeroinitializer
  %540 = fsub <2 x double> %537, %539
  %541 = fptrunc <2 x double> %540 to <2 x float>
  %542 = fcmp olt <2 x float> %541, zeroinitializer
  %543 = fpext <2 x float> %541 to <2 x double>
  %544 = fadd <2 x double> %543, <double 0x401921FB544486E0, double 0x401921FB544486E0>
  %545 = fptrunc <2 x double> %544 to <2 x float>
  %546 = select <2 x i1> %542, <2 x float> %545, <2 x float> %541
  %547 = fpext <2 x float> %546 to <2 x double>
  %548 = extractelement <2 x double> %547, i64 1
  %549 = fadd double %548, 0xC01921FB544486E0
  %550 = fptrunc double %549 to float
  %551 = fcmp ogt <2 x double> %547, <double 0x401921FB544486E0, double 0x401921FB544486E0>
  %552 = extractelement <2 x i1> %551, i64 1
  %553 = extractelement <2 x float> %546, i64 1
  %.1509.us = select i1 %552, float %550, float %553
  %554 = extractelement <2 x double> %547, i64 0
  %555 = fadd double %554, 0xC01921FB544486E0
  %556 = fptrunc double %555 to float
  %557 = extractelement <2 x i1> %551, i64 0
  %558 = extractelement <2 x float> %546, i64 0
  %.2.us = select i1 %557, float %556, float %558
  %559 = fmul float %.2.us, 0x3FF45F3060000000
  %560 = fmul float %.1509.us, 0x3FF45F3060000000
  %561 = tail call float @llvm.floor.f32(float %559)
  %562 = fptosi float %561 to i32
  %563 = sitofp i32 %562 to float
  %564 = fsub float %559, %563
  %565 = tail call float @llvm.floor.f32(float %560)
  %566 = fsub float %560, %565
  %567 = add nsw i32 %562, 1
  %568 = icmp slt i32 %562, 7
  %569 = select i1 %568, i32 %567, i32 0
  %570 = icmp slt i32 %562, 0
  %571 = icmp slt i32 %569, 0
  %or.cond29.us = select i1 %570, i1 true, i1 %571
  br i1 %or.cond29.us, label %729, label %572

572:                                              ; preds = %521
  %573 = fptosi float %565 to i32
  %574 = fadd float %565, 1.000000e+00
  %575 = fcmp olt float %574, 8.000000e+00
  %576 = select i1 %575, float %574, float 0.000000e+00
  %577 = fptosi float %576 to i32
  %578 = icmp slt i32 %573, 0
  %579 = icmp slt i32 %577, 0
  %or.cond31.us = select i1 %578, i1 true, i1 %579
  br i1 %or.cond31.us, label %729, label %580

580:                                              ; preds = %572
  %581 = trunc nsw i64 %indvars.iv602 to i32
  %582 = sitofp i32 %581 to float
  %583 = tail call float @llvm.fmuladd.f32(float %582, float %488, float %509)
  %584 = tail call float @llvm.fmuladd.f32(float %582, float %490, float %510)
  %585 = tail call float @llvm.floor.f32(float %583)
  %586 = fptosi float %585 to i32
  %587 = tail call float @llvm.floor.f32(float %584)
  %588 = fptosi float %587 to i32
  %589 = sitofp i32 %586 to float
  %590 = fsub float %583, %589
  %591 = sitofp i32 %588 to float
  %592 = fsub float %584, %591
  %593 = fmul float %590, %592
  %594 = fmul float %593, %515
  %595 = fmul float %594, %564
  %596 = fsub float %594, %595
  %597 = fmul float %593, %518
  %598 = fmul float %597, %566
  %599 = fsub float %597, %598
  %600 = fsub float 1.000000e+00, %590
  %601 = fmul float %592, %600
  %602 = fmul float %601, %515
  %603 = fmul float %602, %564
  %604 = fsub float %602, %603
  %605 = fmul float %601, %518
  %606 = fmul float %605, %566
  %607 = fsub float %605, %606
  %608 = fsub float 1.000000e+00, %592
  %609 = fmul float %608, %600
  %610 = fmul float %609, %515
  %611 = fmul float %610, %564
  %612 = fsub float %610, %611
  %613 = fmul float %609, %518
  %614 = fmul float %613, %566
  %615 = fsub float %613, %614
  %616 = add i32 %586, 2
  %617 = add i32 %586, 3
  %618 = add i32 %588, 2
  %or.cond33.us = icmp ult i32 %618, 5
  br i1 %or.cond33.us, label %619, label %673

619:                                              ; preds = %580
  %620 = mul nsw i32 %588, 40
  %621 = add nsw i32 %620, 80
  %or.cond35.us = icmp ult i32 %616, 5
  br i1 %or.cond35.us, label %622, label %647

622:                                              ; preds = %619
  %623 = shl nuw nsw i32 %616, 3
  %624 = add nuw nsw i32 %621, %623
  %625 = add nuw nsw i32 %624, 36
  %626 = add nuw nsw i32 %625, %562
  %627 = zext nneg i32 %626 to i64
  %628 = getelementptr inbounds float, ptr %511, i64 %627
  %629 = load float, ptr %628, align 4, !tbaa !20
  %630 = fadd float %612, %629
  store float %630, ptr %628, align 4, !tbaa !20
  %631 = add nuw nsw i32 %569, %625
  %632 = zext nneg i32 %631 to i64
  %633 = getelementptr inbounds float, ptr %511, i64 %632
  %634 = load float, ptr %633, align 4, !tbaa !20
  %635 = fadd float %611, %634
  store float %635, ptr %633, align 4, !tbaa !20
  %636 = add nuw nsw i32 %624, 236
  %637 = add nuw nsw i32 %636, %573
  %638 = zext nneg i32 %637 to i64
  %639 = getelementptr inbounds float, ptr %511, i64 %638
  %640 = load float, ptr %639, align 4, !tbaa !20
  %641 = fadd float %615, %640
  store float %641, ptr %639, align 4, !tbaa !20
  %642 = add nuw nsw i32 %636, %577
  %643 = zext nneg i32 %642 to i64
  %644 = getelementptr inbounds float, ptr %511, i64 %643
  %645 = load float, ptr %644, align 4, !tbaa !20
  %646 = fadd float %614, %645
  store float %646, ptr %644, align 4, !tbaa !20
  br label %647

647:                                              ; preds = %622, %619
  %or.cond37.us = icmp ult i32 %617, 5
  br i1 %or.cond37.us, label %648, label %673

648:                                              ; preds = %647
  %649 = shl nuw nsw i32 %617, 3
  %650 = add nuw nsw i32 %621, %649
  %651 = add nuw nsw i32 %650, 36
  %652 = add nuw nsw i32 %651, %562
  %653 = zext nneg i32 %652 to i64
  %654 = getelementptr inbounds float, ptr %511, i64 %653
  %655 = load float, ptr %654, align 4, !tbaa !20
  %656 = fadd float %604, %655
  store float %656, ptr %654, align 4, !tbaa !20
  %657 = add nuw nsw i32 %569, %651
  %658 = zext nneg i32 %657 to i64
  %659 = getelementptr inbounds float, ptr %511, i64 %658
  %660 = load float, ptr %659, align 4, !tbaa !20
  %661 = fadd float %603, %660
  store float %661, ptr %659, align 4, !tbaa !20
  %662 = add nuw nsw i32 %650, 236
  %663 = add nuw nsw i32 %662, %573
  %664 = zext nneg i32 %663 to i64
  %665 = getelementptr inbounds float, ptr %511, i64 %664
  %666 = load float, ptr %665, align 4, !tbaa !20
  %667 = fadd float %607, %666
  store float %667, ptr %665, align 4, !tbaa !20
  %668 = add nuw nsw i32 %662, %577
  %669 = zext nneg i32 %668 to i64
  %670 = getelementptr inbounds float, ptr %511, i64 %669
  %671 = load float, ptr %670, align 4, !tbaa !20
  %672 = fadd float %606, %671
  store float %672, ptr %670, align 4, !tbaa !20
  br label %673

673:                                              ; preds = %648, %647, %580
  %674 = add i32 %588, 3
  %or.cond39.us = icmp ult i32 %674, 5
  br i1 %or.cond39.us, label %675, label %729

675:                                              ; preds = %673
  %676 = mul nsw i32 %588, 40
  %677 = add nsw i32 %676, 120
  %or.cond41.us = icmp ult i32 %616, 5
  br i1 %or.cond41.us, label %678, label %703

678:                                              ; preds = %675
  %679 = shl nuw nsw i32 %616, 3
  %680 = add nuw nsw i32 %677, %679
  %681 = add nuw nsw i32 %680, 36
  %682 = add nuw nsw i32 %681, %562
  %683 = zext nneg i32 %682 to i64
  %684 = getelementptr inbounds float, ptr %511, i64 %683
  %685 = load float, ptr %684, align 4, !tbaa !20
  %686 = fadd float %604, %685
  store float %686, ptr %684, align 4, !tbaa !20
  %687 = add nuw nsw i32 %569, %681
  %688 = zext nneg i32 %687 to i64
  %689 = getelementptr inbounds float, ptr %511, i64 %688
  %690 = load float, ptr %689, align 4, !tbaa !20
  %691 = fadd float %603, %690
  store float %691, ptr %689, align 4, !tbaa !20
  %692 = add nuw nsw i32 %680, 236
  %693 = add nuw nsw i32 %692, %573
  %694 = zext nneg i32 %693 to i64
  %695 = getelementptr inbounds float, ptr %511, i64 %694
  %696 = load float, ptr %695, align 4, !tbaa !20
  %697 = fadd float %607, %696
  store float %697, ptr %695, align 4, !tbaa !20
  %698 = add nuw nsw i32 %692, %577
  %699 = zext nneg i32 %698 to i64
  %700 = getelementptr inbounds float, ptr %511, i64 %699
  %701 = load float, ptr %700, align 4, !tbaa !20
  %702 = fadd float %606, %701
  store float %702, ptr %700, align 4, !tbaa !20
  br label %703

703:                                              ; preds = %678, %675
  %or.cond43.us = icmp ult i32 %617, 5
  br i1 %or.cond43.us, label %704, label %729

704:                                              ; preds = %703
  %705 = shl nuw nsw i32 %617, 3
  %706 = add nuw nsw i32 %677, %705
  %707 = add nuw nsw i32 %706, 36
  %708 = add nuw nsw i32 %707, %562
  %709 = zext nneg i32 %708 to i64
  %710 = getelementptr inbounds float, ptr %511, i64 %709
  %711 = load float, ptr %710, align 4, !tbaa !20
  %712 = fadd float %596, %711
  store float %712, ptr %710, align 4, !tbaa !20
  %713 = add nuw nsw i32 %569, %707
  %714 = zext nneg i32 %713 to i64
  %715 = getelementptr inbounds float, ptr %511, i64 %714
  %716 = load float, ptr %715, align 4, !tbaa !20
  %717 = fadd float %595, %716
  store float %717, ptr %715, align 4, !tbaa !20
  %718 = add nuw nsw i32 %706, 236
  %719 = add nuw nsw i32 %718, %573
  %720 = zext nneg i32 %719 to i64
  %721 = getelementptr inbounds float, ptr %511, i64 %720
  %722 = load float, ptr %721, align 4, !tbaa !20
  %723 = fadd float %599, %722
  store float %723, ptr %721, align 4, !tbaa !20
  %724 = add nuw nsw i32 %718, %577
  %725 = zext nneg i32 %724 to i64
  %726 = getelementptr inbounds float, ptr %511, i64 %725
  %727 = load float, ptr %726, align 4, !tbaa !20
  %728 = fadd float %598, %727
  store float %728, ptr %726, align 4, !tbaa !20
  br label %729

729:                                              ; preds = %704, %703, %673, %572, %521, %512
  %indvars.iv.next603 = add nsw i64 %indvars.iv602, 1
  %lftr.wideiv605 = trunc i64 %indvars.iv.next603 to i32
  %exitcond606.not = icmp eq i32 %lftr.wideiv605, %7
  br i1 %exitcond606.not, label %._crit_edge578.us, label %512, !llvm.loop !24

._crit_edge578.us:                                ; preds = %729
  %indvars.iv.next608 = add nsw i64 %indvars.iv607, 1
  %lftr.wideiv610 = trunc i64 %indvars.iv.next608 to i32
  %exitcond611.not = icmp eq i32 %lftr.wideiv610, %7
  br i1 %exitcond611.not, label %.preheader566, label %.preheader567.us, !llvm.loop !25

.preheader566:                                    ; preds = %._crit_edge578.us, %..preheader566_crit_edge
  %730 = phi ptr [ %.pre629, %..preheader566_crit_edge ], [ %511, %._crit_edge578.us ]
  br label %835

vector.ph:                                        ; preds = %835
  %731 = tail call double @sqrt(double noundef %860) #10
  %732 = load ptr, ptr %86, align 8, !tbaa !19
  %733 = fdiv double 1.000000e+00, %731
  %734 = fptrunc double %733 to float
  %broadcast.splatinsert = insertelement <4 x float> poison, float %734, i64 0
  %broadcast.splat = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <4 x i32> zeroinitializer
  %735 = getelementptr i8, ptr %732, i64 144
  %736 = getelementptr i8, ptr %732, i64 160
  %wide.load = load <4 x float>, ptr %735, align 4, !tbaa !20
  %wide.load684 = load <4 x float>, ptr %736, align 4, !tbaa !20
  %737 = fmul <4 x float> %wide.load, %broadcast.splat
  %738 = fmul <4 x float> %wide.load684, %broadcast.splat
  store <4 x float> %737, ptr %735, align 4, !tbaa !20
  store <4 x float> %738, ptr %736, align 4, !tbaa !20
  %739 = getelementptr i8, ptr %732, i64 176
  %740 = getelementptr i8, ptr %732, i64 192
  %wide.load.1 = load <4 x float>, ptr %739, align 4, !tbaa !20
  %wide.load684.1 = load <4 x float>, ptr %740, align 4, !tbaa !20
  %741 = fmul <4 x float> %wide.load.1, %broadcast.splat
  %742 = fmul <4 x float> %wide.load684.1, %broadcast.splat
  store <4 x float> %741, ptr %739, align 4, !tbaa !20
  store <4 x float> %742, ptr %740, align 4, !tbaa !20
  %743 = getelementptr i8, ptr %732, i64 208
  %744 = getelementptr i8, ptr %732, i64 224
  %wide.load.2 = load <4 x float>, ptr %743, align 4, !tbaa !20
  %wide.load684.2 = load <4 x float>, ptr %744, align 4, !tbaa !20
  %745 = fmul <4 x float> %wide.load.2, %broadcast.splat
  %746 = fmul <4 x float> %wide.load684.2, %broadcast.splat
  store <4 x float> %745, ptr %743, align 4, !tbaa !20
  store <4 x float> %746, ptr %744, align 4, !tbaa !20
  %747 = getelementptr i8, ptr %732, i64 240
  %748 = getelementptr i8, ptr %732, i64 256
  %wide.load.3 = load <4 x float>, ptr %747, align 4, !tbaa !20
  %wide.load684.3 = load <4 x float>, ptr %748, align 4, !tbaa !20
  %749 = fmul <4 x float> %wide.load.3, %broadcast.splat
  %750 = fmul <4 x float> %wide.load684.3, %broadcast.splat
  store <4 x float> %749, ptr %747, align 4, !tbaa !20
  store <4 x float> %750, ptr %748, align 4, !tbaa !20
  %751 = getelementptr i8, ptr %732, i64 272
  %752 = getelementptr i8, ptr %732, i64 288
  %wide.load.4 = load <4 x float>, ptr %751, align 4, !tbaa !20
  %wide.load684.4 = load <4 x float>, ptr %752, align 4, !tbaa !20
  %753 = fmul <4 x float> %wide.load.4, %broadcast.splat
  %754 = fmul <4 x float> %wide.load684.4, %broadcast.splat
  store <4 x float> %753, ptr %751, align 4, !tbaa !20
  store <4 x float> %754, ptr %752, align 4, !tbaa !20
  %755 = getelementptr i8, ptr %732, i64 304
  %756 = getelementptr i8, ptr %732, i64 320
  %wide.load.5 = load <4 x float>, ptr %755, align 4, !tbaa !20
  %wide.load684.5 = load <4 x float>, ptr %756, align 4, !tbaa !20
  %757 = fmul <4 x float> %wide.load.5, %broadcast.splat
  %758 = fmul <4 x float> %wide.load684.5, %broadcast.splat
  store <4 x float> %757, ptr %755, align 4, !tbaa !20
  store <4 x float> %758, ptr %756, align 4, !tbaa !20
  %759 = getelementptr i8, ptr %732, i64 336
  %760 = getelementptr i8, ptr %732, i64 352
  %wide.load.6 = load <4 x float>, ptr %759, align 4, !tbaa !20
  %wide.load684.6 = load <4 x float>, ptr %760, align 4, !tbaa !20
  %761 = fmul <4 x float> %wide.load.6, %broadcast.splat
  %762 = fmul <4 x float> %wide.load684.6, %broadcast.splat
  store <4 x float> %761, ptr %759, align 4, !tbaa !20
  store <4 x float> %762, ptr %760, align 4, !tbaa !20
  %763 = getelementptr i8, ptr %732, i64 368
  %764 = getelementptr i8, ptr %732, i64 384
  %wide.load.7 = load <4 x float>, ptr %763, align 4, !tbaa !20
  %wide.load684.7 = load <4 x float>, ptr %764, align 4, !tbaa !20
  %765 = fmul <4 x float> %wide.load.7, %broadcast.splat
  %766 = fmul <4 x float> %wide.load684.7, %broadcast.splat
  store <4 x float> %765, ptr %763, align 4, !tbaa !20
  store <4 x float> %766, ptr %764, align 4, !tbaa !20
  %767 = getelementptr i8, ptr %732, i64 400
  %768 = getelementptr i8, ptr %732, i64 416
  %wide.load.8 = load <4 x float>, ptr %767, align 4, !tbaa !20
  %wide.load684.8 = load <4 x float>, ptr %768, align 4, !tbaa !20
  %769 = fmul <4 x float> %wide.load.8, %broadcast.splat
  %770 = fmul <4 x float> %wide.load684.8, %broadcast.splat
  store <4 x float> %769, ptr %767, align 4, !tbaa !20
  store <4 x float> %770, ptr %768, align 4, !tbaa !20
  %771 = getelementptr i8, ptr %732, i64 432
  %772 = getelementptr i8, ptr %732, i64 448
  %wide.load.9 = load <4 x float>, ptr %771, align 4, !tbaa !20
  %wide.load684.9 = load <4 x float>, ptr %772, align 4, !tbaa !20
  %773 = fmul <4 x float> %wide.load.9, %broadcast.splat
  %774 = fmul <4 x float> %wide.load684.9, %broadcast.splat
  store <4 x float> %773, ptr %771, align 4, !tbaa !20
  store <4 x float> %774, ptr %772, align 4, !tbaa !20
  %775 = getelementptr i8, ptr %732, i64 464
  %776 = getelementptr i8, ptr %732, i64 480
  %wide.load.10 = load <4 x float>, ptr %775, align 4, !tbaa !20
  %wide.load684.10 = load <4 x float>, ptr %776, align 4, !tbaa !20
  %777 = fmul <4 x float> %wide.load.10, %broadcast.splat
  %778 = fmul <4 x float> %wide.load684.10, %broadcast.splat
  store <4 x float> %777, ptr %775, align 4, !tbaa !20
  store <4 x float> %778, ptr %776, align 4, !tbaa !20
  %779 = getelementptr i8, ptr %732, i64 496
  %780 = getelementptr i8, ptr %732, i64 512
  %wide.load.11 = load <4 x float>, ptr %779, align 4, !tbaa !20
  %wide.load684.11 = load <4 x float>, ptr %780, align 4, !tbaa !20
  %781 = fmul <4 x float> %wide.load.11, %broadcast.splat
  %782 = fmul <4 x float> %wide.load684.11, %broadcast.splat
  store <4 x float> %781, ptr %779, align 4, !tbaa !20
  store <4 x float> %782, ptr %780, align 4, !tbaa !20
  %783 = getelementptr i8, ptr %732, i64 528
  %784 = getelementptr i8, ptr %732, i64 544
  %wide.load.12 = load <4 x float>, ptr %783, align 4, !tbaa !20
  %wide.load684.12 = load <4 x float>, ptr %784, align 4, !tbaa !20
  %785 = fmul <4 x float> %wide.load.12, %broadcast.splat
  %786 = fmul <4 x float> %wide.load684.12, %broadcast.splat
  store <4 x float> %785, ptr %783, align 4, !tbaa !20
  store <4 x float> %786, ptr %784, align 4, !tbaa !20
  %787 = getelementptr i8, ptr %732, i64 560
  %788 = getelementptr i8, ptr %732, i64 576
  %wide.load.13 = load <4 x float>, ptr %787, align 4, !tbaa !20
  %wide.load684.13 = load <4 x float>, ptr %788, align 4, !tbaa !20
  %789 = fmul <4 x float> %wide.load.13, %broadcast.splat
  %790 = fmul <4 x float> %wide.load684.13, %broadcast.splat
  store <4 x float> %789, ptr %787, align 4, !tbaa !20
  store <4 x float> %790, ptr %788, align 4, !tbaa !20
  %791 = getelementptr i8, ptr %732, i64 592
  %792 = getelementptr i8, ptr %732, i64 608
  %wide.load.14 = load <4 x float>, ptr %791, align 4, !tbaa !20
  %wide.load684.14 = load <4 x float>, ptr %792, align 4, !tbaa !20
  %793 = fmul <4 x float> %wide.load.14, %broadcast.splat
  %794 = fmul <4 x float> %wide.load684.14, %broadcast.splat
  store <4 x float> %793, ptr %791, align 4, !tbaa !20
  store <4 x float> %794, ptr %792, align 4, !tbaa !20
  %795 = getelementptr i8, ptr %732, i64 624
  %796 = getelementptr i8, ptr %732, i64 640
  %wide.load.15 = load <4 x float>, ptr %795, align 4, !tbaa !20
  %wide.load684.15 = load <4 x float>, ptr %796, align 4, !tbaa !20
  %797 = fmul <4 x float> %wide.load.15, %broadcast.splat
  %798 = fmul <4 x float> %wide.load684.15, %broadcast.splat
  store <4 x float> %797, ptr %795, align 4, !tbaa !20
  store <4 x float> %798, ptr %796, align 4, !tbaa !20
  %799 = getelementptr i8, ptr %732, i64 656
  %800 = getelementptr i8, ptr %732, i64 672
  %wide.load.16 = load <4 x float>, ptr %799, align 4, !tbaa !20
  %wide.load684.16 = load <4 x float>, ptr %800, align 4, !tbaa !20
  %801 = fmul <4 x float> %wide.load.16, %broadcast.splat
  %802 = fmul <4 x float> %wide.load684.16, %broadcast.splat
  store <4 x float> %801, ptr %799, align 4, !tbaa !20
  store <4 x float> %802, ptr %800, align 4, !tbaa !20
  %803 = getelementptr i8, ptr %732, i64 688
  %804 = getelementptr i8, ptr %732, i64 704
  %wide.load.17 = load <4 x float>, ptr %803, align 4, !tbaa !20
  %wide.load684.17 = load <4 x float>, ptr %804, align 4, !tbaa !20
  %805 = fmul <4 x float> %wide.load.17, %broadcast.splat
  %806 = fmul <4 x float> %wide.load684.17, %broadcast.splat
  store <4 x float> %805, ptr %803, align 4, !tbaa !20
  store <4 x float> %806, ptr %804, align 4, !tbaa !20
  %807 = getelementptr i8, ptr %732, i64 720
  %808 = getelementptr i8, ptr %732, i64 736
  %wide.load.18 = load <4 x float>, ptr %807, align 4, !tbaa !20
  %wide.load684.18 = load <4 x float>, ptr %808, align 4, !tbaa !20
  %809 = fmul <4 x float> %wide.load.18, %broadcast.splat
  %810 = fmul <4 x float> %wide.load684.18, %broadcast.splat
  store <4 x float> %809, ptr %807, align 4, !tbaa !20
  store <4 x float> %810, ptr %808, align 4, !tbaa !20
  %811 = getelementptr i8, ptr %732, i64 752
  %812 = getelementptr i8, ptr %732, i64 768
  %wide.load.19 = load <4 x float>, ptr %811, align 4, !tbaa !20
  %wide.load684.19 = load <4 x float>, ptr %812, align 4, !tbaa !20
  %813 = fmul <4 x float> %wide.load.19, %broadcast.splat
  %814 = fmul <4 x float> %wide.load684.19, %broadcast.splat
  store <4 x float> %813, ptr %811, align 4, !tbaa !20
  store <4 x float> %814, ptr %812, align 4, !tbaa !20
  %815 = getelementptr i8, ptr %732, i64 784
  %816 = getelementptr i8, ptr %732, i64 800
  %wide.load.20 = load <4 x float>, ptr %815, align 4, !tbaa !20
  %wide.load684.20 = load <4 x float>, ptr %816, align 4, !tbaa !20
  %817 = fmul <4 x float> %wide.load.20, %broadcast.splat
  %818 = fmul <4 x float> %wide.load684.20, %broadcast.splat
  store <4 x float> %817, ptr %815, align 4, !tbaa !20
  store <4 x float> %818, ptr %816, align 4, !tbaa !20
  %819 = getelementptr i8, ptr %732, i64 816
  %820 = getelementptr i8, ptr %732, i64 832
  %wide.load.21 = load <4 x float>, ptr %819, align 4, !tbaa !20
  %wide.load684.21 = load <4 x float>, ptr %820, align 4, !tbaa !20
  %821 = fmul <4 x float> %wide.load.21, %broadcast.splat
  %822 = fmul <4 x float> %wide.load684.21, %broadcast.splat
  store <4 x float> %821, ptr %819, align 4, !tbaa !20
  store <4 x float> %822, ptr %820, align 4, !tbaa !20
  %823 = getelementptr i8, ptr %732, i64 848
  %824 = getelementptr i8, ptr %732, i64 864
  %wide.load.22 = load <4 x float>, ptr %823, align 4, !tbaa !20
  %wide.load684.22 = load <4 x float>, ptr %824, align 4, !tbaa !20
  %825 = fmul <4 x float> %wide.load.22, %broadcast.splat
  %826 = fmul <4 x float> %wide.load684.22, %broadcast.splat
  store <4 x float> %825, ptr %823, align 4, !tbaa !20
  store <4 x float> %826, ptr %824, align 4, !tbaa !20
  %827 = getelementptr i8, ptr %732, i64 880
  %828 = getelementptr i8, ptr %732, i64 896
  %wide.load.23 = load <4 x float>, ptr %827, align 4, !tbaa !20
  %wide.load684.23 = load <4 x float>, ptr %828, align 4, !tbaa !20
  %829 = fmul <4 x float> %wide.load.23, %broadcast.splat
  %830 = fmul <4 x float> %wide.load684.23, %broadcast.splat
  store <4 x float> %829, ptr %827, align 4, !tbaa !20
  store <4 x float> %830, ptr %828, align 4, !tbaa !20
  %831 = getelementptr i8, ptr %732, i64 912
  %832 = getelementptr i8, ptr %732, i64 928
  %wide.load.24 = load <4 x float>, ptr %831, align 4, !tbaa !20
  %wide.load684.24 = load <4 x float>, ptr %832, align 4, !tbaa !20
  %833 = fmul <4 x float> %wide.load.24, %broadcast.splat
  %834 = fmul <4 x float> %wide.load684.24, %broadcast.splat
  store <4 x float> %833, ptr %831, align 4, !tbaa !20
  store <4 x float> %834, ptr %832, align 4, !tbaa !20
  %invariant.gep = getelementptr inbounds i8, ptr %732, i64 4
  %invariant.gep702 = getelementptr inbounds i8, ptr %732, i64 8
  %invariant.gep704 = getelementptr inbounds i8, ptr %732, i64 12
  %invariant.gep706 = getelementptr inbounds i8, ptr %732, i64 16
  br label %.preheader

835:                                              ; preds = %835, %.preheader566
  %indvars.iv612 = phi i64 [ 36, %.preheader566 ], [ %indvars.iv.next613.4, %835 ]
  %.1513580 = phi double [ 0.000000e+00, %.preheader566 ], [ %860, %835 ]
  %836 = getelementptr inbounds float, ptr %730, i64 %indvars.iv612
  %837 = load float, ptr %836, align 4, !tbaa !20
  %838 = fmul float %837, %837
  %839 = fpext float %838 to double
  %840 = fadd double %.1513580, %839
  %indvars.iv.next613 = add nuw nsw i64 %indvars.iv612, 1
  %841 = getelementptr inbounds float, ptr %730, i64 %indvars.iv.next613
  %842 = load float, ptr %841, align 4, !tbaa !20
  %843 = fmul float %842, %842
  %844 = fpext float %843 to double
  %845 = fadd double %840, %844
  %indvars.iv.next613.1 = add nuw nsw i64 %indvars.iv612, 2
  %846 = getelementptr inbounds float, ptr %730, i64 %indvars.iv.next613.1
  %847 = load float, ptr %846, align 4, !tbaa !20
  %848 = fmul float %847, %847
  %849 = fpext float %848 to double
  %850 = fadd double %845, %849
  %indvars.iv.next613.2 = add nuw nsw i64 %indvars.iv612, 3
  %851 = getelementptr inbounds float, ptr %730, i64 %indvars.iv.next613.2
  %852 = load float, ptr %851, align 4, !tbaa !20
  %853 = fmul float %852, %852
  %854 = fpext float %853 to double
  %855 = fadd double %850, %854
  %indvars.iv.next613.3 = add nuw nsw i64 %indvars.iv612, 4
  %856 = getelementptr inbounds float, ptr %730, i64 %indvars.iv.next613.3
  %857 = load float, ptr %856, align 4, !tbaa !20
  %858 = fmul float %857, %857
  %859 = fpext float %858 to double
  %860 = fadd double %855, %859
  %indvars.iv.next613.4 = add nuw nsw i64 %indvars.iv612, 5
  %exitcond615.not.4 = icmp eq i64 %indvars.iv.next613.4, 236
  br i1 %exitcond615.not.4, label %vector.ph, label %835, !llvm.loop !26

vector.ph687:                                     ; preds = %.preheader
  %861 = tail call double @sqrt(double noundef %986) #10
  %862 = fdiv double 1.000000e+00, %861
  %863 = fptrunc double %862 to float
  %broadcast.splatinsert694 = insertelement <4 x float> poison, float %863, i64 0
  %broadcast.splat695 = shufflevector <4 x float> %broadcast.splatinsert694, <4 x float> poison, <4 x i32> zeroinitializer
  %864 = load ptr, ptr %86, align 8, !tbaa !19
  %865 = getelementptr i8, ptr %864, i64 944
  %866 = getelementptr i8, ptr %864, i64 960
  %wide.load692 = load <4 x float>, ptr %865, align 4, !tbaa !20
  %wide.load693 = load <4 x float>, ptr %866, align 4, !tbaa !20
  %867 = fmul <4 x float> %wide.load692, %broadcast.splat695
  %868 = fmul <4 x float> %wide.load693, %broadcast.splat695
  store <4 x float> %867, ptr %865, align 4, !tbaa !20
  store <4 x float> %868, ptr %866, align 4, !tbaa !20
  %869 = getelementptr i8, ptr %864, i64 976
  %870 = getelementptr i8, ptr %864, i64 992
  %wide.load692.1 = load <4 x float>, ptr %869, align 4, !tbaa !20
  %wide.load693.1 = load <4 x float>, ptr %870, align 4, !tbaa !20
  %871 = fmul <4 x float> %wide.load692.1, %broadcast.splat695
  %872 = fmul <4 x float> %wide.load693.1, %broadcast.splat695
  store <4 x float> %871, ptr %869, align 4, !tbaa !20
  store <4 x float> %872, ptr %870, align 4, !tbaa !20
  %873 = getelementptr i8, ptr %864, i64 1008
  %874 = getelementptr i8, ptr %864, i64 1024
  %wide.load692.2 = load <4 x float>, ptr %873, align 4, !tbaa !20
  %wide.load693.2 = load <4 x float>, ptr %874, align 4, !tbaa !20
  %875 = fmul <4 x float> %wide.load692.2, %broadcast.splat695
  %876 = fmul <4 x float> %wide.load693.2, %broadcast.splat695
  store <4 x float> %875, ptr %873, align 4, !tbaa !20
  store <4 x float> %876, ptr %874, align 4, !tbaa !20
  %877 = getelementptr i8, ptr %864, i64 1040
  %878 = getelementptr i8, ptr %864, i64 1056
  %wide.load692.3 = load <4 x float>, ptr %877, align 4, !tbaa !20
  %wide.load693.3 = load <4 x float>, ptr %878, align 4, !tbaa !20
  %879 = fmul <4 x float> %wide.load692.3, %broadcast.splat695
  %880 = fmul <4 x float> %wide.load693.3, %broadcast.splat695
  store <4 x float> %879, ptr %877, align 4, !tbaa !20
  store <4 x float> %880, ptr %878, align 4, !tbaa !20
  %881 = getelementptr i8, ptr %864, i64 1072
  %882 = getelementptr i8, ptr %864, i64 1088
  %wide.load692.4 = load <4 x float>, ptr %881, align 4, !tbaa !20
  %wide.load693.4 = load <4 x float>, ptr %882, align 4, !tbaa !20
  %883 = fmul <4 x float> %wide.load692.4, %broadcast.splat695
  %884 = fmul <4 x float> %wide.load693.4, %broadcast.splat695
  store <4 x float> %883, ptr %881, align 4, !tbaa !20
  store <4 x float> %884, ptr %882, align 4, !tbaa !20
  %885 = getelementptr i8, ptr %864, i64 1104
  %886 = getelementptr i8, ptr %864, i64 1120
  %wide.load692.5 = load <4 x float>, ptr %885, align 4, !tbaa !20
  %wide.load693.5 = load <4 x float>, ptr %886, align 4, !tbaa !20
  %887 = fmul <4 x float> %wide.load692.5, %broadcast.splat695
  %888 = fmul <4 x float> %wide.load693.5, %broadcast.splat695
  store <4 x float> %887, ptr %885, align 4, !tbaa !20
  store <4 x float> %888, ptr %886, align 4, !tbaa !20
  %889 = getelementptr i8, ptr %864, i64 1136
  %890 = getelementptr i8, ptr %864, i64 1152
  %wide.load692.6 = load <4 x float>, ptr %889, align 4, !tbaa !20
  %wide.load693.6 = load <4 x float>, ptr %890, align 4, !tbaa !20
  %891 = fmul <4 x float> %wide.load692.6, %broadcast.splat695
  %892 = fmul <4 x float> %wide.load693.6, %broadcast.splat695
  store <4 x float> %891, ptr %889, align 4, !tbaa !20
  store <4 x float> %892, ptr %890, align 4, !tbaa !20
  %893 = getelementptr i8, ptr %864, i64 1168
  %894 = getelementptr i8, ptr %864, i64 1184
  %wide.load692.7 = load <4 x float>, ptr %893, align 4, !tbaa !20
  %wide.load693.7 = load <4 x float>, ptr %894, align 4, !tbaa !20
  %895 = fmul <4 x float> %wide.load692.7, %broadcast.splat695
  %896 = fmul <4 x float> %wide.load693.7, %broadcast.splat695
  store <4 x float> %895, ptr %893, align 4, !tbaa !20
  store <4 x float> %896, ptr %894, align 4, !tbaa !20
  %897 = getelementptr i8, ptr %864, i64 1200
  %898 = getelementptr i8, ptr %864, i64 1216
  %wide.load692.8 = load <4 x float>, ptr %897, align 4, !tbaa !20
  %wide.load693.8 = load <4 x float>, ptr %898, align 4, !tbaa !20
  %899 = fmul <4 x float> %wide.load692.8, %broadcast.splat695
  %900 = fmul <4 x float> %wide.load693.8, %broadcast.splat695
  store <4 x float> %899, ptr %897, align 4, !tbaa !20
  store <4 x float> %900, ptr %898, align 4, !tbaa !20
  %901 = getelementptr i8, ptr %864, i64 1232
  %902 = getelementptr i8, ptr %864, i64 1248
  %wide.load692.9 = load <4 x float>, ptr %901, align 4, !tbaa !20
  %wide.load693.9 = load <4 x float>, ptr %902, align 4, !tbaa !20
  %903 = fmul <4 x float> %wide.load692.9, %broadcast.splat695
  %904 = fmul <4 x float> %wide.load693.9, %broadcast.splat695
  store <4 x float> %903, ptr %901, align 4, !tbaa !20
  store <4 x float> %904, ptr %902, align 4, !tbaa !20
  %905 = getelementptr i8, ptr %864, i64 1264
  %906 = getelementptr i8, ptr %864, i64 1280
  %wide.load692.10 = load <4 x float>, ptr %905, align 4, !tbaa !20
  %wide.load693.10 = load <4 x float>, ptr %906, align 4, !tbaa !20
  %907 = fmul <4 x float> %wide.load692.10, %broadcast.splat695
  %908 = fmul <4 x float> %wide.load693.10, %broadcast.splat695
  store <4 x float> %907, ptr %905, align 4, !tbaa !20
  store <4 x float> %908, ptr %906, align 4, !tbaa !20
  %909 = getelementptr i8, ptr %864, i64 1296
  %910 = getelementptr i8, ptr %864, i64 1312
  %wide.load692.11 = load <4 x float>, ptr %909, align 4, !tbaa !20
  %wide.load693.11 = load <4 x float>, ptr %910, align 4, !tbaa !20
  %911 = fmul <4 x float> %wide.load692.11, %broadcast.splat695
  %912 = fmul <4 x float> %wide.load693.11, %broadcast.splat695
  store <4 x float> %911, ptr %909, align 4, !tbaa !20
  store <4 x float> %912, ptr %910, align 4, !tbaa !20
  %913 = getelementptr i8, ptr %864, i64 1328
  %914 = getelementptr i8, ptr %864, i64 1344
  %wide.load692.12 = load <4 x float>, ptr %913, align 4, !tbaa !20
  %wide.load693.12 = load <4 x float>, ptr %914, align 4, !tbaa !20
  %915 = fmul <4 x float> %wide.load692.12, %broadcast.splat695
  %916 = fmul <4 x float> %wide.load693.12, %broadcast.splat695
  store <4 x float> %915, ptr %913, align 4, !tbaa !20
  store <4 x float> %916, ptr %914, align 4, !tbaa !20
  %917 = getelementptr i8, ptr %864, i64 1360
  %918 = getelementptr i8, ptr %864, i64 1376
  %wide.load692.13 = load <4 x float>, ptr %917, align 4, !tbaa !20
  %wide.load693.13 = load <4 x float>, ptr %918, align 4, !tbaa !20
  %919 = fmul <4 x float> %wide.load692.13, %broadcast.splat695
  %920 = fmul <4 x float> %wide.load693.13, %broadcast.splat695
  store <4 x float> %919, ptr %917, align 4, !tbaa !20
  store <4 x float> %920, ptr %918, align 4, !tbaa !20
  %921 = getelementptr i8, ptr %864, i64 1392
  %922 = getelementptr i8, ptr %864, i64 1408
  %wide.load692.14 = load <4 x float>, ptr %921, align 4, !tbaa !20
  %wide.load693.14 = load <4 x float>, ptr %922, align 4, !tbaa !20
  %923 = fmul <4 x float> %wide.load692.14, %broadcast.splat695
  %924 = fmul <4 x float> %wide.load693.14, %broadcast.splat695
  store <4 x float> %923, ptr %921, align 4, !tbaa !20
  store <4 x float> %924, ptr %922, align 4, !tbaa !20
  %925 = getelementptr i8, ptr %864, i64 1424
  %926 = getelementptr i8, ptr %864, i64 1440
  %wide.load692.15 = load <4 x float>, ptr %925, align 4, !tbaa !20
  %wide.load693.15 = load <4 x float>, ptr %926, align 4, !tbaa !20
  %927 = fmul <4 x float> %wide.load692.15, %broadcast.splat695
  %928 = fmul <4 x float> %wide.load693.15, %broadcast.splat695
  store <4 x float> %927, ptr %925, align 4, !tbaa !20
  store <4 x float> %928, ptr %926, align 4, !tbaa !20
  %929 = getelementptr i8, ptr %864, i64 1456
  %930 = getelementptr i8, ptr %864, i64 1472
  %wide.load692.16 = load <4 x float>, ptr %929, align 4, !tbaa !20
  %wide.load693.16 = load <4 x float>, ptr %930, align 4, !tbaa !20
  %931 = fmul <4 x float> %wide.load692.16, %broadcast.splat695
  %932 = fmul <4 x float> %wide.load693.16, %broadcast.splat695
  store <4 x float> %931, ptr %929, align 4, !tbaa !20
  store <4 x float> %932, ptr %930, align 4, !tbaa !20
  %933 = getelementptr i8, ptr %864, i64 1488
  %934 = getelementptr i8, ptr %864, i64 1504
  %wide.load692.17 = load <4 x float>, ptr %933, align 4, !tbaa !20
  %wide.load693.17 = load <4 x float>, ptr %934, align 4, !tbaa !20
  %935 = fmul <4 x float> %wide.load692.17, %broadcast.splat695
  %936 = fmul <4 x float> %wide.load693.17, %broadcast.splat695
  store <4 x float> %935, ptr %933, align 4, !tbaa !20
  store <4 x float> %936, ptr %934, align 4, !tbaa !20
  %937 = getelementptr i8, ptr %864, i64 1520
  %938 = getelementptr i8, ptr %864, i64 1536
  %wide.load692.18 = load <4 x float>, ptr %937, align 4, !tbaa !20
  %wide.load693.18 = load <4 x float>, ptr %938, align 4, !tbaa !20
  %939 = fmul <4 x float> %wide.load692.18, %broadcast.splat695
  %940 = fmul <4 x float> %wide.load693.18, %broadcast.splat695
  store <4 x float> %939, ptr %937, align 4, !tbaa !20
  store <4 x float> %940, ptr %938, align 4, !tbaa !20
  %941 = getelementptr i8, ptr %864, i64 1552
  %942 = getelementptr i8, ptr %864, i64 1568
  %wide.load692.19 = load <4 x float>, ptr %941, align 4, !tbaa !20
  %wide.load693.19 = load <4 x float>, ptr %942, align 4, !tbaa !20
  %943 = fmul <4 x float> %wide.load692.19, %broadcast.splat695
  %944 = fmul <4 x float> %wide.load693.19, %broadcast.splat695
  store <4 x float> %943, ptr %941, align 4, !tbaa !20
  store <4 x float> %944, ptr %942, align 4, !tbaa !20
  %945 = getelementptr i8, ptr %864, i64 1584
  %946 = getelementptr i8, ptr %864, i64 1600
  %wide.load692.20 = load <4 x float>, ptr %945, align 4, !tbaa !20
  %wide.load693.20 = load <4 x float>, ptr %946, align 4, !tbaa !20
  %947 = fmul <4 x float> %wide.load692.20, %broadcast.splat695
  %948 = fmul <4 x float> %wide.load693.20, %broadcast.splat695
  store <4 x float> %947, ptr %945, align 4, !tbaa !20
  store <4 x float> %948, ptr %946, align 4, !tbaa !20
  %949 = getelementptr i8, ptr %864, i64 1616
  %950 = getelementptr i8, ptr %864, i64 1632
  %wide.load692.21 = load <4 x float>, ptr %949, align 4, !tbaa !20
  %wide.load693.21 = load <4 x float>, ptr %950, align 4, !tbaa !20
  %951 = fmul <4 x float> %wide.load692.21, %broadcast.splat695
  %952 = fmul <4 x float> %wide.load693.21, %broadcast.splat695
  store <4 x float> %951, ptr %949, align 4, !tbaa !20
  store <4 x float> %952, ptr %950, align 4, !tbaa !20
  %953 = getelementptr i8, ptr %864, i64 1648
  %954 = getelementptr i8, ptr %864, i64 1664
  %wide.load692.22 = load <4 x float>, ptr %953, align 4, !tbaa !20
  %wide.load693.22 = load <4 x float>, ptr %954, align 4, !tbaa !20
  %955 = fmul <4 x float> %wide.load692.22, %broadcast.splat695
  %956 = fmul <4 x float> %wide.load693.22, %broadcast.splat695
  store <4 x float> %955, ptr %953, align 4, !tbaa !20
  store <4 x float> %956, ptr %954, align 4, !tbaa !20
  %957 = getelementptr i8, ptr %864, i64 1680
  %958 = getelementptr i8, ptr %864, i64 1696
  %wide.load692.23 = load <4 x float>, ptr %957, align 4, !tbaa !20
  %wide.load693.23 = load <4 x float>, ptr %958, align 4, !tbaa !20
  %959 = fmul <4 x float> %wide.load692.23, %broadcast.splat695
  %960 = fmul <4 x float> %wide.load693.23, %broadcast.splat695
  store <4 x float> %959, ptr %957, align 4, !tbaa !20
  store <4 x float> %960, ptr %958, align 4, !tbaa !20
  %961 = getelementptr i8, ptr %864, i64 1712
  %962 = getelementptr i8, ptr %864, i64 1728
  %wide.load692.24 = load <4 x float>, ptr %961, align 4, !tbaa !20
  %wide.load693.24 = load <4 x float>, ptr %962, align 4, !tbaa !20
  %963 = fmul <4 x float> %wide.load692.24, %broadcast.splat695
  %964 = fmul <4 x float> %wide.load693.24, %broadcast.splat695
  store <4 x float> %963, ptr %961, align 4, !tbaa !20
  store <4 x float> %964, ptr %962, align 4, !tbaa !20
  %965 = getelementptr inbounds i8, ptr %0, i64 80
  store i32 1, ptr %965, align 8, !tbaa !27
  br label %987

.preheader:                                       ; preds = %.preheader, %vector.ph
  %indvars.iv620 = phi i64 [ 236, %vector.ph ], [ %indvars.iv.next621.4, %.preheader ]
  %.2514583 = phi double [ 0.000000e+00, %vector.ph ], [ %986, %.preheader ]
  %966 = getelementptr inbounds float, ptr %732, i64 %indvars.iv620
  %967 = load float, ptr %966, align 4, !tbaa !20
  %968 = fmul float %967, %967
  %969 = fpext float %968 to double
  %970 = fadd double %.2514583, %969
  %gep = getelementptr inbounds float, ptr %invariant.gep, i64 %indvars.iv620
  %971 = load float, ptr %gep, align 4, !tbaa !20
  %972 = fmul float %971, %971
  %973 = fpext float %972 to double
  %974 = fadd double %970, %973
  %gep703 = getelementptr inbounds float, ptr %invariant.gep702, i64 %indvars.iv620
  %975 = load float, ptr %gep703, align 4, !tbaa !20
  %976 = fmul float %975, %975
  %977 = fpext float %976 to double
  %978 = fadd double %974, %977
  %gep705 = getelementptr inbounds float, ptr %invariant.gep704, i64 %indvars.iv620
  %979 = load float, ptr %gep705, align 4, !tbaa !20
  %980 = fmul float %979, %979
  %981 = fpext float %980 to double
  %982 = fadd double %978, %981
  %gep707 = getelementptr inbounds float, ptr %invariant.gep706, i64 %indvars.iv620
  %983 = load float, ptr %gep707, align 4, !tbaa !20
  %984 = fmul float %983, %983
  %985 = fpext float %984 to double
  %986 = fadd double %982, %985
  %indvars.iv.next621.4 = add nuw nsw i64 %indvars.iv620, 5
  %exitcond623.not.4 = icmp eq i64 %indvars.iv.next621.4, 436
  br i1 %exitcond623.not.4, label %vector.ph687, label %.preheader, !llvm.loop !28

987:                                              ; preds = %vector.ph687, %._crit_edge573, %37, %40, %29, %32, %15
  ret void

988:                                              ; preds = %269, %267
  %.sink = phi ptr [ %52, %269 ], [ %50, %267 ]
  %.pn = phi { ptr, i32 } [ %270, %269 ], [ %268, %267 ]
  tail call void @_ZdlPvm(ptr noundef nonnull %.sink, i64 noundef 80) #11
  resume { ptr, i32 } %.pn
}

declare void @_ZN16CornerDescriptor8allocVecEi(ptr noundef nonnull align 8 dereferenceable(116), i32 noundef) local_unnamed_addr #8

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN12ImageContentC2Ejjf(ptr noundef nonnull align 8 dereferenceable(80), i32 noundef, i32 noundef, float noundef) unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt3sinf(float noundef) local_unnamed_addr #1

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

declare void @_ZN12ImageContent5writeEPKc(ptr noundef nonnull align 8 dereferenceable(80), ptr noundef) local_unnamed_addr #8

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #1 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { inlinehint mustprogress nofree nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress nofree nounwind willreturn memory(write) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nobuiltin allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nobuiltin nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { builtin allocsize(0) }
attributes #10 = { nounwind }
attributes #11 = { builtin nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !10, i64 56}
!6 = !{!"_ZTS6Corner", !7, 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, !7, i64 68, !7, i64 72, !10, i64 76, !7, i64 80, !7, i64 84}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"float", !8, i64 0}
!11 = !{!12, !10, i64 100}
!12 = !{!"_ZTS16CornerDescriptor", !6, i64 0, !13, i64 88, !7, i64 96, !10, i64 100, !14, i64 104, !7, i64 112}
!13 = !{!"any pointer", !8, i64 0}
!14 = !{!"long", !8, i64 0}
!15 = !{!6, !10, i64 76}
!16 = !{!17, !13, i64 16}
!17 = !{!"_ZTS12ImageContent", !7, i64 0, !7, i64 4, !7, i64 8, !7, i64 12, !13, i64 16, !13, i64 24, !13, i64 32, !13, i64 40, !13, i64 48, !13, i64 56, !13, i64 64, !13, i64 72}
!18 = !{!13, !13, i64 0}
!19 = !{!12, !13, i64 88}
!20 = !{!10, !10, i64 0}
!21 = distinct !{!21, !22}
!22 = !{!"llvm.loop.mustprogress"}
!23 = distinct !{!23, !22}
!24 = distinct !{!24, !22}
!25 = distinct !{!25, !22}
!26 = distinct !{!26, !22}
!27 = !{!6, !7, i64 80}
!28 = distinct !{!28, !22}


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