https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119765
Bug ID: 119765 Summary: FAIL: gcc.target/i386/amd64-abi-9.c on Windows Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: nightstrike at gmail dot com Target Milestone: --- The test gcc.target/i386/amd64-abi-9.c fails on at least x86_64-w64-mingw-w64 due to the xorl instruction not being found: FAIL: gcc.target/i386/amd64-abi-9.c scan-assembler-times xorl[\\t ]*\\%eax,[\\t ]*%eax 2 This is the asm generated on the same host, same compiler source, but for x86_64 linux: .file "amd64-abi-9.c" .text .section .rodata.str1.1,"aMS",@progbits,1 .LC0: .string "%d" .text .p2align 4 .globl test1 .type test1, @function test1: .LFB0: .cfi_startproc movl $20, %esi movl $.LC0, %edi xorl %eax, %eax jmp foo .cfi_endproc .LFE0: .size test1, .-test1 .p2align 4 .globl test2 .type test2, @function test2: .LFB1: .cfi_startproc subq $8, %rsp .cfi_def_cfa_offset 16 xorl %eax, %eax movl $20, %esi movl $.LC0, %edi call foo movl $3, %eax addq $8, %rsp .cfi_def_cfa_offset 8 ret .cfi_endproc .LFE1: .size test2, .-test2 .section .note.GNU-stack,"",@progbits On the other hand, this is the asm generated for x86_64-w64-mingw32: .file "amd64-abi-9.c" .text .section .rdata,"dr" .LC0: .ascii "%d\0" .text .p2align 4 .globl test1 .def test1; .scl 2; .type 32; .endef .seh_proc test1 test1: .seh_endprologue movl $20, %edx leaq .LC0(%rip), %rcx jmp foo .seh_endproc .p2align 4 .globl test2 .def test2; .scl 2; .type 32; .endef .seh_proc test2 test2: subq $40, %rsp .seh_stackalloc 40 .seh_endprologue movl $20, %edx leaq .LC0(%rip), %rcx call foo movl $3, %eax addq $40, %rsp ret .seh_endproc .def foo; .scl 2; .type 32; .endef Is this just a matter of needing to adjust the test, or are we generating incorrect instructions?