A menos que você tenha uma necessidade premente de mirar nas arquiteturas mais antigas do core2, pentium4 ou pentium3, eu abordaria a situação dessa forma. Execute este comando:
# 64-bit system
$ getconf LONG_BIT
64
# 32-bit system
$ getconf LONG_BIT
32
Se o seu sistema retornar 64, use o -march
switch i64em. Se você obtiver 32, use i32.
excerto de documentos do icc
Label Meaning
i32 The option is available on systems using IA-32 architecture.
i64em The option is available on systems using Intel� 64 architecture.
i64 The option is available on systems using IA-64 architecture.
Qual CPU eu tenho?
Você pode usar a ferramenta de linha de comando cpuid
para obter mais detalhes sobre a CPU de um determinado sistema. Existem outras maneiras de obter essas informações também, mas este é o meu método preferido.
$ cpuid -1 | less
CPU:
vendor_id = "GenuineIntel"
version information (1/eax):
processor type = primary processor (0)
family = Intel Pentium Pro/II/III/Celeron/Core/Core 2/Atom, AMD Athlon/Duron, Cyrix M2, VIA C3 (6)
model = 0x5 (5)
stepping id = 0x5 (5)
extended family = 0x0 (0)
extended model = 0x2 (2)
(simple synth) = Intel Core i3 / i5 / i7 (Clarkdale K0) / Pentium U5000 Mobile / Pentium P4505 / U3405 / Celeron Mobile P4000 / U3000 (Arrandale K0), 32nm
miscellaneous (1/ebx):
process local APIC physical ID = 0x5 (5)
cpu count = 0x10 (16)
CLFLUSH line size = 0x8 (8)
brand index = 0x0 (0)
...