From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21073 invoked by alias); 3 Jan 2009 11:40:38 -0000 Received: (qmail 20672 invoked by uid 48); 3 Jan 2009 11:39:18 -0000 Date: Sat, 03 Jan 2009 11:40:00 -0000 Message-ID: <20090103113918.20671.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug target/38708] [4.4 Regression] Revision 137646 caused gcc.c-torture/execute/memset-[23].c fail with -mtune=pentiumpro In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "jakub at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2009-01/txt/msg00259.txt.bz2 ------- 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