; LLVM IR from cvanaret/Uno :: uno/model (HomogeneousEqualityConstrainedModel)

; 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::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator.2" = type { i8 }
%"class.uno::CollectionAdapter" = type { %"class.uno::Collection", ptr }
%"class.uno::Collection" = type { ptr }
%"class.uno::Collection<unsigned long>::iterator" = type { ptr, i64 }
%"class.uno::Model" = type { ptr, %"class.std::__cxx11::basic_string", i64, i64, double }
%"class.uno::HomogeneousEqualityConstrainedModel" = type { %"class.uno::Model", %"class.std::unique_ptr", %"class.std::vector", %"class.std::vector", %"class.uno::Range", %"class.uno::Range", %"class.uno::SparseVector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.uno::Concatenation", %"class.uno::Concatenation", %"class.uno::Concatenation", %"class.uno::Concatenation" }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.1" }
%"struct.std::_Head_base.1" = type { ptr }
%"class.uno::Range" = type { %"class.uno::Collection", i64, i64 }
%"class.uno::SparseVector" = type { %"class.std::vector", %"class.std::vector", i64 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.uno::Concatenation" = type { %"class.uno::Collection", ptr, %"class.uno::CollectionAdapter" }

@.str = external hidden unnamed_addr constant [25 x i8], align 1
@_ZTVN3uno35HomogeneousEqualityConstrainedModelE = external dso_local unnamed_addr constant { [34 x ptr] }, align 8

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN3uno35HomogeneousEqualityConstrainedModelC2ESt10unique_ptrINS_5ModelESt14default_deleteIS2_EE(ptr noundef nonnull align 8 dereferenceable(448) %0, ptr noundef %1) unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca %"class.std::allocator.2", align 1
  %9 = alloca %"class.std::allocator.2", align 1
  %10 = alloca %"class.std::allocator.2", align 1
  %11 = alloca %"class.std::allocator.2", align 1
  %12 = alloca %"class.uno::CollectionAdapter", align 8
  %13 = alloca %"class.uno::CollectionAdapter", align 8
  %14 = alloca %"class.uno::CollectionAdapter", align 8
  %15 = alloca %"class.uno::CollectionAdapter", align 8
  %16 = alloca i64, align 8
  %17 = alloca ptr, align 8
  %18 = alloca %"class.uno::Collection<unsigned long>::iterator", align 8
  %19 = alloca %"class.uno::Collection<unsigned long>::iterator", align 8
  %20 = alloca i64, align 8
  %21 = alloca i64, align 8
  store ptr %0, ptr %3, align 8, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !5
  %22 = load ptr, ptr %3, align 8
  %23 = call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1) #6
  %24 = getelementptr inbounds %"class.uno::Model", ptr %23, i32 0, i32 1
  call void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %5, ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef @.str)
  %25 = call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1) #6
  %26 = getelementptr inbounds %"class.uno::Model", ptr %25, i32 0, i32 2
  %27 = load i64, ptr %26, align 8, !tbaa !9
  %28 = call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1) #6
  %29 = load ptr, ptr %28, align 8, !tbaa !15
  %30 = getelementptr inbounds ptr, ptr %29, i64 23
  %31 = load ptr, ptr %30, align 8
  %32 = invoke noundef nonnull align 8 dereferenceable(8) ptr %31(ptr noundef nonnull align 8 dereferenceable(64) %28)
          to label %33 unwind label %169

33:                                               ; preds = %2
  %34 = load ptr, ptr %32, align 8, !tbaa !15
  %35 = getelementptr inbounds ptr, ptr %34, i64 2
  %36 = load ptr, ptr %35, align 8
  %37 = invoke noundef i64 %36(ptr noundef nonnull align 8 dereferenceable(8) %32)
          to label %38 unwind label %169

38:                                               ; preds = %33
  %39 = add i64 %27, %37
  %40 = call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1) #6
  %41 = getelementptr inbounds %"class.uno::Model", ptr %40, i32 0, i32 3
  %42 = load i64, ptr %41, align 8, !tbaa !17
  %43 = call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1) #6
  %44 = getelementptr inbounds %"class.uno::Model", ptr %43, i32 0, i32 4
  %45 = load double, ptr %44, align 8, !tbaa !18
  invoke void @_ZN3uno5ModelC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmmd(ptr noundef nonnull align 8 dereferenceable(64) %22, ptr noundef %5, i64 noundef %39, i64 noundef %42, double noundef %45)
          to label %46 unwind label %169

46:                                               ; preds = %38
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  store ptr getelementptr inbounds inrange(-16, 256) ({ [34 x ptr] }, ptr @_ZTVN3uno35HomogeneousEqualityConstrainedModelE, i32 0, i32 0, i32 2), ptr %22, align 8, !tbaa !15
  %47 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 1
  call void @_ZNSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEC2EOS4_(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef nonnull align 8 dereferenceable(8) %1) #6
  %48 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 2
  %49 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 1
  %50 = call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %49) #6
  %51 = load ptr, ptr %50, align 8, !tbaa !15
  %52 = getelementptr inbounds ptr, ptr %51, i64 23
  %53 = load ptr, ptr %52, align 8
  %54 = invoke noundef nonnull align 8 dereferenceable(8) ptr %53(ptr noundef nonnull align 8 dereferenceable(64) %50)
          to label %55 unwind label %173

55:                                               ; preds = %46
  %56 = load ptr, ptr %54, align 8, !tbaa !15
  %57 = getelementptr inbounds ptr, ptr %56, i64 2
  %58 = load ptr, ptr %57, align 8
  %59 = invoke noundef i64 %58(ptr noundef nonnull align 8 dereferenceable(8) %54)
          to label %60 unwind label %173

60:                                               ; preds = %55
  call void @llvm.lifetime.start.p0(i64 1, ptr %8) #6
  call void @_ZNSaImEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #6
  invoke void @_ZNSt6vectorImSaImEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %48, i64 noundef %59, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %61 unwind label %177

61:                                               ; preds = %60
  call void @_ZNSt15__new_allocatorImED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #6
  %62 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 3
  %63 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 1
  %64 = call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %63) #6
  %65 = getelementptr inbounds %"class.uno::Model", ptr %64, i32 0, i32 3
  %66 = load i64, ptr %65, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #6
  call void @_ZNSaImEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #6
  invoke void @_ZNSt6vectorImSaImEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %62, i64 noundef %66, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %67 unwind label %181

67:                                               ; preds = %61
  call void @_ZNSt15__new_allocatorImED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #6
  %68 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 4
  %69 = getelementptr inbounds %"class.uno::Model", ptr %22, i32 0, i32 3
  %70 = load i64, ptr %69, align 8, !tbaa !17
  invoke void @_ZN3uno5RangeILNS_14RangeDirectionE0EEC2Em(ptr noundef nonnull align 8 dereferenceable(24) %68, i64 noundef %70)
          to label %71 unwind label %185

71:                                               ; preds = %67
  %72 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 5
  invoke void @_ZN3uno5RangeILNS_14RangeDirectionE0EEC2Em(ptr noundef nonnull align 8 dereferenceable(24) %72, i64 noundef 0)
          to label %73 unwind label %189

73:                                               ; preds = %71
  %74 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 6
  %75 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 1
  %76 = call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %75) #6
  %77 = load ptr, ptr %76, align 8, !tbaa !15
  %78 = getelementptr inbounds ptr, ptr %77, i64 23
  %79 = load ptr, ptr %78, align 8
  %80 = invoke noundef nonnull align 8 dereferenceable(8) ptr %79(ptr noundef nonnull align 8 dereferenceable(64) %76)
          to label %81 unwind label %193

81:                                               ; preds = %73
  %82 = load ptr, ptr %80, align 8, !tbaa !15
  %83 = getelementptr inbounds ptr, ptr %82, i64 2
  %84 = load ptr, ptr %83, align 8
  %85 = invoke noundef i64 %84(ptr noundef nonnull align 8 dereferenceable(8) %80)
          to label %86 unwind label %193

86:                                               ; preds = %81
  invoke void @_ZN3uno12SparseVectorImEC2Em(ptr noundef nonnull align 8 dereferenceable(56) %74, i64 noundef %85)
          to label %87 unwind label %193

87:                                               ; preds = %86
  %88 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 7
  %89 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 6
  %90 = invoke noundef i64 @_ZNK3uno12SparseVectorImE4sizeEv(ptr noundef nonnull align 8 dereferenceable(56) %89)
          to label %91 unwind label %197

91:                                               ; preds = %87
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #6
  call void @_ZNSaImEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #6
  invoke void @_ZNSt6vectorImSaImEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %88, i64 noundef %90, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %92 unwind label %201

