[Bug target/102835] New: gcc.target/i386/avx512fp16-trunchf.c FAILs

ro at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Oct 19 11:41:56 GMT 2021


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?


More information about the Gcc-bugs mailing list