Without SSE2, we don't combine the separate loads in foo2 and get separate rotates, instead of a bswap.
Regstrapped on x86_64-linux-gnu. Also tested with gcc-14 on aarch64-, arm-, x86-, and x86_64-vxworks7r2. Ok to install? for gcc/testsuite/ChangeLog * gcc.target/i386/pr108938-3.c: Add -msse2. --- gcc/testsuite/gcc.target/i386/pr108938-3.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/testsuite/gcc.target/i386/pr108938-3.c b/gcc/testsuite/gcc.target/i386/pr108938-3.c index 757a0c456bc45..47293d49bb9ea 100644 --- a/gcc/testsuite/gcc.target/i386/pr108938-3.c +++ b/gcc/testsuite/gcc.target/i386/pr108938-3.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -ftree-vectorize -mno-movbe -mno-avx" } */ +/* { 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 } } } */ -- Alexandre Oliva, happy hacker https://blog.lx.oliva.nom.br/ Free Software Activist FSFLA co-founder GNU Toolchain Engineer More tolerance and less prejudice are key for inclusion and diversity. Excluding neuro-others for not behaving ""normal"" is *not* inclusive!