92:                                               ; preds = %91
  call void @_ZNSt15__new_allocatorImED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #6
  %93 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 8
  %94 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 6
  %95 = invoke noundef i64 @_ZNK3uno12SparseVectorImE4sizeEv(ptr noundef nonnull align 8 dereferenceable(56) %94)
          to label %96 unwind label %205

96:                                               ; preds = %92
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #6
  call void @_ZNSaImEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #6
  invoke void @_ZNSt6vectorImSaImEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %93, i64 noundef %95, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %97 unwind label %209

97:                                               ; preds = %96
  call void @_ZNSt15__new_allocatorImED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #6
  %98 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 9
  call void @_ZNSt6vectorImSaImEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %98) #6
  %99 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 10
  call void @_ZNSt6vectorImSaImEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %99) #6
  %100 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 11
  %101 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 1
  %102 = call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %101) #6
  %103 = load ptr, ptr %102, align 8, !tbaa !15
  %104 = getelementptr inbounds ptr, ptr %103, i64 12
  %105 = load ptr, ptr %104, align 8
  %106 = invoke noundef nonnull align 8 dereferenceable(8) ptr %105(ptr noundef nonnull align 8 dereferenceable(64) %102)
          to label %107 unwind label %213

107:                                              ; preds = %97
  call void @llvm.lifetime.start.p0(i64 16, ptr %12) #6
  %108 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 7
  invoke void @_ZN3uno5adaptISt6vectorImSaImEEEENS_17CollectionAdapterIT_EERKS5_(ptr dead_on_unwind writable sret(%"class.uno::CollectionAdapter") align 8 %12, ptr noundef nonnull align 8 dereferenceable(24) %108)
          to label %109 unwind label %217

109:                                              ; preds = %107
  invoke void @_ZN3uno11concatenateIRKNS_10CollectionImEENS_17CollectionAdapterISt6vectorImSaImEEEEEENS_13ConcatenationIT_T0_EEOSB_OSC_(ptr dead_on_unwind writable sret(%"class.uno::Concatenation") align 8 %100, ptr noundef nonnull align 8 dereferenceable(8) %106, ptr noundef nonnull align 8 dereferenceable(16) %12)
          to label %110 unwind label %221

110:                                              ; preds = %109
  call void @_ZN3uno10CollectionImED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %12) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %12) #6
  %111 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 12
  %112 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 1
  %113 = call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %112) #6
  %114 = load ptr, ptr %113, align 8, !tbaa !15
  %115 = getelementptr inbounds ptr, ptr %114, i64 13
  %116 = load ptr, ptr %115, align 8
  %117 = invoke noundef nonnull align 8 dereferenceable(8) ptr %116(ptr noundef nonnull align 8 dereferenceable(64) %113)
          to label %118 unwind label %226

118:                                              ; preds = %110
  call void @llvm.lifetime.start.p0(i64 16, ptr %13) #6
  %119 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 8
  invoke void @_ZN3uno5adaptISt6vectorImSaImEEEENS_17CollectionAdapterIT_EERKS5_(ptr dead_on_unwind writable sret(%"class.uno::CollectionAdapter") align 8 %13, ptr noundef nonnull align 8 dereferenceable(24) %119)
          to label %120 unwind label %230

120:                                              ; preds = %118
  invoke void @_ZN3uno11concatenateIRKNS_10CollectionImEENS_17CollectionAdapterISt6vectorImSaImEEEEEENS_13ConcatenationIT_T0_EEOSB_OSC_(ptr dead_on_unwind writable sret(%"class.uno::Concatenation") align 8 %111, ptr noundef nonnull align 8 dereferenceable(8) %117, ptr noundef nonnull align 8 dereferenceable(16) %13)
          to label %121 unwind label %234

121:                                              ; preds = %120
  call void @_ZN3uno10CollectionImED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %13) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %13) #6
  %122 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 13
  %123 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 1
  %124 = call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #6
  %125 = load ptr, ptr %124, align 8, !tbaa !15
  %126 = getelementptr inbounds ptr, ptr %125, i64 15
  %127 = load ptr, ptr %126, align 8
  %128 = invoke noundef nonnull align 8 dereferenceable(8) ptr %127(ptr noundef nonnull align 8 dereferenceable(64) %124)
          to label %129 unwind label %239

129:                                              ; preds = %121
  call void @llvm.lifetime.start.p0(i64 16, ptr %14) #6
  %130 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 9
  invoke void @_ZN3uno5adaptISt6vectorImSaImEEEENS_17CollectionAdapterIT_EERKS5_(ptr dead_on_unwind writable sret(%"class.uno::CollectionAdapter") align 8 %14, ptr noundef nonnull align 8 dereferenceable(24) %130)
          to label %131 unwind label %243

131:                                              ; preds = %129
  invoke void @_ZN3uno11concatenateIRKNS_10CollectionImEENS_17CollectionAdapterISt6vectorImSaImEEEEEENS_13ConcatenationIT_T0_EEOSB_OSC_(ptr dead_on_unwind writable sret(%"class.uno::Concatenation") align 8 %122, ptr noundef nonnull align 8 dereferenceable(8) %128, ptr noundef nonnull align 8 dereferenceable(16) %14)
          to label %132 unwind label %247

132:                                              ; preds = %131
  call void @_ZN3uno10CollectionImED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %14) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %14) #6
  %133 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 14
  %134 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 1
  %135 = call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %134) #6
  %136 = load ptr, ptr %135, align 8, !tbaa !15
  %137 = getelementptr inbounds ptr, ptr %136, i64 16
  %138 = load ptr, ptr %137, align 8
  %139 = invoke noundef nonnull align 8 dereferenceable(8) ptr %138(ptr noundef nonnull align 8 dereferenceable(64) %135)
          to label %140 unwind label %252

140:                                              ; preds = %132
  call void @llvm.lifetime.start.p0(i64 16, ptr %15) #6
  %141 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 10
  invoke void @_ZN3uno5adaptISt6vectorImSaImEEEENS_17CollectionAdapterIT_EERKS5_(ptr dead_on_unwind writable sret(%"class.uno::CollectionAdapter") align 8 %15, ptr noundef nonnull align 8 dereferenceable(24) %141)
          to label %142 unwind label %256

142:                                              ; preds = %140
  invoke void @_ZN3uno11concatenateIRKNS_10CollectionImEENS_17CollectionAdapterISt6vectorImSaImEEEEEENS_13ConcatenationIT_T0_EEOSB_OSC_(ptr dead_on_unwind writable sret(%"class.uno::Concatenation") align 8 %133, ptr noundef nonnull align 8 dereferenceable(8) %139, ptr noundef nonnull align 8 dereferenceable(16) %15)
          to label %143 unwind label %260

143:                                              ; preds = %142
  call void @_ZN3uno10CollectionImED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %15) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #6
  store i64 0, ptr %16, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #6
  %144 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 1
  %145 = call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %144) #6
  %146 = load ptr, ptr %145, align 8, !tbaa !15
  %147 = getelementptr inbounds ptr, ptr %146, i64 23
  %148 = load ptr, ptr %147, align 8
  %149 = invoke noundef nonnull align 8 dereferenceable(8) ptr %148(ptr noundef nonnull align 8 dereferenceable(64) %145)
          to label %150 unwind label %265

150:                                              ; preds = %143
  store ptr %149, ptr %17, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %18) #6
  %151 = load ptr, ptr %17, align 8, !tbaa !5
  %152 = invoke { ptr, i64 } @_ZNK3uno10CollectionImE5beginEv(ptr noundef nonnull align 8 dereferenceable(8) %151)
          to label %153 unwind label %269

153:                                              ; preds = %150
  %154 = getelementptr inbounds { ptr, i64 }, ptr %18, i32 0, i32 0
  %155 = extractvalue { ptr, i64 } %152, 0
  store ptr %155, ptr %154, align 8
  %156 = getelementptr inbounds { ptr, i64 }, ptr %18, i32 0, i32 1
  %157 = extractvalue { ptr, i64 } %152, 1
  store i64 %157, ptr %156, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %19) #6
  %158 = load ptr, ptr %17, align 8, !tbaa !5
  %159 = invoke { ptr, i64 } @_ZNK3uno10CollectionImE3endEv(ptr noundef nonnull align 8 dereferenceable(8) %158)
          to label %160 unwind label %273

