From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 2645A384801B; Fri, 21 May 2021 07:29:18 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2645A384801B From: "rguenth at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug ipa/99785] Awful lot of time spent building gl.cc in Firefox Date: Fri, 21 May 2021 07:29:17 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: ipa X-Bugzilla-Version: 11.0 X-Bugzilla-Keywords: compile-time-hog, memory-hog X-Bugzilla-Severity: normal X-Bugzilla-Who: rguenth at gcc dot gnu.org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: gcc-bugs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-bugs mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2021 07:29:19 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D99785 --- Comment #19 from Richard Biener --- (In reply to Jakub Jelinek from comment #18) > Also, __builtin_shufflevector allows to say -1 as a don't care element, o= ur > current infrastructure doesn't allow that, but it would be nice even for > internal uses. On the other side, I think __builtin_shufflevector allows > only constant indices, while __builtin_shuffle allows arbitrary runtime > reshuffling. Yes, I think they complement each other. The question would be whether we'd want to represent both with VEC_PERM_EXPR on GIMPLE. And how to present the more flexible cases to the RTL expander and targets. const permutes seem to be handled via the vec_perm_const target hook and not the vec_perm optab, so a possibility would be to create a new hook with relaxed mode requirements - either by passing in three modes or some dummy RTXen. OTOH it should be possible to handle some cases purely in the expander by using paradoxical subregs when sources are of smaller size. With larger size sources the -1 would come in handy allowing for larger results and subregging them.=