; LLVM IR from sp-nitech/SPTK :: src/analysis (mel_generalized_cepstral_analysis)

; 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.__gnu_cxx::__normal_iterator" = type { ptr }
%class.anon = type { i8 }
%class.anon.16 = type { double }
%"struct.std::plus" = type { i8 }
%"class.sptk::MelGeneralizedCepstralAnalysis" = type <{ ptr, i32, i32, double, double, i32, [4 x i8], double, %"class.sptk::RealValuedFastFourierTransform", %"class.sptk::RealValuedInverseFastFourierTransform", %"class.sptk::InverseFastFourierTransform", %"class.sptk::ToeplitzPlusHankelSystemSolver", %"class.sptk::GeneralizedCepstrumGainNormalization", %"class.sptk::GeneralizedCepstrumInverseGainNormalization", %"class.sptk::GeneralizedCepstrumInverseGainNormalization", %"class.sptk::MelCepstrumToMlsaDigitalFilterCoefficients", %"class.sptk::MlsaDigitalFilterCoefficientsToMelCepstrum", %"class.sptk::MelGeneralizedCepstrumToMelGeneralizedCepstrum", ptr, i8, [7 x i8] }>
%"class.sptk::RealValuedFastFourierTransform" = type { ptr, i32, i32, i32, %"class.sptk::FastFourierTransform", i8, %"class.std::vector" }
%"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::RealValuedInverseFastFourierTransform" = type { ptr, %"class.sptk::RealValuedFastFourierTransform" }
%"class.sptk::InverseFastFourierTransform" = type { ptr, %"class.sptk::FastFourierTransform" }
%"class.sptk::ToeplitzPlusHankelSystemSolver" = type <{ ptr, i32, i8, i8, [2 x i8] }>
%"class.sptk::GeneralizedCepstrumGainNormalization" = type <{ ptr, i32, [4 x i8], double, i8, [7 x i8] }>
%"class.sptk::GeneralizedCepstrumInverseGainNormalization" = type <{ ptr, i32, [4 x i8], double, i8, [7 x i8] }>
%"class.sptk::MelCepstrumToMlsaDigitalFilterCoefficients" = type <{ ptr, i32, [4 x i8], double, i8, [7 x i8] }>
%"class.sptk::MlsaDigitalFilterCoefficientsToMelCepstrum" = type <{ ptr, i32, [4 x i8], double, i8, [7 x i8] }>
%"class.sptk::MelGeneralizedCepstrumToMelGeneralizedCepstrum" = type <{ ptr, i32, [4 x i8], double, double, i8, i8, [2 x i8], i32, double, double, i8, i8, [6 x i8], double, %"class.std::vector.0", i8, [7 x i8] }>
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<sptk::MelGeneralizedCepstrumToMelGeneralizedCepstrum::ModuleInterface *, std::allocator<sptk::MelGeneralizedCepstrumToMelGeneralizedCepstrum::ModuleInterface *>>::_Vector_impl" }
%"struct.std::_Vector_base<sptk::MelGeneralizedCepstrumToMelGeneralizedCepstrum::ModuleInterface *, std::allocator<sptk::MelGeneralizedCepstrumToMelGeneralizedCepstrum::ModuleInterface *>>::_Vector_impl" = type { %"struct.std::_Vector_base<sptk::MelGeneralizedCepstrumToMelGeneralizedCepstrum::ModuleInterface *, std::allocator<sptk::MelGeneralizedCepstrumToMelGeneralizedCepstrum::ModuleInterface *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<sptk::MelGeneralizedCepstrumToMelGeneralizedCepstrum::ModuleInterface *, std::allocator<sptk::MelGeneralizedCepstrumToMelGeneralizedCepstrum::ModuleInterface *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.sptk::MelGeneralizedCepstralAnalysis::Buffer" = type { ptr, %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.sptk::RealValuedFastFourierTransform::Buffer", %"class.sptk::RealValuedInverseFastFourierTransform::Buffer", %"class.sptk::ToeplitzPlusHankelSystemSolver::Buffer", %"class.sptk::MelGeneralizedCepstrumToMelGeneralizedCepstrum::Buffer", %"class.sptk::MelCepstralAnalysis::Buffer" }
%"class.sptk::RealValuedFastFourierTransform::Buffer" = type { ptr, %"class.std::vector", %"class.std::vector" }
%"class.sptk::RealValuedInverseFastFourierTransform::Buffer" = type { ptr, %"class.sptk::RealValuedFastFourierTransform::Buffer" }
%"class.sptk::ToeplitzPlusHankelSystemSolver::Buffer" = type { ptr, %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.10", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.sptk::Matrix2D", %"class.sptk::Matrix2D", %"class.sptk::Matrix2D", %"class.sptk::Matrix2D", %"class.sptk::Matrix2D", %"class.sptk::Matrix2D" }
%"class.std::vector.5" = type { %"struct.std::_Vector_base.6" }
%"struct.std::_Vector_base.6" = type { %"struct.std::_Vector_base<sptk::Matrix2D, std::allocator<sptk::Matrix2D>>::_Vector_impl" }
%"struct.std::_Vector_base<sptk::Matrix2D, std::allocator<sptk::Matrix2D>>::_Vector_impl" = type { %"struct.std::_Vector_base<sptk::Matrix2D, std::allocator<sptk::Matrix2D>>::_Vector_impl_data" }
%"struct.std::_Vector_base<sptk::Matrix2D, std::allocator<sptk::Matrix2D>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.10" = type { %"struct.std::_Vector_base.11" }
%"struct.std::_Vector_base.11" = 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::Matrix2D" = type { ptr, %union.anon }
%union.anon = type { [4 x double] }
%"class.sptk::MelGeneralizedCepstrumToMelGeneralizedCepstrum::Buffer" = type { ptr, %"class.sptk::FrequencyTransform::Buffer", %"class.std::vector" }
%"class.sptk::FrequencyTransform::Buffer" = type { ptr, %"class.std::vector" }
%"class.sptk::MelCepstralAnalysis::Buffer" = type { ptr, %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.sptk::RealValuedFastFourierTransform::Buffer", %"class.sptk::RealValuedInverseFastFourierTransform::Buffer", %"class.sptk::FrequencyTransform::Buffer", %"class.sptk::FrequencyTransform::Buffer", %"class.sptk::ToeplitzPlusHankelSystemSolver::Buffer" }

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZNK4sptk30MelGeneralizedCepstralAnalysis19NewtonRaphsonMethodEdPdPNS0_6BufferE(ptr noundef nonnull align 8 dereferenceable(609) %0, double noundef %1, ptr noundef %2, ptr noundef %3) #2 align 2 {
  %5 = alloca i1, align 1
  %6 = alloca ptr, align 8
  %7 = alloca double, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %13 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %14 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %15 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %16 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %17 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %18 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %19 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %20 = alloca %class.anon, align 1
  %21 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca ptr, align 8
  %30 = alloca i32, align 4
  %31 = alloca double, align 8
  %32 = alloca double, align 8
  %33 = alloca double, align 8
  %34 = alloca double, align 8
  %35 = alloca double, align 8
  %36 = alloca double, align 8
  %37 = alloca double, align 8
  %38 = alloca double, align 8
  %39 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %40 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %41 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %42 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %43 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %44 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %45 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %46 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %47 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %48 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %49 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %50 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %51 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %52 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %53 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %54 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %55 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %56 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %57 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %58 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %59 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %60 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %61 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %62 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %63 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %64 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %65 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %66 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %67 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %68 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %69 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %70 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %71 = alloca double, align 8
  %72 = alloca ptr, align 8
  %73 = alloca ptr, align 8
  %74 = alloca i32, align 4
  %75 = alloca double, align 8
  %76 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %77 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %78 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %79 = alloca %class.anon.16, align 8
  %80 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %81 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %82 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %83 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %84 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %85 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %86 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %87 = alloca %"struct.std::plus", align 1
  %88 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %89 = alloca double, align 8
  %90 = alloca ptr, align 8
  %91 = alloca ptr, align 8
  %92 = alloca i32, align 4
  %93 = alloca double, align 8
  store ptr %0, ptr %6, align 8, !tbaa !5
  store double %1, ptr %7, align 8, !tbaa !9
  store ptr %2, ptr %8, align 8, !tbaa !5
  store ptr %3, ptr %9, align 8, !tbaa !5
  %94 = load ptr, ptr %6, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #7
  %95 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %94, i32 0, i32 2
  %96 = load i32, ptr %95, align 4, !tbaa !11
  %97 = add nsw i32 %96, 1
  store i32 %97, ptr %10, align 4, !tbaa !33
  %98 = load ptr, ptr %9, align 8, !tbaa !5
  %99 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %98, i32 0, i32 1
  %100 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %99, i64 noundef 0) #7
  store double 0.000000e+00, ptr %100, align 8, !tbaa !9
  %101 = load ptr, ptr %9, align 8, !tbaa !5
  %102 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %101, i32 0, i32 1
  %103 = load i32, ptr %10, align 4, !tbaa !33
  %104 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %94, i32 0, i32 1
  %105 = load i32, ptr %104, align 8, !tbaa !34
  %106 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %94, i32 0, i32 3
  %107 = load double, ptr %106, align 8, !tbaa !35
  %108 = fneg double %107
  %109 = load ptr, ptr %9, align 8, !tbaa !5
  %110 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %109, i32 0, i32 2
  %111 = load ptr, ptr %9, align 8, !tbaa !5
  %112 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %111, i32 0, i32 16
  call void @_ZN12_GLOBAL__N_130CoefficientsFrequencyTransformERKSt6vectorIdSaIdEEiidPS2_S5_(ptr noundef nonnull align 8 dereferenceable(24) %102, i32 noundef %103, i32 noundef %105, double noundef %108, ptr noundef %110, ptr noundef %112)
  %113 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %94, i32 0, i32 8
  %114 = load ptr, ptr %9, align 8, !tbaa !5
  %115 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %114, i32 0, i32 2
  %116 = load ptr, ptr %9, align 8, !tbaa !5
  %117 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %116, i32 0, i32 3
  %118 = load ptr, ptr %9, align 8, !tbaa !5
  %119 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %118, i32 0, i32 4
  %120 = load ptr, ptr %9, align 8, !tbaa !5
  %121 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %120, i32 0, i32 19
  %122 = call noundef zeroext i1 @_ZNK4sptk30RealValuedFastFourierTransform3RunERKSt6vectorIdSaIdEEPS3_S6_PNS0_6BufferE(ptr noundef nonnull align 8 dereferenceable(104) %113, ptr noundef nonnull align 8 dereferenceable(24) %115, ptr noundef %117, ptr noundef %119, ptr noundef %121)
  br i1 %122, label %124, label %123

123:                                              ; preds = %4
  store i1 false, ptr %5, align 1
  store i32 1, ptr %11, align 4
  br label %700

124:                                              ; preds = %4
  %125 = load double, ptr %7, align 8, !tbaa !9
  %126 = fcmp oeq double -1.000000e+00, %125
  br i1 %126, label %127, label %148

127:                                              ; preds = %124
  %128 = load ptr, ptr %9, align 8, !tbaa !5
  %129 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %128, i32 0, i32 17
  %130 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %129) #7
  %131 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %12, i32 0, i32 0
  store ptr %130, ptr %131, align 8
  %132 = load ptr, ptr %9, align 8, !tbaa !5
  %133 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %132, i32 0, i32 17
  %134 = call ptr @_ZNSt6vectorIdSaIdEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %133) #7
  %135 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %13, i32 0, i32 0
  store ptr %134, ptr %135, align 8
  %136 = load ptr, ptr %9, align 8, !tbaa !5
  %137 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %136, i32 0, i32 5
  %138 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %137) #7
  %139 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %14, i32 0, i32 0
  store ptr %138, ptr %139, align 8
  %140 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %12, i32 0, i32 0
  %141 = load ptr, ptr %140, align 8
  %142 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %13, i32 0, i32 0
  %143 = load ptr, ptr %142, align 8
  %144 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %14, i32 0, i32 0
  %145 = load ptr, ptr %144, align 8
  %146 = call ptr @_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_ET0_T_S8_S7_(ptr %141, ptr %143, ptr %145)
  %147 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %15, i32 0, i32 0
  store ptr %146, ptr %147, align 8
  br label %292

148:                                              ; preds = %124
  %149 = load double, ptr %7, align 8, !tbaa !9
  %150 = fcmp oeq double 0.000000e+00, %149
  br i1 %150, label %151, label %178

151:                                              ; preds = %148
  %152 = load ptr, ptr %9, align 8, !tbaa !5
  %153 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %152, i32 0, i32 17
  %154 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %153) #7
  %155 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %16, i32 0, i32 0
  store ptr %154, ptr %155, align 8
  %156 = load ptr, ptr %9, align 8, !tbaa !5
  %157 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %156, i32 0, i32 17
  %158 = call ptr @_ZNSt6vectorIdSaIdEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %157) #7
  %159 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %17, i32 0, i32 0
  store ptr %158, ptr %159, align 8
  %160 = load ptr, ptr %9, align 8, !tbaa !5
  %161 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %160, i32 0, i32 3
  %162 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %161) #7
  %163 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %18, i32 0, i32 0
  store ptr %162, ptr %163, align 8
  %164 = load ptr, ptr %9, align 8, !tbaa !5
  %165 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %164, i32 0, i32 5
  %166 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %165) #7
  %167 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %19, i32 0, i32 0
  store ptr %166, ptr %167, align 8
  %168 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %16, i32 0, i32 0
  %169 = load ptr, ptr %168, align 8
  %170 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %17, i32 0, i32 0
  %171 = load ptr, ptr %170, align 8
  %172 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %18, i32 0, i32 0
  %173 = load ptr, ptr %172, align 8
  %174 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %19, i32 0, i32 0
  %175 = load ptr, ptr %174, align 8
  %176 = call ptr @"_ZSt9transformIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_S6_ZNK4sptk30MelGeneralizedCepstralAnalysis19NewtonRaphsonMethodEdS2_PNS8_6BufferEE3$_0ET1_T_SD_T0_SC_T2_"(ptr %169, ptr %171, ptr %173, ptr %175)
  %177 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %21, i32 0, i32 0
  store ptr %176, ptr %177, align 8
  br label %291

178:                                              ; preds = %148
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #7
  %179 = load ptr, ptr %9, align 8, !tbaa !5
  %180 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %179, i32 0, i32 17
  %181 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %180, i64 noundef 0) #7
  store ptr %181, ptr %22, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #7
  %182 = load ptr, ptr %9, align 8, !tbaa !5
  %183 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %182, i32 0, i32 3
  %184 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %183, i64 noundef 0) #7
  store ptr %184, ptr %23, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #7
  %185 = load ptr, ptr %9, align 8, !tbaa !5
  %186 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %185, i32 0, i32 4
  %187 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %186, i64 noundef 0) #7
  store ptr %187, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #7
  %188 = load ptr, ptr %9, align 8, !tbaa !5
  %189 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %188, i32 0, i32 5
  %190 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %189, i64 noundef 0) #7
  store ptr %190, ptr %25, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #7
  %191 = load ptr, ptr %9, align 8, !tbaa !5
  %192 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %191, i32 0, i32 8
  %193 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %192, i64 noundef 0) #7
  store ptr %193, ptr %26, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #7
  %194 = load ptr, ptr %9, align 8, !tbaa !5
  %195 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %194, i32 0, i32 9
  %196 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %195, i64 noundef 0) #7
  store ptr %196, ptr %27, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #7
  %197 = load ptr, ptr %9, align 8, !tbaa !5
  %198 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %197, i32 0, i32 12
  %199 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %198, i64 noundef 0) #7
  store ptr %199, ptr %28, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #7
  %200 = load ptr, ptr %9, align 8, !tbaa !5
  %201 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %200, i32 0, i32 13
  %202 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %201, i64 noundef 0) #7
  store ptr %202, ptr %29, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #7
  store i32 0, ptr %30, align 4, !tbaa !33
  br label %203

203:                                              ; preds = %287, %178
  %204 = load i32, ptr %30, align 4, !tbaa !33
  %205 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %94, i32 0, i32 1
  %206 = load i32, ptr %205, align 8, !tbaa !34
  %207 = icmp slt i32 %204, %206
  br i1 %207, label %209, label %208

208:                                              ; preds = %203
  store i32 2, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #7
  br label %290

209:                                              ; preds = %203
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #7
  %210 = load double, ptr %7, align 8, !tbaa !9
  %211 = load ptr, ptr %23, align 8, !tbaa !5
  %212 = load i32, ptr %30, align 4, !tbaa !33
  %213 = sext i32 %212 to i64
  %214 = getelementptr inbounds double, ptr %211, i64 %213
  %215 = load double, ptr %214, align 8, !tbaa !9
  %216 = call double @llvm.fmuladd.f64(double %210, double %215, double 1.000000e+00)
  store double %216, ptr %31, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #7
  %217 = load double, ptr %7, align 8, !tbaa !9
  %218 = load ptr, ptr %24, align 8, !tbaa !5
  %219 = load i32, ptr %30, align 4, !tbaa !33
  %220 = sext i32 %219 to i64
  %221 = getelementptr inbounds double, ptr %218, i64 %220
  %222 = load double, ptr %221, align 8, !tbaa !9
  %223 = fmul double %217, %222
  store double %223, ptr %32, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #7
  %224 = load double, ptr %31, align 8, !tbaa !9
  %225 = load double, ptr %31, align 8, !tbaa !9
  %226 = fmul double %224, %225
  store double %226, ptr %33, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #7
  %227 = load double, ptr %32, align 8, !tbaa !9
  %228 = load double, ptr %32, align 8, !tbaa !9
  %229 = fmul double %227, %228
  store double %229, ptr %34, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #7
  %230 = load double, ptr %33, align 8, !tbaa !9
  %231 = load double, ptr %34, align 8, !tbaa !9
  %232 = fadd double %230, %231
  store double %232, ptr %35, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #7
  %233 = load double, ptr %35, align 8, !tbaa !9
  %234 = load double, ptr %7, align 8, !tbaa !9
  %235 = fdiv double -1.000000e+00, %234
  %236 = call double @pow(double noundef %233, double noundef %235) #7
  store double %236, ptr %36, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #7
  %237 = load ptr, ptr %22, align 8, !tbaa !5
  %238 = load i32, ptr %30, align 4, !tbaa !33
  %239 = sext i32 %238 to i64
  %240 = getelementptr inbounds double, ptr %237, i64 %239
  %241 = load double, ptr %240, align 8, !tbaa !9
  %242 = load double, ptr %36, align 8, !tbaa !9
  %243 = fmul double %241, %242
  %244 = load double, ptr %35, align 8, !tbaa !9
  %245 = fdiv double %243, %244
  store double %245, ptr %37, align 8, !tbaa !9
  %246 = load double, ptr %37, align 8, !tbaa !9
  %247 = load ptr, ptr %25, align 8, !tbaa !5
  %248 = load i32, ptr %30, align 4, !tbaa !33
  %249 = sext i32 %248 to i64
  %250 = getelementptr inbounds double, ptr %247, i64 %249
  store double %246, ptr %250, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #7
  %251 = load double, ptr %37, align 8, !tbaa !9
  %252 = load double, ptr %35, align 8, !tbaa !9
  %253 = fdiv double %251, %252
  store double %253, ptr %38, align 8, !tbaa !9
  %254 = load double, ptr %38, align 8, !tbaa !9
  %255 = load double, ptr %33, align 8, !tbaa !9
  %256 = load double, ptr %34, align 8, !tbaa !9
  %257 = fsub double %255, %256
  %258 = fmul double %254, %257
  %259 = load ptr, ptr %26, align 8, !tbaa !5
  %260 = load i32, ptr %30, align 4, !tbaa !33
  %261 = sext i32 %260 to i64
  %262 = getelementptr inbounds double, ptr %259, i64 %261
  store double %258, ptr %262, align 8, !tbaa !9
  %263 = load double, ptr %38, align 8, !tbaa !9
  %264 = load double, ptr %31, align 8, !tbaa !9
  %265 = fmul double 2.000000e+00, %264
  %266 = load double, ptr %32, align 8, !tbaa !9
  %267 = fmul double %265, %266
  %268 = fmul double %263, %267
  %269 = load ptr, ptr %27, align 8, !tbaa !5
  %270 = load i32, ptr %30, align 4, !tbaa !33
  %271 = sext i32 %270 to i64
  %272 = getelementptr inbounds double, ptr %269, i64 %271
  store double %268, ptr %272, align 8, !tbaa !9
  %273 = load double, ptr %37, align 8, !tbaa !9
  %274 = load double, ptr %31, align 8, !tbaa !9
  %275 = fmul double %273, %274
  %276 = load ptr, ptr %28, align 8, !tbaa !5
  %277 = load i32, ptr %30, align 4, !tbaa !33
  %278 = sext i32 %277 to i64
  %279 = getelementptr inbounds double, ptr %276, i64 %278
  store double %275, ptr %279, align 8, !tbaa !9
  %280 = load double, ptr %37, align 8, !tbaa !9
  %281 = load double, ptr %32, align 8, !tbaa !9
  %282 = fmul double %280, %281
  %283 = load ptr, ptr %29, align 8, !tbaa !5
  %284 = load i32, ptr %30, align 4, !tbaa !33
  %285 = sext i32 %284 to i64
  %286 = getelementptr inbounds double, ptr %283, i64 %285
  store double %282, ptr %286, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #7
  br label %287

287:                                              ; preds = %209
  %288 = load i32, ptr %30, align 4, !tbaa !33
  %289 = add nsw i32 %288, 1
  store i32 %289, ptr %30, align 4, !tbaa !33
  br label %203, !llvm.loop !36

290:                                              ; preds = %208
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  br label %291

291:                                              ; preds = %290, %151
  br label %292

292:                                              ; preds = %291, %127
  %293 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %94, i32 0, i32 9
  %294 = load ptr, ptr %9, align 8, !tbaa !5
  %295 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %294, i32 0, i32 5
  %296 = load ptr, ptr %9, align 8, !tbaa !5
  %297 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %296, i32 0, i32 3
  %298 = load ptr, ptr %9, align 8, !tbaa !5
  %299 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %298, i32 0, i32 4
  %300 = load ptr, ptr %9, align 8, !tbaa !5
  %301 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %300, i32 0, i32 20
  %302 = call noundef zeroext i1 @_ZNK4sptk37RealValuedInverseFastFourierTransform3RunERKSt6vectorIdSaIdEEPS3_S6_PNS0_6BufferE(ptr noundef nonnull align 8 dereferenceable(112) %293, ptr noundef nonnull align 8 dereferenceable(24) %295, ptr noundef %297, ptr noundef %299, ptr noundef %301)
  br i1 %302, label %304, label %303

303:                                              ; preds = %292
  store i1 false, ptr %5, align 1
  store i32 1, ptr %11, align 4
  br label %700

304:                                              ; preds = %292
  %305 = load ptr, ptr %9, align 8, !tbaa !5
  %306 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %305, i32 0, i32 3
  %307 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %94, i32 0, i32 1
  %308 = load i32, ptr %307, align 8, !tbaa !34
  %309 = load i32, ptr %10, align 4, !tbaa !33
  %310 = mul nsw i32 2, %309
  %311 = sub nsw i32 %310, 1
  %312 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %94, i32 0, i32 3
  %313 = load double, ptr %312, align 8, !tbaa !35
  %314 = load ptr, ptr %9, align 8, !tbaa !5
  %315 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %314, i32 0, i32 6
  %316 = load ptr, ptr %9, align 8, !tbaa !5
  %317 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %316, i32 0, i32 16
  call void @_ZN12_GLOBAL__N_130CoefficientsFrequencyTransformERKSt6vectorIdSaIdEEiidPS2_S5_(ptr noundef nonnull align 8 dereferenceable(24) %306, i32 noundef %308, i32 noundef %311, double noundef %313, ptr noundef %315, ptr noundef %317)
  %318 = load double, ptr %7, align 8, !tbaa !9
  %319 = fcmp oeq double 0.000000e+00, %318
  br i1 %319, label %323, label %320

320:                                              ; preds = %304
  %321 = load double, ptr %7, align 8, !tbaa !9
  %322 = fcmp oeq double -1.000000e+00, %321
  br i1 %322, label %323, label %368

323:                                              ; preds = %320, %304
  %324 = load ptr, ptr %9, align 8, !tbaa !5
  %325 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %324, i32 0, i32 6
  %326 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %325) #7
  %327 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %39, i32 0, i32 0
  store ptr %326, ptr %327, align 8
  %328 = load ptr, ptr %9, align 8, !tbaa !5
  %329 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %328, i32 0, i32 6
  %330 = call ptr @_ZNSt6vectorIdSaIdEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %329) #7
  %331 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %40, i32 0, i32 0
  store ptr %330, ptr %331, align 8
  %332 = load ptr, ptr %9, align 8, !tbaa !5
  %333 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %332, i32 0, i32 10
  %334 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %333) #7
  %335 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %41, i32 0, i32 0
  store ptr %334, ptr %335, align 8
  %336 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %39, i32 0, i32 0
  %337 = load ptr, ptr %336, align 8
  %338 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %40, i32 0, i32 0
  %339 = load ptr, ptr %338, align 8
  %340 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %41, i32 0, i32 0
  %341 = load ptr, ptr %340, align 8
  %342 = call ptr @_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_ET0_T_S8_S7_(ptr %337, ptr %339, ptr %341)
  %343 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %42, i32 0, i32 0
  store ptr %342, ptr %343, align 8
  %344 = load ptr, ptr %9, align 8, !tbaa !5
  %345 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %344, i32 0, i32 6
  %346 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %345) #7
  %347 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %43, i32 0, i32 0
  store ptr %346, ptr %347, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #7
  %348 = load ptr, ptr %9, align 8, !tbaa !5
  %349 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %348, i32 0, i32 6
  %350 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %349) #7
  %351 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %45, i32 0, i32 0
  store ptr %350, ptr %351, align 8
  %352 = load i32, ptr %10, align 4, !tbaa !33
  %353 = sext i32 %352 to i64
  %354 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %45, i64 noundef %353) #7
  %355 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %44, i32 0, i32 0
  store ptr %354, ptr %355, align 8
  %356 = load ptr, ptr %9, align 8, !tbaa !5
  %357 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %356, i32 0, i32 14
  %358 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %357) #7
  %359 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %46, i32 0, i32 0
  store ptr %358, ptr %359, align 8
  %360 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %43, i32 0, i32 0
  %361 = load ptr, ptr %360, align 8
  %362 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %44, i32 0, i32 0
  %363 = load ptr, ptr %362, align 8
  %364 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %46, i32 0, i32 0
  %365 = load ptr, ptr %364, align 8
  %366 = call ptr @_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_ET0_T_S8_S7_(ptr %361, ptr %363, ptr %365)
  %367 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %47, i32 0, i32 0
  store ptr %366, ptr %367, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #7
  br label %417

368:                                              ; preds = %320
  %369 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %94, i32 0, i32 10
  %370 = load ptr, ptr %9, align 8, !tbaa !5
  %371 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %370, i32 0, i32 8
  %372 = load ptr, ptr %9, align 8, !tbaa !5
  %373 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %372, i32 0, i32 9
  %374 = load ptr, ptr %9, align 8, !tbaa !5
  %375 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %374, i32 0, i32 8
  %376 = load ptr, ptr %9, align 8, !tbaa !5
  %377 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %376, i32 0, i32 9
  %378 = call noundef zeroext i1 @_ZNK4sptk27InverseFastFourierTransform3RunERKSt6vectorIdSaIdEES5_PS3_S6_(ptr noundef nonnull align 8 dereferenceable(56) %369, ptr noundef nonnull align 8 dereferenceable(24) %371, ptr noundef nonnull align 8 dereferenceable(24) %373, ptr noundef %375, ptr noundef %377)
  br i1 %378, label %380, label %379

379:                                              ; preds = %368
  store i1 false, ptr %5, align 1
  store i32 1, ptr %11, align 4
  br label %700

380:                                              ; preds = %368
  %381 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %94, i32 0, i32 10
  %382 = load ptr, ptr %9, align 8, !tbaa !5
  %383 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %382, i32 0, i32 12
  %384 = load ptr, ptr %9, align 8, !tbaa !5
  %385 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %384, i32 0, i32 13
  %386 = load ptr, ptr %9, align 8, !tbaa !5
  %387 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %386, i32 0, i32 12
  %388 = load ptr, ptr %9, align 8, !tbaa !5
  %389 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %388, i32 0, i32 13
  %390 = call noundef zeroext i1 @_ZNK4sptk27InverseFastFourierTransform3RunERKSt6vectorIdSaIdEES5_PS3_S6_(ptr noundef nonnull align 8 dereferenceable(56) %381, ptr noundef nonnull align 8 dereferenceable(24) %383, ptr noundef nonnull align 8 dereferenceable(24) %385, ptr noundef %387, ptr noundef %389)
  br i1 %390, label %392, label %391

391:                                              ; preds = %380
  store i1 false, ptr %5, align 1
  store i32 1, ptr %11, align 4
  br label %700

392:                                              ; preds = %380
  %393 = load ptr, ptr %9, align 8, !tbaa !5
  %394 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %393, i32 0, i32 8
  %395 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %94, i32 0, i32 1
  %396 = load i32, ptr %395, align 8, !tbaa !34
  %397 = load i32, ptr %10, align 4, !tbaa !33
  %398 = mul nsw i32 2, %397
  %399 = sub nsw i32 %398, 1
  %400 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %94, i32 0, i32 3
  %401 = load double, ptr %400, align 8, !tbaa !35
  %402 = load ptr, ptr %9, align 8, !tbaa !5
  %403 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %402, i32 0, i32 10
  %404 = load ptr, ptr %9, align 8, !tbaa !5
  %405 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %404, i32 0, i32 16
  call void @_ZN12_GLOBAL__N_130CoefficientsFrequencyTransformERKSt6vectorIdSaIdEEiidPS2_S5_(ptr noundef nonnull align 8 dereferenceable(24) %394, i32 noundef %396, i32 noundef %399, double noundef %401, ptr noundef %403, ptr noundef %405)
  %406 = load ptr, ptr %9, align 8, !tbaa !5
  %407 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %406, i32 0, i32 12
  %408 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %94, i32 0, i32 1
  %409 = load i32, ptr %408, align 8, !tbaa !34
  %410 = load i32, ptr %10, align 4, !tbaa !33
  %411 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %94, i32 0, i32 3
  %412 = load double, ptr %411, align 8, !tbaa !35
  %413 = load ptr, ptr %9, align 8, !tbaa !5
  %414 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %413, i32 0, i32 14
  %415 = load ptr, ptr %9, align 8, !tbaa !5
  %416 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %415, i32 0, i32 16
  call void @_ZN12_GLOBAL__N_130CoefficientsFrequencyTransformERKSt6vectorIdSaIdEEiidPS2_S5_(ptr noundef nonnull align 8 dereferenceable(24) %407, i32 noundef %409, i32 noundef %410, double noundef %412, ptr noundef %414, ptr noundef %416)
  br label %417

417:                                              ; preds = %392, %323
  %418 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %94, i32 0, i32 3
  %419 = load double, ptr %418, align 8, !tbaa !35
  %420 = load ptr, ptr %9, align 8, !tbaa !5
  %421 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %420, i32 0, i32 6
  call void @_ZN12_GLOBAL__N_110PTransformEdPSt6vectorIdSaIdEE(double noundef %419, ptr noundef %421)
  %422 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %94, i32 0, i32 3
  %423 = load double, ptr %422, align 8, !tbaa !35
  %424 = load ptr, ptr %9, align 8, !tbaa !5
  %425 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %424, i32 0, i32 10
  call void @_ZN12_GLOBAL__N_110QTransformEdPSt6vectorIdSaIdEE(double noundef %423, ptr noundef %425)
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #7
  %426 = load ptr, ptr %9, align 8, !tbaa !5
  %427 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %426, i32 0, i32 6
  %428 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %427) #7
  %429 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %49, i32 0, i32 0
  store ptr %428, ptr %429, align 8
  %430 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %49, i64 noundef 1) #7
  %431 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %48, i32 0, i32 0
  store ptr %430, ptr %431, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #7
  %432 = load ptr, ptr %9, align 8, !tbaa !5
  %433 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %432, i32 0, i32 6
  %434 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %433) #7
  %435 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %51, i32 0, i32 0
  store ptr %434, ptr %435, align 8
  %436 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %94, i32 0, i32 2
  %437 = load i32, ptr %436, align 4, !tbaa !11
  %438 = sext i32 %437 to i64
  %439 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %51, i64 noundef %438) #7
  %440 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %50, i32 0, i32 0
  store ptr %439, ptr %440, align 8
  %441 = load ptr, ptr %9, align 8, !tbaa !5
  %442 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %441, i32 0, i32 7
  %443 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %442) #7
  %444 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %52, i32 0, i32 0
  store ptr %443, ptr %444, align 8
  %445 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %48, i32 0, i32 0
  %446 = load ptr, ptr %445, align 8
  %447 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %50, i32 0, i32 0
  %448 = load ptr, ptr %447, align 8
  %449 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %52, i32 0, i32 0
  %450 = load ptr, ptr %449, align 8
  %451 = call ptr @_ZSt12reverse_copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_ET0_T_S8_S7_(ptr %446, ptr %448, ptr %450)
  %452 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %53, i32 0, i32 0
  store ptr %451, ptr %452, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #7
  %453 = load ptr, ptr %9, align 8, !tbaa !5
  %454 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %453, i32 0, i32 6
  %455 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %454) #7
  %456 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %54, i32 0, i32 0
  store ptr %455, ptr %456, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #7
  %457 = load ptr, ptr %9, align 8, !tbaa !5
  %458 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %457, i32 0, i32 6
  %459 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %458) #7
  %460 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %56, i32 0, i32 0
  store ptr %459, ptr %460, align 8
  %461 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %94, i32 0, i32 2
  %462 = load i32, ptr %461, align 4, !tbaa !11
  %463 = sext i32 %462 to i64
  %464 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %56, i64 noundef %463) #7
  %465 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %55, i32 0, i32 0
  store ptr %464, ptr %465, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #7
  %466 = load ptr, ptr %9, align 8, !tbaa !5
  %467 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %466, i32 0, i32 7
  %468 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %467) #7
  %469 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %59, i32 0, i32 0
  store ptr %468, ptr %469, align 8
  %470 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %94, i32 0, i32 2
  %471 = load i32, ptr %470, align 4, !tbaa !11
  %472 = sext i32 %471 to i64
  %473 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %59, i64 noundef %472) #7
  %474 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %58, i32 0, i32 0
  store ptr %473, ptr %474, align 8
  %475 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEmiEl(ptr noundef nonnull align 8 dereferenceable(8) %58, i64 noundef 1) #7
  %476 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %57, i32 0, i32 0
  store ptr %475, ptr %476, align 8
  %477 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %54, i32 0, i32 0
  %478 = load ptr, ptr %477, align 8
  %479 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %55, i32 0, i32 0
  %480 = load ptr, ptr %479, align 8
  %481 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %57, i32 0, i32 0
  %482 = load ptr, ptr %481, align 8
  %483 = call ptr @_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_ET0_T_S8_S7_(ptr %478, ptr %480, ptr %482)
  %484 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %60, i32 0, i32 0
  store ptr %483, ptr %484, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #7
  %485 = load ptr, ptr %9, align 8, !tbaa !5
  %486 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %485, i32 0, i32 10
  %487 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %486) #7
  %488 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %62, i32 0, i32 0
  store ptr %487, ptr %488, align 8
  %489 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %62, i64 noundef 2) #7
  %490 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %61, i32 0, i32 0
  store ptr %489, ptr %490, align 8
  %491 = load ptr, ptr %9, align 8, !tbaa !5
  %492 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %491, i32 0, i32 10
  %493 = call ptr @_ZNSt6vectorIdSaIdEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %492) #7
  %494 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %63, i32 0, i32 0
  store ptr %493, ptr %494, align 8
  %495 = load ptr, ptr %9, align 8, !tbaa !5
  %496 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %495, i32 0, i32 11
  %497 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %496) #7
  %498 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %64, i32 0, i32 0
  store ptr %497, ptr %498, align 8
  %499 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %61, i32 0, i32 0
  %500 = load ptr, ptr %499, align 8
  %501 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %63, i32 0, i32 0
  %502 = load ptr, ptr %501, align 8
  %503 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %64, i32 0, i32 0
  %504 = load ptr, ptr %503, align 8
  %505 = call ptr @_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_ET0_T_S8_S7_(ptr %500, ptr %502, ptr %504)
  %506 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %65, i32 0, i32 0
  store ptr %505, ptr %506, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #7
  %507 = load ptr, ptr %9, align 8, !tbaa !5
  %508 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %507, i32 0, i32 14
  %509 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %508) #7
  %510 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %67, i32 0, i32 0
  store ptr %509, ptr %510, align 8
  %511 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %67, i64 noundef 1) #7
  %512 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %66, i32 0, i32 0
  store ptr %511, ptr %512, align 8
  %513 = load ptr, ptr %9, align 8, !tbaa !5
  %514 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %513, i32 0, i32 14
  %515 = call ptr @_ZNSt6vectorIdSaIdEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %514) #7
  %516 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %68, i32 0, i32 0
  store ptr %515, ptr %516, align 8
  %517 = load ptr, ptr %9, align 8, !tbaa !5
  %518 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %517, i32 0, i32 15
  %519 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %518) #7
  %520 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %69, i32 0, i32 0
  store ptr %519, ptr %520, align 8
  %521 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %66, i32 0, i32 0
  %522 = load ptr, ptr %521, align 8
  %523 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %68, i32 0, i32 0
  %524 = load ptr, ptr %523, align 8
  %525 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %69, i32 0, i32 0
  %526 = load ptr, ptr %525, align 8
  %527 = call ptr @_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_ET0_T_S8_S7_(ptr %522, ptr %524, ptr %526)
  %528 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %70, i32 0, i32 0
  store ptr %527, ptr %528, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #7
  %529 = load double, ptr %7, align 8, !tbaa !9
  %530 = fcmp oeq double 0.000000e+00, %529
  br i1 %530, label %531, label %537

531:                                              ; preds = %417
  %532 = load ptr, ptr %9, align 8, !tbaa !5
  %533 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %532, i32 0, i32 14
  %534 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %533, i64 noundef 0) #7
  %535 = load double, ptr %534, align 8, !tbaa !9
  %536 = load ptr, ptr %8, align 8, !tbaa !5
  store double %535, ptr %536, align 8, !tbaa !9
  br label %578

537:                                              ; preds = %417
  %538 = load double, ptr %7, align 8, !tbaa !9
  %539 = fcmp une double -1.000000e+00, %538
  br i1 %539, label %540, label %577

540:                                              ; preds = %537
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #7
  store double 0.000000e+00, ptr %71, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #7
  %541 = load ptr, ptr %9, align 8, !tbaa !5
  %542 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %541, i32 0, i32 14
  %543 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %542, i64 noundef 0) #7
  store ptr %543, ptr %72, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #7
  %544 = load ptr, ptr %9, align 8, !tbaa !5
  %545 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %544, i32 0, i32 1
  %546 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %545, i64 noundef 0) #7
  store ptr %546, ptr %73, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #7
  store i32 1, ptr %74, align 4, !tbaa !33
  br label %547

547:                                              ; preds = %566, %540
  %548 = load i32, ptr %74, align 4, !tbaa !33
  %549 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %94, i32 0, i32 2
  %550 = load i32, ptr %549, align 4, !tbaa !11
  %551 = icmp sle i32 %548, %550
  br i1 %551, label %553, label %552

552:                                              ; preds = %547
  store i32 5, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #7
  br label %569

553:                                              ; preds = %547
  %554 = load ptr, ptr %72, align 8, !tbaa !5
  %555 = load i32, ptr %74, align 4, !tbaa !33
  %556 = sext i32 %555 to i64
  %557 = getelementptr inbounds double, ptr %554, i64 %556
  %558 = load double, ptr %557, align 8, !tbaa !9
  %559 = load ptr, ptr %73, align 8, !tbaa !5
  %560 = load i32, ptr %74, align 4, !tbaa !33
  %561 = sext i32 %560 to i64
  %562 = getelementptr inbounds double, ptr %559, i64 %561
  %563 = load double, ptr %562, align 8, !tbaa !9
  %564 = load double, ptr %71, align 8, !tbaa !9
  %565 = call double @llvm.fmuladd.f64(double %558, double %563, double %564)
  store double %565, ptr %71, align 8, !tbaa !9
  br label %566

566:                                              ; preds = %553
  %567 = load i32, ptr %74, align 4, !tbaa !33
  %568 = add nsw i32 %567, 1
  store i32 %568, ptr %74, align 4, !tbaa !33
  br label %547, !llvm.loop !38

569:                                              ; preds = %552
  %570 = load ptr, ptr %72, align 8, !tbaa !5
  %571 = getelementptr inbounds double, ptr %570, i64 0
  %572 = load double, ptr %571, align 8, !tbaa !9
  %573 = load double, ptr %7, align 8, !tbaa !9
  %574 = load double, ptr %71, align 8, !tbaa !9
  %575 = call double @llvm.fmuladd.f64(double %573, double %574, double %572)
  %576 = load ptr, ptr %8, align 8, !tbaa !5
  store double %575, ptr %576, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #7
  br label %577

577:                                              ; preds = %569, %537
  br label %578

578:                                              ; preds = %577, %531
  %579 = load double, ptr %7, align 8, !tbaa !9
  %580 = fcmp une double 0.000000e+00, %579
  br i1 %580, label %581, label %608

581:                                              ; preds = %578
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #7
  %582 = load double, ptr %7, align 8, !tbaa !9
  %583 = fadd double 1.000000e+00, %582
  store double %583, ptr %75, align 8, !tbaa !9
  %584 = load ptr, ptr %9, align 8, !tbaa !5
  %585 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %584, i32 0, i32 11
  %586 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %585) #7
  %587 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %76, i32 0, i32 0
  store ptr %586, ptr %587, align 8
  %588 = load ptr, ptr %9, align 8, !tbaa !5
  %589 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %588, i32 0, i32 11
  %590 = call ptr @_ZNSt6vectorIdSaIdEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %589) #7
  %591 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %77, i32 0, i32 0
  store ptr %590, ptr %591, align 8
  %592 = load ptr, ptr %9, align 8, !tbaa !5
  %593 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %592, i32 0, i32 11
  %594 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %593) #7
  %595 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %78, i32 0, i32 0
  store ptr %594, ptr %595, align 8
  %596 = getelementptr inbounds %class.anon.16, ptr %79, i32 0, i32 0
  %597 = load double, ptr %75, align 8, !tbaa !9
  store double %597, ptr %596, align 8, !tbaa !39
  %598 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %76, i32 0, i32 0
  %599 = load ptr, ptr %598, align 8
  %600 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %77, i32 0, i32 0
  %601 = load ptr, ptr %600, align 8
  %602 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %78, i32 0, i32 0
  %603 = load ptr, ptr %602, align 8
  %604 = getelementptr inbounds %class.anon.16, ptr %79, i32 0, i32 0
  %605 = load double, ptr %604, align 8
  %606 = call ptr @"_ZSt9transformIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_ZNK4sptk30MelGeneralizedCepstralAnalysis19NewtonRaphsonMethodEdS2_PNS8_6BufferEE3$_1ET0_T_SD_SC_T1_"(ptr %599, ptr %601, ptr %603, double %605)
  %607 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %80, i32 0, i32 0
  store ptr %606, ptr %607, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #7
  br label %608

608:                                              ; preds = %581, %578
  %609 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %94, i32 0, i32 11
  %610 = load ptr, ptr %9, align 8, !tbaa !5
  %611 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %610, i32 0, i32 7
  %612 = load ptr, ptr %9, align 8, !tbaa !5
  %613 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %612, i32 0, i32 11
  %614 = load ptr, ptr %9, align 8, !tbaa !5
  %615 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %614, i32 0, i32 15
  %616 = load ptr, ptr %9, align 8, !tbaa !5
  %617 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %616, i32 0, i32 18
  %618 = load ptr, ptr %9, align 8, !tbaa !5
  %619 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %618, i32 0, i32 21
  %620 = call noundef zeroext i1 @_ZNK4sptk30ToeplitzPlusHankelSystemSolver3RunERKSt6vectorIdSaIdEES5_S5_PS3_PNS0_6BufferE(ptr noundef nonnull align 8 dereferenceable(14) %609, ptr noundef nonnull align 8 dereferenceable(24) %611, ptr noundef nonnull align 8 dereferenceable(24) %613, ptr noundef nonnull align 8 dereferenceable(24) %615, ptr noundef %617, ptr noundef %619)
  br i1 %620, label %622, label %621

621:                                              ; preds = %608
  store i1 false, ptr %5, align 1
  store i32 1, ptr %11, align 4
  br label %700

622:                                              ; preds = %608
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #7
  %623 = load ptr, ptr %9, align 8, !tbaa !5
  %624 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %623, i32 0, i32 1
  %625 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %624) #7
  %626 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %82, i32 0, i32 0
  store ptr %625, ptr %626, align 8
  %627 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %82, i64 noundef 1) #7
  %628 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %81, i32 0, i32 0
  store ptr %627, ptr %628, align 8
  %629 = load ptr, ptr %9, align 8, !tbaa !5
  %630 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %629, i32 0, i32 1
  %631 = call ptr @_ZNSt6vectorIdSaIdEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %630) #7
  %632 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %83, i32 0, i32 0
  store ptr %631, ptr %632, align 8
  %633 = load ptr, ptr %9, align 8, !tbaa !5
  %634 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %633, i32 0, i32 18
  %635 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %634) #7
  %636 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %84, i32 0, i32 0
  store ptr %635, ptr %636, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #7
  %637 = load ptr, ptr %9, align 8, !tbaa !5
  %638 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %637, i32 0, i32 1
  %639 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %638) #7
  %640 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %86, i32 0, i32 0
  store ptr %639, ptr %640, align 8
  %641 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %86, i64 noundef 1) #7
  %642 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %85, i32 0, i32 0
  store ptr %641, ptr %642, align 8
  %643 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %81, i32 0, i32 0
  %644 = load ptr, ptr %643, align 8
  %645 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %83, i32 0, i32 0
  %646 = load ptr, ptr %645, align 8
  %647 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %84, i32 0, i32 0
  %648 = load ptr, ptr %647, align 8
  %649 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %85, i32 0, i32 0
  %650 = load ptr, ptr %649, align 8
  %651 = call ptr @_ZSt9transformIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_S6_St4plusIdEET1_T_SA_T0_S9_T2_(ptr %644, ptr %646, ptr %648, ptr %650)
  %652 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %88, i32 0, i32 0
  store ptr %651, ptr %652, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #7
  %653 = load double, ptr %7, align 8, !tbaa !9
  %654 = fcmp oeq double -1.000000e+00, %653
  br i1 %654, label %655, label %692

655:                                              ; preds = %622
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #7
  store double 0.000000e+00, ptr %89, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #7
  %656 = load ptr, ptr %9, align 8, !tbaa !5
  %657 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %656, i32 0, i32 14
  %658 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %657, i64 noundef 0) #7
  store ptr %658, ptr %90, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #7
  %659 = load ptr, ptr %9, align 8, !tbaa !5
  %660 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %659, i32 0, i32 1
  %661 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %660, i64 noundef 0) #7
  store ptr %661, ptr %91, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #7
  store i32 1, ptr %92, align 4, !tbaa !33
  br label %662

662:                                              ; preds = %681, %655
  %663 = load i32, ptr %92, align 4, !tbaa !33
  %664 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %94, i32 0, i32 2
  %665 = load i32, ptr %664, align 4, !tbaa !11
  %666 = icmp sle i32 %663, %665
  br i1 %666, label %668, label %667

667:                                              ; preds = %662
  store i32 8, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #7
  br label %684

668:                                              ; preds = %662
  %669 = load ptr, ptr %90, align 8, !tbaa !5
  %670 = load i32, ptr %92, align 4, !tbaa !33
  %671 = sext i32 %670 to i64
  %672 = getelementptr inbounds double, ptr %669, i64 %671
  %673 = load double, ptr %672, align 8, !tbaa !9
  %674 = load ptr, ptr %91, align 8, !tbaa !5
  %675 = load i32, ptr %92, align 4, !tbaa !33
  %676 = sext i32 %675 to i64
  %677 = getelementptr inbounds double, ptr %674, i64 %676
  %678 = load double, ptr %677, align 8, !tbaa !9
  %679 = load double, ptr %89, align 8, !tbaa !9
  %680 = call double @llvm.fmuladd.f64(double %673, double %678, double %679)
  store double %680, ptr %89, align 8, !tbaa !9
  br label %681

681:                                              ; preds = %668
  %682 = load i32, ptr %92, align 4, !tbaa !33
  %683 = add nsw i32 %682, 1
  store i32 %683, ptr %92, align 4, !tbaa !33
  br label %662, !llvm.loop !41

684:                                              ; preds = %667
  %685 = load ptr, ptr %90, align 8, !tbaa !5
  %686 = getelementptr inbounds double, ptr %685, i64 0
  %687 = load double, ptr %686, align 8, !tbaa !9
  %688 = load double, ptr %7, align 8, !tbaa !9
  %689 = load double, ptr %89, align 8, !tbaa !9
  %690 = call double @llvm.fmuladd.f64(double %688, double %689, double %687)
  %691 = load ptr, ptr %8, align 8, !tbaa !5
  store double %690, ptr %691, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #7
  br label %692

692:                                              ; preds = %684, %622
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #7
  %693 = load ptr, ptr %8, align 8, !tbaa !5
  %694 = load double, ptr %693, align 8, !tbaa !9
  %695 = call double @sqrt(double noundef %694) #7
  store double %695, ptr %93, align 8, !tbaa !9
  %696 = load double, ptr %93, align 8, !tbaa !9
  %697 = load ptr, ptr %9, align 8, !tbaa !5
  %698 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis::Buffer", ptr %697, i32 0, i32 1
  %699 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %698, i64 noundef 0) #7
  store double %696, ptr %699, align 8, !tbaa !9
  store i1 true, ptr %5, align 1
  store i32 1, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #7
  br label %700

700:                                              ; preds = %692, %621, %391, %379, %303, %123
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #7
  %701 = load i1, ptr %5, align 1
  ret i1 %701
}

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_130CoefficientsFrequencyTransformERKSt6vectorIdSaIdEEiidPS2_S5_(ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, i32 noundef, double noundef, ptr noundef, ptr noundef) #2

declare noundef zeroext i1 @_ZNK4sptk30RealValuedFastFourierTransform3RunERKSt6vectorIdSaIdEEPS3_S6_PNS0_6BufferE(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef, ptr noundef, ptr noundef) #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local ptr @_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_ET0_T_S8_S7_(ptr, ptr, ptr) #4

; Function Attrs: mustprogress uwtable
declare hidden ptr @"_ZSt9transformIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_S6_ZNK4sptk30MelGeneralizedCepstralAnalysis19NewtonRaphsonMethodEdS2_PNS8_6BufferEE3$_0ET1_T_SD_T0_SC_T2_"(ptr, ptr, ptr, ptr) #2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #5

; Function Attrs: nounwind
declare double @pow(double noundef, double noundef) #6

declare noundef zeroext i1 @_ZNK4sptk37RealValuedInverseFastFourierTransform3RunERKSt6vectorIdSaIdEEPS3_S6_PNS0_6BufferE(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef, ptr noundef, ptr noundef) #3

declare noundef zeroext i1 @_ZNK4sptk27InverseFastFourierTransform3RunERKSt6vectorIdSaIdEES5_PS3_S6_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef, ptr noundef) #3

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZN12_GLOBAL__N_110PTransformEdPSt6vectorIdSaIdEE(double noundef, ptr noundef) #1

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZN12_GLOBAL__N_110QTransformEdPSt6vectorIdSaIdEE(double noundef, ptr noundef) #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZSt12reverse_copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_ET0_T_S8_S7_(ptr, ptr, ptr) #1

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

; Function Attrs: mustprogress uwtable
declare hidden ptr @"_ZSt9transformIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_ZNK4sptk30MelGeneralizedCepstralAnalysis19NewtonRaphsonMethodEdS2_PNS8_6BufferEE3$_1ET0_T_SD_SC_T1_"(ptr, ptr, ptr, double) #2

declare noundef zeroext i1 @_ZNK4sptk30ToeplitzPlusHankelSystemSolver3RunERKSt6vectorIdSaIdEES5_S5_PS3_PNS0_6BufferE(ptr noundef nonnull align 8 dereferenceable(14), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef, ptr noundef) #3

; Function Attrs: mustprogress uwtable
declare dso_local ptr @_ZSt9transformIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_S6_St4plusIdEET1_T_SA_T0_S9_T2_(ptr, ptr, ptr, ptr) #2

; Function Attrs: nounwind
declare double @sqrt(double noundef) #6

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { 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 #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #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 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"double", !7, i64 0}
!11 = !{!12, !13, i64 12}
!12 = !{!"_ZTSN4sptk30MelGeneralizedCepstralAnalysisE", !13, i64 8, !13, i64 12, !10, i64 16, !10, i64 24, !13, i64 32, !10, i64 40, !14, i64 48, !21, i64 152, !22, i64 264, !23, i64 320, !24, i64 336, !25, i64 368, !25, i64 400, !26, i64 432, !27, i64 464, !28, i64 496, !6, i64 600, !16, i64 608}
!13 = !{!"int", !7, i64 0}
!14 = !{!"_ZTSN4sptk30RealValuedFastFourierTransformE", !13, i64 8, !13, i64 12, !13, i64 16, !15, i64 24, !16, i64 72, !17, i64 80}
!15 = !{!"_ZTSN4sptk20FastFourierTransformE", !13, i64 8, !13, i64 12, !13, i64 16, !16, i64 20, !17, i64 24}
!16 = !{!"bool", !7, i64 0}
!17 = !{!"_ZTSSt6vectorIdSaIdEE", !18, i64 0}
!18 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!21 = !{!"_ZTSN4sptk37RealValuedInverseFastFourierTransformE", !14, i64 8}
!22 = !{!"_ZTSN4sptk27InverseFastFourierTransformE", !15, i64 8}
!23 = !{!"_ZTSN4sptk30ToeplitzPlusHankelSystemSolverE", !13, i64 8, !16, i64 12, !16, i64 13}
!24 = !{!"_ZTSN4sptk36GeneralizedCepstrumGainNormalizationE", !13, i64 8, !10, i64 16, !16, i64 24}
!25 = !{!"_ZTSN4sptk43GeneralizedCepstrumInverseGainNormalizationE", !13, i64 8, !10, i64 16, !16, i64 24}
!26 = !{!"_ZTSN4sptk42MelCepstrumToMlsaDigitalFilterCoefficientsE", !13, i64 8, !10, i64 16, !16, i64 24}
!27 = !{!"_ZTSN4sptk42MlsaDigitalFilterCoefficientsToMelCepstrumE", !13, i64 8, !10, i64 16, !16, i64 24}
!28 = !{!"_ZTSN4sptk46MelGeneralizedCepstrumToMelGeneralizedCepstrumE", !13, i64 8, !10, i64 16, !10, i64 24, !16, i64 32, !16, i64 33, !13, i64 36, !10, i64 40, !10, i64 48, !16, i64 56, !16, i64 57, !10, i64 64, !29, i64 72, !16, i64 96}
!29 = !{!"_ZTSSt6vectorIPN4sptk46MelGeneralizedCepstrumToMelGeneralizedCepstrum15ModuleInterfaceESaIS3_EE", !30, i64 0}
!30 = !{!"_ZTSSt12_Vector_baseIPN4sptk46MelGeneralizedCepstrumToMelGeneralizedCepstrum15ModuleInterfaceESaIS3_EE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseIPN4sptk46MelGeneralizedCepstrumToMelGeneralizedCepstrum15ModuleInterfaceESaIS3_EE12_Vector_implE", !32, i64 0}
!32 = !{!"_ZTSNSt12_Vector_baseIPN4sptk46MelGeneralizedCepstrumToMelGeneralizedCepstrum15ModuleInterfaceESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!33 = !{!13, !13, i64 0}
!34 = !{!12, !13, i64 8}
!35 = !{!12, !10, i64 16}
!36 = distinct !{!36, !37}
!37 = !{!"llvm.loop.mustprogress"}
!38 = distinct !{!38, !37}
!39 = !{!40, !10, i64 0}
!40 = !{!"_ZTSZNK4sptk30MelGeneralizedCepstralAnalysis19NewtonRaphsonMethodEdPdPNS0_6BufferEE3$_1", !10, i64 0}
!41 = distinct !{!41, !37}


; 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.__gnu_cxx::__normal_iterator" = type { ptr }

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZNK4sptk30MelGeneralizedCepstralAnalysis19NewtonRaphsonMethodEdPdPNS0_6BufferE(ptr noundef nonnull align 8 dereferenceable(609) %0, double noundef %1, ptr nocapture noundef %2, ptr noundef %3) local_unnamed_addr #2 align 2 {
  %5 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %6 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %7 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %8 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %9 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %10 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %11 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %12 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %13 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %14 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %15 = getelementptr inbounds i8, ptr %0, i64 12
  %16 = load i32, ptr %15, align 4, !tbaa !5
  %17 = add nsw i32 %16, 1
  %18 = getelementptr inbounds i8, ptr %3, i64 8
  %19 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %18, i64 noundef 0) #7
  store double 0.000000e+00, ptr %19, align 8, !tbaa !31
  %20 = getelementptr inbounds i8, ptr %0, i64 8
  %21 = load i32, ptr %20, align 8, !tbaa !32
  %22 = getelementptr inbounds i8, ptr %0, i64 16
  %23 = load double, ptr %22, align 8, !tbaa !33
  %24 = fneg double %23
  %25 = getelementptr inbounds i8, ptr %3, i64 32
  %26 = getelementptr inbounds i8, ptr %3, i64 368
  tail call void @_ZN12_GLOBAL__N_130CoefficientsFrequencyTransformERKSt6vectorIdSaIdEEiidPS2_S5_(ptr noundef nonnull align 8 dereferenceable(24) %18, i32 noundef %17, i32 noundef %21, double noundef %24, ptr noundef nonnull %25, ptr noundef nonnull %26)
  %27 = getelementptr inbounds i8, ptr %0, i64 48
  %28 = getelementptr inbounds i8, ptr %3, i64 56
  %29 = getelementptr inbounds i8, ptr %3, i64 80
  %30 = getelementptr inbounds i8, ptr %3, i64 440
  %31 = tail call noundef zeroext i1 @_ZNK4sptk30RealValuedFastFourierTransform3RunERKSt6vectorIdSaIdEEPS3_S6_PNS0_6BufferE(ptr noundef nonnull align 8 dereferenceable(104) %27, ptr noundef nonnull align 8 dereferenceable(24) %25, ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef nonnull %30)
  br i1 %31, label %32, label %271

32:                                               ; preds = %4
  %33 = fcmp oeq double %1, -1.000000e+00
  br i1 %33, label %34, label %41

34:                                               ; preds = %32
  %35 = getelementptr inbounds i8, ptr %3, i64 392
  %36 = tail call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %35) #7
  %37 = tail call ptr @_ZNSt6vectorIdSaIdEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %35) #7
  %38 = getelementptr inbounds i8, ptr %3, i64 104
  %39 = tail call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %38) #7
  %40 = tail call ptr @_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_ET0_T_S8_S7_(ptr %36, ptr %37, ptr %39)
  br label %.loopexit

