From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com [IPv6:2a00:1450:4864:20::335]) by sourceware.org (Postfix) with ESMTPS id 458073857839 for ; Mon, 22 Jan 2024 17:15:39 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 458073857839 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=embecosm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=embecosm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 458073857839 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::335 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705943741; cv=none; b=Ey88J/IjY+OU86O5tjAAYeF4WM5UexxNJjBKl9YMenMHUiemm0Ay+WUvmrpH7U2rBoJt6C8hAtch2Vv64YYd+FyrsnqDsxc9hcfaMLVDgzNwILH5ATrCd2jeiN7xUuTOrhVFAFd0hjVlmQcwsLtf6iJq6QeZVVyJ255nTEprDR8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705943741; c=relaxed/simple; bh=2yngdR8KPpopzfutFQxYb0oI0h2h7l61pfaSD4mk86U=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=fi5Yjeywkfi2nmNXvJ1R0FrudfOAmZvKydgu3Ofi5qc0l0YacsFsuw9vZSjGSFmswAHgV7rhB2vz2PVAtIXK/yrWhghTV/WPOLbAITkTvsBAJcBzUNEa47RjD+OUp868tdSTxNQH4vtzQAftgKqQCWzQfQnEdWHei9UsOtqNDIo= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-wm1-x335.google.com with SMTP id 5b1f17b1804b1-40e800461baso41326405e9.3 for ; Mon, 22 Jan 2024 09:15:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=embecosm.com; s=google; t=1705943735; x=1706548535; darn=gcc.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=MymenQXP+qwkiw7JPop4QO1XrG3DuilQ+f8i8svwa/U=; b=VtrMNDrLS/gcdYo3jIivX2rBTvnhhcTbyllaaXE8djIFK0tOmsIgLe+m45Lmv6FkMw tAaRYQFbh5nMrITEDh/Krf2KzqjHYUbx7Erg1/Dc0YNIty9rMg84mWHvXr8CGxcaGMEQ yHUiL71Zgo3EdhXVlKaLC2Ge0UuY8jqRwvfCr4xV/qZgAS8qTjXfDg4SDqFpf5h3fIO2 EdCTVwPHAgakCStKokgnhnSEHnUe2lfcZ1mYjQ3Uf9P4+ahYbhiOebPvlCAIxkYIT0vN f+qtGrLnxKvxDojWgBDGEmSLNmJnezUoWWTWp/+fb6Xa64NCZBtkxFmWVPDqVoamEzad wm3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705943735; x=1706548535; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=MymenQXP+qwkiw7JPop4QO1XrG3DuilQ+f8i8svwa/U=; b=GReJI3fVj2tKOnkPDMIm8+2tJtonj8Ppf7tnHBN/4JzdDU81iQhLyMQxXB6Vdtfe/Y fpa/l4BZNvz245o0Cz3nQmngHtxMThpX3lTz4XQ568b0c5YbnvTFpOKPtlBOGyZBKR4t WT2Ur2rXODi9GzYYOgAh0ZfiaJ1pBX7vzA2yA+0CHunHF6/68W+GwTHYFl/CHryPayCP f2MkqCuqwbZk7bQs4lUDAqqj4loatdeFERIoH4BaseZDJ/uRuGSrGLYKl91oDzzwSswU Nkz/g/HDspzBt3wT7wxmUhwU7YM+1GmKGnDjdERatNU7HALG/IBIHzgIRLVDBOju8j6n AVFw== X-Gm-Message-State: AOJu0Yz6bU0WP7W8JSQXVI37LGe22HdtDDoElsHbMa36Rb/srbBEMULg MND4KPfxu6yeR6t4idNWLcnD79V8rk5tmIcl6WI4msfq6cb/mZJ0NJZjBJoyGDXJMbsnMIM9KLh G X-Google-Smtp-Source: AGHT+IGQcsvF0j7Q9SuhorvGUieSXbAPZcoof2towM77cwTCT3KZRpbV3DGX6obW8QYR3f5airaSWA== X-Received: by 2002:a05:600c:28d:b0:40e:61c9:4e4e with SMTP id 13-20020a05600c028d00b0040e61c94e4emr1305738wmk.87.1705943734989; Mon, 22 Jan 2024 09:15:34 -0800 (PST) Received: from troughton.lym.embecosm-corp.com ([212.69.42.53]) by smtp.gmail.com with ESMTPSA id j5-20020a05600c1c0500b0040e9f7dadc6sm12042208wms.25.2024.01.22.09.15.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jan 2024 09:15:34 -0800 (PST) From: Mary Bennett To: gcc-patches@gcc.gnu.org Cc: mary.bennett@embecosm.com Subject: [PATCH v3 0/1] RISC-V: Support CORE-V XCVBITMAIP extension Date: Mon, 22 Jan 2024 17:15:02 +0000 Message-Id: <20240122171503.807456-1-mary.bennett@embecosm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240116162552.461635-1-mary.bennett@embecosm.com> References: <20240116162552.461635-1-mary.bennett@embecosm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-5.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: v2 -> v3: * Updated rtl for cnt, ff1, fl1, bclr, bset, insert and extract[u]. * cv.bitrev requires groups of bits to reverse order. bitreverse does not support this. This patch series presents the comprehensive implementation of the BITMANIP extension for CORE-V. Tested with riscv-gnu-toolchain on binutils, ld, gas and gcc testsuites to ensure its correctness and compatibility with the existing codebase. However, your input, reviews, and suggestions are invaluable in making this extension even more robust. The CORE-V builtins are described in the specification [1] and work can be found in the OpenHW group's Github repository [2]. [1] github.com/openhwgroup/core-v-sw/blob/master/specifications/corev-builtin-spec.md [2] github.com/openhwgroup/corev-gcc Contributors: Mary Bennett Nandni Jamnadas Pietra Ferreira Charlie Keaney Jessica Mills Craig Blackmore Simon Cook Jeremy Bennett Helene Chelin RISC-V: Add support for XCVbitmanip extension in CV32E40P gcc/common/config/riscv/riscv-common.cc | 2 + gcc/config/riscv/constraints.md | 16 ++ gcc/config/riscv/corev.def | 13 ++ gcc/config/riscv/corev.md | 184 ++++++++++++++++++ gcc/config/riscv/predicates.md | 16 ++ gcc/config/riscv/riscv-builtins.cc | 1 + gcc/config/riscv/riscv-ftypes.def | 5 + gcc/config/riscv/riscv.cc | 13 ++ gcc/config/riscv/riscv.opt | 2 + gcc/doc/extend.texi | 53 +++++ gcc/doc/sourcebuild.texi | 3 + .../riscv/cv-bitmanip-compile-bclr.c | 27 +++ .../riscv/cv-bitmanip-compile-bclrr.c | 18 ++ .../riscv/cv-bitmanip-compile-bitrev.c | 30 +++ .../riscv/cv-bitmanip-compile-bset.c | 27 +++ .../riscv/cv-bitmanip-compile-bsetr.c | 18 ++ .../riscv/cv-bitmanip-compile-clb.c | 18 ++ .../riscv/cv-bitmanip-compile-cnt.c | 18 ++ .../riscv/cv-bitmanip-compile-extract.c | 27 +++ .../riscv/cv-bitmanip-compile-extractr.c | 18 ++ .../riscv/cv-bitmanip-compile-extractu.c | 27 +++ .../riscv/cv-bitmanip-compile-extractur.c | 18 ++ .../riscv/cv-bitmanip-compile-ff1.c | 18 ++ .../riscv/cv-bitmanip-compile-fl1.c | 18 ++ .../riscv/cv-bitmanip-compile-insert.c | 24 +++ .../riscv/cv-bitmanip-compile-insertr.c | 18 ++ .../riscv/cv-bitmanip-compile-ror.c | 18 ++ .../riscv/cv-bitmanip-fail-compile-bclr.c | 25 +++ .../riscv/cv-bitmanip-fail-compile-bitrev.c | 23 +++ .../riscv/cv-bitmanip-fail-compile-bset.c | 25 +++ .../riscv/cv-bitmanip-fail-compile-extract.c | 25 +++ .../riscv/cv-bitmanip-fail-compile-extractu.c | 25 +++ .../riscv/cv-bitmanip-fail-compile-insert.c | 25 +++ gcc/testsuite/lib/target-supports.exp | 13 ++ 34 files changed, 811 insertions(+) create mode 100644 gcc/testsuite/gcc.target/riscv/cv-bitmanip-compile-bclr.c create mode 100644 gcc/testsuite/gcc.target/riscv/cv-bitmanip-compile-bclrr.c create mode 100644 gcc/testsuite/gcc.target/riscv/cv-bitmanip-compile-bitrev.c create mode 100644 gcc/testsuite/gcc.target/riscv/cv-bitmanip-compile-bset.c create mode 100644 gcc/testsuite/gcc.target/riscv/cv-bitmanip-compile-bsetr.c create mode 100644 gcc/testsuite/gcc.target/riscv/cv-bitmanip-compile-clb.c create mode 100644 gcc/testsuite/gcc.target/riscv/cv-bitmanip-compile-cnt.c create mode 100644 gcc/testsuite/gcc.target/riscv/cv-bitmanip-compile-extract.c create mode 100644 gcc/testsuite/gcc.target/riscv/cv-bitmanip-compile-extractr.c create mode 100644 gcc/testsuite/gcc.target/riscv/cv-bitmanip-compile-extractu.c create mode 100644 gcc/testsuite/gcc.target/riscv/cv-bitmanip-compile-extractur.c create mode 100644 gcc/testsuite/gcc.target/riscv/cv-bitmanip-compile-ff1.c create mode 100644 gcc/testsuite/gcc.target/riscv/cv-bitmanip-compile-fl1.c create mode 100644 gcc/testsuite/gcc.target/riscv/cv-bitmanip-compile-insert.c create mode 100644 gcc/testsuite/gcc.target/riscv/cv-bitmanip-compile-insertr.c create mode 100644 gcc/testsuite/gcc.target/riscv/cv-bitmanip-compile-ror.c create mode 100644 gcc/testsuite/gcc.target/riscv/cv-bitmanip-fail-compile-bclr.c create mode 100644 gcc/testsuite/gcc.target/riscv/cv-bitmanip-fail-compile-bitrev.c create mode 100644 gcc/testsuite/gcc.target/riscv/cv-bitmanip-fail-compile-bset.c create mode 100644 gcc/testsuite/gcc.target/riscv/cv-bitmanip-fail-compile-extract.c create mode 100644 gcc/testsuite/gcc.target/riscv/cv-bitmanip-fail-compile-extractu.c create mode 100644 gcc/testsuite/gcc.target/riscv/cv-bitmanip-fail-compile-insert.c -- 2.34.1