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

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.std::vector.1" = type { %"struct.std::_Vector_base.2" }
%"struct.std::_Vector_base.2" = type { %"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl" = type { %"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" = type { ptr, ptr, ptr }

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

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

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

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

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

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

declare i32 @__gxx_personality_v0(...)

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN6MatrixclEii(ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, i32 noundef) unnamed_addr #1 align 2

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

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

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

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

declare noundef zeroext i1 @_ZN12ImageContent11interpolateEPS_ffffff(ptr noundef nonnull align 8 dereferenceable(80), ptr noundef, float noundef, float noundef, float noundef, float noundef, float noundef, float noundef) #8

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_Z4funcPciP12ImageContentf(ptr noundef, i32 noundef, ptr noundef, float noundef) #7

; Function Attrs: mustprogress uwtable
define dso_local noundef float @_Z16searchIntegScalePcP12ImageContentP16CornerDescriptor6Matrix(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3) #7 personality ptr @__gxx_personality_v0 {
  %5 = alloca float, align 4
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca float, align 4
  %11 = alloca float, align 4
  %12 = alloca float, align 4
  %13 = alloca float, align 4
  %14 = alloca float, align 4
  %15 = alloca float, align 4
  %16 = alloca float, align 4
  %17 = alloca float, align 4
  %18 = alloca float, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca i32, align 4
  %24 = alloca float, align 4
  %25 = alloca float, align 4
  %26 = alloca float, align 4
  %27 = alloca float, align 4
  %28 = alloca %"class.std::vector.1", align 8
  %29 = alloca %"class.std::vector.1", align 8
  %30 = alloca float, align 4
  %31 = alloca float, align 4
  %32 = alloca float, align 4
  %33 = alloca float, align 4
  %34 = alloca float, align 4
  %35 = alloca float, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  store ptr %0, ptr %6, align 8, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !5
  store ptr %2, ptr %8, align 8, !tbaa !5
  store ptr %3, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #9
  %41 = load ptr, ptr %8, align 8, !tbaa !5
  %42 = call noundef float @_ZNK6Corner9getIntSigEv(ptr noundef nonnull align 4 dereferenceable(88) %41)
  store float %42, ptr %10, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #9
  %43 = load ptr, ptr %8, align 8, !tbaa !5
  %44 = call noundef float @_ZNK6Corner4getXEv(ptr noundef nonnull align 4 dereferenceable(88) %43)
  store float %44, ptr %12, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #9
  %45 = load ptr, ptr %8, align 8, !tbaa !5
  %46 = call noundef float @_ZNK6Corner4getYEv(ptr noundef nonnull align 4 dereferenceable(88) %45)
  store float %46, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #9
  %47 = load float, ptr %10, align 4, !tbaa !9
  %48 = fpext float %47 to double
  %49 = fdiv double 3.500000e+01, %48
  %50 = fptrunc double %49 to float
  store float %50, ptr %14, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #9
  store float 0x3FF99999A0000000, ptr %15, align 4, !tbaa !9
  %51 = load float, ptr %14, align 4, !tbaa !9
  %52 = load float, ptr %15, align 4, !tbaa !9
  %53 = fcmp olt float %51, %52
  br i1 %53, label %54, label %56

54:                                               ; preds = %4
  %55 = load float, ptr %14, align 4, !tbaa !9
  br label %58

56:                                               ; preds = %4
  %57 = load float, ptr %15, align 4, !tbaa !9
  br label %58

58:                                               ; preds = %56, %54
  %59 = phi float [ %55, %54 ], [ %57, %56 ]
  store float %59, ptr %15, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #9
  store float 0x3FD99999A0000000, ptr %16, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #9
  store float 0x3FF1F7CEE0000000, ptr %17, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #9
  store float 3.000000e+00, ptr %18, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #9
  %60 = load float, ptr %15, align 4, !tbaa !9
  %61 = fmul float 3.000000e+00, %60
  %62 = load float, ptr %10, align 4, !tbaa !9
  %63 = fmul float %61, %62
  %64 = call noundef float @_ZSt4rintf(float noundef %63)
  %65 = call float @llvm.fmuladd.f32(float 2.000000e+00, float %64, float 1.000000e+00)
  %66 = fptosi float %65 to i32
  store i32 %66, ptr %19, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #9
  %67 = load i32, ptr %19, align 4, !tbaa !11
  %68 = ashr i32 %67, 1
  store i32 %68, ptr %20, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #9
  %69 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 80) #10
  %70 = load i32, ptr %19, align 4, !tbaa !11
  %71 = load i32, ptr %19, align 4, !tbaa !11
  invoke void @_ZN12ImageContentC2Eii(ptr noundef nonnull align 8 dereferenceable(80) %69, i32 noundef %70, i32 noundef %71)
          to label %72 unwind label %120

72:                                               ; preds = %58
  store ptr %69, ptr %21, align 8, !tbaa !5
  %73 = load ptr, ptr %21, align 8, !tbaa !5
  %74 = load ptr, ptr %7, align 8, !tbaa !5
  %75 = load float, ptr %12, align 4, !tbaa !9
  %76 = load float, ptr %13, align 4, !tbaa !9
  %77 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6MatrixclEii(ptr noundef nonnull align 8 dereferenceable(24) %3, i32 noundef 1, i32 noundef 1)
  %78 = load double, ptr %77, align 8, !tbaa !13
  %79 = fptrunc double %78 to float
  %80 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6MatrixclEii(ptr noundef nonnull align 8 dereferenceable(24) %3, i32 noundef 1, i32 noundef 2)
  %81 = load double, ptr %80, align 8, !tbaa !13
  %82 = fptrunc double %81 to float
  %83 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6MatrixclEii(ptr noundef nonnull align 8 dereferenceable(24) %3, i32 noundef 2, i32 noundef 1)
  %84 = load double, ptr %83, align 8, !tbaa !13
  %85 = fptrunc double %84 to float
  %86 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6MatrixclEii(ptr noundef nonnull align 8 dereferenceable(24) %3, i32 noundef 2, i32 noundef 2)
  %87 = load double, ptr %86, align 8, !tbaa !13
  %88 = fptrunc double %87 to float
  %89 = call noundef zeroext i1 @_ZN12ImageContent11interpolateEPS_ffffff(ptr noundef nonnull align 8 dereferenceable(80) %73, ptr noundef %74, float noundef %75, float noundef %76, float noundef %79, float noundef %82, float noundef %85, float noundef %88)
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #9
  store float 1.000000e+04, ptr %25, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #9
  store float 1.000000e+04, ptr %26, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #9
  store float 1.000000e+04, ptr %27, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %28) #9
  call void @_ZNSt6vectorIfSaIfEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr %29) #9
  call void @_ZNSt6vectorIfSaIfEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #9
  %90 = load float, ptr %16, align 4, !tbaa !9
  %91 = load float, ptr %10, align 4, !tbaa !9
  %92 = fmul float %90, %91
  store float %92, ptr %11, align 4, !tbaa !9
  %93 = load ptr, ptr %6, align 8, !tbaa !5
  %94 = load i32, ptr %20, align 4, !tbaa !11
  %95 = load ptr, ptr %21, align 8, !tbaa !5
  %96 = load float, ptr %11, align 4, !tbaa !9
  %97 = invoke noundef float @_Z4funcPciP12ImageContentf(ptr noundef %93, i32 noundef %94, ptr noundef %95, float noundef %96)
          to label %98 unwind label %124

