; LLVM IR from intel/qpl :: examples/low-level-api (canned_mode_with_data_example)

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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::__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" = type { i8 }
%"class.std::filesystem::__cxx11::directory_iterator" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::filesystem::__cxx11::path" = type { %"class.std::__cxx11::basic_string", %"struct.std::filesystem::__cxx11::path::_List" }
%"struct.std::filesystem::__cxx11::path::_List" = type { %"class.std::unique_ptr" }
%"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.std::basic_ifstream" = type { %"class.std::basic_istream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon.2 }
%union.anon.2 = type { i32 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::istreambuf_iterator" = type <{ ptr, i32, [4 x i8] }>
%"class.std::unique_ptr.6" = type { %"struct.std::__uniq_ptr_data.7" }
%"struct.std::__uniq_ptr_data.7" = type { %"class.std::__uniq_ptr_impl.8" }
%"class.std::__uniq_ptr_impl.8" = type { %"class.std::tuple.9" }
%"class.std::tuple.9" = type { %"struct.std::_Tuple_impl.10" }
%"struct.std::_Tuple_impl.10" = type { %"struct.std::_Head_base.13" }
%"struct.std::_Head_base.13" = type { ptr }
%struct.qpl_histogram = type { [286 x i32], [2 x i32], [30 x i32], [2 x i32] }
%struct.allocator_t = type { ptr, ptr }
%struct.qpl_job = type { ptr, i32, i32, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, ptr, ptr, i32, ptr, i32, i32, i8, i8, i8, i64, i64, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.qpl_aux_data }
%struct.qpl_aux_data = type { ptr, ptr, ptr, ptr, ptr, i32 }

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str = external hidden unnamed_addr constant [46 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [22 x i8], align 1

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr noundef %1) #0 personality ptr @__gxx_personality_v0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::allocator", align 1
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca ptr, align 8
  %15 = alloca %"class.std::filesystem::__cxx11::directory_iterator", align 8
  %16 = alloca %"class.std::filesystem::__cxx11::path", align 8
  %17 = alloca %"class.std::filesystem::__cxx11::directory_iterator", align 8
  %18 = alloca %"class.std::filesystem::__cxx11::directory_iterator", align 8
  %19 = alloca %"class.std::filesystem::__cxx11::directory_iterator", align 8
  %20 = alloca %"class.std::filesystem::__cxx11::directory_iterator", align 8
  %21 = alloca ptr, align 8
  %22 = alloca %"class.std::basic_ifstream", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::vector", align 8
  %25 = alloca %"class.std::vector", align 8
  %26 = alloca %"class.std::vector", align 8
  %27 = alloca %"class.std::istreambuf_iterator", align 8
  %28 = alloca %"class.std::istreambuf_iterator", align 8
  %29 = alloca i32, align 4
  %30 = alloca %"class.std::unique_ptr.6", align 8
  %31 = alloca i32, align 4
  %32 = alloca %struct.qpl_histogram, align 4
  %33 = alloca i32, align 4
  %34 = alloca %"class.std::unique_ptr.6", align 8
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca %struct.allocator_t, align 8
  %38 = alloca i32, align 4
  %39 = alloca i64, align 8
  %40 = alloca %"class.std::filesystem::__cxx11::path", align 8
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  %41 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str)
  %42 = call ptr @qpl_get_library_version()
  %43 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %41, ptr noundef %42)
  %44 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef @.str.1)
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #10
  store i32 2, ptr %6, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #10
  store i32 1, ptr %7, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #10
  %45 = load i32, ptr %4, align 4, !tbaa !5
  %46 = load ptr, ptr %5, align 8, !tbaa !9
  %47 = call noundef i32 @_ZL20parse_execution_pathiPPcP10qpl_path_ti(i32 noundef %45, ptr noundef %46, ptr noundef %6, i32 noundef 1)
  store i32 %47, ptr %8, align 4, !tbaa !5
  %48 = load i32, ptr %8, align 4, !tbaa !5
  %49 = icmp ne i32 %48, 0
  br i1 %49, label %50, label %51

50:                                               ; preds = %2
  store i32 1, ptr %3, align 4
  store i32 1, ptr %9, align 4
  br label %461

51:                                               ; preds = %2
  call void @llvm.lifetime.start.p0(i64 32, ptr %10) #10
  %52 = load ptr, ptr %5, align 8, !tbaa !9
  %53 = getelementptr inbounds ptr, ptr %52, i64 2
  %54 = load ptr, ptr %53, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef %54, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %55 unwind label %63

55:                                               ; preds = %51
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %15) #10
  call void @llvm.lifetime.start.p0(i64 40, ptr %16) #10
  invoke void @_ZNSt10filesystem7__cxx114pathC2INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES1_EERKT_NS1_6formatE(ptr noundef nonnull align 8 dereferenceable(40) %16, ptr noundef nonnull align 8 dereferenceable(32) %10, i8 noundef zeroext 2)
          to label %56 unwind label %67

56:                                               ; preds = %55
  invoke void @_ZNSt10filesystem7__cxx1118directory_iteratorC2ERKNS0_4pathE(ptr noundef nonnull align 8 dereferenceable(16) %15, ptr noundef nonnull align 8 dereferenceable(40) %16)
          to label %57 unwind label %71

57:                                               ; preds = %56
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %16) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %16) #10
  store ptr %15, ptr %14, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %17) #10
  %58 = load ptr, ptr %14, align 8, !tbaa !9
  call void @_ZNSt10filesystem7__cxx1118directory_iteratorC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %18, ptr noundef nonnull align 8 dereferenceable(16) %58) #10
  call void @_ZNSt10filesystem7__cxx115beginENS0_18directory_iteratorE(ptr dead_on_unwind writable sret(%"class.std::filesystem::__cxx11::directory_iterator") align 8 %17, ptr noundef %18) #10
  call void @_ZNSt10filesystem7__cxx1118directory_iteratorD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %19) #10
  %59 = load ptr, ptr %14, align 8, !tbaa !9
  call void @_ZNSt10filesystem7__cxx1118directory_iteratorC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %20, ptr noundef nonnull align 8 dereferenceable(16) %59) #10
  call void @_ZNSt10filesystem7__cxx113endENS0_18directory_iteratorE(ptr dead_on_unwind writable sret(%"class.std::filesystem::__cxx11::directory_iterator") align 8 %19, ptr noundef %20) #10
  call void @_ZNSt10filesystem7__cxx1118directory_iteratorD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %20) #10
  br label %60

60:                                               ; preds = %432, %57
  %61 = call noundef zeroext i1 @_ZNSt10filesystem7__cxx11neERKNS0_18directory_iteratorES3_(ptr noundef nonnull align 8 dereferenceable(16) %17, ptr noundef nonnull align 8 dereferenceable(16) %19) #10
  br i1 %61, label %76, label %62

62:                                               ; preds = %60
  store i32 2, ptr %9, align 4
  br label %454

63:                                               ; preds = %51
  %64 = landingpad { ptr, i32 }
          cleanup
  %65 = extractvalue { ptr, i32 } %64, 0
  store ptr %65, ptr %12, align 8
  %66 = extractvalue { ptr, i32 } %64, 1
  store i32 %66, ptr %13, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #10
  br label %460

67:                                               ; preds = %55
  %68 = landingpad { ptr, i32 }
          cleanup
  %69 = extractvalue { ptr, i32 } %68, 0
  store ptr %69, ptr %12, align 8
  %70 = extractvalue { ptr, i32 } %68, 1
  store i32 %70, ptr %13, align 4
  br label %75

71:                                               ; preds = %56
  %72 = landingpad { ptr, i32 }
          cleanup
  %73 = extractvalue { ptr, i32 } %72, 0
  store ptr %73, ptr %12, align 8
  %74 = extractvalue { ptr, i32 } %72, 1
  store i32 %74, ptr %13, align 4
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %16) #10
  br label %75

75:                                               ; preds = %71, %67
  call void @llvm.lifetime.end.p0(i64 40, ptr %16) #10
  br label %457

76:                                               ; preds = %60
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #10
  %77 = call noundef nonnull align 8 dereferenceable(41) ptr @_ZNKSt10filesystem7__cxx1118directory_iteratordeEv(ptr noundef nonnull align 8 dereferenceable(16) %17) #10
  store ptr %77, ptr %21, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 520, ptr %22) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #10
  %78 = load ptr, ptr %21, align 8, !tbaa !9
  %79 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt10filesystem7__cxx1115directory_entry4pathEv(ptr noundef nonnull align 8 dereferenceable(41) %78) #10
  invoke void @_ZNKSt10filesystem7__cxx114path6stringEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr noundef nonnull align 8 dereferenceable(40) %79)
          to label %80 unwind label %91

80:                                               ; preds = %76
  invoke void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256) %22, ptr noundef nonnull align 8 dereferenceable(32) %23, i32 noundef 4)
          to label %81 unwind label %95

81:                                               ; preds = %80
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #10
  %82 = invoke noundef zeroext i1 @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(256) %22)
          to label %83 unwind label %100

83:                                               ; preds = %81
  br i1 %82, label %104, label %84

84:                                               ; preds = %83
  %85 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.2)
          to label %86 unwind label %100

86:                                               ; preds = %84
  %87 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %85, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %88 unwind label %100

88:                                               ; preds = %86
  %89 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %87, i8 noundef signext 10)
          to label %90 unwind label %100

90:                                               ; preds = %88
  store i32 1, ptr %3, align 4
  store i32 1, ptr %9, align 4
  br label %424

91:                                               ; preds = %76
  %92 = landingpad { ptr, i32 }
          cleanup
  %93 = extractvalue { ptr, i32 } %92, 0
  store ptr %93, ptr %12, align 8
  %94 = extractvalue { ptr, i32 } %92, 1
  store i32 %94, ptr %13, align 4
  br label %99

95:                                               ; preds = %80
  %96 = landingpad { ptr, i32 }
          cleanup
  %97 = extractvalue { ptr, i32 } %96, 0
  store ptr %97, ptr %12, align 8
  %98 = extractvalue { ptr, i32 } %96, 1
  store i32 %98, ptr %13, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #10
  br label %99

99:                                               ; preds = %95, %91
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #10
  br label %449

100:                                              ; preds = %88, %86, %84, %81
  %101 = landingpad { ptr, i32 }
          cleanup
  %102 = extractvalue { ptr, i32 } %101, 0
  store ptr %102, ptr %12, align 8
  %103 = extractvalue { ptr, i32 } %101, 1
  store i32 %103, ptr %13, align 4
  br label %448

104:                                              ; preds = %83
  call void @llvm.lifetime.start.p0(i64 24, ptr %24) #10
  call void @_ZNSt6vectorIhSaIhEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %24) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %25) #10
  call void @_ZNSt6vectorIhSaIhEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %26) #10
  call void @_ZNSt6vectorIhSaIhEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #10
  %105 = load ptr, ptr %21, align 8, !tbaa !9
  %106 = invoke noundef i64 @_ZNKSt10filesystem7__cxx1115directory_entry9file_sizeEv(ptr noundef nonnull align 8 dereferenceable(41) %105)
          to label %107 unwind label %127

107:                                              ; preds = %104
  invoke void @_ZNSt6vectorIhSaIhEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef %106)
          to label %108 unwind label %127

108:                                              ; preds = %107
  call void @_ZNSt19istreambuf_iteratorIcSt11char_traitsIcEEC2ERSi(ptr noundef nonnull align 8 dereferenceable(12) %27, ptr noundef nonnull align 8 dereferenceable(16) %22) #10
  call void @_ZNSt19istreambuf_iteratorIcSt11char_traitsIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(12) %28) #10
  %109 = getelementptr inbounds { ptr, i32 }, ptr %27, i32 0, i32 0
  %110 = load ptr, ptr %109, align 8
  %111 = getelementptr inbounds { ptr, i32 }, ptr %27, i32 0, i32 1
  %112 = load i32, ptr %111, align 8
  %113 = getelementptr inbounds { ptr, i32 }, ptr %28, i32 0, i32 0
  %114 = load ptr, ptr %113, align 8
  %115 = getelementptr inbounds { ptr, i32 }, ptr %28, i32 0, i32 1
  %116 = load i32, ptr %115, align 8
  invoke void @_ZNSt6vectorIhSaIhEE6assignISt19istreambuf_iteratorIcSt11char_traitsIcEEvEEvT_S7_(ptr noundef nonnull align 8 dereferenceable(24) %24, ptr %110, i32 %112, ptr %114, i32 %116)
          to label %117 unwind label %127

117:                                              ; preds = %108
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #10
  %118 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %24) #10
  %119 = trunc i64 %118 to i32
  %120 = invoke i32 @qpl_get_safe_deflate_compression_buffer_size(i32 noundef %119)
          to label %121 unwind label %131

121:                                              ; preds = %117
  store i32 %120, ptr %29, align 4, !tbaa !5
  %122 = load i32, ptr %29, align 4, !tbaa !5
  %123 = icmp eq i32 %122, 0
  br i1 %123, label %124, label %135

124:                                              ; preds = %121
  %125 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.3)
          to label %126 unwind label %131

126:                                              ; preds = %124
  store i32 1, ptr %3, align 4
  store i32 1, ptr %9, align 4
  br label %423

127:                                              ; preds = %108, %107, %104
  %128 = landingpad { ptr, i32 }
          cleanup
  %129 = extractvalue { ptr, i32 } %128, 0
  store ptr %129, ptr %12, align 8
  %130 = extractvalue { ptr, i32 } %128, 1
  store i32 %130, ptr %13, align 4
  br label %447

131:                                              ; preds = %138, %135, %124, %117
  %132 = landingpad { ptr, i32 }
          cleanup
  %133 = extractvalue { ptr, i32 } %132, 0
  store ptr %133, ptr %12, align 8
  %134 = extractvalue { ptr, i32 } %132, 1
  store i32 %134, ptr %13, align 4
  br label %446

135:                                              ; preds = %121
  %136 = load i32, ptr %29, align 4, !tbaa !5
  %137 = zext i32 %136 to i64
  invoke void @_ZNSt6vectorIhSaIhEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %137)
          to label %138 unwind label %131

138:                                              ; preds = %135
  %139 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %24) #10
  invoke void @_ZNSt6vectorIhSaIhEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %139)
          to label %140 unwind label %131

140:                                              ; preds = %138
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #10
  call void @_ZNSt10unique_ptrIA_hSt14default_deleteIS0_EEC2IS2_vEEv(ptr noundef nonnull align 8 dereferenceable(8) %30) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #10
  store i32 0, ptr %31, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1280, ptr %32) #10
  call void @llvm.memset.p0.i64(ptr align 4 %32, i8 0, i64 1280, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #10
  %141 = load i32, ptr %6, align 4, !tbaa !11
  %142 = invoke i32 @qpl_get_job_size(i32 noundef %141, ptr noundef %31)
          to label %143 unwind label %154

143:                                              ; preds = %140
  store i32 %142, ptr %33, align 4, !tbaa !13
  %144 = load i32, ptr %33, align 4, !tbaa !13
  %145 = icmp ne i32 %144, 0
  br i1 %145, label %146, label %158

146:                                              ; preds = %143
  %147 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.4)
          to label %148 unwind label %154

148:                                              ; preds = %146
  %149 = load i32, ptr %33, align 4, !tbaa !13
  %150 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %147, i32 noundef %149)
          to label %151 unwind label %154

151:                                              ; preds = %148
  %152 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %150, ptr noundef @.str.5)
          to label %153 unwind label %154

153:                                              ; preds = %151
  store i32 1, ptr %3, align 4
  store i32 1, ptr %9, align 4
  br label %422

154:                                              ; preds = %151, %148, %146, %140
  %155 = landingpad { ptr, i32 }
          cleanup
  %156 = extractvalue { ptr, i32 } %155, 0
  store ptr %156, ptr %12, align 8
  %157 = extractvalue { ptr, i32 } %155, 1
  store i32 %157, ptr %13, align 4
  br label %445

158:                                              ; preds = %143
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #10
  %159 = load i32, ptr %31, align 4, !tbaa !5
  %160 = zext i32 %159 to i64
  invoke void @_ZSt11make_uniqueIA_hENSt8__detail9_MakeUniqIT_E7__arrayEm(ptr dead_on_unwind writable sret(%"class.std::unique_ptr.6") align 8 %34, i64 noundef %160)
          to label %161 unwind label %178

161:                                              ; preds = %158
  %162 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt10unique_ptrIA_hSt14default_deleteIS0_EEaSEOS3_(ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef nonnull align 8 dereferenceable(8) %34) #10
  call void @_ZNSt10unique_ptrIA_hSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #10
  %163 = call noundef ptr @_ZNKSt10unique_ptrIA_hSt14default_deleteIS0_EE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %30) #10
  store ptr %163, ptr %35, align 8, !tbaa !9
  %164 = load i32, ptr %6, align 4, !tbaa !11
  %165 = load ptr, ptr %35, align 8, !tbaa !9
  %166 = invoke i32 @qpl_init_job(i32 noundef %164, ptr noundef %165)
          to label %167 unwind label %182

167:                                              ; preds = %161
  store i32 %166, ptr %33, align 4, !tbaa !13
  %168 = load i32, ptr %33, align 4, !tbaa !13
  %169 = icmp ne i32 %168, 0
  br i1 %169, label %170, label %186

170:                                              ; preds = %167
  %171 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.4)
          to label %172 unwind label %182

172:                                              ; preds = %170
  %173 = load i32, ptr %33, align 4, !tbaa !13
  %174 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %171, i32 noundef %173)
          to label %175 unwind label %182

175:                                              ; preds = %172
  %176 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %174, ptr noundef @.str.6)
          to label %177 unwind label %182

177:                                              ; preds = %175
  store i32 1, ptr %3, align 4
  store i32 1, ptr %9, align 4
  br label %421

178:                                              ; preds = %158
  %179 = landingpad { ptr, i32 }
          cleanup
  %180 = extractvalue { ptr, i32 } %179, 0
  store ptr %180, ptr %12, align 8
  %181 = extractvalue { ptr, i32 } %179, 1
  store i32 %181, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #10
  br label %445

182:                                              ; preds = %175, %172, %170, %161
  %183 = landingpad { ptr, i32 }
          cleanup
  %184 = extractvalue { ptr, i32 } %183, 0
  store ptr %184, ptr %12, align 8
  %185 = extractvalue { ptr, i32 } %183, 1
  store i32 %185, ptr %13, align 4
  br label %444

186:                                              ; preds = %167
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #10
  store ptr null, ptr %36, align 8, !tbaa !9
  %187 = load i32, ptr %6, align 4, !tbaa !11
  %188 = getelementptr inbounds %struct.allocator_t, ptr %37, i32 0, i32 0
  store ptr @malloc, ptr %188, align 8, !tbaa !15
  %189 = getelementptr inbounds %struct.allocator_t, ptr %37, i32 0, i32 1
  store ptr @free, ptr %189, align 8, !tbaa !17
  %190 = getelementptr inbounds { ptr, ptr }, ptr %37, i32 0, i32 0
  %191 = load ptr, ptr %190, align 8
  %192 = getelementptr inbounds { ptr, ptr }, ptr %37, i32 0, i32 1
  %193 = load ptr, ptr %192, align 8
  %194 = invoke i32 @qpl_deflate_huffman_table_create(i32 noundef 0, i32 noundef %187, ptr %191, ptr %193, ptr noundef %36)
          to label %195 unwind label %206

195:                                              ; preds = %186
  store i32 %194, ptr %33, align 4, !tbaa !13
  %196 = load i32, ptr %33, align 4, !tbaa !13
  %197 = icmp ne i32 %196, 0
  br i1 %197, label %198, label %210

198:                                              ; preds = %195
  %199 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.4)
          to label %200 unwind label %206

200:                                              ; preds = %198
  %201 = load i32, ptr %33, align 4, !tbaa !13
  %202 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %199, i32 noundef %201)
          to label %203 unwind label %206

203:                                              ; preds = %200
  %204 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %202, ptr noundef @.str.7)
          to label %205 unwind label %206

205:                                              ; preds = %203
  store i32 1, ptr %3, align 4
  store i32 1, ptr %9, align 4
  br label %420

206:                                              ; preds = %283, %281, %278, %276, %247, %243, %241, %238, %236, %230, %226, %224, %221, %219, %210, %203, %200, %198, %186
  %207 = landingpad { ptr, i32 }
          cleanup
  %208 = extractvalue { ptr, i32 } %207, 0
  store ptr %208, ptr %12, align 8
  %209 = extractvalue { ptr, i32 } %207, 1
  store i32 %209, ptr %13, align 4
  br label %443

210:                                              ; preds = %195
  %211 = call noundef ptr @_ZNSt6vectorIhSaIhEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %24) #10
  %212 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %24) #10
  %213 = trunc i64 %212 to i32
  %214 = load i32, ptr %6, align 4, !tbaa !11
  %215 = invoke i32 @qpl_gather_deflate_statistics(ptr noundef %211, i32 noundef %213, ptr noundef %32, i32 noundef 1, i32 noundef %214)
          to label %216 unwind label %206

216:                                              ; preds = %210
  store i32 %215, ptr %33, align 4, !tbaa !13
  %217 = load i32, ptr %33, align 4, !tbaa !13
  %218 = icmp ne i32 %217, 0
  br i1 %218, label %219, label %230

219:                                              ; preds = %216
  %220 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.4)
          to label %221 unwind label %206

221:                                              ; preds = %219
  %222 = load i32, ptr %33, align 4, !tbaa !13
  %223 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %220, i32 noundef %222)
          to label %224 unwind label %206

224:                                              ; preds = %221
  %225 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %223, ptr noundef @.str.8)
          to label %226 unwind label %206

226:                                              ; preds = %224
  %227 = load ptr, ptr %36, align 8, !tbaa !9
  %228 = invoke i32 @qpl_huffman_table_destroy(ptr noundef %227)
          to label %229 unwind label %206

229:                                              ; preds = %226
  store i32 1, ptr %3, align 4
  store i32 1, ptr %9, align 4
  br label %420

230:                                              ; preds = %216
  %231 = load ptr, ptr %36, align 8, !tbaa !9
  %232 = invoke i32 @qpl_huffman_table_init_with_histogram(ptr noundef %231, ptr noundef %32)
          to label %233 unwind label %206

233:                                              ; preds = %230
  store i32 %232, ptr %33, align 4, !tbaa !13
  %234 = load i32, ptr %33, align 4, !tbaa !13
  %235 = icmp ne i32 %234, 0
  br i1 %235, label %236, label %247

236:                                              ; preds = %233
  %237 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.4)
          to label %238 unwind label %206

238:                                              ; preds = %236
  %239 = load i32, ptr %33, align 4, !tbaa !13
  %240 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %237, i32 noundef %239)
          to label %241 unwind label %206

241:                                              ; preds = %238
  %242 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %240, ptr noundef @.str.9)
          to label %243 unwind label %206

243:                                              ; preds = %241
  %244 = load ptr, ptr %36, align 8, !tbaa !9
  %245 = invoke i32 @qpl_huffman_table_destroy(ptr noundef %244)
          to label %246 unwind label %206

246:                                              ; preds = %243
  store i32 1, ptr %3, align 4
  store i32 1, ptr %9, align 4
  br label %420

247:                                              ; preds = %233
  %248 = load ptr, ptr %35, align 8, !tbaa !9
  %249 = getelementptr inbounds %struct.qpl_job, ptr %248, i32 0, i32 6
  store i32 1, ptr %249, align 8, !tbaa !18
  %250 = load ptr, ptr %35, align 8, !tbaa !9
  %251 = getelementptr inbounds %struct.qpl_job, ptr %250, i32 0, i32 11
  store i32 1, ptr %251, align 4, !tbaa !28
  %252 = call noundef ptr @_ZNSt6vectorIhSaIhEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %24) #10
  %253 = load ptr, ptr %35, align 8, !tbaa !9
  %254 = getelementptr inbounds %struct.qpl_job, ptr %253, i32 0, i32 0
  store ptr %252, ptr %254, align 8, !tbaa !29
  %255 = call noundef ptr @_ZNSt6vectorIhSaIhEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %25) #10
  %256 = load ptr, ptr %35, align 8, !tbaa !9
  %257 = getelementptr inbounds %struct.qpl_job, ptr %256, i32 0, i32 3
  store ptr %255, ptr %257, align 8, !tbaa !30
  %258 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %24) #10
  %259 = trunc i64 %258 to i32
  %260 = load ptr, ptr %35, align 8, !tbaa !9
  %261 = getelementptr inbounds %struct.qpl_job, ptr %260, i32 0, i32 1
  store i32 %259, ptr %261, align 8, !tbaa !31
  %262 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %25) #10
  %263 = trunc i64 %262 to i32
  %264 = load ptr, ptr %35, align 8, !tbaa !9
  %265 = getelementptr inbounds %struct.qpl_job, ptr %264, i32 0, i32 4
  store i32 %263, ptr %265, align 8, !tbaa !32
  %266 = load ptr, ptr %35, align 8, !tbaa !9
  %267 = getelementptr inbounds %struct.qpl_job, ptr %266, i32 0, i32 7
  store i32 4210691, ptr %267, align 4, !tbaa !33
  %268 = load ptr, ptr %36, align 8, !tbaa !9
  %269 = load ptr, ptr %35, align 8, !tbaa !9
  %270 = getelementptr inbounds %struct.qpl_job, ptr %269, i32 0, i32 13
  store ptr %268, ptr %270, align 8, !tbaa !34
  %271 = load ptr, ptr %35, align 8, !tbaa !9
  %272 = invoke i32 @qpl_execute_job(ptr noundef %271)
          to label %273 unwind label %206

273:                                              ; preds = %247
  store i32 %272, ptr %33, align 4, !tbaa !13
  %274 = load i32, ptr %33, align 4, !tbaa !13
  %275 = icmp ne i32 %274, 0
  br i1 %275, label %276, label %287

276:                                              ; preds = %273
  %277 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.4)
          to label %278 unwind label %206

278:                                              ; preds = %276
  %279 = load i32, ptr %33, align 4, !tbaa !13
  %280 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %277, i32 noundef %279)
          to label %281 unwind label %206

281:                                              ; preds = %278
  %282 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %280, ptr noundef @.str.10)
          to label %283 unwind label %206

283:                                              ; preds = %281
  %284 = load ptr, ptr %36, align 8, !tbaa !9
  %285 = invoke i32 @qpl_huffman_table_destroy(ptr noundef %284)
          to label %286 unwind label %206

286:                                              ; preds = %283
  store i32 1, ptr %3, align 4
  store i32 1, ptr %9, align 4
  br label %420

287:                                              ; preds = %273
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #10
  %288 = load ptr, ptr %35, align 8, !tbaa !9
  %289 = getelementptr inbounds %struct.qpl_job, ptr %288, i32 0, i32 5
  %290 = load i32, ptr %289, align 4, !tbaa !35
  store i32 %290, ptr %38, align 4, !tbaa !5
  %291 = load ptr, ptr %35, align 8, !tbaa !9
  %292 = getelementptr inbounds %struct.qpl_job, ptr %291, i32 0, i32 6
  store i32 0, ptr %292, align 8, !tbaa !18
  %293 = call noundef ptr @_ZNSt6vectorIhSaIhEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %25) #10
  %294 = load ptr, ptr %35, align 8, !tbaa !9
  %295 = getelementptr inbounds %struct.qpl_job, ptr %294, i32 0, i32 0
  store ptr %293, ptr %295, align 8, !tbaa !29
  %296 = call noundef ptr @_ZNSt6vectorIhSaIhEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %26) #10
  %297 = load ptr, ptr %35, align 8, !tbaa !9
  %298 = getelementptr inbounds %struct.qpl_job, ptr %297, i32 0, i32 3
  store ptr %296, ptr %298, align 8, !tbaa !30
  %299 = load i32, ptr %38, align 4, !tbaa !5
  %300 = load ptr, ptr %35, align 8, !tbaa !9
  %301 = getelementptr inbounds %struct.qpl_job, ptr %300, i32 0, i32 1
  store i32 %299, ptr %301, align 8, !tbaa !31
  %302 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %26) #10
  %303 = trunc i64 %302 to i32
  %304 = load ptr, ptr %35, align 8, !tbaa !9
  %305 = getelementptr inbounds %struct.qpl_job, ptr %304, i32 0, i32 4
  store i32 %303, ptr %305, align 8, !tbaa !32
  %306 = load ptr, ptr %35, align 8, !tbaa !9
  %307 = getelementptr inbounds %struct.qpl_job, ptr %306, i32 0, i32 7
  store i32 4194307, ptr %307, align 4, !tbaa !33
  %308 = load ptr, ptr %36, align 8, !tbaa !9
  %309 = load ptr, ptr %35, align 8, !tbaa !9
  %310 = getelementptr inbounds %struct.qpl_job, ptr %309, i32 0, i32 13
  store ptr %308, ptr %310, align 8, !tbaa !34
  %311 = load ptr, ptr %35, align 8, !tbaa !9
  %312 = invoke i32 @qpl_execute_job(ptr noundef %311)
          to label %313 unwind label %327

313:                                              ; preds = %287
  store i32 %312, ptr %33, align 4, !tbaa !13
  %314 = load i32, ptr %33, align 4, !tbaa !13
  %315 = icmp ne i32 %314, 0
  br i1 %315, label %316, label %331

316:                                              ; preds = %313
  %317 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.4)
          to label %318 unwind label %327

318:                                              ; preds = %316
  %319 = load i32, ptr %33, align 4, !tbaa !13
  %320 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %317, i32 noundef %319)
          to label %321 unwind label %327

321:                                              ; preds = %318
  %322 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %320, ptr noundef @.str.11)
          to label %323 unwind label %327

323:                                              ; preds = %321
  %324 = load ptr, ptr %36, align 8, !tbaa !9
  %325 = invoke i32 @qpl_huffman_table_destroy(ptr noundef %324)
          to label %326 unwind label %327

326:                                              ; preds = %323
  store i32 1, ptr %3, align 4
  store i32 1, ptr %9, align 4
  br label %419

327:                                              ; preds = %416, %409, %407, %404, %402, %399, %397, %388, %356, %353, %351, %345, %342, %339, %337, %331, %323, %321, %318, %316, %287
  %328 = landingpad { ptr, i32 }
          cleanup
  %329 = extractvalue { ptr, i32 } %328, 0
  store ptr %329, ptr %12, align 8
  %330 = extractvalue { ptr, i32 } %328, 1
  store i32 %330, ptr %13, align 4
  br label %442

331:                                              ; preds = %313
  %332 = load ptr, ptr %36, align 8, !tbaa !9
  %333 = invoke i32 @qpl_huffman_table_destroy(ptr noundef %332)
          to label %334 unwind label %327

334:                                              ; preds = %331
  store i32 %333, ptr %33, align 4, !tbaa !13
  %335 = load i32, ptr %33, align 4, !tbaa !13
  %336 = icmp ne i32 %335, 0
  br i1 %336, label %337, label %345

337:                                              ; preds = %334
  %338 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.4)
          to label %339 unwind label %327

339:                                              ; preds = %337
  %340 = load i32, ptr %33, align 4, !tbaa !13
  %341 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %338, i32 noundef %340)
          to label %342 unwind label %327

342:                                              ; preds = %339
  %343 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %341, ptr noundef @.str.12)
          to label %344 unwind label %327

344:                                              ; preds = %342
  store i32 1, ptr %3, align 4
  store i32 1, ptr %9, align 4
  br label %419

345:                                              ; preds = %334
  %346 = load ptr, ptr %35, align 8, !tbaa !9
  %347 = invoke i32 @qpl_fini_job(ptr noundef %346)
          to label %348 unwind label %327

348:                                              ; preds = %345
  store i32 %347, ptr %33, align 4, !tbaa !13
  %349 = load i32, ptr %33, align 4, !tbaa !13
  %350 = icmp ne i32 %349, 0
  br i1 %350, label %351, label %359

351:                                              ; preds = %348
  %352 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.4)
          to label %353 unwind label %327

353:                                              ; preds = %351
  %354 = load i32, ptr %33, align 4, !tbaa !13
  %355 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %352, i32 noundef %354)
          to label %356 unwind label %327

356:                                              ; preds = %353
  %357 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %355, ptr noundef @.str.13)
          to label %358 unwind label %327

358:                                              ; preds = %356
  store i32 1, ptr %3, align 4
  store i32 1, ptr %9, align 4
  br label %419

359:                                              ; preds = %348
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #10
  store i64 0, ptr %39, align 8, !tbaa !36
  br label %360

360:                                              ; preds = %383, %359
  %361 = load i64, ptr %39, align 8, !tbaa !36
  %362 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %24) #10
  %363 = icmp ult i64 %361, %362
  br i1 %363, label %365, label %364

364:                                              ; preds = %360
  store i32 4, ptr %9, align 4
  br label %386

365:                                              ; preds = %360
  %366 = load i64, ptr %39, align 8, !tbaa !36
  %367 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIhSaIhEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %24, i64 noundef %366) #10
  %368 = load i8, ptr %367, align 1, !tbaa !37
  %369 = zext i8 %368 to i32
  %370 = load i64, ptr %39, align 8, !tbaa !36
  %371 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIhSaIhEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %370) #10
  %372 = load i8, ptr %371, align 1, !tbaa !37
  %373 = zext i8 %372 to i32
  %374 = icmp ne i32 %369, %373
  br i1 %374, label %375, label %382

375:                                              ; preds = %365
  %376 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.14)
          to label %377 unwind label %378

377:                                              ; preds = %375
  store i32 1, ptr %3, align 4
  store i32 1, ptr %9, align 4
  br label %386

378:                                              ; preds = %375
  %379 = landingpad { ptr, i32 }
          cleanup
  %380 = extractvalue { ptr, i32 } %379, 0
  store ptr %380, ptr %12, align 8
  %381 = extractvalue { ptr, i32 } %379, 1
  store i32 %381, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #10
  br label %442

382:                                              ; preds = %365
  br label %383

383:                                              ; preds = %382
  %384 = load i64, ptr %39, align 8, !tbaa !36
  %385 = add i64 %384, 1
  store i64 %385, ptr %39, align 8, !tbaa !36
  br label %360, !llvm.loop !38

386:                                              ; preds = %377, %364
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #10
  %387 = load i32, ptr %9, align 4
  switch i32 %387, label %419 [
    i32 4, label %388
  ]

388:                                              ; preds = %386
  %389 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.15)
          to label %390 unwind label %327

390:                                              ; preds = %388
  call void @llvm.lifetime.start.p0(i64 40, ptr %40) #10
  %391 = load ptr, ptr %21, align 8, !tbaa !9
  %392 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt10filesystem7__cxx1115directory_entry4pathEv(ptr noundef nonnull align 8 dereferenceable(41) %391) #10
  invoke void @_ZNKSt10filesystem7__cxx114path8filenameEv(ptr dead_on_unwind writable sret(%"class.std::filesystem::__cxx11::path") align 8 %40, ptr noundef nonnull align 8 dereferenceable(40) %392)
          to label %393 unwind label %433

393:                                              ; preds = %390
  %394 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt10filesystem7__cxx11lsIcSt11char_traitsIcEEERSt13basic_ostreamIT_T0_ES8_RKNS0_4pathE(ptr noundef nonnull align 8 dereferenceable(8) %389, ptr noundef nonnull align 8 dereferenceable(40) %40)
          to label %395 unwind label %437

395:                                              ; preds = %393
  %396 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %394, ptr noundef @.str.16)
          to label %397 unwind label %437

397:                                              ; preds = %395
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %40) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %40) #10
  %398 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.17)
          to label %399 unwind label %327

399:                                              ; preds = %397
  %400 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %24) #10
  %401 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %398, i64 noundef %400)
          to label %402 unwind label %327

402:                                              ; preds = %399
  %403 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %401, ptr noundef @.str.18)
          to label %404 unwind label %327

404:                                              ; preds = %402
  %405 = load i32, ptr %38, align 4, !tbaa !5
  %406 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %403, i32 noundef %405)
          to label %407 unwind label %327

407:                                              ; preds = %404
  %408 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %406, ptr noundef @.str.19)
          to label %409 unwind label %327

409:                                              ; preds = %407
  %410 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %24) #10
  %411 = uitofp i64 %410 to float
  %412 = load i32, ptr %38, align 4, !tbaa !5
  %413 = uitofp i32 %412 to float
  %414 = fdiv float %411, %413
  %415 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %408, float noundef %414)
          to label %416 unwind label %327

416:                                              ; preds = %409
  %417 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %415, ptr noundef @.str.1)
          to label %418 unwind label %327

418:                                              ; preds = %416
  store i32 0, ptr %9, align 4
  br label %419

419:                                              ; preds = %418, %386, %358, %344, %326
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #10
  br label %420

420:                                              ; preds = %419, %286, %246, %229, %205
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #10
  br label %421

421:                                              ; preds = %420, %177
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #10
  br label %422

422:                                              ; preds = %421, %153
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #10
  call void @llvm.lifetime.end.p0(i64 1280, ptr %32) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #10
  call void @_ZNSt10unique_ptrIA_hSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %30) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #10
  br label %423

423:                                              ; preds = %422, %126
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #10
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #10
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %25) #10
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %24) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %24) #10
  br label %424

424:                                              ; preds = %423, %90
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %22) #10
  call void @llvm.lifetime.end.p0(i64 520, ptr %22) #10
  %425 = load i32, ptr %9, align 4
  switch i32 %425, label %427 [
    i32 0, label %426
  ]

426:                                              ; preds = %424
  store i32 0, ptr %9, align 4
  br label %427

427:                                              ; preds = %426, %424
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #10
  %428 = load i32, ptr %9, align 4
  switch i32 %428, label %454 [
    i32 0, label %429
  ]

429:                                              ; preds = %427
  br label %430

430:                                              ; preds = %429
  %431 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10filesystem7__cxx1118directory_iteratorppEv(ptr noundef nonnull align 8 dereferenceable(16) %17)
          to label %432 unwind label %450

432:                                              ; preds = %430
  br label %60

433:                                              ; preds = %390
  %434 = landingpad { ptr, i32 }
          cleanup
  %435 = extractvalue { ptr, i32 } %434, 0
  store ptr %435, ptr %12, align 8
  %436 = extractvalue { ptr, i32 } %434, 1
  store i32 %436, ptr %13, align 4
  br label %441

437:                                              ; preds = %395, %393
  %438 = landingpad { ptr, i32 }
          cleanup
  %439 = extractvalue { ptr, i32 } %438, 0
  store ptr %439, ptr %12, align 8
  %440 = extractvalue { ptr, i32 } %438, 1
  store i32 %440, ptr %13, align 4
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %40) #10
  br label %441

441:                                              ; preds = %437, %433
  call void @llvm.lifetime.end.p0(i64 40, ptr %40) #10
  br label %442

442:                                              ; preds = %441, %378, %327
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #10
  br label %443

443:                                              ; preds = %442, %206
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #10
  br label %444

444:                                              ; preds = %443, %182
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #10
  br label %445

445:                                              ; preds = %444, %178, %154
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #10
  call void @llvm.lifetime.end.p0(i64 1280, ptr %32) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #10
  call void @_ZNSt10unique_ptrIA_hSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %30) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #10
  br label %446

446:                                              ; preds = %445, %131
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #10
  br label %447

447:                                              ; preds = %446, %127
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #10
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %25) #10
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %24) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %24) #10
  br label %448

448:                                              ; preds = %447, %100
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %22) #10
  br label %449

449:                                              ; preds = %448, %99
  call void @llvm.lifetime.end.p0(i64 520, ptr %22) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #10
  br label %456

450:                                              ; preds = %430
  %451 = landingpad { ptr, i32 }
          cleanup
  %452 = extractvalue { ptr, i32 } %451, 0
  store ptr %452, ptr %12, align 8
  %453 = extractvalue { ptr, i32 } %451, 1
  store i32 %453, ptr %13, align 4
  br label %456

454:                                              ; preds = %427, %62
  call void @_ZNSt10filesystem7__cxx1118directory_iteratorD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %19) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %19) #10
  call void @_ZNSt10filesystem7__cxx1118directory_iteratorD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #10
  call void @_ZNSt10filesystem7__cxx1118directory_iteratorD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %15) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #10
  %455 = load i32, ptr %9, align 4
  switch i32 %455, label %459 [
    i32 2, label %458
  ]

456:                                              ; preds = %450, %449
  call void @_ZNSt10filesystem7__cxx1118directory_iteratorD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %19) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %19) #10
  call void @_ZNSt10filesystem7__cxx1118directory_iteratorD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #10
  call void @_ZNSt10filesystem7__cxx1118directory_iteratorD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %15) #10
  br label %457

457:                                              ; preds = %456, %75
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #10
  br label %460

458:                                              ; preds = %454
  store i32 0, ptr %3, align 4
  store i32 1, ptr %9, align 4
  br label %459

459:                                              ; preds = %458, %454
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #10
  br label %461

460:                                              ; preds = %457, %63
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #10
  br label %463

461:                                              ; preds = %459, %50
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #10
  %462 = load i32, ptr %3, align 4
  ret i32 %462

463:                                              ; preds = %460
  %464 = load ptr, ptr %12, align 8
  %465 = load i32, ptr %13, align 4
  %466 = insertvalue { ptr, i32 } poison, ptr %464, 0
  %467 = insertvalue { ptr, i32 } %466, i32 %465, 1
  resume { ptr, i32 } %467
}

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

declare ptr @qpl_get_library_version() #2

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef i32 @_ZL20parse_execution_pathiPPcP10qpl_path_ti(i32 noundef, ptr noundef, ptr noundef, i32 noundef) #1

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

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt10filesystem7__cxx114pathC2INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES1_EERKT_NS1_6formatE(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(32), i8 noundef zeroext) unnamed_addr #5 align 2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt10filesystem7__cxx115beginENS0_18directory_iteratorE(ptr dead_on_unwind noalias writable sret(%"class.std::filesystem::__cxx11::directory_iterator") align 8, ptr noundef) #6

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt10filesystem7__cxx113endENS0_18directory_iteratorE(ptr dead_on_unwind noalias writable sret(%"class.std::filesystem::__cxx11::directory_iterator") align 8, ptr noundef) #6

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

; Function Attrs: nounwind
declare noundef nonnull align 8 dereferenceable(41) ptr @_ZNKSt10filesystem7__cxx1118directory_iteratordeEv(ptr noundef nonnull align 8 dereferenceable(16)) #7

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

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

; Function Attrs: mustprogress uwtable
declare void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) unnamed_addr #5 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare noundef zeroext i1 @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(256)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8), i8 noundef signext) #1

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) #1

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZNKSt10filesystem7__cxx1115directory_entry9file_sizeEv(ptr noundef nonnull align 8 dereferenceable(41)) #5 align 2

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

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

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

declare i32 @qpl_get_safe_deflate_compression_buffer_size(i32 noundef) #2

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

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #8

declare i32 @qpl_get_job_size(i32 noundef, ptr noundef) #2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_uniqueIA_hENSt8__detail9_MakeUniqIT_E7__arrayEm(ptr dead_on_unwind noalias writable sret(%"class.std::unique_ptr.6") align 8, i64 noundef) #1

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

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

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

declare i32 @qpl_init_job(i32 noundef, ptr noundef) #2

declare i32 @qpl_deflate_huffman_table_create(i32 noundef, i32 noundef, ptr, ptr, ptr noundef) #2

; Function Attrs: nounwind allocsize(0)
declare noalias ptr @malloc(i64 noundef) #9

; Function Attrs: nounwind
declare void @free(ptr noundef) #7

declare i32 @qpl_gather_deflate_statistics(ptr noundef, i32 noundef, ptr noundef, i32 noundef, i32 noundef) #2

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

declare i32 @qpl_huffman_table_destroy(ptr noundef) #2

declare i32 @qpl_huffman_table_init_with_histogram(ptr noundef, ptr noundef) #2

declare i32 @qpl_execute_job(ptr noundef) #2

declare i32 @qpl_fini_job(ptr noundef) #2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt10filesystem7__cxx11lsIcSt11char_traitsIcEEERSt13basic_ostreamIT_T0_ES8_RKNS0_4pathE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(40)) #5

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

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

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

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

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

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

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10filesystem7__cxx1118directory_iteratorppEv(ptr noundef nonnull align 8 dereferenceable(16)) #2

attributes #0 = { mustprogress norecurse 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 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { 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 #7 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { nounwind allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { 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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_ZTS10qpl_path_t", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"_ZTS10qpl_status", !7, i64 0}
!15 = !{!16, !10, i64 0}
!16 = !{!"_ZTS11allocator_t", !10, i64 0, !10, i64 8}
!17 = !{!16, !10, i64 8}
!18 = !{!19, !20, i64 32}
!19 = !{!"_ZTS7qpl_job", !10, i64 0, !6, i64 8, !6, i64 12, !10, i64 16, !6, i64 24, !6, i64 28, !20, i64 32, !6, i64 36, !6, i64 40, !6, i64 44, !6, i64 48, !21, i64 52, !22, i64 56, !10, i64 64, !10, i64 72, !23, i64 80, !10, i64 88, !6, i64 96, !6, i64 100, !7, i64 104, !7, i64 105, !7, i64 106, !24, i64 112, !24, i64 120, !10, i64 128, !6, i64 136, !6, i64 140, !6, i64 144, !6, i64 148, !25, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !26, i64 172, !6, i64 176, !6, i64 180, !6, i64 184, !6, i64 188, !27, i64 192}
!20 = !{!"_ZTS13qpl_operation", !7, i64 0}
!21 = !{!"_ZTS22qpl_compression_levels", !7, i64 0}
!22 = !{!"_ZTS19qpl_statistics_mode", !7, i64 0}
!23 = !{!"_ZTS19qpl_mini_block_size", !7, i64 0}
!24 = !{!"long", !7, i64 0}
!25 = !{!"_ZTS14qpl_out_format", !7, i64 0}
!26 = !{!"_ZTS10qpl_parser", !7, i64 0}
!27 = !{!"_ZTS12qpl_aux_data", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !12, i64 40}
!28 = !{!19, !21, i64 52}
!29 = !{!19, !10, i64 0}
!30 = !{!19, !10, i64 16}
!31 = !{!19, !6, i64 8}
!32 = !{!19, !6, i64 24}
!33 = !{!19, !6, i64 36}
!34 = !{!19, !10, i64 64}
!35 = !{!19, !6, i64 28}
!36 = !{!24, !24, i64 0}
!37 = !{!7, !7, i64 0}
!38 = distinct !{!38, !39}
!39 = !{!"llvm.loop.mustprogress"}


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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::__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" = type { i8 }
%"class.std::filesystem::__cxx11::directory_iterator" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::filesystem::__cxx11::path" = type { %"class.std::__cxx11::basic_string", %"struct.std::filesystem::__cxx11::path::_List" }
%"struct.std::filesystem::__cxx11::path::_List" = type { %"class.std::unique_ptr" }
%"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.std::basic_ifstream" = type { %"class.std::basic_istream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon.2 }
%union.anon.2 = type { i32 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::istreambuf_iterator" = type <{ ptr, i32, [4 x i8] }>
%"class.std::unique_ptr.6" = type { %"struct.std::__uniq_ptr_data.7" }
%"struct.std::__uniq_ptr_data.7" = type { %"class.std::__uniq_ptr_impl.8" }
%"class.std::__uniq_ptr_impl.8" = type { %"class.std::tuple.9" }
%"class.std::tuple.9" = type { %"struct.std::_Tuple_impl.10" }
%"struct.std::_Tuple_impl.10" = type { %"struct.std::_Head_base.13" }
%"struct.std::_Head_base.13" = type { ptr }
%struct.qpl_histogram = type { [286 x i32], [2 x i32], [30 x i32], [2 x i32] }

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str = external hidden unnamed_addr constant [46 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [22 x i8], align 1

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef range(i32 0, 2) i32 @main(i32 noundef %0, ptr noundef %1) local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %3 = alloca i32, align 4
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.std::allocator", align 1
  %6 = alloca %"class.std::filesystem::__cxx11::directory_iterator", align 8
  %7 = alloca %"class.std::filesystem::__cxx11::path", align 8
  %8 = alloca %"class.std::filesystem::__cxx11::directory_iterator", align 8
  %9 = alloca %"class.std::filesystem::__cxx11::directory_iterator", align 8
  %10 = alloca %"class.std::filesystem::__cxx11::directory_iterator", align 8
  %11 = alloca %"class.std::filesystem::__cxx11::directory_iterator", align 8
  %12 = alloca %"class.std::basic_ifstream", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::vector", align 8
  %15 = alloca %"class.std::vector", align 8
  %16 = alloca %"class.std::vector", align 8
  %17 = alloca %"class.std::istreambuf_iterator", align 8
  %18 = alloca %"class.std::istreambuf_iterator", align 8
  %19 = alloca %"class.std::unique_ptr.6", align 8
  %20 = alloca i32, align 4
  %21 = alloca %struct.qpl_histogram, align 4
  %22 = alloca %"class.std::unique_ptr.6", align 8
  %23 = alloca ptr, align 8
  %24 = alloca %"class.std::filesystem::__cxx11::path", align 8
  %25 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str)
  %26 = tail call ptr @qpl_get_library_version()
  %27 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef %26)
  %28 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull @.str.1)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #11
  store i32 2, ptr %3, align 4, !tbaa !5
  %29 = call noundef i32 @_ZL20parse_execution_pathiPPcP10qpl_path_ti(i32 noundef %0, ptr noundef %1, ptr noundef nonnull %3, i32 noundef 1)
  %.not = icmp eq i32 %29, 0
  br i1 %.not, label %30, label %274

30:                                               ; preds = %2
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #11
  %31 = getelementptr inbounds i8, ptr %1, i64 16
  %32 = load ptr, ptr %31, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef %32, ptr noundef nonnull align 1 dereferenceable(1) %5)
          to label %33 unwind label %40

33:                                               ; preds = %30
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6) #11
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %7) #11
  invoke void @_ZNSt10filesystem7__cxx114pathC2INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES1_EERKT_NS1_6formatE(ptr noundef nonnull align 8 dereferenceable(40) %7, ptr noundef nonnull align 8 dereferenceable(32) %4, i8 noundef zeroext 2)
          to label %34 unwind label %42

34:                                               ; preds = %33
  invoke void @_ZNSt10filesystem7__cxx1118directory_iteratorC2ERKNS0_4pathE(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 8 dereferenceable(40) %7)
          to label %35 unwind label %44

35:                                               ; preds = %34
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %7) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %7) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #11
  call void @_ZNSt10filesystem7__cxx1118directory_iteratorC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(16) %6) #11
  call void @_ZNSt10filesystem7__cxx115beginENS0_18directory_iteratorE(ptr dead_on_unwind nonnull writable sret(%"class.std::filesystem::__cxx11::directory_iterator") align 8 %8, ptr noundef nonnull %9) #11
  call void @_ZNSt10filesystem7__cxx1118directory_iteratorD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %9) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %10) #11
  call void @_ZNSt10filesystem7__cxx1118directory_iteratorC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %11, ptr noundef nonnull align 8 dereferenceable(16) %6) #11
  call void @_ZNSt10filesystem7__cxx113endENS0_18directory_iteratorE(ptr dead_on_unwind nonnull writable sret(%"class.std::filesystem::__cxx11::directory_iterator") align 8 %10, ptr noundef nonnull %11) #11
  call void @_ZNSt10filesystem7__cxx1118directory_iteratorD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %11) #11
  %36 = getelementptr inbounds i8, ptr %17, i64 8
  %37 = getelementptr inbounds i8, ptr %18, i64 8
  br label %38

38:                                               ; preds = %257, %35
  %.065 = phi i32 [ 0, %35 ], [ %.6, %257 ]
  %39 = call noundef zeroext i1 @_ZNSt10filesystem7__cxx11neERKNS0_18directory_iteratorES3_(ptr noundef nonnull align 8 dereferenceable(16) %8, ptr noundef nonnull align 8 dereferenceable(16) %10) #11
  br i1 %39, label %47, label %.loopexit

40:                                               ; preds = %30
  %41 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #11
  br label %273

42:                                               ; preds = %33
  %43 = landingpad { ptr, i32 }
          cleanup
  br label %46

44:                                               ; preds = %34
  %45 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %7) #11
  br label %46

46:                                               ; preds = %44, %42
  %.pn = phi { ptr, i32 } [ %45, %44 ], [ %43, %42 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %7) #11
  br label %272

47:                                               ; preds = %38
  %48 = call noundef nonnull align 8 dereferenceable(41) ptr @_ZNKSt10filesystem7__cxx1118directory_iteratordeEv(ptr noundef nonnull align 8 dereferenceable(16) %8) #11
  call void @llvm.lifetime.start.p0(i64 520, ptr nonnull %12) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #11
  %49 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt10filesystem7__cxx1115directory_entry4pathEv(ptr noundef nonnull align 8 dereferenceable(41) %48) #11
  invoke void @_ZNKSt10filesystem7__cxx114path6stringEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef nonnull align 8 dereferenceable(40) %49)
          to label %50 unwind label %59

50:                                               ; preds = %47
  invoke void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256) %12, ptr noundef nonnull align 8 dereferenceable(32) %13, i32 noundef 4)
          to label %51 unwind label %61

51:                                               ; preds = %50
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #11
  %52 = call noundef zeroext i1 @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(256) %12)
  br i1 %52, label %66, label %53

53:                                               ; preds = %51
  %54 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.2)
          to label %55 unwind label %64

55:                                               ; preds = %53
  %56 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %54, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %57 unwind label %64

57:                                               ; preds = %55
  %58 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %56, i8 noundef signext 10)
          to label %.thread144 unwind label %64

.thread144:                                       ; preds = %57
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %12) #11
  call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %12) #11
  br label %.loopexit

59:                                               ; preds = %47
  %60 = landingpad { ptr, i32 }
          cleanup
  br label %63

61:                                               ; preds = %50
  %62 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #11
  br label %63

63:                                               ; preds = %61, %59
  %.pn110 = phi { ptr, i32 } [ %62, %61 ], [ %60, %59 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #11
  br label %268

64:                                               ; preds = %57, %55, %53
  %65 = landingpad { ptr, i32 }
          cleanup
  br label %267

66:                                               ; preds = %51
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %14) #11
  call void @_ZNSt6vectorIhSaIhEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %15) #11
  call void @_ZNSt6vectorIhSaIhEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %16) #11
  call void @_ZNSt6vectorIhSaIhEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #11
  %67 = invoke noundef i64 @_ZNKSt10filesystem7__cxx1115directory_entry9file_sizeEv(ptr noundef nonnull align 8 dereferenceable(41) %48)
          to label %68 unwind label %82

68:                                               ; preds = %66
  invoke void @_ZNSt6vectorIhSaIhEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %67)
          to label %69 unwind label %82

69:                                               ; preds = %68
  call void @_ZNSt19istreambuf_iteratorIcSt11char_traitsIcEEC2ERSi(ptr noundef nonnull align 8 dereferenceable(12) %17, ptr noundef nonnull align 8 dereferenceable(16) %12) #11
  call void @_ZNSt19istreambuf_iteratorIcSt11char_traitsIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(12) %18) #11
  %70 = load ptr, ptr %17, align 8
  %71 = load i32, ptr %36, align 8
  %72 = load ptr, ptr %18, align 8
  %73 = load i32, ptr %37, align 8
  invoke void @_ZNSt6vectorIhSaIhEE6assignISt19istreambuf_iteratorIcSt11char_traitsIcEEvEEvT_S7_(ptr noundef nonnull align 8 dereferenceable(24) %14, ptr %70, i32 %71, ptr %72, i32 %73)
          to label %74 unwind label %82

74:                                               ; preds = %69
  %75 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %14) #11
  %76 = trunc i64 %75 to i32
  %77 = invoke i32 @qpl_get_safe_deflate_compression_buffer_size(i32 noundef %76)
          to label %78 unwind label %84

78:                                               ; preds = %74
  %79 = icmp eq i32 %77, 0
  br i1 %79, label %80, label %86

80:                                               ; preds = %78
  %81 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.3)
          to label %256 unwind label %84

82:                                               ; preds = %69, %68, %66
  %83 = landingpad { ptr, i32 }
          cleanup
  br label %266

84:                                               ; preds = %88, %86, %80, %74
  %85 = landingpad { ptr, i32 }
          cleanup
  br label %266

86:                                               ; preds = %78
  %87 = zext i32 %77 to i64
  invoke void @_ZNSt6vectorIhSaIhEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %87)
          to label %88 unwind label %84

88:                                               ; preds = %86
  %89 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %14) #11
  invoke void @_ZNSt6vectorIhSaIhEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %89)
          to label %90 unwind label %84

90:                                               ; preds = %88
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #11
  call void @_ZNSt10unique_ptrIA_hSt14default_deleteIS0_EEC2IS2_vEEv(ptr noundef nonnull align 8 dereferenceable(8) %19) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #11
  store i32 0, ptr %20, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1280, ptr nonnull %21) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(1280) %21, i8 0, i64 1280, i1 false)
  %91 = load i32, ptr %3, align 4, !tbaa !5
  %92 = invoke i32 @qpl_get_job_size(i32 noundef %91, ptr noundef nonnull %20)
          to label %93 unwind label %100

93:                                               ; preds = %90
  %.not112 = icmp eq i32 %92, 0
  br i1 %.not112, label %102, label %94

94:                                               ; preds = %93
  %95 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.4)
          to label %96 unwind label %100

96:                                               ; preds = %94
  %97 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %95, i32 noundef %92)
          to label %98 unwind label %100

98:                                               ; preds = %96
  %99 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %97, ptr noundef nonnull @.str.5)
          to label %255 unwind label %100

100:                                              ; preds = %98, %96, %94, %90
  %101 = landingpad { ptr, i32 }
          cleanup
  br label %265

102:                                              ; preds = %93
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #11
  %103 = load i32, ptr %20, align 4, !tbaa !11
  %104 = zext i32 %103 to i64
  invoke void @_ZSt11make_uniqueIA_hENSt8__detail9_MakeUniqIT_E7__arrayEm(ptr dead_on_unwind nonnull writable sret(%"class.std::unique_ptr.6") align 8 %22, i64 noundef %104)
          to label %105 unwind label %117

105:                                              ; preds = %102
  %106 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt10unique_ptrIA_hSt14default_deleteIS0_EEaSEOS3_(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %22) #11
  call void @_ZNSt10unique_ptrIA_hSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %22) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #11
  %107 = call noundef ptr @_ZNKSt10unique_ptrIA_hSt14default_deleteIS0_EE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %19) #11
  %108 = load i32, ptr %3, align 4, !tbaa !5
  %109 = invoke i32 @qpl_init_job(i32 noundef %108, ptr noundef %107)
          to label %110 unwind label %119

110:                                              ; preds = %105
  %.not113 = icmp eq i32 %109, 0
  br i1 %.not113, label %121, label %111

111:                                              ; preds = %110
  %112 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.4)
          to label %113 unwind label %119

113:                                              ; preds = %111
  %114 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %112, i32 noundef %109)
          to label %115 unwind label %119

115:                                              ; preds = %113
  %116 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %114, ptr noundef nonnull @.str.6)
          to label %255 unwind label %119

117:                                              ; preds = %102
  %118 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #11
  br label %265

119:                                              ; preds = %115, %113, %111, %105
  %120 = landingpad { ptr, i32 }
          cleanup
  br label %265

121:                                              ; preds = %110
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #11
  store ptr null, ptr %23, align 8, !tbaa !9
  %122 = load i32, ptr %3, align 4, !tbaa !5
  %123 = invoke i32 @qpl_deflate_huffman_table_create(i32 noundef 0, i32 noundef %122, ptr nonnull @malloc, ptr nonnull @free, ptr noundef nonnull %23)
          to label %124 unwind label %131

124:                                              ; preds = %121
  %.not114 = icmp eq i32 %123, 0
  br i1 %.not114, label %133, label %125

125:                                              ; preds = %124
  %126 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.4)
          to label %127 unwind label %131

127:                                              ; preds = %125
  %128 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %126, i32 noundef %123)
          to label %129 unwind label %131

129:                                              ; preds = %127
  %130 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %128, ptr noundef nonnull @.str.7)
          to label %.thread unwind label %131

131:                                              ; preds = %.invoke151, %.invoke, %171, %169, %152, %150, %148, %144, %142, %140, %133, %129, %127, %125, %121
  %132 = landingpad { ptr, i32 }
          cleanup
  br label %264

133:                                              ; preds = %124
  %134 = call noundef ptr @_ZNSt6vectorIhSaIhEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %14) #11
  %135 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %14) #11
  %136 = trunc i64 %135 to i32
  %137 = load i32, ptr %3, align 4, !tbaa !5
  %138 = invoke i32 @qpl_gather_deflate_statistics(ptr noundef %134, i32 noundef %136, ptr noundef nonnull %21, i32 noundef 1, i32 noundef %137)
          to label %139 unwind label %131

139:                                              ; preds = %133
  %.not115 = icmp eq i32 %138, 0
  br i1 %.not115, label %144, label %140

140:                                              ; preds = %139
  %141 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.4)
          to label %142 unwind label %131

142:                                              ; preds = %140
  %143 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %141, i32 noundef %138)
          to label %.invoke151 unwind label %131

144:                                              ; preds = %139
  %145 = load ptr, ptr %23, align 8, !tbaa !9
  %146 = invoke i32 @qpl_huffman_table_init_with_histogram(ptr noundef %145, ptr noundef nonnull %21)
          to label %147 unwind label %131

147:                                              ; preds = %144
  %.not116 = icmp eq i32 %146, 0
  br i1 %.not116, label %152, label %148

148:                                              ; preds = %147
  %149 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.4)
          to label %150 unwind label %131

150:                                              ; preds = %148
  %151 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %149, i32 noundef %146)
          to label %.invoke151 unwind label %131

152:                                              ; preds = %147
  %153 = getelementptr inbounds i8, ptr %107, i64 32
  store i32 1, ptr %153, align 8, !tbaa !13
  %154 = getelementptr inbounds i8, ptr %107, i64 52
  store i32 1, ptr %154, align 4, !tbaa !23
  %155 = call noundef ptr @_ZNSt6vectorIhSaIhEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %14) #11
  store ptr %155, ptr %107, align 8, !tbaa !24
  %156 = call noundef ptr @_ZNSt6vectorIhSaIhEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %15) #11
  %157 = getelementptr inbounds i8, ptr %107, i64 16
  store ptr %156, ptr %157, align 8, !tbaa !25
  %158 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %14) #11
  %159 = trunc i64 %158 to i32
  %160 = getelementptr inbounds i8, ptr %107, i64 8
  store i32 %159, ptr %160, align 8, !tbaa !26
  %161 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %15) #11
  %162 = trunc i64 %161 to i32
  %163 = getelementptr inbounds i8, ptr %107, i64 24
  store i32 %162, ptr %163, align 8, !tbaa !27
  %164 = getelementptr inbounds i8, ptr %107, i64 36
  store i32 4210691, ptr %164, align 4, !tbaa !28
  %165 = load ptr, ptr %23, align 8, !tbaa !9
  %166 = getelementptr inbounds i8, ptr %107, i64 64
  store ptr %165, ptr %166, align 8, !tbaa !29
  %167 = invoke i32 @qpl_execute_job(ptr noundef nonnull %107)
          to label %168 unwind label %131

168:                                              ; preds = %152
  %.not117 = icmp eq i32 %167, 0
  br i1 %.not117, label %178, label %169

169:                                              ; preds = %168
  %170 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.4)
          to label %171 unwind label %131

171:                                              ; preds = %169
  %172 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %170, i32 noundef %167)
          to label %.invoke151 unwind label %131

.invoke151:                                       ; preds = %171, %150, %142
  %173 = phi ptr [ %143, %142 ], [ %151, %150 ], [ %172, %171 ]
  %174 = phi ptr [ @.str.8, %142 ], [ @.str.9, %150 ], [ @.str.10, %171 ]
  %175 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %173, ptr noundef nonnull %174)
          to label %.invoke unwind label %131

.invoke:                                          ; preds = %.invoke151
  %176 = load ptr, ptr %23, align 8, !tbaa !9
  %177 = invoke i32 @qpl_huffman_table_destroy(ptr noundef %176)
          to label %.thread unwind label %131

178:                                              ; preds = %168
  %179 = getelementptr inbounds i8, ptr %107, i64 28
  %180 = load i32, ptr %179, align 4, !tbaa !30
  store i32 0, ptr %153, align 8, !tbaa !13
  %181 = call noundef ptr @_ZNSt6vectorIhSaIhEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %15) #11
  store ptr %181, ptr %107, align 8, !tbaa !24
  %182 = call noundef ptr @_ZNSt6vectorIhSaIhEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %16) #11
  store ptr %182, ptr %157, align 8, !tbaa !25
  store i32 %180, ptr %160, align 8, !tbaa !26
  %183 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %16) #11
  %184 = trunc i64 %183 to i32
  store i32 %184, ptr %163, align 8, !tbaa !27
  store i32 4194307, ptr %164, align 4, !tbaa !28
  %185 = load ptr, ptr %23, align 8, !tbaa !9
  store ptr %185, ptr %166, align 8, !tbaa !29
  %186 = invoke i32 @qpl_execute_job(ptr noundef nonnull %107)
          to label %187 unwind label %197

187:                                              ; preds = %178
  %.not118 = icmp eq i32 %186, 0
  br i1 %.not118, label %199, label %188

188:                                              ; preds = %187
  %189 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.4)
          to label %190 unwind label %197

190:                                              ; preds = %188
  %191 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %189, i32 noundef %186)
          to label %192 unwind label %197

192:                                              ; preds = %190
  %193 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %191, ptr noundef nonnull @.str.11)
          to label %194 unwind label %197

194:                                              ; preds = %192
  %195 = load ptr, ptr %23, align 8, !tbaa !9
  %196 = invoke i32 @qpl_huffman_table_destroy(ptr noundef %195)
          to label %.thread unwind label %197

197:                                              ; preds = %.invoke150, %253, %247, %245, %243, %241, %238, %236, %._crit_edge, %213, %211, %207, %205, %203, %199, %194, %192, %190, %188, %178
  %198 = landingpad { ptr, i32 }
          cleanup
  br label %264

199:                                              ; preds = %187
  %200 = load ptr, ptr %23, align 8, !tbaa !9
  %201 = invoke i32 @qpl_huffman_table_destroy(ptr noundef %200)
          to label %202 unwind label %197

202:                                              ; preds = %199
  %.not119 = icmp eq i32 %201, 0
  br i1 %.not119, label %207, label %203

203:                                              ; preds = %202
  %204 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.4)
          to label %205 unwind label %197

205:                                              ; preds = %203
  %206 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %204, i32 noundef %201)
          to label %.invoke150 unwind label %197

207:                                              ; preds = %202
  %208 = invoke i32 @qpl_fini_job(ptr noundef nonnull %107)
          to label %209 unwind label %197

209:                                              ; preds = %207
  %.not120 = icmp eq i32 %208, 0
  br i1 %.not120, label %.preheader, label %211

.preheader:                                       ; preds = %209
  %210 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %14) #11
  %.not122148.not = icmp eq i64 %210, 0
  br i1 %.not122148.not, label %._crit_edge, label %.lr.ph

211:                                              ; preds = %209
  %212 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.4)
          to label %213 unwind label %197

213:                                              ; preds = %211
  %214 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %212, i32 noundef %208)
          to label %.invoke150 unwind label %197

.invoke150:                                       ; preds = %213, %205
  %215 = phi ptr [ %206, %205 ], [ %214, %213 ]
  %216 = phi ptr [ @.str.12, %205 ], [ @.str.13, %213 ]
  %217 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %215, ptr noundef nonnull %216)
          to label %.thread unwind label %197

218:                                              ; preds = %.lr.ph
  %219 = add nuw i64 %.0149, 1
  %220 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %14) #11
  %.not122 = icmp ult i64 %219, %220
  br i1 %.not122, label %.lr.ph, label %._crit_edge, !llvm.loop !31

.lr.ph:                                           ; preds = %.preheader, %218
  %.0149 = phi i64 [ %219, %218 ], [ 0, %.preheader ]
  %221 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIhSaIhEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %.0149) #11
  %222 = load i8, ptr %221, align 1, !tbaa !33
  %223 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIhSaIhEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %.0149) #11
  %224 = load i8, ptr %223, align 1, !tbaa !33
  %.not121 = icmp eq i8 %222, %224
  br i1 %.not121, label %218, label %225

225:                                              ; preds = %.lr.ph
  %226 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.14)
          to label %.thread unwind label %227

227:                                              ; preds = %225
  %228 = landingpad { ptr, i32 }
          cleanup
  br label %264

._crit_edge:                                      ; preds = %218, %.preheader
  %229 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.15)
          to label %230 unwind label %197

230:                                              ; preds = %._crit_edge
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %24) #11
  %231 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt10filesystem7__cxx1115directory_entry4pathEv(ptr noundef nonnull align 8 dereferenceable(41) %48) #11
  invoke void @_ZNKSt10filesystem7__cxx114path8filenameEv(ptr dead_on_unwind nonnull writable sret(%"class.std::filesystem::__cxx11::path") align 8 %24, ptr noundef nonnull align 8 dereferenceable(40) %231)
          to label %232 unwind label %259

232:                                              ; preds = %230
  %233 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt10filesystem7__cxx11lsIcSt11char_traitsIcEEERSt13basic_ostreamIT_T0_ES8_RKNS0_4pathE(ptr noundef nonnull align 8 dereferenceable(8) %229, ptr noundef nonnull align 8 dereferenceable(40) %24)
          to label %234 unwind label %261

234:                                              ; preds = %232
  %235 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %233, ptr noundef nonnull @.str.16)
          to label %236 unwind label %261

236:                                              ; preds = %234
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %24) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %24) #11
  %237 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.17)
          to label %238 unwind label %197

238:                                              ; preds = %236
  %239 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %14) #11
  %240 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %237, i64 noundef %239)
          to label %241 unwind label %197

241:                                              ; preds = %238
  %242 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %240, ptr noundef nonnull @.str.18)
          to label %243 unwind label %197

243:                                              ; preds = %241
  %244 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %242, i32 noundef %180)
          to label %245 unwind label %197

245:                                              ; preds = %243
  %246 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %244, ptr noundef nonnull @.str.19)
          to label %247 unwind label %197

