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

; 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::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.ImageContent = type { i32, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_Z6sbilinP12ImageContentff(ptr noundef, float noundef, float noundef) #3

; Function Attrs: mustprogress uwtable
define dso_local void @_Z5cannyP12ImageContentS0_S0_ff(ptr noundef %0, ptr noundef %1, ptr noundef %2, float noundef %3, float noundef %4) #3 personality ptr @__gxx_personality_v0 {
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca float, align 4
  %10 = alloca float, align 4
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca %"class.std::vector", align 8
  %21 = alloca i32, align 4
  %22 = alloca float, align 4
  %23 = alloca float, align 4
  %24 = alloca float, align 4
  %25 = alloca float, align 4
  %26 = alloca float, align 4
  %27 = alloca float, align 4
  %28 = alloca float, align 4
  %29 = alloca float, align 4
  %30 = alloca float, align 4
  %31 = alloca float, align 4
  %32 = alloca float, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  store ptr %0, ptr %6, align 8, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !5
  store ptr %2, ptr %8, align 8, !tbaa !5
  store float %3, ptr %9, align 4, !tbaa !9
  store float %4, ptr %10, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #9
  %42 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 80) #10
  %43 = load ptr, ptr %6, align 8, !tbaa !5
  %44 = invoke noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %43)
          to label %45 unwind label %84

45:                                               ; preds = %5
  %46 = load ptr, ptr %6, align 8, !tbaa !5
  %47 = invoke noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %46)
          to label %48 unwind label %84

48:                                               ; preds = %45
  invoke void @_ZN12ImageContentC2Ejjf(ptr noundef nonnull align 8 dereferenceable(80) %42, i32 noundef %44, i32 noundef %47, float noundef 0.000000e+00)
          to label %49 unwind label %84

49:                                               ; preds = %48
  store ptr %42, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #9
  %50 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 80) #10
  %51 = load ptr, ptr %6, align 8, !tbaa !5
  %52 = invoke noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %51)
          to label %53 unwind label %88

53:                                               ; preds = %49
  %54 = load ptr, ptr %6, align 8, !tbaa !5
  %55 = invoke noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %54)
          to label %56 unwind label %88

56:                                               ; preds = %53
  invoke void @_ZN12ImageContentC2Ejjf(ptr noundef nonnull align 8 dereferenceable(80) %50, i32 noundef %52, i32 noundef %55, float noundef 0.000000e+00)
          to label %57 unwind label %88

57:                                               ; preds = %56
  store ptr %50, ptr %14, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #9
  %58 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 80) #10
  %59 = load ptr, ptr %6, align 8, !tbaa !5
  %60 = invoke noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %59)
          to label %61 unwind label %92

61:                                               ; preds = %57
  %62 = load ptr, ptr %6, align 8, !tbaa !5
  %63 = invoke noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %62)
          to label %64 unwind label %92

64:                                               ; preds = %61
  invoke void @_ZN12ImageContentC2Ejjf(ptr noundef nonnull align 8 dereferenceable(80) %58, i32 noundef %60, i32 noundef %63, float noundef 0.000000e+00)
          to label %65 unwind label %92

65:                                               ; preds = %64
  store ptr %58, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #9
  %66 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 80) #10
  %67 = load ptr, ptr %6, align 8, !tbaa !5
  %68 = invoke noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %67)
          to label %69 unwind label %96

69:                                               ; preds = %65
  %70 = load ptr, ptr %6, align 8, !tbaa !5
  %71 = invoke noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %70)
          to label %72 unwind label %96

72:                                               ; preds = %69
  invoke void @_ZN12ImageContentC2Ejjf(ptr noundef nonnull align 8 dereferenceable(80) %66, i32 noundef %68, i32 noundef %71, float noundef 0.000000e+00)
          to label %73 unwind label %96

73:                                               ; preds = %72
  store ptr %66, ptr %16, align 8, !tbaa !5
  %74 = load ptr, ptr %6, align 8, !tbaa !5
  %75 = load ptr, ptr %11, align 8, !tbaa !5
  call void @_Z3dX2P12ImageContentS0_(ptr noundef %74, ptr noundef %75)
  %76 = load ptr, ptr %6, align 8, !tbaa !5
  %77 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_Z3dY2P12ImageContentS0_(ptr noundef %76, ptr noundef %77)
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #9
  store i32 0, ptr %17, align 4, !tbaa !11
  br label %78

78:                                               ; preds = %213, %73
  %79 = load i32, ptr %17, align 4, !tbaa !11
  %80 = load ptr, ptr %7, align 8, !tbaa !5
  %81 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %80)
  %82 = icmp ult i32 %79, %81
  br i1 %82, label %100, label %83

83:                                               ; preds = %78
  store i32 2, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #9
  br label %216

84:                                               ; preds = %48, %45, %5
  %85 = landingpad { ptr, i32 }
          cleanup
  %86 = extractvalue { ptr, i32 } %85, 0
  store ptr %86, ptr %12, align 8
  %87 = extractvalue { ptr, i32 } %85, 1
  store i32 %87, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %42, i64 noundef 80) #11
  br label %1015

88:                                               ; preds = %56, %53, %49
  %89 = landingpad { ptr, i32 }
          cleanup
  %90 = extractvalue { ptr, i32 } %89, 0
  store ptr %90, ptr %12, align 8
  %91 = extractvalue { ptr, i32 } %89, 1
  store i32 %91, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %50, i64 noundef 80) #11
  br label %1014

92:                                               ; preds = %64, %61, %57
  %93 = landingpad { ptr, i32 }
          cleanup
  %94 = extractvalue { ptr, i32 } %93, 0
  store ptr %94, ptr %12, align 8
  %95 = extractvalue { ptr, i32 } %93, 1
  store i32 %95, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %58, i64 noundef 80) #11
  br label %1013

96:                                               ; preds = %72, %69, %65
  %97 = landingpad { ptr, i32 }
          cleanup
  %98 = extractvalue { ptr, i32 } %97, 0
  store ptr %98, ptr %12, align 8
  %99 = extractvalue { ptr, i32 } %97, 1
  store i32 %99, ptr %13, align 4
  call void @_ZdlPvm(ptr noundef %66, i64 noundef 80) #11
  br label %1012

100:                                              ; preds = %78
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #9
  store i32 0, ptr %19, align 4, !tbaa !11
  br label %101

101:                                              ; preds = %209, %100
  %102 = load i32, ptr %19, align 4, !tbaa !11
  %103 = load ptr, ptr %7, align 8, !tbaa !5
  %104 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %103)
  %105 = icmp ult i32 %102, %104
  br i1 %105, label %107, label %106

106:                                              ; preds = %101
  store i32 5, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #9
  br label %212

107:                                              ; preds = %101
  %108 = load ptr, ptr %11, align 8, !tbaa !5
  %109 = getelementptr inbounds %class.ImageContent, ptr %108, i32 0, i32 4
  %110 = load ptr, ptr %109, align 8, !tbaa !13
  %111 = load i32, ptr %17, align 4, !tbaa !11
  %112 = sext i32 %111 to i64
  %113 = getelementptr inbounds ptr, ptr %110, i64 %112
  %114 = load ptr, ptr %113, align 8, !tbaa !5
  %115 = load i32, ptr %19, align 4, !tbaa !11
  %116 = sext i32 %115 to i64
  %117 = getelementptr inbounds float, ptr %114, i64 %116
  %118 = load float, ptr %117, align 4, !tbaa !9
  %119 = load ptr, ptr %11, align 8, !tbaa !5
  %120 = getelementptr inbounds %class.ImageContent, ptr %119, i32 0, i32 4
  %121 = load ptr, ptr %120, align 8, !tbaa !13
  %122 = load i32, ptr %17, align 4, !tbaa !11
  %123 = sext i32 %122 to i64
  %124 = getelementptr inbounds ptr, ptr %121, i64 %123
  %125 = load ptr, ptr %124, align 8, !tbaa !5
  %126 = load i32, ptr %19, align 4, !tbaa !11
  %127 = sext i32 %126 to i64
  %128 = getelementptr inbounds float, ptr %125, i64 %127
  %129 = load float, ptr %128, align 4, !tbaa !9
  %130 = load ptr, ptr %14, align 8, !tbaa !5
  %131 = getelementptr inbounds %class.ImageContent, ptr %130, i32 0, i32 4
  %132 = load ptr, ptr %131, align 8, !tbaa !13
  %133 = load i32, ptr %17, align 4, !tbaa !11
  %134 = sext i32 %133 to i64
  %135 = getelementptr inbounds ptr, ptr %132, i64 %134
  %136 = load ptr, ptr %135, align 8, !tbaa !5
  %137 = load i32, ptr %19, align 4, !tbaa !11
  %138 = sext i32 %137 to i64
  %139 = getelementptr inbounds float, ptr %136, i64 %138
  %140 = load float, ptr %139, align 4, !tbaa !9
  %141 = load ptr, ptr %14, align 8, !tbaa !5
  %142 = getelementptr inbounds %class.ImageContent, ptr %141, i32 0, i32 4
  %143 = load ptr, ptr %142, align 8, !tbaa !13
  %144 = load i32, ptr %17, align 4, !tbaa !11
  %145 = sext i32 %144 to i64
  %146 = getelementptr inbounds ptr, ptr %143, i64 %145
  %147 = load ptr, ptr %146, align 8, !tbaa !5
  %148 = load i32, ptr %19, align 4, !tbaa !11
  %149 = sext i32 %148 to i64
  %150 = getelementptr inbounds float, ptr %147, i64 %149
  %151 = load float, ptr %150, align 4, !tbaa !9
  %152 = fmul float %140, %151
  %153 = call float @llvm.fmuladd.f32(float %118, float %129, float %152)
  %154 = call noundef float @_ZSt4sqrtf(float noundef %153)
  %155 = load ptr, ptr %7, align 8, !tbaa !5
  %156 = getelementptr inbounds %class.ImageContent, ptr %155, i32 0, i32 4
  %157 = load ptr, ptr %156, align 8, !tbaa !13
  %158 = load i32, ptr %17, align 4, !tbaa !11
  %159 = sext i32 %158 to i64
  %160 = getelementptr inbounds ptr, ptr %157, i64 %159
  %161 = load ptr, ptr %160, align 8, !tbaa !5
  %162 = load i32, ptr %19, align 4, !tbaa !11
  %163 = sext i32 %162 to i64
  %164 = getelementptr inbounds float, ptr %161, i64 %163
  store float %154, ptr %164, align 4, !tbaa !9
  %165 = load ptr, ptr %7, align 8, !tbaa !5
  %166 = getelementptr inbounds %class.ImageContent, ptr %165, i32 0, i32 4
  %167 = load ptr, ptr %166, align 8, !tbaa !13
  %168 = load i32, ptr %17, align 4, !tbaa !11
  %169 = sext i32 %168 to i64
  %170 = getelementptr inbounds ptr, ptr %167, i64 %169
  %171 = load ptr, ptr %170, align 8, !tbaa !5
  %172 = load i32, ptr %19, align 4, !tbaa !11
  %173 = sext i32 %172 to i64
  %174 = getelementptr inbounds float, ptr %171, i64 %173
  %175 = load float, ptr %174, align 4, !tbaa !9
  %176 = fcmp olt float %175, 1.000000e+00
  br i1 %176, label %177, label %208

177:                                              ; preds = %107
  %178 = load ptr, ptr %7, align 8, !tbaa !5
  %179 = getelementptr inbounds %class.ImageContent, ptr %178, i32 0, i32 4
  %180 = load ptr, ptr %179, align 8, !tbaa !13
  %181 = load i32, ptr %17, align 4, !tbaa !11
  %182 = sext i32 %181 to i64
  %183 = getelementptr inbounds ptr, ptr %180, i64 %182
  %184 = load ptr, ptr %183, align 8, !tbaa !5
  %185 = load i32, ptr %19, align 4, !tbaa !11
  %186 = sext i32 %185 to i64
  %187 = getelementptr inbounds float, ptr %184, i64 %186
  store float 0.000000e+00, ptr %187, align 4, !tbaa !9
  %188 = load ptr, ptr %11, align 8, !tbaa !5
  %189 = getelementptr inbounds %class.ImageContent, ptr %188, i32 0, i32 4
  %190 = load ptr, ptr %189, align 8, !tbaa !13
  %191 = load i32, ptr %17, align 4, !tbaa !11
  %192 = sext i32 %191 to i64
  %193 = getelementptr inbounds ptr, ptr %190, i64 %192
  %194 = load ptr, ptr %193, align 8, !tbaa !5
  %195 = load i32, ptr %19, align 4, !tbaa !11
  %196 = sext i32 %195 to i64
  %197 = getelementptr inbounds float, ptr %194, i64 %196
  store float 0.000000e+00, ptr %197, align 4, !tbaa !9
  %198 = load ptr, ptr %14, align 8, !tbaa !5
  %199 = getelementptr inbounds %class.ImageContent, ptr %198, i32 0, i32 4
  %200 = load ptr, ptr %199, align 8, !tbaa !13
  %201 = load i32, ptr %17, align 4, !tbaa !11
  %202 = sext i32 %201 to i64
  %203 = getelementptr inbounds ptr, ptr %200, i64 %202
  %204 = load ptr, ptr %203, align 8, !tbaa !5
  %205 = load i32, ptr %19, align 4, !tbaa !11
  %206 = sext i32 %205 to i64
  %207 = getelementptr inbounds float, ptr %204, i64 %206
  store float 0.000000e+00, ptr %207, align 4, !tbaa !9
  br label %208

