The SSE types require 16-byte alignment. Most of the original SSE instructions have versions that accept non-aligned data though.
Alexander On Tue, Oct 16, 2018 at 11:18 PM Simon Marlow <marlo...@gmail.com> wrote: > I vaguely recall that this was because 16 byte alignment is the minimum > you need for certain foreign types, and it's what malloc() does. Perhaps > check the FFI spec and the guarantees that mallocForeignPtrBytes and > friends provide? > > Cheers > Simon > > On Thu, 11 Oct 2018 at 18:44, Ömer Sinan Ağacan <omeraga...@gmail.com> > wrote: > >> Hi, >> >> I just found out we currently align all pinned array payloads to 16 bytes >> and >> I'm wondering why. I don't see any comments/notes on this, and it's also >> not >> part of the primop documentation. We also have another primop for aligned >> allocation: newAlignedPinnedByteArray#. Given that alignment behavior of >> newPinnedByteArray# is not documented and we have another one for aligned >> allocation, perhaps we can remove alignment in newPinnedByteArray#. >> >> Does anyone remember what was the motivation for always aligning pinned >> arrays? >> >> Thanks >> >> Ömer >> _______________________________________________ >> ghc-devs mailing list >> ghc-devs@haskell.org >> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs >> > _______________________________________________ > ghc-devs mailing list > ghc-devs@haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs >
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs