On Thu, Jan 10, 2019 at 10:46:14AM +0100, Dr. Matthias Kretz wrote: > I strongly believe this API change needs to be reverted (unless I completely > misunderstand how vfixupimm works): > > 1. This change breaks API with previous GCC releases. I.e. source code that > compiled with GCC 8 will not compile with GCC 9 anymore. If you really want a > "simplified" fixup intrinsic, add a new one. > > 1'. It'll be really frustrating to support code that compiles on more than a > single compiler & version. > > 2. Some existing documentation (e.g. https://software.intel.com/sites/ > landingpage/IntrinsicsGuide) still documents the old interface. > > 3. Why was this change introduced to the SDM in the first place? E.g. a logb > implementation looked like this: > > ``` > _mm_fixupimm_ps(_mm_getexp_ps(x), x, _mm_set1_epi32(0x00550433), 0x00);
I guess you could use _mm_mask_fixupimm_ps(_mm_getexp_ps(x), -1, x, _mm_set1_epi32(0x00550433), 0x00); because that one does allow you to specify the dest operand. But I agree it is just weird, the non-masked intrinsics don't take into account the 0b0000 cases anymore. Jakub