void __cpuid(int* cpuinfo, int info) { asm volatile( "xchg %%ebx, %%edi;" "cpuid;" "xchg %%ebx, %%edi;" :"=a" (cpuinfo[0]), "=D" (cpuinfo[1]), "=c" (cpuinfo[2]), "=d" (cpuinfo[3]) :"0" (info) ); } int cpuinfo[4]; __cpuid(cpuinfo, 1); avxSupportted = cpuinfo[2] & (1