From nobody Fri Sep 12 23:01:57 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1751463743; cv=none; d=zohomail.com; s=zohoarc; b=YElyNKf+49yqq0JnAiQ6gMdlA80xyYEdRCeen3aKsRDMbq4PZ0YV+rwrQIOL9gVY/kiQlaUPKILOMTFbocpSzCCUmadyRtXqWncbTFys0xQp/X99tDqzk8zq9Ldq5r/tezOBXj/loEyBUA3jcT92QXheNimIT9Pwok131lg3frQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751463743; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=yHqvh21OXE4vjukTTqMZ2JA/l8VM2GH0ZoSM4ub9qlg=; b=RF5j5XaWGmb7LfF2jPk77At3ziPQhUzhbTILdNcarfhupVrLhi2iqYTyZwuvKha5ZWhUdxkgOewV5KuyfXGuOdV11J3BdUc2mQ4+IDlIX8TZKnabUeBj0wF+T70qp0wkiBpNeV7SBtQpCMJpAe61mU4u1XO/meim6odzCdQtnK4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1751463743404756.5220208520908; Wed, 2 Jul 2025 06:42:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uWwp5-0003Fz-I2; Wed, 02 Jul 2025 08:44:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uWwk6-0004rg-NP for qemu-devel@nongnu.org; Wed, 02 Jul 2025 08:39:19 -0400 Received: from mail-oa1-x2b.google.com ([2001:4860:4864:20::2b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uWwjm-0002HZ-7G for qemu-devel@nongnu.org; Wed, 02 Jul 2025 08:39:13 -0400 Received: by mail-oa1-x2b.google.com with SMTP id 586e51a60fabf-2ea58f008e9so3760501fac.0 for ; Wed, 02 Jul 2025 05:38:53 -0700 (PDT) Received: from stoup.. ([187.210.107.185]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-2efd4ea5d9fsm3843451fac.10.2025.07.02.05.38.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Jul 2025 05:38:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1751459933; x=1752064733; darn=nongnu.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=yHqvh21OXE4vjukTTqMZ2JA/l8VM2GH0ZoSM4ub9qlg=; b=X2hTW7dXzbrtNikYliWhHL1RVGX0NJ6dnxu5YjogiDpm/Sg4RdUi4RzaIV1lBXRjqn fffJ4LzITBYGYgEDUD4mo6TTHdg1/oYWC4jaAAavApgawJVVZZ8bKSstN8HA1fauwHwx fQ8ZzcV6ZzSREbpRcaKhK1tL4SawS2oPZl0XoCotpH6Jb9f7+caVoeyFk9hrI0N9pcXY 5rpUOYoQRKyuWNng6hqfdRBN+xtc+5gvqeD5rJdXphUq2CNZG4rmcYjJInzFuAgCSVlS 6/G0ObzKVgDBjej6qedSeAVQeumHQ04BBkSY/gh+HjMIIgWxVnQLQh2fqw2GtHhliekt 4Hbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751459933; x=1752064733; 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=yHqvh21OXE4vjukTTqMZ2JA/l8VM2GH0ZoSM4ub9qlg=; b=TLOn+mcKfIU0iCTvvCJax43wlAdtVvO3bxbrQ0FgH9k3yxUR72GCzB1bhe1QJDE2T2 91IOEMdeZZwHp6HxhdH5cJcuNaqqGBu/wWIWv2KxAKK7APxIL2cEO/XjYWYRSBKWVVhu bPB7lDLISN3GPkrFGhtDCot28QHax/Nl0ba6mPTNv23IoQ+1YYpXm52aaV+oixBJXcoa H5KmZ+4pU0SJIX+SBRfK934E5+ZxW1QskOBAaerniGy40ypfryfhSxXj8Kke8NITTXGo 8OkSO5/64G0e4+JS9lZz8x7KrUfGgfTgcBnvLMxsNwkQuDuD8Ok9NIxzDXcgWT4jzdSg dxXQ== X-Gm-Message-State: AOJu0YzL+Tj8dlk4eHxpjmTlifz70ZaSvWzo+29DB0kIM6rFHuwrJZUH mmzS/VugbyGfHXxzC1kxBB3b93ogzCxdH1kiqETrE00DysxS5vutsv2e58zhNu4tIya2eFdrnLx plAf0Iuk= X-Gm-Gg: ASbGncuHALP8sVuRM7968Iey9xNeV4PXbZaaglqP2uD8C3Il1KBs6Bk4WnCx2KyI2wR 7ZA95hq2hoVAEl0HvNfzo3BAGLsk+5ICwax5gHaDXreFbq5Reb7fKZoqXc/2fIOvjFuk1fDvzk0 p6wWrM3tn6Lc+c1yeLXwjcK02wVCnFY+cdS+T1V6xhW/3NfBBloJcWDxGbJJ3ID+PN3kCr4j5PD KixPzNQbs8D+NTrjWKWNOog1S3fd84ljxjttCbumvK5YA6qJNZ9M/FuKNlbAAx/6iYaElqgKADA k7gs4IriNpHQUN1Tjx8OP3E8OPA/5Fu8FQuq5wN3KUzi9SkEDhu2yolaLlBI8i5al+HGLOXm479 7U+gz X-Google-Smtp-Source: AGHT+IHz3/F2dNnMZ+W+qxq5/54MT7ubAJU7vmIxNgXXJeTrVszEZx7MSVwtMvInZAhnb7682wHT7Q== X-Received: by 2002:a05:6870:d03:b0:2ea:87d7:5a35 with SMTP id 586e51a60fabf-2f5a8cdd633mr1819269fac.36.1751459932729; Wed, 02 Jul 2025 05:38:52 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, peter.maydell@linaro.org Subject: [PATCH v3 78/97] target/arm: Implement EXTQ for SME2p1/SVE2p1 Date: Wed, 2 Jul 2025 06:33:51 -0600 Message-ID: <20250702123410.761208-79-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250702123410.761208-1-richard.henderson@linaro.org> References: <20250702123410.761208-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2001:4860:4864:20::2b; envelope-from=richard.henderson@linaro.org; helo=mail-oa1-x2b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1751463745311116600 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/tcg/translate-sve.c | 49 ++++++++++++++++++++++++++++++++++ target/arm/tcg/sve.decode | 2 ++ 2 files changed, 51 insertions(+) diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index e33b2eb2a4..a918da31fe 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -2202,6 +2202,55 @@ static bool do_EXT(DisasContext *s, int rd, int rn, = int rm, int imm) TRANS_FEAT(EXT, aa64_sve, do_EXT, a->rd, a->rn, a->rm, a->imm) TRANS_FEAT(EXT_sve2, aa64_sve2, do_EXT, a->rd, a->rn, (a->rn + 1) % 32, a-= >imm) =20 +static bool trans_EXTQ(DisasContext *s, arg_EXTQ *a) +{ + unsigned vl, dofs, sofs0, sofs1, sofs2, imm; + + if (!dc_isar_feature(aa64_sme2p1_or_sve2p1, s)) { + return false; + } + if (!sve_access_check(s)) { + return true; + } + + imm =3D a->imm; + if (imm =3D=3D 0) { + /* So far we never optimize Zdn with MOVPRFX, so zd =3D zn is a no= p. */ + return true; + } + + vl =3D vec_full_reg_size(s); + dofs =3D vec_full_reg_offset(s, a->rd); + sofs2 =3D vec_full_reg_offset(s, a->rn); + + if (imm & 8) { + sofs0 =3D dofs + 8; + sofs1 =3D sofs2; + sofs2 +=3D 8; + } else { + sofs0 =3D dofs; + sofs1 =3D dofs + 8; + } + imm =3D (imm & 7) << 3; + + for (unsigned i =3D 0; i < vl; i +=3D 16) { + TCGv_i64 s0 =3D tcg_temp_new_i64(); + TCGv_i64 s1 =3D tcg_temp_new_i64(); + TCGv_i64 s2 =3D tcg_temp_new_i64(); + + tcg_gen_ld_i64(s0, tcg_env, sofs0 + i); + tcg_gen_ld_i64(s1, tcg_env, sofs1 + i); + tcg_gen_ld_i64(s2, tcg_env, sofs2 + i); + + tcg_gen_extract2_i64(s0, s0, s1, imm); + tcg_gen_extract2_i64(s1, s1, s2, imm); + + tcg_gen_st_i64(s0, tcg_env, dofs + i); + tcg_gen_st_i64(s1, tcg_env, dofs + i + 8); + } + return true; +} + /* *** SVE Permute - Unpredicated Group */ diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index 2650e00f80..af4fb966bf 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -583,6 +583,8 @@ DUPQ 00000101 001 imm:3 10 001001 rn:5 rd:= 5 &rri_esz esz=3D1 DUPQ 00000101 001 imm:2 100 001001 rn:5 rd:5 &rri_esz e= sz=3D2 DUPQ 00000101 001 imm:1 1000 001001 rn:5 rd:5 &rri_esz e= sz=3D3 =20 +EXTQ 00000101 0110 imm:4 001001 rn:5 rd:5 &rri + # SVE insert SIMD&FP scalar register INSR_f 00000101 .. 1 10100 001110 ..... ..... @rdn_rm =20 --=20 2.43.0