Updated build system

This commit is contained in:
paulfd 2019-08-25 14:05:30 +02:00
parent da7eb4cb3b
commit ee42a8925c
2 changed files with 21 additions and 16 deletions

View file

@ -147,10 +147,8 @@ target_include_directories(sfizz_tests SYSTEM PRIVATE sources)
file(COPY "tests" DESTINATION ${CMAKE_BINARY_DIR}) file(COPY "tests" DESTINATION ${CMAKE_BINARY_DIR})
############################### ###############################
add_executable(bench_opf_high_vs_low benchmarks/OPF_high_vs_low.cpp) add_executable(bm_opf_high_vs_low benchmarks/BM_OPF_high_vs_low.cpp)
target_link_libraries(bench_opf_high_vs_low benchmark absl::span) target_link_libraries(bm_opf_high_vs_low benchmark absl::span)
###############################
add_executable(bm_write benchmarks/BM_writeInterleaved.cpp sources/SIMDSSE.cpp) add_executable(bm_write benchmarks/BM_writeInterleaved.cpp sources/SIMDSSE.cpp)
target_link_libraries(bm_write benchmark absl::span) target_link_libraries(bm_write benchmark absl::span)

View file

@ -1,12 +1,19 @@
#include <benchmark/benchmark.h> #include <benchmark/benchmark.h>
#include "gsl/gsl-lite.hpp" #include <absl/types/span.h>
#include <random> #include <random>
#include <algorithm> #include <algorithm>
#include "../sources/Intrinsics.h"
#if HAVE_X86INTRIN_H
#include <x86intrin.h>
#endif
#if HAVE_INTRIN_H
#include <intrin.h>
#endif
constexpr float filterGain { 0.25f }; constexpr float filterGain { 0.25f };
void lowpass(gsl::span<const float> input, gsl::span<float> lowpass, float gain) void lowpass(absl::Span<const float> input, absl::Span<float> lowpass, float gain)
{ {
float state = 0.0f; float state = 0.0f;
float intermediate; float intermediate;
@ -21,7 +28,7 @@ void lowpass(gsl::span<const float> input, gsl::span<float> lowpass, float gain)
} }
} }
void highpass(gsl::span<const float> input, gsl::span<float> highpass, float gain) void highpass(absl::Span<const float> input, absl::Span<float> highpass, float gain)
{ {
float state = 0.0f; float state = 0.0f;
float intermediate; float intermediate;
@ -36,7 +43,7 @@ void highpass(gsl::span<const float> input, gsl::span<float> highpass, float gai
} }
} }
void highpass_foreach(gsl::span<const float> input, gsl::span<float> highpass, float gain) void highpass_foreach(absl::Span<const float> input, absl::Span<float> highpass, float gain)
{ {
lowpass(input, highpass, gain); lowpass(input, highpass, gain);
for (auto [in, out] = std::make_pair(input.begin(), highpass.begin()); for (auto [in, out] = std::make_pair(input.begin(), highpass.begin());
@ -45,7 +52,7 @@ void highpass_foreach(gsl::span<const float> input, gsl::span<float> highpass, f
*out = *in - *out; *out = *in - *out;
} }
void highpass_raw(gsl::span<const float> input, gsl::span<float> highpass, float gain) void highpass_raw(absl::Span<const float> input, absl::Span<float> highpass, float gain)
{ {
lowpass(input, highpass, gain); lowpass(input, highpass, gain);
auto in = input.data(); auto in = input.data();
@ -58,7 +65,7 @@ void highpass_raw(gsl::span<const float> input, gsl::span<float> highpass, float
} }
} }
void highpass_sse(gsl::span<const float> input, gsl::span<float> highpass, float gain) void highpass_sse(absl::Span<const float> input, absl::Span<float> highpass, float gain)
{ {
lowpass(input, highpass, gain); lowpass(input, highpass, gain);
auto in = input.data(); auto in = input.data();
@ -96,7 +103,7 @@ static void Low(benchmark::State& state) {
}); });
for (auto _ : state) for (auto _ : state)
lowpass(input, output, filterGain); lowpass(input, absl::MakeSpan(output), filterGain);
} }
static void High(benchmark::State& state) { static void High(benchmark::State& state) {
@ -111,7 +118,7 @@ static void High(benchmark::State& state) {
}); });
for (auto _ : state) for (auto _ : state)
highpass(input, output, filterGain); highpass(input, absl::MakeSpan(output), filterGain);
} }
static void High_ForEach(benchmark::State& state) { static void High_ForEach(benchmark::State& state) {
@ -126,7 +133,7 @@ static void High_ForEach(benchmark::State& state) {
}); });
for (auto _ : state) for (auto _ : state)
highpass_foreach(input, output, filterGain); highpass_foreach(input, absl::MakeSpan(output), filterGain);
} }
static void High_Raw(benchmark::State& state) { static void High_Raw(benchmark::State& state) {
@ -141,7 +148,7 @@ static void High_Raw(benchmark::State& state) {
}); });
for (auto _ : state) for (auto _ : state)
highpass_raw(input, output, filterGain); highpass_raw(input, absl::MakeSpan(output), filterGain);
} }
static void High_SSE(benchmark::State& state) { static void High_SSE(benchmark::State& state) {
@ -156,7 +163,7 @@ static void High_SSE(benchmark::State& state) {
}); });
for (auto _ : state) for (auto _ : state)
highpass_sse(input, output, filterGain); highpass_sse(input, absl::MakeSpan(output), filterGain);
} }