From: Fredrik Tolf Date: Wed, 23 Jan 2019 15:43:07 +0000 (+0100) Subject: loadcpu: Added SNB-optimized spinloop. X-Git-Url: http://git.dolda2000.com/gitweb/?p=utils.git;a=commitdiff_plain;h=06282b33ce67d6918f6344c6536aa946cb06c344 loadcpu: Added SNB-optimized spinloop. --- diff --git a/loadcpu.c b/loadcpu.c index ca39f7f..68e0429 100644 --- a/loadcpu.c +++ b/loadcpu.c @@ -4,6 +4,31 @@ #include #include +static void *spin_snb(void *uu) +{ + char __attribute__((aligned(32))) m[2][32]; + + asm("vpxor %%xmm1, %%xmm1, %%xmm1;\n" + "vpxor %%xmm2, %%xmm2, %%xmm2;\n" + "0:\n" + "vmovaps (%0), %%ymm0;\n" + "vmovaps %%ymm1, (%1);\n" + "vaddps %%ymm1, %%ymm1, %%ymm2\n" + "vmulps %%ymm3, %%ymm3, %%ymm4\n" + "vmovaps (%0), %%ymm0;\n" + "vmovaps %%xmm1, (%1);\n" + "vaddps %%ymm1, %%ymm1, %%ymm2\n" + "vmulps %%ymm3, %%ymm3, %%ymm4\n" + "vmovaps (%0), %%ymm0;\n" + "vaddps %%ymm1, %%ymm1, %%ymm2\n" + "vmulps %%ymm3, %%ymm3, %%ymm4\n" + "jmp 0b;\n" + : + : "r" (&m[0]), "r" (&m[1]) + : "rax", "rcx"); + abort(); +} + static void *spin(void *uu) { while(1) {