; LLVM IR from ox-vgg/vise :: src/search_engine/relja_retrival/external/KMCode_relja/descriptor/EdgeDetector._c71d2ab9 (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
declare dso_local void @_ZN12ImageContentC2Ejjf(ptr noundef nonnull align 8 dereferenceable(80), i32 noundef, i32 noundef, float noundef) unnamed_addr #0 align 2

; 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 #7 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

210:                                              ; preds = %179, %107
  br label %211

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

214:                                              ; preds = %106
  br label %215

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

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

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

220:                                              ; preds = %649, %219
  %221 = load i32, ptr %33, align 4, !tbaa !11
  %222 = load ptr, ptr %15, align 8, !tbaa !5
  %223 = invoke noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %222)
          to label %224 unwind label %232

224:                                              ; preds = %220
  %225 = sub i32 %223, 2
  %226 = icmp ult i32 %221, %225
  br i1 %226, label %236, label %227

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

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

232:                                              ; preds = %220
  %233 = landingpad { ptr, i32 }
          cleanup
  %234 = extractvalue { ptr, i32 } %233, 0
  store ptr %234, ptr %12, align 8
  %235 = extractvalue { ptr, i32 } %233, 1
  store i32 %235, ptr %13, align 4
  br label %652

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

237:                                              ; preds = %644, %236
  %238 = load i32, ptr %34, align 4, !tbaa !11
  %239 = load ptr, ptr %15, align 8, !tbaa !5
  %240 = invoke noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %239)
          to label %241 unwind label %245

241:                                              ; preds = %237
  %242 = sub i32 %240, 2
  %243 = icmp ult i32 %238, %242
  br i1 %243, label %249, label %244

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

245:                                              ; preds = %311, %249, %237
  %246 = landingpad { ptr, i32 }
          cleanup
  %247 = extractvalue { ptr, i32 } %246, 0
  store ptr %247, ptr %12, align 8
  %248 = extractvalue { ptr, i32 } %246, 1
  store i32 %248, ptr %13, align 4
  br label %647

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

311:                                              ; preds = %249
  store float %310, ptr %30, align 4, !tbaa !9
  %312 = load ptr, ptr %15, align 8, !tbaa !5
  %313 = load float, ptr %25, align 4, !tbaa !9
  %314 = load float, ptr %26, align 4, !tbaa !9
  %315 = invoke noundef float @_Z5bilinP12ImageContentff(ptr noundef %312, float noundef %313, float noundef %314)
          to label %316 unwind label %245

316:                                              ; preds = %311
  store float %315, ptr %31, align 4, !tbaa !9
  %317 = load float, ptr %29, align 4, !tbaa !9
  %318 = load float, ptr %30, align 4, !tbaa !9
  %319 = fcmp olt float %317, %318
  br i1 %319, label %328, label %320

320:                                              ; preds = %316
  %321 = load float, ptr %29, align 4, !tbaa !9
  %322 = load float, ptr %31, align 4, !tbaa !9
  %323 = fcmp ole float %321, %322
  br i1 %323, label %328, label %324

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

328:                                              ; preds = %324, %320, %316
  br label %644

329:                                              ; preds = %324
  %330 = load float, ptr %29, align 4, !tbaa !9
  %331 = load float, ptr %10, align 4, !tbaa !9
  %332 = fcmp ogt float %330, %331
  br i1 %332, label %333, label %345

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

345:                                              ; preds = %329
  %346 = load float, ptr %29, align 4, !tbaa !9
  %347 = load float, ptr %9, align 4, !tbaa !9
  %348 = fcmp ogt float %346, %347
  br i1 %348, label %349, label %423

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

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

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

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

411:                                              ; preds = %396, %380, %365, %349
  %412 = load float, ptr %22, align 4, !tbaa !9
  %413 = load ptr, ptr %7, align 8, !tbaa !5
  %414 = getelementptr inbounds %class.ImageContent, ptr %413, i32 0, i32 4
  %415 = load ptr, ptr %414, align 8, !tbaa !13
  %416 = load i32, ptr %33, align 4, !tbaa !11
  %417 = sext i32 %416 to i64
  %418 = getelementptr inbounds ptr, ptr %415, i64 %417
  %419 = load ptr, ptr %418, align 8, !tbaa !5
  %420 = load i32, ptr %34, align 4, !tbaa !11
  %421 = sext i32 %420 to i64
  %422 = getelementptr inbounds float, ptr %419, i64 %421
  store float %412, ptr %422, align 4, !tbaa !9
  br label %641

