; LLVM IR from ox-vgg/vise :: src/search_engine/relja_retrival/external/KMCode_relja/descriptor/CornerDetecto_12e69246 (15d8adff)

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

%"class.std::vector.16" = type { %"struct.std::_Vector_base.17" }
%"struct.std::_Vector_base.17" = 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" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = 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" = type { i8 }
%"class.std::vector.11" = type { %"struct.std::_Vector_base.12" }
%"struct.std::_Vector_base.12" = type { %"struct.std::_Vector_base<ImageContent *, std::allocator<ImageContent *>>::_Vector_impl" }
%"struct.std::_Vector_base<ImageContent *, std::allocator<ImageContent *>>::_Vector_impl" = type { %"struct.std::_Vector_base<ImageContent *, std::allocator<ImageContent *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ImageContent *, std::allocator<ImageContent *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.5" = type { %"struct.std::_Vector_base.6" }
%"struct.std::_Vector_base.6" = 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.10" = type { ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%class.ImageContent = type { i32, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt4fabsf(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)) #5 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN16CornerDescriptorC2Effff(ptr noundef nonnull align 8 dereferenceable(116), float noundef, float noundef, float noundef, float noundef) unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN16CornerDescriptor7setTypeEi(ptr noundef nonnull align 8 dereferenceable(116), i32 noundef) #2 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_Z9getLapMaxSt6vectorIP12ImageContentSaIS1_EES_IfSaIfEEjjjffRf(ptr noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef, float noundef, float noundef, ptr noundef nonnull align 4 dereferenceable(4)) #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z10invSqrRootRfS_S_S_S_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) #5

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

66:                                               ; preds = %76, %9
  %67 = load i32, ptr %27, align 4, !tbaa !11
  %68 = zext i32 %67 to i64
  %69 = call noundef i64 @_ZNKSt6vectorIP12ImageContentSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #6
  %70 = sub i64 %69, 1
  %71 = icmp ult i64 %68, %70
  br i1 %71, label %73, label %72

72:                                               ; preds = %66
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #6
  br label %88

73:                                               ; preds = %66
  call void @llvm.lifetime.start.p0(i64 24, ptr %28) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #6
  call void @_ZNSaIP16CornerDescriptorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #6
  invoke void @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEC2EmRKS2_(ptr noundef nonnull align 8 dereferenceable(24) %28, i64 noundef 0, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %74 unwind label %79

74:                                               ; preds = %73
  invoke void @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EE9push_backEOS3_(ptr noundef nonnull align 8 dereferenceable(24) %26, ptr noundef nonnull align 8 dereferenceable(24) %28)
          to label %75 unwind label %83

75:                                               ; preds = %74
  call void @_ZNSt6vectorIP16CornerDescriptorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #6
  call void @_ZNSt15__new_allocatorIP16CornerDescriptorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %28) #6
  br label %76

76:                                               ; preds = %75
  %77 = load i32, ptr %27, align 4, !tbaa !11
  %78 = add i32 %77, 1
  store i32 %78, ptr %27, align 4, !tbaa !11
  br label %66, !llvm.loop !13

79:                                               ; preds = %73
  %80 = landingpad { ptr, i32 }
          cleanup
  %81 = extractvalue { ptr, i32 } %80, 0
  store ptr %81, ptr %30, align 8
  %82 = extractvalue { ptr, i32 } %80, 1
  store i32 %82, ptr %31, align 4
  br label %87

83:                                               ; preds = %74
  %84 = landingpad { ptr, i32 }
          cleanup
  %85 = extractvalue { ptr, i32 } %84, 0
  store ptr %85, ptr %30, align 8
  %86 = extractvalue { ptr, i32 } %84, 1
  store i32 %86, ptr %31, align 4
  call void @_ZNSt6vectorIP16CornerDescriptorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #6
  br label %87

87:                                               ; preds = %83, %79
  call void @_ZNSt15__new_allocatorIP16CornerDescriptorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %28) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #6
  br label %853

88:                                               ; preds = %72
  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
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #6
  store float 0.000000e+00, ptr %40, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #6
  store float 0.000000e+00, ptr %41, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #6
  %89 = load float, ptr %17, align 4, !tbaa !9
  %90 = fpext float %89 to double
  %91 = fdiv double %90, 2.000000e+00
  %92 = fptrunc double %91 to float
  store float %92, ptr %42, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #6
  store i32 0, ptr %43, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #6
  store i32 0, ptr %44, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #6
  store i32 2, ptr %45, align 4, !tbaa !11
  br label %93

93:                                               ; preds = %598, %88
  %94 = load i32, ptr %45, align 4, !tbaa !11
  %95 = zext i32 %94 to i64
  %96 = call noundef i64 @_ZNKSt6vectorIP12ImageContentSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #6
  %97 = sub i64 %96, 1
  %98 = icmp ult i64 %95, %97
  br i1 %98, label %100, label %99

99:                                               ; preds = %93
  store i32 5, ptr %46, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #6
  br label %601

100:                                              ; preds = %93
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #6
  %101 = load i32, ptr %25, align 4, !tbaa !11
  store i32 %101, ptr %47, align 4, !tbaa !11
  br label %102

102:                                              ; preds = %593, %100
  %103 = load i32, ptr %47, align 4, !tbaa !11
  %104 = load i32, ptr %25, align 4, !tbaa !11
  %105 = add i32 %103, %104
  %106 = load i32, ptr %45, align 4, !tbaa !11
  %107 = zext i32 %106 to i64
  %108 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %107) #6
  %109 = load ptr, ptr %108, align 8, !tbaa !5
  %110 = invoke noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %109)
          to label %111 unwind label %114

111:                                              ; preds = %102
  %112 = icmp ult i32 %105, %110
  br i1 %112, label %118, label %113

113:                                              ; preds = %111
  store i32 8, ptr %46, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #6
  br label %597

114:                                              ; preds = %102
  %115 = landingpad { ptr, i32 }
          cleanup
  %116 = extractvalue { ptr, i32 } %115, 0
  store ptr %116, ptr %30, align 8
  %117 = extractvalue { ptr, i32 } %115, 1
  store i32 %117, ptr %31, align 4
  br label %596

118:                                              ; preds = %111
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #6
  %119 = load i32, ptr %25, align 4, !tbaa !11
  store i32 %119, ptr %48, align 4, !tbaa !11
  br label %120

120:                                              ; preds = %588, %118
  %121 = load i32, ptr %48, align 4, !tbaa !11
  %122 = load i32, ptr %25, align 4, !tbaa !11
  %123 = add i32 %121, %122
  %124 = load i32, ptr %45, align 4, !tbaa !11
  %125 = zext i32 %124 to i64
  %126 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %125) #6
  %127 = load ptr, ptr %126, align 8, !tbaa !5
  %128 = invoke noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %127)
          to label %129 unwind label %132

129:                                              ; preds = %120
  %130 = icmp ult i32 %123, %128
  br i1 %130, label %136, label %131

131:                                              ; preds = %129
  store i32 11, ptr %46, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #6
  br label %592

132:                                              ; preds = %578, %575, %555, %512, %506, %503, %500, %496, %490, %480, %450, %120
  %133 = landingpad { ptr, i32 }
          cleanup
  %134 = extractvalue { ptr, i32 } %133, 0
  store ptr %134, ptr %30, align 8
  %135 = extractvalue { ptr, i32 } %133, 1
  store i32 %135, ptr %31, align 4
  br label %591

136:                                              ; preds = %129
  %137 = load i32, ptr %45, align 4, !tbaa !11
  %138 = zext i32 %137 to i64
  %139 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %138) #6
  %140 = load ptr, ptr %139, align 8, !tbaa !5
  %141 = getelementptr inbounds %class.ImageContent, ptr %140, i32 0, i32 4
  %142 = load ptr, ptr %141, align 8, !tbaa !15
  %143 = load i32, ptr %47, align 4, !tbaa !11
  %144 = zext i32 %143 to i64
  %145 = getelementptr inbounds ptr, ptr %142, i64 %144
  %146 = load ptr, ptr %145, align 8, !tbaa !5
  %147 = load i32, ptr %48, align 4, !tbaa !11
  %148 = zext i32 %147 to i64
  %149 = getelementptr inbounds float, ptr %146, i64 %148
  %150 = load float, ptr %149, align 4, !tbaa !9
  store float %150, ptr %21, align 4, !tbaa !9
  %151 = load float, ptr %21, align 4, !tbaa !9
  %152 = load i32, ptr %45, align 4, !tbaa !11
  %153 = zext i32 %152 to i64
  %154 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %153) #6
  %155 = load ptr, ptr %154, align 8, !tbaa !5
  %156 = getelementptr inbounds %class.ImageContent, ptr %155, i32 0, i32 4
  %157 = load ptr, ptr %156, align 8, !tbaa !15
  %158 = load i32, ptr %47, align 4, !tbaa !11
  %159 = sub i32 %158, 1
  %160 = zext i32 %159 to i64
  %161 = getelementptr inbounds ptr, ptr %157, i64 %160
  %162 = load ptr, ptr %161, align 8, !tbaa !5
  %163 = load i32, ptr %48, align 4, !tbaa !11
  %164 = sub i32 %163, 1
  %165 = zext i32 %164 to i64
  %166 = getelementptr inbounds float, ptr %162, i64 %165
  %167 = load float, ptr %166, align 4, !tbaa !9
  %168 = fcmp ogt float %151, %167
  br i1 %168, label %169, label %587

169:                                              ; preds = %136
  %170 = load float, ptr %21, align 4, !tbaa !9
  %171 = load i32, ptr %45, align 4, !tbaa !11
  %172 = zext i32 %171 to i64
  %173 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %172) #6
  %174 = load ptr, ptr %173, align 8, !tbaa !5
  %175 = getelementptr inbounds %class.ImageContent, ptr %174, i32 0, i32 4
  %176 = load ptr, ptr %175, align 8, !tbaa !15
  %177 = load i32, ptr %47, align 4, !tbaa !11
  %178 = sub i32 %177, 1
  %179 = zext i32 %178 to i64
  %180 = getelementptr inbounds ptr, ptr %176, i64 %179
  %181 = load ptr, ptr %180, align 8, !tbaa !5
  %182 = load i32, ptr %48, align 4, !tbaa !11
  %183 = zext i32 %182 to i64
  %184 = getelementptr inbounds float, ptr %181, i64 %183
  %185 = load float, ptr %184, align 4, !tbaa !9
  %186 = fcmp ogt float %170, %185
  br i1 %186, label %187, label %587

187:                                              ; preds = %169
  %188 = load float, ptr %21, align 4, !tbaa !9
  %189 = load i32, ptr %45, align 4, !tbaa !11
  %190 = zext i32 %189 to i64
  %191 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %190) #6
  %192 = load ptr, ptr %191, align 8, !tbaa !5
  %193 = getelementptr inbounds %class.ImageContent, ptr %192, i32 0, i32 4
  %194 = load ptr, ptr %193, align 8, !tbaa !15
  %195 = load i32, ptr %47, align 4, !tbaa !11
  %196 = sub i32 %195, 1
  %197 = zext i32 %196 to i64
  %198 = getelementptr inbounds ptr, ptr %194, i64 %197
  %199 = load ptr, ptr %198, align 8, !tbaa !5
  %200 = load i32, ptr %48, align 4, !tbaa !11
  %201 = add i32 %200, 1
  %202 = zext i32 %201 to i64
  %203 = getelementptr inbounds float, ptr %199, i64 %202
  %204 = load float, ptr %203, align 4, !tbaa !9
  %205 = fcmp ogt float %188, %204
  br i1 %205, label %206, label %587

206:                                              ; preds = %187
  %207 = load float, ptr %21, align 4, !tbaa !9
  %208 = load i32, ptr %45, align 4, !tbaa !11
  %209 = zext i32 %208 to i64
  %210 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %209) #6
  %211 = load ptr, ptr %210, align 8, !tbaa !5
  %212 = getelementptr inbounds %class.ImageContent, ptr %211, i32 0, i32 4
  %213 = load ptr, ptr %212, align 8, !tbaa !15
  %214 = load i32, ptr %47, align 4, !tbaa !11
  %215 = zext i32 %214 to i64
  %216 = getelementptr inbounds ptr, ptr %213, i64 %215
  %217 = load ptr, ptr %216, align 8, !tbaa !5
  %218 = load i32, ptr %48, align 4, !tbaa !11
  %219 = sub i32 %218, 1
  %220 = zext i32 %219 to i64
  %221 = getelementptr inbounds float, ptr %217, i64 %220
  %222 = load float, ptr %221, align 4, !tbaa !9
  %223 = fcmp ogt float %207, %222
  br i1 %223, label %224, label %587

224:                                              ; preds = %206
  %225 = load float, ptr %21, align 4, !tbaa !9
  %226 = load i32, ptr %45, align 4, !tbaa !11
  %227 = zext i32 %226 to i64
  %228 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %227) #6
  %229 = load ptr, ptr %228, align 8, !tbaa !5
  %230 = getelementptr inbounds %class.ImageContent, ptr %229, i32 0, i32 4
  %231 = load ptr, ptr %230, align 8, !tbaa !15
  %232 = load i32, ptr %47, align 4, !tbaa !11
  %233 = zext i32 %232 to i64
  %234 = getelementptr inbounds ptr, ptr %231, i64 %233
  %235 = load ptr, ptr %234, align 8, !tbaa !5
  %236 = load i32, ptr %48, align 4, !tbaa !11
  %237 = add i32 %236, 1
  %238 = zext i32 %237 to i64
  %239 = getelementptr inbounds float, ptr %235, i64 %238
  %240 = load float, ptr %239, align 4, !tbaa !9
  %241 = fcmp ogt float %225, %240
  br i1 %241, label %242, label %587

242:                                              ; preds = %224
  %243 = load float, ptr %21, align 4, !tbaa !9
  %244 = load i32, ptr %45, align 4, !tbaa !11
  %245 = zext i32 %244 to i64
  %246 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %245) #6
  %247 = load ptr, ptr %246, align 8, !tbaa !5
  %248 = getelementptr inbounds %class.ImageContent, ptr %247, i32 0, i32 4
  %249 = load ptr, ptr %248, align 8, !tbaa !15
  %250 = load i32, ptr %47, align 4, !tbaa !11
  %251 = add i32 %250, 1
  %252 = zext i32 %251 to i64
  %253 = getelementptr inbounds ptr, ptr %249, i64 %252
  %254 = load ptr, ptr %253, align 8, !tbaa !5
  %255 = load i32, ptr %48, align 4, !tbaa !11
  %256 = sub i32 %255, 1
  %257 = zext i32 %256 to i64
  %258 = getelementptr inbounds float, ptr %254, i64 %257
  %259 = load float, ptr %258, align 4, !tbaa !9
  %260 = fcmp ogt float %243, %259
  br i1 %260, label %261, label %587

261:                                              ; preds = %242
  %262 = load float, ptr %21, align 4, !tbaa !9
  %263 = load i32, ptr %45, align 4, !tbaa !11
  %264 = zext i32 %263 to i64
  %265 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %264) #6
  %266 = load ptr, ptr %265, align 8, !tbaa !5
  %267 = getelementptr inbounds %class.ImageContent, ptr %266, i32 0, i32 4
  %268 = load ptr, ptr %267, align 8, !tbaa !15
  %269 = load i32, ptr %47, align 4, !tbaa !11
  %270 = add i32 %269, 1
  %271 = zext i32 %270 to i64
  %272 = getelementptr inbounds ptr, ptr %268, i64 %271
  %273 = load ptr, ptr %272, align 8, !tbaa !5
  %274 = load i32, ptr %48, align 4, !tbaa !11
  %275 = zext i32 %274 to i64
  %276 = getelementptr inbounds float, ptr %273, i64 %275
  %277 = load float, ptr %276, align 4, !tbaa !9
  %278 = fcmp ogt float %262, %277
  br i1 %278, label %279, label %587

279:                                              ; preds = %261
  %280 = load float, ptr %21, align 4, !tbaa !9
  %281 = load i32, ptr %45, align 4, !tbaa !11
  %282 = zext i32 %281 to i64
  %283 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %282) #6
  %284 = load ptr, ptr %283, align 8, !tbaa !5
  %285 = getelementptr inbounds %class.ImageContent, ptr %284, i32 0, i32 4
  %286 = load ptr, ptr %285, align 8, !tbaa !15
  %287 = load i32, ptr %47, align 4, !tbaa !11
  %288 = add i32 %287, 1
  %289 = zext i32 %288 to i64
  %290 = getelementptr inbounds ptr, ptr %286, i64 %289
  %291 = load ptr, ptr %290, align 8, !tbaa !5
  %292 = load i32, ptr %48, align 4, !tbaa !11
  %293 = add i32 %292, 1
  %294 = zext i32 %293 to i64
  %295 = getelementptr inbounds float, ptr %291, i64 %294
  %296 = load float, ptr %295, align 4, !tbaa !9
  %297 = fcmp ogt float %280, %296
  br i1 %297, label %298, label %587

298:                                              ; preds = %279
  %299 = load i32, ptr %45, align 4, !tbaa !11
  %300 = zext i32 %299 to i64
  %301 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %300) #6
  %302 = load ptr, ptr %301, align 8, !tbaa !5
  %303 = getelementptr inbounds %class.ImageContent, ptr %302, i32 0, i32 4
  %304 = load ptr, ptr %303, align 8, !tbaa !15
  %305 = load i32, ptr %47, align 4, !tbaa !11
  %306 = sub i32 %305, 1
  %307 = zext i32 %306 to i64
  %308 = getelementptr inbounds ptr, ptr %304, i64 %307
  %309 = load ptr, ptr %308, align 8, !tbaa !5
  %310 = load i32, ptr %48, align 4, !tbaa !11
  %311 = sub i32 %310, 1
  %312 = zext i32 %311 to i64
  %313 = getelementptr inbounds float, ptr %309, i64 %312
  %314 = load float, ptr %313, align 4, !tbaa !9
  %315 = load float, ptr %42, align 4, !tbaa !9
  %316 = fcmp ogt float %314, %315
  br i1 %316, label %317, label %587

317:                                              ; preds = %298
  %318 = load i32, ptr %45, align 4, !tbaa !11
  %319 = zext i32 %318 to i64
  %320 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %319) #6
  %321 = load ptr, ptr %320, align 8, !tbaa !5
  %322 = getelementptr inbounds %class.ImageContent, ptr %321, i32 0, i32 4
  %323 = load ptr, ptr %322, align 8, !tbaa !15
  %324 = load i32, ptr %47, align 4, !tbaa !11
  %325 = sub i32 %324, 1
  %326 = zext i32 %325 to i64
  %327 = getelementptr inbounds ptr, ptr %323, i64 %326
  %328 = load ptr, ptr %327, align 8, !tbaa !5
  %329 = load i32, ptr %48, align 4, !tbaa !11
  %330 = zext i32 %329 to i64
  %331 = getelementptr inbounds float, ptr %328, i64 %330
  %332 = load float, ptr %331, align 4, !tbaa !9
  %333 = load float, ptr %42, align 4, !tbaa !9
  %334 = fcmp ogt float %332, %333
  br i1 %334, label %335, label %587

335:                                              ; preds = %317
  %336 = load i32, ptr %45, align 4, !tbaa !11
  %337 = zext i32 %336 to i64
  %338 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %337) #6
  %339 = load ptr, ptr %338, align 8, !tbaa !5
  %340 = getelementptr inbounds %class.ImageContent, ptr %339, i32 0, i32 4
  %341 = load ptr, ptr %340, align 8, !tbaa !15
  %342 = load i32, ptr %47, align 4, !tbaa !11
  %343 = sub i32 %342, 1
  %344 = zext i32 %343 to i64
  %345 = getelementptr inbounds ptr, ptr %341, i64 %344
  %346 = load ptr, ptr %345, align 8, !tbaa !5
  %347 = load i32, ptr %48, align 4, !tbaa !11
  %348 = add i32 %347, 1
  %349 = zext i32 %348 to i64
  %350 = getelementptr inbounds float, ptr %346, i64 %349
  %351 = load float, ptr %350, align 4, !tbaa !9
  %352 = load float, ptr %42, align 4, !tbaa !9
  %353 = fcmp ogt float %351, %352
  br i1 %353, label %354, label %587

354:                                              ; preds = %335
  %355 = load i32, ptr %45, align 4, !tbaa !11
  %356 = zext i32 %355 to i64
  %357 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %356) #6
  %358 = load ptr, ptr %357, align 8, !tbaa !5
  %359 = getelementptr inbounds %class.ImageContent, ptr %358, i32 0, i32 4
  %360 = load ptr, ptr %359, align 8, !tbaa !15
  %361 = load i32, ptr %47, align 4, !tbaa !11
  %362 = zext i32 %361 to i64
  %363 = getelementptr inbounds ptr, ptr %360, i64 %362
  %364 = load ptr, ptr %363, align 8, !tbaa !5
  %365 = load i32, ptr %48, align 4, !tbaa !11
  %366 = sub i32 %365, 1
  %367 = zext i32 %366 to i64
  %368 = getelementptr inbounds float, ptr %364, i64 %367
  %369 = load float, ptr %368, align 4, !tbaa !9
  %370 = load float, ptr %42, align 4, !tbaa !9
  %371 = fcmp ogt float %369, %370
  br i1 %371, label %372, label %587

372:                                              ; preds = %354
  %373 = load i32, ptr %45, align 4, !tbaa !11
  %374 = zext i32 %373 to i64
  %375 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %374) #6
  %376 = load ptr, ptr %375, align 8, !tbaa !5
  %377 = getelementptr inbounds %class.ImageContent, ptr %376, i32 0, i32 4
  %378 = load ptr, ptr %377, align 8, !tbaa !15
  %379 = load i32, ptr %47, align 4, !tbaa !11
  %380 = zext i32 %379 to i64
  %381 = getelementptr inbounds ptr, ptr %378, i64 %380
  %382 = load ptr, ptr %381, align 8, !tbaa !5
  %383 = load i32, ptr %48, align 4, !tbaa !11
  %384 = add i32 %383, 1
  %385 = zext i32 %384 to i64
  %386 = getelementptr inbounds float, ptr %382, i64 %385
  %387 = load float, ptr %386, align 4, !tbaa !9
  %388 = load float, ptr %42, align 4, !tbaa !9
  %389 = fcmp ogt float %387, %388
  br i1 %389, label %390, label %587

390:                                              ; preds = %372
  %391 = load i32, ptr %45, align 4, !tbaa !11
  %392 = zext i32 %391 to i64
  %393 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %392) #6
  %394 = load ptr, ptr %393, align 8, !tbaa !5
  %395 = getelementptr inbounds %class.ImageContent, ptr %394, i32 0, i32 4
  %396 = load ptr, ptr %395, align 8, !tbaa !15
  %397 = load i32, ptr %47, align 4, !tbaa !11
  %398 = add i32 %397, 1
  %399 = zext i32 %398 to i64
  %400 = getelementptr inbounds ptr, ptr %396, i64 %399
  %401 = load ptr, ptr %400, align 8, !tbaa !5
  %402 = load i32, ptr %48, align 4, !tbaa !11
  %403 = sub i32 %402, 1
  %404 = zext i32 %403 to i64
  %405 = getelementptr inbounds float, ptr %401, i64 %404
  %406 = load float, ptr %405, align 4, !tbaa !9
  %407 = load float, ptr %42, align 4, !tbaa !9
  %408 = fcmp ogt float %406, %407
  br i1 %408, label %409, label %587

409:                                              ; preds = %390
  %410 = load i32, ptr %45, align 4, !tbaa !11
  %411 = zext i32 %410 to i64
  %412 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %411) #6
  %413 = load ptr, ptr %412, align 8, !tbaa !5
  %414 = getelementptr inbounds %class.ImageContent, ptr %413, i32 0, i32 4
  %415 = load ptr, ptr %414, align 8, !tbaa !15
  %416 = load i32, ptr %47, align 4, !tbaa !11
  %417 = add i32 %416, 1
  %418 = zext i32 %417 to i64
  %419 = getelementptr inbounds ptr, ptr %415, i64 %418
  %420 = load ptr, ptr %419, align 8, !tbaa !5
  %421 = load i32, ptr %48, align 4, !tbaa !11
  %422 = zext i32 %421 to i64
  %423 = getelementptr inbounds float, ptr %420, i64 %422
  %424 = load float, ptr %423, align 4, !tbaa !9
  %425 = load float, ptr %42, align 4, !tbaa !9
  %426 = fcmp ogt float %424, %425
  br i1 %426, label %427, label %587

427:                                              ; preds = %409
  %428 = load i32, ptr %45, align 4, !tbaa !11
  %429 = zext i32 %428 to i64
  %430 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %429) #6
  %431 = load ptr, ptr %430, align 8, !tbaa !5
  %432 = getelementptr inbounds %class.ImageContent, ptr %431, i32 0, i32 4
  %433 = load ptr, ptr %432, align 8, !tbaa !15
  %434 = load i32, ptr %47, align 4, !tbaa !11
  %435 = add i32 %434, 1
  %436 = zext i32 %435 to i64
  %437 = getelementptr inbounds ptr, ptr %433, i64 %436
  %438 = load ptr, ptr %437, align 8, !tbaa !5
  %439 = load i32, ptr %48, align 4, !tbaa !11
  %440 = add i32 %439, 1
  %441 = zext i32 %440 to i64
  %442 = getelementptr inbounds float, ptr %438, i64 %441
  %443 = load float, ptr %442, align 4, !tbaa !9
  %444 = load float, ptr %42, align 4, !tbaa !9
  %445 = fcmp ogt float %443, %444
  br i1 %445, label %446, label %587

446:                                              ; preds = %427
  %447 = load float, ptr %21, align 4, !tbaa !9
  %448 = load float, ptr %17, align 4, !tbaa !9
  %449 = fcmp ogt float %447, %448
  br i1 %449, label %450, label %587

450:                                              ; preds = %446
  %451 = load i32, ptr %48, align 4, !tbaa !11
  %452 = uitofp i32 %451 to float
  %453 = load float, ptr %40, align 4, !tbaa !9
  %454 = fadd float %452, %453
  store float %454, ptr %37, align 4, !tbaa !9
  %455 = load i32, ptr %47, align 4, !tbaa !11
  %456 = uitofp i32 %455 to float
  %457 = load float, ptr %41, align 4, !tbaa !9
  %458 = fadd float %456, %457
  store float %458, ptr %38, align 4, !tbaa !9
  %459 = load i32, ptr %45, align 4, !tbaa !11
  %460 = zext i32 %459 to i64
  %461 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %460) #6
  %462 = load float, ptr %461, align 4, !tbaa !9
  %463 = load float, ptr %37, align 4, !tbaa !9
  %464 = fmul float %462, %463
  store float %464, ptr %22, align 4, !tbaa !9
  %465 = load i32, ptr %45, align 4, !tbaa !11
  %466 = zext i32 %465 to i64
  %467 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %466) #6
  %468 = load float, ptr %467, align 4, !tbaa !9
  %469 = load float, ptr %38, align 4, !tbaa !9
  %470 = fmul float %468, %469
  store float %470, ptr %23, align 4, !tbaa !9
  invoke void @_ZNSt6vectorIP12ImageContentSaIS1_EEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %49, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %471 unwind label %132

471:                                              ; preds = %450
  invoke void @_ZNSt6vectorIfSaIfEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %50, ptr noundef nonnull align 8 dereferenceable(24) %5)
          to label %472 unwind label %562

472:                                              ; preds = %471
  %473 = load i32, ptr %45, align 4, !tbaa !11
  %474 = load float, ptr %22, align 4, !tbaa !9
  %475 = load float, ptr %23, align 4, !tbaa !9
  %476 = invoke noundef i32 @_Z9getLapMaxSt6vectorIP12ImageContentSaIS1_EES_IfSaIfEEjjjffRf(ptr noundef %49, ptr noundef %50, i32 noundef %473, i32 noundef 1, i32 noundef 7, float noundef %474, float noundef %475, ptr noundef nonnull align 4 dereferenceable(4) %39)
          to label %477 unwind label %566

477:                                              ; preds = %472
  store i32 %476, ptr %24, align 4, !tbaa !11
  call void @_ZNSt6vectorIfSaIfEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %50) #6
  call void @_ZNSt6vectorIP12ImageContentSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %49) #6
  %478 = load i32, ptr %24, align 4, !tbaa !11
  %479 = icmp sgt i32 %478, 0
  br i1 %479, label %480, label %583

480:                                              ; preds = %477
  %481 = load i32, ptr %44, align 4, !tbaa !11
  %482 = add nsw i32 %481, 1
  store i32 %482, ptr %44, align 4, !tbaa !11
  %483 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 120) #7
          to label %484 unwind label %132

484:                                              ; preds = %480
  %485 = load float, ptr %22, align 4, !tbaa !9
  %486 = load float, ptr %23, align 4, !tbaa !9
  %487 = load float, ptr %21, align 4, !tbaa !9
  %488 = load float, ptr %39, align 4, !tbaa !9
  %489 = fmul float 3.000000e+00, %488
  invoke void @_ZN16CornerDescriptorC2Effff(ptr noundef nonnull align 8 dereferenceable(116) %483, float noundef %485, float noundef %486, float noundef %487, float noundef %489)
          to label %490 unwind label %571

490:                                              ; preds = %484
  store ptr %483, ptr %19, align 8, !tbaa !5
  %491 = load ptr, ptr %19, align 8, !tbaa !5
  %492 = load i32, ptr %45, align 4, !tbaa !11
  %493 = zext i32 %492 to i64
  %494 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %493) #6
  %495 = load float, ptr %494, align 4, !tbaa !9
  invoke void @_ZN6Corner9setDerSigEf(ptr noundef nonnull align 4 dereferenceable(88) %491, float noundef %495)
          to label %496 unwind label %132

496:                                              ; preds = %490
  %497 = load ptr, ptr %19, align 8, !tbaa !5
  %498 = load float, ptr %39, align 4, !tbaa !9
  %499 = fmul float 2.000000e+00, %498
  invoke void @_ZN6Corner9setIntSigEf(ptr noundef nonnull align 4 dereferenceable(88) %497, float noundef %499)
          to label %500 unwind label %132

500:                                              ; preds = %496
  %501 = load ptr, ptr %19, align 8, !tbaa !5
  %502 = load i32, ptr %45, align 4, !tbaa !11
  invoke void @_ZN6Corner9setDerLevEi(ptr noundef nonnull align 4 dereferenceable(88) %501, i32 noundef %502)
          to label %503 unwind label %132

503:                                              ; preds = %500
  %504 = load ptr, ptr %19, align 8, !tbaa !5
  %505 = load i32, ptr %24, align 4, !tbaa !11
  invoke void @_ZN6Corner9setIntLevEi(ptr noundef nonnull align 4 dereferenceable(88) %504, i32 noundef %505)
          to label %506 unwind label %132

506:                                              ; preds = %503
  %507 = load ptr, ptr %19, align 8, !tbaa !5
  %508 = load i32, ptr %18, align 4, !tbaa !11
  invoke void @_ZN16CornerDescriptor7setTypeEi(ptr noundef nonnull align 8 dereferenceable(116) %507, i32 noundef %508)
          to label %509 unwind label %132

509:                                              ; preds = %506
  %510 = load i32, ptr %18, align 4, !tbaa !11
  %511 = icmp eq i32 %510, 1
  br i1 %511, label %512, label %575

512:                                              ; preds = %509
  %513 = load i32, ptr %45, align 4, !tbaa !11
  %514 = zext i32 %513 to i64
  %515 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %514) #6
  %516 = load ptr, ptr %515, align 8, !tbaa !5
  %517 = getelementptr inbounds %class.ImageContent, ptr %516, i32 0, i32 4
  %518 = load ptr, ptr %517, align 8, !tbaa !15
  %519 = load i32, ptr %47, align 4, !tbaa !11
  %520 = zext i32 %519 to i64
  %521 = getelementptr inbounds ptr, ptr %518, i64 %520
  %522 = load ptr, ptr %521, align 8, !tbaa !5
  %523 = load i32, ptr %48, align 4, !tbaa !11
  %524 = zext i32 %523 to i64
  %525 = getelementptr inbounds float, ptr %522, i64 %524
  %526 = load float, ptr %525, align 4, !tbaa !9
  store float %526, ptr %32, align 4, !tbaa !9
  %527 = load i32, ptr %45, align 4, !tbaa !11
  %528 = zext i32 %527 to i64
  %529 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %528) #6
  %530 = load ptr, ptr %529, align 8, !tbaa !5
  %531 = getelementptr inbounds %class.ImageContent, ptr %530, i32 0, i32 4
  %532 = load ptr, ptr %531, align 8, !tbaa !15
  %533 = load i32, ptr %47, align 4, !tbaa !11
  %534 = zext i32 %533 to i64
  %535 = getelementptr inbounds ptr, ptr %532, i64 %534
  %536 = load ptr, ptr %535, align 8, !tbaa !5
  %537 = load i32, ptr %48, align 4, !tbaa !11
  %538 = zext i32 %537 to i64
  %539 = getelementptr inbounds float, ptr %536, i64 %538
  %540 = load float, ptr %539, align 4, !tbaa !9
  store float %540, ptr %33, align 4, !tbaa !9
  %541 = load i32, ptr %45, align 4, !tbaa !11
  %542 = zext i32 %541 to i64
  %543 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef %542) #6
  %544 = load ptr, ptr %543, align 8, !tbaa !5
  %545 = getelementptr inbounds %class.ImageContent, ptr %544, i32 0, i32 4
  %546 = load ptr, ptr %545, align 8, !tbaa !15
  %547 = load i32, ptr %47, align 4, !tbaa !11
  %548 = zext i32 %547 to i64
  %549 = getelementptr inbounds ptr, ptr %546, i64 %548
  %550 = load ptr, ptr %549, align 8, !tbaa !5
  %551 = load i32, ptr %48, align 4, !tbaa !11
  %552 = zext i32 %551 to i64
  %553 = getelementptr inbounds float, ptr %550, i64 %552
  %554 = load float, ptr %553, align 4, !tbaa !9
  store float %554, ptr %34, align 4, !tbaa !9
  invoke void @_Z10invSqrRootRfS_S_S_S_(ptr noundef nonnull align 4 dereferenceable(4) %32, ptr noundef nonnull align 4 dereferenceable(4) %33, ptr noundef nonnull align 4 dereferenceable(4) %34, ptr noundef nonnull align 4 dereferenceable(4) %36, ptr noundef nonnull align 4 dereferenceable(4) %35)
          to label %555 unwind label %132

555:                                              ; preds = %512
  %556 = load ptr, ptr %19, align 8, !tbaa !5
  %557 = load float, ptr %32, align 4, !tbaa !9
  %558 = load float, ptr %33, align 4, !tbaa !9
  %559 = load float, ptr %33, align 4, !tbaa !9
  %560 = load float, ptr %34, align 4, !tbaa !9
  invoke void @_ZN6Corner5setMiEffff(ptr noundef nonnull align 4 dereferenceable(88) %556, float noundef %557, float noundef %558, float noundef %559, float noundef %560)
          to label %561 unwind label %132

561:                                              ; preds = %555
  br label %578

562:                                              ; preds = %471
  %563 = landingpad { ptr, i32 }
          cleanup
  %564 = extractvalue { ptr, i32 } %563, 0
  store ptr %564, ptr %30, align 8
  %565 = extractvalue { ptr, i32 } %563, 1
  store i32 %565, ptr %31, align 4
  br label %570

566:                                              ; preds = %472
  %567 = landingpad { ptr, i32 }
          cleanup
  %568 = extractvalue { ptr, i32 } %567, 0
  store ptr %568, ptr %30, align 8
  %569 = extractvalue { ptr, i32 } %567, 1
  store i32 %569, ptr %31, align 4
  call void @_ZNSt6vectorIfSaIfEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %50) #6
  br label %570

570:                                              ; preds = %566, %562
  call void @_ZNSt6vectorIP12ImageContentSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %49) #6
  br label %591

571:                                              ; preds = %484
  %572 = landingpad { ptr, i32 }
          cleanup
  %573 = extractvalue { ptr, i32 } %572, 0
  store ptr %573, ptr %30, align 8
  %574 = extractvalue { ptr, i32 } %572, 1
  store i32 %574, ptr %31, align 4
  call void @_ZdlPvm(ptr noundef %483, i64 noundef 120) #8
  br label %591

575:                                              ; preds = %509
  %576 = load ptr, ptr %19, align 8, !tbaa !5
  invoke void @_ZN6Corner5setMiEffff(ptr noundef nonnull align 4 dereferenceable(88) %576, float noundef 1.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 1.000000e+00)
          to label %577 unwind label %132

577:                                              ; preds = %575
  br label %578

578:                                              ; preds = %577, %561
  %579 = load i32, ptr %24, align 4, !tbaa !11
  %580 = sext i32 %579 to i64
  %581 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %580) #6
  invoke void @_ZNSt6vectorIP16CornerDescriptorSaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %581, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %582 unwind label %132

582:                                              ; preds = %578
  br label %586

583:                                              ; preds = %477
  %584 = load i32, ptr %43, align 4, !tbaa !11
  %585 = add nsw i32 %584, 1
  store i32 %585, ptr %43, align 4, !tbaa !11
  br label %586

586:                                              ; preds = %583, %582
  br label %587

587:                                              ; preds = %586, %446, %427, %409, %390, %372, %354, %335, %317, %298, %279, %261, %242, %224, %206, %187, %169, %136
  br label %588

588:                                              ; preds = %587
  %589 = load i32, ptr %48, align 4, !tbaa !11
  %590 = add i32 %589, 1
  store i32 %590, ptr %48, align 4, !tbaa !11
  br label %120, !llvm.loop !17

591:                                              ; preds = %571, %570, %132
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #6
  br label %596

592:                                              ; preds = %131
  br label %593

593:                                              ; preds = %592
  %594 = load i32, ptr %47, align 4, !tbaa !11
  %595 = add i32 %594, 1
  store i32 %595, ptr %47, align 4, !tbaa !11
  br label %102, !llvm.loop !18

596:                                              ; preds = %591, %114
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #6
  br label %852

597:                                              ; preds = %113
  br label %598

598:                                              ; preds = %597
  %599 = load i32, ptr %45, align 4, !tbaa !11
  %600 = add i32 %599, 1
  store i32 %600, ptr %45, align 4, !tbaa !11
  br label %93, !llvm.loop !19

601:                                              ; preds = %99
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #6
  store i32 1, ptr %51, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #6
  store i32 0, ptr %52, align 4, !tbaa !11
  br label %602

602:                                              ; preds = %807, %601
  %603 = load i32, ptr %52, align 4, !tbaa !11
  %604 = zext i32 %603 to i64
  %605 = call noundef i64 @_ZNKSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %26) #6
  %606 = icmp ult i64 %604, %605
  br i1 %606, label %608, label %607

607:                                              ; preds = %602
  store i32 14, ptr %46, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #6
  br label %810

608:                                              ; preds = %602
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #6
  store i32 0, ptr %53, align 4, !tbaa !11
  br label %609

609:                                              ; preds = %803, %608
  %610 = load i32, ptr %53, align 4, !tbaa !11
  %611 = zext i32 %610 to i64
  %612 = load i32, ptr %52, align 4, !tbaa !11
  %613 = zext i32 %612 to i64
  %614 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %613) #6
  %615 = call noundef i64 @_ZNKSt6vectorIP16CornerDescriptorSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %614) #6
  %616 = icmp ult i64 %611, %615
  br i1 %616, label %618, label %617

617:                                              ; preds = %609
  store i32 17, ptr %46, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #6
  br label %806

618:                                              ; preds = %609
  store i32 1, ptr %51, align 4, !tbaa !11
  %619 = load i32, ptr %52, align 4, !tbaa !11
  %620 = zext i32 %619 to i64
  %621 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %620) #6
  %622 = load i32, ptr %53, align 4, !tbaa !11
  %623 = zext i32 %622 to i64
  %624 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %621, i64 noundef %623) #6
  %625 = load ptr, ptr %624, align 8, !tbaa !5
  store ptr %625, ptr %19, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #6
  %626 = load i32, ptr %52, align 4, !tbaa !11
  store i32 %626, ptr %54, align 4, !tbaa !11
  br label %627

627:                                              ; preds = %799, %618
  %628 = load i32, ptr %54, align 4, !tbaa !11
  %629 = load i32, ptr %52, align 4, !tbaa !11
  %630 = add i32 %629, 2
  %631 = icmp ult i32 %628, %630
  br i1 %631, label %632, label %640

632:                                              ; preds = %627
  %633 = load i32, ptr %54, align 4, !tbaa !11
  %634 = zext i32 %633 to i64
  %635 = call noundef i64 @_ZNKSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %26) #6
  %636 = icmp ult i64 %634, %635
  br i1 %636, label %637, label %640

637:                                              ; preds = %632
  %638 = load i32, ptr %51, align 4, !tbaa !11
  %639 = icmp ne i32 %638, 0
  br label %640

640:                                              ; preds = %637, %632, %627
  %641 = phi i1 [ false, %632 ], [ false, %627 ], [ %639, %637 ]
  br i1 %641, label %643, label %642

642:                                              ; preds = %640
  store i32 20, ptr %46, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #6
  br label %802

643:                                              ; preds = %640
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #6
  store i32 0, ptr %55, align 4, !tbaa !11
  br label %644

644:                                              ; preds = %794, %643
  %645 = load i32, ptr %55, align 4, !tbaa !11
  %646 = zext i32 %645 to i64
  %647 = load i32, ptr %54, align 4, !tbaa !11
  %648 = zext i32 %647 to i64
  %649 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %648) #6
  %650 = call noundef i64 @_ZNKSt6vectorIP16CornerDescriptorSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %649) #6
  %651 = icmp ult i64 %646, %650
  br i1 %651, label %652, label %655

652:                                              ; preds = %644
  %653 = load i32, ptr %51, align 4, !tbaa !11
  %654 = icmp ne i32 %653, 0
  br label %655

655:                                              ; preds = %652, %644
  %656 = phi i1 [ false, %644 ], [ %654, %652 ]
  br i1 %656, label %658, label %657

657:                                              ; preds = %655
  store i32 23, ptr %46, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #6
  br label %798

658:                                              ; preds = %655
  %659 = load ptr, ptr %19, align 8, !tbaa !5
  %660 = load i32, ptr %54, align 4, !tbaa !11
  %661 = zext i32 %660 to i64
  %662 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %661) #6
  %663 = load i32, ptr %55, align 4, !tbaa !11
  %664 = zext i32 %663 to i64
  %665 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %662, i64 noundef %664) #6
  %666 = load ptr, ptr %665, align 8, !tbaa !5
  %667 = icmp ne ptr %659, %666
  br i1 %667, label %668, label %793

668:                                              ; preds = %658
  %669 = load i32, ptr %54, align 4, !tbaa !11
  %670 = zext i32 %669 to i64
  %671 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %670) #6
  %672 = load i32, ptr %55, align 4, !tbaa !11
  %673 = zext i32 %672 to i64
  %674 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %671, i64 noundef %673) #6
  %675 = load ptr, ptr %674, align 8, !tbaa !5
  store ptr %675, ptr %20, align 8, !tbaa !5
  %676 = load ptr, ptr %19, align 8, !tbaa !5
  %677 = invoke noundef float @_ZNK6Corner4getXEv(ptr noundef nonnull align 4 dereferenceable(88) %676)
          to label %678 unwind label %749

678:                                              ; preds = %668
  %679 = load ptr, ptr %20, align 8, !tbaa !5
  %680 = invoke noundef float @_ZNK6Corner4getXEv(ptr noundef nonnull align 4 dereferenceable(88) %679)
          to label %681 unwind label %749

681:                                              ; preds = %678
  %682 = fsub float %677, %680
  %683 = invoke noundef float @_ZSt4fabsf(float noundef %682)
          to label %684 unwind label %749

684:                                              ; preds = %681
  %685 = fpext float %683 to double
  %686 = load i32, ptr %52, align 4, !tbaa !11
  %687 = zext i32 %686 to i64
  %688 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %687) #6
  %689 = load float, ptr %688, align 4, !tbaa !9
  %690 = fpext float %689 to double
  %691 = fmul double 3.000000e-01, %690
  %692 = fcmp olt double %685, %691
  br i1 %692, label %693, label %792

693:                                              ; preds = %684
  %694 = load ptr, ptr %19, align 8, !tbaa !5
  %695 = invoke noundef float @_ZNK6Corner4getYEv(ptr noundef nonnull align 4 dereferenceable(88) %694)
          to label %696 unwind label %749

696:                                              ; preds = %693
  %697 = load ptr, ptr %20, align 8, !tbaa !5
  %698 = invoke noundef float @_ZNK6Corner4getYEv(ptr noundef nonnull align 4 dereferenceable(88) %697)
          to label %699 unwind label %749

699:                                              ; preds = %696
  %700 = fsub float %695, %698
  %701 = invoke noundef float @_ZSt4fabsf(float noundef %700)
          to label %702 unwind label %749

702:                                              ; preds = %699
  %703 = fpext float %701 to double
  %704 = load i32, ptr %52, align 4, !tbaa !11
  %705 = zext i32 %704 to i64
  %706 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %705) #6
  %707 = load float, ptr %706, align 4, !tbaa !9
  %708 = fpext float %707 to double
  %709 = fmul double 3.000000e-01, %708
  %710 = fcmp olt double %703, %709
  br i1 %710, label %711, label %792

711:                                              ; preds = %702
  %712 = load ptr, ptr %19, align 8, !tbaa !5
  %713 = invoke noundef float @_ZNK6Corner13getCornernessEv(ptr noundef nonnull align 4 dereferenceable(88) %712)
          to label %714 unwind label %749

714:                                              ; preds = %711
  %715 = load ptr, ptr %20, align 8, !tbaa !5
  %716 = invoke noundef float @_ZNK6Corner13getCornernessEv(ptr noundef nonnull align 4 dereferenceable(88) %715)
          to label %717 unwind label %749

717:                                              ; preds = %714
  %718 = fcmp ogt float %713, %716
  br i1 %718, label %719, label %757

719:                                              ; preds = %717
  %720 = load i32, ptr %54, align 4, !tbaa !11
  %721 = zext i32 %720 to i64
  %722 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %721) #6
  %723 = load i32, ptr %55, align 4, !tbaa !11
  %724 = zext i32 %723 to i64
  %725 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %722, i64 noundef %724) #6
  %726 = load ptr, ptr %725, align 8, !tbaa !5
  %727 = icmp eq ptr %726, null
  br i1 %727, label %729, label %728

728:                                              ; preds = %719
  call void @_ZN16CornerDescriptorD2Ev(ptr noundef nonnull align 8 dereferenceable(116) %726) #6
  call void @_ZdlPvm(ptr noundef %726, i64 noundef 120) #8
  br label %729

729:                                              ; preds = %728, %719
  %730 = load i32, ptr %54, align 4, !tbaa !11
  %731 = zext i32 %730 to i64
  %732 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %731) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #6
  %733 = load i32, ptr %54, align 4, !tbaa !11
  %734 = zext i32 %733 to i64
  %735 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %734) #6
  %736 = call ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %735) #6
  %737 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %58, i32 0, i32 0
  store ptr %736, ptr %737, align 8
  %738 = load i32, ptr %55, align 4, !tbaa !11
  %739 = zext i32 %738 to i64
  %740 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPP16CornerDescriptorSt6vectorIS2_SaIS2_EEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %58, i64 noundef %739) #6
  %741 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %57, i32 0, i32 0
  store ptr %740, ptr %741, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKP16CornerDescriptorSt6vectorIS2_SaIS2_EEEC2IPS2_vEERKNS0_IT_S7_EE(ptr noundef nonnull align 8 dereferenceable(8) %56, ptr noundef nonnull align 8 dereferenceable(8) %57) #6
  %742 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.10", ptr %56, i32 0, i32 0
  %743 = load ptr, ptr %742, align 8
  %744 = invoke ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPKS1_S3_EE(ptr noundef nonnull align 8 dereferenceable(24) %732, ptr %743)
          to label %745 unwind label %753

745:                                              ; preds = %729
  %746 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %59, i32 0, i32 0
  store ptr %744, ptr %746, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #6
  %747 = load i32, ptr %55, align 4, !tbaa !11
  %748 = add i32 %747, -1
  store i32 %748, ptr %55, align 4, !tbaa !11
  br label %791

749:                                              ; preds = %714, %711, %699, %696, %693, %681, %678, %668
  %750 = landingpad { ptr, i32 }
          cleanup
  %751 = extractvalue { ptr, i32 } %750, 0
  store ptr %751, ptr %30, align 8
  %752 = extractvalue { ptr, i32 } %750, 1
  store i32 %752, ptr %31, align 4
  br label %797

753:                                              ; preds = %729
  %754 = landingpad { ptr, i32 }
          cleanup
  %755 = extractvalue { ptr, i32 } %754, 0
  store ptr %755, ptr %30, align 8
  %756 = extractvalue { ptr, i32 } %754, 1
  store i32 %756, ptr %31, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #6
  br label %797

757:                                              ; preds = %717
  %758 = load i32, ptr %52, align 4, !tbaa !11
  %759 = zext i32 %758 to i64
  %760 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %759) #6
  %761 = load i32, ptr %53, align 4, !tbaa !11
  %762 = zext i32 %761 to i64
  %763 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %760, i64 noundef %762) #6
  %764 = load ptr, ptr %763, align 8, !tbaa !5
  %765 = icmp eq ptr %764, null
  br i1 %765, label %767, label %766

766:                                              ; preds = %757
  call void @_ZN16CornerDescriptorD2Ev(ptr noundef nonnull align 8 dereferenceable(116) %764) #6
  call void @_ZdlPvm(ptr noundef %764, i64 noundef 120) #8
  br label %767

767:                                              ; preds = %766, %757
  %768 = load i32, ptr %52, align 4, !tbaa !11
  %769 = zext i32 %768 to i64
  %770 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %769) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #6
  %771 = load i32, ptr %52, align 4, !tbaa !11
  %772 = zext i32 %771 to i64
  %773 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %772) #6
  %774 = call ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %773) #6
  %775 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %62, i32 0, i32 0
  store ptr %774, ptr %775, align 8
  %776 = load i32, ptr %53, align 4, !tbaa !11
  %777 = zext i32 %776 to i64
  %778 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPP16CornerDescriptorSt6vectorIS2_SaIS2_EEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %62, i64 noundef %777) #6
  %779 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %61, i32 0, i32 0
  store ptr %778, ptr %779, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKP16CornerDescriptorSt6vectorIS2_SaIS2_EEEC2IPS2_vEERKNS0_IT_S7_EE(ptr noundef nonnull align 8 dereferenceable(8) %60, ptr noundef nonnull align 8 dereferenceable(8) %61) #6
  %780 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.10", ptr %60, i32 0, i32 0
  %781 = load ptr, ptr %780, align 8
  %782 = invoke ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPKS1_S3_EE(ptr noundef nonnull align 8 dereferenceable(24) %770, ptr %781)
          to label %783 unwind label %787

783:                                              ; preds = %767
  %784 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %63, i32 0, i32 0
  store ptr %782, ptr %784, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #6
  %785 = load i32, ptr %53, align 4, !tbaa !11
  %786 = add i32 %785, -1
  store i32 %786, ptr %53, align 4, !tbaa !11
  store i32 0, ptr %51, align 4, !tbaa !11
  br label %791

787:                                              ; preds = %767
  %788 = landingpad { ptr, i32 }
          cleanup
  %789 = extractvalue { ptr, i32 } %788, 0
  store ptr %789, ptr %30, align 8
  %790 = extractvalue { ptr, i32 } %788, 1
  store i32 %790, ptr %31, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #6
  br label %797

791:                                              ; preds = %783, %745
  br label %792

792:                                              ; preds = %791, %702, %684
  br label %793

793:                                              ; preds = %792, %658
  br label %794

794:                                              ; preds = %793
  %795 = load i32, ptr %55, align 4, !tbaa !11
  %796 = add i32 %795, 1
  store i32 %796, ptr %55, align 4, !tbaa !11
  br label %644, !llvm.loop !20

797:                                              ; preds = %787, %753, %749
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #6
  br label %851

798:                                              ; preds = %657
  br label %799

799:                                              ; preds = %798
  %800 = load i32, ptr %54, align 4, !tbaa !11
  %801 = add i32 %800, 1
  store i32 %801, ptr %54, align 4, !tbaa !11
  br label %627, !llvm.loop !21

802:                                              ; preds = %642
  br label %803

803:                                              ; preds = %802
  %804 = load i32, ptr %53, align 4, !tbaa !11
  %805 = add i32 %804, 1
  store i32 %805, ptr %53, align 4, !tbaa !11
  br label %609, !llvm.loop !22

806:                                              ; preds = %617
  br label %807

807:                                              ; preds = %806
  %808 = load i32, ptr %52, align 4, !tbaa !11
  %809 = add i32 %808, 1
  store i32 %809, ptr %52, align 4, !tbaa !11
  br label %602, !llvm.loop !23

810:                                              ; preds = %607
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #6
  store i32 0, ptr %64, align 4, !tbaa !11
  br label %811

811:                                              ; preds = %847, %810
  %812 = load i32, ptr %64, align 4, !tbaa !11
  %813 = zext i32 %812 to i64
  %814 = call noundef i64 @_ZNKSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %26) #6
  %815 = icmp ult i64 %813, %814
  br i1 %815, label %817, label %816

816:                                              ; preds = %811
  store i32 26, ptr %46, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #6
  br label %850

817:                                              ; preds = %811
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #6
  store i32 0, ptr %65, align 4, !tbaa !11
  br label %818

818:                                              ; preds = %836, %817
  %819 = load i32, ptr %65, align 4, !tbaa !11
  %820 = zext i32 %819 to i64
  %821 = load i32, ptr %64, align 4, !tbaa !11
  %822 = zext i32 %821 to i64
  %823 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %822) #6
  %824 = call noundef i64 @_ZNKSt6vectorIP16CornerDescriptorSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %823) #6
  %825 = icmp ult i64 %820, %824
  br i1 %825, label %827, label %826

826:                                              ; preds = %818
  store i32 29, ptr %46, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #6
  br label %843

827:                                              ; preds = %818
  %828 = load ptr, ptr %16, align 8, !tbaa !5
  %829 = load i32, ptr %64, align 4, !tbaa !11
  %830 = zext i32 %829 to i64
  %831 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %830) #6
  %832 = load i32, ptr %65, align 4, !tbaa !11
  %833 = zext i32 %832 to i64
  %834 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %831, i64 noundef %833) #6
  invoke void @_ZNSt6vectorIP16CornerDescriptorSaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %828, ptr noundef nonnull align 8 dereferenceable(8) %834)
          to label %835 unwind label %839

835:                                              ; preds = %827
  br label %836

836:                                              ; preds = %835
  %837 = load i32, ptr %65, align 4, !tbaa !11
  %838 = add i32 %837, 1
  store i32 %838, ptr %65, align 4, !tbaa !11
  br label %818, !llvm.loop !24

839:                                              ; preds = %827
  %840 = landingpad { ptr, i32 }
          cleanup
  %841 = extractvalue { ptr, i32 } %840, 0
  store ptr %841, ptr %30, align 8
  %842 = extractvalue { ptr, i32 } %840, 1
  store i32 %842, ptr %31, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #6
  br label %851

843:                                              ; preds = %826
  %844 = load i32, ptr %64, align 4, !tbaa !11
  %845 = zext i32 %844 to i64
  %846 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %845) #6
  call void @_ZNSt6vectorIP16CornerDescriptorSaIS1_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %846) #6
  br label %847

847:                                              ; preds = %843
  %848 = load i32, ptr %64, align 4, !tbaa !11
  %849 = add i32 %848, 1
  store i32 %849, ptr %64, align 4, !tbaa !11
  br label %811, !llvm.loop !25

850:                                              ; preds = %816
  call void @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %26) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #6
  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 @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #6
  ret void

851:                                              ; preds = %839, %797
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #6
  br label %852

852:                                              ; preds = %851, %596
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #6
  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
  br label %853

853:                                              ; preds = %852, %87
  call void @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #6
  br label %854

854:                                              ; preds = %853
  %855 = load ptr, ptr %30, align 8
  %856 = load i32, ptr %31, align 4
  %857 = insertvalue { ptr, i32 } poison, ptr %855, 0
  %858 = insertvalue { ptr, i32 } %857, i32 %856, 1
  resume { ptr, i32 } %858
}

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSaIP16CornerDescriptorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 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 #5 align 2

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

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

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

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

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

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

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

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

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

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

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

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


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

%"class.std::vector.16" = type { %"struct.std::_Vector_base.17" }
%"struct.std::_Vector_base.17" = 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" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = 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" = type { i8 }
%"class.std::vector.11" = type { %"struct.std::_Vector_base.12" }
%"struct.std::_Vector_base.12" = type { %"struct.std::_Vector_base<ImageContent *, std::allocator<ImageContent *>>::_Vector_impl" }
%"struct.std::_Vector_base<ImageContent *, std::allocator<ImageContent *>>::_Vector_impl" = type { %"struct.std::_Vector_base<ImageContent *, std::allocator<ImageContent *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ImageContent *, std::allocator<ImageContent *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.5" = type { %"struct.std::_Vector_base.6" }
%"struct.std::_Vector_base.6" = 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.10" = type { ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt4fabsf(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 #5 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN16CornerDescriptorC2Effff(ptr noundef nonnull align 8 dereferenceable(116), float noundef, float noundef, float noundef, float noundef) unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN16CornerDescriptor7setTypeEi(ptr noundef nonnull align 8 dereferenceable(116), i32 noundef) local_unnamed_addr #2 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_Z9getLapMaxSt6vectorIP12ImageContentSaIS1_EES_IfSaIfEEjjjffRf(ptr noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef, float noundef, float noundef, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z10invSqrRootRfS_S_S_S_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
define dso_local void @_Z10harris_lapSt6vectorIP12ImageContentSaIS1_EES3_S3_S3_S3_S_IfSaIfEERS_IP16CornerDescriptorSaIS7_EEfi(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef nonnull align 8 dereferenceable(24) %6, float noundef %7, i32 noundef %8) local_unnamed_addr #5 personality ptr @__gxx_personality_v0 {
  %10 = alloca ptr, align 8
  %11 = alloca %"class.std::vector.16", align 8
  %12 = alloca %"class.std::vector", align 8
  %13 = alloca %"class.std::allocator", align 1
  %14 = alloca float, align 4
  %15 = alloca float, align 4
  %16 = alloca float, align 4
  %17 = alloca float, align 4
  %18 = alloca float, align 4
  %19 = alloca float, align 4
  %20 = alloca %"class.std::vector.11", align 8
  %21 = alloca %"class.std::vector.5", align 8
  %22 = alloca %"class.__gnu_cxx::__normal_iterator.10", align 8
  %23 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %24 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %25 = alloca %"class.__gnu_cxx::__normal_iterator.10", align 8
  %26 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %27 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #6
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %11) #6
  call void @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #6
  %28 = call noundef i64 @_ZNKSt6vectorIP12ImageContentSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #6
  %.not = icmp eq i64 %28, 1
  br i1 %.not, label %._crit_edge, label %.lr.ph

._crit_edge:                                      ; preds = %35, %9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #6
  %29 = fmul float %7, 5.000000e-01
  %30 = call noundef i64 @_ZNKSt6vectorIP12ImageContentSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #6
  %31 = add i64 %30, -4
  %32 = icmp ult i64 %31, -3
  br i1 %32, label %.preheader226.lr.ph, label %.preheader224

.preheader226.lr.ph:                              ; preds = %._crit_edge
  %33 = icmp eq i32 %8, 1
  br label %.preheader226

.lr.ph:                                           ; preds = %9, %35
  %.0167249 = phi i32 [ %36, %35 ], [ 0, %9 ]
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %13) #6
  call void @_ZNSaIP16CornerDescriptorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #6
  invoke void @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEC2EmRKS2_(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef 0, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %34 unwind label %41

34:                                               ; preds = %.lr.ph
  invoke void @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EE9push_backEOS3_(ptr noundef nonnull align 8 dereferenceable(24) %11, ptr noundef nonnull align 8 dereferenceable(24) %12)
          to label %35 unwind label %43

35:                                               ; preds = %34
  call void @_ZNSt6vectorIP16CornerDescriptorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #6
  call void @_ZNSt15__new_allocatorIP16CornerDescriptorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #6
  %36 = add i32 %.0167249, 1
  %37 = zext i32 %36 to i64
  %38 = call noundef i64 @_ZNKSt6vectorIP12ImageContentSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #6
  %39 = add i64 %38, -1
  %40 = icmp ugt i64 %39, %37
  br i1 %40, label %.lr.ph, label %._crit_edge, !llvm.loop !5

41:                                               ; preds = %.lr.ph
  %42 = landingpad { ptr, i32 }
          cleanup
  br label %45

43:                                               ; preds = %34
  %44 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIP16CornerDescriptorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #6
  br label %45

45:                                               ; preds = %43, %41
  %.pn217 = phi { ptr, i32 } [ %44, %43 ], [ %42, %41 ]
  call void @_ZNSt15__new_allocatorIP16CornerDescriptorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #6
  br label %456

.preheader226:                                    ; preds = %.preheader226.lr.ph, %._crit_edge259
  %46 = phi i64 [ 2, %.preheader226.lr.ph ], [ %61, %._crit_edge259 ]
  %.0182264 = phi i32 [ 2, %.preheader226.lr.ph ], [ %60, %._crit_edge259 ]
  %47 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %46) #6
  %48 = load ptr, ptr %47, align 8, !tbaa !7
  %49 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %48)
  %50 = icmp ugt i32 %49, 10
  br i1 %50, label %.preheader225, label %._crit_edge259

.preheader224:                                    ; preds = %._crit_edge259, %._crit_edge
  %51 = call noundef i64 @_ZNKSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #6
  %.not292 = icmp eq i64 %51, 0
  br i1 %.not292, label %.preheader221, label %.preheader223

.preheader225:                                    ; preds = %.preheader226, %._crit_edge254
  %indvars.iv299 = phi i64 [ %indvars.iv.next300.pre-phi, %._crit_edge254 ], [ 5, %.preheader226 ]
  %52 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %46) #6
  %53 = load ptr, ptr %52, align 8, !tbaa !7
  %54 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %53)
  %55 = icmp ugt i32 %54, 10
  br i1 %55, label %.lr.ph253, label %.preheader225.._crit_edge254_crit_edge

.preheader225.._crit_edge254_crit_edge:           ; preds = %.preheader225
  %.pre = add nuw nsw i64 %indvars.iv299, 1
  br label %._crit_edge254

.lr.ph253:                                        ; preds = %.preheader225
  %56 = add nsw i64 %indvars.iv299, -1
  %57 = add nuw nsw i64 %indvars.iv299, 1
  %58 = trunc nuw i64 %indvars.iv299 to i32
  %59 = uitofp i32 %58 to float
  br label %73

._crit_edge259:                                   ; preds = %._crit_edge254, %.preheader226
  %60 = add i32 %.0182264, 1
  %61 = zext i32 %60 to i64
  %62 = call noundef i64 @_ZNKSt6vectorIP12ImageContentSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #6
  %63 = add i64 %62, -1
  %64 = icmp ugt i64 %63, %61
  br i1 %64, label %.preheader226, label %.preheader224, !llvm.loop !11

._crit_edge254:                                   ; preds = %314, %.preheader225.._crit_edge254_crit_edge
  %indvars.iv.next300.pre-phi = phi i64 [ %.pre, %.preheader225.._crit_edge254_crit_edge ], [ %57, %314 ]
  %65 = add nuw nsw i64 %indvars.iv299, 6
  %66 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %46) #6
  %67 = load ptr, ptr %66, align 8, !tbaa !7
  %68 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %67)
  %69 = zext i32 %68 to i64
  %70 = icmp ult i64 %65, %69
  br i1 %70, label %.preheader225, label %._crit_edge259, !llvm.loop !12

71:                                               ; preds = %311, %272, %258, %244
  %72 = landingpad { ptr, i32 }
          cleanup
  br label %455

73:                                               ; preds = %.lr.ph253, %314
  %indvars.iv = phi i64 [ 5, %.lr.ph253 ], [ %indvars.iv.next, %314 ]
  %74 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %46) #6
  %75 = load ptr, ptr %74, align 8, !tbaa !7
  %76 = getelementptr inbounds i8, ptr %75, i64 16
  %77 = load ptr, ptr %76, align 8, !tbaa !13
  %78 = getelementptr inbounds ptr, ptr %77, i64 %indvars.iv299
  %79 = load ptr, ptr %78, align 8, !tbaa !7
  %80 = getelementptr inbounds float, ptr %79, i64 %indvars.iv
  %81 = load float, ptr %80, align 4, !tbaa !16
  %82 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %46) #6
  %83 = load ptr, ptr %82, align 8, !tbaa !7
  %84 = getelementptr inbounds i8, ptr %83, i64 16
  %85 = load ptr, ptr %84, align 8, !tbaa !13
  %86 = getelementptr inbounds ptr, ptr %85, i64 %56
  %87 = load ptr, ptr %86, align 8, !tbaa !7
  %88 = add nsw i64 %indvars.iv, -1
  %89 = getelementptr inbounds float, ptr %87, i64 %88
  %90 = load float, ptr %89, align 4, !tbaa !16
  %91 = fcmp ogt float %81, %90
  br i1 %91, label %92, label %314

92:                                               ; preds = %73
  %93 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %46) #6
  %94 = load ptr, ptr %93, align 8, !tbaa !7
  %95 = getelementptr inbounds i8, ptr %94, i64 16
  %96 = load ptr, ptr %95, align 8, !tbaa !13
  %97 = getelementptr inbounds ptr, ptr %96, i64 %56
  %98 = load ptr, ptr %97, align 8, !tbaa !7
  %99 = getelementptr inbounds float, ptr %98, i64 %indvars.iv
  %100 = load float, ptr %99, align 4, !tbaa !16
  %101 = fcmp ogt float %81, %100
  br i1 %101, label %102, label %314

102:                                              ; preds = %92
  %103 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %46) #6
  %104 = load ptr, ptr %103, align 8, !tbaa !7
  %105 = getelementptr inbounds i8, ptr %104, i64 16
  %106 = load ptr, ptr %105, align 8, !tbaa !13
  %107 = getelementptr inbounds ptr, ptr %106, i64 %56
  %108 = load ptr, ptr %107, align 8, !tbaa !7
  %109 = add nuw nsw i64 %indvars.iv, 1
  %110 = getelementptr inbounds float, ptr %108, i64 %109
  %111 = load float, ptr %110, align 4, !tbaa !16
  %112 = fcmp ogt float %81, %111
  br i1 %112, label %113, label %314

113:                                              ; preds = %102
  %114 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %46) #6
  %115 = load ptr, ptr %114, align 8, !tbaa !7
  %116 = getelementptr inbounds i8, ptr %115, i64 16
  %117 = load ptr, ptr %116, align 8, !tbaa !13
  %118 = getelementptr inbounds ptr, ptr %117, i64 %indvars.iv299
  %119 = load ptr, ptr %118, align 8, !tbaa !7
  %120 = getelementptr inbounds float, ptr %119, i64 %88
  %121 = load float, ptr %120, align 4, !tbaa !16
  %122 = fcmp ogt float %81, %121
  br i1 %122, label %123, label %314

123:                                              ; preds = %113
  %124 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %46) #6
  %125 = load ptr, ptr %124, align 8, !tbaa !7
  %126 = getelementptr inbounds i8, ptr %125, i64 16
  %127 = load ptr, ptr %126, align 8, !tbaa !13
  %128 = getelementptr inbounds ptr, ptr %127, i64 %indvars.iv299
  %129 = load ptr, ptr %128, align 8, !tbaa !7
  %130 = getelementptr inbounds float, ptr %129, i64 %109
  %131 = load float, ptr %130, align 4, !tbaa !16
  %132 = fcmp ogt float %81, %131
  br i1 %132, label %133, label %314

133:                                              ; preds = %123
  %134 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %46) #6
  %135 = load ptr, ptr %134, align 8, !tbaa !7
  %136 = getelementptr inbounds i8, ptr %135, i64 16
  %137 = load ptr, ptr %136, align 8, !tbaa !13
  %138 = getelementptr inbounds ptr, ptr %137, i64 %57
  %139 = load ptr, ptr %138, align 8, !tbaa !7
  %140 = getelementptr inbounds float, ptr %139, i64 %88
  %141 = load float, ptr %140, align 4, !tbaa !16
  %142 = fcmp ogt float %81, %141
  br i1 %142, label %143, label %314

143:                                              ; preds = %133
  %144 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %46) #6
  %145 = load ptr, ptr %144, align 8, !tbaa !7
  %146 = getelementptr inbounds i8, ptr %145, i64 16
  %147 = load ptr, ptr %146, align 8, !tbaa !13
  %148 = getelementptr inbounds ptr, ptr %147, i64 %57
  %149 = load ptr, ptr %148, align 8, !tbaa !7
  %150 = getelementptr inbounds float, ptr %149, i64 %indvars.iv
  %151 = load float, ptr %150, align 4, !tbaa !16
  %152 = fcmp ogt float %81, %151
  br i1 %152, label %153, label %314

153:                                              ; preds = %143
  %154 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %46) #6
  %155 = load ptr, ptr %154, align 8, !tbaa !7
  %156 = getelementptr inbounds i8, ptr %155, i64 16
  %157 = load ptr, ptr %156, align 8, !tbaa !13
  %158 = getelementptr inbounds ptr, ptr %157, i64 %57
  %159 = load ptr, ptr %158, align 8, !tbaa !7
  %160 = getelementptr inbounds float, ptr %159, i64 %109
  %161 = load float, ptr %160, align 4, !tbaa !16
  %162 = fcmp ogt float %81, %161
  br i1 %162, label %163, label %314

163:                                              ; preds = %153
  %164 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %46) #6
  %165 = load ptr, ptr %164, align 8, !tbaa !7
  %166 = getelementptr inbounds i8, ptr %165, i64 16
  %167 = load ptr, ptr %166, align 8, !tbaa !13
  %168 = getelementptr inbounds ptr, ptr %167, i64 %56
  %169 = load ptr, ptr %168, align 8, !tbaa !7
  %170 = getelementptr inbounds float, ptr %169, i64 %88
  %171 = load float, ptr %170, align 4, !tbaa !16
  %172 = fcmp ogt float %171, %29
  br i1 %172, label %173, label %314

173:                                              ; preds = %163
  %174 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %46) #6
  %175 = load ptr, ptr %174, align 8, !tbaa !7
  %176 = getelementptr inbounds i8, ptr %175, i64 16
  %177 = load ptr, ptr %176, align 8, !tbaa !13
  %178 = getelementptr inbounds ptr, ptr %177, i64 %56
  %179 = load ptr, ptr %178, align 8, !tbaa !7
  %180 = getelementptr inbounds float, ptr %179, i64 %indvars.iv
  %181 = load float, ptr %180, align 4, !tbaa !16
  %182 = fcmp ogt float %181, %29
  br i1 %182, label %183, label %314

183:                                              ; preds = %173
  %184 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %46) #6
  %185 = load ptr, ptr %184, align 8, !tbaa !7
  %186 = getelementptr inbounds i8, ptr %185, i64 16
  %187 = load ptr, ptr %186, align 8, !tbaa !13
  %188 = getelementptr inbounds ptr, ptr %187, i64 %56
  %189 = load ptr, ptr %188, align 8, !tbaa !7
  %190 = getelementptr inbounds float, ptr %189, i64 %109
  %191 = load float, ptr %190, align 4, !tbaa !16
  %192 = fcmp ogt float %191, %29
  br i1 %192, label %193, label %314

193:                                              ; preds = %183
  %194 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %46) #6
  %195 = load ptr, ptr %194, align 8, !tbaa !7
  %196 = getelementptr inbounds i8, ptr %195, i64 16
  %197 = load ptr, ptr %196, align 8, !tbaa !13
  %198 = getelementptr inbounds ptr, ptr %197, i64 %indvars.iv299
  %199 = load ptr, ptr %198, align 8, !tbaa !7
  %200 = getelementptr inbounds float, ptr %199, i64 %88
  %201 = load float, ptr %200, align 4, !tbaa !16
  %202 = fcmp ogt float %201, %29
  br i1 %202, label %203, label %314

203:                                              ; preds = %193
  %204 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %46) #6
  %205 = load ptr, ptr %204, align 8, !tbaa !7
  %206 = getelementptr inbounds i8, ptr %205, i64 16
  %207 = load ptr, ptr %206, align 8, !tbaa !13
  %208 = getelementptr inbounds ptr, ptr %207, i64 %indvars.iv299
  %209 = load ptr, ptr %208, align 8, !tbaa !7
  %210 = getelementptr inbounds float, ptr %209, i64 %109
  %211 = load float, ptr %210, align 4, !tbaa !16
  %212 = fcmp ogt float %211, %29
  br i1 %212, label %213, label %314

213:                                              ; preds = %203
  %214 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %46) #6
  %215 = load ptr, ptr %214, align 8, !tbaa !7
  %216 = getelementptr inbounds i8, ptr %215, i64 16
  %217 = load ptr, ptr %216, align 8, !tbaa !13
  %218 = getelementptr inbounds ptr, ptr %217, i64 %57
  %219 = load ptr, ptr %218, align 8, !tbaa !7
  %220 = getelementptr inbounds float, ptr %219, i64 %88
  %221 = load float, ptr %220, align 4, !tbaa !16
  %222 = fcmp ogt float %221, %29
  br i1 %222, label %223, label %314

223:                                              ; preds = %213
  %224 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %46) #6
  %225 = load ptr, ptr %224, align 8, !tbaa !7
  %226 = getelementptr inbounds i8, ptr %225, i64 16
  %227 = load ptr, ptr %226, align 8, !tbaa !13
  %228 = getelementptr inbounds ptr, ptr %227, i64 %57
  %229 = load ptr, ptr %228, align 8, !tbaa !7
  %230 = getelementptr inbounds float, ptr %229, i64 %indvars.iv
  %231 = load float, ptr %230, align 4, !tbaa !16
  %232 = fcmp ogt float %231, %29
  br i1 %232, label %233, label %314

233:                                              ; preds = %223
  %234 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %46) #6
  %235 = load ptr, ptr %234, align 8, !tbaa !7
  %236 = getelementptr inbounds i8, ptr %235, i64 16
  %237 = load ptr, ptr %236, align 8, !tbaa !13
  %238 = getelementptr inbounds ptr, ptr %237, i64 %57
  %239 = load ptr, ptr %238, align 8, !tbaa !7
  %240 = getelementptr inbounds float, ptr %239, i64 %109
  %241 = load float, ptr %240, align 4, !tbaa !16
  %242 = fcmp ogt float %241, %29
  %243 = fcmp ogt float %81, %7
  %or.cond220 = select i1 %242, i1 %243, i1 false
  br i1 %or.cond220, label %244, label %314

244:                                              ; preds = %233
  %245 = trunc nuw i64 %indvars.iv to i32
  %246 = uitofp i32 %245 to float
  %247 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %46) #6
  %248 = load float, ptr %247, align 4, !tbaa !16
  %249 = fmul float %248, %246
  %250 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %46) #6
  %251 = load float, ptr %250, align 4, !tbaa !16
  %252 = fmul float %251, %59
  invoke void @_ZNSt6vectorIP12ImageContentSaIS1_EEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %20, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %253 unwind label %71

253:                                              ; preds = %244
  invoke void @_ZNSt6vectorIfSaIfEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %21, ptr noundef nonnull align 8 dereferenceable(24) %5)
          to label %254 unwind label %302

254:                                              ; preds = %253
  %255 = invoke noundef i32 @_Z9getLapMaxSt6vectorIP12ImageContentSaIS1_EES_IfSaIfEEjjjffRf(ptr noundef nonnull %20, ptr noundef nonnull %21, i32 noundef %.0182264, i32 noundef 1, i32 noundef 7, float noundef %249, float noundef %252, ptr noundef nonnull align 4 dereferenceable(4) %19)
          to label %256 unwind label %304

256:                                              ; preds = %254
  call void @_ZNSt6vectorIfSaIfEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #6
  call void @_ZNSt6vectorIP12ImageContentSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #6
  %257 = icmp sgt i32 %255, 0
  br i1 %257, label %258, label %314

258:                                              ; preds = %256
  %259 = invoke noalias noundef nonnull dereferenceable(120) ptr @_Znwm(i64 noundef 120) #7
          to label %260 unwind label %71

260:                                              ; preds = %258
  %261 = load float, ptr %19, align 4, !tbaa !16
  %262 = fmul float %261, 3.000000e+00
  invoke void @_ZN16CornerDescriptorC2Effff(ptr noundef nonnull align 8 dereferenceable(116) %259, float noundef %249, float noundef %252, float noundef %81, float noundef %262)
          to label %263 unwind label %307

263:                                              ; preds = %260
  store ptr %259, ptr %10, align 8, !tbaa !7
  %264 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %46) #6
  %265 = load float, ptr %264, align 4, !tbaa !16
  call void @_ZN6Corner9setDerSigEf(ptr noundef nonnull align 4 dereferenceable(88) %259, float noundef %265)
  %266 = load ptr, ptr %10, align 8, !tbaa !7
  %267 = load float, ptr %19, align 4, !tbaa !16
  %268 = fmul float %267, 2.000000e+00
  call void @_ZN6Corner9setIntSigEf(ptr noundef nonnull align 4 dereferenceable(88) %266, float noundef %268)
  %269 = load ptr, ptr %10, align 8, !tbaa !7
  call void @_ZN6Corner9setDerLevEi(ptr noundef nonnull align 4 dereferenceable(88) %269, i32 noundef %.0182264)
  %270 = load ptr, ptr %10, align 8, !tbaa !7
  call void @_ZN6Corner9setIntLevEi(ptr noundef nonnull align 4 dereferenceable(88) %270, i32 noundef %255)
  %271 = load ptr, ptr %10, align 8, !tbaa !7
  call void @_ZN16CornerDescriptor7setTypeEi(ptr noundef nonnull align 8 dereferenceable(116) %271, i32 noundef %8)
  br i1 %33, label %272, label %309

272:                                              ; preds = %263
  %273 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %46) #6
  %274 = load ptr, ptr %273, align 8, !tbaa !7
  %275 = getelementptr inbounds i8, ptr %274, i64 16
  %276 = load ptr, ptr %275, align 8, !tbaa !13
  %277 = getelementptr inbounds ptr, ptr %276, i64 %indvars.iv299
  %278 = load ptr, ptr %277, align 8, !tbaa !7
  %279 = getelementptr inbounds float, ptr %278, i64 %indvars.iv
  %280 = load float, ptr %279, align 4, !tbaa !16
  store float %280, ptr %14, align 4, !tbaa !16
  %281 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %46) #6
  %282 = load ptr, ptr %281, align 8, !tbaa !7
  %283 = getelementptr inbounds i8, ptr %282, i64 16
  %284 = load ptr, ptr %283, align 8, !tbaa !13
  %285 = getelementptr inbounds ptr, ptr %284, i64 %indvars.iv299
  %286 = load ptr, ptr %285, align 8, !tbaa !7
  %287 = getelementptr inbounds float, ptr %286, i64 %indvars.iv
  %288 = load float, ptr %287, align 4, !tbaa !16
  store float %288, ptr %15, align 4, !tbaa !16
  %289 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef %46) #6
  %290 = load ptr, ptr %289, align 8, !tbaa !7
  %291 = getelementptr inbounds i8, ptr %290, i64 16
  %292 = load ptr, ptr %291, align 8, !tbaa !13
  %293 = getelementptr inbounds ptr, ptr %292, i64 %indvars.iv299
  %294 = load ptr, ptr %293, align 8, !tbaa !7
  %295 = getelementptr inbounds float, ptr %294, i64 %indvars.iv
  %296 = load float, ptr %295, align 4, !tbaa !16
  store float %296, ptr %16, align 4, !tbaa !16
  invoke void @_Z10invSqrRootRfS_S_S_S_(ptr noundef nonnull align 4 dereferenceable(4) %14, ptr noundef nonnull align 4 dereferenceable(4) %15, ptr noundef nonnull align 4 dereferenceable(4) %16, ptr noundef nonnull align 4 dereferenceable(4) %18, ptr noundef nonnull align 4 dereferenceable(4) %17)
          to label %297 unwind label %71

297:                                              ; preds = %272
  %298 = load ptr, ptr %10, align 8, !tbaa !7
  %299 = load float, ptr %14, align 4, !tbaa !16
  %300 = load float, ptr %15, align 4, !tbaa !16
  %301 = load float, ptr %16, align 4, !tbaa !16
  call void @_ZN6Corner5setMiEffff(ptr noundef nonnull align 4 dereferenceable(88) %298, float noundef %299, float noundef %300, float noundef %300, float noundef %301)
  br label %311

302:                                              ; preds = %253
  %303 = landingpad { ptr, i32 }
          cleanup
  br label %306

304:                                              ; preds = %254
  %305 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIfSaIfEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #6
  br label %306

306:                                              ; preds = %304, %302
  %.pn212 = phi { ptr, i32 } [ %305, %304 ], [ %303, %302 ]
  call void @_ZNSt6vectorIP12ImageContentSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #6
  br label %455

307:                                              ; preds = %260
  %308 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %259, i64 noundef 120) #8
  br label %455

309:                                              ; preds = %263
  %310 = load ptr, ptr %10, align 8, !tbaa !7
  call void @_ZN6Corner5setMiEffff(ptr noundef nonnull align 4 dereferenceable(88) %310, float noundef 1.000000e+00, float noundef 0.000000e+00, float noundef 0.000000e+00, float noundef 1.000000e+00)
  br label %311

311:                                              ; preds = %309, %297
  %312 = zext nneg i32 %255 to i64
  %313 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %312) #6
  invoke void @_ZNSt6vectorIP16CornerDescriptorSaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %313, ptr noundef nonnull align 8 dereferenceable(8) %10)
          to label %314 unwind label %71

314:                                              ; preds = %256, %73, %92, %102, %113, %123, %133, %143, %153, %163, %173, %183, %193, %203, %213, %223, %233, %311
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %315 = add nuw nsw i64 %indvars.iv, 6
  %316 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ImageContentSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %46) #6
  %317 = load ptr, ptr %316, align 8, !tbaa !7
  %318 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %317)
  %319 = zext i32 %318 to i64
  %320 = icmp ult i64 %315, %319
  br i1 %320, label %73, label %._crit_edge254, !llvm.loop !18

.preheader223:                                    ; preds = %.preheader224, %._crit_edge281
  %321 = phi i64 [ %424, %._crit_edge281 ], [ 0, %.preheader224 ]
  %.0176285 = phi i32 [ %423, %._crit_edge281 ], [ 0, %.preheader224 ]
  %322 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %321) #6
  %323 = call noundef i64 @_ZNKSt6vectorIP16CornerDescriptorSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %322) #6
  %.not293 = icmp eq i64 %323, 0
  br i1 %.not293, label %._crit_edge281, label %.lr.ph280

.lr.ph280:                                        ; preds = %.preheader223
  %324 = add i32 %.0176285, 2
  %325 = icmp ult i32 %.0176285, -2
  br i1 %325, label %.lr.ph275.us, label %.critedge

.lr.ph275.us:                                     ; preds = %.lr.ph280, %.critedge.us
  %326 = phi i64 [ %336, %.critedge.us ], [ 0, %.lr.ph280 ]
  %.0172279.us = phi i32 [ %335, %.critedge.us ], [ 0, %.lr.ph280 ]
  %327 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %321) #6
  %328 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %327, i64 noundef %326) #6
  %329 = load ptr, ptr %328, align 8, !tbaa !7
  store ptr %329, ptr %10, align 8, !tbaa !7
  br label %330

330:                                              ; preds = %.lr.ph275.us, %._crit_edge268.us
  %.0171273.us = phi i32 [ %.0176285, %.lr.ph275.us ], [ %340, %._crit_edge268.us ]
  %.1173272.us = phi i32 [ %.0172279.us, %.lr.ph275.us ], [ %.2174.lcssa.us, %._crit_edge268.us ]
  %.0177271.us = phi i32 [ 1, %.lr.ph275.us ], [ %.1178.lcssa.us, %._crit_edge268.us ]
  %331 = zext i32 %.0171273.us to i64
  %332 = call noundef i64 @_ZNKSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #6
  %333 = icmp ugt i64 %332, %331
  %334 = icmp ne i32 %.0177271.us, 0
  %or.cond.us = and i1 %334, %333
  br i1 %or.cond.us, label %.preheader222.us, label %.critedge.us

.critedge.us:                                     ; preds = %._crit_edge268.us, %330
  %.1173.lcssa.us = phi i32 [ %.1173272.us, %330 ], [ %.2174.lcssa.us, %._crit_edge268.us ]
  %335 = add i32 %.1173.lcssa.us, 1
  %336 = zext i32 %335 to i64
  %337 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %321) #6
  %338 = call noundef i64 @_ZNKSt6vectorIP16CornerDescriptorSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %337) #6
  %339 = icmp ugt i64 %338, %336
  br i1 %339, label %.lr.ph275.us, label %._crit_edge281, !llvm.loop !19

._crit_edge268.us:                                ; preds = %410, %.preheader222.us
  %.1178.lcssa.us = phi i32 [ 1, %.preheader222.us ], [ %.2179.us, %410 ]
  %.2174.lcssa.us = phi i32 [ %.1173272.us, %.preheader222.us ], [ %.3175.us, %410 ]
  %340 = add nuw i32 %.0171273.us, 1
  %341 = icmp ult i32 %340, %324
  br i1 %341, label %330, label %.critedge.us, !llvm.loop !20

.lr.ph267.us:                                     ; preds = %.preheader222.us, %410
  %342 = phi i64 [ %413, %410 ], [ 0, %.preheader222.us ]
  %.0169266.us = phi i32 [ %412, %410 ], [ 0, %.preheader222.us ]
  %.2174265.us = phi i32 [ %.3175.us, %410 ], [ %.1173272.us, %.preheader222.us ]
  %343 = load ptr, ptr %10, align 8, !tbaa !7
  %344 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %331) #6
  %345 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %344, i64 noundef %342) #6
  %346 = load ptr, ptr %345, align 8, !tbaa !7
  %.not.us = icmp eq ptr %343, %346
  br i1 %.not.us, label %410, label %347

347:                                              ; preds = %.lr.ph267.us
  %348 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %331) #6
  %349 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %348, i64 noundef %342) #6
  %350 = load ptr, ptr %349, align 8, !tbaa !7
  %351 = load ptr, ptr %10, align 8, !tbaa !7
  %352 = call noundef float @_ZNK6Corner4getXEv(ptr noundef nonnull align 4 dereferenceable(88) %351)
  %353 = call noundef float @_ZNK6Corner4getXEv(ptr noundef nonnull align 4 dereferenceable(88) %350)
  %354 = fsub float %352, %353
  %355 = call noundef float @_ZSt4fabsf(float noundef %354)
  %356 = fpext float %355 to double
  %357 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %321) #6
  %358 = load float, ptr %357, align 4, !tbaa !16
  %359 = fpext float %358 to double
  %360 = fmul double %359, 3.000000e-01
  %361 = fcmp ogt double %360, %356
  br i1 %361, label %362, label %410

362:                                              ; preds = %347
  %363 = load ptr, ptr %10, align 8, !tbaa !7
  %364 = call noundef float @_ZNK6Corner4getYEv(ptr noundef nonnull align 4 dereferenceable(88) %363)
  %365 = call noundef float @_ZNK6Corner4getYEv(ptr noundef nonnull align 4 dereferenceable(88) %350)
  %366 = fsub float %364, %365
  %367 = call noundef float @_ZSt4fabsf(float noundef %366)
  %368 = fpext float %367 to double
  %369 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %321) #6
  %370 = load float, ptr %369, align 4, !tbaa !16
  %371 = fpext float %370 to double
  %372 = fmul double %371, 3.000000e-01
  %373 = fcmp ogt double %372, %368
  br i1 %373, label %374, label %410

374:                                              ; preds = %362
  %375 = load ptr, ptr %10, align 8, !tbaa !7
  %376 = call noundef float @_ZNK6Corner13getCornernessEv(ptr noundef nonnull align 4 dereferenceable(88) %375)
  %377 = call noundef float @_ZNK6Corner13getCornernessEv(ptr noundef nonnull align 4 dereferenceable(88) %350)
  %378 = fcmp ogt float %376, %377
  br i1 %378, label %395, label %379

379:                                              ; preds = %374
  %380 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %321) #6
  %381 = zext i32 %.2174265.us to i64
  %382 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %380, i64 noundef %381) #6
  %383 = load ptr, ptr %382, align 8, !tbaa !7
  %384 = icmp eq ptr %383, null
  br i1 %384, label %386, label %385

385:                                              ; preds = %379
  call void @_ZN16CornerDescriptorD2Ev(ptr noundef nonnull align 8 dereferenceable(116) %383) #6
  call void @_ZdlPvm(ptr noundef nonnull %383, i64 noundef 120) #8
  br label %386

386:                                              ; preds = %385, %379
  %387 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %321) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #6
  %388 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %321) #6
  %389 = call ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %388) #6
  store ptr %389, ptr %27, align 8
  %390 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPP16CornerDescriptorSt6vectorIS2_SaIS2_EEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %27, i64 noundef %381) #6
  store ptr %390, ptr %26, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKP16CornerDescriptorSt6vectorIS2_SaIS2_EEEC2IPS2_vEERKNS0_IT_S7_EE(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 8 dereferenceable(8) %26) #6
  %391 = load ptr, ptr %25, align 8
  %392 = invoke ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPKS1_S3_EE(ptr noundef nonnull align 8 dereferenceable(24) %387, ptr %391)
          to label %393 unwind label %.split.us

393:                                              ; preds = %386
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #6
  %394 = add i32 %.2174265.us, -1
  br label %410

395:                                              ; preds = %374
  %396 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %331) #6
  %397 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %396, i64 noundef %342) #6
  %398 = load ptr, ptr %397, align 8, !tbaa !7
  %399 = icmp eq ptr %398, null
  br i1 %399, label %401, label %400

400:                                              ; preds = %395
  call void @_ZN16CornerDescriptorD2Ev(ptr noundef nonnull align 8 dereferenceable(116) %398) #6
  call void @_ZdlPvm(ptr noundef nonnull %398, i64 noundef 120) #8
  br label %401

401:                                              ; preds = %400, %395
  %402 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %331) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #6
  %403 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %331) #6
  %404 = call ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %403) #6
  store ptr %404, ptr %24, align 8
  %405 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPP16CornerDescriptorSt6vectorIS2_SaIS2_EEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %24, i64 noundef %342) #6
  store ptr %405, ptr %23, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKP16CornerDescriptorSt6vectorIS2_SaIS2_EEEC2IPS2_vEERKNS0_IT_S7_EE(ptr noundef nonnull align 8 dereferenceable(8) %22, ptr noundef nonnull align 8 dereferenceable(8) %23) #6
  %406 = load ptr, ptr %22, align 8
  %407 = invoke ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPKS1_S3_EE(ptr noundef nonnull align 8 dereferenceable(24) %402, ptr %406)
          to label %408 unwind label %.split283.us

408:                                              ; preds = %401
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #6
  %409 = add i32 %.0169266.us, -1
  br label %410

410:                                              ; preds = %408, %393, %362, %347, %.lr.ph267.us
  %411 = phi i1 [ true, %408 ], [ false, %393 ], [ true, %362 ], [ true, %347 ], [ true, %.lr.ph267.us ]
  %.2179.us = phi i32 [ 1, %408 ], [ 0, %393 ], [ 1, %362 ], [ 1, %347 ], [ 1, %.lr.ph267.us ]
  %.3175.us = phi i32 [ %.2174265.us, %408 ], [ %394, %393 ], [ %.2174265.us, %362 ], [ %.2174265.us, %347 ], [ %.2174265.us, %.lr.ph267.us ]
  %.1170.us = phi i32 [ %409, %408 ], [ %.0169266.us, %393 ], [ %.0169266.us, %362 ], [ %.0169266.us, %347 ], [ %.0169266.us, %.lr.ph267.us ]
  %412 = add i32 %.1170.us, 1
  %413 = zext i32 %412 to i64
  %414 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %331) #6
  %415 = call noundef i64 @_ZNKSt6vectorIP16CornerDescriptorSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %414) #6
  %416 = icmp ugt i64 %415, %413
  %417 = and i1 %411, %416
  br i1 %417, label %.lr.ph267.us, label %._crit_edge268.us, !llvm.loop !21

.preheader222.us:                                 ; preds = %330
  %418 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %331) #6
  %419 = call noundef i64 @_ZNKSt6vectorIP16CornerDescriptorSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %418) #6
  %.not294 = icmp eq i64 %419, 0
  br i1 %.not294, label %._crit_edge268.us, label %.lr.ph267.us

.split.us:                                        ; preds = %386
  %420 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #6
  br label %455

.split283.us:                                     ; preds = %401
  %421 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #6
  br label %455

.preheader221:                                    ; preds = %._crit_edge281, %.preheader224
  %422 = call noundef i64 @_ZNKSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #6
  %.not295 = icmp eq i64 %422, 0
  br i1 %.not295, label %._crit_edge291, label %.preheader

._crit_edge281:                                   ; preds = %.critedge, %.critedge.us, %.preheader223
  %423 = add i32 %.0176285, 1
  %424 = zext i32 %423 to i64
  %425 = call noundef i64 @_ZNKSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #6
  %426 = icmp ugt i64 %425, %424
  br i1 %426, label %.preheader223, label %.preheader221, !llvm.loop !22

.critedge:                                        ; preds = %.lr.ph280, %.critedge
  %427 = phi i64 [ %432, %.critedge ], [ 0, %.lr.ph280 ]
  %.0172279 = phi i32 [ %431, %.critedge ], [ 0, %.lr.ph280 ]
  %428 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %321) #6
  %429 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %428, i64 noundef %427) #6
  %430 = load ptr, ptr %429, align 8, !tbaa !7
  store ptr %430, ptr %10, align 8, !tbaa !7
  %431 = add i32 %.0172279, 1
  %432 = zext i32 %431 to i64
  %433 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %321) #6
  %434 = call noundef i64 @_ZNKSt6vectorIP16CornerDescriptorSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %433) #6
  %435 = icmp ugt i64 %434, %432
  br i1 %435, label %.critedge, label %._crit_edge281, !llvm.loop !19

.preheader:                                       ; preds = %.preheader221, %._crit_edge289
  %436 = phi i64 [ %441, %._crit_edge289 ], [ 0, %.preheader221 ]
  %.0166290 = phi i32 [ %440, %._crit_edge289 ], [ 0, %.preheader221 ]
  %437 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %436) #6
  %438 = call noundef i64 @_ZNKSt6vectorIP16CornerDescriptorSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %437) #6
  %.not296 = icmp eq i64 %438, 0
  br i1 %.not296, label %._crit_edge289, label %.lr.ph288

._crit_edge291:                                   ; preds = %._crit_edge289, %.preheader221
  call void @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #6
  call void @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #6
  ret void

._crit_edge289:                                   ; preds = %447, %.preheader
  %439 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %436) #6
  call void @_ZNSt6vectorIP16CornerDescriptorSaIS1_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %439) #6
  %440 = add i32 %.0166290, 1
  %441 = zext i32 %440 to i64
  %442 = call noundef i64 @_ZNKSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #6
  %443 = icmp ugt i64 %442, %441
  br i1 %443, label %.preheader, label %._crit_edge291, !llvm.loop !23

.lr.ph288:                                        ; preds = %.preheader, %447
  %444 = phi i64 [ %449, %447 ], [ 0, %.preheader ]
  %.0287 = phi i32 [ %448, %447 ], [ 0, %.preheader ]
  %445 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %436) #6
  %446 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP16CornerDescriptorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %445, i64 noundef %444) #6
  invoke void @_ZNSt6vectorIP16CornerDescriptorSaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %6, ptr noundef nonnull align 8 dereferenceable(8) %446)
          to label %447 unwind label %453

447:                                              ; preds = %.lr.ph288
  %448 = add i32 %.0287, 1
  %449 = zext i32 %448 to i64
  %450 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %436) #6
  %451 = call noundef i64 @_ZNKSt6vectorIP16CornerDescriptorSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %450) #6
  %452 = icmp ugt i64 %451, %449
  br i1 %452, label %.lr.ph288, label %._crit_edge289, !llvm.loop !24

453:                                              ; preds = %.lr.ph288
  %454 = landingpad { ptr, i32 }
          cleanup
  br label %455

455:                                              ; preds = %453, %.split.us, %.split283.us, %71, %306, %307
  %.pn214.pn = phi { ptr, i32 } [ %72, %71 ], [ %308, %307 ], [ %.pn212, %306 ], [ %454, %453 ], [ %421, %.split283.us ], [ %420, %.split.us ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #6
  br label %456

456:                                              ; preds = %455, %45
  %.pn217.pn = phi { ptr, i32 } [ %.pn217, %45 ], [ %.pn214.pn, %455 ]
  call void @_ZNSt6vectorIS_IP16CornerDescriptorSaIS1_EESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #6
  resume { ptr, i32 } %.pn217.pn
}

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSaIP16CornerDescriptorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 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 #5 align 2

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN6Corner5setMiEffff(ptr noundef nonnull align 4 dereferenceable(88), float noundef, float noundef, float noundef, float noundef) local_unnamed_addr #2 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 #4 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 #4 align 2

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = 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 = distinct !{!11, !6}
!12 = distinct !{!12, !6}
!13 = !{!14, !8, i64 16}
!14 = !{!"_ZTS12ImageContent", !15, i64 0, !15, i64 4, !15, i64 8, !15, 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}
!15 = !{!"int", !9, i64 0}
!16 = !{!17, !17, i64 0}
!17 = !{!"float", !9, i64 0}
!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}


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