|
Message-ID: <20150713172247.GA12357@openwall.com> Date: Mon, 13 Jul 2015 20:22:47 +0300 From: Solar Designer <solar@...nwall.com> To: john-dev@...ts.openwall.com Subject: reporting of SIMD instruction set in use (was: PHC: Lyra2 on GPU) On Mon, Jul 13, 2015 at 07:00:15PM +0200, Agnieszka Bielec wrote: > 2015-07-12 16:39 GMT+02:00 Solar Designer <solar@...nwall.com>: > > More importantly, it's not necessarily "SSE2" if SIMD_COEF_64 is > > defined. It could as well be "AVX" or something else, depending on the > > build. Your task is to ensure proper reporting, including for things > > like "SSE2" vs. "AVX". > > what if algorithm in most cases uses see and uses ssse only a little ? > Will my code be compiled to AVX if I have sse2 intrinsics in the code > and I have defined __AVX__ ? Yes. But your questions sound confused. What do you mean by "see" (SSE2 or something?) and "ssse" (I guess SSSE3)? If the source code has e.g. some SSSE3 intrinsics, then that's what you should report as the SIMD instruction set that it uses, unless __AVX__ is defined, in which case everything gets compiled to AVX instructions instead. There are AVX (VEX-encoded) instruction equivalents to all of SSE*, including SSSE3 (why single it out like that at all? it is not in any way special, it just sits inbetween SSE3 and SSE4.1 historically). You should have a habit of reviewing the generated assembly code for different ones of your builds, with different compiler options. Maybe this will help you achieve an intuitive understanding of these things. Alexander
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.