I could be wrong, but I think so.

As I understand, align(N) only aligns it *within the structure*.

If you are at 0 offset, you are aligned on all N already, so I don't see why it would add padding before the first member of a struct.


On 21/09/11 11:22 AM, Rory McGuire wrote:
Would that even be true in the case where you specify a alignment (
keeping in mind that the alignment is for that specific variable)?



On Tue, Sep 20, 2011 at 7:25 PM, Peter Alexander
<peter.alexander...@gmail.com <mailto:peter.alexander...@gmail.com>> wrote:

    On 19/09/11 9:17 AM, Rory McGuire wrote:

        surely you would have to use
          movaps XMM0, v.v;

          because the alignment would only happen inside the struct?


        On Sat, Sep 17, 2011 at 8:11 PM, Adam D. Ruppe
        <destructiona...@gmail.com <mailto:destructiona...@gmail.com>
        <mailto:destructionator@gmail.__com
        <mailto:destructiona...@gmail.com>>> wrote:

            Perhaps:

            void foo() {
                    struct V { align(16) float[4] v = [1.0f, 2.0f, 3.0f,
        4.0f]; }
                    V v;
                    asm {
                            movaps XMM0, v;
                    }
            }


            It compiles, but I'm not sure if it's actually correct.



    v has offset 0 in the struct, so &v.v == &v, which is all the inline
    asm cares about.



Reply via email to