From: Haochen Jiang Date: Tue, 9 Jul 2024 08:31:02 +0000 (+0800) Subject: i386: Correct AVX10 CPUID emulation X-Git-Tag: basepoints/gcc-16~7645 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=298a576f00c49b8f4529ea2f87b9943a32743250;p=thirdparty%2Fgcc.git i386: Correct AVX10 CPUID emulation AVX10 Documentaion has specified ecx value as 0 for AVX10 version and vector size under 0x24 subleaf. Although for ecx=1, the bits are all reserved for now, we still need to specify ecx as 0 to avoid dirty value in ecx. gcc/ChangeLog: * common/config/i386/cpuinfo.h (get_available_features): Correct AVX10 CPUID emulation to specify ecx value. --- diff --git a/gcc/common/config/i386/cpuinfo.h b/gcc/common/config/i386/cpuinfo.h index 936039725ab..2ae77d335d2 100644 --- a/gcc/common/config/i386/cpuinfo.h +++ b/gcc/common/config/i386/cpuinfo.h @@ -998,10 +998,10 @@ get_available_features (struct __processor_model *cpu_model, } } - /* Get Advanced Features at level 0x24 (eax = 0x24). */ + /* Get Advanced Features at level 0x24 (eax = 0x24, ecx = 0). */ if (avx10_set && max_cpuid_level >= 0x24) { - __cpuid (0x24, eax, ebx, ecx, edx); + __cpuid_count (0x24, 0, eax, ebx, ecx, edx); version = ebx & 0xff; if (ebx & bit_AVX10_256) switch (version)