From 5853cd39d22506fbede37ac282936dd774be7f0b Mon Sep 17 00:00:00 2001 From: Yoan Picchi Date: Tue, 5 Nov 2024 15:59:19 +0000 Subject: [PATCH] Add double shufti to the benchmark Signed-off-by: Yoan Picchi --- benchmarks/benchmarks.cpp | 25 +++++++++++++++++++++++++ benchmarks/benchmarks.hpp | 1 + 2 files changed, 26 insertions(+) diff --git a/benchmarks/benchmarks.cpp b/benchmarks/benchmarks.cpp index 81402994..4d251bbc 100644 --- a/benchmarks/benchmarks.cpp +++ b/benchmarks/benchmarks.cpp @@ -175,6 +175,31 @@ int main(){ }); } + for (size_t i = 0; i < std::size(sizes); i++) { + MicroBenchmark bench("Double Shufti", sizes[i]); + run_benchmarks( + sizes[i], MAX_LOOPS / sizes[i], matches[m], false, bench, + [&](MicroBenchmark &b) { + ue2::shuftiBuildMasks(b.chars, reinterpret_cast(&b.lo), reinterpret_cast(&b.hi)); + b.chars.clear(); + ue2::flat_set> pattern; + pattern.insert({'a', 'b'}); + ue2::shuftiBuildDoubleMasks(b.chars, pattern, + reinterpret_cast(&b.truffle_mask_lo), + reinterpret_cast(&b.truffle_mask_hi), + reinterpret_cast(&b.double_shufti_lo2), + reinterpret_cast(&b.double_shufti_hi2)); + memset(b.buf.data(), 'b', b.size); + }, + [&](MicroBenchmark &b) { + return shuftiDoubleExec(b.truffle_mask_lo, + b.truffle_mask_hi, + b.double_shufti_lo2, + b.double_shufti_hi2, + b.buf.data(), b.buf.data() + b.size); + }); + } + for (size_t i = 0; i < std::size(sizes); i++) { MicroBenchmark bench("Truffle", sizes[i]); run_benchmarks( diff --git a/benchmarks/benchmarks.hpp b/benchmarks/benchmarks.hpp index f96a5b0b..8801d93a 100644 --- a/benchmarks/benchmarks.hpp +++ b/benchmarks/benchmarks.hpp @@ -61,6 +61,7 @@ public: #endif }; }; + m128 double_shufti_lo2, double_shufti_hi2; MicroBenchmark(char const *label_, size_t size_) : label(label_), size(size_), buf(size_){};