208:                                              ; preds = %177, %107
  br label %209

209:                                              ; preds = %208
  %210 = load i32, ptr %19, align 4, !tbaa !11
  %211 = add nsw i32 %210, 1
  store i32 %211, ptr %19, align 4, !tbaa !11
  br label %101, !llvm.loop !15

212:                                              ; preds = %106
  br label %213

213:                                              ; preds = %212
  %214 = load i32, ptr %17, align 4, !tbaa !11
  %215 = add nsw i32 %214, 1
  store i32 %215, ptr %17, align 4, !tbaa !11
  br label %78, !llvm.loop !17

216:                                              ; preds = %83
  call void @llvm.lifetime.start.p0(i64 24, ptr %20) #9
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #9
  store i32 0, ptr %21, align 4, !tbaa !11
  invoke void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %20, ptr noundef nonnull align 4 dereferenceable(4) %21)
          to label %217 unwind label %226

217:                                              ; preds = %216
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #9
  store float 1.850000e+02, ptr %22, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #9
  store float 1.000000e+00, ptr %32, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #9
  store i32 1, ptr %33, align 4, !tbaa !11
  br label %218

218:                                              ; preds = %647, %217
  %219 = load i32, ptr %33, align 4, !tbaa !11
  %220 = load ptr, ptr %7, align 8, !tbaa !5
  %221 = invoke noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %220)
          to label %222 unwind label %230

222:                                              ; preds = %218
  %223 = sub i32 %221, 2
  %224 = icmp ult i32 %219, %223
  br i1 %224, label %234, label %225

225:                                              ; preds = %222
  store i32 8, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  br label %651

226:                                              ; preds = %216
  %227 = landingpad { ptr, i32 }
          cleanup
  %228 = extractvalue { ptr, i32 } %227, 0
  store ptr %228, ptr %12, align 8
  %229 = extractvalue { ptr, i32 } %227, 1
  store i32 %229, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #9
  br label %1011

230:                                              ; preds = %218
  %231 = landingpad { ptr, i32 }
          cleanup
  %232 = extractvalue { ptr, i32 } %231, 0
  store ptr %232, ptr %12, align 8
  %233 = extractvalue { ptr, i32 } %231, 1
  store i32 %233, ptr %13, align 4
  br label %650

234:                                              ; preds = %222
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #9
  store i32 1, ptr %34, align 4, !tbaa !11
  br label %235

235:                                              ; preds = %642, %234
  %236 = load i32, ptr %34, align 4, !tbaa !11
  %237 = load ptr, ptr %7, align 8, !tbaa !5
  %238 = invoke noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %237)
          to label %239 unwind label %243

239:                                              ; preds = %235
  %240 = sub i32 %238, 2
  %241 = icmp ult i32 %236, %240
  br i1 %241, label %247, label %242

242:                                              ; preds = %239
  store i32 11, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  br label %646

243:                                              ; preds = %309, %247, %235
  %244 = landingpad { ptr, i32 }
          cleanup
  %245 = extractvalue { ptr, i32 } %244, 0
  store ptr %245, ptr %12, align 8
  %246 = extractvalue { ptr, i32 } %244, 1
  store i32 %246, ptr %13, align 4
  br label %645

247:                                              ; preds = %239
  %248 = load ptr, ptr %11, align 8, !tbaa !5
  %249 = getelementptr inbounds %class.ImageContent, ptr %248, i32 0, i32 4
  %250 = load ptr, ptr %249, align 8, !tbaa !13
  %251 = load i32, ptr %33, align 4, !tbaa !11
  %252 = sext i32 %251 to i64
  %253 = getelementptr inbounds ptr, ptr %250, i64 %252
  %254 = load ptr, ptr %253, align 8, !tbaa !5
  %255 = load i32, ptr %34, align 4, !tbaa !11
  %256 = sext i32 %255 to i64
  %257 = getelementptr inbounds float, ptr %254, i64 %256
  %258 = load float, ptr %257, align 4, !tbaa !9
  store float %258, ptr %27, align 4, !tbaa !9
  %259 = load ptr, ptr %14, align 8, !tbaa !5
  %260 = getelementptr inbounds %class.ImageContent, ptr %259, i32 0, i32 4
  %261 = load ptr, ptr %260, align 8, !tbaa !13
  %262 = load i32, ptr %33, align 4, !tbaa !11
  %263 = sext i32 %262 to i64
  %264 = getelementptr inbounds ptr, ptr %261, i64 %263
  %265 = load ptr, ptr %264, align 8, !tbaa !5
  %266 = load i32, ptr %34, align 4, !tbaa !11
  %267 = sext i32 %266 to i64
  %268 = getelementptr inbounds float, ptr %265, i64 %267
  %269 = load float, ptr %268, align 4, !tbaa !9
  store float %269, ptr %28, align 4, !tbaa !9
  %270 = load ptr, ptr %7, align 8, !tbaa !5
  %271 = getelementptr inbounds %class.ImageContent, ptr %270, i32 0, i32 4
  %272 = load ptr, ptr %271, align 8, !tbaa !13
  %273 = load i32, ptr %33, align 4, !tbaa !11
  %274 = sext i32 %273 to i64
  %275 = getelementptr inbounds ptr, ptr %272, i64 %274
  %276 = load ptr, ptr %275, align 8, !tbaa !5
  %277 = load i32, ptr %34, align 4, !tbaa !11
  %278 = sext i32 %277 to i64
  %279 = getelementptr inbounds float, ptr %276, i64 %278
  %280 = load float, ptr %279, align 4, !tbaa !9
  store float %280, ptr %29, align 4, !tbaa !9
  %281 = load i32, ptr %34, align 4, !tbaa !11
  %282 = sitofp i32 %281 to float
  %283 = load float, ptr %27, align 4, !tbaa !9
  %284 = load float, ptr %29, align 4, !tbaa !9
  %285 = fdiv float %283, %284
  %286 = fadd float %282, %285
  store float %286, ptr %23, align 4, !tbaa !9
  %287 = load i32, ptr %33, align 4, !tbaa !11
  %288 = sitofp i32 %287 to float
  %289 = load float, ptr %28, align 4, !tbaa !9
  %290 = load float, ptr %29, align 4, !tbaa !9
  %291 = fdiv float %289, %290
  %292 = fadd float %288, %291
  store float %292, ptr %24, align 4, !tbaa !9
  %293 = load i32, ptr %34, align 4, !tbaa !11
  %294 = sitofp i32 %293 to float
  %295 = load float, ptr %27, align 4, !tbaa !9
  %296 = load float, ptr %29, align 4, !tbaa !9
  %297 = fdiv float %295, %296
  %298 = fsub float %294, %297
  store float %298, ptr %25, align 4, !tbaa !9
  %299 = load i32, ptr %33, align 4, !tbaa !11
  %300 = sitofp i32 %299 to float
  %301 = load float, ptr %28, align 4, !tbaa !9
  %302 = load float, ptr %29, align 4, !tbaa !9
  %303 = fdiv float %301, %302
  %304 = fsub float %300, %303
  store float %304, ptr %26, align 4, !tbaa !9
  %305 = load ptr, ptr %7, align 8, !tbaa !5
  %306 = load float, ptr %23, align 4, !tbaa !9
  %307 = load float, ptr %24, align 4, !tbaa !9
  %308 = invoke noundef float @_Z6sbilinP12ImageContentff(ptr noundef %305, float noundef %306, float noundef %307)
          to label %309 unwind label %243

309:                                              ; preds = %247
  store float %308, ptr %30, align 4, !tbaa !9
  %310 = load ptr, ptr %7, align 8, !tbaa !5
  %311 = load float, ptr %25, align 4, !tbaa !9
  %312 = load float, ptr %26, align 4, !tbaa !9
  %313 = invoke noundef float @_Z6sbilinP12ImageContentff(ptr noundef %310, float noundef %311, float noundef %312)
          to label %314 unwind label %243

314:                                              ; preds = %309
  store float %313, ptr %31, align 4, !tbaa !9
  %315 = load float, ptr %29, align 4, !tbaa !9
  %316 = load float, ptr %30, align 4, !tbaa !9
  %317 = fcmp olt float %315, %316
  br i1 %317, label %326, label %318

318:                                              ; preds = %314
  %319 = load float, ptr %29, align 4, !tbaa !9
  %320 = load float, ptr %31, align 4, !tbaa !9
  %321 = fcmp ole float %319, %320
  br i1 %321, label %326, label %322

322:                                              ; preds = %318
  %323 = load float, ptr %29, align 4, !tbaa !9
  %324 = load float, ptr %9, align 4, !tbaa !9
  %325 = fcmp olt float %323, %324
  br i1 %325, label %326, label %327

326:                                              ; preds = %322, %318, %314
  br label %642

327:                                              ; preds = %322
  %328 = load float, ptr %29, align 4, !tbaa !9
  %329 = load float, ptr %10, align 4, !tbaa !9
  %330 = fcmp ogt float %328, %329
  br i1 %330, label %331, label %343

331:                                              ; preds = %327
  %332 = load float, ptr %22, align 4, !tbaa !9
  %333 = load ptr, ptr %16, align 8, !tbaa !5
  %334 = getelementptr inbounds %class.ImageContent, ptr %333, i32 0, i32 4
  %335 = load ptr, ptr %334, align 8, !tbaa !13
  %336 = load i32, ptr %33, align 4, !tbaa !11
  %337 = sext i32 %336 to i64
  %338 = getelementptr inbounds ptr, ptr %335, i64 %337
  %339 = load ptr, ptr %338, align 8, !tbaa !5
  %340 = load i32, ptr %34, align 4, !tbaa !11
  %341 = sext i32 %340 to i64
  %342 = getelementptr inbounds float, ptr %339, i64 %341
  store float %332, ptr %342, align 4, !tbaa !9
  br label %640

343:                                              ; preds = %327
  %344 = load float, ptr %29, align 4, !tbaa !9
  %345 = load float, ptr %9, align 4, !tbaa !9
  %346 = fcmp ogt float %344, %345
  br i1 %346, label %347, label %421

347:                                              ; preds = %343
  %348 = load ptr, ptr %16, align 8, !tbaa !5
  %349 = getelementptr inbounds %class.ImageContent, ptr %348, i32 0, i32 4
  %350 = load ptr, ptr %349, align 8, !tbaa !13
  %351 = load i32, ptr %33, align 4, !tbaa !11
  %352 = sub nsw i32 %351, 1
  %353 = sext i32 %352 to i64
  %354 = getelementptr inbounds ptr, ptr %350, i64 %353
  %355 = load ptr, ptr %354, align 8, !tbaa !5
  %356 = load i32, ptr %34, align 4, !tbaa !11
  %357 = sub nsw i32 %356, 1
  %358 = sext i32 %357 to i64
  %359 = getelementptr inbounds float, ptr %355, i64 %358
  %360 = load float, ptr %359, align 4, !tbaa !9
  %361 = load float, ptr %22, align 4, !tbaa !9
  %362 = fcmp oeq float %360, %361
  br i1 %362, label %409, label %363

363:                                              ; preds = %347
  %364 = load ptr, ptr %16, align 8, !tbaa !5
  %365 = getelementptr inbounds %class.ImageContent, ptr %364, i32 0, i32 4
  %366 = load ptr, ptr %365, align 8, !tbaa !13
  %367 = load i32, ptr %33, align 4, !tbaa !11
  %368 = sub nsw i32 %367, 1
  %369 = sext i32 %368 to i64
  %370 = getelementptr inbounds ptr, ptr %366, i64 %369
  %371 = load ptr, ptr %370, align 8, !tbaa !5
  %372 = load i32, ptr %34, align 4, !tbaa !11
  %373 = sext i32 %372 to i64
  %374 = getelementptr inbounds float, ptr %371, i64 %373
  %375 = load float, ptr %374, align 4, !tbaa !9
  %376 = load float, ptr %22, align 4, !tbaa !9
  %377 = fcmp oeq float %375, %376
  br i1 %377, label %409, label %378

378:                                              ; preds = %363
  %379 = load ptr, ptr %16, align 8, !tbaa !5
  %380 = getelementptr inbounds %class.ImageContent, ptr %379, i32 0, i32 4
  %381 = load ptr, ptr %380, align 8, !tbaa !13
  %382 = load i32, ptr %33, align 4, !tbaa !11
  %383 = sub nsw i32 %382, 1
  %384 = sext i32 %383 to i64
  %385 = getelementptr inbounds ptr, ptr %381, i64 %384
  %386 = load ptr, ptr %385, align 8, !tbaa !5
  %387 = load i32, ptr %34, align 4, !tbaa !11
  %388 = add nsw i32 %387, 1
  %389 = sext i32 %388 to i64
  %390 = getelementptr inbounds float, ptr %386, i64 %389
  %391 = load float, ptr %390, align 4, !tbaa !9
  %392 = load float, ptr %22, align 4, !tbaa !9
  %393 = fcmp oeq float %391, %392
  br i1 %393, label %409, label %394

394:                                              ; preds = %378
  %395 = load ptr, ptr %16, align 8, !tbaa !5
  %396 = getelementptr inbounds %class.ImageContent, ptr %395, i32 0, i32 4
  %397 = load ptr, ptr %396, align 8, !tbaa !13
  %398 = load i32, ptr %33, align 4, !tbaa !11
  %399 = sext i32 %398 to i64
  %400 = getelementptr inbounds ptr, ptr %397, i64 %399
  %401 = load ptr, ptr %400, align 8, !tbaa !5
  %402 = load i32, ptr %34, align 4, !tbaa !11
  %403 = sub nsw i32 %402, 1
  %404 = sext i32 %403 to i64
  %405 = getelementptr inbounds float, ptr %401, i64 %404
  %406 = load float, ptr %405, align 4, !tbaa !9
  %407 = load float, ptr %22, align 4, !tbaa !9
  %408 = fcmp oeq float %406, %407
  br i1 %408, label %409, label %421

409:                                              ; preds = %394, %378, %363, %347
  %410 = load float, ptr %22, align 4, !tbaa !9
  %411 = load ptr, ptr %16, align 8, !tbaa !5
  %412 = getelementptr inbounds %class.ImageContent, ptr %411, i32 0, i32 4
  %413 = load ptr, ptr %412, align 8, !tbaa !13
  %414 = load i32, ptr %33, align 4, !tbaa !11
  %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 %34, align 4, !tbaa !11
  %419 = sext i32 %418 to i64
  %420 = getelementptr inbounds float, ptr %417, i64 %419
  store float %410, ptr %420, align 4, !tbaa !9
  br label %639

421:                                              ; preds = %394, %343
  %422 = load float, ptr %29, align 4, !tbaa !9
  %423 = load float, ptr %9, align 4, !tbaa !9
  %424 = fcmp ogt float %422, %423
  br i1 %424, label %425, label %638

425:                                              ; preds = %421
  %426 = load ptr, ptr %15, align 8, !tbaa !5
  %427 = getelementptr inbounds %class.ImageContent, ptr %426, i32 0, i32 4
  %428 = load ptr, ptr %427, align 8, !tbaa !13
  %429 = load i32, ptr %33, align 4, !tbaa !11
  %430 = sub nsw i32 %429, 1
  %431 = sext i32 %430 to i64
  %432 = getelementptr inbounds ptr, ptr %428, i64 %431
  %433 = load ptr, ptr %432, align 8, !tbaa !5
  %434 = load i32, ptr %34, align 4, !tbaa !11
  %435 = sub nsw i32 %434, 1
  %436 = sext i32 %435 to i64
  %437 = getelementptr inbounds float, ptr %433, i64 %436
  %438 = load float, ptr %437, align 4, !tbaa !9
  %439 = fcmp ogt float %438, 0.000000e+00
  br i1 %439, label %440, label %464

440:                                              ; preds = %425
  %441 = load ptr, ptr %15, align 8, !tbaa !5
  %442 = getelementptr inbounds %class.ImageContent, ptr %441, i32 0, i32 4
  %443 = load ptr, ptr %442, align 8, !tbaa !13
  %444 = load i32, ptr %33, align 4, !tbaa !11
  %445 = sub nsw i32 %444, 1
  %446 = sext i32 %445 to i64
  %447 = getelementptr inbounds ptr, ptr %443, i64 %446
  %448 = load ptr, ptr %447, align 8, !tbaa !5
  %449 = load i32, ptr %34, align 4, !tbaa !11
  %450 = sub nsw i32 %449, 1
  %451 = sext i32 %450 to i64
  %452 = getelementptr inbounds float, ptr %448, i64 %451
  %453 = load float, ptr %452, align 4, !tbaa !9
  %454 = load ptr, ptr %15, align 8, !tbaa !5
  %455 = getelementptr inbounds %class.ImageContent, ptr %454, i32 0, i32 4
  %456 = load ptr, ptr %455, align 8, !tbaa !13
  %457 = load i32, ptr %33, align 4, !tbaa !11
  %458 = sext i32 %457 to i64
  %459 = getelementptr inbounds ptr, ptr %456, i64 %458
  %460 = load ptr, ptr %459, align 8, !tbaa !5
  %461 = load i32, ptr %34, align 4, !tbaa !11
  %462 = sext i32 %461 to i64
  %463 = getelementptr inbounds float, ptr %460, i64 %462
  store float %453, ptr %463, align 4, !tbaa !9
  br label %637

464:                                              ; preds = %425
  %465 = load ptr, ptr %15, align 8, !tbaa !5
  %466 = getelementptr inbounds %class.ImageContent, ptr %465, i32 0, i32 4
  %467 = load ptr, ptr %466, align 8, !tbaa !13
  %468 = load i32, ptr %33, align 4, !tbaa !11
  %469 = sub nsw i32 %468, 1
  %470 = sext i32 %469 to i64
  %471 = getelementptr inbounds ptr, ptr %467, i64 %470
  %472 = load ptr, ptr %471, align 8, !tbaa !5
  %473 = load i32, ptr %34, align 4, !tbaa !11
  %474 = sext i32 %473 to i64
  %475 = getelementptr inbounds float, ptr %472, i64 %474
  %476 = load float, ptr %475, align 4, !tbaa !9
  %477 = fcmp ogt float %476, 0.000000e+00
  br i1 %477, label %478, label %501

478:                                              ; preds = %464
  %479 = load ptr, ptr %15, align 8, !tbaa !5
  %480 = getelementptr inbounds %class.ImageContent, ptr %479, i32 0, i32 4
  %481 = load ptr, ptr %480, align 8, !tbaa !13
  %482 = load i32, ptr %33, align 4, !tbaa !11
  %483 = sub nsw i32 %482, 1
  %484 = sext i32 %483 to i64
  %485 = getelementptr inbounds ptr, ptr %481, i64 %484
  %486 = load ptr, ptr %485, align 8, !tbaa !5
  %487 = load i32, ptr %34, align 4, !tbaa !11
  %488 = sext i32 %487 to i64
  %489 = getelementptr inbounds float, ptr %486, i64 %488
  %490 = load float, ptr %489, align 4, !tbaa !9
  %491 = load ptr, ptr %15, align 8, !tbaa !5
  %492 = getelementptr inbounds %class.ImageContent, ptr %491, i32 0, i32 4
  %493 = load ptr, ptr %492, align 8, !tbaa !13
  %494 = load i32, ptr %33, align 4, !tbaa !11
  %495 = sext i32 %494 to i64
  %496 = getelementptr inbounds ptr, ptr %493, i64 %495
  %497 = load ptr, ptr %496, align 8, !tbaa !5
  %498 = load i32, ptr %34, align 4, !tbaa !11
  %499 = sext i32 %498 to i64
  %500 = getelementptr inbounds float, ptr %497, i64 %499
  store float %490, ptr %500, align 4, !tbaa !9
  br label %636

501:                                              ; preds = %464
  %502 = load ptr, ptr %15, align 8, !tbaa !5
  %503 = getelementptr inbounds %class.ImageContent, ptr %502, i32 0, i32 4
  %504 = load ptr, ptr %503, align 8, !tbaa !13
  %505 = load i32, ptr %33, align 4, !tbaa !11
  %506 = sub nsw i32 %505, 1
  %507 = sext i32 %506 to i64
  %508 = getelementptr inbounds ptr, ptr %504, i64 %507
  %509 = load ptr, ptr %508, align 8, !tbaa !5
  %510 = load i32, ptr %34, align 4, !tbaa !11
  %511 = add nsw i32 %510, 1
  %512 = sext i32 %511 to i64
  %513 = getelementptr inbounds float, ptr %509, i64 %512
  %514 = load float, ptr %513, align 4, !tbaa !9
  %515 = fcmp ogt float %514, 0.000000e+00
  br i1 %515, label %516, label %540

516:                                              ; preds = %501
  %517 = load ptr, ptr %15, align 8, !tbaa !5
  %518 = getelementptr inbounds %class.ImageContent, ptr %517, i32 0, i32 4
  %519 = load ptr, ptr %518, align 8, !tbaa !13
  %520 = load i32, ptr %33, align 4, !tbaa !11
  %521 = sub nsw i32 %520, 1
  %522 = sext i32 %521 to i64
  %523 = getelementptr inbounds ptr, ptr %519, i64 %522
  %524 = load ptr, ptr %523, align 8, !tbaa !5
  %525 = load i32, ptr %34, align 4, !tbaa !11
  %526 = add nsw i32 %525, 1
  %527 = sext i32 %526 to i64
  %528 = getelementptr inbounds float, ptr %524, i64 %527
  %529 = load float, ptr %528, align 4, !tbaa !9
  %530 = load ptr, ptr %15, align 8, !tbaa !5
  %531 = getelementptr inbounds %class.ImageContent, ptr %530, i32 0, i32 4
  %532 = load ptr, ptr %531, align 8, !tbaa !13
  %533 = load i32, ptr %33, align 4, !tbaa !11
  %534 = sext i32 %533 to i64
  %535 = getelementptr inbounds ptr, ptr %532, i64 %534
  %536 = load ptr, ptr %535, align 8, !tbaa !5
  %537 = load i32, ptr %34, align 4, !tbaa !11
  %538 = sext i32 %537 to i64
  %539 = getelementptr inbounds float, ptr %536, i64 %538
  store float %529, ptr %539, align 4, !tbaa !9
  br label %635

540:                                              ; preds = %501
  %541 = load ptr, ptr %15, align 8, !tbaa !5
  %542 = getelementptr inbounds %class.ImageContent, ptr %541, i32 0, i32 4
  %543 = load ptr, ptr %542, align 8, !tbaa !13
  %544 = load i32, ptr %33, align 4, !tbaa !11
  %545 = sext i32 %544 to i64
  %546 = getelementptr inbounds ptr, ptr %543, i64 %545
  %547 = load ptr, ptr %546, align 8, !tbaa !5
  %548 = load i32, ptr %34, align 4, !tbaa !11
  %549 = sub nsw i32 %548, 1
  %550 = sext i32 %549 to i64
  %551 = getelementptr inbounds float, ptr %547, i64 %550
  %552 = load float, ptr %551, align 4, !tbaa !9
  %553 = fcmp ogt float %552, 0.000000e+00
  br i1 %553, label %554, label %577

554:                                              ; preds = %540
  %555 = load ptr, ptr %15, align 8, !tbaa !5
  %556 = getelementptr inbounds %class.ImageContent, ptr %555, i32 0, i32 4
  %557 = load ptr, ptr %556, align 8, !tbaa !13
  %558 = load i32, ptr %33, align 4, !tbaa !11
  %559 = sext i32 %558 to i64
  %560 = getelementptr inbounds ptr, ptr %557, i64 %559
  %561 = load ptr, ptr %560, align 8, !tbaa !5
  %562 = load i32, ptr %34, align 4, !tbaa !11
  %563 = sub nsw i32 %562, 1
  %564 = sext i32 %563 to i64
  %565 = getelementptr inbounds float, ptr %561, i64 %564
  %566 = load float, ptr %565, align 4, !tbaa !9
  %567 = load ptr, ptr %15, align 8, !tbaa !5
  %568 = getelementptr inbounds %class.ImageContent, ptr %567, i32 0, i32 4
  %569 = load ptr, ptr %568, align 8, !tbaa !13
  %570 = load i32, ptr %33, align 4, !tbaa !11
  %571 = sext i32 %570 to i64
  %572 = getelementptr inbounds ptr, ptr %569, i64 %571
  %573 = load ptr, ptr %572, align 8, !tbaa !5
  %574 = load i32, ptr %34, align 4, !tbaa !11
  %575 = sext i32 %574 to i64
  %576 = getelementptr inbounds float, ptr %573, i64 %575
  store float %566, ptr %576, align 4, !tbaa !9
  br label %634

577:                                              ; preds = %540
  %578 = load ptr, ptr %15, align 8, !tbaa !5
  %579 = getelementptr inbounds %class.ImageContent, ptr %578, i32 0, i32 4
  %580 = load ptr, ptr %579, align 8, !tbaa !13
  %581 = load i32, ptr %33, align 4, !tbaa !11
  %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 %34, align 4, !tbaa !11
  %586 = add nsw i32 %585, 1
  %587 = sext i32 %586 to i64
  %588 = getelementptr inbounds float, ptr %584, i64 %587
  %589 = load float, ptr %588, align 4, !tbaa !9
  %590 = fcmp ogt float %589, 0.000000e+00
  br i1 %590, label %591, label %614

591:                                              ; preds = %577
  %592 = load ptr, ptr %15, align 8, !tbaa !5
  %593 = getelementptr inbounds %class.ImageContent, ptr %592, i32 0, i32 4
  %594 = load ptr, ptr %593, align 8, !tbaa !13
  %595 = load i32, ptr %33, align 4, !tbaa !11
  %596 = sext i32 %595 to i64
  %597 = getelementptr inbounds ptr, ptr %594, i64 %596
  %598 = load ptr, ptr %597, align 8, !tbaa !5
  %599 = load i32, ptr %34, align 4, !tbaa !11
  %600 = add nsw i32 %599, 1
  %601 = sext i32 %600 to i64
  %602 = getelementptr inbounds float, ptr %598, i64 %601
  %603 = load float, ptr %602, align 4, !tbaa !9
  %604 = load ptr, ptr %15, align 8, !tbaa !5
  %605 = getelementptr inbounds %class.ImageContent, ptr %604, i32 0, i32 4
  %606 = load ptr, ptr %605, align 8, !tbaa !13
  %607 = load i32, ptr %33, align 4, !tbaa !11
  %608 = sext i32 %607 to i64
  %609 = getelementptr inbounds ptr, ptr %606, i64 %608
  %610 = load ptr, ptr %609, align 8, !tbaa !5
  %611 = load i32, ptr %34, align 4, !tbaa !11
  %612 = sext i32 %611 to i64
  %613 = getelementptr inbounds float, ptr %610, i64 %612
  store float %603, ptr %613, align 4, !tbaa !9
  br label %633

614:                                              ; preds = %577
  %615 = load float, ptr %32, align 4, !tbaa !9
  %616 = load ptr, ptr %15, align 8, !tbaa !5
  %617 = getelementptr inbounds %class.ImageContent, ptr %616, i32 0, i32 4
  %618 = load ptr, ptr %617, align 8, !tbaa !13
  %619 = load i32, ptr %33, align 4, !tbaa !11
  %620 = sext i32 %619 to i64
  %621 = getelementptr inbounds ptr, ptr %618, i64 %620
  %622 = load ptr, ptr %621, align 8, !tbaa !5
  %623 = load i32, ptr %34, align 4, !tbaa !11
  %624 = sext i32 %623 to i64
  %625 = getelementptr inbounds float, ptr %622, i64 %624
  store float %615, ptr %625, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #9
  store i32 0, ptr %35, align 4, !tbaa !11
  invoke void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %20, ptr noundef nonnull align 4 dereferenceable(4) %35)
          to label %626 unwind label %629

626:                                              ; preds = %614
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  %627 = load float, ptr %32, align 4, !tbaa !9
  %628 = fadd float %627, 1.000000e+00
  store float %628, ptr %32, align 4, !tbaa !9
  br label %633

629:                                              ; preds = %614
  %630 = landingpad { ptr, i32 }
          cleanup
  %631 = extractvalue { ptr, i32 } %630, 0
  store ptr %631, ptr %12, align 8
  %632 = extractvalue { ptr, i32 } %630, 1
  store i32 %632, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  br label %645

633:                                              ; preds = %626, %591
  br label %634

634:                                              ; preds = %633, %554
  br label %635

635:                                              ; preds = %634, %516
  br label %636

636:                                              ; preds = %635, %478
  br label %637

637:                                              ; preds = %636, %440
  br label %638

638:                                              ; preds = %637, %421
  br label %639

639:                                              ; preds = %638, %409
  br label %640

640:                                              ; preds = %639, %331
  br label %641

641:                                              ; preds = %640
  br label %642

642:                                              ; preds = %641, %326
  %643 = load i32, ptr %34, align 4, !tbaa !11
  %644 = add nsw i32 %643, 1
  store i32 %644, ptr %34, align 4, !tbaa !11
  br label %235, !llvm.loop !18

645:                                              ; preds = %629, %243
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  br label %650

646:                                              ; preds = %242
  br label %647

647:                                              ; preds = %646
  %648 = load i32, ptr %33, align 4, !tbaa !11
  %649 = add nsw i32 %648, 1
  store i32 %649, ptr %33, align 4, !tbaa !11
  br label %218, !llvm.loop !19

650:                                              ; preds = %645, %230
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  br label %1010

651:                                              ; preds = %225
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #9
  %652 = load ptr, ptr %16, align 8, !tbaa !5
  %653 = invoke noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %652)
          to label %654 unwind label %660

654:                                              ; preds = %651
  %655 = sub i32 %653, 2
  store i32 %655, ptr %36, align 4, !tbaa !11
  br label %656

656:                                              ; preds = %821, %654
  %657 = load i32, ptr %36, align 4, !tbaa !11
  %658 = icmp sgt i32 %657, 0
  br i1 %658, label %664, label %659

659:                                              ; preds = %656
  store i32 14, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  br label %825

660:                                              ; preds = %651
  %661 = landingpad { ptr, i32 }
          cleanup
  %662 = extractvalue { ptr, i32 } %661, 0
  store ptr %662, ptr %12, align 8
  %663 = extractvalue { ptr, i32 } %661, 1
  store i32 %663, ptr %13, align 4
  br label %824

664:                                              ; preds = %656
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #9
  %665 = load ptr, ptr %16, align 8, !tbaa !5
  %666 = invoke noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %665)
          to label %667 unwind label %673

667:                                              ; preds = %664
  %668 = sub i32 %666, 2
  store i32 %668, ptr %37, align 4, !tbaa !11
  br label %669

669:                                              ; preds = %817, %667
  %670 = load i32, ptr %37, align 4, !tbaa !11
  %671 = icmp sgt i32 %670, 0
  br i1 %671, label %677, label %672

672:                                              ; preds = %669
  store i32 17, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  br label %820

673:                                              ; preds = %664
  %674 = landingpad { ptr, i32 }
          cleanup
  %675 = extractvalue { ptr, i32 } %674, 0
  store ptr %675, ptr %12, align 8
  %676 = extractvalue { ptr, i32 } %674, 1
  store i32 %676, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  br label %824

677:                                              ; preds = %669
  %678 = load ptr, ptr %16, align 8, !tbaa !5
  %679 = getelementptr inbounds %class.ImageContent, ptr %678, i32 0, i32 4
  %680 = load ptr, ptr %679, align 8, !tbaa !13
  %681 = load i32, ptr %36, align 4, !tbaa !11
  %682 = sub nsw i32 %681, 1
  %683 = sext i32 %682 to i64
  %684 = getelementptr inbounds ptr, ptr %680, i64 %683
  %685 = load ptr, ptr %684, align 8, !tbaa !5
  %686 = load i32, ptr %37, align 4, !tbaa !11
  %687 = sub nsw i32 %686, 1
  %688 = sext i32 %687 to i64
  %689 = getelementptr inbounds float, ptr %685, i64 %688
  %690 = load float, ptr %689, align 4, !tbaa !9
  %691 = load float, ptr %22, align 4, !tbaa !9
  %692 = fcmp oeq float %690, %691
  br i1 %692, label %801, label %693

693:                                              ; preds = %677
  %694 = load ptr, ptr %16, align 8, !tbaa !5
  %695 = getelementptr inbounds %class.ImageContent, ptr %694, i32 0, i32 4
  %696 = load ptr, ptr %695, align 8, !tbaa !13
  %697 = load i32, ptr %36, align 4, !tbaa !11
  %698 = sub nsw i32 %697, 1
  %699 = sext i32 %698 to i64
  %700 = getelementptr inbounds ptr, ptr %696, i64 %699
  %701 = load ptr, ptr %700, align 8, !tbaa !5
  %702 = load i32, ptr %37, align 4, !tbaa !11
  %703 = sext i32 %702 to i64
  %704 = getelementptr inbounds float, ptr %701, i64 %703
  %705 = load float, ptr %704, align 4, !tbaa !9
  %706 = load float, ptr %22, align 4, !tbaa !9
  %707 = fcmp oeq float %705, %706
  br i1 %707, label %801, label %708

708:                                              ; preds = %693
  %709 = load ptr, ptr %16, align 8, !tbaa !5
  %710 = getelementptr inbounds %class.ImageContent, ptr %709, i32 0, i32 4
  %711 = load ptr, ptr %710, align 8, !tbaa !13
  %712 = load i32, ptr %36, align 4, !tbaa !11
  %713 = sub nsw i32 %712, 1
  %714 = sext i32 %713 to i64
  %715 = getelementptr inbounds ptr, ptr %711, i64 %714
  %716 = load ptr, ptr %715, align 8, !tbaa !5
  %717 = load i32, ptr %37, align 4, !tbaa !11
  %718 = add nsw i32 %717, 1
  %719 = sext i32 %718 to i64
  %720 = getelementptr inbounds float, ptr %716, i64 %719
  %721 = load float, ptr %720, align 4, !tbaa !9
  %722 = load float, ptr %22, align 4, !tbaa !9
  %723 = fcmp oeq float %721, %722
  br i1 %723, label %801, label %724

724:                                              ; preds = %708
  %725 = load ptr, ptr %16, align 8, !tbaa !5
  %726 = getelementptr inbounds %class.ImageContent, ptr %725, i32 0, i32 4
  %727 = load ptr, ptr %726, align 8, !tbaa !13
  %728 = load i32, ptr %36, align 4, !tbaa !11
  %729 = sext i32 %728 to i64
  %730 = getelementptr inbounds ptr, ptr %727, i64 %729
  %731 = load ptr, ptr %730, align 8, !tbaa !5
  %732 = load i32, ptr %37, align 4, !tbaa !11
  %733 = sub nsw i32 %732, 1
  %734 = sext i32 %733 to i64
  %735 = getelementptr inbounds float, ptr %731, i64 %734
  %736 = load float, ptr %735, align 4, !tbaa !9
  %737 = load float, ptr %22, align 4, !tbaa !9
  %738 = fcmp oeq float %736, %737
  br i1 %738, label %801, label %739

739:                                              ; preds = %724
  %740 = load ptr, ptr %16, align 8, !tbaa !5
  %741 = getelementptr inbounds %class.ImageContent, ptr %740, i32 0, i32 4
  %742 = load ptr, ptr %741, align 8, !tbaa !13
  %743 = load i32, ptr %36, align 4, !tbaa !11
  %744 = sext i32 %743 to i64
  %745 = getelementptr inbounds ptr, ptr %742, i64 %744
  %746 = load ptr, ptr %745, align 8, !tbaa !5
  %747 = load i32, ptr %37, align 4, !tbaa !11
  %748 = add nsw i32 %747, 1
  %749 = sext i32 %748 to i64
  %750 = getelementptr inbounds float, ptr %746, i64 %749
  %751 = load float, ptr %750, align 4, !tbaa !9
  %752 = load float, ptr %22, align 4, !tbaa !9
  %753 = fcmp oeq float %751, %752
  br i1 %753, label %801, label %754

754:                                              ; preds = %739
  %755 = load ptr, ptr %16, align 8, !tbaa !5
  %756 = getelementptr inbounds %class.ImageContent, ptr %755, i32 0, i32 4
  %757 = load ptr, ptr %756, align 8, !tbaa !13
  %758 = load i32, ptr %36, align 4, !tbaa !11
  %759 = add nsw i32 %758, 1
  %760 = sext i32 %759 to i64
  %761 = getelementptr inbounds ptr, ptr %757, i64 %760
  %762 = load ptr, ptr %761, align 8, !tbaa !5
  %763 = load i32, ptr %37, align 4, !tbaa !11
  %764 = sub nsw i32 %763, 1
  %765 = sext i32 %764 to i64
  %766 = getelementptr inbounds float, ptr %762, i64 %765
  %767 = load float, ptr %766, align 4, !tbaa !9
  %768 = load float, ptr %22, align 4, !tbaa !9
  %769 = fcmp oeq float %767, %768
  br i1 %769, label %801, label %770

770:                                              ; preds = %754
  %771 = load ptr, ptr %16, align 8, !tbaa !5
  %772 = getelementptr inbounds %class.ImageContent, ptr %771, i32 0, i32 4
  %773 = load ptr, ptr %772, align 8, !tbaa !13
  %774 = load i32, ptr %36, align 4, !tbaa !11
  %775 = add nsw i32 %774, 1
  %776 = sext i32 %775 to i64
  %777 = getelementptr inbounds ptr, ptr %773, i64 %776
  %778 = load ptr, ptr %777, align 8, !tbaa !5
  %779 = load i32, ptr %37, align 4, !tbaa !11
  %780 = sext i32 %779 to i64
  %781 = getelementptr inbounds float, ptr %778, i64 %780
  %782 = load float, ptr %781, align 4, !tbaa !9
  %783 = load float, ptr %22, align 4, !tbaa !9
  %784 = fcmp oeq float %782, %783
  br i1 %784, label %801, label %785

785:                                              ; preds = %770
  %786 = load ptr, ptr %16, align 8, !tbaa !5
  %787 = getelementptr inbounds %class.ImageContent, ptr %786, i32 0, i32 4
  %788 = load ptr, ptr %787, align 8, !tbaa !13
  %789 = load i32, ptr %36, align 4, !tbaa !11
  %790 = add nsw i32 %789, 1
  %791 = sext i32 %790 to i64
  %792 = getelementptr inbounds ptr, ptr %788, i64 %791
  %793 = load ptr, ptr %792, align 8, !tbaa !5
  %794 = load i32, ptr %37, align 4, !tbaa !11
  %795 = add nsw i32 %794, 1
  %796 = sext i32 %795 to i64
  %797 = getelementptr inbounds float, ptr %793, i64 %796
  %798 = load float, ptr %797, align 4, !tbaa !9
  %799 = load float, ptr %22, align 4, !tbaa !9
  %800 = fcmp oeq float %798, %799
  br i1 %800, label %801, label %816

801:                                              ; preds = %785, %770, %754, %739, %724, %708, %693, %677
  %802 = load ptr, ptr %15, align 8, !tbaa !5
  %803 = getelementptr inbounds %class.ImageContent, ptr %802, i32 0, i32 4
  %804 = load ptr, ptr %803, align 8, !tbaa !13
  %805 = load i32, ptr %36, align 4, !tbaa !11
  %806 = sext i32 %805 to i64
  %807 = getelementptr inbounds ptr, ptr %804, i64 %806
  %808 = load ptr, ptr %807, align 8, !tbaa !5
  %809 = load i32, ptr %37, align 4, !tbaa !11
  %810 = sext i32 %809 to i64
  %811 = getelementptr inbounds float, ptr %808, i64 %810
  %812 = load float, ptr %811, align 4, !tbaa !9
  %813 = fptosi float %812 to i32
  %814 = sext i32 %813 to i64
  %815 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef %814) #9
  store i32 1, ptr %815, align 4, !tbaa !11
  br label %816

816:                                              ; preds = %801, %785
  br label %817

817:                                              ; preds = %816
  %818 = load i32, ptr %37, align 4, !tbaa !11
  %819 = add nsw i32 %818, -1
  store i32 %819, ptr %37, align 4, !tbaa !11
  br label %669, !llvm.loop !20

820:                                              ; preds = %672
  br label %821

821:                                              ; preds = %820
  %822 = load i32, ptr %36, align 4, !tbaa !11
  %823 = add nsw i32 %822, -1
  store i32 %823, ptr %36, align 4, !tbaa !11
  br label %656, !llvm.loop !21

824:                                              ; preds = %673, %660
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  br label %1010

825:                                              ; preds = %659
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #9
  %826 = load ptr, ptr %16, align 8, !tbaa !5
  %827 = invoke noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %826)
          to label %828 unwind label %834

828:                                              ; preds = %825
  %829 = sub i32 %827, 2
  store i32 %829, ptr %38, align 4, !tbaa !11
  br label %830

830:                                              ; preds = %898, %828
  %831 = load i32, ptr %38, align 4, !tbaa !11
  %832 = icmp sgt i32 %831, 0
  br i1 %832, label %838, label %833

833:                                              ; preds = %830
  store i32 20, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  br label %902

834:                                              ; preds = %825
  %835 = landingpad { ptr, i32 }
          cleanup
  %836 = extractvalue { ptr, i32 } %835, 0
  store ptr %836, ptr %12, align 8
  %837 = extractvalue { ptr, i32 } %835, 1
  store i32 %837, ptr %13, align 4
  br label %901

838:                                              ; preds = %830
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #9
  %839 = load ptr, ptr %16, align 8, !tbaa !5
  %840 = invoke noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %839)
          to label %841 unwind label %847

841:                                              ; preds = %838
  %842 = sub i32 %840, 2
  store i32 %842, ptr %39, align 4, !tbaa !11
  br label %843

843:                                              ; preds = %894, %841
  %844 = load i32, ptr %39, align 4, !tbaa !11
  %845 = icmp sgt i32 %844, 0
  br i1 %845, label %851, label %846

846:                                              ; preds = %843
  store i32 23, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  br label %897

847:                                              ; preds = %838
  %848 = landingpad { ptr, i32 }
          cleanup
  %849 = extractvalue { ptr, i32 } %848, 0
  store ptr %849, ptr %12, align 8
  %850 = extractvalue { ptr, i32 } %848, 1
  store i32 %850, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  br label %901

851:                                              ; preds = %843
  %852 = load ptr, ptr %15, align 8, !tbaa !5
  %853 = getelementptr inbounds %class.ImageContent, ptr %852, i32 0, i32 4
  %854 = load ptr, ptr %853, align 8, !tbaa !13
  %855 = load i32, ptr %38, align 4, !tbaa !11
  %856 = sext i32 %855 to i64
  %857 = getelementptr inbounds ptr, ptr %854, i64 %856
  %858 = load ptr, ptr %857, align 8, !tbaa !5
  %859 = load i32, ptr %39, align 4, !tbaa !11
  %860 = sext i32 %859 to i64
  %861 = getelementptr inbounds float, ptr %858, i64 %860
  %862 = load float, ptr %861, align 4, !tbaa !9
  %863 = fcmp ogt float %862, 0.000000e+00
  br i1 %863, label %864, label %893

864:                                              ; preds = %851
  %865 = load ptr, ptr %15, align 8, !tbaa !5
  %866 = getelementptr inbounds %class.ImageContent, ptr %865, i32 0, i32 4
  %867 = load ptr, ptr %866, align 8, !tbaa !13
  %868 = load i32, ptr %38, align 4, !tbaa !11
  %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 %39, align 4, !tbaa !11
  %873 = sext i32 %872 to i64
  %874 = getelementptr inbounds float, ptr %871, i64 %873
  %875 = load float, ptr %874, align 4, !tbaa !9
  %876 = fptosi float %875 to i32
  %877 = sext i32 %876 to i64
  %878 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef %877) #9
  %879 = load i32, ptr %878, align 4, !tbaa !11
  %880 = icmp eq i32 %879, 1
  br i1 %880, label %881, label %893

881:                                              ; preds = %864
  %882 = load float, ptr %22, align 4, !tbaa !9
  %883 = load ptr, ptr %16, align 8, !tbaa !5
  %884 = getelementptr inbounds %class.ImageContent, ptr %883, i32 0, i32 4
  %885 = load ptr, ptr %884, align 8, !tbaa !13
  %886 = load i32, ptr %38, align 4, !tbaa !11
  %887 = sext i32 %886 to i64
  %888 = getelementptr inbounds ptr, ptr %885, i64 %887
  %889 = load ptr, ptr %888, align 8, !tbaa !5
  %890 = load i32, ptr %39, align 4, !tbaa !11
  %891 = sext i32 %890 to i64
  %892 = getelementptr inbounds float, ptr %889, i64 %891
  store float %882, ptr %892, align 4, !tbaa !9
  br label %893

893:                                              ; preds = %881, %864, %851
  br label %894

894:                                              ; preds = %893
  %895 = load i32, ptr %39, align 4, !tbaa !11
  %896 = add nsw i32 %895, -1
  store i32 %896, ptr %39, align 4, !tbaa !11
  br label %843, !llvm.loop !22

897:                                              ; preds = %846
  br label %898

898:                                              ; preds = %897
  %899 = load i32, ptr %38, align 4, !tbaa !11
  %900 = add nsw i32 %899, -1
  store i32 %900, ptr %38, align 4, !tbaa !11
  br label %830, !llvm.loop !23

901:                                              ; preds = %847, %834
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  br label %1010

902:                                              ; preds = %833
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #9
  store i32 0, ptr %40, align 4, !tbaa !11
  br label %903

903:                                              ; preds = %989, %902
  %904 = load i32, ptr %40, align 4, !tbaa !11
  %905 = load ptr, ptr %7, align 8, !tbaa !5
  %906 = invoke noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %905)
          to label %907 unwind label %910

907:                                              ; preds = %903
  %908 = icmp ult i32 %904, %906
  br i1 %908, label %914, label %909

909:                                              ; preds = %907
  store i32 26, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  br label %993

910:                                              ; preds = %903
  %911 = landingpad { ptr, i32 }
          cleanup
  %912 = extractvalue { ptr, i32 } %911, 0
  store ptr %912, ptr %12, align 8
  %913 = extractvalue { ptr, i32 } %911, 1
  store i32 %913, ptr %13, align 4
  br label %992

914:                                              ; preds = %907
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #9
  store i32 0, ptr %41, align 4, !tbaa !11
  br label %915

915:                                              ; preds = %985, %914
  %916 = load i32, ptr %41, align 4, !tbaa !11
  %917 = load ptr, ptr %7, align 8, !tbaa !5
  %918 = invoke noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %917)
          to label %919 unwind label %922

919:                                              ; preds = %915
  %920 = icmp ult i32 %916, %918
  br i1 %920, label %926, label %921

921:                                              ; preds = %919
  store i32 29, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  br label %988

922:                                              ; preds = %950, %915
  %923 = landingpad { ptr, i32 }
          cleanup
  %924 = extractvalue { ptr, i32 } %923, 0
  store ptr %924, ptr %12, align 8
  %925 = extractvalue { ptr, i32 } %923, 1
  store i32 %925, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  br label %992

926:                                              ; preds = %919
  %927 = load ptr, ptr %16, align 8, !tbaa !5
  %928 = getelementptr inbounds %class.ImageContent, ptr %927, i32 0, i32 4
  %929 = load ptr, ptr %928, align 8, !tbaa !13
  %930 = load i32, ptr %40, align 4, !tbaa !11
  %931 = sext i32 %930 to i64
  %932 = getelementptr inbounds ptr, ptr %929, i64 %931
  %933 = load ptr, ptr %932, align 8, !tbaa !5
  %934 = load i32, ptr %41, align 4, !tbaa !11
  %935 = sext i32 %934 to i64
  %936 = getelementptr inbounds float, ptr %933, i64 %935
  %937 = load float, ptr %936, align 4, !tbaa !9
  %938 = fcmp oeq float %937, 0.000000e+00
  br i1 %938, label %939, label %950

939:                                              ; preds = %926
  %940 = load ptr, ptr %7, align 8, !tbaa !5
  %941 = getelementptr inbounds %class.ImageContent, ptr %940, i32 0, i32 4
  %942 = load ptr, ptr %941, align 8, !tbaa !13
  %943 = load i32, ptr %40, align 4, !tbaa !11
  %944 = sext i32 %943 to i64
  %945 = getelementptr inbounds ptr, ptr %942, i64 %944
  %946 = load ptr, ptr %945, align 8, !tbaa !5
  %947 = load i32, ptr %41, align 4, !tbaa !11
  %948 = sext i32 %947 to i64
  %949 = getelementptr inbounds float, ptr %946, i64 %948
  store float 0.000000e+00, ptr %949, align 4, !tbaa !9
  br label %950

950:                                              ; preds = %939, %926
  %951 = load ptr, ptr %14, align 8, !tbaa !5
  %952 = getelementptr inbounds %class.ImageContent, ptr %951, i32 0, i32 4
  %953 = load ptr, ptr %952, align 8, !tbaa !13
  %954 = load i32, ptr %40, align 4, !tbaa !11
  %955 = sext i32 %954 to i64
  %956 = getelementptr inbounds ptr, ptr %953, i64 %955
  %957 = load ptr, ptr %956, align 8, !tbaa !5
  %958 = load i32, ptr %41, align 4, !tbaa !11
  %959 = sext i32 %958 to i64
  %960 = getelementptr inbounds float, ptr %957, i64 %959
  %961 = load float, ptr %960, align 4, !tbaa !9
  %962 = load ptr, ptr %11, align 8, !tbaa !5
  %963 = getelementptr inbounds %class.ImageContent, ptr %962, i32 0, i32 4
  %964 = load ptr, ptr %963, align 8, !tbaa !13
  %965 = load i32, ptr %40, align 4, !tbaa !11
  %966 = sext i32 %965 to i64
  %967 = getelementptr inbounds ptr, ptr %964, i64 %966
  %968 = load ptr, ptr %967, align 8, !tbaa !5
  %969 = load i32, ptr %41, align 4, !tbaa !11
  %970 = sext i32 %969 to i64
  %971 = getelementptr inbounds float, ptr %968, i64 %970
  %972 = load float, ptr %971, align 4, !tbaa !9
  %973 = invoke noundef float @_ZSt5atan2ff(float noundef %961, float noundef %972)
          to label %974 unwind label %922

974:                                              ; preds = %950
  %975 = load ptr, ptr %8, align 8, !tbaa !5
  %976 = getelementptr inbounds %class.ImageContent, ptr %975, i32 0, i32 4
  %977 = load ptr, ptr %976, align 8, !tbaa !13
  %978 = load i32, ptr %40, align 4, !tbaa !11
  %979 = sext i32 %978 to i64
  %980 = getelementptr inbounds ptr, ptr %977, i64 %979
  %981 = load ptr, ptr %980, align 8, !tbaa !5
  %982 = load i32, ptr %41, align 4, !tbaa !11
  %983 = sext i32 %982 to i64
  %984 = getelementptr inbounds float, ptr %981, i64 %983
  store float %973, ptr %984, align 4, !tbaa !9
  br label %985

985:                                              ; preds = %974
  %986 = load i32, ptr %41, align 4, !tbaa !11
  %987 = add nsw i32 %986, 1
  store i32 %987, ptr %41, align 4, !tbaa !11
  br label %915, !llvm.loop !24

988:                                              ; preds = %921
  br label %989

989:                                              ; preds = %988
  %990 = load i32, ptr %40, align 4, !tbaa !11
  %991 = add nsw i32 %990, 1
  store i32 %991, ptr %40, align 4, !tbaa !11
  br label %903, !llvm.loop !25

992:                                              ; preds = %922, %910
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  br label %1010

993:                                              ; preds = %909
  %994 = load ptr, ptr %11, align 8, !tbaa !5
  %995 = icmp eq ptr %994, null
  br i1 %995, label %997, label %996

996:                                              ; preds = %993
  call void @_ZN12ImageContentD1Ev(ptr noundef nonnull align 8 dereferenceable(80) %994) #9
  call void @_ZdlPvm(ptr noundef %994, i64 noundef 80) #11
  br label %997

997:                                              ; preds = %996, %993
  %998 = load ptr, ptr %14, align 8, !tbaa !5
  %999 = icmp eq ptr %998, null
  br i1 %999, label %1001, label %1000

1000:                                             ; preds = %997
  call void @_ZN12ImageContentD1Ev(ptr noundef nonnull align 8 dereferenceable(80) %998) #9
  call void @_ZdlPvm(ptr noundef %998, i64 noundef 80) #11
  br label %1001

1001:                                             ; preds = %1000, %997
  %1002 = load ptr, ptr %16, align 8, !tbaa !5
  %1003 = icmp eq ptr %1002, null
  br i1 %1003, label %1005, label %1004

1004:                                             ; preds = %1001
  call void @_ZN12ImageContentD1Ev(ptr noundef nonnull align 8 dereferenceable(80) %1002) #9
  call void @_ZdlPvm(ptr noundef %1002, i64 noundef 80) #11
  br label %1005

1005:                                             ; preds = %1004, %1001
  %1006 = load ptr, ptr %15, align 8, !tbaa !5
  %1007 = icmp eq ptr %1006, null
  br i1 %1007, label %1009, label %1008

1008:                                             ; preds = %1005
  call void @_ZN12ImageContentD1Ev(ptr noundef nonnull align 8 dereferenceable(80) %1006) #9
  call void @_ZdlPvm(ptr noundef %1006, i64 noundef 80) #11
  br label %1009

1009:                                             ; preds = %1008, %1005
  call void @_ZNSt6vectorIiSaIiEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %20) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #9
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #9
  ret void

1010:                                             ; preds = %992, %901, %824, %650
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #9
  br label %1011

1011:                                             ; preds = %1010, %226
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %20) #9
  br label %1012

1012:                                             ; preds = %1011, %96
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #9
  br label %1013

1013:                                             ; preds = %1012, %92
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #9
  br label %1014

1014:                                             ; preds = %1013, %88
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #9
  br label %1015

1015:                                             ; preds = %1014, %84
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #9
  br label %1016

1016:                                             ; preds = %1015
  %1017 = load ptr, ptr %12, align 8
  %1018 = load i32, ptr %13, align 4
  %1019 = insertvalue { ptr, i32 } poison, ptr %1017, 0
  %1020 = insertvalue { ptr, i32 } %1019, i32 %1018, 1
  resume { ptr, i32 } %1020
}

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

declare i32 @__gxx_personality_v0(...)

; 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: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) #5

declare void @_Z3dX2P12ImageContentS0_(ptr noundef, ptr noundef) #6

declare void @_Z3dY2P12ImageContentS0_(ptr noundef, ptr noundef) #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #7 align 2

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

; Function Attrs: nounwind
declare void @_ZN12ImageContentD1Ev(ptr noundef nonnull align 8 dereferenceable(80)) unnamed_addr #8

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24)) #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #7 align 2

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
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 = { 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 #5 = { 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 #6 = { "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 = { 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 #8 = { 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 #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 = !{!"float", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{!14, !6, i64 16}
!14 = !{!"_ZTS12ImageContent", !12, i64 0, !12, i64 4, !12, i64 8, !12, 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}
!15 = distinct !{!15, !16}
!16 = !{!"llvm.loop.mustprogress"}
!17 = distinct !{!17, !16}
!18 = distinct !{!18, !16}
!19 = distinct !{!19, !16}
!20 = distinct !{!20, !16}
!21 = distinct !{!21, !16}
!22 = distinct !{!22, !16}
!23 = distinct !{!23, !16}
!24 = distinct !{!24, !16}
!25 = distinct !{!25, !16}


; 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::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }

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

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #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: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare float @llvm.fmuladd.f32(float, float, float) #2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_Z6sbilinP12ImageContentff(ptr noundef, float noundef, float noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
define dso_local void @_Z5cannyP12ImageContentS0_S0_ff(ptr noundef %0, ptr noundef %1, ptr nocapture noundef readonly %2, float noundef %3, float noundef %4) local_unnamed_addr #3 personality ptr @__gxx_personality_v0 {
  %6 = alloca %"class.std::vector", align 8
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = tail call noalias noundef nonnull dereferenceable(80) ptr @_Znwm(i64 noundef 80) #9
  %10 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %11 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  invoke void @_ZN12ImageContentC2Ejjf(ptr noundef nonnull align 8 dereferenceable(80) %9, i32 noundef %10, i32 noundef %11, float noundef 0.000000e+00)
          to label %12 unwind label %30

12:                                               ; preds = %5
  %13 = tail call noalias noundef nonnull dereferenceable(80) ptr @_Znwm(i64 noundef 80) #9
  %14 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %15 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  invoke void @_ZN12ImageContentC2Ejjf(ptr noundef nonnull align 8 dereferenceable(80) %13, i32 noundef %14, i32 noundef %15, float noundef 0.000000e+00)
          to label %16 unwind label %32

16:                                               ; preds = %12
  %17 = tail call noalias noundef nonnull dereferenceable(80) ptr @_Znwm(i64 noundef 80) #9
  %18 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %19 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  invoke void @_ZN12ImageContentC2Ejjf(ptr noundef nonnull align 8 dereferenceable(80) %17, i32 noundef %18, i32 noundef %19, float noundef 0.000000e+00)
          to label %20 unwind label %34

20:                                               ; preds = %16
  %21 = tail call noalias noundef nonnull dereferenceable(80) ptr @_Znwm(i64 noundef 80) #9
  %22 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %23 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  invoke void @_ZN12ImageContentC2Ejjf(ptr noundef nonnull align 8 dereferenceable(80) %21, i32 noundef %22, i32 noundef %23, float noundef 0.000000e+00)
          to label %24 unwind label %36

24:                                               ; preds = %20
  tail call void @_Z3dX2P12ImageContentS0_(ptr noundef nonnull %0, ptr noundef nonnull %9)
  tail call void @_Z3dY2P12ImageContentS0_(ptr noundef nonnull %0, ptr noundef nonnull %13)
  %25 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %1)
  %.not = icmp eq i32 %25, 0
  br i1 %.not, label %._crit_edge290, label %.preheader285.lr.ph

.preheader285.lr.ph:                              ; preds = %24
  %26 = getelementptr inbounds i8, ptr %9, i64 16
  %27 = getelementptr inbounds i8, ptr %13, i64 16
  %28 = getelementptr inbounds i8, ptr %1, i64 16
  br label %.preheader285

.preheader285:                                    ; preds = %.preheader285.lr.ph, %._crit_edge
  %indvars.iv324 = phi i64 [ 0, %.preheader285.lr.ph ], [ %indvars.iv.next325, %._crit_edge ]
  %29 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %1)
  %.not318 = icmp eq i32 %29, 0
  br i1 %.not318, label %._crit_edge, label %.lr.ph

._crit_edge290:                                   ; preds = %._crit_edge, %24
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) #10
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #10
  store i32 0, ptr %7, align 4, !tbaa !5
  invoke void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %6, ptr noundef nonnull align 4 dereferenceable(4) %7)
          to label %72 unwind label %90

30:                                               ; preds = %5
  %31 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %9, i64 noundef 80) #11
  br label %340

32:                                               ; preds = %12
  %33 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %13, i64 noundef 80) #11
  br label %340

34:                                               ; preds = %16
  %35 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %17, i64 noundef 80) #11
  br label %340

36:                                               ; preds = %20
  %37 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %21, i64 noundef 80) #11
  br label %340

._crit_edge:                                      ; preds = %68, %.preheader285
  %indvars.iv.next325 = add nuw nsw i64 %indvars.iv324, 1
  %38 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %1)
  %39 = zext i32 %38 to i64
  %40 = icmp ult i64 %indvars.iv.next325, %39
  br i1 %40, label %.preheader285, label %._crit_edge290, !llvm.loop !9

.lr.ph:                                           ; preds = %.preheader285, %68
  %indvars.iv = phi i64 [ %indvars.iv.next, %68 ], [ 0, %.preheader285 ]
  %41 = load ptr, ptr %26, align 8, !tbaa !11
  %42 = getelementptr inbounds ptr, ptr %41, i64 %indvars.iv324
  %43 = load ptr, ptr %42, align 8, !tbaa !14
  %44 = getelementptr inbounds float, ptr %43, i64 %indvars.iv
  %45 = load float, ptr %44, align 4, !tbaa !15
  %46 = load ptr, ptr %27, align 8, !tbaa !11
  %47 = getelementptr inbounds ptr, ptr %46, i64 %indvars.iv324
  %48 = load ptr, ptr %47, align 8, !tbaa !14
  %49 = getelementptr inbounds float, ptr %48, i64 %indvars.iv
  %50 = load float, ptr %49, align 4, !tbaa !15
  %51 = fmul float %50, %50
  %52 = tail call float @llvm.fmuladd.f32(float %45, float %45, float %51)
  %53 = tail call noundef float @_ZSt4sqrtf(float noundef %52)
  %54 = load ptr, ptr %28, align 8, !tbaa !11
  %55 = getelementptr inbounds ptr, ptr %54, i64 %indvars.iv324
  %56 = load ptr, ptr %55, align 8, !tbaa !14
  %57 = getelementptr inbounds float, ptr %56, i64 %indvars.iv
  store float %53, ptr %57, align 4, !tbaa !15
  %58 = fcmp olt float %53, 1.000000e+00
  br i1 %58, label %59, label %68

59:                                               ; preds = %.lr.ph
  store float 0.000000e+00, ptr %57, align 4, !tbaa !15
  %60 = load ptr, ptr %26, align 8, !tbaa !11
  %61 = getelementptr inbounds ptr, ptr %60, i64 %indvars.iv324
  %62 = load ptr, ptr %61, align 8, !tbaa !14
  %63 = getelementptr inbounds float, ptr %62, i64 %indvars.iv
  store float 0.000000e+00, ptr %63, align 4, !tbaa !15
  %64 = load ptr, ptr %27, align 8, !tbaa !11
  %65 = getelementptr inbounds ptr, ptr %64, i64 %indvars.iv324
  %66 = load ptr, ptr %65, align 8, !tbaa !14
  %67 = getelementptr inbounds float, ptr %66, i64 %indvars.iv
  store float 0.000000e+00, ptr %67, align 4, !tbaa !15
  br label %68

68:                                               ; preds = %.lr.ph, %59
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %69 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %1)
  %70 = zext i32 %69 to i64
  %71 = icmp ult i64 %indvars.iv.next, %70
  br i1 %71, label %.lr.ph, label %._crit_edge, !llvm.loop !17

72:                                               ; preds = %._crit_edge290
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #10
  %73 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %1)
  %74 = and i32 %73, -2
  %.not319 = icmp eq i32 %74, 2
  br i1 %.not319, label %._crit_edge297, label %.preheader284.lr.ph

.preheader284.lr.ph:                              ; preds = %72
  %75 = getelementptr inbounds i8, ptr %9, i64 16
  %76 = getelementptr inbounds i8, ptr %13, i64 16
  %77 = getelementptr inbounds i8, ptr %1, i64 16
  %78 = getelementptr inbounds i8, ptr %21, i64 16
  %79 = getelementptr inbounds i8, ptr %17, i64 16
  br label %.preheader284

.preheader284:                                    ; preds = %.preheader284.lr.ph, %._crit_edge294
  %indvars.iv330 = phi i64 [ 1, %.preheader284.lr.ph ], [ %indvars.iv.next331, %._crit_edge294 ]
  %.0254295 = phi float [ 1.000000e+00, %.preheader284.lr.ph ], [ %.1.lcssa, %._crit_edge294 ]
  %80 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %1)
  %81 = and i32 %80, -2
  %.not320 = icmp eq i32 %81, 2
  br i1 %.not320, label %._crit_edge294, label %.lr.ph293

.lr.ph293:                                        ; preds = %.preheader284
  %82 = trunc nuw nsw i64 %indvars.iv330 to i32
  %83 = uitofp nneg i32 %82 to float
  br label %98

._crit_edge297:                                   ; preds = %._crit_edge294, %72
  %84 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %21)
  %85 = add i32 %84, -2
  %86 = icmp sgt i32 %85, 0
  br i1 %86, label %.lr.ph304, label %._crit_edge305

.lr.ph304:                                        ; preds = %._crit_edge297
  %87 = getelementptr inbounds i8, ptr %21, i64 16
  %88 = getelementptr inbounds i8, ptr %17, i64 16
  %89 = zext nneg i32 %85 to i64
  br label %216

90:                                               ; preds = %._crit_edge290
  %91 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #10
  br label %339

._crit_edge294:                                   ; preds = %.critedge, %.preheader284
  %.1.lcssa = phi float [ %.0254295, %.preheader284 ], [ %.2, %.critedge ]
  %indvars.iv.next331 = add nuw nsw i64 %indvars.iv330, 1
  %92 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %1)
  %93 = add i32 %92, -2
  %94 = zext i32 %93 to i64
  %95 = icmp ult i64 %indvars.iv.next331, %94
  br i1 %95, label %.preheader284, label %._crit_edge297, !llvm.loop !18

96:                                               ; preds = %121, %98
  %97 = landingpad { ptr, i32 }
          cleanup
  br label %339

98:                                               ; preds = %.lr.ph293, %.critedge
  %indvars.iv327 = phi i64 [ 1, %.lr.ph293 ], [ %indvars.iv.next328, %.critedge ]
  %.1291 = phi float [ %.0254295, %.lr.ph293 ], [ %.2, %.critedge ]
  %99 = load ptr, ptr %75, align 8, !tbaa !11
  %100 = getelementptr inbounds ptr, ptr %99, i64 %indvars.iv330
  %101 = load ptr, ptr %100, align 8, !tbaa !14
  %102 = getelementptr inbounds float, ptr %101, i64 %indvars.iv327
  %103 = load float, ptr %102, align 4, !tbaa !15
  %104 = load ptr, ptr %76, align 8, !tbaa !11
  %105 = getelementptr inbounds ptr, ptr %104, i64 %indvars.iv330
  %106 = load ptr, ptr %105, align 8, !tbaa !14
  %107 = getelementptr inbounds float, ptr %106, i64 %indvars.iv327
  %108 = load float, ptr %107, align 4, !tbaa !15
  %109 = load ptr, ptr %77, align 8, !tbaa !11
  %110 = getelementptr inbounds ptr, ptr %109, i64 %indvars.iv330
  %111 = load ptr, ptr %110, align 8, !tbaa !14
  %112 = getelementptr inbounds float, ptr %111, i64 %indvars.iv327
  %113 = load float, ptr %112, align 4, !tbaa !15
  %114 = trunc nuw nsw i64 %indvars.iv327 to i32
  %115 = uitofp nneg i32 %114 to float
  %116 = fdiv float %103, %113
  %117 = fadd float %116, %115
  %118 = fdiv float %108, %113
  %119 = fadd float %118, %83
  %120 = invoke noundef float @_Z6sbilinP12ImageContentff(ptr noundef nonnull %1, float noundef %117, float noundef %119)
          to label %121 unwind label %96

121:                                              ; preds = %98
  %122 = fsub float %83, %118
  %123 = fsub float %115, %116
  %124 = invoke noundef float @_Z6sbilinP12ImageContentff(ptr noundef nonnull %1, float noundef %123, float noundef %122)
          to label %125 unwind label %96

125:                                              ; preds = %121
  %126 = fcmp olt float %113, %120
  %127 = fcmp ole float %113, %124
  %or.cond.not282 = or i1 %126, %127
  %128 = fcmp olt float %113, %3
  %or.cond280 = or i1 %128, %or.cond.not282
  br i1 %or.cond280, label %.critedge, label %129

129:                                              ; preds = %125
  %130 = fcmp ogt float %113, %4
  br i1 %130, label %131, label %136

131:                                              ; preds = %129
  %132 = load ptr, ptr %78, align 8, !tbaa !11
  %133 = getelementptr inbounds ptr, ptr %132, i64 %indvars.iv330
  %134 = load ptr, ptr %133, align 8, !tbaa !14
  %135 = getelementptr inbounds float, ptr %134, i64 %indvars.iv327
  store float 1.850000e+02, ptr %135, align 4, !tbaa !15
  br label %.critedge

136:                                              ; preds = %129
  %137 = fcmp ogt float %113, %3
  br i1 %137, label %138, label %.critedge

138:                                              ; preds = %136
  %139 = load ptr, ptr %78, align 8, !tbaa !11
  %140 = getelementptr ptr, ptr %139, i64 %indvars.iv330
  %141 = getelementptr i8, ptr %140, i64 -8
  %142 = load ptr, ptr %141, align 8, !tbaa !14
  %143 = add nsw i64 %indvars.iv327, -1
  %144 = getelementptr inbounds float, ptr %142, i64 %143
  %145 = load float, ptr %144, align 4, !tbaa !15
  %146 = fcmp oeq float %145, 1.850000e+02
  br i1 %146, label %160, label %147

147:                                              ; preds = %138
  %148 = getelementptr inbounds float, ptr %142, i64 %indvars.iv327
  %149 = load float, ptr %148, align 4, !tbaa !15
  %150 = fcmp oeq float %149, 1.850000e+02
  br i1 %150, label %160, label %151

151:                                              ; preds = %147
  %152 = getelementptr inbounds i8, ptr %148, i64 4
  %153 = load float, ptr %152, align 4, !tbaa !15
  %154 = fcmp oeq float %153, 1.850000e+02
  br i1 %154, label %160, label %155

155:                                              ; preds = %151
  %156 = load ptr, ptr %140, align 8, !tbaa !14
  %157 = getelementptr inbounds float, ptr %156, i64 %143
  %158 = load float, ptr %157, align 4, !tbaa !15
  %159 = fcmp oeq float %158, 1.850000e+02
  br i1 %159, label %160, label %163

160:                                              ; preds = %155, %151, %147, %138
  %161 = load ptr, ptr %140, align 8, !tbaa !14
  %162 = getelementptr inbounds float, ptr %161, i64 %indvars.iv327
  store float 1.850000e+02, ptr %162, align 4, !tbaa !15
  br label %.critedge

163:                                              ; preds = %155
  %164 = load ptr, ptr %79, align 8, !tbaa !11
  %165 = getelementptr ptr, ptr %164, i64 %indvars.iv330
  %166 = getelementptr i8, ptr %165, i64 -8
  %167 = load ptr, ptr %166, align 8, !tbaa !14
  %168 = getelementptr inbounds float, ptr %167, i64 %143
  %169 = load float, ptr %168, align 4, !tbaa !15
  %170 = fcmp ogt float %169, 0.000000e+00
  br i1 %170, label %171, label %174

171:                                              ; preds = %163
  %172 = load ptr, ptr %165, align 8, !tbaa !14
  %173 = getelementptr inbounds float, ptr %172, i64 %indvars.iv327
  store float %169, ptr %173, align 4, !tbaa !15
  br label %.critedge

174:                                              ; preds = %163
  %175 = getelementptr inbounds float, ptr %167, i64 %indvars.iv327
  %176 = load float, ptr %175, align 4, !tbaa !15
  %177 = fcmp ogt float %176, 0.000000e+00
  br i1 %177, label %178, label %181

178:                                              ; preds = %174
  %179 = load ptr, ptr %165, align 8, !tbaa !14
  %180 = getelementptr inbounds float, ptr %179, i64 %indvars.iv327
  store float %176, ptr %180, align 4, !tbaa !15
  br label %.critedge

181:                                              ; preds = %174
  %182 = add nuw nsw i64 %indvars.iv327, 1
  %183 = getelementptr inbounds float, ptr %167, i64 %182
  %184 = load float, ptr %183, align 4, !tbaa !15
  %185 = fcmp ogt float %184, 0.000000e+00
  %186 = load ptr, ptr %165, align 8, !tbaa !14
  br i1 %185, label %187, label %189

187:                                              ; preds = %181
  %188 = getelementptr inbounds float, ptr %186, i64 %indvars.iv327
  store float %184, ptr %188, align 4, !tbaa !15
  br label %.critedge

189:                                              ; preds = %181
  %190 = getelementptr inbounds float, ptr %186, i64 %143
  %191 = load float, ptr %190, align 4, !tbaa !15
  %192 = fcmp ogt float %191, 0.000000e+00
  br i1 %192, label %193, label %195

193:                                              ; preds = %189
  %194 = getelementptr inbounds float, ptr %186, i64 %indvars.iv327
  store float %191, ptr %194, align 4, !tbaa !15
  br label %.critedge

195:                                              ; preds = %189
  %196 = getelementptr inbounds float, ptr %186, i64 %182
  %197 = load float, ptr %196, align 4, !tbaa !15
  %198 = fcmp ogt float %197, 0.000000e+00
  %199 = getelementptr inbounds float, ptr %186, i64 %indvars.iv327
  br i1 %198, label %200, label %201

200:                                              ; preds = %195
  store float %197, ptr %199, align 4, !tbaa !15
  br label %.critedge

201:                                              ; preds = %195
  store float %.1291, ptr %199, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #10
  store i32 0, ptr %8, align 4, !tbaa !5
  invoke void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %6, ptr noundef nonnull align 4 dereferenceable(4) %8)
          to label %202 unwind label %204

202:                                              ; preds = %201
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #10
  %203 = fadd float %.1291, 1.000000e+00
  br label %.critedge

204:                                              ; preds = %201
  %205 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #10
  br label %339

.critedge:                                        ; preds = %136, %160, %171, %187, %200, %202, %193, %178, %131, %125
  %.2 = phi float [ %.1291, %125 ], [ %.1291, %131 ], [ %.1291, %160 ], [ %.1291, %171 ], [ %.1291, %178 ], [ %.1291, %187 ], [ %.1291, %193 ], [ %.1291, %200 ], [ %203, %202 ], [ %.1291, %136 ]
  %indvars.iv.next328 = add nuw nsw i64 %indvars.iv327, 1
  %206 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %1)
  %207 = add i32 %206, -2
  %208 = trunc nsw i64 %indvars.iv.next328 to i32
  %209 = icmp ugt i32 %207, %208
  br i1 %209, label %98, label %._crit_edge294, !llvm.loop !19

._crit_edge305:                                   ; preds = %._crit_edge301, %._crit_edge297
  %210 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %21)
  %211 = add i32 %210, -2
  %212 = icmp sgt i32 %211, 0
  br i1 %212, label %.lr.ph312, label %.preheader283

.lr.ph312:                                        ; preds = %._crit_edge305
  %213 = getelementptr inbounds i8, ptr %17, i64 16
  %214 = getelementptr inbounds i8, ptr %21, i64 16
  %215 = zext nneg i32 %211 to i64
  br label %279

216:                                              ; preds = %.lr.ph304, %._crit_edge301
  %indvars.iv336 = phi i64 [ %89, %.lr.ph304 ], [ %indvars.iv.next337, %._crit_edge301 ]
  %217 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %21)
  %218 = add i32 %217, -2
  %219 = icmp sgt i32 %218, 0
  br i1 %219, label %.lr.ph300, label %._crit_edge301

.lr.ph300:                                        ; preds = %216
  %220 = zext nneg i32 %218 to i64
  br label %222

._crit_edge301:                                   ; preds = %271, %216
  %indvars.iv.next337 = add nsw i64 %indvars.iv336, -1
  %221 = icmp sgt i64 %indvars.iv336, 1
  br i1 %221, label %216, label %._crit_edge305, !llvm.loop !20

222:                                              ; preds = %.lr.ph300, %271
  %indvars.iv333 = phi i64 [ %220, %.lr.ph300 ], [ %indvars.iv.next334, %271 ]
  %223 = load ptr, ptr %87, align 8, !tbaa !11
  %224 = getelementptr ptr, ptr %223, i64 %indvars.iv336
  %225 = getelementptr i8, ptr %224, i64 -8
  %226 = load ptr, ptr %225, align 8, !tbaa !14
  %indvars.iv.next334 = add nsw i64 %indvars.iv333, -1
  %227 = getelementptr inbounds float, ptr %226, i64 %indvars.iv.next334
  %228 = load float, ptr %227, align 4, !tbaa !15
  %229 = fcmp oeq float %228, 1.850000e+02
  br i1 %229, label %262, label %230

230:                                              ; preds = %222
  %231 = getelementptr inbounds float, ptr %226, i64 %indvars.iv333
  %232 = load float, ptr %231, align 4, !tbaa !15
  %233 = fcmp oeq float %232, 1.850000e+02
  br i1 %233, label %262, label %234

234:                                              ; preds = %230
  %235 = add nuw nsw i64 %indvars.iv333, 1
  %236 = getelementptr inbounds float, ptr %226, i64 %235
  %237 = load float, ptr %236, align 4, !tbaa !15
  %238 = fcmp oeq float %237, 1.850000e+02
  br i1 %238, label %262, label %239

239:                                              ; preds = %234
  %240 = load ptr, ptr %224, align 8, !tbaa !14
  %241 = getelementptr inbounds float, ptr %240, i64 %indvars.iv.next334
  %242 = load float, ptr %241, align 4, !tbaa !15
  %243 = fcmp oeq float %242, 1.850000e+02
  br i1 %243, label %262, label %244

244:                                              ; preds = %239
  %245 = getelementptr inbounds float, ptr %240, i64 %235
  %246 = load float, ptr %245, align 4, !tbaa !15
  %247 = fcmp oeq float %246, 1.850000e+02
  br i1 %247, label %262, label %248

248:                                              ; preds = %244
  %249 = getelementptr inbounds i8, ptr %224, i64 8
  %250 = load ptr, ptr %249, align 8, !tbaa !14
  %251 = getelementptr inbounds float, ptr %250, i64 %indvars.iv.next334
  %252 = load float, ptr %251, align 4, !tbaa !15
  %253 = fcmp oeq float %252, 1.850000e+02
  br i1 %253, label %262, label %254

254:                                              ; preds = %248
  %255 = getelementptr inbounds float, ptr %250, i64 %indvars.iv333
  %256 = load float, ptr %255, align 4, !tbaa !15
  %257 = fcmp oeq float %256, 1.850000e+02
  br i1 %257, label %262, label %258

258:                                              ; preds = %254
  %259 = getelementptr inbounds float, ptr %250, i64 %235
  %260 = load float, ptr %259, align 4, !tbaa !15
  %261 = fcmp oeq float %260, 1.850000e+02
  br i1 %261, label %262, label %271

262:                                              ; preds = %258, %254, %248, %244, %239, %234, %230, %222
  %263 = load ptr, ptr %88, align 8, !tbaa !11
  %264 = getelementptr inbounds ptr, ptr %263, i64 %indvars.iv336
  %265 = load ptr, ptr %264, align 8, !tbaa !14
  %266 = getelementptr inbounds float, ptr %265, i64 %indvars.iv333
  %267 = load float, ptr %266, align 4, !tbaa !15
  %268 = fptosi float %267 to i32
  %269 = sext i32 %268 to i64
  %270 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %269) #10
  store i32 1, ptr %270, align 4, !tbaa !5
  br label %271

271:                                              ; preds = %258, %262
  %272 = icmp ugt i64 %indvars.iv333, 1
  br i1 %272, label %222, label %._crit_edge301, !llvm.loop !21

.preheader283:                                    ; preds = %._crit_edge309, %._crit_edge305
  %273 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %1)
  %.not321 = icmp eq i32 %273, 0
  br i1 %.not321, label %._crit_edge317, label %.preheader.lr.ph

.preheader.lr.ph:                                 ; preds = %.preheader283
  %274 = getelementptr inbounds i8, ptr %21, i64 16
  %275 = getelementptr inbounds i8, ptr %1, i64 16
  %276 = getelementptr inbounds i8, ptr %13, i64 16
  %277 = getelementptr inbounds i8, ptr %9, i64 16
  %278 = getelementptr inbounds i8, ptr %2, i64 16
  br label %.preheader

279:                                              ; preds = %.lr.ph312, %._crit_edge309
  %indvars.iv342 = phi i64 [ %215, %.lr.ph312 ], [ %indvars.iv.next343, %._crit_edge309 ]
  %280 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %21)
  %281 = add i32 %280, -2
  %282 = icmp sgt i32 %281, 0
  br i1 %282, label %.lr.ph308, label %._crit_edge309

.lr.ph308:                                        ; preds = %279
  %283 = zext nneg i32 %281 to i64
  br label %285

._crit_edge309:                                   ; preds = %303, %279
  %indvars.iv.next343 = add nsw i64 %indvars.iv342, -1
  %284 = icmp sgt i64 %indvars.iv342, 1
  br i1 %284, label %279, label %.preheader283, !llvm.loop !22

285:                                              ; preds = %.lr.ph308, %303
  %indvars.iv339 = phi i64 [ %283, %.lr.ph308 ], [ %indvars.iv.next340, %303 ]
  %286 = load ptr, ptr %213, align 8, !tbaa !11
  %287 = getelementptr inbounds ptr, ptr %286, i64 %indvars.iv342
  %288 = load ptr, ptr %287, align 8, !tbaa !14
  %289 = getelementptr inbounds float, ptr %288, i64 %indvars.iv339
  %290 = load float, ptr %289, align 4, !tbaa !15
  %291 = fcmp ogt float %290, 0.000000e+00
  br i1 %291, label %292, label %303

292:                                              ; preds = %285
  %293 = fptosi float %290 to i32
  %294 = sext i32 %293 to i64
  %295 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %294) #10
  %296 = load i32, ptr %295, align 4, !tbaa !5
  %297 = icmp eq i32 %296, 1
  br i1 %297, label %298, label %303

298:                                              ; preds = %292
  %299 = load ptr, ptr %214, align 8, !tbaa !11
  %300 = getelementptr inbounds ptr, ptr %299, i64 %indvars.iv342
  %301 = load ptr, ptr %300, align 8, !tbaa !14
  %302 = getelementptr inbounds float, ptr %301, i64 %indvars.iv339
  store float 1.850000e+02, ptr %302, align 4, !tbaa !15
  br label %303

303:                                              ; preds = %285, %292, %298
  %indvars.iv.next340 = add nsw i64 %indvars.iv339, -1
  %304 = icmp sgt i64 %indvars.iv339, 1
  br i1 %304, label %285, label %._crit_edge309, !llvm.loop !23

.preheader:                                       ; preds = %.preheader.lr.ph, %._crit_edge315
  %indvars.iv348 = phi i64 [ 0, %.preheader.lr.ph ], [ %indvars.iv.next349, %._crit_edge315 ]
  %305 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %1)
  %.not322 = icmp eq i32 %305, 0
  br i1 %.not322, label %._crit_edge315, label %.lr.ph314

._crit_edge315:                                   ; preds = %320, %.preheader
  %indvars.iv.next349 = add nuw nsw i64 %indvars.iv348, 1
  %306 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %1)
  %307 = zext i32 %306 to i64
  %308 = icmp ult i64 %indvars.iv.next349, %307
  br i1 %308, label %.preheader, label %._crit_edge317, !llvm.loop !24

.lr.ph314:                                        ; preds = %.preheader, %320
  %indvars.iv345 = phi i64 [ %indvars.iv.next346, %320 ], [ 0, %.preheader ]
  %309 = load ptr, ptr %274, align 8, !tbaa !11
  %310 = getelementptr inbounds ptr, ptr %309, i64 %indvars.iv348
  %311 = load ptr, ptr %310, align 8, !tbaa !14
  %312 = getelementptr inbounds float, ptr %311, i64 %indvars.iv345
  %313 = load float, ptr %312, align 4, !tbaa !15
  %314 = fcmp oeq float %313, 0.000000e+00
  br i1 %314, label %315, label %320

315:                                              ; preds = %.lr.ph314
  %316 = load ptr, ptr %275, align 8, !tbaa !11
  %317 = getelementptr inbounds ptr, ptr %316, i64 %indvars.iv348
  %318 = load ptr, ptr %317, align 8, !tbaa !14
  %319 = getelementptr inbounds float, ptr %318, i64 %indvars.iv345
  store float 0.000000e+00, ptr %319, align 4, !tbaa !15
  br label %320

320:                                              ; preds = %315, %.lr.ph314
  %321 = load ptr, ptr %276, align 8, !tbaa !11
  %322 = getelementptr inbounds ptr, ptr %321, i64 %indvars.iv348
  %323 = load ptr, ptr %322, align 8, !tbaa !14
  %324 = getelementptr inbounds float, ptr %323, i64 %indvars.iv345
  %325 = load float, ptr %324, align 4, !tbaa !15
  %326 = load ptr, ptr %277, align 8, !tbaa !11
  %327 = getelementptr inbounds ptr, ptr %326, i64 %indvars.iv348
  %328 = load ptr, ptr %327, align 8, !tbaa !14
  %329 = getelementptr inbounds float, ptr %328, i64 %indvars.iv345
  %330 = load float, ptr %329, align 4, !tbaa !15
  %331 = call noundef float @_ZSt5atan2ff(float noundef %325, float noundef %330)
  %332 = load ptr, ptr %278, align 8, !tbaa !11
  %333 = getelementptr inbounds ptr, ptr %332, i64 %indvars.iv348
  %334 = load ptr, ptr %333, align 8, !tbaa !14
  %335 = getelementptr inbounds float, ptr %334, i64 %indvars.iv345
  store float %331, ptr %335, align 4, !tbaa !15
  %indvars.iv.next346 = add nuw nsw i64 %indvars.iv345, 1
  %336 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %1)
  %337 = zext i32 %336 to i64
  %338 = icmp ult i64 %indvars.iv.next346, %337
  br i1 %338, label %.lr.ph314, label %._crit_edge315, !llvm.loop !25

._crit_edge317:                                   ; preds = %._crit_edge315, %.preheader283
  call void @_ZN12ImageContentD1Ev(ptr noundef nonnull align 8 dereferenceable(80) %9) #10
  call void @_ZdlPvm(ptr noundef nonnull %9, i64 noundef 80) #11
  call void @_ZN12ImageContentD1Ev(ptr noundef nonnull align 8 dereferenceable(80) %13) #10
  call void @_ZdlPvm(ptr noundef nonnull %13, i64 noundef 80) #11
  call void @_ZN12ImageContentD1Ev(ptr noundef nonnull align 8 dereferenceable(80) %21) #10
  call void @_ZdlPvm(ptr noundef nonnull %21, i64 noundef 80) #11
  call void @_ZN12ImageContentD1Ev(ptr noundef nonnull align 8 dereferenceable(80) %17) #10
  call void @_ZdlPvm(ptr noundef nonnull %17, i64 noundef 80) #11
  call void @_ZNSt6vectorIiSaIiEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %6) #10
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #10
  ret void

339:                                              ; preds = %96, %204, %90
  %.pn.pn = phi { ptr, i32 } [ %91, %90 ], [ %205, %204 ], [ %97, %96 ]
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #10
  br label %340

340:                                              ; preds = %32, %36, %339, %34, %30
  %.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %31, %30 ], [ %33, %32 ], [ %35, %34 ], [ %.pn.pn, %339 ], [ %37, %36 ]
  resume { ptr, i32 } %.pn.pn.pn.pn.pn.pn
}

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

declare i32 @__gxx_personality_v0(...)

; 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: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) local_unnamed_addr #5

declare void @_Z3dX2P12ImageContentS0_(ptr noundef, ptr noundef) local_unnamed_addr #6

declare void @_Z3dY2P12ImageContentS0_(ptr noundef, ptr noundef) local_unnamed_addr #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #7 align 2

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

; Function Attrs: nounwind
declare void @_ZN12ImageContentD1Ev(ptr noundef nonnull align 8 dereferenceable(80)) unnamed_addr #8

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #7 align 2

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
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 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
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 = { 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 #5 = { 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 #6 = { "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 = { 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 #8 = { 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 #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, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = distinct !{!9, !10}
!10 = !{!"llvm.loop.mustprogress"}
!11 = !{!12, !13, i64 16}
!12 = !{!"_ZTS12ImageContent", !6, i64 0, !6, i64 4, !6, i64 8, !6, 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}
!13 = !{!"any pointer", !7, i64 0}
!14 = !{!13, !13, i64 0}
!15 = !{!16, !16, i64 0}
!16 = !{!"float", !7, i64 0}
!17 = distinct !{!17, !10}
!18 = distinct !{!18, !10}
!19 = distinct !{!19, !10}
!20 = distinct !{!20, !10}
!21 = distinct !{!21, !10}
!22 = distinct !{!22, !10}
!23 = distinct !{!23, !10}
!24 = distinct !{!24, !10}
!25 = distinct !{!25, !10}


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