98:                                               ; preds = %72
  store float %97, ptr %26, align 4, !tbaa !9
  %99 = load float, ptr %17, align 4, !tbaa !9
  %100 = load float, ptr %16, align 4, !tbaa !9
  %101 = fmul float %100, %99
  store float %101, ptr %16, align 4, !tbaa !9
  %102 = load float, ptr %16, align 4, !tbaa !9
  %103 = load float, ptr %10, align 4, !tbaa !9
  %104 = fmul float %102, %103
  store float %104, ptr %11, align 4, !tbaa !9
  %105 = load ptr, ptr %6, align 8, !tbaa !5
  %106 = load i32, ptr %20, align 4, !tbaa !11
  %107 = load ptr, ptr %21, align 8, !tbaa !5
  %108 = load float, ptr %11, align 4, !tbaa !9
  %109 = invoke noundef float @_Z4funcPciP12ImageContentf(ptr noundef %105, i32 noundef %106, ptr noundef %107, float noundef %108)
          to label %110 unwind label %124

110:                                              ; preds = %98
  store float %109, ptr %27, align 4, !tbaa !9
  %111 = load float, ptr %17, align 4, !tbaa !9
  %112 = load float, ptr %16, align 4, !tbaa !9
  %113 = fmul float %112, %111
  store float %113, ptr %16, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #9
  %114 = load float, ptr %16, align 4, !tbaa !9
  store float %114, ptr %30, align 4, !tbaa !9
  br label %115

115:                                              ; preds = %193, %110
  %116 = load float, ptr %30, align 4, !tbaa !9
  %117 = load float, ptr %15, align 4, !tbaa !9
  %118 = fcmp olt float %116, %117
  br i1 %118, label %128, label %119

119:                                              ; preds = %115
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  br label %198

120:                                              ; preds = %58
  %121 = landingpad { ptr, i32 }
          cleanup
  %122 = extractvalue { ptr, i32 } %121, 0
  store ptr %122, ptr %22, align 8
  %123 = extractvalue { ptr, i32 } %121, 1
  store i32 %123, ptr %23, align 4
  call void @_ZdlPvm(ptr noundef %69, i64 noundef 80) #11
  br label %397

124:                                              ; preds = %98, %72
  %125 = landingpad { ptr, i32 }
          cleanup
  %126 = extractvalue { ptr, i32 } %125, 0
  store ptr %126, ptr %22, align 8
  %127 = extractvalue { ptr, i32 } %125, 1
  store i32 %127, ptr %23, align 4
  br label %396

128:                                              ; preds = %115
  %129 = load float, ptr %30, align 4, !tbaa !9
  %130 = load float, ptr %10, align 4, !tbaa !9
  %131 = fmul float %129, %130
  store float %131, ptr %11, align 4, !tbaa !9
  %132 = load ptr, ptr %6, align 8, !tbaa !5
  %133 = load i32, ptr %20, align 4, !tbaa !11
  %134 = load ptr, ptr %21, align 8, !tbaa !5
  %135 = load float, ptr %11, align 4, !tbaa !9
  %136 = invoke noundef float @_Z4funcPciP12ImageContentf(ptr noundef %132, i32 noundef %133, ptr noundef %134, float noundef %135)
          to label %137 unwind label %159

137:                                              ; preds = %128
  store float %136, ptr %24, align 4, !tbaa !9
  %138 = load float, ptr %26, align 4, !tbaa !9
  store float %138, ptr %25, align 4, !tbaa !9
  %139 = load float, ptr %27, align 4, !tbaa !9
  store float %139, ptr %26, align 4, !tbaa !9
  %140 = load float, ptr %24, align 4, !tbaa !9
  store float %140, ptr %27, align 4, !tbaa !9
  %141 = load float, ptr %26, align 4, !tbaa !9
  %142 = load float, ptr %25, align 4, !tbaa !9
  %143 = fcmp ogt float %141, %142
  br i1 %143, label %144, label %167

144:                                              ; preds = %137
  %145 = load float, ptr %26, align 4, !tbaa !9
  %146 = load float, ptr %27, align 4, !tbaa !9
  %147 = fcmp ogt float %145, %146
  br i1 %147, label %148, label %167

148:                                              ; preds = %144
  %149 = load float, ptr %26, align 4, !tbaa !9
  %150 = invoke noundef float @_ZSt4fabsf(float noundef %149)
          to label %151 unwind label %159

151:                                              ; preds = %148
  %152 = load float, ptr %18, align 4, !tbaa !9
  %153 = fcmp ogt float %150, %152
  br i1 %153, label %154, label %167

