(x86 linux) SSE2 usage by simulation applications?

Jul 22, 2005 1 Replies

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?


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

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required