206
206
-#if defined(WEBRTC_ARCH_X86_FAMILY)
207
207
+#if defined(WEBRTC_ARCH_X86_FAMILY) && defined(__SSE2__)
209
void MatchedFilterCore_AccumulatedError_SSE2(
210
size_t x_start_index,
211
@@ -410,12 +410,14 @@ void MatchedFilter::Update(const Downsam
209
void MatchedFilterCore_SSE2(size_t x_start_index,
210
float x2_sum_threshold,
211
@@ -410,11 +410,13 @@ void MatchedFilter::Update(const Downsam
213
213
switch (optimization_) {
214
214
#if defined(WEBRTC_ARCH_X86_FAMILY)
215
215
+#if defined(__SSE2__)
216
216
case Aec3Optimization::kSse2:
217
aec3::MatchedFilterCore_SSE2(
218
x_start_index, x2_sum_threshold, smoothing, render_buffer.buffer, y,
219
filters_[n], &filters_updated, &error_sum, compute_pre_echo,
220
instantaneous_accumulated_error_, scratch_memory_);
217
aec3::MatchedFilterCore_SSE2(x_start_index, x2_sum_threshold, smoothing,
218
render_buffer.buffer, y, filters_[n],
219
&filters_updated, &error_sum);
223
222
case Aec3Optimization::kAvx2:
224
aec3::MatchedFilterCore_AVX2(
225
x_start_index, x2_sum_threshold, smoothing, render_buffer.buffer, y,
223
aec3::MatchedFilterCore_AVX2(x_start_index, x2_sum_threshold, smoothing,
224
render_buffer.buffer, y, filters_[n],
226
225
--- a/third_party/libwebrtc/modules/audio_processing/aec3/fft_data.h
227
226
+++ b/third_party/libwebrtc/modules/audio_processing/aec3/fft_data.h
228
227
@@ -49,6 +49,7 @@ struct FftData {
252
251
void MatchedFilterCore_SSE2(size_t x_start_index,
253
252
float x2_sum_threshold,
254
253
@@ -51,6 +52,7 @@ void MatchedFilterCore_SSE2(size_t x_sta
255
bool compute_accumulated_error,
256
rtc::ArrayView<float> accumulated_error,
257
rtc::ArrayView<float> scratch_memory);
254
rtc::ArrayView<float> h,
255
bool* filters_updated,
260
259
// Filter core for the matched filter that is optimized for AVX2.