; LLVM IR from sp-nitech/SPTK :: src/main (ifft2)

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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::basic_istream" = type { ptr, i64, %"class.std::basic_ios" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator" = type { i8 }
%"class.std::__cxx11::basic_ostringstream" = type { %"class.std::basic_ostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::basic_ifstream" = type { %"class.std::basic_istream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon.0 }
%union.anon.0 = type { i32 }
%"class.sptk::TwoDimensionalInverseFastFourierTransform" = type <{ ptr, i32, i32, i32, [4 x i8], %"class.sptk::InverseFastFourierTransform", i8, [7 x i8] }>
%"class.sptk::InverseFastFourierTransform" = type { ptr, %"class.sptk::FastFourierTransform" }
%"class.sptk::FastFourierTransform" = type { ptr, i32, i32, i32, i8, %"class.std::vector" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.sptk::TwoDimensionalInverseFastFourierTransform::Buffer" = type { ptr, %"class.std::vector", %"class.std::vector", %"class.std::vector.4", %"class.std::vector.4", %"class.std::vector.4", %"class.std::vector.4" }
%"class.std::vector.4" = type { %"struct.std::_Vector_base.5" }
%"struct.std::_Vector_base.5" = type { %"struct.std::_Vector_base<std::vector<double>, std::allocator<std::vector<double>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<double>, std::allocator<std::vector<double>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<double>, std::allocator<std::vector<double>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<double>, std::allocator<std::vector<double>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.sptk::Matrix" = type { ptr, i32, i32, %"class.std::vector", %"class.std::vector.9" }
%"class.std::vector.9" = type { %"struct.std::_Vector_base.10" }
%"struct.std::_Vector_base.10" = type { %"struct.std::_Vector_base<double *, std::allocator<double *>>::_Vector_impl" }
%"struct.std::_Vector_base<double *, std::allocator<double *>>::_Vector_impl" = type { %"struct.std::_Vector_base<double *, std::allocator<double *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double *, std::allocator<double *>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@.str = external hidden unnamed_addr constant [10 x i8], align 1
@ya_optarg = external global ptr, align 8
@.str.1 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [51 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@_ZSt4cerr = external global %"class.std::basic_ostream", align 8
@ya_optind = external global i32, align 4
@.str.8 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [18 x i8], align 1
@_ZSt3cin = external global %"class.std::basic_istream", align 8
@.str.11 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [32 x i8], align 1

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr noundef %1) #0 personality ptr @__gxx_personality_v0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::allocator", align 1
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::allocator", align 1
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator", align 1
  %24 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator", align 1
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::allocator", align 1
  %32 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::allocator", align 1
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::allocator", align 1
  %40 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::allocator", align 1
  %43 = alloca i32, align 4
  %44 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::allocator", align 1
  %47 = alloca ptr, align 8
  %48 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::allocator", align 1
  %51 = alloca %"class.std::basic_ifstream", align 8
  %52 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::allocator", align 1
  %55 = alloca ptr, align 8
  %56 = alloca %"class.sptk::TwoDimensionalInverseFastFourierTransform", align 8
  %57 = alloca %"class.sptk::TwoDimensionalInverseFastFourierTransform::Buffer", align 8
  %58 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::allocator", align 1
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca %"class.sptk::Matrix", align 8
  %64 = alloca %"class.sptk::Matrix", align 8
  %65 = alloca %"class.sptk::Matrix", align 8
  %66 = alloca %"class.sptk::Matrix", align 8
  %67 = alloca %"class.sptk::Matrix", align 8
  %68 = alloca %"class.sptk::Matrix", align 8
  %69 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.std::allocator", align 1
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %85 = alloca %"class.std::__cxx11::basic_string", align 8
  %86 = alloca %"class.std::allocator", align 1
  %87 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %88 = alloca %"class.std::__cxx11::basic_string", align 8
  %89 = alloca %"class.std::allocator", align 1
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #7
  store i32 64, ptr %6, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #7
  store i32 0, ptr %7, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #7
  store i32 0, ptr %8, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #7
  store i32 0, ptr %9, align 4, !tbaa !11
  br label %90

90:                                               ; preds = %298, %2
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #7
  %91 = load i32, ptr %4, align 4, !tbaa !5
  %92 = load ptr, ptr %5, align 8, !tbaa !9
  %93 = call i32 @ya_getopt_long(i32 noundef %91, ptr noundef %92, ptr noundef @.str, ptr noundef null, ptr noundef null)
  store i32 %93, ptr %10, align 4, !tbaa !5
  %94 = load i32, ptr %10, align 4, !tbaa !5
  %95 = icmp eq i32 -1, %94
  br i1 %95, label %96, label %97

96:                                               ; preds = %90
  store i32 2, ptr %11, align 4
  br label %296

97:                                               ; preds = %90
  %98 = load i32, ptr %10, align 4, !tbaa !5
  switch i32 %98, label %294 [
    i32 108, label %99
    i32 113, label %134
    i32 111, label %187
    i32 112, label %240
    i32 104, label %293
  ]

99:                                               ; preds = %97
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #7
  %100 = load ptr, ptr @ya_optarg, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %13) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef %100, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %101 unwind label %110

101:                                              ; preds = %99
  %102 = invoke noundef zeroext i1 @_ZN4sptk22ConvertStringToIntegerERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPi(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef %6)
          to label %103 unwind label %114

103:                                              ; preds = %101
  %104 = xor i1 %102, true
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #7
  br i1 %104, label %105, label %133

105:                                              ; preds = %103
  call void @llvm.lifetime.start.p0(i64 376, ptr %16) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %16)
  %106 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef @.str.1)
          to label %107 unwind label %119

107:                                              ; preds = %105
  call void @llvm.lifetime.start.p0(i64 32, ptr %17) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %18) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %108 unwind label %123

108:                                              ; preds = %107
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(112) %16)
          to label %109 unwind label %127

109:                                              ; preds = %108
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #7
  store i32 1, ptr %3, align 4
  store i32 1, ptr %11, align 4
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %16) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr %16) #7
  br label %296

110:                                              ; preds = %99
  %111 = landingpad { ptr, i32 }
          cleanup
  %112 = extractvalue { ptr, i32 } %111, 0
  store ptr %112, ptr %14, align 8
  %113 = extractvalue { ptr, i32 } %111, 1
  store i32 %113, ptr %15, align 4
  br label %118

114:                                              ; preds = %101
  %115 = landingpad { ptr, i32 }
          cleanup
  %116 = extractvalue { ptr, i32 } %115, 0
  store ptr %116, ptr %14, align 8
  %117 = extractvalue { ptr, i32 } %115, 1
  store i32 %117, ptr %15, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  br label %118

118:                                              ; preds = %114, %110
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #7
  br label %299

119:                                              ; preds = %105
  %120 = landingpad { ptr, i32 }
          cleanup
  %121 = extractvalue { ptr, i32 } %120, 0
  store ptr %121, ptr %14, align 8
  %122 = extractvalue { ptr, i32 } %120, 1
  store i32 %122, ptr %15, align 4
  br label %132

123:                                              ; preds = %107
  %124 = landingpad { ptr, i32 }
          cleanup
  %125 = extractvalue { ptr, i32 } %124, 0
  store ptr %125, ptr %14, align 8
  %126 = extractvalue { ptr, i32 } %124, 1
  store i32 %126, ptr %15, align 4
  br label %131

127:                                              ; preds = %108
  %128 = landingpad { ptr, i32 }
          cleanup
  %129 = extractvalue { ptr, i32 } %128, 0
  store ptr %129, ptr %14, align 8
  %130 = extractvalue { ptr, i32 } %128, 1
  store i32 %130, ptr %15, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #7
  br label %131

131:                                              ; preds = %127, %123
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #7
  br label %132

132:                                              ; preds = %131, %119
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %16) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr %16) #7
  br label %299

133:                                              ; preds = %103
  br label %295

134:                                              ; preds = %97
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #7
  store i32 0, ptr %19, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #7
  store i32 2, ptr %20, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #7
  %135 = load ptr, ptr @ya_optarg, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef %135, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %136 unwind label %159

136:                                              ; preds = %134
  %137 = invoke noundef zeroext i1 @_ZN4sptk22ConvertStringToIntegerERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPi(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef %21)
          to label %138 unwind label %163

138:                                              ; preds = %136
  br i1 %137, label %139, label %144

139:                                              ; preds = %138
  %140 = load i32, ptr %21, align 4, !tbaa !5
  %141 = invoke noundef zeroext i1 @_ZN4sptk9IsInRangeEiii(i32 noundef %140, i32 noundef 0, i32 noundef 2)
          to label %142 unwind label %163

142:                                              ; preds = %139
  %143 = xor i1 %141, true
  br label %144

144:                                              ; preds = %142, %138
  %145 = phi i1 [ true, %138 ], [ %143, %142 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #7
  br i1 %145, label %146, label %182

146:                                              ; preds = %144
  call void @llvm.lifetime.start.p0(i64 376, ptr %24) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %24)
  %147 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef @.str.3)
          to label %148 unwind label %168

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

150:                                              ; preds = %148
  %151 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %149, i32 noundef 0)
          to label %152 unwind label %168

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

154:                                              ; preds = %152
  %155 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %153, i32 noundef 2)
          to label %156 unwind label %168

156:                                              ; preds = %154
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %157 unwind label %172

157:                                              ; preds = %156
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(112) %24)
          to label %158 unwind label %176

158:                                              ; preds = %157
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #7
  store i32 1, ptr %3, align 4
  store i32 1, ptr %11, align 4
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %24) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr %24) #7
  br label %184

159:                                              ; preds = %134
  %160 = landingpad { ptr, i32 }
          cleanup
  %161 = extractvalue { ptr, i32 } %160, 0
  store ptr %161, ptr %14, align 8
  %162 = extractvalue { ptr, i32 } %160, 1
  store i32 %162, ptr %15, align 4
  br label %167

163:                                              ; preds = %139, %136
  %164 = landingpad { ptr, i32 }
          cleanup
  %165 = extractvalue { ptr, i32 } %164, 0
  store ptr %165, ptr %14, align 8
  %166 = extractvalue { ptr, i32 } %164, 1
  store i32 %166, ptr %15, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  br label %167

167:                                              ; preds = %163, %159
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #7
  br label %186

168:                                              ; preds = %154, %152, %150, %148, %146
  %169 = landingpad { ptr, i32 }
          cleanup
  %170 = extractvalue { ptr, i32 } %169, 0
  store ptr %170, ptr %14, align 8
  %171 = extractvalue { ptr, i32 } %169, 1
  store i32 %171, ptr %15, align 4
  br label %181

172:                                              ; preds = %156
  %173 = landingpad { ptr, i32 }
          cleanup
  %174 = extractvalue { ptr, i32 } %173, 0
  store ptr %174, ptr %14, align 8
  %175 = extractvalue { ptr, i32 } %173, 1
  store i32 %175, ptr %15, align 4
  br label %180

176:                                              ; preds = %157
  %177 = landingpad { ptr, i32 }
          cleanup
  %178 = extractvalue { ptr, i32 } %177, 0
  store ptr %178, ptr %14, align 8
  %179 = extractvalue { ptr, i32 } %177, 1
  store i32 %179, ptr %15, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  br label %180

180:                                              ; preds = %176, %172
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #7
  br label %181

181:                                              ; preds = %180, %168
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %24) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr %24) #7
  br label %186

182:                                              ; preds = %144
  %183 = load i32, ptr %21, align 4, !tbaa !5
  store i32 %183, ptr %7, align 4, !tbaa !11
  store i32 4, ptr %11, align 4
  br label %184

184:                                              ; preds = %182, %158
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  %185 = load i32, ptr %11, align 4
  switch i32 %185, label %296 [
    i32 4, label %295
  ]

186:                                              ; preds = %181, %167
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  br label %299

187:                                              ; preds = %97
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #7
  store i32 0, ptr %27, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #7
  store i32 2, ptr %28, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #7
  %188 = load ptr, ptr @ya_optarg, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef %188, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %189 unwind label %212

189:                                              ; preds = %187
  %190 = invoke noundef zeroext i1 @_ZN4sptk22ConvertStringToIntegerERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPi(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef %29)
          to label %191 unwind label %216

191:                                              ; preds = %189
  br i1 %190, label %192, label %197

192:                                              ; preds = %191
  %193 = load i32, ptr %29, align 4, !tbaa !5
  %194 = invoke noundef zeroext i1 @_ZN4sptk9IsInRangeEiii(i32 noundef %193, i32 noundef 0, i32 noundef 2)
          to label %195 unwind label %216

195:                                              ; preds = %192
  %196 = xor i1 %194, true
  br label %197

197:                                              ; preds = %195, %191
  %198 = phi i1 [ true, %191 ], [ %196, %195 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #7
  br i1 %198, label %199, label %235

199:                                              ; preds = %197
  call void @llvm.lifetime.start.p0(i64 376, ptr %32) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %32)
  %200 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %32, ptr noundef @.str.6)
          to label %201 unwind label %221

201:                                              ; preds = %199
  %202 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %200, ptr noundef @.str.4)
          to label %203 unwind label %221

203:                                              ; preds = %201
  %204 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %202, i32 noundef 0)
          to label %205 unwind label %221

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

207:                                              ; preds = %205
  %208 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %206, i32 noundef 2)
          to label %209 unwind label %221

209:                                              ; preds = %207
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %210 unwind label %225

210:                                              ; preds = %209
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 8 dereferenceable(112) %32)
          to label %211 unwind label %229

211:                                              ; preds = %210
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #7
  store i32 1, ptr %3, align 4
  store i32 1, ptr %11, align 4
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %32) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr %32) #7
  br label %237

212:                                              ; preds = %187
  %213 = landingpad { ptr, i32 }
          cleanup
  %214 = extractvalue { ptr, i32 } %213, 0
  store ptr %214, ptr %14, align 8
  %215 = extractvalue { ptr, i32 } %213, 1
  store i32 %215, ptr %15, align 4
  br label %220

216:                                              ; preds = %192, %189
  %217 = landingpad { ptr, i32 }
          cleanup
  %218 = extractvalue { ptr, i32 } %217, 0
  store ptr %218, ptr %14, align 8
  %219 = extractvalue { ptr, i32 } %217, 1
  store i32 %219, ptr %15, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  br label %220

220:                                              ; preds = %216, %212
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #7
  br label %239

221:                                              ; preds = %207, %205, %203, %201, %199
  %222 = landingpad { ptr, i32 }
          cleanup
  %223 = extractvalue { ptr, i32 } %222, 0
  store ptr %223, ptr %14, align 8
  %224 = extractvalue { ptr, i32 } %222, 1
  store i32 %224, ptr %15, align 4
  br label %234

225:                                              ; preds = %209
  %226 = landingpad { ptr, i32 }
          cleanup
  %227 = extractvalue { ptr, i32 } %226, 0
  store ptr %227, ptr %14, align 8
  %228 = extractvalue { ptr, i32 } %226, 1
  store i32 %228, ptr %15, align 4
  br label %233

229:                                              ; preds = %210
  %230 = landingpad { ptr, i32 }
          cleanup
  %231 = extractvalue { ptr, i32 } %230, 0
  store ptr %231, ptr %14, align 8
  %232 = extractvalue { ptr, i32 } %230, 1
  store i32 %232, ptr %15, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  br label %233

233:                                              ; preds = %229, %225
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #7
  br label %234

234:                                              ; preds = %233, %221
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %32) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr %32) #7
  br label %239

235:                                              ; preds = %197
  %236 = load i32, ptr %29, align 4, !tbaa !5
  store i32 %236, ptr %8, align 4, !tbaa !11
  store i32 4, ptr %11, align 4
  br label %237

237:                                              ; preds = %235, %211
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  %238 = load i32, ptr %11, align 4
  switch i32 %238, label %296 [
    i32 4, label %295
  ]

239:                                              ; preds = %234, %220
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  br label %299

240:                                              ; preds = %97
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #7
  store i32 0, ptr %35, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #7
  store i32 3, ptr %36, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %38) #7
  %241 = load ptr, ptr @ya_optarg, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef %241, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %242 unwind label %265

242:                                              ; preds = %240
  %243 = invoke noundef zeroext i1 @_ZN4sptk22ConvertStringToIntegerERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPi(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef %37)
          to label %244 unwind label %269

244:                                              ; preds = %242
  br i1 %243, label %245, label %250

245:                                              ; preds = %244
  %246 = load i32, ptr %37, align 4, !tbaa !5
  %247 = invoke noundef zeroext i1 @_ZN4sptk9IsInRangeEiii(i32 noundef %246, i32 noundef 0, i32 noundef 3)
          to label %248 unwind label %269

248:                                              ; preds = %245
  %249 = xor i1 %247, true
  br label %250

250:                                              ; preds = %248, %244
  %251 = phi i1 [ true, %244 ], [ %249, %248 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #7
  br i1 %251, label %252, label %288

252:                                              ; preds = %250
  call void @llvm.lifetime.start.p0(i64 376, ptr %40) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %40)
  %253 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef @.str.7)
          to label %254 unwind label %274

254:                                              ; preds = %252
  %255 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %253, ptr noundef @.str.4)
          to label %256 unwind label %274

256:                                              ; preds = %254
  %257 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %255, i32 noundef 0)
          to label %258 unwind label %274

258:                                              ; preds = %256
  %259 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %257, ptr noundef @.str.5)
          to label %260 unwind label %274

260:                                              ; preds = %258
  %261 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %259, i32 noundef 3)
          to label %262 unwind label %274

262:                                              ; preds = %260
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %42) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %42)
          to label %263 unwind label %278

263:                                              ; preds = %262
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull align 8 dereferenceable(112) %40)
          to label %264 unwind label %282

