Exemplo n.º 1
0
void bench(int mode)
{
	const int N = 100000;
	Code code;
	code.makeBench(N, mode);
	int (*p)(uint64_t*, const uint64_t*, const uint64_t*) = (int (*)(uint64_t*, const uint64_t*, const uint64_t*))code.getCode();

	uint64_t a[4] = { uint64_t(-1), uint64_t(-2), uint64_t(-3), 544443221 };
	uint64_t b[4] = { uint64_t(-123), uint64_t(-3), uint64_t(-4), 222222222 };
	uint64_t c[5] = { 0, 0, 0, 0, 0 };

	const int M = 100;
	Xbyak::util::Clock clk;
	for (int i = 0; i < M; i++) {
		clk.begin();
		p(c, a, b);
		clk.end();
	}
	printf("%.2fclk\n", clk.getClock() / double(M) / double(N) / innerN);
}