160:                                              ; preds = %153
  %161 = getelementptr inbounds { ptr, i64 }, ptr %19, i32 0, i32 0
  %162 = extractvalue { ptr, i64 } %159, 0
  store ptr %162, ptr %161, align 8
  %163 = getelementptr inbounds { ptr, i64 }, ptr %19, i32 0, i32 1
  %164 = extractvalue { ptr, i64 } %159, 1
  store i64 %164, ptr %163, align 8
  br label %165

165:                                              ; preds = %370, %160
  %166 = invoke noundef zeroext i1 @_ZN3unoneERKNS_10CollectionImE8iteratorES4_(ptr noundef nonnull align 8 dereferenceable(16) %18, ptr noundef nonnull align 8 dereferenceable(16) %19)
          to label %167 unwind label %273

167:                                              ; preds = %165
  br i1 %166, label %277, label %168

168:                                              ; preds = %167
  call void @llvm.lifetime.end.p0(i64 16, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %18) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #6
  br label %375

169:                                              ; preds = %38, %33, %2
  %170 = landingpad { ptr, i32 }
          cleanup
  %171 = extractvalue { ptr, i32 } %170, 0
  store ptr %171, ptr %6, align 8
  %172 = extractvalue { ptr, i32 } %170, 1
  store i32 %172, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  br label %387

173:                                              ; preds = %55, %46
  %174 = landingpad { ptr, i32 }
          cleanup
  %175 = extractvalue { ptr, i32 } %174, 0
  store ptr %175, ptr %6, align 8
  %176 = extractvalue { ptr, i32 } %174, 1
  store i32 %176, ptr %7, align 4
  br label %386

177:                                              ; preds = %60
  %178 = landingpad { ptr, i32 }
          cleanup
  %179 = extractvalue { ptr, i32 } %178, 0
  store ptr %179, ptr %6, align 8
  %180 = extractvalue { ptr, i32 } %178, 1
  store i32 %180, ptr %7, align 4
  call void @_ZNSt15__new_allocatorImED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #6
  br label %386

181:                                              ; preds = %61
  %182 = landingpad { ptr, i32 }
          cleanup
  %183 = extractvalue { ptr, i32 } %182, 0
  store ptr %183, ptr %6, align 8
  %184 = extractvalue { ptr, i32 } %182, 1
  store i32 %184, ptr %7, align 4
  call void @_ZNSt15__new_allocatorImED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #6
  br label %385

185:                                              ; preds = %67
  %186 = landingpad { ptr, i32 }
          cleanup
  %187 = extractvalue { ptr, i32 } %186, 0
  store ptr %187, ptr %6, align 8
  %188 = extractvalue { ptr, i32 } %186, 1
  store i32 %188, ptr %7, align 4
  br label %384

189:                                              ; preds = %71
  %190 = landingpad { ptr, i32 }
          cleanup
  %191 = extractvalue { ptr, i32 } %190, 0
  store ptr %191, ptr %6, align 8
  %192 = extractvalue { ptr, i32 } %190, 1
  store i32 %192, ptr %7, align 4
  br label %383

193:                                              ; preds = %86, %81, %73
  %194 = landingpad { ptr, i32 }
          cleanup
  %195 = extractvalue { ptr, i32 } %194, 0
  store ptr %195, ptr %6, align 8
  %196 = extractvalue { ptr, i32 } %194, 1
  store i32 %196, ptr %7, align 4
  br label %382

197:                                              ; preds = %87
  %198 = landingpad { ptr, i32 }
          cleanup
  %199 = extractvalue { ptr, i32 } %198, 0
  store ptr %199, ptr %6, align 8
  %200 = extractvalue { ptr, i32 } %198, 1
  store i32 %200, ptr %7, align 4
  br label %381

201:                                              ; preds = %91
  %202 = landingpad { ptr, i32 }
          cleanup
  %203 = extractvalue { ptr, i32 } %202, 0
  store ptr %203, ptr %6, align 8
  %204 = extractvalue { ptr, i32 } %202, 1
  store i32 %204, ptr %7, align 4
  call void @_ZNSt15__new_allocatorImED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #6
  br label %381

205:                                              ; preds = %92
  %206 = landingpad { ptr, i32 }
          cleanup
  %207 = extractvalue { ptr, i32 } %206, 0
  store ptr %207, ptr %6, align 8
  %208 = extractvalue { ptr, i32 } %206, 1
  store i32 %208, ptr %7, align 4
  br label %380

209:                                              ; preds = %96
  %210 = landingpad { ptr, i32 }
          cleanup
  %211 = extractvalue { ptr, i32 } %210, 0
  store ptr %211, ptr %6, align 8
  %212 = extractvalue { ptr, i32 } %210, 1
  store i32 %212, ptr %7, align 4
  call void @_ZNSt15__new_allocatorImED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #6
  br label %380

213:                                              ; preds = %97
  %214 = landingpad { ptr, i32 }
          cleanup
  %215 = extractvalue { ptr, i32 } %214, 0
  store ptr %215, ptr %6, align 8
  %216 = extractvalue { ptr, i32 } %214, 1
  store i32 %216, ptr %7, align 4
  br label %379

217:                                              ; preds = %107
  %218 = landingpad { ptr, i32 }
          cleanup
  %219 = extractvalue { ptr, i32 } %218, 0
  store ptr %219, ptr %6, align 8
  %220 = extractvalue { ptr, i32 } %218, 1
  store i32 %220, ptr %7, align 4
  br label %225

221:                                              ; preds = %109
  %222 = landingpad { ptr, i32 }
          cleanup
  %223 = extractvalue { ptr, i32 } %222, 0
  store ptr %223, ptr %6, align 8
  %224 = extractvalue { ptr, i32 } %222, 1
  store i32 %224, ptr %7, align 4
  call void @_ZN3uno10CollectionImED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %12) #6
  br label %225

225:                                              ; preds = %221, %217
  call void @llvm.lifetime.end.p0(i64 16, ptr %12) #6
  br label %379

226:                                              ; preds = %110
  %227 = landingpad { ptr, i32 }
          cleanup
  %228 = extractvalue { ptr, i32 } %227, 0
  store ptr %228, ptr %6, align 8
  %229 = extractvalue { ptr, i32 } %227, 1
  store i32 %229, ptr %7, align 4
  br label %378

230:                                              ; preds = %118
  %231 = landingpad { ptr, i32 }
          cleanup
  %232 = extractvalue { ptr, i32 } %231, 0
  store ptr %232, ptr %6, align 8
  %233 = extractvalue { ptr, i32 } %231, 1
  store i32 %233, ptr %7, align 4
  br label %238

234:                                              ; preds = %120
  %235 = landingpad { ptr, i32 }
          cleanup
  %236 = extractvalue { ptr, i32 } %235, 0
  store ptr %236, ptr %6, align 8
  %237 = extractvalue { ptr, i32 } %235, 1
  store i32 %237, ptr %7, align 4
  call void @_ZN3uno10CollectionImED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %13) #6
  br label %238

238:                                              ; preds = %234, %230
  call void @llvm.lifetime.end.p0(i64 16, ptr %13) #6
  br label %378

239:                                              ; preds = %121
  %240 = landingpad { ptr, i32 }
          cleanup
  %241 = extractvalue { ptr, i32 } %240, 0
  store ptr %241, ptr %6, align 8
  %242 = extractvalue { ptr, i32 } %240, 1
  store i32 %242, ptr %7, align 4
  br label %377

243:                                              ; preds = %129
  %244 = landingpad { ptr, i32 }
          cleanup
  %245 = extractvalue { ptr, i32 } %244, 0
  store ptr %245, ptr %6, align 8
  %246 = extractvalue { ptr, i32 } %244, 1
  store i32 %246, ptr %7, align 4
  br label %251

247:                                              ; preds = %131
  %248 = landingpad { ptr, i32 }
          cleanup
  %249 = extractvalue { ptr, i32 } %248, 0
  store ptr %249, ptr %6, align 8
  %250 = extractvalue { ptr, i32 } %248, 1
  store i32 %250, ptr %7, align 4
  call void @_ZN3uno10CollectionImED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %14) #6
  br label %251

251:                                              ; preds = %247, %243
  call void @llvm.lifetime.end.p0(i64 16, ptr %14) #6
  br label %377

252:                                              ; preds = %132
  %253 = landingpad { ptr, i32 }
          cleanup
  %254 = extractvalue { ptr, i32 } %253, 0
  store ptr %254, ptr %6, align 8
  %255 = extractvalue { ptr, i32 } %253, 1
  store i32 %255, ptr %7, align 4
  br label %376

256:                                              ; preds = %140
  %257 = landingpad { ptr, i32 }
          cleanup
  %258 = extractvalue { ptr, i32 } %257, 0
  store ptr %258, ptr %6, align 8
  %259 = extractvalue { ptr, i32 } %257, 1
  store i32 %259, ptr %7, align 4
  br label %264

