The newly added file will cause build failure with clang.
test-suite/MicroBenchmarks/SLPVectorization/Versioning.cpp:10:37:
required from ‘void init_data(T*, unsigned int) [with T = int]’
test-suite/MicroBenchmarks/SLPVectorization/Versioning.cpp:28:12:
required from ‘void benchmark_xor_runtime_checks_pass(benchmark::State&)
[with unsigned int N = 4; T = int]’
test-suite/MicroBenchmarks/SLPVectorization/Versioning.cpp:70:1:
required from here
/usr/include/c++/7/bits/random.h:1704:7: error: static assertion failed:
result_type must be a floating point type
static_assert(std::is_floating_point<_RealType>::value,
I think this is fine for the purposes of this benchmark (this doesn't need to be fully generic, e.g., for long double). Could alternatively go with explicitly using uniform_real_distribution<double> for double and uniform_int_distribution<int> for int.