SIMD/SSE support & alignment

Austin Seipp aseipp at
Tue Mar 12 15:52:50 CET 2013

On Tue, Mar 12, 2013 at 9:09 AM, Geoffrey Mainland <mainland at> wrote:
> On 03/10/2013 09:52 PM, Nicolas Trangez wrote:
>> ... snip ...
> ...
> 1) Get LLVM 3.2 working with GHC's LLVM back end.

This should work fine in HEAD on OS X and Linux at least. David sorted
it out after I filed a lot of bugs and a few patches to fix it.

However, I believe at one point or another (before SIMD landed) I
tried the new loop and basic block vectorizer in 3.2 with HEAD. I used
a simple loop like the one Nicholas posted - with the new code
generator, the resulting Cmm is very compact, so I figured it ideal
for vectorization. But I believe it made things slower. I don't
remember the details, but I'll have a copy of HEAD worth testing

> 2) Fix the stack alignment issue with LLVM. This will likely require a
> patch to LLVM.
> 3) Add support for aligned move primops.
> 4) Extend the current SIMD fusion framework to handle transitioning to
> aligned move instructions. As an alternative, only use aligned move
> instructions on memory that we know is aligned.
> These are all on my todo list, but my plate is quite full at the moment.
> Geoff
> _______________________________________________
> ghc-devs mailing list
> ghc-devs at


More information about the ghc-devs mailing list