@@ -253,6 +253,8 @@ unit cpu;
movl $0,%ecx
cpuid
movl %ebx,_ebx
+ movl %ecx,_ecx
+ movl %edx,_edx
popl %ebx
end;
_AVX2Support:=_AVXSupport and ((_ebx and $20)<>0);
@@ -228,6 +228,8 @@ unit cpu;
end ['rax','rbx','rcx','rdx'];
_AVX512FSupport:=(_ebx and $10000)<>0;
@@ -40,8 +40,8 @@ begin
begin
writeln('yes');
asm
- // vpxor %ymm0,%ymm0,%ymm0
- // vaddpd %zmm0,%zmm0,%zmm0
+ vpxor %ymm0,%ymm0,%ymm0
+ vpdpbusd %zmm0,%zmm0,%zmm0
end
else
@@ -51,8 +51,8 @@ begin
- //vpxor %ymm0,%ymm0,%ymm0
- //vaddpd %zmm0,%zmm0,%zmm0
+ vpopcntb %zmm0,%zmm0