423:                                              ; preds = %396, %345
  %424 = load float, ptr %29, align 4, !tbaa !9
  %425 = load float, ptr %9, align 4, !tbaa !9
  %426 = fcmp ogt float %424, %425
  br i1 %426, label %427, label %640

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

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

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

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

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

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

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

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

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

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

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

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

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

635:                                              ; preds = %628, %593
  br label %636

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

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

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

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

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

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

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

643:                                              ; preds = %642
  br label %644

644:                                              ; preds = %643, %328
  %645 = load i32, ptr %34, align 4, !tbaa !11
  %646 = add nsw i32 %645, 1
  store i32 %646, ptr %34, align 4, !tbaa !11
  br label %237, !llvm.loop !18

647:                                              ; preds = %631, %245
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  br label %652

648:                                              ; preds = %244
  br label %649

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

652:                                              ; preds = %647, %232
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  br label %989

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

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

658:                                              ; preds = %823, %656
  %659 = load i32, ptr %36, align 4, !tbaa !11
  %660 = icmp sgt i32 %659, 0
  br i1 %660, label %666, label %661

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

662:                                              ; preds = %653
  %663 = landingpad { ptr, i32 }
          cleanup
  %664 = extractvalue { ptr, i32 } %663, 0
  store ptr %664, ptr %12, align 8
  %665 = extractvalue { ptr, i32 } %663, 1
  store i32 %665, ptr %13, align 4
  br label %826

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

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

671:                                              ; preds = %819, %669
  %672 = load i32, ptr %37, align 4, !tbaa !11
  %673 = icmp sgt i32 %672, 0
  br i1 %673, label %679, label %674

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

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

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

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

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

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

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

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

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

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

803:                                              ; preds = %787, %772, %756, %741, %726, %710, %695, %679
  %804 = load ptr, ptr %16, align 8, !tbaa !5
  %805 = getelementptr inbounds %class.ImageContent, ptr %804, i32 0, i32 4
  %806 = load ptr, ptr %805, align 8, !tbaa !13
  %807 = load i32, ptr %36, align 4, !tbaa !11
  %808 = sext i32 %807 to i64
  %809 = getelementptr inbounds ptr, ptr %806, i64 %808
  %810 = load ptr, ptr %809, align 8, !tbaa !5
  %811 = load i32, ptr %37, align 4, !tbaa !11
  %812 = sext i32 %811 to i64
  %813 = getelementptr inbounds float, ptr %810, i64 %812
  %814 = load float, ptr %813, align 4, !tbaa !9
  %815 = fptosi float %814 to i32
  %816 = sext i32 %815 to i64
  %817 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef %816) #9
  store i32 1, ptr %817, align 4, !tbaa !11
  br label %818

818:                                              ; preds = %803, %787
  br label %819

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

822:                                              ; preds = %674
  br label %823

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

826:                                              ; preds = %675, %662
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  br label %989

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

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

832:                                              ; preds = %900, %830
  %833 = load i32, ptr %38, align 4, !tbaa !11
  %834 = icmp sgt i32 %833, 0
  br i1 %834, label %840, label %835

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

836:                                              ; preds = %827
  %837 = landingpad { ptr, i32 }
          cleanup
  %838 = extractvalue { ptr, i32 } %837, 0
  store ptr %838, ptr %12, align 8
  %839 = extractvalue { ptr, i32 } %837, 1
  store i32 %839, ptr %13, align 4
  br label %903

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

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

845:                                              ; preds = %896, %843
  %846 = load i32, ptr %39, align 4, !tbaa !11
  %847 = icmp sgt i32 %846, 0
  br i1 %847, label %853, label %848

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

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

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

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

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

895:                                              ; preds = %883, %866, %853
  br label %896

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

