mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-06-28 16:41:01 +03:00
Minor changes to enable compilation on Mac M1
This commit is contained in:
parent
1718e33544
commit
467db4a268
@ -112,6 +112,7 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <random>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <chrono>
|
#include <chrono>
|
||||||
@ -151,6 +152,8 @@ using std::set;
|
|||||||
using std::min;
|
using std::min;
|
||||||
using std::max;
|
using std::max;
|
||||||
using std::copy;
|
using std::copy;
|
||||||
|
using std::random_device;
|
||||||
|
using std::mt19937;
|
||||||
|
|
||||||
enum Criterion {
|
enum Criterion {
|
||||||
CRITERION_THROUGHPUT,
|
CRITERION_THROUGHPUT,
|
||||||
@ -731,7 +734,9 @@ int main(int argc, char **argv) {
|
|||||||
count++;
|
count++;
|
||||||
cout << "." << std::flush;
|
cout << "." << std::flush;
|
||||||
vector<unsigned> sv(s.begin(), s.end());
|
vector<unsigned> sv(s.begin(), s.end());
|
||||||
random_shuffle(sv.begin(), sv.end());
|
random_device rng;
|
||||||
|
mt19937 urng(rng());
|
||||||
|
shuffle(sv.begin(), sv.end(), urng);
|
||||||
unsigned groups = factor_max + 1;
|
unsigned groups = factor_max + 1;
|
||||||
for (unsigned current_group = 0; current_group < groups;
|
for (unsigned current_group = 0; current_group < groups;
|
||||||
current_group++) {
|
current_group++) {
|
||||||
|
@ -251,7 +251,7 @@ really_inline SuperVector<16> SuperVector<16>::eq(SuperVector<16> const &b) cons
|
|||||||
template <>
|
template <>
|
||||||
really_inline typename SuperVector<16>::movemask_type SuperVector<16>::movemask(void) const
|
really_inline typename SuperVector<16>::movemask_type SuperVector<16>::movemask(void) const
|
||||||
{
|
{
|
||||||
SuperVector powers{0x8040201008040201UL};
|
SuperVector powers = SuperVector::dup_u64(0x8040201008040201UL);
|
||||||
|
|
||||||
// Compute the mask from the input
|
// Compute the mask from the input
|
||||||
uint8x16_t mask = (uint8x16_t) vpaddlq_u32(vpaddlq_u16(vpaddlq_u8(vandq_u8(u.u8x16[0], powers.u.u8x16[0]))));
|
uint8x16_t mask = (uint8x16_t) vpaddlq_u32(vpaddlq_u16(vpaddlq_u8(vandq_u8(u.u8x16[0], powers.u.u8x16[0]))));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user