[Issue 17237] Wrong alignment of 256-bit and 512-bit vectors

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Wed Mar 1 14:11:43 PST 2017


https://issues.dlang.org/show_bug.cgi?id=17237

Iain Buclaw <ibuclaw at gdcproject.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ibuclaw at gdcproject.org

--- Comment #1 from Iain Buclaw <ibuclaw at gdcproject.org> ---
On a mild ranting note, this is the offender in the frontend.

---
// AggregateDeclaration.placeField (aggregate.d)

if ((global.params.is64bit || global.params.isOSX) && memalignsize == 16)
{
}
else if (8 < memalignsize)
    memalignsize = 8;

---

For DMD - you seem to have forgotten that you support 256-bit vectors.

For GDC, you're ignoring the target-specific alignment of fields that we
return, instead enforcing that everything must fit your x86 view of ABI.

This piece of code should be moved to Target::fieldalign where it deservedly
belongs.

--


More information about the Digitalmars-d-bugs mailing list