commit d25a43ed046b086ad3601be1af10e173333552ee
parent 1b4afb35f0a94b8fc284b2d4184372243fe30675
Author: bmanga <bruno.manga95@gmail.com>
Date: Fri, 12 Apr 2019 12:28:04 +0100
Make DFT compile with GCC
Diffstat:
3 files changed, 6 insertions(+), 10 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
@@ -56,11 +56,9 @@ endif()
include(sources.cmake)
option(ENABLE_TESTS "Enable tests and examples" OFF)
-if (CLANG)
- option(ENABLE_DFT "Enable DFT and related algorithms. Requires Clang" ON)
- if (X86)
- option(ENABLE_DFT_MULTIARCH "Build DFT static libraries for various architectures. Requires Clang" OFF)
- endif ()
+option(ENABLE_DFT "Enable DFT and related algorithms." ON)
+if (X86)
+ option(ENABLE_DFT_MULTIARCH "Build DFT static libraries for various architectures." OFF)
endif ()
option(ENABLE_ASMTEST "Enable writing disassembly" OFF)
option(REGENERATE_TESTS "Regenerate auto tests" OFF)
@@ -169,9 +167,6 @@ if (ENABLE_TESTS)
endif ()
if (ENABLE_DFT)
- if (NOT CLANG)
- message(FATAL_ERROR "Clang compiler is required for DFT in KFR. See README.md for more information")
- endif()
add_library(kfr_dft ${KFR_DFT_SRC})
target_link_libraries(kfr_dft kfr use_arch)
if (MSVC)
diff --git a/include/kfr/dft/impl/dft-impl.hpp b/include/kfr/dft/impl/dft-impl.hpp
@@ -465,12 +465,12 @@ void prepare_dft_stage(dft_plan<T>* self, size_t radix, size_t iterations, size_
return cswitch(
dft_radices, radix,
[self, iterations, blocks](auto radix) CMT_INLINE_LAMBDA {
- add_stage<conditional<is_final, intrinsics::dft_stage_fixed_final_impl<T, val_of(radix)>,
+ self->template add_stage<conditional<is_final, intrinsics::dft_stage_fixed_final_impl<T, val_of(radix)>,
intrinsics::dft_stage_fixed_impl<T, val_of(radix)>>>(self, radix,
iterations, blocks);
},
[self, radix, iterations, blocks]() {
- add_stage<intrinsics::dft_stage_generic_impl<T, is_final>>(self, radix, iterations, blocks);
+ self->template add_stage<intrinsics::dft_stage_generic_impl<T, is_final>>(self, radix, iterations, blocks);
});
}
diff --git a/include/kfr/simd/impl/read_write.hpp b/include/kfr/simd/impl/read_write.hpp
@@ -28,6 +28,7 @@
#include "../shuffle.hpp"
#include "../types.hpp"
#include "../vec.hpp"
+#include "function.hpp"
namespace kfr
{