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

; 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::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::vector.33" = type { %"struct.std::_Vector_base.34" }
%"struct.std::_Vector_base.34" = type { %"struct.std::_Vector_base<std::vector<CornerDescriptor *>, std::allocator<std::vector<CornerDescriptor *>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<CornerDescriptor *>, std::allocator<std::vector<CornerDescriptor *>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<CornerDescriptor *>, std::allocator<std::vector<CornerDescriptor *>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<CornerDescriptor *>, std::allocator<std::vector<CornerDescriptor *>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = type { %"struct.std::_Vector_base<CornerDescriptor *, std::allocator<CornerDescriptor *>>::_Vector_impl" }
%"struct.std::_Vector_base<CornerDescriptor *, std::allocator<CornerDescriptor *>>::_Vector_impl" = type { %"struct.std::_Vector_base<CornerDescriptor *, std::allocator<CornerDescriptor *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<CornerDescriptor *, std::allocator<CornerDescriptor *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.15" = type { i8 }
%"class.std::vector.28" = type { %"struct.std::_Vector_base.29" }
%"struct.std::_Vector_base.29" = 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 }
%"class.__gnu_cxx::__normal_iterator.39" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.38" = type { ptr }
%class.ImageContent = type { i32, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }

@STEP = external dso_local global float, align 4
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str = external hidden unnamed_addr constant [16 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [5 x i8], align 1

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

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

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_Z6getLapP12ImageContentff(ptr noundef, float noundef, float noundef) #2

; Function Attrs: mustprogress uwtable
define dso_local void @_Z11edge_pointsSt6vectorIP12ImageContentSaIS1_EES3_S_IfSaIfEERS_IP16CornerDescriptorSaIS7_EE(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef nonnull align 8 dereferenceable(24) %3) #2 personality ptr @__gxx_personality_v0 {
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca float, align 4
  %13 = alloca float, align 4
  %14 = alloca float, align 4
  %15 = alloca float, align 4
  %16 = alloca %"class.std::vector.33", align 8
  %17 = alloca i32, align 4
  %18 = alloca %"class.std::vector.13", align 8
  %19 = alloca %"class.std::allocator.15", align 1
  %20 = alloca ptr, align 8
  %21 = alloca i32, align 4
  %22 = alloca %"class.std::vector.28", align 8
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca float, align 4
  %29 = alloca i32, align 4
  %30 = alloca float, align 4
  %31 = alloca float, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca %"class.__gnu_cxx::__normal_iterator.39", align 8
  %40 = alloca %"class.__gnu_cxx::__normal_iterator.38", align 8
  %41 = alloca %"class.__gnu_cxx::__normal_iterator.38", align 8
  %42 = alloca %"class.__gnu_cxx::__normal_iterator.38", align 8
  %43 = alloca %"class.__gnu_cxx::__normal_iterator.39", align 8
  %44 = alloca %"class.__gnu_cxx::__normal_iterator.38", align 8
  %45 = alloca %"class.__gnu_cxx::__normal_iterator.38", align 8
  %46 = alloca %"class.__gnu_cxx::__normal_iterator.38", align 8
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store ptr %2, ptr %7, align 8, !tbaa !5
  store ptr %3, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #6
  store i32 5, ptr %11, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #6
  store float 3.000000e+00, ptr %14, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #6
  store float 3.000000e+00, ptr %15, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 24, ptr %16) #6
  call void @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #6
  store i32 0, ptr %17, align 4, !tbaa !9
  br label %49

49:                                               ; preds = %58, %4
  %50 = load i32, ptr %17, align 4, !tbaa !9
  %51 = sext i32 %50 to i64
  %52 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %2) #6
  %53 = icmp ult i64 %51, %52
  br i1 %53, label %55, label %54

54:                                               ; preds = %49
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #6
  br label %70

55:                                               ; preds = %49
  call void @llvm.lifetime.start.p0(i64 24, ptr %18) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #6
  call void @_ZNSaIP16CornerDescriptorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #6
  invoke void @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEC2EmRKS2_(ptr noundef nonnull align 8 dereferenceable(24) %18, i64 noundef 0, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %56 unwind label %61

56:                                               ; preds = %55
  invoke void @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EE9push_backEOS3_(ptr noundef nonnull align 8 dereferenceable(24) %16, ptr noundef nonnull align 8 dereferenceable(24) %18)
          to label %57 unwind label %65

57:                                               ; preds = %56
  call void @_ZNSt6vectorIP16CornerDescriptorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #6
  call void @_ZNSt15__new_allocatorIP16CornerDescriptorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %18) #6
  br label %58

58:                                               ; preds = %57
  %59 = load i32, ptr %17, align 4, !tbaa !9
  %60 = add nsw i32 %59, 1
  store i32 %60, ptr %17, align 4, !tbaa !9
  br label %49, !llvm.loop !13

61:                                               ; preds = %55
  %62 = landingpad { ptr, i32 }
          cleanup
  %63 = extractvalue { ptr, i32 } %62, 0
  store ptr %63, ptr %20, align 8
  %64 = extractvalue { ptr, i32 } %62, 1
  store i32 %64, ptr %21, align 4
  br label %69

65:                                               ; preds = %56
  %66 = landingpad { ptr, i32 }
          cleanup
  %67 = extractvalue { ptr, i32 } %66, 0
  store ptr %67, ptr %20, align 8
  %68 = extractvalue { ptr, i32 } %66, 1
  store i32 %68, ptr %21, align 4
  call void @_ZNSt6vectorIP16CornerDescriptorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #6
  br label %69

69:                                               ; preds = %65, %61
  call void @_ZNSt15__new_allocatorIP16CornerDescriptorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %18) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #6
  br label %642

70:                                               ; preds = %54
  call void @llvm.lifetime.start.p0(i64 24, ptr %22) #6
  call void @_ZNSt6vectorIfSaIfEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #6
  store i32 1, ptr %23, align 4, !tbaa !9
  br label %71

71:                                               ; preds = %342, %70
  %72 = load i32, ptr %23, align 4, !tbaa !9
  %73 = sext i32 %72 to i64
  %74 = call noundef i64 @_ZNKSt6vectorIP12ImageContentSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #6
  %75 = sub i64 %74, 1
  %76 = icmp ult i64 %73, %75
  br i1 %76, label %78, label %77

77:                                               ; preds = %71
  store i32 5, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #6
  br label %346

78:                                               ; preds = %71
  %79 = load i32, ptr %23, align 4, !tbaa !9
  %80 = sext i32 %79 to i64
  %81 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %80) #6
  %82 = load ptr, ptr %81, align 8, !tbaa !5
  %83 = invoke noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %82)
          to label %84 unwind label %99

84:                                               ; preds = %78
  store i32 %83, ptr %9, align 4, !tbaa !9
  %85 = load i32, ptr %23, align 4, !tbaa !9
  %86 = sext i32 %85 to i64
  %87 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %86) #6
  %88 = load ptr, ptr %87, align 8, !tbaa !5
  %89 = invoke noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %88)
          to label %90 unwind label %99

90:                                               ; preds = %84
  store i32 %89, ptr %10, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #6
  %91 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %91, ptr %25, align 4, !tbaa !9
  br label %92

92:                                               ; preds = %338, %90
  %93 = load i32, ptr %25, align 4, !tbaa !9
  %94 = load i32, ptr %9, align 4, !tbaa !9
  %95 = load i32, ptr %11, align 4, !tbaa !9
  %96 = sub nsw i32 %94, %95
  %97 = icmp slt i32 %93, %96
  br i1 %97, label %103, label %98

98:                                               ; preds = %92
  store i32 8, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #6
  br label %341

99:                                               ; preds = %84, %78
  %100 = landingpad { ptr, i32 }
          cleanup
  %101 = extractvalue { ptr, i32 } %100, 0
  store ptr %101, ptr %20, align 8
  %102 = extractvalue { ptr, i32 } %100, 1
  store i32 %102, ptr %21, align 4
  br label %345

103:                                              ; preds = %92
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #6
  %104 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %104, ptr %26, align 4, !tbaa !9
  br label %105

105:                                              ; preds = %333, %103
  %106 = load i32, ptr %26, align 4, !tbaa !9
  %107 = load i32, ptr %10, align 4, !tbaa !9
  %108 = load i32, ptr %11, align 4, !tbaa !9
  %109 = sub nsw i32 %107, %108
  %110 = icmp slt i32 %106, %109
  br i1 %110, label %112, label %111

111:                                              ; preds = %105
  store i32 11, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #6
  br label %337

112:                                              ; preds = %105
  %113 = load i32, ptr %23, align 4, !tbaa !9
  %114 = sext i32 %113 to i64
  %115 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %114) #6
  %116 = load ptr, ptr %115, align 8, !tbaa !5
  %117 = getelementptr inbounds %class.ImageContent, ptr %116, i32 0, i32 4
  %118 = load ptr, ptr %117, align 8, !tbaa !15
  %119 = load i32, ptr %25, align 4, !tbaa !9
  %120 = sext i32 %119 to i64
  %121 = getelementptr inbounds ptr, ptr %118, i64 %120
  %122 = load ptr, ptr %121, align 8, !tbaa !5
  %123 = load i32, ptr %26, align 4, !tbaa !9
  %124 = sext i32 %123 to i64
  %125 = getelementptr inbounds float, ptr %122, i64 %124
  %126 = load float, ptr %125, align 4, !tbaa !11
  %127 = load float, ptr %15, align 4, !tbaa !11
  %128 = fcmp ogt float %126, %127
  br i1 %128, label %129, label %332

