From: Volker Armin Hemmann <volkerarmin@googlemail.com>
To: gentoo-user@lists.gentoo.org
Subject: Re: [gentoo-user] USE="mmx mmxext sse sse2 ssse3 3dnow 3dnowext"
Date: Fri, 29 May 2009 08:36:15 +0200 [thread overview]
Message-ID: <200905290836.15586.volkerarmin@googlemail.com> (raw)
In-Reply-To: <871vq85vcf.fsf@newton.gmurray.org.uk>
On Freitag 29 Mai 2009, Graham Murray wrote:
> Stroller <stroller@stellar.eclipse.co.uk> writes:
> > But, surely "-march=" also instructs gcc to support the additional
> > instructions. Suggest you re-read Daniel's post that I was replying
> > to.
> >
> > What's the difference between supporting the "certain set of
> > instructions" with "-march=" and doing so with USEs?
> >
> > Or doesn't "-march=" support additional "certain sets of
> > instructions". What does it do, then?
>
> I am not sure,
>
> $ gcc -Q --help=target -march=core2
> The following options are target specific:
> -m128bit-long-double [disabled]
> -m32 [enabled]
> -m3dnow [disabled]
> -m3dnowa [disabled]
> -m64 [disabled]
> -m80387 [enabled]
> -m96bit-long-double [enabled]
> -mabm [disabled]
> -maccumulate-outgoing-args [disabled]
> -maes [disabled]
> -malign-double [disabled]
> -malign-functions=
> -malign-jumps=
> -malign-loops=
> -malign-stringops [enabled]
> -march= core2
> -masm=
> -mavx [disabled]
> -mbranch-cost=
> -mcld [disabled]
> -mcmodel=
> -mcx16 [disabled]
> -mfancy-math-387 [enabled]
> -mfma [disabled]
> -mforce-drap [disabled]
> -mfp-ret-in-387 [enabled]
> -mfpmath=
> -mfused-madd [enabled]
> -mglibc [enabled]
> -mhard-float [enabled]
> -mieee-fp [enabled]
> -mincoming-stack-boundary=
> -minline-all-stringops [disabled]
> -minline-stringops-dynamically [disabled]
> -mintel-syntax [disabled]
> -mlarge-data-threshold=
> -mmmx [disabled]
> -mms-bitfields [disabled]
> -mno-align-stringops [disabled]
> -mno-fancy-math-387 [disabled]
> -mno-fused-madd [disabled]
> -mno-push-args [disabled]
> -mno-red-zone [disabled]
> -mno-sse4 [enabled]
> -momit-leaf-frame-pointer [disabled]
> -mpc
> -mpclmul [disabled]
> -mpopcnt [disabled]
> -mpreferred-stack-boundary=
> -mpush-args [enabled]
> -mrecip [disabled]
> -mred-zone [enabled]
> -mregparm=
> -mrtd [disabled]
> -msahf [disabled]
> -msoft-float [disabled]
> -msse [disabled]
> -msse2 [disabled]
> -msse2avx [disabled]
> -msse3 [disabled]
> -msse4 [disabled]
> -msse4.1 [disabled]
> -msse4.2 [disabled]
> -msse4a [disabled]
> -msse5 [disabled]
> -msseregparm [disabled]
> -mssse3 [disabled]
> -mstack-arg-probe [disabled]
> -mstackrealign [enabled]
> -mstringop-strategy=
> -mtls-dialect=
> -mtls-direct-seg-refs [enabled]
> -mtune=
> -muclibc [disabled]
> -mveclibabi=
and man gcc says:
--help={class|[^]qualifier}[,...]
Print (on the standard output) a description of the command line
options understood by the compiler that fit into all specified
classes and qualifiers. These are the supported classes:
target
This will display target-specific options. Unlike the --target-help
option however, target-specific options of the linker
and assembler will not be displayed. This is because those
tools do not currently support the extended --help= syntax.
Which leads to the conclusion, that it only shows options that can be set. Not
options how they are really set (besides a few that are enabled by the
architecture). If you leave -march=core2 out. you will probably get the same
result.
for example:
-mfpmath=unit
Generate floating point arithmetics for selected unit unit. The
choices for unit are:
387 Use the standard 387 floating point coprocessor present
majority of chips and emulated otherwise. Code compiled with this
option will run almost everywhere. The temporary results are
computed in 80bit precision instead of precision specified by
the type resulting in slightly different results compared to
most of other chips. See -ffloat-store for more detailed
description.
This is the default choice for i386 compiler.
sse Use scalar floating point instructions present in the SSE
instruction set. This instruction set is supported by Pentium3
and newer chips, in the AMD line by Athlon-4, Athlon-xp and
Athlon-mp chips. The earlier version of SSE instruction set
supports only single precision arithmetics, thus the double and
extended precision arithmetics is still done using 387.
Later version, present only in Pentium4 and the future AMD
x86-64 chips supports double precision arithmetics too.
For the i386 compiler, you need to use -march=cpu-type, -msse
or -msse2 switches to enable SSE extensions and make this
option effective. For the x86-64 compiler, these extensions
are enabled by default.
The resulting code should be considerably faster in the
majority of cases and avoid the numerical instability problems of
387 code, but may break some existing code that expects
temporaries to be 80bit.
This is the default choice for the x86-64 compiler.
as you can see from the man excerpt, if the help showed enabled options,
mfpmath=sse should be there. It isn't.
...
next prev parent reply other threads:[~2009-05-29 6:36 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-26 4:27 [gentoo-user] USE="mmx mmxext sse sse2 ssse3 3dnow 3dnowext" Stroller
2009-05-26 4:37 ` Adam Carter
2009-05-26 4:59 ` Volker Armin Hemmann
2009-05-26 4:37 ` Volker Armin Hemmann
2009-05-26 5:00 ` Stroller
2009-05-26 5:10 ` Volker Armin Hemmann
2009-05-26 6:15 ` Stroller
2009-05-26 6:27 ` Volker Armin Hemmann
2009-05-26 8:34 ` Stroller
2009-05-26 14:31 ` Daniel Iliev
2009-05-26 21:07 ` Stroller
2009-05-27 0:47 ` Daniel Iliev
2009-05-27 8:14 ` Stroller
2009-05-27 10:00 ` Daniel Iliev
2009-05-27 12:14 ` Stroller
2009-05-27 19:57 ` Wyatt Epp
2009-05-27 20:04 ` Volker Armin Hemmann
2009-05-27 20:09 ` Alan McKinnon
2009-05-27 20:40 ` Wyatt Epp
2009-05-27 20:47 ` Volker Armin Hemmann
2009-05-27 21:04 ` Mike Edenfield
2009-05-27 21:12 ` Alan McKinnon
2009-05-27 23:00 ` Adam Carter
2009-05-27 20:08 ` Ward Poelmans
2009-05-27 21:04 ` Mike Edenfield
2009-05-27 21:23 ` Arttu V.
2009-05-28 10:17 ` Daniel Iliev
2009-05-28 19:13 ` Stroller
2009-05-28 20:08 ` Ward Poelmans
2009-05-28 20:19 ` Stroller
2009-05-28 20:27 ` Ward Poelmans
2009-05-28 20:38 ` Stroller
2009-05-29 5:30 ` Graham Murray
2009-05-29 6:36 ` Volker Armin Hemmann [this message]
2009-05-29 6:55 ` Volker Armin Hemmann
2009-05-29 15:25 ` Mike Edenfield
2009-05-29 7:51 ` Neil Bothwick
2009-05-26 22:20 ` KH
2009-05-26 22:26 ` KH
2009-05-26 22:32 ` Alan McKinnon
2009-05-26 13:26 ` [gentoo-user] " James
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200905290836.15586.volkerarmin@googlemail.com \
--to=volkerarmin@googlemail.com \
--cc=gentoo-user@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox