; 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.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 }

@_ZTVN4sptk30MelGeneralizedCepstralAnalysisE = external dso_local unnamed_addr constant { [4 x ptr] }, align 8

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN4sptk30MelGeneralizedCepstralAnalysisC2Eiiddid(ptr noundef nonnull align 8 dereferenceable(609) %0, i32 noundef %1, i32 noundef %2, double noundef %3, double noundef %4, i32 noundef %5, double noundef %6) unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca double, align 8
  %12 = alloca double, align 8
  %13 = alloca i32, align 4
  %14 = alloca double, align 8
  %15 = alloca ptr, align 8
  %16 = alloca i32, align 4
  store ptr %0, ptr %8, align 8, !tbaa !5
  store i32 %1, ptr %9, align 4, !tbaa !9
  store i32 %2, ptr %10, align 4, !tbaa !9
  store double %3, ptr %11, align 8, !tbaa !11
  store double %4, ptr %12, align 8, !tbaa !11
  store i32 %5, ptr %13, align 4, !tbaa !9
  store double %6, ptr %14, align 8, !tbaa !11
  %17 = load ptr, ptr %8, align 8
  store ptr getelementptr inbounds inrange(-16, 16) ({ [4 x ptr] }, ptr @_ZTVN4sptk30MelGeneralizedCepstralAnalysisE, i32 0, i32 0, i32 2), ptr %17, align 8, !tbaa !13
  %18 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 1
  %19 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %19, ptr %18, align 8, !tbaa !15
  %20 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 2
  %21 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %21, ptr %20, align 4, !tbaa !36
  %22 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 3
  %23 = load double, ptr %11, align 8, !tbaa !11
  store double %23, ptr %22, align 8, !tbaa !37
  %24 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 4
  %25 = load double, ptr %12, align 8, !tbaa !11
  store double %25, ptr %24, align 8, !tbaa !38
  %26 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 5
  %27 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %27, ptr %26, align 8, !tbaa !39
  %28 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 7
  %29 = load double, ptr %14, align 8, !tbaa !11
  store double %29, ptr %28, align 8, !tbaa !40
  %30 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 8
  %31 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 1
  %32 = load i32, ptr %31, align 8, !tbaa !15
  call void @_ZN4sptk30RealValuedFastFourierTransformC1Ei(ptr noundef nonnull align 8 dereferenceable(104) %30, i32 noundef %32)
  %33 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 9
  %34 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 1
  %35 = load i32, ptr %34, align 8, !tbaa !15
  invoke void @_ZN4sptk37RealValuedInverseFastFourierTransformC1Ei(ptr noundef nonnull align 8 dereferenceable(112) %33, i32 noundef %35)
          to label %36 unwind label %141

36:                                               ; preds = %7
  %37 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 10
  %38 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 1
  %39 = load i32, ptr %38, align 8, !tbaa !15
  invoke void @_ZN4sptk27InverseFastFourierTransformC1Ei(ptr noundef nonnull align 8 dereferenceable(56) %37, i32 noundef %39)
          to label %40 unwind label %145

40:                                               ; preds = %36
  %41 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 11
  %42 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 2
  %43 = load i32, ptr %42, align 4, !tbaa !36
  %44 = sub nsw i32 %43, 1
  invoke void @_ZN4sptk30ToeplitzPlusHankelSystemSolverC1Eib(ptr noundef nonnull align 8 dereferenceable(14) %41, i32 noundef %44, i1 noundef zeroext true)
          to label %45 unwind label %149

45:                                               ; preds = %40
  %46 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 12
  %47 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 2
  %48 = load i32, ptr %47, align 4, !tbaa !36
  %49 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 4
  %50 = load double, ptr %49, align 8, !tbaa !38
  invoke void @_ZN4sptk36GeneralizedCepstrumGainNormalizationC1Eid(ptr noundef nonnull align 8 dereferenceable(25) %46, i32 noundef %48, double noundef %50)
          to label %51 unwind label %153

51:                                               ; preds = %45
  %52 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 13
  %53 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 2
  %54 = load i32, ptr %53, align 4, !tbaa !36
  invoke void @_ZN4sptk43GeneralizedCepstrumInverseGainNormalizationC1Eid(ptr noundef nonnull align 8 dereferenceable(25) %52, i32 noundef %54, double noundef -1.000000e+00)
          to label %55 unwind label %157

55:                                               ; preds = %51
  %56 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 14
  %57 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 2
  %58 = load i32, ptr %57, align 4, !tbaa !36
  %59 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 4
  %60 = load double, ptr %59, align 8, !tbaa !38
  invoke void @_ZN4sptk43GeneralizedCepstrumInverseGainNormalizationC1Eid(ptr noundef nonnull align 8 dereferenceable(25) %56, i32 noundef %58, double noundef %60)
          to label %61 unwind label %161

61:                                               ; preds = %55
  %62 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 15
  %63 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 2
  %64 = load i32, ptr %63, align 4, !tbaa !36
  %65 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 3
  %66 = load double, ptr %65, align 8, !tbaa !37
  invoke void @_ZN4sptk42MelCepstrumToMlsaDigitalFilterCoefficientsC1Eid(ptr noundef nonnull align 8 dereferenceable(25) %62, i32 noundef %64, double noundef %66)
          to label %67 unwind label %165

67:                                               ; preds = %61
  %68 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 16
  %69 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 2
  %70 = load i32, ptr %69, align 4, !tbaa !36
  %71 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 3
  %72 = load double, ptr %71, align 8, !tbaa !37
  invoke void @_ZN4sptk42MlsaDigitalFilterCoefficientsToMelCepstrumC1Eid(ptr noundef nonnull align 8 dereferenceable(25) %68, i32 noundef %70, double noundef %72)
          to label %73 unwind label %169

73:                                               ; preds = %67
  %74 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 17
  %75 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 2
  %76 = load i32, ptr %75, align 4, !tbaa !36
  %77 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 2
  %78 = load i32, ptr %77, align 4, !tbaa !36
  %79 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 4
  %80 = load double, ptr %79, align 8, !tbaa !38
  invoke void @_ZN4sptk46MelGeneralizedCepstrumToMelGeneralizedCepstrumC1Eiddbbiddbb(ptr noundef nonnull align 8 dereferenceable(97) %74, i32 noundef %76, double noundef 0.000000e+00, double noundef -1.000000e+00, i1 noundef zeroext false, i1 noundef zeroext false, i32 noundef %78, double noundef 0.000000e+00, double noundef %80, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %81 unwind label %173

81:                                               ; preds = %73
  %82 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 18
  store ptr null, ptr %82, align 8, !tbaa !41
  %83 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 19
  store i8 1, ptr %83, align 8, !tbaa !42
  %84 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 4
  %85 = load double, ptr %84, align 8, !tbaa !38
  %86 = invoke noundef zeroext i1 @_ZN4sptk12IsValidGammaEd(double noundef %85)
          to label %87 unwind label %177

87:                                               ; preds = %81
  br i1 %86, label %88, label %139

88:                                               ; preds = %87
  %89 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 4
  %90 = load double, ptr %89, align 8, !tbaa !38
  %91 = fcmp olt double 0.000000e+00, %90
  br i1 %91, label %139, label %92

92:                                               ; preds = %88
  %93 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 5
  %94 = load i32, ptr %93, align 8, !tbaa !39
  %95 = icmp slt i32 %94, 0
  br i1 %95, label %139, label %96

96:                                               ; preds = %92
  %97 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 7
  %98 = load double, ptr %97, align 8, !tbaa !40
  %99 = fcmp olt double %98, 0.000000e+00
  br i1 %99, label %139, label %100

100:                                              ; preds = %96
  %101 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 8
  %102 = invoke noundef zeroext i1 @_ZNK4sptk30RealValuedFastFourierTransform7IsValidEv(ptr noundef nonnull align 8 dereferenceable(104) %101)
          to label %103 unwind label %177

103:                                              ; preds = %100
  br i1 %102, label %104, label %139

104:                                              ; preds = %103
  %105 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 9
  %106 = invoke noundef zeroext i1 @_ZNK4sptk37RealValuedInverseFastFourierTransform7IsValidEv(ptr noundef nonnull align 8 dereferenceable(112) %105)
          to label %107 unwind label %177

107:                                              ; preds = %104
  br i1 %106, label %108, label %139

108:                                              ; preds = %107
  %109 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 10
  %110 = invoke noundef zeroext i1 @_ZNK4sptk27InverseFastFourierTransform7IsValidEv(ptr noundef nonnull align 8 dereferenceable(56) %109)
          to label %111 unwind label %177

111:                                              ; preds = %108
  br i1 %110, label %112, label %139

112:                                              ; preds = %111
  %113 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 11
  %114 = invoke noundef zeroext i1 @_ZNK4sptk30ToeplitzPlusHankelSystemSolver7IsValidEv(ptr noundef nonnull align 8 dereferenceable(14) %113)
          to label %115 unwind label %177

115:                                              ; preds = %112
  br i1 %114, label %119, label %116

116:                                              ; preds = %115
  %117 = load double, ptr %12, align 8, !tbaa !11
  %118 = fcmp une double 0.000000e+00, %117
  br i1 %118, label %139, label %119

119:                                              ; preds = %116, %115
  %120 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 12
  %121 = invoke noundef zeroext i1 @_ZNK4sptk36GeneralizedCepstrumGainNormalization7IsValidEv(ptr noundef nonnull align 8 dereferenceable(25) %120)
          to label %122 unwind label %177

122:                                              ; preds = %119
  br i1 %121, label %123, label %139

123:                                              ; preds = %122
  %124 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 14
  %125 = invoke noundef zeroext i1 @_ZNK4sptk43GeneralizedCepstrumInverseGainNormalization7IsValidEv(ptr noundef nonnull align 8 dereferenceable(25) %124)
          to label %126 unwind label %177

126:                                              ; preds = %123
  br i1 %125, label %127, label %139

127:                                              ; preds = %126
  %128 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 15
  %129 = invoke noundef zeroext i1 @_ZNK4sptk42MelCepstrumToMlsaDigitalFilterCoefficients7IsValidEv(ptr noundef nonnull align 8 dereferenceable(25) %128)
          to label %130 unwind label %177

130:                                              ; preds = %127
  br i1 %129, label %131, label %139

131:                                              ; preds = %130
  %132 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 16
  %133 = invoke noundef zeroext i1 @_ZNK4sptk42MlsaDigitalFilterCoefficientsToMelCepstrum7IsValidEv(ptr noundef nonnull align 8 dereferenceable(25) %132)
          to label %134 unwind label %177

134:                                              ; preds = %131
  br i1 %133, label %135, label %139

135:                                              ; preds = %134
  %136 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 17
  %137 = invoke noundef zeroext i1 @_ZNK4sptk46MelGeneralizedCepstrumToMelGeneralizedCepstrum7IsValidEv(ptr noundef nonnull align 8 dereferenceable(97) %136)
          to label %138 unwind label %177

138:                                              ; preds = %135
  br i1 %137, label %181, label %139

139:                                              ; preds = %138, %134, %130, %126, %122, %116, %111, %107, %103, %96, %92, %88, %87
  %140 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 19
  store i8 0, ptr %140, align 8, !tbaa !42
  br label %203

141:                                              ; preds = %7
  %142 = landingpad { ptr, i32 }
          cleanup
  %143 = extractvalue { ptr, i32 } %142, 0
  store ptr %143, ptr %15, align 8
  %144 = extractvalue { ptr, i32 } %142, 1
  store i32 %144, ptr %16, align 4
  br label %213

145:                                              ; preds = %36
  %146 = landingpad { ptr, i32 }
          cleanup
  %147 = extractvalue { ptr, i32 } %146, 0
  store ptr %147, ptr %15, align 8
  %148 = extractvalue { ptr, i32 } %146, 1
  store i32 %148, ptr %16, align 4
  br label %212

149:                                              ; preds = %40
  %150 = landingpad { ptr, i32 }
          cleanup
  %151 = extractvalue { ptr, i32 } %150, 0
  store ptr %151, ptr %15, align 8
  %152 = extractvalue { ptr, i32 } %150, 1
  store i32 %152, ptr %16, align 4
  br label %211

153:                                              ; preds = %45
  %154 = landingpad { ptr, i32 }
          cleanup
  %155 = extractvalue { ptr, i32 } %154, 0
  store ptr %155, ptr %15, align 8
  %156 = extractvalue { ptr, i32 } %154, 1
  store i32 %156, ptr %16, align 4
  br label %210

157:                                              ; preds = %51
  %158 = landingpad { ptr, i32 }
          cleanup
  %159 = extractvalue { ptr, i32 } %158, 0
  store ptr %159, ptr %15, align 8
  %160 = extractvalue { ptr, i32 } %158, 1
  store i32 %160, ptr %16, align 4
  br label %209

161:                                              ; preds = %55
  %162 = landingpad { ptr, i32 }
          cleanup
  %163 = extractvalue { ptr, i32 } %162, 0
  store ptr %163, ptr %15, align 8
  %164 = extractvalue { ptr, i32 } %162, 1
  store i32 %164, ptr %16, align 4
  br label %208

165:                                              ; preds = %61
  %166 = landingpad { ptr, i32 }
          cleanup
  %167 = extractvalue { ptr, i32 } %166, 0
  store ptr %167, ptr %15, align 8
  %168 = extractvalue { ptr, i32 } %166, 1
  store i32 %168, ptr %16, align 4
  br label %207

169:                                              ; preds = %67
  %170 = landingpad { ptr, i32 }
          cleanup
  %171 = extractvalue { ptr, i32 } %170, 0
  store ptr %171, ptr %15, align 8
  %172 = extractvalue { ptr, i32 } %170, 1
  store i32 %172, ptr %16, align 4
  br label %206

173:                                              ; preds = %73
  %174 = landingpad { ptr, i32 }
          cleanup
  %175 = extractvalue { ptr, i32 } %174, 0
  store ptr %175, ptr %15, align 8
  %176 = extractvalue { ptr, i32 } %174, 1
  store i32 %176, ptr %16, align 4
  br label %205

177:                                              ; preds = %185, %135, %131, %127, %123, %119, %112, %108, %104, %100, %81
  %178 = landingpad { ptr, i32 }
          cleanup
  %179 = extractvalue { ptr, i32 } %178, 0
  store ptr %179, ptr %15, align 8
  %180 = extractvalue { ptr, i32 } %178, 1
  store i32 %180, ptr %16, align 4
  br label %204

181:                                              ; preds = %138
  %182 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 4
  %183 = load double, ptr %182, align 8, !tbaa !38
  %184 = fcmp oeq double 0.000000e+00, %183
  br i1 %184, label %185, label %203

185:                                              ; preds = %181
  %186 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 368) #5
          to label %187 unwind label %177

187:                                              ; preds = %185
  %188 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 1
  %189 = load i32, ptr %188, align 8, !tbaa !15
  %190 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 2
  %191 = load i32, ptr %190, align 4, !tbaa !36
  %192 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 3
  %193 = load double, ptr %192, align 8, !tbaa !37
  %194 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 5
  %195 = load i32, ptr %194, align 8, !tbaa !39
  %196 = load double, ptr %14, align 8, !tbaa !11
  invoke void @_ZN4sptk19MelCepstralAnalysisC1Eiidid(ptr noundef nonnull align 8 dereferenceable(368) %186, i32 noundef %189, i32 noundef %191, double noundef %193, i32 noundef %195, double noundef %196)
          to label %197 unwind label %199

197:                                              ; preds = %187
  %198 = getelementptr inbounds %"class.sptk::MelGeneralizedCepstralAnalysis", ptr %17, i32 0, i32 18
  store ptr %186, ptr %198, align 8, !tbaa !41
  br label %203

199:                                              ; preds = %187
  %200 = landingpad { ptr, i32 }
          cleanup
  %201 = extractvalue { ptr, i32 } %200, 0
  store ptr %201, ptr %15, align 8
  %202 = extractvalue { ptr, i32 } %200, 1
  store i32 %202, ptr %16, align 4
  call void @_ZdlPvm(ptr noundef %186, i64 noundef 368) #6
  br label %204

203:                                              ; preds = %197, %181, %139
  ret void

204:                                              ; preds = %199, %177
  call void @_ZN4sptk46MelGeneralizedCepstrumToMelGeneralizedCepstrumD2Ev(ptr noundef nonnull align 8 dereferenceable(97) %74) #7
  br label %205

205:                                              ; preds = %204, %173
  call void @_ZN4sptk42MlsaDigitalFilterCoefficientsToMelCepstrumD2Ev(ptr noundef nonnull align 8 dereferenceable(25) %68) #7
  br label %206

206:                                              ; preds = %205, %169
  call void @_ZN4sptk42MelCepstrumToMlsaDigitalFilterCoefficientsD2Ev(ptr noundef nonnull align 8 dereferenceable(25) %62) #7
  br label %207

207:                                              ; preds = %206, %165
  call void @_ZN4sptk43GeneralizedCepstrumInverseGainNormalizationD2Ev(ptr noundef nonnull align 8 dereferenceable(25) %56) #7
  br label %208

208:                                              ; preds = %207, %161
  call void @_ZN4sptk43GeneralizedCepstrumInverseGainNormalizationD2Ev(ptr noundef nonnull align 8 dereferenceable(25) %52) #7
  br label %209

209:                                              ; preds = %208, %157
  call void @_ZN4sptk36GeneralizedCepstrumGainNormalizationD2Ev(ptr noundef nonnull align 8 dereferenceable(25) %46) #7
  br label %210

210:                                              ; preds = %209, %153
  call void @_ZN4sptk30ToeplitzPlusHankelSystemSolverD2Ev(ptr noundef nonnull align 8 dereferenceable(14) %41) #7
  br label %211

211:                                              ; preds = %210, %149
  call void @_ZN4sptk27InverseFastFourierTransformD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %37) #7
  br label %212

212:                                              ; preds = %211, %145
  call void @_ZN4sptk37RealValuedInverseFastFourierTransformD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %33) #7
  br label %213

213:                                              ; preds = %212, %141
  call void @_ZN4sptk30RealValuedFastFourierTransformD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %30) #7
  br label %214

214:                                              ; preds = %213
  %215 = load ptr, ptr %15, align 8
  %216 = load i32, ptr %16, align 4
  %217 = insertvalue { ptr, i32 } poison, ptr %215, 0
  %218 = insertvalue { ptr, i32 } %217, i32 %216, 1
  resume { ptr, i32 } %218
}

declare void @_ZN4sptk30RealValuedFastFourierTransformC1Ei(ptr noundef nonnull align 8 dereferenceable(104), i32 noundef) unnamed_addr #1

declare void @_ZN4sptk37RealValuedInverseFastFourierTransformC1Ei(ptr noundef nonnull align 8 dereferenceable(112), i32 noundef) unnamed_addr #1

declare i32 @__gxx_personality_v0(...)

declare void @_ZN4sptk27InverseFastFourierTransformC1Ei(ptr noundef nonnull align 8 dereferenceable(56), i32 noundef) unnamed_addr #1

declare void @_ZN4sptk30ToeplitzPlusHankelSystemSolverC1Eib(ptr noundef nonnull align 8 dereferenceable(14), i32 noundef, i1 noundef zeroext) unnamed_addr #1

declare void @_ZN4sptk36GeneralizedCepstrumGainNormalizationC1Eid(ptr noundef nonnull align 8 dereferenceable(25), i32 noundef, double noundef) unnamed_addr #1

declare void @_ZN4sptk43GeneralizedCepstrumInverseGainNormalizationC1Eid(ptr noundef nonnull align 8 dereferenceable(25), i32 noundef, double noundef) unnamed_addr #1

declare void @_ZN4sptk42MelCepstrumToMlsaDigitalFilterCoefficientsC1Eid(ptr noundef nonnull align 8 dereferenceable(25), i32 noundef, double noundef) unnamed_addr #1

declare void @_ZN4sptk42MlsaDigitalFilterCoefficientsToMelCepstrumC1Eid(ptr noundef nonnull align 8 dereferenceable(25), i32 noundef, double noundef) unnamed_addr #1

declare void @_ZN4sptk46MelGeneralizedCepstrumToMelGeneralizedCepstrumC1Eiddbbiddbb(ptr noundef nonnull align 8 dereferenceable(97), i32 noundef, double noundef, double noundef, i1 noundef zeroext, i1 noundef zeroext, i32 noundef, double noundef, double noundef, i1 noundef zeroext, i1 noundef zeroext) unnamed_addr #1

declare noundef zeroext i1 @_ZN4sptk12IsValidGammaEd(double noundef) #1

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK4sptk27InverseFastFourierTransform7IsValidEv(ptr noundef nonnull align 8 dereferenceable(56)) #0 align 2

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

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

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

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

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

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

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) #3

declare void @_ZN4sptk19MelCepstralAnalysisC1Eiidid(ptr noundef nonnull align 8 dereferenceable(368), i32 noundef, i32 noundef, double noundef, i32 noundef, double noundef) unnamed_addr #1

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) #4

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

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

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

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

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

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

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

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

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

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


; 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"

@_ZTVN4sptk30MelGeneralizedCepstralAnalysisE = external dso_local unnamed_addr constant { [4 x ptr] }, align 8

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN4sptk30MelGeneralizedCepstralAnalysisC2Eiiddid(ptr noundef nonnull align 8 dereferenceable(609) %0, i32 noundef %1, i32 noundef %2, double noundef %3, double noundef %4, i32 noundef %5, double noundef %6) unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  store ptr getelementptr inbounds inrange(-16, 16) (i8, ptr @_ZTVN4sptk30MelGeneralizedCepstralAnalysisE, i64 16), ptr %0, align 8, !tbaa !5
  %8 = getelementptr inbounds i8, ptr %0, i64 8
  store i32 %1, ptr %8, align 8, !tbaa !8
  %9 = getelementptr inbounds i8, ptr %0, i64 12
  store i32 %2, ptr %9, align 4, !tbaa !33
  %10 = getelementptr inbounds i8, ptr %0, i64 16
  store double %3, ptr %10, align 8, !tbaa !34
  %11 = getelementptr inbounds i8, ptr %0, i64 24
  store double %4, ptr %11, align 8, !tbaa !35
  %12 = getelementptr inbounds i8, ptr %0, i64 32
  store i32 %5, ptr %12, align 8, !tbaa !36
  %13 = getelementptr inbounds i8, ptr %0, i64 40
  store double %6, ptr %13, align 8, !tbaa !37
  %14 = getelementptr inbounds i8, ptr %0, i64 48
  tail call void @_ZN4sptk30RealValuedFastFourierTransformC1Ei(ptr noundef nonnull align 8 dereferenceable(104) %14, i32 noundef %1)
  %15 = getelementptr inbounds i8, ptr %0, i64 152
  %16 = load i32, ptr %8, align 8, !tbaa !8
  invoke void @_ZN4sptk37RealValuedInverseFastFourierTransformC1Ei(ptr noundef nonnull align 8 dereferenceable(112) %15, i32 noundef %16)
          to label %17 unwind label %80

17:                                               ; preds = %7
  %18 = getelementptr inbounds i8, ptr %0, i64 264
  %19 = load i32, ptr %8, align 8, !tbaa !8
  invoke void @_ZN4sptk27InverseFastFourierTransformC1Ei(ptr noundef nonnull align 8 dereferenceable(56) %18, i32 noundef %19)
          to label %20 unwind label %82

20:                                               ; preds = %17
  %21 = getelementptr inbounds i8, ptr %0, i64 320
  %22 = load i32, ptr %9, align 4, !tbaa !33
  %23 = add nsw i32 %22, -1
  invoke void @_ZN4sptk30ToeplitzPlusHankelSystemSolverC1Eib(ptr noundef nonnull align 8 dereferenceable(14) %21, i32 noundef %23, i1 noundef zeroext true)
          to label %24 unwind label %84

24:                                               ; preds = %20
  %25 = getelementptr inbounds i8, ptr %0, i64 336
  %26 = load i32, ptr %9, align 4, !tbaa !33
  %27 = load double, ptr %11, align 8, !tbaa !35
  invoke void @_ZN4sptk36GeneralizedCepstrumGainNormalizationC1Eid(ptr noundef nonnull align 8 dereferenceable(25) %25, i32 noundef %26, double noundef %27)
          to label %28 unwind label %86

28:                                               ; preds = %24
  %29 = getelementptr inbounds i8, ptr %0, i64 368
  %30 = load i32, ptr %9, align 4, !tbaa !33
  invoke void @_ZN4sptk43GeneralizedCepstrumInverseGainNormalizationC1Eid(ptr noundef nonnull align 8 dereferenceable(25) %29, i32 noundef %30, double noundef -1.000000e+00)
          to label %31 unwind label %88

31:                                               ; preds = %28
  %32 = getelementptr inbounds i8, ptr %0, i64 400
  %33 = load i32, ptr %9, align 4, !tbaa !33
  %34 = load double, ptr %11, align 8, !tbaa !35
  invoke void @_ZN4sptk43GeneralizedCepstrumInverseGainNormalizationC1Eid(ptr noundef nonnull align 8 dereferenceable(25) %32, i32 noundef %33, double noundef %34)
          to label %35 unwind label %90

35:                                               ; preds = %31
  %36 = getelementptr inbounds i8, ptr %0, i64 432
  %37 = load i32, ptr %9, align 4, !tbaa !33
  %38 = load double, ptr %10, align 8, !tbaa !34
  invoke void @_ZN4sptk42MelCepstrumToMlsaDigitalFilterCoefficientsC1Eid(ptr noundef nonnull align 8 dereferenceable(25) %36, i32 noundef %37, double noundef %38)
          to label %39 unwind label %92

39:                                               ; preds = %35
  %40 = getelementptr inbounds i8, ptr %0, i64 464
  %41 = load i32, ptr %9, align 4, !tbaa !33
  %42 = load double, ptr %10, align 8, !tbaa !34
  invoke void @_ZN4sptk42MlsaDigitalFilterCoefficientsToMelCepstrumC1Eid(ptr noundef nonnull align 8 dereferenceable(25) %40, i32 noundef %41, double noundef %42)
          to label %43 unwind label %94

43:                                               ; preds = %39
  %44 = getelementptr inbounds i8, ptr %0, i64 496
  %45 = load i32, ptr %9, align 4, !tbaa !33
  %46 = load double, ptr %11, align 8, !tbaa !35
  invoke void @_ZN4sptk46MelGeneralizedCepstrumToMelGeneralizedCepstrumC1Eiddbbiddbb(ptr noundef nonnull align 8 dereferenceable(97) %44, i32 noundef %45, double noundef 0.000000e+00, double noundef -1.000000e+00, i1 noundef zeroext false, i1 noundef zeroext false, i32 noundef %45, double noundef 0.000000e+00, double noundef %46, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %47 unwind label %96

47:                                               ; preds = %43
  %48 = getelementptr inbounds i8, ptr %0, i64 600
  store ptr null, ptr %48, align 8, !tbaa !38
  %49 = getelementptr inbounds i8, ptr %0, i64 608
  store i8 1, ptr %49, align 8, !tbaa !39
  %50 = load double, ptr %11, align 8, !tbaa !35
  %51 = invoke noundef zeroext i1 @_ZN4sptk12IsValidGammaEd(double noundef %50)
          to label %52 unwind label %98

52:                                               ; preds = %47
  %.not = xor i1 %51, true
  %53 = load double, ptr %11, align 8
  %54 = fcmp ogt double %53, 0.000000e+00
  %or.cond = select i1 %.not, i1 true, i1 %54
  %55 = load i32, ptr %12, align 8
  %56 = icmp slt i32 %55, 0
  %or.cond34 = select i1 %or.cond, i1 true, i1 %56
  %57 = load double, ptr %13, align 8
  %58 = fcmp olt double %57, 0.000000e+00
  %or.cond36 = select i1 %or.cond34, i1 true, i1 %58
  br i1 %or.cond36, label %79, label %59

59:                                               ; preds = %52
  %60 = tail call noundef zeroext i1 @_ZNK4sptk30RealValuedFastFourierTransform7IsValidEv(ptr noundef nonnull align 8 dereferenceable(104) %14)
  br i1 %60, label %61, label %79

61:                                               ; preds = %59
  %62 = tail call noundef zeroext i1 @_ZNK4sptk37RealValuedInverseFastFourierTransform7IsValidEv(ptr noundef nonnull align 8 dereferenceable(112) %15)
  br i1 %62, label %63, label %79

63:                                               ; preds = %61
  %64 = invoke noundef zeroext i1 @_ZNK4sptk27InverseFastFourierTransform7IsValidEv(ptr noundef nonnull align 8 dereferenceable(56) %18)
          to label %65 unwind label %98

65:                                               ; preds = %63
  br i1 %64, label %66, label %79

66:                                               ; preds = %65
  %67 = tail call noundef zeroext i1 @_ZNK4sptk30ToeplitzPlusHankelSystemSolver7IsValidEv(ptr noundef nonnull align 8 dereferenceable(14) %21)
  %68 = fcmp oeq double %4, 0.000000e+00
  %or.cond.not = or i1 %68, %67
  br i1 %or.cond.not, label %69, label %79

69:                                               ; preds = %66
  %70 = tail call noundef zeroext i1 @_ZNK4sptk36GeneralizedCepstrumGainNormalization7IsValidEv(ptr noundef nonnull align 8 dereferenceable(25) %25)
  br i1 %70, label %71, label %79

71:                                               ; preds = %69
  %72 = tail call noundef zeroext i1 @_ZNK4sptk43GeneralizedCepstrumInverseGainNormalization7IsValidEv(ptr noundef nonnull align 8 dereferenceable(25) %32)
  br i1 %72, label %73, label %79

73:                                               ; preds = %71
  %74 = tail call noundef zeroext i1 @_ZNK4sptk42MelCepstrumToMlsaDigitalFilterCoefficients7IsValidEv(ptr noundef nonnull align 8 dereferenceable(25) %36)
  br i1 %74, label %75, label %79

75:                                               ; preds = %73
  %76 = tail call noundef zeroext i1 @_ZNK4sptk42MlsaDigitalFilterCoefficientsToMelCepstrum7IsValidEv(ptr noundef nonnull align 8 dereferenceable(25) %40)
  br i1 %76, label %77, label %79

77:                                               ; preds = %75
  %78 = tail call noundef zeroext i1 @_ZNK4sptk46MelGeneralizedCepstrumToMelGeneralizedCepstrum7IsValidEv(ptr noundef nonnull align 8 dereferenceable(97) %44)
  br i1 %78, label %100, label %79

79:                                               ; preds = %66, %77, %75, %73, %71, %69, %65, %61, %59, %52
  store i8 0, ptr %49, align 8, !tbaa !39
  br label %113

80:                                               ; preds = %7
  %81 = landingpad { ptr, i32 }
          cleanup
  br label %123

82:                                               ; preds = %17
  %83 = landingpad { ptr, i32 }
          cleanup
  br label %122

84:                                               ; preds = %20
  %85 = landingpad { ptr, i32 }
          cleanup
  br label %121

86:                                               ; preds = %24
  %87 = landingpad { ptr, i32 }
          cleanup
  br label %120

88:                                               ; preds = %28
  %89 = landingpad { ptr, i32 }
          cleanup
  br label %119

90:                                               ; preds = %31
  %91 = landingpad { ptr, i32 }
          cleanup
  br label %118

92:                                               ; preds = %35
  %93 = landingpad { ptr, i32 }
          cleanup
  br label %117

94:                                               ; preds = %39
  %95 = landingpad { ptr, i32 }
          cleanup
  br label %116

96:                                               ; preds = %43
  %97 = landingpad { ptr, i32 }
          cleanup
  br label %115

98:                                               ; preds = %103, %63, %47
  %99 = landingpad { ptr, i32 }
          cleanup
  br label %114

100:                                              ; preds = %77
  %101 = load double, ptr %11, align 8, !tbaa !35
  %102 = fcmp oeq double %101, 0.000000e+00
  br i1 %102, label %103, label %113

103:                                              ; preds = %100
  %104 = invoke noalias noundef nonnull dereferenceable(368) ptr @_Znwm(i64 noundef 368) #5
          to label %105 unwind label %98

105:                                              ; preds = %103
  %106 = load i32, ptr %8, align 8, !tbaa !8
  %107 = load i32, ptr %9, align 4, !tbaa !33
  %108 = load double, ptr %10, align 8, !tbaa !34
  %109 = load i32, ptr %12, align 8, !tbaa !36
  invoke void @_ZN4sptk19MelCepstralAnalysisC1Eiidid(ptr noundef nonnull align 8 dereferenceable(368) %104, i32 noundef %106, i32 noundef %107, double noundef %108, i32 noundef %109, double noundef %6)
          to label %110 unwind label %111

110:                                              ; preds = %105
  store ptr %104, ptr %48, align 8, !tbaa !38
  br label %113

111:                                              ; preds = %105
  %112 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %104, i64 noundef 368) #6
  br label %114

