https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=227339

Mark Millard <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[email protected]

--- Comment #6 from Mark Millard <[email protected]> ---
(In reply to Dimitry Andric from comment #5)

I see: -mfpmath=sse and -ffp-contract=fast , in addition
to the likes of -mno-sse2 . Looks like such could be for
a pentium3 or pentium3m sort of context. For reference:

-mfpmath=unit for unit being "sse":

QUOTE of GCC material for "sse":
‘sse’
Use scalar floating-point instructions present in the SSE instruction set. This
instruction set is supported by Pentium III and newer chips, and in the AMD
line by Athlon-4, Athlon XP and Athlon MP chips. The earlier version of the SSE
instruction set supports only single-precision arithmetic, thus the double and
extended-precision arithmetic are still done using 387. A later version,
present only in Pentium 4 and AMD x86-64 chips, supports double-precision
arithmetic too.

For the x86-32 compiler, you must 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 80 bits.

This is the default choice for the x86-64 compiler, Darwin x86-32 targets, and
the default choice for x86-32 targets with the SSE2 instruction set when
-ffast-math is enabled.
END QUOTE

Also:

QUOTE
-ffp-contract=style
-ffp-contract=off disables floating-point expression contraction.
-ffp-contract=fast enables floating-point expression contraction such as
forming of fused multiply-add operations if the target has native support for
them. -ffp-contract=on enables floating-point expression contraction if allowed
by the language standard. This is implemented for C and C++, where it enables
contraction within one expression, but not across different statements.

The default is -ffp-contract=off for C in a standards compliant mode (-std=c11
or similar), -ffp-contract=fast otherwise.
END QUOTE

As far as I can tell, the combination should be valid and should use 387
code for double, not sse2 code.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Reply via email to