https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101696
--- Comment #6 from H.J. Lu <hjl.tools at gmail dot com> --- (In reply to Martin Liška from comment #5) > 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? It is very difficult to add them to __builtin_cpu_is since there are no such processors. However, add them to __builtin_cpu_supports is possible.