FAIL: gcc.target/i386/pr101668.c scan-assembler vpmovsxdq FAIL: gcc.target/i386/pr101668.c scan-assembler vpmovsxdq FAIL: gcc.target/i386/pr101668.c scan-assembler vpmovsxdq FAIL: gcc.target/i386/pr92658-avx2-2.c scan-assembler-times pmovsxbd 2 FAIL: gcc.target/i386/pr92658-avx2-2.c scan-assembler-times pmovsxbd 2 FAIL: gcc.target/i386/pr92658-avx2-2.c scan-assembler-times pmovsxbd 2 FAIL: gcc.target/i386/pr92658-avx2-2.c scan-assembler-times pmovsxbq 2 FAIL: gcc.target/i386/pr92658-avx2-2.c scan-assembler-times pmovsxbq 2 FAIL: gcc.target/i386/pr92658-avx2-2.c scan-assembler-times pmovsxbq 2 FAIL: gcc.target/i386/pr92658-avx2-2.c scan-assembler-times pmovsxbw 2 FAIL: gcc.target/i386/pr92658-avx2-2.c scan-assembler-times pmovsxbw 2 FAIL: gcc.target/i386/pr92658-avx2-2.c scan-assembler-times pmovsxbw 2 FAIL: gcc.target/i386/pr92658-avx2-2.c scan-assembler-times pmovsxdq 2 FAIL: gcc.target/i386/pr92658-avx2-2.c scan-assembler-times pmovsxdq 2 FAIL: gcc.target/i386/pr92658-avx2-2.c scan-assembler-times pmovsxdq 2 FAIL: gcc.target/i386/pr92658-avx2-2.c scan-assembler-times pmovsxwd 2 FAIL: gcc.target/i386/pr92658-avx2-2.c scan-assembler-times pmovsxwd 2 FAIL: gcc.target/i386/pr92658-avx2-2.c scan-assembler-times pmovsxwd 2 FAIL: gcc.target/i386/pr92658-avx2-2.c scan-assembler-times pmovsxwq 2 FAIL: gcc.target/i386/pr92658-avx2-2.c scan-assembler-times pmovsxwq 2 FAIL: gcc.target/i386/pr92658-avx2-2.c scan-assembler-times pmovsxwq 2 FAIL: gcc.target/i386/pr92658-avx2.c scan-assembler-times pmovzxbd 2 FAIL: gcc.target/i386/pr92658-avx2.c scan-assembler-times pmovzxbd 2 FAIL: gcc.target/i386/pr92658-avx2.c scan-assembler-times pmovzxbd 2 FAIL: gcc.target/i386/pr92658-avx2.c scan-assembler-times pmovzxbq 2 FAIL: gcc.target/i386/pr92658-avx2.c scan-assembler-times pmovzxbq 2 FAIL: gcc.target/i386/pr92658-avx2.c scan-assembler-times pmovzxbq 2 FAIL: gcc.target/i386/pr92658-avx2.c scan-assembler-times pmovzxbw 2 FAIL: gcc.target/i386/pr92658-avx2.c scan-assembler-times pmovzxbw 2 FAIL: gcc.target/i386/pr92658-avx2.c scan-assembler-times pmovzxbw 2 FAIL: gcc.target/i386/pr92658-avx2.c scan-assembler-times pmovzxdq 2 FAIL: gcc.target/i386/pr92658-avx2.c scan-assembler-times pmovzxdq 2 FAIL: gcc.target/i386/pr92658-avx2.c scan-assembler-times pmovzxdq 2 FAIL: gcc.target/i386/pr92658-avx2.c scan-assembler-times pmovzxwd 2 FAIL: gcc.target/i386/pr92658-avx2.c scan-assembler-times pmovzxwd 2 FAIL: gcc.target/i386/pr92658-avx2.c scan-assembler-times pmovzxwd 2 FAIL: gcc.target/i386/pr92658-avx2.c scan-assembler-times pmovzxwq 2 FAIL: gcc.target/i386/pr92658-avx2.c scan-assembler-times pmovzxwq 2 FAIL: gcc.target/i386/pr92658-avx2.c scan-assembler-times pmovzxwq 2 FAIL: gcc.target/i386/pr92658-avx512bw-2.c scan-assembler-times pmovsxbd 2 FAIL: gcc.target/i386/pr92658-avx512bw-2.c scan-assembler-times pmovsxbd 2 FAIL: gcc.target/i386/pr92658-avx512bw-2.c scan-assembler-times pmovsxbd 2 FAIL: gcc.target/i386/pr92658-avx512bw-2.c scan-assembler-times pmovsxbq 2 FAIL: gcc.target/i386/pr92658-avx512bw-2.c scan-assembler-times pmovsxbq 2 FAIL: gcc.target/i386/pr92658-avx512bw-2.c scan-assembler-times pmovsxbq 2 FAIL: gcc.target/i386/pr92658-avx512bw-2.c scan-assembler-times pmovsxbw 2 FAIL: gcc.target/i386/pr92658-avx512bw-2.c scan-assembler-times pmovsxbw 2 FAIL: gcc.target/i386/pr92658-avx512bw-2.c scan-assembler-times pmovsxbw 2 FAIL: gcc.target/i386/pr92658-avx512bw-2.c scan-assembler-times pmovsxdq 2 FAIL: gcc.target/i386/pr92658-avx512bw-2.c scan-assembler-times pmovsxdq 2 FAIL: gcc.target/i386/pr92658-avx512bw-2.c scan-assembler-times pmovsxdq 2 FAIL: gcc.target/i386/pr92658-avx512bw-2.c scan-assembler-times pmovsxwd 2 FAIL: gcc.target/i386/pr92658-avx512bw-2.c scan-assembler-times pmovsxwd 2 FAIL: gcc.target/i386/pr92658-avx512bw-2.c scan-assembler-times pmovsxwd 2 FAIL: gcc.target/i386/pr92658-avx512bw-2.c scan-assembler-times pmovsxwq 2 FAIL: gcc.target/i386/pr92658-avx512bw-2.c scan-assembler-times pmovsxwq 2 FAIL: gcc.target/i386/pr92658-avx512bw-2.c scan-assembler-times pmovsxwq 2 FAIL: gcc.target/i386/pr92658-avx512bw.c scan-assembler-times pmovzxbd 2 FAIL: gcc.target/i386/pr92658-avx512bw.c scan-assembler-times pmovzxbd 2 FAIL: gcc.target/i386/pr92658-avx512bw.c scan-assembler-times pmovzxbd 2 FAIL: gcc.target/i386/pr92658-avx512bw.c scan-assembler-times pmovzxbq 2 FAIL: gcc.target/i386/pr92658-avx512bw.c scan-assembler-times pmovzxbq 2 FAIL: gcc.target/i386/pr92658-avx512bw.c scan-assembler-times pmovzxbq 2 FAIL: gcc.target/i386/pr92658-avx512bw.c scan-assembler-times pmovzxbw 2 FAIL: gcc.target/i386/pr92658-avx512bw.c scan-assembler-times pmovzxbw 2 FAIL: gcc.target/i386/pr92658-avx512bw.c scan-assembler-times pmovzxbw 2 FAIL: gcc.target/i386/pr92658-avx512bw.c scan-assembler-times pmovzxdq 2 FAIL: gcc.target/i386/pr92658-avx512bw.c scan-assembler-times pmovzxdq 2 FAIL: gcc.target/i386/pr92658-avx512bw.c scan-assembler-times pmovzxdq 2 FAIL: gcc.target/i386/pr92658-avx512bw.c scan-assembler-times pmovzxwd 2 FAIL: gcc.target/i386/pr92658-avx512bw.c scan-assembler-times pmovzxwd 2 FAIL: gcc.target/i386/pr92658-avx512bw.c scan-assembler-times pmovzxwd 2 FAIL: gcc.target/i386/pr92658-avx512bw.c scan-assembler-times pmovzxwq 2 FAIL: gcc.target/i386/pr92658-avx512bw.c scan-assembler-times pmovzxwq 2 FAIL: gcc.target/i386/pr92658-avx512bw.c scan-assembler-times pmovzxwq 2 FAIL: gcc.target/i386/pr92658-avx512bw-trunc.c scan-assembler-times vpmovwb 3 FAIL: gcc.target/i386/pr92658-avx512bw-trunc.c scan-assembler-times vpmovwb 3 FAIL: gcc.target/i386/pr92658-avx512bw-trunc.c scan-assembler-times vpmovwb 3 FAIL: gcc.target/i386/pr92658-avx512f.c scan-assembler-times vpmovdb 1 FAIL: gcc.target/i386/pr92658-avx512f.c scan-assembler-times vpmovdb 1 FAIL: gcc.target/i386/pr92658-avx512f.c scan-assembler-times vpmovdb 1 FAIL: gcc.target/i386/pr92658-avx512f.c scan-assembler-times vpmovdw 1 FAIL: gcc.target/i386/pr92658-avx512f.c scan-assembler-times vpmovdw 1 FAIL: gcc.target/i386/pr92658-avx512f.c scan-assembler-times vpmovdw 1 FAIL: gcc.target/i386/pr92658-avx512f.c scan-assembler-times vpmovqb 1 FAIL: gcc.target/i386/pr92658-avx512f.c scan-assembler-times vpmovqb 1 FAIL: gcc.target/i386/pr92658-avx512f.c scan-assembler-times vpmovqb 1 FAIL: gcc.target/i386/pr92658-avx512f.c scan-assembler-times vpmovqd 1 FAIL: gcc.target/i386/pr92658-avx512f.c scan-assembler-times vpmovqd 1 FAIL: gcc.target/i386/pr92658-avx512f.c scan-assembler-times vpmovqd 1 FAIL: gcc.target/i386/pr92658-avx512f.c scan-assembler-times vpmovqw 1 FAIL: gcc.target/i386/pr92658-avx512f.c scan-assembler-times vpmovqw 1 FAIL: gcc.target/i386/pr92658-avx512f.c scan-assembler-times vpmovqw 1 FAIL: gcc.target/i386/pr92658-avx512vl.c scan-assembler-times vpmovdb 2 FAIL: gcc.target/i386/pr92658-avx512vl.c scan-assembler-times vpmovdb 2 FAIL: gcc.target/i386/pr92658-avx512vl.c scan-assembler-times vpmovdb 2 FAIL: gcc.target/i386/pr92658-avx512vl.c scan-assembler-times vpmovdw 2 FAIL: gcc.target/i386/pr92658-avx512vl.c scan-assembler-times vpmovdw 2 FAIL: gcc.target/i386/pr92658-avx512vl.c scan-assembler-times vpmovdw 2 FAIL: gcc.target/i386/pr92658-avx512vl.c scan-assembler-times vpmovqb[ \t]*%xmm 1 FAIL: gcc.target/i386/pr92658-avx512vl.c scan-assembler-times vpmovqb[ \t]*%xmm 1 FAIL: gcc.target/i386/pr92658-avx512vl.c scan-assembler-times vpmovqb[ \t]*%xmm 1 FAIL: gcc.target/i386/pr92658-avx512vl.c scan-assembler-times vpmovqb[ \t]*%ymm 1 FAIL: gcc.target/i386/pr92658-avx512vl.c scan-assembler-times vpmovqb[ \t]*%ymm 1 FAIL: gcc.target/i386/pr92658-avx512vl.c scan-assembler-times vpmovqb[ \t]*%ymm 1 FAIL: gcc.target/i386/pr92658-avx512vl.c scan-assembler-times vpmovqd 2 FAIL: gcc.target/i386/pr92658-avx512vl.c scan-assembler-times vpmovqd 2 FAIL: gcc.target/i386/pr92658-avx512vl.c scan-assembler-times vpmovqd 2 FAIL: gcc.target/i386/pr92658-avx512vl.c scan-assembler-times vpmovqw 2 FAIL: gcc.target/i386/pr92658-avx512vl.c scan-assembler-times vpmovqw 2 FAIL: gcc.target/i386/pr92658-avx512vl.c scan-assembler-times vpmovqw 2 FAIL: gcc.target/i386/pr92658-sse4-2.c scan-assembler-times pmovsxbd 2 FAIL: gcc.target/i386/pr92658-sse4-2.c scan-assembler-times pmovsxbd 2 FAIL: gcc.target/i386/pr92658-sse4-2.c scan-assembler-times pmovsxbd 2 FAIL: gcc.target/i386/pr92658-sse4-2.c scan-assembler-times pmovsxbq 2 FAIL: gcc.target/i386/pr92658-sse4-2.c scan-assembler-times pmovsxbq 2 FAIL: gcc.target/i386/pr92658-sse4-2.c scan-assembler-times pmovsxbq 2 FAIL: gcc.target/i386/pr92658-sse4-2.c scan-assembler-times pmovsxbw 2 FAIL: gcc.target/i386/pr92658-sse4-2.c scan-assembler-times pmovsxbw 2 FAIL: gcc.target/i386/pr92658-sse4-2.c scan-assembler-times pmovsxbw 2 FAIL: gcc.target/i386/pr92658-sse4-2.c scan-assembler-times pmovsxdq 2 FAIL: gcc.target/i386/pr92658-sse4-2.c scan-assembler-times pmovsxdq 2 FAIL: gcc.target/i386/pr92658-sse4-2.c scan-assembler-times pmovsxdq 2 FAIL: gcc.target/i386/pr92658-sse4-2.c scan-assembler-times pmovsxwd 2 FAIL: gcc.target/i386/pr92658-sse4-2.c scan-assembler-times pmovsxwd 2 FAIL: gcc.target/i386/pr92658-sse4-2.c scan-assembler-times pmovsxwd 2 FAIL: gcc.target/i386/pr92658-sse4-2.c scan-assembler-times pmovsxwq 2 FAIL: gcc.target/i386/pr92658-sse4-2.c scan-assembler-times pmovsxwq 2 FAIL: gcc.target/i386/pr92658-sse4-2.c scan-assembler-times pmovsxwq 2 FAIL: gcc.target/i386/pr92658-sse4.c scan-assembler-times pmovzxbd 2 FAIL: gcc.target/i386/pr92658-sse4.c scan-assembler-times pmovzxbd 2 FAIL: gcc.target/i386/pr92658-sse4.c scan-assembler-times pmovzxbd 2 FAIL: gcc.target/i386/pr92658-sse4.c scan-assembler-times pmovzxbq 2 FAIL: gcc.target/i386/pr92658-sse4.c scan-assembler-times pmovzxbq 2 FAIL: gcc.target/i386/pr92658-sse4.c scan-assembler-times pmovzxbq 2 FAIL: gcc.target/i386/pr92658-sse4.c scan-assembler-times pmovzxbw 2 FAIL: gcc.target/i386/pr92658-sse4.c scan-assembler-times pmovzxbw 2 FAIL: gcc.target/i386/pr92658-sse4.c scan-assembler-times pmovzxbw 2 FAIL: gcc.target/i386/pr92658-sse4.c scan-assembler-times pmovzxdq 2 FAIL: gcc.target/i386/pr92658-sse4.c scan-assembler-times pmovzxdq 2 FAIL: gcc.target/i386/pr92658-sse4.c scan-assembler-times pmovzxdq 2 FAIL: gcc.target/i386/pr92658-sse4.c scan-assembler-times pmovzxwd 2 FAIL: gcc.target/i386/pr92658-sse4.c scan-assembler-times pmovzxwd 2 FAIL: gcc.target/i386/pr92658-sse4.c scan-assembler-times pmovzxwd 2 FAIL: gcc.target/i386/pr92658-sse4.c scan-assembler-times pmovzxwq 2 FAIL: gcc.target/i386/pr92658-sse4.c scan-assembler-times pmovzxwq 2 FAIL: gcc.target/i386/pr92658-sse4.c scan-assembler-times pmovzxwq 2 Reproduced by make check-gcc RUNTESTFLAGS="i386.exp=pr92658-*.c --target_board='unix{-m32,}'"
So this is a regression because SLP is using the new patterns for BITFIELD_REF's of vector's. Seeing that I never actually found a good use of supporting non-integral container types I will just remove that and that will cause the pattern to not match BITFIELD_REF's of vectors. I'll go test those changes.
The master branch has been updated by Andre Simoes Dias Vieira <avieira@gcc.gnu.org>: https://gcc.gnu.org/g:7f9a7465c863e482708d2a00f5f7ff91ae3a7e0b commit r13-3268-g7f9a7465c863e482708d2a00f5f7ff91ae3a7e0b Author: Andre Vieira <andre.simoesdiasvieira@arm.com> Date: Thu Oct 13 10:34:27 2022 +0100 vect: Don't pattern match BITFIELD_REF's of non-integrals [PR107226] The original patch supported matching the vect_recog_bitfield_ref_pattern for BITFIELD_REF's where the first operand didn't have a INTEGRAL_TYPE_P type. That means it would also match vectors, leading to regressions in targets that supported vectorization of those. gcc/ChangeLog: PR tree-optimization/107226 * tree-vect-patterns.cc (vect_recog_bitfield_ref_pattern): Reject BITFIELD_REF's with non integral typed first operands.
Fixed.