https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102835
Bug ID: 102835 Summary: gcc.target/i386/avx512fp16-trunchf.c FAILs Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: ro at gcc dot gnu.org CC: wwwhhhyyy333 at gmail dot com Target Milestone: --- Target: i?86-pc-solaris2.11, x86_64-pc-solaris2.11 The gcc.target/i386/avx512fp16-trunchf.c test has been FAILing on 32-bit Solaris/x86 since it was installed: FAIL: gcc.target/i386/avx512fp16-trunchf.c scan-assembler-times vcvttsh2si[ \\\\t]+[^{\\n]*(?:%xmm[0-9]|\\\\(%esp\\\\))+, %eax(?:\\n|[ \\\\t]+#) 3 FAIL: gcc.target/i386/avx512fp16-trunchf.c scan-assembler-times vcvttsh2usi[ \\\\t]+[^{\\n]*(?:%xmm[0-9]|\\\\(%esp\\\\))+, %eax(?:\\n|[ \\\\t]+#) 2 On Solaris, the assembler output contains vcvttsh2si 8(%ebp), %eax vcvttsh2si 8(%ebp), %eax vcvttsh2si 8(%ebp), %eax vcvttsh2usi 8(%ebp), %eax vcvttsh2usi 8(%ebp), %eax while Linux has vcvttsh2si 4(%esp), %eax vcvttsh2si 4(%esp), %eax vcvttsh2si 4(%esp), %eax vcvttsh2usi 4(%esp), %eax vcvttsh2usi 4(%esp), %eax As it turns out, the difference occurs because Solaris/x86 default to -fno-omit-frame-pointer. With -fomit-frame-pointer added, the output matches. I wonder what's the best way to handle the difference? Just add -fomit-frame-pointer to the testcase or allow for the %ebp vs. %esp difference?