154:                                              ; preds = %151
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #9
  %155 = load float, ptr %11, align 4, !tbaa !9
  %156 = load float, ptr %17, align 4, !tbaa !9
  %157 = fdiv float %155, %156
  store float %157, ptr %31, align 4, !tbaa !9
  invoke void @_ZNSt6vectorIfSaIfEE9push_backEOf(ptr noundef nonnull align 8 dereferenceable(24) %28, ptr noundef nonnull align 4 dereferenceable(4) %31)
          to label %158 unwind label %163

158:                                              ; preds = %154
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #9
  br label %192

159:                                              ; preds = %175, %148, %128
  %160 = landingpad { ptr, i32 }
          cleanup
  %161 = extractvalue { ptr, i32 } %160, 0
  store ptr %161, ptr %22, align 8
  %162 = extractvalue { ptr, i32 } %160, 1
  store i32 %162, ptr %23, align 4
  br label %197

163:                                              ; preds = %154
  %164 = landingpad { ptr, i32 }
          cleanup
  %165 = extractvalue { ptr, i32 } %164, 0
  store ptr %165, ptr %22, align 8
  %166 = extractvalue { ptr, i32 } %164, 1
  store i32 %166, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #9
  br label %197

167:                                              ; preds = %151, %144, %137
  %168 = load float, ptr %26, align 4, !tbaa !9
  %169 = load float, ptr %25, align 4, !tbaa !9
  %170 = fcmp olt float %168, %169
  br i1 %170, label %171, label %191

171:                                              ; preds = %167
  %172 = load float, ptr %26, align 4, !tbaa !9
  %173 = load float, ptr %27, align 4, !tbaa !9
  %174 = fcmp olt float %172, %173
  br i1 %174, label %175, label %191

175:                                              ; preds = %171
  %176 = load float, ptr %26, align 4, !tbaa !9
  %177 = invoke noundef float @_ZSt4fabsf(float noundef %176)
          to label %178 unwind label %159

178:                                              ; preds = %175
  %179 = load float, ptr %18, align 4, !tbaa !9
  %180 = fcmp ogt float %177, %179
  br i1 %180, label %181, label %191

181:                                              ; preds = %178
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #9
  %182 = load float, ptr %11, align 4, !tbaa !9
  %183 = fneg float %182
  %184 = load float, ptr %17, align 4, !tbaa !9
  %185 = fdiv float %183, %184
  store float %185, ptr %32, align 4, !tbaa !9
  invoke void @_ZNSt6vectorIfSaIfEE9push_backEOf(ptr noundef nonnull align 8 dereferenceable(24) %29, ptr noundef nonnull align 4 dereferenceable(4) %32)
          to label %186 unwind label %187

186:                                              ; preds = %181
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #9
  br label %191

187:                                              ; preds = %181
  %188 = landingpad { ptr, i32 }
          cleanup
  %189 = extractvalue { ptr, i32 } %188, 0
  store ptr %189, ptr %22, align 8
  %190 = extractvalue { ptr, i32 } %188, 1
  store i32 %190, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #9
  br label %197

191:                                              ; preds = %186, %178, %171, %167
  br label %192

192:                                              ; preds = %191, %158
  br label %193

193:                                              ; preds = %192
  %194 = load float, ptr %17, align 4, !tbaa !9
  %195 = load float, ptr %30, align 4, !tbaa !9
  %196 = fmul float %195, %194
  store float %196, ptr %30, align 4, !tbaa !9
  br label %115, !llvm.loop !15

197:                                              ; preds = %187, %163, %159
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  br label %396

198:                                              ; preds = %119
  %199 = load ptr, ptr %21, align 8, !tbaa !5
  %200 = icmp eq ptr %199, null
  br i1 %200, label %202, label %201

201:                                              ; preds = %198
  call void @_ZN12ImageContentD1Ev(ptr noundef nonnull align 8 dereferenceable(80) %199) #9
  call void @_ZdlPvm(ptr noundef %199, i64 noundef 80) #11
  br label %202

202:                                              ; preds = %201, %198
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #9
  store float 0.000000e+00, ptr %33, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #9
  store float 2.000000e+02, ptr %34, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #9
  %203 = load ptr, ptr %8, align 8, !tbaa !5
  %204 = invoke noundef i32 @_ZNK6Corner6isExtrEv(ptr noundef nonnull align 4 dereferenceable(88) %203)
          to label %205 unwind label %214

205:                                              ; preds = %202
  %206 = icmp eq i32 %204, 1
  br i1 %206, label %207, label %246

207:                                              ; preds = %205
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #9
  store i32 0, ptr %36, align 4, !tbaa !11
  br label %208

208:                                              ; preds = %242, %207
  %209 = load i32, ptr %36, align 4, !tbaa !11
  %210 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %28) #9
  %211 = trunc i64 %210 to i32
  %212 = icmp slt i32 %209, %211
  br i1 %212, label %218, label %213

213:                                              ; preds = %208
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  br label %245

214:                                              ; preds = %387, %386, %382, %379, %376, %246, %202
  %215 = landingpad { ptr, i32 }
          cleanup
  %216 = extractvalue { ptr, i32 } %215, 0
  store ptr %216, ptr %22, align 8
  %217 = extractvalue { ptr, i32 } %215, 1
  store i32 %217, ptr %23, align 4
  br label %395

218:                                              ; preds = %208
  %219 = load i32, ptr %36, align 4, !tbaa !11
  %220 = sext i32 %219 to i64
  %221 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %28, i64 noundef %220) #9
  %222 = load float, ptr %221, align 4, !tbaa !9
  %223 = load float, ptr %10, align 4, !tbaa !9
  %224 = fdiv float %222, %223
  store float %224, ptr %35, align 4, !tbaa !9
  %225 = load float, ptr %35, align 4, !tbaa !9
  %226 = fcmp olt float %225, 1.000000e+00
  br i1 %226, label %227, label %232

227:                                              ; preds = %218
  %228 = load float, ptr %35, align 4, !tbaa !9
  %229 = fpext float %228 to double
  %230 = fdiv double 1.000000e+00, %229
  %231 = fptrunc double %230 to float
  store float %231, ptr %35, align 4, !tbaa !9
  br label %232

