; LLVM IR from ox-vgg/vise :: src/search_engine/relja_retrival/external/KMCode_relja/descriptor/EdgeDetector._91f04590 (fff)

; 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.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = 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: mustprogress uwtable
declare dso_local noundef float @_Z5bilinP12ImageContentff(ptr noundef, float noundef, float noundef) #0

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

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

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

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z10cannyEdgesP12ImageContentS0_fff(ptr noundef %0, ptr noundef %1, float noundef %2, float noundef %3, float noundef %4) #0 personality ptr @__gxx_personality_v0 {
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca float, align 4
  %9 = alloca float, align 4
  %10 = alloca float, align 4
  %11 = alloca float, align 4
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca %"class.std::vector.18", align 8
  %22 = alloca i32, 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 float %2, ptr %8, align 4, !tbaa !9
  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 4, ptr %11) #9
  store float 1.150000e+02, ptr %11, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #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 %86

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 %86

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 %86

49:                                               ; preds = %48
  store ptr %42, ptr %12, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #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 %90

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 %90

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 %90

57:                                               ; preds = %56
  store ptr %50, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #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 %94

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 %94

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 %94

65:                                               ; preds = %64
  store ptr %58, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #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 %98

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 %98

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 %98

73:                                               ; preds = %72
  store ptr %66, ptr %17, align 8, !tbaa !5
  %74 = load ptr, ptr %6, align 8, !tbaa !5
  %75 = load ptr, ptr %12, align 8, !tbaa !5
  %76 = load float, ptr %8, align 4, !tbaa !9
  call void @_Z2dXP12ImageContentS0_f(ptr noundef %74, ptr noundef %75, float noundef %76)
  %77 = load ptr, ptr %6, align 8, !tbaa !5
  %78 = load ptr, ptr %15, align 8, !tbaa !5
  %79 = load float, ptr %8, align 4, !tbaa !9
  call void @_Z2dYP12ImageContentS0_f(ptr noundef %77, ptr noundef %78, float noundef %79)
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #9
  store i32 0, ptr %18, align 4, !tbaa !11
  br label %80

80:                                               ; preds = %217, %73
  %81 = load i32, ptr %18, align 4, !tbaa !11
  %82 = load ptr, ptr %16, align 8, !tbaa !5
  %83 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %82)
  %84 = icmp ult i32 %81, %83
  br i1 %84, label %102, label %85

85:                                               ; preds = %80
  store i32 2, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #9
  br label %220

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

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

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

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

102:                                              ; preds = %80
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #9
  store i32 0, ptr %20, align 4, !tbaa !11
  br label %103

103:                                              ; preds = %213, %102
  %104 = load i32, ptr %20, align 4, !tbaa !11
  %105 = load ptr, ptr %16, align 8, !tbaa !5
  %106 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %105)
  %107 = icmp ult i32 %104, %106
  br i1 %107, label %109, label %108

108:                                              ; preds = %103
  store i32 5, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  br label %216

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

181:                                              ; preds = %109
  %182 = load ptr, ptr %16, align 8, !tbaa !5
  %183 = getelementptr inbounds %class.ImageContent, ptr %182, i32 0, i32 4
  %184 = load ptr, ptr %183, align 8, !tbaa !13
  %185 = load i32, ptr %18, align 4, !tbaa !11
  %186 = sext i32 %185 to i64
  %187 = getelementptr inbounds ptr, ptr %184, i64 %186
  %188 = load ptr, ptr %187, align 8, !tbaa !5
  %189 = load i32, ptr %20, align 4, !tbaa !11
  %190 = sext i32 %189 to i64
  %191 = getelementptr inbounds float, ptr %188, i64 %190
  store float 1.000000e+00, ptr %191, align 4, !tbaa !9
  %192 = load ptr, ptr %12, align 8, !tbaa !5
  %193 = getelementptr inbounds %class.ImageContent, ptr %192, i32 0, i32 4
  %194 = load ptr, ptr %193, align 8, !tbaa !13
  %195 = load i32, ptr %18, align 4, !tbaa !11
  %196 = sext i32 %195 to i64
  %197 = getelementptr inbounds ptr, ptr %194, i64 %196
  %198 = load ptr, ptr %197, align 8, !tbaa !5
  %199 = load i32, ptr %20, align 4, !tbaa !11
  %200 = sext i32 %199 to i64
  %201 = getelementptr inbounds float, ptr %198, i64 %200
  store float 0.000000e+00, ptr %201, align 4, !tbaa !9
  %202 = load ptr, ptr %15, align 8, !tbaa !5
  %203 = getelementptr inbounds %class.ImageContent, ptr %202, i32 0, i32 4
  %204 = load ptr, ptr %203, align 8, !tbaa !13
  %205 = load i32, ptr %18, align 4, !tbaa !11
  %206 = sext i32 %205 to i64
  %207 = getelementptr inbounds ptr, ptr %204, i64 %206
  %208 = load ptr, ptr %207, align 8, !tbaa !5
  %209 = load i32, ptr %20, align 4, !tbaa !11
  %210 = sext i32 %209 to i64
  %211 = getelementptr inbounds float, ptr %208, i64 %210
  store float 0.000000e+00, ptr %211, align 4, !tbaa !9
  br label %212

212:                                              ; preds = %181, %109
  br label %213

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

216:                                              ; preds = %108
  br label %217

217:                                              ; preds = %216
  %218 = load i32, ptr %18, align 4, !tbaa !11
  %219 = add nsw i32 %218, 1
  store i32 %219, ptr %18, align 4, !tbaa !11
  br label %80, !llvm.loop !17

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

221:                                              ; preds = %220
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #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 %222

222:                                              ; preds = %651, %221
  %223 = load i32, ptr %33, align 4, !tbaa !11
  %224 = load ptr, ptr %16, align 8, !tbaa !5
  %225 = invoke noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %224)
          to label %226 unwind label %234

226:                                              ; preds = %222
  %227 = sub i32 %225, 2
  %228 = icmp ult i32 %223, %227
  br i1 %228, label %238, label %229

229:                                              ; preds = %226
  store i32 8, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  br label %655

230:                                              ; preds = %220
  %231 = landingpad { ptr, i32 }
          cleanup
  %232 = extractvalue { ptr, i32 } %231, 0
  store ptr %232, ptr %13, align 8
  %233 = extractvalue { ptr, i32 } %231, 1
  store i32 %233, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #9
  br label %994

234:                                              ; preds = %222
  %235 = landingpad { ptr, i32 }
          cleanup
  %236 = extractvalue { ptr, i32 } %235, 0
  store ptr %236, ptr %13, align 8
  %237 = extractvalue { ptr, i32 } %235, 1
  store i32 %237, ptr %14, align 4
  br label %654

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

239:                                              ; preds = %646, %238
  %240 = load i32, ptr %34, align 4, !tbaa !11
  %241 = load ptr, ptr %16, align 8, !tbaa !5
  %242 = invoke noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %241)
          to label %243 unwind label %247

243:                                              ; preds = %239
  %244 = sub i32 %242, 2
  %245 = icmp ult i32 %240, %244
  br i1 %245, label %251, label %246

246:                                              ; preds = %243
  store i32 11, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  br label %650

247:                                              ; preds = %313, %251, %239
  %248 = landingpad { ptr, i32 }
          cleanup
  %249 = extractvalue { ptr, i32 } %248, 0
  store ptr %249, ptr %13, align 8
  %250 = extractvalue { ptr, i32 } %248, 1
  store i32 %250, ptr %14, align 4
  br label %649

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

313:                                              ; preds = %251
  store float %312, ptr %30, align 4, !tbaa !9
  %314 = load ptr, ptr %16, align 8, !tbaa !5
  %315 = load float, ptr %25, align 4, !tbaa !9
  %316 = load float, ptr %26, align 4, !tbaa !9
  %317 = invoke noundef float @_Z5bilinP12ImageContentff(ptr noundef %314, float noundef %315, float noundef %316)
          to label %318 unwind label %247

318:                                              ; preds = %313
  store float %317, ptr %31, align 4, !tbaa !9
  %319 = load float, ptr %29, align 4, !tbaa !9
  %320 = load float, ptr %30, align 4, !tbaa !9
  %321 = fcmp olt float %319, %320
  br i1 %321, label %330, label %322

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

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

330:                                              ; preds = %326, %322, %318
  br label %646

331:                                              ; preds = %326
  %332 = load float, ptr %29, align 4, !tbaa !9
  %333 = load float, ptr %10, align 4, !tbaa !9
  %334 = fcmp ogt float %332, %333
  br i1 %334, label %335, label %347

335:                                              ; preds = %331
  %336 = load float, ptr %11, align 4, !tbaa !9
  %337 = load ptr, ptr %7, align 8, !tbaa !5
  %338 = getelementptr inbounds %class.ImageContent, ptr %337, i32 0, i32 4
  %339 = load ptr, ptr %338, align 8, !tbaa !13
  %340 = load i32, ptr %33, align 4, !tbaa !11
  %341 = sext i32 %340 to i64
  %342 = getelementptr inbounds ptr, ptr %339, i64 %341
  %343 = load ptr, ptr %342, align 8, !tbaa !5
  %344 = load i32, ptr %34, align 4, !tbaa !11
  %345 = sext i32 %344 to i64
  %346 = getelementptr inbounds float, ptr %343, i64 %345
  store float %336, ptr %346, align 4, !tbaa !9
  br label %644

