Open tdegeus opened 4 years ago
I ran into this issue at some point. The last argument of _mm512_slli_epi64
and _mm512_srli_epi64
must be known at compile time. However, when this code is called, the compiler can figure out by itself the value of the constant (if called with a constant).
Do you call (indirectly) this code (it is the vectorization of shift operators)? Or do you have this error as soon as you include xismd
?
Alright. As far as your question is concerned, I'm not entirely sure. It is a bit cumbersome to debug on travis as many of these errors are hardware dependent. Will let you know!
Given that the error message does not print something like "required from here", I think checking GooseEYE/config.h:26
and GooseEYE.h:10
should be enough. If they are include
statements, then you do not call directly these methods and the compiler complains before knowing if he can determine the second argument (which is super weird).
Out of curiosity, which compiler do you use? And which distribution of Ubuntu?
@JohanMabille we could provide a new type named xsimd::imm8<N>
to provide an explicit immediate, do you think it's worth the effort?
I'm getting the following build error on my CI: