Gentoo Archives: gentoo-user

From: Volker Armin Hemmann <volkerarmin@××××××××××.com>
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] USE="mmx mmxext sse sse2 ssse3 3dnow 3dnowext"
Date: Fri, 29 May 2009 06:55:50
Message-Id: 200905290855.46136.volkerarmin@googlemail.com
In Reply to: Re: [gentoo-user] USE="mmx mmxext sse sse2 ssse3 3dnow 3dnowext" by Graham Murray
1 On Freitag 29 Mai 2009, Graham Murray wrote:
2 > Stroller <stroller@××××××××××××××××××.uk> writes:
3 > > But, surely "-march=" also instructs gcc to support the additional
4 > > instructions. Suggest you re-read Daniel's post that I was replying
5 > > to.
6 > >
7 > > What's the difference between supporting the "certain set of
8 > > instructions" with "-march=" and doing so with USEs?
9 > >
10 > > Or doesn't "-march=" support additional "certain sets of
11 > > instructions". What does it do, then?
12 >
13 > I am not sure,
14 >
15 > $ gcc -Q --help=target -march=core2
16 > The following options are target specific:
17 > -m128bit-long-double [disabled]
18 > -m32 [enabled]
19 > -m3dnow [disabled]
20 > -m3dnowa [disabled]
21 > -m64 [disabled]
22 > -m80387 [enabled]
23 > -m96bit-long-double [enabled]
24 > -mabm [disabled]
25 > -maccumulate-outgoing-args [disabled]
26 > -maes [disabled]
27 > -malign-double [disabled]
28 > -malign-functions=
29 > -malign-jumps=
30 > -malign-loops=
31 > -malign-stringops [enabled]
32 > -march= core2
33 > -masm=
34 > -mavx [disabled]
35 > -mbranch-cost=
36 > -mcld [disabled]
37 > -mcmodel=
38 > -mcx16 [disabled]
39 > -mfancy-math-387 [enabled]
40 > -mfma [disabled]
41 > -mforce-drap [disabled]
42 > -mfp-ret-in-387 [enabled]
43 > -mfpmath=
44 > -mfused-madd [enabled]
45 > -mglibc [enabled]
46 > -mhard-float [enabled]
47 > -mieee-fp [enabled]
48 > -mincoming-stack-boundary=
49 > -minline-all-stringops [disabled]
50 > -minline-stringops-dynamically [disabled]
51 > -mintel-syntax [disabled]
52 > -mlarge-data-threshold=
53 > -mmmx [disabled]
54 > -mms-bitfields [disabled]
55 > -mno-align-stringops [disabled]
56 > -mno-fancy-math-387 [disabled]
57 > -mno-fused-madd [disabled]
58 > -mno-push-args [disabled]
59 > -mno-red-zone [disabled]
60 > -mno-sse4 [enabled]
61 > -momit-leaf-frame-pointer [disabled]
62 > -mpc
63 > -mpclmul [disabled]
64 > -mpopcnt [disabled]
65 > -mpreferred-stack-boundary=
66 > -mpush-args [enabled]
67 > -mrecip [disabled]
68 > -mred-zone [enabled]
69 > -mregparm=
70 > -mrtd [disabled]
71 > -msahf [disabled]
72 > -msoft-float [disabled]
73 > -msse [disabled]
74 > -msse2 [disabled]
75 > -msse2avx [disabled]
76 > -msse3 [disabled]
77 > -msse4 [disabled]
78 > -msse4.1 [disabled]
79 > -msse4.2 [disabled]
80 > -msse4a [disabled]
81 > -msse5 [disabled]
82 > -msseregparm [disabled]
83 > -mssse3 [disabled]
84 > -mstack-arg-probe [disabled]
85 > -mstackrealign [enabled]
86 > -mstringop-strategy=
87 > -mtls-dialect=
88 > -mtls-direct-seg-refs [enabled]
89 > -mtune=
90 > -muclibc [disabled]
91 > -mveclibabi=
92
93 get this:
94 dev.gentoo.org/~dirtyepic/bin/analyze-x86
95
96 and let it run, for example:
97 /analyze-x86 /bin/gzip
98 Checking vendor_id string... AuthenticAMD 64
99 Disassembling /bin/gzip, please wait...
100 i486: 0 i586: 0 ppro: 36 mmx: 46 3dnow: 0 ext3dnow: 0 sse:
101 0 sse2: 4 sse3: 0
102 /bin/gzip will run on AMD Athlon64 or higher processor.
103
104 or this:
105 /analyze-x86 /bin/bash
106 Checking vendor_id string... AuthenticAMD 64
107 Disassembling /bin/bash, please wait...
108 i486: 0 i586: 0 ppro: 369 mmx: 876 3dnow: 0 ext3dnow: 0 sse:
109 120 sse2: 0 sse3: 0
110 /bin/bash will run on Pentium III (pentium3) or higher processor.
111
112 and march=k8-sse3 -msse3 -O2 -pipe were my flags. Seems that a lot of stuff
113 got turned on ;)
114
115 mplayer is even more 'interessting':
116 ./analyze-x86 /usr/bin/mplayer
117 Checking vendor_id string... AuthenticAMD 64
118 Disassembling /usr/bin/mplayer, please wait...
119 i486: 3948 i586: 14 ppro: 7573 mmx: 164986 3dnow: 5331 ext3dnow: 768 sse:
120 31407 sse2: 27712 sse3: 51
121
122 This binary was found to contain the cpuid instruction.
123 It may be able to conditionally execute instructions if
124 they are supported on the host (i586+).
125
126 /usr/bin/mplayer will run on AMD Athlon64 w/ SSE3 or higher processor.

Replies

Subject Author
Re: [gentoo-user] USE="mmx mmxext sse sse2 ssse3 3dnow 3dnowext" Mike Edenfield <kutulu@××××××.org>