https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101696
Martin Liška <marxin at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |NEW CC| |hjl.tools at gmail dot com Assignee|marxin at gcc dot gnu.org |unassigned at gcc dot gnu.org --- Comment #5 from Martin Liška <marxin at gcc dot gnu.org> --- Right now, the x86-64* are defined as aliases to k8: {"x86-64", PROCESSOR_K8, CPU_K8, PTA_X86_64_BASELINE, 0, P_NONE}, {"x86-64-v2", PROCESSOR_K8, CPU_GENERIC, PTA_X86_64_V2 | PTA_NO_TUNE, 0, P_NONE}, {"x86-64-v3", PROCESSOR_K8, CPU_GENERIC, PTA_X86_64_V3 | PTA_NO_TUNE, 0, P_NONE}, {"x86-64-v4", PROCESSOR_K8, CPU_GENERIC, PTA_X86_64_V4 | PTA_NO_TUNE, 0, P_NONE}, and it has the corresponding pta info: (gdb) p *arch_info $10 = { name = 0x1f96cdc "x86-64", processor = PROCESSOR_K8, schedule = CPU_K8, flags = { low = 0, high = 137445326852 }, model = 0, priority = P_NONE } thus we end up with: pr101696.c:16:5: error: no dispatcher found for the versioning attributes 16 | int foo () | ^~~ So first step that needs to be done is adding support for the march names in: __builtin_cpu_is. @H.J. Can you please add that?