264:                                              ; preds = %263
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #7
  store i32 1, ptr %3, align 4
  store i32 1, ptr %11, align 4
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %40) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr %40) #7
  br label %290

265:                                              ; preds = %240
  %266 = landingpad { ptr, i32 }
          cleanup
  %267 = extractvalue { ptr, i32 } %266, 0
  store ptr %267, ptr %14, align 8
  %268 = extractvalue { ptr, i32 } %266, 1
  store i32 %268, ptr %15, align 4
  br label %273

269:                                              ; preds = %245, %242
  %270 = landingpad { ptr, i32 }
          cleanup
  %271 = extractvalue { ptr, i32 } %270, 0
  store ptr %271, ptr %14, align 8
  %272 = extractvalue { ptr, i32 } %270, 1
  store i32 %272, ptr %15, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  br label %273

273:                                              ; preds = %269, %265
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #7
  br label %292

274:                                              ; preds = %260, %258, %256, %254, %252
  %275 = landingpad { ptr, i32 }
          cleanup
  %276 = extractvalue { ptr, i32 } %275, 0
  store ptr %276, ptr %14, align 8
  %277 = extractvalue { ptr, i32 } %275, 1
  store i32 %277, ptr %15, align 4
  br label %287

278:                                              ; preds = %262
  %279 = landingpad { ptr, i32 }
          cleanup
  %280 = extractvalue { ptr, i32 } %279, 0
  store ptr %280, ptr %14, align 8
  %281 = extractvalue { ptr, i32 } %279, 1
  store i32 %281, ptr %15, align 4
  br label %286

282:                                              ; preds = %263
  %283 = landingpad { ptr, i32 }
          cleanup
  %284 = extractvalue { ptr, i32 } %283, 0
  store ptr %284, ptr %14, align 8
  %285 = extractvalue { ptr, i32 } %283, 1
  store i32 %285, ptr %15, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #7
  br label %286

286:                                              ; preds = %282, %278
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #7
  br label %287

287:                                              ; preds = %286, %274
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %40) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr %40) #7
  br label %292

288:                                              ; preds = %250
  %289 = load i32, ptr %37, align 4, !tbaa !5
  store i32 %289, ptr %9, align 4, !tbaa !11
  store i32 4, ptr %11, align 4
  br label %290

290:                                              ; preds = %288, %264
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #7
  %291 = load i32, ptr %11, align 4
  switch i32 %291, label %296 [
    i32 4, label %295
  ]

292:                                              ; preds = %287, %273
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #7
  br label %299

293:                                              ; preds = %97
  call void @_ZN12_GLOBAL__N_110PrintUsageEPSo(ptr noundef @_ZSt4cout)
  store i32 0, ptr %3, align 4
  store i32 1, ptr %11, align 4
  br label %296

294:                                              ; preds = %97
  call void @_ZN12_GLOBAL__N_110PrintUsageEPSo(ptr noundef @_ZSt4cerr)
  store i32 1, ptr %3, align 4
  store i32 1, ptr %11, align 4
  br label %296

295:                                              ; preds = %290, %237, %184, %133
  store i32 0, ptr %11, align 4
  br label %296

296:                                              ; preds = %295, %294, %293, %290, %237, %184, %109, %96
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #7
  %297 = load i32, ptr %11, align 4
  switch i32 %297, label %1063 [
    i32 0, label %298
    i32 2, label %300
  ]

298:                                              ; preds = %296
  br label %90, !llvm.loop !12

299:                                              ; preds = %292, %239, %186, %132, %118
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #7
  br label %1065

300:                                              ; preds = %296
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #7
  %301 = load i32, ptr %4, align 4, !tbaa !5
  %302 = load i32, ptr @ya_optind, align 4, !tbaa !5
  %303 = sub nsw i32 %301, %302
  store i32 %303, ptr %43, align 4, !tbaa !5
  %304 = load i32, ptr %43, align 4, !tbaa !5
  %305 = icmp slt i32 1, %304
  br i1 %305, label %306, label %325

306:                                              ; preds = %300
  call void @llvm.lifetime.start.p0(i64 376, ptr %44) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %44)
  %307 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef @.str.8)
          to label %308 unwind label %311

308:                                              ; preds = %306
  call void @llvm.lifetime.start.p0(i64 32, ptr %45) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %46) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %46)
          to label %309 unwind label %315

309:                                              ; preds = %308
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull align 8 dereferenceable(112) %44)
          to label %310 unwind label %319

310:                                              ; preds = %309
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #7
  store i32 1, ptr %3, align 4
  store i32 1, ptr %11, align 4
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %44) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr %44) #7
  br label %1061

311:                                              ; preds = %306
  %312 = landingpad { ptr, i32 }
          cleanup
  %313 = extractvalue { ptr, i32 } %312, 0
  store ptr %313, ptr %14, align 8
  %314 = extractvalue { ptr, i32 } %312, 1
  store i32 %314, ptr %15, align 4
  br label %324

315:                                              ; preds = %308
  %316 = landingpad { ptr, i32 }
          cleanup
  %317 = extractvalue { ptr, i32 } %316, 0
  store ptr %317, ptr %14, align 8
  %318 = extractvalue { ptr, i32 } %316, 1
  store i32 %318, ptr %15, align 4
  br label %323

319:                                              ; preds = %309
  %320 = landingpad { ptr, i32 }
          cleanup
  %321 = extractvalue { ptr, i32 } %320, 0
  store ptr %321, ptr %14, align 8
  %322 = extractvalue { ptr, i32 } %320, 1
  store i32 %322, ptr %15, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  br label %323

323:                                              ; preds = %319, %315
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #7
  br label %324

324:                                              ; preds = %323, %311
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %44) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr %44) #7
  br label %1062

325:                                              ; preds = %300
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #7
  %326 = load i32, ptr %43, align 4, !tbaa !5
  %327 = icmp eq i32 0, %326
  br i1 %327, label %328, label %329

328:                                              ; preds = %325
  br label %335

329:                                              ; preds = %325
  %330 = load ptr, ptr %5, align 8, !tbaa !9
  %331 = load i32, ptr @ya_optind, align 4, !tbaa !5
  %332 = sext i32 %331 to i64
  %333 = getelementptr inbounds ptr, ptr %330, i64 %332
  %334 = load ptr, ptr %333, align 8, !tbaa !9
  br label %335

335:                                              ; preds = %329, %328
  %336 = phi ptr [ null, %328 ], [ %334, %329 ]
  store ptr %336, ptr %47, align 8, !tbaa !9
  %337 = call noundef zeroext i1 @_ZN4sptk13SetBinaryModeEv()
  br i1 %337, label %357, label %338

338:                                              ; preds = %335
  call void @llvm.lifetime.start.p0(i64 376, ptr %48) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %48)
  %339 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %48, ptr noundef @.str.9)
          to label %340 unwind label %343

340:                                              ; preds = %338
  call void @llvm.lifetime.start.p0(i64 32, ptr %49) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %50) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %50)
          to label %341 unwind label %347

341:                                              ; preds = %340
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull align 8 dereferenceable(112) %48)
          to label %342 unwind label %351

342:                                              ; preds = %341
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #7
  store i32 1, ptr %3, align 4
  store i32 1, ptr %11, align 4
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %48) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr %48) #7
  br label %1059

343:                                              ; preds = %338
  %344 = landingpad { ptr, i32 }
          cleanup
  %345 = extractvalue { ptr, i32 } %344, 0
  store ptr %345, ptr %14, align 8
  %346 = extractvalue { ptr, i32 } %344, 1
  store i32 %346, ptr %15, align 4
  br label %356

347:                                              ; preds = %340
  %348 = landingpad { ptr, i32 }
          cleanup
  %349 = extractvalue { ptr, i32 } %348, 0
  store ptr %349, ptr %14, align 8
  %350 = extractvalue { ptr, i32 } %348, 1
  store i32 %350, ptr %15, align 4
  br label %355

351:                                              ; preds = %341
  %352 = landingpad { ptr, i32 }
          cleanup
  %353 = extractvalue { ptr, i32 } %352, 0
  store ptr %353, ptr %14, align 8
  %354 = extractvalue { ptr, i32 } %352, 1
  store i32 %354, ptr %15, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #7
  br label %355

355:                                              ; preds = %351, %347
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #7
  br label %356

356:                                              ; preds = %355, %343
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %48) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr %48) #7
  br label %1060

357:                                              ; preds = %335
  call void @llvm.lifetime.start.p0(i64 520, ptr %51) #7
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(256) %51)
  %358 = load ptr, ptr %47, align 8, !tbaa !9
  %359 = icmp ne ptr null, %358
  br i1 %359, label %360, label %404

360:                                              ; preds = %357
  %361 = load ptr, ptr %47, align 8, !tbaa !9
  %362 = invoke noundef i32 @_ZStorSt13_Ios_OpenmodeS_(i32 noundef 8, i32 noundef 4)
          to label %363 unwind label %380

363:                                              ; preds = %360
  invoke void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256) %51, ptr noundef %361, i32 noundef %362)
          to label %364 unwind label %380

364:                                              ; preds = %363
  %365 = load ptr, ptr %51, align 8, !tbaa !14
  %366 = getelementptr i8, ptr %365, i64 -24
  %367 = load i64, ptr %366, align 8
  %368 = getelementptr inbounds i8, ptr %51, i64 %367
  %369 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE4failEv(ptr noundef nonnull align 8 dereferenceable(264) %368)
          to label %370 unwind label %380

370:                                              ; preds = %364
  br i1 %369, label %371, label %403

371:                                              ; preds = %370
  call void @llvm.lifetime.start.p0(i64 376, ptr %52) #7
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %52)
          to label %372 unwind label %384

372:                                              ; preds = %371
  %373 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %52, ptr noundef @.str.10)
          to label %374 unwind label %388

374:                                              ; preds = %372
  %375 = load ptr, ptr %47, align 8, !tbaa !9
  %376 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %373, ptr noundef %375)
          to label %377 unwind label %388

377:                                              ; preds = %374
  call void @llvm.lifetime.start.p0(i64 32, ptr %53) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %54) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %54)
          to label %378 unwind label %392

378:                                              ; preds = %377
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(112) %52)
          to label %379 unwind label %396

379:                                              ; preds = %378
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #7
  store i32 1, ptr %3, align 4
  store i32 1, ptr %11, align 4
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %52) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr %52) #7
  br label %1057

380:                                              ; preds = %364, %363, %360
  %381 = landingpad { ptr, i32 }
          cleanup
  %382 = extractvalue { ptr, i32 } %381, 0
  store ptr %382, ptr %14, align 8
  %383 = extractvalue { ptr, i32 } %381, 1
  store i32 %383, ptr %15, align 4
  br label %1058

384:                                              ; preds = %371
  %385 = landingpad { ptr, i32 }
          cleanup
  %386 = extractvalue { ptr, i32 } %385, 0
  store ptr %386, ptr %14, align 8
  %387 = extractvalue { ptr, i32 } %385, 1
  store i32 %387, ptr %15, align 4
  br label %402

388:                                              ; preds = %374, %372
  %389 = landingpad { ptr, i32 }
          cleanup
  %390 = extractvalue { ptr, i32 } %389, 0
  store ptr %390, ptr %14, align 8
  %391 = extractvalue { ptr, i32 } %389, 1
  store i32 %391, ptr %15, align 4
  br label %401

392:                                              ; preds = %377
  %393 = landingpad { ptr, i32 }
          cleanup
  %394 = extractvalue { ptr, i32 } %393, 0
  store ptr %394, ptr %14, align 8
  %395 = extractvalue { ptr, i32 } %393, 1
  store i32 %395, ptr %15, align 4
  br label %400

396:                                              ; preds = %378
  %397 = landingpad { ptr, i32 }
          cleanup
  %398 = extractvalue { ptr, i32 } %397, 0
  store ptr %398, ptr %14, align 8
  %399 = extractvalue { ptr, i32 } %397, 1
  store i32 %399, ptr %15, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #7
  br label %400

400:                                              ; preds = %396, %392
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #7
  br label %401

401:                                              ; preds = %400, %388
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %52) #7
  br label %402

402:                                              ; preds = %401, %384
  call void @llvm.lifetime.end.p0(i64 376, ptr %52) #7
  br label %1058

403:                                              ; preds = %370
  br label %404

404:                                              ; preds = %403, %357
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #7
  %405 = invoke noundef zeroext i1 @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(256) %51)
          to label %406 unwind label %424

406:                                              ; preds = %404
  br i1 %405, label %407, label %408

407:                                              ; preds = %406
  br label %409

408:                                              ; preds = %406
  br label %409

409:                                              ; preds = %408, %407
  %410 = phi ptr [ %51, %407 ], [ @_ZSt3cin, %408 ]
  store ptr %410, ptr %55, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 88, ptr %56) #7
  %411 = load i32, ptr %6, align 4, !tbaa !5
  %412 = load i32, ptr %6, align 4, !tbaa !5
  %413 = load i32, ptr %6, align 4, !tbaa !5
  invoke void @_ZN4sptk41TwoDimensionalInverseFastFourierTransformC1Eiii(ptr noundef nonnull align 8 dereferenceable(81) %56, i32 noundef %411, i32 noundef %412, i32 noundef %413)
          to label %414 unwind label %428

414:                                              ; preds = %409
  call void @llvm.lifetime.start.p0(i64 152, ptr %57) #7
  invoke void @_ZN4sptk41TwoDimensionalInverseFastFourierTransform6BufferC2Ev(ptr noundef nonnull align 8 dereferenceable(152) %57)
          to label %415 unwind label %432

415:                                              ; preds = %414
  %416 = invoke noundef zeroext i1 @_ZNK4sptk41TwoDimensionalInverseFastFourierTransform7IsValidEv(ptr noundef nonnull align 8 dereferenceable(81) %56)
          to label %417 unwind label %436

417:                                              ; preds = %415
  br i1 %416, label %459, label %418

418:                                              ; preds = %417
  call void @llvm.lifetime.start.p0(i64 376, ptr %58) #7
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %58)
          to label %419 unwind label %440

419:                                              ; preds = %418
  %420 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %58, ptr noundef @.str.11)
          to label %421 unwind label %444

421:                                              ; preds = %419
  call void @llvm.lifetime.start.p0(i64 32, ptr %59) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %60) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %60)
          to label %422 unwind label %448

422:                                              ; preds = %421
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull align 8 dereferenceable(112) %58)
          to label %423 unwind label %452

423:                                              ; preds = %422
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #7
  store i32 1, ptr %3, align 4
  store i32 1, ptr %11, align 4
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %58) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr %58) #7
  br label %1052

424:                                              ; preds = %404
  %425 = landingpad { ptr, i32 }
          cleanup
  %426 = extractvalue { ptr, i32 } %425, 0
  store ptr %426, ptr %14, align 8
  %427 = extractvalue { ptr, i32 } %425, 1
  store i32 %427, ptr %15, align 4
  br label %1056

428:                                              ; preds = %409
  %429 = landingpad { ptr, i32 }
          cleanup
  %430 = extractvalue { ptr, i32 } %429, 0
  store ptr %430, ptr %14, align 8
  %431 = extractvalue { ptr, i32 } %429, 1
  store i32 %431, ptr %15, align 4
  br label %1055

432:                                              ; preds = %414
  %433 = landingpad { ptr, i32 }
          cleanup
  %434 = extractvalue { ptr, i32 } %433, 0
  store ptr %434, ptr %14, align 8
  %435 = extractvalue { ptr, i32 } %433, 1
  store i32 %435, ptr %15, align 4
  br label %1054

436:                                              ; preds = %415
  %437 = landingpad { ptr, i32 }
          cleanup
  %438 = extractvalue { ptr, i32 } %437, 0
  store ptr %438, ptr %14, align 8
  %439 = extractvalue { ptr, i32 } %437, 1
  store i32 %439, ptr %15, align 4
  br label %1053

440:                                              ; preds = %418
  %441 = landingpad { ptr, i32 }
          cleanup
  %442 = extractvalue { ptr, i32 } %441, 0
  store ptr %442, ptr %14, align 8
  %443 = extractvalue { ptr, i32 } %441, 1
  store i32 %443, ptr %15, align 4
  br label %458

444:                                              ; preds = %419
  %445 = landingpad { ptr, i32 }
          cleanup
  %446 = extractvalue { ptr, i32 } %445, 0
  store ptr %446, ptr %14, align 8
  %447 = extractvalue { ptr, i32 } %445, 1
  store i32 %447, ptr %15, align 4
  br label %457

448:                                              ; preds = %421
  %449 = landingpad { ptr, i32 }
          cleanup
  %450 = extractvalue { ptr, i32 } %449, 0
  store ptr %450, ptr %14, align 8
  %451 = extractvalue { ptr, i32 } %449, 1
  store i32 %451, ptr %15, align 4
  br label %456

452:                                              ; preds = %422
  %453 = landingpad { ptr, i32 }
          cleanup
  %454 = extractvalue { ptr, i32 } %453, 0
  store ptr %454, ptr %14, align 8
  %455 = extractvalue { ptr, i32 } %453, 1
  store i32 %455, ptr %15, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #7
  br label %456

456:                                              ; preds = %452, %448
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #7
  br label %457

457:                                              ; preds = %456, %444
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %58) #7
  br label %458

458:                                              ; preds = %457, %440
  call void @llvm.lifetime.end.p0(i64 376, ptr %58) #7
  br label %1053

459:                                              ; preds = %417
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #7
  %460 = load i32, ptr %6, align 4, !tbaa !5
  %461 = sdiv i32 %460, 2
  store i32 %461, ptr %61, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #7
  %462 = load i32, ptr %9, align 4, !tbaa !11
  %463 = icmp eq i32 0, %462
  br i1 %463, label %467, label %464

464:                                              ; preds = %459
  %465 = load i32, ptr %9, align 4, !tbaa !11
  %466 = icmp eq i32 1, %465
  br i1 %466, label %467, label %469

