Silverfrost Forums

Welcome to our forums

use of /p6 option

29 Feb 2012 10:57 #9733

Paul,

I was reviwing my .bat files for compiling and was wondering if the /pentium or /p6 option are still relevant ? When using /opt, I sometimes include /p6 but do not observe any change. Most processors I use are Xeon or more recent I5.

There was a time when I thought the math processor was 80-bit, while SSE instructions were 64-bit. Is this something to still consider or also lost in the past ? I had assumed that real*8 dot_product was calculated to 80-bit precision, as the accumulator was an 80-bit register. Is this also lost in the past ?

John

1 Mar 2012 9:24 #9734

John

I am not an expert on assembly code but here is what I can glean from a search through the compiler.

/p6 is still relevant. It provides optimisation without /opt being ON but only when /check is OFF.

/pentium has no effect.

You should be able to see the difference in the assembly code produced with /explist when you omit both /check and /opt. That is, compare the assembly code produced with and without /p6 but leaving off both /check and /opt.

3 Mar 2012 5:45 #9745

The Pentium-Pro and Pentium-II (P6) did not have SSE instructions, let alone SSE2. The first processor to have SSE was the Pentium-III.

As far as I can tell, Salford/Silverfrost Fortran does not produce SSE or SSE2 instructions, no matter which compiler options are used. Therefore, to answer John's question: nothing is lost, but FTN95 is stuck in the past as far as instruction sets are concerned. A saving grace may be that, because of the ABI convention that functions of type REAL*n return the function result in the 80x87 register ST0, processors will need to continue to provide 80x87 support to avoid breaking older libraries. I do not know of a single x86/x64 CPU dated beyond the turn of the millennium that does not provide the 80x87 registers and instruction set.

Please login to reply.