Thread overview
[Issue 16087] Alignment (.alignof) and stack space incorrect for SIMD types.
May 28, 2016
ZombineDev
May 29, 2016
Marco Leise
May 30, 2016
Marco Leise
Nov 20, 2016
Walter Bright
Jul 02, 2017
Vladimir Panteleev
May 28, 2016
https://issues.dlang.org/show_bug.cgi?id=16087

ZombineDev <petar.p.kirov@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |petar.p.kirov@gmail.com

--
May 29, 2016
https://issues.dlang.org/show_bug.cgi?id=16087

--- Comment #1 from Marco Leise <Marco.Leise@gmx.de> ---
Just a clarification, that doesn't change the subject of this report: It occurred to me today that the stack is aligned to 16 bytes and therefore we cannot guarantee correct alignment for AVX vectors placed on the stack.

--
May 30, 2016
https://issues.dlang.org/show_bug.cgi?id=16087

--- Comment #2 from Marco Leise <Marco.Leise@gmx.de> ---
Ok, different sources report that major compilers (llvm, gcc, icc) respect alignments >= 16 on the stack. I'll open a separate issue for that.

--
November 20, 2016
https://issues.dlang.org/show_bug.cgi?id=16087

Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bugzilla@digitalmars.com

--- Comment #3 from Walter Bright <bugzilla@digitalmars.com> ---
Partial fix: https://github.com/dlang/dmd/pull/6265

dmd simply doesn't support 32 byte vectors at the moment, so the rest will have to wait.

--
July 02, 2017
https://issues.dlang.org/show_bug.cgi?id=16087

Vladimir Panteleev <dlang-bugzilla@thecybershadow.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |dlang-bugzilla@thecybershad
                   |                            |ow.net
           See Also|                            |https://issues.dlang.org/sh
                   |                            |ow_bug.cgi?id=17237
         Resolution|---                         |WORKSFORME

--- Comment #4 from Vladimir Panteleev <dlang-bugzilla@thecybershadow.net> ---
(In reply to Marco Leise from comment #0)
>     writefln("float8.alignof yields %s but should yield 32.",
> float8.alignof);
>     writefln("void16.alignof yields %s but should yield 16.",
> void16.alignof);

Fixed in https://github.com/dlang/dmd/pull/6265

>     writefln("When embedded, a float4 exposes some hidden alignment, as it
> changes to %s.", Matrix4x4.alignof);

Fixed in https://github.com/dlang/dmd/pull/6582 (issue 17237)

--