From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17028 invoked by alias); 1 Oct 2012 12:17:13 -0000 Received: (qmail 16966 invoked by uid 48); 1 Oct 2012 12:16:54 -0000 From: "uweigand at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug rtl-optimization/54739] [4.8 regression] FAIL: gcc.dg/lower-subreg-1.c scan-rtl-dump subreg1 "Splitting reg" Date: Mon, 01 Oct 2012 12:17:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: rtl-optimization X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: uweigand at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 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: 2012-10/txt/msg00023.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54739 --- Comment #3 from Ulrich Weigand 2012-10-01 12:16:53 UTC --- It seems all three of those targets have an "iordi3" pattern that triggers even for 32-bit compiles. In this case, the lower-subreg pass now no longer splits the register, so that the DImode pattern is actually used. (Prior to my patch, the register would have been split anyway.) The test case is intended to run on 32-bit targets where an ior:DI operation is supposed to be split; it will now fail on targets with an iordi3 pattern. For those targets, I guess it's up the target maintainers to decide whether: - you want the iordi3 pattern to trigger since it gives better code than having lower-subreg split the operation: in this case, just disable the test case for your target (this is what I did for ARM) or - you'd really prefer to have lower-subreg split the operation, in which case you should remove the iordi3 pattern