https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111237
Bug ID: 111237 Summary: fp-int-convert-float64x.c fails on x86_64-apple-darwin with "ambiguous instructions require an explicit suffix" Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: fxcoudert at gcc dot gnu.org Target Milestone: --- Many of these messages: /var/folders/h8/9hx_fyj91053ksgdzb2w03vw0000gp/T//ccO1vBzR.s:16:2: error: ambiguous instructions require an explicit suffix (could be 'filds', or 'fildl') fild -8(%rbp) ^ /var/folders/h8/9hx_fyj91053ksgdzb2w03vw0000gp/T//ccO1vBzR.s:19:2: error: ambiguous instructions require an explicit suffix (could be 'fisttps', or 'fisttpl') fisttp -8(%rbp) ^ This is on a cross-compiler from aarch64-apple-darwin22 to x86_64-apple-darwin22, but I think it would be the same on a native compiler. Short reproducer: $ cat toto.c int main(void) { unsigned char ivin; unsigned char ivout; _Float64x fv1; _Float64x fv2; ivin = 0; fv1 = 0; fv2 = (_Float64x) ivin; ivout = (unsigned char) fv1; } $ ./bin/x86_64-apple-darwin22-gcc toto.c -c /var/folders/h8/9hx_fyj91053ksgdzb2w03vw0000gp/T//ccn0Y3rC.s:14:2: error: ambiguous instructions require an explicit suffix (could be 'filds', or 'fildl') fild -66(%rbp) ^ /var/folders/h8/9hx_fyj91053ksgdzb2w03vw0000gp/T//ccn0Y3rC.s:17:2: error: ambiguous instructions require an explicit suffix (could be 'fisttps', or 'fisttpl') fisttp -66(%rbp) ^ $ ./bin/x86_64-apple-darwin22-gcc toto.c -S $ cat toto.s .text .globl _main _main: LFB0: pushq %rbp LCFI0: movq %rsp, %rbp LCFI1: movb $0, -1(%rbp) fldz fstpt -32(%rbp) movzbl -1(%rbp), %eax movw %ax, -66(%rbp) fild -66(%rbp) fstpt -48(%rbp) fldt -32(%rbp) fisttp -66(%rbp) movzwl -66(%rbp), %eax movb %al, -49(%rbp) movl $0, %eax popq %rbp LCFI2: ret LFE0: .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support EH_frame1: .set L$set$0,LECIE1-LSCIE1 .long L$set$0 LSCIE1: .long 0 .byte 0x1 .ascii "zR\0" .byte 0x1 .byte 0x78 .byte 0x10 .byte 0x1 .byte 0x10 .byte 0xc .byte 0x7 .byte 0x8 .byte 0x90 .byte 0x1 .align 3 LECIE1: LSFDE1: .set L$set$1,LEFDE1-LASFDE1 .long L$set$1 LASFDE1: .long LASFDE1-EH_frame1 .quad LFB0-. .set L$set$2,LFE0-LFB0 .quad L$set$2 .byte 0 .byte 0x4 .set L$set$3,LCFI0-LFB0 .long L$set$3 .byte 0xe .byte 0x10 .byte 0x86 .byte 0x2 .byte 0x4 .set L$set$4,LCFI1-LCFI0 .long L$set$4 .byte 0xd .byte 0x6 .byte 0x4 .set L$set$5,LCFI2-LCFI1 .long L$set$5 .byte 0xc .byte 0x7 .byte 0x8 .align 3 LEFDE1: .ident "GCC: (GNU) 14.0.0 20230830 (experimental)" .subsections_via_symbols For the record, the assembler is called as: "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" -cc1as -triple x86_64-apple-macosx13.0.0 -filetype obj -main-file-name ccImMDJg.s -target-cpu penryn -fdebug-compilation-dir=/tmp/irun -dwarf-debug-producer "Apple clang version 14.0.3 (clang-1403.0.22.14.1)" -dwarf-version=4 -mrelocation-model pic --mrelax-relocations -mllvm -x86-pad-for-align=false -mllvm -disable-aligned-alloc-awareness=1 -o toto.o /var/folders/h8/9hx_fyj91053ksgdzb2w03vw0000gp/T//ccImMDJg.s