Fails to build on x86 without SSE
i386 target on FreeBSD, NetBSD, OpenBSD (and maybe some Linux distributions) lack SSE unless -msse
is passed. For one, FreeBSD i386 targets -march=i486
by default but recently switched to -march=i686
which still lacks SSE.
From error log:
webrtc/modules/audio_processing/aec3/fft_data.h:56:28: error: always_inline function '_mm_loadu_ps' requires target feature 'sse', but would be inlined into function 'Spectrum' that is compiled without support for 'sse'
const __m128 r = _mm_loadu_ps(&re[k]);
^
webrtc/modules/audio_processing/aec3/matched_filter.cc:168:20: error: always_inline function '_mm_set1_ps' requires target feature 'sse', but would be inlined into function 'MatchedFilterCore_SSE2' that is compiled without support for 'sse'
__m128 s_128 = _mm_set1_ps(0);
^
webrtc/modules/audio_processing/aec3/vector_math.h:53:22: error: always_inline function '_mm_loadu_ps' requires target feature 'sse', but would be inlined into function 'Sqrt' that is compiled without support for 'sse'
__m128 g = _mm_loadu_ps(&x[j]);
^
webrtc/modules/audio_processing/agc2/rnn_vad/rnn.cc:249:18: error: always_inline function '_mm_set1_ps' requires target feature 'sse', but would be inlined into function 'ComputeFullyConnectedLayerOutputSse2' that is compiled without support for 'sse'
sum_wx_128 = _mm_set1_ps(0);
^
webrtc/third_party/pffft/src/pffft.c:224:25: error: always_inline function '_mm_setzero_ps' requires target feature 'sse', but would be inlined into function 'validate_pffft_simd' that is compiled without support for 'sse'
t = a0; u = a1; t.v = VZERO();
^
webrtc/modules/audio_processing/aec3/adaptive_fir_filter.cc:106:27: error: always_inline function '_mm_loadu_ps' requires target feature 'sse', but would be inlined into function 'ComputeFrequencyResponse_Sse2' that is compiled without support for 'sse'
const __m128 re = _mm_loadu_ps(&H[p][ch].re[j]);
^
Edited by Jan Beich