I have some code* that is causing llvm to throw a fit.  In particular, I get (compiling with GHC 7.8 and llvm 3.4):

    /tmp/ghc1685_0/ghc1685_5.bc:150324:0:
         Error: no such instruction: `sarxq %rax,%rbx,%r14'

Similar errors get repeated several thousand times, and it's always a sarxq instruction.  Now, my code doesn't use any of the simd primops, so the sarxq must be coming from llvm's autovectorization.  Is it possible that somehow GHC's output bytecode could be responsible, or is the problem more likely with llvm proper?  Is there any way I can force GHC to pass flags to llvm so I can experiment with different settings?

Another clue that the cause might be in llvm's autovectorization is that when I compile with llvm 3.0 (which does not support autovectorization), there are no error messages.

* I suspect my code is far too complicated for it to shed any light on this question, but it's available at: https://github.com/mikeizbicki/HLearn/tree/dev-7.8/src/examples/hlearn-allknn  If need be, I can create a minimal sample of code that causes the error, but I don't want to go through the trouble if it's not needed.