diff --git a/MicroBenchmarks/SLPVectorization/Versioning.cpp b/MicroBenchmarks/SLPVectorization/Versioning.cpp --- a/MicroBenchmarks/SLPVectorization/Versioning.cpp +++ b/MicroBenchmarks/SLPVectorization/Versioning.cpp @@ -6,8 +6,19 @@ #include "benchmark/benchmark.h" // Initialize arrays A, B and T with random numbers. -template static void init_data(T *A, unsigned N) { - std::uniform_real_distribution dist(-100, 100); +template ::value, int>::type = 0> +static void init_data(T *A, unsigned N) { + std::uniform_int_distribution dist(-100, 100); + std::mt19937 rng(12345); + for (unsigned i = 0; i < N; i++) + A[i] = dist(rng); +} + +template ::value, + int>::type = 0> +static void init_data(T *A, unsigned N) { + std::uniform_real_distribution dist(-100.0, 100.0); std::mt19937 rng(12345); for (unsigned i = 0; i < N; i++) A[i] = dist(rng);