467:                                              ; preds = %464, %459
  %468 = load i32, ptr %6, align 4, !tbaa !5
  store i32 %468, ptr %62, align 4, !tbaa !5
  br label %484

469:                                              ; preds = %464
  %470 = load i32, ptr %9, align 4, !tbaa !11
  %471 = icmp eq i32 2, %470
  br i1 %471, label %472, label %475

472:                                              ; preds = %469
  %473 = load i32, ptr %6, align 4, !tbaa !5
  %474 = add nsw i32 %473, 1
  store i32 %474, ptr %62, align 4, !tbaa !5
  br label %483

475:                                              ; preds = %469
  %476 = load i32, ptr %9, align 4, !tbaa !11
  %477 = icmp eq i32 3, %476
  br i1 %477, label %478, label %481

478:                                              ; preds = %475
  %479 = load i32, ptr %61, align 4, !tbaa !5
  %480 = add nsw i32 %479, 1
  store i32 %480, ptr %62, align 4, !tbaa !5
  br label %482

481:                                              ; preds = %475
  store i32 1, ptr %3, align 4
  store i32 1, ptr %11, align 4
  br label %1051

482:                                              ; preds = %478
  br label %483

483:                                              ; preds = %482, %472
  br label %484

484:                                              ; preds = %483, %467
  call void @llvm.lifetime.start.p0(i64 64, ptr %63) #7
  %485 = load i32, ptr %6, align 4, !tbaa !5
  %486 = load i32, ptr %6, align 4, !tbaa !5
  invoke void @_ZN4sptk6MatrixC1Eii(ptr noundef nonnull align 8 dereferenceable(64) %63, i32 noundef %485, i32 noundef %486)
          to label %487 unwind label %514

487:                                              ; preds = %484
  call void @llvm.lifetime.start.p0(i64 64, ptr %64) #7
  %488 = load i32, ptr %6, align 4, !tbaa !5
  %489 = load i32, ptr %6, align 4, !tbaa !5
  invoke void @_ZN4sptk6MatrixC1Eii(ptr noundef nonnull align 8 dereferenceable(64) %64, i32 noundef %488, i32 noundef %489)
          to label %490 unwind label %518

490:                                              ; preds = %487
  call void @llvm.lifetime.start.p0(i64 64, ptr %65) #7
  %491 = load i32, ptr %6, align 4, !tbaa !5
  %492 = load i32, ptr %6, align 4, !tbaa !5
  invoke void @_ZN4sptk6MatrixC1Eii(ptr noundef nonnull align 8 dereferenceable(64) %65, i32 noundef %491, i32 noundef %492)
          to label %493 unwind label %522

493:                                              ; preds = %490
  call void @llvm.lifetime.start.p0(i64 64, ptr %66) #7
  %494 = load i32, ptr %6, align 4, !tbaa !5
  %495 = load i32, ptr %6, align 4, !tbaa !5
  invoke void @_ZN4sptk6MatrixC1Eii(ptr noundef nonnull align 8 dereferenceable(64) %66, i32 noundef %494, i32 noundef %495)
          to label %496 unwind label %526

496:                                              ; preds = %493
  call void @llvm.lifetime.start.p0(i64 64, ptr %67) #7
  %497 = load i32, ptr %62, align 4, !tbaa !5
  %498 = load i32, ptr %62, align 4, !tbaa !5
  invoke void @_ZN4sptk6MatrixC1Eii(ptr noundef nonnull align 8 dereferenceable(64) %67, i32 noundef %497, i32 noundef %498)
          to label %499 unwind label %530

499:                                              ; preds = %496
  call void @llvm.lifetime.start.p0(i64 64, ptr %68) #7
  %500 = load i32, ptr %62, align 4, !tbaa !5
  %501 = load i32, ptr %62, align 4, !tbaa !5
  invoke void @_ZN4sptk6MatrixC1Eii(ptr noundef nonnull align 8 dereferenceable(64) %68, i32 noundef %500, i32 noundef %501)
          to label %502 unwind label %534

502:                                              ; preds = %499
  br label %503

503:                                              ; preds = %1041, %502
  %504 = load i32, ptr %7, align 4, !tbaa !11
  %505 = icmp eq i32 0, %504
  br i1 %505, label %509, label %506

506:                                              ; preds = %503
  %507 = load i32, ptr %7, align 4, !tbaa !11
  %508 = icmp eq i32 1, %507
  br i1 %508, label %509, label %542

509:                                              ; preds = %506, %503
  %510 = load ptr, ptr %55, align 8, !tbaa !9
  %511 = invoke noundef zeroext i1 @_ZN4sptk10ReadStreamEPNS_6MatrixEPSi(ptr noundef %63, ptr noundef %510)
          to label %512 unwind label %538

512:                                              ; preds = %509
  br i1 %511, label %542, label %513

513:                                              ; preds = %512
  br label %1042

514:                                              ; preds = %484
  %515 = landingpad { ptr, i32 }
          cleanup
  %516 = extractvalue { ptr, i32 } %515, 0
  store ptr %516, ptr %14, align 8
  %517 = extractvalue { ptr, i32 } %515, 1
  store i32 %517, ptr %15, align 4
  br label %1050

518:                                              ; preds = %487
  %519 = landingpad { ptr, i32 }
          cleanup
  %520 = extractvalue { ptr, i32 } %519, 0
  store ptr %520, ptr %14, align 8
  %521 = extractvalue { ptr, i32 } %519, 1
  store i32 %521, ptr %15, align 4
  br label %1049

522:                                              ; preds = %490
  %523 = landingpad { ptr, i32 }
          cleanup
  %524 = extractvalue { ptr, i32 } %523, 0
  store ptr %524, ptr %14, align 8
  %525 = extractvalue { ptr, i32 } %523, 1
  store i32 %525, ptr %15, align 4
  br label %1048

526:                                              ; preds = %493
  %527 = landingpad { ptr, i32 }
          cleanup
  %528 = extractvalue { ptr, i32 } %527, 0
  store ptr %528, ptr %14, align 8
  %529 = extractvalue { ptr, i32 } %527, 1
  store i32 %529, ptr %15, align 4
  br label %1047

530:                                              ; preds = %496
  %531 = landingpad { ptr, i32 }
          cleanup
  %532 = extractvalue { ptr, i32 } %531, 0
  store ptr %532, ptr %14, align 8
  %533 = extractvalue { ptr, i32 } %531, 1
  store i32 %533, ptr %15, align 4
  br label %1046

534:                                              ; preds = %499
  %535 = landingpad { ptr, i32 }
          cleanup
  %536 = extractvalue { ptr, i32 } %535, 0
  store ptr %536, ptr %14, align 8
  %537 = extractvalue { ptr, i32 } %535, 1
  store i32 %537, ptr %15, align 4
  br label %1045

538:                                              ; preds = %1013, %979, %553, %548, %509
  %539 = landingpad { ptr, i32 }
          cleanup
  %540 = extractvalue { ptr, i32 } %539, 0
  store ptr %540, ptr %14, align 8
  %541 = extractvalue { ptr, i32 } %539, 1
  store i32 %541, ptr %15, align 4
  br label %1044

542:                                              ; preds = %512, %506
  %543 = load i32, ptr %7, align 4, !tbaa !11
  %544 = icmp eq i32 0, %543
  br i1 %544, label %548, label %545

545:                                              ; preds = %542
  %546 = load i32, ptr %7, align 4, !tbaa !11
  %547 = icmp eq i32 2, %546
  br i1 %547, label %548, label %553

548:                                              ; preds = %545, %542
  %549 = load ptr, ptr %55, align 8, !tbaa !9
  %550 = invoke noundef zeroext i1 @_ZN4sptk10ReadStreamEPNS_6MatrixEPSi(ptr noundef %64, ptr noundef %549)
          to label %551 unwind label %538

551:                                              ; preds = %548
  br i1 %550, label %553, label %552

552:                                              ; preds = %551
  br label %1042

553:                                              ; preds = %551, %545
  %554 = invoke noundef zeroext i1 @_ZNK4sptk41TwoDimensionalInverseFastFourierTransform3RunERKNS_6MatrixES3_PS1_S4_PNS0_6BufferE(ptr noundef nonnull align 8 dereferenceable(81) %56, ptr noundef nonnull align 8 dereferenceable(64) %63, ptr noundef nonnull align 8 dereferenceable(64) %64, ptr noundef %65, ptr noundef %66, ptr noundef %57)
          to label %555 unwind label %538

555:                                              ; preds = %553
  br i1 %554, label %581, label %556

556:                                              ; preds = %555
  call void @llvm.lifetime.start.p0(i64 376, ptr %69) #7
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %69)
          to label %557 unwind label %562

557:                                              ; preds = %556
  %558 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef @.str.12)
          to label %559 unwind label %566

559:                                              ; preds = %557
  call void @llvm.lifetime.start.p0(i64 32, ptr %70) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %71) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %71)
          to label %560 unwind label %570

560:                                              ; preds = %559
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull align 8 dereferenceable(112) %69)
          to label %561 unwind label %574

561:                                              ; preds = %560
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #7
  store i32 1, ptr %3, align 4
  store i32 1, ptr %11, align 4
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %69) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr %69) #7
  br label %1043

562:                                              ; preds = %556
  %563 = landingpad { ptr, i32 }
          cleanup
  %564 = extractvalue { ptr, i32 } %563, 0
  store ptr %564, ptr %14, align 8
  %565 = extractvalue { ptr, i32 } %563, 1
  store i32 %565, ptr %15, align 4
  br label %580

566:                                              ; preds = %557
  %567 = landingpad { ptr, i32 }
          cleanup
  %568 = extractvalue { ptr, i32 } %567, 0
  store ptr %568, ptr %14, align 8
  %569 = extractvalue { ptr, i32 } %567, 1
  store i32 %569, ptr %15, align 4
  br label %579

570:                                              ; preds = %559
  %571 = landingpad { ptr, i32 }
          cleanup
  %572 = extractvalue { ptr, i32 } %571, 0
  store ptr %572, ptr %14, align 8
  %573 = extractvalue { ptr, i32 } %571, 1
  store i32 %573, ptr %15, align 4
  br label %578

574:                                              ; preds = %560
  %575 = landingpad { ptr, i32 }
          cleanup
  %576 = extractvalue { ptr, i32 } %575, 0
  store ptr %576, ptr %14, align 8
  %577 = extractvalue { ptr, i32 } %575, 1
  store i32 %577, ptr %15, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #7
  br label %578

578:                                              ; preds = %574, %570
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #7
  br label %579

579:                                              ; preds = %578, %566
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %69) #7
  br label %580

580:                                              ; preds = %579, %562
  call void @llvm.lifetime.end.p0(i64 376, ptr %69) #7
  br label %1044

581:                                              ; preds = %555
  %582 = load i32, ptr %9, align 4, !tbaa !11
  %583 = icmp eq i32 0, %582
  br i1 %583, label %587, label %584

584:                                              ; preds = %581
  %585 = load i32, ptr %9, align 4, !tbaa !11
  %586 = icmp eq i32 3, %585
  br i1 %586, label %587, label %638

587:                                              ; preds = %584, %581
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #7
  store i32 0, ptr %72, align 4, !tbaa !5
  br label %588

588:                                              ; preds = %634, %587
  %589 = load i32, ptr %72, align 4, !tbaa !5
  %590 = load i32, ptr %62, align 4, !tbaa !5
  %591 = icmp slt i32 %589, %590
  br i1 %591, label %593, label %592

592:                                              ; preds = %588
  store i32 7, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #7
  br label %637

593:                                              ; preds = %588
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #7
  store i32 0, ptr %73, align 4, !tbaa !5
  br label %594

594:                                              ; preds = %626, %593
  %595 = load i32, ptr %73, align 4, !tbaa !5
  %596 = load i32, ptr %62, align 4, !tbaa !5
  %597 = icmp slt i32 %595, %596
  br i1 %597, label %599, label %598

598:                                              ; preds = %594
  store i32 10, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #7
  br label %633

599:                                              ; preds = %594
  %600 = load i32, ptr %72, align 4, !tbaa !5
  %601 = invoke noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %65, i32 noundef %600)
          to label %602 unwind label %629

602:                                              ; preds = %599
  %603 = load i32, ptr %73, align 4, !tbaa !5
  %604 = sext i32 %603 to i64
  %605 = getelementptr inbounds double, ptr %601, i64 %604
  %606 = load double, ptr %605, align 8, !tbaa !16
  %607 = load i32, ptr %72, align 4, !tbaa !5
  %608 = invoke noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %67, i32 noundef %607)
          to label %609 unwind label %629

609:                                              ; preds = %602
  %610 = load i32, ptr %73, align 4, !tbaa !5
  %611 = sext i32 %610 to i64
  %612 = getelementptr inbounds double, ptr %608, i64 %611
  store double %606, ptr %612, align 8, !tbaa !16
  %613 = load i32, ptr %72, align 4, !tbaa !5
  %614 = invoke noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %66, i32 noundef %613)
          to label %615 unwind label %629

615:                                              ; preds = %609
  %616 = load i32, ptr %73, align 4, !tbaa !5
  %617 = sext i32 %616 to i64
  %618 = getelementptr inbounds double, ptr %614, i64 %617
  %619 = load double, ptr %618, align 8, !tbaa !16
  %620 = load i32, ptr %72, align 4, !tbaa !5
  %621 = invoke noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %68, i32 noundef %620)
          to label %622 unwind label %629

622:                                              ; preds = %615
  %623 = load i32, ptr %73, align 4, !tbaa !5
  %624 = sext i32 %623 to i64
  %625 = getelementptr inbounds double, ptr %621, i64 %624
  store double %619, ptr %625, align 8, !tbaa !16
  br label %626

626:                                              ; preds = %622
  %627 = load i32, ptr %73, align 4, !tbaa !5
  %628 = add nsw i32 %627, 1
  store i32 %628, ptr %73, align 4, !tbaa !5
  br label %594, !llvm.loop !18

629:                                              ; preds = %615, %609, %602, %599
  %630 = landingpad { ptr, i32 }
          cleanup
  %631 = extractvalue { ptr, i32 } %630, 0
  store ptr %631, ptr %14, align 8
  %632 = extractvalue { ptr, i32 } %630, 1
  store i32 %632, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #7
  br label %1044

633:                                              ; preds = %598
  br label %634

634:                                              ; preds = %633
  %635 = load i32, ptr %72, align 4, !tbaa !5
  %636 = add nsw i32 %635, 1
  store i32 %636, ptr %72, align 4, !tbaa !5
  br label %588, !llvm.loop !19

637:                                              ; preds = %592
  br label %973

638:                                              ; preds = %584
  %639 = load i32, ptr %9, align 4, !tbaa !11
  %640 = icmp eq i32 1, %639
  br i1 %640, label %644, label %641

641:                                              ; preds = %638
  %642 = load i32, ptr %9, align 4, !tbaa !11
  %643 = icmp eq i32 2, %642
  br i1 %643, label %644, label %972

644:                                              ; preds = %641, %638
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #7
  store i32 0, ptr %74, align 4, !tbaa !5
  br label %645

645:                                              ; preds = %699, %644
  %646 = load i32, ptr %74, align 4, !tbaa !5
  %647 = load i32, ptr %61, align 4, !tbaa !5
  %648 = icmp slt i32 %646, %647
  br i1 %648, label %650, label %649

649:                                              ; preds = %645
  store i32 13, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #7
  br label %702

650:                                              ; preds = %645
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #7
  store i32 0, ptr %75, align 4, !tbaa !5
  br label %651

651:                                              ; preds = %691, %650
  %652 = load i32, ptr %75, align 4, !tbaa !5
  %653 = load i32, ptr %61, align 4, !tbaa !5
  %654 = icmp slt i32 %652, %653
  br i1 %654, label %656, label %655

655:                                              ; preds = %651
  store i32 16, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #7
  br label %698

656:                                              ; preds = %651
  %657 = load i32, ptr %74, align 4, !tbaa !5
  %658 = load i32, ptr %61, align 4, !tbaa !5
  %659 = add nsw i32 %657, %658
  %660 = invoke noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %65, i32 noundef %659)
          to label %661 unwind label %694

661:                                              ; preds = %656
  %662 = load i32, ptr %75, align 4, !tbaa !5
  %663 = load i32, ptr %61, align 4, !tbaa !5
  %664 = add nsw i32 %662, %663
  %665 = sext i32 %664 to i64
  %666 = getelementptr inbounds double, ptr %660, i64 %665
  %667 = load double, ptr %666, align 8, !tbaa !16
  %668 = load i32, ptr %74, align 4, !tbaa !5
  %669 = invoke noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %67, i32 noundef %668)
          to label %670 unwind label %694

670:                                              ; preds = %661
  %671 = load i32, ptr %75, align 4, !tbaa !5
  %672 = sext i32 %671 to i64
  %673 = getelementptr inbounds double, ptr %669, i64 %672
  store double %667, ptr %673, align 8, !tbaa !16
  %674 = load i32, ptr %74, align 4, !tbaa !5
  %675 = load i32, ptr %61, align 4, !tbaa !5
  %676 = add nsw i32 %674, %675
  %677 = invoke noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %66, i32 noundef %676)
          to label %678 unwind label %694

678:                                              ; preds = %670
  %679 = load i32, ptr %75, align 4, !tbaa !5
  %680 = load i32, ptr %61, align 4, !tbaa !5
  %681 = add nsw i32 %679, %680
  %682 = sext i32 %681 to i64
  %683 = getelementptr inbounds double, ptr %677, i64 %682
  %684 = load double, ptr %683, align 8, !tbaa !16
  %685 = load i32, ptr %74, align 4, !tbaa !5
  %686 = invoke noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %68, i32 noundef %685)
          to label %687 unwind label %694

687:                                              ; preds = %678
  %688 = load i32, ptr %75, align 4, !tbaa !5
  %689 = sext i32 %688 to i64
  %690 = getelementptr inbounds double, ptr %686, i64 %689
  store double %684, ptr %690, align 8, !tbaa !16
  br label %691

691:                                              ; preds = %687
  %692 = load i32, ptr %75, align 4, !tbaa !5
  %693 = add nsw i32 %692, 1
  store i32 %693, ptr %75, align 4, !tbaa !5
  br label %651, !llvm.loop !20

694:                                              ; preds = %678, %670, %661, %656
  %695 = landingpad { ptr, i32 }
          cleanup
  %696 = extractvalue { ptr, i32 } %695, 0
  store ptr %696, ptr %14, align 8
  %697 = extractvalue { ptr, i32 } %695, 1
  store i32 %697, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #7
  br label %1044

698:                                              ; preds = %655
  br label %699

699:                                              ; preds = %698
  %700 = load i32, ptr %74, align 4, !tbaa !5
  %701 = add nsw i32 %700, 1
  store i32 %701, ptr %74, align 4, !tbaa !5
  br label %645, !llvm.loop !21

702:                                              ; preds = %649
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #7
  %703 = load i32, ptr %61, align 4, !tbaa !5
  store i32 %703, ptr %76, align 4, !tbaa !5
  br label %704

704:                                              ; preds = %759, %702
  %705 = load i32, ptr %76, align 4, !tbaa !5
  %706 = load i32, ptr %6, align 4, !tbaa !5
  %707 = icmp slt i32 %705, %706
  br i1 %707, label %709, label %708

708:                                              ; preds = %704
  store i32 19, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #7
  br label %762

709:                                              ; preds = %704
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #7
  %710 = load i32, ptr %61, align 4, !tbaa !5
  store i32 %710, ptr %77, align 4, !tbaa !5
  br label %711

711:                                              ; preds = %751, %709
  %712 = load i32, ptr %77, align 4, !tbaa !5
  %713 = load i32, ptr %6, align 4, !tbaa !5
  %714 = icmp slt i32 %712, %713
  br i1 %714, label %716, label %715

715:                                              ; preds = %711
  store i32 22, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #7
  br label %758

716:                                              ; preds = %711
  %717 = load i32, ptr %76, align 4, !tbaa !5
  %718 = load i32, ptr %61, align 4, !tbaa !5
  %719 = sub nsw i32 %717, %718
  %720 = invoke noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %65, i32 noundef %719)
          to label %721 unwind label %754

721:                                              ; preds = %716
  %722 = load i32, ptr %77, align 4, !tbaa !5
  %723 = load i32, ptr %61, align 4, !tbaa !5
  %724 = sub nsw i32 %722, %723
  %725 = sext i32 %724 to i64
  %726 = getelementptr inbounds double, ptr %720, i64 %725
  %727 = load double, ptr %726, align 8, !tbaa !16
  %728 = load i32, ptr %76, align 4, !tbaa !5
  %729 = invoke noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %67, i32 noundef %728)
          to label %730 unwind label %754

730:                                              ; preds = %721
  %731 = load i32, ptr %77, align 4, !tbaa !5
  %732 = sext i32 %731 to i64
  %733 = getelementptr inbounds double, ptr %729, i64 %732
  store double %727, ptr %733, align 8, !tbaa !16
  %734 = load i32, ptr %76, align 4, !tbaa !5
  %735 = load i32, ptr %61, align 4, !tbaa !5
  %736 = sub nsw i32 %734, %735
  %737 = invoke noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %66, i32 noundef %736)
          to label %738 unwind label %754

738:                                              ; preds = %730
  %739 = load i32, ptr %77, align 4, !tbaa !5
  %740 = load i32, ptr %61, align 4, !tbaa !5
  %741 = sub nsw i32 %739, %740
  %742 = sext i32 %741 to i64
  %743 = getelementptr inbounds double, ptr %737, i64 %742
  %744 = load double, ptr %743, align 8, !tbaa !16
  %745 = load i32, ptr %76, align 4, !tbaa !5
  %746 = invoke noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %68, i32 noundef %745)
          to label %747 unwind label %754

747:                                              ; preds = %738
  %748 = load i32, ptr %77, align 4, !tbaa !5
  %749 = sext i32 %748 to i64
  %750 = getelementptr inbounds double, ptr %746, i64 %749
  store double %744, ptr %750, align 8, !tbaa !16
  br label %751

751:                                              ; preds = %747
  %752 = load i32, ptr %77, align 4, !tbaa !5
  %753 = add nsw i32 %752, 1
  store i32 %753, ptr %77, align 4, !tbaa !5
  br label %711, !llvm.loop !22

754:                                              ; preds = %738, %730, %721, %716
  %755 = landingpad { ptr, i32 }
          cleanup
  %756 = extractvalue { ptr, i32 } %755, 0
  store ptr %756, ptr %14, align 8
  %757 = extractvalue { ptr, i32 } %755, 1
  store i32 %757, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #7
  br label %1044

758:                                              ; preds = %715
  br label %759

759:                                              ; preds = %758
  %760 = load i32, ptr %76, align 4, !tbaa !5
  %761 = add nsw i32 %760, 1
  store i32 %761, ptr %76, align 4, !tbaa !5
  br label %704, !llvm.loop !23

762:                                              ; preds = %708
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #7
  store i32 0, ptr %78, align 4, !tbaa !5
  br label %763

763:                                              ; preds = %818, %762
  %764 = load i32, ptr %78, align 4, !tbaa !5
  %765 = load i32, ptr %61, align 4, !tbaa !5
  %766 = icmp slt i32 %764, %765
  br i1 %766, label %768, label %767

767:                                              ; preds = %763
  store i32 25, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #7
  br label %821

768:                                              ; preds = %763
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #7
  %769 = load i32, ptr %61, align 4, !tbaa !5
  store i32 %769, ptr %79, align 4, !tbaa !5
  br label %770

770:                                              ; preds = %810, %768
  %771 = load i32, ptr %79, align 4, !tbaa !5
  %772 = load i32, ptr %6, align 4, !tbaa !5
  %773 = icmp slt i32 %771, %772
  br i1 %773, label %775, label %774

774:                                              ; preds = %770
  store i32 28, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #7
  br label %817

775:                                              ; preds = %770
  %776 = load i32, ptr %78, align 4, !tbaa !5
  %777 = load i32, ptr %61, align 4, !tbaa !5
  %778 = add nsw i32 %776, %777
  %779 = invoke noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %65, i32 noundef %778)
          to label %780 unwind label %813

780:                                              ; preds = %775
  %781 = load i32, ptr %79, align 4, !tbaa !5
  %782 = load i32, ptr %61, align 4, !tbaa !5
  %783 = sub nsw i32 %781, %782
  %784 = sext i32 %783 to i64
  %785 = getelementptr inbounds double, ptr %779, i64 %784
  %786 = load double, ptr %785, align 8, !tbaa !16
  %787 = load i32, ptr %78, align 4, !tbaa !5
  %788 = invoke noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %67, i32 noundef %787)
          to label %789 unwind label %813

789:                                              ; preds = %780
  %790 = load i32, ptr %79, align 4, !tbaa !5
  %791 = sext i32 %790 to i64
  %792 = getelementptr inbounds double, ptr %788, i64 %791
  store double %786, ptr %792, align 8, !tbaa !16
  %793 = load i32, ptr %78, align 4, !tbaa !5
  %794 = load i32, ptr %61, align 4, !tbaa !5
  %795 = add nsw i32 %793, %794
  %796 = invoke noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %66, i32 noundef %795)
          to label %797 unwind label %813

797:                                              ; preds = %789
  %798 = load i32, ptr %79, align 4, !tbaa !5
  %799 = load i32, ptr %61, align 4, !tbaa !5
  %800 = sub nsw i32 %798, %799
  %801 = sext i32 %800 to i64
  %802 = getelementptr inbounds double, ptr %796, i64 %801
  %803 = load double, ptr %802, align 8, !tbaa !16
  %804 = load i32, ptr %78, align 4, !tbaa !5
  %805 = invoke noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %68, i32 noundef %804)
          to label %806 unwind label %813

806:                                              ; preds = %797
  %807 = load i32, ptr %79, align 4, !tbaa !5
  %808 = sext i32 %807 to i64
  %809 = getelementptr inbounds double, ptr %805, i64 %808
  store double %803, ptr %809, align 8, !tbaa !16
  br label %810

810:                                              ; preds = %806
  %811 = load i32, ptr %79, align 4, !tbaa !5
  %812 = add nsw i32 %811, 1
  store i32 %812, ptr %79, align 4, !tbaa !5
  br label %770, !llvm.loop !24

813:                                              ; preds = %797, %789, %780, %775
  %814 = landingpad { ptr, i32 }
          cleanup
  %815 = extractvalue { ptr, i32 } %814, 0
  store ptr %815, ptr %14, align 8
  %816 = extractvalue { ptr, i32 } %814, 1
  store i32 %816, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #7
  br label %1044

817:                                              ; preds = %774
  br label %818

818:                                              ; preds = %817
  %819 = load i32, ptr %78, align 4, !tbaa !5
  %820 = add nsw i32 %819, 1
  store i32 %820, ptr %78, align 4, !tbaa !5
  br label %763, !llvm.loop !25

821:                                              ; preds = %767
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #7
  %822 = load i32, ptr %61, align 4, !tbaa !5
  store i32 %822, ptr %80, align 4, !tbaa !5
  br label %823

823:                                              ; preds = %877, %821
  %824 = load i32, ptr %80, align 4, !tbaa !5
  %825 = load i32, ptr %6, align 4, !tbaa !5
  %826 = icmp slt i32 %824, %825
  br i1 %826, label %828, label %827

827:                                              ; preds = %823
  store i32 31, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #7
  br label %880

828:                                              ; preds = %823
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #7
  store i32 0, ptr %81, align 4, !tbaa !5
  br label %829

829:                                              ; preds = %869, %828
  %830 = load i32, ptr %81, align 4, !tbaa !5
  %831 = load i32, ptr %61, align 4, !tbaa !5
  %832 = icmp slt i32 %830, %831
  br i1 %832, label %834, label %833

833:                                              ; preds = %829
  store i32 34, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #7
  br label %876

834:                                              ; preds = %829
  %835 = load i32, ptr %80, align 4, !tbaa !5
  %836 = load i32, ptr %61, align 4, !tbaa !5
  %837 = sub nsw i32 %835, %836
  %838 = invoke noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %65, i32 noundef %837)
          to label %839 unwind label %872

839:                                              ; preds = %834
  %840 = load i32, ptr %81, align 4, !tbaa !5
  %841 = load i32, ptr %61, align 4, !tbaa !5
  %842 = add nsw i32 %840, %841
  %843 = sext i32 %842 to i64
  %844 = getelementptr inbounds double, ptr %838, i64 %843
  %845 = load double, ptr %844, align 8, !tbaa !16
  %846 = load i32, ptr %80, align 4, !tbaa !5
  %847 = invoke noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %67, i32 noundef %846)
          to label %848 unwind label %872

848:                                              ; preds = %839
  %849 = load i32, ptr %81, align 4, !tbaa !5
  %850 = sext i32 %849 to i64
  %851 = getelementptr inbounds double, ptr %847, i64 %850
  store double %845, ptr %851, align 8, !tbaa !16
  %852 = load i32, ptr %80, align 4, !tbaa !5
  %853 = load i32, ptr %61, align 4, !tbaa !5
  %854 = sub nsw i32 %852, %853
  %855 = invoke noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %66, i32 noundef %854)
          to label %856 unwind label %872

856:                                              ; preds = %848
  %857 = load i32, ptr %81, align 4, !tbaa !5
  %858 = load i32, ptr %61, align 4, !tbaa !5
  %859 = add nsw i32 %857, %858
  %860 = sext i32 %859 to i64
  %861 = getelementptr inbounds double, ptr %855, i64 %860
  %862 = load double, ptr %861, align 8, !tbaa !16
  %863 = load i32, ptr %80, align 4, !tbaa !5
  %864 = invoke noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %68, i32 noundef %863)
          to label %865 unwind label %872

865:                                              ; preds = %856
  %866 = load i32, ptr %81, align 4, !tbaa !5
  %867 = sext i32 %866 to i64
  %868 = getelementptr inbounds double, ptr %864, i64 %867
  store double %862, ptr %868, align 8, !tbaa !16
  br label %869

869:                                              ; preds = %865
  %870 = load i32, ptr %81, align 4, !tbaa !5
  %871 = add nsw i32 %870, 1
  store i32 %871, ptr %81, align 4, !tbaa !5
  br label %829, !llvm.loop !26

872:                                              ; preds = %856, %848, %839, %834
  %873 = landingpad { ptr, i32 }
          cleanup
  %874 = extractvalue { ptr, i32 } %873, 0
  store ptr %874, ptr %14, align 8
  %875 = extractvalue { ptr, i32 } %873, 1
  store i32 %875, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #7
  br label %1044

876:                                              ; preds = %833
  br label %877

877:                                              ; preds = %876
  %878 = load i32, ptr %80, align 4, !tbaa !5
  %879 = add nsw i32 %878, 1
  store i32 %879, ptr %80, align 4, !tbaa !5
  br label %823, !llvm.loop !27

880:                                              ; preds = %827
  %881 = load i32, ptr %9, align 4, !tbaa !11
  %882 = icmp eq i32 2, %881
  br i1 %882, label %883, label %971

883:                                              ; preds = %880
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #7
  %884 = load i32, ptr %62, align 4, !tbaa !5
  %885 = sub nsw i32 %884, 1
  store i32 %885, ptr %82, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #7
  store i32 0, ptr %83, align 4, !tbaa !5
  br label %886

886:                                              ; preds = %938, %883
  %887 = load i32, ptr %83, align 4, !tbaa !5
  %888 = load i32, ptr %6, align 4, !tbaa !5
  %889 = icmp slt i32 %887, %888
  br i1 %889, label %891, label %890

890:                                              ; preds = %886
  store i32 37, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #7
  br label %945

891:                                              ; preds = %886
  %892 = load i32, ptr %83, align 4, !tbaa !5
  %893 = invoke noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %67, i32 noundef %892)
          to label %894 unwind label %941

894:                                              ; preds = %891
  %895 = getelementptr inbounds double, ptr %893, i64 0
  %896 = load double, ptr %895, align 8, !tbaa !16
  %897 = load i32, ptr %83, align 4, !tbaa !5
  %898 = invoke noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %67, i32 noundef %897)
          to label %899 unwind label %941

899:                                              ; preds = %894
  %900 = load i32, ptr %82, align 4, !tbaa !5
  %901 = sext i32 %900 to i64
  %902 = getelementptr inbounds double, ptr %898, i64 %901
  store double %896, ptr %902, align 8, !tbaa !16
  %903 = invoke noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %67, i32 noundef 0)
          to label %904 unwind label %941

904:                                              ; preds = %899
  %905 = load i32, ptr %83, align 4, !tbaa !5
  %906 = sext i32 %905 to i64
  %907 = getelementptr inbounds double, ptr %903, i64 %906
  %908 = load double, ptr %907, align 8, !tbaa !16
  %909 = load i32, ptr %82, align 4, !tbaa !5
  %910 = invoke noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %67, i32 noundef %909)
          to label %911 unwind label %941

911:                                              ; preds = %904
  %912 = load i32, ptr %83, align 4, !tbaa !5
  %913 = sext i32 %912 to i64
  %914 = getelementptr inbounds double, ptr %910, i64 %913
  store double %908, ptr %914, align 8, !tbaa !16
  %915 = load i32, ptr %83, align 4, !tbaa !5
  %916 = invoke noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %68, i32 noundef %915)
          to label %917 unwind label %941

917:                                              ; preds = %911
  %918 = getelementptr inbounds double, ptr %916, i64 0
  %919 = load double, ptr %918, align 8, !tbaa !16
  %920 = load i32, ptr %83, align 4, !tbaa !5
  %921 = invoke noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %68, i32 noundef %920)
          to label %922 unwind label %941

922:                                              ; preds = %917
  %923 = load i32, ptr %82, align 4, !tbaa !5
  %924 = sext i32 %923 to i64
  %925 = getelementptr inbounds double, ptr %921, i64 %924
  store double %919, ptr %925, align 8, !tbaa !16
  %926 = invoke noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %68, i32 noundef 0)
          to label %927 unwind label %941

927:                                              ; preds = %922
  %928 = load i32, ptr %83, align 4, !tbaa !5
  %929 = sext i32 %928 to i64
  %930 = getelementptr inbounds double, ptr %926, i64 %929
  %931 = load double, ptr %930, align 8, !tbaa !16
  %932 = load i32, ptr %82, align 4, !tbaa !5
  %933 = invoke noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %68, i32 noundef %932)
          to label %934 unwind label %941

934:                                              ; preds = %927
  %935 = load i32, ptr %83, align 4, !tbaa !5
  %936 = sext i32 %935 to i64
  %937 = getelementptr inbounds double, ptr %933, i64 %936
  store double %931, ptr %937, align 8, !tbaa !16
  br label %938

938:                                              ; preds = %934
  %939 = load i32, ptr %83, align 4, !tbaa !5
  %940 = add nsw i32 %939, 1
  store i32 %940, ptr %83, align 4, !tbaa !5
  br label %886, !llvm.loop !28

941:                                              ; preds = %927, %922, %917, %911, %904, %899, %894, %891
  %942 = landingpad { ptr, i32 }
          cleanup
  %943 = extractvalue { ptr, i32 } %942, 0
  store ptr %943, ptr %14, align 8
  %944 = extractvalue { ptr, i32 } %942, 1
  store i32 %944, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #7
  br label %970

