From patchwork Tue Jul 30 21:32:54 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick O'Neill X-Patchwork-Id: 1966767 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=rivosinc-com.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.a=rsa-sha256 header.s=20230601 header.b=Zq1/0fvP; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=server2.sourceware.org; envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4WYT4P4NjWz1ybb for ; Wed, 31 Jul 2024 07:33:41 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id ADFD2385DDC6 for ; Tue, 30 Jul 2024 21:33:39 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-pf1-x436.google.com (mail-pf1-x436.google.com [IPv6:2607:f8b0:4864:20::436]) by sourceware.org (Postfix) with ESMTPS id 54148385DDC6 for ; Tue, 30 Jul 2024 21:33:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 54148385DDC6 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivosinc.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivosinc.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 54148385DDC6 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::436 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1722375185; cv=none; b=JPuB725x4jJfGWKMdbZhYaA79g6x0p26NoJtBUzoXP/VBysufaW0uyNMWIVoFhMEGWt6EnGSHvfacxcrUFkgZlbiwTSlVGvD2+LiWnlDneqxapsQiIpV7/Y52t8utH0jEVNo//AnsfX6oQhaKgXpNg3OjFv8DT9iW+Kj1iQ8u2E= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1722375185; c=relaxed/simple; bh=NbAQL6CKTcew6E0v/l35rWGhzZWU72OrLwB4As49ji8=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=XnkwF81NQMy7kb6TsmW+5h0SZs7BnNw9sqSVUsm7OElkeeiBzUIjcPu1wTyP1bM+0ACu4T956JETpOgvYSmnNiM6kRXcNdeEelFTSy6Dlrv7VlKSkoZ0tgymTqZLwh8Nr8670J/xZNrC15tOy/zfD9XkU4PDKlpiIlHG+xTX/OI= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-pf1-x436.google.com with SMTP id d2e1a72fcca58-70eb73a9f14so3788566b3a.2 for ; Tue, 30 Jul 2024 14:33:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1722375182; x=1722979982; darn=gcc.gnu.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=52W2F6JsEaX/fsD3ijCj+X/Qv8WudVKomvDjhZuaPkE=; b=Zq1/0fvPDCl4kzCciDQy6LJQYeyaBBDxb+FZFrJ90QpPzFCMLJhAlKR/TiLlk1Q98f k5cnRebSzEOX1YnHNgeVihdWbs9YYMjjwPvI+M4rIjKy47q1+mqRjXDES7p6FZw04Khh E1zqz2eUQk+LRrsSUNIzIU6CkmROAT+18fTboiL3glMxbh58Y9rM/xqFBk12uaFxICUN 2m+pEHTkLfH6Zxs6mWlVN8vvOWuHzGVEdsili/Fu0aiT6XR2MgJSHpMuNA3CtiMFxD3c HIR6ox8WGQkwI2fmLMDOWaeU07xNFWHwuXwyc4wxOpSBknV0BO9+QEpioc9kxDQ4TKYW pBog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1722375182; x=1722979982; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=52W2F6JsEaX/fsD3ijCj+X/Qv8WudVKomvDjhZuaPkE=; b=lolGHZP5PJJhTYG6Btels746Lx0O7CrquipWdNirfrmxuy1omcbzGVpAk/MFwF4Y8/ giU7JIHxjEwdbY6gXWZTfGYIBdkfpJJXXYpE8lNFnVOLNw9TB1K7wtUd+VWVf9DbiwKj lUdSkWfeYd2CaqD63+1JK7+GTaaiHo5gDryDbFwgoxzQeRhJ3jw2QMsoTVqbRpTGXdDC yfFdewRLZkdARrypQ47QuC1IZ6DQXXF6pvO+Bnpuy41HRrkBawFBEf0w2MZITvhQvrpA XHnQTbB49hvvtcNTfDSZetAbQe1/6dbAHHQ8xzuhRj2/1iWAqM8hQA6JUMbMzKUdCF8+ Qb7Q== X-Gm-Message-State: AOJu0YwgjwCUl1qPAF+txu3Kc4F/IbD7vjkKWwzFIW+BUxpZAWEIGMLo OouoId34AbsaxVNP1dueIW6wizvNjiNVIM7YG6lsHxwbkQFwzq1aF8n6iUrGbLe5ER/tTdNyh+Y q X-Google-Smtp-Source: AGHT+IEQatLepRwkXGMlHSMFzIxkGQkifz8aCz12KC17vaIxQ61m7m1Wx8vwzdEd188HkNeZJC6OrQ== X-Received: by 2002:a05:6a00:2442:b0:70e:a6b5:d80d with SMTP id d2e1a72fcca58-70ecedbc564mr15803707b3a.26.1722375181726; Tue, 30 Jul 2024 14:33:01 -0700 (PDT) Received: from patrick-ThinkPad-X1-Carbon-Gen-8.hq.rivosinc.com ([50.145.13.30]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-70ead8116afsm8864257b3a.116.2024.07.30.14.33.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 30 Jul 2024 14:33:01 -0700 (PDT) From: Patrick O'Neill To: gcc-patches@gcc.gnu.org Cc: jeffreyalaw@gmail.com, kito.cheng@gmail.com, gnu-toolchain@rivosinc.com, Patrick O'Neill Subject: [PATCH] RISC-V: Reject 'd' extension with ILP32E ABI Date: Tue, 30 Jul 2024 14:32:54 -0700 Message-ID: <20240730213254.199844-1-patrick@rivosinc.com> X-Mailer: git-send-email 2.43.2 MIME-Version: 1.0 X-Spam-Status: No, score=-11.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, 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.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org Also add a testcase for -mabi=lp64d where 'd' is required. gcc/ChangeLog: PR 116111 * config/riscv/riscv.cc (riscv_option_override): gcc/testsuite/ChangeLog: * gcc.target/riscv/arch-41.c: New test. * gcc.target/riscv/pr116111.c: New test. Signed-off-by: Patrick O'Neill --- gcc/config/riscv/riscv.cc | 5 +++++ gcc/testsuite/gcc.target/riscv/arch-41.c | 7 +++++++ gcc/testsuite/gcc.target/riscv/pr116111.c | 7 +++++++ 3 files changed, 19 insertions(+) create mode 100644 gcc/testsuite/gcc.target/riscv/arch-41.c create mode 100644 gcc/testsuite/gcc.target/riscv/pr116111.c diff --git a/gcc/config/riscv/riscv.cc b/gcc/config/riscv/riscv.cc index 8ece7859945..b19d56149e7 100644 --- a/gcc/config/riscv/riscv.cc +++ b/gcc/config/riscv/riscv.cc @@ -9818,6 +9818,11 @@ riscv_option_override (void) error ("rv64e requires lp64e ABI"); } + /* ILP32E does not support the 'd' extension. */ + if (riscv_abi == ABI_ILP32E && UNITS_PER_FP_REG > 4) + error ("ILP32E ABI does not support the %qc extension", + UNITS_PER_FP_REG > 8 ? 'Q' : 'D'); + /* Zfinx require abi ilp32, ilp32e, lp64 or lp64e. */ if (TARGET_ZFINX && riscv_abi != ABI_ILP32 && riscv_abi != ABI_LP64 diff --git a/gcc/testsuite/gcc.target/riscv/arch-41.c b/gcc/testsuite/gcc.target/riscv/arch-41.c new file mode 100644 index 00000000000..699eeb20a58 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/arch-41.c @@ -0,0 +1,7 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64i -mabi=lp64d" } */ +int +foo () +{} + +/* { dg-error "requested ABI requires '-march' to subsume the 'D' extension" "" { target *-*-* } 0 } */ diff --git a/gcc/testsuite/gcc.target/riscv/pr116111.c b/gcc/testsuite/gcc.target/riscv/pr116111.c new file mode 100644 index 00000000000..5c824be2e93 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/pr116111.c @@ -0,0 +1,7 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32ed -mabi=ilp32e" } */ +int +foo () +{} + +/* { dg-error "ILP32E ABI does not support the 'D' extension" "" { target *-*-* } 0 } */