; LLVM IR from DionysiosB/CodeForces :: 0001-0099 (38B-Chess)

; 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_istream" = type { ptr, i64, %"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::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<std::vector<bool>, std::allocator<std::vector<bool>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<bool>, std::allocator<std::vector<bool>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<bool>, std::allocator<std::vector<bool>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<bool>, std::allocator<std::vector<bool>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.0" = type { %"struct.std::_Bvector_base" }
%"struct.std::_Bvector_base" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" = type { %"struct.std::_Bit_iterator", %"struct.std::_Bit_iterator", ptr }
%"struct.std::_Bit_iterator" = type { %"struct.std::_Bit_iterator_base.base", [4 x i8] }
%"struct.std::_Bit_iterator_base.base" = type <{ ptr, i32 }>
%"class.std::allocator.4" = type { i8 }
%"class.std::allocator" = type { i8 }
%"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] }
%"struct.std::_Bit_reference" = type { ptr, i64 }

@_ZSt3cin = external global %"class.std::basic_istream", align 8
@_ZSt4cout = external global %"class.std::basic_ostream", align 8

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main() #0 personality ptr @__gxx_personality_v0 {
  %1 = alloca i32, align 4
  %2 = alloca i32, align 4
  %3 = alloca %"class.std::vector", align 8
  %4 = alloca %"class.std::vector.0", align 8
  %5 = alloca i8, align 1
  %6 = alloca %"class.std::allocator.4", align 1
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca %"class.std::allocator", align 1
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca %"struct.std::_Bit_reference", align 8
  %16 = alloca i32, align 4
  %17 = alloca %"struct.std::_Bit_reference", align 8
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca %"struct.std::_Bit_reference", align 8
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca %"struct.std::_Bit_reference", align 8
  %27 = alloca %"struct.std::_Bit_reference", align 8
  %28 = alloca %"struct.std::_Bit_reference", align 8
  %29 = alloca %"struct.std::_Bit_reference", align 8
  %30 = alloca %"struct.std::_Bit_reference", align 8
  %31 = alloca %"struct.std::_Bit_reference", align 8
  %32 = alloca %"struct.std::_Bit_reference", align 8
  %33 = alloca %"struct.std::_Bit_reference", align 8
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca %"struct.std::_Bit_reference", align 8
  store i32 0, ptr %1, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %2) #6
  store i32 8, ptr %2, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr %3) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr %4) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %5) #6
  store i8 1, ptr %5, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %6) #6
  call void @_ZNSaIbEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #6
  invoke void @_ZNSt6vectorIbSaIbEEC2EmRKbRKS0_(ptr noundef nonnull align 8 dereferenceable(40) %4, i64 noundef 8, ptr noundef nonnull align 1 dereferenceable(1) %5, ptr noundef nonnull align 1 dereferenceable(1) %6)
          to label %38 unwind label %58

38:                                               ; preds = %0
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #6
  call void @_ZNSaISt6vectorIbSaIbEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #6
  invoke void @_ZNSt6vectorIS_IbSaIbEESaIS1_EEC2EmRKS1_RKS2_(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef 8, ptr noundef nonnull align 8 dereferenceable(40) %4, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %39 unwind label %62

39:                                               ; preds = %38
  call void @_ZNSt15__new_allocatorISt6vectorIbSaIbEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #6
  call void @_ZNSt13_Bvector_baseISaIbEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %4) #6
  call void @_ZNSt15__new_allocatorIbED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %6) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %5) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %4) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %10) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  %40 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) @_ZSt3cin, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %41 unwind label %67

41:                                               ; preds = %39
  call void @llvm.lifetime.start.p0(i64 32, ptr %11) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  %42 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) @_ZSt3cin, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %43 unwind label %71

43:                                               ; preds = %41
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #6
  %44 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %10, i64 noundef 1)
          to label %45 unwind label %75

45:                                               ; preds = %43
  %46 = load i8, ptr %44, align 1, !tbaa !11
  %47 = sext i8 %46 to i32
  %48 = sub nsw i32 %47, 49
  store i32 %48, ptr %12, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #6
  %49 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %10, i64 noundef 0)
          to label %50 unwind label %79

50:                                               ; preds = %45
  %51 = load i8, ptr %49, align 1, !tbaa !11
  %52 = sext i8 %51 to i32
  %53 = sub nsw i32 %52, 97
  store i32 %53, ptr %13, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #6
  store i32 0, ptr %14, align 4, !tbaa !5
  br label %54

54:                                               ; preds = %96, %50
  %55 = load i32, ptr %14, align 4, !tbaa !5
  %56 = icmp slt i32 %55, 8
  br i1 %56, label %83, label %57

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

58:                                               ; preds = %0
  %59 = landingpad { ptr, i32 }
          cleanup
  %60 = extractvalue { ptr, i32 } %59, 0
  store ptr %60, ptr %7, align 8
  %61 = extractvalue { ptr, i32 } %59, 1
  store i32 %61, ptr %8, align 4
  br label %66

62:                                               ; preds = %38
  %63 = landingpad { ptr, i32 }
          cleanup
  %64 = extractvalue { ptr, i32 } %63, 0
  store ptr %64, ptr %7, align 8
  %65 = extractvalue { ptr, i32 } %63, 1
  store i32 %65, ptr %8, align 4
  call void @_ZNSt15__new_allocatorISt6vectorIbSaIbEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #6
  call void @_ZNSt13_Bvector_baseISaIbEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %4) #6
  br label %66

66:                                               ; preds = %62, %58
  call void @_ZNSt15__new_allocatorIbED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %6) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %5) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %4) #6
  br label %475

67:                                               ; preds = %39
  %68 = landingpad { ptr, i32 }
          cleanup
  %69 = extractvalue { ptr, i32 } %68, 0
  store ptr %69, ptr %7, align 8
  %70 = extractvalue { ptr, i32 } %68, 1
  store i32 %70, ptr %8, align 4
  br label %474

71:                                               ; preds = %41
  %72 = landingpad { ptr, i32 }
          cleanup
  %73 = extractvalue { ptr, i32 } %72, 0
  store ptr %73, ptr %7, align 8
  %74 = extractvalue { ptr, i32 } %72, 1
  store i32 %74, ptr %8, align 4
  br label %473

75:                                               ; preds = %43
  %76 = landingpad { ptr, i32 }
          cleanup
  %77 = extractvalue { ptr, i32 } %76, 0
  store ptr %77, ptr %7, align 8
  %78 = extractvalue { ptr, i32 } %76, 1
  store i32 %78, ptr %8, align 4
  br label %472

79:                                               ; preds = %45
  %80 = landingpad { ptr, i32 }
          cleanup
  %81 = extractvalue { ptr, i32 } %80, 0
  store ptr %81, ptr %7, align 8
  %82 = extractvalue { ptr, i32 } %80, 1
  store i32 %82, ptr %8, align 4
  br label %471

83:                                               ; preds = %54
  call void @llvm.lifetime.start.p0(i64 16, ptr %15) #6
  %84 = load i32, ptr %14, align 4, !tbaa !5
  %85 = sext i32 %84 to i64
  %86 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef %85) #6
  %87 = load i32, ptr %13, align 4, !tbaa !5
  %88 = sext i32 %87 to i64
  %89 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %86, i64 noundef %88)
          to label %90 unwind label %99

90:                                               ; preds = %83
  %91 = getelementptr inbounds { ptr, i64 }, ptr %15, i32 0, i32 0
  %92 = extractvalue { ptr, i64 } %89, 0
  store ptr %92, ptr %91, align 8
  %93 = getelementptr inbounds { ptr, i64 }, ptr %15, i32 0, i32 1
  %94 = extractvalue { ptr, i64 } %89, 1
  store i64 %94, ptr %93, align 8
  %95 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %15, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %15) #6
  br label %96

96:                                               ; preds = %90
  %97 = load i32, ptr %14, align 4, !tbaa !5
  %98 = add nsw i32 %97, 1
  store i32 %98, ptr %14, align 4, !tbaa !5
  br label %54, !llvm.loop !12

99:                                               ; preds = %83
  %100 = landingpad { ptr, i32 }
          cleanup
  %101 = extractvalue { ptr, i32 } %100, 0
  store ptr %101, ptr %7, align 8
  %102 = extractvalue { ptr, i32 } %100, 1
  store i32 %102, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %15) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #6
  br label %471

103:                                              ; preds = %57
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #6
  store i32 0, ptr %16, align 4, !tbaa !5
  br label %104

104:                                              ; preds = %121, %103
  %105 = load i32, ptr %16, align 4, !tbaa !5
  %106 = icmp slt i32 %105, 8
  br i1 %106, label %108, label %107

107:                                              ; preds = %104
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #6
  br label %128

108:                                              ; preds = %104
  call void @llvm.lifetime.start.p0(i64 16, ptr %17) #6
  %109 = load i32, ptr %12, align 4, !tbaa !5
  %110 = sext i32 %109 to i64
  %111 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef %110) #6
  %112 = load i32, ptr %16, align 4, !tbaa !5
  %113 = sext i32 %112 to i64
  %114 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %111, i64 noundef %113)
          to label %115 unwind label %124

115:                                              ; preds = %108
  %116 = getelementptr inbounds { ptr, i64 }, ptr %17, i32 0, i32 0
  %117 = extractvalue { ptr, i64 } %114, 0
  store ptr %117, ptr %116, align 8
  %118 = getelementptr inbounds { ptr, i64 }, ptr %17, i32 0, i32 1
  %119 = extractvalue { ptr, i64 } %114, 1
  store i64 %119, ptr %118, align 8
  %120 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %17, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #6
  br label %121

121:                                              ; preds = %115
  %122 = load i32, ptr %16, align 4, !tbaa !5
  %123 = add nsw i32 %122, 1
  store i32 %123, ptr %16, align 4, !tbaa !5
  br label %104, !llvm.loop !14

124:                                              ; preds = %108
  %125 = landingpad { ptr, i32 }
          cleanup
  %126 = extractvalue { ptr, i32 } %125, 0
  store ptr %126, ptr %7, align 8
  %127 = extractvalue { ptr, i32 } %125, 1
  store i32 %127, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #6
  br label %471

128:                                              ; preds = %107
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #6
  %129 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %11, i64 noundef 1)
          to label %130 unwind label %155

130:                                              ; preds = %128
  %131 = load i8, ptr %129, align 1, !tbaa !11
  %132 = sext i8 %131 to i32
  %133 = sub nsw i32 %132, 49
  store i32 %133, ptr %18, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #6
  %134 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %11, i64 noundef 0)
          to label %135 unwind label %159

135:                                              ; preds = %130
  %136 = load i8, ptr %134, align 1, !tbaa !11
  %137 = sext i8 %136 to i32
  %138 = sub nsw i32 %137, 97
  store i32 %138, ptr %19, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %20) #6
  %139 = load i32, ptr %18, align 4, !tbaa !5
  %140 = sext i32 %139 to i64
  %141 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef %140) #6
  %142 = load i32, ptr %19, align 4, !tbaa !5
  %143 = sext i32 %142 to i64
  %144 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %141, i64 noundef %143)
          to label %145 unwind label %163

145:                                              ; preds = %135
  %146 = getelementptr inbounds { ptr, i64 }, ptr %20, i32 0, i32 0
  %147 = extractvalue { ptr, i64 } %144, 0
  store ptr %147, ptr %146, align 8
  %148 = getelementptr inbounds { ptr, i64 }, ptr %20, i32 0, i32 1
  %149 = extractvalue { ptr, i64 } %144, 1
  store i64 %149, ptr %148, align 8
  %150 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %20, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %20) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #6
  store i32 1, ptr %23, align 4, !tbaa !5
  br label %151

151:                                              ; preds = %416, %145
  %152 = load i32, ptr %23, align 4, !tbaa !5
  %153 = icmp sle i32 %152, 2
  br i1 %153, label %167, label %154

154:                                              ; preds = %151
  store i32 8, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #6
  br label %419

155:                                              ; preds = %128
  %156 = landingpad { ptr, i32 }
          cleanup
  %157 = extractvalue { ptr, i32 } %156, 0
  store ptr %157, ptr %7, align 8
  %158 = extractvalue { ptr, i32 } %156, 1
  store i32 %158, ptr %8, align 4
  br label %470

159:                                              ; preds = %130
  %160 = landingpad { ptr, i32 }
          cleanup
  %161 = extractvalue { ptr, i32 } %160, 0
  store ptr %161, ptr %7, align 8
  %162 = extractvalue { ptr, i32 } %160, 1
  store i32 %162, ptr %8, align 4
  br label %469

163:                                              ; preds = %135
  %164 = landingpad { ptr, i32 }
          cleanup
  %165 = extractvalue { ptr, i32 } %164, 0
  store ptr %165, ptr %7, align 8
  %166 = extractvalue { ptr, i32 } %164, 1
  store i32 %166, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %20) #6
  br label %469

167:                                              ; preds = %151
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #6
  store i32 1, ptr %25, align 4, !tbaa !5
  br label %168

168:                                              ; preds = %411, %167
  %169 = load i32, ptr %25, align 4, !tbaa !5
  %170 = icmp sle i32 %169, 2
  br i1 %170, label %172, label %171

171:                                              ; preds = %168
  store i32 11, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #6
  br label %415

172:                                              ; preds = %168
  %173 = load i32, ptr %23, align 4, !tbaa !5
  %174 = load i32, ptr %25, align 4, !tbaa !5
  %175 = add nsw i32 %173, %174
  %176 = icmp ne i32 %175, 3
  br i1 %176, label %177, label %178

177:                                              ; preds = %172
  br label %411

178:                                              ; preds = %172
  %179 = load i32, ptr %18, align 4, !tbaa !5
  %180 = load i32, ptr %23, align 4, !tbaa !5
  %181 = add nsw i32 %179, %180
  store i32 %181, ptr %21, align 4, !tbaa !5
  %182 = load i32, ptr %19, align 4, !tbaa !5
  %183 = load i32, ptr %25, align 4, !tbaa !5
  %184 = add nsw i32 %182, %183
  store i32 %184, ptr %22, align 4, !tbaa !5
  %185 = load i32, ptr %21, align 4, !tbaa !5
  %186 = icmp slt i32 %185, 8
  br i1 %186, label %187, label %207

187:                                              ; preds = %178
  %188 = load i32, ptr %22, align 4, !tbaa !5
  %189 = icmp slt i32 %188, 8
  br i1 %189, label %190, label %207

190:                                              ; preds = %187
  call void @llvm.lifetime.start.p0(i64 16, ptr %26) #6
  %191 = load i32, ptr %21, align 4, !tbaa !5
  %192 = sext i32 %191 to i64
  %193 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef %192) #6
  %194 = load i32, ptr %22, align 4, !tbaa !5
  %195 = sext i32 %194 to i64
  %196 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %193, i64 noundef %195)
          to label %197 unwind label %203

197:                                              ; preds = %190
  %198 = getelementptr inbounds { ptr, i64 }, ptr %26, i32 0, i32 0
  %199 = extractvalue { ptr, i64 } %196, 0
  store ptr %199, ptr %198, align 8
  %200 = getelementptr inbounds { ptr, i64 }, ptr %26, i32 0, i32 1
  %201 = extractvalue { ptr, i64 } %196, 1
  store i64 %201, ptr %200, align 8
  %202 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %26, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #6
  br label %207

203:                                              ; preds = %190
  %204 = landingpad { ptr, i32 }
          cleanup
  %205 = extractvalue { ptr, i32 } %204, 0
  store ptr %205, ptr %7, align 8
  %206 = extractvalue { ptr, i32 } %204, 1
  store i32 %206, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #6
  br label %414

207:                                              ; preds = %197, %187, %178
  %208 = load i32, ptr %18, align 4, !tbaa !5
  %209 = load i32, ptr %23, align 4, !tbaa !5
  %210 = sub nsw i32 %208, %209
  store i32 %210, ptr %21, align 4, !tbaa !5
  %211 = load i32, ptr %19, align 4, !tbaa !5
  %212 = load i32, ptr %25, align 4, !tbaa !5
  %213 = add nsw i32 %211, %212
  store i32 %213, ptr %22, align 4, !tbaa !5
  %214 = load i32, ptr %21, align 4, !tbaa !5
  %215 = icmp sge i32 %214, 0
  br i1 %215, label %216, label %236

216:                                              ; preds = %207
  %217 = load i32, ptr %22, align 4, !tbaa !5
  %218 = icmp slt i32 %217, 8
  br i1 %218, label %219, label %236

219:                                              ; preds = %216
  call void @llvm.lifetime.start.p0(i64 16, ptr %27) #6
  %220 = load i32, ptr %21, align 4, !tbaa !5
  %221 = sext i32 %220 to i64
  %222 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef %221) #6
  %223 = load i32, ptr %22, align 4, !tbaa !5
  %224 = sext i32 %223 to i64
  %225 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %222, i64 noundef %224)
          to label %226 unwind label %232

226:                                              ; preds = %219
  %227 = getelementptr inbounds { ptr, i64 }, ptr %27, i32 0, i32 0
  %228 = extractvalue { ptr, i64 } %225, 0
  store ptr %228, ptr %227, align 8
  %229 = getelementptr inbounds { ptr, i64 }, ptr %27, i32 0, i32 1
  %230 = extractvalue { ptr, i64 } %225, 1
  store i64 %230, ptr %229, align 8
  %231 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %27, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #6
  br label %236

232:                                              ; preds = %219
  %233 = landingpad { ptr, i32 }
          cleanup
  %234 = extractvalue { ptr, i32 } %233, 0
  store ptr %234, ptr %7, align 8
  %235 = extractvalue { ptr, i32 } %233, 1
  store i32 %235, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #6
  br label %414

236:                                              ; preds = %226, %216, %207
  %237 = load i32, ptr %18, align 4, !tbaa !5
  %238 = load i32, ptr %23, align 4, !tbaa !5
  %239 = add nsw i32 %237, %238
  store i32 %239, ptr %21, align 4, !tbaa !5
  %240 = load i32, ptr %19, align 4, !tbaa !5
  %241 = load i32, ptr %25, align 4, !tbaa !5
  %242 = sub nsw i32 %240, %241
  store i32 %242, ptr %22, align 4, !tbaa !5
  %243 = load i32, ptr %21, align 4, !tbaa !5
  %244 = icmp slt i32 %243, 8
  br i1 %244, label %245, label %265

245:                                              ; preds = %236
  %246 = load i32, ptr %22, align 4, !tbaa !5
  %247 = icmp sge i32 %246, 0
  br i1 %247, label %248, label %265

248:                                              ; preds = %245
  call void @llvm.lifetime.start.p0(i64 16, ptr %28) #6
  %249 = load i32, ptr %21, align 4, !tbaa !5
  %250 = sext i32 %249 to i64
  %251 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef %250) #6
  %252 = load i32, ptr %22, align 4, !tbaa !5
  %253 = sext i32 %252 to i64
  %254 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %251, i64 noundef %253)
          to label %255 unwind label %261

255:                                              ; preds = %248
  %256 = getelementptr inbounds { ptr, i64 }, ptr %28, i32 0, i32 0
  %257 = extractvalue { ptr, i64 } %254, 0
  store ptr %257, ptr %256, align 8
  %258 = getelementptr inbounds { ptr, i64 }, ptr %28, i32 0, i32 1
  %259 = extractvalue { ptr, i64 } %254, 1
  store i64 %259, ptr %258, align 8
  %260 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %28, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %28) #6
  br label %265

261:                                              ; preds = %248
  %262 = landingpad { ptr, i32 }
          cleanup
  %263 = extractvalue { ptr, i32 } %262, 0
  store ptr %263, ptr %7, align 8
  %264 = extractvalue { ptr, i32 } %262, 1
  store i32 %264, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %28) #6
  br label %414

265:                                              ; preds = %255, %245, %236
  %266 = load i32, ptr %18, align 4, !tbaa !5
  %267 = load i32, ptr %23, align 4, !tbaa !5
  %268 = sub nsw i32 %266, %267
  store i32 %268, ptr %21, align 4, !tbaa !5
  %269 = load i32, ptr %19, align 4, !tbaa !5
  %270 = load i32, ptr %25, align 4, !tbaa !5
  %271 = sub nsw i32 %269, %270
  store i32 %271, ptr %22, align 4, !tbaa !5
  %272 = load i32, ptr %21, align 4, !tbaa !5
  %273 = icmp sge i32 %272, 0
  br i1 %273, label %274, label %294

274:                                              ; preds = %265
  %275 = load i32, ptr %22, align 4, !tbaa !5
  %276 = icmp sge i32 %275, 0
  br i1 %276, label %277, label %294

277:                                              ; preds = %274
  call void @llvm.lifetime.start.p0(i64 16, ptr %29) #6
  %278 = load i32, ptr %21, align 4, !tbaa !5
  %279 = sext i32 %278 to i64
  %280 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef %279) #6
  %281 = load i32, ptr %22, align 4, !tbaa !5
  %282 = sext i32 %281 to i64
  %283 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %280, i64 noundef %282)
          to label %284 unwind label %290

284:                                              ; preds = %277
  %285 = getelementptr inbounds { ptr, i64 }, ptr %29, i32 0, i32 0
  %286 = extractvalue { ptr, i64 } %283, 0
  store ptr %286, ptr %285, align 8
  %287 = getelementptr inbounds { ptr, i64 }, ptr %29, i32 0, i32 1
  %288 = extractvalue { ptr, i64 } %283, 1
  store i64 %288, ptr %287, align 8
  %289 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %29, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %29) #6
  br label %294

290:                                              ; preds = %277
  %291 = landingpad { ptr, i32 }
          cleanup
  %292 = extractvalue { ptr, i32 } %291, 0
  store ptr %292, ptr %7, align 8
  %293 = extractvalue { ptr, i32 } %291, 1
  store i32 %293, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %29) #6
  br label %414

294:                                              ; preds = %284, %274, %265
  %295 = load i32, ptr %12, align 4, !tbaa !5
  %296 = load i32, ptr %23, align 4, !tbaa !5
  %297 = add nsw i32 %295, %296
  store i32 %297, ptr %21, align 4, !tbaa !5
  %298 = load i32, ptr %13, align 4, !tbaa !5
  %299 = load i32, ptr %25, align 4, !tbaa !5
  %300 = add nsw i32 %298, %299
  store i32 %300, ptr %22, align 4, !tbaa !5
  %301 = load i32, ptr %21, align 4, !tbaa !5
  %302 = icmp slt i32 %301, 8
  br i1 %302, label %303, label %323

303:                                              ; preds = %294
  %304 = load i32, ptr %22, align 4, !tbaa !5
  %305 = icmp slt i32 %304, 8
  br i1 %305, label %306, label %323

306:                                              ; preds = %303
  call void @llvm.lifetime.start.p0(i64 16, ptr %30) #6
  %307 = load i32, ptr %21, align 4, !tbaa !5
  %308 = sext i32 %307 to i64
  %309 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef %308) #6
  %310 = load i32, ptr %22, align 4, !tbaa !5
  %311 = sext i32 %310 to i64
  %312 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %309, i64 noundef %311)
          to label %313 unwind label %319

313:                                              ; preds = %306
  %314 = getelementptr inbounds { ptr, i64 }, ptr %30, i32 0, i32 0
  %315 = extractvalue { ptr, i64 } %312, 0
  store ptr %315, ptr %314, align 8
  %316 = getelementptr inbounds { ptr, i64 }, ptr %30, i32 0, i32 1
  %317 = extractvalue { ptr, i64 } %312, 1
  store i64 %317, ptr %316, align 8
  %318 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %30, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #6
  br label %323

319:                                              ; preds = %306
  %320 = landingpad { ptr, i32 }
          cleanup
  %321 = extractvalue { ptr, i32 } %320, 0
  store ptr %321, ptr %7, align 8
  %322 = extractvalue { ptr, i32 } %320, 1
  store i32 %322, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #6
  br label %414

323:                                              ; preds = %313, %303, %294
  %324 = load i32, ptr %12, align 4, !tbaa !5
  %325 = load i32, ptr %23, align 4, !tbaa !5
  %326 = sub nsw i32 %324, %325
  store i32 %326, ptr %21, align 4, !tbaa !5
  %327 = load i32, ptr %13, align 4, !tbaa !5
  %328 = load i32, ptr %25, align 4, !tbaa !5
  %329 = add nsw i32 %327, %328
  store i32 %329, ptr %22, align 4, !tbaa !5
  %330 = load i32, ptr %21, align 4, !tbaa !5
  %331 = icmp sge i32 %330, 0
  br i1 %331, label %332, label %352

332:                                              ; preds = %323
  %333 = load i32, ptr %22, align 4, !tbaa !5
  %334 = icmp slt i32 %333, 8
  br i1 %334, label %335, label %352

335:                                              ; preds = %332
  call void @llvm.lifetime.start.p0(i64 16, ptr %31) #6
  %336 = load i32, ptr %21, align 4, !tbaa !5
  %337 = sext i32 %336 to i64
  %338 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef %337) #6
  %339 = load i32, ptr %22, align 4, !tbaa !5
  %340 = sext i32 %339 to i64
  %341 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %338, i64 noundef %340)
          to label %342 unwind label %348

342:                                              ; preds = %335
  %343 = getelementptr inbounds { ptr, i64 }, ptr %31, i32 0, i32 0
  %344 = extractvalue { ptr, i64 } %341, 0
  store ptr %344, ptr %343, align 8
  %345 = getelementptr inbounds { ptr, i64 }, ptr %31, i32 0, i32 1
  %346 = extractvalue { ptr, i64 } %341, 1
  store i64 %346, ptr %345, align 8
  %347 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %31, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %31) #6
  br label %352

348:                                              ; preds = %335
  %349 = landingpad { ptr, i32 }
          cleanup
  %350 = extractvalue { ptr, i32 } %349, 0
  store ptr %350, ptr %7, align 8
  %351 = extractvalue { ptr, i32 } %349, 1
  store i32 %351, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %31) #6
  br label %414

352:                                              ; preds = %342, %332, %323
  %353 = load i32, ptr %12, align 4, !tbaa !5
  %354 = load i32, ptr %23, align 4, !tbaa !5
  %355 = add nsw i32 %353, %354
  store i32 %355, ptr %21, align 4, !tbaa !5
  %356 = load i32, ptr %13, align 4, !tbaa !5
  %357 = load i32, ptr %25, align 4, !tbaa !5
  %358 = sub nsw i32 %356, %357
  store i32 %358, ptr %22, align 4, !tbaa !5
  %359 = load i32, ptr %21, align 4, !tbaa !5
  %360 = icmp slt i32 %359, 8
  br i1 %360, label %361, label %381

361:                                              ; preds = %352
  %362 = load i32, ptr %22, align 4, !tbaa !5
  %363 = icmp sge i32 %362, 0
  br i1 %363, label %364, label %381

364:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 16, ptr %32) #6
  %365 = load i32, ptr %21, align 4, !tbaa !5
  %366 = sext i32 %365 to i64
  %367 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef %366) #6
  %368 = load i32, ptr %22, align 4, !tbaa !5
  %369 = sext i32 %368 to i64
  %370 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %367, i64 noundef %369)
          to label %371 unwind label %377

371:                                              ; preds = %364
  %372 = getelementptr inbounds { ptr, i64 }, ptr %32, i32 0, i32 0
  %373 = extractvalue { ptr, i64 } %370, 0
  store ptr %373, ptr %372, align 8
  %374 = getelementptr inbounds { ptr, i64 }, ptr %32, i32 0, i32 1
  %375 = extractvalue { ptr, i64 } %370, 1
  store i64 %375, ptr %374, align 8
  %376 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %32, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %32) #6
  br label %381

377:                                              ; preds = %364
  %378 = landingpad { ptr, i32 }
          cleanup
  %379 = extractvalue { ptr, i32 } %378, 0
  store ptr %379, ptr %7, align 8
  %380 = extractvalue { ptr, i32 } %378, 1
  store i32 %380, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %32) #6
  br label %414

381:                                              ; preds = %371, %361, %352
  %382 = load i32, ptr %12, align 4, !tbaa !5
  %383 = load i32, ptr %23, align 4, !tbaa !5
  %384 = sub nsw i32 %382, %383
  store i32 %384, ptr %21, align 4, !tbaa !5
  %385 = load i32, ptr %13, align 4, !tbaa !5
  %386 = load i32, ptr %25, align 4, !tbaa !5
  %387 = sub nsw i32 %385, %386
  store i32 %387, ptr %22, align 4, !tbaa !5
  %388 = load i32, ptr %21, align 4, !tbaa !5
  %389 = icmp sge i32 %388, 0
  br i1 %389, label %390, label %410

390:                                              ; preds = %381
  %391 = load i32, ptr %22, align 4, !tbaa !5
  %392 = icmp sge i32 %391, 0
  br i1 %392, label %393, label %410

393:                                              ; preds = %390
  call void @llvm.lifetime.start.p0(i64 16, ptr %33) #6
  %394 = load i32, ptr %21, align 4, !tbaa !5
  %395 = sext i32 %394 to i64
  %396 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef %395) #6
  %397 = load i32, ptr %22, align 4, !tbaa !5
  %398 = sext i32 %397 to i64
  %399 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %396, i64 noundef %398)
          to label %400 unwind label %406

400:                                              ; preds = %393
  %401 = getelementptr inbounds { ptr, i64 }, ptr %33, i32 0, i32 0
  %402 = extractvalue { ptr, i64 } %399, 0
  store ptr %402, ptr %401, align 8
  %403 = getelementptr inbounds { ptr, i64 }, ptr %33, i32 0, i32 1
  %404 = extractvalue { ptr, i64 } %399, 1
  store i64 %404, ptr %403, align 8
  %405 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %33, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %33) #6
  br label %410

406:                                              ; preds = %393
  %407 = landingpad { ptr, i32 }
          cleanup
  %408 = extractvalue { ptr, i32 } %407, 0
  store ptr %408, ptr %7, align 8
  %409 = extractvalue { ptr, i32 } %407, 1
  store i32 %409, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %33) #6
  br label %414

410:                                              ; preds = %400, %390, %381
  br label %411

411:                                              ; preds = %410, %177
  %412 = load i32, ptr %25, align 4, !tbaa !5
  %413 = add nsw i32 %412, 1
  store i32 %413, ptr %25, align 4, !tbaa !5
  br label %168, !llvm.loop !15

414:                                              ; preds = %406, %377, %348, %319, %290, %261, %232, %203
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #6
  br label %468

415:                                              ; preds = %171
  br label %416

416:                                              ; preds = %415
  %417 = load i32, ptr %23, align 4, !tbaa !5
  %418 = add nsw i32 %417, 1
  store i32 %418, ptr %23, align 4, !tbaa !5
  br label %151, !llvm.loop !16

419:                                              ; preds = %154
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #6
  store i32 0, ptr %34, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #6
  store i32 0, ptr %35, align 4, !tbaa !5
  br label %420

420:                                              ; preds = %453, %419
  %421 = load i32, ptr %35, align 4, !tbaa !5
  %422 = icmp slt i32 %421, 8
  br i1 %422, label %424, label %423

423:                                              ; preds = %420
  store i32 14, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #6
  br label %456

424:                                              ; preds = %420
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #6
  store i32 0, ptr %36, align 4, !tbaa !5
  br label %425

425:                                              ; preds = %445, %424
  %426 = load i32, ptr %36, align 4, !tbaa !5
  %427 = icmp slt i32 %426, 8
  br i1 %427, label %429, label %428

428:                                              ; preds = %425
  store i32 17, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #6
  br label %452

429:                                              ; preds = %425
  call void @llvm.lifetime.start.p0(i64 16, ptr %37) #6
  %430 = load i32, ptr %35, align 4, !tbaa !5
  %431 = sext i32 %430 to i64
  %432 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef %431) #6
  %433 = load i32, ptr %36, align 4, !tbaa !5
  %434 = sext i32 %433 to i64
  %435 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %432, i64 noundef %434)
          to label %436 unwind label %448

436:                                              ; preds = %429
  %437 = getelementptr inbounds { ptr, i64 }, ptr %37, i32 0, i32 0
  %438 = extractvalue { ptr, i64 } %435, 0
  store ptr %438, ptr %437, align 8
  %439 = getelementptr inbounds { ptr, i64 }, ptr %37, i32 0, i32 1
  %440 = extractvalue { ptr, i64 } %435, 1
  store i64 %440, ptr %439, align 8
  %441 = call noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16) %37) #6
  %442 = zext i1 %441 to i32
  %443 = load i32, ptr %34, align 4, !tbaa !5
  %444 = add nsw i32 %443, %442
  store i32 %444, ptr %34, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #6
  br label %445

445:                                              ; preds = %436
  %446 = load i32, ptr %36, align 4, !tbaa !5
  %447 = add nsw i32 %446, 1
  store i32 %447, ptr %36, align 4, !tbaa !5
  br label %425, !llvm.loop !17

448:                                              ; preds = %429
  %449 = landingpad { ptr, i32 }
          cleanup
  %450 = extractvalue { ptr, i32 } %449, 0
  store ptr %450, ptr %7, align 8
  %451 = extractvalue { ptr, i32 } %449, 1
  store i32 %451, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #6
  br label %467

452:                                              ; preds = %428
  br label %453

453:                                              ; preds = %452
  %454 = load i32, ptr %35, align 4, !tbaa !5
  %455 = add nsw i32 %454, 1
  store i32 %455, ptr %35, align 4, !tbaa !5
  br label %420, !llvm.loop !18

456:                                              ; preds = %423
  %457 = load i32, ptr %34, align 4, !tbaa !5
  %458 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %457)
          to label %459 unwind label %463

459:                                              ; preds = %456
  %460 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %458, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %461 unwind label %463

461:                                              ; preds = %459
  store i32 0, ptr %1, align 4
  store i32 1, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #6
  call void @_ZNSt6vectorIS_IbSaIbEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %3) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #6
  %462 = load i32, ptr %1, align 4
  ret i32 %462

463:                                              ; preds = %459, %456
  %464 = landingpad { ptr, i32 }
          cleanup
  %465 = extractvalue { ptr, i32 } %464, 0
  store ptr %465, ptr %7, align 8
  %466 = extractvalue { ptr, i32 } %464, 1
  store i32 %466, ptr %8, align 4
  br label %467

467:                                              ; preds = %463, %448
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #6
  br label %468

468:                                              ; preds = %467, %414
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #6
  br label %469

469:                                              ; preds = %468, %163, %159
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #6
  br label %470

470:                                              ; preds = %469, %155
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #6
  br label %471

471:                                              ; preds = %470, %124, %99, %79
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #6
  br label %472

472:                                              ; preds = %471, %75
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #6
  br label %473

473:                                              ; preds = %472, %71
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #6
  br label %474

474:                                              ; preds = %473, %67
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #6
  call void @_ZNSt6vectorIS_IbSaIbEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #6
  br label %475

475:                                              ; preds = %474, %66
  call void @llvm.lifetime.end.p0(i64 24, ptr %3) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #6
  br label %476

476:                                              ; preds = %475
  %477 = load ptr, ptr %7, align 8
  %478 = load i32, ptr %8, align 4
  %479 = insertvalue { ptr, i32 } poison, ptr %477, 0
  %480 = insertvalue { ptr, i32 } %479, i32 %478, 1
  resume { ptr, i32 } %480
}

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


; 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_istream" = type { ptr, i64, %"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::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<std::vector<bool>, std::allocator<std::vector<bool>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<bool>, std::allocator<std::vector<bool>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<bool>, std::allocator<std::vector<bool>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<bool>, std::allocator<std::vector<bool>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.0" = type { %"struct.std::_Bvector_base" }
%"struct.std::_Bvector_base" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" = type { %"struct.std::_Bit_iterator", %"struct.std::_Bit_iterator", ptr }
%"struct.std::_Bit_iterator" = type { %"struct.std::_Bit_iterator_base.base", [4 x i8] }
%"struct.std::_Bit_iterator_base.base" = type <{ ptr, i32 }>
%"class.std::allocator.4" = type { i8 }
%"class.std::allocator" = type { i8 }
%"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] }
%"struct.std::_Bit_reference" = type { ptr, i64 }

@_ZSt3cin = external global %"class.std::basic_istream", align 8
@_ZSt4cout = external global %"class.std::basic_ostream", align 8

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main() local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %1 = alloca %"class.std::vector", align 8
  %2 = alloca %"class.std::vector.0", align 8
  %3 = alloca i8, align 1
  %4 = alloca %"class.std::allocator.4", align 1
  %5 = alloca %"class.std::allocator", align 1
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"struct.std::_Bit_reference", align 8
  %9 = alloca %"struct.std::_Bit_reference", align 8
  %10 = alloca %"struct.std::_Bit_reference", align 8
  %11 = alloca %"struct.std::_Bit_reference", align 8
  %12 = alloca %"struct.std::_Bit_reference", align 8
  %13 = alloca %"struct.std::_Bit_reference", align 8
  %14 = alloca %"struct.std::_Bit_reference", align 8
  %15 = alloca %"struct.std::_Bit_reference", align 8
  %16 = alloca %"struct.std::_Bit_reference", align 8
  %17 = alloca %"struct.std::_Bit_reference", align 8
  %18 = alloca %"struct.std::_Bit_reference", align 8
  %19 = alloca %"struct.std::_Bit_reference", align 8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %1) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %2) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %3) #6
  store i8 1, ptr %3, align 1, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %4) #6
  call void @_ZNSaIbEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  invoke void @_ZNSt6vectorIbSaIbEEC2EmRKbRKS0_(ptr noundef nonnull align 8 dereferenceable(40) %2, i64 noundef 8, ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef nonnull align 1 dereferenceable(1) %4)
          to label %20 unwind label %37

20:                                               ; preds = %0
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #6
  call void @_ZNSaISt6vectorIbSaIbEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #6
  invoke void @_ZNSt6vectorIS_IbSaIbEESaIS1_EEC2EmRKS1_RKS2_(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 8, ptr noundef nonnull align 8 dereferenceable(40) %2, ptr noundef nonnull align 1 dereferenceable(1) %5)
          to label %21 unwind label %39

21:                                               ; preds = %20
  call void @_ZNSt15__new_allocatorISt6vectorIbSaIbEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #6
  call void @_ZNSt13_Bvector_baseISaIbEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %2) #6
  call void @_ZNSt15__new_allocatorIbED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %3) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %2) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  %22 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) @_ZSt3cin, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %23 unwind label %42

23:                                               ; preds = %21
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #6
  %24 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) @_ZSt3cin, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %25 unwind label %44

25:                                               ; preds = %23
  %26 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %6, i64 noundef 1)
  %27 = load i8, ptr %26, align 1, !tbaa !9
  %28 = sext i8 %27 to i64
  %29 = add nsw i64 %28, -49
  %30 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %6, i64 noundef 0)
  %31 = load i8, ptr %30, align 1, !tbaa !9
  %32 = sext i8 %31 to i64
  %33 = add nsw i64 %32, -97
  %34 = getelementptr inbounds i8, ptr %8, i64 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #6
  %35 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 0) #6
  %36 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %35, i64 noundef %33)
          to label %46 unwind label %94

37:                                               ; preds = %0
  %38 = landingpad { ptr, i32 }
          cleanup
  br label %41

39:                                               ; preds = %20
  %40 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorISt6vectorIbSaIbEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #6
  call void @_ZNSt13_Bvector_baseISaIbEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %2) #6
  br label %41

41:                                               ; preds = %39, %37
  %.pn = phi { ptr, i32 } [ %40, %39 ], [ %38, %37 ]
  call void @_ZNSt15__new_allocatorIbED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %3) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %2) #6
  br label %411

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

44:                                               ; preds = %23
  %45 = landingpad { ptr, i32 }
          cleanup
  br label %409

46:                                               ; preds = %25
  %47 = extractvalue { ptr, i64 } %36, 0
  store ptr %47, ptr %8, align 8
  %48 = extractvalue { ptr, i64 } %36, 1
  store i64 %48, ptr %34, align 8
  %49 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %8, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #6
  %50 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 1) #6
  %51 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %50, i64 noundef %33)
          to label %52 unwind label %94

52:                                               ; preds = %46
  %53 = extractvalue { ptr, i64 } %51, 0
  store ptr %53, ptr %8, align 8
  %54 = extractvalue { ptr, i64 } %51, 1
  store i64 %54, ptr %34, align 8
  %55 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %8, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #6
  %56 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 2) #6
  %57 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %56, i64 noundef %33)
          to label %58 unwind label %94

58:                                               ; preds = %52
  %59 = extractvalue { ptr, i64 } %57, 0
  store ptr %59, ptr %8, align 8
  %60 = extractvalue { ptr, i64 } %57, 1
  store i64 %60, ptr %34, align 8
  %61 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %8, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #6
  %62 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 3) #6
  %63 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %62, i64 noundef %33)
          to label %64 unwind label %94

64:                                               ; preds = %58
  %65 = extractvalue { ptr, i64 } %63, 0
  store ptr %65, ptr %8, align 8
  %66 = extractvalue { ptr, i64 } %63, 1
  store i64 %66, ptr %34, align 8
  %67 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %8, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #6
  %68 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 4) #6
  %69 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %68, i64 noundef %33)
          to label %70 unwind label %94

70:                                               ; preds = %64
  %71 = extractvalue { ptr, i64 } %69, 0
  store ptr %71, ptr %8, align 8
  %72 = extractvalue { ptr, i64 } %69, 1
  store i64 %72, ptr %34, align 8
  %73 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %8, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #6
  %74 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 5) #6
  %75 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %74, i64 noundef %33)
          to label %76 unwind label %94

76:                                               ; preds = %70
  %77 = extractvalue { ptr, i64 } %75, 0
  store ptr %77, ptr %8, align 8
  %78 = extractvalue { ptr, i64 } %75, 1
  store i64 %78, ptr %34, align 8
  %79 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %8, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #6
  %80 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 6) #6
  %81 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %80, i64 noundef %33)
          to label %82 unwind label %94

82:                                               ; preds = %76
  %83 = extractvalue { ptr, i64 } %81, 0
  store ptr %83, ptr %8, align 8
  %84 = extractvalue { ptr, i64 } %81, 1
  store i64 %84, ptr %34, align 8
  %85 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %8, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #6
  %86 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 7) #6
  %87 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %86, i64 noundef %33)
          to label %.preheader152 unwind label %94

.preheader152:                                    ; preds = %82
  %88 = extractvalue { ptr, i64 } %87, 0
  store ptr %88, ptr %8, align 8
  %89 = extractvalue { ptr, i64 } %87, 1
  store i64 %89, ptr %34, align 8
  %90 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %8, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #6
  %91 = getelementptr inbounds i8, ptr %9, i64 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) #6
  %92 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %29) #6
  %93 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %92, i64 noundef 0)
          to label %96 unwind label %152

94:                                               ; preds = %82, %76, %70, %64, %58, %52, %46, %25
  %95 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #6
  br label %409

96:                                               ; preds = %.preheader152
  %97 = extractvalue { ptr, i64 } %93, 0
  store ptr %97, ptr %9, align 8
  %98 = extractvalue { ptr, i64 } %93, 1
  store i64 %98, ptr %91, align 8
  %99 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %9, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) #6
  %100 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %29) #6
  %101 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %100, i64 noundef 1)
          to label %102 unwind label %152

102:                                              ; preds = %96
  %103 = extractvalue { ptr, i64 } %101, 0
  store ptr %103, ptr %9, align 8
  %104 = extractvalue { ptr, i64 } %101, 1
  store i64 %104, ptr %91, align 8
  %105 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %9, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) #6
  %106 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %29) #6
  %107 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %106, i64 noundef 2)
          to label %108 unwind label %152

108:                                              ; preds = %102
  %109 = extractvalue { ptr, i64 } %107, 0
  store ptr %109, ptr %9, align 8
  %110 = extractvalue { ptr, i64 } %107, 1
  store i64 %110, ptr %91, align 8
  %111 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %9, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) #6
  %112 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %29) #6
  %113 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %112, i64 noundef 3)
          to label %114 unwind label %152

114:                                              ; preds = %108
  %115 = extractvalue { ptr, i64 } %113, 0
  store ptr %115, ptr %9, align 8
  %116 = extractvalue { ptr, i64 } %113, 1
  store i64 %116, ptr %91, align 8
  %117 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %9, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) #6
  %118 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %29) #6
  %119 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %118, i64 noundef 4)
          to label %120 unwind label %152

120:                                              ; preds = %114
  %121 = extractvalue { ptr, i64 } %119, 0
  store ptr %121, ptr %9, align 8
  %122 = extractvalue { ptr, i64 } %119, 1
  store i64 %122, ptr %91, align 8
  %123 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %9, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) #6
  %124 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %29) #6
  %125 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %124, i64 noundef 5)
          to label %126 unwind label %152

126:                                              ; preds = %120
  %127 = extractvalue { ptr, i64 } %125, 0
  store ptr %127, ptr %9, align 8
  %128 = extractvalue { ptr, i64 } %125, 1
  store i64 %128, ptr %91, align 8
  %129 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %9, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) #6
  %130 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %29) #6
  %131 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %130, i64 noundef 6)
          to label %132 unwind label %152

132:                                              ; preds = %126
  %133 = extractvalue { ptr, i64 } %131, 0
  store ptr %133, ptr %9, align 8
  %134 = extractvalue { ptr, i64 } %131, 1
  store i64 %134, ptr %91, align 8
  %135 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %9, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) #6
  %136 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %29) #6
  %137 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %136, i64 noundef 7)
          to label %138 unwind label %152

138:                                              ; preds = %132
  %139 = extractvalue { ptr, i64 } %137, 0
  store ptr %139, ptr %9, align 8
  %140 = extractvalue { ptr, i64 } %137, 1
  store i64 %140, ptr %91, align 8
  %141 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %9, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #6
  %142 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %7, i64 noundef 1)
  %143 = load i8, ptr %142, align 1, !tbaa !9
  %144 = sext i8 %143 to i64
  %145 = add nsw i64 %144, -49
  %146 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %7, i64 noundef 0)
  %147 = load i8, ptr %146, align 1, !tbaa !9
  %148 = sext i8 %147 to i64
  %149 = add nsw i64 %148, -97
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %10) #6
  %150 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %145) #6
  %151 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %150, i64 noundef %149)
          to label %154 unwind label %184

152:                                              ; preds = %132, %126, %120, %114, %108, %102, %96, %.preheader152
  %153 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #6
  br label %409

154:                                              ; preds = %138
  %155 = extractvalue { ptr, i64 } %151, 0
  store ptr %155, ptr %10, align 8
  %156 = getelementptr inbounds i8, ptr %10, i64 8
  %157 = extractvalue { ptr, i64 } %151, 1
  store i64 %157, ptr %156, align 8
  %158 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %10, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #6
  %159 = getelementptr inbounds i8, ptr %11, i64 8
  %160 = getelementptr inbounds i8, ptr %12, i64 8
  %161 = getelementptr inbounds i8, ptr %13, i64 8
  %162 = getelementptr inbounds i8, ptr %14, i64 8
  %163 = getelementptr inbounds i8, ptr %15, i64 8
  %164 = getelementptr inbounds i8, ptr %16, i64 8
  %165 = getelementptr inbounds i8, ptr %17, i64 8
  %166 = getelementptr inbounds i8, ptr %18, i64 8
  %167 = add nsw i64 %148, -95
  %168 = icmp slt i8 %147, 103
  %169 = add nsw i64 %148, -99
  %170 = icmp sgt i8 %147, 98
  %171 = add nsw i64 %32, -95
  %172 = icmp slt i8 %31, 103
  %173 = add nsw i64 %32, -99
  %174 = icmp sgt i8 %31, 98
  %175 = add nsw i64 %144, -48
  %176 = icmp slt i8 %143, 56
  %177 = add nsw i64 %144, -50
  %178 = icmp sgt i8 %143, 49
  %179 = add nsw i64 %28, -48
  %180 = icmp slt i8 %27, 56
  %181 = add nsw i64 %28, -50
  %182 = icmp sgt i8 %27, 49
  %or.cond.1 = select i1 %176, i1 %168, i1 false
  br i1 %or.cond.1, label %263, label %270

.preheader150:                                    ; preds = %254, %258
  %183 = getelementptr inbounds i8, ptr %19, i64 8
  br label %.preheader

184:                                              ; preds = %138
  %185 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #6
  br label %409

186:                                              ; preds = %.preheader151
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %11) #6
  %187 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %326) #6
  %188 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %187, i64 noundef %334)
          to label %189 unwind label %.loopexit.split-lp

189:                                              ; preds = %186
  %190 = extractvalue { ptr, i64 } %188, 0
  store ptr %190, ptr %11, align 8
  %191 = extractvalue { ptr, i64 } %188, 1
  store i64 %191, ptr %159, align 8
  %192 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %11, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #6
  br label %194

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

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

193:                                              ; preds = %.loopexit.split-lp, %.loopexit
  %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #6
  br label %409

194:                                              ; preds = %189, %.preheader151
  %or.cond3 = select i1 %329, i1 %335, i1 false
  br i1 %or.cond3, label %195, label %203

195:                                              ; preds = %194
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %12) #6
  %196 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %328) #6
  %197 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %196, i64 noundef %334)
          to label %198 unwind label %.loopexit.split-lp179

198:                                              ; preds = %195
  %199 = extractvalue { ptr, i64 } %197, 0
  store ptr %199, ptr %12, align 8
  %200 = extractvalue { ptr, i64 } %197, 1
  store i64 %200, ptr %160, align 8
  %201 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %12, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12) #6
  br label %203

.loopexit178:                                     ; preds = %271
  %lpad.loopexit180 = landingpad { ptr, i32 }
          cleanup
  br label %202

.loopexit.split-lp179:                            ; preds = %195
  %lpad.loopexit.split-lp181 = landingpad { ptr, i32 }
          cleanup
  br label %202

202:                                              ; preds = %.loopexit.split-lp179, %.loopexit178
  %lpad.phi182 = phi { ptr, i32 } [ %lpad.loopexit180, %.loopexit178 ], [ %lpad.loopexit.split-lp181, %.loopexit.split-lp179 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12) #6
  br label %409

203:                                              ; preds = %198, %194
  %204 = add nsw i64 %148, -98
  %205 = icmp sgt i8 %147, 97
  %or.cond5 = select i1 %327, i1 %205, i1 false
  br i1 %or.cond5, label %206, label %214

206:                                              ; preds = %203
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %13) #6
  %207 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %326) #6
  %208 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %207, i64 noundef %204)
          to label %209 unwind label %.loopexit.split-lp184

209:                                              ; preds = %206
  %210 = extractvalue { ptr, i64 } %208, 0
  store ptr %210, ptr %13, align 8
  %211 = extractvalue { ptr, i64 } %208, 1
  store i64 %211, ptr %161, align 8
  %212 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %13, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #6
  br label %214

.loopexit183:                                     ; preds = %279
  %lpad.loopexit185 = landingpad { ptr, i32 }
          cleanup
  br label %213

.loopexit.split-lp184:                            ; preds = %206
  %lpad.loopexit.split-lp186 = landingpad { ptr, i32 }
          cleanup
  br label %213

213:                                              ; preds = %.loopexit.split-lp184, %.loopexit183
  %lpad.phi187 = phi { ptr, i32 } [ %lpad.loopexit185, %.loopexit183 ], [ %lpad.loopexit.split-lp186, %.loopexit.split-lp184 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #6
  br label %409

214:                                              ; preds = %209, %203
  %or.cond7 = select i1 %329, i1 %205, i1 false
  br i1 %or.cond7, label %215, label %223

215:                                              ; preds = %214
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #6
  %216 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %328) #6
  %217 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %216, i64 noundef %204)
          to label %218 unwind label %.loopexit.split-lp189

218:                                              ; preds = %215
  %219 = extractvalue { ptr, i64 } %217, 0
  store ptr %219, ptr %14, align 8
  %220 = extractvalue { ptr, i64 } %217, 1
  store i64 %220, ptr %162, align 8
  %221 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %14, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #6
  br label %223

.loopexit188:                                     ; preds = %287
  %lpad.loopexit190 = landingpad { ptr, i32 }
          cleanup
  br label %222

.loopexit.split-lp189:                            ; preds = %215
  %lpad.loopexit.split-lp191 = landingpad { ptr, i32 }
          cleanup
  br label %222

222:                                              ; preds = %.loopexit.split-lp189, %.loopexit188
  %lpad.phi192 = phi { ptr, i32 } [ %lpad.loopexit190, %.loopexit188 ], [ %lpad.loopexit.split-lp191, %.loopexit.split-lp189 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #6
  br label %409

223:                                              ; preds = %218, %214
  %224 = add nsw i64 %32, -96
  %225 = icmp slt i8 %31, 104
  %or.cond9 = select i1 %331, i1 %225, i1 false
  br i1 %or.cond9, label %226, label %234

226:                                              ; preds = %223
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %15) #6
  %227 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %330) #6
  %228 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %227, i64 noundef %224)
          to label %229 unwind label %.loopexit.split-lp194

229:                                              ; preds = %226
  %230 = extractvalue { ptr, i64 } %228, 0
  store ptr %230, ptr %15, align 8
  %231 = extractvalue { ptr, i64 } %228, 1
  store i64 %231, ptr %163, align 8
  %232 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %15, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #6
  br label %234

.loopexit193:                                     ; preds = %295
  %lpad.loopexit195 = landingpad { ptr, i32 }
          cleanup
  br label %233

.loopexit.split-lp194:                            ; preds = %226
  %lpad.loopexit.split-lp196 = landingpad { ptr, i32 }
          cleanup
  br label %233

233:                                              ; preds = %.loopexit.split-lp194, %.loopexit193
  %lpad.phi197 = phi { ptr, i32 } [ %lpad.loopexit195, %.loopexit193 ], [ %lpad.loopexit.split-lp196, %.loopexit.split-lp194 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #6
  br label %409

234:                                              ; preds = %229, %223
  %or.cond11 = select i1 %333, i1 %225, i1 false
  br i1 %or.cond11, label %235, label %243

235:                                              ; preds = %234
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %16) #6
  %236 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %332) #6
  %237 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %236, i64 noundef %224)
          to label %238 unwind label %.loopexit.split-lp199

238:                                              ; preds = %235
  %239 = extractvalue { ptr, i64 } %237, 0
  store ptr %239, ptr %16, align 8
  %240 = extractvalue { ptr, i64 } %237, 1
  store i64 %240, ptr %164, align 8
  %241 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %16, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #6
  br label %243

.loopexit198:                                     ; preds = %303
  %lpad.loopexit200 = landingpad { ptr, i32 }
          cleanup
  br label %242

.loopexit.split-lp199:                            ; preds = %235
  %lpad.loopexit.split-lp201 = landingpad { ptr, i32 }
          cleanup
  br label %242

242:                                              ; preds = %.loopexit.split-lp199, %.loopexit198
  %lpad.phi202 = phi { ptr, i32 } [ %lpad.loopexit200, %.loopexit198 ], [ %lpad.loopexit.split-lp201, %.loopexit.split-lp199 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #6
  br label %409

243:                                              ; preds = %238, %234
  %244 = add nsw i64 %32, -98
  %245 = icmp sgt i8 %31, 97
  %or.cond13 = select i1 %331, i1 %245, i1 false
  br i1 %or.cond13, label %246, label %254

246:                                              ; preds = %243
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %17) #6
  %247 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %330) #6
  %248 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %247, i64 noundef %244)
          to label %249 unwind label %.loopexit.split-lp204

249:                                              ; preds = %246
  %250 = extractvalue { ptr, i64 } %248, 0
  store ptr %250, ptr %17, align 8
  %251 = extractvalue { ptr, i64 } %248, 1
  store i64 %251, ptr %165, align 8
  %252 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %17, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #6
  br label %254

.loopexit203:                                     ; preds = %311
  %lpad.loopexit205 = landingpad { ptr, i32 }
          cleanup
  br label %253

.loopexit.split-lp204:                            ; preds = %246
  %lpad.loopexit.split-lp206 = landingpad { ptr, i32 }
          cleanup
  br label %253

253:                                              ; preds = %.loopexit.split-lp204, %.loopexit203
  %lpad.phi207 = phi { ptr, i32 } [ %lpad.loopexit205, %.loopexit203 ], [ %lpad.loopexit.split-lp206, %.loopexit.split-lp204 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #6
  br label %409

254:                                              ; preds = %249, %243
  %or.cond15 = select i1 %333, i1 %245, i1 false
  br i1 %or.cond15, label %255, label %.preheader150

255:                                              ; preds = %254
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %18) #6
  %256 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %332) #6
  %257 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %256, i64 noundef %244)
          to label %258 unwind label %.loopexit.split-lp209

258:                                              ; preds = %255
  %259 = extractvalue { ptr, i64 } %257, 0
  store ptr %259, ptr %18, align 8
  %260 = extractvalue { ptr, i64 } %257, 1
  store i64 %260, ptr %166, align 8
  %261 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %18, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #6
  br label %.preheader150

.loopexit208:                                     ; preds = %319
  %lpad.loopexit210 = landingpad { ptr, i32 }
          cleanup
  br label %262

.loopexit.split-lp209:                            ; preds = %255
  %lpad.loopexit.split-lp211 = landingpad { ptr, i32 }
          cleanup
  br label %262

262:                                              ; preds = %.loopexit.split-lp209, %.loopexit208
  %lpad.phi212 = phi { ptr, i32 } [ %lpad.loopexit210, %.loopexit208 ], [ %lpad.loopexit.split-lp211, %.loopexit.split-lp209 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #6
  br label %409

263:                                              ; preds = %154
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %11) #6
  %264 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %175) #6
  %265 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %264, i64 noundef %167)
          to label %266 unwind label %.loopexit

266:                                              ; preds = %263
  %267 = extractvalue { ptr, i64 } %265, 0
  store ptr %267, ptr %11, align 8
  %268 = extractvalue { ptr, i64 } %265, 1
  store i64 %268, ptr %159, align 8
  %269 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %11, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #6
  br label %270

270:                                              ; preds = %266, %154
  %or.cond3.1 = select i1 %178, i1 %168, i1 false
  br i1 %or.cond3.1, label %271, label %278

271:                                              ; preds = %270
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %12) #6
  %272 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %177) #6
  %273 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %272, i64 noundef %167)
          to label %274 unwind label %.loopexit178

274:                                              ; preds = %271
  %275 = extractvalue { ptr, i64 } %273, 0
  store ptr %275, ptr %12, align 8
  %276 = extractvalue { ptr, i64 } %273, 1
  store i64 %276, ptr %160, align 8
  %277 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %12, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12) #6
  br label %278

278:                                              ; preds = %274, %270
  %or.cond5.1 = select i1 %176, i1 %170, i1 false
  br i1 %or.cond5.1, label %279, label %286

279:                                              ; preds = %278
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %13) #6
  %280 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %175) #6
  %281 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %280, i64 noundef %169)
          to label %282 unwind label %.loopexit183

282:                                              ; preds = %279
  %283 = extractvalue { ptr, i64 } %281, 0
  store ptr %283, ptr %13, align 8
  %284 = extractvalue { ptr, i64 } %281, 1
  store i64 %284, ptr %161, align 8
  %285 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %13, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #6
  br label %286

286:                                              ; preds = %282, %278
  %or.cond7.1 = select i1 %178, i1 %170, i1 false
  br i1 %or.cond7.1, label %287, label %294

287:                                              ; preds = %286
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #6
  %288 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %177) #6
  %289 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %288, i64 noundef %169)
          to label %290 unwind label %.loopexit188

290:                                              ; preds = %287
  %291 = extractvalue { ptr, i64 } %289, 0
  store ptr %291, ptr %14, align 8
  %292 = extractvalue { ptr, i64 } %289, 1
  store i64 %292, ptr %162, align 8
  %293 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %14, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #6
  br label %294

294:                                              ; preds = %290, %286
  %or.cond9.1 = select i1 %180, i1 %172, i1 false
  br i1 %or.cond9.1, label %295, label %302

295:                                              ; preds = %294
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %15) #6
  %296 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %179) #6
  %297 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %296, i64 noundef %171)
          to label %298 unwind label %.loopexit193

298:                                              ; preds = %295
  %299 = extractvalue { ptr, i64 } %297, 0
  store ptr %299, ptr %15, align 8
  %300 = extractvalue { ptr, i64 } %297, 1
  store i64 %300, ptr %163, align 8
  %301 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %15, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #6
  br label %302

