; LLVM IR from xirc/cp-algorithm :: atcoder/abc184/E/main.ll (Z5solvev)

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

%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.2" = type { i8 }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::initializer_list" = type { ptr, i64 }
%"class.std::allocator.10" = type { i8 }
%"class.std::vector.13" = 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.17" = type { i8 }
%"class.std::queue" = type { %"class.std::deque" }
%"class.std::deque" = type { %"class.std::_Deque_base" }
%"class.std::_Deque_base" = type { %"struct.std::_Deque_base<std::array<int, 2>, std::allocator<std::array<int, 2>>>::_Deque_impl" }
%"struct.std::_Deque_base<std::array<int, 2>, std::allocator<std::array<int, 2>>>::_Deque_impl" = type { %"struct.std::_Deque_base<std::array<int, 2>, std::allocator<std::array<int, 2>>>::_Deque_impl_data" }
%"struct.std::_Deque_base<std::array<int, 2>, std::allocator<std::array<int, 2>>>::_Deque_impl_data" = type { ptr, i64, %"struct.std::_Deque_iterator", %"struct.std::_Deque_iterator" }
%"struct.std::_Deque_iterator" = type { ptr, ptr, ptr, ptr }
%"struct.std::array" = type { [2 x i32] }
%"struct.std::_Bit_reference" = type { ptr, i64 }

@H = external dso_local global i32, align 4
@W = external dso_local global i32, align 4
@_Z1GB5cxx11 = external dso_local global %"class.std::vector", align 8

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_Z5solvev() #0 personality ptr @__gxx_personality_v0 {
  %1 = alloca i32, align 4
  %2 = alloca i32, align 4
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca %"class.std::vector.0", align 8
  %7 = alloca %"class.std::allocator.2", align 1
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i8, align 1
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca %"class.std::vector.8", align 8
  %17 = alloca %"class.std::initializer_list", align 8
  %18 = alloca [4 x i32], align 4
  %19 = alloca %"class.std::allocator.10", align 1
  %20 = alloca %"class.std::vector.8", align 8
  %21 = alloca %"class.std::initializer_list", align 8
  %22 = alloca [4 x i32], align 4
  %23 = alloca %"class.std::allocator.10", align 1
  %24 = alloca %"class.std::vector.13", align 8
  %25 = alloca i8, align 1
  %26 = alloca %"class.std::allocator.17", align 1
  %27 = alloca %"class.std::vector.0", align 8
  %28 = alloca %"class.std::vector.8", align 8
  %29 = alloca %"class.std::allocator.10", align 1
  %30 = alloca %"class.std::allocator.2", align 1
  %31 = alloca %"class.std::queue", align 8
  %32 = alloca %"struct.std::array", align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca %"struct.std::array", align 4
  %39 = alloca i32, align 4
  %40 = alloca %"struct.std::_Bit_reference", align 8
  %41 = alloca %"struct.std::_Bit_reference", align 8
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca %"struct.std::array", align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %2) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %4) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #4
  call void @llvm.lifetime.start.p0(i64 24, ptr %6) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %7) #4
  call void @_ZNSaISt6vectorIiSaIiEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #4
  invoke void @_ZNSt6vectorIS_IiSaIiEESaIS1_EEC2EmRKS2_(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef 26, ptr noundef nonnull align 1 dereferenceable(1) %7)
          to label %46 unwind label %52

46:                                               ; preds = %0
  call void @_ZNSt15__new_allocatorISt6vectorIiSaIiEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #4
  store i32 0, ptr %10, align 4, !tbaa !5
  br label %47

47:                                               ; preds = %120, %46
  %48 = load i32, ptr %10, align 4, !tbaa !5
  %49 = load i32, ptr @H, align 4, !tbaa !5
  %50 = icmp slt i32 %48, %49
  br i1 %50, label %56, label %51

51:                                               ; preds = %47
  store i32 2, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #4
  br label %123

52:                                               ; preds = %0
  %53 = landingpad { ptr, i32 }
          cleanup
  %54 = extractvalue { ptr, i32 } %53, 0
  store ptr %54, ptr %8, align 8
  %55 = extractvalue { ptr, i32 } %53, 1
  store i32 %55, ptr %9, align 4
  call void @_ZNSt15__new_allocatorISt6vectorIiSaIiEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #4
  br label %484

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

57:                                               ; preds = %115, %56
  %58 = load i32, ptr %12, align 4, !tbaa !5
  %59 = load i32, ptr @W, align 4, !tbaa !5
  %60 = icmp slt i32 %58, %59
  br i1 %60, label %62, label %61

61:                                               ; preds = %57
  store i32 5, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #4
  br label %119

62:                                               ; preds = %57
  call void @llvm.lifetime.start.p0(i64 1, ptr %13) #4
  %63 = load i32, ptr %10, align 4, !tbaa !5
  %64 = sext i32 %63 to i64
  %65 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) @_Z1GB5cxx11, i64 noundef %64) #4
  %66 = load i32, ptr %12, align 4, !tbaa !5
  %67 = sext i32 %66 to i64
  %68 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %65, i64 noundef %67)
          to label %69 unwind label %77

69:                                               ; preds = %62
  %70 = load i8, ptr %68, align 1, !tbaa !9
  store i8 %70, ptr %13, align 1, !tbaa !9
  %71 = load i8, ptr %13, align 1, !tbaa !9
  %72 = sext i8 %71 to i32
  %73 = icmp eq i32 %72, 83
  br i1 %73, label %74, label %81

74:                                               ; preds = %69
  %75 = load i32, ptr %10, align 4, !tbaa !5
  store i32 %75, ptr %2, align 4, !tbaa !5
  %76 = load i32, ptr %12, align 4, !tbaa !5
  store i32 %76, ptr %3, align 4, !tbaa !5
  br label %114

77:                                               ; preds = %62
  %78 = landingpad { ptr, i32 }
          cleanup
  %79 = extractvalue { ptr, i32 } %78, 0
  store ptr %79, ptr %8, align 8
  %80 = extractvalue { ptr, i32 } %78, 1
  store i32 %80, ptr %9, align 4
  br label %118

81:                                               ; preds = %69
  %82 = load i8, ptr %13, align 1, !tbaa !9
  %83 = sext i8 %82 to i32
  %84 = icmp eq i32 %83, 71
  br i1 %84, label %85, label %88

85:                                               ; preds = %81
  %86 = load i32, ptr %10, align 4, !tbaa !5
  store i32 %86, ptr %4, align 4, !tbaa !5
  %87 = load i32, ptr %12, align 4, !tbaa !5
  store i32 %87, ptr %5, align 4, !tbaa !5
  br label %113

88:                                               ; preds = %81
  %89 = load i8, ptr %13, align 1, !tbaa !9
  %90 = sext i8 %89 to i32
  %91 = icmp sge i32 %90, 97
  br i1 %91, label %92, label %112

92:                                               ; preds = %88
  %93 = load i8, ptr %13, align 1, !tbaa !9
  %94 = sext i8 %93 to i32
  %95 = icmp sle i32 %94, 122
  br i1 %95, label %96, label %112

96:                                               ; preds = %92
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #4
  %97 = load i8, ptr %13, align 1, !tbaa !9
  %98 = sext i8 %97 to i32
  %99 = sub nsw i32 %98, 97
  store i32 %99, ptr %14, align 4, !tbaa !5
  %100 = load i32, ptr %14, align 4, !tbaa !5
  %101 = sext i32 %100 to i64
  %102 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %101) #4
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %102, ptr noundef nonnull align 4 dereferenceable(4) %10)
          to label %103 unwind label %108

103:                                              ; preds = %96
  %104 = load i32, ptr %14, align 4, !tbaa !5
  %105 = sext i32 %104 to i64
  %106 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %105) #4
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %106, ptr noundef nonnull align 4 dereferenceable(4) %12)
          to label %107 unwind label %108

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

108:                                              ; preds = %103, %96
  %109 = landingpad { ptr, i32 }
          cleanup
  %110 = extractvalue { ptr, i32 } %109, 0
  store ptr %110, ptr %8, align 8
  %111 = extractvalue { ptr, i32 } %109, 1
  store i32 %111, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #4
  br label %118

112:                                              ; preds = %107, %92, %88
  br label %113

113:                                              ; preds = %112, %85
  br label %114

114:                                              ; preds = %113, %74
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #4
  br label %115

115:                                              ; preds = %114
  %116 = load i32, ptr %12, align 4, !tbaa !5
  %117 = add nsw i32 %116, 1
  store i32 %117, ptr %12, align 4, !tbaa !5
  br label %57, !llvm.loop !10

118:                                              ; preds = %108, %77
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #4
  br label %483

119:                                              ; preds = %61
  br label %120

120:                                              ; preds = %119
  %121 = load i32, ptr %10, align 4, !tbaa !5
  %122 = add nsw i32 %121, 1
  store i32 %122, ptr %10, align 4, !tbaa !5
  br label %47, !llvm.loop !12

