On Friday, 31 May 2013 at 16:17:28 UTC, Ali Çehreli wrote:
On 05/31/2013 04:28 AM, Shriramana Sharma wrote:

> On Fri, May 31, 2013 at 4:31 PM, Timon Gehr
<timon.g...@gmx.ch> wrote:
>>
>> If double uses xmm registers and real uses the fpu registers
(as is standard
>> on x64), then double multiplication has twice the throughput
of real
>> multiplication on recent intel microarchitectures.
>
> Hi can you clarify that? I'm interested because I'm running a
64 bit
> system. What does twice the throughput mean? double is faster?

I am interested in the answer too.

int, long, float, double etc. are all of size 2^n. That means they can be neatly packed in to SIMD registers (e.g. XMM0-XMM15 on x86_64) and can be operated on in parallel, providing very large speedups in some cases. real, on the other hand - on x86/64 - is 80bits and as such doesn't fit in to the same scheme.

There are also differences to do with calling conventions that can make different types slower/faster, but this is very dependant on the exact usage and normally only significantly affects small functions that can't be inlined IME.

Reply via email to