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

; 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.ImageContent = type { i32, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z5checkiiiii(i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 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: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80)) #2 align 2

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt4rintf(float noundef) #0

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZNK6Corner14getCornerScaleEv(ptr noundef nonnull align 4 dereferenceable(88)) #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZNK6Corner4getXEv(ptr noundef nonnull align 4 dereferenceable(88)) #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZNK6Corner4getYEv(ptr noundef nonnull align 4 dereferenceable(88)) #2 align 2

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z16drawColorCornersP12ImageContentRSt6vectorIP16CornerDescriptorSaIS3_EEPKcf(ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef %2, float noundef %3) #6 {
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca float, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca float, align 4
  %15 = alloca float, align 4
  %16 = alloca float, align 4
  %17 = alloca float, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store ptr %2, ptr %7, align 8, !tbaa !5
  store float %3, ptr %8, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #7
  store i32 2, ptr %11, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #7
  store i32 0, ptr %18, align 4, !tbaa !11
  br label %30

30:                                               ; preds = %703, %4
  %31 = load i32, ptr %18, align 4, !tbaa !11
  %32 = zext i32 %31 to i64
  %33 = load ptr, ptr %6, align 8, !tbaa !5
  %34 = call noundef i64 @_ZNKSt6vectorIP16CornerDescriptorSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %33) #7
  %35 = icmp ult i64 %32, %34
  br i1 %35, label %37, label %36

36:                                               ; preds = %30
  store i32 2, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #7
  br label %706

37:                                               ; preds = %30
  %38 = load ptr, ptr %6, align 8, !tbaa !5
  %39 = load i32, ptr %18, align 4, !tbaa !11
  %40 = zext i32 %39 to i64
  %41 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %38, i64 noundef %40) #7
  %42 = load ptr, ptr %41, align 8, !tbaa !5
  %43 = call noundef float @_ZNK6Corner14getCornerScaleEv(ptr noundef nonnull align 4 dereferenceable(88) %42)
  %44 = call noundef float @_ZSt4rintf(float noundef %43)
  %45 = fmul float 3.000000e+00, %44
  %46 = fptosi float %45 to i32
  store i32 %46, ptr %11, align 4, !tbaa !11
  %47 = load ptr, ptr %6, align 8, !tbaa !5
  %48 = load i32, ptr %18, align 4, !tbaa !11
  %49 = zext i32 %48 to i64
  %50 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %47, i64 noundef %49) #7
  %51 = load ptr, ptr %50, align 8, !tbaa !5
  %52 = call noundef float @_ZNK6Corner4getXEv(ptr noundef nonnull align 4 dereferenceable(88) %51)
  %53 = fptosi float %52 to i32
  store i32 %53, ptr %9, align 4, !tbaa !11
  %54 = load ptr, ptr %6, align 8, !tbaa !5
  %55 = load i32, ptr %18, align 4, !tbaa !11
  %56 = zext i32 %55 to i64
  %57 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %54, i64 noundef %56) #7
  %58 = load ptr, ptr %57, align 8, !tbaa !5
  %59 = call noundef float @_ZNK6Corner4getYEv(ptr noundef nonnull align 4 dereferenceable(88) %58)
  %60 = fptosi float %59 to i32
  store i32 %60, ptr %10, align 4, !tbaa !11
  store i32 2, ptr %13, align 4, !tbaa !11
  %61 = load i32, ptr %9, align 4, !tbaa !11
  %62 = load i32, ptr %10, align 4, !tbaa !11
  %63 = load ptr, ptr %5, align 8, !tbaa !5
  %64 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %63)
  %65 = load ptr, ptr %5, align 8, !tbaa !5
  %66 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %65)
  %67 = load i32, ptr %13, align 4, !tbaa !11
  %68 = call noundef i32 @_Z5checkiiiii(i32 noundef %61, i32 noundef %62, i32 noundef %64, i32 noundef %66, i32 noundef %67)
  %69 = icmp ne i32 %68, 0
  br i1 %69, label %70, label %702

70:                                               ; preds = %37
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #7
  store i32 -2, ptr %20, align 4, !tbaa !11
  br label %71

71:                                               ; preds = %101, %70
  %72 = load i32, ptr %20, align 4, !tbaa !11
  %73 = icmp sle i32 %72, 2
  br i1 %73, label %75, label %74

74:                                               ; preds = %71
  store i32 5, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #7
  br label %104

75:                                               ; preds = %71
  %76 = load float, ptr %8, align 4, !tbaa !9
  %77 = load ptr, ptr %5, align 8, !tbaa !5
  %78 = getelementptr inbounds %class.ImageContent, ptr %77, i32 0, i32 5
  %79 = load ptr, ptr %78, align 8, !tbaa !13
  %80 = load i32, ptr %10, align 4, !tbaa !11
  %81 = load i32, ptr %20, align 4, !tbaa !11
  %82 = add nsw i32 %80, %81
  %83 = sext i32 %82 to i64
  %84 = getelementptr inbounds ptr, ptr %79, i64 %83
  %85 = load ptr, ptr %84, align 8, !tbaa !5
  %86 = load i32, ptr %9, align 4, !tbaa !11
  %87 = sext i32 %86 to i64
  %88 = getelementptr inbounds float, ptr %85, i64 %87
  store float %76, ptr %88, align 4, !tbaa !9
  %89 = load ptr, ptr %5, align 8, !tbaa !5
  %90 = getelementptr inbounds %class.ImageContent, ptr %89, i32 0, i32 5
  %91 = load ptr, ptr %90, align 8, !tbaa !13
  %92 = load i32, ptr %10, align 4, !tbaa !11
  %93 = sext i32 %92 to i64
  %94 = getelementptr inbounds ptr, ptr %91, i64 %93
  %95 = load ptr, ptr %94, align 8, !tbaa !5
  %96 = load i32, ptr %9, align 4, !tbaa !11
  %97 = load i32, ptr %20, align 4, !tbaa !11
  %98 = add nsw i32 %96, %97
  %99 = sext i32 %98 to i64
  %100 = getelementptr inbounds float, ptr %95, i64 %99
  store float %76, ptr %100, align 4, !tbaa !9
  br label %101

101:                                              ; preds = %75
  %102 = load i32, ptr %20, align 4, !tbaa !11
  %103 = add nsw i32 %102, 1
  store i32 %103, ptr %20, align 4, !tbaa !11
  br label %71, !llvm.loop !15

104:                                              ; preds = %74
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #7
  %105 = load i32, ptr %11, align 4, !tbaa !11
  %106 = sub nsw i32 0, %105
  store i32 %106, ptr %21, align 4, !tbaa !11
  br label %107

107:                                              ; preds = %366, %104
  %108 = load i32, ptr %21, align 4, !tbaa !11
  %109 = load i32, ptr %11, align 4, !tbaa !11
  %110 = icmp sle i32 %108, %109
  br i1 %110, label %112, label %111

111:                                              ; preds = %107
  store i32 8, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #7
  br label %369

112:                                              ; preds = %107
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #7
  store i32 0, ptr %22, align 4, !tbaa !11
  br label %113

113:                                              ; preds = %362, %112
  %114 = load i32, ptr %22, align 4, !tbaa !11
  %115 = load i32, ptr %11, align 4, !tbaa !11
  %116 = icmp sle i32 %114, %115
  br i1 %116, label %118, label %117

117:                                              ; preds = %113
  store i32 11, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #7
  br label %365

118:                                              ; preds = %113
  %119 = load i32, ptr %11, align 4, !tbaa !11
  %120 = load i32, ptr %11, align 4, !tbaa !11
  %121 = mul nsw i32 %119, %120
  %122 = load i32, ptr %21, align 4, !tbaa !11
  %123 = load i32, ptr %21, align 4, !tbaa !11
  %124 = mul nsw i32 %122, %123
  %125 = sub nsw i32 %121, %124
  %126 = sitofp i32 %125 to float
  %127 = call noundef float @_ZSt4sqrtf(float noundef %126)
  %128 = call noundef float @_ZSt4rintf(float noundef %127)
  %129 = fptosi float %128 to i32
  store i32 %129, ptr %12, align 4, !tbaa !11
  %130 = load i32, ptr %9, align 4, !tbaa !11
  %131 = load i32, ptr %21, align 4, !tbaa !11
  %132 = add nsw i32 %130, %131
  %133 = load i32, ptr %10, align 4, !tbaa !11
  %134 = load i32, ptr %12, align 4, !tbaa !11
  %135 = add nsw i32 %133, %134
  %136 = load ptr, ptr %5, align 8, !tbaa !5
  %137 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %136)
  %138 = load ptr, ptr %5, align 8, !tbaa !5
  %139 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %138)
  %140 = load i32, ptr %13, align 4, !tbaa !11
  %141 = call noundef i32 @_Z5checkiiiii(i32 noundef %132, i32 noundef %135, i32 noundef %137, i32 noundef %139, i32 noundef %140)
  %142 = icmp ne i32 %141, 0
  br i1 %142, label %143, label %187

143:                                              ; preds = %118
  %144 = load float, ptr %8, align 4, !tbaa !9
  %145 = load ptr, ptr %5, align 8, !tbaa !5
  %146 = getelementptr inbounds %class.ImageContent, ptr %145, i32 0, i32 7
  %147 = load ptr, ptr %146, align 8, !tbaa !17
  %148 = load i32, ptr %10, align 4, !tbaa !11
  %149 = load i32, ptr %12, align 4, !tbaa !11
  %150 = add nsw i32 %148, %149
  %151 = sext i32 %150 to i64
  %152 = getelementptr inbounds ptr, ptr %147, i64 %151
  %153 = load ptr, ptr %152, align 8, !tbaa !5
  %154 = load i32, ptr %9, align 4, !tbaa !11
  %155 = load i32, ptr %21, align 4, !tbaa !11
  %156 = add nsw i32 %154, %155
  %157 = sext i32 %156 to i64
  %158 = getelementptr inbounds float, ptr %153, i64 %157
  store float %144, ptr %158, align 4, !tbaa !9
  %159 = load ptr, ptr %5, align 8, !tbaa !5
  %160 = getelementptr inbounds %class.ImageContent, ptr %159, i32 0, i32 6
  %161 = load ptr, ptr %160, align 8, !tbaa !18
  %162 = load i32, ptr %10, align 4, !tbaa !11
  %163 = load i32, ptr %12, align 4, !tbaa !11
  %164 = add nsw i32 %162, %163
  %165 = sext i32 %164 to i64
  %166 = getelementptr inbounds ptr, ptr %161, i64 %165
  %167 = load ptr, ptr %166, align 8, !tbaa !5
  %168 = load i32, ptr %9, align 4, !tbaa !11
  %169 = load i32, ptr %21, align 4, !tbaa !11
  %170 = add nsw i32 %168, %169
  %171 = sext i32 %170 to i64
  %172 = getelementptr inbounds float, ptr %167, i64 %171
  store float %144, ptr %172, align 4, !tbaa !9
  %173 = load ptr, ptr %5, align 8, !tbaa !5
  %174 = getelementptr inbounds %class.ImageContent, ptr %173, i32 0, i32 5
  %175 = load ptr, ptr %174, align 8, !tbaa !13
  %176 = load i32, ptr %10, align 4, !tbaa !11
  %177 = load i32, ptr %12, align 4, !tbaa !11
  %178 = add nsw i32 %176, %177
  %179 = sext i32 %178 to i64
  %180 = getelementptr inbounds ptr, ptr %175, i64 %179
  %181 = load ptr, ptr %180, align 8, !tbaa !5
  %182 = load i32, ptr %9, align 4, !tbaa !11
  %183 = load i32, ptr %21, align 4, !tbaa !11
  %184 = add nsw i32 %182, %183
  %185 = sext i32 %184 to i64
  %186 = getelementptr inbounds float, ptr %181, i64 %185
  store float %144, ptr %186, align 4, !tbaa !9
  br label %187

187:                                              ; preds = %143, %118
  %188 = load i32, ptr %9, align 4, !tbaa !11
  %189 = load i32, ptr %21, align 4, !tbaa !11
  %190 = add nsw i32 %188, %189
  %191 = load i32, ptr %10, align 4, !tbaa !11
  %192 = load i32, ptr %12, align 4, !tbaa !11
  %193 = sub nsw i32 %191, %192
  %194 = load ptr, ptr %5, align 8, !tbaa !5
  %195 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %194)
  %196 = load ptr, ptr %5, align 8, !tbaa !5
  %197 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %196)
  %198 = load i32, ptr %13, align 4, !tbaa !11
  %199 = call noundef i32 @_Z5checkiiiii(i32 noundef %190, i32 noundef %193, i32 noundef %195, i32 noundef %197, i32 noundef %198)
  %200 = icmp ne i32 %199, 0
  br i1 %200, label %201, label %245

201:                                              ; preds = %187
  %202 = load float, ptr %8, align 4, !tbaa !9
  %203 = load ptr, ptr %5, align 8, !tbaa !5
  %204 = getelementptr inbounds %class.ImageContent, ptr %203, i32 0, i32 7
  %205 = load ptr, ptr %204, align 8, !tbaa !17
  %206 = load i32, ptr %10, align 4, !tbaa !11
  %207 = load i32, ptr %12, align 4, !tbaa !11
  %208 = sub nsw i32 %206, %207
  %209 = sext i32 %208 to i64
  %210 = getelementptr inbounds ptr, ptr %205, i64 %209
  %211 = load ptr, ptr %210, align 8, !tbaa !5
  %212 = load i32, ptr %9, align 4, !tbaa !11
  %213 = load i32, ptr %21, align 4, !tbaa !11
  %214 = add nsw i32 %212, %213
  %215 = sext i32 %214 to i64
  %216 = getelementptr inbounds float, ptr %211, i64 %215
  store float %202, ptr %216, align 4, !tbaa !9
  %217 = load ptr, ptr %5, align 8, !tbaa !5
  %218 = getelementptr inbounds %class.ImageContent, ptr %217, i32 0, i32 6
  %219 = load ptr, ptr %218, align 8, !tbaa !18
  %220 = load i32, ptr %10, align 4, !tbaa !11
  %221 = load i32, ptr %12, align 4, !tbaa !11
  %222 = sub nsw i32 %220, %221
  %223 = sext i32 %222 to i64
  %224 = getelementptr inbounds ptr, ptr %219, i64 %223
  %225 = load ptr, ptr %224, align 8, !tbaa !5
  %226 = load i32, ptr %9, align 4, !tbaa !11
  %227 = load i32, ptr %21, align 4, !tbaa !11
  %228 = add nsw i32 %226, %227
  %229 = sext i32 %228 to i64
  %230 = getelementptr inbounds float, ptr %225, i64 %229
  store float %202, ptr %230, align 4, !tbaa !9
  %231 = load ptr, ptr %5, align 8, !tbaa !5
  %232 = getelementptr inbounds %class.ImageContent, ptr %231, i32 0, i32 5
  %233 = load ptr, ptr %232, align 8, !tbaa !13
  %234 = load i32, ptr %10, align 4, !tbaa !11
  %235 = load i32, ptr %12, align 4, !tbaa !11
  %236 = sub nsw i32 %234, %235
  %237 = sext i32 %236 to i64
  %238 = getelementptr inbounds ptr, ptr %233, i64 %237
  %239 = load ptr, ptr %238, align 8, !tbaa !5
  %240 = load i32, ptr %9, align 4, !tbaa !11
  %241 = load i32, ptr %21, align 4, !tbaa !11
  %242 = add nsw i32 %240, %241
  %243 = sext i32 %242 to i64
  %244 = getelementptr inbounds float, ptr %239, i64 %243
  store float %202, ptr %244, align 4, !tbaa !9
  br label %245

245:                                              ; preds = %201, %187
  %246 = load i32, ptr %9, align 4, !tbaa !11
  %247 = load i32, ptr %12, align 4, !tbaa !11
  %248 = add nsw i32 %246, %247
  %249 = load i32, ptr %10, align 4, !tbaa !11
  %250 = load i32, ptr %21, align 4, !tbaa !11
  %251 = add nsw i32 %249, %250
  %252 = load ptr, ptr %5, align 8, !tbaa !5
  %253 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %252)
  %254 = load ptr, ptr %5, align 8, !tbaa !5
  %255 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %254)
  %256 = load i32, ptr %13, align 4, !tbaa !11
  %257 = call noundef i32 @_Z5checkiiiii(i32 noundef %248, i32 noundef %251, i32 noundef %253, i32 noundef %255, i32 noundef %256)
  %258 = icmp ne i32 %257, 0
  br i1 %258, label %259, label %303

259:                                              ; preds = %245
  %260 = load float, ptr %8, align 4, !tbaa !9
  %261 = load ptr, ptr %5, align 8, !tbaa !5
  %262 = getelementptr inbounds %class.ImageContent, ptr %261, i32 0, i32 7
  %263 = load ptr, ptr %262, align 8, !tbaa !17
  %264 = load i32, ptr %10, align 4, !tbaa !11
  %265 = load i32, ptr %21, align 4, !tbaa !11
  %266 = add nsw i32 %264, %265
  %267 = sext i32 %266 to i64
  %268 = getelementptr inbounds ptr, ptr %263, i64 %267
  %269 = load ptr, ptr %268, align 8, !tbaa !5
  %270 = load i32, ptr %9, align 4, !tbaa !11
  %271 = load i32, ptr %12, align 4, !tbaa !11
  %272 = add nsw i32 %270, %271
  %273 = sext i32 %272 to i64
  %274 = getelementptr inbounds float, ptr %269, i64 %273
  store float %260, ptr %274, align 4, !tbaa !9
  %275 = load ptr, ptr %5, align 8, !tbaa !5
  %276 = getelementptr inbounds %class.ImageContent, ptr %275, i32 0, i32 6
  %277 = load ptr, ptr %276, align 8, !tbaa !18
  %278 = load i32, ptr %10, align 4, !tbaa !11
  %279 = load i32, ptr %21, align 4, !tbaa !11
  %280 = add nsw i32 %278, %279
  %281 = sext i32 %280 to i64
  %282 = getelementptr inbounds ptr, ptr %277, i64 %281
  %283 = load ptr, ptr %282, align 8, !tbaa !5
  %284 = load i32, ptr %9, align 4, !tbaa !11
  %285 = load i32, ptr %12, align 4, !tbaa !11
  %286 = add nsw i32 %284, %285
  %287 = sext i32 %286 to i64
  %288 = getelementptr inbounds float, ptr %283, i64 %287
  store float %260, ptr %288, align 4, !tbaa !9
  %289 = load ptr, ptr %5, align 8, !tbaa !5
  %290 = getelementptr inbounds %class.ImageContent, ptr %289, i32 0, i32 5
  %291 = load ptr, ptr %290, align 8, !tbaa !13
  %292 = load i32, ptr %10, align 4, !tbaa !11
  %293 = load i32, ptr %21, align 4, !tbaa !11
  %294 = add nsw i32 %292, %293
  %295 = sext i32 %294 to i64
  %296 = getelementptr inbounds ptr, ptr %291, i64 %295
  %297 = load ptr, ptr %296, align 8, !tbaa !5
  %298 = load i32, ptr %9, align 4, !tbaa !11
  %299 = load i32, ptr %12, align 4, !tbaa !11
  %300 = add nsw i32 %298, %299
  %301 = sext i32 %300 to i64
  %302 = getelementptr inbounds float, ptr %297, i64 %301
  store float %260, ptr %302, align 4, !tbaa !9
  br label %303

303:                                              ; preds = %259, %245
  %304 = load i32, ptr %9, align 4, !tbaa !11
  %305 = load i32, ptr %12, align 4, !tbaa !11
  %306 = sub nsw i32 %304, %305
  %307 = load i32, ptr %10, align 4, !tbaa !11
  %308 = load i32, ptr %21, align 4, !tbaa !11
  %309 = add nsw i32 %307, %308
  %310 = load ptr, ptr %5, align 8, !tbaa !5
  %311 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %310)
  %312 = load ptr, ptr %5, align 8, !tbaa !5
  %313 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %312)
  %314 = load i32, ptr %13, align 4, !tbaa !11
  %315 = call noundef i32 @_Z5checkiiiii(i32 noundef %306, i32 noundef %309, i32 noundef %311, i32 noundef %313, i32 noundef %314)
  %316 = icmp ne i32 %315, 0
  br i1 %316, label %317, label %361

317:                                              ; preds = %303
  %318 = load float, ptr %8, align 4, !tbaa !9
  %319 = load ptr, ptr %5, align 8, !tbaa !5
  %320 = getelementptr inbounds %class.ImageContent, ptr %319, i32 0, i32 7
  %321 = load ptr, ptr %320, align 8, !tbaa !17
  %322 = load i32, ptr %10, align 4, !tbaa !11
  %323 = load i32, ptr %21, align 4, !tbaa !11
  %324 = add nsw i32 %322, %323
  %325 = sext i32 %324 to i64
  %326 = getelementptr inbounds ptr, ptr %321, i64 %325
  %327 = load ptr, ptr %326, align 8, !tbaa !5
  %328 = load i32, ptr %9, align 4, !tbaa !11
  %329 = load i32, ptr %12, align 4, !tbaa !11
  %330 = sub nsw i32 %328, %329
  %331 = sext i32 %330 to i64
  %332 = getelementptr inbounds float, ptr %327, i64 %331
  store float %318, ptr %332, align 4, !tbaa !9
  %333 = load ptr, ptr %5, align 8, !tbaa !5
  %334 = getelementptr inbounds %class.ImageContent, ptr %333, i32 0, i32 6
  %335 = load ptr, ptr %334, align 8, !tbaa !18
  %336 = load i32, ptr %10, align 4, !tbaa !11
  %337 = load i32, ptr %21, align 4, !tbaa !11
  %338 = add nsw i32 %336, %337
  %339 = sext i32 %338 to i64
  %340 = getelementptr inbounds ptr, ptr %335, i64 %339
  %341 = load ptr, ptr %340, align 8, !tbaa !5
  %342 = load i32, ptr %9, align 4, !tbaa !11
  %343 = load i32, ptr %12, align 4, !tbaa !11
  %344 = sub nsw i32 %342, %343
  %345 = sext i32 %344 to i64
  %346 = getelementptr inbounds float, ptr %341, i64 %345
  store float %318, ptr %346, align 4, !tbaa !9
  %347 = load ptr, ptr %5, align 8, !tbaa !5
  %348 = getelementptr inbounds %class.ImageContent, ptr %347, i32 0, i32 5
  %349 = load ptr, ptr %348, align 8, !tbaa !13
  %350 = load i32, ptr %10, align 4, !tbaa !11
  %351 = load i32, ptr %21, align 4, !tbaa !11
  %352 = add nsw i32 %350, %351
  %353 = sext i32 %352 to i64
  %354 = getelementptr inbounds ptr, ptr %349, i64 %353
  %355 = load ptr, ptr %354, align 8, !tbaa !5
  %356 = load i32, ptr %9, align 4, !tbaa !11
  %357 = load i32, ptr %12, align 4, !tbaa !11
  %358 = sub nsw i32 %356, %357
  %359 = sext i32 %358 to i64
  %360 = getelementptr inbounds float, ptr %355, i64 %359
  store float %318, ptr %360, align 4, !tbaa !9
  br label %361

361:                                              ; preds = %317, %303
  br label %362

362:                                              ; preds = %361
  %363 = load i32, ptr %22, align 4, !tbaa !11
  %364 = add nsw i32 %363, 1
  store i32 %364, ptr %22, align 4, !tbaa !11
  br label %113, !llvm.loop !19

365:                                              ; preds = %117
  br label %366

366:                                              ; preds = %365
  %367 = load i32, ptr %21, align 4, !tbaa !11
  %368 = add nsw i32 %367, 1
  store i32 %368, ptr %21, align 4, !tbaa !11
  br label %107, !llvm.loop !20

369:                                              ; preds = %111
  %370 = load ptr, ptr %6, align 8, !tbaa !5
  %371 = load i32, ptr %18, align 4, !tbaa !11
  %372 = zext i32 %371 to i64
  %373 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %370, i64 noundef %372) #7
  %374 = load ptr, ptr %373, align 8, !tbaa !5
  %375 = call noundef float @_ZNK6Corner8getAngleEv(ptr noundef nonnull align 4 dereferenceable(88) %374)
  store float %375, ptr %14, align 4, !tbaa !9
  %376 = load float, ptr %14, align 4, !tbaa !9
  %377 = call noundef float @_ZSt3cosf(float noundef %376)
  store float %377, ptr %16, align 4, !tbaa !9
  %378 = load float, ptr %14, align 4, !tbaa !9
  %379 = call noundef float @_ZSt3sinf(float noundef %378)
  store float %379, ptr %15, align 4, !tbaa !9
  %380 = load float, ptr %16, align 4, !tbaa !9
  %381 = fcmp une float %380, 0.000000e+00
  br i1 %381, label %382, label %386

382:                                              ; preds = %369
  %383 = load float, ptr %15, align 4, !tbaa !9
  %384 = load float, ptr %16, align 4, !tbaa !9
  %385 = fdiv float %383, %384
  store float %385, ptr %17, align 4, !tbaa !9
  br label %387

386:                                              ; preds = %369
  store float 1.000000e+03, ptr %17, align 4, !tbaa !9
  br label %387

387:                                              ; preds = %386, %382
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #7
  %388 = load float, ptr %17, align 4, !tbaa !9
  %389 = fpext float %388 to double
  %390 = fcmp ogt double %389, -5.000000e-01
  br i1 %390, label %391, label %548

391:                                              ; preds = %387
  %392 = load float, ptr %17, align 4, !tbaa !9
  %393 = fpext float %392 to double
  %394 = fcmp olt double %393, 5.000000e-01
  br i1 %394, label %395, label %548

395:                                              ; preds = %391
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #7
  %396 = load float, ptr %16, align 4, !tbaa !9
  %397 = load i32, ptr %11, align 4, !tbaa !11
  %398 = sitofp i32 %397 to float
  %399 = fmul float %396, %398
  %400 = call noundef float @_ZSt4rintf(float noundef %399)
  %401 = fptosi float %400 to i32
  store i32 %401, ptr %24, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #7
  store i32 0, ptr %25, align 4, !tbaa !11
  br label %402

402:                                              ; preds = %471, %395
  %403 = load i32, ptr %25, align 4, !tbaa !11
  %404 = load i32, ptr %24, align 4, !tbaa !11
  %405 = icmp sle i32 %403, %404
  br i1 %405, label %407, label %406

406:                                              ; preds = %402
  store i32 14, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #7
  br label %474

407:                                              ; preds = %402
  %408 = load float, ptr %17, align 4, !tbaa !9
  %409 = load i32, ptr %25, align 4, !tbaa !11
  %410 = sitofp i32 %409 to float
  %411 = fmul float %408, %410
  %412 = call noundef float @_ZSt4rintf(float noundef %411)
  %413 = fptosi float %412 to i32
  store i32 %413, ptr %23, align 4, !tbaa !11
  %414 = load i32, ptr %9, align 4, !tbaa !11
  %415 = load i32, ptr %25, align 4, !tbaa !11
  %416 = add nsw i32 %414, %415
  %417 = load i32, ptr %10, align 4, !tbaa !11
  %418 = load i32, ptr %23, align 4, !tbaa !11
  %419 = add nsw i32 %417, %418
  %420 = load ptr, ptr %5, align 8, !tbaa !5
  %421 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %420)
  %422 = load ptr, ptr %5, align 8, !tbaa !5
  %423 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %422)
  %424 = call noundef i32 @_Z5checkiiiii(i32 noundef %416, i32 noundef %419, i32 noundef %421, i32 noundef %423, i32 noundef 2)
  %425 = icmp ne i32 %424, 0
  br i1 %425, label %426, label %470

426:                                              ; preds = %407
  %427 = load float, ptr %8, align 4, !tbaa !9
  %428 = load ptr, ptr %5, align 8, !tbaa !5
  %429 = getelementptr inbounds %class.ImageContent, ptr %428, i32 0, i32 7
  %430 = load ptr, ptr %429, align 8, !tbaa !17
  %431 = load i32, ptr %10, align 4, !tbaa !11
  %432 = load i32, ptr %23, align 4, !tbaa !11
  %433 = add nsw i32 %431, %432
  %434 = sext i32 %433 to i64
  %435 = getelementptr inbounds ptr, ptr %430, i64 %434
  %436 = load ptr, ptr %435, align 8, !tbaa !5
  %437 = load i32, ptr %9, align 4, !tbaa !11
  %438 = load i32, ptr %25, align 4, !tbaa !11
  %439 = add nsw i32 %437, %438
  %440 = sext i32 %439 to i64
  %441 = getelementptr inbounds float, ptr %436, i64 %440
  store float %427, ptr %441, align 4, !tbaa !9
  %442 = load ptr, ptr %5, align 8, !tbaa !5
  %443 = getelementptr inbounds %class.ImageContent, ptr %442, i32 0, i32 6
  %444 = load ptr, ptr %443, align 8, !tbaa !18
  %445 = load i32, ptr %10, align 4, !tbaa !11
  %446 = load i32, ptr %23, align 4, !tbaa !11
  %447 = add nsw i32 %445, %446
  %448 = sext i32 %447 to i64
  %449 = getelementptr inbounds ptr, ptr %444, i64 %448
  %450 = load ptr, ptr %449, align 8, !tbaa !5
  %451 = load i32, ptr %9, align 4, !tbaa !11
  %452 = load i32, ptr %25, align 4, !tbaa !11
  %453 = add nsw i32 %451, %452
  %454 = sext i32 %453 to i64
  %455 = getelementptr inbounds float, ptr %450, i64 %454
  store float %427, ptr %455, align 4, !tbaa !9
  %456 = load ptr, ptr %5, align 8, !tbaa !5
  %457 = getelementptr inbounds %class.ImageContent, ptr %456, i32 0, i32 5
  %458 = load ptr, ptr %457, align 8, !tbaa !13
  %459 = load i32, ptr %10, align 4, !tbaa !11
  %460 = load i32, ptr %23, align 4, !tbaa !11
  %461 = add nsw i32 %459, %460
  %462 = sext i32 %461 to i64
  %463 = getelementptr inbounds ptr, ptr %458, i64 %462
  %464 = load ptr, ptr %463, align 8, !tbaa !5
  %465 = load i32, ptr %9, align 4, !tbaa !11
  %466 = load i32, ptr %25, align 4, !tbaa !11
  %467 = add nsw i32 %465, %466
  %468 = sext i32 %467 to i64
  %469 = getelementptr inbounds float, ptr %464, i64 %468
  store float %427, ptr %469, align 4, !tbaa !9
  br label %470

470:                                              ; preds = %426, %407
  br label %471

471:                                              ; preds = %470
  %472 = load i32, ptr %25, align 4, !tbaa !11
  %473 = add nsw i32 %472, 1
  store i32 %473, ptr %25, align 4, !tbaa !11
  br label %402, !llvm.loop !21

474:                                              ; preds = %406
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #7
  %475 = load i32, ptr %24, align 4, !tbaa !11
  store i32 %475, ptr %26, align 4, !tbaa !11
  br label %476

476:                                              ; preds = %544, %474
  %477 = load i32, ptr %26, align 4, !tbaa !11
  %478 = icmp sle i32 %477, 0
  br i1 %478, label %480, label %479

479:                                              ; preds = %476
  store i32 17, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #7
  br label %547

480:                                              ; preds = %476
  %481 = load float, ptr %17, align 4, !tbaa !9
  %482 = load i32, ptr %26, align 4, !tbaa !11
  %483 = sitofp i32 %482 to float
  %484 = fmul float %481, %483
  %485 = call noundef float @_ZSt4rintf(float noundef %484)
  %486 = fptosi float %485 to i32
  store i32 %486, ptr %23, align 4, !tbaa !11
  %487 = load i32, ptr %9, align 4, !tbaa !11
  %488 = load i32, ptr %26, align 4, !tbaa !11
  %489 = add nsw i32 %487, %488
  %490 = load i32, ptr %10, align 4, !tbaa !11
  %491 = load i32, ptr %23, align 4, !tbaa !11
  %492 = add nsw i32 %490, %491
  %493 = load ptr, ptr %5, align 8, !tbaa !5
  %494 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %493)
  %495 = load ptr, ptr %5, align 8, !tbaa !5
  %496 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %495)
  %497 = call noundef i32 @_Z5checkiiiii(i32 noundef %489, i32 noundef %492, i32 noundef %494, i32 noundef %496, i32 noundef 2)
  %498 = icmp ne i32 %497, 0
  br i1 %498, label %499, label %543

499:                                              ; preds = %480
  %500 = load float, ptr %8, align 4, !tbaa !9
  %501 = load ptr, ptr %5, align 8, !tbaa !5
  %502 = getelementptr inbounds %class.ImageContent, ptr %501, i32 0, i32 7
  %503 = load ptr, ptr %502, align 8, !tbaa !17
  %504 = load i32, ptr %10, align 4, !tbaa !11
  %505 = load i32, ptr %23, align 4, !tbaa !11
  %506 = add nsw i32 %504, %505
  %507 = sext i32 %506 to i64
  %508 = getelementptr inbounds ptr, ptr %503, i64 %507
  %509 = load ptr, ptr %508, align 8, !tbaa !5
  %510 = load i32, ptr %9, align 4, !tbaa !11
  %511 = load i32, ptr %26, align 4, !tbaa !11
  %512 = add nsw i32 %510, %511
  %513 = sext i32 %512 to i64
  %514 = getelementptr inbounds float, ptr %509, i64 %513
  store float %500, ptr %514, align 4, !tbaa !9
  %515 = load ptr, ptr %5, align 8, !tbaa !5
  %516 = getelementptr inbounds %class.ImageContent, ptr %515, i32 0, i32 6
  %517 = load ptr, ptr %516, align 8, !tbaa !18
  %518 = load i32, ptr %10, align 4, !tbaa !11
  %519 = load i32, ptr %23, align 4, !tbaa !11
  %520 = add nsw i32 %518, %519
  %521 = sext i32 %520 to i64
  %522 = getelementptr inbounds ptr, ptr %517, i64 %521
  %523 = load ptr, ptr %522, align 8, !tbaa !5
  %524 = load i32, ptr %9, align 4, !tbaa !11
  %525 = load i32, ptr %26, align 4, !tbaa !11
  %526 = add nsw i32 %524, %525
  %527 = sext i32 %526 to i64
  %528 = getelementptr inbounds float, ptr %523, i64 %527
  store float %500, ptr %528, align 4, !tbaa !9
  %529 = load ptr, ptr %5, align 8, !tbaa !5
  %530 = getelementptr inbounds %class.ImageContent, ptr %529, i32 0, i32 5
  %531 = load ptr, ptr %530, align 8, !tbaa !13
  %532 = load i32, ptr %10, align 4, !tbaa !11
  %533 = load i32, ptr %23, align 4, !tbaa !11
  %534 = add nsw i32 %532, %533
  %535 = sext i32 %534 to i64
  %536 = getelementptr inbounds ptr, ptr %531, i64 %535
  %537 = load ptr, ptr %536, align 8, !tbaa !5
  %538 = load i32, ptr %9, align 4, !tbaa !11
  %539 = load i32, ptr %26, align 4, !tbaa !11
  %540 = add nsw i32 %538, %539
  %541 = sext i32 %540 to i64
  %542 = getelementptr inbounds float, ptr %537, i64 %541
  store float %500, ptr %542, align 4, !tbaa !9
  br label %543

543:                                              ; preds = %499, %480
  br label %544

544:                                              ; preds = %543
  %545 = load i32, ptr %26, align 4, !tbaa !11
  %546 = add nsw i32 %545, 1
  store i32 %546, ptr %26, align 4, !tbaa !11
  br label %476, !llvm.loop !22

547:                                              ; preds = %479
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #7
  br label %701

548:                                              ; preds = %391, %387
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #7
  %549 = load float, ptr %15, align 4, !tbaa !9
  %550 = load i32, ptr %11, align 4, !tbaa !11
  %551 = sitofp i32 %550 to float
  %552 = fmul float %549, %551
  %553 = call noundef float @_ZSt4rintf(float noundef %552)
  %554 = fptosi float %553 to i32
  store i32 %554, ptr %27, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #7
  store i32 0, ptr %28, align 4, !tbaa !11
  br label %555

555:                                              ; preds = %624, %548
  %556 = load i32, ptr %28, align 4, !tbaa !11
  %557 = load i32, ptr %27, align 4, !tbaa !11
  %558 = icmp sle i32 %556, %557
  br i1 %558, label %560, label %559

559:                                              ; preds = %555
  store i32 20, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #7
  br label %627

