← Back to context

Comment by edflsafoiewq

7 years ago

What's wrong with alignment?

well there is this: #ifdef _MSC_VER __declspec( align(16) ) struct float4 { float v[4]; }; #else struct float4 { float v[4]; } __attribute__ ((aligned(16))); #endif

but the main problem ist tthat alignment is _not_ part of the typing system. ( alignas vs alignof )

butt, to put it more general: 90% of your performance is in memory access and compilers are rubbish optimizing those, they are however getting increasingly good at the 10%. see also https://www.youtube.com/watch?v=rX0ItVEVjHc for realworld examples/exploration

  • > well there is this: #ifdef _MSC_VER __declspec( align(16) ) struct float4 { float v[4]; }; #else struct float4 { float v[4]; } __attribute__ ((aligned(16))); #endif

    I don't understand what you are trying to say here? Why not just use

        struct alignas(16) float4 { float v[4]; };
    

    You can even put both __declspec( align(16) ) and __attribute__ ((aligned(16))) in the same place if you want to have a fallback for older compilers.