Several new tests from
commit
d073bb6cfc219d4b6c283a0b527ee88b42e640e0
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Thu Mar 18 18:43:10 2021 -0700
x86: Update memcpy/memset inline strategies for -mtune=generic
FAIL on Solaris/x86:
FAIL: g++.target/i386/memset-pr101366-1.C check-function-bodies _Z4TestPc
FAIL: g++.target/i386/memset-pr101366-2.C check-function-bodies _Z4TestPc
FAIL: g++.target/i386/memset-pr108585-1a.C check-function-bodies _Z6squarei
FAIL: g++.target/i386/memset-pr108585-1b.C check-function-bodies _Z6squarei
FAIL: g++.target/i386/memset-pr118276-1a.C check-function-bodies _Z22makeDefaultConstructedv
FAIL: g++.target/i386/memset-pr118276-1b.C check-function-bodies _Z22makeDefaultConstructedv
FAIL: g++.target/i386/memset-pr118276-1c.C check-function-bodies _Z22makeDefaultConstructedv
FAIL: gcc.target/i386/memset-pr70308-1a.c check-function-bodies foo
FAIL: gcc.target/i386/memset-pr70308-1b.c check-function-bodies foo
FAIL: gcc.target/i386/memset-strategy-25.c check-function-bodies foo
FAIL: gcc.target/i386/memset-strategy-28.c check-function-bodies foo
FAIL: gcc.target/i386/memset-strategy-29.c check-function-bodies foo
FAIL: gcc.target/i386/memset-strategy-30.c check-function-bodies foo
FAIL: gcc.target/i386/pr92080-17.c check-function-bodies foo
The issue is the same as in
https://gcc.gnu.org/pipermail/gcc-patches/2025-March/679330.html
All the tests need -fasynchronous-unwind-tables -fdwarf2-cfi-asm, some
also -fomit-frame-pointer and -mno-stackrealign.
Tested on i386-pc-solaris2.11 and x86_64-pc-linux-gnu.
2025-06-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
gcc/testsuite:
* g++.target/i386/memset-pr101366-1.C (dg-options): Add
-fasynchronous-unwind-tables -fdwarf2-cfi-asm.
* g++.target/i386/memset-pr101366-2.C: Likewise.
* g++.target/i386/memset-pr118276-1a.C: Likewise.
* g++.target/i386/memset-pr118276-1b.C: Likewise.
* g++.target/i386/memset-pr118276-1c.C: Likewise.
* gcc.target/i386/memset-pr70308-1a.c: Likewise.
* gcc.target/i386/memset-strategy-25.c: Likewise.
* gcc.target/i386/memset-strategy-28.c: Likewise.
* gcc.target/i386/memset-strategy-29.c: Likewise.
* gcc.target/i386/memset-strategy-30.c: Likewise.
* gcc.target/i386/pr92080-17.c: Likewise.
* gcc.target/i386/memset-pr70308-1b.c: Likewise. Also add
-fomit-frame-pointer.
* g++.target/i386/memset-pr108585-1a.C: (dg-options): Add
-fasynchronous-unwind-tables -fdwarf2-cfi-asm. Also add
-mno-stackrealign -fomit-frame-pointer.
* g++.target/i386/memset-pr108585-1b.C: Likewise.
/* { dg-do compile } */
-/* { dg-options "-O3 -march=x86-64-v2 -std=gnu++17" } */
+/* { dg-options "-O3 -march=x86-64-v2 -std=gnu++17 -fasynchronous-unwind-tables -fdwarf2-cfi-asm" } */
/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc'). */
/* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } */
/* { dg-do compile } */
-/* { dg-options "-O3 -march=x86-64-v2 -std=gnu++17" } */
+/* { dg-options "-O3 -march=x86-64-v2 -std=gnu++17 -fasynchronous-unwind-tables -fdwarf2-cfi-asm" } */
/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc'). */
/* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } */
/* { dg-do compile } */
-/* { dg-options "-O3 -march=x86-64 -std=c++20 -DUSE_CHAR" } */
+/* { dg-options "-O3 -march=x86-64 -std=c++20 -fasynchronous-unwind-tables -fdwarf2-cfi-asm -mno-stackrealign -fomit-frame-pointer -DUSE_CHAR" } */
/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc'). */
/* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } */
/* { dg-do compile } */
-/* { dg-options "-O3 -march=x86-64 -std=c++20" } */
+/* { dg-options "-O3 -march=x86-64 -std=c++20 -fasynchronous-unwind-tables -fdwarf2-cfi-asm -mno-stackrealign -fomit-frame-pointer" } */
/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc'). */
/* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } */
/* { dg-do compile } */
-/* { dg-options "-O3 -march=x86-64 -std=c++17 -DMODE=0" } */
+/* { dg-options "-O3 -march=x86-64 -std=c++17 -fasynchronous-unwind-tables -fdwarf2-cfi-asm -DMODE=0" } */
/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc'). */
/* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } */
/* { dg-do compile } */
-/* { dg-options "-O3 -march=x86-64 -std=c++17 -DMODE=1" } */
+/* { dg-options "-O3 -march=x86-64 -std=c++17 -fasynchronous-unwind-tables -fdwarf2-cfi-asm -DMODE=1" } */
/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc'). */
/* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } */
/* { dg-do compile } */
-/* { dg-options "-O3 -march=x86-64 -std=c++17 -DMODE=2" } */
+/* { dg-options "-O3 -march=x86-64 -std=c++17 -fasynchronous-unwind-tables -fdwarf2-cfi-asm -DMODE=2" } */
/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc'). */
/* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } */
/* { dg-do compile } */
-/* { dg-options "-O2 -march=x86-64" } */
+/* { dg-options "-O2 -march=x86-64 -fasynchronous-unwind-tables -fdwarf2-cfi-asm" } */
/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc'). */
/* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } */
/* { dg-do compile } */
-/* { dg-options "-O2 -march=x86-64 -DUSE_SCANF" } */
+/* { dg-options "-O2 -march=x86-64 -fasynchronous-unwind-tables -fdwarf2-cfi-asm -fomit-frame-pointer -DUSE_SCANF" } */
/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc'). */
/* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } */
/* { dg-do compile } */
-/* { dg-options "-O2 -mtune=generic -mno-sse" } */
+/* { dg-options "-O2 -mtune=generic -mno-sse -fasynchronous-unwind-tables -fdwarf2-cfi-asm" } */
/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc'). */
/* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } */
/* { dg-do compile } */
-/* { dg-options "-O2 -mtune=generic -mno-sse" } */
+/* { dg-options "-O2 -mtune=generic -mno-sse -fasynchronous-unwind-tables -fdwarf2-cfi-asm" } */
/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc'). */
/* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } */
/* { dg-do compile } */
-/* { dg-options "-O2 -mtune=generic -mno-sse" } */
+/* { dg-options "-O2 -mtune=generic -mno-sse -fasynchronous-unwind-tables -fdwarf2-cfi-asm" } */
/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc'). */
/* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } */
/* { dg-do compile } */
-/* { dg-options "-O2 -mtune=generic -mno-sse" } */
+/* { dg-options "-O2 -mtune=generic -mno-sse -fasynchronous-unwind-tables -fdwarf2-cfi-asm" } */
/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc'). */
/* { dg-final { check-function-bodies "**" "" "" { target lp64 } {^\t?\.} } } */
/* { dg-do compile } */
-/* { dg-options "-O2 -march=x86-64-v3" } */
+/* { dg-options "-O2 -march=x86-64-v3 -fasynchronous-unwind-tables -fdwarf2-cfi-asm" } */
/* Keep labels and directives ('.cfi_startproc', '.cfi_endproc'). */
/* { dg-final { check-function-bodies "**" "" "" { target { ! ia32 } } {^\t?\.} } } */