From patchwork Mon Oct 17 12:26:27 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Thomas Schwinge X-Patchwork-Id: 58936 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 85FD03857414 for ; Mon, 17 Oct 2022 12:26:54 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from esa2.mentor.iphmx.com (esa2.mentor.iphmx.com [68.232.141.98]) by sourceware.org (Postfix) with ESMTPS id 323A83858D28 for ; Mon, 17 Oct 2022 12:26:36 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 323A83858D28 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com X-IronPort-AV: E=Sophos;i="5.95,191,1661846400"; d="scan'208,223";a="84975134" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa2.mentor.iphmx.com with ESMTP; 17 Oct 2022 04:26:34 -0800 IronPort-SDR: xj4Uva4fFX7nYh0iglGljqPD2Aib4V1xrPcMRcc6jIKQbtB6oWh3xvVUqqA8rb5iyJBW4PVUEh dkf3QCtRPNSlX4eb9r6yGauQZVR4HK6oBoFoNxqbedvfpi7OAi/Y4qc9c/k0BHj5Au9lL987FJ xPyNj8YO0d0RRcZUq8R8czK78Ef1kh/5QCVms0zKnbSjhAldeyk0krfKNGJk8PN5AL545sswlS wpAKFuDRNsJW0qKsxR86Py7nXo+rvxYiBMj5wKxhUpPpc6RpNrNZBAxV35WIUEFBU5/STnqr7B aEo= From: Thomas Schwinge To: Andrew Stubbs , Subject: GCN: Restore build with GCC 4.8 (was: [committed 1/6] amdgcn: add multiple vector sizes) In-Reply-To: <45381d6f9f4e7b5c7b062f5ad8cc9788091c2d07.1665485382.git.ams@codesourcery.com> References: <45381d6f9f4e7b5c7b062f5ad8cc9788091c2d07.1665485382.git.ams@codesourcery.com> User-Agent: Notmuch/0.29.3+94~g74c3f1b (https://notmuchmail.org) Emacs/27.1 (x86_64-pc-linux-gnu) Date: Mon, 17 Oct 2022 14:26:27 +0200 Message-ID: <87v8oihc0c.fsf@euler.schwinge.homeip.net> MIME-Version: 1.0 X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-13.mgc.mentorg.com (139.181.222.13) To svr-ies-mbx-10.mgc.mentorg.com (139.181.222.10) X-Spam-Status: No, score=-11.8 required=5.0 tests=BAYES_00, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, KAM_LOTSOFHASH, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" Hi! On 2022-10-11T12:02:03+0100, Andrew Stubbs wrote: > --- a/gcc/config/gcn/gcn.cc > +++ b/gcc/config/gcn/gcn.cc > +/* Return a vector mode with N lanes of MODE. */ > + > +static machine_mode > +VnMODE (int n, machine_mode mode) > +{ > + switch (mode) > + { > + case QImode: Pushed to master branch commit 612de72b0d2904b5a5a2b487ce4cb907c768a947 "GCN: Restore build with GCC 4.8", see attached. Cherry-picked pushed to devel/omp/gcc-12 branch in commit 38e4f4f55a6823d028b8f5332c500b7267ad320b "GCN: Restore build with GCC 4.8", see attached. Grüße Thomas > + switch (n) > + { > + case 2: return V2QImode; > + case 4: return V4QImode; > + case 8: return V8QImode; > + case 16: return V16QImode; > + case 32: return V32QImode; > + case 64: return V64QImode; > + } > + break; > + case HImode: > + switch (n) > + { > + case 2: return V2HImode; > + case 4: return V4HImode; > + case 8: return V8HImode; > + case 16: return V16HImode; > + case 32: return V32HImode; > + case 64: return V64HImode; > + } > + break; > + case HFmode: > + switch (n) > + { > + case 2: return V2HFmode; > + case 4: return V4HFmode; > + case 8: return V8HFmode; > + case 16: return V16HFmode; > + case 32: return V32HFmode; > + case 64: return V64HFmode; > + } > + break; > + case SImode: > + switch (n) > + { > + case 2: return V2SImode; > + case 4: return V4SImode; > + case 8: return V8SImode; > + case 16: return V16SImode; > + case 32: return V32SImode; > + case 64: return V64SImode; > + } > + break; > + case SFmode: > + switch (n) > + { > + case 2: return V2SFmode; > + case 4: return V4SFmode; > + case 8: return V8SFmode; > + case 16: return V16SFmode; > + case 32: return V32SFmode; > + case 64: return V64SFmode; > + } > + break; > + case DImode: > + switch (n) > + { > + case 2: return V2DImode; > + case 4: return V4DImode; > + case 8: return V8DImode; > + case 16: return V16DImode; > + case 32: return V32DImode; > + case 64: return V64DImode; > + } > + break; > + case DFmode: > + switch (n) > + { > + case 2: return V2DFmode; > + case 4: return V4DFmode; > + case 8: return V8DFmode; > + case 16: return V16DFmode; > + case 32: return V32DFmode; > + case 64: return V64DFmode; > + } > + break; > + default: > + break; > + } > + > + return VOIDmode; > +} ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955 From 38e4f4f55a6823d028b8f5332c500b7267ad320b Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sat, 15 Oct 2022 00:10:29 +0200 Subject: [PATCH] GCN: Restore build with GCC 4.8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For example, for "g++-4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4", the recent commit r13-3220-g45381d6f9f4e7b5c7b062f5ad8cc9788091c2d07 "amdgcn: add multiple vector sizes" broke the build: In file included from [...]/source-gcc/gcc/coretypes.h:458:0, from [...]/source-gcc/gcc/config/gcn/gcn.cc:24: [...]/source-gcc/gcc/config/gcn/gcn.cc: In function ‘machine_mode VnMODE(int, machine_mode)’: ./insn-modes.h:42:71: error: temporary of non-literal type ‘scalar_int_mode’ in a constant expression #define QImode (scalar_int_mode ((scalar_int_mode::from_int) E_QImode)) ^ [...]/source-gcc/gcc/config/gcn/gcn.cc:405:10: note: in expansion of macro ‘QImode’ case QImode: ^ In file included from [...]/source-gcc/gcc/coretypes.h:478:0, from [...]/source-gcc/gcc/config/gcn/gcn.cc:24: [...]/source-gcc/gcc/machmode.h:410:7: note: ‘scalar_int_mode’ is not literal because: class scalar_int_mode ^ [...]/source-gcc/gcc/machmode.h:410:7: note: ‘scalar_int_mode’ is not an aggregate, does not have a trivial default constructor, and has no constexpr constructor that is not a copy or move constructor [...] Addressing this like simiar issues have been addressed in the past. gcc/ * config/gcn/gcn.cc (VnMODE): Use 'case E_QImode:' instead of 'case QImode:', etc. (cherry picked from commit 612de72b0d2904b5a5a2b487ce4cb907c768a947) --- gcc/ChangeLog.omp | 8 ++++++++ gcc/config/gcn/gcn.cc | 14 +++++++------- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/gcc/ChangeLog.omp b/gcc/ChangeLog.omp index c34d0ec7c77..527a9850dba 100644 --- a/gcc/ChangeLog.omp +++ b/gcc/ChangeLog.omp @@ -1,3 +1,11 @@ +2022-10-17 Thomas Schwinge + + Backported from master: + 2022-10-17 Thomas Schwinge + + * config/gcn/gcn.cc (VnMODE): Use 'case E_QImode:' instead of + 'case QImode:', etc. + 2022-10-14 Julian Brown * omp-low.cc (oacc_privatization_candidate_p): Artificial vars are not diff --git a/gcc/config/gcn/gcn.cc b/gcc/config/gcn/gcn.cc index b01131c0dc2..9c2fd4c5b8a 100644 --- a/gcc/config/gcn/gcn.cc +++ b/gcc/config/gcn/gcn.cc @@ -412,7 +412,7 @@ VnMODE (int n, machine_mode mode) { switch (mode) { - case QImode: + case E_QImode: switch (n) { case 2: return V2QImode; @@ -423,7 +423,7 @@ VnMODE (int n, machine_mode mode) case 64: return V64QImode; } break; - case HImode: + case E_HImode: switch (n) { case 2: return V2HImode; @@ -434,7 +434,7 @@ VnMODE (int n, machine_mode mode) case 64: return V64HImode; } break; - case HFmode: + case E_HFmode: switch (n) { case 2: return V2HFmode; @@ -445,7 +445,7 @@ VnMODE (int n, machine_mode mode) case 64: return V64HFmode; } break; - case SImode: + case E_SImode: switch (n) { case 2: return V2SImode; @@ -456,7 +456,7 @@ VnMODE (int n, machine_mode mode) case 64: return V64SImode; } break; - case SFmode: + case E_SFmode: switch (n) { case 2: return V2SFmode; @@ -467,7 +467,7 @@ VnMODE (int n, machine_mode mode) case 64: return V64SFmode; } break; - case DImode: + case E_DImode: switch (n) { case 2: return V2DImode; @@ -478,7 +478,7 @@ VnMODE (int n, machine_mode mode) case 64: return V64DImode; } break; - case DFmode: + case E_DFmode: switch (n) { case 2: return V2DFmode; -- 2.35.1