560:                                              ; preds = %555
  %561 = load i32, ptr %28, align 4, !tbaa !11
  %562 = sitofp i32 %561 to float
  %563 = load float, ptr %17, align 4, !tbaa !9
  %564 = fdiv float %562, %563
  %565 = call noundef float @_ZSt4rintf(float noundef %564)
  %566 = fptosi float %565 to i32
  store i32 %566, ptr %23, align 4, !tbaa !11
  %567 = load i32, ptr %9, align 4, !tbaa !11
  %568 = load i32, ptr %23, align 4, !tbaa !11
  %569 = add nsw i32 %567, %568
  %570 = load i32, ptr %10, align 4, !tbaa !11
  %571 = load i32, ptr %28, align 4, !tbaa !11
  %572 = add nsw i32 %570, %571
  %573 = load ptr, ptr %5, align 8, !tbaa !5
  %574 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %573)
  %575 = load ptr, ptr %5, align 8, !tbaa !5
  %576 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %575)
  %577 = call noundef i32 @_Z5checkiiiii(i32 noundef %569, i32 noundef %572, i32 noundef %574, i32 noundef %576, i32 noundef 2)
  %578 = icmp ne i32 %577, 0
  br i1 %578, label %579, label %623

579:                                              ; preds = %560
  %580 = load float, ptr %8, align 4, !tbaa !9
  %581 = load ptr, ptr %5, align 8, !tbaa !5
  %582 = getelementptr inbounds %class.ImageContent, ptr %581, i32 0, i32 7
  %583 = load ptr, ptr %582, align 8, !tbaa !17
  %584 = load i32, ptr %10, align 4, !tbaa !11
  %585 = load i32, ptr %28, align 4, !tbaa !11
  %586 = add nsw i32 %584, %585
  %587 = sext i32 %586 to i64
  %588 = getelementptr inbounds ptr, ptr %583, i64 %587
  %589 = load ptr, ptr %588, align 8, !tbaa !5
  %590 = load i32, ptr %9, align 4, !tbaa !11
  %591 = load i32, ptr %23, align 4, !tbaa !11
  %592 = add nsw i32 %590, %591
  %593 = sext i32 %592 to i64
  %594 = getelementptr inbounds float, ptr %589, i64 %593
  store float %580, ptr %594, align 4, !tbaa !9
  %595 = load ptr, ptr %5, align 8, !tbaa !5
  %596 = getelementptr inbounds %class.ImageContent, ptr %595, i32 0, i32 6
  %597 = load ptr, ptr %596, align 8, !tbaa !18
  %598 = load i32, ptr %10, align 4, !tbaa !11
  %599 = load i32, ptr %28, align 4, !tbaa !11
  %600 = add nsw i32 %598, %599
  %601 = sext i32 %600 to i64
  %602 = getelementptr inbounds ptr, ptr %597, i64 %601
  %603 = load ptr, ptr %602, align 8, !tbaa !5
  %604 = load i32, ptr %9, align 4, !tbaa !11
  %605 = load i32, ptr %23, align 4, !tbaa !11
  %606 = add nsw i32 %604, %605
  %607 = sext i32 %606 to i64
  %608 = getelementptr inbounds float, ptr %603, i64 %607
  store float %580, ptr %608, align 4, !tbaa !9
  %609 = load ptr, ptr %5, align 8, !tbaa !5
  %610 = getelementptr inbounds %class.ImageContent, ptr %609, i32 0, i32 5
  %611 = load ptr, ptr %610, align 8, !tbaa !13
  %612 = load i32, ptr %10, align 4, !tbaa !11
  %613 = load i32, ptr %28, align 4, !tbaa !11
  %614 = add nsw i32 %612, %613
  %615 = sext i32 %614 to i64
  %616 = getelementptr inbounds ptr, ptr %611, i64 %615
  %617 = load ptr, ptr %616, align 8, !tbaa !5
  %618 = load i32, ptr %9, align 4, !tbaa !11
  %619 = load i32, ptr %23, align 4, !tbaa !11
  %620 = add nsw i32 %618, %619
  %621 = sext i32 %620 to i64
  %622 = getelementptr inbounds float, ptr %617, i64 %621
  store float %580, ptr %622, align 4, !tbaa !9
  br label %623

623:                                              ; preds = %579, %560
  br label %624

624:                                              ; preds = %623
  %625 = load i32, ptr %28, align 4, !tbaa !11
  %626 = add nsw i32 %625, 1
  store i32 %626, ptr %28, align 4, !tbaa !11
  br label %555, !llvm.loop !23

627:                                              ; preds = %559
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #7
  %628 = load i32, ptr %27, align 4, !tbaa !11
  store i32 %628, ptr %29, align 4, !tbaa !11
  br label %629

629:                                              ; preds = %697, %627
  %630 = load i32, ptr %29, align 4, !tbaa !11
  %631 = icmp sle i32 %630, 0
  br i1 %631, label %633, label %632

632:                                              ; preds = %629
  store i32 23, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #7
  br label %700

633:                                              ; preds = %629
  %634 = load i32, ptr %29, align 4, !tbaa !11
  %635 = sitofp i32 %634 to float
  %636 = load float, ptr %17, align 4, !tbaa !9
  %637 = fdiv float %635, %636
  %638 = call noundef float @_ZSt4rintf(float noundef %637)
  %639 = fptosi float %638 to i32
  store i32 %639, ptr %23, align 4, !tbaa !11
  %640 = load i32, ptr %9, align 4, !tbaa !11
  %641 = load i32, ptr %23, align 4, !tbaa !11
  %642 = add nsw i32 %640, %641
  %643 = load i32, ptr %10, align 4, !tbaa !11
  %644 = load i32, ptr %29, align 4, !tbaa !11
  %645 = add nsw i32 %643, %644
  %646 = load ptr, ptr %5, align 8, !tbaa !5
  %647 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %646)
  %648 = load ptr, ptr %5, align 8, !tbaa !5
  %649 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %648)
  %650 = call noundef i32 @_Z5checkiiiii(i32 noundef %642, i32 noundef %645, i32 noundef %647, i32 noundef %649, i32 noundef 2)
  %651 = icmp ne i32 %650, 0
  br i1 %651, label %652, label %696

652:                                              ; preds = %633
  %653 = load float, ptr %8, align 4, !tbaa !9
  %654 = load ptr, ptr %5, align 8, !tbaa !5
  %655 = getelementptr inbounds %class.ImageContent, ptr %654, i32 0, i32 7
  %656 = load ptr, ptr %655, align 8, !tbaa !17
  %657 = load i32, ptr %10, align 4, !tbaa !11
  %658 = load i32, ptr %29, align 4, !tbaa !11
  %659 = add nsw i32 %657, %658
  %660 = sext i32 %659 to i64
  %661 = getelementptr inbounds ptr, ptr %656, i64 %660
  %662 = load ptr, ptr %661, align 8, !tbaa !5
  %663 = load i32, ptr %9, align 4, !tbaa !11
  %664 = load i32, ptr %23, align 4, !tbaa !11
  %665 = add nsw i32 %663, %664
  %666 = sext i32 %665 to i64
  %667 = getelementptr inbounds float, ptr %662, i64 %666
  store float %653, ptr %667, align 4, !tbaa !9
  %668 = load ptr, ptr %5, align 8, !tbaa !5
  %669 = getelementptr inbounds %class.ImageContent, ptr %668, i32 0, i32 6
  %670 = load ptr, ptr %669, align 8, !tbaa !18
  %671 = load i32, ptr %10, align 4, !tbaa !11
  %672 = load i32, ptr %29, align 4, !tbaa !11
  %673 = add nsw i32 %671, %672
  %674 = sext i32 %673 to i64
  %675 = getelementptr inbounds ptr, ptr %670, i64 %674
  %676 = load ptr, ptr %675, align 8, !tbaa !5
  %677 = load i32, ptr %9, align 4, !tbaa !11
  %678 = load i32, ptr %23, align 4, !tbaa !11
  %679 = add nsw i32 %677, %678
  %680 = sext i32 %679 to i64
  %681 = getelementptr inbounds float, ptr %676, i64 %680
  store float %653, ptr %681, align 4, !tbaa !9
  %682 = load ptr, ptr %5, align 8, !tbaa !5
  %683 = getelementptr inbounds %class.ImageContent, ptr %682, i32 0, i32 5
  %684 = load ptr, ptr %683, align 8, !tbaa !13
  %685 = load i32, ptr %10, align 4, !tbaa !11
  %686 = load i32, ptr %29, align 4, !tbaa !11
  %687 = add nsw i32 %685, %686
  %688 = sext i32 %687 to i64
  %689 = getelementptr inbounds ptr, ptr %684, i64 %688
  %690 = load ptr, ptr %689, align 8, !tbaa !5
  %691 = load i32, ptr %9, align 4, !tbaa !11
  %692 = load i32, ptr %23, align 4, !tbaa !11
  %693 = add nsw i32 %691, %692
  %694 = sext i32 %693 to i64
  %695 = getelementptr inbounds float, ptr %690, i64 %694
  store float %653, ptr %695, align 4, !tbaa !9
  br label %696

696:                                              ; preds = %652, %633
  br label %697

697:                                              ; preds = %696
  %698 = load i32, ptr %29, align 4, !tbaa !11
  %699 = add nsw i32 %698, 1
  store i32 %699, ptr %29, align 4, !tbaa !11
  br label %629, !llvm.loop !24

700:                                              ; preds = %632
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  br label %701

701:                                              ; preds = %700, %547
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #7
  br label %702

702:                                              ; preds = %701, %37
  br label %703

703:                                              ; preds = %702
  %704 = load i32, ptr %18, align 4, !tbaa !11
  %705 = add i32 %704, 1
  store i32 %705, ptr %18, align 4, !tbaa !11
  br label %30, !llvm.loop !25

