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.