129:                                              ; preds = %112
  %130 = load i32, ptr %26, align 4, !tbaa !9
  %131 = sitofp i32 %130 to float
  %132 = load float, ptr @STEP, align 4, !tbaa !11
  %133 = fmul float %131, %132
  store float %133, ptr %12, align 4, !tbaa !11
  %134 = load i32, ptr %25, align 4, !tbaa !9
  %135 = sitofp i32 %134 to float
  %136 = load float, ptr @STEP, align 4, !tbaa !11
  %137 = fmul float %135, %136
  store float %137, ptr %13, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #6
  %138 = load i32, ptr %23, align 4, !tbaa !9
  %139 = sub nsw i32 %138, 1
  store i32 %139, ptr %27, align 4, !tbaa !9
  br label %140

140:                                              ; preds = %162, %129
  %141 = load i32, ptr %27, align 4, !tbaa !9
  %142 = sext i32 %141 to i64
  %143 = call noundef i64 @_ZNKSt6vectorIP12ImageContentSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #6
  %144 = icmp ult i64 %142, %143
  br i1 %144, label %146, label %145

145:                                              ; preds = %140
  store i32 14, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #6
  br label %169

146:                                              ; preds = %140
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #6
  %147 = load i32, ptr %27, align 4, !tbaa !9
  %148 = sext i32 %147 to i64
  %149 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %148) #6
  %150 = load ptr, ptr %149, align 8, !tbaa !5
  %151 = load float, ptr %12, align 4, !tbaa !11
  %152 = load float, ptr %13, align 4, !tbaa !11
  %153 = invoke noundef float @_Z6getLapP12ImageContentff(ptr noundef %150, float noundef %151, float noundef %152)
          to label %154 unwind label %165

154:                                              ; preds = %146
  store float %153, ptr %28, align 4, !tbaa !11
  invoke void @_ZNSt6vectorIfSaIfEE9push_backEOf(ptr noundef nonnull align 8 dereferenceable(24) %22, ptr noundef nonnull align 4 dereferenceable(4) %28)
          to label %155 unwind label %165

155:                                              ; preds = %154
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #6
  %156 = load float, ptr @STEP, align 4, !tbaa !11
  %157 = load float, ptr %12, align 4, !tbaa !11
  %158 = fdiv float %157, %156
  store float %158, ptr %12, align 4, !tbaa !11
  %159 = load float, ptr @STEP, align 4, !tbaa !11
  %160 = load float, ptr %13, align 4, !tbaa !11
  %161 = fdiv float %160, %159
  store float %161, ptr %13, align 4, !tbaa !11
  br label %162

162:                                              ; preds = %155
  %163 = load i32, ptr %27, align 4, !tbaa !9
  %164 = add nsw i32 %163, 1
  store i32 %164, ptr %27, align 4, !tbaa !9
  br label %140, !llvm.loop !17

165:                                              ; preds = %154, %146
  %166 = landingpad { ptr, i32 }
          cleanup
  %167 = extractvalue { ptr, i32 } %166, 0
  store ptr %167, ptr %20, align 8
  %168 = extractvalue { ptr, i32 } %166, 1
  store i32 %168, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #6
  br label %336

169:                                              ; preds = %145
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #6
  store i32 1, ptr %29, align 4, !tbaa !9
  br label %170

170:                                              ; preds = %328, %169
  %171 = load i32, ptr %29, align 4, !tbaa !9
  %172 = sext i32 %171 to i64
  %173 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %22) #6
  %174 = sub i64 %173, 1
  %175 = icmp ult i64 %172, %174
  br i1 %175, label %177, label %176

176:                                              ; preds = %170
  store i32 17, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #6
  br label %331

177:                                              ; preds = %170
  %178 = load i32, ptr %29, align 4, !tbaa !9
  %179 = sext i32 %178 to i64
  %180 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %179) #6
  %181 = load float, ptr %180, align 4, !tbaa !11
  %182 = load i32, ptr %29, align 4, !tbaa !9
  %183 = sub nsw i32 %182, 1
  %184 = sext i32 %183 to i64
  %185 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %184) #6
  %186 = load float, ptr %185, align 4, !tbaa !11
  %187 = fcmp ogt float %181, %186
  br i1 %187, label %188, label %253

188:                                              ; preds = %177
  %189 = load i32, ptr %29, align 4, !tbaa !9
  %190 = sext i32 %189 to i64
  %191 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %190) #6
  %192 = load float, ptr %191, align 4, !tbaa !11
  %193 = load i32, ptr %29, align 4, !tbaa !9
  %194 = add nsw i32 %193, 1
  %195 = sext i32 %194 to i64
  %196 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %195) #6
  %197 = load float, ptr %196, align 4, !tbaa !11
  %198 = fcmp ogt float %192, %197
  br i1 %198, label %199, label %253

199:                                              ; preds = %188
  %200 = load i32, ptr %29, align 4, !tbaa !9
  %201 = sext i32 %200 to i64
  %202 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %201) #6
  %203 = load float, ptr %202, align 4, !tbaa !11
  %204 = load float, ptr %14, align 4, !tbaa !11
  %205 = fcmp ogt float %203, %204
  br i1 %205, label %206, label %253

206:                                              ; preds = %199
  %207 = load i32, ptr %23, align 4, !tbaa !9
  %208 = load i32, ptr %29, align 4, !tbaa !9
  %209 = add nsw i32 %207, %208
  %210 = sub nsw i32 %209, 1
  %211 = sext i32 %210 to i64
  %212 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %211) #6
  %213 = load i32, ptr %23, align 4, !tbaa !9
  %214 = sext i32 %213 to i64
  %215 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %214) #6
  %216 = load float, ptr %215, align 4, !tbaa !11
  %217 = load i32, ptr %26, align 4, !tbaa !9
  %218 = sitofp i32 %217 to float
  %219 = fmul float %216, %218
  %220 = load i32, ptr %23, align 4, !tbaa !9
  %221 = sext i32 %220 to i64
  %222 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %221) #6
  %223 = load float, ptr %222, align 4, !tbaa !11
  %224 = load i32, ptr %25, align 4, !tbaa !9
  %225 = sitofp i32 %224 to float
  %226 = fmul float %223, %225
  %227 = load i32, ptr %23, align 4, !tbaa !9
  %228 = sext i32 %227 to i64
  %229 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %228) #6
  %230 = load ptr, ptr %229, align 8, !tbaa !5
  %231 = getelementptr inbounds %class.ImageContent, ptr %230, i32 0, i32 4
  %232 = load ptr, ptr %231, align 8, !tbaa !15
  %233 = load i32, ptr %25, align 4, !tbaa !9
  %234 = sext i32 %233 to i64
  %235 = getelementptr inbounds ptr, ptr %232, i64 %234
  %236 = load ptr, ptr %235, align 8, !tbaa !5
  %237 = load i32, ptr %26, align 4, !tbaa !9
  %238 = sext i32 %237 to i64
  %239 = getelementptr inbounds float, ptr %236, i64 %238
  %240 = load float, ptr %239, align 4, !tbaa !11
  %241 = load i32, ptr %23, align 4, !tbaa !9
  %242 = load i32, ptr %29, align 4, !tbaa !9
  %243 = add nsw i32 %241, %242
  %244 = sub nsw i32 %243, 1
  %245 = sext i32 %244 to i64
  %246 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %245) #6
  %247 = load float, ptr %246, align 4, !tbaa !11
  invoke void @_Z9newCornerRSt6vectorIP16CornerDescriptorSaIS1_EEfffff(ptr noundef nonnull align 8 dereferenceable(24) %212, float noundef %219, float noundef %226, float noundef %240, float noundef %247, float noundef 1.000000e+00)
          to label %248 unwind label %249

248:                                              ; preds = %206
  br label %327

249:                                              ; preds = %283, %206
  %250 = landingpad { ptr, i32 }
          cleanup
  %251 = extractvalue { ptr, i32 } %250, 0
  store ptr %251, ptr %20, align 8
  %252 = extractvalue { ptr, i32 } %250, 1
  store i32 %252, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #6
  br label %336

253:                                              ; preds = %199, %188, %177
  %254 = load i32, ptr %29, align 4, !tbaa !9
  %255 = sext i32 %254 to i64
  %256 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %255) #6
  %257 = load float, ptr %256, align 4, !tbaa !11
  %258 = load i32, ptr %29, align 4, !tbaa !9
  %259 = sub nsw i32 %258, 1
  %260 = sext i32 %259 to i64
  %261 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %260) #6
  %262 = load float, ptr %261, align 4, !tbaa !11
  %263 = fcmp olt float %257, %262
  br i1 %263, label %264, label %326

264:                                              ; preds = %253
  %265 = load i32, ptr %29, align 4, !tbaa !9
  %266 = sext i32 %265 to i64
  %267 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %266) #6
  %268 = load float, ptr %267, align 4, !tbaa !11
  %269 = load i32, ptr %29, align 4, !tbaa !9
  %270 = add nsw i32 %269, 1
  %271 = sext i32 %270 to i64
  %272 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %271) #6
  %273 = load float, ptr %272, align 4, !tbaa !11
  %274 = fcmp olt float %268, %273
  br i1 %274, label %275, label %326

275:                                              ; preds = %264
  %276 = load i32, ptr %29, align 4, !tbaa !9
  %277 = sext i32 %276 to i64
  %278 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %277) #6
  %279 = load float, ptr %278, align 4, !tbaa !11
  %280 = load float, ptr %14, align 4, !tbaa !11
  %281 = fneg float %280
  %282 = fcmp olt float %279, %281
  br i1 %282, label %283, label %326

