On Thu, 24 Jun 2021, Uros Bizjak wrote: > 2021-06-24 Uroš Bizjak <ubiz...@gmail.com> > > gcc/ > PR target/89021 > * config/i386/i386-expand.c (ix86_expand_sse_unpack): > Handle V8QI and V4HI modes. > * config/i386/mmx.md (sse4_1_<any_extend:code>v4qiv4hi2): > New insn pattern. > (sse4_1_<any_extend:code>v4qiv4hi2): Ditto. > (mmxpackmode): New mode attribute. > (vec_pack_trunc_<mmxpackmode:mode>): New expander. > (mmxunpackmode): New mode attribute. > (vec_unpacks_lo_<mmxunpackmode:mode>): New expander. > (vec_unpacks_hi_<mmxunpackmode:mode>): Ditto. > (vec_unpacku_lo_<mmxunpackmode:mode>): Ditto. > (vec_unpacku_hi_<mmxunpackmode:mode>): Ditto. > * config/i386/i386.md (extsuffix): Move from ... > * config/i386/sse.md: ... here. > > gcc/testsuite/ > > PR target/89021 > * gcc.target/i386/pr97249-1.c (foo): Add #pragma > to avoid loop vectorization. > (foo1): Ditto. > (foo2): Ditto. > > Bootstrapped and regression tested on x86_64-linux-gnu {,-m32}. > > There is still one scan-tree-not failure in generic vectorization testsuite: > > FAIL: gcc.dg/vect/vect-nb-iter-ub-3.c scan-tree-dump-not cunroll "loop > turned into non-loop; it never loops" > > This probably happens due to the additional epilogue vectorization, > but I don't know how to "fix" this failure. Richi, can you perhaps > help me here?
I would suggest to add --param vect-epilogues-nomask=0 to dg-additional-options to preserve what the testcase tested. Richard.