kfr

Fast, modern C++ DSP framework, FFT, Sample Rate Conversion, FIR/IIR/Biquad Filters (SSE, AVX, AVX-512, ARM NEON)
Log | Files | Refs | README

commit abf3f551ec16bcf1d66a95ed4a163f2818e3e415
parent 939d53b331a65816db6fe21e0744b149829b0349
Author: d.levin256@gmail.com <d.levin256@gmail.com>
Date:   Tue, 26 Nov 2019 06:50:00 +0000

Disable Clang 8.0 workaround for latest Clang

Diffstat:
Minclude/kfr/dft/impl/fft-impl.hpp | 13+++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/include/kfr/dft/impl/fft-impl.hpp b/include/kfr/dft/impl/fft-impl.hpp @@ -943,12 +943,17 @@ KFR_INTRINSIC void generate_real_twiddles(dft_plan_real<T>* self, size_t size) } template <typename T> -#ifdef CMT_ARCH_X32 -// Fix Clang 8.0 bug +#if (defined CMT_ARCH_X32 && defined __clang__) && ((defined __APPLE__) || (__clang_major__ == 8)) +// Fix for Clang 8.0 bug (x32 with FMA instructions) +// Xcode has different versions but x86 is very rare on macOS these days, +// so disable inlining and FMA for x32 macOS and Clang 8.x __attribute__((target("no-fma"), flatten, noinline)) +#else +KFR_INTRINSIC #endif -void to_fmt(size_t real_size, const complex<T>* rtwiddle, complex<T>* out, const complex<T>* in, - dft_pack_format fmt) +void +to_fmt(size_t real_size, const complex<T>* rtwiddle, complex<T>* out, const complex<T>* in, + dft_pack_format fmt) { using namespace intrinsics; size_t csize = real_size / 2; // const size_t causes internal compiler error: in tsubst_copy in GCC 5.2