[gcc r16-7576] x86: Update gcc.target/i386/pr108938-3.c
H.J. Lu
hjl@gcc.gnu.org
Thu Feb 19 00:16:32 GMT 2026
https://gcc.gnu.org/g:c475080b3a11d530f0c5415d3776d42101ff282d
commit r16-7576-gc475080b3a11d530f0c5415d3776d42101ff282d
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Thu Feb 19 08:03:35 2026 +0800
x86: Update gcc.target/i386/pr108938-3.c
commit 4b71cafc8447e09ee41aff02acb5b26e8b112466
Author: Jakub Jelinek <jakub@redhat.com>
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 <hjl.tools@gmail.com>
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)
More information about the Gcc-cvs
mailing list