#include "prvhash_core.h"
#include <stdio.h>
int main()
{
uint64_t Seed = 0;
uint64_t lcg = 0;
uint64_t Hash = 0;
uint64_t v = 0;
uint64_t i;
for( i = 0; i < ( 1ULL << 27 ); i++ )
{
v = prvhash_core64( &Seed, &lcg, &Hash );
}
printf( "%llu\n", v );
}
Another arrangement (I call it "Fused PRNG") worth testing, because it's fast (0.41cycles/byte) without SIMD: here, v, v2, v3 (24 bytes combined) are a single continuous PRNG output per round, it's structurally similar to SIMD and can be potentially ported to AVX-512.
Could you test minimal PRVHASH PRNG with your DieHarder setting? https://github.com/avaneev/prvhash
Another arrangement (I call it "Fused PRNG") worth testing, because it's fast (0.41cycles/byte) without SIMD: here, v, v2, v3 (24 bytes combined) are a single continuous PRNG output per round, it's structurally similar to SIMD and can be potentially ported to AVX-512.