(x86 linux) SSE2 usage by simulation applications?

U

uuyu

Guest
I was arguing with a friend about SSE2 (Intel's SIMD vector
CPU instructions), and how useless it is to most general
computer programs.

But he correctly pointed out any analog simulation (SPICE)
likely use floating-point numeric computations. Furthermore,
he claimed that in native 64-bit mode, the AMD64/EM64T
instruction-set doesn't have x87 (legacy FPU) instructions.
A 64-bit application MUST use SSE registers for all
floating-point math.

I'm not much of a programmer, so is this true? If so, are
the 64-bit/linux versions of EDA tools specifically
optimized for the SSE instruction set?
 
uuyu wrote:
I was arguing with a friend about SSE2 (Intel's SIMD vector
CPU instructions), and how useless it is to most general
computer programs.

But he correctly pointed out any analog simulation (SPICE)
likely use floating-point numeric computations. Furthermore,
he claimed that in native 64-bit mode, the AMD64/EM64T
instruction-set doesn't have x87 (legacy FPU) instructions.
A 64-bit application MUST use SSE registers for all
floating-point math.
Quoted from the Wikipedia AMD64 entry (for what that's worth):

"SSE instructions. The AMD64 architecture includes Intel's SSE and SSE2
instructions, newer E-stepping CPU include SSE3 as well. The x87 and MMX
instructions are supported."

Windows for AMD64/EM64T won't save the x87 FPU context for a 64-bit process,
so that makes the x87 essentially useless on that OS (except for older 32-bit
code). You *can* use the x87 FPU in a 64-bit process under Linux for AMD64,
but it will be difficult to call FP library routines - the AMD64 ABI uses the
SSE2 registers for float argument passing.

-Jason
 

Welcome to EDABoard.com

Sponsor

Back
Top