260:                                              ; preds = %142
  %261 = landingpad { ptr, i32 }
          cleanup
  %262 = extractvalue { ptr, i32 } %261, 0
  store ptr %262, ptr %6, align 8
  %263 = extractvalue { ptr, i32 } %261, 1
  store i32 %263, ptr %7, align 4
  call void @_ZN3uno10CollectionImED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #6
  br label %264

264:                                              ; preds = %260, %256
  call void @llvm.lifetime.end.p0(i64 16, ptr %15) #6
  br label %376

265:                                              ; preds = %143
  %266 = landingpad { ptr, i32 }
          cleanup
  %267 = extractvalue { ptr, i32 } %266, 0
  store ptr %267, ptr %6, align 8
  %268 = extractvalue { ptr, i32 } %266, 1
  store i32 %268, ptr %7, align 4
  br label %374

269:                                              ; preds = %150
  %270 = landingpad { ptr, i32 }
          cleanup
  %271 = extractvalue { ptr, i32 } %270, 0
  store ptr %271, ptr %6, align 8
  %272 = extractvalue { ptr, i32 } %270, 1
  store i32 %272, ptr %7, align 4
  br label %373

273:                                              ; preds = %368, %165, %153
  %274 = landingpad { ptr, i32 }
          cleanup
  %275 = extractvalue { ptr, i32 } %274, 0
  store ptr %275, ptr %6, align 8
  %276 = extractvalue { ptr, i32 } %274, 1
  store i32 %276, ptr %7, align 4
  br label %372

277:                                              ; preds = %167
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #6
  %278 = invoke noundef i64 @_ZNK3uno10CollectionImE8iteratordeEv(ptr noundef nonnull align 8 dereferenceable(16) %18)
          to label %279 unwind label %326

279:                                              ; preds = %277
  store i64 %278, ptr %20, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #6
  %280 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 1
  %281 = call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %280) #6
  %282 = getelementptr inbounds %"class.uno::Model", ptr %281, i32 0, i32 2
  %283 = load i64, ptr %282, align 8, !tbaa !9
  %284 = load i64, ptr %16, align 8, !tbaa !19
  %285 = add i64 %283, %284
  store i64 %285, ptr %21, align 8, !tbaa !19
  %286 = load i64, ptr %20, align 8, !tbaa !19
  %287 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 2
  %288 = load i64, ptr %16, align 8, !tbaa !19
  %289 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %287, i64 noundef %288) #6
  store i64 %286, ptr %289, align 8, !tbaa !19
  %290 = load i64, ptr %21, align 8, !tbaa !19
  %291 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 3
  %292 = load i64, ptr %20, align 8, !tbaa !19
  %293 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %291, i64 noundef %292) #6
  store i64 %290, ptr %293, align 8, !tbaa !19
  %294 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 6
  %295 = load i64, ptr %20, align 8, !tbaa !19
  %296 = load i64, ptr %21, align 8, !tbaa !19
  invoke void @_ZN3uno12SparseVectorImE6insertEmm(ptr noundef nonnull align 8 dereferenceable(56) %294, i64 noundef %295, i64 noundef %296)
          to label %297 unwind label %330

297:                                              ; preds = %279
  %298 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 1
  %299 = call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %298) #6
  %300 = load i64, ptr %20, align 8, !tbaa !19
  %301 = load ptr, ptr %299, align 8, !tbaa !15
  %302 = getelementptr inbounds ptr, ptr %301, i64 18
  %303 = load ptr, ptr %302, align 8
  %304 = invoke noundef double %303(ptr noundef nonnull align 8 dereferenceable(64) %299, i64 noundef %300)
          to label %305 unwind label %330

305:                                              ; preds = %297
  %306 = invoke noundef zeroext i1 @_ZN3uno9is_finiteIdEEbT_(double noundef %304)
          to label %307 unwind label %330

307:                                              ; preds = %305
  br i1 %306, label %308, label %335

308:                                              ; preds = %307
  %309 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 7
  %310 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEE12emplace_backIJRKmEEERmDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %309, ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %311 unwind label %330

311:                                              ; preds = %308
  %312 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 1
  %313 = call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %312) #6
  %314 = load i64, ptr %20, align 8, !tbaa !19
  %315 = load ptr, ptr %313, align 8, !tbaa !15
  %316 = getelementptr inbounds ptr, ptr %315, i64 19
  %317 = load ptr, ptr %316, align 8
  %318 = invoke noundef double %317(ptr noundef nonnull align 8 dereferenceable(64) %313, i64 noundef %314)
          to label %319 unwind label %330

319:                                              ; preds = %311
  %320 = invoke noundef zeroext i1 @_ZN3uno9is_finiteIdEEbT_(double noundef %318)
          to label %321 unwind label %330

321:                                              ; preds = %319
  br i1 %320, label %334, label %322

322:                                              ; preds = %321
  %323 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 9
  %324 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEE12emplace_backIJRKmEEERmDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %323, ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %325 unwind label %330

325:                                              ; preds = %322
  br label %334

326:                                              ; preds = %277
  %327 = landingpad { ptr, i32 }
          cleanup
  %328 = extractvalue { ptr, i32 } %327, 0
  store ptr %328, ptr %6, align 8
  %329 = extractvalue { ptr, i32 } %327, 1
  store i32 %329, ptr %7, align 4
  br label %371

330:                                              ; preds = %360, %357, %349, %346, %343, %335, %322, %319, %311, %308, %305, %297, %279
  %331 = landingpad { ptr, i32 }
          cleanup
  %332 = extractvalue { ptr, i32 } %331, 0
  store ptr %332, ptr %6, align 8
  %333 = extractvalue { ptr, i32 } %331, 1
  store i32 %333, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #6
  br label %371

334:                                              ; preds = %325, %321
  br label %335

335:                                              ; preds = %334, %307
  %336 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 1
  %337 = call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %336) #6
  %338 = load i64, ptr %20, align 8, !tbaa !19
  %339 = load ptr, ptr %337, align 8, !tbaa !15
  %340 = getelementptr inbounds ptr, ptr %339, i64 19
  %341 = load ptr, ptr %340, align 8
  %342 = invoke noundef double %341(ptr noundef nonnull align 8 dereferenceable(64) %337, i64 noundef %338)
          to label %343 unwind label %330

343:                                              ; preds = %335
  %344 = invoke noundef zeroext i1 @_ZN3uno9is_finiteIdEEbT_(double noundef %342)
          to label %345 unwind label %330

345:                                              ; preds = %343
  br i1 %344, label %346, label %365

346:                                              ; preds = %345
  %347 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 8
  %348 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEE12emplace_backIJRKmEEERmDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %347, ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %349 unwind label %330

349:                                              ; preds = %346
  %350 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 1
  %351 = call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %350) #6
  %352 = load i64, ptr %20, align 8, !tbaa !19
  %353 = load ptr, ptr %351, align 8, !tbaa !15
  %354 = getelementptr inbounds ptr, ptr %353, i64 18
  %355 = load ptr, ptr %354, align 8
  %356 = invoke noundef double %355(ptr noundef nonnull align 8 dereferenceable(64) %351, i64 noundef %352)
          to label %357 unwind label %330

357:                                              ; preds = %349
  %358 = invoke noundef zeroext i1 @_ZN3uno9is_finiteIdEEbT_(double noundef %356)
          to label %359 unwind label %330

359:                                              ; preds = %357
  br i1 %358, label %364, label %360

360:                                              ; preds = %359
  %361 = getelementptr inbounds %"class.uno::HomogeneousEqualityConstrainedModel", ptr %22, i32 0, i32 10
  %362 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEE12emplace_backIJRKmEEERmDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %361, ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %363 unwind label %330

363:                                              ; preds = %360
  br label %364

364:                                              ; preds = %363, %359
  br label %365

365:                                              ; preds = %364, %345
  %366 = load i64, ptr %16, align 8, !tbaa !19
  %367 = add i64 %366, 1
  store i64 %367, ptr %16, align 8, !tbaa !19
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #6
  br label %368

368:                                              ; preds = %365
  %369 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN3uno10CollectionImE8iteratorppEv(ptr noundef nonnull align 8 dereferenceable(16) %18)
          to label %370 unwind label %273

370:                                              ; preds = %368
  br label %165

371:                                              ; preds = %330, %326
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #6
  br label %372

372:                                              ; preds = %371, %273
  call void @llvm.lifetime.end.p0(i64 16, ptr %19) #6
  br label %373

