-
Notifications
You must be signed in to change notification settings - Fork 132
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Possible incorrect inclusion of AVX2 instructions when not enabled #53
Comments
FWIW, I expected the behavior to be to emit
|
Hi, I suspect that the issue is not related to libsimdpp itself as AVX equipped CPU should support the instruction in question. Processors that support AVX also support the version of vpandn that operates on XMM registers (ref). The Using non VEX instructions along with VEX instructions introduces a large performance penalty, so compilers try to use Could you please check whether running any code that just uses |
Upon further investigation, I cannot reproduce the SIGILL. The only plausible explanation I have is that while moving some source code around I brought along an old binary and failed to cleanly recompile before trying to execute it. Everything is copacetic now. My primary confusion came from looking at the assembly and the faulty thinking that Thanks for your time and the library! |
Hi there,
AFAICT, libsimdpp is erroneously including AVX2 instructions when I neither enable them with a compiler switch nor enable them with the instruction set selection macro. I have a file called
fail.cpp
:which I compile with this invocation:
and then I take a look at
a.out
:and it includes
vpandn
which, AFAIK, is an AVX2 instruction. Moreover, this triggers aSIGILL
on my machine, so at the very least it's not compatible with my architecture.Have I done something wrong? Perhaps a bad flag somewhere?
When I compile libsimdpp with
cmake .
, it does correctly conclude that I lack AVX2:The text was updated successfully, but these errors were encountered: