#include <errno.h>
#include <pthread.h>
+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) {