283:                                              ; preds = %275
  %284 = load i32, ptr %23, align 4, !tbaa !9
  %285 = load i32, ptr %29, align 4, !tbaa !9
  %286 = add nsw i32 %284, %285
  %287 = sub nsw i32 %286, 1
  %288 = sext i32 %287 to i64
  %289 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %288) #6
  %290 = load i32, ptr %23, align 4, !tbaa !9
  %291 = sext i32 %290 to i64
  %292 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %291) #6
  %293 = load float, ptr %292, align 4, !tbaa !11
  %294 = load i32, ptr %26, align 4, !tbaa !9
  %295 = sitofp i32 %294 to float
  %296 = fmul float %293, %295
  %297 = load i32, ptr %23, align 4, !tbaa !9
  %298 = sext i32 %297 to i64
  %299 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %298) #6
  %300 = load float, ptr %299, align 4, !tbaa !11
  %301 = load i32, ptr %25, align 4, !tbaa !9
  %302 = sitofp i32 %301 to float
  %303 = fmul float %300, %302
  %304 = load i32, ptr %23, align 4, !tbaa !9
  %305 = sext i32 %304 to i64
  %306 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %305) #6
  %307 = load ptr, ptr %306, align 8, !tbaa !5
  %308 = getelementptr inbounds %class.ImageContent, ptr %307, i32 0, i32 4
  %309 = load ptr, ptr %308, align 8, !tbaa !15
  %310 = load i32, ptr %25, align 4, !tbaa !9
  %311 = sext i32 %310 to i64
  %312 = getelementptr inbounds ptr, ptr %309, i64 %311
  %313 = load ptr, ptr %312, align 8, !tbaa !5
  %314 = load i32, ptr %26, align 4, !tbaa !9
  %315 = sext i32 %314 to i64
  %316 = getelementptr inbounds float, ptr %313, i64 %315
  %317 = load float, ptr %316, align 4, !tbaa !11
  %318 = load i32, ptr %23, align 4, !tbaa !9
  %319 = load i32, ptr %29, align 4, !tbaa !9
  %320 = add nsw i32 %318, %319
  %321 = sub nsw i32 %320, 1
  %322 = sext i32 %321 to i64
  %323 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %322) #6
  %324 = load float, ptr %323, align 4, !tbaa !11
  invoke void @_Z9newCornerRSt6vectorIP16CornerDescriptorSaIS1_EEfffff(ptr noundef nonnull align 8 dereferenceable(24) %289, float noundef %296, float noundef %303, float noundef %317, float noundef %324, float noundef -1.000000e+00)
          to label %325 unwind label %249

325:                                              ; preds = %283
  br label %326

326:                                              ; preds = %325, %275, %264, %253
  br label %327

327:                                              ; preds = %326, %248
  br label %328

328:                                              ; preds = %327
  %329 = load i32, ptr %29, align 4, !tbaa !9
  %330 = add nsw i32 %329, 1
  store i32 %330, ptr %29, align 4, !tbaa !9
  br label %170, !llvm.loop !18

331:                                              ; preds = %176
  call void @_ZNSt6vectorIfSaIfEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %22) #6
  br label %332

332:                                              ; preds = %331, %112
  br label %333

333:                                              ; preds = %332
  %334 = load i32, ptr %26, align 4, !tbaa !9
  %335 = add nsw i32 %334, 1
  store i32 %335, ptr %26, align 4, !tbaa !9
  br label %105, !llvm.loop !19

336:                                              ; preds = %249, %165
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #6
  br label %345

337:                                              ; preds = %111
  br label %338

338:                                              ; preds = %337
  %339 = load i32, ptr %25, align 4, !tbaa !9
  %340 = add nsw i32 %339, 1
  store i32 %340, ptr %25, align 4, !tbaa !9
  br label %92, !llvm.loop !20

341:                                              ; preds = %98
  br label %342

342:                                              ; preds = %341
  %343 = load i32, ptr %23, align 4, !tbaa !9
  %344 = add nsw i32 %343, 1
  store i32 %344, ptr %23, align 4, !tbaa !9
  br label %71, !llvm.loop !21

345:                                              ; preds = %336, %99
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #6
  br label %641

346:                                              ; preds = %77
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #6
  store i32 0, ptr %34, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #6
  store i32 1, ptr %35, align 4, !tbaa !9
  br label %347

347:                                              ; preds = %363, %346
  %348 = load i32, ptr %35, align 4, !tbaa !9
  %349 = sext i32 %348 to i64
  %350 = call noundef i64 @_ZNKSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %16) #6
  %351 = sub i64 %350, 1
  %352 = icmp ult i64 %349, %351
  br i1 %352, label %354, label %353

353:                                              ; preds = %347
  store i32 20, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #6
  br label %366

354:                                              ; preds = %347
  %355 = load i32, ptr %35, align 4, !tbaa !9
  %356 = sext i32 %355 to i64
  %357 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %356) #6
  %358 = call noundef i64 @_ZNKSt6vectorIP16CornerDescriptorSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %357) #6
  %359 = load i32, ptr %34, align 4, !tbaa !9
  %360 = sext i32 %359 to i64
  %361 = add i64 %360, %358
  %362 = trunc i64 %361 to i32
  store i32 %362, ptr %34, align 4, !tbaa !9
  br label %363

363:                                              ; preds = %354
  %364 = load i32, ptr %35, align 4, !tbaa !9
  %365 = add nsw i32 %364, 1
  store i32 %365, ptr %35, align 4, !tbaa !9
  br label %347, !llvm.loop !22

366:                                              ; preds = %353
  %367 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str)
          to label %368 unwind label %381

368:                                              ; preds = %366
  %369 = load i32, ptr %34, align 4, !tbaa !9
  %370 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %367, i32 noundef %369)
          to label %371 unwind label %381

371:                                              ; preds = %368
  %372 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %370, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %373 unwind label %381

373:                                              ; preds = %371
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #6
  store i32 1, ptr %36, align 4, !tbaa !9
  br label %374

374:                                              ; preds = %583, %373
  %375 = load i32, ptr %36, align 4, !tbaa !9
  %376 = sext i32 %375 to i64
  %377 = call noundef i64 @_ZNKSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %16) #6
  %378 = sub i64 %377, 1
  %379 = icmp ult i64 %376, %378
  br i1 %379, label %385, label %380

380:                                              ; preds = %374
  store i32 23, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #6
  br label %586

381:                                              ; preds = %637, %634, %632, %371, %368, %366
  %382 = landingpad { ptr, i32 }
          cleanup
  %383 = extractvalue { ptr, i32 } %382, 0
  store ptr %383, ptr %20, align 8
  %384 = extractvalue { ptr, i32 } %382, 1
  store i32 %384, ptr %21, align 4
  br label %640

385:                                              ; preds = %374
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #6
  store i32 0, ptr %37, align 4, !tbaa !9
  br label %386

386:                                              ; preds = %578, %385
  %387 = load i32, ptr %37, align 4, !tbaa !9
  %388 = sext i32 %387 to i64
  %389 = load i32, ptr %36, align 4, !tbaa !9
  %390 = sext i32 %389 to i64
  %391 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %390) #6
  %392 = call noundef i64 @_ZNKSt6vectorIP16CornerDescriptorSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %391) #6
  %393 = icmp ult i64 %388, %392
  br i1 %393, label %395, label %394

394:                                              ; preds = %386
  store i32 26, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #6
  br label %582

395:                                              ; preds = %386
  %396 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.1)
          to label %397 unwind label %469

397:                                              ; preds = %395
  %398 = load i32, ptr %37, align 4, !tbaa !9
  %399 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %396, i32 noundef %398)
          to label %400 unwind label %469

400:                                              ; preds = %397
  %401 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %399, ptr noundef @.str.2)
          to label %402 unwind label %469

402:                                              ; preds = %400
  %403 = load i32, ptr %36, align 4, !tbaa !9
  %404 = sext i32 %403 to i64
  %405 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %404) #6
  %406 = call noundef i64 @_ZNKSt6vectorIP16CornerDescriptorSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %405) #6
  %407 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %401, i64 noundef %406)
          to label %408 unwind label %469

408:                                              ; preds = %402
  %409 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %407, ptr noundef @.str.3)
          to label %410 unwind label %469

410:                                              ; preds = %408
  %411 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %409, ptr noundef @_ZSt5flushIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %412 unwind label %469

412:                                              ; preds = %410
  %413 = load i32, ptr %36, align 4, !tbaa !9
  %414 = sext i32 %413 to i64
  %415 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %414) #6
  %416 = load i32, ptr %37, align 4, !tbaa !9
  %417 = sext i32 %416 to i64
  %418 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %415, i64 noundef %417) #6
  %419 = load ptr, ptr %418, align 8, !tbaa !5
  %420 = invoke noundef float @_ZNK6Corner14getCornerScaleEv(ptr noundef nonnull align 4 dereferenceable(88) %419)
          to label %421 unwind label %469

421:                                              ; preds = %412
  store float %420, ptr %30, align 4, !tbaa !11
  %422 = load float, ptr %30, align 4, !tbaa !11
  %423 = fpext float %422 to double
  %424 = fdiv double %423, 2.000000e+00
  %425 = fptosi double %424 to i32
  store i32 %425, ptr %32, align 4, !tbaa !9
  %426 = load i32, ptr %36, align 4, !tbaa !9
  %427 = sext i32 %426 to i64
  %428 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %427) #6
  %429 = load i32, ptr %37, align 4, !tbaa !9
  %430 = sext i32 %429 to i64
  %431 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %428, i64 noundef %430) #6
  %432 = load ptr, ptr %431, align 8, !tbaa !5
  %433 = invoke noundef float @_ZNK6Corner4getXEv(ptr noundef nonnull align 4 dereferenceable(88) %432)
          to label %434 unwind label %469

434:                                              ; preds = %421
  store float %433, ptr %12, align 4, !tbaa !11
  %435 = load i32, ptr %36, align 4, !tbaa !9
  %436 = sext i32 %435 to i64
  %437 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %436) #6
  %438 = load i32, ptr %37, align 4, !tbaa !9
  %439 = sext i32 %438 to i64
  %440 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %437, i64 noundef %439) #6
  %441 = load ptr, ptr %440, align 8, !tbaa !5
  %442 = invoke noundef float @_ZNK6Corner4getYEv(ptr noundef nonnull align 4 dereferenceable(88) %441)
          to label %443 unwind label %469

443:                                              ; preds = %434
  store float %442, ptr %13, align 4, !tbaa !11
  %444 = load i32, ptr %36, align 4, !tbaa !9
  %445 = sext i32 %444 to i64
  %446 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %445) #6
  %447 = load i32, ptr %37, align 4, !tbaa !9
  %448 = sext i32 %447 to i64
  %449 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %446, i64 noundef %448) #6
  %450 = load ptr, ptr %449, align 8, !tbaa !5
  %451 = invoke noundef float @_ZNK6Corner13getCornernessEv(ptr noundef nonnull align 4 dereferenceable(88) %450)
          to label %452 unwind label %469

452:                                              ; preds = %443
  store float %451, ptr %31, align 4, !tbaa !11
  store i32 1, ptr %33, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #6
  %453 = load i32, ptr %37, align 4, !tbaa !9
  %454 = add nsw i32 %453, 1
  store i32 %454, ptr %38, align 4, !tbaa !9
  br label %455

455:                                              ; preds = %573, %452
  %456 = load i32, ptr %38, align 4, !tbaa !9
  %457 = sext i32 %456 to i64
  %458 = load i32, ptr %36, align 4, !tbaa !9
  %459 = sext i32 %458 to i64
  %460 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %459) #6
  %461 = call noundef i64 @_ZNKSt6vectorIP16CornerDescriptorSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %460) #6
  %462 = icmp ult i64 %457, %461
  br i1 %462, label %463, label %466

463:                                              ; preds = %455
  %464 = load i32, ptr %33, align 4, !tbaa !9
  %465 = icmp ne i32 %464, 0
  br label %466

466:                                              ; preds = %463, %455
  %467 = phi i1 [ false, %455 ], [ %465, %463 ]
  br i1 %467, label %473, label %468

468:                                              ; preds = %466
  store i32 29, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #6
  br label %577

469:                                              ; preds = %443, %434, %421, %412, %410, %408, %402, %400, %397, %395
  %470 = landingpad { ptr, i32 }
          cleanup
  %471 = extractvalue { ptr, i32 } %470, 0
  store ptr %471, ptr %20, align 8
  %472 = extractvalue { ptr, i32 } %470, 1
  store i32 %472, ptr %21, align 4
  br label %581

473:                                              ; preds = %466
  %474 = load float, ptr %12, align 4, !tbaa !11
  %475 = load i32, ptr %36, align 4, !tbaa !9
  %476 = sext i32 %475 to i64
  %477 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %476) #6
  %478 = load i32, ptr %38, align 4, !tbaa !9
  %479 = sext i32 %478 to i64
  %480 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %477, i64 noundef %479) #6
  %481 = load ptr, ptr %480, align 8, !tbaa !5
  %482 = invoke noundef float @_ZNK6Corner4getXEv(ptr noundef nonnull align 4 dereferenceable(88) %481)
          to label %483 unwind label %539

483:                                              ; preds = %473
  %484 = fsub float %474, %482
  %485 = invoke noundef float @_ZSt4fabsf(float noundef %484)
          to label %486 unwind label %539

486:                                              ; preds = %483
  %487 = load i32, ptr %32, align 4, !tbaa !9
  %488 = sitofp i32 %487 to float
  %489 = fcmp olt float %485, %488
  br i1 %489, label %490, label %572

490:                                              ; preds = %486
  %491 = load float, ptr %13, align 4, !tbaa !11
  %492 = load i32, ptr %36, align 4, !tbaa !9
  %493 = sext i32 %492 to i64
  %494 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %493) #6
  %495 = load i32, ptr %38, align 4, !tbaa !9
  %496 = sext i32 %495 to i64
  %497 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %494, i64 noundef %496) #6
  %498 = load ptr, ptr %497, align 8, !tbaa !5
  %499 = invoke noundef float @_ZNK6Corner4getYEv(ptr noundef nonnull align 4 dereferenceable(88) %498)
          to label %500 unwind label %539

500:                                              ; preds = %490
  %501 = fsub float %491, %499
  %502 = invoke noundef float @_ZSt4fabsf(float noundef %501)
          to label %503 unwind label %539

503:                                              ; preds = %500
  %504 = load i32, ptr %32, align 4, !tbaa !9
  %505 = sitofp i32 %504 to float
  %506 = fcmp olt float %502, %505
  br i1 %506, label %507, label %572

507:                                              ; preds = %503
  %508 = load float, ptr %31, align 4, !tbaa !11
  %509 = load i32, ptr %36, align 4, !tbaa !9
  %510 = sext i32 %509 to i64
  %511 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %510) #6
  %512 = load i32, ptr %38, align 4, !tbaa !9
  %513 = sext i32 %512 to i64
  %514 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %511, i64 noundef %513) #6
  %515 = load ptr, ptr %514, align 8, !tbaa !5
  %516 = invoke noundef float @_ZNK6Corner13getCornernessEv(ptr noundef nonnull align 4 dereferenceable(88) %515)
          to label %517 unwind label %539

517:                                              ; preds = %507
  %518 = fcmp ogt float %508, %516
  br i1 %518, label %519, label %547

519:                                              ; preds = %517
  %520 = load i32, ptr %36, align 4, !tbaa !9
  %521 = sext i32 %520 to i64
  %522 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %521) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #6
  %523 = load i32, ptr %36, align 4, !tbaa !9
  %524 = sext i32 %523 to i64
  %525 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %524) #6
  %526 = call ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %525) #6
  %527 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.38", ptr %41, i32 0, i32 0
  store ptr %526, ptr %527, align 8
  %528 = load i32, ptr %38, align 4, !tbaa !9
  %529 = sext i32 %528 to i64
  %530 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPP16CornerDescriptorSt6vectorIS2_SaIS2_EEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %41, i64 noundef %529) #6
  %531 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.38", ptr %40, i32 0, i32 0
  store ptr %530, ptr %531, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKP16CornerDescriptorSt6vectorIS2_SaIS2_EEEC2IPS2_vEERKNS0_IT_S7_EE(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull align 8 dereferenceable(8) %40) #6
  %532 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.39", ptr %39, i32 0, i32 0
  %533 = load ptr, ptr %532, align 8
  %534 = invoke ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPKS1_S3_EE(ptr noundef nonnull align 8 dereferenceable(24) %522, ptr %533)
          to label %535 unwind label %543

535:                                              ; preds = %519
  %536 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.38", ptr %42, i32 0, i32 0
  store ptr %534, ptr %536, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #6
  %537 = load i32, ptr %38, align 4, !tbaa !9
  %538 = add nsw i32 %537, -1
  store i32 %538, ptr %38, align 4, !tbaa !9
  br label %571

539:                                              ; preds = %507, %500, %490, %483, %473
  %540 = landingpad { ptr, i32 }
          cleanup
  %541 = extractvalue { ptr, i32 } %540, 0
  store ptr %541, ptr %20, align 8
  %542 = extractvalue { ptr, i32 } %540, 1
  store i32 %542, ptr %21, align 4
  br label %576

543:                                              ; preds = %519
  %544 = landingpad { ptr, i32 }
          cleanup
  %545 = extractvalue { ptr, i32 } %544, 0
  store ptr %545, ptr %20, align 8
  %546 = extractvalue { ptr, i32 } %544, 1
  store i32 %546, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #6
  br label %576

547:                                              ; preds = %517
  %548 = load i32, ptr %36, align 4, !tbaa !9
  %549 = sext i32 %548 to i64
  %550 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %549) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #6
  %551 = load i32, ptr %36, align 4, !tbaa !9
  %552 = sext i32 %551 to i64
  %553 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %552) #6
  %554 = call ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %553) #6
  %555 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.38", ptr %45, i32 0, i32 0
  store ptr %554, ptr %555, align 8
  %556 = load i32, ptr %37, align 4, !tbaa !9
  %557 = sext i32 %556 to i64
  %558 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPP16CornerDescriptorSt6vectorIS2_SaIS2_EEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %45, i64 noundef %557) #6
  %559 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.38", ptr %44, i32 0, i32 0
  store ptr %558, ptr %559, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKP16CornerDescriptorSt6vectorIS2_SaIS2_EEEC2IPS2_vEERKNS0_IT_S7_EE(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %44) #6
  %560 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.39", ptr %43, i32 0, i32 0
  %561 = load ptr, ptr %560, align 8
  %562 = invoke ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPKS1_S3_EE(ptr noundef nonnull align 8 dereferenceable(24) %550, ptr %561)
          to label %563 unwind label %567

563:                                              ; preds = %547
  %564 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.38", ptr %46, i32 0, i32 0
  store ptr %562, ptr %564, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #6
  %565 = load i32, ptr %37, align 4, !tbaa !9
  %566 = add nsw i32 %565, -1
  store i32 %566, ptr %37, align 4, !tbaa !9
  store i32 0, ptr %33, align 4, !tbaa !9
  br label %571

567:                                              ; preds = %547
  %568 = landingpad { ptr, i32 }
          cleanup
  %569 = extractvalue { ptr, i32 } %568, 0
  store ptr %569, ptr %20, align 8
  %570 = extractvalue { ptr, i32 } %568, 1
  store i32 %570, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #6
  br label %576

571:                                              ; preds = %563, %535
  br label %572

572:                                              ; preds = %571, %503, %486
  br label %573

573:                                              ; preds = %572
  %574 = load i32, ptr %38, align 4, !tbaa !9
  %575 = add nsw i32 %574, 1
  store i32 %575, ptr %38, align 4, !tbaa !9
  br label %455, !llvm.loop !23

576:                                              ; preds = %567, %543, %539
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #6
  br label %581

577:                                              ; preds = %468
  br label %578

578:                                              ; preds = %577
  %579 = load i32, ptr %37, align 4, !tbaa !9
  %580 = add nsw i32 %579, 1
  store i32 %580, ptr %37, align 4, !tbaa !9
  br label %386, !llvm.loop !24

581:                                              ; preds = %576, %469
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #6
  br label %640

582:                                              ; preds = %394
  br label %583

583:                                              ; preds = %582
  %584 = load i32, ptr %36, align 4, !tbaa !9
  %585 = add nsw i32 %584, 1
  store i32 %585, ptr %36, align 4, !tbaa !9
  br label %374, !llvm.loop !25

586:                                              ; preds = %380
  store i32 0, ptr %34, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #6
  store i32 1, ptr %47, align 4, !tbaa !9
  br label %587

587:                                              ; preds = %629, %586
  %588 = load i32, ptr %47, align 4, !tbaa !9
  %589 = sext i32 %588 to i64
  %590 = call noundef i64 @_ZNKSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %16) #6
  %591 = sub i64 %590, 1
  %592 = icmp ult i64 %589, %591
  br i1 %592, label %594, label %593

593:                                              ; preds = %587
  store i32 32, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #6
  br label %632

594:                                              ; preds = %587
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #6
  store i32 0, ptr %48, align 4, !tbaa !9
  br label %595

595:                                              ; preds = %613, %594
  %596 = load i32, ptr %48, align 4, !tbaa !9
  %597 = sext i32 %596 to i64
  %598 = load i32, ptr %47, align 4, !tbaa !9
  %599 = sext i32 %598 to i64
  %600 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %599) #6
  %601 = call noundef i64 @_ZNKSt6vectorIP16CornerDescriptorSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %600) #6
  %602 = icmp ult i64 %597, %601
  br i1 %602, label %604, label %603

603:                                              ; preds = %595
  store i32 35, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #6
  br label %620

604:                                              ; preds = %595
  %605 = load ptr, ptr %8, align 8, !tbaa !5
  %606 = load i32, ptr %47, align 4, !tbaa !9
  %607 = sext i32 %606 to i64
  %608 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %607) #6
  %609 = load i32, ptr %48, align 4, !tbaa !9
  %610 = sext i32 %609 to i64
  %611 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %608, i64 noundef %610) #6
  invoke void @_ZNSt6vectorIP16CornerDescriptorSaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %605, ptr noundef nonnull align 8 dereferenceable(8) %611)
          to label %612 unwind label %616

612:                                              ; preds = %604
  br label %613

613:                                              ; preds = %612
  %614 = load i32, ptr %48, align 4, !tbaa !9
  %615 = add nsw i32 %614, 1
  store i32 %615, ptr %48, align 4, !tbaa !9
  br label %595, !llvm.loop !26

616:                                              ; preds = %604
  %617 = landingpad { ptr, i32 }
          cleanup
  %618 = extractvalue { ptr, i32 } %617, 0
  store ptr %618, ptr %20, align 8
  %619 = extractvalue { ptr, i32 } %617, 1
  store i32 %619, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #6
  br label %640

620:                                              ; preds = %603
  %621 = load i32, ptr %47, align 4, !tbaa !9
  %622 = sext i32 %621 to i64
  %623 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %622) #6
  %624 = call noundef i64 @_ZNKSt6vectorIP16CornerDescriptorSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %623) #6
  %625 = load i32, ptr %34, align 4, !tbaa !9
  %626 = sext i32 %625 to i64
  %627 = add i64 %626, %624
  %628 = trunc i64 %627 to i32
  store i32 %628, ptr %34, align 4, !tbaa !9
  br label %629

629:                                              ; preds = %620
  %630 = load i32, ptr %47, align 4, !tbaa !9
  %631 = add nsw i32 %630, 1
  store i32 %631, ptr %47, align 4, !tbaa !9
  br label %587, !llvm.loop !27

632:                                              ; preds = %593
  %633 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str)
          to label %634 unwind label %381

634:                                              ; preds = %632
  %635 = load i32, ptr %34, align 4, !tbaa !9
  %636 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %633, i32 noundef %635)
          to label %637 unwind label %381

637:                                              ; preds = %634
  %638 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %636, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %639 unwind label %381

639:                                              ; preds = %637
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #6
  call void @_ZNSt6vectorIfSaIfEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %22) #6
  call void @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #6
  ret void

640:                                              ; preds = %616, %581, %381
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #6
  br label %641

641:                                              ; preds = %640, %345
  call void @_ZNSt6vectorIfSaIfEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %22) #6
  br label %642

642:                                              ; preds = %641, %69
  call void @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #6
  br label %643

643:                                              ; preds = %642
  %644 = load ptr, ptr %20, align 8
  %645 = load i32, ptr %21, align 4
  %646 = insertvalue { ptr, i32 } poison, ptr %644, 0
  %647 = insertvalue { ptr, i32 } %646, i32 %645, 1
  resume { ptr, i32 } %647
}

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSaIP16CornerDescriptorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEC2EmRKS2_(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #4

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #5

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #4

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8), i64 noundef) #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt5flushIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #4

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

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

; 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: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZNK6Corner13getCornernessEv(ptr noundef nonnull align 4 dereferenceable(88)) #1 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIP16CornerDescriptorED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 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 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 = { inlinehint 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 #5 = { "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 }

!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 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = !{!16, !6, i64 16}
!16 = !{!"_ZTS12ImageContent", !10, i64 0, !10, i64 4, !10, i64 8, !10, 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}
!17 = distinct !{!17, !14}
!18 = distinct !{!18, !14}
!19 = distinct !{!19, !14}
!20 = distinct !{!20, !14}
!21 = distinct !{!21, !14}
!22 = distinct !{!22, !14}
!23 = distinct !{!23, !14}
!24 = distinct !{!24, !14}
!25 = distinct !{!25, !14}
!26 = distinct !{!26, !14}
!27 = distinct !{!27, !14}


; 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::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::vector.33" = type { %"struct.std::_Vector_base.34" }
%"struct.std::_Vector_base.34" = type { %"struct.std::_Vector_base<std::vector<CornerDescriptor *>, std::allocator<std::vector<CornerDescriptor *>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<CornerDescriptor *>, std::allocator<std::vector<CornerDescriptor *>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<CornerDescriptor *>, std::allocator<std::vector<CornerDescriptor *>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<CornerDescriptor *>, std::allocator<std::vector<CornerDescriptor *>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = type { %"struct.std::_Vector_base<CornerDescriptor *, std::allocator<CornerDescriptor *>>::_Vector_impl" }
%"struct.std::_Vector_base<CornerDescriptor *, std::allocator<CornerDescriptor *>>::_Vector_impl" = type { %"struct.std::_Vector_base<CornerDescriptor *, std::allocator<CornerDescriptor *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<CornerDescriptor *, std::allocator<CornerDescriptor *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.15" = type { i8 }
%"class.std::vector.28" = type { %"struct.std::_Vector_base.29" }
%"struct.std::_Vector_base.29" = 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 }
%"class.__gnu_cxx::__normal_iterator.39" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.38" = type { ptr }

@STEP = external dso_local local_unnamed_addr global float, align 4
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str = external hidden unnamed_addr constant [16 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [5 x i8], align 1

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

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_Z6getLapP12ImageContentff(ptr noundef, float noundef, float noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
define dso_local void @_Z11edge_pointsSt6vectorIP12ImageContentSaIS1_EES3_S_IfSaIfEERS_IP16CornerDescriptorSaIS7_EE(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef nonnull align 8 dereferenceable(24) %3) local_unnamed_addr #2 personality ptr @__gxx_personality_v0 {
  %5 = alloca %"class.std::vector.33", align 8
  %6 = alloca %"class.std::vector.13", align 8
  %7 = alloca %"class.std::allocator.15", align 1
  %8 = alloca %"class.std::vector.28", align 8
  %9 = alloca float, align 4
  %10 = alloca %"class.__gnu_cxx::__normal_iterator.39", align 8
  %11 = alloca %"class.__gnu_cxx::__normal_iterator.38", align 8
  %12 = alloca %"class.__gnu_cxx::__normal_iterator.38", align 8
  %13 = alloca %"class.__gnu_cxx::__normal_iterator.39", align 8
  %14 = alloca %"class.__gnu_cxx::__normal_iterator.38", align 8
  %15 = alloca %"class.__gnu_cxx::__normal_iterator.38", align 8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #6
  call void @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  %16 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %2) #6
  %.not = icmp eq i64 %16, 0
  br i1 %.not, label %._crit_edge, label %.lr.ph

._crit_edge:                                      ; preds = %21, %4
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %8) #6
  call void @_ZNSt6vectorIfSaIfEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #6
  %17 = call noundef i64 @_ZNKSt6vectorIP12ImageContentSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #6
  %18 = add i64 %17, -3
  %19 = icmp ult i64 %18, -2
  br i1 %19, label %.lr.ph199, label %.preheader174

.lr.ph:                                           ; preds = %4, %21
  %indvars.iv = phi i64 [ %indvars.iv.next, %21 ], [ 0, %4 ]
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) #6
  call void @_ZNSaIP16CornerDescriptorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #6
  invoke void @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEC2EmRKS2_(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef 0, ptr noundef nonnull align 1 dereferenceable(1) %7)
          to label %20 unwind label %24

20:                                               ; preds = %.lr.ph
  invoke void @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EE9push_backEOS3_(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(24) %6)
          to label %21 unwind label %26

21:                                               ; preds = %20
  call void @_ZNSt6vectorIP16CornerDescriptorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #6
  call void @_ZNSt15__new_allocatorIP16CornerDescriptorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #6
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %22 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %2) #6
  %23 = icmp ugt i64 %22, %indvars.iv.next
  br i1 %23, label %.lr.ph, label %._crit_edge, !llvm.loop !5

24:                                               ; preds = %.lr.ph
  %25 = landingpad { ptr, i32 }
          cleanup
  br label %28

26:                                               ; preds = %20
  %27 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIP16CornerDescriptorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #6
  br label %28

28:                                               ; preds = %26, %24
  %.pn168 = phi { ptr, i32 } [ %27, %26 ], [ %25, %24 ]
  call void @_ZNSt15__new_allocatorIP16CornerDescriptorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #6
  br label %311

.preheader174:                                    ; preds = %._crit_edge193, %._crit_edge
  %29 = call noundef i64 @_ZNKSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  %30 = add i64 %29, -3
  %31 = icmp ult i64 %30, -2
  br i1 %31, label %.lr.ph202, label %._crit_edge203

.lr.ph199:                                        ; preds = %._crit_edge, %._crit_edge193
  %indvars.iv244 = phi i64 [ %indvars.iv.next245, %._crit_edge193 ], [ 1, %._crit_edge ]
  %indvars.iv228 = phi i64 [ %indvars.iv.next229, %._crit_edge193 ], [ 0, %._crit_edge ]
  %32 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %indvars.iv244) #6
  %33 = load ptr, ptr %32, align 8, !tbaa !7
  %34 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %33)
  %35 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %indvars.iv244) #6
  %36 = load ptr, ptr %35, align 8, !tbaa !7
  %37 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %36)
  %38 = add i32 %34, -5
  %39 = icmp sgt i32 %34, 10
  br i1 %39, label %.preheader176.lr.ph, label %._crit_edge193

.preheader176.lr.ph:                              ; preds = %.lr.ph199
  %40 = icmp sgt i32 %37, 10
  %41 = add nsw i64 %indvars.iv244, -1
  br i1 %40, label %.preheader176.us.preheader, label %._crit_edge193

.preheader176.us.preheader:                       ; preds = %.preheader176.lr.ph
  %42 = add nsw i32 %37, -5
  %wide.trip.count242 = zext nneg i32 %38 to i64
  %wide.trip.count = zext i32 %42 to i64
  br label %.preheader176.us

.preheader176.us:                                 ; preds = %.preheader176.us.preheader, %._crit_edge191.us
  %indvars.iv239 = phi i64 [ 5, %.preheader176.us.preheader ], [ %indvars.iv.next240, %._crit_edge191.us ]
  %43 = trunc nuw nsw i64 %indvars.iv239 to i32
  %44 = uitofp nneg i32 %43 to float
  br label %45

45:                                               ; preds = %.preheader176.us, %66
  %indvars.iv236 = phi i64 [ 5, %.preheader176.us ], [ %indvars.iv.next237, %66 ]
  %46 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %indvars.iv244) #6
  %47 = load ptr, ptr %46, align 8, !tbaa !7
  %48 = getelementptr inbounds i8, ptr %47, i64 16
  %49 = load ptr, ptr %48, align 8, !tbaa !11
  %50 = getelementptr inbounds ptr, ptr %49, i64 %indvars.iv239
  %51 = load ptr, ptr %50, align 8, !tbaa !7
  %52 = getelementptr inbounds float, ptr %51, i64 %indvars.iv236
  %53 = load float, ptr %52, align 4, !tbaa !14
  %54 = fcmp ogt float %53, 3.000000e+00
  br i1 %54, label %55, label %66

55:                                               ; preds = %45
  %56 = trunc nuw nsw i64 %indvars.iv236 to i32
  %57 = uitofp nneg i32 %56 to float
  %58 = load float, ptr @STEP, align 4, !tbaa !14
  %59 = call noundef i64 @_ZNKSt6vectorIP12ImageContentSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #6
  %60 = icmp ugt i64 %59, %41
  br i1 %60, label %.lr.ph185.us.preheader, label %.preheader175.us

.lr.ph185.us.preheader:                           ; preds = %55
  %61 = insertelement <2 x float> poison, float %58, i64 0
  %62 = shufflevector <2 x float> %61, <2 x float> poison, <2 x i32> zeroinitializer
  %63 = insertelement <2 x float> poison, float %57, i64 0
  %64 = insertelement <2 x float> %63, float %44, i64 1
  %65 = fmul <2 x float> %62, %64
  br label %.lr.ph185.us

._crit_edge188.us:                                ; preds = %141, %.preheader175.us
  call void @_ZNSt6vectorIfSaIfEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #6
  br label %66

66:                                               ; preds = %._crit_edge188.us, %45
  %indvars.iv.next237 = add nuw nsw i64 %indvars.iv236, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next237, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge191.us, label %45, !llvm.loop !16

.lr.ph187.us:                                     ; preds = %.preheader175.us, %141
  %indvars.iv233 = phi i64 [ %indvars.iv.next234.pre-phi, %141 ], [ 1, %.preheader175.us ]
  %67 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %indvars.iv233) #6
  %68 = load float, ptr %67, align 4, !tbaa !14
  %69 = add nsw i64 %indvars.iv233, -1
  %70 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %69) #6
  %71 = load float, ptr %70, align 4, !tbaa !14
  %72 = fcmp ogt float %68, %71
  br i1 %72, label %73, label %84

73:                                               ; preds = %.lr.ph187.us
  %74 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %indvars.iv233) #6
  %75 = load float, ptr %74, align 4, !tbaa !14
  %76 = add nuw nsw i64 %indvars.iv233, 1
  %77 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %76) #6
  %78 = load float, ptr %77, align 4, !tbaa !14
  %79 = fcmp ogt float %75, %78
  br i1 %79, label %80, label %84

80:                                               ; preds = %73
  %81 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %indvars.iv233) #6
  %82 = load float, ptr %81, align 4, !tbaa !14
  %83 = fcmp ogt float %82, 3.000000e+00
  br i1 %83, label %121, label %84

84:                                               ; preds = %80, %73, %.lr.ph187.us
  %85 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %indvars.iv233) #6
  %86 = load float, ptr %85, align 4, !tbaa !14
  %87 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %69) #6
  %88 = load float, ptr %87, align 4, !tbaa !14
  %89 = fcmp olt float %86, %88
  br i1 %89, label %90, label %._crit_edge261

._crit_edge261:                                   ; preds = %84
  %.pre262 = add nuw nsw i64 %indvars.iv233, 1
  br label %141

90:                                               ; preds = %84
  %91 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %indvars.iv233) #6
  %92 = load float, ptr %91, align 4, !tbaa !14
  %93 = add nuw nsw i64 %indvars.iv233, 1
  %94 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %93) #6
  %95 = load float, ptr %94, align 4, !tbaa !14
  %96 = fcmp olt float %92, %95
  br i1 %96, label %97, label %141

97:                                               ; preds = %90
  %98 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %indvars.iv233) #6
  %99 = load float, ptr %98, align 4, !tbaa !14
  %100 = fcmp olt float %99, -3.000000e+00
  br i1 %100, label %101, label %141

101:                                              ; preds = %97
  %102 = add i64 %41, %indvars.iv233
  %sext = shl i64 %102, 32
  %103 = ashr exact i64 %sext, 32
  %104 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %103) #6
  %105 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %indvars.iv244) #6
  %106 = load float, ptr %105, align 4, !tbaa !14
  %107 = fmul float %106, %57
  %108 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %indvars.iv244) #6
  %109 = load float, ptr %108, align 4, !tbaa !14
  %110 = fmul float %109, %44
  %111 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %indvars.iv244) #6
  %112 = load ptr, ptr %111, align 8, !tbaa !7
  %113 = getelementptr inbounds i8, ptr %112, i64 16
  %114 = load ptr, ptr %113, align 8, !tbaa !11
  %115 = getelementptr inbounds ptr, ptr %114, i64 %indvars.iv239
  %116 = load ptr, ptr %115, align 8, !tbaa !7
  %117 = getelementptr inbounds float, ptr %116, i64 %indvars.iv236
  %118 = load float, ptr %117, align 4, !tbaa !14
  %119 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %103) #6
  %120 = load float, ptr %119, align 4, !tbaa !14
  invoke void @_Z9newCornerRSt6vectorIP16CornerDescriptorSaIS1_EEfffff(ptr noundef nonnull align 8 dereferenceable(24) %104, float noundef %107, float noundef %110, float noundef %118, float noundef %120, float noundef -1.000000e+00)
          to label %141 unwind label %.split.us

121:                                              ; preds = %80
  %122 = add i64 %41, %indvars.iv233
  %sext263 = shl i64 %122, 32
  %123 = ashr exact i64 %sext263, 32
  %124 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %123) #6
  %125 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %indvars.iv244) #6
  %126 = load float, ptr %125, align 4, !tbaa !14
  %127 = fmul float %126, %57
  %128 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %indvars.iv244) #6
  %129 = load float, ptr %128, align 4, !tbaa !14
  %130 = fmul float %129, %44
  %131 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %indvars.iv244) #6
  %132 = load ptr, ptr %131, align 8, !tbaa !7
  %133 = getelementptr inbounds i8, ptr %132, i64 16
  %134 = load ptr, ptr %133, align 8, !tbaa !11
  %135 = getelementptr inbounds ptr, ptr %134, i64 %indvars.iv239
  %136 = load ptr, ptr %135, align 8, !tbaa !7
  %137 = getelementptr inbounds float, ptr %136, i64 %indvars.iv236
  %138 = load float, ptr %137, align 4, !tbaa !14
  %139 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %123) #6
  %140 = load float, ptr %139, align 4, !tbaa !14
  invoke void @_Z9newCornerRSt6vectorIP16CornerDescriptorSaIS1_EEfffff(ptr noundef nonnull align 8 dereferenceable(24) %124, float noundef %127, float noundef %130, float noundef %138, float noundef %140, float noundef 1.000000e+00)
          to label %141 unwind label %.split.us

141:                                              ; preds = %._crit_edge261, %121, %101, %97, %90
  %indvars.iv.next234.pre-phi = phi i64 [ %.pre262, %._crit_edge261 ], [ %76, %121 ], [ %93, %101 ], [ %93, %97 ], [ %93, %90 ]
  %142 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #6
  %143 = add i64 %142, -1
  %144 = icmp ugt i64 %143, %indvars.iv.next234.pre-phi
  br i1 %144, label %.lr.ph187.us, label %._crit_edge188.us, !llvm.loop !17

.lr.ph185.us:                                     ; preds = %.lr.ph185.us.preheader, %152
  %indvars.iv230 = phi i64 [ %indvars.iv228, %.lr.ph185.us.preheader ], [ %indvars.iv.next231, %152 ]
  %145 = phi <2 x float> [ %65, %.lr.ph185.us.preheader ], [ %156, %152 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #6
  %146 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %indvars.iv230) #6
  %147 = load ptr, ptr %146, align 8, !tbaa !7
  %148 = extractelement <2 x float> %145, i64 0
  %149 = extractelement <2 x float> %145, i64 1
  %150 = invoke noundef float @_Z6getLapP12ImageContentff(ptr noundef %147, float noundef %148, float noundef %149)
          to label %151 unwind label %.split195.us

151:                                              ; preds = %.lr.ph185.us
  store float %150, ptr %9, align 4, !tbaa !14
  invoke void @_ZNSt6vectorIfSaIfEE9push_backEOf(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 4 dereferenceable(4) %9)
          to label %152 unwind label %.split195.us

152:                                              ; preds = %151
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #6
  %153 = load float, ptr @STEP, align 4, !tbaa !14
  %154 = insertelement <2 x float> poison, float %153, i64 0
  %155 = shufflevector <2 x float> %154, <2 x float> poison, <2 x i32> zeroinitializer
  %156 = fdiv <2 x float> %145, %155
  %indvars.iv.next231 = add nuw nsw i64 %indvars.iv230, 1
  %157 = call noundef i64 @_ZNKSt6vectorIP12ImageContentSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #6
  %158 = icmp ugt i64 %157, %indvars.iv.next231
  br i1 %158, label %.lr.ph185.us, label %.preheader175.us, !llvm.loop !18

.preheader175.us:                                 ; preds = %152, %55
  %159 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #6
  %160 = add i64 %159, -3
  %161 = icmp ult i64 %160, -2
  br i1 %161, label %.lr.ph187.us, label %._crit_edge188.us

._crit_edge191.us:                                ; preds = %66
  %indvars.iv.next240 = add nuw nsw i64 %indvars.iv239, 1
  %exitcond243.not = icmp eq i64 %indvars.iv.next240, %wide.trip.count242
  br i1 %exitcond243.not, label %._crit_edge193, label %.preheader176.us, !llvm.loop !19

.split.us:                                        ; preds = %121, %101
  %162 = landingpad { ptr, i32 }
          cleanup
  br label %310

.split195.us:                                     ; preds = %151, %.lr.ph185.us
  %163 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #6
  br label %310

._crit_edge193:                                   ; preds = %._crit_edge191.us, %.preheader176.lr.ph, %.lr.ph199
  %indvars.iv.next245 = add nuw nsw i64 %indvars.iv244, 1
  %164 = call noundef i64 @_ZNKSt6vectorIP12ImageContentSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #6
  %165 = add i64 %164, -1
  %166 = icmp ugt i64 %165, %indvars.iv.next245
  %indvars.iv.next229 = add nuw nsw i64 %indvars.iv228, 1
  br i1 %166, label %.lr.ph199, label %.preheader174, !llvm.loop !20

._crit_edge203:                                   ; preds = %.lr.ph202, %.preheader174
  %.0132.lcssa = phi i32 [ 0, %.preheader174 ], [ %171, %.lr.ph202 ]
  %167 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str)
          to label %175 unwind label %187

.lr.ph202:                                        ; preds = %.preheader174, %.lr.ph202
  %indvars.iv247 = phi i64 [ %indvars.iv.next248, %.lr.ph202 ], [ 1, %.preheader174 ]
  %.0132200 = phi i32 [ %171, %.lr.ph202 ], [ 0, %.preheader174 ]
  %168 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv247) #6
  %169 = call noundef i64 @_ZNKSt6vectorIP16CornerDescriptorSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %168) #6
  %170 = trunc i64 %169 to i32
  %171 = add i32 %.0132200, %170
  %indvars.iv.next248 = add nuw nsw i64 %indvars.iv247, 1
  %172 = call noundef i64 @_ZNKSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  %173 = add i64 %172, -1
  %174 = icmp ugt i64 %173, %indvars.iv.next248
  br i1 %174, label %.lr.ph202, label %._crit_edge203, !llvm.loop !21

175:                                              ; preds = %._crit_edge203
  %176 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %167, i32 noundef %.0132.lcssa)
          to label %177 unwind label %187

177:                                              ; preds = %175
  %178 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %176, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.preheader173 unwind label %187

.preheader173:                                    ; preds = %177
  %179 = call noundef i64 @_ZNKSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  %180 = add i64 %179, -3
  %181 = icmp ult i64 %180, -2
  br i1 %181, label %.preheader172, label %.preheader171

.preheader172:                                    ; preds = %.preheader173, %._crit_edge214
  %indvars.iv250 = phi i64 [ %indvars.iv.next251, %._crit_edge214 ], [ 1, %.preheader173 ]
  %182 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv250) #6
  %183 = call noundef i64 @_ZNKSt6vectorIP16CornerDescriptorSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %182) #6
  %.not223 = icmp eq i64 %183, 0
  br i1 %.not223, label %._crit_edge214, label %.lr.ph213

.preheader171:                                    ; preds = %._crit_edge214, %.preheader173
  %184 = call noundef i64 @_ZNKSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  %185 = add i64 %184, -3
  %186 = icmp ult i64 %185, -2
  br i1 %186, label %.preheader, label %._crit_edge221

187:                                              ; preds = %307, %305, %._crit_edge221, %177, %175, %._crit_edge203
  %188 = landingpad { ptr, i32 }
          cleanup
  br label %310

._crit_edge214:                                   ; preds = %._crit_edge210, %.preheader172
  %indvars.iv.next251 = add nuw nsw i64 %indvars.iv250, 1
  %189 = call noundef i64 @_ZNKSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  %190 = add i64 %189, -1
  %191 = icmp ugt i64 %190, %indvars.iv.next251
  br i1 %191, label %.preheader172, label %.preheader171, !llvm.loop !22

.lr.ph213:                                        ; preds = %.preheader172, %._crit_edge210
  %192 = phi i64 [ %.pre-phi260, %._crit_edge210 ], [ 0, %.preheader172 ]
  %.0128212 = phi i32 [ %.pre-phi, %._crit_edge210 ], [ 0, %.preheader172 ]
  %193 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.1)
          to label %194 unwind label %234

194:                                              ; preds = %.lr.ph213
  %195 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %193, i32 noundef %.0128212)
          to label %196 unwind label %234

196:                                              ; preds = %194
  %197 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %195, ptr noundef nonnull @.str.2)
          to label %198 unwind label %234

198:                                              ; preds = %196
  %199 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv250) #6
  %200 = call noundef i64 @_ZNKSt6vectorIP16CornerDescriptorSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %199) #6
  %201 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %197, i64 noundef %200)
          to label %202 unwind label %234

202:                                              ; preds = %198
  %203 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %201, ptr noundef nonnull @.str.3)
          to label %204 unwind label %234

204:                                              ; preds = %202
  %205 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %203, ptr noundef nonnull @_ZSt5flushIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %206 unwind label %234

206:                                              ; preds = %204
  %207 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv250) #6
  %208 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %207, i64 noundef %192) #6
  %209 = load ptr, ptr %208, align 8, !tbaa !7
  %210 = call noundef float @_ZNK6Corner14getCornerScaleEv(ptr noundef nonnull align 4 dereferenceable(88) %209)
  %211 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv250) #6
  %212 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %211, i64 noundef %192) #6
  %213 = load ptr, ptr %212, align 8, !tbaa !7
  %214 = call noundef float @_ZNK6Corner4getXEv(ptr noundef nonnull align 4 dereferenceable(88) %213)
  %215 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv250) #6
  %216 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %215, i64 noundef %192) #6
  %217 = load ptr, ptr %216, align 8, !tbaa !7
  %218 = call noundef float @_ZNK6Corner4getYEv(ptr noundef nonnull align 4 dereferenceable(88) %217)
  %219 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv250) #6
  %220 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %219, i64 noundef %192) #6
  %221 = load ptr, ptr %220, align 8, !tbaa !7
  %222 = call noundef float @_ZNK6Corner13getCornernessEv(ptr noundef nonnull align 4 dereferenceable(88) %221)
  %.0127204 = add nsw i32 %.0128212, 1
  %223 = sext i32 %.0127204 to i64
  %224 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv250) #6
  %225 = call noundef i64 @_ZNKSt6vectorIP16CornerDescriptorSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %224) #6
  %226 = icmp ugt i64 %225, %223
  br i1 %226, label %.lr.ph209, label %._crit_edge210

.lr.ph209:                                        ; preds = %206
  %227 = fpext float %210 to double
  %228 = fmul double %227, 5.000000e-01
  %229 = fptosi double %228 to i32
  %230 = sitofp i32 %229 to float
  br label %236

._crit_edge210.loopexit:                          ; preds = %280
  %.pre = add nsw i32 %.2, 1
  %.pre259 = sext i32 %.pre to i64
  br label %._crit_edge210

._crit_edge210:                                   ; preds = %._crit_edge210.loopexit, %206
  %.pre-phi260 = phi i64 [ %.pre259, %._crit_edge210.loopexit ], [ %223, %206 ]
  %.pre-phi = phi i32 [ %.pre, %._crit_edge210.loopexit ], [ %.0127204, %206 ]
  %231 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv250) #6
  %232 = call noundef i64 @_ZNKSt6vectorIP16CornerDescriptorSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %231) #6
  %233 = icmp ugt i64 %232, %.pre-phi260
  br i1 %233, label %.lr.ph213, label %._crit_edge214, !llvm.loop !23

234:                                              ; preds = %204, %202, %198, %196, %194, %.lr.ph213
  %235 = landingpad { ptr, i32 }
          cleanup
  br label %310

236:                                              ; preds = %.lr.ph209, %280
  %237 = phi i64 [ %223, %.lr.ph209 ], [ %282, %280 ]
  %.0127207 = phi i32 [ %.0127204, %.lr.ph209 ], [ %.0127, %280 ]
  %.0127.in206 = phi i32 [ %.0128212, %.lr.ph209 ], [ %.1, %280 ]
  %.1129205 = phi i32 [ %.0128212, %.lr.ph209 ], [ %.2, %280 ]
  %238 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv250) #6
  %239 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %238, i64 noundef %237) #6
  %240 = load ptr, ptr %239, align 8, !tbaa !7
  %241 = call noundef float @_ZNK6Corner4getXEv(ptr noundef nonnull align 4 dereferenceable(88) %240)
  %242 = fsub float %214, %241
  %243 = call noundef float @_ZSt4fabsf(float noundef %242)
  %244 = fcmp olt float %243, %230
  br i1 %244, label %245, label %280

245:                                              ; preds = %236
  %246 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv250) #6
  %247 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %246, i64 noundef %237) #6
  %248 = load ptr, ptr %247, align 8, !tbaa !7
  %249 = call noundef float @_ZNK6Corner4getYEv(ptr noundef nonnull align 4 dereferenceable(88) %248)
  %250 = fsub float %218, %249
  %251 = call noundef float @_ZSt4fabsf(float noundef %250)
  %252 = fcmp olt float %251, %230
  br i1 %252, label %253, label %280

253:                                              ; preds = %245
  %254 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv250) #6
  %255 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %254, i64 noundef %237) #6
  %256 = load ptr, ptr %255, align 8, !tbaa !7
  %257 = call noundef float @_ZNK6Corner13getCornernessEv(ptr noundef nonnull align 4 dereferenceable(88) %256)
  %258 = fcmp ogt float %222, %257
  %259 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv250) #6
  br i1 %258, label %260, label %269

260:                                              ; preds = %253
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #6
  %261 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv250) #6
  %262 = call ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %261) #6
  store ptr %262, ptr %12, align 8
  %263 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPP16CornerDescriptorSt6vectorIS2_SaIS2_EEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %12, i64 noundef %237) #6
  store ptr %263, ptr %11, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKP16CornerDescriptorSt6vectorIS2_SaIS2_EEEC2IPS2_vEERKNS0_IT_S7_EE(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 8 dereferenceable(8) %11) #6
  %264 = load ptr, ptr %10, align 8
  %265 = invoke ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPKS1_S3_EE(ptr noundef nonnull align 8 dereferenceable(24) %259, ptr %264)
          to label %266 unwind label %267

266:                                              ; preds = %260
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #6
  br label %280

267:                                              ; preds = %260
  %268 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #6
  br label %310

269:                                              ; preds = %253
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #6
  %270 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv250) #6
  %271 = call ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %270) #6
  store ptr %271, ptr %15, align 8
  %272 = sext i32 %.1129205 to i64
  %273 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPP16CornerDescriptorSt6vectorIS2_SaIS2_EEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %15, i64 noundef %272) #6
  store ptr %273, ptr %14, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKP16CornerDescriptorSt6vectorIS2_SaIS2_EEEC2IPS2_vEERKNS0_IT_S7_EE(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %14) #6
  %274 = load ptr, ptr %13, align 8
  %275 = invoke ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPKS1_S3_EE(ptr noundef nonnull align 8 dereferenceable(24) %259, ptr %274)
          to label %276 unwind label %278

276:                                              ; preds = %269
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #6
  %277 = add nsw i32 %.1129205, -1
  br label %280

278:                                              ; preds = %269
  %279 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #6
  br label %310

280:                                              ; preds = %236, %245, %276, %266
  %281 = phi i1 [ true, %266 ], [ false, %276 ], [ true, %245 ], [ true, %236 ]
  %.2 = phi i32 [ %.1129205, %266 ], [ %277, %276 ], [ %.1129205, %245 ], [ %.1129205, %236 ]
  %.1 = phi i32 [ %.0127.in206, %266 ], [ %.0127207, %276 ], [ %.0127207, %245 ], [ %.0127207, %236 ]
  %.0127 = add nsw i32 %.1, 1
  %282 = sext i32 %.0127 to i64
  %283 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv250) #6
  %284 = call noundef i64 @_ZNKSt6vectorIP16CornerDescriptorSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %283) #6
  %285 = icmp ugt i64 %284, %282
  %286 = and i1 %281, %285
  br i1 %286, label %236, label %._crit_edge210.loopexit, !llvm.loop !24

.preheader:                                       ; preds = %.preheader171, %._crit_edge218
  %indvars.iv256 = phi i64 [ %indvars.iv.next257, %._crit_edge218 ], [ 1, %.preheader171 ]
  %.1133219 = phi i32 [ %293, %._crit_edge218 ], [ 0, %.preheader171 ]
  %287 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv256) #6
  %288 = call noundef i64 @_ZNKSt6vectorIP16CornerDescriptorSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %287) #6
  %.not224 = icmp eq i64 %288, 0
  br i1 %.not224, label %._crit_edge218, label %.lr.ph217

._crit_edge221:                                   ; preds = %._crit_edge218, %.preheader171
  %.1133.lcssa = phi i32 [ 0, %.preheader171 ], [ %293, %._crit_edge218 ]
  %289 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str)
          to label %305 unwind label %187

._crit_edge218:                                   ; preds = %299, %.preheader
  %290 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv256) #6
  %291 = call noundef i64 @_ZNKSt6vectorIP16CornerDescriptorSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %290) #6
  %292 = trunc i64 %291 to i32
  %293 = add i32 %.1133219, %292
  %indvars.iv.next257 = add nuw nsw i64 %indvars.iv256, 1
  %294 = call noundef i64 @_ZNKSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  %295 = add i64 %294, -1
  %296 = icmp ugt i64 %295, %indvars.iv.next257
  br i1 %296, label %.preheader, label %._crit_edge221, !llvm.loop !25

.lr.ph217:                                        ; preds = %.preheader, %299
  %indvars.iv253 = phi i64 [ %indvars.iv.next254, %299 ], [ 0, %.preheader ]
  %297 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv256) #6
  %298 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %297, i64 noundef %indvars.iv253) #6
  invoke void @_ZNSt6vectorIP16CornerDescriptorSaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull align 8 dereferenceable(8) %298)
          to label %299 unwind label %303

299:                                              ; preds = %.lr.ph217
  %indvars.iv.next254 = add nuw nsw i64 %indvars.iv253, 1
  %300 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv256) #6
  %301 = call noundef i64 @_ZNKSt6vectorIP16CornerDescriptorSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %300) #6
  %302 = icmp ugt i64 %301, %indvars.iv.next254
  br i1 %302, label %.lr.ph217, label %._crit_edge218, !llvm.loop !26

303:                                              ; preds = %.lr.ph217
  %304 = landingpad { ptr, i32 }
          cleanup
  br label %310

305:                                              ; preds = %._crit_edge221
  %306 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %289, i32 noundef %.1133.lcssa)
          to label %307 unwind label %187

307:                                              ; preds = %305
  %308 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %306, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %309 unwind label %187

309:                                              ; preds = %307
  call void @_ZNSt6vectorIfSaIfEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #6
  call void @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #6
  ret void

310:                                              ; preds = %187, %303, %267, %278, %234, %.split195.us, %.split.us
  %.pn165.pn = phi { ptr, i32 } [ %163, %.split195.us ], [ %162, %.split.us ], [ %304, %303 ], [ %188, %187 ], [ %235, %234 ], [ %268, %267 ], [ %279, %278 ]
  call void @_ZNSt6vectorIfSaIfEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #6
  br label %311

311:                                              ; preds = %310, %28
  %.pn168.pn = phi { ptr, i32 } [ %.pn168, %28 ], [ %.pn165.pn, %310 ]
  call void @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #6
  resume { ptr, i32 } %.pn168.pn
}

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSaIP16CornerDescriptorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEC2EmRKS2_(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #4

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #4

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8), i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt5flushIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #4

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIP16CornerDescriptorED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 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 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 = { inlinehint 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 #5 = { "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 }

!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 = distinct !{!5, !6}
!6 = !{!"llvm.loop.mustprogress"}
!7 = !{!8, !8, i64 0}
!8 = !{!"any pointer", !9, i64 0}
!9 = !{!"omnipotent char", !10, i64 0}
!10 = !{!"Simple C++ TBAA"}
!11 = !{!12, !8, i64 16}
!12 = !{!"_ZTS12ImageContent", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !8, i64 16, !8, i64 24, !8, i64 32, !8, i64 40, !8, i64 48, !8, i64 56, !8, i64 64, !8, i64 72}
!13 = !{!"int", !9, i64 0}
!14 = !{!15, !15, i64 0}
!15 = !{!"float", !9, i64 0}
!16 = distinct !{!16, !6}
!17 = distinct !{!17, !6}
!18 = distinct !{!18, !6}
!19 = distinct !{!19, !6}
!20 = distinct !{!20, !6}
!21 = distinct !{!21, !6}
!22 = distinct !{!22, !6}
!23 = distinct !{!23, !6}
!24 = distinct !{!24, !6}
!25 = distinct !{!25, !6}
!26 = distinct !{!26, !6}


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