247:                                              ; preds = %245
  %248 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %14) #11
  %249 = uitofp i64 %248 to float
  %250 = uitofp i32 %180 to float
  %251 = fdiv float %249, %250
  %252 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %246, float noundef %251)
          to label %253 unwind label %197

253:                                              ; preds = %247
  %254 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %252, ptr noundef nonnull @.str.1)
          to label %.thread unwind label %197

.thread:                                          ; preds = %.invoke150, %.invoke, %225, %194, %253, %129
  %.268 = phi i32 [ 1, %129 ], [ 1, %194 ], [ 0, %253 ], [ 1, %225 ], [ 1, %.invoke ], [ 1, %.invoke150 ]
  %.3 = phi i32 [ 1, %129 ], [ 1, %194 ], [ %.065, %253 ], [ 1, %225 ], [ 1, %.invoke ], [ 1, %.invoke150 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #11
  br label %255

255:                                              ; preds = %.thread, %115, %98
  %.470 = phi i32 [ 1, %98 ], [ %.268, %.thread ], [ 1, %115 ]
  %.5 = phi i32 [ 1, %98 ], [ %.3, %.thread ], [ 1, %115 ]
  call void @llvm.lifetime.end.p0(i64 1280, ptr nonnull %21) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #11
  call void @_ZNSt10unique_ptrIA_hSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #11
  br label %256

256:                                              ; preds = %255, %80
  %.571 = phi i32 [ %.470, %255 ], [ 1, %80 ]
  %.6 = phi i32 [ %.5, %255 ], [ 1, %80 ]
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #11
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #11
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #11
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %12) #11
  call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %12) #11
  %cond1 = icmp eq i32 %.571, 0
  br i1 %cond1, label %257, label %.loopexit

257:                                              ; preds = %256
  %258 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10filesystem7__cxx1118directory_iteratorppEv(ptr noundef nonnull align 8 dereferenceable(16) %8)
          to label %38 unwind label %269

259:                                              ; preds = %230
  %260 = landingpad { ptr, i32 }
          cleanup
  br label %263

261:                                              ; preds = %234, %232
  %262 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt10filesystem7__cxx114pathD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %24) #11
  br label %263

263:                                              ; preds = %261, %259
  %.pn123 = phi { ptr, i32 } [ %262, %261 ], [ %260, %259 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %24) #11
  br label %264

264:                                              ; preds = %197, %227, %263, %131
  %.pn127 = phi { ptr, i32 } [ %132, %131 ], [ %198, %197 ], [ %.pn123, %263 ], [ %228, %227 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #11
  br label %265

265:                                              ; preds = %119, %264, %117, %100
  %.pn131 = phi { ptr, i32 } [ %101, %100 ], [ %118, %117 ], [ %120, %119 ], [ %.pn127, %264 ]
  call void @llvm.lifetime.end.p0(i64 1280, ptr nonnull %21) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #11
  call void @_ZNSt10unique_ptrIA_hSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #11
  br label %266

266:                                              ; preds = %84, %265, %82
  %.pn133.pn = phi { ptr, i32 } [ %83, %82 ], [ %85, %84 ], [ %.pn131, %265 ]
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #11
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #11
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #11
  br label %267

267:                                              ; preds = %266, %64
  %.pn133.pn.pn = phi { ptr, i32 } [ %.pn133.pn, %266 ], [ %65, %64 ]
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %12) #11
  br label %268

268:                                              ; preds = %267, %63
  %.pn133.pn.pn.pn = phi { ptr, i32 } [ %.pn133.pn.pn, %267 ], [ %.pn110, %63 ]
  call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %12) #11
  br label %271

269:                                              ; preds = %257
  %270 = landingpad { ptr, i32 }
          cleanup
  br label %271

.loopexit:                                        ; preds = %38, %256, %.thread144
  %spec.select = phi i32 [ 1, %.thread144 ], [ 0, %38 ], [ %.6, %256 ]
  call void @_ZNSt10filesystem7__cxx1118directory_iteratorD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %10) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #11
  call void @_ZNSt10filesystem7__cxx1118directory_iteratorD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #11
  call void @_ZNSt10filesystem7__cxx1118directory_iteratorD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #11
  br label %274

271:                                              ; preds = %269, %268
  %.pn138 = phi { ptr, i32 } [ %270, %269 ], [ %.pn133.pn.pn.pn, %268 ]
  call void @_ZNSt10filesystem7__cxx1118directory_iteratorD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %10) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #11
  call void @_ZNSt10filesystem7__cxx1118directory_iteratorD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #11
  call void @_ZNSt10filesystem7__cxx1118directory_iteratorD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #11
  br label %272

272:                                              ; preds = %271, %46
  %.pn138.pn = phi { ptr, i32 } [ %.pn138, %271 ], [ %.pn, %46 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #11
  br label %273

273:                                              ; preds = %272, %40
  %.pn138.pn.pn = phi { ptr, i32 } [ %.pn138.pn, %272 ], [ %41, %40 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #11
  resume { ptr, i32 } %.pn138.pn.pn

274:                                              ; preds = %2, %.loopexit
  %.10 = phi i32 [ %spec.select, %.loopexit ], [ 1, %2 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #11
  ret i32 %.10
}

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

declare ptr @qpl_get_library_version() local_unnamed_addr #2

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef i32 @_ZL20parse_execution_pathiPPcP10qpl_path_ti(i32 noundef, ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #1

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

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt10filesystem7__cxx114pathC2INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES1_EERKT_NS1_6formatE(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(32), i8 noundef zeroext) unnamed_addr #5 align 2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt10filesystem7__cxx115beginENS0_18directory_iteratorE(ptr dead_on_unwind noalias writable sret(%"class.std::filesystem::__cxx11::directory_iterator") align 8, ptr noundef) local_unnamed_addr #6

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt10filesystem7__cxx113endENS0_18directory_iteratorE(ptr dead_on_unwind noalias writable sret(%"class.std::filesystem::__cxx11::directory_iterator") align 8, ptr noundef) local_unnamed_addr #6

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

; Function Attrs: nounwind
declare noundef nonnull align 8 dereferenceable(41) ptr @_ZNKSt10filesystem7__cxx1118directory_iteratordeEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #7

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

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

; Function Attrs: mustprogress uwtable
declare void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) unnamed_addr #5 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare noundef zeroext i1 @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(256)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8), i8 noundef signext) local_unnamed_addr #1

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZNKSt10filesystem7__cxx1115directory_entry9file_sizeEv(ptr noundef nonnull align 8 dereferenceable(41)) local_unnamed_addr #5 align 2

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

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

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

declare i32 @qpl_get_safe_deflate_compression_buffer_size(i32 noundef) local_unnamed_addr #2

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

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

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

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #8

declare i32 @qpl_get_job_size(i32 noundef, ptr noundef) local_unnamed_addr #2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_uniqueIA_hENSt8__detail9_MakeUniqIT_E7__arrayEm(ptr dead_on_unwind noalias writable sret(%"class.std::unique_ptr.6") align 8, i64 noundef) local_unnamed_addr #1

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

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

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

declare i32 @qpl_init_job(i32 noundef, ptr noundef) local_unnamed_addr #2

declare i32 @qpl_deflate_huffman_table_create(i32 noundef, i32 noundef, ptr, ptr, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @malloc(i64 noundef) #9

; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite)
declare void @free(ptr allocptr nocapture noundef) #10

declare i32 @qpl_gather_deflate_statistics(ptr noundef, i32 noundef, ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

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

declare i32 @qpl_huffman_table_destroy(ptr noundef) local_unnamed_addr #2

declare i32 @qpl_huffman_table_init_with_histogram(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @qpl_execute_job(ptr noundef) local_unnamed_addr #2

declare i32 @qpl_fini_job(ptr noundef) local_unnamed_addr #2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt10filesystem7__cxx11lsIcSt11char_traitsIcEEERSt13basic_ostreamIT_T0_ES8_RKNS0_4pathE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #5

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

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

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

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

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

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

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10filesystem7__cxx1118directory_iteratorppEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #2

attributes #0 = { mustprogress norecurse 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 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { 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 #7 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "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 #10 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "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 #11 = { 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 = !{!"_ZTS10qpl_path_t", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{!14, !15, i64 32}
!14 = !{!"_ZTS7qpl_job", !10, i64 0, !12, i64 8, !12, i64 12, !10, i64 16, !12, i64 24, !12, i64 28, !15, i64 32, !12, i64 36, !12, i64 40, !12, i64 44, !12, i64 48, !16, i64 52, !17, i64 56, !10, i64 64, !10, i64 72, !18, i64 80, !10, i64 88, !12, i64 96, !12, i64 100, !7, i64 104, !7, i64 105, !7, i64 106, !19, i64 112, !19, i64 120, !10, i64 128, !12, i64 136, !12, i64 140, !12, i64 144, !12, i64 148, !20, i64 152, !12, i64 156, !12, i64 160, !12, i64 164, !12, i64 168, !21, i64 172, !12, i64 176, !12, i64 180, !12, i64 184, !12, i64 188, !22, i64 192}
!15 = !{!"_ZTS13qpl_operation", !7, i64 0}
!16 = !{!"_ZTS22qpl_compression_levels", !7, i64 0}
!17 = !{!"_ZTS19qpl_statistics_mode", !7, i64 0}
!18 = !{!"_ZTS19qpl_mini_block_size", !7, i64 0}
!19 = !{!"long", !7, i64 0}
!20 = !{!"_ZTS14qpl_out_format", !7, i64 0}
!21 = !{!"_ZTS10qpl_parser", !7, i64 0}
!22 = !{!"_ZTS12qpl_aux_data", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !6, i64 40}
!23 = !{!14, !16, i64 52}
!24 = !{!14, !10, i64 0}
!25 = !{!14, !10, i64 16}
!26 = !{!14, !12, i64 8}
!27 = !{!14, !12, i64 24}
!28 = !{!14, !12, i64 36}
!29 = !{!14, !10, i64 64}
!30 = !{!14, !12, i64 28}
!31 = distinct !{!31, !32}
!32 = !{!"llvm.loop.mustprogress"}
!33 = !{!7, !7, i64 0}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,SROAPass,SimplifyCFGPass,TailCallElimPass