From nobody Sat Sep 26 21:37:39 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=1787766159; cv=none; d=zohomail.com; s=zohoarc; b=TujqCDVxVCwk+wB0N8w9QV4TJ+MYGrUz70vDQFLca41PPhr79Rc0V6FTp6adjtGWYoixAcphaOKeh4CRX3hMv3brGih5+LGvT4i3M5ycxZod+j5KxYo1HCUtyn7m76R0LQNLp10RXyTKj8cKylJ7LEPnmmqozSpTwxGgbfaAKTE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787766159; 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=tcz0wIfQo3DFtV2Oz7/bwwlzR8aHIEOhrSSeC4BTYes=; b=e/RzUeKw3aXf84Sj1VSUBNwemcYofMCjaNZj7UYouXcd3n0nfW6PkV9O+CB1MRFe/w8mS80K8U7PvHjWQojDup7aFYdMB7G09NNL/ucDfEaaFNdaFGYcTWpdtaRrWOTJwg+btqJ0U7bUQB5RWnHeV0t7x5/JmtXm2lbnnDiXQOo= 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 1787766159583823.2452417880215; Wed, 26 Aug 2026 10:42:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wzHdo-0008QH-In; Wed, 26 Aug 2026 13:42:24 -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 1wzHdm-0008Ow-76 for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:22 -0400 Received: from mail-pf1-x42a.google.com ([2607:f8b0:4864:20::42a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wzHdj-0004jm-LU for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:21 -0400 Received: by mail-pf1-x42a.google.com with SMTP id d2e1a72fcca58-84e507b079dso1006438b3a.0 for ; Wed, 26 Aug 2026 10:42:19 -0700 (PDT) Received: from stoup (174-21-93-59.tukw.qwest.net. [174.21.93.59]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-cc1bec66020sm1260072a12.21.2026.08.26.10.42.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 10:42:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1787766138; x=1788370938; 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=tcz0wIfQo3DFtV2Oz7/bwwlzR8aHIEOhrSSeC4BTYes=; b=DTgfknpecyEoU+b7FgJBceIaYUO0u0vmLsmeBHjs3PFciRumaGfuzlSpBbvkGABg4A rVuvsPS2qO9aH98XtBmKIy0tM7IZry9HkTHcJW5xrXFqdl2oBT/4W8mws7VjqV83jaeZ 9nYGF6r07cJ7K+6ocMzTWkC1U7KIy9jzjQCm4JXwBIaOhjl8vEhu+4nyLC8nGcozlC5n BR1LTjQdSlLQSDfvQhfCpTLK8X975OU781T++OGY3WVyL1poCSpErS900xz+mxe2OT79 fGrZ+x9vF/QCTr7LW8gIdDD+SXxRmFOnPv8ypqtX9juk7S5Nqr+BM88EWhoY2+wXvYiX eSaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787766138; x=1788370938; 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=tcz0wIfQo3DFtV2Oz7/bwwlzR8aHIEOhrSSeC4BTYes=; b=lsurWlezYTABuv9uCGRV338Sr/7eBqhcbaBeVnIClGiTiqnN2ui6OAjtehHfiuBgAw ORgKivIc2g3MUHVKuupeTIqRs8yY7ZrE+wxyJkR/4CTTeFadzq1Z11Tm6U1/cgH5J3ot MD1yE7srhtUNp+0IoSfCiGSwSqShfeYzqgjci+MRgmKtkRWh+MTdPwXJgs7JI7rmYkXF A/Jun2qtL2L6hoAVhJmygduc1AaBbSDG2J/nhFEgeLG3zFOEsNv6G2GvSPSS7JlJHpyk S8y7SKrE7omCNqCE6oxMox+v9K79CxcNIyF+ApsYUNC20LHlf9UP2H/x7jhLmJ6nIoau WTCw== X-Gm-Message-State: AFuF++lzr/BUFFz0aP+fpHqTer85GJPxPHN78hxVzzB06FbgYM9Mh3Kn 9R2Vb3jYgiJus/NdrtQu+hojBjvk55u4EntHvGUXYApjrC5ArbPAVm8T9d0O7I9s/YE30+Q9rXH pnugY3ZI= X-Gm-Gg: AR+sD13cth2JmgjPaq4lVqNnsCfdcNktGXsY+m6hRomirZkE9IxltL3omv0jULd4NZu 2MCFk5H4XjCWc5am/6+VU4D8H5EyxHZpbfNIBorPOuNRUCxb/M/nntEcPo67Mvkv/H2kON2iO+W W6oveY9Te2EsbshdJ58s0JTFnlGH07xEaoZeTuuW0Ar79TZ4+aM663vB4+TFFjLLR+YHrstx69o 0MTw4L3YeLu65gSkseoSlOr6QM0NE3S79nBL96fgAzBM777jvIAFiwK81HuQM4zvxMP25hf598U Yv7hh7V3g/a3UupDUkqLG4jCdK0Q1SxVuSIW3EbX/xRP2q6L69+FDZ0vHZkkm3Q2b8kJ8ajzFah TUVjd82l40lDIWm9vig2ugM6aCKPwZ0IKn68Da0zv2NrNXRuKS9qX/JdKfzC5n8TvsYRzVWJuhE GUl/NXrz43QxxGT3c7rkJt3KKUc335vZAchGWafHjGAGIrhn+cQAbMCJBTfZDpYcdnpnotQ/+Un JCxyw/UWsoGWk35Zw== X-Received: by 2002:a05:6a00:1bc8:b0:845:31a6:d84d with SMTP id d2e1a72fcca58-85372b9f5a4mr15240254b3a.7.1787766137639; Wed, 26 Aug 2026 10:42:17 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v2 01/25] target/arm: Split zdn in do_z2z_n1 and do_z2z_n1_fpst Date: Wed, 26 Aug 2026 10:41:48 -0700 Message-ID: <20260826174213.614571-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260826174213.614571-1-richard.henderson@linaro.org> References: <20260826174213.614571-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::42a; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x42a.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: 1787766161829158500 Content-Type: text/plain; charset="utf-8" Rename from z2z to zzz to indicate zd and zn may not overlap. During decode, retain z2z name and duplicate the same field into zd and zn. Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- target/arm/tcg/translate-sme.c | 71 +++++++++++++++++----------------- target/arm/tcg/sme.decode | 8 ++-- 2 files changed, 39 insertions(+), 40 deletions(-) diff --git a/target/arm/tcg/translate-sme.c b/target/arm/tcg/translate-sme.c index 768b76f01ec..e3b96914dad 100644 --- a/target/arm/tcg/translate-sme.c +++ b/target/arm/tcg/translate-sme.c @@ -659,31 +659,30 @@ TRANS_FEAT(BMOPA, aa64_sme2, do_outprod, a, MO_32, ge= n_helper_sme2_bmopa_s) TRANS_FEAT(SMOPA2_s, aa64_sme2, do_outprod, a, MO_32, gen_helper_sme2_smop= a2_s) TRANS_FEAT(UMOPA2_s, aa64_sme2, do_outprod, a, MO_32, gen_helper_sme2_umop= a2_s) =20 -static bool do_z2z_n1(DisasContext *s, arg_z2z_en *a, GVecGen3Fn *fn) +static bool do_zzz_n1(DisasContext *s, arg_zzz_en *a, GVecGen3Fn *fn) { - int esz, dn, vsz, mofs, n; - bool overlap =3D false; + int esz =3D a->esz, vsz, mofs; + int overlap =3D -1; =20 if (!sme_sm_enabled_check(s)) { return true; } =20 - esz =3D a->esz; - n =3D a->n; - dn =3D a->zdn; mofs =3D vec_full_reg_offset(s, a->zm); vsz =3D streaming_vec_reg_size(s); =20 - for (int i =3D 0; i < n; i++) { - int dofs =3D vec_full_reg_offset(s, dn + i); + for (int i =3D 0, n =3D a->n; i < n; i++) { + int dofs =3D vec_full_reg_offset(s, a->zd + i); + int nofs =3D vec_full_reg_offset(s, a->zn + i); if (dofs =3D=3D mofs) { - overlap =3D true; + overlap =3D i; } else { - fn(esz, dofs, dofs, mofs, vsz, vsz); + fn(esz, dofs, nofs, mofs, vsz, vsz); } } - if (overlap) { - fn(esz, mofs, mofs, mofs, vsz, vsz); + if (overlap >=3D 0) { + int nofs =3D vec_full_reg_offset(s, a->zn + overlap); + fn(esz, mofs, nofs, mofs, vsz, vsz); } return true; } @@ -710,14 +709,14 @@ static void gen_sme2_urshl(unsigned vece, uint32_t rd= _ofs, uint32_t rn_ofs, tcg_gen_gvec_3_ool(rd_ofs, rn_ofs, rm_ofs, opr_sz, max_sz, 0, fns[vece= ]); } =20 -TRANS_FEAT(ADD_n1, aa64_sme2, do_z2z_n1, a, tcg_gen_gvec_add) -TRANS_FEAT(SMAX_n1, aa64_sme2, do_z2z_n1, a, tcg_gen_gvec_smax) -TRANS_FEAT(SMIN_n1, aa64_sme2, do_z2z_n1, a, tcg_gen_gvec_smin) -TRANS_FEAT(UMAX_n1, aa64_sme2, do_z2z_n1, a, tcg_gen_gvec_umax) -TRANS_FEAT(UMIN_n1, aa64_sme2, do_z2z_n1, a, tcg_gen_gvec_umin) -TRANS_FEAT(SRSHL_n1, aa64_sme2, do_z2z_n1, a, gen_sme2_srshl) -TRANS_FEAT(URSHL_n1, aa64_sme2, do_z2z_n1, a, gen_sme2_urshl) -TRANS_FEAT(SQDMULH_n1, aa64_sme2, do_z2z_n1, a, gen_gvec_sve2_sqdmulh) +TRANS_FEAT(ADD_n1, aa64_sme2, do_zzz_n1, a, tcg_gen_gvec_add) +TRANS_FEAT(SMAX_n1, aa64_sme2, do_zzz_n1, a, tcg_gen_gvec_smax) +TRANS_FEAT(SMIN_n1, aa64_sme2, do_zzz_n1, a, tcg_gen_gvec_smin) +TRANS_FEAT(UMAX_n1, aa64_sme2, do_zzz_n1, a, tcg_gen_gvec_umax) +TRANS_FEAT(UMIN_n1, aa64_sme2, do_zzz_n1, a, tcg_gen_gvec_umin) +TRANS_FEAT(SRSHL_n1, aa64_sme2, do_zzz_n1, a, gen_sme2_srshl) +TRANS_FEAT(URSHL_n1, aa64_sme2, do_zzz_n1, a, gen_sme2_urshl) +TRANS_FEAT(SQDMULH_n1, aa64_sme2, do_zzz_n1, a, gen_gvec_sve2_sqdmulh) =20 static bool do_z2z_nn(DisasContext *s, arg_z2z_en *a, GVecGen3Fn *fn) { @@ -750,11 +749,11 @@ TRANS_FEAT(SRSHL_nn, aa64_sme2, do_z2z_nn, a, gen_sme= 2_srshl) TRANS_FEAT(URSHL_nn, aa64_sme2, do_z2z_nn, a, gen_sme2_urshl) TRANS_FEAT(SQDMULH_nn, aa64_sme2, do_z2z_nn, a, gen_gvec_sve2_sqdmulh) =20 -static bool do_z2z_n1_fpst(DisasContext *s, arg_z2z_en *a, +static bool do_zzz_n1_fpst(DisasContext *s, arg_zzz_en *a, gen_helper_gvec_3_ptr * const fns[4]) { - int esz =3D a->esz, n, dn, vsz, mofs; - bool overlap =3D false; + int esz =3D a->esz, vsz, mofs; + int overlap =3D -1; gen_helper_gvec_3_ptr *fn =3D fns[esz]; TCGv_ptr fpst; =20 @@ -770,21 +769,21 @@ static bool do_z2z_n1_fpst(DisasContext *s, arg_z2z_e= n *a, } =20 fpst =3D fpstatus_ptr(esz =3D=3D MO_16 ? FPST_A64_F16 : FPST_A64); - n =3D a->n; - dn =3D a->zdn; mofs =3D vec_full_reg_offset(s, a->zm); vsz =3D streaming_vec_reg_size(s); =20 - for (int i =3D 0; i < n; i++) { - int dofs =3D vec_full_reg_offset(s, dn + i); + for (int i =3D 0, n =3D a->n; i < n; i++) { + int dofs =3D vec_full_reg_offset(s, a->zd + i); + int nofs =3D vec_full_reg_offset(s, a->zn + i); if (dofs =3D=3D mofs) { - overlap =3D true; + overlap =3D i; } else { - tcg_gen_gvec_3_ptr(dofs, dofs, mofs, fpst, vsz, vsz, 0, fn); + tcg_gen_gvec_3_ptr(dofs, nofs, mofs, fpst, vsz, vsz, 0, fn); } } - if (overlap) { - tcg_gen_gvec_3_ptr(mofs, mofs, mofs, fpst, vsz, vsz, 0, fn); + if (overlap >=3D 0) { + int nofs =3D vec_full_reg_offset(s, a->zn + overlap); + tcg_gen_gvec_3_ptr(mofs, nofs, mofs, fpst, vsz, vsz, 0, fn); } return true; } @@ -831,7 +830,7 @@ static gen_helper_gvec_3_ptr * const f_vector_fmax[2][4= ] =3D { gen_helper_gvec_ah_fmax_s, gen_helper_gvec_ah_fmax_d }, }; -TRANS_FEAT(FMAX_n1, aa64_sme2, do_z2z_n1_fpst, a, f_vector_fmax[s->fpcr_ah= ]) +TRANS_FEAT(FMAX_n1, aa64_sme2, do_zzz_n1_fpst, a, f_vector_fmax[s->fpcr_ah= ]) TRANS_FEAT(FMAX_nn, aa64_sme2, do_z2z_nn_fpst, a, f_vector_fmax[s->fpcr_ah= ]) =20 static gen_helper_gvec_3_ptr * const f_vector_fmin[2][4] =3D { @@ -844,7 +843,7 @@ static gen_helper_gvec_3_ptr * const f_vector_fmin[2][4= ] =3D { gen_helper_gvec_ah_fmin_s, gen_helper_gvec_ah_fmin_d }, }; -TRANS_FEAT(FMIN_n1, aa64_sme2, do_z2z_n1_fpst, a, f_vector_fmin[s->fpcr_ah= ]) +TRANS_FEAT(FMIN_n1, aa64_sme2, do_zzz_n1_fpst, a, f_vector_fmin[s->fpcr_ah= ]) TRANS_FEAT(FMIN_nn, aa64_sme2, do_z2z_nn_fpst, a, f_vector_fmin[s->fpcr_ah= ]) =20 static gen_helper_gvec_3_ptr * const f_vector_fmaxnm[4] =3D { @@ -853,7 +852,7 @@ static gen_helper_gvec_3_ptr * const f_vector_fmaxnm[4]= =3D { gen_helper_gvec_fmaxnum_s, gen_helper_gvec_fmaxnum_d, }; -TRANS_FEAT(FMAXNM_n1, aa64_sme2, do_z2z_n1_fpst, a, f_vector_fmaxnm) +TRANS_FEAT(FMAXNM_n1, aa64_sme2, do_zzz_n1_fpst, a, f_vector_fmaxnm) TRANS_FEAT(FMAXNM_nn, aa64_sme2, do_z2z_nn_fpst, a, f_vector_fmaxnm) =20 static gen_helper_gvec_3_ptr * const f_vector_fminnm[4] =3D { @@ -862,7 +861,7 @@ static gen_helper_gvec_3_ptr * const f_vector_fminnm[4]= =3D { gen_helper_gvec_fminnum_s, gen_helper_gvec_fminnum_d, }; -TRANS_FEAT(FMINNM_n1, aa64_sme2, do_z2z_n1_fpst, a, f_vector_fminnm) +TRANS_FEAT(FMINNM_n1, aa64_sme2, do_zzz_n1_fpst, a, f_vector_fminnm) TRANS_FEAT(FMINNM_nn, aa64_sme2, do_z2z_nn_fpst, a, f_vector_fminnm) =20 static gen_helper_gvec_3_ptr * const f_vector_famax[4] =3D { @@ -887,7 +886,7 @@ static gen_helper_gvec_3_ptr * const f_vector_fscale[4]= =3D { gen_helper_gvec_fscale_s, gen_helper_gvec_fscale_d, }; -TRANS_FEAT(FSCALE_n1, aa64_sme2_f8cvt, do_z2z_n1_fpst, a, f_vector_fscale) +TRANS_FEAT(FSCALE_n1, aa64_sme2_f8cvt, do_zzz_n1_fpst, a, f_vector_fscale) TRANS_FEAT(FSCALE_nn, aa64_sme2_f8cvt, do_z2z_nn_fpst, a, f_vector_fscale) =20 /* Add/Sub vector Z[m] to each Z[n*N] with result in ZA[d*N]. */ diff --git a/target/arm/tcg/sme.decode b/target/arm/tcg/sme.decode index e8176fffdbf..30946330ffe 100644 --- a/target/arm/tcg/sme.decode +++ b/target/arm/tcg/sme.decode @@ -220,11 +220,13 @@ UMOPA2_s 1010000 1 10 0 ..... ... ... ..... . = 10 .. @op_32 %zd_ax2 1:4 !function=3Dtimes_2 %zd_ax4 2:3 !function=3Dtimes_4 =20 +&zzz_en zd zn zm esz n &z2z_en zdn zm esz n + @z2z_2x1 ....... . esz:2 .. zm:4 ....0. ..... .... . \ - &z2z_en n=3D2 zdn=3D%zd_ax2 + &zzz_en n=3D2 zd=3D%zd_ax2 zn=3D%zd_ax2 @z2z_4x1 ....... . esz:2 .. zm:4 ....1. ..... ...0 . \ - &z2z_en n=3D4 zdn=3D%zd_ax4 + &zzz_en n=3D4 zd=3D%zd_ax4 zn=3D%zd_ax4 =20 SMAX_n1 1100000 1 .. 10 .... 1010.0 00000 .... 0 @z2z_2x1 SMAX_n1 1100000 1 .. 10 .... 1010.0 00000 .... 0 @z2z_4x1 @@ -990,8 +992,6 @@ UZP_2 11000001 esz:2 1 zm:5 110100 zn:5 .... = 1 \ UZP_2 11000001 00 1 zm:5 110101 zn:5 .... 1 \ &zzz_e zd=3D%zd_ax2 esz=3D4 =20 -&zzz_en zd zn zm esz n - FCLAMP 11000001 esz:2 1 zm:5 110000 zn:5 .... 0 \ &zzz_en zd=3D%zd_ax2 n=3D2 FCLAMP 11000001 esz:2 1 zm:5 110010 zn:5 ...0 0 \ --=20 2.53.0 From nobody Sat Sep 26 21:37:39 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=1787766215; cv=none; d=zohomail.com; s=zohoarc; b=b3S2ymhK+ij2jdIckmMOothsU+uvVOZin9MgiiHtUAZlz7wt9xgnwwLHMiG7dD9qTs5OgK0VbUEKJXgbCHjRA3rVFEV7SudEwsa+4azS7pSS7n79JQKgzsM6d3U+WHZhBScWXP4/2fmSQPSKSZ/3R4hef4ySrB2bVUJhAKrUrcM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787766215; 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=ce50MzaaeJVF6eZoCG1bV62bWtsmXMu9fKW7mi6pTYs=; b=caXwL4XHA8ALHWyz84sG5BlXkWJqzPbDoBZNh543DkFlkZuAVUho661EOBle9DQ0gxodvSZm1htsLEoyLZIj0pzel696htjrxLea+uUuS3W8MbsnfYTpiCiT7Hj0QnDApjaYwrm+UfFIlAn6LRT1g0WDKRslbLLYcBTTHc8phx4= 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 1787766215873202.07749098403872; Wed, 26 Aug 2026 10:43:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wzHdp-0008QO-5E; Wed, 26 Aug 2026 13:42:25 -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 1wzHdm-0008P4-M7 for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:22 -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 1wzHdk-0004k0-En for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:22 -0400 Received: by mail-pg1-x52f.google.com with SMTP id 41be03b00d2f7-cbee846deecso1340437a12.1 for ; Wed, 26 Aug 2026 10:42:20 -0700 (PDT) Received: from stoup (174-21-93-59.tukw.qwest.net. [174.21.93.59]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-cc1bec66020sm1260072a12.21.2026.08.26.10.42.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 10:42:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1787766139; x=1788370939; 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=ce50MzaaeJVF6eZoCG1bV62bWtsmXMu9fKW7mi6pTYs=; b=nekkhBq28evFAxoguk09ARk6n4S+u91zjJmtJmPV/qXquiOTsp/j0Y/sVa6rrllr30 aPKsbwa70kemTQ9TG5//1Ii8xM9IyihMg/Xb61Iu0VqLZBhAYl6eztc7rHvBNvYymSWW cU5of9WYquF+sX2AjA5RfDqlqaL/aNBoQ5MVzwECwK39HKxxSqDOEjH/va7lLpqNeLMb wCj4Z5O7FbhgGr1BxiKmh6DABnTq0xOOsqMtOYbaflYEY1JiD3uIkgO7dNMnJDxMD2Ax p/2vxlRKrrmCVrZBnj3kIE6NyU8y9ldWEC33Cju+hpCOaEtY7wjws1+ajVD3CJHfOB5u xtTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787766139; x=1788370939; 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=ce50MzaaeJVF6eZoCG1bV62bWtsmXMu9fKW7mi6pTYs=; b=dgFrMNhnpE5Tzs6u5OtXz9TYopLnKfTFQ9j6vfnwCm2lYdJo6YGZBRyVnklVqZRzve WLToUPvjOY0i/cqRroY1iPoJqQl1WGSrqUQIK3jgjEBczq9afEc9AS/oWsaYhF8qK3+S frXa3DSWm/0XRGuOixdYPqkAOqsTu7zNLD7cZK0dBso8nfvZljQVhv2MDhu9ZPngs2J5 1mgW9i9CEMYcvSGvEjOCo4qL65+A5+z94kH/ERqTB6f8qdFoISeUWBFx6x3bh6S5QFRc TqCCCNJS+3xejNQ4AHwFOU5r0lla+flan3gBe+oTW28Q7WGJGFc+SA6cBgjdcUfVFDwh zoCw== X-Gm-Message-State: AFuF++mfJbC7qHQTNM6WyaqBz1lbE0DCllzSpb8VCBdB6mbmFUz+rD0l q4n7Hy0V5+lm1ufUvDdFiQX+apukm5Jc0Kx9iqrFbLKxuBv8Jm/EvLhkMP4UCaLPnca4gj3e82b 4DUyfirI= X-Gm-Gg: AR+sD10fVrfWwyRaKaNbFbwVsTdx9VtfHUH0SuUh53jb+ZBAfha4mnf17gvXwT5p0ao QKtDRY4iaz/rBrwOJ+jniE+eZE239EEjj+d+bFkiunFIg0siaqj87+rY+9E85q01a02q9xcgQu3 HS2oJB2XNO0YJ9nG9OJc6APH7rvzT8CxMkux1g9N7NKhhx32y+3Z33DX4Q1OOewgfdlO12twECD Ld3A/pYGlUoAvGb2ot5QzncFEE6anU+kV8SfiI3789rD6G24u/SvMAMJGRigfF2f2X/jSoOQrpB Myc416EbibQUGJGFqZNWUEEAUYJbJdD+9qEeBXMcI4OMo3+qXilZrCeOMUinzjWelU7ckj1R416 2k1t5gccPILKJncqfKikUyYSXKlKbaT5Vd0hYgOKH2SmQ3TSsFXYfem8vQpXn+2G0jqfi6/U6oM B6E37hSnyyQ4J5F4p/9/Xiky8hpoE8zrnnr7jv1O9e6Fk0get1QkfErQTA8yQizkBgjThmQ8Q0r u3Gy7/5q1FQdbGHjA== X-Received: by 2002:a05:6a20:43ac:b0:3cd:3e77:1dcd with SMTP id adf61e73a8af0-3cf757726ccmr18373505637.1.1787766138815; Wed, 26 Aug 2026 10:42:18 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v2 02/25] target/arm: Split zdn in do_z2z_nn and do_z2z_nn_fpst Date: Wed, 26 Aug 2026 10:41:49 -0700 Message-ID: <20260826174213.614571-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260826174213.614571-1-richard.henderson@linaro.org> References: <20260826174213.614571-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: 1787766217833158500 Content-Type: text/plain; charset="utf-8" Rename from z2z to zzz to indicate zd and zn may not overlap. During decode, retain z2z name and duplicate the same field into zd and zn. Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- target/arm/tcg/translate-sme.c | 61 ++++++++++++++++------------------ target/arm/tcg/sme.decode | 5 ++- 2 files changed, 30 insertions(+), 36 deletions(-) diff --git a/target/arm/tcg/translate-sme.c b/target/arm/tcg/translate-sme.c index e3b96914dad..ca88b3cdcc7 100644 --- a/target/arm/tcg/translate-sme.c +++ b/target/arm/tcg/translate-sme.c @@ -718,36 +718,33 @@ TRANS_FEAT(SRSHL_n1, aa64_sme2, do_zzz_n1, a, gen_sme= 2_srshl) TRANS_FEAT(URSHL_n1, aa64_sme2, do_zzz_n1, a, gen_sme2_urshl) TRANS_FEAT(SQDMULH_n1, aa64_sme2, do_zzz_n1, a, gen_gvec_sve2_sqdmulh) =20 -static bool do_z2z_nn(DisasContext *s, arg_z2z_en *a, GVecGen3Fn *fn) +static bool do_zzz_nn(DisasContext *s, arg_zzz_en *a, GVecGen3Fn *fn) { - int esz, dn, dm, vsz, n; + int esz =3D a->esz, vsz; =20 if (!sme_sm_enabled_check(s)) { return true; } =20 - esz =3D a->esz; - n =3D a->n; - dn =3D a->zdn; - dm =3D a->zm; vsz =3D streaming_vec_reg_size(s); =20 - for (int i =3D 0; i < n; i++) { - int dofs =3D vec_full_reg_offset(s, dn + i); - int mofs =3D vec_full_reg_offset(s, dm + i); + for (int i =3D 0, n =3D a->n; i < n; i++) { + int dofs =3D vec_full_reg_offset(s, a->zd + i); + int nofs =3D vec_full_reg_offset(s, a->zn + i); + int mofs =3D vec_full_reg_offset(s, a->zm + i); =20 - fn(esz, dofs, dofs, mofs, vsz, vsz); + fn(esz, dofs, nofs, mofs, vsz, vsz); } return true; } =20 -TRANS_FEAT(SMAX_nn, aa64_sme2, do_z2z_nn, a, tcg_gen_gvec_smax) -TRANS_FEAT(SMIN_nn, aa64_sme2, do_z2z_nn, a, tcg_gen_gvec_smin) -TRANS_FEAT(UMAX_nn, aa64_sme2, do_z2z_nn, a, tcg_gen_gvec_umax) -TRANS_FEAT(UMIN_nn, aa64_sme2, do_z2z_nn, a, tcg_gen_gvec_umin) -TRANS_FEAT(SRSHL_nn, aa64_sme2, do_z2z_nn, a, gen_sme2_srshl) -TRANS_FEAT(URSHL_nn, aa64_sme2, do_z2z_nn, a, gen_sme2_urshl) -TRANS_FEAT(SQDMULH_nn, aa64_sme2, do_z2z_nn, a, gen_gvec_sve2_sqdmulh) +TRANS_FEAT(SMAX_nn, aa64_sme2, do_zzz_nn, a, tcg_gen_gvec_smax) +TRANS_FEAT(SMIN_nn, aa64_sme2, do_zzz_nn, a, tcg_gen_gvec_smin) +TRANS_FEAT(UMAX_nn, aa64_sme2, do_zzz_nn, a, tcg_gen_gvec_umax) +TRANS_FEAT(UMIN_nn, aa64_sme2, do_zzz_nn, a, tcg_gen_gvec_umin) +TRANS_FEAT(SRSHL_nn, aa64_sme2, do_zzz_nn, a, gen_sme2_srshl) +TRANS_FEAT(URSHL_nn, aa64_sme2, do_zzz_nn, a, gen_sme2_urshl) +TRANS_FEAT(SQDMULH_nn, aa64_sme2, do_zzz_nn, a, gen_gvec_sve2_sqdmulh) =20 static bool do_zzz_n1_fpst(DisasContext *s, arg_zzz_en *a, gen_helper_gvec_3_ptr * const fns[4]) @@ -788,10 +785,10 @@ static bool do_zzz_n1_fpst(DisasContext *s, arg_zzz_e= n *a, return true; } =20 -static bool do_z2z_nn_fpst(DisasContext *s, arg_z2z_en *a, +static bool do_zzz_nn_fpst(DisasContext *s, arg_zzz_en *a, gen_helper_gvec_3_ptr * const fns[4]) { - int esz =3D a->esz, n, dn, dm, vsz; + int esz =3D a->esz, vsz; gen_helper_gvec_3_ptr *fn =3D fns[esz]; TCGv_ptr fpst; =20 @@ -806,16 +803,14 @@ static bool do_z2z_nn_fpst(DisasContext *s, arg_z2z_e= n *a, } =20 fpst =3D fpstatus_ptr(esz =3D=3D MO_16 ? FPST_A64_F16 : FPST_A64); - n =3D a->n; - dn =3D a->zdn; - dm =3D a->zm; vsz =3D streaming_vec_reg_size(s); =20 - for (int i =3D 0; i < n; i++) { - int dofs =3D vec_full_reg_offset(s, dn + i); - int mofs =3D vec_full_reg_offset(s, dm + i); + for (int i =3D 0, n =3D a->n; i < n; i++) { + int dofs =3D vec_full_reg_offset(s, a->zd + i); + int nofs =3D vec_full_reg_offset(s, a->zn + i); + int mofs =3D vec_full_reg_offset(s, a->zm + i); =20 - tcg_gen_gvec_3_ptr(dofs, dofs, mofs, fpst, vsz, vsz, 0, fn); + tcg_gen_gvec_3_ptr(dofs, nofs, mofs, fpst, vsz, vsz, 0, fn); } return true; } @@ -831,7 +826,7 @@ static gen_helper_gvec_3_ptr * const f_vector_fmax[2][4= ] =3D { gen_helper_gvec_ah_fmax_d }, }; TRANS_FEAT(FMAX_n1, aa64_sme2, do_zzz_n1_fpst, a, f_vector_fmax[s->fpcr_ah= ]) -TRANS_FEAT(FMAX_nn, aa64_sme2, do_z2z_nn_fpst, a, f_vector_fmax[s->fpcr_ah= ]) +TRANS_FEAT(FMAX_nn, aa64_sme2, do_zzz_nn_fpst, a, f_vector_fmax[s->fpcr_ah= ]) =20 static gen_helper_gvec_3_ptr * const f_vector_fmin[2][4] =3D { { gen_helper_gvec_fmin_b16, @@ -844,7 +839,7 @@ static gen_helper_gvec_3_ptr * const f_vector_fmin[2][4= ] =3D { gen_helper_gvec_ah_fmin_d }, }; TRANS_FEAT(FMIN_n1, aa64_sme2, do_zzz_n1_fpst, a, f_vector_fmin[s->fpcr_ah= ]) -TRANS_FEAT(FMIN_nn, aa64_sme2, do_z2z_nn_fpst, a, f_vector_fmin[s->fpcr_ah= ]) +TRANS_FEAT(FMIN_nn, aa64_sme2, do_zzz_nn_fpst, a, f_vector_fmin[s->fpcr_ah= ]) =20 static gen_helper_gvec_3_ptr * const f_vector_fmaxnm[4] =3D { gen_helper_gvec_fmaxnum_b16, @@ -853,7 +848,7 @@ static gen_helper_gvec_3_ptr * const f_vector_fmaxnm[4]= =3D { gen_helper_gvec_fmaxnum_d, }; TRANS_FEAT(FMAXNM_n1, aa64_sme2, do_zzz_n1_fpst, a, f_vector_fmaxnm) -TRANS_FEAT(FMAXNM_nn, aa64_sme2, do_z2z_nn_fpst, a, f_vector_fmaxnm) +TRANS_FEAT(FMAXNM_nn, aa64_sme2, do_zzz_nn_fpst, a, f_vector_fmaxnm) =20 static gen_helper_gvec_3_ptr * const f_vector_fminnm[4] =3D { gen_helper_gvec_fminnum_b16, @@ -862,7 +857,7 @@ static gen_helper_gvec_3_ptr * const f_vector_fminnm[4]= =3D { gen_helper_gvec_fminnum_d, }; TRANS_FEAT(FMINNM_n1, aa64_sme2, do_zzz_n1_fpst, a, f_vector_fminnm) -TRANS_FEAT(FMINNM_nn, aa64_sme2, do_z2z_nn_fpst, a, f_vector_fminnm) +TRANS_FEAT(FMINNM_nn, aa64_sme2, do_zzz_nn_fpst, a, f_vector_fminnm) =20 static gen_helper_gvec_3_ptr * const f_vector_famax[4] =3D { NULL, @@ -870,7 +865,7 @@ static gen_helper_gvec_3_ptr * const f_vector_famax[4] = =3D { gen_helper_gvec_famax_s, gen_helper_gvec_famax_d, }; -TRANS_FEAT(FAMAX_nn, aa64_sme2_faminmax, do_z2z_nn_fpst, a, f_vector_famax) +TRANS_FEAT(FAMAX_nn, aa64_sme2_faminmax, do_zzz_nn_fpst, a, f_vector_famax) =20 static gen_helper_gvec_3_ptr * const f_vector_famin[4] =3D { NULL, @@ -878,7 +873,7 @@ static gen_helper_gvec_3_ptr * const f_vector_famin[4] = =3D { gen_helper_gvec_famin_s, gen_helper_gvec_famin_d, }; -TRANS_FEAT(FAMIN_nn, aa64_sme2_faminmax, do_z2z_nn_fpst, a, f_vector_famin) +TRANS_FEAT(FAMIN_nn, aa64_sme2_faminmax, do_zzz_nn_fpst, a, f_vector_famin) =20 static gen_helper_gvec_3_ptr * const f_vector_fscale[4] =3D { NULL, @@ -887,7 +882,7 @@ static gen_helper_gvec_3_ptr * const f_vector_fscale[4]= =3D { gen_helper_gvec_fscale_d, }; TRANS_FEAT(FSCALE_n1, aa64_sme2_f8cvt, do_zzz_n1_fpst, a, f_vector_fscale) -TRANS_FEAT(FSCALE_nn, aa64_sme2_f8cvt, do_z2z_nn_fpst, a, f_vector_fscale) +TRANS_FEAT(FSCALE_nn, aa64_sme2_f8cvt, do_zzz_nn_fpst, a, f_vector_fscale) =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 30946330ffe..36fbe24faf8 100644 --- a/target/arm/tcg/sme.decode +++ b/target/arm/tcg/sme.decode @@ -221,7 +221,6 @@ UMOPA2_s 1010000 1 10 0 ..... ... ... ..... . 10= .. @op_32 %zd_ax4 2:3 !function=3Dtimes_4 =20 &zzz_en zd zn zm esz n -&z2z_en zdn zm esz n =20 @z2z_2x1 ....... . esz:2 .. zm:4 ....0. ..... .... . \ &zzz_en n=3D2 zd=3D%zd_ax2 zn=3D%zd_ax2 @@ -266,9 +265,9 @@ FSCALE_n1 1100000 1 .. 10 .... 1010.0 01100 .... 0= @z2z_4x1 %zm_ax4 18:3 !function=3Dtimes_4 =20 @z2z_2x2 ....... . esz:2 . ....0 ....0. ..... .... . \ - &z2z_en n=3D2 zdn=3D%zd_ax2 zm=3D%zm_ax2 + &zzz_en n=3D2 zd=3D%zd_ax2 zn=3D%zd_ax2 zm=3D%zm_ax2 @z2z_4x4 ....... . esz:2 . ...00 ....1. ..... ...0 . \ - &z2z_en n=3D4 zdn=3D%zd_ax4 zm=3D%zm_ax4 + &zzz_en n=3D4 zd=3D%zd_ax4 zn=3D%zd_ax4 zm=3D%zm_ax4 =20 SMAX_nn 1100000 1 .. 1 ..... 1011.0 00000 .... 0 @z2z_2x2 SMAX_nn 1100000 1 .. 1 ..... 1011.0 00000 .... 0 @z2z_4x4 --=20 2.53.0 From nobody Sat Sep 26 21:37:39 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=1787766375; cv=none; d=zohomail.com; s=zohoarc; b=jhsOVzsmdzcQGs1sfAp+R4u3vTN5kY9/s4wzdyTiEMSDxi70iL7y7SAmcEMIQs5gcJW0oMkUQB3G0zHA59mJKQXIvoxAOmB9pWcpc2xtHIVkMYlQGlxVBEFkG7a2v4f4EaksobJkX60EM5VA+p9q7Z/in59G3L9bkmjbLxaP5L4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787766375; 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=eacrHo9Y3lmkTm8JFf4RKHpF6JxecOscKoMmlksHtLM=; b=kkV2ZJxB6Dac7+QBwG/UYbFB1OpXvwQVoS3up/j5HIPqlqgd7dNxj4cAHWLko4axWCCLglX6SgHnbJM69Us2FZmEnzq7X/EHWQobVuU60wB4inmE/POXECB164ucDcC4iX+Mmu+VT+TUUp3O2992LeVX87RQEVx/9syV1trWFWE= 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 178776637584043.870038506239894; Wed, 26 Aug 2026 10:46:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wzHdt-0008Ut-0l; Wed, 26 Aug 2026 13:42: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 1wzHdo-0008QM-JB for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:24 -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 1wzHdl-0004kJ-Ti for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:24 -0400 Received: by mail-pg1-x535.google.com with SMTP id 41be03b00d2f7-cc149372c14so957551a12.1 for ; Wed, 26 Aug 2026 10:42:21 -0700 (PDT) Received: from stoup (174-21-93-59.tukw.qwest.net. [174.21.93.59]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-cc1bec66020sm1260072a12.21.2026.08.26.10.42.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 10:42:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1787766140; x=1788370940; 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=eacrHo9Y3lmkTm8JFf4RKHpF6JxecOscKoMmlksHtLM=; b=I/Xdd222YHFlfWHFngUpAK6dZax1tnzLd9JKVDfsmM/vKD2ws6h+n0csQ5DbhL6wY/ SNZSlUJJ4QDHlyj+5Ela9Sfrh1Bv3EwL9m/aSTq4P9NRghY+PdjhnUkd32jn7/93tw26 aKos2QLX/+XFID7UR5z4wUdGrEmj0aKpa3c8Ex/+hVUqwCLW8NRwsudPtdspxvfPwjvd lt3LkzdVEOE3A8Y09G5YBLFuX1c5p8MwNPeFckIa9pVx44rQD7Vse2M3jG/Bu2qPXAV3 VhTPdKckmmNvyCTgioADraNUUAXnnYy1vYj6IBlYbApKyU00hLbiI8mDTCU4er4+zez4 kw/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787766140; x=1788370940; 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=eacrHo9Y3lmkTm8JFf4RKHpF6JxecOscKoMmlksHtLM=; b=AhJdDfLWNuZu4mMu+YDgzwJqdULlGiiPFAXqfgAMNf05CkKbDavwJWPsqJyLoRNT3I VPL3+l0SJwsCJzynPjyNOYDr8YgcDhajPbKHrPN3AoDBV9b1K1ZPIiaLgquMx+YA4Ci1 Y8U/6m5lgGgL9CqjOhFXRFTvnvLaOQaDj2kKKYR7G78YJ/EykDPR5PFD5WuqwlpyzW9S 1DxIK4L6fwe+JEoXrJgRIDZ1SUREX66tvKLm4UGx6alIB50D1SuVtS2h6Kngbt5Y+LhV 9TfuNfGasV0NhcU13QMI7JxLiRvZvdMqOPcBKP5tGLKJci+0MOjDsbw6jZxc6hj0FGs6 g3hQ== X-Gm-Message-State: AFuF++kZ62CKhySeVrETkQm8OQYO5rmTnaWAryQCoA767teMEqCnZvcP gO7aO5H6vizF1ahNjprWtugqyZ+twGtnZqb9RGoP0jtRW9+WlFb5VF5CxUYSpxVxkJwNOqNmyWA cwXUNU20= X-Gm-Gg: AR+sD10uQ77TIgDtJ53V9nvj4QkzKcSZDD+Qvt0KB3Y5dW5/7AD4NTCB8ut3wUZVJSD qoWj8X3drQ3Ll9zqm6jrepcpqGUlzYkfaU2hPPoDQ+AR01EXaa6Pmq1uHogbH3/FTrY5llnHK03 z9aJBRJT6UaDTXvcapDepVgumrtQ6CBAcCBiZK5OrniaNjOQ3tSOzOXOwubIbyzDDLgER7tLMHn xwFuMOldaafJf/IKLr+a5kUPOe16ua/XGkPFnOIzi0PCM7qIEM3m1HhWemyRkO6/CKTvaJweudR oEpO94QbGTK0jc6TREEeqWuWOR6trl7Bxf+kAsq7vCDDmymUa/+vcbRco97dUbXlBowfLTRbXH1 sGIior80Z+Fy38klQed71hvvux21yXvrl4lg2Pa5aPIbUQyJORpuui4v8vqQzEyxM6VyicC5hjt G4MlyQsCoJN5Pi7rDx8LBrnT+G9mWXb8C6SNYBo7LzXCl2/sHA07B3eqIxRr829s3re9B+Hz6QK 5Oy12+Y7TgrBTxwdg== X-Received: by 2002:a05:6a21:7008:b0:3bf:7bf7:7913 with SMTP id adf61e73a8af0-3cf8445170emr18217181637.14.1787766139993; Wed, 26 Aug 2026 10:42:19 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 03/25] target/arm: Split decode of BFloat SME FMAX/FMIN Date: Wed, 26 Aug 2026 10:41:50 -0700 Message-ID: <20260826174213.614571-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260826174213.614571-1-richard.henderson@linaro.org> References: <20260826174213.614571-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=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: 1787766376695158501 Content-Type: text/plain; charset="utf-8" Split decode so that feature detection can be handled external to do_zzz_{n1,nn}_fpst. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/cpu-features.h | 5 ++ target/arm/tcg/translate-sme.c | 65 +++++++++++++----------- target/arm/tcg/sme.decode | 90 ++++++++++++++++++++++++++++------ 3 files changed, 115 insertions(+), 45 deletions(-) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 280ead6f9cb..e444397a478 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1743,6 +1743,11 @@ static inline bool isar_feature_aa64_sme2p2_or_sve2p= 2(const ARMISARegisters *id) return isar_feature_aa64_sme2p2(id) || isar_feature_aa64_sve2p2(id); } =20 +static inline bool isar_feature_aa64_sme2_sve_b16b16(const ARMISARegisters= *id) +{ + return isar_feature_aa64_sme2(id) && isar_feature_aa64_sve_b16b16(id); +} + static inline bool isar_feature_aa64_sme2_i16i64(const ARMISARegisters *id) { return isar_feature_aa64_sme2(id) && isar_feature_aa64_sme_i16i64(id); diff --git a/target/arm/tcg/translate-sme.c b/target/arm/tcg/translate-sme.c index ca88b3cdcc7..db1950f407b 100644 --- a/target/arm/tcg/translate-sme.c +++ b/target/arm/tcg/translate-sme.c @@ -747,20 +747,15 @@ TRANS_FEAT(URSHL_nn, aa64_sme2, do_zzz_nn, a, gen_sme= 2_urshl) TRANS_FEAT(SQDMULH_nn, aa64_sme2, do_zzz_nn, a, gen_gvec_sve2_sqdmulh) =20 static bool do_zzz_n1_fpst(DisasContext *s, arg_zzz_en *a, - gen_helper_gvec_3_ptr * const fns[4]) + gen_helper_gvec_3_ptr *fn) { int esz =3D a->esz, vsz, mofs; int overlap =3D -1; - gen_helper_gvec_3_ptr *fn =3D fns[esz]; TCGv_ptr fpst; =20 if (fn =3D=3D NULL) { return false; } - /* These insns use MO_8 to encode BFloat16. */ - if (esz =3D=3D MO_8 && !dc_isar_feature(aa64_sve_b16b16, s)) { - return false; - } if (!sme_sm_enabled_check(s)) { return true; } @@ -786,18 +781,14 @@ static bool do_zzz_n1_fpst(DisasContext *s, arg_zzz_e= n *a, } =20 static bool do_zzz_nn_fpst(DisasContext *s, arg_zzz_en *a, - gen_helper_gvec_3_ptr * const fns[4]) + gen_helper_gvec_3_ptr *fn) { int esz =3D a->esz, vsz; - gen_helper_gvec_3_ptr *fn =3D fns[esz]; TCGv_ptr fpst; =20 if (fn =3D=3D NULL) { return false; } - if (esz =3D=3D MO_8 && !dc_isar_feature(aa64_sve_b16b16, s)) { - return false; - } if (!sme_sm_enabled_check(s)) { return true; } @@ -816,48 +807,64 @@ static bool do_zzz_nn_fpst(DisasContext *s, arg_zzz_e= n *a, } =20 static gen_helper_gvec_3_ptr * const f_vector_fmax[2][4] =3D { - { gen_helper_gvec_fmax_b16, + { NULL, gen_helper_gvec_fmax_h, gen_helper_gvec_fmax_s, gen_helper_gvec_fmax_d }, - { gen_helper_gvec_ah_fmax_b16, + { NULL, gen_helper_gvec_ah_fmax_h, gen_helper_gvec_ah_fmax_s, gen_helper_gvec_ah_fmax_d }, }; -TRANS_FEAT(FMAX_n1, aa64_sme2, do_zzz_n1_fpst, a, f_vector_fmax[s->fpcr_ah= ]) -TRANS_FEAT(FMAX_nn, aa64_sme2, do_zzz_nn_fpst, a, f_vector_fmax[s->fpcr_ah= ]) +TRANS_FEAT(FMAX_n1, aa64_sme2, do_zzz_n1_fpst, a, f_vector_fmax[s->fpcr_ah= ][a->esz]) +TRANS_FEAT(FMAX_nn, aa64_sme2, do_zzz_nn_fpst, a, f_vector_fmax[s->fpcr_ah= ][a->esz]) +TRANS_FEAT(BFMAX_n1, aa64_sme2_sve_b16b16, do_zzz_n1_fpst, a, + s->fpcr_ah ? gen_helper_gvec_ah_fmax_b16 : gen_helper_gvec_fmax= _b16) +TRANS_FEAT(BFMAX_nn, aa64_sme2_sve_b16b16, do_zzz_nn_fpst, a, + s->fpcr_ah ? gen_helper_gvec_ah_fmax_b16 : gen_helper_gvec_fmax= _b16) =20 static gen_helper_gvec_3_ptr * const f_vector_fmin[2][4] =3D { - { gen_helper_gvec_fmin_b16, + { NULL, gen_helper_gvec_fmin_h, gen_helper_gvec_fmin_s, gen_helper_gvec_fmin_d }, - { gen_helper_gvec_ah_fmin_b16, + { NULL, gen_helper_gvec_ah_fmin_h, gen_helper_gvec_ah_fmin_s, gen_helper_gvec_ah_fmin_d }, }; -TRANS_FEAT(FMIN_n1, aa64_sme2, do_zzz_n1_fpst, a, f_vector_fmin[s->fpcr_ah= ]) -TRANS_FEAT(FMIN_nn, aa64_sme2, do_zzz_nn_fpst, a, f_vector_fmin[s->fpcr_ah= ]) +TRANS_FEAT(FMIN_n1, aa64_sme2, do_zzz_n1_fpst, a, f_vector_fmin[s->fpcr_ah= ][a->esz]) +TRANS_FEAT(FMIN_nn, aa64_sme2, do_zzz_nn_fpst, a, f_vector_fmin[s->fpcr_ah= ][a->esz]) +TRANS_FEAT(BFMIN_n1, aa64_sme2_sve_b16b16, do_zzz_n1_fpst, a, + s->fpcr_ah ? gen_helper_gvec_ah_fmin_b16 : gen_helper_gvec_fmin= _b16) +TRANS_FEAT(BFMIN_nn, aa64_sme2_sve_b16b16, do_zzz_nn_fpst, a, + s->fpcr_ah ? gen_helper_gvec_ah_fmin_b16 : gen_helper_gvec_fmin= _b16) =20 static gen_helper_gvec_3_ptr * const f_vector_fmaxnm[4] =3D { - gen_helper_gvec_fmaxnum_b16, + NULL, gen_helper_gvec_fmaxnum_h, gen_helper_gvec_fmaxnum_s, gen_helper_gvec_fmaxnum_d, }; -TRANS_FEAT(FMAXNM_n1, aa64_sme2, do_zzz_n1_fpst, a, f_vector_fmaxnm) -TRANS_FEAT(FMAXNM_nn, aa64_sme2, do_zzz_nn_fpst, a, f_vector_fmaxnm) +TRANS_FEAT(FMAXNM_n1, aa64_sme2, do_zzz_n1_fpst, a, f_vector_fmaxnm[a->esz= ]) +TRANS_FEAT(FMAXNM_nn, aa64_sme2, do_zzz_nn_fpst, a, f_vector_fmaxnm[a->esz= ]) +TRANS_FEAT(BFMAXNM_n1, aa64_sme2_sve_b16b16, do_zzz_n1_fpst, a, + gen_helper_gvec_fmaxnum_b16) +TRANS_FEAT(BFMAXNM_nn, aa64_sme2_sve_b16b16, do_zzz_nn_fpst, a, + gen_helper_gvec_fmaxnum_b16) =20 static gen_helper_gvec_3_ptr * const f_vector_fminnm[4] =3D { - gen_helper_gvec_fminnum_b16, + NULL, gen_helper_gvec_fminnum_h, gen_helper_gvec_fminnum_s, gen_helper_gvec_fminnum_d, }; -TRANS_FEAT(FMINNM_n1, aa64_sme2, do_zzz_n1_fpst, a, f_vector_fminnm) -TRANS_FEAT(FMINNM_nn, aa64_sme2, do_zzz_nn_fpst, a, f_vector_fminnm) +TRANS_FEAT(FMINNM_n1, aa64_sme2, do_zzz_n1_fpst, a, f_vector_fminnm[a->esz= ]) +TRANS_FEAT(FMINNM_nn, aa64_sme2, do_zzz_nn_fpst, a, f_vector_fminnm[a->esz= ]) +TRANS_FEAT(BFMINNM_n1, aa64_sme2_sve_b16b16, do_zzz_n1_fpst, a, + gen_helper_gvec_fminnum_b16) +TRANS_FEAT(BFMINNM_nn, aa64_sme2_sve_b16b16, do_zzz_nn_fpst, a, + gen_helper_gvec_fminnum_b16) =20 static gen_helper_gvec_3_ptr * const f_vector_famax[4] =3D { NULL, @@ -865,7 +872,7 @@ static gen_helper_gvec_3_ptr * const f_vector_famax[4] = =3D { gen_helper_gvec_famax_s, gen_helper_gvec_famax_d, }; -TRANS_FEAT(FAMAX_nn, aa64_sme2_faminmax, do_zzz_nn_fpst, a, f_vector_famax) +TRANS_FEAT(FAMAX_nn, aa64_sme2_faminmax, do_zzz_nn_fpst, a, f_vector_famax= [a->esz]) =20 static gen_helper_gvec_3_ptr * const f_vector_famin[4] =3D { NULL, @@ -873,7 +880,7 @@ static gen_helper_gvec_3_ptr * const f_vector_famin[4] = =3D { gen_helper_gvec_famin_s, gen_helper_gvec_famin_d, }; -TRANS_FEAT(FAMIN_nn, aa64_sme2_faminmax, do_zzz_nn_fpst, a, f_vector_famin) +TRANS_FEAT(FAMIN_nn, aa64_sme2_faminmax, do_zzz_nn_fpst, a, f_vector_famin= [a->esz]) =20 static gen_helper_gvec_3_ptr * const f_vector_fscale[4] =3D { NULL, @@ -881,8 +888,8 @@ static gen_helper_gvec_3_ptr * const f_vector_fscale[4]= =3D { gen_helper_gvec_fscale_s, gen_helper_gvec_fscale_d, }; -TRANS_FEAT(FSCALE_n1, aa64_sme2_f8cvt, do_zzz_n1_fpst, a, f_vector_fscale) -TRANS_FEAT(FSCALE_nn, aa64_sme2_f8cvt, do_zzz_nn_fpst, a, f_vector_fscale) +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]) =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 36fbe24faf8..e1bef9987b0 100644 --- a/target/arm/tcg/sme.decode +++ b/target/arm/tcg/sme.decode @@ -227,6 +227,11 @@ UMOPA2_s 1010000 1 10 0 ..... ... ... ..... . 1= 0 .. @op_32 @z2z_4x1 ....... . esz:2 .. zm:4 ....1. ..... ...0 . \ &zzz_en n=3D4 zd=3D%zd_ax4 zn=3D%zd_ax4 =20 +@z2z_2x1_e0 ....... . .. .. zm:4 ....0. ..... .... . \ + &zzz_en esz=3D0 n=3D2 zd=3D%zd_ax2 zn=3D%zd_ax2 +@z2z_4x1_e0 ....... . .. .. zm:4 ....1. ..... ...0 . \ + &zzz_en esz=3D0 n=3D4 zd=3D%zd_ax4 zn=3D%zd_ax4 + SMAX_n1 1100000 1 .. 10 .... 1010.0 00000 .... 0 @z2z_2x1 SMAX_n1 1100000 1 .. 10 .... 1010.0 00000 .... 0 @z2z_4x1 UMAX_n1 1100000 1 .. 10 .... 1010.0 00000 .... 1 @z2z_2x1 @@ -236,14 +241,38 @@ SMIN_n1 1100000 1 .. 10 .... 1010.0 00001 ....= 0 @z2z_4x1 UMIN_n1 1100000 1 .. 10 .... 1010.0 00001 .... 1 @z2z_2x1 UMIN_n1 1100000 1 .. 10 .... 1010.0 00001 .... 1 @z2z_4x1 =20 -FMAX_n1 1100000 1 .. 10 .... 1010.0 01000 .... 0 @z2z_2x1 -FMAX_n1 1100000 1 .. 10 .... 1010.0 01000 .... 0 @z2z_4x1 -FMIN_n1 1100000 1 .. 10 .... 1010.0 01000 .... 1 @z2z_2x1 -FMIN_n1 1100000 1 .. 10 .... 1010.0 01000 .... 1 @z2z_4x1 -FMAXNM_n1 1100000 1 .. 10 .... 1010.0 01001 .... 0 @z2z_2x1 -FMAXNM_n1 1100000 1 .. 10 .... 1010.0 01001 .... 0 @z2z_4x1 -FMINNM_n1 1100000 1 .. 10 .... 1010.0 01001 .... 1 @z2z_2x1 -FMINNM_n1 1100000 1 .. 10 .... 1010.0 01001 .... 1 @z2z_4x1 +{ + BFMAX_n1 1100000 1 00 10 .... 1010.0 01000 .... 0 @z2z_2x1_e0 + FMAX_n1 1100000 1 .. 10 .... 1010.0 01000 .... 0 @z2z_2x1 +} +{ + BFMAX_n1 1100000 1 00 10 .... 1010.0 01000 .... 0 @z2z_4x1_e0 + FMAX_n1 1100000 1 .. 10 .... 1010.0 01000 .... 0 @z2z_4x1 +} +{ + BFMIN_n1 1100000 1 00 10 .... 1010.0 01000 .... 1 @z2z_2x1_e0 + FMIN_n1 1100000 1 .. 10 .... 1010.0 01000 .... 1 @z2z_2x1 +} +{ + BFMIN_n1 1100000 1 00 10 .... 1010.0 01000 .... 1 @z2z_4x1_e0 + FMIN_n1 1100000 1 .. 10 .... 1010.0 01000 .... 1 @z2z_4x1 +} +{ + BFMAXNM_n1 1100000 1 00 10 .... 1010.0 01001 .... 0 @z2z_2x1_e0 + FMAXNM_n1 1100000 1 .. 10 .... 1010.0 01001 .... 0 @z2z_2x1 +} +{ + BFMAXNM_n1 1100000 1 00 10 .... 1010.0 01001 .... 0 @z2z_4x1_e0 + FMAXNM_n1 1100000 1 .. 10 .... 1010.0 01001 .... 0 @z2z_4x1 +} +{ + BFMINNM_n1 1100000 1 00 10 .... 1010.0 01001 .... 1 @z2z_2x1_e0 + FMINNM_n1 1100000 1 .. 10 .... 1010.0 01001 .... 1 @z2z_2x1 +} +{ + BFMINNM_n1 1100000 1 00 10 .... 1010.0 01001 .... 1 @z2z_4x1_e0 + FMINNM_n1 1100000 1 .. 10 .... 1010.0 01001 .... 1 @z2z_4x1 +} =20 SRSHL_n1 1100000 1 .. 10 .... 1010.0 10001 .... 0 @z2z_2x1 SRSHL_n1 1100000 1 .. 10 .... 1010.0 10001 .... 0 @z2z_4x1 @@ -269,6 +298,11 @@ FSCALE_n1 1100000 1 .. 10 .... 1010.0 01100 .... = 0 @z2z_4x1 @z2z_4x4 ....... . esz:2 . ...00 ....1. ..... ...0 . \ &zzz_en n=3D4 zd=3D%zd_ax4 zn=3D%zd_ax4 zm=3D%zm_ax4 =20 +@z2z_2x2_e0 ....... . .. . ....0 ....0. ..... .... . \ + &zzz_en esz=3D0 n=3D2 zd=3D%zd_ax2 zn=3D%zd_ax2 zm=3D%zm_a= x2 +@z2z_4x4_e0 ....... . .. . ...00 ....1. ..... ...0 . \ + &zzz_en esz=3D0 n=3D4 zd=3D%zd_ax4 zn=3D%zd_ax4 zm=3D%zm_a= x4 + SMAX_nn 1100000 1 .. 1 ..... 1011.0 00000 .... 0 @z2z_2x2 SMAX_nn 1100000 1 .. 1 ..... 1011.0 00000 .... 0 @z2z_4x4 UMAX_nn 1100000 1 .. 1 ..... 1011.0 00000 .... 1 @z2z_2x2 @@ -278,14 +312,38 @@ SMIN_nn 1100000 1 .. 1 ..... 1011.0 00001 ....= 0 @z2z_4x4 UMIN_nn 1100000 1 .. 1 ..... 1011.0 00001 .... 1 @z2z_2x2 UMIN_nn 1100000 1 .. 1 ..... 1011.0 00001 .... 1 @z2z_4x4 =20 -FMAX_nn 1100000 1 .. 1 ..... 1011.0 01000 .... 0 @z2z_2x2 -FMAX_nn 1100000 1 .. 1 ..... 1011.0 01000 .... 0 @z2z_4x4 -FMIN_nn 1100000 1 .. 1 ..... 1011.0 01000 .... 1 @z2z_2x2 -FMIN_nn 1100000 1 .. 1 ..... 1011.0 01000 .... 1 @z2z_4x4 -FMAXNM_nn 1100000 1 .. 1 ..... 1011.0 01001 .... 0 @z2z_2x2 -FMAXNM_nn 1100000 1 .. 1 ..... 1011.0 01001 .... 0 @z2z_4x4 -FMINNM_nn 1100000 1 .. 1 ..... 1011.0 01001 .... 1 @z2z_2x2 -FMINNM_nn 1100000 1 .. 1 ..... 1011.0 01001 .... 1 @z2z_4x4 +{ + BFMAX_nn 1100000 1 00 1 ..... 1011.0 01000 .... 0 @z2z_2x2_e0 + FMAX_nn 1100000 1 .. 1 ..... 1011.0 01000 .... 0 @z2z_2x2 +} +{ + BFMAX_nn 1100000 1 00 1 ..... 1011.0 01000 .... 0 @z2z_4x4_e0 + FMAX_nn 1100000 1 .. 1 ..... 1011.0 01000 .... 0 @z2z_4x4 +} +{ + BFMIN_nn 1100000 1 00 1 ..... 1011.0 01000 .... 1 @z2z_2x2_e0 + FMIN_nn 1100000 1 .. 1 ..... 1011.0 01000 .... 1 @z2z_2x2 +} +{ + BFMIN_nn 1100000 1 00 1 ..... 1011.0 01000 .... 1 @z2z_4x4_e0 + FMIN_nn 1100000 1 .. 1 ..... 1011.0 01000 .... 1 @z2z_4x4 +} +{ + BFMAXNM_nn 1100000 1 00 1 ..... 1011.0 01001 .... 0 @z2z_2x2_e0 + FMAXNM_nn 1100000 1 .. 1 ..... 1011.0 01001 .... 0 @z2z_2x2 +} +{ + BFMAXNM_nn 1100000 1 00 1 ..... 1011.0 01001 .... 0 @z2z_4x4_e0 + FMAXNM_nn 1100000 1 .. 1 ..... 1011.0 01001 .... 0 @z2z_4x4 +} +{ + BFMINNM_nn 1100000 1 00 1 ..... 1011.0 01001 .... 1 @z2z_2x2_e0 + FMINNM_nn 1100000 1 .. 1 ..... 1011.0 01001 .... 1 @z2z_2x2 +} +{ + BFMINNM_nn 1100000 1 00 1 ..... 1011.0 01001 .... 1 @z2z_4x4_e0 + FMINNM_nn 1100000 1 .. 1 ..... 1011.0 01001 .... 1 @z2z_4x4 +} =20 SRSHL_nn 1100000 1 .. 1 ..... 1011.0 10001 .... 0 @z2z_2x2 SRSHL_nn 1100000 1 .. 1 ..... 1011.0 10001 .... 0 @z2z_4x4 --=20 2.53.0 From nobody Sat Sep 26 21:37:39 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=1787766306; cv=none; d=zohomail.com; s=zohoarc; b=hQowH8WtD8qWP1fy8Mpi+cZ51fdR0STElpuZxYG+PLruIv4E305QCwQUaZDEhPKC/ogCO0o0N9hX6AWJU9Mnww+/a+OS8WZLCqCuejOvItrWMqQqZnUPsos8QMZLxc38fzPAplrQr8htOOWth6e0N0yEWK1d+QBfniDXhnb54pU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787766306; 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=SA8NuNbPWvaRSZTQw5oEPqkYFFMVFwD+KRwGTdCfjnk=; b=VaGCoTAYHKF0pDobNeqoyKDwvWyEI3/Li9zwBUzsWWkSWlOjuPj0Ni6Vj+57qWBN5utA/94d+1hJNb4tkbO+syA1Xg5WqsY90c/sTVYLrZsv+mcXRq5HZ3txbguutTlh76zsVVYH82zxuflNu2EgArqWwx779Dpdhrq1b3pZzeQ= 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 1787766306380893.7877532433104; Wed, 26 Aug 2026 10:45:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wzHdr-0008Sk-IS; Wed, 26 Aug 2026 13:42: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 1wzHdo-0008QA-9w for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:24 -0400 Received: from mail-pg1-x529.google.com ([2607:f8b0:4864:20::529]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wzHdm-0004kU-Hz for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:24 -0400 Received: by mail-pg1-x529.google.com with SMTP id 41be03b00d2f7-cc1bc88a20eso1374229a12.3 for ; Wed, 26 Aug 2026 10:42:22 -0700 (PDT) Received: from stoup (174-21-93-59.tukw.qwest.net. [174.21.93.59]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-cc1bec66020sm1260072a12.21.2026.08.26.10.42.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 10:42:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1787766141; x=1788370941; 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=SA8NuNbPWvaRSZTQw5oEPqkYFFMVFwD+KRwGTdCfjnk=; b=vYdpk1kOfW/jq5olksVv1jcjScgRHVb4iUmoTjCrPMEllbXDXcdhPXNkPXvWEramwN OSJftVTFgAl9dFpHoL6OS9kymI/oavLY9928j0IoWDcd5LmmM/mOnVacacPAbqgnLHjO DllZsgfJaBSiVNdaRURwgH9BYpLer9anr8i/6eUlC3mEg+m+DYAAxqxY0/1H7wD2ch9S 4ar4AH7oQ5ZdIbzMdY4dNDUaMeekQkAGCOKG6U6trPwSWUxSZFIn67TR8hpU97USxj09 hkzCH4KnelWnxPBe4Y4AE9vgC3BZDM3C3qlCmoHLKQ+4ct66PKMbppBx9ib3RDhGiReu fYDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787766141; x=1788370941; 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=SA8NuNbPWvaRSZTQw5oEPqkYFFMVFwD+KRwGTdCfjnk=; b=ruQH4ooRtM5MSSUcSEGpSkBAw1Kvuv+oW6OtNq5oz+AffjxMq6FGpEiAud9+WZCM4b bBLlz6ng9novS1OeH/y1to78msX0d0JWsRC9Y4g6FIZgiCCqceEQkggIDayViYCFMFYF C93iCIm7zPgpIfDL7PhvSCA8S0clmB8j1Gqjp/I8OZAJpT9LyNbxYOoWXGZ0B6+C55b4 jpX5hbfIv2D9StE6MEMa2leQZCbrYy2GGclJ8ujNF02Uio/ulKQQQsZ8ceoRRRDMXOZ8 27bygZ1hAk3nIOz09urtKNfVXr584ffR3aNTp/u/beZTTNHoAKBx/mUSl6GbpUqjyIuK NP7A== X-Gm-Message-State: AFuF++nj5qudMPZUsC2dU9LZc5Icj5W2T1SES50/ewSzOCD5I7HwwHmB HrNhmAEdhqTlocvy8jpt+uGBafaope/pWzRbFFW/6TZDX9wX3MSuyV/Rz7885irng1VwiFYnBqN hSDwE6iE= X-Gm-Gg: AR+sD12WB4S66vBbUnS+aKmZpgoZwFoRMVe6CJRCsPIgllXBFJlxjbL/0RabDEIQmj7 DDfbBTrzGiP/b7VHq990Afm1NWHqxa4fWBE9+6m9GgXrBKNAkz2h+qDCWCB847ZTcljz8KitQSO TZ3WQYqu85xW6biO+TpQzGZru6MWnd7BTVtj7N+m69/sP62tovJsdbbbIlDalOxEWd6SRTptCJl wvK+PkFl6gCxnPSLtc1OthLO7NL9yQznaD+Z32ZIw7VNdwAGsvyWxni80sPzPDcdZ7v1QASHRey VQb8oV1qNlayhZ5bMjcHIe0XkEmU80MWkF+psZkFGtjWxV2sE0p9XTwBdZqkVoCXTFigKbl2601 cimMUtiqGKTXXUouQraDhCWnTkHET81+z7N7QnJSSK3fdgl1OBQYdWN8i70YmvZoGUooeUaXtLe uR6DOqaRxxu5LXXoRudxk3sV8ftgs7xWhqWPGbcii159DhDwuOEknc74zIB3+1w9BoK1u0CzSC9 adOhnVSssiyyHXuig== X-Received: by 2002:a05:6a20:2587:b0:3cd:99d2:d534 with SMTP id adf61e73a8af0-3cf7576c442mr15885012637.3.1787766141003; Wed, 26 Aug 2026 10:42:21 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 04/25] target/arm: Implement FMUL (multiple/multiple and single vectors) Date: Wed, 26 Aug 2026 10:41:51 -0700 Message-ID: <20260826174213.614571-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260826174213.614571-1-richard.henderson@linaro.org> References: <20260826174213.614571-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::529; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x529.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: 1787766308229158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/tcg/translate-sme.c | 9 +++++++++ target/arm/tcg/sme.decode | 15 ++++++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/target/arm/tcg/translate-sme.c b/target/arm/tcg/translate-sme.c index db1950f407b..463754b057f 100644 --- a/target/arm/tcg/translate-sme.c +++ b/target/arm/tcg/translate-sme.c @@ -891,6 +891,15 @@ 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]) =20 +static gen_helper_gvec_3_ptr * const f_vector_fmul[4] =3D { + NULL, + gen_helper_gvec_fmul_h, + gen_helper_gvec_fmul_s, + gen_helper_gvec_fmul_d, +}; +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]) + /* 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, GVecGen3FnVar *fn) diff --git a/target/arm/tcg/sme.decode b/target/arm/tcg/sme.decode index e1bef9987b0..60c7cacc10e 100644 --- a/target/arm/tcg/sme.decode +++ b/target/arm/tcg/sme.decode @@ -219,6 +219,8 @@ UMOPA2_s 1010000 1 10 0 ..... ... ... ..... . 10= .. @op_32 =20 %zd_ax2 1:4 !function=3Dtimes_2 %zd_ax4 2:3 !function=3Dtimes_4 +%zn_ax2 6:4 !function=3Dtimes_2 +%zn_ax4 7:3 !function=3Dtimes_4 =20 &zzz_en zd zn zm esz n =20 @@ -288,6 +290,11 @@ SQDMULH_n1 1100000 1 .. 10 .... 1010.1 00000 .... = 0 @z2z_4x1 FSCALE_n1 1100000 1 .. 10 .... 1010.0 01100 .... 0 @z2z_2x1 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 +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 + ### SME2 Multi-vector Multiple Vectors SVE Destructive =20 %zm_ax2 17:4 !function=3Dtimes_2 @@ -361,6 +368,11 @@ FAMIN_nn 1100000 1 .. 1 ..... 1011.0 01010 .... = 1 @z2z_4x4 FSCALE_nn 1100000 1 .. 1 ..... 1011.0 01100 .... 0 @z2z_2x2 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 +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 + ### SME2 Multi-vector Multiple and Single Array Vectors =20 &azz_n n off rv zn zm @@ -521,9 +533,6 @@ FDOT_n1_hb 11000001 001 1 .... 0 .. 100 ..... 01 .= .. @azz_nx1_o3 n=3D4 =20 ### SME2 Multi-vector Multiple Array Vectors =20 -%zn_ax2 6:4 !function=3Dtimes_2 -%zn_ax4 7:3 !function=3Dtimes_4 - @azz_2x2_o3 ........ ... ..... . .. ... ..... .. off:3 \ &azz_n n=3D2 rv=3D%mova_rv zn=3D%zn_ax2 zm=3D%zm_ax2 @azz_4x4_o3 ........ ... ..... . .. ... ..... .. off:3 \ --=20 2.53.0 From nobody Sat Sep 26 21:37:39 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=1787766223; cv=none; d=zohomail.com; s=zohoarc; b=YoWZL1yCiB0OhwJ492vk/+6z88TvO4p5EaqteysPIXYtcpBtjZS29SLjYq0Qu6C1Fy52qEE7l4FTgszwsES/y3peW7NEudUrTOMfHTbuqEjMUz9dtUAuF3uFcxKK1n+9nhR0mz9jQR/FZ4zqTAKYJPQsHAY68tk49lFrP9w1uC8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787766223; 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=V/TzolQ/cWgbzzqSGhsngN831gj0h+hUFm2am6qAF7c=; b=BS5z1SCLrp/7KZZQWj6JTdz52fTnORji3DmA4Hz0KyXf6FYLnLJBC3T/p4DSreTT/WpSDWqsU1G5kIGR8mvMIiSMaNSEhwIuSCEX4RPMADsMuortFb6h72Ys2ui0fSsYeQa1ySTb50Gmqa07HF2i2x9KWHLTsrgiyvc3HnYmxyk= 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 1787766222997513.7525763096725; Wed, 26 Aug 2026 10:43:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wzHdv-0008WK-1b; Wed, 26 Aug 2026 13:42:31 -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 1wzHdp-0008SE-RG for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:26 -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 1wzHdn-0004kr-KU for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:25 -0400 Received: by mail-pf1-x431.google.com with SMTP id d2e1a72fcca58-8534d507f59so1407795b3a.0 for ; Wed, 26 Aug 2026 10:42:23 -0700 (PDT) Received: from stoup (174-21-93-59.tukw.qwest.net. [174.21.93.59]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-cc1bec66020sm1260072a12.21.2026.08.26.10.42.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 10:42:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1787766142; x=1788370942; 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=V/TzolQ/cWgbzzqSGhsngN831gj0h+hUFm2am6qAF7c=; b=N/vwX8JXwzvJPd91VSYvxNSaQhmORzC5SLAi5KfsoIjE7iao549s5hBiapDF7Mj1/T WQV892g40QsJlPaOhD2fxelfQFJiCiIZcPYn/Px8cIHxn/s9BKkXQfRtCn9OV6If5bb1 jxENt7iJsLvum4cCrp8rBksFPN3x4cbdrQa1ySWABLdGXDW+Boyf17o0nPicB5IeCf6g c/BB+hfX7f9YSF02ds8c/2tzHDVIhUoKkhQ+Z5ksvVBlH+EguD1dBxqeE1GWNZme9rdc YIZmaZoIMI4fK2rffjN/MSY7SbnuBlR7NEQJSyypypaZPEVul5Z9Dt6yR3aU++QgFGNQ gxtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787766142; x=1788370942; 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=V/TzolQ/cWgbzzqSGhsngN831gj0h+hUFm2am6qAF7c=; b=ZcQS7VnXZ1R7of/DB9L6jAeB0M/93HqSiXgmDlPylZ4oB23oBf1SNW6GxQhTbpGpM9 zCaZz3luP7bOMKjiumWFOiId53wmwfAscfEp1MBebTxGmDYAPdbrNzIHttWwhHPI2ZI2 FZ0dQ8DL/17fxPfIbCF0ECNLssKuAqTCjL9s0w++OGI3qE2jSJxqiwTMevjfiYa88h3L y0vna7LTUR0X4ycvCZgIZV2KozGNidGcyTMU3E2HaIn7odWKylsKhuU8XwCHzM0gTAGN 1BrVCNorAqlmwMgcROGriZVyQRcvuwArW+VHGnJsFDzF1ut27WWFjNOZznRrFHi6FIpI vNtw== X-Gm-Message-State: AFuF++lCmDiE3K8xnDUwfizMatC12guUYn8d0OZ98r/1CjPP4rLj+4h3 KxV06izeQBnex6P84jZbNdSIRibD3f60oVUlDFkw5b3Ra58f30JLWfWk9++RtX+vTWwF89/icUp ymZpAfGI= X-Gm-Gg: AR+sD12hVI2T6mmgDMzQMNy+ICdv8VwtBR0lbWSI7D4IWaavI08HytJNdv+QY5GqvaK 5EeqQwu/NtgDR8g+boxAeB70d8KF2YITGFE6QI6uecTxeOUeGehhy6wbQwAl9i4I/Kl6TKDzu5w oazz3gWAlXeoDnSensNUu+7OjwdBu2GvuaU3k68py2i29Jw6HXD+itSvfjb+pYgP1a426WXjZ9/ j3zFkT7M8A0Ll7N8uiO/RPd6knf2ui/erDXJf9HRuNb9H6firczM4uViFWobZE862vSOj5mYcc7 FlYmCOpAunE7kt8Pp6OQ/8de536MQ20z9lmfVdEppr4+t8kF/XZiU+hmNYlWB4dWBs+A3QGgqWt Ne7+lqBZuv0ATcJWTobZ5wWBa1892xV61wLl9ivVDK3vOcxEswLLLhd6LIkl1S+pUt1sCop9za1 Y9wLgoGv09iktEUZrY6ZA7zJonCn74JF1RIUCEMf1QdF3FgPmo3uO4p3u58Od/1uNuytSjQn2hZ BUWR34DNJa0Hsy0G4Y= X-Received: by 2002:a05:6300:44:b0:3c3:9070:96b3 with SMTP id adf61e73a8af0-3cf74e42f9bmr19332527637.3.1787766141968; Wed, 26 Aug 2026 10:42:21 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v2 05/25] target/arm: Enable FEAT_SVE2p2 and FEAT_SME2p2 for -cpu max Date: Wed, 26 Aug 2026 10:41:52 -0700 Message-ID: <20260826174213.614571-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260826174213.614571-1-richard.henderson@linaro.org> References: <20260826174213.614571-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: 1787766223868158500 Content-Type: text/plain; charset="utf-8" These features are tied together if both SVE and SME are enabled. Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- linux-user/aarch64/elfload.c | 2 ++ target/arm/tcg/cpu64.c | 5 +++-- docs/system/arm/emulation.rst | 2 ++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/linux-user/aarch64/elfload.c b/linux-user/aarch64/elfload.c index 48be49580a2..c086548f7fd 100644 --- a/linux-user/aarch64/elfload.c +++ b/linux-user/aarch64/elfload.c @@ -178,6 +178,8 @@ abi_ulong get_elf_hwcap(CPUState *cs) GET_FEATURE_ID(aa64_fprcvt, ARM_HWCAP_A64_FPRCVT); GET_FEATURE_ID(aa64_sme_mop4, ARM_HWCAP_A64_SME_SMOP4); 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); =20 return hwcaps; } diff --git a/target/arm/tcg/cpu64.c b/target/arm/tcg/cpu64.c index 4ef412a6575..7cad37ae61a 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -1469,8 +1469,9 @@ void aarch64_max_v9_tcg_initfn(Object *obj) SET_IDREG(isar, ID_AA64MMFR4, t); =20 t =3D GET_IDREG(isar, ID_AA64ZFR0); - t =3D FIELD_DP64(t, ID_AA64ZFR0, SVEVER, 2); /* v9.2: FEAT_SVE2p1 */ + t =3D FIELD_DP64(t, ID_AA64ZFR0, SVEVER, 3); /* v9.4: FEAT_SVE2p2 */ t =3D FIELD_DP64(t, ID_AA64ZFR0, AES, 2); /* v9.0: FEAT_SVE_PMUL= L128 */ + t =3D FIELD_DP64(t, ID_AA64ZFR0, ELTPERM, 1); /* v9.4: FEAT_SVE2p2 */ t =3D FIELD_DP64(t, ID_AA64ZFR0, BITPERM, 1); /* v9.0: FEAT_SVE_BitP= erm */ t =3D FIELD_DP64(t, ID_AA64ZFR0, B16B16, 1); /* v9.2: FEAT_SVE_B16B= 16 */ t =3D FIELD_DP64(t, ID_AA64ZFR0, SHA3, 1); /* v9.0: FEAT_SVE_SHA3= */ @@ -1497,7 +1498,7 @@ void aarch64_max_v9_tcg_initfn(Object *obj) t =3D FIELD_DP64(t, ID_AA64SMFR0, I16I32, 5); /* v9.2: FEAT_SME2 */ t =3D FIELD_DP64(t, ID_AA64SMFR0, F64F64, 1); /* v9.2: FEAT_SME_F64F= 64 */ t =3D FIELD_DP64(t, ID_AA64SMFR0, I16I64, 0xf); /* v9.2: FEAT_SME_I16I= 64 */ - t =3D FIELD_DP64(t, ID_AA64SMFR0, SMEVER, 2); /* v9.2: FEAT_SME2p1 */ + t =3D FIELD_DP64(t, ID_AA64SMFR0, SMEVER, 3); /* v9.4: FEAT_SME2p2 */ t =3D FIELD_DP64(t, ID_AA64SMFR0, LUTv2, 1); /* v9.2: FEAT_SME_LUTv= 2 */ t =3D FIELD_DP64(t, ID_AA64SMFR0, FA64, 1); /* v9.2: FEAT_SME_FA64= */ SET_IDREG(isar, ID_AA64SMFR0, t); diff --git a/docs/system/arm/emulation.rst b/docs/system/arm/emulation.rst index ff02435975b..eb22469bb36 100644 --- a/docs/system/arm/emulation.rst +++ b/docs/system/arm/emulation.rst @@ -179,6 +179,7 @@ the following architecture extensions: - FEAT_SME (Scalable Matrix Extension) - FEAT_SME2 (Scalable Matrix Extension version 2) - FEAT_SME2p1 (Scalable Matrix Extension version 2.1) +- FEAT_SME2p2 (Scalable Matrix Extension version 2.2) - FEAT_SME_B16B16 (Non-widening BFloat16 arithmetic for SME2) - FEAT_SME_FA64 (Full A64 instruction set in Streaming SVE mode) - FEAT_SME_F16F16 (Non-widening half-precision FP16 arithmetic for SME2) @@ -203,6 +204,7 @@ the following architecture extensions: - FEAT_SVE_SM4 (Scalable Vector SM4 instructions) - FEAT_SVE2 (Scalable Vector Extension version 2) - FEAT_SVE2p1 (Scalable Vector Extension version 2.1) +- FEAT_SVE2p2 (Scalable Vector Extension version 2.2) - FEAT_SPECRES (Speculation restriction instructions) - FEAT_SSBS (Speculative Store Bypass Safe) - FEAT_SSBS2 (MRS and MSR instructions for SSBS version 2) --=20 2.53.0 From nobody Sat Sep 26 21:37:39 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=1787766231; cv=none; d=zohomail.com; s=zohoarc; b=VW02z/+HKu8/jFiKBI6GvyVQj3+wrLR8gxP8F/RA7c1uGodHwrcY9bKBZ1K2N8Sgjph7qdlOvC2OhF64fs50pJhrna9u5ogBd/U3cq4JtXPtBuIYplMIKqzW5JBEXSxbxAMFKA2GDweDtVAppJ2VVtlffb1anFmBy9Ftr/XA1sg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787766231; 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=6RKI9uFJ05lDYLSjj8F230jbHzkZiA11i7bWoN467Vw=; b=eaWWMQa0kl93fL/XUBGYsG3MnDNN5denJCQ0jKoZmU9lmGoDpWR7Lsr6+sBf7HCRXFQ5pxzQyy5MxvvliSmrlOX5GaJueTCN0xkNPWxzIkKgFLvKnZFIVPw2wRHY2M0LUq5M07ZHOpOM84VqoiEFScg9HeTDd0Nggt53x8uynz0= 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 1787766231427562.2025498863992; Wed, 26 Aug 2026 10:43:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wzHdv-00005L-Oe; Wed, 26 Aug 2026 13:42:31 -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 1wzHdq-0008Sd-BE for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:27 -0400 Received: from mail-pg1-x529.google.com ([2607:f8b0:4864:20::529]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wzHdo-0004lR-M8 for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:26 -0400 Received: by mail-pg1-x529.google.com with SMTP id 41be03b00d2f7-cc1c73645a1so669801a12.1 for ; Wed, 26 Aug 2026 10:42:24 -0700 (PDT) Received: from stoup (174-21-93-59.tukw.qwest.net. [174.21.93.59]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-cc1bec66020sm1260072a12.21.2026.08.26.10.42.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 10:42:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1787766143; x=1788370943; 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=6RKI9uFJ05lDYLSjj8F230jbHzkZiA11i7bWoN467Vw=; b=qVfOj5Zz0wYVFdcWG3z1/REjAMJ+4pPOJM9mD+5d2jZQG07p64JjGEsoFkGSWKJ07e iwwLJMWjbo7zbK6NLQZUeKulM+GuxI+HBHqB+9fKoLj8GwUf3gJEh+PFKmtbRdOGQ7R1 DLb9PlN8y0MUlraBDxKh01txe6vBN+beZ/BuaG5W4diGbG7SHyNGSRocolby8DJ0jFIp UZ7mVZcMaGWwb887wRnAbZfOFGsfk+8dR3lhrHBc/yO3qrTEquogqRi7lC/TJuglRWIn Ow92upf58q/CU2eJTZWjQL2EOsjlz4ITGEjlR1MHGcZpU3cgtEHCUO4HyjaqHzbqpqUz lO6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787766143; x=1788370943; 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=6RKI9uFJ05lDYLSjj8F230jbHzkZiA11i7bWoN467Vw=; b=eBS/gvh4sDCVYGn/8NIjKaB03MP2cKQSXdlLVf9k+FG2mMqBZLpLVlfVmdeTUEo4Jv eY0P+xiScrLhIr3p5jL8i8ItEtJSM0xxgy/CyxsJLqntOPiezxN02Bm7/FtAVGwQ1f9y h1d448bFyoLiznvU/7eJCumyii9Y0FD6slPEKQgTrOsnRKlF4bxxDFv3+khvVlnsIeZz 0JmYXyLSINzUJo0+rmG3++mF4ivQIbmD2ta5XMmg6gBnhz12cUye91NatplodiTmb7oc kKE7Bsl8wl8EB8Zb6MTOFBshwQxV4TUk54bkeYSn9CHBEo7SEXxrK4b/5c3PaynLtpcp pKwA== X-Gm-Message-State: AFuF++npx9B9RUK6068fZJKbhBeGi3d9aQvdiLVqq2a/Au0a10VQZ5nv 1GYo0Uw7Wq0y5LepFh7RyeIFy2Z8KEOVSDJY0d54m3kWyaZVJa5/VUDkMlx4a/uxHpPL8FXiONw CY8wk1Xs= X-Gm-Gg: AR+sD11tNruHh0Ms72UfBrUZ61Kyzs7YmlszUTocNZZ917EMCR+mBvIJGOwdhDPmI7K cJxurcZNZ7cqzmTwqSvNmGEP4IJ1d8Z2PZOlCs9G0hhd0m9+/JYq2JeqDIgrddkWv/CfKKa/fbR 32ETOzRIBsGVxwOwSbdqCNORQ1nb3J+jHaBjv4qpfzwTQnwbyO2UMwsycz89dy4c0pjGfHLbW6+ 2hvXuPtKW3qRfSCT4sx4v8+mb77NMCdu4JL5vjUMWoqbGyuUlGL8AI1KEbcfX3tlHdd+W9FGvKH IgD8qQF8T5Uw/r/Dl6jgQ3/TCeLXHXPSxgDrOOEt3rR96rtsq6t32VVITT27/TxzU8niIr+1Jpc 0s7byTB9RCBvK56Sw1ShxPkT5nmwsRvc2tahoszRxju8rdtUQ1UTOs6VXAaEd927oFMCnHQbYIC p4SPD1VcriSX42BcE/Nsnm7MnVZeMhOakPrrbPZuH5Woh4zJF1LdHK2iYEr3IuMvl0i0ilWeq9G 5xaBsYSkzlqx19OVA== X-Received: by 2002:a05:6a21:1193:b0:3cb:e8b4:f03b with SMTP id adf61e73a8af0-3cf84b4f9b8mr20047685637.17.1787766143026; Wed, 26 Aug 2026 10:42:23 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v2 06/25] target/arm: Remove DO_ZPZZ_FP from translate-sme.c Date: Wed, 26 Aug 2026 10:41:53 -0700 Message-ID: <20260826174213.614571-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260826174213.614571-1-richard.henderson@linaro.org> References: <20260826174213.614571-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::529; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x529.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: 1787766231892158500 Content-Type: text/plain; charset="utf-8" Expand the macro at each use site. Reviewed-by: Peter Maydell 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 0becef16a94..7e0b47412ba 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -4425,13 +4425,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, \ @@ -4474,9 +4467,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, @@ -8067,9 +8084,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.53.0 From nobody Sat Sep 26 21:37:39 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=1787766223; cv=none; d=zohomail.com; s=zohoarc; b=FJWSOyWz5tUcWMZKIQyVoBt6J6GhR5eZCpHCAopooZ1EFLEcpkVQAsWFFrfkFy1oTztCmSWVWk7kB14vjqUhyGyYBVtPgxI3i2UQQWHCLG3V/Nw/3LMwnTH7EqRbZwcBkoACknj55dghPrd/V0Gs0c5mpanwSx4tLeF4dDWq7P8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787766223; 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=hZEskbli4g2F3N+3TCJnxiYglitQsZnFYl0LsdySdls=; b=KXl/pEr656aeyvdWR+yvFVuG9iCV6NrmyHoVOhClAyfjbhDH2NlMxbICF6bv/HsOQ4oIvZZyGUMU8TygDvuUg7TjvGq7WF8dMansliGSdpNbms1Zw9qUJ4Nj7kr7q6bNkfqJGPDRXN5bE8Q1BaTwvkaCAYWqT6Y/yAQAUI52y9U= 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 1787766223520479.0979393658405; Wed, 26 Aug 2026 10:43:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wzHdw-00005d-Ax; Wed, 26 Aug 2026 13:42: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 1wzHdr-0008UE-SY for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:27 -0400 Received: from mail-pg1-x52c.google.com ([2607:f8b0:4864:20::52c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wzHdq-0004lt-4A for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:27 -0400 Received: by mail-pg1-x52c.google.com with SMTP id 41be03b00d2f7-c96c92c0980so848989a12.3 for ; Wed, 26 Aug 2026 10:42:25 -0700 (PDT) Received: from stoup (174-21-93-59.tukw.qwest.net. [174.21.93.59]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-cc1bec66020sm1260072a12.21.2026.08.26.10.42.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 10:42:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1787766144; x=1788370944; 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=hZEskbli4g2F3N+3TCJnxiYglitQsZnFYl0LsdySdls=; b=h04VC0o8NNuUsnmWhadByLffC04Xri82CjFMohtA7VXfm96IDb3O+mcKTYenLO+s08 1OUb/8drlqo6ZUZv5T1yyKczmoRxi0BWWFs/FfPiDDRuNvYqyI/yHT2t3xgPq9x0skik RYuF0WMh/abc1UmzAeZvrB+cT7k/oIu5JMzNhYK8Nj4tuDTvvT2VboUNaJx2D39QSjie effXiNGaJaYpLO1F+KPm/Usuji2+cE/ILAqo9AiGXdjCn06e40JpK/elhx68c7riLL6B K54d6tYWzu+hnoXAEHcQvrMTvxHvwr+4b8JE1tKkExE2JI5NKXUyqEpb7QvQp8B5YkE6 6gQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787766144; x=1788370944; 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=hZEskbli4g2F3N+3TCJnxiYglitQsZnFYl0LsdySdls=; b=Pw6a0zTuqnJGKl+dICoMH2HA8mv+ieK6dlzWCIE90kA+eOEjJnI422mTJ0FtAb3ig7 BoUfWo8w9Cq73hK/rgy/hQAdiW1DDm7zXuJZHYVVML/dm6r1smqQBzrdduFFhnppVQuB 25OKMqlSZ10JKgpD9/9noUNg67vXlkGd2fiHtBAYFXfdjz+B5i74vhO5PhQoC55OaRmY f41LvBPIhesmISxpa1BhGnnH6bq4bxBOZjjnhRKgH3tkd0SGH/omt9kc5lWnbi/A0dF9 Q56m5dCdJARMkqCsqDrDMsbquNHR9aM48UQqOG7OMXR3kbB3AjsUMIO2Ipnoy5xGBSaB Q0bQ== X-Gm-Message-State: AFuF++kSZ42ExZXfZaGRgzZqlEicV9tD9nVTFZwsHmCZJ4nD9DboyZSl Q97gJRnPbVHbzlLaLETKzYtCXwqJmdH97hwSx3pyFbluGTqqwY6X5/FTDw5zQkFu0VbbzVp45+X 712XKOk0= X-Gm-Gg: AR+sD13Sbr/T8JejnfEnVQuJbNbrB4WZffE8yxODC8TNjd8eQkRyuSZNRmalOIddvxS SYFwjRhlajssQhz/qPqwGA9bLyEqTLeH9D/gSfR0jhBj+Bqh8ddUbxMyrmasBYUE6C0RlhbxeM3 0bku0HT3y3MGpAzNCr1Blut0N7qg2seUD1rAT7+cBG45TZ3LvrltHNREEQm8h1ZyjXerMh1P1zu I3/ZQqTMW1RFoDRXeiJV8Ey4qA9FiP2QZPQ5S1ixLa08LadUuv+LoiosFGG3toC0GKeGcYX/j2q 4Oc8v99R0uBwWi9HkfgCqYxZ9/ODtpudWP6NWJuQdb0QikoOzukChwbQEYDjzkWt+mMRhfs7UmE 9CVm0LRb8WWtLBF2LMpYvJSbDkwePFx2xtW1GRPhkNDGpxJ45+lQ5gtcowt8ODq+FGJa1rjccyX 64wlohr4YwQ6NI3OKAsJhXXou4bNufxDi8roMo72Hmwbxg/48HYWDVn44z+VZfOiisRM8OBEZNp CqZdZGOhgQ8DNd+MA== X-Received: by 2002:a05:6a21:58b:b0:3c3:66c5:68d6 with SMTP id adf61e73a8af0-3cf83c17840mr17609947637.9.1787766144307; Wed, 26 Aug 2026 10:42:24 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v2 07/25] target/arm: Remove DO_ZPZZ_FP_B16 from translate-sme.c Date: Wed, 26 Aug 2026 10:41:54 -0700 Message-ID: <20260826174213.614571-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260826174213.614571-1-richard.henderson@linaro.org> References: <20260826174213.614571-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::52c; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x52c.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: 1787766225856158500 Content-Type: text/plain; charset="utf-8" Expand the macro at each use site. Reviewed-by: Peter Maydell 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 7e0b47412ba..347eeb4602e 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -4438,14 +4438,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, \ @@ -4459,13 +4451,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.53.0 From nobody Sat Sep 26 21:37:39 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=1787766222; cv=none; d=zohomail.com; s=zohoarc; b=A4lTH3mYxmYrgHYbGP8Yf10vQ0qFhDLP3nFW8txWdAL2l/Xx6rdOIJvlS7D0AvzuV4f3eeAWdtvGRHDMI+Ed3Gp9x7VorPPTy/Kx6PqRi1Ah+K0aJBXIjnaDfbzG7lgQ8p8nHnLO8stQj4fin2Nn2QtdZ3V8F1ahQAQJhMRhPQY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787766222; 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=qe4rdKZlqsUlBu504HN1M1M/BmaKRqAbXrUNJ3++caU=; b=EFXzk434MScgfXw+swCIz7HN+7NrZC2iCnH/Dbl1G2PoFNzdqBNgjpAYXxzsalj14RYTFOeS5peXFl5BrD3WTWg+ejxCA9gk86KL5wstiv4IxeJ7GXc4cOm+w8W6zCvOH/A3u3uOcyetfMybkZOInDR5/w6h1Alt0Sidyqo8C+w= 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 1787766222587782.2386064692928; Wed, 26 Aug 2026 10:43:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wzHdy-00007L-7Y; Wed, 26 Aug 2026 13:42: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 1wzHdt-0008VB-7q for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:29 -0400 Received: from mail-pg1-x530.google.com ([2607:f8b0:4864:20::530]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wzHdr-0004mT-BO for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:28 -0400 Received: by mail-pg1-x530.google.com with SMTP id 41be03b00d2f7-cc1bcdb3c4cso930850a12.2 for ; Wed, 26 Aug 2026 10:42:26 -0700 (PDT) Received: from stoup (174-21-93-59.tukw.qwest.net. [174.21.93.59]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-cc1bec66020sm1260072a12.21.2026.08.26.10.42.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 10:42:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1787766146; x=1788370946; 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=qe4rdKZlqsUlBu504HN1M1M/BmaKRqAbXrUNJ3++caU=; b=RSgN6PG/aNXfdnoJWwRLN1jYl0MBm0Sv29dD3cmM0kUh0lwgfd5lKOnD1m/dUQjqeN tXTTxEOCJ+Xzdh7f+OcBxlXxiZCHxoQbdIRMSypbU4YYBuik5T3ABc2of8D/OK3mFCqs PbYgTy1c8pPUDYHzFCEPev8yAJuthCmZbpfxMdVgmyPLTzs/7FVx3nfPhduv7lyXWEnt 61tFFbRW9J/TlLRgp36QlRi76g1vM17hHEMYF4osY5u8mRM1Rjk10GguvN6t5rzzkKf2 ZBVbnQuriLEq+KeL1iBzroYybdLUxpQmt1DTfJ6OtRyS1dfmb08ghCQPfvSfwSqBs0M7 vniA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787766146; x=1788370946; 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=qe4rdKZlqsUlBu504HN1M1M/BmaKRqAbXrUNJ3++caU=; b=VazljjNLQ9HajbK5J0yYgaIptJ/r1pB7kHU0vytBxc/6a7nj7UFz3YPNHqoh7Axfm8 CzwDTfqR92VeBSMqXjo2aE2MV6OGo/jd43JN5Cc9j5R1/dMMpk3mLjQLdLlOrJI9SsMd 9TZctHqpZl2IfMrEv6ftt41pk1V2PTODNVc9DMKswzY8dhzDr29pN2yy6Cdu3Kh+5lh/ Z7NoyL3Qs1a/uc5aiTj5eL4uBPWmViVOoxNBsJ47TVplvfVFOJRf0LI0natIxPFZ88ZS EfzVrVcXHAAcmFOztjgld+g6woA14VgJ3k2PnlUbYePRkxBqbAz57lQO2audOyiJhjb/ uX1Q== X-Gm-Message-State: AFuF++nXT7LC9suSDbop4aOkROmqkOvx/LRX67hjuNoIQQ6fkd/CzBRc 2/Jl1b2Y8lYk+eCG6CvD6oZVnlaNTur4RxiulyzJemThCaYVWt30LqBP81aeitbmO4Dz8bkJkU1 q+mJE+qQ= X-Gm-Gg: AR+sD135cdBN9BUQVYBDd0qMxX+0mOeyUN5Gt2GZwwunIdKspztNd+zYmiNJ4uHRQbd bJsAxMR3u6ycahrh8IVHIA2h/TRd7Ftuzt5nlPd0ub1P+8B2vuGtIRs0nd9CF/wNyi63TjxHVWC S1IXKAncAS43g772ahwHRL9lhmhYcKNlOWiiFUd6xuWszBzUubwaUWmLXBPUL268rLKpg1BvQ1d 8XuYNKtG9wZq/FUeEbtzDP3fy+14UzCyBHTRVDMV+Irjoht96uBN9DDldUAOlVrDo+PiPt9WwaJ YBp2sPYzhtRD9p8MHuXy2P6yHrf4PeNg3UwsrZ9LvJWC6qlpzE+KAe31PSJnn2qrvV9fUWZvNxM Y0/Xv3wjXvvOxsJ/9urqGJX3QfRMx3/kRykx/Hx0cNFJazX2vnlcvtj80UqEfSE61ZlfWRreetb FPCIpTmkpYKO7UMMhp8l27/lcpv+rtUo0hThIPSD5zE/dvf7MhUdUo1eQ9ZjCocqiZBsqAdY0hw ELS1v8qu8jjEP0VVg== X-Received: by 2002:a05:6a21:3216:b0:3c0:b943:f984 with SMTP id adf61e73a8af0-3cf76286193mr17929008637.3.1787766145378; Wed, 26 Aug 2026 10:42:25 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v2 08/25] target/arm: Remove DO_ZPZZ_AH_FP from translate-sme.c Date: Wed, 26 Aug 2026 10:41:55 -0700 Message-ID: <20260826174213.614571-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260826174213.614571-1-richard.henderson@linaro.org> References: <20260826174213.614571-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::530; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x530.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: 1787766223805158500 Content-Type: text/plain; charset="utf-8" Expand the macro at each use site. Merge the two arrays and index by fpcr_ah. Reviewed-by: Peter Maydell 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 347eeb4602e..6e984d02f82 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -4425,19 +4425,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, \ @@ -4499,7 +4486,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, @@ -8144,8 +8138,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.53.0 From nobody Sat Sep 26 21:37:39 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=1787766267; cv=none; d=zohomail.com; s=zohoarc; b=EwDfbcz+7ILQoDdsfqPSnmJQgwTJlS1kJbjpqfHe+23is/a/JL9pd8bj5U7XQF+mYwLOQrr5WV6++0Ma0HNt9gAKMhTFZYHvZWJpYtqWUi0bnNui7NPzOrPoYG7R0dM+Qx63V+zDo5GV5aIheyEAGMGcxf3nVWxCtsy+tdB6hjM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787766267; 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=afR4L8NBYUNtzXNAlwfRDdnQW+anBIGEEKMFSgwhsCQ=; b=k98KE2jXjWEexSEmDXBdKJmTXdChF4l2Qp4ReNQLiP6oVtoCmTcDvfDwvZpXzMTFrtQ0vq0atMIAf2IVBez8/hTPTvqMSxGwxeYWgSpSGzPbIanrDZVSXo8Bf+TTTMOUL6VTf270pWz3nFxejjACF0Ei9K96/ialmD+yZFGn478= 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 1787766267971420.96731311348515; Wed, 26 Aug 2026 10:44:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wzHeI-0000ER-0n; Wed, 26 Aug 2026 13:42:55 -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 1wzHdu-0008WL-FZ for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:30 -0400 Received: from mail-pg1-x530.google.com ([2607:f8b0:4864:20::530]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wzHdr-0004mp-Sa for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:29 -0400 Received: by mail-pg1-x530.google.com with SMTP id 41be03b00d2f7-cbedf318752so1031413a12.0 for ; Wed, 26 Aug 2026 10:42:27 -0700 (PDT) Received: from stoup (174-21-93-59.tukw.qwest.net. [174.21.93.59]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-cc1bec66020sm1260072a12.21.2026.08.26.10.42.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 10:42:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1787766146; x=1788370946; 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=afR4L8NBYUNtzXNAlwfRDdnQW+anBIGEEKMFSgwhsCQ=; b=DRnBT2Xj0UUqSEHysxQlCqkDgPuXBAHNC0T97tnzq7Z5+T1Qlul4YKcHNrrqLQuL71 aZRGUBo4BjvHt0cBSWQgj8W5zeBeRuNZHD7PlnrQBBZQo0xTgf6MgjKfZlHPd3WHTclC Ccj63GDMSWKm2POa3Ifh1lz1Tlp5BKWcJzPqgNsz06UBXae5L0PRmuvW85UquyOnCBsd DOrAAiIdYQdp0Qnoh0zsUJsAPemOh99wXCYfJ4GE976OqKn4v9ei/UD8ZHLqWZUeeO5g zD1SJBpWx26X+h4HWU41IKNnCiUp1s5siXkfrzze8ASjbHn0FPXjn/n2ch3NOF/hlvGr FrSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787766146; x=1788370946; 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=afR4L8NBYUNtzXNAlwfRDdnQW+anBIGEEKMFSgwhsCQ=; b=R/NAgkggwdRT7UcXPgT+t5UGfHZo6wAI+XE+e3e8zSGgBJyAWgw/1glEZsZEfDSH+b fJPgzG5xfc5p8FW/BDTUzpuLMlCpAXdShk/0nmhcy2tVQkaD1l8YawppL6pjqx6zi0kd be7doMtlLriLIwnQi7mwrLKneKJ/BdqxjDYhSBaCTNhcqYCqENe/wIzqXN/4lOxsMD8m aOaqAP8e//e4sluoElvJ++bQMdU/gdGdaYi2j+jBrQFtPgf6ByOET0BlzVCQOqQHvCoL 85/Lmzh8M8ket1NvfCm3NYB51690vWaF5zNPMVicB2Sgij1HmvT8KtWrjRWaG701l3ym VNWQ== X-Gm-Message-State: AFuF++kJH3EYesSZeDKvg7AHqq8H48wKlk77wHZCxhYmJPBt7RlxHkB6 k2YBgSz4h5ep+j6PK+OdswcaySbzybu6ClN6tgkXcRf1WDXOaZBd1DwlGYqefdUh3z90N/SX5g+ nXDQOAlQ= X-Gm-Gg: AR+sD1278wRGiEQ/v6AvIimy+aJCS7xUfgSCDwrYYKsbPwGOM8WzWnLLDoIpoUeWzxU rEc6cRgJXx52fOtp4f3vZ9N9M/pe057Z0mvc7d5vyPnc1oeVfj1FnSl+Ymm9XtphI/jRaUW7eY5 ObZCUttmqE2tJtyZQMaVry15YzcV4D4E0YAsj+sRpqxENEo7XfE2pJv4JheLOT6C+Y+JaGBUIqO ybt33Pn/k228+Al0OwAzvGI3kOMQHhEFkDO4yElJtObdHPoewD1HtWrkCT9OWE5Bc9xRoBu5LJM M8Q6zaxXFJVBuVYUU+4SCfpbm19NPo0pxKEXO7D0nGfn/tBmFSt3eH+/PC9XBqfroXfjmTGzpdV R8o/3iRBppwVSoOERe64kmAbZ8+L02LDSxeK4RjObSp0hNHj9Xh6fZrYZXIWslFJtpwXMH/ouej ZhoPMdsDyf2eqlh3lm6JH/YVqjvKBOn8VkwY1XHVSWHWcN2Jz9svJJ0pdIIqe4gy67PuFzXDm8U erY26ZVVF6zCZTaFg== X-Received: by 2002:a05:6a21:a95:b0:3c1:657:4c95 with SMTP id adf61e73a8af0-3cf84459271mr18796131637.15.1787766146305; Wed, 26 Aug 2026 10:42:26 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v2 09/25] target/arm: Remove DO_ZPZZ_AH_FP_B16 from translate-sme.c Date: Wed, 26 Aug 2026 10:41:56 -0700 Message-ID: <20260826174213.614571-10-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260826174213.614571-1-richard.henderson@linaro.org> References: <20260826174213.614571-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::530; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x530.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: 1787766269991158500 Content-Type: text/plain; charset="utf-8" Expand the macro at each use site. Merge the two arrays and index by fpcr_ah. Reviewed-by: Peter Maydell 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 6e984d02f82..f65c2b0af53 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -4425,19 +4425,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, @@ -4465,8 +4452,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.53.0 From nobody Sat Sep 26 21:37:39 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=1787766257; cv=none; d=zohomail.com; s=zohoarc; b=ha3Y5z74gq9/C7C3PRqeRMFCyQyuhDMurKHijBAuSXf94InCRpGxyyNMn3fVkpf6DEdNMHgWaUQc/GKUnW/RozTar7zZXbkKkQ7ozQBAvu66rUYzbBCWwJH6b5YzTI7QKrBwPaHw6CAK2Uhqo2LurfBxKaKOOZ3JUgtNuQJmqMU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787766257; 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=DWCIzduTnIm/W3WV2rk4cBKBAcF8NJBxjO9vrqzDujQ=; b=jSTrbYwejzxnt6vc8tIAaB3pmr/zRq9nfmnePYmOcxLMA77zO8TqW1IFtTd2ivEkvn7LXdAo+1Pks7G1L4AtArQjj15qDi6rU7fXX97Kcz7JSvyXD1//Un+MAkA+UKDvi5EvklgsPw91S+zA2Ggr/ZnvwKxDDDwE7jZNVVWI80Q= 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 1787766257752197.69681795586587; Wed, 26 Aug 2026 10:44:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wzHdx-00005y-4d; Wed, 26 Aug 2026 13:42:33 -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 1wzHdv-000052-6n for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:31 -0400 Received: from mail-pf1-x42a.google.com ([2607:f8b0:4864:20::42a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wzHds-0004nO-P0 for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:30 -0400 Received: by mail-pf1-x42a.google.com with SMTP id d2e1a72fcca58-8487214ad2bso1588763b3a.1 for ; Wed, 26 Aug 2026 10:42:28 -0700 (PDT) Received: from stoup (174-21-93-59.tukw.qwest.net. [174.21.93.59]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-cc1bec66020sm1260072a12.21.2026.08.26.10.42.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 10:42:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1787766147; x=1788370947; 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=DWCIzduTnIm/W3WV2rk4cBKBAcF8NJBxjO9vrqzDujQ=; b=PlVDiviRVv6hn/17DgUF2GmVSgagdLRCF/X7i+h6Z0yQCOsDKd9LD/rAC2Z9t+8sHk nC14Jvf7cmRN87dewxuXsb95/ZFX+I6CeQVsSn3mDhNx20qErnObSx0yqpcO1/uEvaaZ kUzHCU0pHtu7VsX+u9zhwOpr2vyXzzszWkQMOgCxCmQUMiCMoQawOWHLTQwDXptHYwho nr7V/8neS7QCCAOJz+7/xrG4gmi3WZE2jsZnr2u0n5/z8CtJg7qxzxQ1iWY6s3Nsml/a d6n3jeuSGftJbs9ppiaQGqxNI2DrHvcPXL6rzE8iqBXbgR4e00weO0qbCWoyUyP7EOiN oHPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787766147; x=1788370947; 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=DWCIzduTnIm/W3WV2rk4cBKBAcF8NJBxjO9vrqzDujQ=; b=fH8zIp2/eFRQcOgeTMMhFQ0o+2hYpe/i/xlUpoBmtuj2D8635+UHT293TNOSuQ0xxR p/qU/6Y3JXNQ8p56PsIgF1J/XDyuW1XwPLHqNHGvQ7fmyXYKZeh1JnqkNGMljv6+Vp8b PgrTzZPHfazvrfo1s/Av+o6xKH6hupBwe+jCZQGAdGvqegLMTKLby+G3ZdPXQqip8dTb cI/BYPcXkNO04PjLJ/xyXw4WQJzq/EFwEokDHAm6/+ttzi0ft6wmIPRgZBaMH51CL+Y1 2cfYSn/b2aRLUMXzPYKb9FaKeS8bOJgZhWXbPDPruwZB8Sa3gg7pmP9/rhmTPADpsExK kpGg== X-Gm-Message-State: AFuF++kRaVBmlcrpNpow9S9nHAZKc25nrEwlHeDM1TjMgE7t/z/pZpoj El33nlbi8Gby2/FVYv6fKonIuLMYsPwJBkF/Nzo8B8+/wh0YApdiqzb6YNgj2Vexr61mU8jNOLC xngCPTjQ= X-Gm-Gg: AR+sD13Fvj4J/gabESdgrHmo6N9ilYGgmYF0MrArh6ikEKWl2iBEWvfwzx0ShgPZYG6 BOKXAzoggIHJfKcjmnm+tZxTAbFGHz0n8V042k++oTI8FHB8W2mwEIOZ8T7B0ebl32PJde28E3K NOJWrvDE36ceC20esZtMRcmnJtSjSV5iYKv7l9KwrZhPFxjMrtMcTLewuF0KkgmyW/WIWlf2PPe qJxqHqY8qqRggAA1vjup4ZvHg/dEhgvhOrSGQMlbECHSX1aC8VbbYLY97ROoDqlby4gTJFTuBSu ubum0ATzDMGlFUBgrjacoN99emQcv3jYEyovJ0Dg2DMkkVcnDIASPXSb4OwFtCPsmeMlHbtTrrt M/OMVeiGgCqjKTND1jRLFHNaMXpe53/0ZqZ5GG3t+4nd4TwGmooQWtK1exJ1oA63NB+TqtgauI9 Wqzqwb9RwjtKb8CjD8W+LgIc1xButtgzV2PNmv349M+T/L06nB61aNHDerKf2ILZ8U9XWZDjFHb c6UgcGBeOFy81o7qw== X-Received: by 2002:a05:6a00:4149:b0:852:5f99:1866 with SMTP id d2e1a72fcca58-8536e922f5fmr17206220b3a.0.1787766147163; Wed, 26 Aug 2026 10:42:27 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v2 10/25] target/arm: Split decode of BFloat SVE FADD, FSUB, FMUL, FMIN*, FMAX* Date: Wed, 26 Aug 2026 10:41:57 -0700 Message-ID: <20260826174213.614571-11-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260826174213.614571-1-richard.henderson@linaro.org> References: <20260826174213.614571-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::42a; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x42a.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: 1787766257964158500 Content-Type: text/plain; charset="utf-8" Split decode so that feature detection can be handled external to gen_gvec_fpst_arg_zpzz Reviewed-by: Peter Maydell 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 f65c2b0af53..0ad0aff0504 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); } @@ -4426,65 +4422,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 bdc2b7f0c04..07dac681acf 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.53.0 From nobody Sat Sep 26 21:37:39 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=1787766265; cv=none; d=zohomail.com; s=zohoarc; b=Gm78yh4kOkeN6yvSomT+AVUaf7ypYENNJTewEc8dcoMRl1inc1pbK0hRkOq8j9TLAELR9Hw7M79WzvYvvEblyrvnOGlzPX5MkY62tPUPHOrk4hu42wNtgD+NkRfylaUx++AWHfPGSca5/FbXgSEvfrxn+nD6Hp9vl2Ife8FpjX0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787766265; 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=hkosmYx4+JdHDSjtlLYkep2quIxdGFu2Wlih9AWq7P0=; b=VMRM0PjXSDUapp/lHF9nUC+ytZKc33+uul+hKOQo27v220XHFnbuszWkd/2bbPZBKbm1DqRgqcIRWWvDsenIxq0W1fTuYiCUMy49r0lCwfluF8sbp+qMxB//6qIFaIx8tlk/Q9XqV9bLmyRYoZP2bMbLfszvpIBoQ9efLAqiZm0= 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 1787766265311552.4267216284118; Wed, 26 Aug 2026 10:44:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wzHdx-00006L-Hl; Wed, 26 Aug 2026 13:42:33 -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 1wzHdv-00005M-LX for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:31 -0400 Received: from mail-pg1-x52e.google.com ([2607:f8b0:4864:20::52e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wzHdt-0004nl-I1 for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:31 -0400 Received: by mail-pg1-x52e.google.com with SMTP id 41be03b00d2f7-c9b373d5af0so948519a12.2 for ; Wed, 26 Aug 2026 10:42:29 -0700 (PDT) Received: from stoup (174-21-93-59.tukw.qwest.net. [174.21.93.59]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-cc1bec66020sm1260072a12.21.2026.08.26.10.42.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 10:42:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1787766148; x=1788370948; 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=hkosmYx4+JdHDSjtlLYkep2quIxdGFu2Wlih9AWq7P0=; b=oVQCDiQHcgr0QJ+C/tZy0/byWB3hzom7wW2quNQ/ncFWfbaie99qwPKi6E+iA/wKFs I8imr/hyqlLsAqXpaYbk48jJvu3MAIH+vE3TfWO7OiY4/lEtZ4ZMRLeFcqOWxbJ0iasf dPSXQb+eNA8FjeGpoUmMN/C7gL0dLdy2tSlxaZ17GtBIO5+NsviIf68mdaTzsprSZwi6 CsR4ukMJFHTgeO2FQNbBMo7Kf7wjOUgBMl2mTkJBsOTKgiZP4DzaN4g5sX+z/39KmwlC cUYHmKl9EtfDsKV2mo/QTx6EpRE5D1bDgN5JuAs19XjWTTIMfABmzwkqBJIjLRGX8JyX wXOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787766148; x=1788370948; 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=hkosmYx4+JdHDSjtlLYkep2quIxdGFu2Wlih9AWq7P0=; b=VR/KiRp2xdWQKYQTCe+IpXGRQCyhrMKQXPRqKeyCUcbImQyeCvEHdg+6ejt/bbyNqU YHWC6WlaDV4r2VhvERytB618MpQHjV9d3LFFhVZTpJUkw12p7FmqjBjMQsTi/Ff490wk 2TTTBdmWghxMo/pUs674WvP6rLoxFJ2Uuaf0GSsKYXv/cqv9tbMCUOHtC50cMxZ/t3ab fWXfAe/AZIxZufPjJf8lJNM0nwmJfZER3kIeDtloXSr25YSr6kfa1B/Jm1i985B5PCFv JL1FGjYmqSab1pqlCLEfSE6gWBNcKPks8zQvFFuOPJ0sGN53MUeWfTwY6zSlnO85yaGh S2HQ== X-Gm-Message-State: AFuF++kr3+7yunsULdik67nNH+FpT1y9Qm/lgQAIE6u4++i/sDsRBoBR sYb7FVn5K1REAekdbhJh6BvZBKej40dilFHJpuuIk6cq3Vy2+adj844/P7Gz+2daF6r2XWrzStH vYOSCKVE= X-Gm-Gg: AR+sD12pbkmJAGNbvjBvUMiDw05Bfzi7z/ooUeX7A1+CADgipfdInxkZDjQlrMqXgJl DQ2ob9HIuPqSFEyc9DMvneloSKtAlvTKYQBZrR6WHNXY2G9RC2BRYMPWvOm0Dl6FWnW+N3fZYfD Sd6XrhOxM7tGt00uBxcOsijcnobWrYxKtf18RfcKIU03pjY+P0qY978mkXiXal8zrzi39CsxMFJ MJeqbkHWPtrX+4C6iXi+jyRaxMvMt9XcDf+2Y4O5m6z0pPyqiPdw74MnVY4+rOBjHXjTz2JGVK0 PumHYtADrnl/ZSx6VGJNfRRBsEdXNRjvtEupilcl8mav/dkF96qOaCk2a2kaiovcwq0xX5Tobzw qNjp27ZS7iWw4rd+r6ObaKE6JsvOJtHbbdczTzmmg1T4l5cES3V5oxX+tQoY5SGW3EpoKrZMBc7 +WwCLEAvIclKZ+mqDzUNrI5UOdQK1Ast2CV2HfEmlNHTjund97wVd3FSPsGVePopCn9vcGuzOf+ bYujFLwTJts8pVUiUqMQ1kE/yiulA== X-Received: by 2002:a05:6a21:2212:b0:3d0:ba81:79b1 with SMTP id adf61e73a8af0-3d0ba817b48mr5650967637.0.1787766148082; Wed, 26 Aug 2026 10:42:28 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v2 11/25] target/arm: Implement SVE BFSCALE Date: Wed, 26 Aug 2026 10:41:58 -0700 Message-ID: <20260826174213.614571-12-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260826174213.614571-1-richard.henderson@linaro.org> References: <20260826174213.614571-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::52e; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x52e.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: 1787766266062158500 Content-Type: text/plain; charset="utf-8" Reviewed-by: Peter Maydell 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 e444397a478..76859c1f745 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 19bd936f6ef..f78e77662de 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 ac96b18784f..8389dce6299 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 0ad0aff0504..37875b6b366 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -4515,6 +4515,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 07dac681acf..ed19ae237f4 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.53.0 From nobody Sat Sep 26 21:37:39 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=1787766226; cv=none; d=zohomail.com; s=zohoarc; b=E0UnAmbsHQFsCuR/xQF1N0PiryEtcxwWjdUddUBOYC7xcigr4DKQTNDv1F9Q3zl9kZRiJSASFVahus2ONsb/JW8YDmdev+4XcYET3vzXJDsDfvrOgCNvrPa7Ve506CvErwE05P/FKS26VqADUlzHs5uGsd9isl7OSF6xjlFViMs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787766226; 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=oHlvtyL2rQlyiAdhAGXJKakXVeYyRaf33f+zCffDFKc=; b=gcriPH5dzw3KrYGo1S3WcrHwyaACSuHnBlPYwwAkyAxSY8Pfpr1FNK7Hq1S4nm1TN9evxeN4ASMqDWXsbrXkyuNoUpYQ09+7dwho6/mZZOh3d79XZhL2iwkrp38IPYMJCEhu2UxCeg8EqwD+iiwvB5wDke1/U0Kyxk33CPsj9D4= 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 1787766226804335.0701661863361; Wed, 26 Aug 2026 10:43:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wzHeL-0000QE-8W; Wed, 26 Aug 2026 13:42:57 -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 1wzHdx-00006D-5a for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:33 -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 1wzHdu-0004oP-QV for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:32 -0400 Received: by mail-pg1-x52f.google.com with SMTP id 41be03b00d2f7-cc1c9879395so782552a12.1 for ; Wed, 26 Aug 2026 10:42:30 -0700 (PDT) Received: from stoup (174-21-93-59.tukw.qwest.net. [174.21.93.59]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-cc1bec66020sm1260072a12.21.2026.08.26.10.42.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 10:42:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1787766149; x=1788370949; 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=oHlvtyL2rQlyiAdhAGXJKakXVeYyRaf33f+zCffDFKc=; b=XCbUk0BdIM5hpHNBKi+nVzKciMCt4iARLqzQ5To2cQsvBsY8Gp3AV3uTvEYfI0D1k1 a2xgQRB34SZnVZfvpMOWcLqfkMJ7kJoDo8klkDhDEBa0N0Glxf/qxXY6Nta0rsyNmdNC JX+yDSchTPyvCfHSDUfQtcd2df0n6vhERjBE/Q+J8a//uASMOaTtuK+rtJjEGQBg+D/9 6inQt07RmpEglDL5Mqe/RJdd/EksYeHrXwQDuxmNPQ77acEv3N1CVw6bJYKpMQ/eGFnl 3LDzA8Y0Kvgw25mBXrBfpNsemUAHahR6tufgd9ASu5ytWOvdAJiMn2DqThkE6S9Llabs lumA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787766149; x=1788370949; 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=oHlvtyL2rQlyiAdhAGXJKakXVeYyRaf33f+zCffDFKc=; b=CyqImQRXvgZmiIU1NlInP12bS5C7GyC52s5Enfi9HDUFe/j0crmIkyU/8v/00QaQOV pMdpZ/sdS4cZgOZDBqeQKB93rTRozjTJ0W7kqK3GDck2RDT1RS329fqkWpNTLhO+ZR7G LMwmYmG7Tt5kr+dcEyoq+5+BRjkWb9mgVCUUD3Xiw/t0fsyVQDGcz6WAJ1P+Ap4FppxA qncmhOTukUECCHMF++1QJWR57mmTkcyNEjmIz63BC/EZVQAiBYor1bwHT9YNQSVbS0Xm FB2SDD6C1Cc6vVmnsF+L7hsHPg0oPqdi/tzcyCl3RjMaW4sVDxYSsHxYyUKs4W42oWki 6+tA== X-Gm-Message-State: AFuF++kdhv03nuFbknVMCthVDrblOFrnVtrZtwofIMNsJXxpCGwsp83I eg6Z4N19nb4d3CVhWMERi+AWwDcorpU5DmTGe49FxhJWgL1U41ADM9rive8gPvfoV5rFxzdyZQz 8qQEnDZA= X-Gm-Gg: AR+sD109CJZQ7S0I8tXBv9ZxRNrdFGPHzcjoefy57SvHQG0EqI2Pot9BDXhQzaPHQDc sDsbYjTL0YFSf44L/QVsCOScsR+xxrDakQZ8dQBwnxdMd+X4Fitte1/eu7JSdrAbf+nWqn9uNo+ pRwdVmx914MfoStJ/+EBPr7j3g7BXjabTjE0r6A0OolxUdwUC8GIrpykCIxfOp1mfF+WODwxFxl mGBmeLFSciJ6pYCTh6qE1HSZtlCvxs6QRdp/SGQAO91Chb+gPTNeHp7vLcPfw9DGhPmpOwaPKta yyg6ezAIPEZyLubh7C0dO1EOYrciglaNL7wm5y792S66tm1+KLC1vEJpGs0LfW82qQsMnK0bhk9 qOnI4II9mL1M6alYP3EkpT64RE8hnDgnCYHRgpaUhYbJW/9UxH/g6e+0x929zfKM6toP28iXNd1 VRfpbept0yxAcUemDjHsbG6Zuswl1Ddoswe2qCIh7pIOzpN0Ve1vEZ0HELRIIUQTwkx4pmeJjPY ex3JvdVuF364uper3Rpxvxmtp1M X-Received: by 2002:a05:6a21:7985:b0:3d0:ba81:79b7 with SMTP id adf61e73a8af0-3d0ba817c06mr5050655637.12.1787766149040; Wed, 26 Aug 2026 10:42:29 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v2 12/25] target/arm: Implement SME BFSCALE Date: Wed, 26 Aug 2026 10:41:59 -0700 Message-ID: <20260826174213.614571-13-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260826174213.614571-1-richard.henderson@linaro.org> References: <20260826174213.614571-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=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: 1787766227888158500 Content-Type: text/plain; charset="utf-8" Reviewed-by: Peter Maydell 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 76859c1f745..b29cd490200 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 12f58c6a442..c1e5d86b272 100644 --- a/target/arm/tcg/helper-a64-defs.h +++ b/target/arm/tcg/helper-a64-defs.h @@ -151,6 +151,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 463754b057f..d28574a8cf0 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 d8b25b868ea..88799693507 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 60c7cacc10e..4e19c42b196 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.53.0 From nobody Sat Sep 26 21:37:39 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=1787766350; cv=none; d=zohomail.com; s=zohoarc; b=nR7y27JwGiDqOrnlgXPEflTTM3hUf+pWWbQa1g6uky4d2BL7cDVVO3XDaAXR5vkFlH7u3LNfEB5B8VIst+RMGu1x7BAeMpVY4xKPXJv8hRxsTFBtmzGJpKruQTmeu/ahQhqlyPup3Slq/1ftour1XIX7WiokOW07E4L3ie6Gf1U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787766350; 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=4jzGNhaLx3zE9dzspkiZZcbA9C9gEpNpA5SHsyurALs=; b=SbK6Htja/YiILz5Q6bDWo9z8nMt1RLwDLQvye1lnZjgK9x8Oan8w/TR0p0v+iQxDRLLlWgYgziNeJL3jW0RuiAsphaOjyxM3ABGbkrMMkAWjFMpFOXi466EOq5tKEDnC6BEBzjHDeaok/x81TwI+zasFekm+zbDQ9KH/ezYxc0E= 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 1787766350238522.0821093317642; Wed, 26 Aug 2026 10:45:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wzHeM-0000Vk-B4; Wed, 26 Aug 2026 13:42:58 -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 1wzHdx-000070-T5 for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:34 -0400 Received: from mail-pg1-x536.google.com ([2607:f8b0:4864:20::536]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wzHdv-0004og-Eu for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:33 -0400 Received: by mail-pg1-x536.google.com with SMTP id 41be03b00d2f7-c9aea40d799so780960a12.0 for ; Wed, 26 Aug 2026 10:42:31 -0700 (PDT) Received: from stoup (174-21-93-59.tukw.qwest.net. [174.21.93.59]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-cc1bec66020sm1260072a12.21.2026.08.26.10.42.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 10:42:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1787766150; x=1788370950; 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=4jzGNhaLx3zE9dzspkiZZcbA9C9gEpNpA5SHsyurALs=; b=hGO6dYzl9UmA/+KiitDk9b5F7rf+Po5z5r07eSFo3VXKBQQELnGzJ5iX9HVyYlrE+U YaSgbG8Jw8I2Dij/ZKk7L9/a13oWs5NSQyjbZOFb7AJqMDUkQDJgFJ/cxYoQ5Yr/SIJJ Fey+Z/xSv3piDkvH3ygrrjD8EVCKV9UcgyECc61p6Yhmz4k3WnCutqcfxHmQJTRjBq6i 6sOos3a1NlHbkauTPC9t0ukHqpCRGcxuHpa6UMqb2r2tcergfbCcTio16VN3IGXaHwS9 XOYTQm0LxU5Gn0GGVVS8yT6o+bvW0V0XwHpYHqc90fhZBSm++ZeZf6o1IAksxwuYubQ8 PHjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787766150; x=1788370950; 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=4jzGNhaLx3zE9dzspkiZZcbA9C9gEpNpA5SHsyurALs=; b=VQHsW9BmA73N18qpSc8R3h21m7L3Rh/JDmcJs0ZekAUUPA1fxZW2GwPSaHQX09ASZu 49bw1TJz+4mm2ERaGA1TCD3yyLge2TB/25xn1z/NaifcsVer9sJ975KkaNcUSWfokXCp e8NONXVb++AOzxHg4EexdJDGzzUOgiDKoy21L1tcuOTh3PsuibfWeGoo05Bp2+cffXi5 VmcWJUy1io1oI7xQ7A19xrY8SDjDEMj1373bSG69aVfYU6NqWCrdXcuFzIb3hWWvGkNT J6UJBCjJLS1R9ZEghF/vnk2+P8ZF43IpCJTSoHIMnqJ+CaZ2E4MftYBsRFyiaMzKxeP3 spQQ== X-Gm-Message-State: AFuF++nREwRkQ3ZCRM+g8kgJ9dT+F+5QaHh5vK2z8Ymrt7TYp8tIDA/k R0J30Re5IeW4b3OZhxwIdEZeMebl9V454rO1fbjj7+sTdC4oK9vLwOnW9/KIFytku+vaLAZkJsD OUCsS4pw= X-Gm-Gg: AR+sD13g3xxTHRtYq/TfXOCJJXRMzQEQotlNSfmWNSHB1SmXe1DPf9jOoc6yYNdUx9T a0dS7VBr+fbIF1TagEl52yB+dJGaB2x8Gtu8ggiu46AgDs063apVUOFs4DBk42RJwZuhrv7n+hV Bk5fBP1ZQ94DqMrJ9pLICT1Tm7V/3Ot1ZkRKRQDv3SUCXVRiaMnQHHo1L+F1DefJTTe+/AI58gB HIhGfgOP6DFAaKPxBvEWnxUJdJWDMYVVrUTZeYY5Q4fV4DrhPrWaw4bpPBQZi/rXU5/TeKu0Uoe 6pi27W0L47SFGk5JRP+Wi/YH+fFFDWddEFb4XDD85HzZqsQcSdQIqh4KqMi/2Yyhab7QffSpLQ/ q4Ajd1C5ML7fJnbxooDWgw2B9VmFUUoSvJg4sskRChJQY2mksDDl+g8zlpyerFfBw9LCzUmmkwt k37rWHHLdMTilkeMeM9v1/gh0gq3+Oc7PryOnYYTiD3msw0tBqkp9Tn4328qo0d4DCfL8iQkjQd L9LULclVuRD9DH/RQ== X-Received: by 2002:a05:6a20:e18b:b0:3be:b0b3:3962 with SMTP id adf61e73a8af0-3cf83f36b8amr18852117637.9.1787766149906; Wed, 26 Aug 2026 10:42:29 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v2 13/25] target/arm: Implement SME BFMUL Date: Wed, 26 Aug 2026 10:42:00 -0700 Message-ID: <20260826174213.614571-14-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260826174213.614571-1-richard.henderson@linaro.org> References: <20260826174213.614571-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::536; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x536.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: 1787766350652158500 Content-Type: text/plain; charset="utf-8" Reviewed-by: Peter Maydell 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 d28574a8cf0..08b25b0be9d 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 4e19c42b196..3e4cb7e5829 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.53.0 From nobody Sat Sep 26 21:37:39 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=1787766245; cv=none; d=zohomail.com; s=zohoarc; b=D/oJAVrKovx9QhfTqzT+DD0ZhvmoDudLgd9O1pvAC2th6Uh3aDQ1lWDOe/hWHYpHrUZ4jM/QkbT/OeCPfdlNmYDqvL6jHxb8HpL/pChTHZQpO2lWqCLalSgPOxa0OYmJVv7r0zsTe0DjJrq7v39UoyD7qBmZHxwHREx+e5TPkpA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787766245; 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=oZW3qoD7QrbM4MXrB8JSaCeBkeFxfPJqAEghSbxmme4=; b=cq5GouPClIQ6nPS6FdIGOt2dw3w+jwES9mcjPEP5u8rKAHdTJZzNtbUInH94pEcHT7mQraWbZ4bGJTetAxVBikLm6I8S29TplXVDypKjfZ4GBttiJqAK6UUQiGhqpH0GK14pSbs1Ilcslp7VHUpO4kUOHXsEpu+0yVdJSpgtazk= 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 178776624503451.70733546869144; Wed, 26 Aug 2026 10:44:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wzHeL-0000TW-Vh; Wed, 26 Aug 2026 13:42:58 -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 1wzHdy-00007b-80 for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:34 -0400 Received: from mail-pg1-x52b.google.com ([2607:f8b0:4864:20::52b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wzHdw-0004p9-FE for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:33 -0400 Received: by mail-pg1-x52b.google.com with SMTP id 41be03b00d2f7-ca12086c06eso912705a12.0 for ; Wed, 26 Aug 2026 10:42:32 -0700 (PDT) Received: from stoup (174-21-93-59.tukw.qwest.net. [174.21.93.59]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-cc1bec66020sm1260072a12.21.2026.08.26.10.42.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 10:42:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1787766151; x=1788370951; 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=oZW3qoD7QrbM4MXrB8JSaCeBkeFxfPJqAEghSbxmme4=; b=nJZ6G3yxx3ksDSa/G+pWfoWA8KDwXV77mAartVWWBZ6ZE/Mpgl2LlFqeoHo1lNfDyf w5eZF6L8AZYMjJulUUZ/VGqEePHuBaAaj4WfX2Zy03okpeQ9Icg1BBStlC2I/PDzAJ7D zmGogfgih9yDmXLeQ2p5FHYj7iHXNRA02jLWGZVTlKQNIMDpkzptG/20PeGEc9NNDXsf faVBAl4GF61CxhhGJTTSDyvAskEQTEE9B/ArIlJ5GNbvf8/sTaergolg5/dwb57nakXF THsQ8nWlTlO9BB1YfXtcFuzcy971FmAXH5ZB1nPaoMbzdouP5L8+2MLEC/yWJmpMDpHO P40Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787766151; x=1788370951; 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=oZW3qoD7QrbM4MXrB8JSaCeBkeFxfPJqAEghSbxmme4=; b=ZPT6WAbAPWyFcXbxUZEQ/jxClv8C2UDTG9B4bMo568UEgZzP8k1Cz7bUF0nQ6rANja T3LQiYwMicUdVA0WpCrYmmDnFchDF+uqRrIuDd4HD/lG3ZAy22fkFBJ/c8snBITmPvMU N16NOt6eTAh4N/6db59M2ViWKOn8ohOcY2Aq8fNBxI9GfCvAlDxeFwzR4tHHO0ukQ+8O Cmn9eTeaaXsY8KxewYJLJPmyo+T+9gcv0cv8GEZr2iE+KfP3NFuNKlaGNw+I2mYGxUsm avdHh1pG9puVSRe8HVINc9wBJhi+U14/jmg4OlO4pnKT6jEkJOvvbERqsDZSzlF1d4Hk XVwg== X-Gm-Message-State: AFuF++ngO0jefyCtlZ1QXqjafkpap2IAxL6IM40F9w1aF5+kcNi5Gnsw GjeRKxTzB/5222v+0UsX+SJix9vGdXz74Udb+d0xjLEsyVwhVfU/OCtFLhrFf+HukClMOEbicB2 aP+/VTME= X-Gm-Gg: AR+sD11T3sx+JQDnxFZ4I5p70qrpSyzx5VIbXdUoI1mbcFpcuLpveKxPJ4A+JbOzBlI 6cq80LUJM9ghJeFvPIdixLg2vc/0wiRKRgMN1Rxy7xMW3SGmu0MMFzo98C2MhmRD6a5M2jetFpt 9iHQgjBXOpN3kMqsuEV+0SOkF+ih9MvNxvRhhDtRzDKNgBlMKM+OkprwXLTk0KeGV9r1bWRVrJr zASxyKWPtrWB1L6W9lTbZh64NCrsM8BPfsOcoJMReoCdyp5SHQV2eWFStUwO9gLlAsjdtLqUlQQ D54CRHSidplEgBiHEu8kbpTSkczTc57aZP5ASmwULivisajum9X9NZJavz9eBOJ1S0pag3psHBw N5wDm7EF81CNOTWRm6KT2lWPU8RjZ1STLpN1USQvvQCUPE1ItA3EYzKX0OMORTS11CzPnooR6ZX QpMUwV4Qx1SsA66kc3jTo4JUdLOwa3YO6rCLkco4WBdrrKjCJtQEZEOGvaS8N33yUg3qTqVhvsW 1JZkA9EPsA3XtWmNprt8ugNJZkx X-Received: by 2002:a05:6a21:3315:b0:3c3:875d:c52f with SMTP id adf61e73a8af0-3cf83239ac1mr18129710637.10.1787766151051; Wed, 26 Aug 2026 10:42:31 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v2 14/25] target/arm: Enable FEAT_SVE_BFSCALE for -cpu max Date: Wed, 26 Aug 2026 10:42:01 -0700 Message-ID: <20260826174213.614571-15-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260826174213.614571-1-richard.henderson@linaro.org> References: <20260826174213.614571-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::52b; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x52b.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: 1787766245978158501 Content-Type: text/plain; charset="utf-8" Reviewed-by: Peter Maydell 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 c086548f7fd..bcf2e6b9c18 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 7cad37ae61a..f04d708bcc2 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -1473,7 +1473,7 @@ void aarch64_max_v9_tcg_initfn(Object *obj) t =3D FIELD_DP64(t, ID_AA64ZFR0, AES, 2); /* v9.0: FEAT_SVE_PMUL= L128 */ t =3D FIELD_DP64(t, ID_AA64ZFR0, ELTPERM, 1); /* v9.4: FEAT_SVE2p2 */ t =3D FIELD_DP64(t, ID_AA64ZFR0, BITPERM, 1); /* v9.0: FEAT_SVE_BitP= erm */ - t =3D FIELD_DP64(t, ID_AA64ZFR0, B16B16, 1); /* v9.2: FEAT_SVE_B16B= 16 */ + t =3D FIELD_DP64(t, ID_AA64ZFR0, B16B16, 2); /* v9.2: FEAT_SVE_BFSC= ALE */ t =3D FIELD_DP64(t, ID_AA64ZFR0, SHA3, 1); /* v9.0: FEAT_SVE_SHA3= */ t =3D FIELD_DP64(t, ID_AA64ZFR0, SM4, 1); /* v9.0: FEAT_SVE_SM4 = */ SET_IDREG(isar, ID_AA64ZFR0, t); diff --git a/docs/system/arm/emulation.rst b/docs/system/arm/emulation.rst index eb22469bb36..d41ad978bbd 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.53.0 From nobody Sat Sep 26 21:37:39 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=1787766288; cv=none; d=zohomail.com; s=zohoarc; b=M0gN8HjYf324QfT3EegH6QUey3jxA1+jOzf/6k3x3EO+KLXPCq10VDSumF0j6laDokd1DIWdtrcHgkRbV7xUjXOhgexiGUNAAActwB4SD6BX1MLzB3PTGzCrRWHdSrs13HqJdH0bA/ekoG/cfD+m8J4b10MXzxKvjvo7jmKWe48= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787766288; 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=1ERfDSnUduaOm6qJDiddHmbIk6DHXCcmbBBMAXkOdJE=; b=VwHGA5sqWeoT2B9wPIhTsI8ngzfogZtl904vz+TrybcMYhuC4fb9s1L24oFGTzgL7dUE+KoehIEyd5aC9rnOUr00wdoKb2oYfdT7BX6Ze3L0j1BTldZawEq7IEEApG7Jx/94htZi04Cz3bJeq0ZChbwOwrzthU1guLU44gxZNb8= 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 1787766288219631.7625314360794; Wed, 26 Aug 2026 10:44:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wzHeM-0000WB-Fu; Wed, 26 Aug 2026 13:42:58 -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 1wzHdz-00008i-0E for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:36 -0400 Received: from mail-pg1-x52e.google.com ([2607:f8b0:4864:20::52e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wzHdx-0004pX-Ah for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:34 -0400 Received: by mail-pg1-x52e.google.com with SMTP id 41be03b00d2f7-cbedf318752so1031502a12.0 for ; Wed, 26 Aug 2026 10:42:32 -0700 (PDT) Received: from stoup (174-21-93-59.tukw.qwest.net. [174.21.93.59]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-cc1bec66020sm1260072a12.21.2026.08.26.10.42.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 10:42:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1787766152; x=1788370952; 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=1ERfDSnUduaOm6qJDiddHmbIk6DHXCcmbBBMAXkOdJE=; b=oZH0gnjwkRMAgX1HHWxofRn/CcI/DI0tkhlpOi5nRXogEquD/+CBEPGZ7Y2aVo7+G5 LCvt2Izg7+Ltd7OE0AI0KvIH+tQMkFkNSA/PXzcZSXDlbByLj6ATkwte6Kb2FXazbzlW BaB8cnGyAasamsYliNZW5Sm57nNjGoXQcKXpyc31+SBhPVVZzeLnHMwOaKfTMQCpi9ZC xAr07tb8H07IkpnmFYOwmMt3XTXoQGFObkej0HCRlorKtHGuWoda2a4kuFyKUDhtZcgP JlgHNzGFhBuNpJAhkTB3ac7Ueef3SQHrBJ6sWtmnOIQCf+GCXaADpAhvpGbqi7vTPfQ+ w0tw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787766152; x=1788370952; 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=1ERfDSnUduaOm6qJDiddHmbIk6DHXCcmbBBMAXkOdJE=; b=k1yeoJrYvtcljIvqM/Wrlv4GWDv1sdcznfq0q6QdH0lEdmQ/aNyBX0kPmo8WngsrFL +zIsgc8LtneUpfGQLI4StQE0rU8PZA02762BjN72gn4f2xNeTMdBp7Q3T7AO3y+36fTm pK/ufA+syXmLZ1DU6fhHh9aoPast0ifnBILQ46KiQ9aqQWqNuY2aQG5vRBHyUha+jiB2 Rv9ZaG/Iq1D2UPoGf4eUPm6Wm6keysxvSJI4wH7q7Ql1ZMZq61Gg6icuUY3RBY9OqnmB NSSGIziT248LO6XXVKzhLYNzqeFt8hqQP7pNg7lK6UjTL41jgW60lOUTloLyt+C1LAhr 40CA== X-Gm-Message-State: AFuF++nkvc34ZlgqgGX9yTlYosz8/vVRN36eJ+VFL1FY6KOqFcl5mJHS A+ZYNn5nTR8MUDbAFy15s0x5fEJbdrHWF+CBUnDy/qOVcpuY09Cn5Pw3rVT0ybJqS93SQ5UE6Ob 3pzLzlLM= X-Gm-Gg: AR+sD13rbzM2y0VdR9V/+bu4uhlzQMUu6rTyq6YXv9Xa3vnsfyi+MINxlyKMUPq8O4Y DPeKamKlLYBzx/8zpEOlIlS8HbBpdhZr4x5BFqZslQGuRamO4kyScm/wN0ClkTtno/VDyC5voC3 jaqQCHBI+cIVA+TSufdqLb9XCtiEIPCZk8yi+9/1dw4sisOGni3eOox09pEVhGp2lPBuCqr2+Zi x7hxvE77PjVVbHxphimUlUrOCKxP8G0cW90NDbFNttDAjl1LQ1jRy0EBSzW6zHl+Lpo+q81Sq8e NUpiVoeYuQIq71mG4lI+i8rAKTco7NRHlZyVHSLqPH6CXZCjbhc/Sy5PiIYdhhnhb9xuUmA4VLJ /yejhox3j6DCKLzwQgBxVlFuV6BLRoxL3PVIqmVo5QNmALU7P6RlWm6c8aqbpOzDkvpw10wX++E 4FAZcdjYpXt26OFwY8ldezN6FVjnPO7oyXASbaN0Iz19ttmkRkuqW5gElbVQqzT7LBzfyOsE5KI rm29pneJ5fKAi3DZA== X-Received: by 2002:a05:6a20:6a08:b0:3b4:5ff3:45cb with SMTP id adf61e73a8af0-3cf8281fc20mr15273315637.8.1787766152017; Wed, 26 Aug 2026 10:42:32 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v2 15/25] target/arm: Rename isar_feature_aa64_sve_pmull128 Date: Wed, 26 Aug 2026 10:42:02 -0700 Message-ID: <20260826174213.614571-16-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260826174213.614571-1-richard.henderson@linaro.org> References: <20260826174213.614571-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::52e; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x52e.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: 1787766290138158500 Content-Type: text/plain; charset="utf-8" Rename from isar_feature_aa64_sve2_pmull128 to match the feature name: FEAT_SVE_PMULL128. Reviewed-by: Peter Maydell 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 2fb7dcd778b..6f9d192b4ff 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 b29cd490200..750be9b1b1a 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 bcf2e6b9c18..40c5e1dbd38 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 37875b6b366..773e4ba4e7b 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -7243,7 +7243,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.53.0 From nobody Sat Sep 26 21:37:39 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=1787766359; cv=none; d=zohomail.com; s=zohoarc; b=CFpe2OmAWY85ht9DsPM701vRUsejgRkXCf/rHlbO0+9i3m4ODHfdSQW1MHw5rnW6yeSSRL8ZYA8WXRTIAYKrJAJcBJ4Q5pLI2GxNa/m2dp2b+hFxHVGN86bEtfKXG555ykV0N7NN/P/QyBFtMea5mpdaxIIfUCHHXfGDstPxqkI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787766359; 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=8GEIXtO4rp0D+9hTzQSxGBOw3vUbRaLs8o9XlHapoI4=; b=iPOi0SpbJdH51lAFIlKLkMYYJ9yClmkgHoxepndyE9BGugIbQHEBWDG8pJGv84UZqjAzQmUP3BBrtRNQutbLOPZSKUsX0RyHoCXhF0GK5UutBEWIGxcc7VQ89dsv2psTUyjzhxwHivatVHxJr2rkyAtRASDZJD/9MsqWYCNv4+E= 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 1787766359844456.10107979047336; Wed, 26 Aug 2026 10:45:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wzHeX-0000l8-M8; Wed, 26 Aug 2026 13:43:10 -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 1wzHe0-00009I-OL for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:38 -0400 Received: from mail-pg1-x52d.google.com ([2607:f8b0:4864:20::52d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wzHdz-0004qF-4S for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:36 -0400 Received: by mail-pg1-x52d.google.com with SMTP id 41be03b00d2f7-cbedf433a99so1082361a12.2 for ; Wed, 26 Aug 2026 10:42:34 -0700 (PDT) Received: from stoup (174-21-93-59.tukw.qwest.net. [174.21.93.59]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-cc1bec66020sm1260072a12.21.2026.08.26.10.42.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 10:42:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1787766153; x=1788370953; 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=8GEIXtO4rp0D+9hTzQSxGBOw3vUbRaLs8o9XlHapoI4=; b=jlkJ9WqW7xBI5mlFqXNZGwHX9RNgKWfqRPv6hZ/DEZIzqRKQIaWwd3SSDi+JlDl3mS dSpCVBzPjG8NhWVQTNtcrH/oYl/7vssXCe6kDcx88euMOSiSRqGgYPcLliD73g7ssgV+ QO2to+nOfpkKl2RE/ssrSPximenBfFx24MhXD3eT7W5No0Q7JjUwgWetFRUar+XBl+J9 2GqehT/BSzJRiAgYpvlOzT0wlfdUKyE7LRsUrqxl1GntfRGJyyPREbkjV2ZrVhvfejFu p3z9pmOa5VjuIbmNc4DALPwCIG2nxqmmkQy3UgbHkRhqPJ/rdQMzcV1Is7EKPLb5KeOt 084w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787766153; x=1788370953; 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=8GEIXtO4rp0D+9hTzQSxGBOw3vUbRaLs8o9XlHapoI4=; b=f8HGFF42naaKhJNDZYwhDsJfdvIWqb2vt6TuiDrBOEVC7QEhcL5yhdVydDbMZapidR 53rO0ZoRAg36K5Z+KDMPsbyMDNtKU+gNDAGZXRNpb+dkBhB5O2LgviJ2HLOkzr24rjWE Hhxx6Mk9dOxjXvc7hp8PD3PgmrbIpoDTRbCaYEEQh8A83b/isV4V61/McddiMLFGAboW iWQsxcqjDsKU09D/aSWps5haFQdEhrdSaIQLNVNyGCdYliVfHgHPujajqnyjJJDhZHdI SNv0Tw5P3ER42LnN5tRd/qkuKAh/ulITAXxkoRR2maRbjISznILEUSoAnq/6bNvbZ22G pu2Q== X-Gm-Message-State: AFuF++leOJCbqMHV6Jkxt/r+PX2OJz3ACEsc790Pw5YNnzIkAt9KZ05T akgOSdiTV1zcQBsWHxMR40WMHvXUsyHJ8hlE2L6Ao8gwCnK5WHbaz5j4DpqQWDdfGj9rsA9XsZL 3TsIJfDo= X-Gm-Gg: AR+sD13rGy+YhkbQZfDKqsNKjiTFDQYXXpPUw20VQtrrmDoC1DsIeVTBuTm8c2McMuB 6WSg3/pn/ZeXD6WdPG3+gYvBWEamsh1aK20KUIwt/bhgCqZbhGbdKkLZP+zuqN4Yw52p8xRENQR nUH6JVrUG4abBApaaVx6SRj2RmkQtnpt0j5zyBdEi93+UqDlckrEkoH8o/CXNZd0gFxSAZj8Y3k 8NHibyqj0jHtMfAWRyozcmHLu+oRnhULBZATZ9s9ff6T06m4UJjS9/VEts1WXfhqd/lzZOoK25z 0x12ike+fw9ZD7ok2bpgInAPmvAKiXiv64VYLnyQvD3JykKvA0Oup28y3qmX5mYDzJB51/C8rAk IlK4kKOBSDb6nZiEg2DUem4pT9zDQ/X7u1xdmnTkNMgs7JDwCludXZCV7HLK+LJt1ItAiuXw9zk Cz3W4VY2giBeQ+YHyvNK4Q8tzG995WRdq1VisV+vufgjWNUd9THst9OgZ9dHX+Dy1BClRSWL7D7 STXUin0YIJWHWv2KA== X-Received: by 2002:a05:6a21:e082:b0:3c3:88a5:83e4 with SMTP id adf61e73a8af0-3cf83e350eemr13682661637.10.1787766153437; Wed, 26 Aug 2026 10:42:33 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v2 16/25] target/arm: Rename isar_feature_aa64_sve_bitperm Date: Wed, 26 Aug 2026 10:42:03 -0700 Message-ID: <20260826174213.614571-17-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260826174213.614571-1-richard.henderson@linaro.org> References: <20260826174213.614571-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::52d; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x52d.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: 1787766360546158500 Content-Type: text/plain; charset="utf-8" Rename from isar_feature_aa64_sve2_bitperm to match the feature name: FEAT_SVE_BITPERM. Reviewed-by: Peter Maydell 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 6f9d192b4ff..818b6f690a3 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 750be9b1b1a..857adf4ee07 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 40c5e1dbd38..0569350e376 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 773e4ba4e7b..87d6b5785c4 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -7430,21 +7430,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.53.0 From nobody Sat Sep 26 21:37:39 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=1787766281; cv=none; d=zohomail.com; s=zohoarc; b=d+PlHrLAXHByUc4HiKvxsiQ+UrdX7m/Yd3Tkjdj9Fiqt/ZOt3WKj62MFDCaCZZjves6j9QkltMKi43t4UOMdNjeNalygMU6YwTcdQKLmHQvSovoDCoQyZrJZRV2kM0HxhlMIX2LC/HtWM4KfpB1dPFNzuxwDyzOsVEZJKg2eKrc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787766281; 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=SmXUq+fsPwyO80LzQiEP88Q3vooswSB7fXANN1O62Rw=; b=RxEntU9GENeEt5HMbLjJ5U/v15XaX8UYcw+zEhJ1BEi0BV59LPQdYg4xta1TS0zRFO5gzRpMFmUVEC9B+1yDP4q1fgIprVWmwyRVP+ntks1yCbGi+J9eXQlDkbEKZas0F4tkX2btDTce1Tktfez+ChN2MDFT5ivZ3B6kBEx8+0A= 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 1787766281786414.9542329927691; Wed, 26 Aug 2026 10:44:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wzHeZ-0000t2-Gd; Wed, 26 Aug 2026 13:43:11 -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 1wzHe2-0000An-9P for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:41 -0400 Received: from mail-pf1-x436.google.com ([2607:f8b0:4864:20::436]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wzHdz-0004qb-TH for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:37 -0400 Received: by mail-pf1-x436.google.com with SMTP id d2e1a72fcca58-8548db7428aso346639b3a.1 for ; Wed, 26 Aug 2026 10:42:35 -0700 (PDT) Received: from stoup (174-21-93-59.tukw.qwest.net. [174.21.93.59]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-cc1bec66020sm1260072a12.21.2026.08.26.10.42.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 10:42:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1787766154; x=1788370954; 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=SmXUq+fsPwyO80LzQiEP88Q3vooswSB7fXANN1O62Rw=; b=nOGf0HvUMUtoZFmmemxbBUFOdfcRVb3kfS4Xdv5yktk0rDdrtnVXOU+Q6sjYPVP5Q+ tc5xGuG4bbuxY5hbJkTH4v25U1vReW381cBT7hxyYMALi7OvvuZAtfGhbIp6EQdjyRs5 ezyMoKVvmr46WPU53q+ttqxIcmkS8EJHXKmeaeDtfo7vfA6n2UohqnbOrvYvxjdL3+xK y68hqwgK+6Pf3oRbLS9Mrk8rGCiKRY/Qktt8DppbCSPmILY87Re4cdUm5IAVNdxxAeAm fJOE5HnSAULVxMTIPObPAMsGomjx4ClgmOHjyPjzofhLcnbjusveFS/0Yee+qLZu4Ae3 GlXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787766154; x=1788370954; 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=SmXUq+fsPwyO80LzQiEP88Q3vooswSB7fXANN1O62Rw=; b=lwQOjo29wW55gT+NajB4V8xNMeBpivU7dZydcr3MRJsYuWt6Z22etnVrrlixurNHYQ KQJzIM8ZfZ2o38G1IMcE5DmoefJPf/cyf4xxhdcxqApINbWv+tN6Fzodg/x39e3SJp8Q AQ/ffQOBH1EHXL9/nZ88uppvfHJ0NSlS+tucdIcn2pG4ERueB/xQyVGTRkNSwCGejIg8 kwDRqW4NbwwCgGwsfygWLIx7mcYjJAAgpguj5tU1zXwRCdB3VP4AP1J+RCAFlE6n24T5 FuMFtXMgY+va4eRr0i55SYj8N8861lgz0uOcspeJdFfQlXVRGexNwNlI3f+b4JNksEjK lInw== X-Gm-Message-State: AFuF++l5jCadBxHL1YD9grtk1csxELxOLx6XqD5kl/ym2/PnuPsJs9ow YJ10EJ3tcDEhI9A9562wlV+oEpOud9ESXJ5Re5dZXI+LKv0YrWuVtPur56VANtNVLTfAxjgBnxj BZvj46RM= X-Gm-Gg: AR+sD10qPFAwowe5oCZdeP8vOA0xBuhhl/ty5AgJP0e/+kN3JH0dinZ6G4u+UXOFneH /d5U9Z/Cu87DiO16XFKN0FqM+ULw/HVDUiTKcJ0Y0EPpCsZp9kFw1ws5d3fldhiKJ7mCne/Bnwm jJriFvJSc2K2Ney+P6ZqCpZ2Gw7nVd+GuYGgov9/8aHLcDP/nDrbugSG2TJVD6rGYRG1nxFFzbn rnKhQiM96CiaBdxq02N6Ld66AtPMN4zu8Awje62DFvDbrA4VkGbsblyeACNcJHKN4SMmX63RHSl +uMQ4r8O0pRefiB2C4TS7Zsl3TO/dQ4XVJw0lV3SfEAl7CiVq88Kx49oNH29qZnG1an1Xb7nrsT FF5ctyt0zyViiQ5vOGFc2+SQSqqKX7fAJ86ePaqsNdP3LnM2PEwAT5/SSTuiGrsslHKf/+5NYHf mgxJ4BGD/6t8jOuDRXjuL/1aGFUHtjcRG5uVfhP66Ba054GkDvVkXaSGaDmQTEHL7Fj+bG71zY0 /OT6oep9ed3ZVVamA== X-Received: by 2002:a05:6a00:6c83:b0:851:92fe:504b with SMTP id d2e1a72fcca58-85372faee4amr3814823b3a.7.1787766154492; Wed, 26 Aug 2026 10:42:34 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v2 17/25] target/arm: Rename isar_feature_aa64_sve_sha3 Date: Wed, 26 Aug 2026 10:42:04 -0700 Message-ID: <20260826174213.614571-18-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260826174213.614571-1-richard.henderson@linaro.org> References: <20260826174213.614571-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::436; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x436.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: 1787766282098158500 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. Reviewed-by: Peter Maydell 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 818b6f690a3..8669f3f8330 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 857adf4ee07..f94e8efe471 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 0569350e376..83791768c6e 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 87d6b5785c4..cf5445870cc 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8307,17 +8307,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.53.0 From nobody Sat Sep 26 21:37:39 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=1787766375; cv=none; d=zohomail.com; s=zohoarc; b=iW5lNNe0C+oXvQs+Dt0QvhNa3DZHozpDQ2ZfcXP58d45rLB82e3bAi2u7lBOhFVwsu8fiIGtXhNcYIHwT4jEoFAAwAx3KKfx7E4jg/scfIXE+Lv6gv7008nMOAr4SrLyavhcxkluWeQOZMvjkFPnCfNIOjTwS0aL/KaLWZExBgk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787766375; 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=98SZj8G2qM95HopKhGAt9krvgt80d6igX2ZzSUH8XYg=; b=DTZONq0AUuXjUTGoRqvpSEhWVlSABvNGWUsR0Bl+5ePwB7kg0J/R5329mC0kbX2mDLp9yqCacveaME5y5MXfEtpiZPc/3jqbb8uf6Sz8iOgmHmnl2ZkA8TNmDG59vim5lNIIbX2M+H60RUEQwIsuS3PZ0cKUmmKAZBrCEFvvTz8= 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 1787766375245448.84782272281063; Wed, 26 Aug 2026 10:46:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wzHeZ-0000r1-3N; Wed, 26 Aug 2026 13:43:11 -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 1wzHe3-0000CU-MQ for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:47 -0400 Received: from mail-pg1-x52d.google.com ([2607:f8b0:4864:20::52d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wzHe1-0004qy-MQ for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:39 -0400 Received: by mail-pg1-x52d.google.com with SMTP id 41be03b00d2f7-ca97d139d5fso1081049a12.0 for ; Wed, 26 Aug 2026 10:42:37 -0700 (PDT) Received: from stoup (174-21-93-59.tukw.qwest.net. [174.21.93.59]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-cc1bec66020sm1260072a12.21.2026.08.26.10.42.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 10:42:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1787766156; x=1788370956; 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=98SZj8G2qM95HopKhGAt9krvgt80d6igX2ZzSUH8XYg=; b=gExZhvciMHXm8T/WgjrCST3iO9+HGTWTHVz3X5rygcUh/eveaNp6YSEV5xmBWRs3vJ HMLXJ+RhlI/1QbCmowpsL903coz0O/IYRVu9iZvLigsspnEh+isKRDJv32jIhGP9L7H9 vZ51EHPCEIn2gqWzMTuGh301PEuJxvrTlnK89YqOeAnB05cIaFjlvMo/u/2OblNDpm7t r4eQHsp2MhaykPTd2eULt4tX7u9+lqWLXszr2eqtTkEuQygidWv9f6vGX+2WiE+JOz5Y iHF8EpQTUasMhQltvhMCc12ALqMLPeAlOv3TZHrv2J9tOo4P2q6MVJuG5E42Z+esE5Ih SRQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787766156; x=1788370956; 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=98SZj8G2qM95HopKhGAt9krvgt80d6igX2ZzSUH8XYg=; b=ctIuQegx3Ns0GMuCXSno+mUpGfzP5iK0Vo6oqPqSuBSoE2zAp0EJw9lTkcONIqwsWf 9quDyIJEuGmvEL1QEhmoBJ9IR/QCZKTKVuojzpbk/AR9V3u9Bm27QS39EtaY0VGC4xvh 1shyuH3dVihn7KclMvybLXDyCQ7Zwn3LpLqvu57SdS8HPWGN1q8ylNqy42d44axLiBHQ HLfdGf+MnFSkk72slBxYHY63FzGyzMFwsNmfOBdvNhkJR7xzB5w79/nZUZkxX2WUuvTY CGPIStOWgN2qZUxZuqDT18thTMwWdrRDx95t0MM5XNCj9S7aetFifb7XojyFIFbMaoj7 /9Og== X-Gm-Message-State: AFuF++kz1o2xEISwPUVS2oXJj8022GoLXjGglYZEyQt9qhVuIkNRZhy+ GhHbRT2DSaoktBRUm0bDx6IE4EoA6PFKin0+b1enKDCDGWJO38kMHk+dx3u5938tG0MUfdSTR5y atT2i1MM= X-Gm-Gg: AR+sD11FPoEsKEez3ktiLxrM4aoyuSoxOUyADU2wfPfwMt4jnS69hBWVBvKqGJpizgL rxg7CfA+4yThxxT8mkIy/VzResLSGeWkZHEOoSnqC8oozciBpELTTm3Y4HbW3ENg/OKa/E0VGax Un6fxzuEvX0PLoaoVL11eKh9Mz6IEX669jg4FnUvp8snaSzRj+Dym47udYdaMONL4Xw2sPCrE5d O3JG874OO4xt20E3jfLG7kJfdlu3h9dgIC5OWxXWSxLBxXNVaOiv+RD/2/XokX3mx0pAa4XB9E2 2h7/nMbmILePWgFNR9SQybPUZm4yu01uEJwezdMPxPLLiuCeu+/8D4TAsWOWPGCiPFxoBh2dZCr mNZd29bWD2J+/9CzOWt+EHwhgPm5WxHQsOkvn5TZQYn9+RKFc09GeMg+IMYyY30/KUGVzcVSiTO m5y3hbJFdRezhTEc0XVwdMhVdmELpbI4P0tgA0WKUEllrROXi64KLBuSpMNL9QorwDWhz1KdCdO B7zQtqHFzEjzX74kw== X-Received: by 2002:a05:6300:6681:b0:3c3:7ac4:dac0 with SMTP id adf61e73a8af0-3cf85676aa1mr19610852637.13.1787766156091; Wed, 26 Aug 2026 10:42:36 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v2 18/25] target/arm: Rename isar_feature_aa64_sve_sm4 Date: Wed, 26 Aug 2026 10:42:05 -0700 Message-ID: <20260826174213.614571-19-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260826174213.614571-1-richard.henderson@linaro.org> References: <20260826174213.614571-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::52d; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x52d.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: 1787766376662158500 Content-Type: text/plain; charset="utf-8" Rename from isar_feature_aa64_sve2_sm4 to match the feature name: FEAT_SVE_SM4. Reviewed-by: Peter Maydell 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 8669f3f8330..0ec7a7b5859 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 f94e8efe471..44dfc7d457c 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 83791768c6e..7afbfca4183 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 cf5445870cc..3d823674cca 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8302,9 +8302,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.53.0 From nobody Sat Sep 26 21:37:39 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=1787766308; cv=none; d=zohomail.com; s=zohoarc; b=dBEZOS5fZm+68KBoVGfrTO10TF0B9uTfHa+PM2YYI+C5yflnztdjo0zaNcOr5iBqdXcDrxYCmibAuzkp97DwWFLb/fJH5C4QOMqYe14nmBOtaWu/kRzBFnv5BjEenI0QeNt73xHW7dp72IVE2gRUZ4h0IduBGg3PaJLynsIqmqs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787766308; 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=hbxE8j5TnyHhPNt4mCLhEpSl1dMLWX06clsmhks0gDQ=; b=aqW/FFlCUp62bK/fhWn/NlzlxuwqrZ8NgwuZKkqREjetDV66URG81yILqpSBoI5xowb9bPFHZPBQy2tWXO4TOvN0s6KrrJdv9xDe/aMFRb4gTDLqEEx/wd9bS+hqz4kklmd2MMc1kVDtOtO9FR81RDcE9u13yxfLEBUA71pQewU= 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 1787766308922413.28135971991367; Wed, 26 Aug 2026 10:45:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wzHeN-0000Y0-6k; Wed, 26 Aug 2026 13:42:59 -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 1wzHe5-0000D1-52 for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:47 -0400 Received: from mail-pg1-x52e.google.com ([2607:f8b0:4864:20::52e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wzHe2-0004rC-Lr for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:40 -0400 Received: by mail-pg1-x52e.google.com with SMTP id 41be03b00d2f7-cc1c7364550so950841a12.1 for ; Wed, 26 Aug 2026 10:42:38 -0700 (PDT) Received: from stoup (174-21-93-59.tukw.qwest.net. [174.21.93.59]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-cc1bec66020sm1260072a12.21.2026.08.26.10.42.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 10:42:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1787766157; x=1788370957; 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=hbxE8j5TnyHhPNt4mCLhEpSl1dMLWX06clsmhks0gDQ=; b=yUxF3iaOuQkhPX6XF8w70RQINkr6HcfDR9HbdtC3A0GEgg8fFTPhQkHCIAscfKhOjI xI8McqK5YtpHMKtWg6eUfHKLUp8d08zQIFYydohR3loniGM0tPLPLWurFV6cyt7MmAUR ik2bSzKv0WfJiRUPYHBjAr0sCHTIuw+L0wAkt4judTHc/YU2CNfXa2BzQYMMHXWlVeOz NU8btHfBfdmIpF30QlMK5mayG5jtXhkXdOOiitrKhf2ZW0Jj/nLjFvLnu8/FNbkkEQQ7 A5KYzFqjmxmSOr8a4f9eC83w9ks5g9WvFPZ/zTZtR7CSX+7E3SQSs3EzhpAwXbC9vTyF Ypig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787766157; x=1788370957; 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=hbxE8j5TnyHhPNt4mCLhEpSl1dMLWX06clsmhks0gDQ=; b=YMAZ7UXIkn7jtIbhyOjDTjdMS7C0PG6HSCduECVER6vU51zOOItrJIoo21BlmD9nPo dMtwzW5ijGjQafEgp/4/owToyvi5i2WUW+ps1jg9g9UVhux3DZndwSeqvgmInmp4xWth EbVQe/A2KH9nflhQ6JG8cTT/0tPNGAR6lsfKssQXEMEZHmMAgwfrxvr6Xazs507evA8I c3IaxVDkm5k9fA5ax/eOoX7tEyb+B4AWJZ8O972x3+diD71mUnPrKKf6xgPCHqUUvqig vBwNPhCsfzidv/2l0Jp48DbGWG2OCZMOy39sQWKnky7PXSrzXIgsFpX4/Wo/p7nPU0aQ p0iQ== X-Gm-Message-State: AFuF++lY1VJx1axpffVEnu3vKpjT/WW+ytWn0NGJ9545Qx5Mr6CHXxLL a1vEe2ICyxImjTNIhYhhNT5qQ6EGfOb66LKjyBP/ipW3t6u/wroX0X6HoW2nRN2coA1d4Dq0SGx +5OgeQ4U= X-Gm-Gg: AR+sD130rJ2G7CZIk2tiRCBqcB4qXbfoMq3VjwT0kskVL9I6M3MttWMBLg2YPhN4V5X nVn3P95DSbzbsZ9E8h3ybfX3vojpLjSGdwGBtcXlyERjKOTxB8eHUZ5kCwehIcggv7azU/o+J63 rxRZfSd6kJ3fFE6M4YU/xCisQRMLhhyffL0m1HkXtC9ypXVsCZag7xYK3zILL2SpOGOkoUh0TnT mRsO2oJkkAmXvLmg2QeOY3bMUFqjF8qfgZHHpd9CjLBX/brSlRPYP5FpUHkKy6zr9lQhcBjn59k 1JTQot5LWlWr2/3pt+fiGLYa5YsRzs9Qv0izFbV5WEqulwPUU2saz+YY401fV2mV5GKV4S6bd2C wKRZYlH67Xjvcg7SGdciOPJXHkxjyyguIxRBiyaZlQqmNT0DjBlTVQ/PQhNVjSo1hCuiFGb97+Z XNAoi+lpBqbC0p3/mHOJHYv5zDxS77Nhp9v+8OR/js0Avb8KKsSU7w/8p78Isoq0hv33xZBPwIH rkbtqBSnQn3y+OHAA== X-Received: by 2002:a05:6a21:3a4a:b0:3cc:2552:ddd7 with SMTP id adf61e73a8af0-3cf8293ba48mr20415402637.5.1787766156907; Wed, 26 Aug 2026 10:42:36 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v2 19/25] target/arm: Implement and enable FEAT_SSVE_BitPerm for -cpu max Date: Wed, 26 Aug 2026 10:42:06 -0700 Message-ID: <20260826174213.614571-20-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260826174213.614571-1-richard.henderson@linaro.org> References: <20260826174213.614571-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::52e; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x52e.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: 1787766310224158500 Content-Type: text/plain; charset="utf-8" Reviewed-by: Peter Maydell 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 44dfc7d457c..d3130fbe671 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 7afbfca4183..4359312ee38 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 f04d708bcc2..ab32cedba46 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -1483,6 +1483,7 @@ void aarch64_max_v9_tcg_initfn(Object *obj) t =3D FIELD_DP64(t, ID_AA64SMFR0, STMOP, 1); /* v9.4: FEAT_SME_TMOP= */ t =3D FIELD_DP64(t, ID_AA64SMFR0, SFEXPA, 1); /* v9.4: FEAT_SSVE_FEX= PA */ t =3D FIELD_DP64(t, ID_AA64SMFR0, AES, 1); /* v9.5: FEAT_SSVE_AES= */ + t =3D FIELD_DP64(t, ID_AA64SMFR0, SBITPERM, 1); /* v9.4: FEAT_SSVE_Bit= Perm */ t =3D FIELD_DP64(t, ID_AA64SMFR0, SF8DP2, 1); /* v9.2: FEAT_SSVE_FP8= DOT2 */ t =3D FIELD_DP64(t, ID_AA64SMFR0, SF8DP4, 1); /* v9.2: FEAT_SSVE_FP8= DOT4 */ t =3D FIELD_DP64(t, ID_AA64SMFR0, SF8FMA, 1); /* v9.2: FEAT_SSVE_FP8= FMA */ diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 3d823674cca..8a5903da4fc 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -7430,22 +7430,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 d41ad978bbd..b9c6b8226d6 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.53.0 From nobody Sat Sep 26 21:37:39 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=1787766276; cv=none; d=zohomail.com; s=zohoarc; b=EwxaRD0gCZCApv7bOhGIX7gz9vUYAe0e4Ikwcq9x/mSpmImxiMz1nbPJ4nq+GX70njzKRaW88961/Zzi4HvRd5aJIK3jIc/pZG6xAEwE75j/f6tbkqaSrVJBqLy5oS+sYpiDInQRGyGem89lFX06o3LJT0dlE0jS6nFW3VKsoQU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787766276; 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=v3/VH7Uko7suWCk8xeOeaPamGriSltUtLV9H0PDuAFM=; b=YYyygLB+/fkfB6xlLJ65XPRm2ijCKNqtN8R56vy7rrwP/GLeu89ZdWwkB2hCHxfYxVfcsvFad+BNn4RLw+hxut7vbgpmzgcN1ueYDxGIkwafBzLKU/GnV6jdsnHoU0qHzSf3mc3r/szWzZEZUxLJY6XfaTJ1yP8gAtRmzjIg68I= 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 1787766276376240.82746467255856; Wed, 26 Aug 2026 10:44:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wzHej-00016c-6G; Wed, 26 Aug 2026 13:43:23 -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 1wzHe6-0000Dc-TC for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:47 -0400 Received: from mail-pf1-x42d.google.com ([2607:f8b0:4864:20::42d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wzHe3-0004rf-R9 for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:41 -0400 Received: by mail-pf1-x42d.google.com with SMTP id d2e1a72fcca58-853c947bfefso151509b3a.0 for ; Wed, 26 Aug 2026 10:42:39 -0700 (PDT) Received: from stoup (174-21-93-59.tukw.qwest.net. [174.21.93.59]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-cc1bec66020sm1260072a12.21.2026.08.26.10.42.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 10:42:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1787766158; x=1788370958; 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=v3/VH7Uko7suWCk8xeOeaPamGriSltUtLV9H0PDuAFM=; b=keDkPDXYCHWCsOqQxIsds2vvgooA39ncG29CTmeUzahpO6Y9ith3+FFKuZmeiQ0m7E DzCLpjAZBQudz3pYfgF0P23rABtVr97NvKwvl207Q7vA6leXM8YbyyR/9/jhkIxZqCa0 jt69QQfuXa+sURJlB8qYGw4SvVhE9bHxJkN+SN51OUwqgOEpqEr8Y9Re+yniSLrSiUqa zqdiCnFvi5vwIgf77STvXghY07uMXmFueO4epTE89wglqM1CjRuIHB5o5XocWWTmZQlZ LmGV12GXXaNIGhmvJMZc4VpFOoJxt1oyk8ELsADPatGJELkye7fCJBaj8q1XhJTDpx5w 3v7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787766158; x=1788370958; 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=v3/VH7Uko7suWCk8xeOeaPamGriSltUtLV9H0PDuAFM=; b=evBOAEwRdEgO12BedukTPPF5RTkT6GlCn6XPyGxdxuvNLo/34/rrQCLr4XRBhOFIrE UHihrCyW7mD/1MlqltvTsWISLVlhmL4aO6OKZSQNx8RNldJMK1qhiiqgCzeTVTul75PE J2wyGJ7H8JmGu9xAIDpa8sIxG1JENgc+Q+WJZy2BEqpg1SJuzLEY+JvSkQ26BeSOkKhc iTxnjJUEdoLAjg/jpNl54Xa95T/wnH86/eL7JOSp48jT+cOcA5wy5u1NY5jRrXSiF7vD heJmGJ68xNR+2axwp8l24xu8IkJ11ey4p/Lk4aqUWdrnTHpQAhH7jSkoyH7g2NJaJ0Jf xXkg== X-Gm-Message-State: AFuF++lxxiAAGnp1Es2xp3ti2J+mFenHE+xzFtydLS6tEjPdoOgbWDvB UTL797PalAHcIa8CUSJrA8MVeIonVO3qdhfK4ZLNEcq4vIbZXSkZU3/lM/vFmKaVqPA432tSSFy LRl1bSxI= X-Gm-Gg: AR+sD11ZtptjxHv3OdUGAetjxnBM9EXvc6lhl5KFzja790mPxzrEni7Az17QtoCXYqJ ixyjJeb+LrNmJi8sJHeMX0omqcOLfL45ZbsGE7PvrHJIVZHgevQCX7uXVjrh5xw1dIjOKRfN9lP AkDyo815R93vXHqheqMlxArnw8Tn5SQLRRXiYS8wt8f9fYGP/vndv6vj1qlqpmKuyMO0vUoV+VH irWFdYZOevCenJeOmEK+AVZXee8sKlZ3Kf28GYtAdqYSEQrnpiIYLAg6IoJktes/0Ts8p19C55F AO5aJlQC+ute+HPs0yfT4s54sVBRlU8upwuNw/SF5VS5spUk1krq/DNiRCsle9UjzPFgiQEe9d4 xp3MuZJXaMFhKC82z+TmsV+JbjgbHgs5tXibIJv2gZ1Sz3fclalfV5ScVBgcppDS6TLJlspiJLY 028nMO4mzE+Dft/UQkdbuKsZNqpujkuO+GEu4MIJgEE5pEB3Rd86n7ckL4kxSszRyjl2pp2JNA8 ODUBp9FRlmPU0E7Rw== X-Received: by 2002:a05:6a00:1404:b0:848:4c3a:a359 with SMTP id d2e1a72fcca58-854c930ffddmr876187b3a.19.1787766158063; Wed, 26 Aug 2026 10:42:38 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v2 20/25] target/arm: Implement AESE (indexed) Date: Wed, 26 Aug 2026 10:42:07 -0700 Message-ID: <20260826174213.614571-21-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260826174213.614571-1-richard.henderson@linaro.org> References: <20260826174213.614571-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::42d; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x42d.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: 1787766278159158500 Content-Type: text/plain; charset="utf-8" Reviewed-by: Peter Maydell 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 d3130fbe671..cfbe39394f1 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 42376af2c68..9b320b5c97e 100644 --- a/target/arm/tcg/helper-defs.h +++ b/target/arm/tcg/helper-defs.h @@ -461,6 +461,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 11977cb7723..27b5813b6d9 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 8a5903da4fc..9ce172dd939 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8310,6 +8310,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 ed19ae237f4..64e0dd0eae9 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.53.0 From nobody Sat Sep 26 21:37:39 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=1787766335; cv=none; d=zohomail.com; s=zohoarc; b=IsaVLeqQ4df/qxr3vYkDiVraF2jJ0k0S/c1M5icV7y3T3sK8CuSM2IXKYR+SItYdYEnT2ELbsH3qmMHiViBaMVy2qukm3O+XL7sL4UpO6wUzbrW5ZNcHQ7Piqi1CIWxXgqdSJDQIaogNAuKRzwawrzIAMN1daV1+dsAeQAom8aA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787766335; 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=5t9US0/7SeEnGy5DN1l/EIQgUJAowvAVfFVnjj4qO14=; b=jubWeJHs38Y+H21Yh+Q4scw5j3PTnZ6oviC2/D7trWbTvACDsqUXSayv+8OL15Uc/PpU7TrSaokLzXuvobudILRvC264eEZ/+tUXej3pqSUTUMHaClKS1MDayAxgIY6GhAUKH1qhuRvWiEAi5tQ+BTCAIt1ivnvqyP7vMtrjkPE= 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 1787766335326920.9698563550932; Wed, 26 Aug 2026 10:45:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wzHeY-0000px-P7; Wed, 26 Aug 2026 13:43:10 -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 1wzHe7-0000Dd-IN for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:47 -0400 Received: from mail-pg1-x52e.google.com ([2607:f8b0:4864:20::52e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wzHe4-0004s3-Lp for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:42 -0400 Received: by mail-pg1-x52e.google.com with SMTP id 41be03b00d2f7-cc1cc1b42b5so719225a12.2 for ; Wed, 26 Aug 2026 10:42:40 -0700 (PDT) Received: from stoup (174-21-93-59.tukw.qwest.net. [174.21.93.59]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-cc1bec66020sm1260072a12.21.2026.08.26.10.42.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 10:42:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1787766159; x=1788370959; 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=5t9US0/7SeEnGy5DN1l/EIQgUJAowvAVfFVnjj4qO14=; b=C3v3cKBChvR4JfCcV9lglSN5EQ78Ipn3TzB9kxq2FT5BbApRC/xIeJT2Ls5Hrjf4Ly j+4rg3fENEE5CzO9hVhtfpRL2/nraVVdCac0H4LVxsApF7EHSo6kL9o3NSa5rzTOpTVs KJCZl8U08G9Ns+SJWOXwldFzdjHnMxzOcG/46BzZtRWhThgaGc8CJYA4uT01QOnzttlu XXW9s5Afv3j0OY5MMEKWBnULwfXdztTOKnVM/otFih+rFTM0QpS5TEV/s6COnbCyb4bv 6ov11/Fo4efTuhf6IBjceTQ4QYN0jWrH3Ghcc1esptm1+pJUS0aAreZY7+VTgpemhKYS 65eQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787766159; x=1788370959; 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=5t9US0/7SeEnGy5DN1l/EIQgUJAowvAVfFVnjj4qO14=; b=AO1ZzCXXY+aUA8QQ9I1oyku0AqJP4365YOXdLnA6HfPp0g0WUST2sh1qVwlp4StrIe 7xN+tJUb87RD7YuPEI/ynJ+lXYLu4JK8Yh2okUfXfsOHCHlrqOe0OZmZPKv3vrE70IrQ ry7YJRd+uLGWk+YaTN1rq7Kmv4cFeqWuIJnnHeclgsb0oJH8036hXIxozJi5GECZYJXa PZpXb3JFf6cYVpmZ0y5tZ6PTuQE0fJbJMkK1/yj/xuYL0NGrkoI7/ItIDbNdJtvjfU/H eM/dgyELHBX7VGdF+jq0jcQQfpAyWW2MTMLrtJIwcYCN5zOPs6JtuQuDKUjDlSGpzUvU CCDQ== X-Gm-Message-State: AFuF++kD8xITcQ1aJAW9XP2CywL8aJjBBOYn42iTK3I/bEylzgSxcwae nQSxM+BozLNLaDfRr9ReJ386BQRH+I/FdIlH5gzX3LbodsjZwAgO2DyfCXNkJ+i5fs9Ct53H+Nt DqTQipzE= X-Gm-Gg: AR+sD13TQsuwKto6KIy4hUrzsEnfJqSqVR7AJC0yVyGCGNshRqISVQK5yoV0cEdjoGW qiPSKL3r5rUS7eMpeh23dyOYfXb/sct4Lu2sBMDSNRgESniI0rjie6in0DcYziiDAHx/Q57Axuy MyG/YoEsFfemuVQwT1itpXAv6v0R3zq1p7ubV+yLMZAYl2Ppq057AFmrsM0mH+Qu4XhdhePwhi/ tziGU81cpoWPq17DWhuyr4JHe84lpqrtB4OvZqvgYHaHuc7TshdbtVBq3FHzuiUsrVmI+Ugk5Sv zrOp4FkFbKCR96jMBzW4RryExWlsRCl26a7sro33Rrwyp/cUN1DtRKqF+BvhkEBBIkSERDJF/Ys Zh1BLa56sZoMkLvfhRjEwU1T90Bjmn8Yt86SDgEYP0S1hZNUzzcZLWDC7LzOsl4Q/UUD2c9BKUn a5VptT24tCPh8GlVl/q+Ns1E/r5IqSsRobaryAIKNaDd3QT2i1RNbIBw4BC+f7ltlDbwbxGgOLK nOd0VT6sTfNl8ZXSQ== X-Received: by 2002:a05:6a21:9f07:b0:3d0:abdb:de03 with SMTP id adf61e73a8af0-3d0abdbefbdmr6646703637.2.1787766159009; Wed, 26 Aug 2026 10:42:39 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v2 21/25] target/arm: Implement AESD (indexed) Date: Wed, 26 Aug 2026 10:42:08 -0700 Message-ID: <20260826174213.614571-22-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260826174213.614571-1-richard.henderson@linaro.org> References: <20260826174213.614571-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::52e; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x52e.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: 1787766336525158500 Content-Type: text/plain; charset="utf-8" Reviewed-by: Peter Maydell 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 9b320b5c97e..1a0e4130aa2 100644 --- a/target/arm/tcg/helper-defs.h +++ b/target/arm/tcg/helper-defs.h @@ -462,6 +462,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 27b5813b6d9..05f193b3d17 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 9ce172dd939..cb1542f3931 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8344,6 +8344,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 64e0dd0eae9..1ab1b4042b5 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.53.0 From nobody Sat Sep 26 21:37:39 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=1787766357; cv=none; d=zohomail.com; s=zohoarc; b=PcS6PNEtHBu0WG6OYqq6/AWZNxD+wBmrFO4OCu8oLDrvAHYeCU2L2FUcmFVOhfqSHtmy4yPdNJ2F1niCAt/UcwpmxzBhQ8pSTAVs2Kw/yensfSMn90IAJEF49SwgNfUUsGZqm9ndO+lTpnepIFzF3wqTLpQUlB6VD/hPTyZi97Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787766357; 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=BJ83ukAktt+ErEtZMU9oLoeoJZPG6BepLZk3A1SHS74=; b=jtgOfhOLhBmc/9NnIw8nM2y31DoiHXbzHJTgHLtQrQrt9JfqUk/lKXklFfe76WyhhIwz8KzUBSh4FPCo6iV3CcOxOPeTb5B1xyGLN1JYSuO5rewtDm3ZRigHPmWCF7OedE5gCqGiYjE/ssXO5siAB8uJ8Rn35T22Ntg7H51BPKc= 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 1787766357702689.5041106230102; Wed, 26 Aug 2026 10:45:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wzHeX-0000iF-IU; Wed, 26 Aug 2026 13:43:09 -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 1wzHe9-0000EC-Sn for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:47 -0400 Received: from mail-pf1-x429.google.com ([2607:f8b0:4864:20::429]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wzHe7-0004sR-BD for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:44 -0400 Received: by mail-pf1-x429.google.com with SMTP id d2e1a72fcca58-853c947bfefso151541b3a.0 for ; Wed, 26 Aug 2026 10:42:41 -0700 (PDT) Received: from stoup (174-21-93-59.tukw.qwest.net. [174.21.93.59]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-cc1bec66020sm1260072a12.21.2026.08.26.10.42.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 10:42:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1787766160; x=1788370960; 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=BJ83ukAktt+ErEtZMU9oLoeoJZPG6BepLZk3A1SHS74=; b=i+cLOtsaDkMCZaOCX4DzhTDKXF5GG+qREaYJ7al4uRX2e0gMWsXs54w+UYarbVrv14 mwrkLdQDilg4Bq5GcPjeqbxD6+2TomdiOSa7AVCpB7OSPwOMOm/svUgJ9N/SLB9Xj5S5 RadQ90gxtW1Aen1/igwz0EcPQaezP5Y82xzgNiDfiK082b85/lX2wGiiU4U+LnMES02R fB+hP49SLP7eDhA5CM9Na2cmY0n+QF9zLNoesMhc845ITNRfJ8xLzNZyZWu+JlGjoY5D MMFA32JNnfHbiEZJC9mI7HxVPgEfVYNs2nMDO4AsOpbgpwDazR6gNL0W1On1HKyVQ18a hFjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787766160; x=1788370960; 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=BJ83ukAktt+ErEtZMU9oLoeoJZPG6BepLZk3A1SHS74=; b=rrkOi1SiSy2O1B1gbBRxrBrXGIxyEcNbXXd+NF9ybo6j/cqaugACmIRQlzTpLZK64J RN9ikXQ83X0kRphrzOTKQ9AX17yArXrHbOY3QQei+6qQK8B1PAwNKyOklqsSRHAvUyBW fem+869+BnjxZVfHT91Pw7zt+pHo+YTFHkwa7W2IZRleNGfF7y2CYDrC7l/IszIlBSbA u1O/pm7HKyDmZKOJTOIiFs5ieCBV1dm0psOdtaFSFuH30XC74FhM3vO22hHBxHDtlnFf ns6ebL5kKPdbEL5REeX5K3xjm8TS/r4pss6PUbPCc9/G+n6T5c8WOy3zyWSMf6Eg7/Uk 6Xug== X-Gm-Message-State: AFuF++mImgjZ47AR9glorqGhYWAAfCztSUz9CHYyMT+ufZhNzGfN108a x0ztjvzURfYYvh+zAyOcThyn5nM9IDwP9Is6m9Mh46Ti5sqIVN9zyGqShH3sE7rGyFaeQCK5z2C 9RHWD8U4= X-Gm-Gg: AR+sD13Vh7I/o5jbe92eVYj/dn/z7KZ+3MEpxgLS8p6IuOS54y0y1ulo9hoqY6N3QJ5 L2mhduaHOrLHbN8sE1JljobY05DWwUpQckbxg5J8GFWco+GgSfYxTtF0qSf1KE1NP97avAyKcvb yuWY7iPhFD84O2z/cP4lGyFD7K0tBkyZXo7a6h/uGhWVKDWMGlKglHEgXqrAlmnenHrkttOz7rj eN3OwQYopKMg3Ns3zn7K/TuO9CtMNFETgP4rNV+X/Uz61NUg8+wc/0EFphdNnwSfSKtX+5K6O2V +Z4SCUK4GDfbWs1n6L8UWIB3o5DZ/uEgIPpYgcc8XfaLDC11NX3/Yjf28VTllD2oN+w5ZYuH3vX SHtZ04KNYjP9Z2oN4TdmRPI9V5dGlDD8AvO4oM0coRflaQDwm1ps9veIcs57A4rI4bxiyFWKMmB T1IOgdyXv9g73DrGPquSWAhrHui4oZehgV93JL8XyxnSYTvqSlySf1IdrlEB2lCiSalBuJrz4c/ OJ/VzWGy2WcVhvVnrA= X-Received: by 2002:a05:6a00:1d89:b0:842:3c77:5996 with SMTP id d2e1a72fcca58-854c648573dmr1011054b3a.1.1787766160240; Wed, 26 Aug 2026 10:42:40 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v2 22/25] target/arm: Implement AESEMC Date: Wed, 26 Aug 2026 10:42:09 -0700 Message-ID: <20260826174213.614571-23-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260826174213.614571-1-richard.henderson@linaro.org> References: <20260826174213.614571-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::429; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x429.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: 1787766360557158500 Content-Type: text/plain; charset="utf-8" Reviewed-by: Peter Maydell 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 1a0e4130aa2..512054d2f5d 100644 --- a/target/arm/tcg/helper-defs.h +++ b/target/arm/tcg/helper-defs.h @@ -460,6 +460,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 05f193b3d17..ae677cdf209 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 cb1542f3931..64ff2345307 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8346,6 +8346,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 1ab1b4042b5..5832e0190c6 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.53.0 From nobody Sat Sep 26 21:37:39 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=1787766251; cv=none; d=zohomail.com; s=zohoarc; b=Cfb+A4ThqB+O75/9fpMpur3gU5eiuS465x4C8uGKwOxx2LrddT/DEqUkNSVp7FX+ufhYhJcwye0kWAl6S6Pzfrqtg5ezyNMb3eui9Aa+O+4KhO2Kv6qDXJH1jhdCGwRjHDir6i+CALGT89fGmpvsW21hVdQpqNOaYaZzqztiXIg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787766251; 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=4DTRMRX/m8M9HLcbkE5HBmAKiem3+hEkL/xDor/hWQs=; b=e0zgkTAZvmZsO9J/j9aK3Rv3P6fctTkaB2NUcPYuYes97h6Qx/x4AApNqdj9svOHs+lzMPn9JBntJRMzp4uA/dezNWEWH37JIuH4Dyp3xmT74tfxHPeGRQWZlEgBjI+Q22xmK/KxoIbKWNh/ORrfD7Z9DP/eGHKTt7WlmWyixBI= 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 1787766251687502.02217745377504; Wed, 26 Aug 2026 10:44:11 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wzHeh-00012R-2r; Wed, 26 Aug 2026 13:43:21 -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 1wzHeB-0000ED-3S for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:47 -0400 Received: from mail-pg1-x536.google.com ([2607:f8b0:4864:20::536]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wzHe7-0004sn-I0 for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:46 -0400 Received: by mail-pg1-x536.google.com with SMTP id 41be03b00d2f7-c9e7391839cso1100691a12.0 for ; Wed, 26 Aug 2026 10:42:42 -0700 (PDT) Received: from stoup (174-21-93-59.tukw.qwest.net. [174.21.93.59]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-cc1bec66020sm1260072a12.21.2026.08.26.10.42.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 10:42:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1787766161; x=1788370961; 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=4DTRMRX/m8M9HLcbkE5HBmAKiem3+hEkL/xDor/hWQs=; b=qhNhDa35CGVyeOT7UtcQi3l/q8etN/EeC9NT8QDVLkTbDbUMYEQuFBf1wkMLgX70zH J+axNDV+5FnnB4dQasrHr03d/wtWdM8oUbLzR0KYup1OMnnExIxGu80N18fOP9F3AbBl AabS5HdlEa/CKlEWE3bsDQubr9IHIjoUsQZAdLp8LUOE80QP4jcs8q+N0WCyDgJ6/ta5 7abOKCjzF6rR15taCMfoBRGFmzsMyz3zRSMUqpQwzPwzhew0ST/3WuPLtH+JfK+cYHOz tCz/IhzizjoEoPZ6ONfui7ZH/MERK/9Dc4dxwuv1pOckhBhMynVCNHfJzO6UlxnL5461 8eyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787766161; x=1788370961; 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=4DTRMRX/m8M9HLcbkE5HBmAKiem3+hEkL/xDor/hWQs=; b=Zt97BdrsxeAfQZ1H8NhZ3U2QGph7x2xuPzTEtgDaIGUF+82SJ93dDYAbb8a2ekUTjT /Pp+3tM2eNYD5TTBu1LCews4679wfFV40OOR3J8MfunBtBXu/0v9lMN4+Z4YqbZ48+a/ IMrTQS/qJu6t9l3FJtOh7G/8dbUv7kEhKIZB5xUtBi+lmyKqmAficbarh4c03I79LZvz k8FiBtIZW32ih5rPega4eJDayZbaqTWwZNNqQA1kXMmEXblKzB/PolWPkj59T8OwmoRp jqSEHmIjivQFj2xnHI8JZVphYohXFrujt4BzAo77pLiAhDp8CwP/mApDd0dWyfO/rlKa YvbA== X-Gm-Message-State: AFuF++k4JruNrAmERjsfscT1lhIyCnQe1GsUTe0POKtjvxoxpc1vhieR Z+ZBwkWAn0kzFPNNNBJ3xc3hqi++ugGBAAV06wbJyc0hcO2FczZrNw85z8KacruUeWi1n08DI2a ZsvRBoO8= X-Gm-Gg: AR+sD107gN+sOa2rhz9jp//1feZ9GHzdeTYHZJMka7fJMH498XVhbXLFU0VDULJQ3aT iEKN8+R3ElnfSaDZWwim6iL6/6HDb3+QgRX+ErricwSI1VfZn4gAkql0quzU7NvWYMp+4HJsIrN Ayp8YrUGfOmE5N9YyhjEU2pLIUtT2WYHRhPgUNEJ5acszzEZjiHEcE2KFYTKi4rjVYsbEmAmidM 1v5h7nmDLxhToW8Ks0O9+iRZFXuFTy7DJilCaAhiuDSS54wKhd8S0uNyU29sq0fDT3TFQEV4It7 Qyd9a8dmLaCTeC0JxCdsDP46r37stsxJfXr02UF36MMUhKvAxn10DfdZtfUkUnJ2L0c/fPqMBx0 /X813Adc+umBNAlGDwjx2AM61gZAf4XGlId3klYjNM73d8Ici8kcb1VXj+lfaH6QyKw8VpHTifX O8qGe3EprXnAH7XLCAInGQ5fuMrpJyFOD2NTBXWUUElJmufkjJES+JePpeLR92QdUNJEGzCIk8g a/ckRo8OE1tYYj9Ag== X-Received: by 2002:a05:6a21:9202:b0:3c3:64cb:9b99 with SMTP id adf61e73a8af0-3cf76283ed6mr18676265637.6.1787766161249; Wed, 26 Aug 2026 10:42:41 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v2 23/25] target/arm: Implement AESDIMC Date: Wed, 26 Aug 2026 10:42:10 -0700 Message-ID: <20260826174213.614571-24-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260826174213.614571-1-richard.henderson@linaro.org> References: <20260826174213.614571-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::536; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x536.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: 1787766254037158500 Content-Type: text/plain; charset="utf-8" Reviewed-by: Peter Maydell 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 512054d2f5d..269ac515065 100644 --- a/target/arm/tcg/helper-defs.h +++ b/target/arm/tcg/helper-defs.h @@ -461,6 +461,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 ae677cdf209..07d008c1be5 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 64ff2345307..1098cf0b388 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8348,6 +8348,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 5832e0190c6..7030d81db7e 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.53.0 From nobody Sat Sep 26 21:37:39 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=1787766258; cv=none; d=zohomail.com; s=zohoarc; b=J/b5X9Yf/8BwdKY97VFW3FtLLsSNGQgz/ppYZd/7VsiJh/nalr5L6ZE6+hnHI+n2sXlZJ8kcFw7Yl7PGAZJSEOc/DihSwuwKo5GjqtS7Uy59JcOg4Nq8U1rzJAGoqzYqQOrsLkrsvNHVnqzOJEYR6oqOkli4JV6LbqBkQdz5J5c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787766258; 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=WrrRWKpGNWDrU8AN2wOPobSA2FL+e0hgHNz5HBTnLvM=; b=F2YMTKfizUl5TcDkfkLjk8ivO6wmg2uT3mAaNwmCXHKwEYP7ZMJEWvlxoI/Jdl8ZNcCiOwIeqhN5hPdzdqmHAhQz9NxPoKSA14Nj9JSHGz0tp49DN1Oi3Hdn/Gcuj/SWuwlDFy+OjKc4fiXtTsXAobLT1ikCbgfHLcgukluujGA= 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 178776625895740.89192847412039; Wed, 26 Aug 2026 10:44:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wzHeN-0000XD-79; Wed, 26 Aug 2026 13:42:59 -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 1wzHeB-0000EF-Eo for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:47 -0400 Received: from mail-pf1-x436.google.com ([2607:f8b0:4864:20::436]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wzHe9-0004tA-K5 for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:47 -0400 Received: by mail-pf1-x436.google.com with SMTP id d2e1a72fcca58-84faf0fa17eso1312357b3a.2 for ; Wed, 26 Aug 2026 10:42:44 -0700 (PDT) Received: from stoup (174-21-93-59.tukw.qwest.net. [174.21.93.59]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-cc1bec66020sm1260072a12.21.2026.08.26.10.42.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 10:42:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1787766163; x=1788370963; 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=WrrRWKpGNWDrU8AN2wOPobSA2FL+e0hgHNz5HBTnLvM=; b=mbfmvcaXkfZQNtJTodnu397UALlTaaAFdC9q6LA+/lqfx1Spz1dO9vHm6ZQp4VN/oF t17aUNUN5VtclYrPvHQj2st7pI7wNeqHq1skSl6GZi0a9ul1nZWAgO5UpcInVYf9N+At IFai0cGA0geAG81IxA3bmG86mOYQmHDRhL23kg91+5cqw46Cjeod0VXJOx+ywo5RjU2U S9NWtiVezCELZfxH5TRH9KXJjGcrI+hk1L/zXzCJfPNl49LzRwfjGPFw1Lv5dSkpbuGG Zdo/hmGksqpL92g9n3AL67OmX96Z+tzWAPCaiyda0rQimtkjwamhdWlSOxt0lT8XP5qH vUIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787766163; x=1788370963; 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=WrrRWKpGNWDrU8AN2wOPobSA2FL+e0hgHNz5HBTnLvM=; b=jB8SZLXFPMhBhV4pz9GZOm2CditDbL7EdCit4XOhY4HJaPYsorrVSc2PdxXYhKnCWM gyxxVH5ooPDVVm1aDyNw1oVUcFYieG1R8x4UWNa3NbSXu3a6/4VXosLdGktNUKqGL5bH jffOxMXgCYLs+b5FjnfFGI51LISiF9a8MqBkXc3Qpj6g8Tp7pbj/+2sRkRqvr6erUNBX vjPQMNjH2iv7C5Oh2x7MadmE5/yGJ4a5ocoOSe33nQ0519FDEyYrIEUxcijmqKXQNrED dZvTYaLMzwAWT5P8Bbii36MInozRcwiN5WQ0z8v/uSF6fu7jNMJbvSrx/1YvYhWKSGH/ FXHA== X-Gm-Message-State: AFuF++k12P8sgfUwbcia1tkfDv9oIzdVNhpfHe/qbpwJS49McQFjBKhH FhnRotczOcShFmuRDpHU3Uaa9ONWWCmKWon/dhaaZhhKadZTobTVUhf7kwwabG3eeqdSCH39BBx rrMJ3jRc= X-Gm-Gg: AR+sD11wSHXPPNe7bSjZXVObMoTIQ9hTEh49rv4OcKop1ZK3JQBdlv9fUdiRTE43Qdi MuSu00YaarlWm0rrVmu/2WGf9r/oz280lfjoPljVRkd+a+0K37rZfypVinhgHGgJRof9HkARF0u AhVZfRQfHTstHuThibnLghGhpG0R/mUoX1igEQ2fu39dQawip5MKLHDhD4oMmCXbvhcItdPCws/ lWvh9U4snKMKe8PpkH5HnNmowxWTht4oJI7ugpNzIXILbstQipNW9xXdT/CzQwBBYuNVA/r5t+r Cee2slU+cLIo3yxzwbPmtiIQuxIIKbek67fbRs3Y+Kzgx8ogS3oZ/k7hQS3SAAId2q58BdP2oxk NlB9EPZiNafu6FSDMcYEpvqZ3h1uB5xxRja3TIxMkWO/MCP89KBwkpdVMiecJxz1RwhIq0RB1JL Jv7OR8f1ZOY4NNRtlELUS/J2iCKc9Mf/3fYD94Xw1Il+I/yxzXjbV/TY4iu1XbWUslxusiPu3K9 VWO7J2JRSaPJ1Mjug== X-Received: by 2002:a05:6a21:a87:b0:3c3:a3f4:5485 with SMTP id adf61e73a8af0-3cf75773e9dmr18258053637.6.1787766163170; Wed, 26 Aug 2026 10:42:43 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 24/25] target/arm: Implement PMULL, PMLAL Date: Wed, 26 Aug 2026 10:42:11 -0700 Message-ID: <20260826174213.614571-25-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260826174213.614571-1-richard.henderson@linaro.org> References: <20260826174213.614571-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::436; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x436.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: 1787766259960158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/tcg/helper-sve-defs.h | 3 +++ target/arm/tcg/translate-sve.c | 5 +++++ target/arm/tcg/vec_helper64.c | 34 ++++++++++++++++++++++++++++++++ target/arm/tcg/sve.decode | 5 +++++ 4 files changed, 47 insertions(+) diff --git a/target/arm/tcg/helper-sve-defs.h b/target/arm/tcg/helper-sve-d= efs.h index f78e77662de..498468a7723 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 1098cf0b388..10375577b1e 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8351,6 +8351,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 88799693507..4f43869d9e9 100644 --- a/target/arm/tcg/vec_helper64.c +++ b/target/arm/tcg/vec_helper64.c @@ -89,6 +89,40 @@ 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; + uint64_t *d0 =3D vd; + uint64_t *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[2 * i + 0] =3D int128_getlo(rl); + d0[2 * i + 1] =3D int128_gethi(rl); + d1[2 * i + 0] =3D int128_getlo(rh); + d1[2 * i + 1] =3D int128_gethi(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; + uint64_t *d0 =3D vd; + uint64_t *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[2 * i + 0] ^=3D int128_getlo(rl); + d0[2 * i + 1] ^=3D int128_gethi(rl); + d1[2 * i + 0] ^=3D int128_getlo(rh); + d1[2 * i + 1] ^=3D int128_gethi(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 7030d81db7e..42f451ff9f0 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.53.0 From nobody Sat Sep 26 21:37:39 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=1787766279; cv=none; d=zohomail.com; s=zohoarc; b=G6vlfrAmjwdp4hj7mZAD7RldSRK6Jnp0UvM6mgYpRksrELnThQsN2IxqdL7g3JxH0z4kgtjuHHT57KBqB9yVb4ksbxGn2zpj8kwDI1kMbFmVqnUEFxdZ0c4Sus1QLk6jF6MSVinaSItRMK42SWiFbBwhvdfNra2t50eBDCDLEnI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1787766279; 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=WcqSBaVjhH1d7YFiqGDU0Fw0I7AmRJueXueVuRFxO2w=; b=hEOtnCqTDfzCd/L0oq9HhfWuE80Q3CZRyzYhWmnlRBpj3nvizXlBkjmSEN3ys3ofZL1Y8wlcSEB1CAHO8b4B/NLRFeeLhNBdFsS17Z0tGUr/6aLA7QKri5Z2soimwqGQnXB50wamhyU7e+v8IIyKK9+zEcfoJqPt8mo615A0pTg= 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 1787766279460216.02152760854096; Wed, 26 Aug 2026 10:44:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wzHeT-0000eW-AL; Wed, 26 Aug 2026 13:43:05 -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 1wzHeC-0000FW-5G for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:50 -0400 Received: from mail-pf1-x42c.google.com ([2607:f8b0:4864:20::42c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wzHe9-0004tQ-UC for qemu-devel@nongnu.org; Wed, 26 Aug 2026 13:42:47 -0400 Received: by mail-pf1-x42c.google.com with SMTP id d2e1a72fcca58-84f38f3b36eso1087810b3a.1 for ; Wed, 26 Aug 2026 10:42:45 -0700 (PDT) Received: from stoup (174-21-93-59.tukw.qwest.net. [174.21.93.59]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-cc1bec66020sm1260072a12.21.2026.08.26.10.42.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2026 10:42:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1787766164; x=1788370964; 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=WcqSBaVjhH1d7YFiqGDU0Fw0I7AmRJueXueVuRFxO2w=; b=OaEgHm/OOa9jSpLhqI/kETp+cP5lh0gOHrvWyQzM4bPY1qaTFV0M/92HSrAuZyTRyc WN6HQnP0iOQdgrHCx5E4WtnwMMSE25RNHjiyr8Gc3V/CXsVLBRbb9u4636joh+Hc7VhJ /B4YL1+mln5q4l2RgN5+8TbUtVlowRQNClieO7C4sbvxtzOWWjQjx2DfokdeWn8LDlWy lbD7/lU9Eu4yNEo4jGvhLgj7IQF0JFranvZz6yk1Gt9DV4q6DTA+AhKG8/C/5uG74PCX RQE/swm7WLRztmrCFmzcHaD4XTlrZH+Pw3B0V7cHEqDNLFEm4iNm/P/HgQ3aBlemzFUw a+gg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787766164; x=1788370964; 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=WcqSBaVjhH1d7YFiqGDU0Fw0I7AmRJueXueVuRFxO2w=; b=qcSMW+c3tYedSrOfVsEYX8YWGysHgUYfiRHHjmT9YsFVSVhaqeKbyvGoOLwnFqp6XF GbLyh/3cMmiPcyqhMO8aI7cW+zCjbsII+RHDOVEPOcsZARMWXVogRY7uNvu8kFqJqrFi QBRd2HrMw1gKcJxSVEBGWDb8zmYRZZMK7eJdSkkVPDfIBgyngfF49X2olW/s0FjwRRvQ 9EQufna7RqbuhQxqI+g6bWBXdBFOdb2prJedtPdSTKR9Cm7ScypmxyTd52xjSqbyr6HF HNB8cb2HrWDFCE9aMghvG4KGdPIPMwHVCMwpoN2ryHH2jzNbpdp3kj/i5iplyPktCicp 4d9g== X-Gm-Message-State: AFuF++mzYuNIHTEw0RsaU9R6cOvnAnDxC3dzK2F6wBUu1UFrht3d4Hm5 bl4Sw/YEVcVFko1ynedYbdzqsYM3KkE43Enfr1nPINABEXLPiihzevl9q/lNSKtOyFLJkH/DqYt AEm/CG/A= X-Gm-Gg: AR+sD11ppz7/9vVxw/vnimv/A8SsUvEwX72lOQhceArNkYHx/oTACXqpFQZ+0wXbKFE 5A5Sfoj8yAMVAoM+IBIxXNIunu4Uuz4T7CUvYIYFEqEHe+VopyMVw0InlKq04z9c4Pe8n3qmfIr wF4Tsqt1IC8ONUBPT2DOpaX/NG368vzONjcVotCWP3Zq7Ilst1CdHYvsqoXH8EQbD7iIhwFjcSH KLxRUxg3xpq3XD7FzgyYLlC2H0sT737sayrGrny8Ty9J8tMMTOPYd2Ho9p13ZBCpXiypBwsJJma 7agzbEPBQ+Q4+jupEFH+Y4CssBZMJkgqZfYzL3ku9cnuqs4sHKnox31OicGNMvSauLOwIM/bHq7 QfIVn26O1zzjLN433kw/M7PrH+VjIcDNyF+IqEnFy2WfgLVBJ8Cq+7/JbBZO6ChwJoJA+mwq5Ji YAwaYI9TeyoTbVV/XKabWF8ijSMmywCpbTZvhJ1F0aJJFSAXehuSxAPBZtI4P97wwWjjMGumqym BTbAyy8Gx52c1OJAw== X-Received: by 2002:a05:6a00:8d86:b0:848:2eac:bfb2 with SMTP id d2e1a72fcca58-853748a0551mr17812185b3a.13.1787766164380; Wed, 26 Aug 2026 10:42:44 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v2 25/25] target/arm: Enable FEAT_SVE_AES2 for -cpu max Date: Wed, 26 Aug 2026 10:42:12 -0700 Message-ID: <20260826174213.614571-26-richard.henderson@linaro.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260826174213.614571-1-richard.henderson@linaro.org> References: <20260826174213.614571-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::42c; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x42c.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: 1787766280101158500 Content-Type: text/plain; charset="utf-8" Reviewed-by: Peter Maydell 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 4359312ee38..f87f22f6903 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 ab32cedba46..e7e35991bb9 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -1470,7 +1470,7 @@ void aarch64_max_v9_tcg_initfn(Object *obj) =20 t =3D GET_IDREG(isar, ID_AA64ZFR0); t =3D FIELD_DP64(t, ID_AA64ZFR0, SVEVER, 3); /* v9.4: FEAT_SVE2p2 */ - t =3D FIELD_DP64(t, ID_AA64ZFR0, AES, 2); /* v9.0: FEAT_SVE_PMUL= L128 */ + t =3D FIELD_DP64(t, ID_AA64ZFR0, AES, 3); /* v9.5: FEAT_SVE_AES2= */ t =3D FIELD_DP64(t, ID_AA64ZFR0, ELTPERM, 1); /* v9.4: FEAT_SVE2p2 */ t =3D FIELD_DP64(t, ID_AA64ZFR0, BITPERM, 1); /* v9.0: FEAT_SVE_BitP= erm */ t =3D FIELD_DP64(t, ID_AA64ZFR0, B16B16, 2); /* v9.2: FEAT_SVE_BFSC= ALE */ diff --git a/docs/system/arm/emulation.rst b/docs/system/arm/emulation.rst index b9c6b8226d6..64fe0480023 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.53.0