https://gcc.gnu.org/g:c475080b3a11d530f0c5415d3776d42101ff282d
commit r16-7576-gc475080b3a11d530f0c5415d3776d42101ff282d Author: H.J. Lu <[email protected]> Date: Thu Feb 19 08:03:35 2026 +0800 x86: Update gcc.target/i386/pr108938-3.c commit 4b71cafc8447e09ee41aff02acb5b26e8b112466 Author: Jakub Jelinek <[email protected]> Date: Tue Feb 17 11:43:43 2026 +0100 bswap: Handle VEC_PACK_TRUNC_EXPR [PR120233] compiles void foo2 (char* a, short* __restrict b) { a[0] = b[0] >> 8; a[1] = b[0]; a[2] = b[1] >> 8; a[3] = b[1]; } into movl (%rsi), %eax bswap %eax roll $16, %eax movl %eax, (%rdi) ret instead of movzwl (%rsi), %eax movzwl 2(%rsi), %edx movl %eax, %ecx sall $16, %eax sarw $8, %cx movzwl %cx, %ecx orl %ecx, %eax movd %eax, %xmm0 movl %edx, %eax sall $16, %edx sarw $8, %ax movdqa %xmm0, %xmm2 movzwl %ax, %eax orl %eax, %edx movd %edx, %xmm1 punpcklbw %xmm1, %xmm2 punpcklbw %xmm1, %xmm0 pshufd $65, %xmm2, %xmm2 punpcklbw %xmm2, %xmm0 movd %xmm0, (%rdi) ret Update gcc.target/i386/pr108938-3.c to also scan 3 bswaps for x86-64. PR target/120233 * gcc.target/i386/pr108938-3.c: Also scan 3 bswaps for x86-64. Signed-off-by: H.J. Lu <[email protected]> Diff: --- gcc/testsuite/gcc.target/i386/pr108938-3.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gcc/testsuite/gcc.target/i386/pr108938-3.c b/gcc/testsuite/gcc.target/i386/pr108938-3.c index 47293d49bb9e..cd87314e57f6 100644 --- a/gcc/testsuite/gcc.target/i386/pr108938-3.c +++ b/gcc/testsuite/gcc.target/i386/pr108938-3.c @@ -1,7 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-O2 -ftree-vectorize -mno-movbe -msse2 -mno-avx" } */ -/* { dg-final { scan-assembler-times "bswap\[\t ]+" 2 { target { ! ia32 } } } } */ -/* { dg-final { scan-assembler-times "bswap\[\t ]+" 3 { target ia32 } } } */ +/* { dg-final { scan-assembler-times "bswap\[\t ]+" 3 } } */ void foo1 (char* a, unsigned int* __restrict b)
