mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-06-28 16:41:01 +03:00
Add double shufti to the benchmark
Signed-off-by: Yoan Picchi <yoan.picchi@arm.com>
This commit is contained in:
parent
5145b6d2ab
commit
5853cd39d2
@ -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<u8 *>(&b.lo), reinterpret_cast<u8 *>(&b.hi));
|
||||
b.chars.clear();
|
||||
ue2::flat_set<std::pair<u8, u8>> pattern;
|
||||
pattern.insert({'a', 'b'});
|
||||
ue2::shuftiBuildDoubleMasks(b.chars, pattern,
|
||||
reinterpret_cast<u8 *>(&b.truffle_mask_lo),
|
||||
reinterpret_cast<u8 *>(&b.truffle_mask_hi),
|
||||
reinterpret_cast<u8 *>(&b.double_shufti_lo2),
|
||||
reinterpret_cast<u8 *>(&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(
|
||||
|
@ -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_){};
|
||||
|
Loading…
x
Reference in New Issue
Block a user