232:                                              ; preds = %227, %218
  %233 = load float, ptr %35, align 4, !tbaa !9
  %234 = load float, ptr %34, align 4, !tbaa !9
  %235 = fcmp olt float %233, %234
  br i1 %235, label %236, label %241

236:                                              ; preds = %232
  %237 = load i32, ptr %36, align 4, !tbaa !11
  %238 = sext i32 %237 to i64
  %239 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %28, i64 noundef %238) #9
  %240 = load float, ptr %239, align 4, !tbaa !9
  store float %240, ptr %33, align 4, !tbaa !9
  br label %241

241:                                              ; preds = %236, %232
  br label %242

242:                                              ; preds = %241
  %243 = load i32, ptr %36, align 4, !tbaa !11
  %244 = add nsw i32 %243, 1
  store i32 %244, ptr %36, align 4, !tbaa !11
  br label %208, !llvm.loop !17

245:                                              ; preds = %213
  br label %246

246:                                              ; preds = %245, %205
  %247 = load ptr, ptr %8, align 8, !tbaa !5
  %248 = invoke noundef i32 @_ZNK6Corner6isExtrEv(ptr noundef nonnull align 4 dereferenceable(88) %247)
          to label %249 unwind label %214

249:                                              ; preds = %246
  %250 = icmp eq i32 %248, -1
  br i1 %250, label %251, label %292

251:                                              ; preds = %249
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #9
  store i32 0, ptr %37, align 4, !tbaa !11
  br label %252

252:                                              ; preds = %288, %251
  %253 = load i32, ptr %37, align 4, !tbaa !11
  %254 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %29) #9
  %255 = trunc i64 %254 to i32
  %256 = icmp slt i32 %253, %255
  br i1 %256, label %258, label %257

257:                                              ; preds = %252
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  br label %291

258:                                              ; preds = %252
  %259 = load i32, ptr %37, align 4, !tbaa !11
  %260 = sext i32 %259 to i64
  %261 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %29, i64 noundef %260) #9
  %262 = load float, ptr %261, align 4, !tbaa !9
  %263 = invoke noundef float @_ZSt4fabsf(float noundef %262)
          to label %264 unwind label %274

264:                                              ; preds = %258
  %265 = load float, ptr %10, align 4, !tbaa !9
  %266 = fdiv float %263, %265
  store float %266, ptr %35, align 4, !tbaa !9
  %267 = load float, ptr %35, align 4, !tbaa !9
  %268 = fcmp olt float %267, 1.000000e+00
  br i1 %268, label %269, label %278

269:                                              ; preds = %264
  %270 = load float, ptr %35, align 4, !tbaa !9
  %271 = fpext float %270 to double
  %272 = fdiv double 1.000000e+00, %271
  %273 = fptrunc double %272 to float
  store float %273, ptr %35, align 4, !tbaa !9
  br label %278

274:                                              ; preds = %258
  %275 = landingpad { ptr, i32 }
          cleanup
  %276 = extractvalue { ptr, i32 } %275, 0
  store ptr %276, ptr %22, align 8
  %277 = extractvalue { ptr, i32 } %275, 1
  store i32 %277, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  br label %395

278:                                              ; preds = %269, %264
  %279 = load float, ptr %35, align 4, !tbaa !9
  %280 = load float, ptr %34, align 4, !tbaa !9
  %281 = fcmp olt float %279, %280
  br i1 %281, label %282, label %287

282:                                              ; preds = %278
  %283 = load i32, ptr %37, align 4, !tbaa !11
  %284 = sext i32 %283 to i64
  %285 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %29, i64 noundef %284) #9
  %286 = load float, ptr %285, align 4, !tbaa !9
  store float %286, ptr %33, align 4, !tbaa !9
  br label %287

287:                                              ; preds = %282, %278
  br label %288

288:                                              ; preds = %287
  %289 = load i32, ptr %37, align 4, !tbaa !11
  %290 = add nsw i32 %289, 1
  store i32 %290, ptr %37, align 4, !tbaa !11
  br label %252, !llvm.loop !18

291:                                              ; preds = %257
  br label %292

292:                                              ; preds = %291, %249
  %293 = load float, ptr %33, align 4, !tbaa !9
  %294 = fcmp oeq float %293, 0.000000e+00
  br i1 %294, label %295, label %370

295:                                              ; preds = %292
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #9
  store i32 0, ptr %38, align 4, !tbaa !11
  br label %296

296:                                              ; preds = %326, %295
  %297 = load i32, ptr %38, align 4, !tbaa !11
  %298 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %28) #9
  %299 = trunc i64 %298 to i32
  %300 = icmp slt i32 %297, %299
  br i1 %300, label %302, label %301

301:                                              ; preds = %296
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  br label %329

302:                                              ; preds = %296
  %303 = load i32, ptr %38, align 4, !tbaa !11
  %304 = sext i32 %303 to i64
  %305 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %28, i64 noundef %304) #9
  %306 = load float, ptr %305, align 4, !tbaa !9
  %307 = load float, ptr %10, align 4, !tbaa !9
  %308 = fdiv float %306, %307
  store float %308, ptr %35, align 4, !tbaa !9
  %309 = load float, ptr %35, align 4, !tbaa !9
  %310 = fcmp olt float %309, 1.000000e+00
  br i1 %310, label %311, label %316

311:                                              ; preds = %302
  %312 = load float, ptr %35, align 4, !tbaa !9
  %313 = fpext float %312 to double
  %314 = fdiv double 1.000000e+00, %313
  %315 = fptrunc double %314 to float
  store float %315, ptr %35, align 4, !tbaa !9
  br label %316

316:                                              ; preds = %311, %302
  %317 = load float, ptr %35, align 4, !tbaa !9
  %318 = load float, ptr %34, align 4, !tbaa !9
  %319 = fcmp olt float %317, %318
  br i1 %319, label %320, label %325