123:                                              ; preds = %51
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #4
  store i32 100000000, ptr %15, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr %16) #4
  call void @llvm.lifetime.start.p0(i64 16, ptr %18) #4
  store i32 1, ptr %18, align 4, !tbaa !5
  %124 = getelementptr inbounds i32, ptr %18, i64 1
  store i32 -1, ptr %124, align 4, !tbaa !5
  %125 = getelementptr inbounds i32, ptr %18, i64 2
  store i32 0, ptr %125, align 4, !tbaa !5
  %126 = getelementptr inbounds i32, ptr %18, i64 3
  store i32 0, ptr %126, align 4, !tbaa !5
  %127 = getelementptr inbounds %"class.std::initializer_list", ptr %17, i32 0, i32 0
  store ptr %18, ptr %127, align 8, !tbaa !13
  %128 = getelementptr inbounds %"class.std::initializer_list", ptr %17, i32 0, i32 1
  store i64 4, ptr %128, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #4
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #4
  %129 = getelementptr inbounds { ptr, i64 }, ptr %17, i32 0, i32 0
  %130 = load ptr, ptr %129, align 8
  %131 = getelementptr inbounds { ptr, i64 }, ptr %17, i32 0, i32 1
  %132 = load i64, ptr %131, align 8
  invoke void @_ZNSt6vectorIiSaIiEEC2ESt16initializer_listIiERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %16, ptr %130, i64 %132, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %133 unwind label %192

133:                                              ; preds = %123
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %18) #4
  call void @llvm.lifetime.start.p0(i64 24, ptr %20) #4
  call void @llvm.lifetime.start.p0(i64 16, ptr %22) #4
  store i32 0, ptr %22, align 4, !tbaa !5
  %134 = getelementptr inbounds i32, ptr %22, i64 1
  store i32 0, ptr %134, align 4, !tbaa !5
  %135 = getelementptr inbounds i32, ptr %22, i64 2
  store i32 1, ptr %135, align 4, !tbaa !5
  %136 = getelementptr inbounds i32, ptr %22, i64 3
  store i32 -1, ptr %136, align 4, !tbaa !5
  %137 = getelementptr inbounds %"class.std::initializer_list", ptr %21, i32 0, i32 0
  store ptr %22, ptr %137, align 8, !tbaa !13
  %138 = getelementptr inbounds %"class.std::initializer_list", ptr %21, i32 0, i32 1
  store i64 4, ptr %138, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #4
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #4
  %139 = getelementptr inbounds { ptr, i64 }, ptr %21, i32 0, i32 0
  %140 = load ptr, ptr %139, align 8
  %141 = getelementptr inbounds { ptr, i64 }, ptr %21, i32 0, i32 1
  %142 = load i64, ptr %141, align 8
  invoke void @_ZNSt6vectorIiSaIiEEC2ESt16initializer_listIiERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %20, ptr %140, i64 %142, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %143 unwind label %196

143:                                              ; preds = %133
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %22) #4
  call void @llvm.lifetime.start.p0(i64 40, ptr %24) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #4
  store i8 0, ptr %25, align 1, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #4
  call void @_ZNSaIbEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #4
  invoke void @_ZNSt6vectorIbSaIbEEC2EmRKbRKS0_(ptr noundef nonnull align 8 dereferenceable(40) %24, i64 noundef 26, ptr noundef nonnull align 1 dereferenceable(1) %25, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %144 unwind label %200

144:                                              ; preds = %143
  call void @_ZNSt15__new_allocatorIbED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #4
  call void @llvm.lifetime.start.p0(i64 24, ptr %27) #4
  %145 = load i32, ptr @H, align 4, !tbaa !5
  %146 = sext i32 %145 to i64
  call void @llvm.lifetime.start.p0(i64 24, ptr %28) #4
  %147 = load i32, ptr @W, align 4, !tbaa !5
  %148 = sext i32 %147 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #4
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #4
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKiRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %28, i64 noundef %148, ptr noundef nonnull align 4 dereferenceable(4) %15, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %149 unwind label %204

149:                                              ; preds = %144
  call void @llvm.lifetime.start.p0(i64 1, ptr %30) #4
  call void @_ZNSaISt6vectorIiSaIiEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #4
  invoke void @_ZNSt6vectorIS_IiSaIiEESaIS1_EEC2EmRKS1_RKS2_(ptr noundef nonnull align 8 dereferenceable(24) %27, i64 noundef %146, ptr noundef nonnull align 8 dereferenceable(24) %28, ptr noundef nonnull align 1 dereferenceable(1) %30)
          to label %150 unwind label %208

150:                                              ; preds = %149
  call void @_ZNSt15__new_allocatorISt6vectorIiSaIiEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #4
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %28) #4
  call void @llvm.lifetime.start.p0(i64 80, ptr %31) #4
  invoke void @_ZNSt5queueISt5arrayIiLm2EESt5dequeIS1_SaIS1_EEEC2IS4_vEEv(ptr noundef nonnull align 8 dereferenceable(80) %31)
          to label %151 unwind label %213

151:                                              ; preds = %150
  %152 = load i32, ptr %2, align 4, !tbaa !5
  %153 = sext i32 %152 to i64
  %154 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %27, i64 noundef %153) #4
  %155 = load i32, ptr %3, align 4, !tbaa !5
  %156 = sext i32 %155 to i64
  %157 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %154, i64 noundef %156) #4
  store i32 0, ptr %157, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #4
  %158 = getelementptr inbounds %"struct.std::array", ptr %32, i32 0, i32 0
  %159 = load i32, ptr %2, align 4, !tbaa !5
  store i32 %159, ptr %158, align 4, !tbaa !5
  %160 = getelementptr inbounds i32, ptr %158, i64 1
  %161 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %161, ptr %160, align 4, !tbaa !5
  invoke void @_ZNSt5queueISt5arrayIiLm2EESt5dequeIS1_SaIS1_EEE4pushEOS1_(ptr noundef nonnull align 8 dereferenceable(80) %31, ptr noundef nonnull align 4 dereferenceable(8) %32)
          to label %162 unwind label %217

162:                                              ; preds = %151
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #4
  br label %163

163:                                              ; preds = %471, %162
  %164 = invoke noundef i64 @_ZNKSt5queueISt5arrayIiLm2EESt5dequeIS1_SaIS1_EEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %31)
          to label %165 unwind label %221

165:                                              ; preds = %163
  %166 = icmp ne i64 %164, 0
  br i1 %166, label %167, label %474

167:                                              ; preds = %165
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #4
  %168 = invoke noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt5queueISt5arrayIiLm2EESt5dequeIS1_SaIS1_EEE5frontEv(ptr noundef nonnull align 8 dereferenceable(80) %31)
          to label %169 unwind label %225

169:                                              ; preds = %167
  %170 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt5arrayIiLm2EEixEm(ptr noundef nonnull align 4 dereferenceable(8) %168, i64 noundef 0) #4
  %171 = load i32, ptr %170, align 4, !tbaa !5
  store i32 %171, ptr %33, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #4
  %172 = invoke noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt5queueISt5arrayIiLm2EESt5dequeIS1_SaIS1_EEE5frontEv(ptr noundef nonnull align 8 dereferenceable(80) %31)
          to label %173 unwind label %229

173:                                              ; preds = %169
  %174 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt5arrayIiLm2EEixEm(ptr noundef nonnull align 4 dereferenceable(8) %172, i64 noundef 1) #4
  %175 = load i32, ptr %174, align 4, !tbaa !5
  store i32 %175, ptr %34, align 4, !tbaa !5
  invoke void @_ZNSt5queueISt5arrayIiLm2EESt5dequeIS1_SaIS1_EEE3popEv(ptr noundef nonnull align 8 dereferenceable(80) %31)
          to label %176 unwind label %229

176:                                              ; preds = %173
  %177 = load i32, ptr %33, align 4, !tbaa !5
  %178 = load i32, ptr %4, align 4, !tbaa !5
  %179 = icmp eq i32 %177, %178
  br i1 %179, label %180, label %233

180:                                              ; preds = %176
  %181 = load i32, ptr %34, align 4, !tbaa !5
  %182 = load i32, ptr %5, align 4, !tbaa !5
  %183 = icmp eq i32 %181, %182
  br i1 %183, label %184, label %233

184:                                              ; preds = %180
  %185 = load i32, ptr %33, align 4, !tbaa !5
  %186 = sext i32 %185 to i64
  %187 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %27, i64 noundef %186) #4
  %188 = load i32, ptr %34, align 4, !tbaa !5
  %189 = sext i32 %188 to i64
  %190 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %187, i64 noundef %189) #4
  %191 = load i32, ptr %190, align 4, !tbaa !5
  store i32 %191, ptr %1, align 4
  store i32 1, ptr %11, align 4
  br label %469

192:                                              ; preds = %123
  %193 = landingpad { ptr, i32 }
          cleanup
  %194 = extractvalue { ptr, i32 } %193, 0
  store ptr %194, ptr %8, align 8
  %195 = extractvalue { ptr, i32 } %193, 1
  store i32 %195, ptr %9, align 4
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %18) #4
  br label %482

196:                                              ; preds = %133
  %197 = landingpad { ptr, i32 }
          cleanup
  %198 = extractvalue { ptr, i32 } %197, 0
  store ptr %198, ptr %8, align 8
  %199 = extractvalue { ptr, i32 } %197, 1
  store i32 %199, ptr %9, align 4
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %22) #4
  br label %481

200:                                              ; preds = %143
  %201 = landingpad { ptr, i32 }
          cleanup
  %202 = extractvalue { ptr, i32 } %201, 0
  store ptr %202, ptr %8, align 8
  %203 = extractvalue { ptr, i32 } %201, 1
  store i32 %203, ptr %9, align 4
  call void @_ZNSt15__new_allocatorIbED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #4
  br label %480

204:                                              ; preds = %144
  %205 = landingpad { ptr, i32 }
          cleanup
  %206 = extractvalue { ptr, i32 } %205, 0
  store ptr %206, ptr %8, align 8
  %207 = extractvalue { ptr, i32 } %205, 1
  store i32 %207, ptr %9, align 4
  br label %212

208:                                              ; preds = %149
  %209 = landingpad { ptr, i32 }
          cleanup
  %210 = extractvalue { ptr, i32 } %209, 0
  store ptr %210, ptr %8, align 8
  %211 = extractvalue { ptr, i32 } %209, 1
  store i32 %211, ptr %9, align 4
  call void @_ZNSt15__new_allocatorISt6vectorIiSaIiEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #4
  br label %212

212:                                              ; preds = %208, %204
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %28) #4
  br label %479

213:                                              ; preds = %150
  %214 = landingpad { ptr, i32 }
          cleanup
  %215 = extractvalue { ptr, i32 } %214, 0
  store ptr %215, ptr %8, align 8
  %216 = extractvalue { ptr, i32 } %214, 1
  store i32 %216, ptr %9, align 4
  br label %478

217:                                              ; preds = %151
  %218 = landingpad { ptr, i32 }
          cleanup
  %219 = extractvalue { ptr, i32 } %218, 0
  store ptr %219, ptr %8, align 8
  %220 = extractvalue { ptr, i32 } %218, 1
  store i32 %220, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #4
  br label %477

221:                                              ; preds = %163
  %222 = landingpad { ptr, i32 }
          cleanup
  %223 = extractvalue { ptr, i32 } %222, 0
  store ptr %223, ptr %8, align 8
  %224 = extractvalue { ptr, i32 } %222, 1
  store i32 %224, ptr %9, align 4
  br label %477

225:                                              ; preds = %167
  %226 = landingpad { ptr, i32 }
          cleanup
  %227 = extractvalue { ptr, i32 } %226, 0
  store ptr %227, ptr %8, align 8
  %228 = extractvalue { ptr, i32 } %226, 1
  store i32 %228, ptr %9, align 4
  br label %473

229:                                              ; preds = %342, %331, %173, %169
  %230 = landingpad { ptr, i32 }
          cleanup
  %231 = extractvalue { ptr, i32 } %230, 0
  store ptr %231, ptr %8, align 8
  %232 = extractvalue { ptr, i32 } %230, 1
  store i32 %232, ptr %9, align 4
  br label %472

233:                                              ; preds = %180, %176
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #4
  store i32 0, ptr %35, align 4, !tbaa !5
  br label %234

234:                                              ; preds = %323, %233
  %235 = load i32, ptr %35, align 4, !tbaa !5
  %236 = icmp slt i32 %235, 4
  br i1 %236, label %238, label %237

237:                                              ; preds = %234
  store i32 10, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #4
  br label %331

238:                                              ; preds = %234
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #4
  %239 = load i32, ptr %33, align 4, !tbaa !5
  %240 = load i32, ptr %35, align 4, !tbaa !5
  %241 = sext i32 %240 to i64
  %242 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %20, i64 noundef %241) #4
  %243 = load i32, ptr %242, align 4, !tbaa !5
  %244 = add nsw i32 %239, %243
  store i32 %244, ptr %36, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #4
  %245 = load i32, ptr %34, align 4, !tbaa !5
  %246 = load i32, ptr %35, align 4, !tbaa !5
  %247 = sext i32 %246 to i64
  %248 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %247) #4
  %249 = load i32, ptr %248, align 4, !tbaa !5
  %250 = add nsw i32 %245, %249
  store i32 %250, ptr %37, align 4, !tbaa !5
  %251 = load i32, ptr %36, align 4, !tbaa !5
  %252 = icmp slt i32 %251, 0
  br i1 %252, label %257, label %253

253:                                              ; preds = %238
  %254 = load i32, ptr %36, align 4, !tbaa !5
  %255 = load i32, ptr @H, align 4, !tbaa !5
  %256 = icmp sge i32 %254, %255
  br i1 %256, label %257, label %258

257:                                              ; preds = %253, %238
  store i32 12, ptr %11, align 4
  br label %320

258:                                              ; preds = %253
  %259 = load i32, ptr %37, align 4, !tbaa !5
  %260 = icmp slt i32 %259, 0
  br i1 %260, label %265, label %261

261:                                              ; preds = %258
  %262 = load i32, ptr %37, align 4, !tbaa !5
  %263 = load i32, ptr @W, align 4, !tbaa !5
  %264 = icmp sge i32 %262, %263
  br i1 %264, label %265, label %266

265:                                              ; preds = %261, %258
  store i32 12, ptr %11, align 4
  br label %320

266:                                              ; preds = %261
  %267 = load i32, ptr %36, align 4, !tbaa !5
  %268 = sext i32 %267 to i64
  %269 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) @_Z1GB5cxx11, i64 noundef %268) #4
  %270 = load i32, ptr %37, align 4, !tbaa !5
  %271 = sext i32 %270 to i64
  %272 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %269, i64 noundef %271)
          to label %273 unwind label %278

273:                                              ; preds = %266
  %274 = load i8, ptr %272, align 1, !tbaa !9
  %275 = sext i8 %274 to i32
  %276 = icmp eq i32 %275, 35
  br i1 %276, label %277, label %282

277:                                              ; preds = %273
  store i32 12, ptr %11, align 4
  br label %320

278:                                              ; preds = %266
  %279 = landingpad { ptr, i32 }
          cleanup
  %280 = extractvalue { ptr, i32 } %279, 0
  store ptr %280, ptr %8, align 8
  %281 = extractvalue { ptr, i32 } %279, 1
  store i32 %281, ptr %9, align 4
  br label %330

282:                                              ; preds = %273
  %283 = load i32, ptr %33, align 4, !tbaa !5
  %284 = sext i32 %283 to i64
  %285 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %27, i64 noundef %284) #4
  %286 = load i32, ptr %34, align 4, !tbaa !5
  %287 = sext i32 %286 to i64
  %288 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %285, i64 noundef %287) #4
  %289 = load i32, ptr %288, align 4, !tbaa !5
  %290 = add nsw i32 %289, 1
  %291 = load i32, ptr %36, align 4, !tbaa !5
  %292 = sext i32 %291 to i64
  %293 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %27, i64 noundef %292) #4
  %294 = load i32, ptr %37, align 4, !tbaa !5
  %295 = sext i32 %294 to i64
  %296 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %293, i64 noundef %295) #4
  %297 = load i32, ptr %296, align 4, !tbaa !5
  %298 = icmp sge i32 %290, %297
  br i1 %298, label %299, label %300

299:                                              ; preds = %282
  store i32 12, ptr %11, align 4
  br label %320

300:                                              ; preds = %282
  %301 = load i32, ptr %33, align 4, !tbaa !5
  %302 = sext i32 %301 to i64
  %303 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %27, i64 noundef %302) #4
  %304 = load i32, ptr %34, align 4, !tbaa !5
  %305 = sext i32 %304 to i64
  %306 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %303, i64 noundef %305) #4
  %307 = load i32, ptr %306, align 4, !tbaa !5
  %308 = add nsw i32 %307, 1
  %309 = load i32, ptr %36, align 4, !tbaa !5
  %310 = sext i32 %309 to i64
  %311 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %27, i64 noundef %310) #4
  %312 = load i32, ptr %37, align 4, !tbaa !5
  %313 = sext i32 %312 to i64
  %314 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %311, i64 noundef %313) #4
  store i32 %308, ptr %314, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #4
  %315 = getelementptr inbounds %"struct.std::array", ptr %38, i32 0, i32 0
  %316 = load i32, ptr %36, align 4, !tbaa !5
  store i32 %316, ptr %315, align 4, !tbaa !5
  %317 = getelementptr inbounds i32, ptr %315, i64 1
  %318 = load i32, ptr %37, align 4, !tbaa !5
  store i32 %318, ptr %317, align 4, !tbaa !5
  invoke void @_ZNSt5queueISt5arrayIiLm2EESt5dequeIS1_SaIS1_EEE4pushEOS1_(ptr noundef nonnull align 8 dereferenceable(80) %31, ptr noundef nonnull align 4 dereferenceable(8) %38)
          to label %319 unwind label %326

319:                                              ; preds = %300
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #4
  store i32 0, ptr %11, align 4
  br label %320

320:                                              ; preds = %319, %299, %277, %265, %257
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #4
  %321 = load i32, ptr %11, align 4
  switch i32 %321, label %490 [
    i32 0, label %322
    i32 12, label %323
  ]

322:                                              ; preds = %320
  br label %323

323:                                              ; preds = %322, %320
  %324 = load i32, ptr %35, align 4, !tbaa !5
  %325 = add nsw i32 %324, 1
  store i32 %325, ptr %35, align 4, !tbaa !5
  br label %234, !llvm.loop !20

326:                                              ; preds = %300
  %327 = landingpad { ptr, i32 }
          cleanup
  %328 = extractvalue { ptr, i32 } %327, 0
  store ptr %328, ptr %8, align 8
  %329 = extractvalue { ptr, i32 } %327, 1
  store i32 %329, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #4
  br label %330

330:                                              ; preds = %326, %278
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #4
  br label %472

331:                                              ; preds = %237
  %332 = load i32, ptr %33, align 4, !tbaa !5
  %333 = sext i32 %332 to i64
  %334 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) @_Z1GB5cxx11, i64 noundef %333) #4
  %335 = load i32, ptr %34, align 4, !tbaa !5
  %336 = sext i32 %335 to i64
  %337 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %334, i64 noundef %336)
          to label %338 unwind label %229

338:                                              ; preds = %331
  %339 = load i8, ptr %337, align 1, !tbaa !9
  %340 = sext i8 %339 to i32
  %341 = icmp sge i32 %340, 97
  br i1 %341, label %342, label %468

342:                                              ; preds = %338
  %343 = load i32, ptr %33, align 4, !tbaa !5
  %344 = sext i32 %343 to i64
  %345 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) @_Z1GB5cxx11, i64 noundef %344) #4
  %346 = load i32, ptr %34, align 4, !tbaa !5
  %347 = sext i32 %346 to i64
  %348 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %345, i64 noundef %347)
          to label %349 unwind label %229

349:                                              ; preds = %342
  %350 = load i8, ptr %348, align 1, !tbaa !9
  %351 = sext i8 %350 to i32
  %352 = icmp sle i32 %351, 122
  br i1 %352, label %353, label %468

353:                                              ; preds = %349
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #4
  %354 = load i32, ptr %33, align 4, !tbaa !5
  %355 = sext i32 %354 to i64
  %356 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) @_Z1GB5cxx11, i64 noundef %355) #4
  %357 = load i32, ptr %34, align 4, !tbaa !5
  %358 = sext i32 %357 to i64
  %359 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %356, i64 noundef %358)
          to label %360 unwind label %393

360:                                              ; preds = %353
  %361 = load i8, ptr %359, align 1, !tbaa !9
  %362 = sext i8 %361 to i32
  %363 = sub nsw i32 %362, 97
  store i32 %363, ptr %39, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %40) #4
  %364 = load i32, ptr %39, align 4, !tbaa !5
  %365 = sext i32 %364 to i64
  %366 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %24, i64 noundef %365)
          to label %367 unwind label %397

367:                                              ; preds = %360
  %368 = getelementptr inbounds { ptr, i64 }, ptr %40, i32 0, i32 0
  %369 = extractvalue { ptr, i64 } %366, 0
  store ptr %369, ptr %368, align 8
  %370 = getelementptr inbounds { ptr, i64 }, ptr %40, i32 0, i32 1
  %371 = extractvalue { ptr, i64 } %366, 1
  store i64 %371, ptr %370, align 8
  %372 = call noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16) %40) #4
  %373 = xor i1 %372, true
  call void @llvm.lifetime.end.p0(i64 16, ptr %40) #4
  br i1 %373, label %374, label %466

374:                                              ; preds = %367
  call void @llvm.lifetime.start.p0(i64 16, ptr %41) #4
  %375 = load i32, ptr %39, align 4, !tbaa !5
  %376 = sext i32 %375 to i64
  %377 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %24, i64 noundef %376)
          to label %378 unwind label %401

378:                                              ; preds = %374
  %379 = getelementptr inbounds { ptr, i64 }, ptr %41, i32 0, i32 0
  %380 = extractvalue { ptr, i64 } %377, 0
  store ptr %380, ptr %379, align 8
  %381 = getelementptr inbounds { ptr, i64 }, ptr %41, i32 0, i32 1
  %382 = extractvalue { ptr, i64 } %377, 1
  store i64 %382, ptr %381, align 8
  %383 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %41, i1 noundef zeroext true) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %41) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #4
  store i32 0, ptr %42, align 4, !tbaa !5
  br label %384

384:                                              ; preds = %462, %378
  %385 = load i32, ptr %42, align 4, !tbaa !5
  %386 = sext i32 %385 to i64
  %387 = load i32, ptr %39, align 4, !tbaa !5
  %388 = sext i32 %387 to i64
  %389 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %388) #4
  %390 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %389) #4
  %391 = icmp ult i64 %386, %390
  br i1 %391, label %405, label %392

392:                                              ; preds = %384
  store i32 13, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #4
  br label %465

393:                                              ; preds = %353
  %394 = landingpad { ptr, i32 }
          cleanup
  %395 = extractvalue { ptr, i32 } %394, 0
  store ptr %395, ptr %8, align 8
  %396 = extractvalue { ptr, i32 } %394, 1
  store i32 %396, ptr %9, align 4
  br label %467

397:                                              ; preds = %360
  %398 = landingpad { ptr, i32 }
          cleanup
  %399 = extractvalue { ptr, i32 } %398, 0
  store ptr %399, ptr %8, align 8
  %400 = extractvalue { ptr, i32 } %398, 1
  store i32 %400, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %40) #4
  br label %467

401:                                              ; preds = %374
  %402 = landingpad { ptr, i32 }
          cleanup
  %403 = extractvalue { ptr, i32 } %402, 0
  store ptr %403, ptr %8, align 8
  %404 = extractvalue { ptr, i32 } %402, 1
  store i32 %404, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %41) #4
  br label %467

405:                                              ; preds = %384
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #4
  %406 = load i32, ptr %39, align 4, !tbaa !5
  %407 = sext i32 %406 to i64
  %408 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %407) #4
  %409 = load i32, ptr %42, align 4, !tbaa !5
  %410 = sext i32 %409 to i64
  %411 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %408, i64 noundef %410) #4
  %412 = load i32, ptr %411, align 4, !tbaa !5
  store i32 %412, ptr %43, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #4
  %413 = load i32, ptr %39, align 4, !tbaa !5
  %414 = sext i32 %413 to i64
  %415 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %414) #4
  %416 = load i32, ptr %42, align 4, !tbaa !5
  %417 = add nsw i32 %416, 1
  %418 = sext i32 %417 to i64
  %419 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %415, i64 noundef %418) #4
  %420 = load i32, ptr %419, align 4, !tbaa !5
  store i32 %420, ptr %44, align 4, !tbaa !5
  %421 = load i32, ptr %33, align 4, !tbaa !5
  %422 = sext i32 %421 to i64
  %423 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %27, i64 noundef %422) #4
  %424 = load i32, ptr %34, align 4, !tbaa !5
  %425 = sext i32 %424 to i64
  %426 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %423, i64 noundef %425) #4
  %427 = load i32, ptr %426, align 4, !tbaa !5
  %428 = add nsw i32 %427, 1
  %429 = load i32, ptr %43, align 4, !tbaa !5
  %430 = sext i32 %429 to i64
  %431 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %27, i64 noundef %430) #4
  %432 = load i32, ptr %44, align 4, !tbaa !5
  %433 = sext i32 %432 to i64
  %434 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %431, i64 noundef %433) #4
  %435 = load i32, ptr %434, align 4, !tbaa !5
  %436 = icmp slt i32 %428, %435
  br i1 %436, label %437, label %461

437:                                              ; preds = %405
  %438 = load i32, ptr %33, align 4, !tbaa !5
  %439 = sext i32 %438 to i64
  %440 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %27, i64 noundef %439) #4
  %441 = load i32, ptr %34, align 4, !tbaa !5
  %442 = sext i32 %441 to i64
  %443 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %440, i64 noundef %442) #4
  %444 = load i32, ptr %443, align 4, !tbaa !5
  %445 = add nsw i32 %444, 1
  %446 = load i32, ptr %43, align 4, !tbaa !5
  %447 = sext i32 %446 to i64
  %448 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %27, i64 noundef %447) #4
  %449 = load i32, ptr %44, align 4, !tbaa !5
  %450 = sext i32 %449 to i64
  %451 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %448, i64 noundef %450) #4
  store i32 %445, ptr %451, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #4
  %452 = getelementptr inbounds %"struct.std::array", ptr %45, i32 0, i32 0
  %453 = load i32, ptr %43, align 4, !tbaa !5
  store i32 %453, ptr %452, align 4, !tbaa !5
  %454 = getelementptr inbounds i32, ptr %452, i64 1
  %455 = load i32, ptr %44, align 4, !tbaa !5
  store i32 %455, ptr %454, align 4, !tbaa !5
  invoke void @_ZNSt5queueISt5arrayIiLm2EESt5dequeIS1_SaIS1_EEE4pushEOS1_(ptr noundef nonnull align 8 dereferenceable(80) %31, ptr noundef nonnull align 4 dereferenceable(8) %45)
          to label %456 unwind label %457

456:                                              ; preds = %437
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #4
  br label %461

457:                                              ; preds = %437
  %458 = landingpad { ptr, i32 }
          cleanup
  %459 = extractvalue { ptr, i32 } %458, 0
  store ptr %459, ptr %8, align 8
  %460 = extractvalue { ptr, i32 } %458, 1
  store i32 %460, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #4
  br label %467

461:                                              ; preds = %456, %405
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #4
  br label %462

462:                                              ; preds = %461
  %463 = load i32, ptr %42, align 4, !tbaa !5
  %464 = add nsw i32 %463, 2
  store i32 %464, ptr %42, align 4, !tbaa !5
  br label %384, !llvm.loop !21

465:                                              ; preds = %392
  br label %466

466:                                              ; preds = %465, %367
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #4
  br label %468

467:                                              ; preds = %457, %401, %397, %393
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #4
  br label %472

468:                                              ; preds = %466, %349, %338
  store i32 0, ptr %11, align 4
  br label %469

469:                                              ; preds = %468, %184
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #4
  %470 = load i32, ptr %11, align 4
  switch i32 %470, label %475 [
    i32 0, label %471
  ]

471:                                              ; preds = %469
  br label %163, !llvm.loop !22

472:                                              ; preds = %467, %330, %229
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #4
  br label %473

473:                                              ; preds = %472, %225
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #4
  br label %477

474:                                              ; preds = %165
  store i32 -1, ptr %1, align 4
  store i32 1, ptr %11, align 4
  br label %475

475:                                              ; preds = %474, %469
  call void @_ZNSt5queueISt5arrayIiLm2EESt5dequeIS1_SaIS1_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %31) #4
  call void @llvm.lifetime.end.p0(i64 80, ptr %31) #4
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %27) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %27) #4
  call void @_ZNSt13_Bvector_baseISaIbEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %24) #4
  call void @llvm.lifetime.end.p0(i64 40, ptr %24) #4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %20) #4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #4
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %6) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #4
  %476 = load i32, ptr %1, align 4
  ret i32 %476

477:                                              ; preds = %473, %221, %217
  call void @_ZNSt5queueISt5arrayIiLm2EESt5dequeIS1_SaIS1_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %31) #4
  br label %478

478:                                              ; preds = %477, %213
  call void @llvm.lifetime.end.p0(i64 80, ptr %31) #4
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %27) #4
  br label %479

479:                                              ; preds = %478, %212
  call void @llvm.lifetime.end.p0(i64 24, ptr %27) #4
  call void @_ZNSt13_Bvector_baseISaIbEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %24) #4
  br label %480

480:                                              ; preds = %479, %200
  call void @llvm.lifetime.end.p0(i64 40, ptr %24) #4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #4
  br label %481

481:                                              ; preds = %480, %196
  call void @llvm.lifetime.end.p0(i64 24, ptr %20) #4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #4
  br label %482

482:                                              ; preds = %481, %192
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #4
  br label %483

483:                                              ; preds = %482, %118
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #4
  br label %484

484:                                              ; preds = %483, %52
  call void @llvm.lifetime.end.p0(i64 24, ptr %6) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #4
  br label %485

485:                                              ; preds = %484
  %486 = load ptr, ptr %8, align 8
  %487 = load i32, ptr %9, align 4
  %488 = insertvalue { ptr, i32 } poison, ptr %486, 0
  %489 = insertvalue { ptr, i32 } %488, i32 %487, 1
  resume { ptr, i32 } %489

490:                                              ; preds = %320
  unreachable
}

; 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 @_ZNSaISt6vectorIiSaIiEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

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

declare i32 @__gxx_personality_v0(...)

; 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 noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #2 align 2

; 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(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #2 align 2

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

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

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

; 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 #0 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 uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEEC2EmRKiRKS0_(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #0 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt5queueISt5arrayIiLm2EESt5dequeIS1_SaIS1_EEE4pushEOS1_(ptr noundef nonnull align 8 dereferenceable(80), ptr noundef nonnull align 4 dereferenceable(8)) #0 align 2

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

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

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

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

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

; 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 i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) #2 align 2

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

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

; 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_allocatorISt6vectorIiSaIiEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

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

attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { 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 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 = !{!7, !7, i64 0}
!10 = distinct !{!10, !11}
!11 = !{!"llvm.loop.mustprogress"}
!12 = distinct !{!12, !11}
!13 = !{!14, !15, i64 0}
!14 = !{!"_ZTSSt16initializer_listIiE", !15, i64 0, !16, i64 8}
!15 = !{!"any pointer", !7, i64 0}
!16 = !{!"long", !7, i64 0}
!17 = !{!14, !16, i64 8}
!18 = !{!19, !19, i64 0}
!19 = !{!"bool", !7, i64 0}
!20 = distinct !{!20, !11}
!21 = distinct !{!21, !11}
!22 = distinct !{!22, !11}


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

%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.2" = type { i8 }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.10" = type { i8 }
%"class.std::vector.13" = 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.17" = type { i8 }
%"class.std::queue" = type { %"class.std::deque" }
%"class.std::deque" = type { %"class.std::_Deque_base" }
%"class.std::_Deque_base" = type { %"struct.std::_Deque_base<std::array<int, 2>, std::allocator<std::array<int, 2>>>::_Deque_impl" }
%"struct.std::_Deque_base<std::array<int, 2>, std::allocator<std::array<int, 2>>>::_Deque_impl" = type { %"struct.std::_Deque_base<std::array<int, 2>, std::allocator<std::array<int, 2>>>::_Deque_impl_data" }
%"struct.std::_Deque_base<std::array<int, 2>, std::allocator<std::array<int, 2>>>::_Deque_impl_data" = type { ptr, i64, %"struct.std::_Deque_iterator", %"struct.std::_Deque_iterator" }
%"struct.std::_Deque_iterator" = type { ptr, ptr, ptr, ptr }
%"struct.std::array" = type { [2 x i32] }
%"struct.std::_Bit_reference" = type { ptr, i64 }

@H = external dso_local local_unnamed_addr global i32, align 4
@W = external dso_local local_unnamed_addr global i32, align 4
@_Z1GB5cxx11 = external dso_local global %"class.std::vector", align 8

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_Z5solvev() local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %1 = alloca %"class.std::vector.0", align 8
  %2 = alloca %"class.std::allocator.2", align 1
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca %"class.std::vector.8", align 8
  %7 = alloca [4 x i32], align 16
  %8 = alloca %"class.std::allocator.10", align 1
  %9 = alloca %"class.std::vector.8", align 8
  %10 = alloca [4 x i32], align 16
  %11 = alloca %"class.std::allocator.10", align 1
  %12 = alloca %"class.std::vector.13", align 8
  %13 = alloca i8, align 1
  %14 = alloca %"class.std::allocator.17", align 1
  %15 = alloca %"class.std::vector.0", align 8
  %16 = alloca %"class.std::vector.8", align 8
  %17 = alloca %"class.std::allocator.10", align 1
  %18 = alloca %"class.std::allocator.2", align 1
  %19 = alloca %"class.std::queue", align 8
  %20 = alloca %"struct.std::array", align 4
  %21 = alloca %"struct.std::array", align 4
  %22 = alloca %"struct.std::_Bit_reference", align 8
  %23 = alloca %"struct.std::_Bit_reference", align 8
  %24 = alloca %"struct.std::array", align 4
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %1) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %2) #4
  call void @_ZNSaISt6vectorIiSaIiEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %2) #4
  invoke void @_ZNSt6vectorIS_IiSaIiEESaIS1_EEC2EmRKS2_(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 26, ptr noundef nonnull align 1 dereferenceable(1) %2)
          to label %25 unwind label %30

25:                                               ; preds = %0
  call void @_ZNSt15__new_allocatorISt6vectorIiSaIiEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %2) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %2) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #4
  store i32 0, ptr %3, align 4, !tbaa !5
  %26 = load i32, ptr @H, align 4, !tbaa !5
  %27 = icmp sgt i32 %26, 0
  %28 = load i32, ptr @W, align 4
  %29 = icmp sgt i32 %28, 0
  %or.cond194 = select i1 %27, i1 %29, i1 false
  br i1 %or.cond194, label %.lr.ph159.split, label %._crit_edge160

._crit_edge160:                                   ; preds = %._crit_edge, %25
  %.081.lcssa = phi i32 [ undef, %25 ], [ %.182.lcssa, %._crit_edge ]
  %.078.lcssa = phi i32 [ undef, %25 ], [ %.179.lcssa, %._crit_edge ]
  %.075.lcssa = phi i32 [ undef, %25 ], [ %.176.lcssa, %._crit_edge ]
  %.071.lcssa = phi i32 [ undef, %25 ], [ %.172.lcssa, %._crit_edge ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #4
  store i32 100000000, ptr %5, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) #4
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7) #4
  store <4 x i32> <i32 1, i32 -1, i32 0, i32 0>, ptr %7, align 16, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #4
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #4
  invoke void @_ZNSt6vectorIiSaIiEEC2ESt16initializer_listIiERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %6, ptr nonnull %7, i64 4, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %68 unwind label %113

30:                                               ; preds = %0
  %31 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorISt6vectorIiSaIiEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %2) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %2) #4
  br label %333

.lr.ph159.split:                                  ; preds = %25, %._crit_edge
  %32 = phi i32 [ %36, %._crit_edge ], [ %26, %25 ]
  %33 = phi i32 [ %39, %._crit_edge ], [ 0, %25 ]
  %34 = phi i32 [ %38, %._crit_edge ], [ %28, %25 ]
  %.071157 = phi i32 [ %.172.lcssa, %._crit_edge ], [ undef, %25 ]
  %.075156 = phi i32 [ %.176.lcssa, %._crit_edge ], [ undef, %25 ]
  %.078155 = phi i32 [ %.179.lcssa, %._crit_edge ], [ undef, %25 ]
  %.081154 = phi i32 [ %.182.lcssa, %._crit_edge ], [ undef, %25 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #4
  store i32 0, ptr %4, align 4, !tbaa !5
  %35 = icmp sgt i32 %34, 0
  br i1 %35, label %.lr.ph, label %._crit_edge

._crit_edge.loopexit:                             ; preds = %63
  %.pre = load i32, ptr %3, align 4, !tbaa !5
  %.pre191 = load i32, ptr @H, align 4, !tbaa !5
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %.lr.ph159.split
  %36 = phi i32 [ %32, %.lr.ph159.split ], [ %.pre191, %._crit_edge.loopexit ]
  %37 = phi i32 [ %33, %.lr.ph159.split ], [ %.pre, %._crit_edge.loopexit ]
  %38 = phi i32 [ %34, %.lr.ph159.split ], [ %66, %._crit_edge.loopexit ]
  %.182.lcssa = phi i32 [ %.081154, %.lr.ph159.split ], [ %.283, %._crit_edge.loopexit ]
  %.179.lcssa = phi i32 [ %.078155, %.lr.ph159.split ], [ %.280, %._crit_edge.loopexit ]
  %.176.lcssa = phi i32 [ %.075156, %.lr.ph159.split ], [ %.277, %._crit_edge.loopexit ]
  %.172.lcssa = phi i32 [ %.071157, %.lr.ph159.split ], [ %.273, %._crit_edge.loopexit ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #4
  %39 = add nsw i32 %37, 1
  store i32 %39, ptr %3, align 4, !tbaa !5
  %40 = icmp slt i32 %39, %36
  br i1 %40, label %.lr.ph159.split, label %._crit_edge160, !llvm.loop !9

.lr.ph:                                           ; preds = %.lr.ph159.split, %63
  %.172150 = phi i32 [ %.273, %63 ], [ %.071157, %.lr.ph159.split ]
  %.176149 = phi i32 [ %.277, %63 ], [ %.075156, %.lr.ph159.split ]
  %.179148 = phi i32 [ %.280, %63 ], [ %.078155, %.lr.ph159.split ]
  %.182147 = phi i32 [ %.283, %63 ], [ %.081154, %.lr.ph159.split ]
  %41 = load i32, ptr %3, align 4, !tbaa !5
  %42 = sext i32 %41 to i64
  %43 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) @_Z1GB5cxx11, i64 noundef %42) #4
  %44 = load i32, ptr %4, align 4, !tbaa !5
  %45 = sext i32 %44 to i64
  %46 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %43, i64 noundef %45)
  %47 = load i8, ptr %46, align 1, !tbaa !12
  switch i8 %47, label %54 [
    i8 83, label %48
    i8 71, label %51
  ]

48:                                               ; preds = %.lr.ph
  %49 = load i32, ptr %3, align 4, !tbaa !5
  %50 = load i32, ptr %4, align 4, !tbaa !5
  br label %63

51:                                               ; preds = %.lr.ph
  %52 = load i32, ptr %3, align 4, !tbaa !5
  %53 = load i32, ptr %4, align 4, !tbaa !5
  br label %63

54:                                               ; preds = %.lr.ph
  %55 = add i8 %47, -97
  %or.cond = icmp ult i8 %55, 26
  br i1 %or.cond, label %56, label %63

56:                                               ; preds = %54
  %57 = zext nneg i8 %55 to i64
  %58 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %57) #4
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %58, ptr noundef nonnull align 4 dereferenceable(4) %3)
          to label %59 unwind label %61

59:                                               ; preds = %56
  %60 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %57) #4
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %60, ptr noundef nonnull align 4 dereferenceable(4) %4)
          to label %63 unwind label %61

61:                                               ; preds = %59, %56
  %62 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #4
  br label %332

63:                                               ; preds = %59, %51, %54, %48
  %.283 = phi i32 [ %.182147, %48 ], [ %53, %51 ], [ %.182147, %54 ], [ %.182147, %59 ]
  %.280 = phi i32 [ %.179148, %48 ], [ %52, %51 ], [ %.179148, %54 ], [ %.179148, %59 ]
  %.277 = phi i32 [ %50, %48 ], [ %.176149, %51 ], [ %.176149, %54 ], [ %.176149, %59 ]
  %.273 = phi i32 [ %49, %48 ], [ %.172150, %51 ], [ %.172150, %54 ], [ %.172150, %59 ]
  %64 = load i32, ptr %4, align 4, !tbaa !5
  %65 = add nsw i32 %64, 1
  store i32 %65, ptr %4, align 4, !tbaa !5
  %66 = load i32, ptr @W, align 4, !tbaa !5
  %67 = icmp slt i32 %65, %66
  br i1 %67, label %.lr.ph, label %._crit_edge.loopexit, !llvm.loop !13

68:                                               ; preds = %._crit_edge160
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #4
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #4
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %10) #4
  store <4 x i32> <i32 0, i32 0, i32 1, i32 -1>, ptr %10, align 16, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #4
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #4
  invoke void @_ZNSt6vectorIiSaIiEEC2ESt16initializer_listIiERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr nonnull %10, i64 4, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %69 unwind label %115

69:                                               ; preds = %68
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #4
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %12) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %13) #4
  store i8 0, ptr %13, align 1, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %14) #4
  call void @_ZNSaIbEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #4
  invoke void @_ZNSt6vectorIbSaIbEEC2EmRKbRKS0_(ptr noundef nonnull align 8 dereferenceable(40) %12, i64 noundef 26, ptr noundef nonnull align 1 dereferenceable(1) %13, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %70 unwind label %117

70:                                               ; preds = %69
  call void @_ZNSt15__new_allocatorIbED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #4
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %15) #4
  %71 = load i32, ptr @H, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %16) #4
  %72 = load i32, ptr @W, align 4, !tbaa !5
  %73 = sext i32 %72 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #4
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #4
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKiRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %73, ptr noundef nonnull align 4 dereferenceable(4) %5, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %74 unwind label %119

74:                                               ; preds = %70
  %75 = sext i32 %71 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %18) #4
  call void @_ZNSaISt6vectorIiSaIiEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #4
  invoke void @_ZNSt6vectorIS_IiSaIiEESaIS1_EEC2EmRKS1_RKS2_(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %75, ptr noundef nonnull align 8 dereferenceable(24) %16, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %76 unwind label %121

76:                                               ; preds = %74
  call void @_ZNSt15__new_allocatorISt6vectorIiSaIiEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #4
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #4
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %19) #4
  invoke void @_ZNSt5queueISt5arrayIiLm2EESt5dequeIS1_SaIS1_EEEC2IS4_vEEv(ptr noundef nonnull align 8 dereferenceable(80) %19)
          to label %77 unwind label %124

77:                                               ; preds = %76
  %78 = sext i32 %.071.lcssa to i64
  %79 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %78) #4
  %80 = sext i32 %.075.lcssa to i64
  %81 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %79, i64 noundef %80) #4
  store i32 0, ptr %81, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #4
  store i32 %.071.lcssa, ptr %20, align 4, !tbaa !5
  %82 = getelementptr inbounds i8, ptr %20, i64 4
  store i32 %.075.lcssa, ptr %82, align 4, !tbaa !5
  invoke void @_ZNSt5queueISt5arrayIiLm2EESt5dequeIS1_SaIS1_EEE4pushEOS1_(ptr noundef nonnull align 8 dereferenceable(80) %19, ptr noundef nonnull align 4 dereferenceable(8) %20)
          to label %83 unwind label %126

83:                                               ; preds = %77
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #4
  %84 = call noundef i64 @_ZNKSt5queueISt5arrayIiLm2EESt5dequeIS1_SaIS1_EEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %19)
  %.not173 = icmp eq i64 %84, 0
  br i1 %.not173, label %.loopexit129, label %.lr.ph175

.lr.ph175:                                        ; preds = %83
  %85 = getelementptr inbounds i8, ptr %21, i64 4
  %86 = getelementptr inbounds i8, ptr %22, i64 8
  %87 = getelementptr inbounds i8, ptr %23, i64 8
  %88 = getelementptr inbounds i8, ptr %24, i64 4
  br label %89

89:                                               ; preds = %.lr.ph175, %.loopexit
  %90 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt5queueISt5arrayIiLm2EESt5dequeIS1_SaIS1_EEE5frontEv(ptr noundef nonnull align 8 dereferenceable(80) %19)
  %91 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt5arrayIiLm2EEixEm(ptr noundef nonnull align 4 dereferenceable(8) %90, i64 noundef 0) #4
  %92 = load i32, ptr %91, align 4, !tbaa !5
  %93 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt5queueISt5arrayIiLm2EESt5dequeIS1_SaIS1_EEE5frontEv(ptr noundef nonnull align 8 dereferenceable(80) %19)
  %94 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt5arrayIiLm2EEixEm(ptr noundef nonnull align 4 dereferenceable(8) %93, i64 noundef 1) #4
  %95 = load i32, ptr %94, align 4, !tbaa !5
  call void @_ZNSt5queueISt5arrayIiLm2EESt5dequeIS1_SaIS1_EEE3popEv(ptr noundef nonnull align 8 dereferenceable(80) %19)
  %96 = icmp eq i32 %92, %.078.lcssa
  %97 = icmp eq i32 %95, %.081.lcssa
  %or.cond124 = select i1 %96, i1 %97, i1 false
  br i1 %or.cond124, label %.thread, label %.preheader

.preheader:                                       ; preds = %89
  %98 = sext i32 %92 to i64
  %99 = sext i32 %95 to i64
  %100 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 0) #4
  %101 = load i32, ptr %100, align 4, !tbaa !5
  %102 = add nsw i32 %101, %92
  %103 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef 0) #4
  %104 = load i32, ptr %103, align 4, !tbaa !5
  %105 = add nsw i32 %104, %95
  %106 = icmp sgt i32 %102, -1
  %107 = load i32, ptr @H, align 4
  %.not109 = icmp slt i32 %102, %107
  %or.cond125 = select i1 %106, i1 %.not109, i1 false
  br i1 %or.cond125, label %128, label %154

.thread:                                          ; preds = %89
  %108 = sext i32 %.078.lcssa to i64
  %109 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %108) #4
  %110 = sext i32 %.081.lcssa to i64
  %111 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %109, i64 noundef %110) #4
  %112 = load i32, ptr %111, align 4, !tbaa !5
  br label %.loopexit129

113:                                              ; preds = %._crit_edge160
  %114 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #4
  br label %331

115:                                              ; preds = %68
  %116 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #4
  br label %330

117:                                              ; preds = %69
  %118 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIbED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #4
  br label %329

119:                                              ; preds = %70
  %120 = landingpad { ptr, i32 }
          cleanup
  br label %123

121:                                              ; preds = %74
  %122 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorISt6vectorIiSaIiEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #4
  br label %123

123:                                              ; preds = %121, %119
  %.pn = phi { ptr, i32 } [ %122, %121 ], [ %120, %119 ]
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #4
  br label %328

124:                                              ; preds = %76
  %125 = landingpad { ptr, i32 }
          cleanup
  br label %327

126:                                              ; preds = %77
  %127 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #4
  br label %326

128:                                              ; preds = %.preheader
  %129 = icmp sgt i32 %105, -1
  %130 = load i32, ptr @W, align 4
  %.not110 = icmp slt i32 %105, %130
  %or.cond126 = select i1 %129, i1 %.not110, i1 false
  br i1 %or.cond126, label %131, label %154

131:                                              ; preds = %128
  %132 = zext nneg i32 %102 to i64
  %133 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) @_Z1GB5cxx11, i64 noundef %132) #4
  %134 = zext nneg i32 %105 to i64
  %135 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %133, i64 noundef %134)
  %136 = load i8, ptr %135, align 1, !tbaa !12
  %137 = icmp eq i8 %136, 35
  br i1 %137, label %154, label %138

138:                                              ; preds = %131
  %139 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %98) #4
  %140 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %139, i64 noundef %99) #4
  %141 = load i32, ptr %140, align 4, !tbaa !5
  %142 = add nsw i32 %141, 1
  %143 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %132) #4
  %144 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %143, i64 noundef %134) #4
  %145 = load i32, ptr %144, align 4, !tbaa !5
  %.not111 = icmp slt i32 %142, %145
  br i1 %.not111, label %146, label %154

146:                                              ; preds = %138
  %147 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %98) #4
  %148 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %147, i64 noundef %99) #4
  %149 = load i32, ptr %148, align 4, !tbaa !5
  %150 = add nsw i32 %149, 1
  %151 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %132) #4
  %152 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %151, i64 noundef %134) #4
  store i32 %150, ptr %152, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #4
  store i32 %102, ptr %21, align 4, !tbaa !5
  store i32 %105, ptr %85, align 4, !tbaa !5
  invoke void @_ZNSt5queueISt5arrayIiLm2EESt5dequeIS1_SaIS1_EEE4pushEOS1_(ptr noundef nonnull align 8 dereferenceable(80) %19, ptr noundef nonnull align 4 dereferenceable(8) %21)
          to label %153 unwind label %264

153:                                              ; preds = %146
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #4
  br label %154

154:                                              ; preds = %138, %131, %128, %.preheader, %153
  %155 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 1) #4
  %156 = load i32, ptr %155, align 4, !tbaa !5
  %157 = add nsw i32 %156, %92
  %158 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef 1) #4
  %159 = load i32, ptr %158, align 4, !tbaa !5
  %160 = add nsw i32 %159, %95
  %161 = icmp sgt i32 %157, -1
  %162 = load i32, ptr @H, align 4
  %.not109.1 = icmp slt i32 %157, %162
  %or.cond125.1 = select i1 %161, i1 %.not109.1, i1 false
  br i1 %or.cond125.1, label %163, label %189

163:                                              ; preds = %154
  %164 = icmp sgt i32 %160, -1
  %165 = load i32, ptr @W, align 4
  %.not110.1 = icmp slt i32 %160, %165
  %or.cond126.1 = select i1 %164, i1 %.not110.1, i1 false
  br i1 %or.cond126.1, label %166, label %189

166:                                              ; preds = %163
  %167 = zext nneg i32 %157 to i64
  %168 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) @_Z1GB5cxx11, i64 noundef %167) #4
  %169 = zext nneg i32 %160 to i64
  %170 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %168, i64 noundef %169)
  %171 = load i8, ptr %170, align 1, !tbaa !12
  %172 = icmp eq i8 %171, 35
  br i1 %172, label %189, label %173

173:                                              ; preds = %166
  %174 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %98) #4
  %175 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %174, i64 noundef %99) #4
  %176 = load i32, ptr %175, align 4, !tbaa !5
  %177 = add nsw i32 %176, 1
  %178 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %167) #4
  %179 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %178, i64 noundef %169) #4
  %180 = load i32, ptr %179, align 4, !tbaa !5
  %.not111.1 = icmp slt i32 %177, %180
  br i1 %.not111.1, label %181, label %189

181:                                              ; preds = %173
  %182 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %98) #4
  %183 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %182, i64 noundef %99) #4
  %184 = load i32, ptr %183, align 4, !tbaa !5
  %185 = add nsw i32 %184, 1
  %186 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %167) #4
  %187 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %186, i64 noundef %169) #4
  store i32 %185, ptr %187, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #4
  store i32 %157, ptr %21, align 4, !tbaa !5
  store i32 %160, ptr %85, align 4, !tbaa !5
  invoke void @_ZNSt5queueISt5arrayIiLm2EESt5dequeIS1_SaIS1_EEE4pushEOS1_(ptr noundef nonnull align 8 dereferenceable(80) %19, ptr noundef nonnull align 4 dereferenceable(8) %21)
          to label %188 unwind label %264

188:                                              ; preds = %181
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #4
  br label %189

189:                                              ; preds = %188, %173, %166, %163, %154
  %190 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 2) #4
  %191 = load i32, ptr %190, align 4, !tbaa !5
  %192 = add nsw i32 %191, %92
  %193 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef 2) #4
  %194 = load i32, ptr %193, align 4, !tbaa !5
  %195 = add nsw i32 %194, %95
  %196 = icmp sgt i32 %192, -1
  %197 = load i32, ptr @H, align 4
  %.not109.2 = icmp slt i32 %192, %197
  %or.cond125.2 = select i1 %196, i1 %.not109.2, i1 false
  br i1 %or.cond125.2, label %198, label %224

198:                                              ; preds = %189
  %199 = icmp sgt i32 %195, -1
  %200 = load i32, ptr @W, align 4
  %.not110.2 = icmp slt i32 %195, %200
  %or.cond126.2 = select i1 %199, i1 %.not110.2, i1 false
  br i1 %or.cond126.2, label %201, label %224

201:                                              ; preds = %198
  %202 = zext nneg i32 %192 to i64
  %203 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) @_Z1GB5cxx11, i64 noundef %202) #4
  %204 = zext nneg i32 %195 to i64
  %205 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %203, i64 noundef %204)
  %206 = load i8, ptr %205, align 1, !tbaa !12
  %207 = icmp eq i8 %206, 35
  br i1 %207, label %224, label %208

208:                                              ; preds = %201
  %209 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %98) #4
  %210 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %209, i64 noundef %99) #4
  %211 = load i32, ptr %210, align 4, !tbaa !5
  %212 = add nsw i32 %211, 1
  %213 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %202) #4
  %214 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %213, i64 noundef %204) #4
  %215 = load i32, ptr %214, align 4, !tbaa !5
  %.not111.2 = icmp slt i32 %212, %215
  br i1 %.not111.2, label %216, label %224

216:                                              ; preds = %208
  %217 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %98) #4
  %218 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %217, i64 noundef %99) #4
  %219 = load i32, ptr %218, align 4, !tbaa !5
  %220 = add nsw i32 %219, 1
  %221 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %202) #4
  %222 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %221, i64 noundef %204) #4
  store i32 %220, ptr %222, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #4
  store i32 %192, ptr %21, align 4, !tbaa !5
  store i32 %195, ptr %85, align 4, !tbaa !5
  invoke void @_ZNSt5queueISt5arrayIiLm2EESt5dequeIS1_SaIS1_EEE4pushEOS1_(ptr noundef nonnull align 8 dereferenceable(80) %19, ptr noundef nonnull align 4 dereferenceable(8) %21)
          to label %223 unwind label %264

223:                                              ; preds = %216
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #4
  br label %224

224:                                              ; preds = %223, %208, %201, %198, %189
  %225 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 3) #4
  %226 = load i32, ptr %225, align 4, !tbaa !5
  %227 = add nsw i32 %226, %92
  %228 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef 3) #4
  %229 = load i32, ptr %228, align 4, !tbaa !5
  %230 = add nsw i32 %229, %95
  %231 = icmp sgt i32 %227, -1
  %232 = load i32, ptr @H, align 4
  %.not109.3 = icmp slt i32 %227, %232
  %or.cond125.3 = select i1 %231, i1 %.not109.3, i1 false
  br i1 %or.cond125.3, label %233, label %259

233:                                              ; preds = %224
  %234 = icmp sgt i32 %230, -1
  %235 = load i32, ptr @W, align 4
  %.not110.3 = icmp slt i32 %230, %235
  %or.cond126.3 = select i1 %234, i1 %.not110.3, i1 false
  br i1 %or.cond126.3, label %236, label %259

236:                                              ; preds = %233
  %237 = zext nneg i32 %227 to i64
  %238 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) @_Z1GB5cxx11, i64 noundef %237) #4
  %239 = zext nneg i32 %230 to i64
  %240 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %238, i64 noundef %239)
  %241 = load i8, ptr %240, align 1, !tbaa !12
  %242 = icmp eq i8 %241, 35
  br i1 %242, label %259, label %243

