On Sat, Jul 16, 2022 at 10:08 PM Roger Sayle <ro...@nextmovesoftware.com> wrote: > > > This AVX512 specific patch to sse.md is split out from an earlier patch: > https://gcc.gnu.org/pipermail/gcc-patches/2022-June/596199.html > > The new splitters proposed in that patch interfere with AVX512's > kunpckdq instruction which is defined as identical RTL, > DW:DI = (HI:SI<<32)|zero_extend(LO:SI). To distinguish these, > and avoid AVX512 mask registers accidentally being (ab)used by reload > to perform SImode scalar shifts, this patch adds the explicit > (unspec UNSPEC_MASKOP) to the unpack mask operations, which matches > what sse.md does for the other mask specific (logic) operations. > > This patch has been tested on x86_64-pc-linux-gnu with make bootstrap > and make -k check, both with and without --target_board=unix{-m32} > with no new failures. Ok for mainline? Ok, thanks for handling this. > > 2022-07-16 Roger Sayle <ro...@nextmovesoftware.com> > > gcc/ChangeLog > * config/i386/sse.md (kunpckhi): Add UNSPEC_MASKOP unspec. > (kunpcksi): Likewise, add UNSPEC_MASKOP unspec. > (kunpckdi): Likewise, add UNSPEC_MASKOP unspec. > (vec_pack_trunc_qi): Update to specify required UNSPEC_MASKOP > unspec. > (vec_pack_trunc_<mode>): Likewise. > > > Thanks in advance, > Roger > -- >
-- BR, Hongtao