945:                                              ; preds = %890
  %946 = invoke noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %67, i32 noundef 0)
          to label %947 unwind label %966

947:                                              ; preds = %945
  %948 = getelementptr inbounds double, ptr %946, i64 0
  %949 = load double, ptr %948, align 8, !tbaa !16
  %950 = load i32, ptr %82, align 4, !tbaa !5
  %951 = invoke noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %67, i32 noundef %950)
          to label %952 unwind label %966

952:                                              ; preds = %947
  %953 = load i32, ptr %82, align 4, !tbaa !5
  %954 = sext i32 %953 to i64
  %955 = getelementptr inbounds double, ptr %951, i64 %954
  store double %949, ptr %955, align 8, !tbaa !16
  %956 = invoke noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %68, i32 noundef 0)
          to label %957 unwind label %966

957:                                              ; preds = %952
  %958 = getelementptr inbounds double, ptr %956, i64 0
  %959 = load double, ptr %958, align 8, !tbaa !16
  %960 = load i32, ptr %82, align 4, !tbaa !5
  %961 = invoke noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %68, i32 noundef %960)
          to label %962 unwind label %966

962:                                              ; preds = %957
  %963 = load i32, ptr %82, align 4, !tbaa !5
  %964 = sext i32 %963 to i64
  %965 = getelementptr inbounds double, ptr %961, i64 %964
  store double %959, ptr %965, align 8, !tbaa !16
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #7
  br label %971

966:                                              ; preds = %957, %952, %947, %945
  %967 = landingpad { ptr, i32 }
          cleanup
  %968 = extractvalue { ptr, i32 } %967, 0
  store ptr %968, ptr %14, align 8
  %969 = extractvalue { ptr, i32 } %967, 1
  store i32 %969, ptr %15, align 4
  br label %970

970:                                              ; preds = %966, %941
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #7
  br label %1044

971:                                              ; preds = %962, %880
  br label %972

972:                                              ; preds = %971, %641
  br label %973

973:                                              ; preds = %972, %637
  %974 = load i32, ptr %8, align 4, !tbaa !11
  %975 = icmp eq i32 0, %974
  br i1 %975, label %979, label %976

976:                                              ; preds = %973
  %977 = load i32, ptr %8, align 4, !tbaa !11
  %978 = icmp eq i32 1, %977
  br i1 %978, label %979, label %1007

979:                                              ; preds = %976, %973
  %980 = invoke noundef zeroext i1 @_ZN4sptk11WriteStreamERKNS_6MatrixEPSo(ptr noundef nonnull align 8 dereferenceable(64) %67, ptr noundef @_ZSt4cout)
          to label %981 unwind label %538

981:                                              ; preds = %979
  br i1 %980, label %1007, label %982

982:                                              ; preds = %981
  call void @llvm.lifetime.start.p0(i64 376, ptr %84) #7
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %84)
          to label %983 unwind label %988

983:                                              ; preds = %982
  %984 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %84, ptr noundef @.str.13)
          to label %985 unwind label %992

985:                                              ; preds = %983
  call void @llvm.lifetime.start.p0(i64 32, ptr %85) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %86) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %86)
          to label %986 unwind label %996

986:                                              ; preds = %985
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef nonnull align 8 dereferenceable(112) %84)
          to label %987 unwind label %1000

987:                                              ; preds = %986
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %86) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #7
  store i32 1, ptr %3, align 4
  store i32 1, ptr %11, align 4
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %84) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr %84) #7
  br label %1043

988:                                              ; preds = %982
  %989 = landingpad { ptr, i32 }
          cleanup
  %990 = extractvalue { ptr, i32 } %989, 0
  store ptr %990, ptr %14, align 8
  %991 = extractvalue { ptr, i32 } %989, 1
  store i32 %991, ptr %15, align 4
  br label %1006

992:                                              ; preds = %983
  %993 = landingpad { ptr, i32 }
          cleanup
  %994 = extractvalue { ptr, i32 } %993, 0
  store ptr %994, ptr %14, align 8
  %995 = extractvalue { ptr, i32 } %993, 1
  store i32 %995, ptr %15, align 4
  br label %1005

996:                                              ; preds = %985
  %997 = landingpad { ptr, i32 }
          cleanup
  %998 = extractvalue { ptr, i32 } %997, 0
  store ptr %998, ptr %14, align 8
  %999 = extractvalue { ptr, i32 } %997, 1
  store i32 %999, ptr %15, align 4
  br label %1004

1000:                                             ; preds = %986
  %1001 = landingpad { ptr, i32 }
          cleanup
  %1002 = extractvalue { ptr, i32 } %1001, 0
  store ptr %1002, ptr %14, align 8
  %1003 = extractvalue { ptr, i32 } %1001, 1
  store i32 %1003, ptr %15, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #7
  br label %1004

1004:                                             ; preds = %1000, %996
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %86) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #7
  br label %1005

1005:                                             ; preds = %1004, %992
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %84) #7
  br label %1006

1006:                                             ; preds = %1005, %988
  call void @llvm.lifetime.end.p0(i64 376, ptr %84) #7
  br label %1044

1007:                                             ; preds = %981, %976
  %1008 = load i32, ptr %8, align 4, !tbaa !11
  %1009 = icmp eq i32 0, %1008
  br i1 %1009, label %1013, label %1010

1010:                                             ; preds = %1007
  %1011 = load i32, ptr %8, align 4, !tbaa !11
  %1012 = icmp eq i32 2, %1011
  br i1 %1012, label %1013, label %1041

1013:                                             ; preds = %1010, %1007
  %1014 = invoke noundef zeroext i1 @_ZN4sptk11WriteStreamERKNS_6MatrixEPSo(ptr noundef nonnull align 8 dereferenceable(64) %68, ptr noundef @_ZSt4cout)
          to label %1015 unwind label %538

1015:                                             ; preds = %1013
  br i1 %1014, label %1041, label %1016

1016:                                             ; preds = %1015
  call void @llvm.lifetime.start.p0(i64 376, ptr %87) #7
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %87)
          to label %1017 unwind label %1022

1017:                                             ; preds = %1016
  %1018 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %87, ptr noundef @.str.14)
          to label %1019 unwind label %1026

1019:                                             ; preds = %1017
  call void @llvm.lifetime.start.p0(i64 32, ptr %88) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %89) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %89) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %88, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %89)
          to label %1020 unwind label %1030

1020:                                             ; preds = %1019
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %88, ptr noundef nonnull align 8 dereferenceable(112) %87)
          to label %1021 unwind label %1034

1021:                                             ; preds = %1020
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %89) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %89) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #7
  store i32 1, ptr %3, align 4
  store i32 1, ptr %11, align 4
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %87) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr %87) #7
  br label %1043

1022:                                             ; preds = %1016
  %1023 = landingpad { ptr, i32 }
          cleanup
  %1024 = extractvalue { ptr, i32 } %1023, 0
  store ptr %1024, ptr %14, align 8
  %1025 = extractvalue { ptr, i32 } %1023, 1
  store i32 %1025, ptr %15, align 4
  br label %1040

1026:                                             ; preds = %1017
  %1027 = landingpad { ptr, i32 }
          cleanup
  %1028 = extractvalue { ptr, i32 } %1027, 0
  store ptr %1028, ptr %14, align 8
  %1029 = extractvalue { ptr, i32 } %1027, 1
  store i32 %1029, ptr %15, align 4
  br label %1039

1030:                                             ; preds = %1019
  %1031 = landingpad { ptr, i32 }
          cleanup
  %1032 = extractvalue { ptr, i32 } %1031, 0
  store ptr %1032, ptr %14, align 8
  %1033 = extractvalue { ptr, i32 } %1031, 1
  store i32 %1033, ptr %15, align 4
  br label %1038

1034:                                             ; preds = %1020
  %1035 = landingpad { ptr, i32 }
          cleanup
  %1036 = extractvalue { ptr, i32 } %1035, 0
  store ptr %1036, ptr %14, align 8
  %1037 = extractvalue { ptr, i32 } %1035, 1
  store i32 %1037, ptr %15, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #7
  br label %1038

1038:                                             ; preds = %1034, %1030
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %89) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %89) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #7
  br label %1039

1039:                                             ; preds = %1038, %1026
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %87) #7
  br label %1040

1040:                                             ; preds = %1039, %1022
  call void @llvm.lifetime.end.p0(i64 376, ptr %87) #7
  br label %1044

1041:                                             ; preds = %1015, %1010
  br label %503, !llvm.loop !29

1042:                                             ; preds = %552, %513
  store i32 0, ptr %3, align 4
  store i32 1, ptr %11, align 4
  br label %1043

1043:                                             ; preds = %1042, %1021, %987, %561
  call void @_ZN4sptk6MatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %68) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %68) #7
  call void @_ZN4sptk6MatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %67) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %67) #7
  call void @_ZN4sptk6MatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %66) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %66) #7
  call void @_ZN4sptk6MatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %65) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %65) #7
  call void @_ZN4sptk6MatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %64) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %64) #7
  call void @_ZN4sptk6MatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %63) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %63) #7
  br label %1051

1044:                                             ; preds = %1040, %1006, %970, %872, %813, %754, %694, %629, %580, %538
  call void @_ZN4sptk6MatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %68) #7
  br label %1045

1045:                                             ; preds = %1044, %534
  call void @llvm.lifetime.end.p0(i64 64, ptr %68) #7
  call void @_ZN4sptk6MatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %67) #7
  br label %1046

1046:                                             ; preds = %1045, %530
  call void @llvm.lifetime.end.p0(i64 64, ptr %67) #7
  call void @_ZN4sptk6MatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %66) #7
  br label %1047

1047:                                             ; preds = %1046, %526
  call void @llvm.lifetime.end.p0(i64 64, ptr %66) #7
  call void @_ZN4sptk6MatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %65) #7
  br label %1048

1048:                                             ; preds = %1047, %522
  call void @llvm.lifetime.end.p0(i64 64, ptr %65) #7
  call void @_ZN4sptk6MatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %64) #7
  br label %1049

1049:                                             ; preds = %1048, %518
  call void @llvm.lifetime.end.p0(i64 64, ptr %64) #7
  call void @_ZN4sptk6MatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %63) #7
  br label %1050

1050:                                             ; preds = %1049, %514
  call void @llvm.lifetime.end.p0(i64 64, ptr %63) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #7
  br label %1053

1051:                                             ; preds = %1043, %481
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #7
  br label %1052

1052:                                             ; preds = %1051, %423
  call void @_ZN4sptk41TwoDimensionalInverseFastFourierTransform6BufferD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %57) #7
  call void @llvm.lifetime.end.p0(i64 152, ptr %57) #7
  call void @_ZN4sptk41TwoDimensionalInverseFastFourierTransformD2Ev(ptr noundef nonnull align 8 dereferenceable(81) %56) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr %56) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #7
  br label %1057

1053:                                             ; preds = %1050, %458, %436
  call void @_ZN4sptk41TwoDimensionalInverseFastFourierTransform6BufferD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %57) #7
  br label %1054

1054:                                             ; preds = %1053, %432
  call void @llvm.lifetime.end.p0(i64 152, ptr %57) #7
  call void @_ZN4sptk41TwoDimensionalInverseFastFourierTransformD2Ev(ptr noundef nonnull align 8 dereferenceable(81) %56) #7
  br label %1055

1055:                                             ; preds = %1054, %428
  call void @llvm.lifetime.end.p0(i64 88, ptr %56) #7
  br label %1056

1056:                                             ; preds = %1055, %424
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #7
  br label %1058

1057:                                             ; preds = %1052, %379
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %51) #7
  call void @llvm.lifetime.end.p0(i64 520, ptr %51) #7
  br label %1059

1058:                                             ; preds = %1056, %402, %380
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %51) #7
  call void @llvm.lifetime.end.p0(i64 520, ptr %51) #7
  br label %1060

1059:                                             ; preds = %1057, %342
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #7
  br label %1061

1060:                                             ; preds = %1058, %356
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #7
  br label %1062

1061:                                             ; preds = %1059, %310
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #7
  br label %1063

1062:                                             ; preds = %1060, %324
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #7
  br label %1065

1063:                                             ; preds = %1061, %296
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #7
  %1064 = load i32, ptr %3, align 4
  ret i32 %1064

1065:                                             ; preds = %1062, %299
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #7
  br label %1066

1066:                                             ; preds = %1065
  %1067 = load ptr, ptr %14, align 8
  %1068 = load i32, ptr %15, align 4
  %1069 = insertvalue { ptr, i32 } poison, ptr %1067, 0
  %1070 = insertvalue { ptr, i32 } %1069, i32 %1068, 1
  resume { ptr, i32 } %1070
}

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

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

declare noundef zeroext i1 @_ZN4sptk22ConvertStringToIntegerERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPi(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #2

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

declare void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(112)) #2

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

declare noundef zeroext i1 @_ZN4sptk9IsInRangeEiii(i32 noundef, i32 noundef, i32 noundef) #2

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_110PrintUsageEPSo(ptr noundef) #4

declare noundef zeroext i1 @_ZN4sptk13SetBinaryModeEv() #2

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

; Function Attrs: mustprogress uwtable
declare void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256), ptr noundef, i32 noundef) #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZStorSt13_Ios_OpenmodeS_(i32 noundef, i32 noundef) #6

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

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

declare void @_ZN4sptk41TwoDimensionalInverseFastFourierTransformC1Eiii(ptr noundef nonnull align 8 dereferenceable(81), i32 noundef, i32 noundef, i32 noundef) unnamed_addr #2

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

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

declare void @_ZN4sptk6MatrixC1Eii(ptr noundef nonnull align 8 dereferenceable(64), i32 noundef, i32 noundef) unnamed_addr #2

declare noundef zeroext i1 @_ZN4sptk10ReadStreamEPNS_6MatrixEPSi(ptr noundef, ptr noundef) #2

declare noundef zeroext i1 @_ZNK4sptk41TwoDimensionalInverseFastFourierTransform3RunERKNS_6MatrixES3_PS1_S4_PNS0_6BufferE(ptr noundef nonnull align 8 dereferenceable(81), ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(64), ptr noundef, ptr noundef, ptr noundef) #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64), i32 noundef) #3 align 2

declare noundef zeroext i1 @_ZN4sptk11WriteStreamERKNS_6MatrixEPSo(ptr noundef nonnull align 8 dereferenceable(64), ptr noundef) #2

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!7, !7, i64 0}
!12 = distinct !{!12, !13}
!13 = !{!"llvm.loop.mustprogress"}
!14 = !{!15, !15, i64 0}
!15 = !{!"vtable pointer", !8, i64 0}
!16 = !{!17, !17, i64 0}
!17 = !{!"double", !7, i64 0}
!18 = distinct !{!18, !13}
!19 = distinct !{!19, !13}
!20 = distinct !{!20, !13}
!21 = distinct !{!21, !13}
!22 = distinct !{!22, !13}
!23 = distinct !{!23, !13}
!24 = distinct !{!24, !13}
!25 = distinct !{!25, !13}
!26 = distinct !{!26, !13}
!27 = distinct !{!27, !13}
!28 = distinct !{!28, !13}
!29 = distinct !{!29, !13}


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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::basic_istream" = type { ptr, i64, %"class.std::basic_ios" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator" = type { i8 }
%"class.std::__cxx11::basic_ostringstream" = type { %"class.std::basic_ostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::basic_ifstream" = type { %"class.std::basic_istream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon.0 }
%union.anon.0 = type { i32 }
%"class.sptk::TwoDimensionalInverseFastFourierTransform" = type <{ ptr, i32, i32, i32, [4 x i8], %"class.sptk::InverseFastFourierTransform", i8, [7 x i8] }>
%"class.sptk::InverseFastFourierTransform" = type { ptr, %"class.sptk::FastFourierTransform" }
%"class.sptk::FastFourierTransform" = type { ptr, i32, i32, i32, i8, %"class.std::vector" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.sptk::TwoDimensionalInverseFastFourierTransform::Buffer" = type { ptr, %"class.std::vector", %"class.std::vector", %"class.std::vector.4", %"class.std::vector.4", %"class.std::vector.4", %"class.std::vector.4" }
%"class.std::vector.4" = type { %"struct.std::_Vector_base.5" }
%"struct.std::_Vector_base.5" = type { %"struct.std::_Vector_base<std::vector<double>, std::allocator<std::vector<double>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<double>, std::allocator<std::vector<double>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<double>, std::allocator<std::vector<double>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<double>, std::allocator<std::vector<double>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.sptk::Matrix" = type { ptr, i32, i32, %"class.std::vector", %"class.std::vector.9" }
%"class.std::vector.9" = type { %"struct.std::_Vector_base.10" }
%"struct.std::_Vector_base.10" = type { %"struct.std::_Vector_base<double *, std::allocator<double *>>::_Vector_impl" }
%"struct.std::_Vector_base<double *, std::allocator<double *>>::_Vector_impl" = type { %"struct.std::_Vector_base<double *, std::allocator<double *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double *, std::allocator<double *>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@.str = external hidden unnamed_addr constant [10 x i8], align 1
@ya_optarg = external local_unnamed_addr global ptr, align 8
@.str.1 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [51 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@_ZSt4cerr = external global %"class.std::basic_ostream", align 8
@ya_optind = external local_unnamed_addr global i32, align 4
@.str.8 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [18 x i8], align 1
@_ZSt3cin = external global %"class.std::basic_istream", align 8
@.str.11 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [32 x i8], align 1

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef range(i32 0, 2) i32 @main(i32 noundef %0, ptr noundef %1) local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %3 = alloca i32, align 4
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.std::allocator", align 1
  %6 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::allocator", align 1
  %9 = alloca i32, align 4
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::allocator", align 1
  %12 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::allocator", align 1
  %15 = alloca i32, align 4
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::allocator", align 1
  %18 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::allocator", align 1
  %21 = alloca i32, align 4
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator", align 1
  %24 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator", align 1
  %27 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::allocator", align 1
  %30 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::allocator", align 1
  %33 = alloca %"class.std::basic_ifstream", align 8
  %34 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::allocator", align 1
  %37 = alloca %"class.sptk::TwoDimensionalInverseFastFourierTransform", align 8
  %38 = alloca %"class.sptk::TwoDimensionalInverseFastFourierTransform::Buffer", align 8
  %39 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::allocator", align 1
  %42 = alloca %"class.sptk::Matrix", align 8
  %43 = alloca %"class.sptk::Matrix", align 8
  %44 = alloca %"class.sptk::Matrix", align 8
  %45 = alloca %"class.sptk::Matrix", align 8
  %46 = alloca %"class.sptk::Matrix", align 8
  %47 = alloca %"class.sptk::Matrix", align 8
  %48 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::allocator", align 1
  %51 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::allocator", align 1
  %54 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::allocator", align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #7
  store i32 64, ptr %3, align 4, !tbaa !5
  br label %.outer

.outer:                                           ; preds = %.thread330, %2
  %.0185.ph = phi i32 [ %187, %.thread330 ], [ 0, %2 ]
  %.0181.ph = phi i32 [ %.0181.ph631, %.thread330 ], [ 0, %2 ]
  %.0177.ph = phi i32 [ %.0177.ph634, %.thread330 ], [ 0, %2 ]
  br label %.outer630

.outer630:                                        ; preds = %.outer, %.thread325
  %.0181.ph631 = phi i32 [ %.0181.ph, %.outer ], [ %151, %.thread325 ]
  %.0177.ph632 = phi i32 [ %.0177.ph, %.outer ], [ %.0177.ph634, %.thread325 ]
  br label %.outer633

.outer633:                                        ; preds = %.outer630, %.thread
  %.0177.ph634 = phi i32 [ %.0177.ph632, %.outer630 ], [ %115, %.thread ]
  br label %57

57:                                               ; preds = %.outer633, %63
  %58 = call i32 @ya_getopt_long(i32 noundef %0, ptr noundef %1, ptr noundef nonnull @.str, ptr noundef null, ptr noundef null)
  switch i32 %58, label %191 [
    i32 -1, label %192
    i32 108, label %59
    i32 113, label %82
    i32 111, label %118
    i32 112, label %154
    i32 104, label %190
  ]

59:                                               ; preds = %57
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #7
  %60 = load ptr, ptr @ya_optarg, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef %60, ptr noundef nonnull align 1 dereferenceable(1) %5)
          to label %61 unwind label %69

61:                                               ; preds = %59
  %62 = invoke noundef zeroext i1 @_ZN4sptk22ConvertStringToIntegerERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPi(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull %3)
          to label %63 unwind label %71

63:                                               ; preds = %61
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #7
  br i1 %62, label %57, label %64

64:                                               ; preds = %63
  call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %6) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %6)
  %65 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull @.str.1)
          to label %66 unwind label %74

66:                                               ; preds = %64
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %67 unwind label %76

67:                                               ; preds = %66
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(112) %6)
          to label %68 unwind label %78

68:                                               ; preds = %67
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %6) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %6) #7
  br label %.thread335

69:                                               ; preds = %59
  %70 = landingpad { ptr, i32 }
          cleanup
  br label %73

71:                                               ; preds = %61
  %72 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #7
  br label %73

73:                                               ; preds = %71, %69
  %.pn276 = phi { ptr, i32 } [ %72, %71 ], [ %70, %69 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #7
  br label %533

74:                                               ; preds = %64
  %75 = landingpad { ptr, i32 }
          cleanup
  br label %81

76:                                               ; preds = %66
  %77 = landingpad { ptr, i32 }
          cleanup
  br label %80

78:                                               ; preds = %67
  %79 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #7
  br label %80

80:                                               ; preds = %78, %76
  %.pn278 = phi { ptr, i32 } [ %79, %78 ], [ %77, %76 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #7
  br label %81

81:                                               ; preds = %80, %74
  %.pn278.pn = phi { ptr, i32 } [ %.pn278, %80 ], [ %75, %74 ]
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %6) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %6) #7
  br label %533

82:                                               ; preds = %57
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #7
  %83 = load ptr, ptr @ya_optarg, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef %83, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %84 unwind label %102

84:                                               ; preds = %82
  %85 = invoke noundef zeroext i1 @_ZN4sptk22ConvertStringToIntegerERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPi(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull %9)
          to label %86 unwind label %104

86:                                               ; preds = %84
  br i1 %85, label %87, label %.critedge

87:                                               ; preds = %86
  %88 = load i32, ptr %9, align 4, !tbaa !5
  %89 = invoke noundef zeroext i1 @_ZN4sptk9IsInRangeEiii(i32 noundef %88, i32 noundef 0, i32 noundef 2)
          to label %90 unwind label %104

90:                                               ; preds = %87
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #7
  br i1 %89, label %.thread, label %.loopexit362

.critedge:                                        ; preds = %86
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #7
  br label %.loopexit362

.loopexit362:                                     ; preds = %90, %.critedge
  call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %12) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %12)
  %91 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull @.str.3)
          to label %92 unwind label %107

92:                                               ; preds = %.loopexit362
  %93 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %91, ptr noundef nonnull @.str.4)
          to label %94 unwind label %107

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

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

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

100:                                              ; preds = %98
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %14) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %101 unwind label %109

101:                                              ; preds = %100
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(112) %12)
          to label %116 unwind label %111

102:                                              ; preds = %82
  %103 = landingpad { ptr, i32 }
          cleanup
  br label %106

104:                                              ; preds = %87, %84
  %105 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #7
  br label %106

106:                                              ; preds = %104, %102
  %.pn270 = phi { ptr, i32 } [ %105, %104 ], [ %103, %102 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #7
  br label %117

107:                                              ; preds = %98, %96, %94, %92, %.loopexit362
  %108 = landingpad { ptr, i32 }
          cleanup
  br label %114

109:                                              ; preds = %100
  %110 = landingpad { ptr, i32 }
          cleanup
  br label %113

111:                                              ; preds = %101
  %112 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  br label %113

113:                                              ; preds = %111, %109
  %.pn272 = phi { ptr, i32 } [ %112, %111 ], [ %110, %109 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #7
  br label %114

114:                                              ; preds = %113, %107
  %.pn272.pn = phi { ptr, i32 } [ %.pn272, %113 ], [ %108, %107 ]
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %12) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %12) #7
  br label %117

.thread:                                          ; preds = %90
  %115 = load i32, ptr %9, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #7
  br label %.outer633

116:                                              ; preds = %101
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %12) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %12) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #7
  br label %.thread335

117:                                              ; preds = %114, %106
  %.pn272.pn.pn = phi { ptr, i32 } [ %.pn272.pn, %114 ], [ %.pn270, %106 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #7
  br label %533

118:                                              ; preds = %57
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #7
  %119 = load ptr, ptr @ya_optarg, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef %119, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %120 unwind label %138

120:                                              ; preds = %118
  %121 = invoke noundef zeroext i1 @_ZN4sptk22ConvertStringToIntegerERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPi(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull %15)
          to label %122 unwind label %140

122:                                              ; preds = %120
  br i1 %121, label %123, label %.critedge4

123:                                              ; preds = %122
  %124 = load i32, ptr %15, align 4, !tbaa !5
  %125 = invoke noundef zeroext i1 @_ZN4sptk9IsInRangeEiii(i32 noundef %124, i32 noundef 0, i32 noundef 2)
          to label %126 unwind label %140

126:                                              ; preds = %123
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  br i1 %125, label %.thread325, label %.loopexit361

.critedge4:                                       ; preds = %122
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  br label %.loopexit361

.loopexit361:                                     ; preds = %126, %.critedge4
  call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %18) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %18)
  %127 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull @.str.6)
          to label %128 unwind label %143

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

130:                                              ; preds = %128
  %131 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %129, i32 noundef 0)
          to label %132 unwind label %143

132:                                              ; preds = %130
  %133 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %131, ptr noundef nonnull @.str.5)
          to label %134 unwind label %143

134:                                              ; preds = %132
  %135 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %133, i32 noundef 2)
          to label %136 unwind label %143

136:                                              ; preds = %134
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %137 unwind label %145

137:                                              ; preds = %136
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(112) %18)
          to label %152 unwind label %147

138:                                              ; preds = %118
  %139 = landingpad { ptr, i32 }
          cleanup
  br label %142

140:                                              ; preds = %123, %120
  %141 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  br label %142

142:                                              ; preds = %140, %138
  %.pn264 = phi { ptr, i32 } [ %141, %140 ], [ %139, %138 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  br label %153

143:                                              ; preds = %134, %132, %130, %128, %.loopexit361
  %144 = landingpad { ptr, i32 }
          cleanup
  br label %150

145:                                              ; preds = %136
  %146 = landingpad { ptr, i32 }
          cleanup
  br label %149

147:                                              ; preds = %137
  %148 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  br label %149

149:                                              ; preds = %147, %145
  %.pn266 = phi { ptr, i32 } [ %148, %147 ], [ %146, %145 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  br label %150

150:                                              ; preds = %149, %143
  %.pn266.pn = phi { ptr, i32 } [ %.pn266, %149 ], [ %144, %143 ]
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %18) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %18) #7
  br label %153

.thread325:                                       ; preds = %126
  %151 = load i32, ptr %15, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #7
  br label %.outer630

152:                                              ; preds = %137
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %18) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %18) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #7
  br label %.thread335

153:                                              ; preds = %150, %142
  %.pn266.pn.pn = phi { ptr, i32 } [ %.pn266.pn, %150 ], [ %.pn264, %142 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #7
  br label %533

154:                                              ; preds = %57
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #7
  %155 = load ptr, ptr @ya_optarg, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %23) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef %155, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %156 unwind label %174

156:                                              ; preds = %154
  %157 = invoke noundef zeroext i1 @_ZN4sptk22ConvertStringToIntegerERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPi(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull %21)
          to label %158 unwind label %176

158:                                              ; preds = %156
  br i1 %157, label %159, label %.critedge6

159:                                              ; preds = %158
  %160 = load i32, ptr %21, align 4, !tbaa !5
  %161 = invoke noundef zeroext i1 @_ZN4sptk9IsInRangeEiii(i32 noundef %160, i32 noundef 0, i32 noundef 3)
          to label %162 unwind label %176

162:                                              ; preds = %159
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #7
  br i1 %161, label %.thread330, label %.loopexit360

.critedge6:                                       ; preds = %158
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #7
  br label %.loopexit360

.loopexit360:                                     ; preds = %162, %.critedge6
  call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %24) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %24)
  %163 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull @.str.7)
          to label %164 unwind label %179

164:                                              ; preds = %.loopexit360
  %165 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %163, ptr noundef nonnull @.str.4)
          to label %166 unwind label %179

166:                                              ; preds = %164
  %167 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %165, i32 noundef 0)
          to label %168 unwind label %179

168:                                              ; preds = %166
  %169 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %167, ptr noundef nonnull @.str.5)
          to label %170 unwind label %179

170:                                              ; preds = %168
  %171 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %169, i32 noundef 3)
          to label %172 unwind label %179

172:                                              ; preds = %170
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %26) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %173 unwind label %181

173:                                              ; preds = %172
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(112) %24)
          to label %188 unwind label %183

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

176:                                              ; preds = %159, %156
  %177 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  br label %178

178:                                              ; preds = %176, %174
  %.pn = phi { ptr, i32 } [ %177, %176 ], [ %175, %174 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #7
  br label %189

179:                                              ; preds = %170, %168, %166, %164, %.loopexit360
  %180 = landingpad { ptr, i32 }
          cleanup
  br label %186

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

183:                                              ; preds = %173
  %184 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  br label %185

185:                                              ; preds = %183, %181
  %.pn260 = phi { ptr, i32 } [ %184, %183 ], [ %182, %181 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #7
  br label %186

186:                                              ; preds = %185, %179
  %.pn260.pn = phi { ptr, i32 } [ %.pn260, %185 ], [ %180, %179 ]
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %24) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %24) #7
  br label %189

.thread330:                                       ; preds = %162
  %187 = load i32, ptr %21, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #7
  br label %.outer

188:                                              ; preds = %173
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %24) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %24) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #7
  br label %.thread335

189:                                              ; preds = %186, %178
  %.pn260.pn.pn = phi { ptr, i32 } [ %.pn260.pn, %186 ], [ %.pn, %178 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #7
  br label %533

190:                                              ; preds = %57
  call void @_ZN12_GLOBAL__N_110PrintUsageEPSo(ptr noundef nonnull @_ZSt4cout)
  br label %.thread335

191:                                              ; preds = %57
  call void @_ZN12_GLOBAL__N_110PrintUsageEPSo(ptr noundef nonnull @_ZSt4cerr)
  br label %.thread335

192:                                              ; preds = %57
  %193 = load i32, ptr @ya_optind, align 4, !tbaa !5
  %194 = sub nsw i32 %0, %193
  %195 = icmp sgt i32 %194, 1
  br i1 %195, label %196, label %209

196:                                              ; preds = %192
  call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %27) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %27)
  %197 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull @.str.8)
          to label %198 unwind label %201

198:                                              ; preds = %196
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %29) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %199 unwind label %203

199:                                              ; preds = %198
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull align 8 dereferenceable(112) %27)
          to label %200 unwind label %205

200:                                              ; preds = %199
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %29) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %27) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %27) #7
  br label %.thread335

201:                                              ; preds = %196
  %202 = landingpad { ptr, i32 }
          cleanup
  br label %208

203:                                              ; preds = %198
  %204 = landingpad { ptr, i32 }
          cleanup
  br label %207

205:                                              ; preds = %199
  %206 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  br label %207

207:                                              ; preds = %205, %203
  %.pn316 = phi { ptr, i32 } [ %206, %205 ], [ %204, %203 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %29) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #7
  br label %208

208:                                              ; preds = %207, %201
  %.pn316.pn = phi { ptr, i32 } [ %.pn316, %207 ], [ %202, %201 ]
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %27) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %27) #7
  br label %533

209:                                              ; preds = %192
  %210 = icmp eq i32 %193, %0
  br i1 %210, label %215, label %211

211:                                              ; preds = %209
  %212 = sext i32 %193 to i64
  %213 = getelementptr inbounds ptr, ptr %1, i64 %212
  %214 = load ptr, ptr %213, align 8, !tbaa !9
  br label %215

215:                                              ; preds = %209, %211
  %216 = phi ptr [ %214, %211 ], [ null, %209 ]
  %217 = call noundef zeroext i1 @_ZN4sptk13SetBinaryModeEv()
  br i1 %217, label %231, label %218

218:                                              ; preds = %215
  call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %30) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %30)
  %219 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef nonnull @.str.9)
          to label %220 unwind label %223

220:                                              ; preds = %218
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %32) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %221 unwind label %225

221:                                              ; preds = %220
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull align 8 dereferenceable(112) %30)
          to label %222 unwind label %227

222:                                              ; preds = %221
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %30) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %30) #7
  br label %.thread335

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

225:                                              ; preds = %220
  %226 = landingpad { ptr, i32 }
          cleanup
  br label %229

227:                                              ; preds = %221
  %228 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  br label %229

229:                                              ; preds = %227, %225
  %.pn282 = phi { ptr, i32 } [ %228, %227 ], [ %226, %225 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #7
  br label %230

230:                                              ; preds = %229, %223
  %.pn282.pn = phi { ptr, i32 } [ %.pn282, %229 ], [ %224, %223 ]
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %30) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %30) #7
  br label %533

231:                                              ; preds = %215
  call void @llvm.lifetime.start.p0(i64 520, ptr nonnull %33) #7
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(256) %33)
  %.not = icmp eq ptr %216, null
  br i1 %.not, label %262, label %232

232:                                              ; preds = %231
  %233 = call noundef i32 @_ZStorSt13_Ios_OpenmodeS_(i32 noundef 8, i32 noundef 4)
  invoke void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256) %33, ptr noundef nonnull %216, i32 noundef %233)
          to label %234 unwind label %249

234:                                              ; preds = %232
  %235 = load ptr, ptr %33, align 8, !tbaa !11
  %236 = getelementptr i8, ptr %235, i64 -24
  %237 = load i64, ptr %236, align 8
  %238 = getelementptr inbounds i8, ptr %33, i64 %237
  %239 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE4failEv(ptr noundef nonnull align 8 dereferenceable(264) %238)
          to label %240 unwind label %249

240:                                              ; preds = %234
  br i1 %239, label %241, label %262

241:                                              ; preds = %240
  call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %34) #7
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %34)
          to label %242 unwind label %251

242:                                              ; preds = %241
  %243 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef nonnull @.str.10)
          to label %244 unwind label %253

244:                                              ; preds = %242
  %245 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %243, ptr noundef nonnull %216)
          to label %246 unwind label %253

246:                                              ; preds = %244
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %36) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %247 unwind label %255

247:                                              ; preds = %246
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull align 8 dereferenceable(112) %34)
          to label %248 unwind label %257

248:                                              ; preds = %247
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %34) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %34) #7
  br label %531

249:                                              ; preds = %234, %232
  %250 = landingpad { ptr, i32 }
          cleanup
  br label %532

251:                                              ; preds = %241
  %252 = landingpad { ptr, i32 }
          cleanup
  br label %261

253:                                              ; preds = %244, %242
  %254 = landingpad { ptr, i32 }
          cleanup
  br label %260

255:                                              ; preds = %246
  %256 = landingpad { ptr, i32 }
          cleanup
  br label %259

257:                                              ; preds = %247
  %258 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  br label %259

259:                                              ; preds = %257, %255
  %.pn310 = phi { ptr, i32 } [ %258, %257 ], [ %256, %255 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #7
  br label %260

260:                                              ; preds = %259, %253
  %.pn310.pn = phi { ptr, i32 } [ %.pn310, %259 ], [ %254, %253 ]
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %34) #7
  br label %261

261:                                              ; preds = %260, %251
  %.pn310.pn.pn = phi { ptr, i32 } [ %.pn310.pn, %260 ], [ %252, %251 ]
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %34) #7
  br label %532

262:                                              ; preds = %240, %231
  %263 = call noundef zeroext i1 @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(256) %33)
  %264 = select i1 %263, ptr %33, ptr @_ZSt3cin
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %37) #7
  %265 = load i32, ptr %3, align 4, !tbaa !5
  invoke void @_ZN4sptk41TwoDimensionalInverseFastFourierTransformC1Eiii(ptr noundef nonnull align 8 dereferenceable(81) %37, i32 noundef %265, i32 noundef %265, i32 noundef %265)
          to label %266 unwind label %274

266:                                              ; preds = %262
  call void @llvm.lifetime.start.p0(i64 152, ptr nonnull %38) #7
  call void @_ZN4sptk41TwoDimensionalInverseFastFourierTransform6BufferC2Ev(ptr noundef nonnull align 8 dereferenceable(152) %38)
  %267 = call noundef zeroext i1 @_ZNK4sptk41TwoDimensionalInverseFastFourierTransform7IsValidEv(ptr noundef nonnull align 8 dereferenceable(81) %37)
  br i1 %267, label %287, label %268

268:                                              ; preds = %266
  call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %39) #7
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %39)
          to label %269 unwind label %276

269:                                              ; preds = %268
  %270 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull @.str.11)
          to label %271 unwind label %278

271:                                              ; preds = %269
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %40) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %41) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %41)
          to label %272 unwind label %280

272:                                              ; preds = %271
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull align 8 dereferenceable(112) %39)
          to label %273 unwind label %282

273:                                              ; preds = %272
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %41) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %39) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %39) #7
  br label %528

274:                                              ; preds = %262
  %275 = landingpad { ptr, i32 }
          cleanup
  br label %530

276:                                              ; preds = %268
  %277 = landingpad { ptr, i32 }
          cleanup
  br label %286

278:                                              ; preds = %269
  %279 = landingpad { ptr, i32 }
          cleanup
  br label %285

280:                                              ; preds = %271
  %281 = landingpad { ptr, i32 }
          cleanup
  br label %284

282:                                              ; preds = %272
  %283 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #7
  br label %284

284:                                              ; preds = %282, %280
  %.pn285 = phi { ptr, i32 } [ %283, %282 ], [ %281, %280 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %41) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #7
  br label %285

285:                                              ; preds = %284, %278
  %.pn285.pn = phi { ptr, i32 } [ %.pn285, %284 ], [ %279, %278 ]
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %39) #7
  br label %286

286:                                              ; preds = %285, %276
  %.pn285.pn.pn = phi { ptr, i32 } [ %.pn285.pn, %285 ], [ %277, %276 ]
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %39) #7
  br label %529

287:                                              ; preds = %266
  %288 = load i32, ptr %3, align 4, !tbaa !5
  %289 = sdiv i32 %288, 2
  %or.cond = icmp ult i32 %.0185.ph, 2
  br i1 %or.cond, label %295, label %290

290:                                              ; preds = %287
  switch i32 %.0185.ph, label %528 [
    i32 2, label %291
    i32 3, label %293
  ]

291:                                              ; preds = %290
  %292 = add nsw i32 %288, 1
  br label %295

293:                                              ; preds = %290
  %294 = add nsw i32 %289, 1
  br label %295

295:                                              ; preds = %287, %291, %293
  %.0176 = phi i32 [ %292, %291 ], [ %294, %293 ], [ %288, %287 ]
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %42) #7
  invoke void @_ZN4sptk6MatrixC1Eii(ptr noundef nonnull align 8 dereferenceable(64) %42, i32 noundef %288, i32 noundef %288)
          to label %296 unwind label %318

296:                                              ; preds = %295
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %43) #7
  %297 = load i32, ptr %3, align 4, !tbaa !5
  invoke void @_ZN4sptk6MatrixC1Eii(ptr noundef nonnull align 8 dereferenceable(64) %43, i32 noundef %297, i32 noundef %297)
          to label %298 unwind label %320

298:                                              ; preds = %296
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %44) #7
  %299 = load i32, ptr %3, align 4, !tbaa !5
  invoke void @_ZN4sptk6MatrixC1Eii(ptr noundef nonnull align 8 dereferenceable(64) %44, i32 noundef %299, i32 noundef %299)
          to label %300 unwind label %322

300:                                              ; preds = %298
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %45) #7
  %301 = load i32, ptr %3, align 4, !tbaa !5
  invoke void @_ZN4sptk6MatrixC1Eii(ptr noundef nonnull align 8 dereferenceable(64) %45, i32 noundef %301, i32 noundef %301)
          to label %302 unwind label %324

302:                                              ; preds = %300
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %46) #7
  invoke void @_ZN4sptk6MatrixC1Eii(ptr noundef nonnull align 8 dereferenceable(64) %46, i32 noundef %.0176, i32 noundef %.0176)
          to label %303 unwind label %326

303:                                              ; preds = %302
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %47) #7
  invoke void @_ZN4sptk6MatrixC1Eii(ptr noundef nonnull align 8 dereferenceable(64) %47, i32 noundef %.0176, i32 noundef %.0176)
          to label %.preheader358 unwind label %328

.preheader358:                                    ; preds = %303
  %or.cond9 = icmp ult i32 %.0177.ph634, 2
  %304 = and i32 %.0177.ph634, -3
  %or.cond11 = icmp eq i32 %304, 0
  %305 = icmp sgt i32 %.0176, 0
  %306 = icmp eq i32 %.0185.ph, 2
  %307 = add nsw i32 %.0185.ph, -1
  %or.cond15 = icmp ult i32 %307, 2
  %308 = icmp sgt i32 %288, 1
  %309 = add nsw i32 %.0176, -1
  %310 = sext i32 %309 to i64
  %or.cond17 = icmp ult i32 %.0181.ph631, 2
  %311 = and i32 %.0181.ph631, -3
  %or.cond19 = icmp eq i32 %311, 0
  %312 = zext i32 %289 to i64
  %313 = sext i32 %289 to i64
  %wide.trip.count = zext nneg i32 %.0176 to i64
  br label %314

314:                                              ; preds = %.backedge, %.preheader358
  br i1 %or.cond9, label %315, label %332

315:                                              ; preds = %314
  %316 = invoke noundef zeroext i1 @_ZN4sptk10ReadStreamEPNS_6MatrixEPSi(ptr noundef nonnull %42, ptr noundef nonnull %264)
          to label %317 unwind label %330

317:                                              ; preds = %315
  br i1 %316, label %332, label %.loopexit359

318:                                              ; preds = %295
  %319 = landingpad { ptr, i32 }
          cleanup
  br label %527

320:                                              ; preds = %296
  %321 = landingpad { ptr, i32 }
          cleanup
  br label %526

322:                                              ; preds = %298
  %323 = landingpad { ptr, i32 }
          cleanup
  br label %525

324:                                              ; preds = %300
  %325 = landingpad { ptr, i32 }
          cleanup
  br label %524

326:                                              ; preds = %302
  %327 = landingpad { ptr, i32 }
          cleanup
  br label %523

328:                                              ; preds = %303
  %329 = landingpad { ptr, i32 }
          cleanup
  br label %522

330:                                              ; preds = %501, %480, %336, %333, %315
  %331 = landingpad { ptr, i32 }
          cleanup
  br label %521

332:                                              ; preds = %314, %317
  br i1 %or.cond11, label %333, label %336

333:                                              ; preds = %332
  %334 = invoke noundef zeroext i1 @_ZN4sptk10ReadStreamEPNS_6MatrixEPSi(ptr noundef nonnull %43, ptr noundef nonnull %264)
          to label %335 unwind label %330

335:                                              ; preds = %333
  br i1 %334, label %336, label %.loopexit359

336:                                              ; preds = %332, %335
  %337 = invoke noundef zeroext i1 @_ZNK4sptk41TwoDimensionalInverseFastFourierTransform3RunERKNS_6MatrixES3_PS1_S4_PNS0_6BufferE(ptr noundef nonnull align 8 dereferenceable(81) %37, ptr noundef nonnull align 8 dereferenceable(64) %42, ptr noundef nonnull align 8 dereferenceable(64) %43, ptr noundef nonnull %44, ptr noundef nonnull %45, ptr noundef nonnull %38)
          to label %338 unwind label %330

338:                                              ; preds = %336
  br i1 %337, label %356, label %339

339:                                              ; preds = %338
  call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %48) #7
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %48)
          to label %340 unwind label %345

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

342:                                              ; preds = %340
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %49) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %50) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %50)
          to label %343 unwind label %349

343:                                              ; preds = %342
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull align 8 dereferenceable(112) %48)
          to label %344 unwind label %351

344:                                              ; preds = %343
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %48) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %48) #7
  br label %.loopexit359

345:                                              ; preds = %339
  %346 = landingpad { ptr, i32 }
          cleanup
  br label %355

347:                                              ; preds = %340
  %348 = landingpad { ptr, i32 }
          cleanup
  br label %354

349:                                              ; preds = %342
  %350 = landingpad { ptr, i32 }
          cleanup
  br label %353

351:                                              ; preds = %343
  %352 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #7
  br label %353

353:                                              ; preds = %351, %349
  %.pn289 = phi { ptr, i32 } [ %352, %351 ], [ %350, %349 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #7
  br label %354

354:                                              ; preds = %353, %347
  %.pn289.pn = phi { ptr, i32 } [ %.pn289, %353 ], [ %348, %347 ]
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %48) #7
  br label %355

355:                                              ; preds = %354, %345
  %.pn289.pn.pn = phi { ptr, i32 } [ %.pn289.pn, %354 ], [ %346, %345 ]
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %48) #7
  br label %521

356:                                              ; preds = %338
  switch i32 %.0185.ph, label %370 [
    i32 3, label %357
    i32 0, label %357
  ]

357:                                              ; preds = %356, %356
  br i1 %305, label %.preheader353.us, label %.loopexit

.preheader353.us:                                 ; preds = %357, %._crit_edge.us
  %.0175415.us = phi i32 [ %369, %._crit_edge.us ], [ 0, %357 ]
  br label %358

358:                                              ; preds = %.preheader353.us, %358
  %indvars.iv = phi i64 [ 0, %.preheader353.us ], [ %indvars.iv.next, %358 ]
  %359 = call noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %44, i32 noundef %.0175415.us)
  %360 = getelementptr inbounds double, ptr %359, i64 %indvars.iv
  %361 = load double, ptr %360, align 8, !tbaa !13
  %362 = call noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %46, i32 noundef %.0175415.us)
  %363 = getelementptr inbounds double, ptr %362, i64 %indvars.iv
  store double %361, ptr %363, align 8, !tbaa !13
  %364 = call noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %45, i32 noundef %.0175415.us)
  %365 = getelementptr inbounds double, ptr %364, i64 %indvars.iv
  %366 = load double, ptr %365, align 8, !tbaa !13
  %367 = call noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %47, i32 noundef %.0175415.us)
  %368 = getelementptr inbounds double, ptr %367, i64 %indvars.iv
  store double %366, ptr %368, align 8, !tbaa !13
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge.us, label %358, !llvm.loop !15

._crit_edge.us:                                   ; preds = %358
  %369 = add nuw nsw i32 %.0175415.us, 1
  %exitcond488.not = icmp eq i32 %369, %.0176
  br i1 %exitcond488.not, label %.loopexit, label %.preheader353.us, !llvm.loop !17

370:                                              ; preds = %356
  br i1 %or.cond15, label %.preheader357, label %.loopexit

.preheader357:                                    ; preds = %370
  br i1 %308, label %.preheader352.us, label %.preheader356

.preheader352.us:                                 ; preds = %.preheader357, %._crit_edge.us418
  %.0173417.us = phi i32 [ %384, %._crit_edge.us418 ], [ 0, %.preheader357 ]
  %371 = add nuw nsw i32 %.0173417.us, %289
  br label %372

372:                                              ; preds = %.preheader352.us, %372
  %indvars.iv489 = phi i64 [ 0, %.preheader352.us ], [ %indvars.iv.next490, %372 ]
  %373 = call noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %44, i32 noundef %371)
  %374 = add nuw nsw i64 %indvars.iv489, %312
  %375 = getelementptr inbounds double, ptr %373, i64 %374
  %376 = load double, ptr %375, align 8, !tbaa !13
  %377 = call noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %46, i32 noundef %.0173417.us)
  %378 = getelementptr inbounds double, ptr %377, i64 %indvars.iv489
  store double %376, ptr %378, align 8, !tbaa !13
  %379 = call noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %45, i32 noundef %371)
  %380 = getelementptr inbounds double, ptr %379, i64 %374
  %381 = load double, ptr %380, align 8, !tbaa !13
  %382 = call noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %47, i32 noundef %.0173417.us)
  %383 = getelementptr inbounds double, ptr %382, i64 %indvars.iv489
  store double %381, ptr %383, align 8, !tbaa !13
  %indvars.iv.next490 = add nuw nsw i64 %indvars.iv489, 1
  %exitcond493.not = icmp eq i64 %indvars.iv.next490, %312
  br i1 %exitcond493.not, label %._crit_edge.us418, label %372, !llvm.loop !18

._crit_edge.us418:                                ; preds = %372
  %384 = add nuw nsw i32 %.0173417.us, 1
  %exitcond494.not = icmp eq i32 %384, %289
  br i1 %exitcond494.not, label %.preheader356, label %.preheader352.us, !llvm.loop !19

.preheader356:                                    ; preds = %._crit_edge.us418, %.preheader357
  %385 = load i32, ptr %3, align 4, !tbaa !5
  %386 = icmp slt i32 %289, %385
  br i1 %386, label %.preheader351, label %.preheader355

.preheader355:                                    ; preds = %._crit_edge, %.preheader356
  %387 = phi i32 [ %385, %.preheader356 ], [ %392, %._crit_edge ]
  %388 = icmp slt i32 %289, %387
  %or.cond569 = and i1 %308, %388
  br i1 %or.cond569, label %.preheader350, label %._crit_edge429

.preheader351:                                    ; preds = %.preheader356, %._crit_edge
  %389 = phi i32 [ %392, %._crit_edge ], [ %385, %.preheader356 ]
  %.0171420 = phi i32 [ %393, %._crit_edge ], [ %289, %.preheader356 ]
  %390 = icmp slt i32 %289, %389
  br i1 %390, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %.preheader351
  %391 = sub nsw i32 %.0171420, %289
  br label %395

._crit_edge:                                      ; preds = %395, %.preheader351
  %392 = phi i32 [ %389, %.preheader351 ], [ %407, %395 ]
  %393 = add nsw i32 %.0171420, 1
  %394 = icmp slt i32 %393, %392
  br i1 %394, label %.preheader351, label %.preheader355, !llvm.loop !20

395:                                              ; preds = %.lr.ph, %395
  %indvars.iv495 = phi i64 [ %313, %.lr.ph ], [ %indvars.iv.next496, %395 ]
  %396 = call noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %44, i32 noundef %391)
  %397 = sub nsw i64 %indvars.iv495, %313
  %398 = getelementptr inbounds double, ptr %396, i64 %397
  %399 = load double, ptr %398, align 8, !tbaa !13
  %400 = call noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %46, i32 noundef %.0171420)
  %401 = getelementptr inbounds double, ptr %400, i64 %indvars.iv495
  store double %399, ptr %401, align 8, !tbaa !13
  %402 = call noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %45, i32 noundef %391)
  %403 = getelementptr inbounds double, ptr %402, i64 %397
  %404 = load double, ptr %403, align 8, !tbaa !13
  %405 = call noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %47, i32 noundef %.0171420)
  %406 = getelementptr inbounds double, ptr %405, i64 %indvars.iv495
  store double %404, ptr %406, align 8, !tbaa !13
  %indvars.iv.next496 = add nsw i64 %indvars.iv495, 1
  %407 = load i32, ptr %3, align 4, !tbaa !5
  %408 = sext i32 %407 to i64
  %409 = icmp slt i64 %indvars.iv.next496, %408
  br i1 %409, label %395, label %._crit_edge, !llvm.loop !21

.preheader354:                                    ; preds = %._crit_edge423
  %410 = icmp slt i32 %289, %430
  %brmerge.not = and i1 %410, %308
  br i1 %brmerge.not, label %.preheader.us, label %._crit_edge429

.preheader.us:                                    ; preds = %.preheader354, %._crit_edge427.us
  %.0167428.us = phi i32 [ %424, %._crit_edge427.us ], [ %289, %.preheader354 ]
  %411 = sub nsw i32 %.0167428.us, %289
  br label %412

412:                                              ; preds = %.preheader.us, %412
  %indvars.iv502 = phi i64 [ 0, %.preheader.us ], [ %indvars.iv.next503, %412 ]
  %413 = call noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %44, i32 noundef %411)
  %414 = add nuw nsw i64 %indvars.iv502, %312
  %415 = getelementptr inbounds double, ptr %413, i64 %414
  %416 = load double, ptr %415, align 8, !tbaa !13
  %417 = call noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %46, i32 noundef %.0167428.us)
  %418 = getelementptr inbounds double, ptr %417, i64 %indvars.iv502
  store double %416, ptr %418, align 8, !tbaa !13
  %419 = call noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %45, i32 noundef %411)
  %420 = getelementptr inbounds double, ptr %419, i64 %414
  %421 = load double, ptr %420, align 8, !tbaa !13
  %422 = call noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %47, i32 noundef %.0167428.us)
  %423 = getelementptr inbounds double, ptr %422, i64 %indvars.iv502
  store double %421, ptr %423, align 8, !tbaa !13
  %indvars.iv.next503 = add nuw nsw i64 %indvars.iv502, 1
  %exitcond506.not = icmp eq i64 %indvars.iv.next503, %312
  br i1 %exitcond506.not, label %._crit_edge427.us, label %412, !llvm.loop !22

._crit_edge427.us:                                ; preds = %412
  %424 = add nuw nsw i32 %.0167428.us, 1
  %425 = load i32, ptr %3, align 4, !tbaa !5
  %426 = icmp slt i32 %424, %425
  br i1 %426, label %.preheader.us, label %._crit_edge429, !llvm.loop !23

.preheader350:                                    ; preds = %.preheader355, %._crit_edge423
  %427 = phi i32 [ %430, %._crit_edge423 ], [ %387, %.preheader355 ]
  %.0169424 = phi i32 [ %431, %._crit_edge423 ], [ 0, %.preheader355 ]
  %428 = icmp slt i32 %289, %427
  br i1 %428, label %.lr.ph422, label %._crit_edge423

.lr.ph422:                                        ; preds = %.preheader350
  %429 = add nuw nsw i32 %.0169424, %289
  br label %432

._crit_edge423:                                   ; preds = %432, %.preheader350
  %430 = phi i32 [ %427, %.preheader350 ], [ %444, %432 ]
  %431 = add nuw nsw i32 %.0169424, 1
  %exitcond501.not = icmp eq i32 %431, %289
  br i1 %exitcond501.not, label %.preheader354, label %.preheader350, !llvm.loop !24

432:                                              ; preds = %.lr.ph422, %432
  %indvars.iv498 = phi i64 [ %313, %.lr.ph422 ], [ %indvars.iv.next499, %432 ]
  %433 = call noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %44, i32 noundef %429)
  %434 = sub nuw nsw i64 %indvars.iv498, %313
  %435 = getelementptr inbounds double, ptr %433, i64 %434
  %436 = load double, ptr %435, align 8, !tbaa !13
  %437 = call noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %46, i32 noundef %.0169424)
  %438 = getelementptr inbounds double, ptr %437, i64 %indvars.iv498
  store double %436, ptr %438, align 8, !tbaa !13
  %439 = call noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %45, i32 noundef %429)
  %440 = getelementptr inbounds double, ptr %439, i64 %434
  %441 = load double, ptr %440, align 8, !tbaa !13
  %442 = call noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %47, i32 noundef %.0169424)
  %443 = getelementptr inbounds double, ptr %442, i64 %indvars.iv498
  store double %441, ptr %443, align 8, !tbaa !13
  %indvars.iv.next499 = add nuw nsw i64 %indvars.iv498, 1
  %444 = load i32, ptr %3, align 4, !tbaa !5
  %445 = sext i32 %444 to i64
  %446 = icmp slt i64 %indvars.iv.next499, %445
  br i1 %446, label %432, label %._crit_edge423, !llvm.loop !26

._crit_edge429:                                   ; preds = %._crit_edge427.us, %.preheader354, %.preheader355
  %447 = phi i32 [ %430, %.preheader354 ], [ %387, %.preheader355 ], [ %425, %._crit_edge427.us ]
  br i1 %306, label %448, label %.loopexit

448:                                              ; preds = %._crit_edge429
  %449 = icmp sgt i32 %447, 0
  br i1 %449, label %.lr.ph432, label %._crit_edge433

._crit_edge433:                                   ; preds = %.lr.ph432, %448
  %450 = call noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %46, i32 noundef 0)
  %451 = load double, ptr %450, align 8, !tbaa !13
  %452 = call noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %46, i32 noundef %309)
  %453 = getelementptr inbounds double, ptr %452, i64 %310
  store double %451, ptr %453, align 8, !tbaa !13
  %454 = call noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %47, i32 noundef 0)
  %455 = load double, ptr %454, align 8, !tbaa !13
  %456 = call noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %47, i32 noundef %309)
  %457 = getelementptr inbounds double, ptr %456, i64 %310
  store double %455, ptr %457, align 8, !tbaa !13
  br label %.loopexit

.lr.ph432:                                        ; preds = %448, %.lr.ph432
  %indvars.iv507 = phi i64 [ %indvars.iv.next508, %.lr.ph432 ], [ 0, %448 ]
  %458 = trunc nuw nsw i64 %indvars.iv507 to i32
  %459 = call noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %46, i32 noundef %458)
  %460 = load double, ptr %459, align 8, !tbaa !13
  %461 = call noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %46, i32 noundef %458)
  %462 = getelementptr inbounds double, ptr %461, i64 %310
  store double %460, ptr %462, align 8, !tbaa !13
  %463 = call noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %46, i32 noundef 0)
  %464 = getelementptr inbounds double, ptr %463, i64 %indvars.iv507
  %465 = load double, ptr %464, align 8, !tbaa !13
  %466 = call noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %46, i32 noundef %309)
  %467 = getelementptr inbounds double, ptr %466, i64 %indvars.iv507
  store double %465, ptr %467, align 8, !tbaa !13
  %468 = call noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %47, i32 noundef %458)
  %469 = load double, ptr %468, align 8, !tbaa !13
  %470 = call noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %47, i32 noundef %458)
  %471 = getelementptr inbounds double, ptr %470, i64 %310
  store double %469, ptr %471, align 8, !tbaa !13
  %472 = call noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %47, i32 noundef 0)
  %473 = getelementptr inbounds double, ptr %472, i64 %indvars.iv507
  %474 = load double, ptr %473, align 8, !tbaa !13
  %475 = call noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64) %47, i32 noundef %309)
  %476 = getelementptr inbounds double, ptr %475, i64 %indvars.iv507
  store double %474, ptr %476, align 8, !tbaa !13
  %indvars.iv.next508 = add nuw nsw i64 %indvars.iv507, 1
  %477 = load i32, ptr %3, align 4, !tbaa !5
  %478 = sext i32 %477 to i64
  %479 = icmp slt i64 %indvars.iv.next508, %478
  br i1 %479, label %.lr.ph432, label %._crit_edge433, !llvm.loop !27

.loopexit:                                        ; preds = %._crit_edge.us, %357, %370, %._crit_edge433, %._crit_edge429
  br i1 %or.cond17, label %480, label %500

480:                                              ; preds = %.loopexit
  %481 = invoke noundef zeroext i1 @_ZN4sptk11WriteStreamERKNS_6MatrixEPSo(ptr noundef nonnull align 8 dereferenceable(64) %46, ptr noundef nonnull @_ZSt4cout)
          to label %482 unwind label %330

482:                                              ; preds = %480
  br i1 %481, label %500, label %483

483:                                              ; preds = %482
  call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %51) #7
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %51)
          to label %484 unwind label %489

484:                                              ; preds = %483
  %485 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %51, ptr noundef nonnull @.str.13)
          to label %486 unwind label %491

486:                                              ; preds = %484
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %52) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %53) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %53)
          to label %487 unwind label %493

487:                                              ; preds = %486
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull align 8 dereferenceable(112) %51)
          to label %488 unwind label %495

488:                                              ; preds = %487
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %53) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %51) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %51) #7
  br label %.loopexit359

489:                                              ; preds = %483
  %490 = landingpad { ptr, i32 }
          cleanup
  br label %499

491:                                              ; preds = %484
  %492 = landingpad { ptr, i32 }
          cleanup
  br label %498

493:                                              ; preds = %486
  %494 = landingpad { ptr, i32 }
          cleanup
  br label %497

495:                                              ; preds = %487
  %496 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #7
  br label %497

497:                                              ; preds = %495, %493
  %.pn293 = phi { ptr, i32 } [ %496, %495 ], [ %494, %493 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %53) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #7
  br label %498

498:                                              ; preds = %497, %491
  %.pn293.pn = phi { ptr, i32 } [ %.pn293, %497 ], [ %492, %491 ]
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %51) #7
  br label %499

499:                                              ; preds = %498, %489
  %.pn293.pn.pn = phi { ptr, i32 } [ %.pn293.pn, %498 ], [ %490, %489 ]
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %51) #7
  br label %521

500:                                              ; preds = %.loopexit, %482
  br i1 %or.cond19, label %501, label %.backedge

.backedge:                                        ; preds = %500, %503
  br label %314, !llvm.loop !28

501:                                              ; preds = %500
  %502 = invoke noundef zeroext i1 @_ZN4sptk11WriteStreamERKNS_6MatrixEPSo(ptr noundef nonnull align 8 dereferenceable(64) %47, ptr noundef nonnull @_ZSt4cout)
          to label %503 unwind label %330

503:                                              ; preds = %501
  br i1 %502, label %.backedge, label %504

504:                                              ; preds = %503
  call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %54) #7
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %54)
          to label %505 unwind label %510

505:                                              ; preds = %504
  %506 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %54, ptr noundef nonnull @.str.14)
          to label %507 unwind label %512

507:                                              ; preds = %505
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %55) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %56) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %56)
          to label %508 unwind label %514

508:                                              ; preds = %507
  invoke void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull align 8 dereferenceable(112) %54)
          to label %509 unwind label %516

509:                                              ; preds = %508
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #7
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %54) #7
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %54) #7
  br label %.loopexit359

510:                                              ; preds = %504
  %511 = landingpad { ptr, i32 }
          cleanup
  br label %520

512:                                              ; preds = %505
  %513 = landingpad { ptr, i32 }
          cleanup
  br label %519

514:                                              ; preds = %507
  %515 = landingpad { ptr, i32 }
          cleanup
  br label %518

516:                                              ; preds = %508
  %517 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #7
  br label %518

518:                                              ; preds = %516, %514
  %.pn297 = phi { ptr, i32 } [ %517, %516 ], [ %515, %514 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #7
  br label %519

519:                                              ; preds = %518, %512
  %.pn297.pn = phi { ptr, i32 } [ %.pn297, %518 ], [ %513, %512 ]
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %54) #7
  br label %520

520:                                              ; preds = %519, %510
  %.pn297.pn.pn = phi { ptr, i32 } [ %.pn297.pn, %519 ], [ %511, %510 ]
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %54) #7
  br label %521

.loopexit359:                                     ; preds = %317, %335, %509, %488, %344
  %.6 = phi i32 [ 1, %509 ], [ 1, %488 ], [ 1, %344 ], [ 0, %335 ], [ 0, %317 ]
  call void @_ZN4sptk6MatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %47) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %47) #7
  call void @_ZN4sptk6MatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %46) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %46) #7
  call void @_ZN4sptk6MatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %45) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %45) #7
  call void @_ZN4sptk6MatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %44) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %44) #7
  call void @_ZN4sptk6MatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %43) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %43) #7
  call void @_ZN4sptk6MatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %42) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %42) #7
  br label %528

521:                                              ; preds = %520, %499, %355, %330
  %.pn297.pn.pn.pn = phi { ptr, i32 } [ %.pn297.pn.pn, %520 ], [ %331, %330 ], [ %.pn293.pn.pn, %499 ], [ %.pn289.pn.pn, %355 ]
  call void @_ZN4sptk6MatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %47) #7
  br label %522

522:                                              ; preds = %521, %328
  %.pn297.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn297.pn.pn.pn, %521 ], [ %329, %328 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %47) #7
  call void @_ZN4sptk6MatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %46) #7
  br label %523

523:                                              ; preds = %522, %326
  %.pn297.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn297.pn.pn.pn.pn, %522 ], [ %327, %326 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %46) #7
  call void @_ZN4sptk6MatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %45) #7
  br label %524

524:                                              ; preds = %523, %324
  %.pn297.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn297.pn.pn.pn.pn.pn, %523 ], [ %325, %324 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %45) #7
  call void @_ZN4sptk6MatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %44) #7
  br label %525

525:                                              ; preds = %524, %322
  %.pn297.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn297.pn.pn.pn.pn.pn.pn, %524 ], [ %323, %322 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %44) #7
  call void @_ZN4sptk6MatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %43) #7
  br label %526

526:                                              ; preds = %525, %320
  %.pn297.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn297.pn.pn.pn.pn.pn.pn.pn, %525 ], [ %321, %320 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %43) #7
  call void @_ZN4sptk6MatrixD2Ev(ptr noundef nonnull align 8 dereferenceable(64) %42) #7
  br label %527

527:                                              ; preds = %526, %318
  %.pn297.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn297.pn.pn.pn.pn.pn.pn.pn.pn, %526 ], [ %319, %318 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %42) #7
  br label %529

528:                                              ; preds = %.loopexit359, %290, %273
  %.8 = phi i32 [ 1, %273 ], [ %.6, %.loopexit359 ], [ 1, %290 ]
  call void @_ZN4sptk41TwoDimensionalInverseFastFourierTransform6BufferD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %38) #7
  call void @llvm.lifetime.end.p0(i64 152, ptr nonnull %38) #7
  call void @_ZN4sptk41TwoDimensionalInverseFastFourierTransformD2Ev(ptr noundef nonnull align 8 dereferenceable(81) %37) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %37) #7
  br label %531

529:                                              ; preds = %527, %286
  %.pn297.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn297.pn.pn.pn.pn.pn.pn.pn.pn.pn, %527 ], [ %.pn285.pn.pn, %286 ]
  call void @_ZN4sptk41TwoDimensionalInverseFastFourierTransform6BufferD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %38) #7
  call void @llvm.lifetime.end.p0(i64 152, ptr nonnull %38) #7
  call void @_ZN4sptk41TwoDimensionalInverseFastFourierTransformD2Ev(ptr noundef nonnull align 8 dereferenceable(81) %37) #7
  br label %530

530:                                              ; preds = %529, %274
  %.pn297.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn297.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %529 ], [ %275, %274 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %37) #7
  br label %532

531:                                              ; preds = %528, %248
  %.9 = phi i32 [ 1, %248 ], [ %.8, %528 ]
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %33) #7
  call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %33) #7
  br label %.thread335

532:                                              ; preds = %530, %261, %249
  %.pn310.pn.pn.pn = phi { ptr, i32 } [ %.pn310.pn.pn, %261 ], [ %.pn297.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %530 ], [ %250, %249 ]
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %33) #7
  call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %33) #7
  br label %533

.thread335:                                       ; preds = %68, %116, %152, %188, %190, %191, %200, %531, %222
  %.12 = phi i32 [ 1, %200 ], [ %.9, %531 ], [ 1, %222 ], [ 1, %68 ], [ 1, %116 ], [ 1, %152 ], [ 1, %188 ], [ 0, %190 ], [ 1, %191 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #7
  ret i32 %.12

533:                                              ; preds = %208, %532, %230, %73, %81, %117, %153, %189
  %.pn316.pn.pn.pn = phi { ptr, i32 } [ %.pn260.pn.pn, %189 ], [ %.pn266.pn.pn, %153 ], [ %.pn272.pn.pn, %117 ], [ %.pn278.pn, %81 ], [ %.pn276, %73 ], [ %.pn316.pn, %208 ], [ %.pn310.pn.pn.pn, %532 ], [ %.pn282.pn, %230 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #7
  resume { ptr, i32 } %.pn316.pn.pn.pn
}

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

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

declare noundef zeroext i1 @_ZN4sptk22ConvertStringToIntegerERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPi(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #2

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

declare void @_ZN4sptk17PrintErrorMessageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_19basic_ostringstreamIcS3_S4_EE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(112)) local_unnamed_addr #2

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

declare noundef zeroext i1 @_ZN4sptk9IsInRangeEiii(i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_110PrintUsageEPSo(ptr noundef) local_unnamed_addr #4

declare noundef zeroext i1 @_ZN4sptk13SetBinaryModeEv() local_unnamed_addr #2

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

; Function Attrs: mustprogress uwtable
declare void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256), ptr noundef, i32 noundef) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZStorSt13_Ios_OpenmodeS_(i32 noundef, i32 noundef) local_unnamed_addr #6

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

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

declare void @_ZN4sptk41TwoDimensionalInverseFastFourierTransformC1Eiii(ptr noundef nonnull align 8 dereferenceable(81), i32 noundef, i32 noundef, i32 noundef) unnamed_addr #2

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

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

declare void @_ZN4sptk6MatrixC1Eii(ptr noundef nonnull align 8 dereferenceable(64), i32 noundef, i32 noundef) unnamed_addr #2

declare noundef zeroext i1 @_ZN4sptk10ReadStreamEPNS_6MatrixEPSi(ptr noundef, ptr noundef) local_unnamed_addr #2

declare noundef zeroext i1 @_ZNK4sptk41TwoDimensionalInverseFastFourierTransform3RunERKNS_6MatrixES3_PS1_S4_PNS0_6BufferE(ptr noundef nonnull align 8 dereferenceable(81), ptr noundef nonnull align 8 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(64), ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN4sptk6MatrixixEi(ptr noundef nonnull align 8 dereferenceable(64), i32 noundef) local_unnamed_addr #3 align 2

declare noundef zeroext i1 @_ZN4sptk11WriteStreamERKNS_6MatrixEPSo(ptr noundef nonnull align 8 dereferenceable(64), ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"vtable pointer", !8, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"double", !7, i64 0}
!15 = distinct !{!15, !16}
!16 = !{!"llvm.loop.mustprogress"}
!17 = distinct !{!17, !16}
!18 = distinct !{!18, !16}
!19 = distinct !{!19, !16}
!20 = distinct !{!20, !16}
!21 = distinct !{!21, !16}
!22 = distinct !{!22, !16}
!23 = distinct !{!23, !16}
!24 = distinct !{!24, !16, !25}
!25 = !{!"llvm.loop.unswitch.partial.disable"}
!26 = distinct !{!26, !16}
!27 = distinct !{!27, !16}
!28 = distinct !{!28, !16}


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