320:                                              ; preds = %316
  %321 = load i32, ptr %38, align 4, !tbaa !11
  %322 = sext i32 %321 to i64
  %323 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %28, i64 noundef %322) #9
  %324 = load float, ptr %323, align 4, !tbaa !9
  store float %324, ptr %33, align 4, !tbaa !9
  br label %325

325:                                              ; preds = %320, %316
  br label %326

326:                                              ; preds = %325
  %327 = load i32, ptr %38, align 4, !tbaa !11
  %328 = add nsw i32 %327, 1
  store i32 %328, ptr %38, align 4, !tbaa !11
  br label %296, !llvm.loop !19

329:                                              ; preds = %301
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #9
  store i32 0, ptr %39, align 4, !tbaa !11
  br label %330

330:                                              ; preds = %366, %329
  %331 = load i32, ptr %39, align 4, !tbaa !11
  %332 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %29) #9
  %333 = trunc i64 %332 to i32
  %334 = icmp slt i32 %331, %333
  br i1 %334, label %336, label %335

335:                                              ; preds = %330
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  br label %369

336:                                              ; preds = %330
  %337 = load i32, ptr %39, align 4, !tbaa !11
  %338 = sext i32 %337 to i64
  %339 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %29, i64 noundef %338) #9
  %340 = load float, ptr %339, align 4, !tbaa !9
  %341 = invoke noundef float @_ZSt4fabsf(float noundef %340)
          to label %342 unwind label %352

342:                                              ; preds = %336
  %343 = load float, ptr %10, align 4, !tbaa !9
  %344 = fdiv float %341, %343
  store float %344, ptr %35, align 4, !tbaa !9
  %345 = load float, ptr %35, align 4, !tbaa !9
  %346 = fcmp olt float %345, 1.000000e+00
  br i1 %346, label %347, label %356

347:                                              ; preds = %342
  %348 = load float, ptr %35, align 4, !tbaa !9
  %349 = fpext float %348 to double
  %350 = fdiv double 1.000000e+00, %349
  %351 = fptrunc double %350 to float
  store float %351, ptr %35, align 4, !tbaa !9
  br label %356

352:                                              ; preds = %336
  %353 = landingpad { ptr, i32 }
          cleanup
  %354 = extractvalue { ptr, i32 } %353, 0
  store ptr %354, ptr %22, align 8
  %355 = extractvalue { ptr, i32 } %353, 1
  store i32 %355, ptr %23, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  br label %395

356:                                              ; preds = %347, %342
  %357 = load float, ptr %35, align 4, !tbaa !9
  %358 = load float, ptr %34, align 4, !tbaa !9
  %359 = fcmp olt float %357, %358
  br i1 %359, label %360, label %365

360:                                              ; preds = %356
  %361 = load i32, ptr %39, align 4, !tbaa !11
  %362 = sext i32 %361 to i64
  %363 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %29, i64 noundef %362) #9
  %364 = load float, ptr %363, align 4, !tbaa !9
  store float %364, ptr %33, align 4, !tbaa !9
  br label %365

365:                                              ; preds = %360, %356
  br label %366

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

369:                                              ; preds = %335
  br label %370

370:                                              ; preds = %369, %292
  %371 = load float, ptr %33, align 4, !tbaa !9
  %372 = fcmp une float %371, 0.000000e+00
  br i1 %372, label %373, label %391

373:                                              ; preds = %370
  %374 = load float, ptr %33, align 4, !tbaa !9
  %375 = fcmp olt float %374, 0.000000e+00
  br i1 %375, label %376, label %379

376:                                              ; preds = %373
  %377 = load ptr, ptr %8, align 8, !tbaa !5
  invoke void @_ZN6Corner6setMinEv(ptr noundef nonnull align 4 dereferenceable(88) %377)
          to label %378 unwind label %214

378:                                              ; preds = %376
  br label %382

379:                                              ; preds = %373
  %380 = load ptr, ptr %8, align 8, !tbaa !5
  invoke void @_ZN6Corner6setMaxEv(ptr noundef nonnull align 4 dereferenceable(88) %380)
          to label %381 unwind label %214

381:                                              ; preds = %379
  br label %382

382:                                              ; preds = %381, %378
  %383 = load ptr, ptr %8, align 8, !tbaa !5
  %384 = load float, ptr %33, align 4, !tbaa !9
  %385 = invoke noundef float @_ZSt4fabsf(float noundef %384)
          to label %386 unwind label %214

386:                                              ; preds = %382
  invoke void @_ZN6Corner9setIntSigEf(ptr noundef nonnull align 4 dereferenceable(88) %383, float noundef %385)
          to label %387 unwind label %214

387:                                              ; preds = %386
  %388 = load float, ptr %33, align 4, !tbaa !9
  %389 = invoke noundef float @_ZSt4fabsf(float noundef %388)
          to label %390 unwind label %214

390:                                              ; preds = %387
  store float %389, ptr %5, align 4
  store i32 1, ptr %40, align 4
  br label %393

391:                                              ; preds = %370
  %392 = load float, ptr %10, align 4, !tbaa !9
  store float %392, ptr %5, align 4
  store i32 1, ptr %40, align 4
  br label %393

393:                                              ; preds = %391, %390
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  call void @_ZNSt6vectorIfSaIfEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %29) #9
  call void @_ZNSt6vectorIfSaIfEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %28) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #9
  %394 = load float, ptr %5, align 4
  ret float %394

395:                                              ; preds = %352, %274, %214
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  br label %396

396:                                              ; preds = %395, %197, %124
  call void @_ZNSt6vectorIfSaIfEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %29) #9
  call void @_ZNSt6vectorIfSaIfEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %28) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #9
  br label %397

397:                                              ; preds = %396, %120
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #9
  br label %398