113:                                              ; preds = %110, %100, %79
  ret void

114:                                              ; preds = %111, %98
  %.pn = phi { ptr, i32 } [ %112, %111 ], [ %99, %98 ]
  tail call void @_ZN4sptk46MelGeneralizedCepstrumToMelGeneralizedCepstrumD2Ev(ptr noundef nonnull align 8 dereferenceable(97) %44) #7
  br label %115

115:                                              ; preds = %114, %96
  %.pn.pn = phi { ptr, i32 } [ %.pn, %114 ], [ %97, %96 ]
  tail call void @_ZN4sptk42MlsaDigitalFilterCoefficientsToMelCepstrumD2Ev(ptr noundef nonnull align 8 dereferenceable(25) %40) #7
  br label %116

116:                                              ; preds = %115, %94
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %115 ], [ %95, %94 ]
  tail call void @_ZN4sptk42MelCepstrumToMlsaDigitalFilterCoefficientsD2Ev(ptr noundef nonnull align 8 dereferenceable(25) %36) #7
  br label %117

117:                                              ; preds = %116, %92
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %116 ], [ %93, %92 ]
  tail call void @_ZN4sptk43GeneralizedCepstrumInverseGainNormalizationD2Ev(ptr noundef nonnull align 8 dereferenceable(25) %32) #7
  br label %118

118:                                              ; preds = %117, %90
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %117 ], [ %91, %90 ]
  tail call void @_ZN4sptk43GeneralizedCepstrumInverseGainNormalizationD2Ev(ptr noundef nonnull align 8 dereferenceable(25) %29) #7
  br label %119

119:                                              ; preds = %118, %88
  %.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn, %118 ], [ %89, %88 ]
  tail call void @_ZN4sptk36GeneralizedCepstrumGainNormalizationD2Ev(ptr noundef nonnull align 8 dereferenceable(25) %25) #7
  br label %120

120:                                              ; preds = %119, %86
  %.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn, %119 ], [ %87, %86 ]
  tail call void @_ZN4sptk30ToeplitzPlusHankelSystemSolverD2Ev(ptr noundef nonnull align 8 dereferenceable(14) %21) #7
  br label %121

121:                                              ; preds = %120, %84
  %.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn, %120 ], [ %85, %84 ]
  tail call void @_ZN4sptk27InverseFastFourierTransformD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %18) #7
  br label %122

122:                                              ; preds = %121, %82
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn, %121 ], [ %83, %82 ]
  tail call void @_ZN4sptk37RealValuedInverseFastFourierTransformD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %15) #7
  br label %123

123:                                              ; preds = %122, %80
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn, %122 ], [ %81, %80 ]
  tail call void @_ZN4sptk30RealValuedFastFourierTransformD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %14) #7
  resume { ptr, i32 } %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn
}

declare void @_ZN4sptk30RealValuedFastFourierTransformC1Ei(ptr noundef nonnull align 8 dereferenceable(104), i32 noundef) unnamed_addr #1

declare void @_ZN4sptk37RealValuedInverseFastFourierTransformC1Ei(ptr noundef nonnull align 8 dereferenceable(112), i32 noundef) unnamed_addr #1

declare i32 @__gxx_personality_v0(...)

declare void @_ZN4sptk27InverseFastFourierTransformC1Ei(ptr noundef nonnull align 8 dereferenceable(56), i32 noundef) unnamed_addr #1