41:                                               ; preds = %32
  %42 = fcmp oeq double %1, 0.000000e+00
  %43 = getelementptr inbounds i8, ptr %3, i64 392
  %44 = getelementptr inbounds i8, ptr %3, i64 104
  br i1 %42, label %45, label %51

45:                                               ; preds = %41
  %46 = tail call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %43) #7
  %47 = tail call ptr @_ZNSt6vectorIdSaIdEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %43) #7
  %48 = tail call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %28) #7
  %49 = tail call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %44) #7
  %50 = tail call ptr @"_ZSt9transformIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_S6_ZNK4sptk30MelGeneralizedCepstralAnalysis19NewtonRaphsonMethodEdS2_PNS8_6BufferEE3$_0ET1_T_SD_T0_SC_T2_"(ptr %46, ptr %47, ptr %48, ptr %49)
  br label %.loopexit

51:                                               ; preds = %41
  %52 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %43, i64 noundef 0) #7
  %53 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %28, i64 noundef 0) #7
  %54 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %29, i64 noundef 0) #7
  %55 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef 0) #7
  %56 = getelementptr inbounds i8, ptr %3, i64 176
  %57 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %56, i64 noundef 0) #7
  %58 = getelementptr inbounds i8, ptr %3, i64 200
  %59 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %58, i64 noundef 0) #7
  %60 = getelementptr inbounds i8, ptr %3, i64 272
  %61 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %60, i64 noundef 0) #7
  %62 = getelementptr inbounds i8, ptr %3, i64 296
  %63 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %62, i64 noundef 0) #7
  %64 = load i32, ptr %20, align 8, !tbaa !32
  %65 = icmp sgt i32 %64, 0
  br i1 %65, label %.lr.ph, label %.loopexit

.lr.ph:                                           ; preds = %51
  %66 = fdiv double -1.000000e+00, %1
  br label %67

67:                                               ; preds = %.lr.ph, %67
  %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %67 ]
  %68 = getelementptr inbounds double, ptr %53, i64 %indvars.iv
  %69 = load double, ptr %68, align 8, !tbaa !31
  %70 = tail call double @llvm.fmuladd.f64(double %1, double %69, double 1.000000e+00)
  %71 = getelementptr inbounds double, ptr %54, i64 %indvars.iv
  %72 = load double, ptr %71, align 8, !tbaa !31
  %73 = fmul double %72, %1
  %74 = fmul double %70, %70
  %75 = fmul double %73, %73
  %76 = fadd double %74, %75
  %77 = tail call double @pow(double noundef %76, double noundef %66) #7
  %78 = getelementptr inbounds double, ptr %52, i64 %indvars.iv
  %79 = load double, ptr %78, align 8, !tbaa !31
  %80 = fmul double %77, %79
  %81 = fdiv double %80, %76
  %82 = getelementptr inbounds double, ptr %55, i64 %indvars.iv
  store double %81, ptr %82, align 8, !tbaa !31
  %83 = fdiv double %81, %76
  %84 = fsub double %74, %75
  %85 = fmul double %84, %83
  %86 = getelementptr inbounds double, ptr %57, i64 %indvars.iv
  store double %85, ptr %86, align 8, !tbaa !31
  %87 = fmul double %70, 2.000000e+00
  %88 = fmul double %87, %73
  %89 = fmul double %88, %83
  %90 = getelementptr inbounds double, ptr %59, i64 %indvars.iv
  store double %89, ptr %90, align 8, !tbaa !31
  %91 = fmul double %70, %81
  %92 = getelementptr inbounds double, ptr %61, i64 %indvars.iv
  store double %91, ptr %92, align 8, !tbaa !31
  %93 = fmul double %73, %81
  %94 = getelementptr inbounds double, ptr %63, i64 %indvars.iv
  store double %93, ptr %94, align 8, !tbaa !31
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %95 = load i32, ptr %20, align 8, !tbaa !32
  %96 = sext i32 %95 to i64
  %97 = icmp slt i64 %indvars.iv.next, %96
  br i1 %97, label %67, label %.loopexit, !llvm.loop !34

.loopexit:                                        ; preds = %67, %51, %45, %34
  %98 = getelementptr inbounds i8, ptr %0, i64 152
  %99 = getelementptr inbounds i8, ptr %3, i64 104
  %100 = getelementptr inbounds i8, ptr %3, i64 496
  %101 = tail call noundef zeroext i1 @_ZNK4sptk37RealValuedInverseFastFourierTransform3RunERKSt6vectorIdSaIdEEPS3_S6_PNS0_6BufferE(ptr noundef nonnull align 8 dereferenceable(112) %98, ptr noundef nonnull align 8 dereferenceable(24) %99, ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef nonnull %100)
  br i1 %101, label %102, label %271

102:                                              ; preds = %.loopexit
  %103 = load i32, ptr %20, align 8, !tbaa !32
  %104 = shl nsw i32 %17, 1
  %105 = add nsw i32 %104, -1
  %106 = load double, ptr %22, align 8, !tbaa !33
  %107 = getelementptr inbounds i8, ptr %3, i64 128
  tail call void @_ZN12_GLOBAL__N_130CoefficientsFrequencyTransformERKSt6vectorIdSaIdEEiidPS2_S5_(ptr noundef nonnull align 8 dereferenceable(24) %28, i32 noundef %103, i32 noundef %105, double noundef %106, ptr noundef nonnull %107, ptr noundef nonnull %26)
  %108 = fcmp oeq double %1, 0.000000e+00
  %or.cond = or i1 %108, %33
  br i1 %or.cond, label %109, label %122

109:                                              ; preds = %102
  %110 = tail call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %107) #7
  %111 = tail call ptr @_ZNSt6vectorIdSaIdEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %107) #7
  %112 = getelementptr inbounds i8, ptr %3, i64 224
  %113 = tail call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %112) #7
  %114 = tail call ptr @_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_ET0_T_S8_S7_(ptr %110, ptr %111, ptr %113)
  %115 = tail call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %107) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #7
  %116 = tail call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %107) #7
  store ptr %116, ptr %5, align 8
  %117 = sext i32 %17 to i64
  %118 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %5, i64 noundef %117) #7
  %119 = getelementptr inbounds i8, ptr %3, i64 320
  %120 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %119) #7
  %121 = call ptr @_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_ET0_T_S8_S7_(ptr %115, ptr %118, ptr %120)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #7
  br label %138

122:                                              ; preds = %102
  %123 = getelementptr inbounds i8, ptr %0, i64 264
  %124 = getelementptr inbounds i8, ptr %3, i64 176
  %125 = getelementptr inbounds i8, ptr %3, i64 200
  %126 = tail call noundef zeroext i1 @_ZNK4sptk27InverseFastFourierTransform3RunERKSt6vectorIdSaIdEES5_PS3_S6_(ptr noundef nonnull align 8 dereferenceable(56) %123, ptr noundef nonnull align 8 dereferenceable(24) %124, ptr noundef nonnull align 8 dereferenceable(24) %125, ptr noundef nonnull %124, ptr noundef nonnull %125)
  br i1 %126, label %127, label %271

127:                                              ; preds = %122
  %128 = getelementptr inbounds i8, ptr %3, i64 272
  %129 = getelementptr inbounds i8, ptr %3, i64 296
  %130 = tail call noundef zeroext i1 @_ZNK4sptk27InverseFastFourierTransform3RunERKSt6vectorIdSaIdEES5_PS3_S6_(ptr noundef nonnull align 8 dereferenceable(56) %123, ptr noundef nonnull align 8 dereferenceable(24) %128, ptr noundef nonnull align 8 dereferenceable(24) %129, ptr noundef nonnull %128, ptr noundef nonnull %129)
  br i1 %130, label %131, label %271

131:                                              ; preds = %127
  %132 = load i32, ptr %20, align 8, !tbaa !32
  %133 = load double, ptr %22, align 8, !tbaa !33
  %134 = getelementptr inbounds i8, ptr %3, i64 224
  tail call void @_ZN12_GLOBAL__N_130CoefficientsFrequencyTransformERKSt6vectorIdSaIdEEiidPS2_S5_(ptr noundef nonnull align 8 dereferenceable(24) %124, i32 noundef %132, i32 noundef %105, double noundef %133, ptr noundef nonnull %134, ptr noundef nonnull %26)
  %135 = load i32, ptr %20, align 8, !tbaa !32
  %136 = load double, ptr %22, align 8, !tbaa !33
  %137 = getelementptr inbounds i8, ptr %3, i64 320
  tail call void @_ZN12_GLOBAL__N_130CoefficientsFrequencyTransformERKSt6vectorIdSaIdEEiidPS2_S5_(ptr noundef nonnull align 8 dereferenceable(24) %128, i32 noundef %135, i32 noundef %17, double noundef %136, ptr noundef nonnull %137, ptr noundef nonnull %26)
  br label %138

138:                                              ; preds = %131, %109
  %139 = load double, ptr %22, align 8, !tbaa !33
  call void @_ZN12_GLOBAL__N_110PTransformEdPSt6vectorIdSaIdEE(double noundef %139, ptr noundef nonnull %107)
  %140 = load double, ptr %22, align 8, !tbaa !33
  %141 = getelementptr inbounds i8, ptr %3, i64 224
  call void @_ZN12_GLOBAL__N_110QTransformEdPSt6vectorIdSaIdEE(double noundef %140, ptr noundef nonnull %141)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #7
  %142 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %107) #7
  store ptr %142, ptr %6, align 8
  %143 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %6, i64 noundef 1) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #7
  %144 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %107) #7
  store ptr %144, ptr %7, align 8
  %145 = load i32, ptr %15, align 4, !tbaa !5
  %146 = sext i32 %145 to i64
  %147 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %7, i64 noundef %146) #7
  %148 = getelementptr inbounds i8, ptr %3, i64 152
  %149 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %148) #7
  %150 = call ptr @_ZSt12reverse_copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_ET0_T_S8_S7_(ptr %143, ptr %147, ptr %149)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #7
  %151 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %107) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #7
  %152 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %107) #7
  store ptr %152, ptr %8, align 8
  %153 = load i32, ptr %15, align 4, !tbaa !5
  %154 = sext i32 %153 to i64
  %155 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %8, i64 noundef %154) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #7
  %156 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %148) #7
  store ptr %156, ptr %10, align 8
  %157 = load i32, ptr %15, align 4, !tbaa !5
  %158 = sext i32 %157 to i64
  %159 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %10, i64 noundef %158) #7
  store ptr %159, ptr %9, align 8
  %160 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEmiEl(ptr noundef nonnull align 8 dereferenceable(8) %9, i64 noundef 1) #7
  %161 = call ptr @_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_ET0_T_S8_S7_(ptr %151, ptr %155, ptr %160)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #7
  %162 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %141) #7
  store ptr %162, ptr %11, align 8
  %163 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %11, i64 noundef 2) #7
  %164 = call ptr @_ZNSt6vectorIdSaIdEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %141) #7
  %165 = getelementptr inbounds i8, ptr %3, i64 248
  %166 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %165) #7
  %167 = call ptr @_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_ET0_T_S8_S7_(ptr %163, ptr %164, ptr %166)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #7
  %168 = getelementptr inbounds i8, ptr %3, i64 320
  %169 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %168) #7
  store ptr %169, ptr %12, align 8
  %170 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %12, i64 noundef 1) #7
  %171 = call ptr @_ZNSt6vectorIdSaIdEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %168) #7
  %172 = getelementptr inbounds i8, ptr %3, i64 344
  %173 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %172) #7
  %174 = call ptr @_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_ET0_T_S8_S7_(ptr %170, ptr %171, ptr %173)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #7
  br i1 %108, label %175, label %178

175:                                              ; preds = %138
  %176 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %168, i64 noundef 0) #7
  %177 = load double, ptr %176, align 8, !tbaa !31
  br label %.sink.split

178:                                              ; preds = %138
  %179 = fcmp une double %1, -1.000000e+00
  br i1 %179, label %180, label %213

180:                                              ; preds = %178
  %181 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %168, i64 noundef 0) #7
  %182 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %18, i64 noundef 0) #7
  %183 = load i32, ptr %15, align 4, !tbaa !5
  %.not217 = icmp slt i32 %183, 1
  br i1 %.not217, label %._crit_edge, label %.lr.ph220.preheader

.lr.ph220.preheader:                              ; preds = %180
  %184 = zext nneg i32 %183 to i64
  %xtraiter = and i64 %184, 3
  %185 = icmp ult i32 %183, 4
  br i1 %185, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph220.preheader.new

.lr.ph220.preheader.new:                          ; preds = %.lr.ph220.preheader
  %unroll_iter = and i64 %184, 2147483644
  br label %.lr.ph220

._crit_edge.loopexit.unr-lcssa:                   ; preds = %.lr.ph220, %.lr.ph220.preheader
  %.lcssa241.ph = phi double [ poison, %.lr.ph220.preheader ], [ %212, %.lr.ph220 ]
  %indvars.iv230.unr = phi i64 [ 1, %.lr.ph220.preheader ], [ %indvars.iv.next231.3, %.lr.ph220 ]
  %.0212219.unr = phi double [ 0.000000e+00, %.lr.ph220.preheader ], [ %212, %.lr.ph220 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge, label %.lr.ph220.epil

.lr.ph220.epil:                                   ; preds = %._crit_edge.loopexit.unr-lcssa, %.lr.ph220.epil
  %indvars.iv230.epil = phi i64 [ %indvars.iv.next231.epil, %.lr.ph220.epil ], [ %indvars.iv230.unr, %._crit_edge.loopexit.unr-lcssa ]
  %.0212219.epil = phi double [ %190, %.lr.ph220.epil ], [ %.0212219.unr, %._crit_edge.loopexit.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.lr.ph220.epil ], [ 0, %._crit_edge.loopexit.unr-lcssa ]
  %186 = getelementptr inbounds double, ptr %181, i64 %indvars.iv230.epil
  %187 = load double, ptr %186, align 8, !tbaa !31
  %188 = getelementptr inbounds double, ptr %182, i64 %indvars.iv230.epil
  %189 = load double, ptr %188, align 8, !tbaa !31
  %190 = call double @llvm.fmuladd.f64(double %187, double %189, double %.0212219.epil)
  %indvars.iv.next231.epil = add nuw nsw i64 %indvars.iv230.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter
  br i1 %epil.iter.cmp.not, label %._crit_edge, label %.lr.ph220.epil, !llvm.loop !36

._crit_edge:                                      ; preds = %._crit_edge.loopexit.unr-lcssa, %.lr.ph220.epil, %180
  %.0212.lcssa = phi double [ 0.000000e+00, %180 ], [ %.lcssa241.ph, %._crit_edge.loopexit.unr-lcssa ], [ %190, %.lr.ph220.epil ]
  %191 = load double, ptr %181, align 8, !tbaa !31
  %192 = call double @llvm.fmuladd.f64(double %1, double %.0212.lcssa, double %191)
  br label %.sink.split

.lr.ph220:                                        ; preds = %.lr.ph220, %.lr.ph220.preheader.new
  %indvars.iv230 = phi i64 [ 1, %.lr.ph220.preheader.new ], [ %indvars.iv.next231.3, %.lr.ph220 ]
  %.0212219 = phi double [ 0.000000e+00, %.lr.ph220.preheader.new ], [ %212, %.lr.ph220 ]
  %niter = phi i64 [ 0, %.lr.ph220.preheader.new ], [ %niter.next.3, %.lr.ph220 ]
  %193 = getelementptr inbounds double, ptr %181, i64 %indvars.iv230
  %194 = load double, ptr %193, align 8, !tbaa !31
  %195 = getelementptr inbounds double, ptr %182, i64 %indvars.iv230
  %196 = load double, ptr %195, align 8, !tbaa !31
  %197 = call double @llvm.fmuladd.f64(double %194, double %196, double %.0212219)
  %indvars.iv.next231 = add nuw nsw i64 %indvars.iv230, 1
  %198 = getelementptr inbounds double, ptr %181, i64 %indvars.iv.next231
  %199 = load double, ptr %198, align 8, !tbaa !31
  %200 = getelementptr inbounds double, ptr %182, i64 %indvars.iv.next231
  %201 = load double, ptr %200, align 8, !tbaa !31
  %202 = call double @llvm.fmuladd.f64(double %199, double %201, double %197)
  %indvars.iv.next231.1 = add nuw nsw i64 %indvars.iv230, 2
  %203 = getelementptr inbounds double, ptr %181, i64 %indvars.iv.next231.1
  %204 = load double, ptr %203, align 8, !tbaa !31
  %205 = getelementptr inbounds double, ptr %182, i64 %indvars.iv.next231.1
  %206 = load double, ptr %205, align 8, !tbaa !31
  %207 = call double @llvm.fmuladd.f64(double %204, double %206, double %202)
  %indvars.iv.next231.2 = add nuw nsw i64 %indvars.iv230, 3
  %208 = getelementptr inbounds double, ptr %181, i64 %indvars.iv.next231.2
  %209 = load double, ptr %208, align 8, !tbaa !31
  %210 = getelementptr inbounds double, ptr %182, i64 %indvars.iv.next231.2
  %211 = load double, ptr %210, align 8, !tbaa !31
  %212 = call double @llvm.fmuladd.f64(double %209, double %211, double %207)
  %indvars.iv.next231.3 = add nuw nsw i64 %indvars.iv230, 4
  %niter.next.3 = add i64 %niter, 4
  %niter.ncmp.3 = icmp eq i64 %niter.next.3, %unroll_iter
  br i1 %niter.ncmp.3, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph220, !llvm.loop !38

.sink.split:                                      ; preds = %175, %._crit_edge
  %.sink = phi double [ %192, %._crit_edge ], [ %177, %175 ]
  store double %.sink, ptr %2, align 8, !tbaa !31
  br label %213

213:                                              ; preds = %.sink.split, %178
  %214 = fcmp une double %1, 0.000000e+00
  br i1 %214, label %215, label %221

215:                                              ; preds = %213
  %216 = fadd double %1, 1.000000e+00
  %217 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %165) #7
  %218 = call ptr @_ZNSt6vectorIdSaIdEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %165) #7
  %219 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %165) #7
  %220 = call ptr @"_ZSt9transformIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_ZNK4sptk30MelGeneralizedCepstralAnalysis19NewtonRaphsonMethodEdS2_PNS8_6BufferEE3$_1ET0_T_SD_SC_T1_"(ptr %217, ptr %218, ptr %219, double %216)
  br label %221

221:                                              ; preds = %215, %213
  %222 = getelementptr inbounds i8, ptr %0, i64 320
  %223 = getelementptr inbounds i8, ptr %3, i64 416
  %224 = getelementptr inbounds i8, ptr %3, i64 560
  %225 = call noundef zeroext i1 @_ZNK4sptk30ToeplitzPlusHankelSystemSolver3RunERKSt6vectorIdSaIdEES5_S5_PS3_PNS0_6BufferE(ptr noundef nonnull align 8 dereferenceable(14) %222, ptr noundef nonnull align 8 dereferenceable(24) %148, ptr noundef nonnull align 8 dereferenceable(24) %165, ptr noundef nonnull align 8 dereferenceable(24) %172, ptr noundef nonnull %223, ptr noundef nonnull %224)
  br i1 %225, label %226, label %271

226:                                              ; preds = %221
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #7
  %227 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %18) #7
  store ptr %227, ptr %13, align 8
  %228 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %13, i64 noundef 1) #7
  %229 = call ptr @_ZNSt6vectorIdSaIdEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %18) #7
  %230 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %223) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #7
  %231 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %18) #7
  store ptr %231, ptr %14, align 8
  %232 = call ptr @_ZNK9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEplEl(ptr noundef nonnull align 8 dereferenceable(8) %14, i64 noundef 1) #7
  %233 = call ptr @_ZSt9transformIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_S6_St4plusIdEET1_T_SA_T0_S9_T2_(ptr %228, ptr %229, ptr %230, ptr %232)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #7
  br i1 %33, label %234, label %._crit_edge238

._crit_edge238:                                   ; preds = %226
  %.pre = load double, ptr %2, align 8, !tbaa !31
  br label %267

234:                                              ; preds = %226
  %235 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %168, i64 noundef 0) #7
  %236 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %18, i64 noundef 0) #7
  %237 = load i32, ptr %15, align 4, !tbaa !5
  %.not215221 = icmp slt i32 %237, 1
  br i1 %.not215221, label %._crit_edge226, label %.lr.ph225.preheader

.lr.ph225.preheader:                              ; preds = %234
  %238 = zext nneg i32 %237 to i64
  %xtraiter243 = and i64 %238, 3
  %239 = icmp ult i32 %237, 4
  br i1 %239, label %._crit_edge226.loopexit.unr-lcssa, label %.lr.ph225.preheader.new

.lr.ph225.preheader.new:                          ; preds = %.lr.ph225.preheader
  %unroll_iter247 = and i64 %238, 2147483644
  br label %.lr.ph225

._crit_edge226.loopexit.unr-lcssa:                ; preds = %.lr.ph225, %.lr.ph225.preheader
  %.lcssa.ph = phi double [ poison, %.lr.ph225.preheader ], [ %266, %.lr.ph225 ]
  %indvars.iv233.unr = phi i64 [ 1, %.lr.ph225.preheader ], [ %indvars.iv.next234.3, %.lr.ph225 ]
  %.0211222.unr = phi double [ 0.000000e+00, %.lr.ph225.preheader ], [ %266, %.lr.ph225 ]
  %lcmp.mod245.not = icmp eq i64 %xtraiter243, 0
  br i1 %lcmp.mod245.not, label %._crit_edge226, label %.lr.ph225.epil

.lr.ph225.epil:                                   ; preds = %._crit_edge226.loopexit.unr-lcssa, %.lr.ph225.epil
  %indvars.iv233.epil = phi i64 [ %indvars.iv.next234.epil, %.lr.ph225.epil ], [ %indvars.iv233.unr, %._crit_edge226.loopexit.unr-lcssa ]
  %.0211222.epil = phi double [ %244, %.lr.ph225.epil ], [ %.0211222.unr, %._crit_edge226.loopexit.unr-lcssa ]
  %epil.iter244 = phi i64 [ %epil.iter244.next, %.lr.ph225.epil ], [ 0, %._crit_edge226.loopexit.unr-lcssa ]
  %240 = getelementptr inbounds double, ptr %235, i64 %indvars.iv233.epil
  %241 = load double, ptr %240, align 8, !tbaa !31
  %242 = getelementptr inbounds double, ptr %236, i64 %indvars.iv233.epil
  %243 = load double, ptr %242, align 8, !tbaa !31
  %244 = call double @llvm.fmuladd.f64(double %241, double %243, double %.0211222.epil)
  %indvars.iv.next234.epil = add nuw nsw i64 %indvars.iv233.epil, 1
  %epil.iter244.next = add i64 %epil.iter244, 1
  %epil.iter244.cmp.not = icmp eq i64 %epil.iter244.next, %xtraiter243
  br i1 %epil.iter244.cmp.not, label %._crit_edge226, label %.lr.ph225.epil, !llvm.loop !39

._crit_edge226:                                   ; preds = %._crit_edge226.loopexit.unr-lcssa, %.lr.ph225.epil, %234
  %.0211.lcssa = phi double [ 0.000000e+00, %234 ], [ %.lcssa.ph, %._crit_edge226.loopexit.unr-lcssa ], [ %244, %.lr.ph225.epil ]
  %245 = load double, ptr %235, align 8, !tbaa !31
  %246 = call double @llvm.fmuladd.f64(double %.0211.lcssa, double -1.000000e+00, double %245)
  store double %246, ptr %2, align 8, !tbaa !31
  br label %267

.lr.ph225:                                        ; preds = %.lr.ph225, %.lr.ph225.preheader.new
  %indvars.iv233 = phi i64 [ 1, %.lr.ph225.preheader.new ], [ %indvars.iv.next234.3, %.lr.ph225 ]
  %.0211222 = phi double [ 0.000000e+00, %.lr.ph225.preheader.new ], [ %266, %.lr.ph225 ]
  %niter248 = phi i64 [ 0, %.lr.ph225.preheader.new ], [ %niter248.next.3, %.lr.ph225 ]
  %247 = getelementptr inbounds double, ptr %235, i64 %indvars.iv233
  %248 = load double, ptr %247, align 8, !tbaa !31
  %249 = getelementptr inbounds double, ptr %236, i64 %indvars.iv233
  %250 = load double, ptr %249, align 8, !tbaa !31
  %251 = call double @llvm.fmuladd.f64(double %248, double %250, double %.0211222)
  %indvars.iv.next234 = add nuw nsw i64 %indvars.iv233, 1
  %252 = getelementptr inbounds double, ptr %235, i64 %indvars.iv.next234
  %253 = load double, ptr %252, align 8, !tbaa !31
  %254 = getelementptr inbounds double, ptr %236, i64 %indvars.iv.next234
  %255 = load double, ptr %254, align 8, !tbaa !31
  %256 = call double @llvm.fmuladd.f64(double %253, double %255, double %251)
  %indvars.iv.next234.1 = add nuw nsw i64 %indvars.iv233, 2
  %257 = getelementptr inbounds double, ptr %235, i64 %indvars.iv.next234.1
  %258 = load double, ptr %257, align 8, !tbaa !31
  %259 = getelementptr inbounds double, ptr %236, i64 %indvars.iv.next234.1
  %260 = load double, ptr %259, align 8, !tbaa !31
  %261 = call double @llvm.fmuladd.f64(double %258, double %260, double %256)
  %indvars.iv.next234.2 = add nuw nsw i64 %indvars.iv233, 3
  %262 = getelementptr inbounds double, ptr %235, i64 %indvars.iv.next234.2
  %263 = load double, ptr %262, align 8, !tbaa !31
  %264 = getelementptr inbounds double, ptr %236, i64 %indvars.iv.next234.2
  %265 = load double, ptr %264, align 8, !tbaa !31
  %266 = call double @llvm.fmuladd.f64(double %263, double %265, double %261)
  %indvars.iv.next234.3 = add nuw nsw i64 %indvars.iv233, 4
  %niter248.next.3 = add i64 %niter248, 4
  %niter248.ncmp.3 = icmp eq i64 %niter248.next.3, %unroll_iter247
  br i1 %niter248.ncmp.3, label %._crit_edge226.loopexit.unr-lcssa, label %.lr.ph225, !llvm.loop !40

267:                                              ; preds = %._crit_edge238, %._crit_edge226
  %268 = phi double [ %.pre, %._crit_edge238 ], [ %246, %._crit_edge226 ]
  %269 = call double @sqrt(double noundef %268) #7
  %270 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %18, i64 noundef 0) #7
  store double %269, ptr %270, align 8, !tbaa !31
  br label %271

271:                                              ; preds = %221, %127, %122, %.loopexit, %4, %267
  %.0 = phi i1 [ true, %267 ], [ false, %4 ], [ false, %.loopexit ], [ false, %122 ], [ false, %127 ], [ false, %221 ]
  ret i1 %.0
}

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_130CoefficientsFrequencyTransformERKSt6vectorIdSaIdEEiidPS2_S5_(ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, i32 noundef, double noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare noundef zeroext i1 @_ZNK4sptk30RealValuedFastFourierTransform3RunERKSt6vectorIdSaIdEEPS3_S6_PNS0_6BufferE(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local ptr @_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_ET0_T_S8_S7_(ptr, ptr, ptr) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare hidden ptr @"_ZSt9transformIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_S6_ZNK4sptk30MelGeneralizedCepstralAnalysis19NewtonRaphsonMethodEdS2_PNS8_6BufferEE3$_0ET1_T_SD_T0_SC_T2_"(ptr, ptr, ptr, ptr) local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #5

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @pow(double noundef, double noundef) local_unnamed_addr #6

declare noundef zeroext i1 @_ZNK4sptk37RealValuedInverseFastFourierTransform3RunERKSt6vectorIdSaIdEEPS3_S6_PNS0_6BufferE(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

declare noundef zeroext i1 @_ZNK4sptk27InverseFastFourierTransform3RunERKSt6vectorIdSaIdEES5_PS3_S6_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZN12_GLOBAL__N_110PTransformEdPSt6vectorIdSaIdEE(double noundef, ptr noundef) local_unnamed_addr #1

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZN12_GLOBAL__N_110QTransformEdPSt6vectorIdSaIdEE(double noundef, ptr noundef) local_unnamed_addr #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZSt12reverse_copyIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_ET0_T_S8_S7_(ptr, ptr, ptr) local_unnamed_addr #1

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

; Function Attrs: mustprogress uwtable
declare hidden ptr @"_ZSt9transformIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_ZNK4sptk30MelGeneralizedCepstralAnalysis19NewtonRaphsonMethodEdS2_PNS8_6BufferEE3$_1ET0_T_SD_SC_T1_"(ptr, ptr, ptr, double) local_unnamed_addr #2

declare noundef zeroext i1 @_ZNK4sptk30ToeplitzPlusHankelSystemSolver3RunERKSt6vectorIdSaIdEES5_S5_PS3_PNS0_6BufferE(ptr noundef nonnull align 8 dereferenceable(14), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local ptr @_ZSt9transformIN9__gnu_cxx17__normal_iteratorIPdSt6vectorIdSaIdEEEES6_S6_St4plusIdEET1_T_SA_T0_S9_T2_(ptr, ptr, ptr, ptr) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @sqrt(double noundef) local_unnamed_addr #6

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { 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 #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { mustprogress nofree nounwind willreturn memory(write) "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, !7, i64 12}
!6 = !{!"_ZTSN4sptk30MelGeneralizedCepstralAnalysisE", !7, i64 8, !7, i64 12, !10, i64 16, !10, i64 24, !7, i64 32, !10, i64 40, !11, i64 48, !19, i64 152, !20, i64 264, !21, i64 320, !22, i64 336, !23, i64 368, !23, i64 400, !24, i64 432, !25, i64 464, !26, i64 496, !18, i64 600, !13, i64 608}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"double", !8, i64 0}
!11 = !{!"_ZTSN4sptk30RealValuedFastFourierTransformE", !7, i64 8, !7, i64 12, !7, i64 16, !12, i64 24, !13, i64 72, !14, i64 80}
!12 = !{!"_ZTSN4sptk20FastFourierTransformE", !7, i64 8, !7, i64 12, !7, i64 16, !13, i64 20, !14, i64 24}
!13 = !{!"bool", !8, i64 0}
!14 = !{!"_ZTSSt6vectorIdSaIdEE", !15, i64 0}
!15 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !18, i64 0, !18, i64 8, !18, i64 16}
!18 = !{!"any pointer", !8, i64 0}
!19 = !{!"_ZTSN4sptk37RealValuedInverseFastFourierTransformE", !11, i64 8}
!20 = !{!"_ZTSN4sptk27InverseFastFourierTransformE", !12, i64 8}
!21 = !{!"_ZTSN4sptk30ToeplitzPlusHankelSystemSolverE", !7, i64 8, !13, i64 12, !13, i64 13}
!22 = !{!"_ZTSN4sptk36GeneralizedCepstrumGainNormalizationE", !7, i64 8, !10, i64 16, !13, i64 24}
!23 = !{!"_ZTSN4sptk43GeneralizedCepstrumInverseGainNormalizationE", !7, i64 8, !10, i64 16, !13, i64 24}
!24 = !{!"_ZTSN4sptk42MelCepstrumToMlsaDigitalFilterCoefficientsE", !7, i64 8, !10, i64 16, !13, i64 24}
!25 = !{!"_ZTSN4sptk42MlsaDigitalFilterCoefficientsToMelCepstrumE", !7, i64 8, !10, i64 16, !13, i64 24}
!26 = !{!"_ZTSN4sptk46MelGeneralizedCepstrumToMelGeneralizedCepstrumE", !7, i64 8, !10, i64 16, !10, i64 24, !13, i64 32, !13, i64 33, !7, i64 36, !10, i64 40, !10, i64 48, !13, i64 56, !13, i64 57, !10, i64 64, !27, i64 72, !13, i64 96}
!27 = !{!"_ZTSSt6vectorIPN4sptk46MelGeneralizedCepstrumToMelGeneralizedCepstrum15ModuleInterfaceESaIS3_EE", !28, i64 0}
!28 = !{!"_ZTSSt12_Vector_baseIPN4sptk46MelGeneralizedCepstrumToMelGeneralizedCepstrum15ModuleInterfaceESaIS3_EE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseIPN4sptk46MelGeneralizedCepstrumToMelGeneralizedCepstrum15ModuleInterfaceESaIS3_EE12_Vector_implE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseIPN4sptk46MelGeneralizedCepstrumToMelGeneralizedCepstrum15ModuleInterfaceESaIS3_EE17_Vector_impl_dataE", !18, i64 0, !18, i64 8, !18, i64 16}
!31 = !{!10, !10, i64 0}
!32 = !{!6, !7, i64 8}
!33 = !{!6, !10, i64 16}
!34 = distinct !{!34, !35}
!35 = !{!"llvm.loop.mustprogress"}
!36 = distinct !{!36, !37}
!37 = !{!"llvm.loop.unroll.disable"}
!38 = distinct !{!38, !35}
!39 = distinct !{!39, !37}
!40 = distinct !{!40, !35}


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