243:                                              ; preds = %236
  %244 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %98) #4
  %245 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %244, i64 noundef %99) #4
  %246 = load i32, ptr %245, align 4, !tbaa !5
  %247 = add nsw i32 %246, 1
  %248 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %237) #4
  %249 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %248, i64 noundef %239) #4
  %250 = load i32, ptr %249, align 4, !tbaa !5
  %.not111.3 = icmp slt i32 %247, %250
  br i1 %.not111.3, label %251, label %259

251:                                              ; preds = %243
  %252 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %98) #4
  %253 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %252, i64 noundef %99) #4
  %254 = load i32, ptr %253, align 4, !tbaa !5
  %255 = add nsw i32 %254, 1
  %256 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %237) #4
  %257 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %256, i64 noundef %239) #4
  store i32 %255, ptr %257, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #4
  store i32 %227, ptr %21, align 4, !tbaa !5
  store i32 %230, ptr %85, align 4, !tbaa !5
  invoke void @_ZNSt5queueISt5arrayIiLm2EESt5dequeIS1_SaIS1_EEE4pushEOS1_(ptr noundef nonnull align 8 dereferenceable(80) %19, ptr noundef nonnull align 4 dereferenceable(8) %21)
          to label %258 unwind label %264

258:                                              ; preds = %251
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #4
  br label %259

259:                                              ; preds = %258, %243, %236, %233, %224
  %260 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) @_Z1GB5cxx11, i64 noundef %98) #4
  %261 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %260, i64 noundef %99)
  %262 = load i8, ptr %261, align 1, !tbaa !12
  %263 = icmp sgt i8 %262, 96
  br i1 %263, label %266, label %.loopexit

264:                                              ; preds = %251, %216, %181, %146
  %265 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #4
  br label %326

266:                                              ; preds = %259
  %267 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) @_Z1GB5cxx11, i64 noundef %98) #4
  %268 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %267, i64 noundef %99)
  %269 = load i8, ptr %268, align 1, !tbaa !12
  %270 = icmp slt i8 %269, 123
  br i1 %270, label %271, label %.loopexit

271:                                              ; preds = %266
  %272 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) @_Z1GB5cxx11, i64 noundef %98) #4
  %273 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %272, i64 noundef %99)
  %274 = load i8, ptr %273, align 1, !tbaa !12
  %275 = sext i8 %274 to i64
  %276 = add nsw i64 %275, -97
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %22) #4
  %277 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %12, i64 noundef %276)
          to label %278 unwind label %290

278:                                              ; preds = %271
  %279 = extractvalue { ptr, i64 } %277, 0
  store ptr %279, ptr %22, align 8
  %280 = extractvalue { ptr, i64 } %277, 1
  store i64 %280, ptr %86, align 8
  %281 = call noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16) %22) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %22) #4
  br i1 %281, label %.loopexit, label %282

282:                                              ; preds = %278
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %23) #4
  %283 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %12, i64 noundef %276)
          to label %284 unwind label %292

284:                                              ; preds = %282
  %285 = extractvalue { ptr, i64 } %283, 0
  store ptr %285, ptr %23, align 8
  %286 = extractvalue { ptr, i64 } %283, 1
  store i64 %286, ptr %87, align 8
  %287 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %23, i1 noundef zeroext true) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #4
  %288 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %276) #4
  %289 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %288) #4
  %.not176 = icmp eq i64 %289, 0
  br i1 %.not176, label %.loopexit, label %.lr.ph172

290:                                              ; preds = %271
  %291 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %22) #4
  br label %326

292:                                              ; preds = %282
  %293 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #4
  br label %326

.lr.ph172:                                        ; preds = %284, %321
  %indvars.iv = phi i64 [ %indvars.iv.next, %321 ], [ 0, %284 ]
  %294 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %276) #4
  %295 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %294, i64 noundef %indvars.iv) #4
  %296 = load i32, ptr %295, align 4, !tbaa !5
  %297 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %276) #4
  %298 = or disjoint i64 %indvars.iv, 1
  %299 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %297, i64 noundef %298) #4
  %300 = load i32, ptr %299, align 4, !tbaa !5
  %301 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %98) #4
  %302 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %301, i64 noundef %99) #4
  %303 = load i32, ptr %302, align 4, !tbaa !5
  %304 = add nsw i32 %303, 1
  %305 = sext i32 %296 to i64
  %306 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %305) #4
  %307 = sext i32 %300 to i64
  %308 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %306, i64 noundef %307) #4
  %309 = load i32, ptr %308, align 4, !tbaa !5
  %310 = icmp slt i32 %304, %309
  br i1 %310, label %311, label %321

311:                                              ; preds = %.lr.ph172
  %312 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %98) #4
  %313 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %312, i64 noundef %99) #4
  %314 = load i32, ptr %313, align 4, !tbaa !5
  %315 = add nsw i32 %314, 1
  %316 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %305) #4
  %317 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %316, i64 noundef %307) #4
  store i32 %315, ptr %317, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #4
  store i32 %296, ptr %24, align 4, !tbaa !5
  store i32 %300, ptr %88, align 4, !tbaa !5
  invoke void @_ZNSt5queueISt5arrayIiLm2EESt5dequeIS1_SaIS1_EEE4pushEOS1_(ptr noundef nonnull align 8 dereferenceable(80) %19, ptr noundef nonnull align 4 dereferenceable(8) %24)
          to label %318 unwind label %319

318:                                              ; preds = %311
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #4
  br label %321

319:                                              ; preds = %311
  %320 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #4
  br label %326

321:                                              ; preds = %318, %.lr.ph172
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 2
  %322 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef %276) #4
  %323 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %322) #4
  %324 = icmp ugt i64 %323, %indvars.iv.next
  br i1 %324, label %.lr.ph172, label %.loopexit, !llvm.loop !16

.loopexit:                                        ; preds = %321, %284, %259, %266, %278
  %325 = call noundef i64 @_ZNKSt5queueISt5arrayIiLm2EESt5dequeIS1_SaIS1_EEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %19)
  %.not = icmp eq i64 %325, 0
  br i1 %.not, label %.loopexit129, label %89, !llvm.loop !17

.loopexit129:                                     ; preds = %.loopexit, %83, %.thread
  %.2 = phi i32 [ %112, %.thread ], [ -1, %83 ], [ -1, %.loopexit ]
  call void @_ZNSt5queueISt5arrayIiLm2EESt5dequeIS1_SaIS1_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %19) #4
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %19) #4
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #4
  call void @_ZNSt13_Bvector_baseISaIbEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %12) #4
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %12) #4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #4
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %1) #4
  ret i32 %.2

326:                                              ; preds = %264, %319, %292, %290, %126
  %.pn112.pn = phi { ptr, i32 } [ %127, %126 ], [ %265, %264 ], [ %320, %319 ], [ %293, %292 ], [ %291, %290 ]
  call void @_ZNSt5queueISt5arrayIiLm2EESt5dequeIS1_SaIS1_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %19) #4
  br label %327

327:                                              ; preds = %326, %124
  %.pn112.pn.pn = phi { ptr, i32 } [ %.pn112.pn, %326 ], [ %125, %124 ]
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %19) #4
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #4
  br label %328

328:                                              ; preds = %327, %123
  %.pn112.pn.pn.pn = phi { ptr, i32 } [ %.pn112.pn.pn, %327 ], [ %.pn, %123 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #4
  call void @_ZNSt13_Bvector_baseISaIbEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %12) #4
  br label %329

329:                                              ; preds = %328, %117
  %.pn112.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn112.pn.pn.pn, %328 ], [ %118, %117 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %12) #4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #4
  br label %330

330:                                              ; preds = %329, %115
  %.pn112.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn112.pn.pn.pn.pn, %329 ], [ %116, %115 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #4
  br label %331

331:                                              ; preds = %330, %113
  %.pn112.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn112.pn.pn.pn.pn.pn, %330 ], [ %114, %113 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #4
  br label %332

332:                                              ; preds = %331, %61
  %.pn121 = phi { ptr, i32 } [ %62, %61 ], [ %.pn112.pn.pn.pn.pn.pn.pn, %331 ]
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1) #4
  br label %333

333:                                              ; preds = %332, %30
  %.pn121.pn = phi { ptr, i32 } [ %.pn121, %332 ], [ %31, %30 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %1) #4
  resume { ptr, i32 } %.pn121.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 @_ZNSaISt6vectorIiSaIiEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

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

declare i32 @__gxx_personality_v0(...)

; 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 noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #2 align 2

; 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(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #2 align 2

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

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

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

; 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 #0 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 uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEEC2EmRKiRKS0_(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #0 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt5queueISt5arrayIiLm2EESt5dequeIS1_SaIS1_EEE4pushEOS1_(ptr noundef nonnull align 8 dereferenceable(80), ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #0 align 2

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

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

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

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

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

; 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 i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #2 align 2

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

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

; 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_allocatorISt6vectorIiSaIiEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

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

attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { 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 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 = distinct !{!9, !10, !11}
!10 = !{!"llvm.loop.mustprogress"}
!11 = !{!"llvm.loop.unswitch.partial.disable"}
!12 = !{!7, !7, i64 0}
!13 = distinct !{!13, !10}
!14 = !{!15, !15, i64 0}
!15 = !{!"bool", !7, i64 0}
!16 = distinct !{!16, !10}
!17 = distinct !{!17, !10}


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