declare void @_ZN4sptk30ToeplitzPlusHankelSystemSolverC1Eib(ptr noundef nonnull align 8 dereferenceable(14), i32 noundef, i1 noundef zeroext) unnamed_addr #1

declare void @_ZN4sptk36GeneralizedCepstrumGainNormalizationC1Eid(ptr noundef nonnull align 8 dereferenceable(25), i32 noundef, double noundef) unnamed_addr #1

declare void @_ZN4sptk43GeneralizedCepstrumInverseGainNormalizationC1Eid(ptr noundef nonnull align 8 dereferenceable(25), i32 noundef, double noundef) unnamed_addr #1

declare void @_ZN4sptk42MelCepstrumToMlsaDigitalFilterCoefficientsC1Eid(ptr noundef nonnull align 8 dereferenceable(25), i32 noundef, double noundef) unnamed_addr #1

declare void @_ZN4sptk42MlsaDigitalFilterCoefficientsToMelCepstrumC1Eid(ptr noundef nonnull align 8 dereferenceable(25), i32 noundef, double noundef) unnamed_addr #1

declare void @_ZN4sptk46MelGeneralizedCepstrumToMelGeneralizedCepstrumC1Eiddbbiddbb(ptr noundef nonnull align 8 dereferenceable(97), i32 noundef, double noundef, double noundef, i1 noundef zeroext, i1 noundef zeroext, i32 noundef, double noundef, double noundef, i1 noundef zeroext, i1 noundef zeroext) unnamed_addr #1

declare noundef zeroext i1 @_ZN4sptk12IsValidGammaEd(double noundef) local_unnamed_addr #1

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK4sptk27InverseFastFourierTransform7IsValidEv(ptr noundef nonnull align 8 dereferenceable(56)) local_unnamed_addr #0 align 2

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

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

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

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

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

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

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) local_unnamed_addr #3

declare void @_ZN4sptk19MelCepstralAnalysisC1Eiidid(ptr noundef nonnull align 8 dereferenceable(368), i32 noundef, i32 noundef, double noundef, i32 noundef, double noundef) unnamed_addr #1

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) local_unnamed_addr #4

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

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

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

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

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

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

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

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

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

attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { "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 nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nobuiltin allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nobuiltin 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 #5 = { builtin allocsize(0) }
attributes #6 = { builtin nounwind }
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 = !{!"vtable pointer", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = !{!9, !10, i64 8}
!9 = !{!"_ZTSN4sptk30MelGeneralizedCepstralAnalysisE", !10, i64 8, !10, i64 12, !12, i64 16, !12, i64 24, !10, i64 32, !12, i64 40, !13, 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, !20, i64 600, !15, i64 608}
!10 = !{!"int", !11, i64 0}
!11 = !{!"omnipotent char", !7, i64 0}
!12 = !{!"double", !11, i64 0}
!13 = !{!"_ZTSN4sptk30RealValuedFastFourierTransformE", !10, i64 8, !10, i64 12, !10, i64 16, !14, i64 24, !15, i64 72, !16, i64 80}
!14 = !{!"_ZTSN4sptk20FastFourierTransformE", !10, i64 8, !10, i64 12, !10, i64 16, !15, i64 20, !16, i64 24}
!15 = !{!"bool", !11, i64 0}
!16 = !{!"_ZTSSt6vectorIdSaIdEE", !17, i64 0}
!17 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !20, i64 0, !20, i64 8, !20, i64 16}
!20 = !{!"any pointer", !11, i64 0}
!21 = !{!"_ZTSN4sptk37RealValuedInverseFastFourierTransformE", !13, i64 8}
!22 = !{!"_ZTSN4sptk27InverseFastFourierTransformE", !14, i64 8}
!23 = !{!"_ZTSN4sptk30ToeplitzPlusHankelSystemSolverE", !10, i64 8, !15, i64 12, !15, i64 13}
!24 = !{!"_ZTSN4sptk36GeneralizedCepstrumGainNormalizationE", !10, i64 8, !12, i64 16, !15, i64 24}
!25 = !{!"_ZTSN4sptk43GeneralizedCepstrumInverseGainNormalizationE", !10, i64 8, !12, i64 16, !15, i64 24}
!26 = !{!"_ZTSN4sptk42MelCepstrumToMlsaDigitalFilterCoefficientsE", !10, i64 8, !12, i64 16, !15, i64 24}
!27 = !{!"_ZTSN4sptk42MlsaDigitalFilterCoefficientsToMelCepstrumE", !10, i64 8, !12, i64 16, !15, i64 24}
!28 = !{!"_ZTSN4sptk46MelGeneralizedCepstrumToMelGeneralizedCepstrumE", !10, i64 8, !12, i64 16, !12, i64 24, !15, i64 32, !15, i64 33, !10, i64 36, !12, i64 40, !12, i64 48, !15, i64 56, !15, i64 57, !12, i64 64, !29, i64 72, !15, 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", !20, i64 0, !20, i64 8, !20, i64 16}
!33 = !{!9, !10, i64 12}
!34 = !{!9, !12, i64 16}
!35 = !{!9, !12, i64 24}
!36 = !{!9, !10, i64 32}
!37 = !{!9, !12, i64 40}
!38 = !{!9, !20, i64 600}
!39 = !{!9, !15, i64 608}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GlobalOptPass,InstCombinePass,SROAPass,SimplifyCFGPass,TailCallElimPass