On Wed, Jul 27, 2011 at 11:32 AM, Mick <michaelkintz...@gmail.com> wrote:
> On Wednesday 27 Jul 2011 17:13:21 Kfir Lavi wrote:
>> On Wed, Jul 27, 2011 at 5:34 PM, Kfir Lavi <lavi.k...@gmail.com> wrote:
>> > On Wed, Jul 27, 2011 at 5:09 PM, Andy Wilkinson
>> >>
>> >>  Another good trick I've found on the forums is to run:
>> >> $ gcc -### -e -v -march=native /usr/include/stdlib.h
>> >>
>> >> The last line of output will include the various CFLAGS that
>> >> -march=native
>> >>
>> >> picks.  In my case (Phenom II 955):
>> >>  "/usr/libexec/gcc/x86_64-pc-linux-gnu/4.4.5/cc1" "-quiet"
>> >>
>> >> "/usr/include/stdlib.h" "-D_FORTIFY_SOURCE=2" *"-march=amdfam10"
>> >> "-mcx16" "-msahf" "-mpopcnt"* "--param" "l1-cache-size=64" "--param"
>> >> "l1-cache-line-size=64" "--param" "l2-cache-size=512" "-mtune=amdfam10"
>> >> "-quiet" "-dumpbase" "stdlib.h" "-auxbase" "stdlib" "-o"
>> >> "/tmp/ccR1PlNZ.s" "--output-pch=/usr/include/stdlib.h.gch"
>> >>
>> >> I typically use -march=native when I don't need to worry about distcc,
>> >> or the options from that output that start with "-m".
>
>> Just shared this trick in my blog.
>> http://gentoo-what-did-you-say.blogspot.com/2011/07/finding-cpu-flags-using
>> -gcc.html I added a link to this thread in the post.
>
> It seems that on my early i7, the -march=core2 does not have all the -msse*
> flags enabled, while native does:
>
> $ diff -y --suppress-common-lines core2.txt native.txt
>  -mcx16        [disabled]        |   -mcx16          [enabled]
>  -mno-sse4     [enabled]         |   -mno-sse4       [disabled]
>  -mpopcnt      [disabled]        |   -mpopcnt        [enabled]
>  -msahf        [disabled]        |   -msahf          [enabled]
>  -msse         [disabled]        |   -msse           [enabled]
>  -msse2        [disabled]        |   -msse2          [enabled]
>  -msse3        [disabled]        |   -msse3          [enabled]
>  -msse4        [disabled]        |   -msse4          [enabled]
>  -msse4.1      [disabled]        |   -msse4.1        [enabled]
>  -msse4.2      [disabled]        |   -msse4.2        [enabled]
>  -mssse3       [disabled]        |   -mssse3         [enabled]
>  -mtune=                         |   -mtune=         core2
>
>
> I wonder if I should just set it to "-march=native -O2 -pipe" and forget about
> it ... native it seems to have more stuff switched on and it would probably be
> a-good-thing® (although my understanding of what each flag does is rather
> cursory).
> --
> Regards,
> Mick
>
Just curious if that's consistent with /proc/cpuinfo in the flags
section? MAybe gcc is wrong in it's enable/disable choices, or maybe
they know something specific.

This is from an i7-980 Extreme from about 1 year ago:

flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe
syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts
rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64
monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt
aes lahf_lm ida arat dts tpr_shadow vnmi flexpriority ept vpid

- Mark

Reply via email to