https://gcc.gnu.org/g:d55b88505c7eace3b5476d021af52b996407cae3
commit r17-3039-gd55b88505c7eace3b5476d021af52b996407cae3 Author: Uros Bizjak <[email protected]> Date: Thu Aug 6 16:12:38 2026 +0200 i386: Use %w operand modifier for ROLW bswaphisi2_lowpart alternative [PR126685] PR target/126685 gcc/ChangeLog: * config/i386/i386.md (bswaphisi2_lowpart): Use %w operand modifier to emit HImode register name for ROLW alternative. gcc/testsuite/ChangeLog: * gcc.target/i386/pr126685.c: New test. Diff: --- gcc/config/i386/i386.md | 2 +- gcc/testsuite/gcc.target/i386/pr126685.c | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 0bfe52c08fa6..3b0f8b2cccd3 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -23720,7 +23720,7 @@ "" "@ xchg{b}\t{%h0, %b0|%b0, %h0} - rol{w}\t{$8, %0|%0, 8}" + rol{w}\t{$8, %w0|%w0, 8}" [(set_attr "type" "imov,rotate1") (set_attr "pent_pair" "np,*") (set_attr "athlon_decode" "vector,*") diff --git a/gcc/testsuite/gcc.target/i386/pr126685.c b/gcc/testsuite/gcc.target/i386/pr126685.c new file mode 100644 index 000000000000..2aa23b2ccedb --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr126685.c @@ -0,0 +1,9 @@ +/* PR target/126685 */ +/* { dg-do assemble { target ia32 } } */ +/* { dg-options "-march=i386" } */ + +unsigned long long +foo (unsigned long long x) +{ + return __builtin_bswap64 (x); +}
