From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26856 invoked by alias); 17 Dec 2014 22:55:07 -0000 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 Received: (qmail 26793 invoked by uid 48); 17 Dec 2014 22:55:03 -0000 From: "jakub at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug rtl-optimization/64110] [5 Regression] ICE: Max. number of generated reload insns per insn is achieved (90) Date: Wed, 17 Dec 2014 22:55: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-Version: 5.0 X-Bugzilla-Keywords: ra X-Bugzilla-Severity: normal X-Bugzilla-Who: jakub at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Priority: P1 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 5.0 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2014-12/txt/msg02048.txt.bz2 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64110 --- Comment #14 from Jakub Jelinek --- (In reply to Vladimir Makarov from comment #13) > (In reply to Jakub Jelinek from comment #11) > > Looking at the generated assembly, I see there: > > movw %di, -80(%rbp) > > vpbroadcastw -80(%rbp), %ymm1 > > vmovdqa %ymm1, -80(%rbp) > > I'd have expected > > vmovd %edi, %xmm1 > > vpbroadcastw %xmm1, %ymm1 > > vmovdqa %ymm1, -80(%rbp) > > Is there some bug in the *vec_dupv16hi pattern that LRA can't use the !r > > alternative? %di should be valid nonimmediate_operand in HImode. For e.g. > > I know about the problem. It is coming from a different treatment of ! in > LRA and reload. I am going to work on this but as the fix would be in very > sensitive LRA part. I am afraid to fix it before my vacation. So probably > it will be solved only in January. Np, and thanks a lot. The ! has been added by me for PR63594, so it isn't there from the era when i?86 backend was using reload. If there is a better way to express that RA should prefer to use memory or xmm register and only use r constraint if it already is in a r register and doesn't need to be reloaded, I can use that. Whether it is ?, ??? or something else. ! description in gcc docs just fitted most what I wanted...