706:                                              ; preds = %36
  %707 = load ptr, ptr %5, align 8, !tbaa !5
  %708 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN12ImageContent5writeEPKc(ptr noundef nonnull align 8 dereferenceable(80) %707, ptr noundef %708)
  %709 = load ptr, ptr %5, align 8, !tbaa !5
  %710 = icmp eq ptr %709, null
  br i1 %710, label %712, label %711

711:                                              ; preds = %706
  call void @_ZN12ImageContentD1Ev(ptr noundef nonnull align 8 dereferenceable(80) %709) #7
  call void @_ZdlPvm(ptr noundef %709, i64 noundef 80) #8
  br label %712

712:                                              ; preds = %711, %706
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #7
  ret void
}

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZNK6Corner8getAngleEv(ptr noundef nonnull align 4 dereferenceable(88)) #2 align 2

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

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

attributes #0 = { 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 #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { 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 #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { 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 #7 = { nounwind }
attributes #8 = { 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 24}
!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 = !{!14, !6, i64 40}
!18 = !{!14, !6, i64 32}
!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"

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z5checkiiiii(i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #0

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt4rintf(float noundef) local_unnamed_addr #0

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZNK6Corner14getCornerScaleEv(ptr noundef nonnull align 4 dereferenceable(88)) local_unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZNK6Corner4getXEv(ptr noundef nonnull align 4 dereferenceable(88)) local_unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZNK6Corner4getYEv(ptr noundef nonnull align 4 dereferenceable(88)) local_unnamed_addr #1 align 2

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z16drawColorCornersP12ImageContentRSt6vectorIP16CornerDescriptorSaIS3_EEPKcf(ptr noundef %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef %2, float noundef %3) local_unnamed_addr #5 {
  %5 = tail call noundef i64 @_ZNKSt6vectorIP16CornerDescriptorSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #7
  %.not303 = icmp eq i64 %5, 0
  br i1 %.not303, label %._crit_edge302, label %.lr.ph301

.lr.ph301:                                        ; preds = %4
  %6 = getelementptr inbounds i8, ptr %0, i64 24
  %7 = getelementptr inbounds i8, ptr %0, i64 40
  %8 = getelementptr inbounds i8, ptr %0, i64 32
  br label %10

._crit_edge302:                                   ; preds = %.loopexit, %4
  tail call void @_ZN12ImageContent5writeEPKc(ptr noundef nonnull align 8 dereferenceable(80) %0, ptr noundef %2)
  %9 = icmp eq ptr %0, null
  br i1 %9, label %288, label %287

10:                                               ; preds = %.lr.ph301, %.loopexit
  %11 = phi i64 [ 0, %.lr.ph301 ], [ %284, %.loopexit ]
  %.0258299 = phi i32 [ 0, %.lr.ph301 ], [ %283, %.loopexit ]
  %12 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %11) #7
  %13 = load ptr, ptr %12, align 8, !tbaa !5
  %14 = tail call noundef float @_ZNK6Corner14getCornerScaleEv(ptr noundef nonnull align 4 dereferenceable(88) %13)
  %15 = tail call noundef float @_ZSt4rintf(float noundef %14)
  %16 = fmul float %15, 3.000000e+00
  %17 = fptosi float %16 to i32
  %18 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %11) #7
  %19 = load ptr, ptr %18, align 8, !tbaa !5
  %20 = tail call noundef float @_ZNK6Corner4getXEv(ptr noundef nonnull align 4 dereferenceable(88) %19)
  %21 = fptosi float %20 to i32
  %22 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %11) #7
  %23 = load ptr, ptr %22, align 8, !tbaa !5
  %24 = tail call noundef float @_ZNK6Corner4getYEv(ptr noundef nonnull align 4 dereferenceable(88) %23)
  %25 = fptosi float %24 to i32
  %26 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %27 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %28 = tail call noundef i32 @_Z5checkiiiii(i32 noundef %21, i32 noundef %25, i32 noundef %26, i32 noundef %27, i32 noundef 2)
  %.not = icmp eq i32 %28, 0
  br i1 %.not, label %.loopexit, label %.preheader281

.preheader281:                                    ; preds = %10
  %29 = load ptr, ptr %6, align 8, !tbaa !9
  %30 = sext i32 %21 to i64
  %31 = sext i32 %25 to i64
  %32 = getelementptr inbounds ptr, ptr %29, i64 %31
  %33 = load ptr, ptr %32, align 8, !tbaa !5
  %34 = getelementptr ptr, ptr %29, i64 %31
  %35 = getelementptr i8, ptr %34, i64 -16
  %36 = load ptr, ptr %35, align 8, !tbaa !5
  %37 = getelementptr inbounds float, ptr %36, i64 %30
  store float %3, ptr %37, align 4, !tbaa !12
  %38 = getelementptr float, ptr %33, i64 %30
  %39 = getelementptr i8, ptr %38, i64 -8
  store float %3, ptr %39, align 4, !tbaa !12
  %40 = getelementptr ptr, ptr %29, i64 %31
  %41 = getelementptr i8, ptr %40, i64 -8
  %42 = load ptr, ptr %41, align 8, !tbaa !5
  %43 = getelementptr inbounds float, ptr %42, i64 %30
  store float %3, ptr %43, align 4, !tbaa !12
  %44 = getelementptr float, ptr %33, i64 %30
  %45 = getelementptr i8, ptr %44, i64 -4
  store float %3, ptr %45, align 4, !tbaa !12
  %46 = getelementptr inbounds float, ptr %33, i64 %30
  store float %3, ptr %46, align 4, !tbaa !12
  %47 = getelementptr ptr, ptr %29, i64 %31
  %48 = getelementptr i8, ptr %47, i64 8
  %49 = load ptr, ptr %48, align 8, !tbaa !5
  %50 = getelementptr inbounds float, ptr %49, i64 %30
  store float %3, ptr %50, align 4, !tbaa !12
  %51 = getelementptr float, ptr %33, i64 %30
  %52 = getelementptr i8, ptr %51, i64 4
  store float %3, ptr %52, align 4, !tbaa !12
  %53 = getelementptr ptr, ptr %29, i64 %31
  %54 = getelementptr i8, ptr %53, i64 16
  %55 = load ptr, ptr %54, align 8, !tbaa !5
  %56 = getelementptr inbounds float, ptr %55, i64 %30
  store float %3, ptr %56, align 4, !tbaa !12
  %57 = getelementptr float, ptr %33, i64 %30
  %58 = getelementptr i8, ptr %57, i64 8
  store float %3, ptr %58, align 4, !tbaa !12
  %.not266285 = icmp slt i32 %17, 0
  br i1 %.not266285, label %._crit_edge287, label %.preheader.preheader

.preheader.preheader:                             ; preds = %.preheader281
  %59 = sub nsw i32 0, %17
  %60 = add nuw i32 %17, 1
  %61 = sext i32 %59 to i64
  %62 = zext nneg i32 %17 to i64
  br label %.preheader

.preheader:                                       ; preds = %.preheader.preheader, %._crit_edge
  %indvars.iv = phi i64 [ %61, %.preheader.preheader ], [ %indvars.iv.next, %._crit_edge ]
  %63 = add i64 %indvars.iv, %62
  %64 = sub i64 %62, %indvars.iv
  %65 = mul i64 %63, %64
  %66 = trunc i64 %65 to i32
  %67 = sitofp i32 %66 to float
  %68 = add nsw i64 %indvars.iv, %30
  %69 = add nsw i64 %indvars.iv, %31
  %70 = trunc nsw i64 %68 to i32
  %71 = trunc nsw i64 %69 to i32
  br label %82

._crit_edge287:                                   ; preds = %._crit_edge, %.preheader281
  %72 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %11) #7
  %73 = load ptr, ptr %72, align 8, !tbaa !5
  %74 = tail call noundef float @_ZNK6Corner8getAngleEv(ptr noundef nonnull align 4 dereferenceable(88) %73)
  %75 = tail call noundef float @_ZSt3cosf(float noundef %74)
  %76 = tail call noundef float @_ZSt3sinf(float noundef %74)
  %77 = fcmp une float %75, 0.000000e+00
  %78 = fdiv float %76, %75
  %.0254 = select i1 %77, float %78, float 1.000000e+03
  %79 = tail call float @llvm.fabs.f32(float %78)
  %80 = fcmp olt float %79, 5.000000e-01
  %or.cond = and i1 %77, %80
  %81 = sitofp i32 %17 to float
  br i1 %or.cond, label %163, label %223

._crit_edge:                                      ; preds = %161
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
  %exitcond310.not = icmp eq i32 %60, %lftr.wideiv
  br i1 %exitcond310.not, label %._crit_edge287, label %.preheader, !llvm.loop !14

82:                                               ; preds = %.preheader, %161
  %.0255284 = phi i32 [ 0, %.preheader ], [ %162, %161 ]
  %83 = tail call noundef float @_ZSt4sqrtf(float noundef %67)
  %84 = tail call noundef float @_ZSt4rintf(float noundef %83)
  %85 = fptosi float %84 to i32
  %86 = add nsw i32 %85, %25
  %87 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %88 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %89 = tail call noundef i32 @_Z5checkiiiii(i32 noundef %70, i32 noundef %86, i32 noundef %87, i32 noundef %88, i32 noundef 2)
  %.not274 = icmp eq i32 %89, 0
  br i1 %.not274, label %104, label %90

90:                                               ; preds = %82
  %91 = load ptr, ptr %7, align 8, !tbaa !16
  %92 = sext i32 %86 to i64
  %93 = getelementptr inbounds ptr, ptr %91, i64 %92
  %94 = load ptr, ptr %93, align 8, !tbaa !5
  %95 = getelementptr inbounds float, ptr %94, i64 %68
  store float %3, ptr %95, align 4, !tbaa !12
  %96 = load ptr, ptr %8, align 8, !tbaa !17
  %97 = getelementptr inbounds ptr, ptr %96, i64 %92
  %98 = load ptr, ptr %97, align 8, !tbaa !5
  %99 = getelementptr inbounds float, ptr %98, i64 %68
  store float %3, ptr %99, align 4, !tbaa !12
  %100 = load ptr, ptr %6, align 8, !tbaa !9
  %101 = getelementptr inbounds ptr, ptr %100, i64 %92
  %102 = load ptr, ptr %101, align 8, !tbaa !5
  %103 = getelementptr inbounds float, ptr %102, i64 %68
  store float %3, ptr %103, align 4, !tbaa !12
  br label %104

104:                                              ; preds = %90, %82
  %105 = sub nsw i32 %25, %85
  %106 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %107 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %108 = tail call noundef i32 @_Z5checkiiiii(i32 noundef %70, i32 noundef %105, i32 noundef %106, i32 noundef %107, i32 noundef 2)
  %.not275 = icmp eq i32 %108, 0
  br i1 %.not275, label %123, label %109

109:                                              ; preds = %104
  %110 = load ptr, ptr %7, align 8, !tbaa !16
  %111 = sext i32 %105 to i64
  %112 = getelementptr inbounds ptr, ptr %110, i64 %111
  %113 = load ptr, ptr %112, align 8, !tbaa !5
  %114 = getelementptr inbounds float, ptr %113, i64 %68
  store float %3, ptr %114, align 4, !tbaa !12
  %115 = load ptr, ptr %8, align 8, !tbaa !17
  %116 = getelementptr inbounds ptr, ptr %115, i64 %111
  %117 = load ptr, ptr %116, align 8, !tbaa !5
  %118 = getelementptr inbounds float, ptr %117, i64 %68
  store float %3, ptr %118, align 4, !tbaa !12
  %119 = load ptr, ptr %6, align 8, !tbaa !9
  %120 = getelementptr inbounds ptr, ptr %119, i64 %111
  %121 = load ptr, ptr %120, align 8, !tbaa !5
  %122 = getelementptr inbounds float, ptr %121, i64 %68
  store float %3, ptr %122, align 4, !tbaa !12
  br label %123

123:                                              ; preds = %109, %104
  %124 = add nsw i32 %85, %21
  %125 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %126 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %127 = tail call noundef i32 @_Z5checkiiiii(i32 noundef %124, i32 noundef %71, i32 noundef %125, i32 noundef %126, i32 noundef 2)
  %.not276 = icmp eq i32 %127, 0
  br i1 %.not276, label %142, label %128

128:                                              ; preds = %123
  %129 = load ptr, ptr %7, align 8, !tbaa !16
  %130 = getelementptr inbounds ptr, ptr %129, i64 %69
  %131 = load ptr, ptr %130, align 8, !tbaa !5
  %132 = sext i32 %124 to i64
  %133 = getelementptr inbounds float, ptr %131, i64 %132
  store float %3, ptr %133, align 4, !tbaa !12
  %134 = load ptr, ptr %8, align 8, !tbaa !17
  %135 = getelementptr inbounds ptr, ptr %134, i64 %69
  %136 = load ptr, ptr %135, align 8, !tbaa !5
  %137 = getelementptr inbounds float, ptr %136, i64 %132
  store float %3, ptr %137, align 4, !tbaa !12
  %138 = load ptr, ptr %6, align 8, !tbaa !9
  %139 = getelementptr inbounds ptr, ptr %138, i64 %69
  %140 = load ptr, ptr %139, align 8, !tbaa !5
  %141 = getelementptr inbounds float, ptr %140, i64 %132
  store float %3, ptr %141, align 4, !tbaa !12
  br label %142

142:                                              ; preds = %128, %123
  %143 = sub nsw i32 %21, %85
  %144 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %145 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %146 = tail call noundef i32 @_Z5checkiiiii(i32 noundef %143, i32 noundef %71, i32 noundef %144, i32 noundef %145, i32 noundef 2)
  %.not277 = icmp eq i32 %146, 0
  br i1 %.not277, label %161, label %147

147:                                              ; preds = %142
  %148 = load ptr, ptr %7, align 8, !tbaa !16
  %149 = getelementptr inbounds ptr, ptr %148, i64 %69
  %150 = load ptr, ptr %149, align 8, !tbaa !5
  %151 = sext i32 %143 to i64
  %152 = getelementptr inbounds float, ptr %150, i64 %151
  store float %3, ptr %152, align 4, !tbaa !12
  %153 = load ptr, ptr %8, align 8, !tbaa !17
  %154 = getelementptr inbounds ptr, ptr %153, i64 %69
  %155 = load ptr, ptr %154, align 8, !tbaa !5
  %156 = getelementptr inbounds float, ptr %155, i64 %151
  store float %3, ptr %156, align 4, !tbaa !12
  %157 = load ptr, ptr %6, align 8, !tbaa !9
  %158 = getelementptr inbounds ptr, ptr %157, i64 %69
  %159 = load ptr, ptr %158, align 8, !tbaa !5
  %160 = getelementptr inbounds float, ptr %159, i64 %151
  store float %3, ptr %160, align 4, !tbaa !12
  br label %161

161:                                              ; preds = %142, %147
  %162 = add nuw i32 %.0255284, 1
  %exitcond.not = icmp eq i32 %.0255284, %17
  br i1 %exitcond.not, label %._crit_edge, label %82, !llvm.loop !18

163:                                              ; preds = %._crit_edge287
  %164 = fmul float %75, %81
  %165 = tail call noundef float @_ZSt4rintf(float noundef %164)
  %166 = fptosi float %165 to i32
  %.not270293 = icmp slt i32 %166, 0
  br i1 %.not270293, label %.lr.ph298.preheader, label %.lr.ph296.preheader

.lr.ph296.preheader:                              ; preds = %163
  %167 = add nuw i32 %166, 1
  %wide.trip.count323 = zext i32 %167 to i64
  br label %.lr.ph296

.preheader278:                                    ; preds = %195
  %168 = icmp eq i32 %166, 0
  br i1 %168, label %.lr.ph298.preheader, label %.loopexit

.lr.ph298.preheader:                              ; preds = %163, %.preheader278
  %169 = sext i32 %166 to i64
  br label %.lr.ph298

.lr.ph296:                                        ; preds = %.lr.ph296.preheader, %195
  %indvars.iv320 = phi i64 [ 0, %.lr.ph296.preheader ], [ %indvars.iv.next321, %195 ]
  %170 = trunc nuw nsw i64 %indvars.iv320 to i32
  %171 = uitofp nneg i32 %170 to float
  %172 = fmul float %.0254, %171
  %173 = tail call noundef float @_ZSt4rintf(float noundef %172)
  %174 = fptosi float %173 to i32
  %175 = add nsw i64 %indvars.iv320, %30
  %176 = add nsw i32 %174, %25
  %177 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %178 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %179 = trunc nsw i64 %175 to i32
  %180 = tail call noundef i32 @_Z5checkiiiii(i32 noundef %179, i32 noundef %176, i32 noundef %177, i32 noundef %178, i32 noundef 2)
  %.not272 = icmp eq i32 %180, 0
  br i1 %.not272, label %195, label %181

181:                                              ; preds = %.lr.ph296
  %182 = load ptr, ptr %7, align 8, !tbaa !16
  %183 = sext i32 %176 to i64
  %184 = getelementptr inbounds ptr, ptr %182, i64 %183
  %185 = load ptr, ptr %184, align 8, !tbaa !5
  %186 = getelementptr inbounds float, ptr %185, i64 %175
  store float %3, ptr %186, align 4, !tbaa !12
  %187 = load ptr, ptr %8, align 8, !tbaa !17
  %188 = getelementptr inbounds ptr, ptr %187, i64 %183
  %189 = load ptr, ptr %188, align 8, !tbaa !5
  %190 = getelementptr inbounds float, ptr %189, i64 %175
  store float %3, ptr %190, align 4, !tbaa !12
  %191 = load ptr, ptr %6, align 8, !tbaa !9
  %192 = getelementptr inbounds ptr, ptr %191, i64 %183
  %193 = load ptr, ptr %192, align 8, !tbaa !5
  %194 = getelementptr inbounds float, ptr %193, i64 %175
  store float %3, ptr %194, align 4, !tbaa !12
  br label %195

195:                                              ; preds = %.lr.ph296, %181
  %indvars.iv.next321 = add nuw nsw i64 %indvars.iv320, 1
  %exitcond324.not = icmp eq i64 %indvars.iv.next321, %wide.trip.count323
  br i1 %exitcond324.not, label %.preheader278, label %.lr.ph296, !llvm.loop !19

.lr.ph298:                                        ; preds = %.lr.ph298.preheader, %221
  %indvars.iv325 = phi i64 [ %169, %.lr.ph298.preheader ], [ %indvars.iv.next326, %221 ]
  %196 = trunc nsw i64 %indvars.iv325 to i32
  %197 = sitofp i32 %196 to float
  %198 = fmul float %.0254, %197
  %199 = tail call noundef float @_ZSt4rintf(float noundef %198)
  %200 = fptosi float %199 to i32
  %201 = add nsw i64 %indvars.iv325, %30
  %202 = add nsw i32 %200, %25
  %203 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %204 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %205 = trunc nsw i64 %201 to i32
  %206 = tail call noundef i32 @_Z5checkiiiii(i32 noundef %205, i32 noundef %202, i32 noundef %203, i32 noundef %204, i32 noundef 2)
  %.not271 = icmp eq i32 %206, 0
  br i1 %.not271, label %221, label %207

207:                                              ; preds = %.lr.ph298
  %208 = load ptr, ptr %7, align 8, !tbaa !16
  %209 = sext i32 %202 to i64
  %210 = getelementptr inbounds ptr, ptr %208, i64 %209
  %211 = load ptr, ptr %210, align 8, !tbaa !5
  %212 = getelementptr inbounds float, ptr %211, i64 %201
  store float %3, ptr %212, align 4, !tbaa !12
  %213 = load ptr, ptr %8, align 8, !tbaa !17
  %214 = getelementptr inbounds ptr, ptr %213, i64 %209
  %215 = load ptr, ptr %214, align 8, !tbaa !5
  %216 = getelementptr inbounds float, ptr %215, i64 %201
  store float %3, ptr %216, align 4, !tbaa !12
  %217 = load ptr, ptr %6, align 8, !tbaa !9
  %218 = getelementptr inbounds ptr, ptr %217, i64 %209
  %219 = load ptr, ptr %218, align 8, !tbaa !5
  %220 = getelementptr inbounds float, ptr %219, i64 %201
  store float %3, ptr %220, align 4, !tbaa !12
  br label %221

221:                                              ; preds = %.lr.ph298, %207
  %indvars.iv.next326 = add nsw i64 %indvars.iv325, 1
  %222 = and i64 %indvars.iv.next326, 4294967295
  %exitcond329.not = icmp eq i64 %222, 1
  br i1 %exitcond329.not, label %.loopexit, label %.lr.ph298, !llvm.loop !20

223:                                              ; preds = %._crit_edge287
  %224 = fmul float %76, %81
  %225 = tail call noundef float @_ZSt4rintf(float noundef %224)
  %226 = fptosi float %225 to i32
  %.not267288 = icmp slt i32 %226, 0
  br i1 %.not267288, label %.lr.ph292.preheader, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %223
  %227 = add nuw i32 %226, 1
  %wide.trip.count = zext i32 %227 to i64
  br label %.lr.ph

.preheader279:                                    ; preds = %255
  %228 = icmp eq i32 %226, 0
  br i1 %228, label %.lr.ph292.preheader, label %.loopexit

.lr.ph292.preheader:                              ; preds = %223, %.preheader279
  %229 = sext i32 %226 to i64
  br label %.lr.ph292

.lr.ph:                                           ; preds = %.lr.ph.preheader, %255
  %indvars.iv311 = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next312, %255 ]
  %230 = trunc nuw nsw i64 %indvars.iv311 to i32
  %231 = uitofp nneg i32 %230 to float
  %232 = fdiv float %231, %.0254
  %233 = tail call noundef float @_ZSt4rintf(float noundef %232)
  %234 = fptosi float %233 to i32
  %235 = add nsw i32 %234, %21
  %236 = add nsw i64 %indvars.iv311, %31
  %237 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %238 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %239 = trunc nsw i64 %236 to i32
  %240 = tail call noundef i32 @_Z5checkiiiii(i32 noundef %235, i32 noundef %239, i32 noundef %237, i32 noundef %238, i32 noundef 2)
  %.not269 = icmp eq i32 %240, 0
  br i1 %.not269, label %255, label %241

241:                                              ; preds = %.lr.ph
  %242 = load ptr, ptr %7, align 8, !tbaa !16
  %243 = getelementptr inbounds ptr, ptr %242, i64 %236
  %244 = load ptr, ptr %243, align 8, !tbaa !5
  %245 = sext i32 %235 to i64
  %246 = getelementptr inbounds float, ptr %244, i64 %245
  store float %3, ptr %246, align 4, !tbaa !12
  %247 = load ptr, ptr %8, align 8, !tbaa !17
  %248 = getelementptr inbounds ptr, ptr %247, i64 %236
  %249 = load ptr, ptr %248, align 8, !tbaa !5
  %250 = getelementptr inbounds float, ptr %249, i64 %245
  store float %3, ptr %250, align 4, !tbaa !12
  %251 = load ptr, ptr %6, align 8, !tbaa !9
  %252 = getelementptr inbounds ptr, ptr %251, i64 %236
  %253 = load ptr, ptr %252, align 8, !tbaa !5
  %254 = getelementptr inbounds float, ptr %253, i64 %245
  store float %3, ptr %254, align 4, !tbaa !12
  br label %255

255:                                              ; preds = %.lr.ph, %241
  %indvars.iv.next312 = add nuw nsw i64 %indvars.iv311, 1
  %exitcond314.not = icmp eq i64 %indvars.iv.next312, %wide.trip.count
  br i1 %exitcond314.not, label %.preheader279, label %.lr.ph, !llvm.loop !21

.lr.ph292:                                        ; preds = %.lr.ph292.preheader, %281
  %indvars.iv315 = phi i64 [ %229, %.lr.ph292.preheader ], [ %indvars.iv.next316, %281 ]
  %256 = trunc nsw i64 %indvars.iv315 to i32
  %257 = sitofp i32 %256 to float
  %258 = fdiv float %257, %.0254
  %259 = tail call noundef float @_ZSt4rintf(float noundef %258)
  %260 = fptosi float %259 to i32
  %261 = add nsw i32 %260, %21
  %262 = add nsw i64 %indvars.iv315, %31
  %263 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %264 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %265 = trunc nsw i64 %262 to i32
  %266 = tail call noundef i32 @_Z5checkiiiii(i32 noundef %261, i32 noundef %265, i32 noundef %263, i32 noundef %264, i32 noundef 2)
  %.not268 = icmp eq i32 %266, 0
  br i1 %.not268, label %281, label %267

267:                                              ; preds = %.lr.ph292
  %268 = load ptr, ptr %7, align 8, !tbaa !16
  %269 = getelementptr inbounds ptr, ptr %268, i64 %262
  %270 = load ptr, ptr %269, align 8, !tbaa !5
  %271 = sext i32 %261 to i64
  %272 = getelementptr inbounds float, ptr %270, i64 %271
  store float %3, ptr %272, align 4, !tbaa !12
  %273 = load ptr, ptr %8, align 8, !tbaa !17
  %274 = getelementptr inbounds ptr, ptr %273, i64 %262
  %275 = load ptr, ptr %274, align 8, !tbaa !5
  %276 = getelementptr inbounds float, ptr %275, i64 %271
  store float %3, ptr %276, align 4, !tbaa !12
  %277 = load ptr, ptr %6, align 8, !tbaa !9
  %278 = getelementptr inbounds ptr, ptr %277, i64 %262
  %279 = load ptr, ptr %278, align 8, !tbaa !5
  %280 = getelementptr inbounds float, ptr %279, i64 %271
  store float %3, ptr %280, align 4, !tbaa !12
  br label %281

281:                                              ; preds = %.lr.ph292, %267
  %indvars.iv.next316 = add nsw i64 %indvars.iv315, 1
  %282 = and i64 %indvars.iv.next316, 4294967295
  %exitcond319.not = icmp eq i64 %282, 1
  br i1 %exitcond319.not, label %.loopexit, label %.lr.ph292, !llvm.loop !22

.loopexit:                                        ; preds = %281, %221, %.preheader279, %.preheader278, %10
  %283 = add i32 %.0258299, 1
  %284 = zext i32 %283 to i64
  %285 = tail call noundef i64 @_ZNKSt6vectorIP16CornerDescriptorSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #7
  %286 = icmp ugt i64 %285, %284
  br i1 %286, label %10, label %._crit_edge302, !llvm.loop !23

287:                                              ; preds = %._crit_edge302
  tail call void @_ZN12ImageContentD1Ev(ptr noundef nonnull align 8 dereferenceable(80) %0) #7
  tail call void @_ZdlPvm(ptr noundef nonnull %0, i64 noundef 80) #8
  br label %288

288:                                              ; preds = %287, %._crit_edge302
  ret void
}

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZNK6Corner8getAngleEv(ptr noundef nonnull align 4 dereferenceable(88)) local_unnamed_addr #1 align 2

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

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

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

attributes #0 = { 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 #1 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { 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 #3 = { "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 = { 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 #5 = { 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 #6 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { nounwind }
attributes #8 = { 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, !6, i64 24}
!10 = !{!"_ZTS12ImageContent", !11, i64 0, !11, i64 4, !11, i64 8, !11, 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}
!11 = !{!"int", !7, i64 0}
!12 = !{!13, !13, i64 0}
!13 = !{!"float", !7, i64 0}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}
!16 = !{!10, !6, i64 40}
!17 = !{!10, !6, i64 32}
!18 = distinct !{!18, !15}
!19 = distinct !{!19, !15}
!20 = distinct !{!20, !15}
!21 = distinct !{!21, !15}
!22 = distinct !{!22, !15}
!23 = distinct !{!23, !15}


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass