On 05/31/2013 09:08 PM, John Colvin wrote:
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.


What I was talking about also holds for scalar code without usage of any packed instructions.

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