From nobody Sat Jul 25 08:55:11 2026 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=1784659817; cv=none; d=zohomail.com; s=zohoarc; b=KWjrwt8cZeEP96zx7TGUCDb9oZdvpy4SNbFQeREz8M+zVN8ClH/nH/xEuv3aTrZ/omycd1Z4lAzsifOQq7im3UmaX3sl0ZIdBP18GwBi9xMoIWvPijhAKeKZh94kLlZhG7/kcXz/djOcil9Eb/ZjAlz4B+zdb6fvoP03wVyrDv8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784659817; 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=f1MyR0YlBgtED+/qnozxNwnJtMJGl7ehLr6zJ+FuVuk=; b=XreFhAiwF+7eAs8FjALG+Gytd5ZiQvkllK0Mo2OJ1gmfPznK3wP2V6wCn2C63Mwpc39WKpmuWL/niT4h2bBuWzVooEhU77tieq77mlAk4VJl5r56KXBPGx8CPIklwNki3h7MjdKXPk/FuxwBcxFRCp7E3mwLgBnBCsh+V+PK4xo= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784659817717204.26245329531957; Tue, 21 Jul 2026 11:50:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wmFWw-0002FJ-MT; Tue, 21 Jul 2026 14:49:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wmFUi-00010j-2T for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:11 -0400 Received: from mail-pj1-x1034.google.com ([2607:f8b0:4864:20::1034]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wmFUc-0006bC-9g for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:05 -0400 Received: by mail-pj1-x1034.google.com with SMTP id 98e67ed59e1d1-38dfe7eb825so6602987a91.0 for ; Tue, 21 Jul 2026 11:47:01 -0700 (PDT) Received: from stoup.. ([32.140.233.50]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-13ce29e340esm41108094c88.5.2026.07.21.11.46.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jul 2026 11:47:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1784659621; x=1785264421; 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:content-type; bh=f1MyR0YlBgtED+/qnozxNwnJtMJGl7ehLr6zJ+FuVuk=; b=yt1rS4+SHPQPuLab/bPSS0M5Jo0sKC2WQGjbtE6O+cR2jPx32E+kKVA3MQ/Meu6GIN XhN+syG+74SUcr8150KGfiCAR03PJR68R5UA2/HM4ynrpwJFPW1JVQWe/gDqkl3EvTLz kbeihPJ3zrCCQbnnh9yU0O5xqaZAg3/ie9gd2c2795IkJiu7iyleQpBd5tEPENr8bpNv kjdSQ0r0PdqB8PDkBtjVK92qOreMxmLLSH5lvJQwwBVutwQrXIxTGUkOXYRBmOLW8tIM AA0XNDeR02SLRFeDtCwLz+9Lq3StQR6rMtGpxZSfn9GMdV0fMkeCfCPAhXQ5UvF2bxp2 SnFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784659621; x=1785264421; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=f1MyR0YlBgtED+/qnozxNwnJtMJGl7ehLr6zJ+FuVuk=; b=sIwSXLQrAUUFrgBQL6/SoEIyDNWm78DKxGOd8o0vIYiJs3QyJj5LqNX1MbJzefQqSV vxYI4qj+PQwn28AbOHp7MzSfIBiXj0wkn+karDuYaewktyplqFYVmnZdgR97mkGxU8sx pdw4/5I2Dd+uz87kG726fBRth/2wqVDsKh3u/XGiWWQHUzjYYLcSkEcNwtfc4vSTj5Gy B8YfKsl/R9o/pwvLLIKK0V96VtzRURa+O8rlvj6nGSWBYKew70czTlIzKnUbKe7voHI0 iXCBWd1tlDyB79ebGJIc2piq6hnUzvMUerEamgOR0BUmRoUxSr82HqaAUAws/JTTLE3H eg+w== X-Gm-Message-State: AOJu0YwA/UMh1jd6g2JwuUMUxiye2d8VflNJ8qYkgKfVIXfMd8Fnww3s IJEYkXOWax8Nart+10ouvuCsf6qDAKGSXuyB0bVyxz23cNy/50zHQ8CUllgZcL1ngFQ0cKWC56d qdoa6 X-Gm-Gg: AR+sD10BeVZstrQOdrpR9U0Go+MNq18p6JTzVWYcmoQ36mIoTOo9ztP3zYbIOLHeOZJ HINYC3xymMTL7PFcSqC1LzFq5xPg7c2J1L2gAafBHAjNad2SuNT8Km1vSYhUqH7aCIedopW8Pru QsuBqtLYC41I14oeED5LbqNZ3xhmFUwu7FVgYS/4OwXob+N7mMtcoa8YHS1vroNNQOFz0UTyfJt +CjlpevfbDUcsBmXNTcjXuYwPRIdQuB669fRFwCkdDTyr15b4vX+z91AkoiO+olYFagI8b2OfZA eM6yJ34jDYkb526L+TCNs6ykNSbznlGpfIBSHzlnQ6MkPA/m5byVF8aJ6mHU9vCtUIfjschNh3q hOfmW8LR5KYsqtSjdIDFjvHt2A72P02Aytz/oBb4FEETC5wNnOJ/sdvrrUV0BI1UX3Lt2brqHRA +Uqkk/QSw= X-Received: by 2002:a17:90b:534d:b0:37f:a915:1c29 with SMTP id 98e67ed59e1d1-38e4b42ebd6mr20136533a91.19.1784659620660; Tue, 21 Jul 2026 11:47:00 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH 01/20] target/arm: Remove DO_ZPZZ_FP from translate-sme.c Date: Tue, 21 Jul 2026 11:46:37 -0700 Message-ID: <20260721184656.530230-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260721184656.530230-1-richard.henderson@linaro.org> References: <20260721184656.530230-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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1034; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1034.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=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development 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: 1784659820270158500 Content-Type: text/plain; charset="utf-8" Expand the macro at each use site. Signed-off-by: Richard Henderson --- target/arm/tcg/translate-sve.c | 67 +++++++++++++++++++++++++++------- 1 file changed, 54 insertions(+), 13 deletions(-) diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index fc4cc8c479..ff6032a07f 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -4415,13 +4415,6 @@ TRANS_FEAT_NONSTREAMING(FTSMUL, aa64_sve, gen_gvec_f= pst_arg_zzz, *** SVE Floating Point Arithmetic - Predicated Group */ =20 -#define DO_ZPZZ_FP(NAME, FEAT, name) \ - static gen_helper_gvec_4_ptr * const name##_zpzz_fns[4] =3D { \ - NULL, gen_helper_##name##_h, \ - gen_helper_##name##_s, gen_helper_##name##_d \ - }; \ - TRANS_FEAT(NAME, FEAT, gen_gvec_fpst_arg_zpzz, name##_zpzz_fns[a->esz]= , a) - #define DO_ZPZZ_AH_FP(NAME, FEAT, name, ah_name) \ static gen_helper_gvec_4_ptr * const name##_zpzz_fns[4] =3D { \ NULL, gen_helper_##name##_h, \ @@ -4464,9 +4457,33 @@ DO_ZPZZ_AH_FP_B16(FMAX_zpzz, aa64_sme_or_sve, sve_fm= ax, sve_ah_fmax) DO_ZPZZ_FP_B16(FMINNM_zpzz, aa64_sme_or_sve, sve_fminnum) DO_ZPZZ_FP_B16(FMAXNM_zpzz, aa64_sme_or_sve, sve_fmaxnum) DO_ZPZZ_AH_FP(FABD, aa64_sme_or_sve, sve_fabd, sve_ah_fabd) -DO_ZPZZ_FP(FSCALE, aa64_sme_or_sve, sve_fscalbn) -DO_ZPZZ_FP(FDIV, aa64_sme_or_sve, sve_fdiv) -DO_ZPZZ_FP(FMULX, aa64_sme_or_sve, sve_fmulx) + +static gen_helper_gvec_4_ptr * const sve_fscalbn_zpzz_fns[4] =3D { + NULL, + gen_helper_sve_fscalbn_h, + gen_helper_sve_fscalbn_s, + gen_helper_sve_fscalbn_d, +}; +TRANS_FEAT(FSCALE, aa64_sme_or_sve, gen_gvec_fpst_arg_zpzz, + sve_fscalbn_zpzz_fns[a->esz], a) + +static gen_helper_gvec_4_ptr * const sve_fdiv_zpzz_fns[4] =3D { + NULL, + gen_helper_sve_fdiv_h, + gen_helper_sve_fdiv_s, + gen_helper_sve_fdiv_d, +}; +TRANS_FEAT(FDIV, aa64_sme_or_sve, gen_gvec_fpst_arg_zpzz, + sve_fdiv_zpzz_fns[a->esz], a) + +static gen_helper_gvec_4_ptr * const sve_fmulx_zpzz_fns[4] =3D { + NULL, + gen_helper_sve_fmulx_h, + gen_helper_sve_fmulx_s, + gen_helper_sve_fmulx_d, +}; +TRANS_FEAT(FMULX, aa64_sme_or_sve, gen_gvec_fpst_arg_zpzz, + sve_fmulx_zpzz_fns[a->esz], a) =20 static gen_helper_gvec_4_ptr * const sve2_famax_zpzz_fns[4] =3D { NULL, @@ -8057,9 +8074,33 @@ TRANS_FEAT_NONSTREAMING(HISTCNT, aa64_sve2, gen_gvec= _ool_arg_zpzz, TRANS_FEAT_NONSTREAMING(HISTSEG, aa64_sve2, gen_gvec_ool_arg_zzz, a->esz =3D=3D 0 ? gen_helper_sve2_histseg : NULL, = a, 0) =20 -DO_ZPZZ_FP(FADDP, aa64_sme_or_sve2, sve2_faddp_zpzz) -DO_ZPZZ_FP(FMAXNMP, aa64_sme_or_sve2, sve2_fmaxnmp_zpzz) -DO_ZPZZ_FP(FMINNMP, aa64_sme_or_sve2, sve2_fminnmp_zpzz) +static gen_helper_gvec_4_ptr * const sve_faddp_zpzz_fns[4] =3D { + NULL, + gen_helper_sve2_faddp_zpzz_h, + gen_helper_sve2_faddp_zpzz_s, + gen_helper_sve2_faddp_zpzz_d, +}; +TRANS_FEAT(FADDP, aa64_sme_or_sve2, gen_gvec_fpst_arg_zpzz, + sve_faddp_zpzz_fns[a->esz], a) + +static gen_helper_gvec_4_ptr * const sve_fmaxnmp_zpzz_fns[4] =3D { + NULL, + gen_helper_sve2_fmaxnmp_zpzz_h, + gen_helper_sve2_fmaxnmp_zpzz_s, + gen_helper_sve2_fmaxnmp_zpzz_d, +}; +TRANS_FEAT(FMAXNMP, aa64_sme_or_sve2, gen_gvec_fpst_arg_zpzz, + sve_fmaxnmp_zpzz_fns[a->esz], a) + +static gen_helper_gvec_4_ptr * const sve_fminnmp_zpzz_fns[4] =3D { + NULL, + gen_helper_sve2_fminnmp_zpzz_h, + gen_helper_sve2_fminnmp_zpzz_s, + gen_helper_sve2_fminnmp_zpzz_d, +}; +TRANS_FEAT(FMINNMP, aa64_sme_or_sve2, gen_gvec_fpst_arg_zpzz, + sve_fminnmp_zpzz_fns[a->esz], a) + DO_ZPZZ_AH_FP(FMAXP, aa64_sme_or_sve2, sve2_fmaxp_zpzz, sve2_ah_fmaxp_zpzz) DO_ZPZZ_AH_FP(FMINP, aa64_sme_or_sve2, sve2_fminp_zpzz, sve2_ah_fminp_zpzz) =20 --=20 2.43.0 From nobody Sat Jul 25 08:55:11 2026 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=1784659823; cv=none; d=zohomail.com; s=zohoarc; b=lfAaIZK6oP4U68kFCiZ/ZZc12fV2H5JVD6D5ismRzCXWnWKuZIhslatbSnUgY+vRueAFxDlJkmaI46AjitYQU3ohY8qOrcsafxXsqhBRvlzaUWl+ehD/1a8+1QpgF/1y/3eaAw5VTSRvWpg8ogzkzlPsLAGX3BUABqLVsVqOvfo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784659823; 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=Yr0+1uE3XRnQmsAuDrDRgd/cXfa470Vk1jdP14xyfUA=; b=bqJtOlMI3GKZTjHYQkNp+KL76//ocLWt3iir7ZmopxgaD05N8oReIYF67s/jUvVm4XP4uKslRZYnigTcAW9tp15piBuXP5N35CY3c+S8NUwWv3gXncM48xGB+Mw3Iwya0rWZjxMwVIxdF1nsVPJRXJvrY2t/KuoXYTv0b53Q+Js= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784659823764246.57336801627036; Tue, 21 Jul 2026 11:50:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wmFW6-0001Tv-JW; Tue, 21 Jul 2026 14:48:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wmFUj-00010n-Sa for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:15 -0400 Received: from mail-pj1-x1031.google.com ([2607:f8b0:4864:20::1031]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wmFUe-0006bO-8Z for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:09 -0400 Received: by mail-pj1-x1031.google.com with SMTP id 98e67ed59e1d1-38e08baf860so9293737a91.2 for ; Tue, 21 Jul 2026 11:47:03 -0700 (PDT) Received: from stoup.. ([32.140.233.50]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-13ce29e340esm41108094c88.5.2026.07.21.11.47.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jul 2026 11:47:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1784659622; x=1785264422; 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:content-type; bh=Yr0+1uE3XRnQmsAuDrDRgd/cXfa470Vk1jdP14xyfUA=; b=gw9X9uF96RvGGKSON7A6opiBJRAQ7MN4el7Ah+bTBy8OBH+rZwY+I2+8NJ4juoM9kc ku5Lo7phmgCYWR4OQIeRT3vPR0l7w3rNioLwu2jrswxg1XMTAoIlBzEDKZR9J+TKOIdT tsbKYvEQoE/lxaZk1Sb75cmFJ2INdDF0DwsLvVL4kcjXgpc3/N4AznY7vwQ6VEhWxKgr 4uFu19+Y/QMWhsESl+uvz46p8fPWCNhxu/F0k3+SkercPh7x2i2fp1NqayKcrE03aME5 +hItZTG+F9l4SMOJrMSZdeaHOQ1uPKn5TcjoW6OG0G70HWGW6KU6zL7fGIf7SgSNAKEH udZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784659622; x=1785264422; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=Yr0+1uE3XRnQmsAuDrDRgd/cXfa470Vk1jdP14xyfUA=; b=RTKtrAMSlocIWVy5Wtv8WMNH/LQibwv5cUJQ9BwER4YyDwfpV9lnDqsjx90OSIyNnF EtUsIZjIHFSlfyClRh9yBj6BVPrtdq0ZDZ0Zw++7LFvEwp4qOnQAadZUsAExJLaqNeum PUB5kEL2YUwnm+4kMEVWRstgt8sYZMNl1q2jvwz8rmlrqjk2OP6jY/jbCmxmkuc28Kt9 /zclZwpflcfs+DSv4sGtANnJSNuZZFYSUuZKAgjACITL/apw/8RpnjzFGXMXXpmlN+of uyly5RsUbnp7D1eUGVo26tju8rXfI0ds90garSRjizeqh15STbJ5h6Wh8J8Y67RdvQ6x q9Zg== X-Gm-Message-State: AOJu0Yw27WAudGvASoH8rvldY4uECWUC/Ma4pG0ds7NtVu/428pn8yR3 9tsCqeG4jCgEgFlsOFmkktaS2UZO7iisWF9A3a9iWv2oHTC2KL4xgrlnV7mfIGMxitKqOs1V7I/ vqmry X-Gm-Gg: AR+sD116WX3RqfL8DGFovLthOHjWxosE5QbDFapW7okJ3ixFq4WX8XLfkbIiaLYP+AK uS7OvRnRLvGMhNevWyBiMht02E5XtKb8Ckw0fltlAHnkdSHNQOfLEF/07SKMY6htU8SHhJ4kBOU ZlgZyJmJHi9lkIH5zn7/0ocoQRt5m0KQJWAm5/1fjj+bKjEEvFHMiaMy5Fr7dQnKe+6q0tGOWEn VH+oexqd80tXsGzrz2vvoLym+6xDacvdtQsdBm0quM4tc8+wticNWzeQkI9/AlcLz0quE08ye4d aqHA3g6MfxtGe9bqJXBwDnyn+RpsfN2S03PfvewNnnF0zhF6J49lXP4v9CDOqfXt5PwnAqTDmiO QMMriqjwjqQ6gxqzV1jyBzkb99JfhQH3rU1Zc2FgV9yyRohjv0RKZsLr+MVDZ0x7HpivtVdmqL/ y9OqSBqZU= X-Received: by 2002:a17:90b:5905:b0:381:23d5:693f with SMTP id 98e67ed59e1d1-38e4b534bedmr19326929a91.28.1784659622326; Tue, 21 Jul 2026 11:47:02 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH 02/20] target/arm: Remove DO_ZPZZ_FP_B16 from translate-sme.c Date: Tue, 21 Jul 2026 11:46:38 -0700 Message-ID: <20260721184656.530230-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260721184656.530230-1-richard.henderson@linaro.org> References: <20260721184656.530230-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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1031; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1031.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=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development 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: 1784659824127158500 Content-Type: text/plain; charset="utf-8" Expand the macro at each use site. Signed-off-by: Richard Henderson --- target/arm/tcg/translate-sve.c | 59 ++++++++++++++++++++++++++-------- 1 file changed, 46 insertions(+), 13 deletions(-) diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index ff6032a07f..e77d017656 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -4428,14 +4428,6 @@ TRANS_FEAT_NONSTREAMING(FTSMUL, aa64_sve, gen_gvec_f= pst_arg_zzz, s->fpcr_ah ? name##_ah_zpzz_fns[a->esz] : \ name##_zpzz_fns[a->esz], a) =20 -/* Similar, but for insns where sz =3D=3D 0 encodes bfloat16 */ -#define DO_ZPZZ_FP_B16(NAME, FEAT, name) \ - static gen_helper_gvec_4_ptr * const name##_zpzz_fns[4] =3D { \ - gen_helper_##name##_b16, gen_helper_##name##_h, \ - gen_helper_##name##_s, gen_helper_##name##_d \ - }; \ - TRANS_FEAT(NAME, FEAT, gen_gvec_fpst_arg_zpzz, name##_zpzz_fns[a->esz]= , a) - #define DO_ZPZZ_AH_FP_B16(NAME, FEAT, name, ah_name) \ static gen_helper_gvec_4_ptr * const name##_zpzz_fns[4] =3D { \ gen_helper_##name##_b16, gen_helper_##name##_h, \ @@ -4449,13 +4441,54 @@ TRANS_FEAT_NONSTREAMING(FTSMUL, aa64_sve, gen_gvec_= fpst_arg_zzz, s->fpcr_ah ? name##_ah_zpzz_fns[a->esz] : \ name##_zpzz_fns[a->esz], a) =20 -DO_ZPZZ_FP_B16(FADD_zpzz, aa64_sme_or_sve, sve_fadd) -DO_ZPZZ_FP_B16(FSUB_zpzz, aa64_sme_or_sve, sve_fsub) -DO_ZPZZ_FP_B16(FMUL_zpzz, aa64_sme_or_sve, sve_fmul) +static gen_helper_gvec_4_ptr * const sve_fadd_zpzz_fns[4] =3D { + gen_helper_sve_fadd_b16, + gen_helper_sve_fadd_h, + gen_helper_sve_fadd_s, + gen_helper_sve_fadd_d +}; +TRANS_FEAT(FADD_zpzz, aa64_sme_or_sve, gen_gvec_fpst_arg_zpzz, + sve_fadd_zpzz_fns[a->esz], a) + +static gen_helper_gvec_4_ptr * const sve_fsub_zpzz_fns[4] =3D { + gen_helper_sve_fsub_b16, + gen_helper_sve_fsub_h, + gen_helper_sve_fsub_s, + gen_helper_sve_fsub_d +}; +TRANS_FEAT(FSUB_zpzz, aa64_sme_or_sve, gen_gvec_fpst_arg_zpzz, + sve_fsub_zpzz_fns[a->esz], a) + +static gen_helper_gvec_4_ptr * const sve_fmul_zpzz_fns[4] =3D { + gen_helper_sve_fmul_b16, + gen_helper_sve_fmul_h, + gen_helper_sve_fmul_s, + gen_helper_sve_fmul_d +}; +TRANS_FEAT(FMUL_zpzz, aa64_sme_or_sve, gen_gvec_fpst_arg_zpzz, + sve_fmul_zpzz_fns[a->esz], a) + DO_ZPZZ_AH_FP_B16(FMIN_zpzz, aa64_sme_or_sve, sve_fmin, sve_ah_fmin) DO_ZPZZ_AH_FP_B16(FMAX_zpzz, aa64_sme_or_sve, sve_fmax, sve_ah_fmax) -DO_ZPZZ_FP_B16(FMINNM_zpzz, aa64_sme_or_sve, sve_fminnum) -DO_ZPZZ_FP_B16(FMAXNM_zpzz, aa64_sme_or_sve, sve_fmaxnum) + +static gen_helper_gvec_4_ptr * const sve_fmaxnum_fns[4] =3D { + gen_helper_sve_fmaxnum_b16, + gen_helper_sve_fmaxnum_h, + gen_helper_sve_fmaxnum_s, + gen_helper_sve_fmaxnum_d +}; +TRANS_FEAT(FMAXNM_zpzz, aa64_sme_or_sve, gen_gvec_fpst_arg_zpzz, + sve_fmaxnum_fns[a->esz], a) + +static gen_helper_gvec_4_ptr * const sve_fminnum_fns[4] =3D { + gen_helper_sve_fminnum_b16, + gen_helper_sve_fminnum_h, + gen_helper_sve_fminnum_s, + gen_helper_sve_fminnum_d +}; +TRANS_FEAT(FMINNM_zpzz, aa64_sme_or_sve, gen_gvec_fpst_arg_zpzz, + sve_fminnum_fns[a->esz], a) + DO_ZPZZ_AH_FP(FABD, aa64_sme_or_sve, sve_fabd, sve_ah_fabd) =20 static gen_helper_gvec_4_ptr * const sve_fscalbn_zpzz_fns[4] =3D { --=20 2.43.0 From nobody Sat Jul 25 08:55:11 2026 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=1784659976; cv=none; d=zohomail.com; s=zohoarc; b=RJdCYkjcpBbK1g4BIXOkP79UShxgB5F55O9sLV8KOfFFGQCCVUytdMK4XMpD+O7PFaOKTKBjZK5+pfN7t/5vD/SwH2BEonvU91RPOeptY/rPPDrQEmEJhDm1qg/1pOl0ToqUt58RNYRkVT2PxesggZ03N59wHP0JFblTXNywOl4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784659976; 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=2irtkmCXeSBot/ksE+dJpMF9mnBmRYCPessI916HB3E=; b=jojCklEA9LCq5cmL0xX1T8T1AzEER6YNBARakCob3O5L+AdxpDkWupyroy19p5x2BduW+W9P8qY17UA32uo97hUlmi9AvkqSKz5IfNW6A0vkfYt4MNRVpD9Lr6k72kFD9PHhXbaUeIz8Yk0ZEwRNmz2un5ctw6F484cGT/g7/QU= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178465997656316.674850913619593; Tue, 21 Jul 2026 11:52:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wmFW8-0001UG-Oo; Tue, 21 Jul 2026 14:48:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wmFUl-00010x-R0 for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:15 -0400 Received: from mail-pj1-x102c.google.com ([2607:f8b0:4864:20::102c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wmFUh-0006bc-QQ for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:10 -0400 Received: by mail-pj1-x102c.google.com with SMTP id 98e67ed59e1d1-38dfe7eb825so6603016a91.0 for ; Tue, 21 Jul 2026 11:47:05 -0700 (PDT) Received: from stoup.. ([32.140.233.50]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-13ce29e340esm41108094c88.5.2026.07.21.11.47.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jul 2026 11:47:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1784659624; x=1785264424; 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:content-type; bh=2irtkmCXeSBot/ksE+dJpMF9mnBmRYCPessI916HB3E=; b=JgoILgMeUddhX82PCyDCa7KKxBZICUgtl56sjnB3V5caZQ2NAaWyo/z6/sL0jM0bpX Z59pZbdR+rMfgEl+SitCbqTFRMqU2Dv3wlqNN65vCr3fAyY2zbFOUJw0+7aMOHBUOtpF Jn94KloLN00eu5TB4GA1Lw+X+ks6RC+vfrySS7aWvHLLfRCf/igdh3xsGZqMPMRu6oAa Gss91O6qgRDwbqx8YSYRH7loz5xIvIGZoCJd09ZbuZlCv6hUBzJjc0krBaehdYf3VCoa 9kJi2CWTKVcTYrceHlsX0/fYCYDW8sSBJMk8rCOQ+kz7QgRmnkNCxzNIwJo+4RoRKhll gVVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784659624; x=1785264424; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=2irtkmCXeSBot/ksE+dJpMF9mnBmRYCPessI916HB3E=; b=IlKh4tUrKxNwA3Ph4ARD+eYJIrRktKUISL8pEeTZf2Q8VWnS37zvZEijD1iqIgEbn/ mZwqX5/hXhWexcS/TFenLAtz3s0eGNzeyb3fw+wthOmaVhmGTKEZsHeGizct7NAOO+I1 ITkUVkHqt/jJSTe8Rt0t9/w+bsh0UdDU56Pyon4IthfF8Kbry3/BObSn+nWt6NKQJhHU GqcVNInEl0d/0XGEYKSXYr8PYVnumcD4+ZUwrj4wVqAzR8ef2gRIUh2NRFxv4FI+/+ij plHv48L3PVvglILOGwwgA45i+ux/MVthquK3KF9hn7y4W5Vr4VAXB85vdlcPqhsaLvKc oxJg== X-Gm-Message-State: AOJu0YwJunM51kuSaUjaOpO0HXForeYfk08E1B89NO0QkJlw0N5SznlW 5nOEOfRPOLYRqmHjucZIQJM1U/WYrKDAlAxoqUvgcGsq7c1unhbyqov3hSBuZ+ROOR/2tZjEq0G z3VOi X-Gm-Gg: AR+sD12S5U85I1NsTcPySCbs/NU2OXmlfc25eRk8/KX+wmuNNwJZwZCQ8A6vX02zcNL IbuIb1Kd6b2At4eUcHY1WCIVangaAh+fLb6cGJ7OkUAr9Li3TRbdxDiLg/79FLRIQ/uIrbpO8ee 3E5Kc9qcXcKp0bfY+96EPh+IRHPKhssjkvkODLhph0LhXr5xS3NBgeT0CTDlASU12ZvaXtkHwFR d/LOuIz9JH8T2IwQE4B8SfrdnA/E/KhTiFznaTbFMRxfdzFp8Qfy/D9MK8aXQLB6X360Skdsyq4 34c2Xh0lJLwCeug9CUMdPCURKlh1mt/2ZoRCaeq5hsYrMXu8pBKp7AcRW4CNtKoVaohchy/1TWr /hmAAY41otWYn10sG12kc54FLzLCIWYwxEriPLAlVeq2O8Cj1wb0v6+yj61rOOROA6PsSGT0Y4F Lx9Ignp0c= X-Received: by 2002:a17:90b:3c46:b0:38e:5ab7:ce9b with SMTP id 98e67ed59e1d1-38e5ab7d242mr17297489a91.21.1784659623515; Tue, 21 Jul 2026 11:47:03 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH 03/20] target/arm: Remove DO_ZPZZ_AH_FP from translate-sme.c Date: Tue, 21 Jul 2026 11:46:39 -0700 Message-ID: <20260721184656.530230-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260721184656.530230-1-richard.henderson@linaro.org> References: <20260721184656.530230-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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102c; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102c.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=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development 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: 1784659978387158500 Content-Type: text/plain; charset="utf-8" Expand the macro at each use site. Merge the two arrays and index by fpcr_ah. Signed-off-by: Richard Henderson --- target/arm/tcg/translate-sve.c | 41 +++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index e77d017656..59a4f9a59b 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -4415,19 +4415,6 @@ TRANS_FEAT_NONSTREAMING(FTSMUL, aa64_sve, gen_gvec_f= pst_arg_zzz, *** SVE Floating Point Arithmetic - Predicated Group */ =20 -#define DO_ZPZZ_AH_FP(NAME, FEAT, name, ah_name) \ - static gen_helper_gvec_4_ptr * const name##_zpzz_fns[4] =3D { \ - NULL, gen_helper_##name##_h, \ - gen_helper_##name##_s, gen_helper_##name##_d \ - }; \ - static gen_helper_gvec_4_ptr * const name##_ah_zpzz_fns[4] =3D { \ - NULL, gen_helper_##ah_name##_h, \ - gen_helper_##ah_name##_s, gen_helper_##ah_name##_d \ - }; \ - TRANS_FEAT(NAME, FEAT, gen_gvec_fpst_arg_zpzz, \ - s->fpcr_ah ? name##_ah_zpzz_fns[a->esz] : \ - name##_zpzz_fns[a->esz], a) - #define DO_ZPZZ_AH_FP_B16(NAME, FEAT, name, ah_name) \ static gen_helper_gvec_4_ptr * const name##_zpzz_fns[4] =3D { \ gen_helper_##name##_b16, gen_helper_##name##_h, \ @@ -4489,7 +4476,14 @@ static gen_helper_gvec_4_ptr * const sve_fminnum_fns= [4] =3D { TRANS_FEAT(FMINNM_zpzz, aa64_sme_or_sve, gen_gvec_fpst_arg_zpzz, sve_fminnum_fns[a->esz], a) =20 -DO_ZPZZ_AH_FP(FABD, aa64_sme_or_sve, sve_fabd, sve_ah_fabd) +static gen_helper_gvec_4_ptr * const sve_fabd_zpzz_fns[4][2] =3D { + { NULL, NULL }, + { gen_helper_sve_fabd_h, gen_helper_sve_ah_fabd_h }, + { gen_helper_sve_fabd_s, gen_helper_sve_ah_fabd_s }, + { gen_helper_sve_fabd_d, gen_helper_sve_ah_fabd_d }, +}; +TRANS_FEAT(FABD, aa64_sme_or_sve, gen_gvec_fpst_arg_zpzz, + sve_fabd_zpzz_fns[a->esz][s->fpcr_ah], a) =20 static gen_helper_gvec_4_ptr * const sve_fscalbn_zpzz_fns[4] =3D { NULL, @@ -8134,8 +8128,23 @@ static gen_helper_gvec_4_ptr * const sve_fminnmp_zpz= z_fns[4] =3D { TRANS_FEAT(FMINNMP, aa64_sme_or_sve2, gen_gvec_fpst_arg_zpzz, sve_fminnmp_zpzz_fns[a->esz], a) =20 -DO_ZPZZ_AH_FP(FMAXP, aa64_sme_or_sve2, sve2_fmaxp_zpzz, sve2_ah_fmaxp_zpzz) -DO_ZPZZ_AH_FP(FMINP, aa64_sme_or_sve2, sve2_fminp_zpzz, sve2_ah_fminp_zpzz) +static gen_helper_gvec_4_ptr * const sve_fmaxp_zpzz_fns[4][2] =3D { + { NULL, NULL }, + { gen_helper_sve2_fmaxp_zpzz_h, gen_helper_sve2_ah_fmaxp_zpzz_h }, + { gen_helper_sve2_fmaxp_zpzz_s, gen_helper_sve2_ah_fmaxp_zpzz_s }, + { gen_helper_sve2_fmaxp_zpzz_d, gen_helper_sve2_ah_fmaxp_zpzz_d }, +}; +TRANS_FEAT(FMAXP, aa64_sme_or_sve, gen_gvec_fpst_arg_zpzz, + sve_fmaxp_zpzz_fns[a->esz][s->fpcr_ah], a) + +static gen_helper_gvec_4_ptr * const sve_fminp_zpzz_fns[4][2] =3D { + { NULL, NULL }, + { gen_helper_sve2_fminp_zpzz_h, gen_helper_sve2_ah_fminp_zpzz_h }, + { gen_helper_sve2_fminp_zpzz_s, gen_helper_sve2_ah_fminp_zpzz_s }, + { gen_helper_sve2_fminp_zpzz_d, gen_helper_sve2_ah_fminp_zpzz_d }, +}; +TRANS_FEAT(FMINP, aa64_sme_or_sve, gen_gvec_fpst_arg_zpzz, + sve_fminp_zpzz_fns[a->esz][s->fpcr_ah], a) =20 static bool do_fmmla(DisasContext *s, arg_rrrr_esz *a, gen_helper_gvec_4_ptr *fn) --=20 2.43.0 From nobody Sat Jul 25 08:55:11 2026 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=1784659974; cv=none; d=zohomail.com; s=zohoarc; b=j055zewpAoKInY8nXGh/ZhIBNCeLc8PTGqjf4Kv6nb01zf5QbxSKtHA0TFXdFixGLZhCnWMY/3VhCREkxuwwCPQnvmod9wTLvT0txMA4rpD9s2BumxOWXlIsDQoagnl/V0+/ODoAy/K0U5t8jJhFOyTM81c2JAnGX5VDPF0Ga1U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784659974; 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=0NJwAVc7J/ldMukqkr5NkrL3BAWAUHUp5mV0fIXSfV4=; b=L5Lr2ON+z8qWdrhd8BmJguoo8jqJMQ2rpC2vpKlTOfMDHTeyhP2Fm64LnxCX6LH2ALeZky8alf8xEOw17LE8R+Uub5WLDGlVmlieuUBW2ysEc5g+g8mhmmN0Ax24d9Ei9aCv31HcMEqb87uFTwy0cBC9w6EIoLvTEFjRzFrWKuk= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784659974553904.4818404404871; Tue, 21 Jul 2026 11:52:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wmFW8-0001UH-P1; Tue, 21 Jul 2026 14:48:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wmFUm-00011C-Gg for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:15 -0400 Received: from mail-pj1-x1034.google.com ([2607:f8b0:4864:20::1034]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wmFUj-0006bx-Ke for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:12 -0400 Received: by mail-pj1-x1034.google.com with SMTP id 98e67ed59e1d1-38e88b60121so1865823a91.3 for ; Tue, 21 Jul 2026 11:47:05 -0700 (PDT) Received: from stoup.. ([32.140.233.50]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-13ce29e340esm41108094c88.5.2026.07.21.11.47.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jul 2026 11:47:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1784659625; x=1785264425; 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:content-type; bh=0NJwAVc7J/ldMukqkr5NkrL3BAWAUHUp5mV0fIXSfV4=; b=Tbcsw8zf00jzZ1e5q01namxOgwxSocyPaWTU8o+VBxBq7cyTXgO4Pyw7zEfTYe5bBQ eq1WP1DxsBtNdchh5Hmy6/ZhmaTcxjG+tLVNAC8cbaGOgZzR+pWL3qHNUZF7Q6QZkGNo YM7qUb1oxMeqUIg/RfF7M+Cdl5l0RNfhJIWN1n1go6wbICll1weOL7UtZpC+azRnwW01 KVYHdQ9WTSQOlPlQMeZCLtMArTFCqM3bYLQIgLOyZK/HnfkFMyoPHwx1xGM0TVToervi cX87DDigL9BHU/BomK79eQUXhLDUzodYnn5PK3E42fhq61XfsE+NadEtAdk9VU+odxtk MNig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784659625; x=1785264425; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=0NJwAVc7J/ldMukqkr5NkrL3BAWAUHUp5mV0fIXSfV4=; b=pP5RtbT8PaqXCpofZd6efAIgkZe0wX0FRVUyqFF21SUadknDgqBYLgOrUX5UGXnuWP n+10xQLHFseYvsCvzwuBSY205EO/FcHCfMy1amwfKYncS2tIwn3fZto5ynOVT/hHzOTd gINpnehOe3Iar2GfUI2aJivfVK3X+tHlBmVQVBa830pAZvfsniZrdnsDUNurhm3PyIAF 3RHybABRg3Exf/SlfGp4q0oHyFoCEG8g5hazlQu0V9dVC18jWjiwDbPHS1GA3LxmXX+j warwcjAOF8x7kXSm+UwRzMhJyancbJL8TOXL1mVROphvdFg/IAnrhBi96vTEcFVXSK2A AbCw== X-Gm-Message-State: AOJu0YxtGGpAYjHNTCBMszBlaTKwgQU4Jky+yWsjf1U9CjFRCaLuZjSr J0Q1lX3Nwny2mEXN2sOy8z37kyRN18NBXrYLNJIdctwHRO9svR0R5QGI7cyLlXDPszZ0cx7DTm7 bd65G X-Gm-Gg: AR+sD12Ad8zMMXBcl3I0Px0zQneL02cR6oZ1kiQRp0DsZ0urEdl9oFhfbGtZJ39+mo6 t5ekFRuPKcEKK+SokxL/5OA2xoO14WOHAMB7qKqapzRIxa26ZxvV/HgqUpe5v1YUg1pCk2wQn55 m9FjNEr/L2EnbMJzwZmXzZZZksxyOn4TR7JygVLeOpabv34I7E/CkPbGuHOk9N0C+DAYN3YYpZu pTxmtxKZByTpfPXqtSEZ1c+Isy7MD4Zq81ca1M77gbUvVdMx00BcUqlv7pFN+1F7IjCwreucn5e miyjZ3vO7jeuoupBgwIBnDmXxMTYXTef9E5PwAQqL+PkZ6TILyhnyH9IzWl8U7GIHAR/nbQntwX Tw+3TpIEyHyggPdxMBnDzamvVQSUpe88WPXUk8poZQ+ClFu7dRVuIhqWFa6cRopEDQxGqJPipl3 6T+oaEN4Y= X-Received: by 2002:a17:90b:562f:b0:380:7688:fbe9 with SMTP id 98e67ed59e1d1-38e4b41fb4cmr19885942a91.8.1784659624773; Tue, 21 Jul 2026 11:47:04 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH 04/20] target/arm: Remove DO_ZPZZ_AH_FP_B16 from translate-sme.c Date: Tue, 21 Jul 2026 11:46:40 -0700 Message-ID: <20260721184656.530230-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260721184656.530230-1-richard.henderson@linaro.org> References: <20260721184656.530230-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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1034; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1034.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: qemu development 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: 1784659976460158500 Content-Type: text/plain; charset="utf-8" Expand the macro at each use site. Merge the two arrays and index by fpcr_ah. Signed-off-by: Richard Henderson --- target/arm/tcg/translate-sve.c | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 59a4f9a59b..62610e0394 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -4415,19 +4415,6 @@ TRANS_FEAT_NONSTREAMING(FTSMUL, aa64_sve, gen_gvec_f= pst_arg_zzz, *** SVE Floating Point Arithmetic - Predicated Group */ =20 -#define DO_ZPZZ_AH_FP_B16(NAME, FEAT, name, ah_name) \ - static gen_helper_gvec_4_ptr * const name##_zpzz_fns[4] =3D { \ - gen_helper_##name##_b16, gen_helper_##name##_h, \ - gen_helper_##name##_s, gen_helper_##name##_d \ - }; \ - static gen_helper_gvec_4_ptr * const name##_ah_zpzz_fns[4] =3D { \ - gen_helper_##ah_name##_b16, gen_helper_##ah_name##_h, \ - gen_helper_##ah_name##_s, gen_helper_##ah_name##_d \ - }; \ - TRANS_FEAT(NAME, FEAT, gen_gvec_fpst_arg_zpzz, \ - s->fpcr_ah ? name##_ah_zpzz_fns[a->esz] : \ - name##_zpzz_fns[a->esz], a) - static gen_helper_gvec_4_ptr * const sve_fadd_zpzz_fns[4] =3D { gen_helper_sve_fadd_b16, gen_helper_sve_fadd_h, @@ -4455,8 +4442,23 @@ static gen_helper_gvec_4_ptr * const sve_fmul_zpzz_f= ns[4] =3D { TRANS_FEAT(FMUL_zpzz, aa64_sme_or_sve, gen_gvec_fpst_arg_zpzz, sve_fmul_zpzz_fns[a->esz], a) =20 -DO_ZPZZ_AH_FP_B16(FMIN_zpzz, aa64_sme_or_sve, sve_fmin, sve_ah_fmin) -DO_ZPZZ_AH_FP_B16(FMAX_zpzz, aa64_sme_or_sve, sve_fmax, sve_ah_fmax) +static gen_helper_gvec_4_ptr * const sve_fmin_fns[4][2] =3D { + { gen_helper_sve_fmin_b16, gen_helper_sve_ah_fmin_b16 }, + { gen_helper_sve_fmin_h, gen_helper_sve_ah_fmin_h }, + { gen_helper_sve_fmin_s, gen_helper_sve_ah_fmin_s }, + { gen_helper_sve_fmin_d, gen_helper_sve_ah_fmin_d }, +}; +TRANS_FEAT(FMIN_zpzz, aa64_sme_or_sve, gen_gvec_fpst_arg_zpzz, + sve_fmin_fns[a->esz][s->fpcr_ah], a) + +static gen_helper_gvec_4_ptr * const sve_fmax_fns[4][2] =3D { + { gen_helper_sve_fmax_b16, gen_helper_sve_ah_fmax_b16 }, + { gen_helper_sve_fmax_h, gen_helper_sve_ah_fmax_h }, + { gen_helper_sve_fmax_s, gen_helper_sve_ah_fmax_s }, + { gen_helper_sve_fmax_d, gen_helper_sve_ah_fmax_d }, +}; +TRANS_FEAT(FMAX_zpzz, aa64_sme_or_sve, gen_gvec_fpst_arg_zpzz, + sve_fmax_fns[a->esz][s->fpcr_ah], a) =20 static gen_helper_gvec_4_ptr * const sve_fmaxnum_fns[4] =3D { gen_helper_sve_fmaxnum_b16, --=20 2.43.0 From nobody Sat Jul 25 08:55:11 2026 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=1784659786; cv=none; d=zohomail.com; s=zohoarc; b=iTE9QNZkVJ5b46oEUjMav+PyoTdfuK7+AK4lgRF+gYWMT7g1r7gRLFdxHd/07o05XXmylo8L5kFNqZOvscVaUDJKDuutZ/uat34/NttRkq7Ysn5+CJp3cqrkZmRuevdSKjZF62BCeWI4AYw0FIeR5alM4qsvbAAwEvHyYCvWoiE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784659786; 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=spbqFsj4ef0lgeAb1xckcbK6UBZG5gECJFtg+qsB86g=; b=b3KMSwMQ5aXp7ucDMe74SNA076DofLkHpzF76yiSqWG6lyM+sV7xVU4n3OiFq1ifiKM/NFzmPnwYPjOc22n832WY7Xqo7MDjVxQLy5pHmmEJJaUohhDFbRuwQnpruk2dbYB+RHOppjcTABOq3OUkLULCfWgGu+Sy84SVbNDuXRY= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784659786606473.4145910374276; Tue, 21 Jul 2026 11:49:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wmFW6-0001Tw-Jt; Tue, 21 Jul 2026 14:48:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wmFUl-00010y-Qz for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:15 -0400 Received: from mail-pj1-x102c.google.com ([2607:f8b0:4864:20::102c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wmFUh-0006cB-Rn for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:11 -0400 Received: by mail-pj1-x102c.google.com with SMTP id 98e67ed59e1d1-38e3617ba36so6171786a91.3 for ; Tue, 21 Jul 2026 11:47:07 -0700 (PDT) Received: from stoup.. ([32.140.233.50]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-13ce29e340esm41108094c88.5.2026.07.21.11.47.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jul 2026 11:47:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1784659626; x=1785264426; 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:content-type; bh=spbqFsj4ef0lgeAb1xckcbK6UBZG5gECJFtg+qsB86g=; b=UA2xgm7A18tnil/kTX9GS8oyh7PYELjB8uGrT6XYcVRKyzGKvzfjE8sq9VbEqekO1U wExvUwg4oCLlJhX07tG/6P6/woSR3F1b7Fwv/Y8+WABTHYRqyPwyR5hDFSCySKMhMxXu EiGpLOwZco9XDOXGWY6HTtuVMntMN6/7NDG7ysCV2psm7fatoNQ5Q7soUhxepsFxLlqw o8yMqPRrN5Q36+8XcZHkU7H1MttrOSQ9B+LZdQFmdqEzcmOv4t5yovdE2HmJQEDqsZft 3dq1Ldck7552YaTESl30lfk/7Mv/hEeogBwl/dy7Jb7Wr15OwMjps25zlIElAYjVG9Zg 45ww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784659626; x=1785264426; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=spbqFsj4ef0lgeAb1xckcbK6UBZG5gECJFtg+qsB86g=; b=eyRrLh3lizCJZRGhZh3yKraztR6/pI/EWFrfj4PIRe2Wfx4uIBqXVtc08xYPK/MXhA M+3+paI6HoLSQX5YRNgu4RX+mmq9KdVkj8SjKyt8CyoIHDgBYglBHcdJyrlQts54eElB 0CSNVywjWH6gWwVTjd7G7lph4yn8bzgGgW05AIpxIEbQuB1aa/3fgR0Ch7AsEFxNM/nS W1gT1fHioXaqbjK+XtUKlJXVBZMC+kSihziSgUCHdUz7NmzxbG8cyG3/7zRY1Nj57EI0 eF/CQHfkXpMwg8LkPG+wQR6QVrd3OXZQHSAqNviiYFUwBJURSbjufYUdwhRyUS5kSG83 JCgg== X-Gm-Message-State: AOJu0YzIPKAlV+flykJ2j9u3/UD/61ynPr5aRhONgBCkYt8SnH5dPvDJ /2Iy5mramTuUhpAodTqb5lZYAODsbzyVBtE9HrXybWIZKhzEWLmRrofMYAmbCNwS/wGAXFo1glz i5UGj X-Gm-Gg: AR+sD11urV/Gd1mHRmc+jWU9+akH+3qqgUfSEmoLyTQrxaLRqxM3yqb8wIf3fdJ+YTC Z55l8GFU5Oy1mCDG1abUb4iKhI5VEKuavhHg4Lux7uYSI3rQkadERfALz/VoKevmVsNYjr8fih2 inbghrod1up2ELL3hZMTGC6JQ7lGu9ipVa0v4QnqeEu6drWIP+mzhdiGULrkG5O7Wy/MFUyqupw 5gMpuszeTfFlHRQQPRoZZ70hBohtjgh3lc0rAJtYUCAvbNTRf2YNkXXTUC0GHXX7HYHRh81r818 cfVDfJBbWGhBbzQat2NwrGn+/CaRT1X0+AZB4Pp6us6+WM5Z2Kjc0cKCGZGcdHivLTJUpkiQZ1C D098TmmjXYFl2ULUnDm8V//Przv8oB2+UWMb2CPc2jDtzlZ6SKbGcDjIfMsxB65SYaAUCuDWYrF Kqs2j3hNo= X-Received: by 2002:a17:90b:568c:b0:38e:a32e:5442 with SMTP id 98e67ed59e1d1-38ea32e57efmr804048a91.31.1784659626071; Tue, 21 Jul 2026 11:47:06 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH 05/20] target/arm: Split decode of BFloat SVE FADD, FSUB, FMUL, FMIN*, FMAX* Date: Tue, 21 Jul 2026 11:46:41 -0700 Message-ID: <20260721184656.530230-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260721184656.530230-1-richard.henderson@linaro.org> References: <20260721184656.530230-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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102c; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102c.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: qemu development 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: 1784659787845158500 Content-Type: text/plain; charset="utf-8" Split decode so that feature detection can be handled external to gen_gvec_fpst_arg_zpzz Signed-off-by: Richard Henderson --- target/arm/tcg/translate-sve.c | 32 ++++++++++++++++++---------- target/arm/tcg/sve.decode | 38 +++++++++++++++++++++++++++------- 2 files changed, 52 insertions(+), 18 deletions(-) diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 62610e0394..919ff1b217 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -412,10 +412,6 @@ static bool gen_gvec_fpst_zzzp(DisasContext *s, gen_he= lper_gvec_4_ptr *fn, static bool gen_gvec_fpst_arg_zpzz(DisasContext *s, gen_helper_gvec_4_ptr = *fn, arg_rprr_esz *a) { - /* These insns use MO_8 to encode BFloat16. */ - if (a->esz =3D=3D MO_8 && !dc_isar_feature(aa64_sve_b16b16, s)) { - return false; - } return gen_gvec_fpst_zzzp(s, fn, a->rd, a->rn, a->rm, a->pg, 0, a->esz =3D=3D MO_16 ? FPST_A64_F16 : FPST_A6= 4); } @@ -4416,65 +4412,79 @@ TRANS_FEAT_NONSTREAMING(FTSMUL, aa64_sve, gen_gvec_= fpst_arg_zzz, */ =20 static gen_helper_gvec_4_ptr * const sve_fadd_zpzz_fns[4] =3D { - gen_helper_sve_fadd_b16, + NULL, gen_helper_sve_fadd_h, gen_helper_sve_fadd_s, gen_helper_sve_fadd_d }; +TRANS_FEAT(BFADD_zpzz, aa64_sve_b16b16, gen_gvec_fpst_arg_zpzz, + gen_helper_sve_fadd_b16, a) TRANS_FEAT(FADD_zpzz, aa64_sme_or_sve, gen_gvec_fpst_arg_zpzz, sve_fadd_zpzz_fns[a->esz], a) =20 static gen_helper_gvec_4_ptr * const sve_fsub_zpzz_fns[4] =3D { - gen_helper_sve_fsub_b16, + NULL, gen_helper_sve_fsub_h, gen_helper_sve_fsub_s, gen_helper_sve_fsub_d }; +TRANS_FEAT(BFSUB_zpzz, aa64_sve_b16b16, gen_gvec_fpst_arg_zpzz, + gen_helper_sve_fsub_b16, a) TRANS_FEAT(FSUB_zpzz, aa64_sme_or_sve, gen_gvec_fpst_arg_zpzz, sve_fsub_zpzz_fns[a->esz], a) =20 static gen_helper_gvec_4_ptr * const sve_fmul_zpzz_fns[4] =3D { - gen_helper_sve_fmul_b16, + NULL, gen_helper_sve_fmul_h, gen_helper_sve_fmul_s, gen_helper_sve_fmul_d }; +TRANS_FEAT(BFMUL_zpzz, aa64_sve_b16b16, gen_gvec_fpst_arg_zpzz, + gen_helper_sve_fmul_b16, a) TRANS_FEAT(FMUL_zpzz, aa64_sme_or_sve, gen_gvec_fpst_arg_zpzz, sve_fmul_zpzz_fns[a->esz], a) =20 static gen_helper_gvec_4_ptr * const sve_fmin_fns[4][2] =3D { - { gen_helper_sve_fmin_b16, gen_helper_sve_ah_fmin_b16 }, + { NULL, NULL }, { gen_helper_sve_fmin_h, gen_helper_sve_ah_fmin_h }, { gen_helper_sve_fmin_s, gen_helper_sve_ah_fmin_s }, { gen_helper_sve_fmin_d, gen_helper_sve_ah_fmin_d }, }; +TRANS_FEAT(BFMIN_zpzz, aa64_sve_b16b16, gen_gvec_fpst_arg_zpzz, + s->fpcr_ah ? gen_helper_sve_ah_fmin_b16 : gen_helper_sve_fmin_b= 16, a) TRANS_FEAT(FMIN_zpzz, aa64_sme_or_sve, gen_gvec_fpst_arg_zpzz, sve_fmin_fns[a->esz][s->fpcr_ah], a) =20 static gen_helper_gvec_4_ptr * const sve_fmax_fns[4][2] =3D { - { gen_helper_sve_fmax_b16, gen_helper_sve_ah_fmax_b16 }, + { NULL, NULL }, { gen_helper_sve_fmax_h, gen_helper_sve_ah_fmax_h }, { gen_helper_sve_fmax_s, gen_helper_sve_ah_fmax_s }, { gen_helper_sve_fmax_d, gen_helper_sve_ah_fmax_d }, }; +TRANS_FEAT(BFMAX_zpzz, aa64_sve_b16b16, gen_gvec_fpst_arg_zpzz, + s->fpcr_ah ? gen_helper_sve_ah_fmax_b16 : gen_helper_sve_fmax_b= 16, a) TRANS_FEAT(FMAX_zpzz, aa64_sme_or_sve, gen_gvec_fpst_arg_zpzz, sve_fmax_fns[a->esz][s->fpcr_ah], a) =20 static gen_helper_gvec_4_ptr * const sve_fmaxnum_fns[4] =3D { - gen_helper_sve_fmaxnum_b16, + NULL, gen_helper_sve_fmaxnum_h, gen_helper_sve_fmaxnum_s, gen_helper_sve_fmaxnum_d }; +TRANS_FEAT(BFMAXNM_zpzz, aa64_sve_b16b16, gen_gvec_fpst_arg_zpzz, + gen_helper_sve_fmaxnum_b16, a) TRANS_FEAT(FMAXNM_zpzz, aa64_sme_or_sve, gen_gvec_fpst_arg_zpzz, sve_fmaxnum_fns[a->esz], a) =20 static gen_helper_gvec_4_ptr * const sve_fminnum_fns[4] =3D { - gen_helper_sve_fminnum_b16, + NULL, gen_helper_sve_fminnum_h, gen_helper_sve_fminnum_s, gen_helper_sve_fminnum_d }; +TRANS_FEAT(BFMINNM_zpzz, aa64_sve_b16b16, gen_gvec_fpst_arg_zpzz, + gen_helper_sve_fminnum_b16, a) TRANS_FEAT(FMINNM_zpzz, aa64_sme_or_sve, gen_gvec_fpst_arg_zpzz, sve_fminnum_fns[a->esz], a) =20 diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index bdc2b7f0c0..07dac681ac 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -159,6 +159,9 @@ @rd_pg4_rn_rm ........ esz:2 . rm:5 .. pg:4 rn:5 rd:5 &rprr_esz @pd_pg_rn_rm ........ esz:2 . rm:5 ... pg:3 rn:5 . rd:4 &rprr_esz =20 +@rdn_pg_rm_e0 ........ .. ... ... ... pg:3 rm:5 rd:5 \ + &rprr_esz esz=3D0 rn=3D%reg_movprfx + # Three register operand, with governing predicate, vector element size @rda_pg_rn_rm ........ esz:2 . rm:5 ... pg:3 rn:5 rd:5 \ &rprrr_esz ra=3D%reg_movprfx @@ -1163,14 +1166,35 @@ FRSQRTS 01100101 .. 0 ..... 000 111 ..... .= .... @rd_rn_rm ### SVE FP Arithmetic Predicated Group =20 # SVE floating-point arithmetic (predicated) -FADD_zpzz 01100101 .. 00 0000 100 ... ..... ..... @rdn_pg_rm -FSUB_zpzz 01100101 .. 00 0001 100 ... ..... ..... @rdn_pg_rm -FMUL_zpzz 01100101 .. 00 0010 100 ... ..... ..... @rdn_pg_rm +{ + BFADD_zpzz 01100101 00 00 0000 100 ... ..... ..... @rdn_pg_rm_e0 + FADD_zpzz 01100101 .. 00 0000 100 ... ..... ..... @rdn_pg_rm +} +{ + BFSUB_zpzz 01100101 00 00 0001 100 ... ..... ..... @rdn_pg_rm_e0 + FSUB_zpzz 01100101 .. 00 0001 100 ... ..... ..... @rdn_pg_rm +} +{ + BFMUL_zpzz 01100101 00 00 0010 100 ... ..... ..... @rdn_pg_rm_e0 + FMUL_zpzz 01100101 .. 00 0010 100 ... ..... ..... @rdn_pg_rm +} FSUB_zpzz 01100101 .. 00 0011 100 ... ..... ..... @rdm_pg_rn # FS= UBR -FMAXNM_zpzz 01100101 .. 00 0100 100 ... ..... ..... @rdn_pg_rm -FMINNM_zpzz 01100101 .. 00 0101 100 ... ..... ..... @rdn_pg_rm -FMAX_zpzz 01100101 .. 00 0110 100 ... ..... ..... @rdn_pg_rm -FMIN_zpzz 01100101 .. 00 0111 100 ... ..... ..... @rdn_pg_rm +{ + BFMAXNM_zpzz 01100101 00 00 0100 100 ... ..... ..... @rdn_pg_rm_e0 + FMAXNM_zpzz 01100101 .. 00 0100 100 ... ..... ..... @rdn_pg_rm +} +{ + BFMINNM_zpzz 01100101 00 00 0101 100 ... ..... ..... @rdn_pg_rm_e0 + FMINNM_zpzz 01100101 .. 00 0101 100 ... ..... ..... @rdn_pg_rm +} +{ + BFMAX_zpzz 01100101 00 00 0110 100 ... ..... ..... @rdn_pg_rm_e0 + FMAX_zpzz 01100101 .. 00 0110 100 ... ..... ..... @rdn_pg_rm +} +{ + BFMIN_zpzz 01100101 00 00 0111 100 ... ..... ..... @rdn_pg_rm_e0 + FMIN_zpzz 01100101 .. 00 0111 100 ... ..... ..... @rdn_pg_rm +} FABD 01100101 .. 00 1000 100 ... ..... ..... @rdn_pg_rm FSCALE 01100101 .. 00 1001 100 ... ..... ..... @rdn_pg_rm FMULX 01100101 .. 00 1010 100 ... ..... ..... @rdn_pg_rm --=20 2.43.0 From nobody Sat Jul 25 08:55:11 2026 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=1784659997; cv=none; d=zohomail.com; s=zohoarc; b=iatwMbB1CduqaIdJWQ7yCgui41Dmfs8E1o40uto4w4KANm3eupJPX8wyb17CeydNzCqni90DgWw5hRdOUp++oM4eJnU+iPfsjA4CTNQP/hvrpueLQpzqN+/Clv2+BAoeYhqxzkCpJXnDuOPIjSAj2yQHaJanyzSRRAG1mxumoVQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784659997; 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=NDgsrg/XkVdVwBY/tNiDUZOq6w7K8FLPP7xWC9cjtnY=; b=M9flFJMDjak26brj7F9nclMHIalv9xmgFYhornwBn9SWIwpQD3/EJUQ9aiTyPkscEzKZP2BgFK06N83JbxftlIJqZKhOBykMsftlIuuf2ihEHwITNB39LsCeikfvKAtwCDMOqhbhcugGre54Un/KGxazXALuJStKbHpBST0ZBB0= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784659997934501.66365299405015; Tue, 21 Jul 2026 11:53:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wmFWV-0001X5-PR; Tue, 21 Jul 2026 14:49:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wmFUm-00011F-Kl for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:15 -0400 Received: from mail-pj1-x1035.google.com ([2607:f8b0:4864:20::1035]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wmFUj-0006ca-L7 for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:12 -0400 Received: by mail-pj1-x1035.google.com with SMTP id 98e67ed59e1d1-384c94c9414so7079495a91.3 for ; Tue, 21 Jul 2026 11:47:08 -0700 (PDT) Received: from stoup.. ([32.140.233.50]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-13ce29e340esm41108094c88.5.2026.07.21.11.47.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jul 2026 11:47:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1784659628; x=1785264428; 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:content-type; bh=NDgsrg/XkVdVwBY/tNiDUZOq6w7K8FLPP7xWC9cjtnY=; b=eG6qqm6WIECvgGUFIU3y+at9164D2d2YIQ2eaAviZ6hfugAOfmcgXIX7qeGBVFkW69 js+ZYdmVTZaOXeSj8bIa5/VFgasyqD+NrF6ELOR7DvyeYWtZrrWHoZ8udZ4TEzb0sClb SLukyUN/krZ10McS/vUy3efK4ZcNLSv7gsc0Khgnb8U/GMGVgyinP7Qr/MxaHUcSZDTL zWiWFieZwGrEVLa2NJtsdKIX8PmpvepUzNjNHK5MQK6CkluoY0G8w30kGCx8tbUM9169 6wBfe5sAyfb1YiH4YWey008/d8GUcvtXccVZPXqZy+qpugUfC9GJLn9yYc9NKCnHKM9W 6N6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784659628; x=1785264428; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=NDgsrg/XkVdVwBY/tNiDUZOq6w7K8FLPP7xWC9cjtnY=; b=VASn5yQTPw5wiqlgcSUbqPyE0TcOiEtsZPUpPUYZofNkMP9R0M+R46E3ukga5Y5Q2c DudksAHrN7ETizstprHCC7OhPIObV9nC1xYvoKh8q9NqQpsqRM3hYn/MomZEYBDGdFcV mqIW3fEY2imkFKI4qhksEwS4VzqJFpFwK68uDs75Jj0gK5y7sKgurjMhgJpfrAiZYsqA LAVLhHiwa8CUiL9WxvTznQi84s4bB3g4LYpiOl35nfVfHs8N0qdkTHJqcA4xz9WSonEn fumpxJQbt6s5MdcsOXkLp9JydWvU04lpUUUa5HNuUzzCuMkzc3uIrlYhXVImN/4z9jbY qgnA== X-Gm-Message-State: AOJu0YyAosW4sIMndLoizDQahwLIL2Z4thWgDUTbk0j4qigcpK786sIK 7CcvH/Fhii5qEOX7i9ElEWJw2u2SzkC+2Hl4sFMz6Myy1XdJdNaFEcvWOg3z/PRVhksByHmbYyM UqfHx X-Gm-Gg: AR+sD11qo4r6dp+n9DlT7LsTR7lkw21rqg7sv5VX0IcZ80fHdUjWPFN8wDesj8aGz/E +WlQTd1zLQreqGoolPyAxu4WqWQEJVkSjRfsIvQxaoKQClpfGds/6ImIuXa8Ycju/ep2zkNPgiz QZ9VzqJQPnzIMzdwI35kLRkmclT8GUkM2m3rEkPZVAvSRh80DznPeT++RWYZ2flcpONrH/dR+ZE EKp9E+D45meTmIDFgIq4qKOzcSfWzazvp3oSu01Fyvtd3wtGAs+oFZoR8y5BTtuSv5eylBdsZNO MhB12PR25uvDipLImTjNQj+Z+7Ik7++sECP+pZXlpX7VveOP8sL8OhrvgtwK14bi+EfeuIuxi4V fsb+dNBzlt8Kch1b045NlhD4Dqwt2T7JeSYRg2QGoNc83JVK1U+IZnmGmbU7F00wZnaEhgITCQv XUnwAn+mB0EXMABtb/kQ== X-Received: by 2002:a17:90b:2244:b0:380:f389:447b with SMTP id 98e67ed59e1d1-38e4b402565mr17622996a91.11.1784659627567; Tue, 21 Jul 2026 11:47:07 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH 06/20] target/arm: Implement SVE BFSCALE Date: Tue, 21 Jul 2026 11:46:42 -0700 Message-ID: <20260721184656.530230-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260721184656.530230-1-richard.henderson@linaro.org> References: <20260721184656.530230-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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1035; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1035.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=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development 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: 1784659998492158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/cpu-features.h | 5 +++++ target/arm/tcg/helper-sve-defs.h | 2 ++ target/arm/tcg/sve_helper.c | 1 + target/arm/tcg/translate-sve.c | 2 ++ target/arm/tcg/sve.decode | 5 ++++- 5 files changed, 14 insertions(+), 1 deletion(-) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index e444397a47..76859c1f74 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1580,6 +1580,11 @@ static inline bool isar_feature_aa64_sve_b16b16(cons= t ARMISARegisters *id) return FIELD_EX64_IDREG(id, ID_AA64ZFR0, B16B16); } =20 +static inline bool isar_feature_aa64_sve_bfscale(const ARMISARegisters *id) +{ + return FIELD_EX64_IDREG(id, ID_AA64ZFR0, B16B16) >=3D 2; +} + static inline bool isar_feature_aa64_ssve_fexpa(const ARMISARegisters *id) { return FIELD_EX64_IDREG(id, ID_AA64SMFR0, SFEXPA); diff --git a/target/arm/tcg/helper-sve-defs.h b/target/arm/tcg/helper-sve-d= efs.h index 19bd936f6e..f78e77662d 100644 --- a/target/arm/tcg/helper-sve-defs.h +++ b/target/arm/tcg/helper-sve-defs.h @@ -1303,6 +1303,8 @@ DEF_HELPER_FLAGS_6(sve_ah_fabd_s, TCG_CALL_NO_RWG, DEF_HELPER_FLAGS_6(sve_ah_fabd_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, fpst, i32) =20 +DEF_HELPER_FLAGS_6(sve_fscalbn_b16, TCG_CALL_NO_RWG, + void, ptr, ptr, ptr, ptr, fpst, i32) DEF_HELPER_FLAGS_6(sve_fscalbn_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, ptr, fpst, i32) DEF_HELPER_FLAGS_6(sve_fscalbn_s, TCG_CALL_NO_RWG, diff --git a/target/arm/tcg/sve_helper.c b/target/arm/tcg/sve_helper.c index ac96b18784..8389dce629 100644 --- a/target/arm/tcg/sve_helper.c +++ b/target/arm/tcg/sve_helper.c @@ -4827,6 +4827,7 @@ DO_ZPZZ_FP(sve_ah_fabd_h, uint16_t, H1_2, ah_abd_h) DO_ZPZZ_FP(sve_ah_fabd_s, uint32_t, H1_4, ah_abd_s) DO_ZPZZ_FP(sve_ah_fabd_d, uint64_t, H1_8, ah_abd_d) =20 +DO_ZPZZ_FP(sve_fscalbn_b16, int16_t, H1_2, bfloat16_scalbn) DO_ZPZZ_FP(sve_fscalbn_h, int16_t, H1_2, float16_scalbn) DO_ZPZZ_FP(sve_fscalbn_s, int32_t, H1_4, float32_scalbn) DO_ZPZZ_FP(sve_fscalbn_d, int64_t, H1_8, scalbn_d) diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 919ff1b217..52f370e47e 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -4505,6 +4505,8 @@ static gen_helper_gvec_4_ptr * const sve_fscalbn_zpzz= _fns[4] =3D { }; TRANS_FEAT(FSCALE, aa64_sme_or_sve, gen_gvec_fpst_arg_zpzz, sve_fscalbn_zpzz_fns[a->esz], a) +TRANS_FEAT(BFSCALE, aa64_sve_bfscale, gen_gvec_fpst_arg_zpzz, + gen_helper_sve_fscalbn_b16, a) =20 static gen_helper_gvec_4_ptr * const sve_fdiv_zpzz_fns[4] =3D { NULL, diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index 07dac681ac..ed19ae237f 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -1196,7 +1196,10 @@ FSUB_zpzz 01100101 .. 00 0011 100 ... ..... ..= ... @rdm_pg_rn # FSUBR FMIN_zpzz 01100101 .. 00 0111 100 ... ..... ..... @rdn_pg_rm } FABD 01100101 .. 00 1000 100 ... ..... ..... @rdn_pg_rm -FSCALE 01100101 .. 00 1001 100 ... ..... ..... @rdn_pg_rm +{ + BFSCALE 01100101 00 00 1001 100 ... ..... ..... @rdn_pg_rm_e0 + FSCALE 01100101 .. 00 1001 100 ... ..... ..... @rdn_pg_rm +} FMULX 01100101 .. 00 1010 100 ... ..... ..... @rdn_pg_rm FDIV 01100101 .. 00 1100 100 ... ..... ..... @rdm_pg_rn # FD= IVR FDIV 01100101 .. 00 1101 100 ... ..... ..... @rdn_pg_rm --=20 2.43.0 From nobody Sat Jul 25 08:55:11 2026 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=1784660024; cv=none; d=zohomail.com; s=zohoarc; b=T1z9MNqQ8eoBS3202ZbzZkecm8qMIRmlUbdHhpkg2i9V7feBVOg8SFiwSHKyOjWkj9R2JWh20mav4EjrRaU5i/U/B2QRx6Y25gQk7uGH4CKmMCSKhiNdrzNgj1vlM5lIwA+TDcMLbfHA+JJHQT0tZpJZl01QHyuXe+nOstEN3dQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784660024; 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=4c42GVS/UTX2L7NnqJ/GB056XfIjiufEO7avanLBis0=; b=bGseYk94TBLqOgCLjemm3bmYrgvlzxFdeNUSOA4hdaE5t6kbFflN8IxiArMq5kKpVH6mSwa51WgevJ23CNNZtBGqPJWvf7GkEuCrqkzgYH/LzYTe8k/roUS8cyWr0HnflaMYaMRRjJEvv5zeSGLMjUJlU28Bvf7w+H/urxqEPrM= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784660024873122.34476526372396; Tue, 21 Jul 2026 11:53:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wmFWm-0001zz-5z; Tue, 21 Jul 2026 14:49:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wmFUo-00011s-19 for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:15 -0400 Received: from mail-pj1-x102c.google.com ([2607:f8b0:4864:20::102c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wmFUk-0006ck-2q for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:13 -0400 Received: by mail-pj1-x102c.google.com with SMTP id 98e67ed59e1d1-38125cebfdaso9620743a91.1 for ; Tue, 21 Jul 2026 11:47:09 -0700 (PDT) Received: from stoup.. ([32.140.233.50]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-13ce29e340esm41108094c88.5.2026.07.21.11.47.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jul 2026 11:47:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1784659629; x=1785264429; 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:content-type; bh=4c42GVS/UTX2L7NnqJ/GB056XfIjiufEO7avanLBis0=; b=uHcwTke7FB35Ho5iJOvMOFzzcWLc0Evndp0OTeKoevWtTDdL9qHjPZvosCX5s+serp DyI++AASUdiMUD2zVsJz0OZkUJzwWrbhexGe0wihuc5fsz8gvxCCbCIIctmf+gAZqTUa 6RpVTRgxY0Q4BBo1RD1UF4X5XYOwlO/CNX5QvL/j2ubrWduV4MuNJXhrNaUrlE7eUQCG D82OYjA8NdoaTi0FSc/DDOGNV/5g+XneKB5y4l0+uIzpYR6MWvvfTBh+wk6apHboSwqa GFeVnK1/KCxXpYbQlDji3MRdQDGz5eIgnpiVQhFnSp5f/YfYVPScCSxRdEAxD9k5JzbZ iKaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784659629; x=1785264429; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=4c42GVS/UTX2L7NnqJ/GB056XfIjiufEO7avanLBis0=; b=KKEMHvOhGRK1QY5jLLeqBrllYVDpscrw5qbwsU8A8cVkmkoHgB9c5nyOE2UJEQ9m8d 42WuZNty8XSU6nTj2/gWMgOnC+nlvgOdTedspAxwAZVy20nMH/IPhhRaICk65x5byf6y vt6walA4+WEF3aWlNxsU0vQXR6Z38+M/Nm4PNgnDdgcZzbhPfkETJ5Oi02X3cUfVS6xA B8bFJ6KEaaDRkrDpFYx2I5GDxk8OVoEMk4jHdP0P9X2OW6qEsW7KOuhzQzD1YUpPUVUy PMw/04hJUL7thjrsgDKdRdvbv9WFUSl5+x9YmsJAA6q+/sm0wYSaXf5FZqV6LJhWD8lP GdKA== X-Gm-Message-State: AOJu0Yzo7XM77hKrkqdziLEz4NR6M8qwFl4z/C2CKTla9ELdhFMIRZ86 kVc09Q4qwQ11VD+A5wGNgWD8X/vV3H0ivlWaSSVKaQGevD2lzqvk/1aJC/CTTX2ozHHCbMbG8/O SBIAa X-Gm-Gg: AR+sD10b1DLYdiKwkXFDA5Uh0LnX30QCdTNjRJ4Wy12MDegLf3hHhi/LmduEfpe7tCT OwWaXLbXnT24cwb+PdS45RTmdN9wQcq+mOlepmWAT3+ZdQZyexvJ183G0yzQG5GeWY7zl/0kxFQ cwdHbUd709xeydyQlVUr1pDeU6WCOH6f6/O/a8clzU7gVgco0KLUAp/1YrVkZcIgJT9uRUrE6M0 ZFN+Mf9E+OfBkgE4MElw8sRSeIPJU3LZO/KQImXnf/ur86y6tGJlAzX0fNKFU98+H0uXtGXRVul S3Pen7xXuNp8C+ubfTnWSSdDqCRQNQxFEU69x752sa5fvyu4CXT2e6ulSrCihS15OOQdNYEj4+A hTIKkov/1QGQ+gNvbSI8xID2gCbNuFBkCAXCg8Ig6JZQ/UDCwIqiJrPZ/Yky9R0EEFqz4vDP1V0 //lA/cOqs= X-Received: by 2002:a17:90b:57ee:b0:38d:f096:a1dc with SMTP id 98e67ed59e1d1-38e4b454a20mr20450143a91.11.1784659628791; Tue, 21 Jul 2026 11:47:08 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH 07/20] target/arm: Implement SME BFSCALE Date: Tue, 21 Jul 2026 11:46:43 -0700 Message-ID: <20260721184656.530230-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260721184656.530230-1-richard.henderson@linaro.org> References: <20260721184656.530230-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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102c; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102c.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: qemu development 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: 1784660026652158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/cpu-features.h | 5 +++++ target/arm/tcg/helper-a64-defs.h | 1 + target/arm/tcg/translate-sme.c | 4 ++++ target/arm/tcg/vec_helper64.c | 1 + target/arm/tcg/sme.decode | 20 ++++++++++++++++---- 5 files changed, 27 insertions(+), 4 deletions(-) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 76859c1f74..b29cd49020 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1872,6 +1872,11 @@ static inline bool isar_feature_aa64_sme_tmop_f8f32(= const ARMISARegisters *id) return isar_feature_aa64_sme_tmop(id) && isar_feature_aa64_sme_f8f32(i= d); } =20 +static inline bool isar_feature_aa64_sme2_sve_bfscale(const ARMISARegister= s *id) +{ + return isar_feature_aa64_sme2(id) && isar_feature_aa64_sve_bfscale(id); +} + /* * Feature tests for "does this exist in either 32-bit or 64-bit?" */ diff --git a/target/arm/tcg/helper-a64-defs.h b/target/arm/tcg/helper-a64-d= efs.h index 0e56e00f45..582d160850 100644 --- a/target/arm/tcg/helper-a64-defs.h +++ b/target/arm/tcg/helper-a64-defs.h @@ -152,6 +152,7 @@ DEF_HELPER_FLAGS_5(gvec_famin_s, TCG_CALL_NO_RWG, void,= ptr, ptr, ptr, fpst, i32 DEF_HELPER_FLAGS_5(gvec_famax_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, fps= t, i32) DEF_HELPER_FLAGS_5(gvec_famin_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, fps= t, i32) =20 +DEF_HELPER_FLAGS_5(gvec_fscale_b16, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, = fpst, i32) DEF_HELPER_FLAGS_5(gvec_fscale_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, fp= st, i32) DEF_HELPER_FLAGS_5(gvec_fscale_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, fp= st, i32) DEF_HELPER_FLAGS_5(gvec_fscale_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, fp= st, i32) diff --git a/target/arm/tcg/translate-sme.c b/target/arm/tcg/translate-sme.c index 463754b057..d28574a8cf 100644 --- a/target/arm/tcg/translate-sme.c +++ b/target/arm/tcg/translate-sme.c @@ -890,6 +890,10 @@ static gen_helper_gvec_3_ptr * const f_vector_fscale[4= ] =3D { }; TRANS_FEAT(FSCALE_n1, aa64_sme2_f8cvt, do_zzz_n1_fpst, a, f_vector_fscale[= a->esz]) TRANS_FEAT(FSCALE_nn, aa64_sme2_f8cvt, do_zzz_nn_fpst, a, f_vector_fscale[= a->esz]) +TRANS_FEAT(BFSCALE_n1, aa64_sme2_sve_bfscale, do_zzz_n1_fpst, a, + gen_helper_gvec_fscale_b16) +TRANS_FEAT(BFSCALE_nn, aa64_sme2_sve_bfscale, do_zzz_nn_fpst, a, + gen_helper_gvec_fscale_b16) =20 static gen_helper_gvec_3_ptr * const f_vector_fmul[4] =3D { NULL, diff --git a/target/arm/tcg/vec_helper64.c b/target/arm/tcg/vec_helper64.c index d8b25b868e..8879969350 100644 --- a/target/arm/tcg/vec_helper64.c +++ b/target/arm/tcg/vec_helper64.c @@ -179,6 +179,7 @@ DO_3OP(gvec_famin_s, float32_famin, float32) DO_3OP(gvec_famax_d, float64_famax, float64) DO_3OP(gvec_famin_d, float64_famin, float64) =20 +DO_3OP(gvec_fscale_b16, bfloat16_scalbn, int16_t) DO_3OP(gvec_fscale_h, float16_scalbn, int16_t) DO_3OP(gvec_fscale_s, float32_scalbn, int32_t) DO_3OP(gvec_fscale_d, scalbn_d, int64_t) diff --git a/target/arm/tcg/sme.decode b/target/arm/tcg/sme.decode index 60c7cacc10..4e19c42b19 100644 --- a/target/arm/tcg/sme.decode +++ b/target/arm/tcg/sme.decode @@ -287,8 +287,14 @@ ADD_n1 1100000 1 .. 10 .... 1010.0 11000 .... = 0 @z2z_4x1 SQDMULH_n1 1100000 1 .. 10 .... 1010.1 00000 .... 0 @z2z_2x1 SQDMULH_n1 1100000 1 .. 10 .... 1010.1 00000 .... 0 @z2z_4x1 =20 -FSCALE_n1 1100000 1 .. 10 .... 1010.0 01100 .... 0 @z2z_2x1 -FSCALE_n1 1100000 1 .. 10 .... 1010.0 01100 .... 0 @z2z_4x1 +{ + BFSCALE_n1 1100000 1 00 10 .... 1010.0 01100 .... 0 @z2z_2x1_e0 + FSCALE_n1 1100000 1 .. 10 .... 1010.0 01100 .... 0 @z2z_2x1 +} +{ + BFSCALE_n1 1100000 1 00 10 .... 1010.0 01100 .... 0 @z2z_4x1_e0 + FSCALE_n1 1100000 1 .. 10 .... 1010.0 01100 .... 0 @z2z_4x1 +} =20 FMUL_n1 1100000 1 esz:2 1 zm:4 0 111010 ....0 ....0 \ &zzz_en n=3D2 zd=3D%zd_ax2 zn=3D%zn_ax2 @@ -365,8 +371,14 @@ FAMAX_nn 1100000 1 .. 1 ..... 1011.0 01010 .... = 0 @z2z_4x4 FAMIN_nn 1100000 1 .. 1 ..... 1011.0 01010 .... 1 @z2z_2x2 FAMIN_nn 1100000 1 .. 1 ..... 1011.0 01010 .... 1 @z2z_4x4 =20 -FSCALE_nn 1100000 1 .. 1 ..... 1011.0 01100 .... 0 @z2z_2x2 -FSCALE_nn 1100000 1 .. 1 ..... 1011.0 01100 .... 0 @z2z_4x4 +{ + BFSCALE_nn 1100000 1 00 1 ..... 1011.0 01100 .... 0 @z2z_2x2_e0 + FSCALE_nn 1100000 1 .. 1 ..... 1011.0 01100 .... 0 @z2z_2x2 +} +{ + BFSCALE_nn 1100000 1 00 1 ..... 1011.0 01100 .... 0 @z2z_4x4_e0 + FSCALE_nn 1100000 1 .. 1 ..... 1011.0 01100 .... 0 @z2z_4x4 +} =20 FMUL_nn 1100000 1 esz:2 1 ....0 111001 ....0 ....0 \ &zzz_en n=3D2 zd=3D%zd_ax2 zn=3D%zn_ax2 zm=3D%zm_ax2 --=20 2.43.0 From nobody Sat Jul 25 08:55:11 2026 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=1784659764; cv=none; d=zohomail.com; s=zohoarc; b=jrZ3h6tMY793u/EHpJhdlMSLr8kTouviUsUHyBB/0e45v7SfzyCYzJFP2HdaH9YCn68LMS5hkdhIDcoRmjuuzaJ/DkPZ8O22j/dsGTDvSI+RWILt3d8febMY+GQitT4j5JUrUw7TS6P/yWTIDG6RdHjXu//vWeR+JFWf0zugSUM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784659764; 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=ztxjnkKW+Do3FxcGy10ntSz6MbMGjbPM1y8JkY9WyA8=; b=R9mfMLhX8cv/BcRSTlqGuMPE26hugkSUCYrwRffpAyqM9sRrgNHR9cabO0Bnevi3xuJDcqAZwKQuMiWQpKAZlnxy9TERH+3/xsFTiQMiqA876dNM/vRYMyXBTDx+YeYO6J4IAmnsx0B1AerMO02xWECn4/R/itVuvqOMF8qitVQ= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784659764852198.96879367396036; Tue, 21 Jul 2026 11:49:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wmFVo-0001QN-Nq; Tue, 21 Jul 2026 14:48:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wmFUn-00011p-TV for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:15 -0400 Received: from mail-pj1-x1032.google.com ([2607:f8b0:4864:20::1032]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wmFUl-0006dA-JP for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:13 -0400 Received: by mail-pj1-x1032.google.com with SMTP id 98e67ed59e1d1-38e08baf860so9293882a91.2 for ; Tue, 21 Jul 2026 11:47:10 -0700 (PDT) Received: from stoup.. ([32.140.233.50]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-13ce29e340esm41108094c88.5.2026.07.21.11.47.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jul 2026 11:47:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1784659630; x=1785264430; 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:content-type; bh=ztxjnkKW+Do3FxcGy10ntSz6MbMGjbPM1y8JkY9WyA8=; b=RUJr7aIjvYq6iyFjfETTss/doWjnsWxXR6/FFFL43kL3LIjIwJTVx8d/8/G+z20kaH W2ccb0CRE8zZ/LEnM0CZ9auUEW7J6iK+j2Sq5MZ0G7BFgkaXHhaXhxM7CofkAL9LUS2G cSq0M0EeaSzNQ+RO80KMkQhKLzhPfhOGoyFtePziF7Q7aumx5ir0o/TQPHkybzoTdzD4 fSmght4w6f8SYUTQT9kS1FF5TtJQLPapXm5GmQDAmaf0ycf6WmH41kEADv3wCJPs1xmc M5RaBmmGF+an+7/lGddtCcdEHOK2Q0Lxfb/F68SO2fG2gxa7r1D8+QBETjOS8f/VBzXH SJ9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784659630; x=1785264430; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=ztxjnkKW+Do3FxcGy10ntSz6MbMGjbPM1y8JkY9WyA8=; b=L/yy86L+1T6HHJmuht8URfji4l6dn2xjdOjyJPR3VAMH+KkDBS/4L051XpQNYABteV 4fpnSro1WDwXwZsLwWFWUuc4msBuWU00FMYz8bJ6Zqed5ipcdn3YLkL6KBumIpfO01pX nOW/bghWK3P9yjxTGXBstQuObdwyG1wYpQpaWSCz7Egf/t5foVPE//vfNyueZpkIMSMV cXO5qDSDQghn2c5TnmrbzbhBoq1sBlGCPdVpKfbf6TwZufp8qg6PwGBGS8KtriMy3ENM 6CPvnS0GnmyhjerTiEKN+edlyHlLTN6qYnWsaaAe5rvCN8SA4GcDlLksCugxest44Jjx 6liA== X-Gm-Message-State: AOJu0YzOAdQBgTV5vIaq6BOjc34jonYTssCwUqUuAkwJ0zNS2SMLhAwT Sz1ylHIU4TEq8q50IrNbx8Vul2uh/RM3bAgiVr1phVbGu1jGq71KN1XHifWP3++AxyBT8YRMpUH L9Ndv X-Gm-Gg: AR+sD11vM6U06IpAh9/kuu4woH4PHzQ9PcWxD73qmsLabPWntTFbvnR/RD5s5stZ2Zy y72rvkn8nscLcxw4QB/4qebShthPKLUVvlrcGflzuQ0bVtrGlKoBfP8fXl/Iiq9qk9f5hB4+/E1 Y72wDyoI3RBcfHY3yMG05FAE0my8iL7ndNaF/HZKqilIuzgja6Tx1o6EA0/6JT4GuCCCbSlQCMP 2ZmTmR7N3IMvwQ26wox7IpmAmdTdFqbjN7CxDH5cFE8o9do7RtLJk5KRo/1LSDjlS7zpPx1mzvC W0Wzh4jptGXt/SCUQHp1wF1202gCukUbKMbvUuNT45pKRg01Jw1rAQVuP5IeEmBgqyX9hdWV8PA okn2VwTFCDaMzkxgdyVUetZR926eoJ5JiHd35Ivf0tyvWFagFHDtHUkUO2DWSV2l3dCMO/FWS6U T/N2CD4js= X-Received: by 2002:a17:90b:38ca:b0:387:e0db:3d8f with SMTP id 98e67ed59e1d1-38e4b5b4fadmr18611061a91.42.1784659629816; Tue, 21 Jul 2026 11:47:09 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH 08/20] target/arm: Implement SME BFMUL Date: Tue, 21 Jul 2026 11:46:44 -0700 Message-ID: <20260721184656.530230-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260721184656.530230-1-richard.henderson@linaro.org> References: <20260721184656.530230-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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1032; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1032.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: qemu development 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: 1784659766129158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/translate-sme.c | 4 ++++ target/arm/tcg/sme.decode | 24 ++++++++++++++++++++---- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/target/arm/tcg/translate-sme.c b/target/arm/tcg/translate-sme.c index d28574a8cf..08b25b0be9 100644 --- a/target/arm/tcg/translate-sme.c +++ b/target/arm/tcg/translate-sme.c @@ -903,6 +903,10 @@ static gen_helper_gvec_3_ptr * const f_vector_fmul[4] = =3D { }; TRANS_FEAT(FMUL_n1, aa64_sme2p2, do_zzz_n1_fpst, a, f_vector_fmul[a->esz]) TRANS_FEAT(FMUL_nn, aa64_sme2p2, do_zzz_nn_fpst, a, f_vector_fmul[a->esz]) +TRANS_FEAT(BFMUL_n1, aa64_sme2_sve_bfscale, do_zzz_n1_fpst, a, + gen_helper_gvec_fmul_b16) +TRANS_FEAT(BFMUL_nn, aa64_sme2_sve_bfscale, do_zzz_nn_fpst, a, + gen_helper_gvec_fmul_b16) =20 /* Add/Sub vector Z[m] to each Z[n*N] with result in ZA[d*N]. */ static bool do_azz_n1(DisasContext *s, arg_azz_n *a, int esz, diff --git a/target/arm/tcg/sme.decode b/target/arm/tcg/sme.decode index 4e19c42b19..3e4cb7e582 100644 --- a/target/arm/tcg/sme.decode +++ b/target/arm/tcg/sme.decode @@ -296,10 +296,18 @@ SQDMULH_n1 1100000 1 .. 10 .... 1010.1 00000 ....= 0 @z2z_4x1 FSCALE_n1 1100000 1 .. 10 .... 1010.0 01100 .... 0 @z2z_4x1 } =20 -FMUL_n1 1100000 1 esz:2 1 zm:4 0 111010 ....0 ....0 \ +{ + BFMUL_n1 1100000 1 00 1 zm:4 0 111010 ....0 ....0 \ + &zzz_en n=3D2 zd=3D%zd_ax2 zn=3D%zn_ax2 esz=3D0 + FMUL_n1 1100000 1 esz:2 1 zm:4 0 111010 ....0 ....0 \ &zzz_en n=3D2 zd=3D%zd_ax2 zn=3D%zn_ax2 -FMUL_n1 1100000 1 esz:2 1 zm:4 1 111010 ...00 ...00 \ +} +{ + BFMUL_n1 1100000 1 00 1 zm:4 1 111010 ...00 ...00 \ + &zzz_en n=3D4 zd=3D%zd_ax4 zn=3D%zn_ax4 esz=3D0 + FMUL_n1 1100000 1 esz:2 1 zm:4 1 111010 ...00 ...00 \ &zzz_en n=3D4 zd=3D%zd_ax4 zn=3D%zn_ax4 +} =20 ### SME2 Multi-vector Multiple Vectors SVE Destructive =20 @@ -380,10 +388,18 @@ FAMIN_nn 1100000 1 .. 1 ..... 1011.0 01010 ....= 1 @z2z_4x4 FSCALE_nn 1100000 1 .. 1 ..... 1011.0 01100 .... 0 @z2z_4x4 } =20 -FMUL_nn 1100000 1 esz:2 1 ....0 111001 ....0 ....0 \ +{ + BFMUL_nn 1100000 1 00 1 ....0 111001 ....0 ....0 \ + &zzz_en n=3D2 zd=3D%zd_ax2 zn=3D%zn_ax2 zm=3D%zm_ax2 esz=3D0 + FMUL_nn 1100000 1 esz:2 1 ....0 111001 ....0 ....0 \ &zzz_en n=3D2 zd=3D%zd_ax2 zn=3D%zn_ax2 zm=3D%zm_ax2 -FMUL_nn 1100000 1 esz:2 1 ...01 111001 ...00 ...00 \ +} +{ + BFMUL_nn 1100000 1 00 1 ...01 111001 ...00 ...00 \ + &zzz_en n=3D4 zd=3D%zd_ax4 zn=3D%zn_ax4 zm=3D%zm_ax4 esz=3D0 + FMUL_nn 1100000 1 esz:2 1 ...01 111001 ...00 ...00 \ &zzz_en n=3D4 zd=3D%zd_ax4 zn=3D%zn_ax4 zm=3D%zm_ax4 +} =20 ### SME2 Multi-vector Multiple and Single Array Vectors =20 --=20 2.43.0 From nobody Sat Jul 25 08:55:11 2026 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=1784659844; cv=none; d=zohomail.com; s=zohoarc; b=gGrSULMh74hubF4ks1r89rO/hAXVtRurwON0Z4bMWZRVa0+oHWzhplGnXPle7ciK5rjYo/aa+E1zlhZvv9cPOWXK7yVUFIDO0pPgqzCmBcmtm9XJRmD2mEdBaFMxCIZOIuhdNMviNBc9C2nhe4mJA2hh072hT+wSXQTlCBmKUWI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784659844; 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=FJWOSYXRXrcK3TYmLUpBxwKeLPW6HbyV5XuewiFAFJI=; b=LDSTDGxpBJ0Y2FT6cqGT/21jiovfcAy4NvcLyaIjlVsvVRA1MXvBFpRh1rp9kJAuaNQxIx4oci+7r7bjDHFKrcwpgtYWfNol23bsoyscEAvZgx+ZmJe+5gUkAa/H0LQzDll/DNxEtz1i7kMPOV4lX9qwoc1+2mAEs7EwKpZt76E= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784659844488861.3125931399555; Tue, 21 Jul 2026 11:50:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wmFWh-0001sy-WA; Tue, 21 Jul 2026 14:49:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wmFUo-00011v-AB for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:15 -0400 Received: from mail-pj1-x102b.google.com ([2607:f8b0:4864:20::102b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wmFUm-0006da-NZ for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:14 -0400 Received: by mail-pj1-x102b.google.com with SMTP id 98e67ed59e1d1-38511175ad3so9515481a91.2 for ; Tue, 21 Jul 2026 11:47:12 -0700 (PDT) Received: from stoup.. ([32.140.233.50]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-13ce29e340esm41108094c88.5.2026.07.21.11.47.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jul 2026 11:47:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1784659631; x=1785264431; 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:content-type; bh=FJWOSYXRXrcK3TYmLUpBxwKeLPW6HbyV5XuewiFAFJI=; b=XjUk278oGG2PK3VCQhVJH5mJuJtslJweZxp4VUSdVDiDnMbubCurZT0tupyJGNaFer dQ1aa0JqjKobGk1yPfdazB+lF4jovBiv6IunC14ip0uKE+2lKSMnQGh76X2rqMfBNrgy dsZy0b3KIiDZdzWr3nO+pezfch2J9aXSDnLAUx6KEPLtzhdFecoU0kdKLkC6SZzRVzzA fEJfV/dN38z5R/q+O+dAp9M/3N4nPmnQXUCZJXMgI63hkXjKUsVDoU4dJ1N5I31QRm52 Q4DerC7GMBcVwd9+nwm7u/TrZpscdnNFqLxP0hyjwrxv7v7dpDe5qBmHnzT14mp/cqah ni+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784659631; x=1785264431; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=FJWOSYXRXrcK3TYmLUpBxwKeLPW6HbyV5XuewiFAFJI=; b=qAJqs5UmuF5RhiabSq1y/32Yu+wYH3/ylq03Wu0Z7nYQrTatkEEh/Qg5bBL6oZR7je UQh7EZX8MREnOGUVj+X6dg+pav8urKBPsDqI4LqP/QBz/CpfA3nttpipmHm/w5HIcMjB 6hFJd+FwVOLL1NKRkcmSUKbKS713MROnN7cXGEpEJRMCTkAvGCH46QtORb7c5EYHeJ7S k6n5R0xEdRTC9RbHVGY3qC1fmai7UztGAjwisLIFzfeqYS66zfB5SUd9xDAZg+6ohr6A JtB/NlUexugxeQCqAIVxTe+Cnfk4dmCS0IYe+fn85nXQRYa6iinuPopWESmgp8Cxbvsc hwpg== X-Gm-Message-State: AOJu0YylhmF4Ne3wQOIxN/4hwpeBI14NX8F/3bKCKJEhxRKXDvGIrmrs lfOotQ0dpwUdh53hmJYM1MNcLldpp+6VueMit87/pKYc3dOS0eSQi/omppmejiFwAgjUBp9QrVx VfnUX X-Gm-Gg: AR+sD10KKCR0/idf/6XUMgjIVIMc0XIrC2aiYSXNDLe7QD8+/V/fx/cvLg4zkL0ZIjt gHZR8VsfcCKmlzIPdfTbgqtJYHGehyhjKtbHZbJhcxOQe939H8guG5BeLCicSaX7bxG65HijFz4 XoMVWliMZqLxfMTujxcswJZ1soQNyiJWPfWbYkrctmTy3qWnrNcmbp8oY8jmKUzfTzlSL0awFRR 92sVeZ534PRKKvGuWgL8Hic82fwkwpBXOSP0G6ePRQuY9Sd38PZ7Mtb6JwEKtB1OQzjb7Q9yXnz OrMQwrtHndLPL1y6XfVCgDCBFslT0wTCnwg1VDIMHYzOmBAboM4jtRQlvVjKqCKkjIIkdr8kKf5 BKd5Rd8oEMm9Yg8iJ9MPaj5bjgU04yU+jMRXsu8ZVUS9wpexBZWU2zEpwSXghT9i52QVQiyqxYS K6FloVpYPbjdQtta2HmQ== X-Received: by 2002:a17:90b:5543:b0:382:1aaf:4bab with SMTP id 98e67ed59e1d1-38e4b516631mr19334867a91.27.1784659631066; Tue, 21 Jul 2026 11:47:11 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH 09/20] target/arm: Enable FEAT_SVE_BFSCALE for -cpu max Date: Tue, 21 Jul 2026 11:46:45 -0700 Message-ID: <20260721184656.530230-10-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260721184656.530230-1-richard.henderson@linaro.org> References: <20260721184656.530230-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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102b; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102b.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: qemu development 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: 1784659846267158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- linux-user/aarch64/elfload.c | 1 + target/arm/tcg/cpu64.c | 3 ++- docs/system/arm/emulation.rst | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/linux-user/aarch64/elfload.c b/linux-user/aarch64/elfload.c index c086548f7f..bcf2e6b9c1 100644 --- a/linux-user/aarch64/elfload.c +++ b/linux-user/aarch64/elfload.c @@ -180,6 +180,7 @@ abi_ulong get_elf_hwcap(CPUState *cs) GET_FEATURE_ID(aa64_sme_tmop, ARM_HWCAP_A64_SME_STMOP); GET_FEATURE_ID(aa64_sve2p2, ARM_HWCAP_A64_SVE2P2); GET_FEATURE_ID(aa64_sme2p2, ARM_HWCAP_A64_SME2P2); + GET_FEATURE_ID(aa64_sve_bfscale, ARM_HWCAP_A64_SVE_BFSCALE); =20 return hwcaps; } diff --git a/target/arm/tcg/cpu64.c b/target/arm/tcg/cpu64.c index 33eafb467d..4a44d148e2 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -1370,7 +1370,8 @@ void aarch64_max_tcg_initfn(Object *obj) t =3D FIELD_DP64(t, ID_AA64ZFR0, ELTPERM, 1); /* FEAT_SVE2p2 */ t =3D FIELD_DP64(t, ID_AA64ZFR0, BITPERM, 1); /* FEAT_SVE_BitPerm */ t =3D FIELD_DP64(t, ID_AA64ZFR0, BFLOAT16, 2); /* FEAT_BF16, FEAT_EBF= 16 */ - t =3D FIELD_DP64(t, ID_AA64ZFR0, B16B16, 1); /* FEAT_SVE_B16B16 */ + /* FEAT_SVE_B16B16, FEAT_SVE_BFSCALE */ + t =3D FIELD_DP64(t, ID_AA64ZFR0, B16B16, 2); t =3D FIELD_DP64(t, ID_AA64ZFR0, SHA3, 1); /* FEAT_SVE_SHA3 */ t =3D FIELD_DP64(t, ID_AA64ZFR0, SM4, 1); /* FEAT_SVE_SM4 */ t =3D FIELD_DP64(t, ID_AA64ZFR0, I8MM, 1); /* FEAT_I8MM */ diff --git a/docs/system/arm/emulation.rst b/docs/system/arm/emulation.rst index 4d33be615f..4c91bb45c8 100644 --- a/docs/system/arm/emulation.rst +++ b/docs/system/arm/emulation.rst @@ -198,6 +198,7 @@ the following architecture extensions: - FEAT_SVE (Scalable Vector Extension) - FEAT_SVE_AES (Scalable Vector AES instructions) - FEAT_SVE_B16B16 (Non-widening BFloat16 arithmetic for SVE2) +- FEAT_SVE_BFSCALE (BFloat16 Floating-Point Adjust Exponent) - FEAT_SVE_BitPerm (Scalable Vector Bit Permutes instructions) - FEAT_SVE_PMULL128 (Scalable Vector PMULL instructions) - FEAT_SVE_SHA3 (Scalable Vector SHA3 instructions) --=20 2.43.0 From nobody Sat Jul 25 08:55:11 2026 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=1784659976; cv=none; d=zohomail.com; s=zohoarc; b=Ivg9fqU/4vVCQP6Yg/a8tGmML18im10pZNqKL3BXjsIaBM6h5bxR+IHRBIyWUU/7cj1sXnrRVv8hbn+WB+Wx1fJHFL7vKMtC0MS19j7DErLP/o4tVtiLFvyUHVKoR2gSfo1tJ/6NZzoezQjtCJ8fP3JDKWwqU5Pr9jvF8BdrqJI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784659976; 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=hsWJfs/ZCQ+zp1pClMZhTNWi2y5w7gqtx815LkLYbP4=; b=DjJPoNi60jQjrmQNNKRB3Gc7YE+DhIjPE65ybHrheHyZGe4fw5wvsXpILTSBgUtZ9vXfhHNXtVb80mf3czLWrassYmF6bVZEJCVyj3b1L3ugpQPN89yIB0PBqguZXRKm9sKQwMjmDBrqWi67j1Rb9tDVSADsQhREHMmX0hUWvpw= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784659976400469.6136290748932; Tue, 21 Jul 2026 11:52:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wmFVn-0001Ph-K5; Tue, 21 Jul 2026 14:48:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wmFUp-00011y-7F for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:15 -0400 Received: from mail-pj1-x102c.google.com ([2607:f8b0:4864:20::102c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wmFUn-0006e4-HC for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:14 -0400 Received: by mail-pj1-x102c.google.com with SMTP id 98e67ed59e1d1-38125cebfdaso9620806a91.1 for ; Tue, 21 Jul 2026 11:47:13 -0700 (PDT) Received: from stoup.. ([32.140.233.50]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-13ce29e340esm41108094c88.5.2026.07.21.11.47.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jul 2026 11:47:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1784659632; x=1785264432; 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:content-type; bh=hsWJfs/ZCQ+zp1pClMZhTNWi2y5w7gqtx815LkLYbP4=; b=jcT/K7Ztgpz594oXCYUwEvSoiBUSDlFZsl1JooIYP9rThsigUxuV7CSUvtM3HrcboV jUsyvNwiLcU67lIx2ZNg+vmHHoLutP9EMBO44KpJSYGmYBr73pv0mc1RPd/s5gtvYkVW LU0UgdsntMemu7gBxV4XjxZDgsLBBS8SYJcHkcsjWadESw+uqe3DpW9mFYIvgO9ac0IH r4Zz2bXjnECU5jjH2XdDyX1dUF3KIfIs2JZBHEgcGcJIICvk3V0MZrOon2JushItvt7Z gTCI0L1r3BIKrMovIFZy0lPQYLLAxooARAEwHcA7/VAGHlPKcKjJuDpkAS8LajTImE/E 8v8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784659632; x=1785264432; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=hsWJfs/ZCQ+zp1pClMZhTNWi2y5w7gqtx815LkLYbP4=; b=iLk9caXdnNGRlPopj8KGfg3Okj9erAipVuAcyLIvCV3MLg6ksd+4c+pQItWT6y81Hs 6W1/c4hLXmcsv12mYfkq1FLtGDElU9uVW+5MbNs7b4aQbP4vJgejua1Ju7CPulLJCMwm y4cR+5vVD6u36kx7yzonX0Cnj/Ea6SicSw1E+ZK+VZTQqu34El3bYD8o69wagYuCd5Ub hynFCD5GwlM6AQFpMoKab9PEM7Sn1VrBhab4LbAM9YpwdJi0HKioe7Vo+fNnuErGxkfQ K96tKCFxj79YxOb8P5b7cGCz8jwCTWyY3sGH/DHTrdoCtfhP2ASBGtDkjSkYo6erMDtl P4sQ== X-Gm-Message-State: AOJu0YwUIQFS1KTISNzH2CEiPF6niz6yYkDM2r1k+stH0UXGvyJIpBCR +57OtFp9vTSsRqn52fUrsav7ctWT3gqlgV47FWBq9TmNptKTnI0QKJo0fF22IJOnCY25oL1UVZw 7uA+a X-Gm-Gg: AR+sD13VE6o4GmG+BNNLNIqpGzUHaqR4XvokCNxfuR43QcHX0FlGYD62kbUkyUKTL9c wd5AR62v2+FLhfNj0s8kIh8zrrloXmG7863Iax3DepoufmwpJRrLZ5H81DGJ4DyjOJunitpfaPu mdxu9EefG/Bmr7bT3OGmZ2V/lygiDNRgNcaqc1N1/o5rGDJ9zaMkJHYUsOdKQb1PI5sdLcbYzwu 4d/55h3POEe5LSBHNh3nYOU4kcuLf9FIqmuflr29qgd8Wtn4mSlpIi6DxtjP7qw/Cxkdjgi/Bwh VfxqSm/DUQOtSZTvIO0wWhSSQcMPCCv+Ao6UvJ/Y1tKxG1MnR93LFooDX61mMHtmjZWfvr7qYLh XJSYMKOKHlp0Hbp7D1+w8YeALHeRkYx0iWs2D4AJco8R34eVHOg4SG9f74//Em+SVoRxwri5nbp RdrDaz9MYfFPg3FlK3iw== X-Received: by 2002:a17:90b:3942:b0:37f:9ce1:cda8 with SMTP id 98e67ed59e1d1-38e4b59469cmr19496757a91.30.1784659632113; Tue, 21 Jul 2026 11:47:12 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH 10/20] target/arm: Rename isar_feature_aa64_sve_pmull128 Date: Tue, 21 Jul 2026 11:46:46 -0700 Message-ID: <20260721184656.530230-11-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260721184656.530230-1-richard.henderson@linaro.org> References: <20260721184656.530230-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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102c; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102c.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=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development 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: 1784659978420158500 Content-Type: text/plain; charset="utf-8" Rename from isar_feature_aa64_sve2_pmull128 to match the feature name: FEAT_SVE_PMULL128. Signed-off-by: Richard Henderson --- bsd-user/aarch64/target_arch_elf.h | 2 +- target/arm/cpu-features.h | 2 +- linux-user/aarch64/elfload.c | 2 +- target/arm/tcg/translate-sve.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bsd-user/aarch64/target_arch_elf.h b/bsd-user/aarch64/target_a= rch_elf.h index 2fb7dcd778..6f9d192b4f 100644 --- a/bsd-user/aarch64/target_arch_elf.h +++ b/bsd-user/aarch64/target_arch_elf.h @@ -127,7 +127,7 @@ static uint32_t get_elf_hwcap2(void) GET_FEATURE_ID(aa64_dcpodp, ARM_HWCAP2_A64_DCPODP); GET_FEATURE_ID(aa64_sve2, ARM_HWCAP2_A64_SVE2); GET_FEATURE_ID(aa64_sve_aes, ARM_HWCAP2_A64_SVEAES); - GET_FEATURE_ID(aa64_sve2_pmull128, ARM_HWCAP2_A64_SVEPMULL); + GET_FEATURE_ID(aa64_sve_pmull128, ARM_HWCAP2_A64_SVEPMULL); GET_FEATURE_ID(aa64_sve2_bitperm, ARM_HWCAP2_A64_SVEBITPERM); GET_FEATURE_ID(aa64_sve2_sha3, ARM_HWCAP2_A64_SVESHA3); GET_FEATURE_ID(aa64_sve2_sm4, ARM_HWCAP2_A64_SVESM4); diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index b29cd49020..750be9b1b1 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1534,7 +1534,7 @@ static inline bool isar_feature_aa64_sve_aes(const AR= MISARegisters *id) return FIELD_EX64_IDREG(id, ID_AA64ZFR0, AES) !=3D 0; } =20 -static inline bool isar_feature_aa64_sve2_pmull128(const ARMISARegisters *= id) +static inline bool isar_feature_aa64_sve_pmull128(const ARMISARegisters *i= d) { return FIELD_EX64_IDREG(id, ID_AA64ZFR0, AES) >=3D 2; } diff --git a/linux-user/aarch64/elfload.c b/linux-user/aarch64/elfload.c index bcf2e6b9c1..40c5e1dbd3 100644 --- a/linux-user/aarch64/elfload.c +++ b/linux-user/aarch64/elfload.c @@ -193,7 +193,7 @@ abi_ulong get_elf_hwcap2(CPUState *cs) GET_FEATURE_ID(aa64_dcpodp, ARM_HWCAP2_A64_DCPODP); GET_FEATURE_ID(aa64_sve2, ARM_HWCAP2_A64_SVE2); GET_FEATURE_ID(aa64_sve_aes, ARM_HWCAP2_A64_SVEAES); - GET_FEATURE_ID(aa64_sve2_pmull128, ARM_HWCAP2_A64_SVEPMULL); + GET_FEATURE_ID(aa64_sve_pmull128, ARM_HWCAP2_A64_SVEPMULL); GET_FEATURE_ID(aa64_sve2_bitperm, ARM_HWCAP2_A64_SVEBITPERM); GET_FEATURE_ID(aa64_sve2_sha3, ARM_HWCAP2_A64_SVESHA3); GET_FEATURE_ID(aa64_sve2_sm4, ARM_HWCAP2_A64_SVESM4); diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 52f370e47e..03d97dcaf5 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -7233,7 +7233,7 @@ static bool do_trans_pmull(DisasContext *s, arg_rrr_e= sz *a, bool sel) }; =20 if (a->esz =3D=3D 0) { - if (!dc_isar_feature(aa64_sve2_pmull128, s)) { + if (!dc_isar_feature(aa64_sve_pmull128, s)) { return false; } s->is_nonstreaming =3D !dc_isar_feature(aa64_ssve_aes, s); --=20 2.43.0 From nobody Sat Jul 25 08:55:11 2026 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=1784659786; cv=none; d=zohomail.com; s=zohoarc; b=C3xScw9OGojh00V6WVkawMmSqGNm+JmyLQiIT3t0tJ8fGhXM46K/QDfidw0DPfD3hu0Ms4AHQcRKTT/ZItKxxMVh7WoqgdV7go0PtUdU0R5pwxbOEB6ts2PwjSc8SpJ0m9kqv/huZOvv8ty0pscqPpvB9XP/QOrroQ2VA+Q7nVQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784659786; 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=c6mrzVYB+xtDItY8lKDVs1AxoyOlI3UFnV2AgjuH+h4=; b=Wb7N4KWQRZ7hkTUB/HTyRZ8OK0LdRAxxVL9vXD+RS76CWPzD+vgEw/+SLOr2mLGHauk81q8aW8AuvZYHgENxifsEXx15LPkDshcwxOQiuR45P5kToOMROlUeEpL3PFTiHW5+ttkO/BOtw/D+ag52vZ/kIVWnoOHTv/b/Y/26Fqk= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784659786629729.7913829452757; Tue, 21 Jul 2026 11:49:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wmFW1-0001RK-29; Tue, 21 Jul 2026 14:48:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wmFUq-00014q-DJ for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:18 -0400 Received: from mail-pj1-x1030.google.com ([2607:f8b0:4864:20::1030]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wmFUo-0006eX-Nn for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:16 -0400 Received: by mail-pj1-x1030.google.com with SMTP id 98e67ed59e1d1-38e347638adso6784278a91.0 for ; Tue, 21 Jul 2026 11:47:14 -0700 (PDT) Received: from stoup.. ([32.140.233.50]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-13ce29e340esm41108094c88.5.2026.07.21.11.47.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jul 2026 11:47:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1784659633; x=1785264433; 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:content-type; bh=c6mrzVYB+xtDItY8lKDVs1AxoyOlI3UFnV2AgjuH+h4=; b=mJsnECP0czWxdOCPMDs9vtPGpWwx3v5dTdtfC9yK2auBT2v09FStKpz0MLIhHZ8EeO qF3bNWii+TfYKhkmPSQdifTHt2b1QhB5W7syjJ0eTvGzSPuYXgCFaWjc7asyokSnRmMd 34bru8Ut4oB+P18x3+Rd09B6pjnCLcCdMQ4kh+ooOiCqCJ5jDyXH38efGTTXGlFCLOcL k9epRHKPnOFnquHimSApx2PM6eyUsterR+VRVouvmDsad3nUlbmWSEa0ybyov+cVF9zE QsRoHh4DeFzwHFYoHn94SHMUkAtlxLdBY6o77UlQWCU5wsN3+653XHuzqggr47KKsqmy 2SOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784659633; x=1785264433; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=c6mrzVYB+xtDItY8lKDVs1AxoyOlI3UFnV2AgjuH+h4=; b=galizdqnB4IjdRoLHNtSnxsEzNAQYTI/JPYxrb0h5pZC0bXmcfaEXsJ5cDebRSmbUG O2uGzB5mVK3FLRJjAy9GYD0dHZM6Gd6sNeQGKWrrcoViYATsvK0vKG2epA5efcykNQXs RJonYWzgHNH2hxggidDcvrpS7gCEELzhcrRuPWRY/0toN/sMDMgvjGu5xa5ntl+EEFZA ChAw2AG2a9+WOvMn4kOEmD/QLOlGlae7aXgQdKbfbWnZ8T3JXI4KSVx7RbY6TSTvlI2C WSO0FqeRw3fQEYFaLZBZEQzFnkeHw3aHHJeksNEnKyPMqH5lF8J9ecpMyoRPYEzZRAb7 ds+w== X-Gm-Message-State: AOJu0YwDdk5wve5LvUXq8moQXk8HrGw7uvz5r+9bJ0WwTTXtntuVAXD6 KtDH5JQLobgKtb/6aPLmZRr7YY/aCeLzuWa/UbYonr7zGmT9CLSyJ6CIEQSUsakMPQJjcqu0mru UxPwK X-Gm-Gg: AR+sD10fZdhHoWTFqhM/6B9Jv9xhjIbMZzrs7HSKNKMCGuZMhwnIjTARkdy8xh4CSIp 5EBmj4AnVW2N7b9WPK2ugayZW0v1EOLmpPMC2G9iHjHcw/sYoeL52yk7TA2Bnr0nlbPIWqDcOai 3qc0WbIN7dFTOw9x7xVrP8qVQyp5ppDV1olULPpXpD+EI1XS8UqMJR9a0PxUYM6BC7qPpe1QPFH /yxhcjkMUrLOHEishvTSLBngAfnvA6N8uq8hiX55OeswhZWBsubxWhxUZTlA2Hg908KFO7cmIIY GsXcOmmW5+Ek3hQ3YBMkeQolMostKPHaI8mmIahTOpSpcUmgqmvQnefwQ1CdABXz3fphHf8kN9b FkGf7fiJ0CWEL3RO5eiOBtQ1w+Z98oQUL3ZkJH6I0/we0NqsWUlQ+PYCxia0F4YpHpD3sBPeuwe G00hnrmAI= X-Received: by 2002:a17:90b:5288:b0:38e:3542:212 with SMTP id 98e67ed59e1d1-38e4b4462f1mr20084874a91.13.1784659633303; Tue, 21 Jul 2026 11:47:13 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH 11/20] target/arm: Rename isar_feature_aa64_sve_bitperm Date: Tue, 21 Jul 2026 11:46:47 -0700 Message-ID: <20260721184656.530230-12-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260721184656.530230-1-richard.henderson@linaro.org> References: <20260721184656.530230-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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1030; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1030.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: qemu development 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: 1784659787844158500 Content-Type: text/plain; charset="utf-8" Rename from isar_feature_aa64_sve2_bitperm to match the feature name: FEAT_SVE_BITPERM. Signed-off-by: Richard Henderson --- bsd-user/aarch64/target_arch_elf.h | 2 +- target/arm/cpu-features.h | 2 +- linux-user/aarch64/elfload.c | 2 +- target/arm/tcg/translate-sve.c | 6 +++--- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/bsd-user/aarch64/target_arch_elf.h b/bsd-user/aarch64/target_a= rch_elf.h index 6f9d192b4f..818b6f690a 100644 --- a/bsd-user/aarch64/target_arch_elf.h +++ b/bsd-user/aarch64/target_arch_elf.h @@ -128,7 +128,7 @@ static uint32_t get_elf_hwcap2(void) GET_FEATURE_ID(aa64_sve2, ARM_HWCAP2_A64_SVE2); GET_FEATURE_ID(aa64_sve_aes, ARM_HWCAP2_A64_SVEAES); GET_FEATURE_ID(aa64_sve_pmull128, ARM_HWCAP2_A64_SVEPMULL); - GET_FEATURE_ID(aa64_sve2_bitperm, ARM_HWCAP2_A64_SVEBITPERM); + GET_FEATURE_ID(aa64_sve_bitperm, ARM_HWCAP2_A64_SVEBITPERM); GET_FEATURE_ID(aa64_sve2_sha3, ARM_HWCAP2_A64_SVESHA3); GET_FEATURE_ID(aa64_sve2_sm4, ARM_HWCAP2_A64_SVESM4); GET_FEATURE_ID(aa64_condm_5, ARM_HWCAP2_A64_FLAGM2); diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 750be9b1b1..857adf4ee0 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1539,7 +1539,7 @@ static inline bool isar_feature_aa64_sve_pmull128(con= st ARMISARegisters *id) return FIELD_EX64_IDREG(id, ID_AA64ZFR0, AES) >=3D 2; } =20 -static inline bool isar_feature_aa64_sve2_bitperm(const ARMISARegisters *i= d) +static inline bool isar_feature_aa64_sve_bitperm(const ARMISARegisters *id) { return FIELD_EX64_IDREG(id, ID_AA64ZFR0, BITPERM) !=3D 0; } diff --git a/linux-user/aarch64/elfload.c b/linux-user/aarch64/elfload.c index 40c5e1dbd3..0569350e37 100644 --- a/linux-user/aarch64/elfload.c +++ b/linux-user/aarch64/elfload.c @@ -194,7 +194,7 @@ abi_ulong get_elf_hwcap2(CPUState *cs) GET_FEATURE_ID(aa64_sve2, ARM_HWCAP2_A64_SVE2); GET_FEATURE_ID(aa64_sve_aes, ARM_HWCAP2_A64_SVEAES); GET_FEATURE_ID(aa64_sve_pmull128, ARM_HWCAP2_A64_SVEPMULL); - GET_FEATURE_ID(aa64_sve2_bitperm, ARM_HWCAP2_A64_SVEBITPERM); + GET_FEATURE_ID(aa64_sve_bitperm, ARM_HWCAP2_A64_SVEBITPERM); GET_FEATURE_ID(aa64_sve2_sha3, ARM_HWCAP2_A64_SVESHA3); GET_FEATURE_ID(aa64_sve2_sm4, ARM_HWCAP2_A64_SVESM4); GET_FEATURE_ID(aa64_condm_5, ARM_HWCAP2_A64_FLAGM2); diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 03d97dcaf5..47986510e7 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -7420,21 +7420,21 @@ static gen_helper_gvec_3 * const bext_fns[4] =3D { gen_helper_sve2_bext_b, gen_helper_sve2_bext_h, gen_helper_sve2_bext_s, gen_helper_sve2_bext_d, }; -TRANS_FEAT_NONSTREAMING(BEXT, aa64_sve2_bitperm, gen_gvec_ool_arg_zzz, +TRANS_FEAT_NONSTREAMING(BEXT, aa64_sve_bitperm, gen_gvec_ool_arg_zzz, bext_fns[a->esz], a, 0) =20 static gen_helper_gvec_3 * const bdep_fns[4] =3D { gen_helper_sve2_bdep_b, gen_helper_sve2_bdep_h, gen_helper_sve2_bdep_s, gen_helper_sve2_bdep_d, }; -TRANS_FEAT_NONSTREAMING(BDEP, aa64_sve2_bitperm, gen_gvec_ool_arg_zzz, +TRANS_FEAT_NONSTREAMING(BDEP, aa64_sve_bitperm, gen_gvec_ool_arg_zzz, bdep_fns[a->esz], a, 0) =20 static gen_helper_gvec_3 * const bgrp_fns[4] =3D { gen_helper_sve2_bgrp_b, gen_helper_sve2_bgrp_h, gen_helper_sve2_bgrp_s, gen_helper_sve2_bgrp_d, }; -TRANS_FEAT_NONSTREAMING(BGRP, aa64_sve2_bitperm, gen_gvec_ool_arg_zzz, +TRANS_FEAT_NONSTREAMING(BGRP, aa64_sve_bitperm, gen_gvec_ool_arg_zzz, bgrp_fns[a->esz], a, 0) =20 static gen_helper_gvec_3 * const cadd_fns[4] =3D { --=20 2.43.0 From nobody Sat Jul 25 08:55:11 2026 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=1784659764; cv=none; d=zohomail.com; s=zohoarc; b=WaWWf9xlf1V5xkl6li05MFORWQERcZ5o2llME7Fl9YH8Iu5q3uFjsEZTHabl95CPN4fdaIo4GlarMzxoSm6RU08bUl/OVmeYRune4HvJLgBYaSw5iOJmbng8Yh6m8EH+wxiddkZ66TdeOdvdVxJNFwlCjk03r9Yy97FkLXCpn7Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784659764; 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=fbKvURaUToW+MLge/0h1mbq5aOuncglQwXEaMVLIT3g=; b=AkZGE8U1hEGEhhaNAzWEqpaCWhYGdY34z9SRERBYwW61c3D6BRX7AWqMo0U3WytIOv3hdhuyAiPCszgx7XyR9VDFJmhGFfuoAgSu5TP/XESjOsQhz2jNx8rqpvIpvPjLg1Sr+7rXmCpAx4EWUgy/z59ZTUFnGHive/9va2L1iRA= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784659764464502.4327040202178; Tue, 21 Jul 2026 11:49:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wmFW6-0001Tx-Lz; Tue, 21 Jul 2026 14:48:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wmFUs-00014x-5h for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:21 -0400 Received: from mail-pj1-x1030.google.com ([2607:f8b0:4864:20::1030]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wmFUq-0006fB-H0 for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:17 -0400 Received: by mail-pj1-x1030.google.com with SMTP id 98e67ed59e1d1-384930ca5e2so10880850a91.3 for ; Tue, 21 Jul 2026 11:47:16 -0700 (PDT) Received: from stoup.. ([32.140.233.50]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-13ce29e340esm41108094c88.5.2026.07.21.11.47.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jul 2026 11:47:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1784659635; x=1785264435; 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:content-type; bh=fbKvURaUToW+MLge/0h1mbq5aOuncglQwXEaMVLIT3g=; b=xPIU4COHUh5jb8kTj3pdOJSfunuPQlt1ubrZQFIVbrhFgicsZkg9omrOSkfFbpD76r Gpo1LGz7c7DxUMkpHSycqKWsDh7fpK0HUIptir8YnUkl6UVMvZcESIy9QJ0nMSQtOhyl dJoyELD7A9k5sqCcuJpPVGQldNOHNte+jMc+KBLfU1hx4XQCDj3SuRPcM64OyJgqaT44 Y5nhRGDg7MZjmZFjnPeBmncrFRxnmj2MmoOAdC9EjdwNWDXk9HvhbidlSCK0u5yNLP7o NZ/ZCtuh/rBejtgW4myAHXEMrbxqcnFxDM27qqUjDaLdvIsDcQ5a6GvCqjyAn0hEEPDQ aAYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784659635; x=1785264435; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=fbKvURaUToW+MLge/0h1mbq5aOuncglQwXEaMVLIT3g=; b=hw+MUprXqvAxr6FtlhLc8vf3dSKlDElXMj6TGcygZnVe6My9mBC14Zv2pIDv6Y2bph Eqqn8kRhWQooKaMjTQnuN6c0Ou/yshkyhXW5yLBqiY6wV2ceTMqMPFdBSQkkzaPAxui8 Vk0kxwLD0Vyw8BvQjBpzzy1L6bIsv0lF5Xa3znYgr0kZSIys2tKnviYOKXjRZNYPpcGU KzFAAmjgD3dT0SjW421hpWcZo6AaoE1lBBEAKuoM5wNg4Yrr75bptwtcuqSGu5jzxNjo t9Z3uXfuXCZYBXseSPsdNNBcVzHZiLllltxqTFC4fSShKdnGqDbFzbhnTz5qt58aZ9Aw OjQA== X-Gm-Message-State: AOJu0Yylmw51bRipvNAz9F5XqQ7cGj8Ng4AytpybwY2CTWiGvlq5jqZk oNclFwgE1CiGiY5+fOQhaEEHOTaiMfVzXY+WfSIa8Q6SsUddBrIimpBcdAkNSY7qaXZM17wb4Bp oGZk9 X-Gm-Gg: AR+sD13FVCPFSysoXanC8WP6e6kumYN1uk75lDIV2vSwzSlXZZwm30HHRen4PSfGsWE Vjvo+RGOtHBxsOmmRdh+OFXx5DVMulLBmXx2iLZN+dO0h3hOKKBZezbOHSnoIctl/VjJ19xtpJU uLU2gFEqvGUrhtd1tRMpZDfpTtYHSB5HZuOlPynMeYVRoUj3DwNe64GUk/AS+ag3IQK3xyPxobb 6qbSpknHrJ7dtssgih2XwIc7nKsVnGzgKHPFmp9Icxd45J6Ny6HWM6q2rygWTnx4ERMcDBzw/rE V9aKqhtheK7THkHdLDg7GLoA4BN/Eyh/b7xnjePE9H/pUVzoZf9F240CVPJyBiT5wOngRMRY0Ut +ZXifb5/mzcrU7BldKrY9tp9WL1EnfudOYMrMeDSfUnmSdKXbrP1W8skaj9zXA0g5dV/4o45QuT C/I3cErs8= X-Received: by 2002:a17:90a:d40f:b0:37f:eda5:5169 with SMTP id 98e67ed59e1d1-38e4b4474f6mr21353737a91.13.1784659634836; Tue, 21 Jul 2026 11:47:14 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH 12/20] target/arm: Rename isar_feature_aa64_sve_sha3 Date: Tue, 21 Jul 2026 11:46:48 -0700 Message-ID: <20260721184656.530230-13-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260721184656.530230-1-richard.henderson@linaro.org> References: <20260721184656.530230-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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1030; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1030.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: qemu development 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: 1784659766132158501 Content-Type: text/plain; charset="utf-8" Rename from isar_feature_aa64_sve2_sha3 to match the feature name: FEAT_SVE_SHA3. Reorg trans_RAX1 to use TRANS_FEAT_STREAMING_IF. Signed-off-by: Richard Henderson --- bsd-user/aarch64/target_arch_elf.h | 2 +- target/arm/cpu-features.h | 2 +- linux-user/aarch64/elfload.c | 2 +- target/arm/tcg/translate-sve.c | 13 ++----------- 4 files changed, 5 insertions(+), 14 deletions(-) diff --git a/bsd-user/aarch64/target_arch_elf.h b/bsd-user/aarch64/target_a= rch_elf.h index 818b6f690a..8669f3f833 100644 --- a/bsd-user/aarch64/target_arch_elf.h +++ b/bsd-user/aarch64/target_arch_elf.h @@ -129,7 +129,7 @@ static uint32_t get_elf_hwcap2(void) GET_FEATURE_ID(aa64_sve_aes, ARM_HWCAP2_A64_SVEAES); GET_FEATURE_ID(aa64_sve_pmull128, ARM_HWCAP2_A64_SVEPMULL); GET_FEATURE_ID(aa64_sve_bitperm, ARM_HWCAP2_A64_SVEBITPERM); - GET_FEATURE_ID(aa64_sve2_sha3, ARM_HWCAP2_A64_SVESHA3); + GET_FEATURE_ID(aa64_sve_sha3, ARM_HWCAP2_A64_SVESHA3); GET_FEATURE_ID(aa64_sve2_sm4, ARM_HWCAP2_A64_SVESM4); GET_FEATURE_ID(aa64_condm_5, ARM_HWCAP2_A64_FLAGM2); GET_FEATURE_ID(aa64_frint, ARM_HWCAP2_A64_FRINT); diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 857adf4ee0..f94e8efe47 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1549,7 +1549,7 @@ static inline bool isar_feature_aa64_sme_sve_bf16(con= st ARMISARegisters *id) return FIELD_EX64_IDREG(id, ID_AA64ZFR0, BFLOAT16) !=3D 0; } =20 -static inline bool isar_feature_aa64_sve2_sha3(const ARMISARegisters *id) +static inline bool isar_feature_aa64_sve_sha3(const ARMISARegisters *id) { return FIELD_EX64_IDREG(id, ID_AA64ZFR0, SHA3) !=3D 0; } diff --git a/linux-user/aarch64/elfload.c b/linux-user/aarch64/elfload.c index 0569350e37..83791768c6 100644 --- a/linux-user/aarch64/elfload.c +++ b/linux-user/aarch64/elfload.c @@ -195,7 +195,7 @@ abi_ulong get_elf_hwcap2(CPUState *cs) GET_FEATURE_ID(aa64_sve_aes, ARM_HWCAP2_A64_SVEAES); GET_FEATURE_ID(aa64_sve_pmull128, ARM_HWCAP2_A64_SVEPMULL); GET_FEATURE_ID(aa64_sve_bitperm, ARM_HWCAP2_A64_SVEBITPERM); - GET_FEATURE_ID(aa64_sve2_sha3, ARM_HWCAP2_A64_SVESHA3); + GET_FEATURE_ID(aa64_sve_sha3, ARM_HWCAP2_A64_SVESHA3); GET_FEATURE_ID(aa64_sve2_sm4, ARM_HWCAP2_A64_SVESM4); GET_FEATURE_ID(aa64_condm_5, ARM_HWCAP2_A64_FLAGM2); GET_FEATURE_ID(aa64_frint, ARM_HWCAP2_A64_FRINT); diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 47986510e7..be7ff74add 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8297,17 +8297,8 @@ TRANS_FEAT_NONSTREAMING(SM4E, aa64_sve2_sm4, gen_gve= c_ool_arg_zzz, TRANS_FEAT_NONSTREAMING(SM4EKEY, aa64_sve2_sm4, gen_gvec_ool_arg_zzz, gen_helper_crypto_sm4ekey, a, 0) =20 -static bool trans_RAX1(DisasContext *s, arg_RAX1 *a) -{ - if (!dc_isar_feature(aa64_sve2_sha3, s)) { - return false; - } - if (!dc_isar_feature(aa64_sme2p1, s)) { - /* SME2p1 adds this as valid in streaming SVE mode */ - s->is_nonstreaming =3D true; - } - return gen_gvec_fn_arg_zzz(s, gen_gvec_rax1, a); -} +TRANS_FEAT_STREAMING_IF(RAX1, aa64_sve_sha3, aa64_sme2p1, + gen_gvec_fn_arg_zzz, gen_gvec_rax1, a) =20 TRANS_FEAT(FCVTNT_sh_m, aa64_sme_or_sve2, gen_gvec_fpst_arg_zpz, gen_helper_sve2_fcvtnt_sh, a, 0, FPST_A64) --=20 2.43.0 From nobody Sat Jul 25 08:55:11 2026 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=1784659930; cv=none; d=zohomail.com; s=zohoarc; b=ZOnucUZMDz9pYhNGBiHvWHaT9Q6oNPkU8UW6qE6H0EPXRD8A/9/k0RTxNq/z1OZAnbPqoVpKFhPR3d/yktJjHc7bi39Xw3zoTkFu0CxoRB4hmq9oWhabATixacqdG7ZLM0FRZ0Cwix4WWPN0WK41nVlSOlgZy8uYPpI/XEuxqf4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784659930; 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=5x/XwFF00evs9CWopDKjFJT8vjI2eG1ycTaTU4iYXRA=; b=fR+Humv0l4MAER6/VM38lEEiBbhEis5RbnJcW92ouL5dIVpKwMbwjYFwMN+2S48ztynjro5pkOI4tSnwCtZ5VvSPNFKKjFrOLNiwCv/T3WllnoiTmEMLY9ma6ojUm9QJIp6kTWL1BRkg36y/YRr87qP9RJakBaK/7lUcArW3QxE= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17846599304921019.8088267093282; Tue, 21 Jul 2026 11:52:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wmFWd-0001aS-LG; Tue, 21 Jul 2026 14:49:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wmFUt-00015N-Ik for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:21 -0400 Received: from mail-pj1-x102d.google.com ([2607:f8b0:4864:20::102d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wmFUr-0006fk-JW for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:19 -0400 Received: by mail-pj1-x102d.google.com with SMTP id 98e67ed59e1d1-38e041ea211so9543906a91.0 for ; Tue, 21 Jul 2026 11:47:17 -0700 (PDT) Received: from stoup.. ([32.140.233.50]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-13ce29e340esm41108094c88.5.2026.07.21.11.47.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jul 2026 11:47:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1784659636; x=1785264436; 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:content-type; bh=5x/XwFF00evs9CWopDKjFJT8vjI2eG1ycTaTU4iYXRA=; b=zOkQZV5800id5ixkNTCh+3arBTENIYf622W1xlQh5Q2UniyTXi55A+rnPyy3PSh21+ v+acLZmYc5D82RDgSnO3Zd5XNWGHRHTVR11FQq8sGFHYWAc37TNgi0+Iv3OXdzB9XiCu NLz9ZSDafZ9KtbjPdHlVxJGYUYrVAmabw3vedIdXeumANZGN/1fwSiLZQ7paPFP8+QID X3wi7GPT/A81Cx+VdNaKAyUJwzUQ94xuwOH1RbA6LF+yhG9/pc3WwV/sOkssDF96vCZu srKDdqGImQ7tV0CJtvWYPUR9pUbda8X1FXolj6+Lqes7mL577JuErNJhldhma3LhfIf+ ue+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784659636; x=1785264436; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=5x/XwFF00evs9CWopDKjFJT8vjI2eG1ycTaTU4iYXRA=; b=rmoRH5/H+xwsklWfrA4FHVlcVgCtrwK7sIsNGkKooAXLLI867z5twzIUgjqpRo4+DF ZSdBPI/fhTEvfPo62OUfeLIZkXKCUQAdbcuoEACugKWmJD+5GsOxcgRwCu53TwbkTuSA oR3hDBOXY3CWkoV0Um91jtiOcnPIye3JHl4OJ1P3rcEBdNDyxVze+Xgz9UFkSGg27gRs F7ushlv29RBMHICCSCVQTgEfrajfhmnSFXIxgt2UbN9IyDT9GmPcJcfqLVlDivYkF2pb Jc2SVAje5zHbeQPEoK73O1GhefJblEZYZLvOm2hO/mgChWReaxwLkyNzeJfuPPIHVkEI oz6g== X-Gm-Message-State: AOJu0YytUKvF9h6FFmUhuJrBTg25tHlX/oPvkyfyNkQrZgXVJFlMNJuX 4K7lClCc5FTojNoGyAr3RKmgA3KMegEgfEgDzHiKtSkFrFTo0iX18paBMfWpiDbeRsVJ7dQRq9E ljRqb X-Gm-Gg: AR+sD11GngtiLfnyd40hzzCGI1wgBoW7PA0aQr9dqjmFIIeOnO1I+QUsLwlAcnBwUuZ 2/KzytHiexn0CjsQXkO7nPUdbRo+Xlr/y4aMcsYbEILbwIx5hlzMk/+MfgTpbO2IMTxXINVp9fI K19wVo02MHe7ADXDCn5I8M45jtBymgd9u/iJPTFiWwhL4N4QYL9UqNvdF7hSjxe7CtGg2w4FJmD XLAgAOKfmS9Yi7U08R6YZq862zueNEX5FBsWfxwelhIYZqXU8Bkind7zMyKjNv3zsyjcKwZH/zJ dbY9voUYVFkmd5j65H3tuUEy8Kdz3S2YJ8b5ldFZg+6z0DBaCKfFN7Q6nhTPWX91xs74eFTeION kIRct5MvlWyqWxeK6Y2ZHTkS3wbt8sw3FG+Hu3P79M1fjban1kUSLhCE2N5fXEHvY+V2x8yo4QL eKLu1Rv4Im2L2MgiubeA== X-Received: by 2002:a17:90b:2dc1:b0:37f:fdc8:71b4 with SMTP id 98e67ed59e1d1-38e4b3e1424mr19525005a91.2.1784659636149; Tue, 21 Jul 2026 11:47:16 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH 13/20] target/arm: Rename isar_feature_aa64_sve_sm4 Date: Tue, 21 Jul 2026 11:46:49 -0700 Message-ID: <20260721184656.530230-14-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260721184656.530230-1-richard.henderson@linaro.org> References: <20260721184656.530230-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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102d; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102d.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: qemu development 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: 1784659932153158500 Content-Type: text/plain; charset="utf-8" Rename from isar_feature_aa64_sve2_sm4 to match the feature name: FEAT_SVE_SM4. Signed-off-by: Richard Henderson --- bsd-user/aarch64/target_arch_elf.h | 2 +- target/arm/cpu-features.h | 2 +- linux-user/aarch64/elfload.c | 2 +- target/arm/tcg/translate-sve.c | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/bsd-user/aarch64/target_arch_elf.h b/bsd-user/aarch64/target_a= rch_elf.h index 8669f3f833..0ec7a7b585 100644 --- a/bsd-user/aarch64/target_arch_elf.h +++ b/bsd-user/aarch64/target_arch_elf.h @@ -130,7 +130,7 @@ static uint32_t get_elf_hwcap2(void) GET_FEATURE_ID(aa64_sve_pmull128, ARM_HWCAP2_A64_SVEPMULL); GET_FEATURE_ID(aa64_sve_bitperm, ARM_HWCAP2_A64_SVEBITPERM); GET_FEATURE_ID(aa64_sve_sha3, ARM_HWCAP2_A64_SVESHA3); - GET_FEATURE_ID(aa64_sve2_sm4, ARM_HWCAP2_A64_SVESM4); + GET_FEATURE_ID(aa64_sve_sm4, ARM_HWCAP2_A64_SVESM4); GET_FEATURE_ID(aa64_condm_5, ARM_HWCAP2_A64_FLAGM2); GET_FEATURE_ID(aa64_frint, ARM_HWCAP2_A64_FRINT); GET_FEATURE_ID(aa64_sve_i8mm, ARM_HWCAP2_A64_SVEI8MM); diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index f94e8efe47..44dfc7d457 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1554,7 +1554,7 @@ static inline bool isar_feature_aa64_sve_sha3(const A= RMISARegisters *id) return FIELD_EX64_IDREG(id, ID_AA64ZFR0, SHA3) !=3D 0; } =20 -static inline bool isar_feature_aa64_sve2_sm4(const ARMISARegisters *id) +static inline bool isar_feature_aa64_sve_sm4(const ARMISARegisters *id) { return FIELD_EX64_IDREG(id, ID_AA64ZFR0, SM4) !=3D 0; } diff --git a/linux-user/aarch64/elfload.c b/linux-user/aarch64/elfload.c index 83791768c6..7afbfca418 100644 --- a/linux-user/aarch64/elfload.c +++ b/linux-user/aarch64/elfload.c @@ -196,7 +196,7 @@ abi_ulong get_elf_hwcap2(CPUState *cs) GET_FEATURE_ID(aa64_sve_pmull128, ARM_HWCAP2_A64_SVEPMULL); GET_FEATURE_ID(aa64_sve_bitperm, ARM_HWCAP2_A64_SVEBITPERM); GET_FEATURE_ID(aa64_sve_sha3, ARM_HWCAP2_A64_SVESHA3); - GET_FEATURE_ID(aa64_sve2_sm4, ARM_HWCAP2_A64_SVESM4); + GET_FEATURE_ID(aa64_sve_sm4, ARM_HWCAP2_A64_SVESM4); GET_FEATURE_ID(aa64_condm_5, ARM_HWCAP2_A64_FLAGM2); GET_FEATURE_ID(aa64_frint, ARM_HWCAP2_A64_FRINT); GET_FEATURE_ID(aa64_sve_i8mm, ARM_HWCAP2_A64_SVEI8MM); diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index be7ff74add..0b522e22ef 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8292,9 +8292,9 @@ TRANS_FEAT_STREAMING_IF(AESE, aa64_sve_aes, aa64_ssve= _aes, TRANS_FEAT_STREAMING_IF(AESD, aa64_sve_aes, aa64_ssve_aes, gen_gvec_ool_arg_zzz, gen_helper_crypto_aesd, a, 0) =20 -TRANS_FEAT_NONSTREAMING(SM4E, aa64_sve2_sm4, gen_gvec_ool_arg_zzz, +TRANS_FEAT_NONSTREAMING(SM4E, aa64_sve_sm4, gen_gvec_ool_arg_zzz, gen_helper_crypto_sm4e, a, 0) -TRANS_FEAT_NONSTREAMING(SM4EKEY, aa64_sve2_sm4, gen_gvec_ool_arg_zzz, +TRANS_FEAT_NONSTREAMING(SM4EKEY, aa64_sve_sm4, gen_gvec_ool_arg_zzz, gen_helper_crypto_sm4ekey, a, 0) =20 TRANS_FEAT_STREAMING_IF(RAX1, aa64_sve_sha3, aa64_sme2p1, --=20 2.43.0 From nobody Sat Jul 25 08:55:11 2026 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=1784659802; cv=none; d=zohomail.com; s=zohoarc; b=FBchrV/fvRN62ic9NqwlXZ7Ah8Mh5bqMXeRgZvouoC1J1DhIeFt7EUVeGftJnkSJWhC68we5gugpscac+HvKaddnF3ZyHooCs9OO4JRqXOkkBEc1ay1JBbnweOwo6c7UdCZeOhduFZkrHECSlO79RrwkpUxj/rlwOmLP4OynbJc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784659802; 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=zXdLcTVmLaodZE2u8MGvlXRVuwgv/NIQIsqWIhdsBA0=; b=Mwgniiv9AEGKXWtFKIA1NNJOVRvqzZBt/oladUSs6FfbtGbjAtsYxW7sEQ6RcPKzxEKNT+YjetU2emPKr707xz47DNa04K9THQOdda1Fj763wyccLoNASibvRur71Vt4V+Slk0tiaL+rakHnX57/yhrFzebyhInMUfELMoAM3yo= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178465980259573.06165969589131; Tue, 21 Jul 2026 11:50:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wmFX8-0002vG-37; Tue, 21 Jul 2026 14:49:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wmFUu-00015P-VN for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:21 -0400 Received: from mail-pj1-x102e.google.com ([2607:f8b0:4864:20::102e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wmFUt-0006ft-2i for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:20 -0400 Received: by mail-pj1-x102e.google.com with SMTP id 98e67ed59e1d1-38e58034d05so3793656a91.2 for ; Tue, 21 Jul 2026 11:47:18 -0700 (PDT) Received: from stoup.. ([32.140.233.50]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-13ce29e340esm41108094c88.5.2026.07.21.11.47.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jul 2026 11:47:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1784659637; x=1785264437; 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:content-type; bh=zXdLcTVmLaodZE2u8MGvlXRVuwgv/NIQIsqWIhdsBA0=; b=qFAZdXG6eVFYRd/DWP2zAC25gZaSJpLUA2n00uuxDAVRSpN1ldZBXAFzpm2B+jc3vU y20u7+Q2oGM1dQeotm9BAfjb5/IWQmEGEtrEKivKor99p5pv++/3XYoZUGi2bKglcwV5 v+CjNtadMqidzkh3Wurp3eZe0LDwodynB9AxrrH8HsDiDpVeRQCjKmKrJj/y0HIdy9ev heyf91+Mkko5bbXFmC/23kcZjlazrpSvtKHKaITloT6LleaniSYGmSV5KK6X1oH6TGnL /WSrg7pWGyhHtZSLaXS+H8vMctRFdlzhBv4NttdpwiJafT8TT1nZITU/dnRWOn6vaScI chwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784659637; x=1785264437; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=zXdLcTVmLaodZE2u8MGvlXRVuwgv/NIQIsqWIhdsBA0=; b=ZPbJgwzs82fGXjEHg5LDis/J9eNFoTtec0O0Cy+2914pZWgXRc3CXswewN24kZiyKZ qWoOlYrRfIOnFDJSHkoNL3gu+hJrnxCYsSiGf20onRnkJ4nhXXAXxE148uEn9fRR6Wb7 GQZAWUAwxPnEMxrWOcLdn2ReW/Bl6wtQXrz77ts9wDaNycXosH1R3iRli8gnkYlduQ7/ EukTmW5YMaIyAm39FVSF+yVou94bPYNnYYYe82oFtZrpNrxyBpLN0bMcmosmZqTQnzxd K3GIbjl0lpEAvu818aN5ebwnLndGNcni6OBdBsl4PpZkMXqKmQ1yPEeeOm0lZDuhXuXF Ooig== X-Gm-Message-State: AOJu0YxZWDYoNKpvOdtkhdia2gcD88ly6aEOg3g6f023cIKhDTw/QAmg GjM9+jGJSCHsbMVBwSoW9TpjYaMowTfRiJUxj7i5duiIFZ/BKyIXAvM76THz8IUS1ncaA8ng+qT xegXz X-Gm-Gg: AR+sD125SP1UBgH1LK04nSny3rRZfd9mkDU0tLXzaLGxnQgj6grkrt+uxjrOAX3QqpO ecgeQ09AFXEkr+zB5FyyQumT8zw/EumUwujKqtDnfDRTKrmHTeSDnP9TdLTDdyspcpTggwKkdBR Z7lfgOPwVPGz38nttS29oWuzz8KHdTmwyRoKGw+K4Jq/CD0Kgl4pttdBvoxRXZQ0uwHbKpBFH67 mVo1aTl6huOpV9OBtF2FeyZbdjaUDff7iOTy4pGXHHepP+BvliM3xGSdM7TWJBEQR6Q2NpjVQhC qw1kfBXYoWx32ov8+u4ezI1qJowQfz3l8RRS61l5+M1fup7WI07jDVgZWYiQMFG3D4fGd2ItkEF N2tzleJTVUUTDZEezSD+WFF44rKTdMbrZmr/3fpzT4IRgOW/7WeNjUeZOaUqNhBGrWRb9pyoTWF dS6gYrnsU= X-Received: by 2002:a17:90b:2fc5:b0:38e:2c8f:a01a with SMTP id 98e67ed59e1d1-38e4b4119c7mr20424288a91.11.1784659637131; Tue, 21 Jul 2026 11:47:17 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH 14/20] target/arm: Implement and enable FEAT_SSVE_BitPerm for -cpu max Date: Tue, 21 Jul 2026 11:46:50 -0700 Message-ID: <20260721184656.530230-15-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260721184656.530230-1-richard.henderson@linaro.org> References: <20260721184656.530230-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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102e; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102e.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: qemu development 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: 1784659804069158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/cpu-features.h | 5 +++++ linux-user/aarch64/elfload.c | 1 + target/arm/tcg/cpu64.c | 1 + target/arm/tcg/translate-sve.c | 12 ++++++------ docs/system/arm/emulation.rst | 1 + 5 files changed, 14 insertions(+), 6 deletions(-) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 44dfc7d457..d3130fbe67 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1605,6 +1605,11 @@ static inline bool isar_feature_aa64_ssve_aes(const = ARMISARegisters *id) return FIELD_EX64_IDREG(id, ID_AA64SMFR0, AES); } =20 +static inline bool isar_feature_aa64_ssve_bitperm(const ARMISARegisters *i= d) +{ + return FIELD_EX64_IDREG(id, ID_AA64SMFR0, SBITPERM); +} + static inline bool isar_feature_aa64_ssve_f8fma(const ARMISARegisters *id) { return FIELD_EX64_IDREG(id, ID_AA64SMFR0, SF8FMA); diff --git a/linux-user/aarch64/elfload.c b/linux-user/aarch64/elfload.c index 7afbfca418..4359312ee3 100644 --- a/linux-user/aarch64/elfload.c +++ b/linux-user/aarch64/elfload.c @@ -181,6 +181,7 @@ abi_ulong get_elf_hwcap(CPUState *cs) GET_FEATURE_ID(aa64_sve2p2, ARM_HWCAP_A64_SVE2P2); GET_FEATURE_ID(aa64_sme2p2, ARM_HWCAP_A64_SME2P2); GET_FEATURE_ID(aa64_sve_bfscale, ARM_HWCAP_A64_SVE_BFSCALE); + GET_FEATURE_ID(aa64_ssve_bitperm, ARM_HWCAP_A64_SME_SBITPERM); =20 return hwcaps; } diff --git a/target/arm/tcg/cpu64.c b/target/arm/tcg/cpu64.c index 4a44d148e2..c7f8217cb3 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -1390,6 +1390,7 @@ void aarch64_max_tcg_initfn(Object *obj) t =3D FIELD_DP64(t, ID_AA64SMFR0, STMOP, 1); /* FEAT_SME_TMOP */ t =3D FIELD_DP64(t, ID_AA64SMFR0, SFEXPA, 1); /* FEAT_SSVE_FEXPA */ t =3D FIELD_DP64(t, ID_AA64SMFR0, AES, 1); /* FEAT_SSVE_AES */ + t =3D FIELD_DP64(t, ID_AA64SMFR0, SBITPERM, 1); /* FEAT_SSVE_BitPerm */ t =3D FIELD_DP64(t, ID_AA64SMFR0, SF8DP2, 1); /* FEAT_SSVE_FP8DOT2 */ t =3D FIELD_DP64(t, ID_AA64SMFR0, SF8DP4, 1); /* FEAT_SSVE_FP8DOT4 */ t =3D FIELD_DP64(t, ID_AA64SMFR0, SF8FMA, 1); /* FEAT_SSVE_FP8FMA */ diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 0b522e22ef..08372d9d8b 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -7420,22 +7420,22 @@ static gen_helper_gvec_3 * const bext_fns[4] =3D { gen_helper_sve2_bext_b, gen_helper_sve2_bext_h, gen_helper_sve2_bext_s, gen_helper_sve2_bext_d, }; -TRANS_FEAT_NONSTREAMING(BEXT, aa64_sve_bitperm, gen_gvec_ool_arg_zzz, - bext_fns[a->esz], a, 0) +TRANS_FEAT_STREAMING_IF(BEXT, aa64_sve_bitperm, aa64_ssve_bitperm, + gen_gvec_ool_arg_zzz, bext_fns[a->esz], a, 0) =20 static gen_helper_gvec_3 * const bdep_fns[4] =3D { gen_helper_sve2_bdep_b, gen_helper_sve2_bdep_h, gen_helper_sve2_bdep_s, gen_helper_sve2_bdep_d, }; -TRANS_FEAT_NONSTREAMING(BDEP, aa64_sve_bitperm, gen_gvec_ool_arg_zzz, - bdep_fns[a->esz], a, 0) +TRANS_FEAT_STREAMING_IF(BDEP, aa64_sve_bitperm, aa64_ssve_bitperm, + gen_gvec_ool_arg_zzz, bdep_fns[a->esz], a, 0) =20 static gen_helper_gvec_3 * const bgrp_fns[4] =3D { gen_helper_sve2_bgrp_b, gen_helper_sve2_bgrp_h, gen_helper_sve2_bgrp_s, gen_helper_sve2_bgrp_d, }; -TRANS_FEAT_NONSTREAMING(BGRP, aa64_sve_bitperm, gen_gvec_ool_arg_zzz, - bgrp_fns[a->esz], a, 0) +TRANS_FEAT_STREAMING_IF(BGRP, aa64_sve_bitperm, aa64_ssve_bitperm, + gen_gvec_ool_arg_zzz, bgrp_fns[a->esz], a, 0) =20 static gen_helper_gvec_3 * const cadd_fns[4] =3D { gen_helper_sve2_cadd_b, gen_helper_sve2_cadd_h, diff --git a/docs/system/arm/emulation.rst b/docs/system/arm/emulation.rst index 4c91bb45c8..fbc98d47d4 100644 --- a/docs/system/arm/emulation.rst +++ b/docs/system/arm/emulation.rst @@ -191,6 +191,7 @@ the following architecture extensions: - FEAT_SME_MOP4 (Quarter-tile outer product instructions) - FEAT_SME_TMOP (Structured sparsity outer product instructions) - FEAT_SSVE_AES (Streaming SVE Mode Advanced Encryption Standard and 128-b= it polynomial multiply long instructions) +- FEAT_SSVE_BitPerm (Streaming Scalable Vector Bit Permutes instructions) - FEAT_SSVE_FEXPA (Streaming FEXPA instruction) - FEAT_SSVE_FP8DOT2 (SVE2 FP8 2-way dot product to half-precision instruct= ions in Streaming SVE mode) - FEAT_SSVE_FP8DOT4 (SVE2 FP8 4-way dot product to single-precision instru= ctions in Streaming SVE mode) --=20 2.43.0 From nobody Sat Jul 25 08:55:11 2026 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=1784659996; cv=none; d=zohomail.com; s=zohoarc; b=V8BBG3Pu022EF6v2y00XTipfhnCbdEWKNWrt7tRfkakEs4O9Tb1+e7Cq//eijK9h/BV+wKxAbPhBxkOlza5I28foRrkMABw6Y+Hwg6BjrjGn9yBBuosj6JN8y/AGuPwaqFqdsvHqEKIvnBkfNNw/5EvWgxjDXD3mekYdpak2DO0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784659996; 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=p25kpMnws/6Vm1k9eNq0cyT7i3Yzgo7M68XQGm/13eI=; b=STPu5cY7dmCYgcLjegCRx5MKXiGFKMXO6uRbB4vPRy0yXtNWpuJ23O/q3zoKRaon18nYlgpxbT5X/qnfSLPKDF0KAmnaYmIS8uGon+CS6+XYgiJjYM3XUlzgi3KQ+DIxYCPiSR9Qm/BMGicXKcmxcoXBx6RRhQ51He+emeQR5jY= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784659996880122.56505964076052; Tue, 21 Jul 2026 11:53:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wmFWi-0001uW-9B; Tue, 21 Jul 2026 14:49:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wmFUv-00016G-ST for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:23 -0400 Received: from mail-pj1-x102e.google.com ([2607:f8b0:4864:20::102e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wmFUt-0006gC-Qa for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:21 -0400 Received: by mail-pj1-x102e.google.com with SMTP id 98e67ed59e1d1-3856d6fbcb3so7432955a91.2 for ; Tue, 21 Jul 2026 11:47:19 -0700 (PDT) Received: from stoup.. ([32.140.233.50]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-13ce29e340esm41108094c88.5.2026.07.21.11.47.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jul 2026 11:47:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1784659638; x=1785264438; 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:content-type; bh=p25kpMnws/6Vm1k9eNq0cyT7i3Yzgo7M68XQGm/13eI=; b=wEHrsylKGOiUi1H4QK3dbGM8lEuulL5wEl1bMs7n2OjtTI5I92dL/PChMdkOb3zYVb IBId37dminE5osMUKpZT+inSRsZNLNzIWoSLpfJ9rywuIM/N3zQMVJ1uVKMba3ltzD+l cQPKGeFXKpLwKGsjh+ZboKaZ6fyr0GhDSVURML+maQ2XP19Uslxczhl/i2FWD277FaEP Xtx59QMbpfY58qtnnW+CA2Rz/3CbNVkLXP43Fa95+80GW+3G6N6fzDBXb0vAHodcOwnF bUNDhh2ml5m6E5+LawrQjYpRNIpjjDZJ3NE2C7yW5WGhg1Kcopa/Vd/GeVk1aDNqVNSZ HFkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784659638; x=1785264438; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=p25kpMnws/6Vm1k9eNq0cyT7i3Yzgo7M68XQGm/13eI=; b=enp24GUwrNty1mY3yRU1Oe2c5hArJppxm2Wr8TR0WPjo4pcljzHW6IN7TJDs9oBsT7 AVstc9HHZTE1pS2Tb9lQ7NsvoDBben45F4yVyTcHJMY1VwGIqntSiN8Uuzvrv2joltdN R7tWMdpFbC3mZoIoHt9lrK7+1YQVLJxcLjQZMFGDpLsYFGfcWmRf7XprvzCDDY0//iO4 T8UUptqII2hv5xouO+xDa7r7j0QOYoPRSpqmJ53ZAh6HzsfMAOAACbMbJrTh1PrPWzve tZv596TxQoNgbSD5AJilEap1h/IL0QvrabvSbfpOOqKSELJ4f/oMqAMBrZUwsFIWmZ0h /Byw== X-Gm-Message-State: AOJu0YzJDpGOh78gSy4KJKZHRFytahz5b/lB4n5Dw2a5bpDz+xsrhks+ Z0036se1KPXJe7QwwIqxggD6rcNGDOXMxPSvUGxNrCtDJFgFQojTDX9xyQyXUhBXTn8SfKyMMwL 8OLXP X-Gm-Gg: AR+sD12OdPeC0dS9gIBR617laFezP/YnW7AjI0ioWgoQeZS8gQ5LnsZo1DVIqUumnM4 Gni2XNiTuy9g0ceGXbmtZ6HLowJYem5Q3KMk5lFINdLUf3MDEMnSsdSLm/qYNIaMsRZckPhgRQ1 WoEzP3j6mGOAsv6fZmsQpdJR8FBWXXan1K38cuBqi9shX7qFCmMZPuJ0c5MZlgwvC8t80wi4Rnm zpDjn+NENmqbRuZ4EhM1Nep9HGNl5ZHWiyKf5gjPZFBkP8jcSw/Mp2OIyUZttHomGAX2ZAvE5dq kbGA3ghhvUfxkGvMQbvNt4SLI5Nvj7IavXWSu81PsWCP9DwhRLYDnB+M1aTL8qPK0SInK2ZUr7R 0GgcL6r42Q9XfI59+8NkSYLzFLWupXWKM1zVJBsm92AQrkdcO/pUbERMzVC7OM8SqHOD4nhj4eV 6Did5KY/Ux/0u5QtKRbA== X-Received: by 2002:a17:90b:3904:b0:387:e0db:bc34 with SMTP id 98e67ed59e1d1-38e4b5793d2mr19510249a91.42.1784659638317; Tue, 21 Jul 2026 11:47:18 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH 15/20] target/arm: Implement AESE (indexed) Date: Tue, 21 Jul 2026 11:46:51 -0700 Message-ID: <20260721184656.530230-16-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260721184656.530230-1-richard.henderson@linaro.org> References: <20260721184656.530230-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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102e; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102e.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=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development 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: 1784659998624158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/cpu-features.h | 5 ++++ target/arm/tcg/helper-defs.h | 2 ++ target/arm/tcg/crypto_helper.c | 55 ++++++++++++++++++++++++---------- target/arm/tcg/translate-sve.c | 35 ++++++++++++++++++++++ target/arm/tcg/sve.decode | 13 ++++++-- 5 files changed, 92 insertions(+), 18 deletions(-) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index d3130fbe67..cfbe39394f 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1539,6 +1539,11 @@ static inline bool isar_feature_aa64_sve_pmull128(co= nst ARMISARegisters *id) return FIELD_EX64_IDREG(id, ID_AA64ZFR0, AES) >=3D 2; } =20 +static inline bool isar_feature_aa64_sve_aes2(const ARMISARegisters *id) +{ + return FIELD_EX64_IDREG(id, ID_AA64ZFR0, AES) >=3D 3; +} + static inline bool isar_feature_aa64_sve_bitperm(const ARMISARegisters *id) { return FIELD_EX64_IDREG(id, ID_AA64ZFR0, BITPERM) !=3D 0; diff --git a/target/arm/tcg/helper-defs.h b/target/arm/tcg/helper-defs.h index 0077aeb4e2..9d71277b47 100644 --- a/target/arm/tcg/helper-defs.h +++ b/target/arm/tcg/helper-defs.h @@ -462,6 +462,8 @@ DEF_HELPER_FLAGS_4(crypto_aesd, TCG_CALL_NO_RWG, void, = ptr, ptr, ptr, i32) DEF_HELPER_FLAGS_3(crypto_aesmc, TCG_CALL_NO_RWG, void, ptr, ptr, i32) DEF_HELPER_FLAGS_3(crypto_aesimc, TCG_CALL_NO_RWG, void, ptr, ptr, i32) =20 +DEF_HELPER_FLAGS_4(crypto_aese_idx, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, = i32) + DEF_HELPER_FLAGS_4(crypto_sha1su0, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i= 32) DEF_HELPER_FLAGS_4(crypto_sha1c, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32) DEF_HELPER_FLAGS_4(crypto_sha1p, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32) diff --git a/target/arm/tcg/crypto_helper.c b/target/arm/tcg/crypto_helper.c index 11977cb772..27b5813b6d 100644 --- a/target/arm/tcg/crypto_helper.c +++ b/target/arm/tcg/crypto_helper.c @@ -47,6 +47,27 @@ static void clear_tail_16(void *vd, uint32_t desc) =20 static const AESState aes_zero =3D { }; =20 +static void aese_kernel(AESState *ad, const AESState *st, const AESState *= rk) +{ + AESState t; + + /* + * Our uint64_t are in the wrong order for big-endian. + * The Arm AddRoundKey comes first, while the API AddRoundKey + * comes last: perform the xor here, and provide zero to API. + */ + if (HOST_BIG_ENDIAN) { + t.d[0] =3D st->d[1] ^ rk->d[1]; + t.d[1] =3D st->d[0] ^ rk->d[0]; + aesenc_SB_SR_AK(&t, &t, &aes_zero, false); + ad->d[0] =3D t.d[1]; + ad->d[1] =3D t.d[0]; + } else { + t.v =3D st->v ^ rk->v; + aesenc_SB_SR_AK(ad, &t, &aes_zero, false); + } +} + void HELPER(crypto_aese)(void *vd, void *vn, void *vm, uint32_t desc) { intptr_t i, opr_sz =3D simd_oprsz(desc); @@ -55,27 +76,29 @@ void HELPER(crypto_aese)(void *vd, void *vn, void *vm, = uint32_t desc) AESState *ad =3D (AESState *)(vd + i); AESState *st =3D (AESState *)(vn + i); AESState *rk =3D (AESState *)(vm + i); - AESState t; =20 - /* - * Our uint64_t are in the wrong order for big-endian. - * The Arm AddRoundKey comes first, while the API AddRoundKey - * comes last: perform the xor here, and provide zero to API. - */ - if (HOST_BIG_ENDIAN) { - t.d[0] =3D st->d[1] ^ rk->d[1]; - t.d[1] =3D st->d[0] ^ rk->d[0]; - aesenc_SB_SR_AK(&t, &t, &aes_zero, false); - ad->d[0] =3D t.d[1]; - ad->d[1] =3D t.d[0]; - } else { - t.v =3D st->v ^ rk->v; - aesenc_SB_SR_AK(ad, &t, &aes_zero, false); - } + aese_kernel(ad, st, rk); } clear_tail(vd, opr_sz, simd_maxsz(desc)); } =20 +void HELPER(crypto_aese_idx)(void *vd, void *vn, void *vm, uint32_t desc) +{ + intptr_t opr_sz =3D simd_oprsz(desc); + intptr_t idx =3D simd_data(desc); + void *vm_idx =3D vm + idx * 16; + intptr_t s =3D opr_sz - 16; + + do { + intptr_t base =3D ROUND_DOWN(s, 4 * 16); + AESState rk =3D *(AESState *)(vm_idx + base); + do { + aese_kernel(vd + s, vn + s, &rk); + s -=3D 16; + } while (s >=3D base); + } while (s > 0); +} + void HELPER(crypto_aesd)(void *vd, void *vn, void *vm, uint32_t desc) { intptr_t i, opr_sz =3D simd_oprsz(desc); diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 08372d9d8b..5b6b66aaef 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8300,6 +8300,41 @@ TRANS_FEAT_NONSTREAMING(SM4EKEY, aa64_sve_sm4, gen_g= vec_ool_arg_zzz, TRANS_FEAT_STREAMING_IF(RAX1, aa64_sve_sha3, aa64_sme2p1, gen_gvec_fn_arg_zzz, gen_gvec_rax1, a) =20 +static bool do_aes2_idx(DisasContext *s, arg_rx_n *a, gen_helper_gvec_3 *f= n) +{ + if (sve_access_check(s)) { + unsigned vsz =3D vec_full_reg_size(s); + int overlap =3D -1; + int index, mofs; + + if (vsz =3D=3D 16) { + index =3D 0; + } else if (vsz =3D=3D 32) { + index =3D a->index % 2; + } else { + index =3D a->index; + } + + mofs =3D vec_full_reg_offset(s, a->rm); + + for (int i =3D 0, n =3D a->n; i < n; i++) { + int dofs =3D vec_full_reg_offset(s, a->rdn + i); + if (dofs =3D=3D mofs) { + overlap =3D i; + } else { + tcg_gen_gvec_3_ool(dofs, dofs, mofs, vsz, vsz, index, fn); + } + } + if (overlap >=3D 0) { + tcg_gen_gvec_3_ool(mofs, mofs, mofs, vsz, vsz, index, fn); + } + } + return true; +} + +TRANS_FEAT_STREAMING_IF(AESE_idx, aa64_sve_aes2, aa64_ssve_aes, + do_aes2_idx, a, gen_helper_crypto_aese_idx) + TRANS_FEAT(FCVTNT_sh_m, aa64_sme_or_sve2, gen_gvec_fpst_arg_zpz, gen_helper_sve2_fcvtnt_sh, a, 0, FPST_A64) TRANS_FEAT(FCVTNT_sh_z, aa64_sme2p2_or_sve2p2, gen_gvec_fpst_arg_zpz, diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index ed19ae237f..64e0dd0eae 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -60,6 +60,8 @@ # as propagated via the MOVPRFX instruction. %reg_movprfx 0:5 =20 +%zd_ax2 1:4 !function=3Dtimes_2 +%zd_ax4 2:3 !function=3Dtimes_4 %rn_ax2 6:4 !function=3Dtimes_2 =20 %pnd 0:3 !function=3Dplus_8 @@ -70,6 +72,7 @@ # when creating helpers common to those for the individual # instruction patterns. =20 +&rx_n rdn rm index n &rr_esz rd rn esz &rri rd rn imm &rr_dbm rd rn dbm @@ -1974,6 +1977,14 @@ AESE 01000101 00 10001 0 11100 0 ..... ..= ... @rdn_rm_e0 AESD 01000101 00 10001 0 11100 1 ..... ..... @rdn_rm_e0 SM4E 01000101 00 10001 1 11100 0 ..... ..... @rdn_rm_e0 =20 +@aes2_2 ........ .. . index:2 0........ rm:5 ..... \ + &rx_n n=3D2 rdn=3D%zd_ax2 +@aes2_4 ........ .. . index:2 1........ rm:5 ..... \ + &rx_n n=3D4 rdn=3D%zd_ax4 + +AESE_idx 01000101 00 1 .. .10111010 ..... ....0 @aes2_2 +AESE_idx 01000101 00 1 .. .10111010 ..... ...00 @aes2_4 + # SVE2 crypto constructive binary operations SM4EKEY 01000101 00 1 ..... 11110 0 ..... ..... @rd_rn_rm_e0 RAX1 01000101 00 1 ..... 11110 1 ..... ..... @rd_rn_rm_e0 @@ -2078,8 +2089,6 @@ FCLAMP 01100100 .. 1 ..... 001001 ..... ....= . @rda_rn_rm &zcrr_ldst rd png rn rm esz nreg &zcri_ldst rd png rn imm esz nreg %png 10:3 !function=3Dplus_8 -%zd_ax2 1:4 !function=3Dtimes_2 -%zd_ax4 2:3 !function=3Dtimes_4 =20 LD1_zcrr 10100000000 rm:5 0 esz:2 ... rn:5 .... - \ &zcrr_ldst %png rd=3D%zd_ax2 nreg=3D2 --=20 2.43.0 From nobody Sat Jul 25 08:55:11 2026 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=1784659974; cv=none; d=zohomail.com; s=zohoarc; b=FfkfRXaTQEDmGLZVc4neseXxCdF9YfQ7Ox0Ri7AZxmYyJi6ckRir5Y5rRsRDLyq6qJQLq88qaIZ41Mi4+rOQrnUOX02pm+W6+kz2cWxK5vo19KvMn3ODY51s8ZrhVQe23L3gm7BS5jEdbSg5n0iU+M09g9Pculm8obpl1guIueM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784659974; 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=eGbMR0aSKnypH9C761cx/29efStMBRI8uI8HtMSi64I=; b=ORt5EsjRarZsc2HwBBrhkWczdhp0NvNPlp6ZYgZGuNbdG4zZ9SO9PqMGmAu9dYnv6R653AxrRRHXx0J/1i0xNNMlgGJ3E4Y34TTAzJhfXH65C1U5atelvfuiNRwny2RdaSEwqWIcRbRc8NZHt8BRyqx+p3ST/Gd58coESwFuZTo= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784659974564781.1820093463513; Tue, 21 Jul 2026 11:52:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wmFW8-0001UI-P8; Tue, 21 Jul 2026 14:48:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wmFUw-00016K-Fq for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:23 -0400 Received: from mail-pj1-x1036.google.com ([2607:f8b0:4864:20::1036]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wmFUu-0006gX-Ke for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:22 -0400 Received: by mail-pj1-x1036.google.com with SMTP id 98e67ed59e1d1-38e08baf860so9294087a91.2 for ; Tue, 21 Jul 2026 11:47:20 -0700 (PDT) Received: from stoup.. ([32.140.233.50]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-13ce29e340esm41108094c88.5.2026.07.21.11.47.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jul 2026 11:47:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1784659639; x=1785264439; 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:content-type; bh=eGbMR0aSKnypH9C761cx/29efStMBRI8uI8HtMSi64I=; b=Fn5/r9Y/mJBpTr6058Z+zK3mDNZP74hwTba44P5xjAWUv1bapFiADQAEfAaV/yf4xB iAyAzKM8BubRTbYSEKzo3aevHQxGtFgTuJcBHZ6hNuLf6IhzC3t+hPIA47ZCrk7T+zWw /V2loj0L9fdr10USQeP5pvSOHb266MSe8DE+Z5qO9tA2sREfaoAINyHkc4spPfq5o7dI Veru6zvI93AiqVTcEDxIYFEn84KTlCN9kVMQxHKs7AOP/EyfKQrN+m/82mDsXM8p3jkg PjZqR4vDFLmAA1kUnqMD6RXlchiEwQww/jKKPGFyzF6/XCeoIe4QE1It3WxI/x8bCd5y OB1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784659639; x=1785264439; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=eGbMR0aSKnypH9C761cx/29efStMBRI8uI8HtMSi64I=; b=P+h7MVDHKYqpNd7HEXpaFuBluGbgQS0ioRXJUP783tlUqZUFGfwR/77ZWnCDyoAPd1 B2mN2QRiZM7zNx5AM598Vd5994ug11d0ZfZ7kl6YyTVwTB52PHzXPtncpoT24T0Klnj+ +ZyEb3/bnldBKjXD7Mjf1J0byh6KfySDuuqkYMhPDRg1TcUd37csElfQh+9c3yOCyoYk SVUbIV6Nj4jjAOqLnWHVwFGr3P1M/Uzug/Hn7aSUhijjiS1Rw33aEXVJVDUGc3SQjH+s L2U+Cb0sd/rYtwty+QiyaHAc8pFhSXJBRZAujXmR+qAv6Lgx9ChYJMwnnU4/tEw++5fC SL3g== X-Gm-Message-State: AOJu0YwWnCHfWnqNvXSfO4UY90YU2q7j6DpkY0A8D/MgEOSg/4TSQgAj LmAO9GumwXu+WnajspHNMQoMX6FIgF2A2t1Zw8jWvLUUnqRfWr1o761+auHM669xayYC+jqOA0o kJsct X-Gm-Gg: AfdE7clRcT5LjcKiUSvj1m6tnibQoNjWl50bMAMMM9dEIHTqvWTFbsfKRJqe5/qBU5g HnTXwjFH5m7D4iAeGrFRFbjojLOiRgzDnPq9g/tFbMojZBrz/wq2OdGxh5ROI9Lv+vRthBWSS/x et7sAOUfbf5HP3d1Z8fk6mor6nMrbYxYovEnS7vVlHQxvnRNOWpFEWPoT11wUnpIIyMzfsOY3ve 5clW43VIcfX4o/Lm8Sxhtn95oZdIkqYZeA80O2KmQnc0rNc3GYx7SL0p6nOHUonAVyVr9lRNCU7 e5pLZWWEGLYqK5NCej9dhDzOaRsUpNcsGuZ9T41G/peYjucime79tsALAdUNNxmxs6izAGvyuHV n0L3XS1TnbYkiOApmg5FpAk1jlguhTjut0TyMVPXHcCk4tGecyql+v0l+NQGp9oYDBqBhxKnpHo M/O8DLcnIfVke15kchmw== X-Received: by 2002:a05:6a21:c14e:10b0:3c3:bf10:419a with SMTP id adf61e73a8af0-3c3bf1044efmr17259965637.71.1784659639203; Tue, 21 Jul 2026 11:47:19 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH 16/20] target/arm: Implement AESD (indexed) Date: Tue, 21 Jul 2026 11:46:52 -0700 Message-ID: <20260721184656.530230-17-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260721184656.530230-1-richard.henderson@linaro.org> References: <20260721184656.530230-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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1036; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1036.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: qemu development 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: 1784659976460158501 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/helper-defs.h | 1 + target/arm/tcg/crypto_helper.c | 47 +++++++++++++++++++++++++--------- target/arm/tcg/translate-sve.c | 2 ++ target/arm/tcg/sve.decode | 3 +++ 4 files changed, 41 insertions(+), 12 deletions(-) diff --git a/target/arm/tcg/helper-defs.h b/target/arm/tcg/helper-defs.h index 9d71277b47..3719487754 100644 --- a/target/arm/tcg/helper-defs.h +++ b/target/arm/tcg/helper-defs.h @@ -463,6 +463,7 @@ DEF_HELPER_FLAGS_3(crypto_aesmc, TCG_CALL_NO_RWG, void,= ptr, ptr, i32) DEF_HELPER_FLAGS_3(crypto_aesimc, TCG_CALL_NO_RWG, void, ptr, ptr, i32) =20 DEF_HELPER_FLAGS_4(crypto_aese_idx, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, = i32) +DEF_HELPER_FLAGS_4(crypto_aesd_idx, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, = i32) =20 DEF_HELPER_FLAGS_4(crypto_sha1su0, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i= 32) DEF_HELPER_FLAGS_4(crypto_sha1c, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32) diff --git a/target/arm/tcg/crypto_helper.c b/target/arm/tcg/crypto_helper.c index 27b5813b6d..05f193b3d1 100644 --- a/target/arm/tcg/crypto_helper.c +++ b/target/arm/tcg/crypto_helper.c @@ -99,6 +99,23 @@ void HELPER(crypto_aese_idx)(void *vd, void *vn, void *v= m, uint32_t desc) } while (s > 0); } =20 +static void aesd_kernel(AESState *ad, const AESState *st, const AESState *= rk) +{ + AESState t; + + /* Our uint64_t are in the wrong order for big-endian. */ + if (HOST_BIG_ENDIAN) { + t.d[0] =3D st->d[1] ^ rk->d[1]; + t.d[1] =3D st->d[0] ^ rk->d[0]; + aesdec_ISB_ISR_AK(&t, &t, &aes_zero, false); + ad->d[0] =3D t.d[1]; + ad->d[1] =3D t.d[0]; + } else { + t.v =3D st->v ^ rk->v; + aesdec_ISB_ISR_AK(ad, &t, &aes_zero, false); + } +} + void HELPER(crypto_aesd)(void *vd, void *vn, void *vm, uint32_t desc) { intptr_t i, opr_sz =3D simd_oprsz(desc); @@ -107,23 +124,29 @@ void HELPER(crypto_aesd)(void *vd, void *vn, void *vm= , uint32_t desc) AESState *ad =3D (AESState *)(vd + i); AESState *st =3D (AESState *)(vn + i); AESState *rk =3D (AESState *)(vm + i); - AESState t; =20 - /* Our uint64_t are in the wrong order for big-endian. */ - if (HOST_BIG_ENDIAN) { - t.d[0] =3D st->d[1] ^ rk->d[1]; - t.d[1] =3D st->d[0] ^ rk->d[0]; - aesdec_ISB_ISR_AK(&t, &t, &aes_zero, false); - ad->d[0] =3D t.d[1]; - ad->d[1] =3D t.d[0]; - } else { - t.v =3D st->v ^ rk->v; - aesdec_ISB_ISR_AK(ad, &t, &aes_zero, false); - } + aesd_kernel(ad, st, rk); } clear_tail(vd, opr_sz, simd_maxsz(desc)); } =20 +void HELPER(crypto_aesd_idx)(void *vd, void *vn, void *vm, uint32_t desc) +{ + intptr_t opr_sz =3D simd_oprsz(desc); + intptr_t idx =3D simd_data(desc); + void *vm_idx =3D vm + idx * 16; + intptr_t s =3D opr_sz - 16; + + do { + intptr_t base =3D ROUND_DOWN(s, 4 * 16); + AESState rk =3D *(AESState *)(vm_idx + base); + do { + aesd_kernel(vd + s, vn + s, &rk); + s -=3D 16; + } while (s >=3D base); + } while (s > 0); +} + void HELPER(crypto_aesmc)(void *vd, void *vm, uint32_t desc) { intptr_t i, opr_sz =3D simd_oprsz(desc); diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 5b6b66aaef..340ed7d975 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8334,6 +8334,8 @@ static bool do_aes2_idx(DisasContext *s, arg_rx_n *a,= gen_helper_gvec_3 *fn) =20 TRANS_FEAT_STREAMING_IF(AESE_idx, aa64_sve_aes2, aa64_ssve_aes, do_aes2_idx, a, gen_helper_crypto_aese_idx) +TRANS_FEAT_STREAMING_IF(AESD_idx, aa64_sve_aes2, aa64_ssve_aes, + do_aes2_idx, a, gen_helper_crypto_aesd_idx) =20 TRANS_FEAT(FCVTNT_sh_m, aa64_sme_or_sve2, gen_gvec_fpst_arg_zpz, gen_helper_sve2_fcvtnt_sh, a, 0, FPST_A64) diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index 64e0dd0eae..1ab1b4042b 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -1985,6 +1985,9 @@ SM4E 01000101 00 10001 1 11100 0 ..... ...= .. @rdn_rm_e0 AESE_idx 01000101 00 1 .. .10111010 ..... ....0 @aes2_2 AESE_idx 01000101 00 1 .. .10111010 ..... ...00 @aes2_4 =20 +AESD_idx 01000101 00 1 .. .10111011 ..... ....0 @aes2_2 +AESD_idx 01000101 00 1 .. .10111011 ..... ...00 @aes2_4 + # SVE2 crypto constructive binary operations SM4EKEY 01000101 00 1 ..... 11110 0 ..... ..... @rd_rn_rm_e0 RAX1 01000101 00 1 ..... 11110 1 ..... ..... @rd_rn_rm_e0 --=20 2.43.0 From nobody Sat Jul 25 08:55:11 2026 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=1784659992; cv=none; d=zohomail.com; s=zohoarc; b=YLBDvJ0xUJZIFxLihLZn68SWQl4JrA2xgWOvn/EGPoyY0hvQOWm1bHahnXtWnwqzvmPBC3g9r7TWcV5MS6A9ZATJCIbqhu5zPheEtiLFK//dt309ZrJ4PunqZJcVfLZuPmVkl94sVBZntE0mirMxdOifZjga7ohVfG1XlcSBMtE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784659992; 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=sL+rE8bzClQp41r4HP9i0GOM/CIvCebJMLV9vj+gMvI=; b=VeZQ4IEG1U3eLHtQ/VuDNGylTbst863ij1BwqE3pYPhV6VU3lSATbU72Ga4dJvYv1Wfcp1jIQF8dhOv3zePyTn7YcDw5oUhO4Lab1P0SxkUdGB87ctKpal6+satyaS4fuCNP1VrzYh5f/eFMuQaKLh6YXP5qgomqzGWv6+h+qOk= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784659992427142.09689256109664; Tue, 21 Jul 2026 11:53:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wmFWq-0002Ch-SC; Tue, 21 Jul 2026 14:49:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wmFUx-00017T-L8 for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:25 -0400 Received: from mail-pj1-x1031.google.com ([2607:f8b0:4864:20::1031]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wmFUv-0006gs-VO for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:23 -0400 Received: by mail-pj1-x1031.google.com with SMTP id 98e67ed59e1d1-38dd55ad76cso4428717a91.1 for ; Tue, 21 Jul 2026 11:47:21 -0700 (PDT) Received: from stoup.. ([32.140.233.50]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-13ce29e340esm41108094c88.5.2026.07.21.11.47.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jul 2026 11:47:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1784659640; x=1785264440; 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:content-type; bh=sL+rE8bzClQp41r4HP9i0GOM/CIvCebJMLV9vj+gMvI=; b=F9aOuu5xMvWGeVs0RIppG3LgYgGr7dzUAfrlWZYQIrNHwDJ2Zh1oOfi3nefff2mlcR DovDablKyLAjn9zzXvYUREHNFyNqtwDQRhGHa9ldbR1zGK11zUuo+eaUSY3vVVfox9Fh fWOjisA3WeAu7NfgvHyQ1GCfcJJTHZZ77RA72xJUhU9UnEh5xXVYKJKh0N3S0qyNlmVv 739VxRXjtgdLuWvkU6y4iLVZWkJnDi1QEa+jbkbrdgN1pkWRQfS6tBrgUR6FTLpXI88t mTqsPYHkEBQ+u25PQnaS6A/J6UoRTZy0blcZrsUerl/hN5ecjQPihsm45jHuwdBvuR3f ecvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784659640; x=1785264440; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=sL+rE8bzClQp41r4HP9i0GOM/CIvCebJMLV9vj+gMvI=; b=COSMsVKXyQqZWsXDUmCIXjhG8YJ6WZWB3tGb/AOcF9I+fT9344z33nZfCP6tZx2OXi 36tC/PXRPJ7/DBlGwmo/DIJOmJCSVzz8HrJNoBId46i3WB0imZfALG5Na3kdjwaJK1ZQ 6+cm+nkoii4euZC2dl3krz9pHOsYXnUPIjlQ7le6XuuAuoRcVXunIPymfyMmE18cfIy2 zwnkNjDLcw4LUqFtT72JUKVvMjnDR6zAcgEm81Hc9GdNXjlyk/BpvW58PiCWgis0+ULR BMWFSmFjM+k/VMUYdPP455qfpPKtfUZXGWswcf3lyEe+er5CJCsOHGp8n1Fi4ofWibsl cS2A== X-Gm-Message-State: AOJu0YxqCOF+Irr7vaeYD7eTC/8Z8sYARnoi3Ogo4GhJulWsXfNt0blR uA+g93ATEoMMEYDCIMq0jGp2Nl0LCyk+epCTYiY3Skz+7J3WAUeT57y4uP9iACMTQRxwFgJjVMr V4ZVf X-Gm-Gg: AR+sD10i52R57pVV0YVOjnHQW6xkG/mtRDwMbl7BX8dOI2j2RLGRuyLk/n0Z249b9MM fZumAhQ2lRx4qNiQRR1OW5tRKV3sU7EClc/M8aRpB6CX0OLMtZyWbrSabBcrXt3gNpuzzDN0/vi VKgsIcQpGdvDi+MCglr3mniGdVjdCUF8bdw8Cm1Abwv3WM/mBVWiw1FMxBy79zVSsm/sX9hxfG5 8zz97L5UjOGCYZmfKlhLam8Cew9CqVKnjk8yDqrWdzNOj7fbUUvKkQxEJtbCYRFpfYhY6nenA5R PawbNRQ36k+n4jBR+O+XWbHSacpKJKWzg4o5X4DnWpS77fIbYgkTV2Li5GB/bWhWpjrQ8v1He/a qEp2AE83c6PQiwKOXiLOpm35+IW0kT/kUhQCGIPzfe+6ffP/97lf9f/wOATxSfUgQfl2zhKA1qP abftx74jE= X-Received: by 2002:a17:90b:2c88:b0:381:10a3:8b10 with SMTP id 98e67ed59e1d1-38ea375f22amr660291a91.14.1784659640350; Tue, 21 Jul 2026 11:47:20 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH 17/20] target/arm: Implement AESEMC Date: Tue, 21 Jul 2026 11:46:53 -0700 Message-ID: <20260721184656.530230-18-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260721184656.530230-1-richard.henderson@linaro.org> References: <20260721184656.530230-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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1031; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1031.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=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development 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: 1784659994509158501 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/helper-defs.h | 1 + target/arm/tcg/crypto_helper.c | 31 +++++++++++++++++++++++++++++++ target/arm/tcg/translate-sve.c | 2 ++ target/arm/tcg/sve.decode | 3 +++ 4 files changed, 37 insertions(+) diff --git a/target/arm/tcg/helper-defs.h b/target/arm/tcg/helper-defs.h index 3719487754..5ab89dc886 100644 --- a/target/arm/tcg/helper-defs.h +++ b/target/arm/tcg/helper-defs.h @@ -461,6 +461,7 @@ DEF_HELPER_FLAGS_4(crypto_aese, TCG_CALL_NO_RWG, void, = ptr, ptr, ptr, i32) DEF_HELPER_FLAGS_4(crypto_aesd, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32) DEF_HELPER_FLAGS_3(crypto_aesmc, TCG_CALL_NO_RWG, void, ptr, ptr, i32) DEF_HELPER_FLAGS_3(crypto_aesimc, TCG_CALL_NO_RWG, void, ptr, ptr, i32) +DEF_HELPER_FLAGS_4(crypto_aesemc, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i3= 2) =20 DEF_HELPER_FLAGS_4(crypto_aese_idx, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, = i32) DEF_HELPER_FLAGS_4(crypto_aesd_idx, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, = i32) diff --git a/target/arm/tcg/crypto_helper.c b/target/arm/tcg/crypto_helper.c index 05f193b3d1..ae677cdf20 100644 --- a/target/arm/tcg/crypto_helper.c +++ b/target/arm/tcg/crypto_helper.c @@ -193,6 +193,37 @@ void HELPER(crypto_aesimc)(void *vd, void *vm, uint32_= t desc) clear_tail(vd, opr_sz, simd_maxsz(desc)); } =20 +void HELPER(crypto_aesemc)(void *vd, void *vn, void *vm, uint32_t desc) +{ + intptr_t opr_sz =3D simd_oprsz(desc); + intptr_t idx =3D simd_data(desc); + void *vm_idx =3D vm + idx * 16; + intptr_t s =3D opr_sz - 16; + + do { + intptr_t base =3D ROUND_DOWN(s, 4 * 16); + AESState rk =3D *(AESState *)(vm_idx + base); + do { + AESState *ad =3D (AESState *)(vd + s); + AESState *st =3D (AESState *)(vn + s); + AESState t; + + /* Like above: Arm AK comes first; api AK comes last */ + if (HOST_BIG_ENDIAN) { + t.d[0] =3D st->d[1] ^ rk.d[1]; + t.d[1] =3D st->d[0] ^ rk.d[0]; + aesenc_SB_SR_MC_AK(&t, &t, &aes_zero, false); + ad->d[0] =3D t.d[1]; + ad->d[1] =3D t.d[0]; + } else { + t.v =3D st->v ^ rk.v; + aesenc_SB_SR_MC_AK(ad, &t, &aes_zero, false); + } + s -=3D 16; + } while (s >=3D base); + } while (s > 0); +} + /* * SHA-1 logical functions */ diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 340ed7d975..fb809b905f 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8336,6 +8336,8 @@ TRANS_FEAT_STREAMING_IF(AESE_idx, aa64_sve_aes2, aa64= _ssve_aes, do_aes2_idx, a, gen_helper_crypto_aese_idx) TRANS_FEAT_STREAMING_IF(AESD_idx, aa64_sve_aes2, aa64_ssve_aes, do_aes2_idx, a, gen_helper_crypto_aesd_idx) +TRANS_FEAT_STREAMING_IF(AESEMC, aa64_sve_aes2, aa64_ssve_aes, + do_aes2_idx, a, gen_helper_crypto_aesemc) =20 TRANS_FEAT(FCVTNT_sh_m, aa64_sme_or_sve2, gen_gvec_fpst_arg_zpz, gen_helper_sve2_fcvtnt_sh, a, 0, FPST_A64) diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index 1ab1b4042b..5832e0190c 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -1988,6 +1988,9 @@ AESE_idx 01000101 00 1 .. .10111010 ..... ...0= 0 @aes2_4 AESD_idx 01000101 00 1 .. .10111011 ..... ....0 @aes2_2 AESD_idx 01000101 00 1 .. .10111011 ..... ...00 @aes2_4 =20 +AESEMC 01000101 00 1 .. .11111010 ..... ....0 @aes2_2 +AESEMC 01000101 00 1 .. .11111010 ..... ...00 @aes2_4 + # SVE2 crypto constructive binary operations SM4EKEY 01000101 00 1 ..... 11110 0 ..... ..... @rd_rn_rm_e0 RAX1 01000101 00 1 ..... 11110 1 ..... ..... @rd_rn_rm_e0 --=20 2.43.0 From nobody Sat Jul 25 08:55:11 2026 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=1784659828; cv=none; d=zohomail.com; s=zohoarc; b=Zu52QYsc/figy8Dy/mnj/ZdQ2fRrFUCTzw4JBZDttEkKDUbrXbHpQC8cp+iDcWnwWz+nUZSGzcdlPllhA7C4dNIXKU+iZ/RKwlgRDAGjSdk4NQLNvlkHu40n3LyxzGvufAZxETxPeKmO/w6uyKDRLpDKVQ4EnKYT3Gi/0WyseIA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784659828; 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=NhK2v74jPl6sco11TVadwgtLgP0DbJfsGnTVqcg2MGY=; b=gQrlpvdSC2+Uj4XN04x0MJ+dRIGmanU2bjbhKPUnP6ygdl29hkvtT25YEkfDwg5s51K0OXfOCQzjRiPJq38ZlXcO03JMmwevdExCrhXLB6Eyo1CKa5ymmCYNkkYI8PpyZkY0SV7XxnR2KqugCcI+WGe2u10DMCrJUhQhD6jXUEI= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784659828766299.6339201674839; Tue, 21 Jul 2026 11:50:28 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wmFWn-00024t-5y; Tue, 21 Jul 2026 14:49:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wmFUz-00017n-Ey for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:25 -0400 Received: from mail-pf1-x431.google.com ([2607:f8b0:4864:20::431]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wmFUx-0006hE-4Y for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:24 -0400 Received: by mail-pf1-x431.google.com with SMTP id d2e1a72fcca58-848643382fcso12755648b3a.1 for ; Tue, 21 Jul 2026 11:47:22 -0700 (PDT) Received: from stoup.. ([32.140.233.50]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-13ce29e340esm41108094c88.5.2026.07.21.11.47.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jul 2026 11:47:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1784659641; x=1785264441; 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:content-type; bh=NhK2v74jPl6sco11TVadwgtLgP0DbJfsGnTVqcg2MGY=; b=yZmVTpBX6UYp6hpvtMaBDacNy7UkDCt6xoAYXGnrair9GFmXc94NH4e56PvbII1ns7 Yeh0xMbdH/UhynR9mUqfJYRBrBkxGGlcP7Z2fiwuLeybd60Lgp79qM50ZaoAP7hYIUB2 V/tobroENv/qhtbSTd7EuWq3GccqhQ1Vlsgn/Jow1Uz3TRY/kEiaR8m1qUa4mk5iOYzR knjtOz7dVEruh4EfUQu8CcxiwzmP2NxLMFiA6dApc2+E6EPurYLOvoRxmPqAuvZlkegw TAYHjpWaqr3bixuml20oLpBWEYxwJ3LWne0jYCRC+PC58Ni/X2UAgPv4OvPbL0VaCxC1 CSjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784659641; x=1785264441; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=NhK2v74jPl6sco11TVadwgtLgP0DbJfsGnTVqcg2MGY=; b=LPYM/EYH4Wuho7qqmFCAw5NObcTRpP2Ra3765nDdObUEDNNtmK9D95yfL1u9yTLdkK 5SZEbJXR01bEees3G5ZIQwN6VKUYyOVhJEYqKKFW4jXio586m4Uu7aW1kKr4qM0GLbLi J1dGCqCYEn3rCnNm3+2cogVy3ZW6VEilJKrWvHzfGSiByfxodi3dMx6Y320D3h5RF2rg 6pr5ZwdWqG+2Vm/BOTGSDWBE4STc538EWjw9cDGykTs4Hn/qSA5A0t4zDs2nA6x0n7qz MxpSRHtYzof3Qs+3RSLX618lPFMvBwBl/qkESaQTQYoGE3UVeMttUXpuCXc2yEaqnFVG 6Kgw== X-Gm-Message-State: AOJu0YzLi1COQXTZN/G6Avxqa4JBYMGxGyKD8RkkrEaHCwVBlgrCnS/G Txt3lI2It/PGHVMUP23cLGhAeJ960YUPYPwdMTf3PUHCI+z8beIHCXpt9Av6JLAM5kTK2hcNlrS fJLoj X-Gm-Gg: AR+sD12YvKdEq7fpoQ9rb+4CG0ul9u5lMufXzeRKNjwCuvPEuA4dKB75xA6S2qz3AP4 +T+6e1cqLyhTJtVIpqEPa7yYUYEMUot/OCPmbaBoznaEjOYAF9MxxmEmDJYMnZd1nQat+B4d66p r45CpGt5mZsgS6U0Qfh7fbsz0jTO0+A8K70OO6u/b3Qr0K8V+0X3KkisjuH6/dEkNUAH/01MgSR e/4fr9xM65F4Fjn6aOYm2QQJAoPyyJF8AFEi7E4tqwPhF94/nj+uX85jW+kIj3G1NH6KdHjuga8 hH5o1xAjRrVVAJY9/zHxA1CK5O0ApfUgBgcbZ+an1tr7Ntlbz4MqjZ+23XvJdmSUkEtzNlrx24e E4fYaw34So9+I6JQ+5jNDrOdC2mhPvraRR+KuIzrKu562fYiF03r32XzU0e/z/hANNOifgk9fc9 /eRVQUxLU= X-Received: by 2002:a05:6a21:a8b:b0:3c3:a024:1360 with SMTP id adf61e73a8af0-3c3ad7a88b9mr22226712637.28.1784659641326; Tue, 21 Jul 2026 11:47:21 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH 18/20] target/arm: Implement AESDIMC Date: Tue, 21 Jul 2026 11:46:54 -0700 Message-ID: <20260721184656.530230-19-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260721184656.530230-1-richard.henderson@linaro.org> References: <20260721184656.530230-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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::431; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x431.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: qemu development 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: 1784659830181158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/helper-defs.h | 1 + target/arm/tcg/crypto_helper.c | 31 +++++++++++++++++++++++++++++++ target/arm/tcg/translate-sve.c | 2 ++ target/arm/tcg/sve.decode | 3 +++ 4 files changed, 37 insertions(+) diff --git a/target/arm/tcg/helper-defs.h b/target/arm/tcg/helper-defs.h index 5ab89dc886..1d1f290f6b 100644 --- a/target/arm/tcg/helper-defs.h +++ b/target/arm/tcg/helper-defs.h @@ -462,6 +462,7 @@ DEF_HELPER_FLAGS_4(crypto_aesd, TCG_CALL_NO_RWG, void, = ptr, ptr, ptr, i32) DEF_HELPER_FLAGS_3(crypto_aesmc, TCG_CALL_NO_RWG, void, ptr, ptr, i32) DEF_HELPER_FLAGS_3(crypto_aesimc, TCG_CALL_NO_RWG, void, ptr, ptr, i32) DEF_HELPER_FLAGS_4(crypto_aesemc, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i3= 2) +DEF_HELPER_FLAGS_4(crypto_aesdimc, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i= 32) =20 DEF_HELPER_FLAGS_4(crypto_aese_idx, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, = i32) DEF_HELPER_FLAGS_4(crypto_aesd_idx, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, = i32) diff --git a/target/arm/tcg/crypto_helper.c b/target/arm/tcg/crypto_helper.c index ae677cdf20..07d008c1be 100644 --- a/target/arm/tcg/crypto_helper.c +++ b/target/arm/tcg/crypto_helper.c @@ -224,6 +224,37 @@ void HELPER(crypto_aesemc)(void *vd, void *vn, void *v= m, uint32_t desc) } while (s > 0); } =20 +void HELPER(crypto_aesdimc)(void *vd, void *vn, void *vm, uint32_t desc) +{ + intptr_t opr_sz =3D simd_oprsz(desc); + intptr_t idx =3D simd_data(desc); + void *vm_idx =3D vm + idx * 16; + intptr_t s =3D opr_sz - 16; + + do { + intptr_t base =3D ROUND_DOWN(s, 4 * 16); + AESState rk =3D *(AESState *)(vm_idx + base); + do { + AESState *ad =3D (AESState *)(vd + s); + AESState *st =3D (AESState *)(vn + s); + AESState t; + + /* Like above: Arm AK comes first; api AK comes last */ + if (HOST_BIG_ENDIAN) { + t.d[0] =3D st->d[1] ^ rk.d[1]; + t.d[1] =3D st->d[0] ^ rk.d[0]; + aesdec_ISB_ISR_IMC_AK(&t, &t, &aes_zero, false); + ad->d[0] =3D t.d[1]; + ad->d[1] =3D t.d[0]; + } else { + t.v =3D st->v ^ rk.v; + aesdec_ISB_ISR_IMC_AK(ad, &t, &aes_zero, false); + } + s -=3D 16; + } while (s >=3D base); + } while (s > 0); +} + /* * SHA-1 logical functions */ diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index fb809b905f..14378cf066 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8338,6 +8338,8 @@ TRANS_FEAT_STREAMING_IF(AESD_idx, aa64_sve_aes2, aa64= _ssve_aes, do_aes2_idx, a, gen_helper_crypto_aesd_idx) TRANS_FEAT_STREAMING_IF(AESEMC, aa64_sve_aes2, aa64_ssve_aes, do_aes2_idx, a, gen_helper_crypto_aesemc) +TRANS_FEAT_STREAMING_IF(AESDIMC, aa64_sve_aes2, aa64_ssve_aes, + do_aes2_idx, a, gen_helper_crypto_aesdimc) =20 TRANS_FEAT(FCVTNT_sh_m, aa64_sme_or_sve2, gen_gvec_fpst_arg_zpz, gen_helper_sve2_fcvtnt_sh, a, 0, FPST_A64) diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index 5832e0190c..7030d81db7 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -1991,6 +1991,9 @@ AESD_idx 01000101 00 1 .. .10111011 ..... ...0= 0 @aes2_4 AESEMC 01000101 00 1 .. .11111010 ..... ....0 @aes2_2 AESEMC 01000101 00 1 .. .11111010 ..... ...00 @aes2_4 =20 +AESDIMC 01000101 00 1 .. .11111011 ..... ....0 @aes2_2 +AESDIMC 01000101 00 1 .. .11111011 ..... ...00 @aes2_4 + # SVE2 crypto constructive binary operations SM4EKEY 01000101 00 1 ..... 11110 0 ..... ..... @rd_rn_rm_e0 RAX1 01000101 00 1 ..... 11110 1 ..... ..... @rd_rn_rm_e0 --=20 2.43.0 From nobody Sat Jul 25 08:55:11 2026 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=1784659904; cv=none; d=zohomail.com; s=zohoarc; b=Jpo4k6rh8cxRmHQ+Ic9sKetKdNnsylVZDo6DFWwMtrEZ7fJ+TdhXTt1gWWzeEXdZseJ16+jncoWObJQYEyh8RlqqBDdQVUi9UORSmf9QpmAqakSizyfmdMOlSRVVQ2u0FoS85ms0p0ISsI63f7h2zbJYi95AbuavBnFlKPM7ELo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784659904; 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=DcdpeRn0/HAEk3CxOheIPUYZqTxloeiJkVjw0K4nE7M=; b=fk3LzgZviXDjvI9WSjyJ5SRAPdVjUKlc13tGJjMqc6FjfHXWr+a0Sf/8gsr9vQBCffQ6IWudz8SnrTDaV5CZ6IG0GMDc9rNlfNKT8cyIDx2NtNWpRFv5muDG12ChxmyP4UIInlIqMwPh1EvsC+5LYo+aZuG1/s+vpOXVZjV+6FM= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784659903969223.18600040349338; Tue, 21 Jul 2026 11:51:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wmFWS-0001Wm-Fh; Tue, 21 Jul 2026 14:49:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wmFV1-00018H-EP for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:28 -0400 Received: from mail-pg1-x52f.google.com ([2607:f8b0:4864:20::52f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wmFUx-0006hX-Uc for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:26 -0400 Received: by mail-pg1-x52f.google.com with SMTP id 41be03b00d2f7-ca913a601fbso7850225a12.3 for ; Tue, 21 Jul 2026 11:47:23 -0700 (PDT) Received: from stoup.. ([32.140.233.50]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-13ce29e340esm41108094c88.5.2026.07.21.11.47.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jul 2026 11:47:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1784659642; x=1785264442; 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:content-type; bh=DcdpeRn0/HAEk3CxOheIPUYZqTxloeiJkVjw0K4nE7M=; b=icZCmyq2eADQlLqLIewcw/1DS/OhAxVELYQYo9fAo6EsfGuxqMvsgF3WJXg/QPrNPU qLEVdHUtUVoetQQBH9OBRzBlbDwoBky6dTG5B0Q9Gmgu8AQORyimrmXwN/gWkGNCiCiZ uz22qV9BtTi2CrSaXFlcAHtbU0efFMiSUHNtHZiG/8cBCHktfLrsuT0yNXi93U6Pmn9V XJ9YO9Qr4GnUps0r/kOOVzT3jfoi1OpZhKVfNrZxgD0NzxpcA3X8y0+riAsmaJ1NkdgD zRw6FYbajXvMLkaZ1pl/OtUGGyVXIs9FWpf8RATeiNe8YF6F6skRSWOP5CPsvhm1EN7F CBpg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784659642; x=1785264442; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=DcdpeRn0/HAEk3CxOheIPUYZqTxloeiJkVjw0K4nE7M=; b=HRR3kIO3NyP6LJWB6+8dC3x5n18Em1mwAPqXigOZzUnFzaF9w58GqYCd2mFMBp4xzT MuxBKhJGns2t8+TMo9o/1daqOPKJ2pJNpUEhAH3PTIeLZ04bACK5ARewF004P0fo0OYZ CpWjTrdUT0pv+YHMbNw0Gh1hO70KozVaGSseLvYaW3See2svukwzeG0GbxkFdVg6t8Lt LL8K8J22KmBn4H7pLJYZiKqETQDj64Cju75t46aLQc9EczzSUF9sXUFQDBs6y+NcTS4o Vdr5oMdQaVdzSgE7KXSo7OfSEN4kKoY7mE3n7xE9QJExf8uVKPOGlLJszrdpuFTCGEYD 5JRA== X-Gm-Message-State: AOJu0Yx380yME7CE6WMsE3C1epibRDV8HQ+U5Mkq3UaZ4uowChZ0imM9 dceoeFFXXYjBrblnSnzgBmOXl82BsUt494SvMtw/zvR+gwc15On/O+hdVG5Lu34PwtmiMnl46K0 Li/Mr X-Gm-Gg: AfdE7clB9JWaSz0pSNeZ0xurwWclzs2VsteEXN/AWNTpUxH4+pGh2krif6OXH0GVBhQ EI1I7JHv2Z9qrTePzkQTWtALr25Sf4VCMYopWat4T3Shm4zu3n3Lqyw0eIg8fdex3i2VPRgEFr4 O/c/ewqdieMbHy+U3lb8C9OjxbVxy62gpklwR2f9ng11JS89O1t/vct7LbV9tzFRFJn19JqvNLr R04+3SQOdpdNQEued8Sv5kVVe5GYXZQQhdbuKvVXoma1nNxs84UCP0/BMF15B6/bq18x3CPMJo0 /xdOzl2oSkIGLyx1S2/DGWPyZkdaO4f2+M2YLWPrS/Yd8cX6dLXLiQ6HxO+Btcav8M2QcFqNDe0 TE6HUadW45noYUYgUrSONHgYJf1ZRkwoEZLYNpXbZY1LhPR0soRXGhCbrLTcyYF0MKIW8UrWth4 nmN2PWSXc= X-Received: by 2002:a05:6300:6d8a:10b0:3c4:13c:2ed3 with SMTP id adf61e73a8af0-3c4013c4b98mr6664400637.69.1784659642377; Tue, 21 Jul 2026 11:47:22 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH 19/20] target/arm: Implement PMULL, PMLAL Date: Tue, 21 Jul 2026 11:46:55 -0700 Message-ID: <20260721184656.530230-20-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260721184656.530230-1-richard.henderson@linaro.org> References: <20260721184656.530230-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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::52f; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x52f.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: qemu development 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: 1784659904494158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/helper-sve-defs.h | 3 +++ target/arm/tcg/translate-sve.c | 5 +++++ target/arm/tcg/vec_helper64.c | 30 ++++++++++++++++++++++++++++++ target/arm/tcg/sve.decode | 5 +++++ 4 files changed, 43 insertions(+) diff --git a/target/arm/tcg/helper-sve-defs.h b/target/arm/tcg/helper-sve-d= efs.h index f78e77662d..498468a772 100644 --- a/target/arm/tcg/helper-sve-defs.h +++ b/target/arm/tcg/helper-sve-defs.h @@ -3215,3 +3215,6 @@ DEF_HELPER_FLAGS_4(sve_expand_b, TCG_CALL_NO_WG, void= , ptr, ptr, ptr, i32) DEF_HELPER_FLAGS_4(sve_expand_h, TCG_CALL_NO_WG, void, ptr, ptr, ptr, i32) DEF_HELPER_FLAGS_4(sve_expand_s, TCG_CALL_NO_WG, void, ptr, ptr, ptr, i32) DEF_HELPER_FLAGS_4(sve_expand_d, TCG_CALL_NO_WG, void, ptr, ptr, ptr, i32) + +DEF_HELPER_FLAGS_4(sve_pmull_q, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32) +DEF_HELPER_FLAGS_4(sve_pmlal_q, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32) diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 14378cf066..b7849b5be5 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8341,6 +8341,11 @@ TRANS_FEAT_STREAMING_IF(AESEMC, aa64_sve_aes2, aa64_= ssve_aes, TRANS_FEAT_STREAMING_IF(AESDIMC, aa64_sve_aes2, aa64_ssve_aes, do_aes2_idx, a, gen_helper_crypto_aesdimc) =20 +TRANS_FEAT_STREAMING_IF(PMULL, aa64_sve_aes2, aa64_ssve_aes, + gen_gvec_ool_arg_zzz, gen_helper_sve_pmull_q, a, 0) +TRANS_FEAT_STREAMING_IF(PMLAL, aa64_sve_aes2, aa64_ssve_aes, + gen_gvec_ool_arg_zzz, gen_helper_sve_pmlal_q, a, 0) + TRANS_FEAT(FCVTNT_sh_m, aa64_sme_or_sve2, gen_gvec_fpst_arg_zpz, gen_helper_sve2_fcvtnt_sh, a, 0, FPST_A64) TRANS_FEAT(FCVTNT_sh_z, aa64_sme2p2_or_sve2p2, gen_gvec_fpst_arg_zpz, diff --git a/target/arm/tcg/vec_helper64.c b/target/arm/tcg/vec_helper64.c index 8879969350..7d4e21b9c7 100644 --- a/target/arm/tcg/vec_helper64.c +++ b/target/arm/tcg/vec_helper64.c @@ -89,6 +89,36 @@ void HELPER(sve2_pmull_d)(void *vd, void *vn, void *vm, = uint32_t desc) } } =20 +void HELPER(sve_pmull_q)(void *vd, void *vn, void *vm, uint32_t desc) +{ + intptr_t opr_sz =3D simd_oprsz(desc); + uint64_t *n =3D vn, *m =3D vm; + Int128 *d0 =3D vd; + Int128 *d1 =3D vd + sizeof(ARMVectorReg); + + for (intptr_t i =3D 0; i < opr_sz / 16; ++i) { + Int128 rl =3D clmul_64(n[2 * i + 0], m[2 * i + 0]); + Int128 rh =3D clmul_64(n[2 * i + 1], m[2 * i + 1]); + d0[i] =3D rl; + d1[i] =3D rh; + } +} + +void HELPER(sve_pmlal_q)(void *vd, void *vn, void *vm, uint32_t desc) +{ + intptr_t opr_sz =3D simd_oprsz(desc); + uint64_t *n =3D vn, *m =3D vm; + Int128 *d0 =3D vd; + Int128 *d1 =3D vd + sizeof(ARMVectorReg); + + for (intptr_t i =3D 0; i < opr_sz / 16; ++i) { + Int128 rl =3D clmul_64(n[2 * i + 0], m[2 * i + 0]); + Int128 rh =3D clmul_64(n[2 * i + 1], m[2 * i + 1]); + d0[i] =3D int128_xor(d0[i], rl); + d1[i] =3D int128_xor(d1[i], rh); + } +} + DO_3OP_PAIR(gvec_ah_fmaxp_h, helper_vfp_ah_maxh, float16, H2) DO_3OP_PAIR(gvec_ah_fmaxp_s, helper_vfp_ah_maxs, float32, H4) DO_3OP_PAIR(gvec_ah_fmaxp_d, helper_vfp_ah_maxd, float64, /**/) diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index 7030d81db7..42f451ff9f 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -1994,6 +1994,11 @@ AESEMC 01000101 00 1 .. .11111010 ..... ...= 00 @aes2_4 AESDIMC 01000101 00 1 .. .11111011 ..... ....0 @aes2_2 AESDIMC 01000101 00 1 .. .11111011 ..... ...00 @aes2_4 =20 +PMULL 01000101 00 1 rm:5 111110 rn:5 ....0 \ + &rrr_esz esz=3D0 rd=3D%zd_ax2 +PMLAL 01000101 00 1 rm:5 111111 rn:5 ....0 \ + &rrr_esz esz=3D0 rd=3D%zd_ax2 + # SVE2 crypto constructive binary operations SM4EKEY 01000101 00 1 ..... 11110 0 ..... ..... @rd_rn_rm_e0 RAX1 01000101 00 1 ..... 11110 1 ..... ..... @rd_rn_rm_e0 --=20 2.43.0 From nobody Sat Jul 25 08:55:11 2026 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=1784659913; cv=none; d=zohomail.com; s=zohoarc; b=kuFsA20Uh9mnj11F8BK0cwG2M/A+6QRh/tb4CprJi4581deaVvH499K/6IUwCOaAIRE2/Vg3cpoD6y0MLtrlpC1eSKBpbuxq8LWbzwFsjPRn4TKWlZwKqMyaJv5gwpR1vtgwo0A6Djd82XFkyPvufLhCDPqiq75VAo6ASV+Ituw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1784659913; 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=veqhogoqyls198dbcRhu1qq+EqvvsqzxKAimddpRnic=; b=kWpjACOWVXAkHEDwidlgzVfreaekUcwKSJnJ5Hg4vyde4NY4VlqHX456o75ehNs+HB6OGC0ge3SFCyNRtDViZ2h6G+yphZUT55BzG2GQf2XGiU05JwF+Z9HwigTUZnB1Uzl+MFCT8p8iqlifsRCA8gn2uF3ucWF8fdtKjObknuo= 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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1784659913178436.4357508889002; Tue, 21 Jul 2026 11:51:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wmFXs-0003Wi-Nq; Tue, 21 Jul 2026 14:50:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wmFV2-00018L-1q for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:29 -0400 Received: from mail-pg1-x535.google.com ([2607:f8b0:4864:20::535]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wmFUz-0006i5-6a for qemu-devel@nongnu.org; Tue, 21 Jul 2026 14:47:27 -0400 Received: by mail-pg1-x535.google.com with SMTP id 41be03b00d2f7-c998fd549a8so7709323a12.2 for ; Tue, 21 Jul 2026 11:47:24 -0700 (PDT) Received: from stoup.. ([32.140.233.50]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-13ce29e340esm41108094c88.5.2026.07.21.11.47.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jul 2026 11:47:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1784659644; x=1785264444; 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:content-type; bh=veqhogoqyls198dbcRhu1qq+EqvvsqzxKAimddpRnic=; b=MoUT1W9IlbQqw05gnyZOj2QfwL1O/vLu5CWiLIDVMZt2s0B6RgGEcK8U4hQn5Cla6O rlbNYkvodrsVjAa4oF0q/8ptYUKGB6BRfAkdBP/PbZ+N53IRSzTLX3/4Zy0cGMtwxYlC KP4KJC/xZzmHSSPVxBDzsqW+10Dz7OvYJid3yaYRunJ+U4fZdUI0KMS7ggWx6L9bxUzn g2dzeAWp5+8+rksJZythhrrzpJO0+d6vU+YhNw6S8xiwd0CVTIm7P6hx55ra5E58j3/z 5P8Xt+cXV/lW3QTSpY3suMGsTuh/lw/85P/2TffydhqIFVp2SpJJmem3p5R2++I03Pa5 8Jbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784659644; x=1785264444; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=veqhogoqyls198dbcRhu1qq+EqvvsqzxKAimddpRnic=; b=FgsvCcB4D7cm8guq0hPnQtZ4d1LrDiKMpo8kG03BDbal1p4BDAh3jvz8bJC708A68w vU/c8LDDMRJcVxv1mHEdTO9YvMbcL+WtYE4Z7weOkAGjqZNuIXaT0/ilABR8tKSI0HI9 sXLR3jSuh1E9w34UU3KgBoyAYr1Cx6/cGa/c6cT0hG0de9Q2+nKMV5HL1fElKwcLlowK usOKBb1GSOB9efjdXwO3JughTx93sO0PdVoeuIovjsQegR7fKC265yLbMLAxSbqBGWef t2oW/0oXap7DDm7vFhkxrCsLSbjIHV6f86Iou52mzH7LHOKu9kdH+49fu8x9XUW4OOFs rcdA== X-Gm-Message-State: AOJu0YwFomRobM6ZFTuZXLA9EbVTuqWQPBjCtRTfM9fO9mcgV10HCgfk eMaKw1Ri5+5JS3/y4cmBVlMPIvLL8OMdfqGNFaVXfOvxBiSOLdiD0qdReU5OAjeH0SSUvzkx2v1 mhroi X-Gm-Gg: AR+sD13BIwKyV3dUGUr+9AhfeMKk/Q0IY4wEfjzf+qlX1BlnC7x/1VOT8gV7uAt2jM/ rpnjNvFy7bm/vJJZcQ/Ir74ug0zi/aysNXh3NZWW4IWuAVN/9Dz4yG5km/esW8A7gnmarYlk2Us 0ujAKE3zqyEcPgu1NaiQW5/iqBbYs7ZU/iYoOORwx6ayCvLfadUQzWFj6wmpUOssk7kbXx/LmgW jj+vIK4c8cq7Heox/aVzXywqiLYmPTVifTgM25FreO9QiAWDf9UpX4zQAMEMHG3qqE5Y08OvJoj inluQSbA5fHALLAGvnBwYdBCW/YQ7BZvRs8ZUcWfj4x9++3V8PmpYA1oRmGQW0FHZ+93BPRwZb0 EXdBoJ8nqnHH0iDdgAvCXbBWgi84o1/IFMwnXgwv7Zh7SBfp4BAw7ZvxFyiB6iIt0HT8O+yerjV ROVLSuEhg= X-Received: by 2002:a05:6a21:6110:b0:3c3:a140:938a with SMTP id adf61e73a8af0-3c3ad947db0mr22396841637.45.1784659643388; Tue, 21 Jul 2026 11:47:23 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH 20/20] target/arm: Enable FEAT_SVE_AES2 for -cpu max Date: Tue, 21 Jul 2026 11:46:56 -0700 Message-ID: <20260721184656.530230-21-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260721184656.530230-1-richard.henderson@linaro.org> References: <20260721184656.530230-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=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::535; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x535.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=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development 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: 1784659914579158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- linux-user/aarch64/elfload.c | 1 + target/arm/tcg/cpu64.c | 2 +- docs/system/arm/emulation.rst | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/linux-user/aarch64/elfload.c b/linux-user/aarch64/elfload.c index 4359312ee3..f87f22f690 100644 --- a/linux-user/aarch64/elfload.c +++ b/linux-user/aarch64/elfload.c @@ -182,6 +182,7 @@ abi_ulong get_elf_hwcap(CPUState *cs) GET_FEATURE_ID(aa64_sme2p2, ARM_HWCAP_A64_SME2P2); GET_FEATURE_ID(aa64_sve_bfscale, ARM_HWCAP_A64_SVE_BFSCALE); GET_FEATURE_ID(aa64_ssve_bitperm, ARM_HWCAP_A64_SME_SBITPERM); + GET_FEATURE_ID(aa64_sve_aes2, ARM_HWCAP_A64_SVE_AES2); =20 return hwcaps; } diff --git a/target/arm/tcg/cpu64.c b/target/arm/tcg/cpu64.c index c7f8217cb3..23612cd22c 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -1366,7 +1366,7 @@ void aarch64_max_tcg_initfn(Object *obj) =20 t =3D GET_IDREG(isar, ID_AA64ZFR0); t =3D FIELD_DP64(t, ID_AA64ZFR0, SVEVER, 3); /* FEAT_SVE2p2 */ - t =3D FIELD_DP64(t, ID_AA64ZFR0, AES, 2); /* FEAT_SVE_PMULL128 */ + t =3D FIELD_DP64(t, ID_AA64ZFR0, AES, 3); /* FEAT_SVE_AES2 */ t =3D FIELD_DP64(t, ID_AA64ZFR0, ELTPERM, 1); /* FEAT_SVE2p2 */ t =3D FIELD_DP64(t, ID_AA64ZFR0, BITPERM, 1); /* FEAT_SVE_BitPerm */ t =3D FIELD_DP64(t, ID_AA64ZFR0, BFLOAT16, 2); /* FEAT_BF16, FEAT_EBF= 16 */ diff --git a/docs/system/arm/emulation.rst b/docs/system/arm/emulation.rst index fbc98d47d4..cb6c4ffd4a 100644 --- a/docs/system/arm/emulation.rst +++ b/docs/system/arm/emulation.rst @@ -198,6 +198,7 @@ the following architecture extensions: - FEAT_SSVE_FP8FMA (SVE2 FP8 multiply-accumulate to half-precision and sin= gle-precision instructions in Streaming SVE mode) - FEAT_SVE (Scalable Vector Extension) - FEAT_SVE_AES (Scalable Vector AES instructions) +- FEAT_SVE_AES2 (SVE multi-vector Advanced Encryption Standard and 128-bit= polynomial multiply long instructions) - FEAT_SVE_B16B16 (Non-widening BFloat16 arithmetic for SVE2) - FEAT_SVE_BFSCALE (BFloat16 Floating-Point Adjust Exponent) - FEAT_SVE_BitPerm (Scalable Vector Bit Permutes instructions) --=20 2.43.0