On Monday, 20 April 2015 at 11:01:28 UTC, Panke wrote:
On Monday, 20 April 2015 at 09:41:09 UTC, bearophile wrote:
"Utilizing the other 80% of your system's performance:
Starting with Vectorization" by Ulrich Drepper:
https://www.youtube.com/watch?v=DXPfE2jGqg0
It shows two still missing parts of the D type system: a way
to define strongly typed byte alignments for arrays (something
better than the aligned() shown here, because I prefer the
alignment to be part of the type), and a way to tell the type
system that some array slices are fully distinct (the
__restrict seen here, I think this information doesn't need to
be part of a type).
Bye,
bearophile
Aren't unaligned loads as fast as aligned loads on modern x86?
No that's not true. On modern x86 processors using unaligned
loading instructions on aligned data does not incur additional
overhead, therefore you can always use unaligned load for
everything, but loading unaligned data is still slower than
aligned data.