398:                                              ; preds = %397
  %399 = load ptr, ptr %22, align 8
  %400 = load i32, ptr %23, align 4
  %401 = insertvalue { ptr, i32 } poison, ptr %399, 0
  %402 = insertvalue { ptr, i32 } %401, i32 %400, 1
  resume { ptr, i32 } %402
}

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

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

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

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

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

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

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

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

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

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { 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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { nobuiltin allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nobuiltin nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nounwind }
attributes #10 = { builtin allocsize(0) }
attributes #11 = { builtin nounwind }

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

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


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.std::vector.1" = type { %"struct.std::_Vector_base.2" }
%"struct.std::_Vector_base.2" = type { %"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl" = type { %"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" = type { ptr, ptr, ptr }

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

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

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

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

declare i32 @__gxx_personality_v0(...)

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN6MatrixclEii(ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, i32 noundef) unnamed_addr #1 align 2

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

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

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

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

declare noundef zeroext i1 @_ZN12ImageContent11interpolateEPS_ffffff(ptr noundef nonnull align 8 dereferenceable(80), ptr noundef, float noundef, float noundef, float noundef, float noundef, float noundef, float noundef) local_unnamed_addr #8

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_Z4funcPciP12ImageContentf(ptr noundef, i32 noundef, ptr noundef, float noundef) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
define dso_local noundef float @_Z16searchIntegScalePcP12ImageContentP16CornerDescriptor6Matrix(ptr noundef %0, ptr noundef %1, ptr noundef nonnull %2, ptr noundef %3) local_unnamed_addr #7 personality ptr @__gxx_personality_v0 {
  %5 = alloca %"class.std::vector.1", align 8
  %6 = alloca %"class.std::vector.1", align 8
  %7 = alloca float, align 4
  %8 = alloca float, align 4
  %9 = tail call noundef float @_ZNK6Corner9getIntSigEv(ptr noundef nonnull align 4 dereferenceable(88) %2)
  %10 = tail call noundef float @_ZNK6Corner4getXEv(ptr noundef nonnull align 4 dereferenceable(88) %2)
  %11 = tail call noundef float @_ZNK6Corner4getYEv(ptr noundef nonnull align 4 dereferenceable(88) %2)
  %12 = fdiv float 3.500000e+01, %9
  %13 = fcmp olt float %12, 0x3FF99999A0000000
  %14 = select i1 %13, float %12, float 0x3FF99999A0000000
  %15 = fmul float %14, 3.000000e+00
  %16 = fmul float %9, %15
  %17 = tail call noundef float @_ZSt4rintf(float noundef %16)
  %18 = tail call float @llvm.fmuladd.f32(float %17, float 2.000000e+00, float 1.000000e+00)
  %19 = fptosi float %18 to i32
  %20 = ashr i32 %19, 1
  %21 = tail call noalias noundef nonnull dereferenceable(80) ptr @_Znwm(i64 noundef 80) #9
  invoke void @_ZN12ImageContentC2Eii(ptr noundef nonnull align 8 dereferenceable(80) %21, i32 noundef %19, i32 noundef %19)
          to label %22 unwind label %42

22:                                               ; preds = %4
  %23 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6MatrixclEii(ptr noundef nonnull align 8 dereferenceable(24) %3, i32 noundef 1, i32 noundef 1)
  %24 = load double, ptr %23, align 8, !tbaa !5
  %25 = fptrunc double %24 to float
  %26 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6MatrixclEii(ptr noundef nonnull align 8 dereferenceable(24) %3, i32 noundef 1, i32 noundef 2)
  %27 = load double, ptr %26, align 8, !tbaa !5
  %28 = fptrunc double %27 to float
  %29 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6MatrixclEii(ptr noundef nonnull align 8 dereferenceable(24) %3, i32 noundef 2, i32 noundef 1)
  %30 = load double, ptr %29, align 8, !tbaa !5
  %31 = fptrunc double %30 to float
  %32 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN6MatrixclEii(ptr noundef nonnull align 8 dereferenceable(24) %3, i32 noundef 2, i32 noundef 2)
  %33 = load double, ptr %32, align 8, !tbaa !5
  %34 = fptrunc double %33 to float
  %35 = tail call noundef zeroext i1 @_ZN12ImageContent11interpolateEPS_ffffff(ptr noundef nonnull align 8 dereferenceable(80) %21, ptr noundef %1, float noundef %10, float noundef %11, float noundef %25, float noundef %28, float noundef %31, float noundef %34)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #10
  call void @_ZNSt6vectorIfSaIfEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) #10
  call void @_ZNSt6vectorIfSaIfEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #10
  %36 = fmul float %9, 0x3FD99999A0000000
  %37 = invoke noundef float @_Z4funcPciP12ImageContentf(ptr noundef %0, i32 noundef %20, ptr noundef nonnull %21, float noundef %36)
          to label %38 unwind label %44

38:                                               ; preds = %22
  %39 = fmul float %9, 0x3FDCBFB160000000
  %40 = invoke noundef float @_Z4funcPciP12ImageContentf(ptr noundef %0, i32 noundef %20, ptr noundef nonnull %21, float noundef %39)
          to label %.preheader148 unwind label %44

.preheader148:                                    ; preds = %38
  %41 = fcmp ogt float %14, 0x3FE02477C0000000
  br i1 %41, label %.lr.ph, label %._crit_edge

42:                                               ; preds = %4
  %43 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %21, i64 noundef 80) #11
  br label %156

44:                                               ; preds = %38, %22
  %45 = landingpad { ptr, i32 }
          cleanup
  br label %155

.lr.ph:                                           ; preds = %.preheader148, %72
  %.0122151 = phi float [ %73, %72 ], [ 0x3FE02477C0000000, %.preheader148 ]
  %.0123150 = phi float [ %47, %72 ], [ %40, %.preheader148 ]
  %.0124149 = phi float [ %.0123150, %72 ], [ %37, %.preheader148 ]
  %46 = fmul float %9, %.0122151
  %47 = invoke noundef float @_Z4funcPciP12ImageContentf(ptr noundef %0, i32 noundef %20, ptr noundef nonnull %21, float noundef %46)
          to label %48 unwind label %57

48:                                               ; preds = %.lr.ph
  %49 = fcmp ogt float %.0123150, %.0124149
  %50 = fcmp ogt float %.0123150, %47
  %or.cond = and i1 %49, %50
  br i1 %or.cond, label %51, label %61

51:                                               ; preds = %48
  %52 = call noundef float @_ZSt4fabsf(float noundef %.0123150)
  %53 = fcmp ogt float %52, 3.000000e+00
  br i1 %53, label %54, label %61

54:                                               ; preds = %51
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #10
  %55 = fdiv float %46, 0x3FF1F7CEE0000000
  store float %55, ptr %7, align 4, !tbaa !9
  invoke void @_ZNSt6vectorIfSaIfEE9push_backEOf(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 4 dereferenceable(4) %7)
          to label %56 unwind label %59

56:                                               ; preds = %54
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #10
  br label %72

57:                                               ; preds = %.lr.ph
  %58 = landingpad { ptr, i32 }
          cleanup
  br label %155

59:                                               ; preds = %54
  %60 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #10
  br label %155

61:                                               ; preds = %51, %48
  %62 = fcmp olt float %.0123150, %.0124149
  %63 = fcmp olt float %.0123150, %47
  %or.cond142 = and i1 %62, %63
  br i1 %or.cond142, label %64, label %72

64:                                               ; preds = %61
  %65 = call noundef float @_ZSt4fabsf(float noundef %.0123150)
  %66 = fcmp ogt float %65, 3.000000e+00
  br i1 %66, label %67, label %72

67:                                               ; preds = %64
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #10
  %68 = fdiv float %46, 0xBFF1F7CEE0000000
  store float %68, ptr %8, align 4, !tbaa !9
  invoke void @_ZNSt6vectorIfSaIfEE9push_backEOf(ptr noundef nonnull align 8 dereferenceable(24) %6, ptr noundef nonnull align 4 dereferenceable(4) %8)
          to label %69 unwind label %70

69:                                               ; preds = %67
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #10
  br label %72

70:                                               ; preds = %67
  %71 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #10
  br label %155

72:                                               ; preds = %56, %69, %64, %61
  %73 = fmul float %.0122151, 0x3FF1F7CEE0000000
  %74 = fcmp olt float %73, %14
  br i1 %74, label %.lr.ph, label %._crit_edge, !llvm.loop !11

._crit_edge:                                      ; preds = %72, %.preheader148
  call void @_ZN12ImageContentD1Ev(ptr noundef nonnull align 8 dereferenceable(80) %21) #10
  call void @_ZdlPvm(ptr noundef nonnull %21, i64 noundef 80) #11
  %75 = call noundef i32 @_ZNK6Corner6isExtrEv(ptr noundef nonnull align 4 dereferenceable(88) %2)
  %76 = icmp eq i32 %75, 1
  br i1 %76, label %.preheader146, label %.loopexit147

.preheader146:                                    ; preds = %._crit_edge
  %77 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #10
  %78 = trunc i64 %77 to i32
  %79 = icmp sgt i32 %78, 0
  br i1 %79, label %.lr.ph154, label %.loopexit147

.lr.ph154:                                        ; preds = %.preheader146, %89
  %indvars.iv = phi i64 [ %indvars.iv.next, %89 ], [ 0, %.preheader146 ]
  %.0118152 = phi float [ %.1119, %89 ], [ 0.000000e+00, %.preheader146 ]
  %80 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv) #10
  %81 = load float, ptr %80, align 4, !tbaa !9
  %82 = fdiv float %81, %9
  %83 = fcmp olt float %82, 1.000000e+00
  %84 = fdiv float 1.000000e+00, %82
  %.0116 = select i1 %83, float %84, float %82
  %85 = fcmp olt float %.0116, 2.000000e+02
  br i1 %85, label %86, label %89