302:                                              ; preds = %298, %294
  %or.cond11.1 = select i1 %182, i1 %172, i1 false
  br i1 %or.cond11.1, label %303, label %310

303:                                              ; preds = %302
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %16) #6
  %304 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %181) #6
  %305 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %304, i64 noundef %171)
          to label %306 unwind label %.loopexit198

306:                                              ; preds = %303
  %307 = extractvalue { ptr, i64 } %305, 0
  store ptr %307, ptr %16, align 8
  %308 = extractvalue { ptr, i64 } %305, 1
  store i64 %308, ptr %164, align 8
  %309 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %16, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #6
  br label %310

310:                                              ; preds = %306, %302
  %or.cond13.1 = select i1 %180, i1 %174, i1 false
  br i1 %or.cond13.1, label %311, label %318

311:                                              ; preds = %310
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %17) #6
  %312 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %179) #6
  %313 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %312, i64 noundef %173)
          to label %314 unwind label %.loopexit203

314:                                              ; preds = %311
  %315 = extractvalue { ptr, i64 } %313, 0
  store ptr %315, ptr %17, align 8
  %316 = extractvalue { ptr, i64 } %313, 1
  store i64 %316, ptr %165, align 8
  %317 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %17, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #6
  br label %318

318:                                              ; preds = %314, %310
  %or.cond15.1 = select i1 %182, i1 %174, i1 false
  br i1 %or.cond15.1, label %319, label %.preheader151

319:                                              ; preds = %318
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %18) #6
  %320 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %181) #6
  %321 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %320, i64 noundef %173)
          to label %322 unwind label %.loopexit208

322:                                              ; preds = %319
  %323 = extractvalue { ptr, i64 } %321, 0
  store ptr %323, ptr %18, align 8
  %324 = extractvalue { ptr, i64 } %321, 1
  store i64 %324, ptr %166, align 8
  %325 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %18, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #6
  br label %.preheader151

.preheader151:                                    ; preds = %322, %318
  %326 = add nsw i64 %144, -47
  %327 = icmp slt i8 %143, 55
  %328 = add nsw i64 %144, -51
  %329 = icmp sgt i8 %143, 50
  %330 = add nsw i64 %28, -47
  %331 = icmp slt i8 %27, 55
  %332 = add nsw i64 %28, -51
  %333 = icmp sgt i8 %27, 50
  %334 = add nsw i64 %148, -96
  %335 = icmp slt i8 %147, 104
  %or.cond = select i1 %327, i1 %335, i1 false
  br i1 %or.cond, label %186, label %194

.preheader:                                       ; preds = %.preheader150, %382
  %indvars.iv171 = phi i64 [ 0, %.preheader150 ], [ %indvars.iv.next172, %382 ]
  %.0106161 = phi i32 [ 0, %.preheader150 ], [ %401, %382 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %19) #6
  %336 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %indvars.iv171) #6
  %337 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %336, i64 noundef 0)
          to label %340 unwind label %402

338:                                              ; preds = %382
  %339 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %401)
          to label %404 unwind label %407

340:                                              ; preds = %.preheader
  %341 = extractvalue { ptr, i64 } %337, 0
  store ptr %341, ptr %19, align 8
  %342 = extractvalue { ptr, i64 } %337, 1
  store i64 %342, ptr %183, align 8
  %343 = call noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16) %19) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %19) #6
  %344 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %indvars.iv171) #6
  %345 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %344, i64 noundef 1)
          to label %346 unwind label %402

346:                                              ; preds = %340
  %347 = extractvalue { ptr, i64 } %345, 0
  store ptr %347, ptr %19, align 8
  %348 = extractvalue { ptr, i64 } %345, 1
  store i64 %348, ptr %183, align 8
  %349 = call noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16) %19) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %19) #6
  %350 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %indvars.iv171) #6
  %351 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %350, i64 noundef 2)
          to label %352 unwind label %402

352:                                              ; preds = %346
  %353 = extractvalue { ptr, i64 } %351, 0
  store ptr %353, ptr %19, align 8
  %354 = extractvalue { ptr, i64 } %351, 1
  store i64 %354, ptr %183, align 8
  %355 = call noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16) %19) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %19) #6
  %356 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %indvars.iv171) #6
  %357 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %356, i64 noundef 3)
          to label %358 unwind label %402

358:                                              ; preds = %352
  %359 = extractvalue { ptr, i64 } %357, 0
  store ptr %359, ptr %19, align 8
  %360 = extractvalue { ptr, i64 } %357, 1
  store i64 %360, ptr %183, align 8
  %361 = call noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16) %19) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %19) #6
  %362 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %indvars.iv171) #6
  %363 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %362, i64 noundef 4)
          to label %364 unwind label %402

364:                                              ; preds = %358
  %365 = extractvalue { ptr, i64 } %363, 0
  store ptr %365, ptr %19, align 8
  %366 = extractvalue { ptr, i64 } %363, 1
  store i64 %366, ptr %183, align 8
  %367 = call noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16) %19) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %19) #6
  %368 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %indvars.iv171) #6
  %369 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %368, i64 noundef 5)
          to label %370 unwind label %402

370:                                              ; preds = %364
  %371 = extractvalue { ptr, i64 } %369, 0
  store ptr %371, ptr %19, align 8
  %372 = extractvalue { ptr, i64 } %369, 1
  store i64 %372, ptr %183, align 8
  %373 = call noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16) %19) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %19) #6
  %374 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %indvars.iv171) #6
  %375 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %374, i64 noundef 6)
          to label %376 unwind label %402

376:                                              ; preds = %370
  %377 = extractvalue { ptr, i64 } %375, 0
  store ptr %377, ptr %19, align 8
  %378 = extractvalue { ptr, i64 } %375, 1
  store i64 %378, ptr %183, align 8
  %379 = call noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16) %19) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %19) #6
  %380 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIS_IbSaIbEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %indvars.iv171) #6
  %381 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %380, i64 noundef 7)
          to label %382 unwind label %402

382:                                              ; preds = %376
  %383 = zext i1 %343 to i32
  %384 = add nsw i32 %.0106161, %383
  %385 = zext i1 %349 to i32
  %386 = add nsw i32 %384, %385
  %387 = zext i1 %355 to i32
  %388 = add nsw i32 %386, %387
  %389 = zext i1 %361 to i32
  %390 = add nsw i32 %388, %389
  %391 = zext i1 %367 to i32
  %392 = add nsw i32 %390, %391
  %393 = zext i1 %373 to i32
  %394 = add nsw i32 %392, %393
  %395 = zext i1 %379 to i32
  %396 = add nsw i32 %394, %395
  %397 = extractvalue { ptr, i64 } %381, 0
  store ptr %397, ptr %19, align 8
  %398 = extractvalue { ptr, i64 } %381, 1
  store i64 %398, ptr %183, align 8
  %399 = call noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16) %19) #6
  %400 = zext i1 %399 to i32
  %401 = add nsw i32 %396, %400
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #6
  %indvars.iv.next172 = add nuw nsw i64 %indvars.iv171, 1
  %exitcond174.not = icmp eq i64 %indvars.iv.next172, 8
  br i1 %exitcond174.not, label %338, label %.preheader, !llvm.loop !10

402:                                              ; preds = %376, %370, %364, %358, %352, %346, %340, %.preheader
  %403 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #6
  br label %409

404:                                              ; preds = %338
  %405 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %339, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %406 unwind label %407

406:                                              ; preds = %404
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #6
  call void @_ZNSt6vectorIS_IbSaIbEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %1) #6
  ret i32 0

407:                                              ; preds = %404, %338
  %408 = landingpad { ptr, i32 }
          cleanup
  br label %409

409:                                              ; preds = %94, %152, %262, %253, %242, %233, %222, %213, %202, %193, %407, %402, %184, %44
  %.pn145.pn = phi { ptr, i32 } [ %45, %44 ], [ %95, %94 ], [ %153, %152 ], [ %185, %184 ], [ %lpad.phi212, %262 ], [ %lpad.phi207, %253 ], [ %lpad.phi202, %242 ], [ %lpad.phi197, %233 ], [ %lpad.phi192, %222 ], [ %lpad.phi187, %213 ], [ %lpad.phi182, %202 ], [ %lpad.phi, %193 ], [ %403, %402 ], [ %408, %407 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #6
  br label %410

410:                                              ; preds = %409, %42
  %.pn145.pn.pn = phi { ptr, i32 } [ %.pn145.pn, %409 ], [ %43, %42 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #6
  call void @_ZNSt6vectorIS_IbSaIbEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1) #6
  br label %411

411:                                              ; preds = %410, %41
  %.pn145.pn.pn.pn = phi { ptr, i32 } [ %.pn145.pn.pn, %410 ], [ %.pn, %41 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %1) #6
  resume { ptr, i32 } %.pn145.pn.pn.pn
}

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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