347:                                              ; preds = %331
  %348 = load float, ptr %29, align 4, !tbaa !9
  %349 = load float, ptr %9, align 4, !tbaa !9
  %350 = fcmp ogt float %348, %349
  br i1 %350, label %351, label %425

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

367:                                              ; preds = %351
  %368 = load ptr, ptr %7, align 8, !tbaa !5
  %369 = getelementptr inbounds %class.ImageContent, ptr %368, i32 0, i32 4
  %370 = load ptr, ptr %369, align 8, !tbaa !13
  %371 = load i32, ptr %33, align 4, !tbaa !11
  %372 = sub nsw i32 %371, 1
  %373 = sext i32 %372 to i64
  %374 = getelementptr inbounds ptr, ptr %370, i64 %373
  %375 = load ptr, ptr %374, align 8, !tbaa !5
  %376 = load i32, ptr %34, align 4, !tbaa !11
  %377 = sext i32 %376 to i64
  %378 = getelementptr inbounds float, ptr %375, i64 %377
  %379 = load float, ptr %378, align 4, !tbaa !9
  %380 = load float, ptr %11, align 4, !tbaa !9
  %381 = fcmp oeq float %379, %380
  br i1 %381, label %413, label %382

382:                                              ; preds = %367
  %383 = load ptr, ptr %7, align 8, !tbaa !5
  %384 = getelementptr inbounds %class.ImageContent, ptr %383, i32 0, i32 4
  %385 = load ptr, ptr %384, align 8, !tbaa !13
  %386 = load i32, ptr %33, align 4, !tbaa !11
  %387 = sub nsw i32 %386, 1
  %388 = sext i32 %387 to i64
  %389 = getelementptr inbounds ptr, ptr %385, i64 %388
  %390 = load ptr, ptr %389, align 8, !tbaa !5
  %391 = load i32, ptr %34, align 4, !tbaa !11
  %392 = add nsw i32 %391, 1
  %393 = sext i32 %392 to i64
  %394 = getelementptr inbounds float, ptr %390, i64 %393
  %395 = load float, ptr %394, align 4, !tbaa !9
  %396 = load float, ptr %11, align 4, !tbaa !9
  %397 = fcmp oeq float %395, %396
  br i1 %397, label %413, label %398

398:                                              ; preds = %382
  %399 = load ptr, ptr %7, align 8, !tbaa !5
  %400 = getelementptr inbounds %class.ImageContent, ptr %399, i32 0, i32 4
  %401 = load ptr, ptr %400, align 8, !tbaa !13
  %402 = load i32, ptr %33, align 4, !tbaa !11
  %403 = sext i32 %402 to i64
  %404 = getelementptr inbounds ptr, ptr %401, i64 %403
  %405 = load ptr, ptr %404, align 8, !tbaa !5
  %406 = load i32, ptr %34, align 4, !tbaa !11
  %407 = sub nsw i32 %406, 1
  %408 = sext i32 %407 to i64
  %409 = getelementptr inbounds float, ptr %405, i64 %408
  %410 = load float, ptr %409, align 4, !tbaa !9
  %411 = load float, ptr %11, align 4, !tbaa !9
  %412 = fcmp oeq float %410, %411
  br i1 %412, label %413, label %425

413:                                              ; preds = %398, %382, %367, %351
  %414 = load float, ptr %11, align 4, !tbaa !9
  %415 = load ptr, ptr %7, align 8, !tbaa !5
  %416 = getelementptr inbounds %class.ImageContent, ptr %415, i32 0, i32 4
  %417 = load ptr, ptr %416, align 8, !tbaa !13
  %418 = load i32, ptr %33, align 4, !tbaa !11
  %419 = sext i32 %418 to i64
  %420 = getelementptr inbounds ptr, ptr %417, i64 %419
  %421 = load ptr, ptr %420, align 8, !tbaa !5
  %422 = load i32, ptr %34, align 4, !tbaa !11
  %423 = sext i32 %422 to i64
  %424 = getelementptr inbounds float, ptr %421, i64 %423
  store float %414, ptr %424, align 4, !tbaa !9
  br label %643

425:                                              ; preds = %398, %347
  %426 = load float, ptr %29, align 4, !tbaa !9
  %427 = load float, ptr %9, align 4, !tbaa !9
  %428 = fcmp ogt float %426, %427
  br i1 %428, label %429, label %642

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

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

468:                                              ; preds = %429
  %469 = load ptr, ptr %17, align 8, !tbaa !5
  %470 = getelementptr inbounds %class.ImageContent, ptr %469, i32 0, i32 4
  %471 = load ptr, ptr %470, align 8, !tbaa !13
  %472 = load i32, ptr %33, align 4, !tbaa !11
  %473 = sub nsw i32 %472, 1
  %474 = sext i32 %473 to i64
  %475 = getelementptr inbounds ptr, ptr %471, i64 %474
  %476 = load ptr, ptr %475, align 8, !tbaa !5
  %477 = load i32, ptr %34, align 4, !tbaa !11
  %478 = sext i32 %477 to i64
  %479 = getelementptr inbounds float, ptr %476, i64 %478
  %480 = load float, ptr %479, align 4, !tbaa !9
  %481 = fcmp ogt float %480, 0.000000e+00
  br i1 %481, label %482, label %505

482:                                              ; preds = %468
  %483 = load ptr, ptr %17, align 8, !tbaa !5
  %484 = getelementptr inbounds %class.ImageContent, ptr %483, i32 0, i32 4
  %485 = load ptr, ptr %484, align 8, !tbaa !13
  %486 = load i32, ptr %33, align 4, !tbaa !11
  %487 = sub nsw i32 %486, 1
  %488 = sext i32 %487 to i64
  %489 = getelementptr inbounds ptr, ptr %485, i64 %488
  %490 = load ptr, ptr %489, align 8, !tbaa !5
  %491 = load i32, ptr %34, align 4, !tbaa !11
  %492 = sext i32 %491 to i64
  %493 = getelementptr inbounds float, ptr %490, i64 %492
  %494 = load float, ptr %493, align 4, !tbaa !9
  %495 = load ptr, ptr %17, align 8, !tbaa !5
  %496 = getelementptr inbounds %class.ImageContent, ptr %495, i32 0, i32 4
  %497 = load ptr, ptr %496, align 8, !tbaa !13
  %498 = load i32, ptr %33, align 4, !tbaa !11
  %499 = sext i32 %498 to i64
  %500 = getelementptr inbounds ptr, ptr %497, i64 %499
  %501 = load ptr, ptr %500, align 8, !tbaa !5
  %502 = load i32, ptr %34, align 4, !tbaa !11
  %503 = sext i32 %502 to i64
  %504 = getelementptr inbounds float, ptr %501, i64 %503
  store float %494, ptr %504, align 4, !tbaa !9
  br label %640

505:                                              ; preds = %468
  %506 = load ptr, ptr %17, align 8, !tbaa !5
  %507 = getelementptr inbounds %class.ImageContent, ptr %506, i32 0, i32 4
  %508 = load ptr, ptr %507, align 8, !tbaa !13
  %509 = load i32, ptr %33, align 4, !tbaa !11
  %510 = sub nsw i32 %509, 1
  %511 = sext i32 %510 to i64
  %512 = getelementptr inbounds ptr, ptr %508, i64 %511
  %513 = load ptr, ptr %512, align 8, !tbaa !5
  %514 = load i32, ptr %34, align 4, !tbaa !11
  %515 = add nsw i32 %514, 1
  %516 = sext i32 %515 to i64
  %517 = getelementptr inbounds float, ptr %513, i64 %516
  %518 = load float, ptr %517, align 4, !tbaa !9
  %519 = fcmp ogt float %518, 0.000000e+00
  br i1 %519, label %520, label %544

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

544:                                              ; preds = %505
  %545 = load ptr, ptr %17, align 8, !tbaa !5
  %546 = getelementptr inbounds %class.ImageContent, ptr %545, i32 0, i32 4
  %547 = load ptr, ptr %546, align 8, !tbaa !13
  %548 = load i32, ptr %33, align 4, !tbaa !11
  %549 = sext i32 %548 to i64
  %550 = getelementptr inbounds ptr, ptr %547, i64 %549
  %551 = load ptr, ptr %550, align 8, !tbaa !5
  %552 = load i32, ptr %34, align 4, !tbaa !11
  %553 = sub nsw i32 %552, 1
  %554 = sext i32 %553 to i64
  %555 = getelementptr inbounds float, ptr %551, i64 %554
  %556 = load float, ptr %555, align 4, !tbaa !9
  %557 = fcmp ogt float %556, 0.000000e+00
  br i1 %557, label %558, label %581

558:                                              ; preds = %544
  %559 = load ptr, ptr %17, align 8, !tbaa !5
  %560 = getelementptr inbounds %class.ImageContent, ptr %559, i32 0, i32 4
  %561 = load ptr, ptr %560, align 8, !tbaa !13
  %562 = load i32, ptr %33, align 4, !tbaa !11
  %563 = sext i32 %562 to i64
  %564 = getelementptr inbounds ptr, ptr %561, i64 %563
  %565 = load ptr, ptr %564, align 8, !tbaa !5
  %566 = load i32, ptr %34, align 4, !tbaa !11
  %567 = sub nsw i32 %566, 1
  %568 = sext i32 %567 to i64
  %569 = getelementptr inbounds float, ptr %565, i64 %568
  %570 = load float, ptr %569, align 4, !tbaa !9
  %571 = load ptr, ptr %17, align 8, !tbaa !5
  %572 = getelementptr inbounds %class.ImageContent, ptr %571, i32 0, i32 4
  %573 = load ptr, ptr %572, align 8, !tbaa !13
  %574 = load i32, ptr %33, align 4, !tbaa !11
  %575 = sext i32 %574 to i64
  %576 = getelementptr inbounds ptr, ptr %573, i64 %575
  %577 = load ptr, ptr %576, align 8, !tbaa !5
  %578 = load i32, ptr %34, align 4, !tbaa !11
  %579 = sext i32 %578 to i64
  %580 = getelementptr inbounds float, ptr %577, i64 %579
  store float %570, ptr %580, align 4, !tbaa !9
  br label %638

581:                                              ; preds = %544
  %582 = load ptr, ptr %17, align 8, !tbaa !5
  %583 = getelementptr inbounds %class.ImageContent, ptr %582, i32 0, i32 4
  %584 = load ptr, ptr %583, align 8, !tbaa !13
  %585 = load i32, ptr %33, align 4, !tbaa !11
  %586 = sext i32 %585 to i64
  %587 = getelementptr inbounds ptr, ptr %584, i64 %586
  %588 = load ptr, ptr %587, align 8, !tbaa !5
  %589 = load i32, ptr %34, align 4, !tbaa !11
  %590 = add nsw i32 %589, 1
  %591 = sext i32 %590 to i64
  %592 = getelementptr inbounds float, ptr %588, i64 %591
  %593 = load float, ptr %592, align 4, !tbaa !9
  %594 = fcmp ogt float %593, 0.000000e+00
  br i1 %594, label %595, label %618

595:                                              ; preds = %581
  %596 = load ptr, ptr %17, align 8, !tbaa !5
  %597 = getelementptr inbounds %class.ImageContent, ptr %596, i32 0, i32 4
  %598 = load ptr, ptr %597, align 8, !tbaa !13
  %599 = load i32, ptr %33, align 4, !tbaa !11
  %600 = sext i32 %599 to i64
  %601 = getelementptr inbounds ptr, ptr %598, i64 %600
  %602 = load ptr, ptr %601, align 8, !tbaa !5
  %603 = load i32, ptr %34, align 4, !tbaa !11
  %604 = add nsw i32 %603, 1
  %605 = sext i32 %604 to i64
  %606 = getelementptr inbounds float, ptr %602, i64 %605
  %607 = load float, ptr %606, align 4, !tbaa !9
  %608 = load ptr, ptr %17, align 8, !tbaa !5
  %609 = getelementptr inbounds %class.ImageContent, ptr %608, i32 0, i32 4
  %610 = load ptr, ptr %609, align 8, !tbaa !13
  %611 = load i32, ptr %33, align 4, !tbaa !11
  %612 = sext i32 %611 to i64
  %613 = getelementptr inbounds ptr, ptr %610, i64 %612
  %614 = load ptr, ptr %613, align 8, !tbaa !5
  %615 = load i32, ptr %34, align 4, !tbaa !11
  %616 = sext i32 %615 to i64
  %617 = getelementptr inbounds float, ptr %614, i64 %616
  store float %607, ptr %617, align 4, !tbaa !9
  br label %637

618:                                              ; preds = %581
  %619 = load float, ptr %32, align 4, !tbaa !9
  %620 = load ptr, ptr %17, align 8, !tbaa !5
  %621 = getelementptr inbounds %class.ImageContent, ptr %620, i32 0, i32 4
  %622 = load ptr, ptr %621, align 8, !tbaa !13
  %623 = load i32, ptr %33, align 4, !tbaa !11
  %624 = sext i32 %623 to i64
  %625 = getelementptr inbounds ptr, ptr %622, i64 %624
  %626 = load ptr, ptr %625, align 8, !tbaa !5
  %627 = load i32, ptr %34, align 4, !tbaa !11
  %628 = sext i32 %627 to i64
  %629 = getelementptr inbounds float, ptr %626, i64 %628
  store float %619, ptr %629, 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) %21, ptr noundef nonnull align 4 dereferenceable(4) %35)
          to label %630 unwind label %633

630:                                              ; preds = %618
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  %631 = load float, ptr %32, align 4, !tbaa !9
  %632 = fadd float %631, 1.000000e+00
  store float %632, ptr %32, align 4, !tbaa !9
  br label %637

633:                                              ; preds = %618
  %634 = landingpad { ptr, i32 }
          cleanup
  %635 = extractvalue { ptr, i32 } %634, 0
  store ptr %635, ptr %13, align 8
  %636 = extractvalue { ptr, i32 } %634, 1
  store i32 %636, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  br label %649

637:                                              ; preds = %630, %595
  br label %638

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

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

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

641:                                              ; preds = %640, %444
  br label %642

642:                                              ; preds = %641, %425
  br label %643

643:                                              ; preds = %642, %413
  br label %644

644:                                              ; preds = %643, %335
  br label %645

645:                                              ; preds = %644
  br label %646

646:                                              ; preds = %645, %330
  %647 = load i32, ptr %34, align 4, !tbaa !11
  %648 = add nsw i32 %647, 1
  store i32 %648, ptr %34, align 4, !tbaa !11
  br label %239, !llvm.loop !18

649:                                              ; preds = %633, %247
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  br label %654

650:                                              ; preds = %246
  br label %651

651:                                              ; preds = %650
  %652 = load i32, ptr %33, align 4, !tbaa !11
  %653 = add nsw i32 %652, 1
  store i32 %653, ptr %33, align 4, !tbaa !11
  br label %222, !llvm.loop !19

654:                                              ; preds = %649, %234
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  br label %993

655:                                              ; preds = %229
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #9
  %656 = load ptr, ptr %7, align 8, !tbaa !5
  %657 = invoke noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %656)
          to label %658 unwind label %664

658:                                              ; preds = %655
  %659 = sub i32 %657, 2
  store i32 %659, ptr %36, align 4, !tbaa !11
  br label %660

660:                                              ; preds = %825, %658
  %661 = load i32, ptr %36, align 4, !tbaa !11
  %662 = icmp sgt i32 %661, 0
  br i1 %662, label %668, label %663

663:                                              ; preds = %660
  store i32 14, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  br label %829

664:                                              ; preds = %655
  %665 = landingpad { ptr, i32 }
          cleanup
  %666 = extractvalue { ptr, i32 } %665, 0
  store ptr %666, ptr %13, align 8
  %667 = extractvalue { ptr, i32 } %665, 1
  store i32 %667, ptr %14, align 4
  br label %828

668:                                              ; preds = %660
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #9
  %669 = load ptr, ptr %7, align 8, !tbaa !5
  %670 = invoke noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %669)
          to label %671 unwind label %677

671:                                              ; preds = %668
  %672 = sub i32 %670, 2
  store i32 %672, ptr %37, align 4, !tbaa !11
  br label %673

673:                                              ; preds = %821, %671
  %674 = load i32, ptr %37, align 4, !tbaa !11
  %675 = icmp sgt i32 %674, 0
  br i1 %675, label %681, label %676

676:                                              ; preds = %673
  store i32 17, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  br label %824

677:                                              ; preds = %668
  %678 = landingpad { ptr, i32 }
          cleanup
  %679 = extractvalue { ptr, i32 } %678, 0
  store ptr %679, ptr %13, align 8
  %680 = extractvalue { ptr, i32 } %678, 1
  store i32 %680, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  br label %828

681:                                              ; preds = %673
  %682 = load ptr, ptr %7, align 8, !tbaa !5
  %683 = getelementptr inbounds %class.ImageContent, ptr %682, i32 0, i32 4
  %684 = load ptr, ptr %683, align 8, !tbaa !13
  %685 = load i32, ptr %36, align 4, !tbaa !11
  %686 = sub nsw i32 %685, 1
  %687 = sext i32 %686 to i64
  %688 = getelementptr inbounds ptr, ptr %684, i64 %687
  %689 = load ptr, ptr %688, align 8, !tbaa !5
  %690 = load i32, ptr %37, align 4, !tbaa !11
  %691 = sub nsw i32 %690, 1
  %692 = sext i32 %691 to i64
  %693 = getelementptr inbounds float, ptr %689, i64 %692
  %694 = load float, ptr %693, align 4, !tbaa !9
  %695 = load float, ptr %11, align 4, !tbaa !9
  %696 = fcmp oeq float %694, %695
  br i1 %696, label %805, label %697

697:                                              ; preds = %681
  %698 = load ptr, ptr %7, align 8, !tbaa !5
  %699 = getelementptr inbounds %class.ImageContent, ptr %698, i32 0, i32 4
  %700 = load ptr, ptr %699, align 8, !tbaa !13
  %701 = load i32, ptr %36, align 4, !tbaa !11
  %702 = sub nsw i32 %701, 1
  %703 = sext i32 %702 to i64
  %704 = getelementptr inbounds ptr, ptr %700, i64 %703
  %705 = load ptr, ptr %704, align 8, !tbaa !5
  %706 = load i32, ptr %37, align 4, !tbaa !11
  %707 = sext i32 %706 to i64
  %708 = getelementptr inbounds float, ptr %705, i64 %707
  %709 = load float, ptr %708, align 4, !tbaa !9
  %710 = load float, ptr %11, align 4, !tbaa !9
  %711 = fcmp oeq float %709, %710
  br i1 %711, label %805, label %712

712:                                              ; preds = %697
  %713 = load ptr, ptr %7, align 8, !tbaa !5
  %714 = getelementptr inbounds %class.ImageContent, ptr %713, i32 0, i32 4
  %715 = load ptr, ptr %714, align 8, !tbaa !13
  %716 = load i32, ptr %36, align 4, !tbaa !11
  %717 = sub nsw i32 %716, 1
  %718 = sext i32 %717 to i64
  %719 = getelementptr inbounds ptr, ptr %715, i64 %718
  %720 = load ptr, ptr %719, align 8, !tbaa !5
  %721 = load i32, ptr %37, align 4, !tbaa !11
  %722 = add nsw i32 %721, 1
  %723 = sext i32 %722 to i64
  %724 = getelementptr inbounds float, ptr %720, i64 %723
  %725 = load float, ptr %724, align 4, !tbaa !9
  %726 = load float, ptr %11, align 4, !tbaa !9
  %727 = fcmp oeq float %725, %726
  br i1 %727, label %805, label %728

728:                                              ; preds = %712
  %729 = load ptr, ptr %7, align 8, !tbaa !5
  %730 = getelementptr inbounds %class.ImageContent, ptr %729, i32 0, i32 4
  %731 = load ptr, ptr %730, align 8, !tbaa !13
  %732 = load i32, ptr %36, align 4, !tbaa !11
  %733 = sext i32 %732 to i64
  %734 = getelementptr inbounds ptr, ptr %731, i64 %733
  %735 = load ptr, ptr %734, align 8, !tbaa !5
  %736 = load i32, ptr %37, align 4, !tbaa !11
  %737 = sub nsw i32 %736, 1
  %738 = sext i32 %737 to i64
  %739 = getelementptr inbounds float, ptr %735, i64 %738
  %740 = load float, ptr %739, align 4, !tbaa !9
  %741 = load float, ptr %11, align 4, !tbaa !9
  %742 = fcmp oeq float %740, %741
  br i1 %742, label %805, label %743

743:                                              ; preds = %728
  %744 = load ptr, ptr %7, align 8, !tbaa !5
  %745 = getelementptr inbounds %class.ImageContent, ptr %744, i32 0, i32 4
  %746 = load ptr, ptr %745, align 8, !tbaa !13
  %747 = load i32, ptr %36, align 4, !tbaa !11
  %748 = sext i32 %747 to i64
  %749 = getelementptr inbounds ptr, ptr %746, i64 %748
  %750 = load ptr, ptr %749, align 8, !tbaa !5
  %751 = load i32, ptr %37, align 4, !tbaa !11
  %752 = add nsw i32 %751, 1
  %753 = sext i32 %752 to i64
  %754 = getelementptr inbounds float, ptr %750, i64 %753
  %755 = load float, ptr %754, align 4, !tbaa !9
  %756 = load float, ptr %11, align 4, !tbaa !9
  %757 = fcmp oeq float %755, %756
  br i1 %757, label %805, label %758

758:                                              ; preds = %743
  %759 = load ptr, ptr %7, align 8, !tbaa !5
  %760 = getelementptr inbounds %class.ImageContent, ptr %759, i32 0, i32 4
  %761 = load ptr, ptr %760, align 8, !tbaa !13
  %762 = load i32, ptr %36, align 4, !tbaa !11
  %763 = add nsw i32 %762, 1
  %764 = sext i32 %763 to i64
  %765 = getelementptr inbounds ptr, ptr %761, i64 %764
  %766 = load ptr, ptr %765, align 8, !tbaa !5
  %767 = load i32, ptr %37, align 4, !tbaa !11
  %768 = sub nsw i32 %767, 1
  %769 = sext i32 %768 to i64
  %770 = getelementptr inbounds float, ptr %766, i64 %769
  %771 = load float, ptr %770, align 4, !tbaa !9
  %772 = load float, ptr %11, align 4, !tbaa !9
  %773 = fcmp oeq float %771, %772
  br i1 %773, label %805, label %774

774:                                              ; preds = %758
  %775 = load ptr, ptr %7, align 8, !tbaa !5
  %776 = getelementptr inbounds %class.ImageContent, ptr %775, i32 0, i32 4
  %777 = load ptr, ptr %776, align 8, !tbaa !13
  %778 = load i32, ptr %36, align 4, !tbaa !11
  %779 = add nsw i32 %778, 1
  %780 = sext i32 %779 to i64
  %781 = getelementptr inbounds ptr, ptr %777, i64 %780
  %782 = load ptr, ptr %781, align 8, !tbaa !5
  %783 = load i32, ptr %37, align 4, !tbaa !11
  %784 = sext i32 %783 to i64
  %785 = getelementptr inbounds float, ptr %782, i64 %784
  %786 = load float, ptr %785, align 4, !tbaa !9
  %787 = load float, ptr %11, align 4, !tbaa !9
  %788 = fcmp oeq float %786, %787
  br i1 %788, label %805, label %789

789:                                              ; preds = %774
  %790 = load ptr, ptr %7, align 8, !tbaa !5
  %791 = getelementptr inbounds %class.ImageContent, ptr %790, i32 0, i32 4
  %792 = load ptr, ptr %791, align 8, !tbaa !13
  %793 = load i32, ptr %36, align 4, !tbaa !11
  %794 = add nsw i32 %793, 1
  %795 = sext i32 %794 to i64
  %796 = getelementptr inbounds ptr, ptr %792, i64 %795
  %797 = load ptr, ptr %796, align 8, !tbaa !5
  %798 = load i32, ptr %37, align 4, !tbaa !11
  %799 = add nsw i32 %798, 1
  %800 = sext i32 %799 to i64
  %801 = getelementptr inbounds float, ptr %797, i64 %800
  %802 = load float, ptr %801, align 4, !tbaa !9
  %803 = load float, ptr %11, align 4, !tbaa !9
  %804 = fcmp oeq float %802, %803
  br i1 %804, label %805, label %820

805:                                              ; preds = %789, %774, %758, %743, %728, %712, %697, %681
  %806 = load ptr, ptr %17, align 8, !tbaa !5
  %807 = getelementptr inbounds %class.ImageContent, ptr %806, i32 0, i32 4
  %808 = load ptr, ptr %807, align 8, !tbaa !13
  %809 = load i32, ptr %36, align 4, !tbaa !11
  %810 = sext i32 %809 to i64
  %811 = getelementptr inbounds ptr, ptr %808, i64 %810
  %812 = load ptr, ptr %811, align 8, !tbaa !5
  %813 = load i32, ptr %37, align 4, !tbaa !11
  %814 = sext i32 %813 to i64
  %815 = getelementptr inbounds float, ptr %812, i64 %814
  %816 = load float, ptr %815, align 4, !tbaa !9
  %817 = fptosi float %816 to i32
  %818 = sext i32 %817 to i64
  %819 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %818) #9
  store i32 1, ptr %819, align 4, !tbaa !11
  br label %820

820:                                              ; preds = %805, %789
  br label %821

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

824:                                              ; preds = %676
  br label %825

825:                                              ; preds = %824
  %826 = load i32, ptr %36, align 4, !tbaa !11
  %827 = add nsw i32 %826, -1
  store i32 %827, ptr %36, align 4, !tbaa !11
  br label %660, !llvm.loop !21

828:                                              ; preds = %677, %664
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  br label %993

829:                                              ; preds = %663
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #9
  %830 = load ptr, ptr %7, align 8, !tbaa !5
  %831 = invoke noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %830)
          to label %832 unwind label %838

832:                                              ; preds = %829
  %833 = sub i32 %831, 2
  store i32 %833, ptr %38, align 4, !tbaa !11
  br label %834

834:                                              ; preds = %902, %832
  %835 = load i32, ptr %38, align 4, !tbaa !11
  %836 = icmp sgt i32 %835, 0
  br i1 %836, label %842, label %837

837:                                              ; preds = %834
  store i32 20, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  br label %906

838:                                              ; preds = %829
  %839 = landingpad { ptr, i32 }
          cleanup
  %840 = extractvalue { ptr, i32 } %839, 0
  store ptr %840, ptr %13, align 8
  %841 = extractvalue { ptr, i32 } %839, 1
  store i32 %841, ptr %14, align 4
  br label %905

842:                                              ; preds = %834
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #9
  %843 = load ptr, ptr %7, align 8, !tbaa !5
  %844 = invoke noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %843)
          to label %845 unwind label %851

845:                                              ; preds = %842
  %846 = sub i32 %844, 2
  store i32 %846, ptr %39, align 4, !tbaa !11
  br label %847

847:                                              ; preds = %898, %845
  %848 = load i32, ptr %39, align 4, !tbaa !11
  %849 = icmp sgt i32 %848, 0
  br i1 %849, label %855, label %850

850:                                              ; preds = %847
  store i32 23, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  br label %901

851:                                              ; preds = %842
  %852 = landingpad { ptr, i32 }
          cleanup
  %853 = extractvalue { ptr, i32 } %852, 0
  store ptr %853, ptr %13, align 8
  %854 = extractvalue { ptr, i32 } %852, 1
  store i32 %854, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  br label %905

855:                                              ; preds = %847
  %856 = load ptr, ptr %17, align 8, !tbaa !5
  %857 = getelementptr inbounds %class.ImageContent, ptr %856, i32 0, i32 4
  %858 = load ptr, ptr %857, align 8, !tbaa !13
  %859 = load i32, ptr %38, align 4, !tbaa !11
  %860 = sext i32 %859 to i64
  %861 = getelementptr inbounds ptr, ptr %858, i64 %860
  %862 = load ptr, ptr %861, align 8, !tbaa !5
  %863 = load i32, ptr %39, align 4, !tbaa !11
  %864 = sext i32 %863 to i64
  %865 = getelementptr inbounds float, ptr %862, i64 %864
  %866 = load float, ptr %865, align 4, !tbaa !9
  %867 = fcmp ogt float %866, 0.000000e+00
  br i1 %867, label %868, label %897

868:                                              ; preds = %855
  %869 = load ptr, ptr %17, align 8, !tbaa !5
  %870 = getelementptr inbounds %class.ImageContent, ptr %869, i32 0, i32 4
  %871 = load ptr, ptr %870, align 8, !tbaa !13
  %872 = load i32, ptr %38, align 4, !tbaa !11
  %873 = sext i32 %872 to i64
  %874 = getelementptr inbounds ptr, ptr %871, i64 %873
  %875 = load ptr, ptr %874, align 8, !tbaa !5
  %876 = load i32, ptr %39, align 4, !tbaa !11
  %877 = sext i32 %876 to i64
  %878 = getelementptr inbounds float, ptr %875, i64 %877
  %879 = load float, ptr %878, align 4, !tbaa !9
  %880 = fptosi float %879 to i32
  %881 = sext i32 %880 to i64
  %882 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %881) #9
  %883 = load i32, ptr %882, align 4, !tbaa !11
  %884 = icmp eq i32 %883, 1
  br i1 %884, label %885, label %897

885:                                              ; preds = %868
  %886 = load float, ptr %11, align 4, !tbaa !9
  %887 = load ptr, ptr %7, align 8, !tbaa !5
  %888 = getelementptr inbounds %class.ImageContent, ptr %887, i32 0, i32 4
  %889 = load ptr, ptr %888, align 8, !tbaa !13
  %890 = load i32, ptr %38, align 4, !tbaa !11
  %891 = sext i32 %890 to i64
  %892 = getelementptr inbounds ptr, ptr %889, i64 %891
  %893 = load ptr, ptr %892, align 8, !tbaa !5
  %894 = load i32, ptr %39, align 4, !tbaa !11
  %895 = sext i32 %894 to i64
  %896 = getelementptr inbounds float, ptr %893, i64 %895
  store float %886, ptr %896, align 4, !tbaa !9
  br label %897

897:                                              ; preds = %885, %868, %855
  br label %898

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

901:                                              ; preds = %850
  br label %902

902:                                              ; preds = %901
  %903 = load i32, ptr %38, align 4, !tbaa !11
  %904 = add nsw i32 %903, -1
  store i32 %904, ptr %38, align 4, !tbaa !11
  br label %834, !llvm.loop !23

905:                                              ; preds = %851, %838
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  br label %993

906:                                              ; preds = %837
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #9
  %907 = load ptr, ptr %7, align 8, !tbaa !5
  %908 = invoke noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %907)
          to label %909 unwind label %915

909:                                              ; preds = %906
  %910 = sub i32 %908, 2
  store i32 %910, ptr %40, align 4, !tbaa !11
  br label %911

911:                                              ; preds = %972, %909
  %912 = load i32, ptr %40, align 4, !tbaa !11
  %913 = icmp sgt i32 %912, 0
  br i1 %913, label %919, label %914

914:                                              ; preds = %911
  store i32 26, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  br label %976

915:                                              ; preds = %906
  %916 = landingpad { ptr, i32 }
          cleanup
  %917 = extractvalue { ptr, i32 } %916, 0
  store ptr %917, ptr %13, align 8
  %918 = extractvalue { ptr, i32 } %916, 1
  store i32 %918, ptr %14, align 4
  br label %975

919:                                              ; preds = %911
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #9
  %920 = load ptr, ptr %7, align 8, !tbaa !5
  %921 = invoke noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %920)
          to label %922 unwind label %928

922:                                              ; preds = %919
  %923 = sub i32 %921, 2
  store i32 %923, ptr %41, align 4, !tbaa !11
  br label %924

924:                                              ; preds = %968, %922
  %925 = load i32, ptr %41, align 4, !tbaa !11
  %926 = icmp sgt i32 %925, 0
  br i1 %926, label %932, label %927

927:                                              ; preds = %924
  store i32 29, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  br label %971

928:                                              ; preds = %919
  %929 = landingpad { ptr, i32 }
          cleanup
  %930 = extractvalue { ptr, i32 } %929, 0
  store ptr %930, ptr %13, align 8
  %931 = extractvalue { ptr, i32 } %929, 1
  store i32 %931, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  br label %975

932:                                              ; preds = %924
  %933 = load ptr, ptr %7, align 8, !tbaa !5
  %934 = getelementptr inbounds %class.ImageContent, ptr %933, i32 0, i32 4
  %935 = load ptr, ptr %934, align 8, !tbaa !13
  %936 = load i32, ptr %40, align 4, !tbaa !11
  %937 = sext i32 %936 to i64
  %938 = getelementptr inbounds ptr, ptr %935, i64 %937
  %939 = load ptr, ptr %938, align 8, !tbaa !5
  %940 = load i32, ptr %41, align 4, !tbaa !11
  %941 = sext i32 %940 to i64
  %942 = getelementptr inbounds float, ptr %939, i64 %941
  %943 = load float, ptr %942, align 4, !tbaa !9
  %944 = fcmp ogt float %943, 0.000000e+00
  br i1 %944, label %945, label %956

945:                                              ; preds = %932
  %946 = load ptr, ptr %7, align 8, !tbaa !5
  %947 = getelementptr inbounds %class.ImageContent, ptr %946, i32 0, i32 4
  %948 = load ptr, ptr %947, align 8, !tbaa !13
  %949 = load i32, ptr %40, align 4, !tbaa !11
  %950 = sext i32 %949 to i64
  %951 = getelementptr inbounds ptr, ptr %948, i64 %950
  %952 = load ptr, ptr %951, align 8, !tbaa !5
  %953 = load i32, ptr %41, align 4, !tbaa !11
  %954 = sext i32 %953 to i64
  %955 = getelementptr inbounds float, ptr %952, i64 %954
  store float 0.000000e+00, ptr %955, align 4, !tbaa !9
  br label %967

956:                                              ; preds = %932
  %957 = load ptr, ptr %7, align 8, !tbaa !5
  %958 = getelementptr inbounds %class.ImageContent, ptr %957, i32 0, i32 4
  %959 = load ptr, ptr %958, align 8, !tbaa !13
  %960 = load i32, ptr %40, align 4, !tbaa !11
  %961 = sext i32 %960 to i64
  %962 = getelementptr inbounds ptr, ptr %959, i64 %961
  %963 = load ptr, ptr %962, align 8, !tbaa !5
  %964 = load i32, ptr %41, align 4, !tbaa !11
  %965 = sext i32 %964 to i64
  %966 = getelementptr inbounds float, ptr %963, i64 %965
  store float 2.550000e+02, ptr %966, align 4, !tbaa !9
  br label %967

967:                                              ; preds = %956, %945
  br label %968

968:                                              ; preds = %967
  %969 = load i32, ptr %41, align 4, !tbaa !11
  %970 = add nsw i32 %969, -1
  store i32 %970, ptr %41, align 4, !tbaa !11
  br label %924, !llvm.loop !24

971:                                              ; preds = %927
  br label %972

972:                                              ; preds = %971
  %973 = load i32, ptr %40, align 4, !tbaa !11
  %974 = add nsw i32 %973, -1
  store i32 %974, ptr %40, align 4, !tbaa !11
  br label %911, !llvm.loop !25

975:                                              ; preds = %928, %915
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  br label %993

976:                                              ; preds = %914
  %977 = load ptr, ptr %12, align 8, !tbaa !5
  %978 = icmp eq ptr %977, null
  br i1 %978, label %980, label %979

979:                                              ; preds = %976
  call void @_ZN12ImageContentD1Ev(ptr noundef nonnull align 8 dereferenceable(80) %977) #9
  call void @_ZdlPvm(ptr noundef %977, i64 noundef 80) #11
  br label %980

980:                                              ; preds = %979, %976
  %981 = load ptr, ptr %15, align 8, !tbaa !5
  %982 = icmp eq ptr %981, null
  br i1 %982, label %984, label %983

983:                                              ; preds = %980
  call void @_ZN12ImageContentD1Ev(ptr noundef nonnull align 8 dereferenceable(80) %981) #9
  call void @_ZdlPvm(ptr noundef %981, i64 noundef 80) #11
  br label %984

984:                                              ; preds = %983, %980
  %985 = load ptr, ptr %16, align 8, !tbaa !5
  %986 = icmp eq ptr %985, null
  br i1 %986, label %988, label %987

987:                                              ; preds = %984
  call void @_ZN12ImageContentD1Ev(ptr noundef nonnull align 8 dereferenceable(80) %985) #9
  call void @_ZdlPvm(ptr noundef %985, i64 noundef 80) #11
  br label %988

988:                                              ; preds = %987, %984
  %989 = load ptr, ptr %17, align 8, !tbaa !5
  %990 = icmp eq ptr %989, null
  br i1 %990, label %992, label %991

991:                                              ; preds = %988
  call void @_ZN12ImageContentD1Ev(ptr noundef nonnull align 8 dereferenceable(80) %989) #9
  call void @_ZdlPvm(ptr noundef %989, i64 noundef 80) #11
  br label %992

992:                                              ; preds = %991, %988
  call void @_ZNSt6vectorIiSaIiEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %21) #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 @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #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 %12) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #9
  ret void

993:                                              ; preds = %975, %905, %828, %654
  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
  br label %994

994:                                              ; preds = %993, %230
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %21) #9
  br label %995

995:                                              ; preds = %994, %98
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #9
  br label %996

996:                                              ; preds = %995, %94
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #9
  br label %997

997:                                              ; preds = %996, %90
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #9
  br label %998

998:                                              ; preds = %997, %86
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #9
  br label %999

999:                                              ; preds = %998
  %1000 = load ptr, ptr %13, align 8
  %1001 = load i32, ptr %14, align 4
  %1002 = insertvalue { ptr, i32 } poison, ptr %1000, 0
  %1003 = insertvalue { ptr, i32 } %1002, i32 %1001, 1
  resume { ptr, i32 } %1003
}

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

declare void @_Z2dXP12ImageContentS0_f(ptr noundef, ptr noundef, float noundef) #7

declare void @_Z2dYP12ImageContentS0_f(ptr noundef, ptr noundef, float noundef) #7

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #8 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)) #0 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) #8 align 2

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

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

attributes #0 = { 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 #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #3 = { 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 #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 = { 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 #7 = { "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 = { 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 #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.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = 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 uwtable
declare dso_local noundef float @_Z5bilinP12ImageContentff(ptr noundef, float noundef, float noundef) local_unnamed_addr #0

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

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

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

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z10cannyEdgesP12ImageContentS0_fff(ptr noundef %0, ptr noundef %1, float noundef %2, float noundef %3, float noundef %4) local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %6 = alloca %"class.std::vector.18", 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 @_Z2dXP12ImageContentS0_f(ptr noundef nonnull %0, ptr noundef nonnull %9, float noundef %2)
  tail call void @_Z2dYP12ImageContentS0_f(ptr noundef nonnull %0, ptr noundef nonnull %13, float noundef %2)
  %25 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %17)
  %.not = icmp eq i32 %25, 0
  br i1 %.not, label %._crit_edge285, label %.preheader280.lr.ph

.preheader280.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 %17, i64 16
  br label %.preheader280

.preheader280:                                    ; preds = %.preheader280.lr.ph, %._crit_edge
  %indvars.iv321 = phi i64 [ 0, %.preheader280.lr.ph ], [ %indvars.iv.next322, %._crit_edge ]
  %29 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %17)
  %.not317 = icmp eq i32 %29, 0
  br i1 %.not317, label %._crit_edge, label %.lr.ph

._crit_edge285:                                   ; 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 %73 unwind label %91

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

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

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

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

._crit_edge:                                      ; preds = %69, %.preheader280
  %indvars.iv.next322 = add nuw nsw i64 %indvars.iv321, 1
  %38 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %17)
  %39 = zext i32 %38 to i64
  %40 = icmp ult i64 %indvars.iv.next322, %39
  br i1 %40, label %.preheader280, label %._crit_edge285, !llvm.loop !9

.lr.ph:                                           ; preds = %.preheader280, %69
  %indvars.iv = phi i64 [ %indvars.iv.next, %69 ], [ 0, %.preheader280 ]
  %41 = load ptr, ptr %26, align 8, !tbaa !11
  %42 = getelementptr inbounds ptr, ptr %41, i64 %indvars.iv321
  %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.iv321
  %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 = fmul float %53, %2
  %55 = load ptr, ptr %28, align 8, !tbaa !11
  %56 = getelementptr inbounds ptr, ptr %55, i64 %indvars.iv321
  %57 = load ptr, ptr %56, align 8, !tbaa !14
  %58 = getelementptr inbounds float, ptr %57, i64 %indvars.iv
  store float %54, ptr %58, align 4, !tbaa !15
  %59 = fcmp olt float %54, 1.000000e+00
  br i1 %59, label %60, label %69

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

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

73:                                               ; preds = %._crit_edge285
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #10
  %74 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %17)
  %75 = and i32 %74, -2
  %.not318 = icmp eq i32 %75, 2
  br i1 %.not318, label %._crit_edge292, label %.preheader.lr.ph

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

.preheader:                                       ; preds = %.preheader.lr.ph, %._crit_edge289
  %indvars.iv327 = phi i64 [ 1, %.preheader.lr.ph ], [ %indvars.iv.next328, %._crit_edge289 ]
  %.0251290 = phi float [ 1.000000e+00, %.preheader.lr.ph ], [ %.1.lcssa, %._crit_edge289 ]
  %81 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %17)
  %82 = and i32 %81, -2
  %.not319 = icmp eq i32 %82, 2
  br i1 %.not319, label %._crit_edge289, label %.lr.ph288

.lr.ph288:                                        ; preds = %.preheader
  %83 = trunc nuw nsw i64 %indvars.iv327 to i32
  %84 = uitofp nneg i32 %83 to float
  br label %99

._crit_edge292:                                   ; preds = %._crit_edge289, %73
  %85 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %1)
  %86 = add i32 %85, -2
  %87 = icmp sgt i32 %86, 0
  br i1 %87, label %.lr.ph299, label %._crit_edge300

.lr.ph299:                                        ; preds = %._crit_edge292
  %88 = getelementptr inbounds i8, ptr %1, i64 16
  %89 = getelementptr inbounds i8, ptr %21, i64 16
  %90 = zext nneg i32 %86 to i64
  br label %217

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

._crit_edge289:                                   ; preds = %.critedge, %.preheader
  %.1.lcssa = phi float [ %.0251290, %.preheader ], [ %.2, %.critedge ]
  %indvars.iv.next328 = add nuw nsw i64 %indvars.iv327, 1
  %93 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %17)
  %94 = add i32 %93, -2
  %95 = zext i32 %94 to i64
  %96 = icmp ult i64 %indvars.iv.next328, %95
  br i1 %96, label %.preheader, label %._crit_edge292, !llvm.loop !18

97:                                               ; preds = %122, %99
  %98 = landingpad { ptr, i32 }
          cleanup
  br label %324

99:                                               ; preds = %.lr.ph288, %.critedge
  %indvars.iv324 = phi i64 [ 1, %.lr.ph288 ], [ %indvars.iv.next325, %.critedge ]
  %.1286 = phi float [ %.0251290, %.lr.ph288 ], [ %.2, %.critedge ]
  %100 = load ptr, ptr %76, align 8, !tbaa !11
  %101 = getelementptr inbounds ptr, ptr %100, i64 %indvars.iv327
  %102 = load ptr, ptr %101, align 8, !tbaa !14
  %103 = getelementptr inbounds float, ptr %102, i64 %indvars.iv324
  %104 = load float, ptr %103, align 4, !tbaa !15
  %105 = load ptr, ptr %77, align 8, !tbaa !11
  %106 = getelementptr inbounds ptr, ptr %105, i64 %indvars.iv327
  %107 = load ptr, ptr %106, align 8, !tbaa !14
  %108 = getelementptr inbounds float, ptr %107, i64 %indvars.iv324
  %109 = load float, ptr %108, align 4, !tbaa !15
  %110 = load ptr, ptr %78, align 8, !tbaa !11
  %111 = getelementptr inbounds ptr, ptr %110, i64 %indvars.iv327
  %112 = load ptr, ptr %111, align 8, !tbaa !14
  %113 = getelementptr inbounds float, ptr %112, i64 %indvars.iv324
  %114 = load float, ptr %113, align 4, !tbaa !15
  %115 = trunc nuw nsw i64 %indvars.iv324 to i32
  %116 = uitofp nneg i32 %115 to float
  %117 = fdiv float %104, %114
  %118 = fadd float %117, %116
  %119 = fdiv float %109, %114
  %120 = fadd float %119, %84
  %121 = invoke noundef float @_Z5bilinP12ImageContentff(ptr noundef nonnull %17, float noundef %118, float noundef %120)
          to label %122 unwind label %97

122:                                              ; preds = %99
  %123 = fsub float %84, %119
  %124 = fsub float %116, %117
  %125 = invoke noundef float @_Z5bilinP12ImageContentff(ptr noundef nonnull %17, float noundef %124, float noundef %123)
          to label %126 unwind label %97

126:                                              ; preds = %122
  %127 = fcmp olt float %114, %121
  %128 = fcmp ole float %114, %125
  %or.cond.not279 = or i1 %127, %128
  %129 = fcmp olt float %114, %3
  %or.cond277 = or i1 %129, %or.cond.not279
  br i1 %or.cond277, label %.critedge, label %130

130:                                              ; preds = %126
  %131 = fcmp ogt float %114, %4
  br i1 %131, label %132, label %137

132:                                              ; preds = %130
  %133 = load ptr, ptr %79, align 8, !tbaa !11
  %134 = getelementptr inbounds ptr, ptr %133, i64 %indvars.iv327
  %135 = load ptr, ptr %134, align 8, !tbaa !14
  %136 = getelementptr inbounds float, ptr %135, i64 %indvars.iv324
  store float 1.150000e+02, ptr %136, align 4, !tbaa !15
  br label %.critedge

137:                                              ; preds = %130
  %138 = fcmp ogt float %114, %3
  br i1 %138, label %139, label %.critedge

139:                                              ; preds = %137
  %140 = load ptr, ptr %79, align 8, !tbaa !11
  %141 = getelementptr ptr, ptr %140, i64 %indvars.iv327
  %142 = getelementptr i8, ptr %141, i64 -8
  %143 = load ptr, ptr %142, align 8, !tbaa !14
  %144 = add nsw i64 %indvars.iv324, -1
  %145 = getelementptr inbounds float, ptr %143, i64 %144
  %146 = load float, ptr %145, align 4, !tbaa !15
  %147 = fcmp oeq float %146, 1.150000e+02
  br i1 %147, label %161, label %148

148:                                              ; preds = %139
  %149 = getelementptr inbounds float, ptr %143, i64 %indvars.iv324
  %150 = load float, ptr %149, align 4, !tbaa !15
  %151 = fcmp oeq float %150, 1.150000e+02
  br i1 %151, label %161, label %152

152:                                              ; preds = %148
  %153 = getelementptr inbounds i8, ptr %149, i64 4
  %154 = load float, ptr %153, align 4, !tbaa !15
  %155 = fcmp oeq float %154, 1.150000e+02
  br i1 %155, label %161, label %156

156:                                              ; preds = %152
  %157 = load ptr, ptr %141, align 8, !tbaa !14
  %158 = getelementptr inbounds float, ptr %157, i64 %144
  %159 = load float, ptr %158, align 4, !tbaa !15
  %160 = fcmp oeq float %159, 1.150000e+02
  br i1 %160, label %161, label %164

161:                                              ; preds = %156, %152, %148, %139
  %162 = load ptr, ptr %141, align 8, !tbaa !14
  %163 = getelementptr inbounds float, ptr %162, i64 %indvars.iv324
  store float 1.150000e+02, ptr %163, align 4, !tbaa !15
  br label %.critedge

164:                                              ; preds = %156
  %165 = load ptr, ptr %80, align 8, !tbaa !11
  %166 = getelementptr ptr, ptr %165, i64 %indvars.iv327
  %167 = getelementptr i8, ptr %166, i64 -8
  %168 = load ptr, ptr %167, align 8, !tbaa !14
  %169 = getelementptr inbounds float, ptr %168, i64 %144
  %170 = load float, ptr %169, align 4, !tbaa !15
  %171 = fcmp ogt float %170, 0.000000e+00
  br i1 %171, label %172, label %175

172:                                              ; preds = %164
  %173 = load ptr, ptr %166, align 8, !tbaa !14
  %174 = getelementptr inbounds float, ptr %173, i64 %indvars.iv324
  store float %170, ptr %174, align 4, !tbaa !15
  br label %.critedge

175:                                              ; preds = %164
  %176 = getelementptr inbounds float, ptr %168, i64 %indvars.iv324
  %177 = load float, ptr %176, align 4, !tbaa !15
  %178 = fcmp ogt float %177, 0.000000e+00
  br i1 %178, label %179, label %182

179:                                              ; preds = %175
  %180 = load ptr, ptr %166, align 8, !tbaa !14
  %181 = getelementptr inbounds float, ptr %180, i64 %indvars.iv324
  store float %177, ptr %181, align 4, !tbaa !15
  br label %.critedge

182:                                              ; preds = %175
  %183 = add nuw nsw i64 %indvars.iv324, 1
  %184 = getelementptr inbounds float, ptr %168, i64 %183
  %185 = load float, ptr %184, align 4, !tbaa !15
  %186 = fcmp ogt float %185, 0.000000e+00
  %187 = load ptr, ptr %166, align 8, !tbaa !14
  br i1 %186, label %188, label %190

188:                                              ; preds = %182
  %189 = getelementptr inbounds float, ptr %187, i64 %indvars.iv324
  store float %185, ptr %189, align 4, !tbaa !15
  br label %.critedge

190:                                              ; preds = %182
  %191 = getelementptr inbounds float, ptr %187, i64 %144
  %192 = load float, ptr %191, align 4, !tbaa !15
  %193 = fcmp ogt float %192, 0.000000e+00
  br i1 %193, label %194, label %196

194:                                              ; preds = %190
  %195 = getelementptr inbounds float, ptr %187, i64 %indvars.iv324
  store float %192, ptr %195, align 4, !tbaa !15
  br label %.critedge

196:                                              ; preds = %190
  %197 = getelementptr inbounds float, ptr %187, i64 %183
  %198 = load float, ptr %197, align 4, !tbaa !15
  %199 = fcmp ogt float %198, 0.000000e+00
  %200 = getelementptr inbounds float, ptr %187, i64 %indvars.iv324
  br i1 %199, label %201, label %202

201:                                              ; preds = %196
  store float %198, ptr %200, align 4, !tbaa !15
  br label %.critedge

202:                                              ; preds = %196
  store float %.1286, ptr %200, 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 %203 unwind label %205

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

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

.critedge:                                        ; preds = %137, %161, %172, %188, %201, %203, %194, %179, %132, %126
  %.2 = phi float [ %.1286, %126 ], [ %.1286, %132 ], [ %.1286, %161 ], [ %.1286, %172 ], [ %.1286, %179 ], [ %.1286, %188 ], [ %.1286, %194 ], [ %.1286, %201 ], [ %204, %203 ], [ %.1286, %137 ]
  %indvars.iv.next325 = add nuw nsw i64 %indvars.iv324, 1
  %207 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %17)
  %208 = add i32 %207, -2
  %209 = trunc nsw i64 %indvars.iv.next325 to i32
  %210 = icmp ugt i32 %208, %209
  br i1 %210, label %99, label %._crit_edge289, !llvm.loop !19

._crit_edge300:                                   ; preds = %._crit_edge296, %._crit_edge292
  %211 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %1)
  %212 = add i32 %211, -2
  %213 = icmp sgt i32 %212, 0
  br i1 %213, label %.lr.ph307, label %._crit_edge308

.lr.ph307:                                        ; preds = %._crit_edge300
  %214 = getelementptr inbounds i8, ptr %21, i64 16
  %215 = getelementptr inbounds i8, ptr %1, i64 16
  %216 = zext nneg i32 %212 to i64
  br label %279

217:                                              ; preds = %.lr.ph299, %._crit_edge296
  %indvars.iv333 = phi i64 [ %90, %.lr.ph299 ], [ %indvars.iv.next334, %._crit_edge296 ]
  %218 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %1)
  %219 = add i32 %218, -2
  %220 = icmp sgt i32 %219, 0
  br i1 %220, label %.lr.ph295, label %._crit_edge296

.lr.ph295:                                        ; preds = %217
  %221 = zext nneg i32 %219 to i64
  br label %223

._crit_edge296:                                   ; preds = %272, %217
  %indvars.iv.next334 = add nsw i64 %indvars.iv333, -1
  %222 = icmp sgt i64 %indvars.iv333, 1
  br i1 %222, label %217, label %._crit_edge300, !llvm.loop !20

223:                                              ; preds = %.lr.ph295, %272
  %indvars.iv330 = phi i64 [ %221, %.lr.ph295 ], [ %indvars.iv.next331, %272 ]
  %224 = load ptr, ptr %88, align 8, !tbaa !11
  %225 = getelementptr ptr, ptr %224, i64 %indvars.iv333
  %226 = getelementptr i8, ptr %225, i64 -8
  %227 = load ptr, ptr %226, align 8, !tbaa !14
  %indvars.iv.next331 = add nsw i64 %indvars.iv330, -1
  %228 = getelementptr inbounds float, ptr %227, i64 %indvars.iv.next331
  %229 = load float, ptr %228, align 4, !tbaa !15
  %230 = fcmp oeq float %229, 1.150000e+02
  br i1 %230, label %263, label %231

231:                                              ; preds = %223
  %232 = getelementptr inbounds float, ptr %227, i64 %indvars.iv330
  %233 = load float, ptr %232, align 4, !tbaa !15
  %234 = fcmp oeq float %233, 1.150000e+02
  br i1 %234, label %263, label %235

235:                                              ; preds = %231
  %236 = add nuw nsw i64 %indvars.iv330, 1
  %237 = getelementptr inbounds float, ptr %227, i64 %236
  %238 = load float, ptr %237, align 4, !tbaa !15
  %239 = fcmp oeq float %238, 1.150000e+02
  br i1 %239, label %263, label %240

240:                                              ; preds = %235
  %241 = load ptr, ptr %225, align 8, !tbaa !14
  %242 = getelementptr inbounds float, ptr %241, i64 %indvars.iv.next331
  %243 = load float, ptr %242, align 4, !tbaa !15
  %244 = fcmp oeq float %243, 1.150000e+02
  br i1 %244, label %263, label %245

245:                                              ; preds = %240
  %246 = getelementptr inbounds float, ptr %241, i64 %236
  %247 = load float, ptr %246, align 4, !tbaa !15
  %248 = fcmp oeq float %247, 1.150000e+02
  br i1 %248, label %263, label %249

249:                                              ; preds = %245
  %250 = getelementptr inbounds i8, ptr %225, i64 8
  %251 = load ptr, ptr %250, align 8, !tbaa !14
  %252 = getelementptr inbounds float, ptr %251, i64 %indvars.iv.next331
  %253 = load float, ptr %252, align 4, !tbaa !15
  %254 = fcmp oeq float %253, 1.150000e+02
  br i1 %254, label %263, label %255

255:                                              ; preds = %249
  %256 = getelementptr inbounds float, ptr %251, i64 %indvars.iv330
  %257 = load float, ptr %256, align 4, !tbaa !15
  %258 = fcmp oeq float %257, 1.150000e+02
  br i1 %258, label %263, label %259

259:                                              ; preds = %255
  %260 = getelementptr inbounds float, ptr %251, i64 %236
  %261 = load float, ptr %260, align 4, !tbaa !15
  %262 = fcmp oeq float %261, 1.150000e+02
  br i1 %262, label %263, label %272

263:                                              ; preds = %259, %255, %249, %245, %240, %235, %231, %223
  %264 = load ptr, ptr %89, align 8, !tbaa !11
  %265 = getelementptr inbounds ptr, ptr %264, i64 %indvars.iv333
  %266 = load ptr, ptr %265, align 8, !tbaa !14
  %267 = getelementptr inbounds float, ptr %266, i64 %indvars.iv330
  %268 = load float, ptr %267, align 4, !tbaa !15
  %269 = fptosi float %268 to i32
  %270 = sext i32 %269 to i64
  %271 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %270) #10
  store i32 1, ptr %271, align 4, !tbaa !5
  br label %272

272:                                              ; preds = %259, %263
  %273 = icmp ugt i64 %indvars.iv330, 1
  br i1 %273, label %223, label %._crit_edge296, !llvm.loop !21

._crit_edge308:                                   ; preds = %._crit_edge304, %._crit_edge300
  %274 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %1)
  %275 = add i32 %274, -2
  %276 = icmp sgt i32 %275, 0
  br i1 %276, label %.lr.ph315, label %._crit_edge316

.lr.ph315:                                        ; preds = %._crit_edge308
  %277 = getelementptr inbounds i8, ptr %1, i64 16
  %278 = zext nneg i32 %275 to i64
  br label %305

279:                                              ; preds = %.lr.ph307, %._crit_edge304
  %indvars.iv339 = phi i64 [ %216, %.lr.ph307 ], [ %indvars.iv.next340, %._crit_edge304 ]
  %280 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %1)
  %281 = add i32 %280, -2
  %282 = icmp sgt i32 %281, 0
  br i1 %282, label %.lr.ph303, label %._crit_edge304

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

._crit_edge304:                                   ; preds = %303, %279
  %indvars.iv.next340 = add nsw i64 %indvars.iv339, -1
  %284 = icmp sgt i64 %indvars.iv339, 1
  br i1 %284, label %279, label %._crit_edge308, !llvm.loop !22

285:                                              ; preds = %.lr.ph303, %303
  %indvars.iv336 = phi i64 [ %283, %.lr.ph303 ], [ %indvars.iv.next337, %303 ]
  %286 = load ptr, ptr %214, align 8, !tbaa !11
  %287 = getelementptr inbounds ptr, ptr %286, i64 %indvars.iv339
  %288 = load ptr, ptr %287, align 8, !tbaa !14
  %289 = getelementptr inbounds float, ptr %288, i64 %indvars.iv336
  %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 %215, align 8, !tbaa !11
  %300 = getelementptr inbounds ptr, ptr %299, i64 %indvars.iv339
  %301 = load ptr, ptr %300, align 8, !tbaa !14
  %302 = getelementptr inbounds float, ptr %301, i64 %indvars.iv336
  store float 1.150000e+02, ptr %302, align 4, !tbaa !15
  br label %303

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

305:                                              ; preds = %.lr.ph315, %._crit_edge312
  %indvars.iv345 = phi i64 [ %278, %.lr.ph315 ], [ %indvars.iv.next346, %._crit_edge312 ]
  %306 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %1)
  %307 = add i32 %306, -2
  %308 = icmp sgt i32 %307, 0
  br i1 %308, label %.lr.ph311, label %._crit_edge312

.lr.ph311:                                        ; preds = %305
  %309 = load ptr, ptr %277, align 8, !tbaa !11
  %310 = getelementptr inbounds ptr, ptr %309, i64 %indvars.iv345
  %311 = load ptr, ptr %310, align 8, !tbaa !14
  %312 = zext nneg i32 %307 to i64
  %min.iters.check = icmp ult i32 %307, 8
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.ph

scalar.ph.preheader:                              ; preds = %middle.block, %.lr.ph311
  %indvars.iv342.ph = phi i64 [ %312, %.lr.ph311 ], [ %ind.end, %middle.block ]
  br label %scalar.ph

vector.ph:                                        ; preds = %.lr.ph311
  %n.vec = and i64 %312, 2147483640
  %ind.end = and i64 %312, 7
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = sub i64 %312, %index
  %313 = getelementptr inbounds float, ptr %311, i64 %offset.idx
  %314 = getelementptr inbounds i8, ptr %313, i64 -12
  %315 = getelementptr inbounds i8, ptr %313, i64 -28
  %wide.load = load <4 x float>, ptr %314, align 4, !tbaa !15
  %wide.load348 = load <4 x float>, ptr %315, align 4, !tbaa !15
  %316 = fcmp ogt <4 x float> %wide.load, zeroinitializer
  %reverse350 = select <4 x i1> %316, <4 x float> zeroinitializer, <4 x float> <float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02>
  store <4 x float> %reverse350, ptr %314, align 4, !tbaa !15
  %317 = fcmp ogt <4 x float> %wide.load348, zeroinitializer
  %reverse351 = select <4 x i1> %317, <4 x float> zeroinitializer, <4 x float> <float 2.550000e+02, float 2.550000e+02, float 2.550000e+02, float 2.550000e+02>
  store <4 x float> %reverse351, ptr %315, align 4, !tbaa !15
  %index.next = add nuw i64 %index, 8
  %318 = icmp eq i64 %index.next, %n.vec
  br i1 %318, label %middle.block, label %vector.body, !llvm.loop !24

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %n.vec, %312
  br i1 %cmp.n, label %._crit_edge312, label %scalar.ph.preheader

._crit_edge312:                                   ; preds = %scalar.ph, %middle.block, %305
  %indvars.iv.next346 = add nsw i64 %indvars.iv345, -1
  %319 = icmp sgt i64 %indvars.iv345, 1
  br i1 %319, label %305, label %._crit_edge316, !llvm.loop !27

scalar.ph:                                        ; preds = %scalar.ph.preheader, %scalar.ph
  %indvars.iv342 = phi i64 [ %indvars.iv.next343, %scalar.ph ], [ %indvars.iv342.ph, %scalar.ph.preheader ]
  %320 = getelementptr inbounds float, ptr %311, i64 %indvars.iv342
  %321 = load float, ptr %320, align 4, !tbaa !15
  %322 = fcmp ogt float %321, 0.000000e+00
  %. = select i1 %322, float 0.000000e+00, float 2.550000e+02
  store float %., ptr %320, align 4, !tbaa !15
  %indvars.iv.next343 = add nsw i64 %indvars.iv342, -1
  %323 = icmp ugt i64 %indvars.iv342, 1
  br i1 %323, label %scalar.ph, label %._crit_edge312, !llvm.loop !28

._crit_edge316:                                   ; preds = %._crit_edge312, %._crit_edge308
  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) %17) #10
  call void @_ZdlPvm(ptr noundef nonnull %17, 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 @_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

324:                                              ; preds = %97, %205, %91
  %.pn.pn = phi { ptr, i32 } [ %92, %91 ], [ %206, %205 ], [ %98, %97 ]
  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 %325

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

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

declare void @_Z2dXP12ImageContentS0_f(ptr noundef, ptr noundef, float noundef) local_unnamed_addr #7

declare void @_Z2dYP12ImageContentS0_f(ptr noundef, ptr noundef, float noundef) local_unnamed_addr #7

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #8 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 #0 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 #8 align 2

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

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

attributes #0 = { 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 #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #3 = { 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 #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 = { 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 #7 = { "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 = { 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 #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, !26}
!25 = !{!"llvm.loop.isvectorized", i32 1}
!26 = !{!"llvm.loop.unroll.runtime.disable"}
!27 = distinct !{!27, !10}
!28 = distinct !{!28, !10, !26, !25}


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