https://gcc.gnu.org/g:943576af4cbb43c73c51f82b43dc71768236eb57
commit r13-9938-g943576af4cbb43c73c51f82b43dc71768236eb57 Author: LIU Hao <[email protected]> Date: Sat Oct 25 17:19:34 2025 +0800 x86-64: Use `movsxd` to perform SI-to-DI extension in Intel syntax Although there's no possibility of ambiguity, Intel manual says the mnemonic for DWORD-to-QWORD sign-extension operation should be MOVSXD. Some assemblers (GNU AS, NASM) also overload MOVSX, but some others don't accept MOVSX (LLVM, MASM, YASM in NASM mode) and require MOVSXD. This mnemonic was introduced in r0-34259-g123bf9e3f4056d in 2001, and has not been updated ever since. gcc/ChangeLog: PR target/119079 * config/i386/i386.md: Use `movsxd` to perform SI-to-DI extension in Intel syntax. Signed-off-by: LIU Hao <[email protected]> (cherry picked from commit 66b38349273525dfb86f0f74d6c928abdbf7154f) Diff: --- gcc/config/i386/i386.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 35a558cefc7e..fadd1ddf427c 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -4560,7 +4560,7 @@ "TARGET_64BIT" "@ {cltq|cdqe} - movs{lq|x}\t{%1, %0|%0, %1}" + movs{lq|xd}\t{%1, %0|%0, %1}" [(set_attr "type" "imovx") (set_attr "mode" "DI") (set_attr "prefix_0f" "0") @@ -22962,7 +22962,6 @@ DONE; }) - ;; Avoid redundant prefixes by splitting HImode arithmetic to SImode. ;; Do not split instructions with mask registers. (define_split