86:                                               ; preds = %.lr.ph154
  %87 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv) #10
  %88 = load float, ptr %87, align 4, !tbaa !9
  br label %89

89:                                               ; preds = %.lr.ph154, %86
  %.1119 = phi float [ %88, %86 ], [ %.0118152, %.lr.ph154 ]
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %90 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #10
  %sext = shl i64 %90, 32
  %91 = ashr exact i64 %sext, 32
  %92 = icmp slt i64 %indvars.iv.next, %91
  br i1 %92, label %.lr.ph154, label %.loopexit147, !llvm.loop !13

.loopexit147:                                     ; preds = %89, %.preheader146, %._crit_edge
  %.2120 = phi float [ 0.000000e+00, %._crit_edge ], [ 0.000000e+00, %.preheader146 ], [ %.1119, %89 ]
  %93 = call noundef i32 @_ZNK6Corner6isExtrEv(ptr noundef nonnull align 4 dereferenceable(88) %2)
  %94 = icmp eq i32 %93, -1
  br i1 %94, label %.preheader144, label %.loopexit145

.preheader144:                                    ; preds = %.loopexit147
  %95 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %6) #10
  %96 = trunc i64 %95 to i32
  %97 = icmp sgt i32 %96, 0
  br i1 %97, label %.lr.ph157, label %.loopexit145

.lr.ph157:                                        ; preds = %.preheader144, %108
  %indvars.iv168 = phi i64 [ %indvars.iv.next169, %108 ], [ 0, %.preheader144 ]
  %.3121155 = phi float [ %.4, %108 ], [ %.2120, %.preheader144 ]
  %98 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv168) #10
  %99 = load float, ptr %98, align 4, !tbaa !9
  %100 = call noundef float @_ZSt4fabsf(float noundef %99)
  %101 = fdiv float %100, %9
  %102 = fcmp olt float %101, 1.000000e+00
  %103 = fdiv float 1.000000e+00, %101
  %.1 = select i1 %102, float %103, float %101
  %104 = fcmp olt float %.1, 2.000000e+02
  br i1 %104, label %105, label %108

105:                                              ; preds = %.lr.ph157
  %106 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv168) #10
  %107 = load float, ptr %106, align 4, !tbaa !9
  br label %108

108:                                              ; preds = %.lr.ph157, %105
  %.4 = phi float [ %107, %105 ], [ %.3121155, %.lr.ph157 ]
  %indvars.iv.next169 = add nuw nsw i64 %indvars.iv168, 1
  %109 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %6) #10
  %sext177 = shl i64 %109, 32
  %110 = ashr exact i64 %sext177, 32
  %111 = icmp slt i64 %indvars.iv.next169, %110
  br i1 %111, label %.lr.ph157, label %.loopexit145, !llvm.loop !14

.loopexit145:                                     ; preds = %108, %.preheader144, %.loopexit147
  %.5 = phi float [ %.2120, %.loopexit147 ], [ %.2120, %.preheader144 ], [ %.4, %108 ]
  %112 = fcmp oeq float %.5, 0.000000e+00
  br i1 %112, label %.preheader143, label %.loopexit

.preheader143:                                    ; preds = %.loopexit145
  %113 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #10
  %114 = trunc i64 %113 to i32
  %115 = icmp sgt i32 %114, 0
  br i1 %115, label %.lr.ph161, label %.preheader

.preheader:                                       ; preds = %128, %.preheader143
  %.6.lcssa = phi float [ %.5, %.preheader143 ], [ %.7, %128 ]
  %116 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %6) #10
  %117 = trunc i64 %116 to i32
  %118 = icmp sgt i32 %117, 0
  br i1 %118, label %.lr.ph165, label %.loopexit

.lr.ph161:                                        ; preds = %.preheader143, %128
  %indvars.iv171 = phi i64 [ %indvars.iv.next172, %128 ], [ 0, %.preheader143 ]
  %.6159 = phi float [ %.7, %128 ], [ %.5, %.preheader143 ]
  %119 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv171) #10
  %120 = load float, ptr %119, align 4, !tbaa !9
  %121 = fdiv float %120, %9
  %122 = fcmp olt float %121, 1.000000e+00
  %123 = fdiv float 1.000000e+00, %121
  %.2 = select i1 %122, float %123, float %121
  %124 = fcmp olt float %.2, 2.000000e+02
  br i1 %124, label %125, label %128

125:                                              ; preds = %.lr.ph161
  %126 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv171) #10
  %127 = load float, ptr %126, align 4, !tbaa !9
  br label %128

128:                                              ; preds = %.lr.ph161, %125
  %.7 = phi float [ %127, %125 ], [ %.6159, %.lr.ph161 ]
  %indvars.iv.next172 = add nuw nsw i64 %indvars.iv171, 1
  %129 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #10
  %sext178 = shl i64 %129, 32
  %130 = ashr exact i64 %sext178, 32
  %131 = icmp slt i64 %indvars.iv.next172, %130
  br i1 %131, label %.lr.ph161, label %.preheader, !llvm.loop !15

.lr.ph165:                                        ; preds = %.preheader, %142
  %indvars.iv174 = phi i64 [ %indvars.iv.next175, %142 ], [ 0, %.preheader ]
  %.8163 = phi float [ %.9, %142 ], [ %.6.lcssa, %.preheader ]
  %132 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv174) #10
  %133 = load float, ptr %132, align 4, !tbaa !9
  %134 = call noundef float @_ZSt4fabsf(float noundef %133)
  %135 = fdiv float %134, %9
  %136 = fcmp olt float %135, 1.000000e+00
  %137 = fdiv float 1.000000e+00, %135
  %.3 = select i1 %136, float %137, float %135
  %138 = fcmp olt float %.3, 2.000000e+02
  br i1 %138, label %139, label %142

139:                                              ; preds = %.lr.ph165
  %140 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv174) #10
  %141 = load float, ptr %140, align 4, !tbaa !9
  br label %142

142:                                              ; preds = %.lr.ph165, %139
  %.9 = phi float [ %141, %139 ], [ %.8163, %.lr.ph165 ]
  %indvars.iv.next175 = add nuw nsw i64 %indvars.iv174, 1
  %143 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %6) #10
  %sext179 = shl i64 %143, 32
  %144 = ashr exact i64 %sext179, 32
  %145 = icmp slt i64 %indvars.iv.next175, %144
  br i1 %145, label %.lr.ph165, label %.loopexit, !llvm.loop !16

.loopexit:                                        ; preds = %142, %.preheader, %.loopexit145
  %.10 = phi float [ %.5, %.loopexit145 ], [ %.6.lcssa, %.preheader ], [ %.9, %142 ]
  %146 = fcmp une float %.10, 0.000000e+00
  br i1 %146, label %147, label %154

147:                                              ; preds = %.loopexit
  %148 = fcmp olt float %.10, 0.000000e+00
  br i1 %148, label %149, label %150

149:                                              ; preds = %147
  call void @_ZN6Corner6setMinEv(ptr noundef nonnull align 4 dereferenceable(88) %2)
  br label %151

150:                                              ; preds = %147
  call void @_ZN6Corner6setMaxEv(ptr noundef nonnull align 4 dereferenceable(88) %2)
  br label %151

151:                                              ; preds = %150, %149
  %152 = call noundef float @_ZSt4fabsf(float noundef %.10)
  call void @_ZN6Corner9setIntSigEf(ptr noundef nonnull align 4 dereferenceable(88) %2, float noundef %152)
  %153 = call noundef float @_ZSt4fabsf(float noundef %.10)
  br label %154

154:                                              ; preds = %.loopexit, %151
  %.0117 = phi float [ %153, %151 ], [ %9, %.loopexit ]
  call void @_ZNSt6vectorIfSaIfEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #10
  call void @_ZNSt6vectorIfSaIfEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #10
  ret float %.0117

155:                                              ; preds = %57, %59, %70, %44
  %.pn.pn = phi { ptr, i32 } [ %45, %44 ], [ %60, %59 ], [ %71, %70 ], [ %58, %57 ]
  call void @_ZNSt6vectorIfSaIfEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #10
  call void @_ZNSt6vectorIfSaIfEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #10
  br label %156

156:                                              ; preds = %155, %42
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %155 ], [ %43, %42 ]
  resume { ptr, i32 } %.pn.pn.pn
}

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

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

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

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

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

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

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

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

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

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress 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 nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { nobuiltin allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nobuiltin nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { builtin allocsize(0) }
attributes #10 = { nounwind }
attributes #11 = { builtin nounwind }

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

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


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