Hello Jakub! On 28 Dec 11:07, Jakub Jelinek wrote: > Hi! > > Martin reported sse-13.c ICEs without all the options it has in dg-options. > The problem is that the GFNI builtins used incorrect ISA masks and the > headers too. GFNI has one SSE encoded instruction (but that really needs > SSE2 rather than SSE, because it uses V16QImode which is not enabled just > for SSE), 2 AVX VEC encoded ones (without masking) and then EVEX encoded > ones with masking where for *_mask we sometimes also need AVX512BW in > addition to GFNI + {AVX512VL,AVX512F} in the CPUID column in the pdf. > > Of course, such combinations don't really work properly with the current > handling of the builtin masks, so I've finally analyzed all cases where we > combine multiple ISA options in masks and found out that these days > what actually is an exception is where we require one isa or another isa, > rather than both or all 3. So instead of adding further and further > exceptions, this patch changes the general rule, by default we require > all the listed ISAs to be enabled and have 3 exceptions to that rule > (SSE | 3DNOW_A), (FMA | FMA4) and (SSE4_2 | CRC32), where we are looking for > at least one of those enabled rather than both (but, if these are ored with > other ISA masks, we require one of the two from the pair and all others). > > Another thing is that 3 intrinsic headers were missing the boilerplate, > some were using incorrect macros etc. > > The new testcase unfortunately still has to require -msse2 -mmmx, because > some intrin headers aren't fully correct in their pragmas (don't enable > MMX where required etc.). > > Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk? OK.
-- Thanks, K