[Bug target/38708] [4.4 Regression] Revision 137646 caused gcc.c-torture/execute/memset-[23].c fail with -mtune=pentiumpro
jakub at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Sat Jan 3 11:40:00 GMT 2009
------- Comment #9 from jakub at gcc dot gnu dot org 2009-01-03 11:39 -------
I ran check-gcc RUNTESTFLAGS='execute.exp
--target_board=unix/{-m32,-m32/-mtune=pentium-m,-m64}/-mstringop-strategy={rep_byte,libcall,rep_4byte,rep_8byte,byte_loop,loop,unrolled_loop}'
before and after the patch. In all cases, -m32 together with
-mstringop-strategy=rep_8byte
ICEs in many testcases, obviously we need to reject -m32
-mstringop-strategy=rep_8byte.
Other than that, we have:
unix/-m64/-mstringop-strategy=loop
FAIL: gcc.c-torture/execute/memset-2.c execution, -O2
FAIL: gcc.c-torture/execute/memset-2.c execution, -O3 -fomit-frame-pointer
FAIL: gcc.c-torture/execute/memset-2.c execution, -O3 -fomit-frame-pointer
-funroll-loops
FAIL: gcc.c-torture/execute/memset-2.c execution, -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions
FAIL: gcc.c-torture/execute/memset-2.c execution, -O3 -g
(before and after the patch) and:
unix/-m32/-mtune=pentium-m/-mstringop-strategy=rep_byte
-FAIL: gcc.c-torture/execute/memcpy-2.c execution, -O1
-FAIL: gcc.c-torture/execute/memcpy-2.c execution, -O2
-FAIL: gcc.c-torture/execute/memcpy-2.c execution, -O3 -fomit-frame-pointer
-FAIL: gcc.c-torture/execute/memcpy-2.c execution, -O3 -fomit-frame-pointer
-funroll-loops
-FAIL: gcc.c-torture/execute/memcpy-2.c execution, -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions
-FAIL: gcc.c-torture/execute/memcpy-2.c execution, -O3 -g
FAIL: gcc.c-torture/execute/memset-1.c execution, -O1
FAIL: gcc.c-torture/execute/memset-1.c execution, -O2
FAIL: gcc.c-torture/execute/memset-1.c execution, -O3 -fomit-frame-pointer
FAIL: gcc.c-torture/execute/memset-1.c execution, -O3 -fomit-frame-pointer
-funroll-loops
FAIL: gcc.c-torture/execute/memset-1.c execution, -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions
FAIL: gcc.c-torture/execute/memset-1.c execution, -O3 -g
FAIL: gcc.c-torture/execute/memset-2.c execution, -O3 -fomit-frame-pointer
FAIL: gcc.c-torture/execute/memset-2.c execution, -O3 -fomit-frame-pointer
-funroll-loops
FAIL: gcc.c-torture/execute/memset-2.c execution, -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions
FAIL: gcc.c-torture/execute/memset-2.c execution, -O3 -g
FAIL: gcc.c-torture/execute/memset-3.c execution, -O1
FAIL: gcc.c-torture/execute/memset-3.c execution, -O2
FAIL: gcc.c-torture/execute/memset-3.c execution, -O3 -fomit-frame-pointer
FAIL: gcc.c-torture/execute/memset-3.c execution, -O3 -fomit-frame-pointer
-funroll-loops
FAIL: gcc.c-torture/execute/memset-3.c execution, -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions
FAIL: gcc.c-torture/execute/memset-3.c execution, -O3 -g
unix/-m32/-mtune=pentium-m/-mstringop-strategy=rep_4byte
-FAIL: gcc.c-torture/execute/memset-3.c execution, -O1
-FAIL: gcc.c-torture/execute/memset-3.c execution, -O2
-FAIL: gcc.c-torture/execute/memset-3.c execution, -O3 -fomit-frame-pointer
-FAIL: gcc.c-torture/execute/memset-3.c execution, -O3 -fomit-frame-pointer
-funroll-loops
-FAIL: gcc.c-torture/execute/memset-3.c execution, -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions
-FAIL: gcc.c-torture/execute/memset-3.c execution, -O3 -g
( FAIL is before+after the patch, -FAIL is before the patch, cured by the
patch).
To reject rep_8byte for -m32 we IMHO want:
--- i386.c.jj42008-12-27 10:12:25.000000000 +0100
+++ i386.c2009-01-03 11:53:15.000000000 +0100
@@ -2686,7 +2686,8 @@ override_options (bool main_args_p)
stringop_alg = libcall;
else if (!strcmp (ix86_stringop_string, "rep_4byte"))
stringop_alg = rep_prefix_4_byte;
- else if (!strcmp (ix86_stringop_string, "rep_8byte"))
+ else if (!strcmp (ix86_stringop_string, "rep_8byte")
+ && TARGET_64BIT)
stringop_alg = rep_prefix_8_byte;
else if (!strcmp (ix86_stringop_string, "byte_loop"))
stringop_alg = loop_1_byte;
and obviously the remaining FAILs need to be investigated.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38708
More information about the Gcc-bugs
mailing list