https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82887
Peter Cordes <peter at cordes dot ca> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |peter at cordes dot ca
--- Comment #4 from Peter Cordes <peter at cordes dot ca> ---
Since some code is apparently still avoiding this because of old broken GCC
(e.g.
https://github.com/pmem/pmdk/blob/a6031710f7c102c6b8b6b19dc9708a3b7d43e87b/src/libpmem/x86_64/memset/memset_nt_avx512f.h#L193
)
Perhaps a workaround of _mm512_castsi512_si256 would be useful? Or does that
ICE as well? I can't repro the bug on Godbolt so IDK.
Doing _mm512_set1_epi8(c) and a separate _mm256_set1_epi8(c) doesn't CSE with
GCC, only clang. https://godbolt.org/z/uZ4lv- And if you leave out
-march=skylake-avx512 you get even worse asm from GCC.