373:                                              ; preds = %372, %269
  call void @llvm.lifetime.end.p0(i64 16, ptr %18) #6
  br label %374

374:                                              ; preds = %373, %265
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #6
  call void @_ZN3uno13ConcatenationIRKNS_10CollectionImEENS_17CollectionAdapterISt6vectorImSaImEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #6
  br label %376

375:                                              ; preds = %168
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #6
  ret void

376:                                              ; preds = %374, %264, %252
  call void @_ZN3uno13ConcatenationIRKNS_10CollectionImEENS_17CollectionAdapterISt6vectorImSaImEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #6
  br label %377

377:                                              ; preds = %376, %251, %239
  call void @_ZN3uno13ConcatenationIRKNS_10CollectionImEENS_17CollectionAdapterISt6vectorImSaImEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #6
  br label %378

378:                                              ; preds = %377, %238, %226
  call void @_ZN3uno13ConcatenationIRKNS_10CollectionImEENS_17CollectionAdapterISt6vectorImSaImEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #6
  br label %379

379:                                              ; preds = %378, %225, %213
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %99) #6
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %98) #6
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %93) #6
  br label %380

380:                                              ; preds = %379, %209, %205
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %88) #6
  br label %381

381:                                              ; preds = %380, %201, %197
  call void @_ZN3uno12SparseVectorImED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %74) #6
  br label %382

382:                                              ; preds = %381, %193
  call void @_ZN3uno10CollectionImED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %72) #6
  br label %383

383:                                              ; preds = %382, %189
  call void @_ZN3uno10CollectionImED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %68) #6
  br label %384

384:                                              ; preds = %383, %185
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %62) #6
  br label %385

385:                                              ; preds = %384, %181
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %48) #6
  br label %386

386:                                              ; preds = %385, %177, %173
  call void @_ZNSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %47) #6
  call void @_ZN3uno5ModelD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %22) #6
  br label %387

387:                                              ; preds = %386, %169
  %388 = load ptr, ptr %6, align 8
  %389 = load i32, ptr %7, align 4
  %390 = insertvalue { ptr, i32 } poison, ptr %388, 0
  %391 = insertvalue { ptr, i32 } %390, i32 %389, 1
  resume { ptr, i32 } %391
}

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #1

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

declare i32 @__gxx_personality_v0(...)

declare void @_ZN3uno5ModelC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmmd(ptr noundef nonnull align 8 dereferenceable(64), ptr noundef, i64 noundef, i64 noundef, double noundef) unnamed_addr #3

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3uno12SparseVectorImEC2Em(ptr noundef nonnull align 8 dereferenceable(56), i64 noundef) unnamed_addr #0 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3uno11concatenateIRKNS_10CollectionImEENS_17CollectionAdapterISt6vectorImSaImEEEEEENS_13ConcatenationIT_T0_EEOSB_OSC_(ptr dead_on_unwind noalias writable sret(%"class.uno::Concatenation") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(16)) #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3uno5adaptISt6vectorImSaImEEEENS_17CollectionAdapterIT_EERKS5_(ptr dead_on_unwind noalias writable sret(%"class.uno::CollectionAdapter") align 8, ptr noundef nonnull align 8 dereferenceable(24)) #0

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i64 } @_ZNK3uno10CollectionImE5beginEv(ptr noundef nonnull align 8 dereferenceable(8)) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i64 } @_ZNK3uno10CollectionImE3endEv(ptr noundef nonnull align 8 dereferenceable(8)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN3unoneERKNS_10CollectionImE8iteratorES4_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) #2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3uno12SparseVectorImE6insertEmm(ptr noundef nonnull align 8 dereferenceable(56), i64 noundef, i64 noundef) #0 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3uno9is_finiteIdEEbT_(double noundef) #1

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN3uno10CollectionImE8iteratorppEv(ptr noundef nonnull align 8 dereferenceable(16)) #0 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3uno13ConcatenationIRKNS_10CollectionImEENS_17CollectionAdapterISt6vectorImSaImEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #5 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3uno12SparseVectorImED2Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #5 align 2

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

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

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

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

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

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


; 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::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator.2" = type { i8 }
%"class.uno::CollectionAdapter" = type { %"class.uno::Collection", ptr }
%"class.uno::Collection" = type { ptr }
%"class.uno::Collection<unsigned long>::iterator" = type { ptr, i64 }
%"class.uno::Concatenation" = type { %"class.uno::Collection", ptr, %"class.uno::CollectionAdapter" }

@.str = external hidden unnamed_addr constant [25 x i8], align 1
@_ZTVN3uno35HomogeneousEqualityConstrainedModelE = external dso_local unnamed_addr constant { [34 x ptr] }, align 8

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN3uno35HomogeneousEqualityConstrainedModelC2ESt10unique_ptrINS_5ModelESt14default_deleteIS2_EE(ptr noundef nonnull align 8 dereferenceable(448) %0, ptr noundef nonnull %1) unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca %"class.std::__cxx11::basic_string", align 8
  %4 = alloca %"class.std::allocator.2", align 1
  %5 = alloca %"class.std::allocator.2", align 1
  %6 = alloca %"class.std::allocator.2", align 1
  %7 = alloca %"class.std::allocator.2", align 1
  %8 = alloca %"class.uno::CollectionAdapter", align 8
  %9 = alloca %"class.uno::CollectionAdapter", align 8
  %10 = alloca %"class.uno::CollectionAdapter", align 8
  %11 = alloca %"class.uno::CollectionAdapter", align 8
  %12 = alloca %"class.uno::Collection<unsigned long>::iterator", align 8
  %13 = alloca %"class.uno::Collection<unsigned long>::iterator", align 8
  %14 = alloca i64, align 8
  %15 = tail call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1) #6
  %16 = getelementptr inbounds i8, ptr %15, i64 8
  call void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %3, ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull @.str)
  %17 = call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1) #6
  %18 = getelementptr inbounds i8, ptr %17, i64 40
  %19 = load i64, ptr %18, align 8, !tbaa !5
  %20 = call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1) #6
  %21 = load ptr, ptr %20, align 8, !tbaa !14
  %22 = getelementptr inbounds i8, ptr %21, i64 184
  %23 = load ptr, ptr %22, align 8
  %24 = invoke noundef nonnull align 8 dereferenceable(8) ptr %23(ptr noundef nonnull align 8 dereferenceable(64) %20)
          to label %25 unwind label %140

25:                                               ; preds = %2
  %26 = load ptr, ptr %24, align 8, !tbaa !14
  %27 = getelementptr inbounds i8, ptr %26, i64 16
  %28 = load ptr, ptr %27, align 8
  %29 = invoke noundef i64 %28(ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %30 unwind label %140

30:                                               ; preds = %25
  %31 = add i64 %29, %19
  %32 = call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1) #6
  %33 = getelementptr inbounds i8, ptr %32, i64 48
  %34 = load i64, ptr %33, align 8, !tbaa !16
  %35 = call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1) #6
  %36 = getelementptr inbounds i8, ptr %35, i64 56
  %37 = load double, ptr %36, align 8, !tbaa !17
  invoke void @_ZN3uno5ModelC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmmd(ptr noundef nonnull align 8 dereferenceable(64) %0, ptr noundef nonnull %3, i64 noundef %31, i64 noundef %34, double noundef %37)
          to label %38 unwind label %140

38:                                               ; preds = %30
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #6
  store ptr getelementptr inbounds inrange(-16, 256) (i8, ptr @_ZTVN3uno35HomogeneousEqualityConstrainedModelE, i64 16), ptr %0, align 8, !tbaa !14
  %39 = getelementptr inbounds i8, ptr %0, i64 64
  call void @_ZNSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEC2EOS4_(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull align 8 dereferenceable(8) %1) #6
  %40 = getelementptr inbounds i8, ptr %0, i64 72
  %41 = call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %39) #6
  %42 = load ptr, ptr %41, align 8, !tbaa !14
  %43 = getelementptr inbounds i8, ptr %42, i64 184
  %44 = load ptr, ptr %43, align 8
  %45 = invoke noundef nonnull align 8 dereferenceable(8) ptr %44(ptr noundef nonnull align 8 dereferenceable(64) %41)
          to label %46 unwind label %142

46:                                               ; preds = %38
  %47 = load ptr, ptr %45, align 8, !tbaa !14
  %48 = getelementptr inbounds i8, ptr %47, i64 16
  %49 = load ptr, ptr %48, align 8
  %50 = invoke noundef i64 %49(ptr noundef nonnull align 8 dereferenceable(8) %45)
          to label %51 unwind label %142

51:                                               ; preds = %46
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %4) #6
  call void @_ZNSaImEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  invoke void @_ZNSt6vectorImSaImEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %40, i64 noundef %50, ptr noundef nonnull align 1 dereferenceable(1) %4)
          to label %52 unwind label %144

52:                                               ; preds = %51
  call void @_ZNSt15__new_allocatorImED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #6
  %53 = getelementptr inbounds i8, ptr %0, i64 96
  %54 = call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %39) #6
  %55 = getelementptr inbounds i8, ptr %54, i64 48
  %56 = load i64, ptr %55, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #6
  call void @_ZNSaImEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #6
  invoke void @_ZNSt6vectorImSaImEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %53, i64 noundef %56, ptr noundef nonnull align 1 dereferenceable(1) %5)
          to label %57 unwind label %146

57:                                               ; preds = %52
  call void @_ZNSt15__new_allocatorImED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #6
  %58 = getelementptr inbounds i8, ptr %0, i64 120
  %59 = getelementptr inbounds i8, ptr %0, i64 48
  %60 = load i64, ptr %59, align 8, !tbaa !16
  invoke void @_ZN3uno5RangeILNS_14RangeDirectionE0EEC2Em(ptr noundef nonnull align 8 dereferenceable(24) %58, i64 noundef %60)
          to label %61 unwind label %148

61:                                               ; preds = %57
  %62 = getelementptr inbounds i8, ptr %0, i64 144
  invoke void @_ZN3uno5RangeILNS_14RangeDirectionE0EEC2Em(ptr noundef nonnull align 8 dereferenceable(24) %62, i64 noundef 0)
          to label %63 unwind label %150

63:                                               ; preds = %61
  %64 = getelementptr inbounds i8, ptr %0, i64 168
  %65 = call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %39) #6
  %66 = load ptr, ptr %65, align 8, !tbaa !14
  %67 = getelementptr inbounds i8, ptr %66, i64 184
  %68 = load ptr, ptr %67, align 8
  %69 = invoke noundef nonnull align 8 dereferenceable(8) ptr %68(ptr noundef nonnull align 8 dereferenceable(64) %65)
          to label %70 unwind label %152

70:                                               ; preds = %63
  %71 = load ptr, ptr %69, align 8, !tbaa !14
  %72 = getelementptr inbounds i8, ptr %71, i64 16
  %73 = load ptr, ptr %72, align 8
  %74 = invoke noundef i64 %73(ptr noundef nonnull align 8 dereferenceable(8) %69)
          to label %75 unwind label %152

75:                                               ; preds = %70
  invoke void @_ZN3uno12SparseVectorImEC2Em(ptr noundef nonnull align 8 dereferenceable(56) %64, i64 noundef %74)
          to label %76 unwind label %152

76:                                               ; preds = %75
  %77 = getelementptr inbounds i8, ptr %0, i64 224
  %78 = call noundef i64 @_ZNK3uno12SparseVectorImE4sizeEv(ptr noundef nonnull align 8 dereferenceable(56) %64)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %6) #6
  call void @_ZNSaImEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #6
  invoke void @_ZNSt6vectorImSaImEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %77, i64 noundef %78, ptr noundef nonnull align 1 dereferenceable(1) %6)
          to label %79 unwind label %154

79:                                               ; preds = %76
  call void @_ZNSt15__new_allocatorImED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #6
  %80 = getelementptr inbounds i8, ptr %0, i64 248
  %81 = call noundef i64 @_ZNK3uno12SparseVectorImE4sizeEv(ptr noundef nonnull align 8 dereferenceable(56) %64)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) #6
  call void @_ZNSaImEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #6
  invoke void @_ZNSt6vectorImSaImEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %80, i64 noundef %81, ptr noundef nonnull align 1 dereferenceable(1) %7)
          to label %82 unwind label %156

82:                                               ; preds = %79
  call void @_ZNSt15__new_allocatorImED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #6
  %83 = getelementptr inbounds i8, ptr %0, i64 272
  call void @_ZNSt6vectorImSaImEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %83) #6
  %84 = getelementptr inbounds i8, ptr %0, i64 296
  call void @_ZNSt6vectorImSaImEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %84) #6
  %85 = getelementptr inbounds i8, ptr %0, i64 320
  %86 = call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %39) #6
  %87 = load ptr, ptr %86, align 8, !tbaa !14
  %88 = getelementptr inbounds i8, ptr %87, i64 96
  %89 = load ptr, ptr %88, align 8
  %90 = invoke noundef nonnull align 8 dereferenceable(8) ptr %89(ptr noundef nonnull align 8 dereferenceable(64) %86)
          to label %91 unwind label %158

91:                                               ; preds = %82
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #6
  invoke void @_ZN3uno5adaptISt6vectorImSaImEEEENS_17CollectionAdapterIT_EERKS5_(ptr dead_on_unwind nonnull writable sret(%"class.uno::CollectionAdapter") align 8 %8, ptr noundef nonnull align 8 dereferenceable(24) %77)
          to label %92 unwind label %160

92:                                               ; preds = %91
  invoke void @_ZN3uno11concatenateIRKNS_10CollectionImEENS_17CollectionAdapterISt6vectorImSaImEEEEEENS_13ConcatenationIT_T0_EEOSB_OSC_(ptr dead_on_unwind nonnull writable sret(%"class.uno::Concatenation") align 8 %85, ptr noundef nonnull align 8 dereferenceable(8) %90, ptr noundef nonnull align 8 dereferenceable(16) %8)
          to label %93 unwind label %162

93:                                               ; preds = %92
  call void @_ZN3uno10CollectionImED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #6
  %94 = getelementptr inbounds i8, ptr %0, i64 352
  %95 = call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %39) #6
  %96 = load ptr, ptr %95, align 8, !tbaa !14
  %97 = getelementptr inbounds i8, ptr %96, i64 104
  %98 = load ptr, ptr %97, align 8
  %99 = invoke noundef nonnull align 8 dereferenceable(8) ptr %98(ptr noundef nonnull align 8 dereferenceable(64) %95)
          to label %100 unwind label %165

100:                                              ; preds = %93
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) #6
  invoke void @_ZN3uno5adaptISt6vectorImSaImEEEENS_17CollectionAdapterIT_EERKS5_(ptr dead_on_unwind nonnull writable sret(%"class.uno::CollectionAdapter") align 8 %9, ptr noundef nonnull align 8 dereferenceable(24) %80)
          to label %101 unwind label %167

101:                                              ; preds = %100
  invoke void @_ZN3uno11concatenateIRKNS_10CollectionImEENS_17CollectionAdapterISt6vectorImSaImEEEEEENS_13ConcatenationIT_T0_EEOSB_OSC_(ptr dead_on_unwind nonnull writable sret(%"class.uno::Concatenation") align 8 %94, ptr noundef nonnull align 8 dereferenceable(8) %99, ptr noundef nonnull align 8 dereferenceable(16) %9)
          to label %102 unwind label %169

102:                                              ; preds = %101
  call void @_ZN3uno10CollectionImED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %9) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #6
  %103 = getelementptr inbounds i8, ptr %0, i64 384
  %104 = call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %39) #6
  %105 = load ptr, ptr %104, align 8, !tbaa !14
  %106 = getelementptr inbounds i8, ptr %105, i64 120
  %107 = load ptr, ptr %106, align 8
  %108 = invoke noundef nonnull align 8 dereferenceable(8) ptr %107(ptr noundef nonnull align 8 dereferenceable(64) %104)
          to label %109 unwind label %172

109:                                              ; preds = %102
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %10) #6
  invoke void @_ZN3uno5adaptISt6vectorImSaImEEEENS_17CollectionAdapterIT_EERKS5_(ptr dead_on_unwind nonnull writable sret(%"class.uno::CollectionAdapter") align 8 %10, ptr noundef nonnull align 8 dereferenceable(24) %83)
          to label %110 unwind label %174

110:                                              ; preds = %109
  invoke void @_ZN3uno11concatenateIRKNS_10CollectionImEENS_17CollectionAdapterISt6vectorImSaImEEEEEENS_13ConcatenationIT_T0_EEOSB_OSC_(ptr dead_on_unwind nonnull writable sret(%"class.uno::Concatenation") align 8 %103, ptr noundef nonnull align 8 dereferenceable(8) %108, ptr noundef nonnull align 8 dereferenceable(16) %10)
          to label %111 unwind label %176

111:                                              ; preds = %110
  call void @_ZN3uno10CollectionImED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %10) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #6
  %112 = getelementptr inbounds i8, ptr %0, i64 416
  %113 = call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %39) #6
  %114 = load ptr, ptr %113, align 8, !tbaa !14
  %115 = getelementptr inbounds i8, ptr %114, i64 128
  %116 = load ptr, ptr %115, align 8
  %117 = invoke noundef nonnull align 8 dereferenceable(8) ptr %116(ptr noundef nonnull align 8 dereferenceable(64) %113)
          to label %118 unwind label %179

118:                                              ; preds = %111
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %11) #6
  invoke void @_ZN3uno5adaptISt6vectorImSaImEEEENS_17CollectionAdapterIT_EERKS5_(ptr dead_on_unwind nonnull writable sret(%"class.uno::CollectionAdapter") align 8 %11, ptr noundef nonnull align 8 dereferenceable(24) %84)
          to label %119 unwind label %181

119:                                              ; preds = %118
  invoke void @_ZN3uno11concatenateIRKNS_10CollectionImEENS_17CollectionAdapterISt6vectorImSaImEEEEEENS_13ConcatenationIT_T0_EEOSB_OSC_(ptr dead_on_unwind nonnull writable sret(%"class.uno::Concatenation") align 8 %112, ptr noundef nonnull align 8 dereferenceable(8) %117, ptr noundef nonnull align 8 dereferenceable(16) %11)
          to label %120 unwind label %183

120:                                              ; preds = %119
  call void @_ZN3uno10CollectionImED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %11) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #6
  %121 = call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %39) #6
  %122 = load ptr, ptr %121, align 8, !tbaa !14
  %123 = getelementptr inbounds i8, ptr %122, i64 184
  %124 = load ptr, ptr %123, align 8
  %125 = invoke noundef nonnull align 8 dereferenceable(8) ptr %124(ptr noundef nonnull align 8 dereferenceable(64) %121)
          to label %126 unwind label %186

126:                                              ; preds = %120
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %12) #6
  %127 = invoke { ptr, i64 } @_ZNK3uno10CollectionImE5beginEv(ptr noundef nonnull align 8 dereferenceable(8) %125)
          to label %128 unwind label %188

128:                                              ; preds = %126
  %129 = extractvalue { ptr, i64 } %127, 0
  store ptr %129, ptr %12, align 8
  %130 = getelementptr inbounds i8, ptr %12, i64 8
  %131 = extractvalue { ptr, i64 } %127, 1
  store i64 %131, ptr %130, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %13) #6
  %132 = invoke { ptr, i64 } @_ZNK3uno10CollectionImE3endEv(ptr noundef nonnull align 8 dereferenceable(8) %125)
          to label %133 unwind label %.loopexit.split-lp

133:                                              ; preds = %128
  %134 = extractvalue { ptr, i64 } %132, 0
  store ptr %134, ptr %13, align 8
  %135 = getelementptr inbounds i8, ptr %13, i64 8
  %136 = extractvalue { ptr, i64 } %132, 1
  store i64 %136, ptr %135, align 8
  br label %137

137:                                              ; preds = %249, %133
  %.034 = phi i64 [ 0, %133 ], [ %250, %249 ]
  %138 = call noundef zeroext i1 @_ZN3unoneERKNS_10CollectionImE8iteratorES4_(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef nonnull align 8 dereferenceable(16) %13)
  br i1 %138, label %190, label %139

139:                                              ; preds = %137
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12) #6
  ret void

140:                                              ; preds = %30, %25, %2
  %141 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #6
  br label %266

142:                                              ; preds = %46, %38
  %143 = landingpad { ptr, i32 }
          cleanup
  br label %265

144:                                              ; preds = %51
  %145 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorImED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #6
  br label %265

146:                                              ; preds = %52
  %147 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorImED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #6
  br label %264

148:                                              ; preds = %57
  %149 = landingpad { ptr, i32 }
          cleanup
  br label %263

150:                                              ; preds = %61
  %151 = landingpad { ptr, i32 }
          cleanup
  br label %262

152:                                              ; preds = %75, %70, %63
  %153 = landingpad { ptr, i32 }
          cleanup
  br label %261

154:                                              ; preds = %76
  %155 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorImED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #6
  br label %260

156:                                              ; preds = %79
  %157 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorImED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #6
  br label %259

158:                                              ; preds = %82
  %159 = landingpad { ptr, i32 }
          cleanup
  br label %258

160:                                              ; preds = %91
  %161 = landingpad { ptr, i32 }
          cleanup
  br label %164

162:                                              ; preds = %92
  %163 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3uno10CollectionImED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8) #6
  br label %164

164:                                              ; preds = %162, %160
  %.pn = phi { ptr, i32 } [ %163, %162 ], [ %161, %160 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #6
  br label %258

165:                                              ; preds = %93
  %166 = landingpad { ptr, i32 }
          cleanup
  br label %257

167:                                              ; preds = %100
  %168 = landingpad { ptr, i32 }
          cleanup
  br label %171

169:                                              ; preds = %101
  %170 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3uno10CollectionImED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %9) #6
  br label %171

171:                                              ; preds = %169, %167
  %.pn36 = phi { ptr, i32 } [ %170, %169 ], [ %168, %167 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #6
  br label %257

172:                                              ; preds = %102
  %173 = landingpad { ptr, i32 }
          cleanup
  br label %256

174:                                              ; preds = %109
  %175 = landingpad { ptr, i32 }
          cleanup
  br label %178

176:                                              ; preds = %110
  %177 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3uno10CollectionImED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %10) #6
  br label %178

178:                                              ; preds = %176, %174
  %.pn38 = phi { ptr, i32 } [ %177, %176 ], [ %175, %174 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #6
  br label %256

179:                                              ; preds = %111
  %180 = landingpad { ptr, i32 }
          cleanup
  br label %255

181:                                              ; preds = %118
  %182 = landingpad { ptr, i32 }
          cleanup
  br label %185

183:                                              ; preds = %119
  %184 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3uno10CollectionImED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %11) #6
  br label %185

185:                                              ; preds = %183, %181
  %.pn40 = phi { ptr, i32 } [ %184, %183 ], [ %182, %181 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #6
  br label %255

186:                                              ; preds = %120
  %187 = landingpad { ptr, i32 }
          cleanup
  br label %254

188:                                              ; preds = %126
  %189 = landingpad { ptr, i32 }
          cleanup
  br label %253

.loopexit:                                        ; preds = %249
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %252

.loopexit.split-lp:                               ; preds = %128
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %252

190:                                              ; preds = %137
  %191 = invoke noundef i64 @_ZNK3uno10CollectionImE8iteratordeEv(ptr noundef nonnull align 8 dereferenceable(16) %12)
          to label %192 unwind label %223

192:                                              ; preds = %190
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #6
  %193 = call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %39) #6
  %194 = getelementptr inbounds i8, ptr %193, i64 40
  %195 = load i64, ptr %194, align 8, !tbaa !5
  %196 = add i64 %195, %.034
  store i64 %196, ptr %14, align 8, !tbaa !18
  %197 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %40, i64 noundef %.034) #6
  store i64 %191, ptr %197, align 8, !tbaa !18
  %198 = load i64, ptr %14, align 8, !tbaa !18
  %199 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %53, i64 noundef %191) #6
  store i64 %198, ptr %199, align 8, !tbaa !18
  %200 = load i64, ptr %14, align 8, !tbaa !18
  invoke void @_ZN3uno12SparseVectorImE6insertEmm(ptr noundef nonnull align 8 dereferenceable(56) %64, i64 noundef %191, i64 noundef %200)
          to label %201 unwind label %225

201:                                              ; preds = %192
  %202 = call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %39) #6
  %203 = load ptr, ptr %202, align 8, !tbaa !14
  %204 = getelementptr inbounds i8, ptr %203, i64 144
  %205 = load ptr, ptr %204, align 8
  %206 = invoke noundef double %205(ptr noundef nonnull align 8 dereferenceable(64) %202, i64 noundef %191)
          to label %207 unwind label %225

207:                                              ; preds = %201
  %208 = invoke noundef zeroext i1 @_ZN3uno9is_finiteIdEEbT_(double noundef %206)
          to label %209 unwind label %225

209:                                              ; preds = %207
  br i1 %208, label %210, label %227

210:                                              ; preds = %209
  %211 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEE12emplace_backIJRKmEEERmDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %77, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %212 unwind label %225

212:                                              ; preds = %210
  %213 = call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %39) #6
  %214 = load ptr, ptr %213, align 8, !tbaa !14
  %215 = getelementptr inbounds i8, ptr %214, i64 152
  %216 = load ptr, ptr %215, align 8
  %217 = invoke noundef double %216(ptr noundef nonnull align 8 dereferenceable(64) %213, i64 noundef %191)
          to label %218 unwind label %225

218:                                              ; preds = %212
  %219 = invoke noundef zeroext i1 @_ZN3uno9is_finiteIdEEbT_(double noundef %217)
          to label %220 unwind label %225

220:                                              ; preds = %218
  br i1 %219, label %227, label %221

221:                                              ; preds = %220
  %222 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEE12emplace_backIJRKmEEERmDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %83, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %227 unwind label %225

223:                                              ; preds = %190
  %224 = landingpad { ptr, i32 }
          cleanup
  br label %252

225:                                              ; preds = %247, %244, %238, %236, %233, %227, %221, %218, %212, %210, %207, %201, %192
  %226 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #6
  br label %252

227:                                              ; preds = %220, %221, %209
  %228 = call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %39) #6
  %229 = load ptr, ptr %228, align 8, !tbaa !14
  %230 = getelementptr inbounds i8, ptr %229, i64 152
  %231 = load ptr, ptr %230, align 8
  %232 = invoke noundef double %231(ptr noundef nonnull align 8 dereferenceable(64) %228, i64 noundef %191)
          to label %233 unwind label %225

233:                                              ; preds = %227
  %234 = invoke noundef zeroext i1 @_ZN3uno9is_finiteIdEEbT_(double noundef %232)
          to label %235 unwind label %225

235:                                              ; preds = %233
  br i1 %234, label %236, label %249

236:                                              ; preds = %235
  %237 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEE12emplace_backIJRKmEEERmDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %80, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %238 unwind label %225

238:                                              ; preds = %236
  %239 = call noundef ptr @_ZNKSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %39) #6
  %240 = load ptr, ptr %239, align 8, !tbaa !14
  %241 = getelementptr inbounds i8, ptr %240, i64 144
  %242 = load ptr, ptr %241, align 8
  %243 = invoke noundef double %242(ptr noundef nonnull align 8 dereferenceable(64) %239, i64 noundef %191)
          to label %244 unwind label %225

244:                                              ; preds = %238
  %245 = invoke noundef zeroext i1 @_ZN3uno9is_finiteIdEEbT_(double noundef %243)
          to label %246 unwind label %225

246:                                              ; preds = %244
  br i1 %245, label %249, label %247

247:                                              ; preds = %246
  %248 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEE12emplace_backIJRKmEEERmDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %84, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %249 unwind label %225

249:                                              ; preds = %246, %247, %235
  %250 = add i64 %.034, 1
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #6
  %251 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN3uno10CollectionImE8iteratorppEv(ptr noundef nonnull align 8 dereferenceable(16) %12)
          to label %137 unwind label %.loopexit

252:                                              ; preds = %.loopexit, %.loopexit.split-lp, %223, %225
  %.pn44 = phi { ptr, i32 } [ %226, %225 ], [ %224, %223 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #6
  br label %253

253:                                              ; preds = %252, %188
  %.pn44.pn = phi { ptr, i32 } [ %.pn44, %252 ], [ %189, %188 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12) #6
  br label %254

254:                                              ; preds = %253, %186
  %.pn44.pn.pn = phi { ptr, i32 } [ %.pn44.pn, %253 ], [ %187, %186 ]
  call void @_ZN3uno13ConcatenationIRKNS_10CollectionImEENS_17CollectionAdapterISt6vectorImSaImEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #6
  br label %255

255:                                              ; preds = %254, %185, %179
  %.pn44.pn.pn.pn = phi { ptr, i32 } [ %.pn44.pn.pn, %254 ], [ %.pn40, %185 ], [ %180, %179 ]
  call void @_ZN3uno13ConcatenationIRKNS_10CollectionImEENS_17CollectionAdapterISt6vectorImSaImEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #6
  br label %256

256:                                              ; preds = %255, %178, %172
  %.pn44.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn44.pn.pn.pn, %255 ], [ %.pn38, %178 ], [ %173, %172 ]
  call void @_ZN3uno13ConcatenationIRKNS_10CollectionImEENS_17CollectionAdapterISt6vectorImSaImEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #6
  br label %257

257:                                              ; preds = %256, %171, %165
  %.pn44.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn44.pn.pn.pn.pn, %256 ], [ %.pn36, %171 ], [ %166, %165 ]
  call void @_ZN3uno13ConcatenationIRKNS_10CollectionImEENS_17CollectionAdapterISt6vectorImSaImEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #6
  br label %258

258:                                              ; preds = %257, %164, %158
  %.pn44.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn44.pn.pn.pn.pn.pn, %257 ], [ %.pn, %164 ], [ %159, %158 ]
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %84) #6
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %83) #6
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %80) #6
  br label %259

259:                                              ; preds = %258, %156
  %.pn44.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn44.pn.pn.pn.pn.pn.pn, %258 ], [ %157, %156 ]
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %77) #6
  br label %260

260:                                              ; preds = %259, %154
  %.pn44.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn44.pn.pn.pn.pn.pn.pn.pn, %259 ], [ %155, %154 ]
  call void @_ZN3uno12SparseVectorImED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %64) #6
  br label %261

261:                                              ; preds = %260, %152
  %.pn44.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn44.pn.pn.pn.pn.pn.pn.pn.pn, %260 ], [ %153, %152 ]
  call void @_ZN3uno10CollectionImED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %62) #6
  br label %262

262:                                              ; preds = %261, %150
  %.pn44.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn44.pn.pn.pn.pn.pn.pn.pn.pn.pn, %261 ], [ %151, %150 ]
  call void @_ZN3uno10CollectionImED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %58) #6
  br label %263

263:                                              ; preds = %262, %148
  %.pn44.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn44.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %262 ], [ %149, %148 ]
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %53) #6
  br label %264

264:                                              ; preds = %263, %146
  %.pn44.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn44.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %263 ], [ %147, %146 ]
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %40) #6
  br label %265

265:                                              ; preds = %264, %144, %142
  %.pn44.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn44.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %264 ], [ %145, %144 ], [ %143, %142 ]
  call void @_ZNSt10unique_ptrIN3uno5ModelESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #6
  call void @_ZN3uno5ModelD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %0) #6
  br label %266

266:                                              ; preds = %265, %140
  %.pn44.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn44.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %265 ], [ %141, %140 ]
  resume { ptr, i32 } %.pn44.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn
}

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #1

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

declare i32 @__gxx_personality_v0(...)

declare void @_ZN3uno5ModelC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmmd(ptr noundef nonnull align 8 dereferenceable(64), ptr noundef, i64 noundef, i64 noundef, double noundef) unnamed_addr #3

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3uno12SparseVectorImEC2Em(ptr noundef nonnull align 8 dereferenceable(56), i64 noundef) unnamed_addr #0 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3uno11concatenateIRKNS_10CollectionImEENS_17CollectionAdapterISt6vectorImSaImEEEEEENS_13ConcatenationIT_T0_EEOSB_OSC_(ptr dead_on_unwind noalias writable sret(%"class.uno::Concatenation") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3uno5adaptISt6vectorImSaImEEEENS_17CollectionAdapterIT_EERKS5_(ptr dead_on_unwind noalias writable sret(%"class.uno::CollectionAdapter") align 8, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i64 } @_ZNK3uno10CollectionImE5beginEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i64 } @_ZNK3uno10CollectionImE3endEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN3unoneERKNS_10CollectionImE8iteratorES4_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3uno12SparseVectorImE6insertEmm(ptr noundef nonnull align 8 dereferenceable(56), i64 noundef, i64 noundef) local_unnamed_addr #0 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3uno9is_finiteIdEEbT_(double noundef) local_unnamed_addr #1

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN3uno10CollectionImE8iteratorppEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #0 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3uno13ConcatenationIRKNS_10CollectionImEENS_17CollectionAdapterISt6vectorImSaImEEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #5 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3uno12SparseVectorImED2Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #5 align 2

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !12, i64 40}
!6 = !{!"_ZTSN3uno5ModelE", !7, i64 8, !12, i64 40, !12, i64 48, !13, i64 56}
!7 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !8, i64 0, !12, i64 8, !10, i64 16}
!8 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !9, i64 0}
!9 = !{!"any pointer", !10, i64 0}
!10 = !{!"omnipotent char", !11, i64 0}
!11 = !{!"Simple C++ TBAA"}
!12 = !{!"long", !10, i64 0}
!13 = !{!"double", !10, i64 0}
!14 = !{!15, !15, i64 0}
!15 = !{!"vtable pointer", !11, i64 0}
!16 = !{!6, !12, i64 48}
!17 = !{!6, !13, i64 56}
!18 = !{!12, !12, i64 0}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,InferFunctionAttrsPass,InstCombinePass,LoopSimplifyPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass