; LLVM IR from ox-vgg/vise :: src/search_engine/relja_retrival/external/KMCode_relja/descriptor/AffineRegion._46f43e83 (Z13displayCircleP12ImageContentP16CornerDescriptorf)

; 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 uwtable
define dso_local void @_Z13displayCircleP12ImageContentP16CornerDescriptorf(ptr noundef %0, ptr noundef %1, float noundef %2) #0 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca float, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca float, align 4
  %11 = alloca float, align 4
  %12 = alloca float, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca float, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  store ptr %0, ptr %4, align 8, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !5
  store float %2, ptr %6, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #5
  %19 = load ptr, ptr %5, align 8, !tbaa !5
  %20 = call noundef float @_ZNK6Corner4getXEv(ptr noundef nonnull align 4 dereferenceable(88) %19)
  %21 = fptosi float %20 to i32
  store i32 %21, ptr %7, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #5
  %22 = load ptr, ptr %5, align 8, !tbaa !5
  %23 = call noundef float @_ZNK6Corner4getYEv(ptr noundef nonnull align 4 dereferenceable(88) %22)
  %24 = fptosi float %23 to i32
  store i32 %24, ptr %8, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #5
  store i32 -2, ptr %9, align 4, !tbaa !11
  br label %25

25:                                               ; preds = %96, %3
  %26 = load i32, ptr %9, align 4, !tbaa !11
  %27 = icmp sle i32 %26, 2
  br i1 %27, label %29, label %28

28:                                               ; preds = %25
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #5
  br label %99

29:                                               ; preds = %25
  %30 = load i32, ptr %8, align 4, !tbaa !11
  %31 = icmp sgt i32 %30, 0
  br i1 %31, label %32, label %95

32:                                               ; preds = %29
  %33 = load i32, ptr %8, align 4, !tbaa !11
  %34 = load ptr, ptr %4, align 8, !tbaa !5
  %35 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %34)
  %36 = icmp ult i32 %33, %35
  br i1 %36, label %37, label %95

37:                                               ; preds = %32
  %38 = load i32, ptr %8, align 4, !tbaa !11
  %39 = load i32, ptr %9, align 4, !tbaa !11
  %40 = add nsw i32 %38, %39
  %41 = icmp sgt i32 %40, 0
  br i1 %41, label %42, label %95

42:                                               ; preds = %37
  %43 = load i32, ptr %8, align 4, !tbaa !11
  %44 = load i32, ptr %9, align 4, !tbaa !11
  %45 = add nsw i32 %43, %44
  %46 = load ptr, ptr %4, align 8, !tbaa !5
  %47 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %46)
  %48 = icmp ult i32 %45, %47
  br i1 %48, label %49, label %95

49:                                               ; preds = %42
  %50 = load i32, ptr %7, align 4, !tbaa !11
  %51 = icmp sgt i32 %50, 0
  br i1 %51, label %52, label %95

52:                                               ; preds = %49
  %53 = load i32, ptr %7, align 4, !tbaa !11
  %54 = load ptr, ptr %4, align 8, !tbaa !5
  %55 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %54)
  %56 = icmp ult i32 %53, %55
  br i1 %56, label %57, label %95

57:                                               ; preds = %52
  %58 = load i32, ptr %7, align 4, !tbaa !11
  %59 = load i32, ptr %9, align 4, !tbaa !11
  %60 = add nsw i32 %58, %59
  %61 = icmp sgt i32 %60, 0
  br i1 %61, label %62, label %95

62:                                               ; preds = %57
  %63 = load i32, ptr %7, align 4, !tbaa !11
  %64 = load i32, ptr %9, align 4, !tbaa !11
  %65 = add nsw i32 %63, %64
  %66 = load ptr, ptr %4, align 8, !tbaa !5
  %67 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %66)
  %68 = icmp ult i32 %65, %67
  br i1 %68, label %69, label %95

69:                                               ; preds = %62
  %70 = load float, ptr %6, align 4, !tbaa !9
  %71 = load ptr, ptr %4, align 8, !tbaa !5
  %72 = getelementptr inbounds %class.ImageContent, ptr %71, i32 0, i32 4
  %73 = load ptr, ptr %72, align 8, !tbaa !13
  %74 = load i32, ptr %8, align 4, !tbaa !11
  %75 = load i32, ptr %9, align 4, !tbaa !11
  %76 = add nsw i32 %74, %75
  %77 = sext i32 %76 to i64
  %78 = getelementptr inbounds ptr, ptr %73, i64 %77
  %79 = load ptr, ptr %78, align 8, !tbaa !5
  %80 = load i32, ptr %7, align 4, !tbaa !11
  %81 = sext i32 %80 to i64
  %82 = getelementptr inbounds float, ptr %79, i64 %81
  store float %70, ptr %82, align 4, !tbaa !9
  %83 = load ptr, ptr %4, align 8, !tbaa !5
  %84 = getelementptr inbounds %class.ImageContent, ptr %83, i32 0, i32 4
  %85 = load ptr, ptr %84, align 8, !tbaa !13
  %86 = load i32, ptr %8, align 4, !tbaa !11
  %87 = sext i32 %86 to i64
  %88 = getelementptr inbounds ptr, ptr %85, i64 %87
  %89 = load ptr, ptr %88, align 8, !tbaa !5
  %90 = load i32, ptr %7, align 4, !tbaa !11
  %91 = load i32, ptr %9, align 4, !tbaa !11
  %92 = add nsw i32 %90, %91
  %93 = sext i32 %92 to i64
  %94 = getelementptr inbounds float, ptr %89, i64 %93
  store float %70, ptr %94, align 4, !tbaa !9
  br label %95

95:                                               ; preds = %69, %62, %57, %52, %49, %42, %37, %32, %29
  br label %96

96:                                               ; preds = %95
  %97 = load i32, ptr %9, align 4, !tbaa !11
  %98 = add nsw i32 %97, 1
  store i32 %98, ptr %9, align 4, !tbaa !11
  br label %25, !llvm.loop !15

99:                                               ; preds = %28
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #5
  %100 = load ptr, ptr %5, align 8, !tbaa !5
  %101 = call noundef float @_ZNK6Corner14getCornerScaleEv(ptr noundef nonnull align 4 dereferenceable(88) %100)
  store float %101, ptr %10, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #5
  store float 1.000000e+00, ptr %11, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #5
  store float 0.000000e+00, ptr %12, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #5
  store i32 0, ptr %13, align 4, !tbaa !11
  br label %102

102:                                              ; preds = %425, %99
  %103 = load i32, ptr %13, align 4, !tbaa !11
  %104 = icmp slt i32 %103, 2
  br i1 %104, label %106, label %105

105:                                              ; preds = %102
  store i32 5, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #5
  br label %428

106:                                              ; preds = %102
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #5
  %107 = load float, ptr %10, align 4, !tbaa !9
  %108 = load float, ptr %11, align 4, !tbaa !9
  %109 = fsub float %107, %108
  store float %109, ptr %15, align 4, !tbaa !9
  br label %110

110:                                              ; preds = %418, %106
  %111 = load float, ptr %15, align 4, !tbaa !9
  %112 = load float, ptr %10, align 4, !tbaa !9
  %113 = load float, ptr %11, align 4, !tbaa !9
  %114 = fadd float %112, %113
  %115 = fcmp ole float %111, %114
  br i1 %115, label %117, label %116

116:                                              ; preds = %110
  store i32 8, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #5
  br label %423

117:                                              ; preds = %110
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #5
  %118 = load float, ptr %15, align 4, !tbaa !9
  %119 = call noundef float @_ZSt4rintf(float noundef %118)
  %120 = fptosi float %119 to i32
  store i32 %120, ptr %16, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #5
  store i32 0, ptr %17, align 4, !tbaa !11
  br label %121

121:                                              ; preds = %414, %117
  %122 = load i32, ptr %17, align 4, !tbaa !11
  %123 = load i32, ptr %16, align 4, !tbaa !11
  %124 = icmp sle i32 %122, %123
  br i1 %124, label %126, label %125

125:                                              ; preds = %121
  store i32 11, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #5
  br label %417

126:                                              ; preds = %121
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #5
  %127 = load float, ptr %15, align 4, !tbaa !9
  %128 = load float, ptr %15, align 4, !tbaa !9
  %129 = load i32, ptr %17, align 4, !tbaa !11
  %130 = load i32, ptr %17, align 4, !tbaa !11
  %131 = mul nsw i32 %129, %130
  %132 = sitofp i32 %131 to float
  %133 = fneg float %132
  %134 = call float @llvm.fmuladd.f32(float %127, float %128, float %133)
  %135 = call noundef float @_ZSt4sqrtf(float noundef %134)
  %136 = call noundef float @_ZSt4rintf(float noundef %135)
  %137 = fptosi float %136 to i32
  store i32 %137, ptr %18, align 4, !tbaa !11
  %138 = load i32, ptr %7, align 4, !tbaa !11
  %139 = load i32, ptr %17, align 4, !tbaa !11
  %140 = add nsw i32 %138, %139
  %141 = icmp sgt i32 %140, 0
  br i1 %141, label %142, label %206

142:                                              ; preds = %126
  %143 = load i32, ptr %7, align 4, !tbaa !11
  %144 = load i32, ptr %17, align 4, !tbaa !11
  %145 = add nsw i32 %143, %144
  %146 = load ptr, ptr %4, align 8, !tbaa !5
  %147 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %146)
  %148 = icmp ult i32 %145, %147
  br i1 %148, label %149, label %206

149:                                              ; preds = %142
  %150 = load i32, ptr %8, align 4, !tbaa !11
  %151 = load i32, ptr %18, align 4, !tbaa !11
  %152 = add nsw i32 %150, %151
  %153 = load ptr, ptr %4, align 8, !tbaa !5
  %154 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %153)
  %155 = icmp ult i32 %152, %154
  br i1 %155, label %156, label %177

156:                                              ; preds = %149
  %157 = load i32, ptr %8, align 4, !tbaa !11
  %158 = load i32, ptr %18, align 4, !tbaa !11
  %159 = add nsw i32 %157, %158
  %160 = icmp sgt i32 %159, 0
  br i1 %160, label %161, label %177

161:                                              ; preds = %156
  %162 = load float, ptr %12, align 4, !tbaa !9
  %163 = load ptr, ptr %4, align 8, !tbaa !5
  %164 = getelementptr inbounds %class.ImageContent, ptr %163, i32 0, i32 4
  %165 = load ptr, ptr %164, align 8, !tbaa !13
  %166 = load i32, ptr %8, align 4, !tbaa !11
  %167 = load i32, ptr %18, align 4, !tbaa !11
  %168 = add nsw i32 %166, %167
  %169 = sext i32 %168 to i64
  %170 = getelementptr inbounds ptr, ptr %165, i64 %169
  %171 = load ptr, ptr %170, align 8, !tbaa !5
  %172 = load i32, ptr %7, align 4, !tbaa !11
  %173 = load i32, ptr %17, align 4, !tbaa !11
  %174 = add nsw i32 %172, %173
  %175 = sext i32 %174 to i64
  %176 = getelementptr inbounds float, ptr %171, i64 %175
  store float %162, ptr %176, align 4, !tbaa !9
  br label %177

177:                                              ; preds = %161, %156, %149
  %178 = load i32, ptr %8, align 4, !tbaa !11
  %179 = load i32, ptr %18, align 4, !tbaa !11
  %180 = sub nsw i32 %178, %179
  %181 = icmp sgt i32 %180, 0
  br i1 %181, label %182, label %205

182:                                              ; preds = %177
  %183 = load i32, ptr %8, align 4, !tbaa !11
  %184 = load i32, ptr %18, align 4, !tbaa !11
  %185 = sub nsw i32 %183, %184
  %186 = load ptr, ptr %4, align 8, !tbaa !5
  %187 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %186)
  %188 = icmp ult i32 %185, %187
  br i1 %188, label %189, label %205

189:                                              ; preds = %182
  %190 = load float, ptr %12, align 4, !tbaa !9
  %191 = load ptr, ptr %4, align 8, !tbaa !5
  %192 = getelementptr inbounds %class.ImageContent, ptr %191, i32 0, i32 4
  %193 = load ptr, ptr %192, align 8, !tbaa !13
  %194 = load i32, ptr %8, align 4, !tbaa !11
  %195 = load i32, ptr %18, align 4, !tbaa !11
  %196 = sub nsw i32 %194, %195
  %197 = sext i32 %196 to i64
  %198 = getelementptr inbounds ptr, ptr %193, i64 %197
  %199 = load ptr, ptr %198, align 8, !tbaa !5
  %200 = load i32, ptr %7, align 4, !tbaa !11
  %201 = load i32, ptr %17, align 4, !tbaa !11
  %202 = add nsw i32 %200, %201
  %203 = sext i32 %202 to i64
  %204 = getelementptr inbounds float, ptr %199, i64 %203
  store float %190, ptr %204, align 4, !tbaa !9
  br label %205

205:                                              ; preds = %189, %182, %177
  br label %206

206:                                              ; preds = %205, %142, %126
  %207 = load i32, ptr %7, align 4, !tbaa !11
  %208 = load i32, ptr %17, align 4, !tbaa !11
  %209 = sub nsw i32 %207, %208
  %210 = icmp sgt i32 %209, 0
  br i1 %210, label %211, label %275

211:                                              ; preds = %206
  %212 = load i32, ptr %7, align 4, !tbaa !11
  %213 = load i32, ptr %17, align 4, !tbaa !11
  %214 = sub nsw i32 %212, %213
  %215 = load ptr, ptr %4, align 8, !tbaa !5
  %216 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %215)
  %217 = icmp ult i32 %214, %216
  br i1 %217, label %218, label %275

218:                                              ; preds = %211
  %219 = load i32, ptr %8, align 4, !tbaa !11
  %220 = load i32, ptr %18, align 4, !tbaa !11
  %221 = add nsw i32 %219, %220
  %222 = load ptr, ptr %4, align 8, !tbaa !5
  %223 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %222)
  %224 = icmp ult i32 %221, %223
  br i1 %224, label %225, label %246

225:                                              ; preds = %218
  %226 = load i32, ptr %8, align 4, !tbaa !11
  %227 = load i32, ptr %18, align 4, !tbaa !11
  %228 = add nsw i32 %226, %227
  %229 = icmp sgt i32 %228, 0
  br i1 %229, label %230, label %246

230:                                              ; preds = %225
  %231 = load float, ptr %12, align 4, !tbaa !9
  %232 = load ptr, ptr %4, align 8, !tbaa !5
  %233 = getelementptr inbounds %class.ImageContent, ptr %232, i32 0, i32 4
  %234 = load ptr, ptr %233, align 8, !tbaa !13
  %235 = load i32, ptr %8, align 4, !tbaa !11
  %236 = load i32, ptr %18, align 4, !tbaa !11
  %237 = add nsw i32 %235, %236
  %238 = sext i32 %237 to i64
  %239 = getelementptr inbounds ptr, ptr %234, i64 %238
  %240 = load ptr, ptr %239, align 8, !tbaa !5
  %241 = load i32, ptr %7, align 4, !tbaa !11
  %242 = load i32, ptr %17, align 4, !tbaa !11
  %243 = sub nsw i32 %241, %242
  %244 = sext i32 %243 to i64
  %245 = getelementptr inbounds float, ptr %240, i64 %244
  store float %231, ptr %245, align 4, !tbaa !9
  br label %246

246:                                              ; preds = %230, %225, %218
  %247 = load i32, ptr %8, align 4, !tbaa !11
  %248 = load i32, ptr %18, align 4, !tbaa !11
  %249 = sub nsw i32 %247, %248
  %250 = icmp sgt i32 %249, 0
  br i1 %250, label %251, label %274

251:                                              ; preds = %246
  %252 = load i32, ptr %8, align 4, !tbaa !11
  %253 = load i32, ptr %18, align 4, !tbaa !11
  %254 = sub nsw i32 %252, %253
  %255 = load ptr, ptr %4, align 8, !tbaa !5
  %256 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %255)
  %257 = icmp ult i32 %254, %256
  br i1 %257, label %258, label %274

258:                                              ; preds = %251
  %259 = load float, ptr %12, align 4, !tbaa !9
  %260 = load ptr, ptr %4, align 8, !tbaa !5
  %261 = getelementptr inbounds %class.ImageContent, ptr %260, i32 0, i32 4
  %262 = load ptr, ptr %261, align 8, !tbaa !13
  %263 = load i32, ptr %8, align 4, !tbaa !11
  %264 = load i32, ptr %18, align 4, !tbaa !11
  %265 = sub nsw i32 %263, %264
  %266 = sext i32 %265 to i64
  %267 = getelementptr inbounds ptr, ptr %262, i64 %266
  %268 = load ptr, ptr %267, align 8, !tbaa !5
  %269 = load i32, ptr %7, align 4, !tbaa !11
  %270 = load i32, ptr %17, align 4, !tbaa !11
  %271 = sub nsw i32 %269, %270
  %272 = sext i32 %271 to i64
  %273 = getelementptr inbounds float, ptr %268, i64 %272
  store float %259, ptr %273, align 4, !tbaa !9
  br label %274

274:                                              ; preds = %258, %251, %246
  br label %275

275:                                              ; preds = %274, %211, %206
  %276 = load i32, ptr %8, align 4, !tbaa !11
  %277 = load i32, ptr %17, align 4, !tbaa !11
  %278 = add nsw i32 %276, %277
  %279 = load ptr, ptr %4, align 8, !tbaa !5
  %280 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %279)
  %281 = icmp ult i32 %278, %280
  br i1 %281, label %282, label %344

282:                                              ; preds = %275
  %283 = load i32, ptr %8, align 4, !tbaa !11
  %284 = load i32, ptr %17, align 4, !tbaa !11
  %285 = add nsw i32 %283, %284
  %286 = icmp sgt i32 %285, 0
  br i1 %286, label %287, label %344

287:                                              ; preds = %282
  %288 = load i32, ptr %7, align 4, !tbaa !11
  %289 = load i32, ptr %18, align 4, !tbaa !11
  %290 = add nsw i32 %288, %289
  %291 = load ptr, ptr %4, align 8, !tbaa !5
  %292 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %291)
  %293 = icmp ult i32 %290, %292
  br i1 %293, label %294, label %315

294:                                              ; preds = %287
  %295 = load i32, ptr %7, align 4, !tbaa !11
  %296 = load i32, ptr %18, align 4, !tbaa !11
  %297 = add nsw i32 %295, %296
  %298 = icmp sgt i32 %297, 0
  br i1 %298, label %299, label %315

299:                                              ; preds = %294
  %300 = load float, ptr %12, align 4, !tbaa !9
  %301 = load ptr, ptr %4, align 8, !tbaa !5
  %302 = getelementptr inbounds %class.ImageContent, ptr %301, i32 0, i32 4
  %303 = load ptr, ptr %302, align 8, !tbaa !13
  %304 = load i32, ptr %8, align 4, !tbaa !11
  %305 = load i32, ptr %17, align 4, !tbaa !11
  %306 = add nsw i32 %304, %305
  %307 = sext i32 %306 to i64
  %308 = getelementptr inbounds ptr, ptr %303, i64 %307
  %309 = load ptr, ptr %308, align 8, !tbaa !5
  %310 = load i32, ptr %7, align 4, !tbaa !11
  %311 = load i32, ptr %18, align 4, !tbaa !11
  %312 = add nsw i32 %310, %311
  %313 = sext i32 %312 to i64
  %314 = getelementptr inbounds float, ptr %309, i64 %313
  store float %300, ptr %314, align 4, !tbaa !9
  br label %315

315:                                              ; preds = %299, %294, %287
  %316 = load i32, ptr %7, align 4, !tbaa !11
  %317 = load i32, ptr %18, align 4, !tbaa !11
  %318 = sub nsw i32 %316, %317
  %319 = icmp sgt i32 %318, 0
  br i1 %319, label %320, label %343

320:                                              ; preds = %315
  %321 = load i32, ptr %7, align 4, !tbaa !11
  %322 = load i32, ptr %18, align 4, !tbaa !11
  %323 = sub nsw i32 %321, %322
  %324 = load ptr, ptr %4, align 8, !tbaa !5
  %325 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %324)
  %326 = icmp ult i32 %323, %325
  br i1 %326, label %327, label %343

327:                                              ; preds = %320
  %328 = load float, ptr %12, align 4, !tbaa !9
  %329 = load ptr, ptr %4, align 8, !tbaa !5
  %330 = getelementptr inbounds %class.ImageContent, ptr %329, i32 0, i32 4
  %331 = load ptr, ptr %330, align 8, !tbaa !13
  %332 = load i32, ptr %8, align 4, !tbaa !11
  %333 = load i32, ptr %17, align 4, !tbaa !11
  %334 = add nsw i32 %332, %333
  %335 = sext i32 %334 to i64
  %336 = getelementptr inbounds ptr, ptr %331, i64 %335
  %337 = load ptr, ptr %336, align 8, !tbaa !5
  %338 = load i32, ptr %7, align 4, !tbaa !11
  %339 = load i32, ptr %18, align 4, !tbaa !11
  %340 = sub nsw i32 %338, %339
  %341 = sext i32 %340 to i64
  %342 = getelementptr inbounds float, ptr %337, i64 %341
  store float %328, ptr %342, align 4, !tbaa !9
  br label %343

343:                                              ; preds = %327, %320, %315
  br label %344

344:                                              ; preds = %343, %282, %275
  %345 = load i32, ptr %8, align 4, !tbaa !11
  %346 = load i32, ptr %17, align 4, !tbaa !11
  %347 = sub nsw i32 %345, %346
  %348 = load ptr, ptr %4, align 8, !tbaa !5
  %349 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %348)
  %350 = icmp ult i32 %347, %349
  br i1 %350, label %351, label %413

351:                                              ; preds = %344
  %352 = load i32, ptr %8, align 4, !tbaa !11
  %353 = load i32, ptr %17, align 4, !tbaa !11
  %354 = sub nsw i32 %352, %353
  %355 = icmp sgt i32 %354, 0
  br i1 %355, label %356, label %413

356:                                              ; preds = %351
  %357 = load i32, ptr %7, align 4, !tbaa !11
  %358 = load i32, ptr %18, align 4, !tbaa !11
  %359 = add nsw i32 %357, %358
  %360 = load ptr, ptr %4, align 8, !tbaa !5
  %361 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %360)
  %362 = icmp ult i32 %359, %361
  br i1 %362, label %363, label %384

363:                                              ; preds = %356
  %364 = load i32, ptr %7, align 4, !tbaa !11
  %365 = load i32, ptr %18, align 4, !tbaa !11
  %366 = add nsw i32 %364, %365
  %367 = icmp sgt i32 %366, 0
  br i1 %367, label %368, label %384

368:                                              ; preds = %363
  %369 = load float, ptr %12, align 4, !tbaa !9
  %370 = load ptr, ptr %4, align 8, !tbaa !5
  %371 = getelementptr inbounds %class.ImageContent, ptr %370, i32 0, i32 4
  %372 = load ptr, ptr %371, align 8, !tbaa !13
  %373 = load i32, ptr %8, align 4, !tbaa !11
  %374 = load i32, ptr %17, align 4, !tbaa !11
  %375 = sub nsw i32 %373, %374
  %376 = sext i32 %375 to i64
  %377 = getelementptr inbounds ptr, ptr %372, i64 %376
  %378 = load ptr, ptr %377, align 8, !tbaa !5
  %379 = load i32, ptr %7, align 4, !tbaa !11
  %380 = load i32, ptr %18, align 4, !tbaa !11
  %381 = add nsw i32 %379, %380
  %382 = sext i32 %381 to i64
  %383 = getelementptr inbounds float, ptr %378, i64 %382
  store float %369, ptr %383, align 4, !tbaa !9
  br label %384

384:                                              ; preds = %368, %363, %356
  %385 = load i32, ptr %7, align 4, !tbaa !11
  %386 = load i32, ptr %18, align 4, !tbaa !11
  %387 = sub nsw i32 %385, %386
  %388 = icmp sgt i32 %387, 0
  br i1 %388, label %389, label %412

389:                                              ; preds = %384
  %390 = load i32, ptr %7, align 4, !tbaa !11
  %391 = load i32, ptr %18, align 4, !tbaa !11
  %392 = sub nsw i32 %390, %391
  %393 = load ptr, ptr %4, align 8, !tbaa !5
  %394 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %393)
  %395 = icmp ult i32 %392, %394
  br i1 %395, label %396, label %412

396:                                              ; preds = %389
  %397 = load float, ptr %12, align 4, !tbaa !9
  %398 = load ptr, ptr %4, align 8, !tbaa !5
  %399 = getelementptr inbounds %class.ImageContent, ptr %398, i32 0, i32 4
  %400 = load ptr, ptr %399, align 8, !tbaa !13
  %401 = load i32, ptr %8, align 4, !tbaa !11
  %402 = load i32, ptr %17, align 4, !tbaa !11
  %403 = sub nsw i32 %401, %402
  %404 = sext i32 %403 to i64
  %405 = getelementptr inbounds ptr, ptr %400, i64 %404
  %406 = load ptr, ptr %405, align 8, !tbaa !5
  %407 = load i32, ptr %7, align 4, !tbaa !11
  %408 = load i32, ptr %18, align 4, !tbaa !11
  %409 = sub nsw i32 %407, %408
  %410 = sext i32 %409 to i64
  %411 = getelementptr inbounds float, ptr %406, i64 %410
  store float %397, ptr %411, align 4, !tbaa !9
  br label %412

412:                                              ; preds = %396, %389, %384
  br label %413

413:                                              ; preds = %412, %351, %344
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #5
  br label %414

414:                                              ; preds = %413
  %415 = load i32, ptr %17, align 4, !tbaa !11
  %416 = add nsw i32 %415, 1
  store i32 %416, ptr %17, align 4, !tbaa !11
  br label %121, !llvm.loop !17

417:                                              ; preds = %125
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #5
  br label %418

418:                                              ; preds = %417
  %419 = load float, ptr %15, align 4, !tbaa !9
  %420 = fpext float %419 to double
  %421 = fadd double %420, 2.000000e-01
  %422 = fptrunc double %421 to float
  store float %422, ptr %15, align 4, !tbaa !9
  br label %110, !llvm.loop !18

423:                                              ; preds = %116
  store float 0.000000e+00, ptr %11, align 4, !tbaa !9
  %424 = load float, ptr %6, align 4, !tbaa !9
  store float %424, ptr %12, align 4, !tbaa !9
  br label %425

425:                                              ; preds = %423
  %426 = load i32, ptr %13, align 4, !tbaa !11
  %427 = add nsw i32 %426, 1
  store i32 %427, ptr %13, align 4, !tbaa !11
  br label %102, !llvm.loop !19

428:                                              ; preds = %105
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #5
  ret void
}

; 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 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 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: 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 float @_ZNK6Corner14getCornerScaleEv(ptr noundef nonnull align 4 dereferenceable(88)) #2 align 2

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

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

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

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 = { 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 = { 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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { 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}


; 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
define dso_local void @_Z13displayCircleP12ImageContentP16CornerDescriptorf(ptr noundef %0, ptr noundef nonnull %1, float noundef %2) local_unnamed_addr #0 {
  %4 = tail call noundef float @_ZNK6Corner4getXEv(ptr noundef nonnull align 4 dereferenceable(88) %1)
  %5 = fptosi float %4 to i32
  %.fr195 = freeze i32 %5
  %6 = tail call noundef float @_ZNK6Corner4getYEv(ptr noundef nonnull align 4 dereferenceable(88) %1)
  %7 = fptosi float %6 to i32
  %8 = icmp sgt i32 %7, 0
  %9 = getelementptr inbounds i8, ptr %0, i64 16
  %10 = zext nneg i32 %.fr195 to i64
  %11 = zext nneg i32 %7 to i64
  br i1 %8, label %.split.us, label %.split184.us

.split.us:                                        ; preds = %3
  %12 = icmp sgt i32 %.fr195, 0
  %13 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %14 = icmp ugt i32 %13, %7
  br i1 %12, label %.split.us.split.preheader, label %.split.us.split.us.preheader

.split.us.split.us.preheader:                     ; preds = %.split.us
  %15 = icmp ugt i32 %7, 2
  %or.cond = and i1 %14, %15
  br i1 %or.cond, label %16, label %.split.us.split.us.1

.split.us.split.preheader:                        ; preds = %.split.us
  br i1 %14, label %35, label %.split.us.split.1

16:                                               ; preds = %.split.us.split.us.preheader
  %17 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  br label %.split.us.split.us.1

.split.us.split.us.1:                             ; preds = %16, %.split.us.split.us.preheader
  %18 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %19 = icmp ugt i32 %18, %7
  %20 = icmp ne i32 %7, 1
  %or.cond.1 = and i1 %19, %20
  br i1 %or.cond.1, label %21, label %.split.us.split.us.2

21:                                               ; preds = %.split.us.split.us.1
  %22 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  br label %.split.us.split.us.2

.split.us.split.us.2:                             ; preds = %21, %.split.us.split.us.1
  %23 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %24 = icmp ugt i32 %23, %7
  br i1 %24, label %25, label %.split.us.split.us.3

25:                                               ; preds = %.split.us.split.us.2
  %26 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  br label %.split.us.split.us.3

.split.us.split.us.3:                             ; preds = %25, %.split.us.split.us.2
  %27 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %28 = icmp ugt i32 %27, %7
  br i1 %28, label %29, label %.split.us.split.us.4

29:                                               ; preds = %.split.us.split.us.3
  %30 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  br label %.split.us.split.us.4

.split.us.split.us.4:                             ; preds = %29, %.split.us.split.us.3
  %31 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %32 = icmp ugt i32 %31, %7
  br i1 %32, label %33, label %.split184.us

33:                                               ; preds = %.split.us.split.us.4
  %34 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  br label %.split184.us

35:                                               ; preds = %.split.us.split.preheader
  %36 = add nsw i32 %7, -2
  %37 = icmp ugt i32 %7, 2
  br i1 %37, label %38, label %.split.us.split.1

38:                                               ; preds = %35
  %39 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %40 = icmp ult i32 %36, %39
  br i1 %40, label %41, label %.split.us.split.1

41:                                               ; preds = %38
  %42 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %43 = icmp ugt i32 %42, %.fr195
  br i1 %43, label %44, label %.split.us.split.1

44:                                               ; preds = %41
  %45 = add nsw i32 %.fr195, -2
  %46 = icmp ugt i32 %.fr195, 2
  br i1 %46, label %47, label %.split.us.split.1

47:                                               ; preds = %44
  %48 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %49 = icmp ult i32 %45, %48
  br i1 %49, label %50, label %.split.us.split.1

50:                                               ; preds = %47
  %51 = load ptr, ptr %9, align 8, !tbaa !5
  %52 = zext nneg i32 %36 to i64
  %53 = getelementptr inbounds ptr, ptr %51, i64 %52
  %54 = load ptr, ptr %53, align 8, !tbaa !11
  %55 = getelementptr inbounds float, ptr %54, i64 %10
  store float %2, ptr %55, align 4, !tbaa !12
  %56 = getelementptr inbounds ptr, ptr %51, i64 %11
  %57 = load ptr, ptr %56, align 8, !tbaa !11
  %58 = zext nneg i32 %45 to i64
  %59 = getelementptr inbounds float, ptr %57, i64 %58
  store float %2, ptr %59, align 4, !tbaa !12
  br label %.split.us.split.1

.split.us.split.1:                                ; preds = %50, %47, %44, %41, %38, %35, %.split.us.split.preheader
  %60 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %61 = icmp ugt i32 %60, %7
  br i1 %61, label %62, label %.split.us.split.2

62:                                               ; preds = %.split.us.split.1
  %63 = add nsw i32 %7, -1
  %.not = icmp eq i32 %7, 1
  br i1 %.not, label %.split.us.split.2, label %64

64:                                               ; preds = %62
  %65 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %66 = icmp ult i32 %63, %65
  br i1 %66, label %67, label %.split.us.split.2

67:                                               ; preds = %64
  %68 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %69 = icmp ugt i32 %68, %.fr195
  br i1 %69, label %70, label %.split.us.split.2

70:                                               ; preds = %67
  %71 = add nsw i32 %.fr195, -1
  %.not200 = icmp eq i32 %.fr195, 1
  br i1 %.not200, label %.split.us.split.2, label %72

72:                                               ; preds = %70
  %73 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %74 = icmp ult i32 %71, %73
  br i1 %74, label %75, label %.split.us.split.2

75:                                               ; preds = %72
  %76 = load ptr, ptr %9, align 8, !tbaa !5
  %77 = zext nneg i32 %63 to i64
  %78 = getelementptr inbounds ptr, ptr %76, i64 %77
  %79 = load ptr, ptr %78, align 8, !tbaa !11
  %80 = getelementptr inbounds float, ptr %79, i64 %10
  store float %2, ptr %80, align 4, !tbaa !12
  %81 = getelementptr inbounds ptr, ptr %76, i64 %11
  %82 = load ptr, ptr %81, align 8, !tbaa !11
  %83 = zext nneg i32 %71 to i64
  %84 = getelementptr inbounds float, ptr %82, i64 %83
  store float %2, ptr %84, align 4, !tbaa !12
  br label %.split.us.split.2

.split.us.split.2:                                ; preds = %75, %72, %70, %67, %64, %62, %.split.us.split.1
  %85 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %86 = icmp ugt i32 %85, %7
  br i1 %86, label %87, label %.split.us.split.3

87:                                               ; preds = %.split.us.split.2
  %88 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %89 = icmp ugt i32 %88, %7
  br i1 %89, label %90, label %.split.us.split.3

90:                                               ; preds = %87
  %91 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %92 = icmp ugt i32 %91, %.fr195
  br i1 %92, label %93, label %.split.us.split.3

93:                                               ; preds = %90
  %94 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %95 = icmp ult i32 %.fr195, %94
  br i1 %95, label %96, label %.split.us.split.3

96:                                               ; preds = %93
  %97 = load ptr, ptr %9, align 8, !tbaa !5
  %98 = getelementptr inbounds ptr, ptr %97, i64 %11
  %99 = load ptr, ptr %98, align 8, !tbaa !11
  %100 = getelementptr inbounds float, ptr %99, i64 %10
  store float %2, ptr %100, align 4, !tbaa !12
  br label %.split.us.split.3

.split.us.split.3:                                ; preds = %96, %93, %90, %87, %.split.us.split.2
  %101 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %102 = icmp ugt i32 %101, %7
  br i1 %102, label %103, label %.split.us.split.4

103:                                              ; preds = %.split.us.split.3
  %104 = add nuw nsw i32 %7, 1
  %105 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %106 = icmp ult i32 %104, %105
  br i1 %106, label %107, label %.split.us.split.4

107:                                              ; preds = %103
  %108 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %109 = icmp ugt i32 %108, %.fr195
  br i1 %109, label %110, label %.split.us.split.4

110:                                              ; preds = %107
  %111 = add nuw nsw i32 %.fr195, 1
  %112 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %113 = icmp ult i32 %111, %112
  br i1 %113, label %114, label %.split.us.split.4

114:                                              ; preds = %110
  %115 = load ptr, ptr %9, align 8, !tbaa !5
  %116 = zext nneg i32 %104 to i64
  %117 = getelementptr inbounds ptr, ptr %115, i64 %116
  %118 = load ptr, ptr %117, align 8, !tbaa !11
  %119 = getelementptr inbounds float, ptr %118, i64 %10
  store float %2, ptr %119, align 4, !tbaa !12
  %120 = getelementptr inbounds ptr, ptr %115, i64 %11
  %121 = load ptr, ptr %120, align 8, !tbaa !11
  %122 = zext nneg i32 %111 to i64
  %123 = getelementptr inbounds float, ptr %121, i64 %122
  store float %2, ptr %123, align 4, !tbaa !12
  br label %.split.us.split.4

.split.us.split.4:                                ; preds = %114, %110, %107, %103, %.split.us.split.3
  %124 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %125 = icmp ugt i32 %124, %7
  br i1 %125, label %126, label %.split184.us

126:                                              ; preds = %.split.us.split.4
  %127 = add nuw nsw i32 %7, 2
  %128 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %129 = icmp ult i32 %127, %128
  br i1 %129, label %130, label %.split184.us

130:                                              ; preds = %126
  %131 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %132 = icmp ugt i32 %131, %.fr195
  br i1 %132, label %133, label %.split184.us

133:                                              ; preds = %130
  %134 = add nuw nsw i32 %.fr195, 2
  %135 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %136 = icmp ult i32 %134, %135
  br i1 %136, label %137, label %.split184.us

137:                                              ; preds = %133
  %138 = load ptr, ptr %9, align 8, !tbaa !5
  %139 = zext nneg i32 %127 to i64
  %140 = getelementptr inbounds ptr, ptr %138, i64 %139
  %141 = load ptr, ptr %140, align 8, !tbaa !11
  %142 = getelementptr inbounds float, ptr %141, i64 %10
  store float %2, ptr %142, align 4, !tbaa !12
  %143 = getelementptr inbounds ptr, ptr %138, i64 %11
  %144 = load ptr, ptr %143, align 8, !tbaa !11
  %145 = zext nneg i32 %134 to i64
  %146 = getelementptr inbounds float, ptr %144, i64 %145
  store float %2, ptr %146, align 4, !tbaa !12
  br label %.split184.us

.split184.us:                                     ; preds = %.split.us.split.4, %126, %130, %133, %137, %.split.us.split.us.4, %33, %3
  %147 = tail call noundef float @_ZNK6Corner14getCornerScaleEv(ptr noundef nonnull align 4 dereferenceable(88) %1)
  %148 = sext i32 %.fr195 to i64
  %149 = sext i32 %7 to i64
  br label %151

150:                                              ; preds = %._crit_edge190
  ret void

151:                                              ; preds = %.split184.us, %._crit_edge190
  %.0156193 = phi float [ 1.000000e+00, %.split184.us ], [ 0.000000e+00, %._crit_edge190 ]
  %152 = phi i1 [ true, %.split184.us ], [ false, %._crit_edge190 ]
  %.0159191 = phi float [ 0.000000e+00, %.split184.us ], [ %2, %._crit_edge190 ]
  %153 = fsub float %147, %.0156193
  %154 = fadd float %147, %.0156193
  %155 = fcmp ugt float %153, %154
  br i1 %155, label %._crit_edge190, label %.lr.ph189

._crit_edge190:                                   ; preds = %._crit_edge, %151
  br i1 %152, label %151, label %150, !llvm.loop !14

.lr.ph189:                                        ; preds = %151, %._crit_edge
  %.0157187 = phi float [ %161, %._crit_edge ], [ %153, %151 ]
  %156 = tail call noundef float @_ZSt4rintf(float noundef %.0157187)
  %157 = fptosi float %156 to i32
  %.not185 = icmp slt i32 %157, 0
  br i1 %.not185, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %.lr.ph189
  %158 = add nuw i32 %157, 1
  %wide.trip.count = zext i32 %158 to i64
  br label %.lr.ph

._crit_edge:                                      ; preds = %288, %.lr.ph189
  %159 = fpext float %.0157187 to double
  %160 = fadd double %159, 2.000000e-01
  %161 = fptrunc double %160 to float
  %162 = fcmp ult float %154, %161
  br i1 %162, label %._crit_edge190, label %.lr.ph189, !llvm.loop !16

.lr.ph:                                           ; preds = %.lr.ph.preheader, %288
  %indvars.iv = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next, %288 ]
  %163 = mul nuw nsw i64 %indvars.iv, %indvars.iv
  %164 = trunc nuw i64 %163 to i32
  %165 = uitofp nneg i32 %164 to float
  %166 = fneg float %165
  %167 = tail call float @llvm.fmuladd.f32(float %.0157187, float %.0157187, float %166)
  %168 = tail call noundef float @_ZSt4sqrtf(float noundef %167)
  %169 = tail call noundef float @_ZSt4rintf(float noundef %168)
  %170 = fptosi float %169 to i32
  %171 = add nsw i64 %indvars.iv, %148
  %172 = icmp sgt i64 %171, 0
  br i1 %172, label %173, label %200

173:                                              ; preds = %.lr.ph
  %174 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %175 = trunc nsw i64 %171 to i32
  %176 = icmp ugt i32 %174, %175
  br i1 %176, label %177, label %200

177:                                              ; preds = %173
  %178 = add nsw i32 %170, %7
  %179 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %180 = icmp ult i32 %178, %179
  %181 = icmp sgt i32 %178, 0
  %or.cond176 = and i1 %181, %180
  br i1 %or.cond176, label %182, label %188

182:                                              ; preds = %177
  %183 = load ptr, ptr %9, align 8, !tbaa !5
  %184 = zext nneg i32 %178 to i64
  %185 = getelementptr inbounds ptr, ptr %183, i64 %184
  %186 = load ptr, ptr %185, align 8, !tbaa !11
  %187 = getelementptr inbounds float, ptr %186, i64 %171
  store float %.0159191, ptr %187, align 4, !tbaa !12
  br label %188

188:                                              ; preds = %182, %177
  %189 = sub nsw i32 %7, %170
  %190 = icmp sgt i32 %189, 0
  br i1 %190, label %191, label %200

191:                                              ; preds = %188
  %192 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %193 = icmp ult i32 %189, %192
  br i1 %193, label %194, label %200

194:                                              ; preds = %191
  %195 = load ptr, ptr %9, align 8, !tbaa !5
  %196 = zext nneg i32 %189 to i64
  %197 = getelementptr inbounds ptr, ptr %195, i64 %196
  %198 = load ptr, ptr %197, align 8, !tbaa !11
  %199 = getelementptr inbounds float, ptr %198, i64 %171
  store float %.0159191, ptr %199, align 4, !tbaa !12
  br label %200

200:                                              ; preds = %188, %191, %194, %173, %.lr.ph
  %201 = sub nsw i64 %148, %indvars.iv
  %202 = icmp sgt i64 %201, 0
  br i1 %202, label %203, label %230

203:                                              ; preds = %200
  %204 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %205 = trunc nsw i64 %201 to i32
  %206 = icmp ugt i32 %204, %205
  br i1 %206, label %207, label %230

207:                                              ; preds = %203
  %208 = add nsw i32 %170, %7
  %209 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %210 = icmp ult i32 %208, %209
  %211 = icmp sgt i32 %208, 0
  %or.cond177 = and i1 %211, %210
  br i1 %or.cond177, label %212, label %218

212:                                              ; preds = %207
  %213 = load ptr, ptr %9, align 8, !tbaa !5
  %214 = zext nneg i32 %208 to i64
  %215 = getelementptr inbounds ptr, ptr %213, i64 %214
  %216 = load ptr, ptr %215, align 8, !tbaa !11
  %217 = getelementptr inbounds float, ptr %216, i64 %201
  store float %.0159191, ptr %217, align 4, !tbaa !12
  br label %218

218:                                              ; preds = %212, %207
  %219 = sub nsw i32 %7, %170
  %220 = icmp sgt i32 %219, 0
  br i1 %220, label %221, label %230

221:                                              ; preds = %218
  %222 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %223 = icmp ult i32 %219, %222
  br i1 %223, label %224, label %230

224:                                              ; preds = %221
  %225 = load ptr, ptr %9, align 8, !tbaa !5
  %226 = zext nneg i32 %219 to i64
  %227 = getelementptr inbounds ptr, ptr %225, i64 %226
  %228 = load ptr, ptr %227, align 8, !tbaa !11
  %229 = getelementptr inbounds float, ptr %228, i64 %201
  store float %.0159191, ptr %229, align 4, !tbaa !12
  br label %230

230:                                              ; preds = %218, %221, %224, %203, %200
  %231 = add nsw i64 %indvars.iv, %149
  %232 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %233 = trunc nsw i64 %231 to i32
  %234 = icmp ugt i32 %232, %233
  %235 = icmp sgt i64 %231, 0
  %or.cond178 = and i1 %235, %234
  br i1 %or.cond178, label %236, label %259

236:                                              ; preds = %230
  %237 = add nsw i32 %.fr195, %170
  %238 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %239 = icmp ult i32 %237, %238
  %240 = icmp sgt i32 %237, 0
  %or.cond179 = and i1 %240, %239
  br i1 %or.cond179, label %241, label %247

241:                                              ; preds = %236
  %242 = load ptr, ptr %9, align 8, !tbaa !5
  %243 = getelementptr inbounds ptr, ptr %242, i64 %231
  %244 = load ptr, ptr %243, align 8, !tbaa !11
  %245 = zext nneg i32 %237 to i64
  %246 = getelementptr inbounds float, ptr %244, i64 %245
  store float %.0159191, ptr %246, align 4, !tbaa !12
  br label %247

247:                                              ; preds = %241, %236
  %248 = sub nsw i32 %.fr195, %170
  %249 = icmp sgt i32 %248, 0
  br i1 %249, label %250, label %259

250:                                              ; preds = %247
  %251 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %252 = icmp ult i32 %248, %251
  br i1 %252, label %253, label %259

253:                                              ; preds = %250
  %254 = load ptr, ptr %9, align 8, !tbaa !5
  %255 = getelementptr inbounds ptr, ptr %254, i64 %231
  %256 = load ptr, ptr %255, align 8, !tbaa !11
  %257 = zext nneg i32 %248 to i64
  %258 = getelementptr inbounds float, ptr %256, i64 %257
  store float %.0159191, ptr %258, align 4, !tbaa !12
  br label %259

259:                                              ; preds = %247, %250, %253, %230
  %260 = sub nsw i64 %149, %indvars.iv
  %261 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %262 = trunc nsw i64 %260 to i32
  %263 = icmp ugt i32 %261, %262
  %264 = icmp sgt i64 %260, 0
  %or.cond180 = and i1 %264, %263
  br i1 %or.cond180, label %265, label %288

265:                                              ; preds = %259
  %266 = add nsw i32 %.fr195, %170
  %267 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %268 = icmp ult i32 %266, %267
  %269 = icmp sgt i32 %266, 0
  %or.cond181 = and i1 %269, %268
  br i1 %or.cond181, label %270, label %276

270:                                              ; preds = %265
  %271 = load ptr, ptr %9, align 8, !tbaa !5
  %272 = getelementptr inbounds ptr, ptr %271, i64 %260
  %273 = load ptr, ptr %272, align 8, !tbaa !11
  %274 = zext nneg i32 %266 to i64
  %275 = getelementptr inbounds float, ptr %273, i64 %274
  store float %.0159191, ptr %275, align 4, !tbaa !12
  br label %276

276:                                              ; preds = %270, %265
  %277 = sub nsw i32 %.fr195, %170
  %278 = icmp sgt i32 %277, 0
  br i1 %278, label %279, label %288

279:                                              ; preds = %276
  %280 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %281 = icmp ult i32 %277, %280
  br i1 %281, label %282, label %288

282:                                              ; preds = %279
  %283 = load ptr, ptr %9, align 8, !tbaa !5
  %284 = getelementptr inbounds ptr, ptr %283, i64 %260
  %285 = load ptr, ptr %284, align 8, !tbaa !11
  %286 = zext nneg i32 %277 to i64
  %287 = getelementptr inbounds float, ptr %285, i64 %286
  store float %.0159191, ptr %287, align 4, !tbaa !12
  br label %288

288:                                              ; preds = %276, %279, %282, %259
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !17
}

; 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 i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80)) local_unnamed_addr #1 align 2

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

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

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

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

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare float @llvm.fmuladd.f32(float, float, float) #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 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }

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

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


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