899:                                              ; preds = %848
  br label %900

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

903:                                              ; preds = %849, %836
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  br label %989

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

905:                                              ; preds = %968, %904
  %906 = load i32, ptr %40, align 4, !tbaa !11
  %907 = load ptr, ptr %15, align 8, !tbaa !5
  %908 = invoke noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %907)
          to label %909 unwind label %912

909:                                              ; preds = %905
  %910 = icmp ult i32 %906, %908
  br i1 %910, label %916, label %911

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

912:                                              ; preds = %905
  %913 = landingpad { ptr, i32 }
          cleanup
  %914 = extractvalue { ptr, i32 } %913, 0
  store ptr %914, ptr %12, align 8
  %915 = extractvalue { ptr, i32 } %913, 1
  store i32 %915, ptr %13, align 4
  br label %971

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

917:                                              ; preds = %964, %916
  %918 = load i32, ptr %41, align 4, !tbaa !11
  %919 = load ptr, ptr %15, align 8, !tbaa !5
  %920 = invoke noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %919)
          to label %921 unwind label %924

921:                                              ; preds = %917
  %922 = icmp ult i32 %918, %920
  br i1 %922, label %928, label %923

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

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

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

941:                                              ; preds = %928
  %942 = load ptr, ptr %15, align 8, !tbaa !5
  %943 = getelementptr inbounds %class.ImageContent, ptr %942, i32 0, i32 4
  %944 = load ptr, ptr %943, align 8, !tbaa !13
  %945 = load i32, ptr %40, align 4, !tbaa !11
  %946 = sext i32 %945 to i64
  %947 = getelementptr inbounds ptr, ptr %944, i64 %946
  %948 = load ptr, ptr %947, align 8, !tbaa !5
  %949 = load i32, ptr %41, align 4, !tbaa !11
  %950 = sext i32 %949 to i64
  %951 = getelementptr inbounds float, ptr %948, i64 %950
  %952 = load float, ptr %951, align 4, !tbaa !9
  %953 = load ptr, ptr %7, align 8, !tbaa !5
  %954 = getelementptr inbounds %class.ImageContent, ptr %953, i32 0, i32 4
  %955 = load ptr, ptr %954, align 8, !tbaa !13
  %956 = load i32, ptr %40, align 4, !tbaa !11
  %957 = sext i32 %956 to i64
  %958 = getelementptr inbounds ptr, ptr %955, i64 %957
  %959 = load ptr, ptr %958, align 8, !tbaa !5
  %960 = load i32, ptr %41, align 4, !tbaa !11
  %961 = sext i32 %960 to i64
  %962 = getelementptr inbounds float, ptr %959, i64 %961
  store float %952, ptr %962, align 4, !tbaa !9
  br label %963

963:                                              ; preds = %941, %928
  br label %964

964:                                              ; preds = %963
  %965 = load i32, ptr %41, align 4, !tbaa !11
  %966 = add nsw i32 %965, 1
  store i32 %966, ptr %41, align 4, !tbaa !11
  br label %917, !llvm.loop !24

967:                                              ; preds = %923
  br label %968

968:                                              ; preds = %967
  %969 = load i32, ptr %40, align 4, !tbaa !11
  %970 = add nsw i32 %969, 1
  store i32 %970, ptr %40, align 4, !tbaa !11
  br label %905, !llvm.loop !25

971:                                              ; preds = %924, %912
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  br label %989

972:                                              ; preds = %911
  %973 = load ptr, ptr %11, align 8, !tbaa !5
  %974 = icmp eq ptr %973, null
  br i1 %974, label %976, label %975

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

976:                                              ; preds = %975, %972
  %977 = load ptr, ptr %14, 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
  call void @_ZNSt6vectorIiSaIiEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %20) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #9
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #9
  ret void

989:                                              ; preds = %971, %903, %826, %652
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #9
  br label %990

990:                                              ; preds = %989, %228
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %20) #9
  br label %991

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

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

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

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

995:                                              ; preds = %994
  %996 = load ptr, ptr %12, align 8
  %997 = load i32, ptr %13, align 4
  %998 = insertvalue { ptr, i32 } poison, ptr %996, 0
  %999 = insertvalue { ptr, i32 } %998, i32 %997, 1
  resume { ptr, i32 } %999
}

declare void @_Z3dX6P12ImageContentS0_(ptr noundef, ptr noundef) #8

declare void @_Z3dY6P12ImageContentS0_(ptr noundef, ptr noundef) #8

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 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { "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
declare dso_local void @_ZN12ImageContentC2Ejjf(ptr noundef nonnull align 8 dereferenceable(80), i32 noundef, i32 noundef, float noundef) unnamed_addr #0 align 2

; 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 #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #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 #7 align 2

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z14cannyEdgesGradP12ImageContentS0_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 @_Z3dX6P12ImageContentS0_(ptr noundef nonnull %0, ptr noundef nonnull %9)
  tail call void @_Z3dY6P12ImageContentS0_(ptr noundef nonnull %0, ptr noundef nonnull %13)
  %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.iv319 = phi i64 [ 0, %.preheader280.lr.ph ], [ %indvars.iv.next320, %._crit_edge ]
  %29 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %17)
  %.not313 = icmp eq i32 %29, 0
  br i1 %.not313, 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 %324

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

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

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

._crit_edge:                                      ; preds = %69, %.preheader280
  %indvars.iv.next320 = add nuw nsw i64 %indvars.iv319, 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.next320, %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.iv319
  %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.iv319
  %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.iv319
  %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.iv319
  %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.iv319
  %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
  %.not314 = icmp eq i32 %75, 2
  br i1 %.not314, label %._crit_edge292, label %.preheader279.lr.ph

.preheader279.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 %.preheader279

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

.lr.ph288:                                        ; preds = %.preheader279
  %83 = trunc nuw nsw i64 %indvars.iv325 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 %323

._crit_edge289:                                   ; preds = %.critedge, %.preheader279
  %.1.lcssa = phi float [ %.0249290, %.preheader279 ], [ %.2, %.critedge ]
  %indvars.iv.next326 = add nuw nsw i64 %indvars.iv325, 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.next326, %95
  br i1 %96, label %.preheader279, label %._crit_edge292, !llvm.loop !18

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

99:                                               ; preds = %.lr.ph288, %.critedge
  %indvars.iv322 = phi i64 [ 1, %.lr.ph288 ], [ %indvars.iv.next323, %.critedge ]
  %.1286 = phi float [ %.0249290, %.lr.ph288 ], [ %.2, %.critedge ]
  %100 = load ptr, ptr %76, align 8, !tbaa !11
  %101 = getelementptr inbounds ptr, ptr %100, i64 %indvars.iv325
  %102 = load ptr, ptr %101, align 8, !tbaa !14
  %103 = getelementptr inbounds float, ptr %102, i64 %indvars.iv322
  %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.iv325
  %107 = load ptr, ptr %106, align 8, !tbaa !14
  %108 = getelementptr inbounds float, ptr %107, i64 %indvars.iv322
  %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.iv325
  %112 = load ptr, ptr %111, align 8, !tbaa !14
  %113 = getelementptr inbounds float, ptr %112, i64 %indvars.iv322
  %114 = load float, ptr %113, align 4, !tbaa !15
  %115 = trunc nuw nsw i64 %indvars.iv322 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.not277 = or i1 %127, %128
  %129 = fcmp olt float %114, %3
  %or.cond275 = or i1 %129, %or.cond.not277
  br i1 %or.cond275, 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.iv325
  %135 = load ptr, ptr %134, align 8, !tbaa !14
  %136 = getelementptr inbounds float, ptr %135, i64 %indvars.iv322
  store float 1.850000e+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.iv325
  %142 = getelementptr i8, ptr %141, i64 -8
  %143 = load ptr, ptr %142, align 8, !tbaa !14
  %144 = add nsw i64 %indvars.iv322, -1
  %145 = getelementptr inbounds float, ptr %143, i64 %144
  %146 = load float, ptr %145, align 4, !tbaa !15
  %147 = fcmp oeq float %146, 1.850000e+02
  br i1 %147, label %161, label %148

148:                                              ; preds = %139
  %149 = getelementptr inbounds float, ptr %143, i64 %indvars.iv322
  %150 = load float, ptr %149, align 4, !tbaa !15
  %151 = fcmp oeq float %150, 1.850000e+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.850000e+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.850000e+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.iv322
  store float 1.850000e+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.iv325
  %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.iv322
  store float %170, ptr %174, align 4, !tbaa !15
  br label %.critedge

175:                                              ; preds = %164
  %176 = getelementptr inbounds float, ptr %168, i64 %indvars.iv322
  %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.iv322
  store float %177, ptr %181, align 4, !tbaa !15
  br label %.critedge

182:                                              ; preds = %175
  %183 = add nuw nsw i64 %indvars.iv322, 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.iv322
  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.iv322
  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.iv322
  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 %323

.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.next323 = add nuw nsw i64 %indvars.iv322, 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.next323 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 %.preheader278

.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 %277

217:                                              ; preds = %.lr.ph299, %._crit_edge296
  %indvars.iv331 = phi i64 [ %90, %.lr.ph299 ], [ %indvars.iv.next332, %._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.next332 = add nsw i64 %indvars.iv331, -1
  %222 = icmp sgt i64 %indvars.iv331, 1
  br i1 %222, label %217, label %._crit_edge300, !llvm.loop !20

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

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

235:                                              ; preds = %231
  %236 = add nuw nsw i64 %indvars.iv328, 1
  %237 = getelementptr inbounds float, ptr %227, i64 %236
  %238 = load float, ptr %237, align 4, !tbaa !15
  %239 = fcmp oeq float %238, 1.850000e+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.next329
  %243 = load float, ptr %242, align 4, !tbaa !15
  %244 = fcmp oeq float %243, 1.850000e+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.850000e+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.next329
  %253 = load float, ptr %252, align 4, !tbaa !15
  %254 = fcmp oeq float %253, 1.850000e+02
  br i1 %254, label %263, label %255

255:                                              ; preds = %249
  %256 = getelementptr inbounds float, ptr %251, i64 %indvars.iv328
  %257 = load float, ptr %256, align 4, !tbaa !15
  %258 = fcmp oeq float %257, 1.850000e+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.850000e+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.iv331
  %266 = load ptr, ptr %265, align 8, !tbaa !14
  %267 = getelementptr inbounds float, ptr %266, i64 %indvars.iv328
  %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.iv328, 1
  br i1 %273, label %223, label %._crit_edge296, !llvm.loop !21

.preheader278:                                    ; preds = %._crit_edge304, %._crit_edge300
  %274 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %17)
  %.not316 = icmp eq i32 %274, 0
  br i1 %.not316, label %._crit_edge312, label %.preheader.lr.ph

.preheader.lr.ph:                                 ; preds = %.preheader278
  %275 = getelementptr inbounds i8, ptr %1, i64 16
  %276 = getelementptr inbounds i8, ptr %17, i64 16
  br label %.preheader

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

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

._crit_edge304:                                   ; preds = %301, %277
  %indvars.iv.next338 = add nsw i64 %indvars.iv337, -1
  %282 = icmp sgt i64 %indvars.iv337, 1
  br i1 %282, label %277, label %.preheader278, !llvm.loop !22

283:                                              ; preds = %.lr.ph303, %301
  %indvars.iv334 = phi i64 [ %281, %.lr.ph303 ], [ %indvars.iv.next335, %301 ]
  %284 = load ptr, ptr %214, align 8, !tbaa !11
  %285 = getelementptr inbounds ptr, ptr %284, i64 %indvars.iv337
  %286 = load ptr, ptr %285, align 8, !tbaa !14
  %287 = getelementptr inbounds float, ptr %286, i64 %indvars.iv334
  %288 = load float, ptr %287, align 4, !tbaa !15
  %289 = fcmp ogt float %288, 0.000000e+00
  br i1 %289, label %290, label %301

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

296:                                              ; preds = %290
  %297 = load ptr, ptr %215, align 8, !tbaa !11
  %298 = getelementptr inbounds ptr, ptr %297, i64 %indvars.iv337
  %299 = load ptr, ptr %298, align 8, !tbaa !14
  %300 = getelementptr inbounds float, ptr %299, i64 %indvars.iv334
  store float 1.850000e+02, ptr %300, align 4, !tbaa !15
  br label %301

301:                                              ; preds = %283, %290, %296
  %indvars.iv.next335 = add nsw i64 %indvars.iv334, -1
  %302 = icmp sgt i64 %indvars.iv334, 1
  br i1 %302, label %283, label %._crit_edge304, !llvm.loop !23

.preheader:                                       ; preds = %.preheader.lr.ph, %._crit_edge310
  %indvars.iv343 = phi i64 [ 0, %.preheader.lr.ph ], [ %indvars.iv.next344, %._crit_edge310 ]
  %303 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %17)
  %.not317 = icmp eq i32 %303, 0
  br i1 %.not317, label %._crit_edge310, label %.lr.ph309

._crit_edge310:                                   ; preds = %319, %.preheader
  %indvars.iv.next344 = add nuw nsw i64 %indvars.iv343, 1
  %304 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %17)
  %305 = zext i32 %304 to i64
  %306 = icmp ult i64 %indvars.iv.next344, %305
  br i1 %306, label %.preheader, label %._crit_edge312, !llvm.loop !24

.lr.ph309:                                        ; preds = %.preheader, %319
  %indvars.iv340 = phi i64 [ %indvars.iv.next341, %319 ], [ 0, %.preheader ]
  %307 = load ptr, ptr %275, align 8, !tbaa !11
  %308 = getelementptr inbounds ptr, ptr %307, i64 %indvars.iv343
  %309 = load ptr, ptr %308, align 8, !tbaa !14
  %310 = getelementptr inbounds float, ptr %309, i64 %indvars.iv340
  %311 = load float, ptr %310, align 4, !tbaa !15
  %312 = fcmp ogt float %311, 0.000000e+00
  br i1 %312, label %313, label %319

313:                                              ; preds = %.lr.ph309
  %314 = load ptr, ptr %276, align 8, !tbaa !11
  %315 = getelementptr inbounds ptr, ptr %314, i64 %indvars.iv343
  %316 = load ptr, ptr %315, align 8, !tbaa !14
  %317 = getelementptr inbounds float, ptr %316, i64 %indvars.iv340
  %318 = load float, ptr %317, align 4, !tbaa !15
  store float %318, ptr %310, align 4, !tbaa !15
  br label %319

319:                                              ; preds = %.lr.ph309, %313
  %indvars.iv.next341 = add nuw nsw i64 %indvars.iv340, 1
  %320 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %17)
  %321 = zext i32 %320 to i64
  %322 = icmp ult i64 %indvars.iv.next341, %321
  br i1 %322, label %.lr.ph309, label %._crit_edge310, !llvm.loop !25

._crit_edge312:                                   ; preds = %._crit_edge310, %.preheader278
  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

323:                                              ; 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 %324

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

declare void @_Z3dX6P12ImageContentS0_(ptr noundef, ptr noundef) local_unnamed_addr #8

declare void @_Z3dY6P12ImageContentS0_(ptr noundef, ptr noundef) local_unnamed_addr #8

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 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { builtin allocsize(0) }
attributes #10 = { nounwind }
attributes #11 = { builtin nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = distinct !{!9, !10}
!10 = !{!"llvm.loop.mustprogress"}
!11 = !{!12, !13, i64 16}
!12 = !{!"_ZTS12ImageContent", !6, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !13, i64 16, !13, i64 24, !13, i64 32, !13, i64 40, !13, i64 48, !13, i64 56, !13, i64 64, !13, i64 72}
!13 = !{!"any pointer", !7, i64 0}
!14 = !{!13, !13, i64 0}
!15 = !{!16, !16, i64 0}
!16 = !{!"float", !7, i64 0}
!17 = distinct !{!17, !10}
!18 = distinct !{!18, !10}
!19 = distinct !{!19, !10}
!20 = distinct !{!20, !10}
!21 = distinct !{!21, !10}
!22 = distinct !{!22, !10}
!23 = distinct !{!23, !10}
!24 = distinct !{!24, !10}
!25 = distinct !{!25, !10}


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