From nobody Sat May 30 17:45:58 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=1779301350; cv=none; d=zohomail.com; s=zohoarc; b=Md2xvYpJK1JdBc/HR9NqwC1I9u6u8iwYSgekZRUGPjGZCqYCOCTh0cjyP3kkgFPc+z27gg18J7L3kizFcve7VdIzz3LsrWnzRQZdAEU5t6rezShJIkRMnkpzZS8lHvdgsEAju1rsVQSKHGviLPvsB2KAyZ8q8VvXR2m3BBnC+p0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301350; 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=FjP/qEuf/tycrqFw+mSyrMAF+WG+DYMnwHYOmyGsbr4=; b=Vpnxulzp7j2+N1ExV0WtnMiVPDJeBF/Za08aNYs13IHuKbP0EDSS7nL+K/51c2KArr66/Mxo4gPyPEsKw0lpWz6oCFeR93AbxM1osDYGBd5Bfck7DPq2R9w5PFZ1/xMlJztmFCd/DFVFcpMqHzviFrxAqHk5CXlnWNtCg7TVtQw= 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 1779301350748695.9709549220917; Wed, 20 May 2026 11:22:30 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlYj-0006i1-63; Wed, 20 May 2026 14:22: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 1wPlYh-0006fT-QY for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:19 -0400 Received: from mail-pj1-x1031.google.com ([2607:f8b0:4864:20::1031]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlYe-0000SB-QP for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:19 -0400 Received: by mail-pj1-x1031.google.com with SMTP id 98e67ed59e1d1-3680540a6efso2828288a91.2 for ; Wed, 20 May 2026 11:22:16 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301335; x=1779906135; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=FjP/qEuf/tycrqFw+mSyrMAF+WG+DYMnwHYOmyGsbr4=; b=MXU/7BNMDkb9vVv/pVWRjRfVcwpulyppS6sOsSxL4rWQ9+zKbFOZN7YHWKklIyyO+1 GMrylH+dZajuY3vYft03TZd+XKziM8elUPV0pyaWReEsaBv3h1FDBRmP3QJEe+Q24W8a JuXn7rPXasQeixBWEQJ3GUnoQ6mCR5ZimpywAKOkq7TVoQYvl5Gc7eqqlZm9ytKYStOb +p39lN9fzt854yU9wZPI5Rw1jQK/EmCNQDXTaFrUWol0A6t2EG8jmPJIguosla4+FcX5 12VV8fc49pGj6h67lz3qcyAjG7LZxWE0s6K27sOEtsvkzj8+wg4b1BKJH1GQ3CjiJ184 w3Rw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301335; x=1779906135; 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; bh=FjP/qEuf/tycrqFw+mSyrMAF+WG+DYMnwHYOmyGsbr4=; b=WDwNozI2l1cVWZYHxt18uw1uNfKyDS8oO3Occ3557lj0VrUJ4WTPVlc0Nop4NeE8ue r8x1X1SNBq8UGlwJdxSjXyng/AlE+QOSJqEOHwOuw6qgsJYeynrgXz/h3XsgvnLZpsXI pasalnc59coiirXCXTIQYgdvJG9vpPXoahdHdte9Ch2zfeZZMTnYucI6MakKjCeVXvtN U2/urzu+kA4L6Za4ULUdI3pi36OeGHhBi8UWaw5cg1cs6Oxhm6JfPuuN2ylBU3DJvosN c8w9pqUK6ENFU/1xT0dWSWHA45eQt2mqvQk2T0MF9M6I0ULIp+cOOXNetygGRQ7ScAJt hKOw== X-Gm-Message-State: AOJu0Yy1/L9e+fgvqRy59duMpjJDehI8DXSiTYSRfUdKSPIf4Sput7bR p7nDPeJXhBbWbFimTk0PuPUS4W6Zewk1UcmdTCg06/2l8erRu8ouMNGiIvX3dAK0QwSpl2WYt5k +xaUleic= X-Gm-Gg: Acq92OGYhHMCZpkH5W8uiBNpbVdjlrt+CA2UcG6y4qSDru9162ADuMSY3FMvJGZwLIh LsaZDOq3wUMdKMIv21rgGeQpLfxv2pKvWtZtlY+g11NZREKLepinx7iyOHOM+2/Z7hlMFzppGS2 QWwHsc0/H0usxmbCGoli6aT0qZrm9+WjUgDrgiO1xlOVIHeRgOe905PmVk6Y4v/SLvnlYNd1Eei iIv1nHSIRSdVtJgmaaE3CwooaQckLBxDXSy8IX7e9y3iRLSd84ghlHtZ+HZQRLwLIuUeaa7y0AH BzPwn7AfSTT27ENfxDi9zn4q/43qqp0raf7OYHIv3RDj8mByb9vU1cLEw3vCiznjmq4ThoSpR92 HCs+KbQwDXTAJCZerzaVeYCWRRo2iuYasdVKFvJTmjqUkVv0BebpwqliwtKr85u4t7veVQ6j3/W SSh6k9h2X6odeZfmKoz/E9rEok3ipX X-Received: by 2002:a17:90b:3845:b0:368:763a:17b8 with SMTP id 98e67ed59e1d1-36951889325mr25413681a91.2.1779301335302; Wed, 20 May 2026 11:22:15 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 01/64] target/arm: Implement ID_AA64ISAR3 Date: Wed, 20 May 2026 11:21:10 -0700 Message-ID: <20260520182213.872945-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1031; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1031.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=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: 1779301351776158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/cpu-features.h | 9 +++++++++ target/arm/helper.c | 8 ++++++-- target/arm/cpu-sysregs.h.inc | 1 + 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 4e44245a8b..50776347a5 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -244,6 +244,15 @@ FIELD(ID_AA64ISAR2, CSSC, 52, 4) FIELD(ID_AA64ISAR2, LUT, 56, 4) FIELD(ID_AA64ISAR2, ATS1A, 60, 4) =20 +FIELD(ID_AA64ISAR3, CPA, 0, 4) +FIELD(ID_AA64ISAR3, FAMINMAX, 4, 4) +FIELD(ID_AA64ISAR3, TLBIW, 8, 4) +FIELD(ID_AA64ISAR3, PACM, 12, 4) +FIELD(ID_AA64ISAR3, LSFE, 16, 4) +FIELD(ID_AA64ISAR3, OCCMO, 20, 4) +FIELD(ID_AA64ISAR3, LSUI, 24, 4) +FIELD(ID_AA64ISAR3, FPRCVT, 28, 4) + FIELD(ID_AA64PFR0, EL0, 0, 4) FIELD(ID_AA64PFR0, EL1, 4, 4) FIELD(ID_AA64PFR0, EL2, 8, 4) diff --git a/target/arm/helper.c b/target/arm/helper.c index 8240f1b384..6ad01b345f 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -6519,11 +6519,11 @@ void register_cp_regs_for_features(ARMCPU *cpu) .access =3D PL1_R, .type =3D ARM_CP_CONST, .accessfn =3D access_tid3, .resetvalue =3D GET_IDREG(isar, ID_AA64ISAR2)}, - { .name =3D "ID_AA64ISAR3_EL1_RESERVED", .state =3D ARM_CP_STA= TE_AA64, + { .name =3D "ID_AA64ISAR3_EL1", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 3, .opc1 =3D 0, .crn =3D 0, .crm =3D 6, .opc2 =3D = 3, .access =3D PL1_R, .type =3D ARM_CP_CONST, .accessfn =3D access_tid3, - .resetvalue =3D 0 }, + .resetvalue =3D GET_IDREG(isar, ID_AA64ISAR3) }, { .name =3D "ID_AA64ISAR4_EL1_RESERVED", .state =3D ARM_CP_STA= TE_AA64, .opc0 =3D 3, .opc1 =3D 0, .crn =3D 0, .crm =3D 6, .opc2 =3D = 4, .access =3D PL1_R, .type =3D ARM_CP_CONST, @@ -6752,6 +6752,10 @@ void register_cp_regs_for_features(ARMCPU *cpu) R_ID_AA64ISAR2_BC_MASK | R_ID_AA64ISAR2_RPRFM_MASK | R_ID_AA64ISAR2_CSSC_MASK }, + { .name =3D "ID_AA64ISAR3_EL1", + .exported_bits =3D R_ID_AA64ISAR3_FAMINMAX_MASK | + R_ID_AA64ISAR3_LSFE_MASK | + R_ID_AA64ISAR3_FPRCVT_MASK }, { .name =3D "ID_AA64ISAR*_EL1_RESERVED", .is_glob =3D true }, }; diff --git a/target/arm/cpu-sysregs.h.inc b/target/arm/cpu-sysregs.h.inc index 3d1ed40f04..b99579f773 100644 --- a/target/arm/cpu-sysregs.h.inc +++ b/target/arm/cpu-sysregs.h.inc @@ -10,6 +10,7 @@ DEF(ID_AA64AFR1_EL1, 3, 0, 0, 5, 5) DEF(ID_AA64ISAR0_EL1, 3, 0, 0, 6, 0) DEF(ID_AA64ISAR1_EL1, 3, 0, 0, 6, 1) DEF(ID_AA64ISAR2_EL1, 3, 0, 0, 6, 2) +DEF(ID_AA64ISAR3_EL1, 3, 0, 0, 6, 3) DEF(ID_AA64MMFR0_EL1, 3, 0, 0, 7, 0) DEF(ID_AA64MMFR1_EL1, 3, 0, 0, 7, 1) DEF(ID_AA64MMFR2_EL1, 3, 0, 0, 7, 2) --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301444; cv=none; d=zohomail.com; s=zohoarc; b=b39pYnG6MZlUV9rBBdKsYh4/aIB7nOOfEEu9W4tCOl2F6YHYviHiI/Waz52XSjuDjMAy4WnUubuObCcvKT0qbqLsN5xL/xNL7DA3JG+zwcWpTGTfJCcxyr2zLvoalOX34SDMStLwKIAWHYQaLoUpX5dEgzmASt3X6tPZIR1lLaE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301444; 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=jIbMN4r3U2SxBsEoDmJt1f/jmTRyiQ3ShGW/a86bR/4=; b=Eq7RXtS9NuJJFIkuu284RXKeMRxmG8VLyBRbF6xsGUxntM8QQPsvfJ+IaHm1Bs6cUdnsp6cNDAZ9u3lKpdEPTWZb2yrUTR7WyYp/lg2mlgMYSw2/l9Z7aIGG0Av1kGRapIhX+9gqjmMFEdopDIczFM40AckHkuLG50IBmrfeZdY= 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 1779301444281667.2949790543621; Wed, 20 May 2026 11:24:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlYk-0006lD-9r; Wed, 20 May 2026 14:22:22 -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 1wPlYi-0006fz-3J for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:20 -0400 Received: from mail-pj1-x102e.google.com ([2607:f8b0:4864:20::102e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlYf-0000SP-Nw for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:19 -0400 Received: by mail-pj1-x102e.google.com with SMTP id 98e67ed59e1d1-368f25ff4c4so2746079a91.2 for ; Wed, 20 May 2026 11:22:17 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301336; x=1779906136; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=jIbMN4r3U2SxBsEoDmJt1f/jmTRyiQ3ShGW/a86bR/4=; b=Z3FXBrqcRbraN7GjbZG7GvfKGIsTy364wExwYXfo7i4YnEVcqCvoB5QSwa7042FUEu Qm2DV+OzUxhlARhqK3Wa7mYc8RQC1H7teLbHzlEj0zWquDWDIyzjT5psvUdUEIDY8WfP X0u8KiGKbFSYsZYxNWLyJoenLji1YcLABZXzfvgnSd7XYyxjtn9pms0u5lt7xfO1E9OJ iQjdDY5vydUljhlJDp4MJOWHItjIy7D0fNOAlhPL/Hqs7cJQ92HrSQ3KN0y0977aCq8E IcitOfYnqEDBlhoqv9DWcis0tGmCMoVCeRR0zeHzYNDE6d9uwP/9HBUkp/jdt0q5Q7R6 2DOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301336; x=1779906136; 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; bh=jIbMN4r3U2SxBsEoDmJt1f/jmTRyiQ3ShGW/a86bR/4=; b=iWkzFrWqHNg8z2WUOn88ZJAMmZx9CaJ5NWXe7hRvdt5TPO/1XZegBKw/IHaEQLcGal eSYmK4K7uwJXB2jCcKnFRcMQnbGAiDUptKIpYzS6XsuFvURoCuxR4g+bR2gA0XraXjhZ 7/e6mldrmJuzL8ZIuBlWPXDgZkgM6VmfE1A06geTML7LYbsq6FQ1VWJEzVRyFtXaR8v+ z1vCuDsKWj6sv93Iv93HXDXvd9ODRXmYSJIIY5c78tutK86gaCDXt8ljBnwUgkjnl5mU nQI/vL4s40hJMd2s+azCRt6lWNV7e8TtR6oA654NhKS7MnmDpsl4qSzQwuz8reZBfoYm TFcg== X-Gm-Message-State: AOJu0YylSOGuyftTgTIiV170Szo9RgooRmuYg06ueLziUmMMdEnSoc6g 69TEOBrU0V8/e9NKe1DeOCt+a0rqARYNACHqmTpsmCy2hlaDztx3UkGgWHjVvuizVcTKxeHJEGH 835PAPkQ= X-Gm-Gg: Acq92OHu966PeJ0SSBwKunkQ1dAkfw1XpPDz5+fTXSS6TL6UF8eVur+MFobqJ9442Oe m7TfLfmRKC4aYy/Q3GmpOxtIdlAQOuOS133ydP8w2jhlZAcjg0T+NMu42tBcPribWBaOKWhdJjr SLUK0XK9NqQk4myXH1zbd+DBJjFICyiCMTlnkln0YjnjRtnF+69pDzCDAJpEvsns4gAIvi4Tb+K /2zVwS7HCxH76cDbGYPnP+hSusno/DT+Pbo3BdkUe00AW7DRBFWdJCq/JsEWxUsDpvhyxZsFPz4 bXpme1J4XN3FYgKRf5b2Dpir2HiLZ6wE2YnaOXSAE2kLyS2YE2uv+fb6nrjsXB07Y3bxovZxPi7 rz3YEzHtXZh+2G2xIpW7L0/+q/Zmi7ZiSXOuJKBz2Rr1ar7J6h8BzvEw6eQN7SRy3bhkeSF3XQx o4GS7AkNZIAAsP1A5viUksAFmep54z X-Received: by 2002:a17:90b:33c1:b0:365:a5f6:4a5c with SMTP id 98e67ed59e1d1-369518af9admr22757919a91.1.1779301335939; Wed, 20 May 2026 11:22:15 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 02/64] target/arm: Implement FEAT_FAMINMAX for AdvSIMD Date: Wed, 20 May 2026 11:21:11 -0700 Message-ID: <20260520182213.872945-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102e; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102e.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1779301444761158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/cpu-features.h | 5 +++++ target/arm/tcg/helper-a64-defs.h | 7 ++++++ target/arm/tcg/vec_internal.h | 7 ++++++ target/arm/tcg/translate-a64.c | 14 ++++++++++++ target/arm/tcg/vec_helper64.c | 37 ++++++++++++++++++++++++++++++++ target/arm/tcg/a64.decode | 5 +++++ 6 files changed, 75 insertions(+) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 50776347a5..21a1f941dd 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1062,6 +1062,11 @@ static inline bool isar_feature_aa64_ats1a(const ARM= ISARegisters *id) return FIELD_EX64_IDREG(id, ID_AA64ISAR2, ATS1A); } =20 +static inline bool isar_feature_aa64_faminmax(const ARMISARegisters *id) +{ + return FIELD_EX64_IDREG(id, ID_AA64ISAR3, FAMINMAX) !=3D 0; +} + static inline bool isar_feature_aa64_fp_simd(const ARMISARegisters *id) { /* We always set the AdvSIMD and FP fields identically. */ diff --git a/target/arm/tcg/helper-a64-defs.h b/target/arm/tcg/helper-a64-d= efs.h index 3c3c5dddb7..215df1201b 100644 --- a/target/arm/tcg/helper-a64-defs.h +++ b/target/arm/tcg/helper-a64-defs.h @@ -145,6 +145,13 @@ DEF_HELPER_FLAGS_5(gvec_fmulx_idx_h, TCG_CALL_NO_RWG, = void, ptr, ptr, ptr, fpst, DEF_HELPER_FLAGS_5(gvec_fmulx_idx_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr,= fpst, i32) DEF_HELPER_FLAGS_5(gvec_fmulx_idx_d, TCG_CALL_NO_RWG, void, ptr, ptr, ptr,= fpst, i32) =20 +DEF_HELPER_FLAGS_5(gvec_famax_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, fps= t, i32) +DEF_HELPER_FLAGS_5(gvec_famin_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, fps= t, i32) +DEF_HELPER_FLAGS_5(gvec_famax_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, fps= t, i32) +DEF_HELPER_FLAGS_5(gvec_famin_s, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, fps= t, 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) + #ifndef CONFIG_USER_ONLY DEF_HELPER_2(exception_return, void, env, i64) #endif diff --git a/target/arm/tcg/vec_internal.h b/target/arm/tcg/vec_internal.h index 4edd2b4fc1..5c3f51eed3 100644 --- a/target/arm/tcg/vec_internal.h +++ b/target/arm/tcg/vec_internal.h @@ -342,6 +342,13 @@ bfloat16 helper_sme2_ah_fmin_b16(bfloat16 a, bfloat16 = b, float_status *fpst); float32 sve_f16_to_f32(float16 f, float_status *fpst); float16 sve_f32_to_f16(float32 f, float_status *fpst); =20 +float16 float16_famax(float16, float16, float_status *); +float16 float16_famin(float16, float16, float_status *); +float32 float32_famax(float32, float32, float_status *); +float32 float32_famin(float32, float32, float_status *); +float64 float64_famax(float64, float64, float_status *); +float64 float64_famin(float64, float64, float_status *); + /* * Decode helper functions for predicate as counter. */ diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index 9a27c4c6ec..3c6559964b 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -6478,6 +6478,20 @@ static gen_helper_gvec_3_ptr * const f_vector_fminnm= p[3] =3D { }; TRANS(FMINNMP_v, do_fp3_vector, a, 0, f_vector_fminnmp) =20 +static gen_helper_gvec_3_ptr * const f_vector_famax[3] =3D { + gen_helper_gvec_famax_h, + gen_helper_gvec_famax_s, + gen_helper_gvec_famax_d, +}; +TRANS_FEAT(FAMAX, aa64_faminmax, do_fp3_vector, a, 0, f_vector_famax) + +static gen_helper_gvec_3_ptr * const f_vector_famin[3] =3D { + gen_helper_gvec_famin_h, + gen_helper_gvec_famin_s, + gen_helper_gvec_famin_d, +}; +TRANS_FEAT(FAMIN, aa64_faminmax, do_fp3_vector, a, 0, f_vector_famin) + static bool do_fmlal(DisasContext *s, arg_qrrr_e *a, bool is_s, bool is_2) { if (fp_access_check(s)) { diff --git a/target/arm/tcg/vec_helper64.c b/target/arm/tcg/vec_helper64.c index 249a257177..dce5e0505e 100644 --- a/target/arm/tcg/vec_helper64.c +++ b/target/arm/tcg/vec_helper64.c @@ -8,6 +8,7 @@ =20 #include "qemu/osdep.h" #include "cpu.h" +#include "internals.h" #include "helper.h" #include "helper-a64.h" #include "helper-sme.h" @@ -140,3 +141,39 @@ void HELPER(simd_tblx)(void *vd, void *vm, CPUARMState= *env, uint32_t desc) memcpy(vd, &result, 16); clear_tail(vd, oprsz, simd_maxsz(desc)); } + +/* + * Use float_minmax_ismag to get the absolute value min/max. + * Avoid float_minmax_is{num,number} so that we get normal NaN processing. + * If the result is not a nan, take the absolute value. + * + * Note this operation squashes FZ, FIZ, and AH to 0. + * Create a fresh status with default behaviour and propagate exceptions. + */ +#define DO_FAMINMAX(NAME, TYPE, MIN) \ +TYPE TYPE##_##NAME(TYPE a, TYPE b, float_status *s) \ +{ \ + float_status local =3D {}; \ + arm_set_default_fp_behaviours(&local); \ + TYPE r =3D TYPE##_minmax(a, b, &local, MIN | float_minmax_ismag); \ + if (!TYPE##_is_any_nan(r)) { \ + r =3D TYPE##_abs(r); \ + } \ + float_raise(get_float_exception_flags(&local) \ + & ~float_flag_input_denormal_used, s); \ + return r; \ +} + +DO_FAMINMAX(famax, float16, 0) +DO_FAMINMAX(famin, float16, float_minmax_ismin) +DO_FAMINMAX(famax, float32, 0) +DO_FAMINMAX(famin, float32, float_minmax_ismin) +DO_FAMINMAX(famax, float64, 0) +DO_FAMINMAX(famin, float64, float_minmax_ismin) + +DO_3OP(gvec_famax_h, float16_famax, float16) +DO_3OP(gvec_famin_h, float16_famin, float16) +DO_3OP(gvec_famax_s, float32_famax, float32) +DO_3OP(gvec_famin_s, float32_famin, float32) +DO_3OP(gvec_famax_d, float64_famax, float64) +DO_3OP(gvec_famin_d, float64_famin, float64) diff --git a/target/arm/tcg/a64.decode b/target/arm/tcg/a64.decode index 01b1b3e38b..666a293540 100644 --- a/target/arm/tcg/a64.decode +++ b/target/arm/tcg/a64.decode @@ -1193,6 +1193,11 @@ RSUBHN 0.10 1110 ..1 ..... 01100 0 ..... ..= ... @qrrr_e PMULL_p8 0.00 1110 001 ..... 11100 0 ..... ..... @qrrr_b PMULL_p64 0.00 1110 111 ..... 11100 0 ..... ..... @qrrr_b =20 +FAMAX 0.00 1110 110 ..... 00011 1 ..... ..... @qrrr_h +FAMAX 0.00 1110 1.1 ..... 11011 1 ..... ..... @qrrr_sd +FAMIN 0.10 1110 110 ..... 00011 1 ..... ..... @qrrr_h +FAMIN 0.10 1110 1.1 ..... 11011 1 ..... ..... @qrrr_sd + ### Advanced SIMD scalar x indexed element =20 FMUL_si 0101 1111 00 .. .... 1001 . 0 ..... ..... @rrx_h --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301727; cv=none; d=zohomail.com; s=zohoarc; b=lszduOBJ63dyhxVZkLkXoQaNEXjtuXDOeh7ZZnIxJxpVf2SSq69CoRRV21h43MICk3yvEouOJRE+wNdeG7/LXl2YhheM/nxKUgUro9oSLC9tzldBSYDYJ1+T/WZWkDQQvgIsV5uu6T8ROKIawe3V0BMD54P03gAjuSKd2gcDBAs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301727; 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=h37zckXYDzucFKJfi7Vv2YlpkD6qilhmC3tWvPQ5Lng=; b=EJIvz3s1whnnmcDQorw6hofcytfbLV0trdTNI+fy5VJc83EVOFwlZ46z/iFBDPKmIgNRIIegiv7v8Q4/SIOF9W5YrtLghFxlY5Rh31VDVlCDAHtkY+U0Fi5uS55EBpBebdQQS8tWSKiXkKPBfWTds0X8nCsvRtgRaoBqhj7bLIo= 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 1779301727129407.2778052065827; Wed, 20 May 2026 11:28:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlYp-000727-PO; Wed, 20 May 2026 14:22:28 -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 1wPlYj-0006jp-Hl for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:21 -0400 Received: from mail-pj1-x1031.google.com ([2607:f8b0:4864:20::1031]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlYg-0000Sd-B6 for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:21 -0400 Received: by mail-pj1-x1031.google.com with SMTP id 98e67ed59e1d1-3665b67ed66so3392905a91.1 for ; Wed, 20 May 2026 11:22:17 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301337; x=1779906137; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=h37zckXYDzucFKJfi7Vv2YlpkD6qilhmC3tWvPQ5Lng=; b=VLe1CASqJXeZn1ZpkNxRwnkDX/PNjyOlLvUPcj1IE4kv/rWFWGSmnEMC3huLNSvq2N cZeLCzrzxP74iEooMExmALQG8h/U6IgnnJEy3ofHfBoSN1tLK/LfgV+IgElnN7mIz379 6XQQzK028Cbtka8U5IQNAtjceXRwJu5AFoht9ALDp4R4y5iDfLePIltmI6e3+jl7O4x8 6G0I6urbPBlTeqOTw4CzYI4s+NiD0PJbFfWwdUg2WBoTltyP8gkQtwueWHm0A/5jgP0o Es/umMp4mdkFIg4q/0HgKdd1BWdbrm+pFronDIUZNjr858bbW9XWo0l4PJG5iYXhJCX2 zoEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301337; x=1779906137; 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; bh=h37zckXYDzucFKJfi7Vv2YlpkD6qilhmC3tWvPQ5Lng=; b=pka6F8Fy7bt7beNOWFnsodBXTkUypEZoTBHBYmf0e8CZ8OBPHuRkT5lHyPhrY+OtrO U15Ilpl4WAqm/PEzArSMASMO5Abxu9vs13Yzw3SzF5lAIb2zkwjswcvcYkjMesW5jGBr 557BTFVzr13QyXVytCPPngMflyXrNl1kXfsbMhvgN25WNBf7su66EMKHbKgIiuKGt6ol fhF5XiOKADmgoDVlWf+MqlGmG/0++3aSphBbm3e8yYLVu7Thn/RibNvvvYRueUNemhqn /dHp6CUmsCBu/0gqPXZUSSwd3nZqCs66LjbYaOo7rG/KbEVDvHTRhaA+riHguqCfUpxc nYYA== X-Gm-Message-State: AOJu0Yw9Le1w6Ntpmh6GHmXTTf9NPNKzxI1RVz24CDUze9BlGc2r8ZRK 5NmeZTg+azsQVbLSfe+hTV2qX31XcigBBK6KE/VCe1GWl+NEKVUAhMGVWXEB6rM+9u8g5/wDXMt FW8tvwu4= X-Gm-Gg: Acq92OHbSU1rVTnv7u4oXDbI/spagEKU77MU9FLSq5Ojdj7fiDBIq265/g77Uv7ZJbA Qmktk8EJ85yspvqxqD3rC/qkLAw+1n7eX0DcWNhC0+MsvHEa/64UfVrIyOANZzTb/5p8ezJuuBD yNF+fFuZDzpK/9u5rwva+TDC+QrKpXp83NrQL0GgIUuc6cJ2WLSzoHdtbEEnjWLMW4jS/4Oi94d vHGgm8Vnh7K1+yYFDFYLQpsjqJX3Mxzo2cdou4qQNtEI2qxKQvKRkMk0Ao1uXac2Iz+lO+dDyAg 58NBdstRx+qcwx9G7V27rVn4m2XQOz30TDxAgM5eIDRRTWY4nJw/vhtM8axqFtLxTb9YfHdvY4Y IW/O7iR1VwZtZ4dPwSLQ/HgRqJGdBU3Iq2O2wE+VHiyWczDl6ZkPAXgNa1FF4gPIYBBAkSpHGur LbuXzUHGXZ1FAwZR+wWryfmYuCEa0z X-Received: by 2002:a17:90b:4c49:b0:369:bddb:79bd with SMTP id 98e67ed59e1d1-369bddb8547mr13945981a91.25.1779301336539; Wed, 20 May 2026 11:22:16 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 03/64] target/arm: Implement FEAT_FAMINMAX for SME Date: Wed, 20 May 2026 11:21:12 -0700 Message-ID: <20260520182213.872945-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1031; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1031.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1779301727392158500 Content-Type: text/plain; charset="utf-8" Since there is no bfloat16 variant of FAMINMAX, check for missing function pointer in do_z2z_nn_fpst. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/cpu-features.h | 5 +++++ target/arm/tcg/translate-sme.c | 23 +++++++++++++++++++++-- target/arm/tcg/sme.decode | 5 +++++ 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 21a1f941dd..21b91b1503 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1593,6 +1593,11 @@ static inline bool isar_feature_aa64_sme2_f64f64(con= st ARMISARegisters *id) return isar_feature_aa64_sme2(id) && isar_feature_aa64_sme_f64f64(id); } =20 +static inline bool isar_feature_aa64_sme2_faminmax(const ARMISARegisters *= id) +{ + return isar_feature_aa64_sme2(id) && isar_feature_aa64_faminmax(id); +} + static inline bool isar_feature_aa64_sve_i8mm(const ARMISARegisters *id) { return isar_feature_aa64_sve(id) && isar_feature_aa64_sme_sve_i8mm(id); diff --git a/target/arm/tcg/translate-sme.c b/target/arm/tcg/translate-sme.c index 08254b088e..a67501226f 100644 --- a/target/arm/tcg/translate-sme.c +++ b/target/arm/tcg/translate-sme.c @@ -19,6 +19,7 @@ =20 #include "qemu/osdep.h" #include "cpu.h" +#include "helper-a64.h" #include "helper-sme.h" #include "helper-sve.h" #include "translate.h" @@ -742,9 +743,12 @@ static bool do_z2z_nn_fpst(DisasContext *s, arg_z2z_en= *a, gen_helper_gvec_3_ptr * const fns[4]) { int esz =3D a->esz, n, dn, dm, vsz; - gen_helper_gvec_3_ptr *fn; + 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_sme_b16b16, s)) { return false; } @@ -753,7 +757,6 @@ static bool do_z2z_nn_fpst(DisasContext *s, arg_z2z_en = *a, } =20 fpst =3D fpstatus_ptr(esz =3D=3D MO_16 ? FPST_A64_F16 : FPST_A64); - fn =3D fns[esz]; n =3D a->n; dn =3D a->zdn; dm =3D a->zm; @@ -812,6 +815,22 @@ static gen_helper_gvec_3_ptr * const f_vector_fminnm[4= ] =3D { TRANS_FEAT(FMINNM_n1, aa64_sme2, do_z2z_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 { + NULL, + gen_helper_gvec_famax_h, + 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) + +static gen_helper_gvec_3_ptr * const f_vector_famin[4] =3D { + NULL, + gen_helper_gvec_famin_h, + 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) + /* 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 6bb9aa2a90..9dec7318a4 100644 --- a/target/arm/tcg/sme.decode +++ b/target/arm/tcg/sme.decode @@ -286,6 +286,11 @@ URSHL_nn 1100000 1 .. 1 ..... 1011.0 10001 .... = 1 @z2z_4x4 SQDMULH_nn 1100000 1 .. 1 ..... 1011.1 00000 .... 0 @z2z_2x2 SQDMULH_nn 1100000 1 .. 1 ..... 1011.1 00000 .... 0 @z2z_4x4 =20 +FAMAX_nn 1100000 1 .. 1 ..... 1011.0 01010 .... 0 @z2z_2x2 +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 + ### SME2 Multi-vector Multiple and Single Array Vectors =20 &azz_n n off rv zn zm --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301521; cv=none; d=zohomail.com; s=zohoarc; b=FJgJh1S4/mi+RQi/KefISBLLlBnusY9TmW8FZWyjO7xdSE9AdLCVWCzilz7vwSwU+LZwIyBlEvVwl2Pc7BEWkpdkPlFQ8+kyApeL2KMBO/lS+rzrkqJawR1oxEfu7hNgYDcr95c4P4hBUXjLf21WDiaWIcf70k0xtUaXS8SsbHE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301521; 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=k4CCo6rT9IEUwVbHU8Dce71VDat7kIw7/6H6NNAMEGY=; b=ZQ+hcWVO/6RIufLIWxK7+WFHQ+txe8CKk90b56EDdqlZjMXyqx3JjVvpzsQLfrbP1z8iT3vbjp9IQj0L5xdfDMVOxEkLYNBKu9fZsq7jV3gWInDX93Y9zrz3PkZh3WMgSMB6j1W/GDRdKfbiVmiu7hsnF3fyVZKU+Nbw0UkOAYk= 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 1779301521054235.3123459143601; Wed, 20 May 2026 11:25:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlYo-0006zv-Mr; Wed, 20 May 2026 14:22:26 -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 1wPlYj-0006kE-QS for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:21 -0400 Received: from mail-pj1-x1036.google.com ([2607:f8b0:4864:20::1036]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlYh-0000T4-GO for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:21 -0400 Received: by mail-pj1-x1036.google.com with SMTP id 98e67ed59e1d1-367cbac9cb1so5003213a91.3 for ; Wed, 20 May 2026 11:22:18 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301337; x=1779906137; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=k4CCo6rT9IEUwVbHU8Dce71VDat7kIw7/6H6NNAMEGY=; b=Ree8kZPweRzHC9+mT84xnKNPy+JwEHicV93aAEPRoRhpkHt/PqbB/zo5z67Vg8BQry Ffs7gsCMTGa7LE2MffEzRa2TIzAHaawWKYJyb6cjwGcAsFtAazMgCf98yLHZxjlgzG73 T85zm/zt6km6YVJ+05V+IBCCOB5N3h5C+ZMRkLZ9uGvT3ykJDtLaWWVextaIx6GxlUsL OpAnryKYn4a4lzThpd8XPgXoDL6jLt40g/gJWnOkj9JsbaaPjb56zGxrSYgKKQ0+xegP cRyJBMsx1XPAbpZp+TWe3+rPtVL+LiVFYhZaASpqXdaByXbUy5MCtHZ3weWH1GgdSNUs 2B2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301337; x=1779906137; 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; bh=k4CCo6rT9IEUwVbHU8Dce71VDat7kIw7/6H6NNAMEGY=; b=mdmVUABQQ9+myGzKLrIlLLC6oH6zR5X/C2h3KnzzCV/CnZSTkc/2Geduv9xdLTYglf H576aYHjeEx2LLaI+71/BiyokZCqmwvvI97AbgVKbQPgd5CLspDHW9G0BYox1zzfvqiu 2kkwEkj8XzQ6S/yp4gYEghhI3zr49lYtycj7jQBGf76okmC6/NlacKjXo9VV6eoMfztP EU88Il4V49YTMGbcnoxM9kcR4Hr6Hkiud0vavaJhN9WBxZ/w3dRMWlVY3B4X4eqR+mig CbfvyfRmgWS3da0QNGKe8sU3X3X/J2oFOAXitfGr7AKInW0adhtewp7EJ5Z39U2HytrR xfxA== X-Gm-Message-State: AOJu0YxDCANXqe6jo8AzNnWCci8LuFia35N/BvJkOt9Ictbr3rdYdp/I Bqdp+OItZcXrmZJ3c64TrP75KTm1oQJiwqj+r4Qxg9viNoioXn/TXNG6oXqOV3SEEmyZ28f28an bhNP8u7Q= X-Gm-Gg: Acq92OHuKFjtLnhnf8cwW/qcHxYqTNYANO76KCMoS5CmFuYt5r4AvMRLvRm53px9m2O xAuXDos0T3idfP02I59DyB/z8hMTWQl9/+nmeoWuG57+o+U/WKcB/zNNBX9bqyuy/gdJXy0WAV+ 03rq6bRopmVRNb8OTedU00/HNLHyfGluyRphCzrmcMtjhGpxeyTyTXeYuVBcRD9eY8AYZG1ih4w MCw9jC5gRDQfIfiAFkFsfWECGo3bDgpZpGMvm7UlXXRLvY0vCjh1nxrNDN6X/2G4ivsdEAwzyWM G6QN8B3YeT05MWXoDXk16R0NOa8qBxbpfurgturHbjWXRnjV3YF/IOpRiox0Wtb8hQtf0CyZffR 0Ks9z1A0kIe4aHSvQ6qmrIwJkNJCCz2uCj6SphRLJ2lLSg/Puli2o/jolojjkxVShaxpYiuNeMN 2hXGCIAxzYq59loDpub1i4mr1y6ZtT X-Received: by 2002:a17:90b:3811:b0:359:1130:1047 with SMTP id 98e67ed59e1d1-36951b88708mr24052549a91.17.1779301337368; Wed, 20 May 2026 11:22:17 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 04/64] target/arm: Implement FEAT_FAMINMAX for SVE Date: Wed, 20 May 2026 11:21:13 -0700 Message-ID: <20260520182213.872945-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1036; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1036.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1779301523229154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/cpu-features.h | 11 +++++++++++ target/arm/tcg/helper-sve-defs.h | 14 ++++++++++++++ target/arm/tcg/sve_helper.c | 8 ++++++++ target/arm/tcg/translate-sve.c | 2 ++ target/arm/tcg/sve.decode | 2 ++ 5 files changed, 37 insertions(+) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 21b91b1503..a7ab7e2a31 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1568,6 +1568,11 @@ static inline bool isar_feature_aa64_sme_or_sve2(con= st ARMISARegisters *id) return isar_feature_aa64_sme(id) || isar_feature_aa64_sve2(id); } =20 +static inline bool isar_feature_aa64_sme2_or_sve2(const ARMISARegisters *i= d) +{ + return isar_feature_aa64_sme2(id) || isar_feature_aa64_sve2(id); +} + static inline bool isar_feature_aa64_sme_or_sve2p1(const ARMISARegisters *= id) { return isar_feature_aa64_sme(id) || isar_feature_aa64_sve2p1(id); @@ -1608,6 +1613,12 @@ static inline bool isar_feature_aa64_sve_bf16(const = ARMISARegisters *id) return isar_feature_aa64_sve(id) && isar_feature_aa64_sme_sve_bf16(id); } =20 +static inline bool +isar_feature_aa64_sme2_or_sve2_faminmax(const ARMISARegisters *id) +{ + return isar_feature_aa64_sme2_or_sve2(id) && isar_feature_aa64_faminma= x(id); +} + /* * Feature tests for "does this exist in either 32-bit or 64-bit?" */ diff --git a/target/arm/tcg/helper-sve-defs.h b/target/arm/tcg/helper-sve-d= efs.h index c3541a8ca8..1eebb64a29 100644 --- a/target/arm/tcg/helper-sve-defs.h +++ b/target/arm/tcg/helper-sve-defs.h @@ -3166,3 +3166,17 @@ DEF_HELPER_FLAGS_5(sve2p1_st1ss_le_c, TCG_CALL_NO_WG= , void, env, ptr, tl, i32, i DEF_HELPER_FLAGS_5(sve2p1_st1ss_be_c, TCG_CALL_NO_WG, void, env, ptr, tl, = i32, i64) DEF_HELPER_FLAGS_5(sve2p1_st1dd_le_c, TCG_CALL_NO_WG, void, env, ptr, tl, = i32, i64) DEF_HELPER_FLAGS_5(sve2p1_st1dd_be_c, TCG_CALL_NO_WG, void, env, ptr, tl, = i32, i64) + +DEF_HELPER_FLAGS_6(sve2_famax_h, TCG_CALL_NO_RWG, + void, ptr, ptr, ptr, ptr, fpst, i32) +DEF_HELPER_FLAGS_6(sve2_famax_s, TCG_CALL_NO_RWG, + void, ptr, ptr, ptr, ptr, fpst, i32) +DEF_HELPER_FLAGS_6(sve2_famax_d, TCG_CALL_NO_RWG, + void, ptr, ptr, ptr, ptr, fpst, i32) + +DEF_HELPER_FLAGS_6(sve2_famin_h, TCG_CALL_NO_RWG, + void, ptr, ptr, ptr, ptr, fpst, i32) +DEF_HELPER_FLAGS_6(sve2_famin_s, TCG_CALL_NO_RWG, + void, ptr, ptr, ptr, ptr, fpst, i32) +DEF_HELPER_FLAGS_6(sve2_famin_d, TCG_CALL_NO_RWG, + void, ptr, ptr, ptr, ptr, fpst, i32) diff --git a/target/arm/tcg/sve_helper.c b/target/arm/tcg/sve_helper.c index 062d8881bd..9968600f75 100644 --- a/target/arm/tcg/sve_helper.c +++ b/target/arm/tcg/sve_helper.c @@ -4742,6 +4742,14 @@ DO_ZPZZ_FP(sve_fmulx_h, uint16_t, H1_2, helper_advsi= md_mulxh) DO_ZPZZ_FP(sve_fmulx_s, uint32_t, H1_4, helper_vfp_mulxs) DO_ZPZZ_FP(sve_fmulx_d, uint64_t, H1_8, helper_vfp_mulxd) =20 +DO_ZPZZ_FP(sve2_famax_h, uint16_t, H1_2, float16_famax) +DO_ZPZZ_FP(sve2_famax_s, uint32_t, H1_4, float32_famax) +DO_ZPZZ_FP(sve2_famax_d, uint64_t, H1_8, float64_famax) + +DO_ZPZZ_FP(sve2_famin_h, uint16_t, H1_2, float16_famin) +DO_ZPZZ_FP(sve2_famin_s, uint32_t, H1_4, float32_famin) +DO_ZPZZ_FP(sve2_famin_d, uint64_t, H1_8, float64_famin) + #undef DO_ZPZZ_FP =20 /* Three-operand expander, with one scalar operand, controlled by diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index aa7d72a35e..db32230595 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -4253,6 +4253,8 @@ 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) +DO_ZPZZ_FP(FAMAX, aa64_sme2_or_sve2_faminmax, sve2_famax) +DO_ZPZZ_FP(FAMIN, aa64_sme2_or_sve2_faminmax, sve2_famin) =20 typedef void gen_helper_sve_fp2scalar(TCGv_ptr, TCGv_ptr, TCGv_ptr, TCGv_i64, TCGv_ptr, TCGv_i32); diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index ab63cfaa0f..078a085a79 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -1130,6 +1130,8 @@ 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 +FAMAX 01100101 .. 00 1110 100 ... ..... ..... @rdn_pg_rm +FAMIN 01100101 .. 00 1111 100 ... ..... ..... @rdn_pg_rm =20 # SVE floating-point arithmetic with immediate (predicated) FADD_zpzi 01100101 .. 011 000 100 ... 0000 . ..... @rdn_i1 --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301679; cv=none; d=zohomail.com; s=zohoarc; b=Kmy02i6MBPruUrlhH0Xo6qiAOigv0MTDwBCm/aQr2WpmsyzOydCkzF3rXpWTcjsuhaXW2vRJLbfPLMgifZujrqTVUxAaBRbXl0yFRHPdmxL8MgH1/76JSNBdqVDr8NOYw/nUCPITKhUEOVDjUwnt8JPbV92VdhHXrfE6JnI4Oac= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301679; 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=0L8sm2nuOmiw4XE7Qu74ytG281Y5T5t916Djua5D5pM=; b=eEa517NkAm++6ipJK5X21gQ6q1rCdJMo7Pa/KVED7wmp5ILcjplL4Ft/w4y6ouozC3WcaECfDX/pEedOBHL7+Md7oVzCO3Xqju1UjaWSurEBwA6VXDAoyKrTRWdr845jjhdM8VZ5GhN2Tw2Pfy0Yy0XCGfB5DbyK4CB+z1dSPvI= 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 1779301679355748.7166218789531; Wed, 20 May 2026 11:27:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlYr-00075J-3w; Wed, 20 May 2026 14:22: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 1wPlYk-0006mD-He for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:22 -0400 Received: from mail-pj1-x1034.google.com ([2607:f8b0:4864:20::1034]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlYh-0000TG-Mo for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:22 -0400 Received: by mail-pj1-x1034.google.com with SMTP id 98e67ed59e1d1-36a3aff302aso382754a91.1 for ; Wed, 20 May 2026 11:22:19 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301338; x=1779906138; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=0L8sm2nuOmiw4XE7Qu74ytG281Y5T5t916Djua5D5pM=; b=lgYDqEWT9940ZLa/V6Cc4sSy/R6rg8BjD0I7vJrss3A/uFqndtUVuM4AkE5p9OXL95 hUxPWJXMM+YKAE1S27ThN1e+PLWB8HP3CcyVpGU0tJJyu66zHZys8NvjFNaRNm7JDYg8 ecuqUFQedv+VHYg6ZS1XFk6Z9MUtNr/zahny0iqZ/2lju0OxE/mUV4eKQ+iqxVqK1tQw pnkMAxDhpL5ft7UQnMWM/hZGn8pabJ5JvRa7dP5YxtZ7y9qdxx6lgLx9Dl9IC70EjtJ6 Mlwimm451kIk4B73vm85qaMzcbQvFtxyRIn8TSojFT08U+fCrv01HZdeWQRXPTydjYO5 ObKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301338; x=1779906138; 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; bh=0L8sm2nuOmiw4XE7Qu74ytG281Y5T5t916Djua5D5pM=; b=ZNT5BiAmTdqYwMH65QqJWTFENr9EYCwXpsDDqjXAvzOJdncaig92FDFzuRRBhoFWvH rnYiz6kkHKlw3ftFSFYBcToerivVtd50++rYZah9EAx7Q5EBYjjGunGVxaHz1Sx0pxou OMoYcjKqvndehY8cVde+kQOohAPAUEN5fSrEjYIjQpH0oDYjcVCPGDGnQC57FDVs049O rccosqgJpkBK4lNvFwZrtJnTFDYMxpEay6hJc0Rwmvmc0IjNjblK/yQpthSV5hCP32Xm pjROQpWKwCRcnu0QcI8SlL6JLwOv2J0ASkCLtg6RwDSZysW9d8PJ71i5nMNF5inm4B2B 19cw== X-Gm-Message-State: AOJu0YzsTTr7L2yIKKhtpv16U5X4wnLcRBDtKFDm0oiF5enwNXtoJoOv oTtydYYymYwZNbqZaYrrNeHq3b/I/KcwpaFhFOzmoerpnRczn+NEc6olv44i8FBhqCmR3owt3jf ljAmVL8Q= X-Gm-Gg: Acq92OFGTfYv7uEyxskvEWqzgfY08L84sFAwlRVo743rQf2Z9smR/35xdoB7q/JbDRD fZGVDFp5VYJcdwYTE2FunHvdZHXxAeRfAQoewZqx+59Kmu0BfUkO9qMoVuqMCwYmJaduwDBFzco eaDsxmx7tyf8G6KcPVz+R06OBxKqQyHEshCeIVIM6eDtBLmnEp4U4tRe9aiSZ6qbUCsfxurAu5x Xgw1HhofesGh6rTccLbnmLSHHAxAJNy4JmDa9V7OLxxgx/2/nDeP6QGXYsC9KoCkOq5tGKYROoG tgM5XOD6Wxs+tklAe05YyjoAPiia7Hs3cZ4hGkGgTOJfAvc2qoUlAFMxZYLJTv7AH9T5QG0OT1v UhLgE8cpQQZDr517en97xUFslo+AX651CGZJ0O+Y1YJwETdbxT3M45d8U+3yJS7KnYYSV030OYX P48lZi8yGZy7cruoAVtxw3JNq4egV0 X-Received: by 2002:a17:90b:3804:b0:35f:9ab2:a5bb with SMTP id 98e67ed59e1d1-36951a1cc30mr25925826a91.10.1779301338157; Wed, 20 May 2026 11:22:18 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 05/64] target/arm: Enable FEAT_FAMINMAX for -cpu max Date: Wed, 20 May 2026 11:21:14 -0700 Message-ID: <20260520182213.872945-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1034; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1034.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1779301680973158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/tcg/cpu64.c | 4 ++++ docs/system/arm/emulation.rst | 1 + 2 files changed, 5 insertions(+) diff --git a/target/arm/tcg/cpu64.c b/target/arm/tcg/cpu64.c index 649d854a65..ff0c2b1c47 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -1266,6 +1266,10 @@ void aarch64_max_tcg_initfn(Object *obj) t =3D FIELD_DP64(t, ID_AA64ISAR2, ATS1A, 1); /* FEAT_ATS1A */ SET_IDREG(isar, ID_AA64ISAR2, t); =20 + t =3D GET_IDREG(isar, ID_AA64ISAR3); + t =3D FIELD_DP64(t, ID_AA64ISAR3, FAMINMAX, 1); /* FEAT_FAMINMAX */ + SET_IDREG(isar, ID_AA64ISAR3, t); + t =3D GET_IDREG(isar, ID_AA64PFR0); t =3D FIELD_DP64(t, ID_AA64PFR0, FP, 1); /* FEAT_FP16 */ t =3D FIELD_DP64(t, ID_AA64PFR0, ADVSIMD, 1); /* FEAT_FP16 */ diff --git a/docs/system/arm/emulation.rst b/docs/system/arm/emulation.rst index 8cd7fe7b00..da5f7efce2 100644 --- a/docs/system/arm/emulation.rst +++ b/docs/system/arm/emulation.rst @@ -68,6 +68,7 @@ the following architecture extensions: - FEAT_EVT (Enhanced Virtualization Traps) - FEAT_F32MM (Single-precision Matrix Multiplication) - FEAT_F64MM (Double-precision Matrix Multiplication) +- FEAT_FAMINMAX (Floating-point maximum and minimum absolute value instruc= tions) - FEAT_FCMA (Floating-point complex number instructions) - FEAT_FGT (Fine-Grained Traps) - FEAT_FHM (Floating-point half-precision multiplication instructions) --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301364; cv=none; d=zohomail.com; s=zohoarc; b=mVx8dTQVhHG+sBNWxc9mld/BQiDE5cKLyO4CEzQQHqf4xd2SEyCPG+UEQtqiNZ+NQBRSLYdLN02Yi78nHdj6pzD2oPIt/DTqQXjmI40KnSe9jwGTbMAfNEkN8FJ/jIREKqGxs2r+nILFh/KqRNcwKqHNbClcaXlPaRdpFLj77mw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301364; 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=HYsxgOkKZmN/D6H7dyuNYSLIwdX/Ih93Qf3lIcR+ofE=; b=HN30fA5Y51k+QsBIH6tjVHPCt0F8yKlv8ZW7dLrMMu7r4VnSTT1ssF8CfYnuaG2RamSiH3UkrGC0xImox4GMZaYonrCyuQt4SDn5E7UJcAfRsENM/9+BRwPCg24JtelgU+gYdqen0SfQ8y+Aswen1tgJVeuaSxlVCMu07f4jfJU= 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 1779301364804101.1833487942863; Wed, 20 May 2026 11:22:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlYr-00076W-Iw; Wed, 20 May 2026 14:22: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 1wPlYl-0006q8-AT for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:23 -0400 Received: from mail-pj1-x102a.google.com ([2607:f8b0:4864:20::102a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlYi-0000TT-AS for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:22 -0400 Received: by mail-pj1-x102a.google.com with SMTP id 98e67ed59e1d1-3664df32e91so5601386a91.3 for ; Wed, 20 May 2026 11:22:19 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301339; x=1779906139; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=HYsxgOkKZmN/D6H7dyuNYSLIwdX/Ih93Qf3lIcR+ofE=; b=fJySRgRJe4kQlc9AYh07WUhA/7JeaWX9cvlEoHMr3sag6pAeWqm+CZu75IdcUDkL1L MS2TzrhihdxXDJegjD6LqtsW8oReFjGIFRuKY4XsmWiyYTY5sV9tHyplNgxpy1myojIT 7SxwITUSkr6WTAxFMTFiSJt3ABu5QCbmbm4sGeDSQTyFiY50iSrja0lLiiHnYC3iALqS hLu7qXgkg7PGgmCFMHr+hn85hZ5TrnxJpZQBfTZgAIUFykix/cjrLAJ1oZyzUPRtUDYT GTGX9OqfMY5naYxrUzt92bWZ021m1C2sd/uj94d8vOu/sd3+kwRtNAzCvAyRepCNO8Lt voeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301339; x=1779906139; 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; bh=HYsxgOkKZmN/D6H7dyuNYSLIwdX/Ih93Qf3lIcR+ofE=; b=CPf3wlRDGWhwxRJ0jIz2gat3dDpm6ihBmwEkjyMHiUS1innAk4c97yjrlzWsjyzWyb snvDEO6EUUCORcGzI98t4zRkoSEz6i87v3C4kPU8LanPw3Cl8bWQ2dlFHboXxfIlP5iq ADTYf+plCMVuzfh9iEuzGrKHb2ReI7IbIjp102nTe/+M0MHYp9iFrvccc9iciDrFjZnS yhdFJLAeKGxHZH8/PBb7LA2AylegKrPYfxgqpRNK0riJ3q2zya3hulqV+SNez0ZCcxor q29dV6/DyCFQfz6iCbMjGKg0iocAotOCD+U6en74s2RQrWy8q4a/FajtcUeHaT8XCnY8 z9KA== X-Gm-Message-State: AOJu0YzDZMOqmwi0/g1+dc/jXQXESsudFma1QkOlHY+/E/RoTBMiL8CQ OFQ2Sg9NEfcXySSGJyOKTKlHhFOUsnrrMFh0j1k7D+636Ia42y32gUl5uZYCZPJBQtGwF8EzQMK uHUF0J4g= X-Gm-Gg: Acq92OGW+Pkl0iGotGEufmBIB4ySAaRLAsltBmnz8nad0Jv/tEjlNFQ6wfkdljte8KF sSLnftpW9SExrJCrxJR8Hv0RiC8nKfsV8yGkQXTEFH4JPdM/UP2PyAur8cQ0wvs453rw5Dl03Ex TrPcsadeIYEQhGc97JyFiPCyUsUTKKgnavms0zB63wnS9olkFovuXBInhJRZfQsiGiBCCkSy2nQ 6nXbwK17IjJ71xRghosgxm/0cV0qb5TcjJ55WTnKJjI05SJQXaxLRt1tFViXnRnUc50pCkWJ6Bo ARyor92Z708WHeZH2bJCcErQYKaM/lT3Hg8NoV++DmqEJC9T2VQMOt2yaXozMX/OX3rrDH992B3 JbKvT3XkS0BS5RnYBzebh8RSoaS6jqWpbxrwjS2LLZJCUKWC8GXPRdTV9Jegsj8QuXsChHVHSUO eNx77vL9yPTZs7Z4whiqmVrMuytCm1 X-Received: by 2002:a17:90b:4c50:b0:369:d7c6:450a with SMTP id 98e67ed59e1d1-369d7c64a4bmr12739749a91.0.1779301338786; Wed, 20 May 2026 11:22:18 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 06/64] target/arm: Update SCR bits for Arm ARM M.a.a Date: Wed, 20 May 2026 11:21:15 -0700 Message-ID: <20260520182213.872945-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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::102a; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102a.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: 1779301365894158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/cpu.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/target/arm/cpu.h b/target/arm/cpu.h index 15a13b9292..0a11dd9002 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -1820,6 +1820,17 @@ static inline void xpsr_write(CPUARMState *env, uint= 32_t val, uint32_t mask) #define SCR_AIEN (1ULL << 46) #define SCR_GPF (1ULL << 48) #define SCR_MECEN (1ULL << 49) +#define SCR_ENFPM (1ULL << 50) +#define SCR_TMEA (1ULL << 51) +#define SCR_TWERR (1ULL << 52) +#define SCR_PFAREN (1ULL << 53) +#define SCR_SRMASKEN (1ULL << 54) +#define SCR_ENIDCP128 (1ULL << 55) +#define SCR_DSE (1ULL << 57) +#define SCR_ENDSE (1ULL << 58) +#define SCR_FGTEN2 (1ULL << 59) +#define SCR_HDBSSEN (1ULL << 60) +#define SCR_HACEBSEN (1ULL << 61) #define SCR_NSE (1ULL << 62) =20 /* GCSCR_ELx fields */ --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301610; cv=none; d=zohomail.com; s=zohoarc; b=oC4PkXN4PISTAkrQRieX/3iSexDtxRmPDta4Ytn2jPMsMt2R6AiGbtBASxSlDkIkeaSGXFxW04kyCOQImE9mffvYBZb+reeICg+eGRbZZVNpufj6iPKyZrzp6fYcOzLbOcrCkV6TmscZWzv77OHZC9UgZHZLYz8wa34Ug1DwY7k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301610; 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=VTOHTZtbLNgNOJvES0sHS6aWgPQHY2/QJQuHdbaHCMc=; b=LcTifNDY80SL7V6DsNp2urIz4al3aEUQMWoi/idxywBEECQU/lqITaA+Z+etGsBqeH4rbAB9tBoIHumGFWVkDgAm0PLtm5x3bdd/bIS3uGGu24f2RhSo5f+H6+oPKOvcbm0fnHV0SjUgB5V4vOgvm3XJpizTc69t0oIL4UCGzJI= 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 1779301610892496.51083084934135; Wed, 20 May 2026 11:26:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlYr-00074X-4g; Wed, 20 May 2026 14:22: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 1wPlYl-0006qA-D5 for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:23 -0400 Received: from mail-pj1-x1033.google.com ([2607:f8b0:4864:20::1033]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlYj-0000U0-Et for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:22 -0400 Received: by mail-pj1-x1033.google.com with SMTP id 98e67ed59e1d1-367cbac9c37so2875108a91.2 for ; Wed, 20 May 2026 11:22:20 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301339; x=1779906139; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=VTOHTZtbLNgNOJvES0sHS6aWgPQHY2/QJQuHdbaHCMc=; b=UyKSV8O5PR+Lg0uyatCnfv/lpD/iY13KqlcI1t1g7a8BWrxrrJ0M+cKXqU2p8JeuMO LIegXqaXvNPB+EPdNiqJGJRacxMlI4xVLvSTxjsaWQSXeIBKfDIWErqXYv2wnB/5FDRz rSNoAOAgHIQszgIEln/x+BGhCmx5oRk+OXOnshB8G9nK1pDHKfWGKLA9yR2xFePNrEeR HoAgLo7qsC4GT+Jud9GtmTFqEStppBsg7qMTyn5trAp11epCPQ2SINwB4u2grrQYSIFJ aVV3NTy445Z81OQI6f+gTALA5nUX8bZqWgjXDGsXAkltWkhFn8uHY74NJ6pWn8nyh8gz xWtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301339; x=1779906139; 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; bh=VTOHTZtbLNgNOJvES0sHS6aWgPQHY2/QJQuHdbaHCMc=; b=ddc6MK1+tGFQlXHddHRrXm/yszdrDN5WfhpzQkoccwF7mxC/rVpyO9THXwNbTVR9FW BSViKfwVKvD25XWTkp/j08tVb3cxsymp4ZGclVu65Ch6MJ4pAH0+8qkbB9ig36ZGV+GI CVtCneDQQN40vqpbD3x2rAIidV5R646obP6LI0452rI839+bLpqRVhfXK4cThLiMw9Af 2dIvl55amnmGF0N5EjA078Y/E0AJnSFuMOaZMDuyJ4rMRD30TJq4+feNlEvN6KcFFvIW ptw6I2KLblt8KtuqPax5vzNnFYyXkz4lUsWV2k925cn0uGXQr8jlRy2WViEkscHiWzs0 Yp3A== X-Gm-Message-State: AOJu0Yxvr6uqoLl9PwEJ1Gjw0faBCn/ZJWu1Ov9H8JqmNy6xGhFuFQ+V RKe56jquptnINOSid+cnEwGY0fzf2JGzCwJoZTSIi8BjHDTLN2sv97iSpQ2wwcRmg4HHg7WgYl3 C7tfDYCM= X-Gm-Gg: Acq92OHJMnEg/oMJSVyB7r0EIdwYy+GvaLkqIsYRDosxFGC9WSZkAArCIzockZwYf4H Y2AaEnDAIInpIAvQMKr/EgfMdII4prwVvHbuPtfy+Wq6H/GwzDKv6glehypdevhHFMc8TVPQWxX A+fNETYpyRjLfn/IcZvSBN3Qh5oZIBkZ5WU4K5Ww/FRejbCJ6EHx6zr5j/ZexP76W5pyWl+tIdW igivOzVdQKfysqXYPEcrH6fl7ITR2omGBat78hRGDNX3SFmXcfwX1LE7W8JF23g+E2fvrZpGZMb JJYjnuC0eorY5OFeCkzh/ATIlrk4FdwykZBawVeTbRQq1Ksunny8EgyLklLF8ToVZJnddQqBxL3 W7eyVHOe6V7x8oJJxOS6fpMDgwtXcr7Qi9WeS0o8ds62d9depOfnLHCIh5bucViCmM4QwsA9tSW 1hGpjYi8rICv+OcT3ba/uAA5B2/aAX X-Received: by 2002:a17:90b:1344:b0:366:4782:138c with SMTP id 98e67ed59e1d1-36951b971ccmr26021323a91.17.1779301339380; Wed, 20 May 2026 11:22:19 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 07/64] target/arm: Update HCRX bits for Arm ARM M.a.a Date: Wed, 20 May 2026 11:21:16 -0700 Message-ID: <20260520182213.872945-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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::1033; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1033.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: 1779301612771154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/internals.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/target/arm/internals.h b/target/arm/internals.h index 00830b1724..f02d3c6a71 100644 --- a/target/arm/internals.h +++ b/target/arm/internals.h @@ -258,7 +258,9 @@ FIELD(VSTCR, SA, 30, 1) #define HCRX_TCR2EN (1ULL << 14) #define HCRX_SCTLR2EN (1ULL << 15) #define HCRX_GCSEN (1ULL << 22) - +#define HCRX_ENFPM (1ULL << 23) +#define HCRX_PACMEN (1ULL << 24) +#define HCRX_SRMASKEN (1ULL << 26) #define HPFAR_NS (1ULL << 63) =20 #define HSTR_TTEE (1 << 16) --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301388; cv=none; d=zohomail.com; s=zohoarc; b=P5qMXYkAvc1kEQvZi3IDiJVOBX22x+QrN4tuQx5DVa3Ez15/EBELUj3ZepeextwZnuv1+siDjnrczU395h4A+YUNhqc827AIWOxct6RYZkhRZlXxiol3TQxDW/Z6ctXBYB/6Yh4KQOMK70W3tcn9DorE+4M5aln108e/BO48t+8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301388; 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=UT8d/Ri4vaH+9l8soed8vmW38AzAn5sreMEwwUXqNdw=; b=MmyDA6ak035BTkw7nLXl5wACQFc+2p0pVD58Hcsi90vCYNI5PayQzwsObMfNRnTsj1PFKpPyUmWVKkTQtINdWwrrW9K6o/66WmwXwMYRVkDmP5r8IWqQUNVUJAF2arvOuHTA9mKzOJ19uYADX/J9tge13VXOK0ky48L5u8dXYRA= 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 1779301388966414.7857272731926; Wed, 20 May 2026 11:23:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlZ9-0007Mp-Sq; Wed, 20 May 2026 14:22:49 -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 1wPlYm-0006se-Hl for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:24 -0400 Received: from mail-pj1-x1034.google.com ([2607:f8b0:4864:20::1034]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlYj-0000UE-Qt for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:24 -0400 Received: by mail-pj1-x1034.google.com with SMTP id 98e67ed59e1d1-36a35e4eefeso463277a91.1 for ; Wed, 20 May 2026 11:22:21 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301340; x=1779906140; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=UT8d/Ri4vaH+9l8soed8vmW38AzAn5sreMEwwUXqNdw=; b=GVZCdlU1zs63fb8v64a3JgYJl6xqoVRobNBnoJCT3z+4qwVhIZW5PQ6ZhARs1Ht50S a/pb6coi5orfrtShKpxVYEoNY/ziRjZppaJdy4Sf1H/LKhVBlgKkDCq5Nsc2HXGGCO6y vWtJLSoiO9iqR4iYik9BGybdzcvVndRxTDT8RKeOD6Ju3gehzrdZ3KXyZM3e6m5r3/ys uMlI4HqnkbdnvwUp3XTBCVh8QEwnzCDRqWn0dgw8LsNPv8kmyD/zmEIuUQWOGnKAZ9GQ ByQbp66lItgf/cYmii6wqVlqygOWIAQ88Ji5c0jYlPa6UO9fNt+aaoWlsCNbXBY/DhE/ z9vg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301340; x=1779906140; 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; bh=UT8d/Ri4vaH+9l8soed8vmW38AzAn5sreMEwwUXqNdw=; b=SZJ7sQjrjeZ73qXE/Z+YoMWM5S03U1N0AJdCpVqFXVZb5UvfXQyUeh1hm1XoJsp5fw YFz/vw8zvGkFQzaTbi1T+Nn0zPpJE0gc9Mu4IWFe2iuk1fqovqFYf2BAaLDWAzE48oc4 ju3TmjtNy0tHpvSF0KsHFKzS3J+Yeel1CtCgCi50Qqf21L0ZfgCBRQ4Nki7ljZdPTLww cm53wdBZzA8L8+1C8Ag9/bnZc2VUpXMJEsNaKKHocu5M5Akpkj17gpYlFRE59mR6OAZ3 ylaBmJUG5j0OoHukF0wf1Yk3HWqDTibu3rvf9GV8TRo9ovuGe5f+1h4n5HOJKpK7AadJ aUbA== X-Gm-Message-State: AOJu0Yyn9r0uREO2QLrAILDwiazU6PvXLzbWNfXYF5M/WgiFOzOIT02G Pq4gXoTZ+nuXYfn5DQBDzprCRh5gBXqv4wGd1/ItDMhGn5y8QJ0pKrLu9qnhdJj6LDeBOhygeu5 2Y6pD5ao= X-Gm-Gg: Acq92OF3Hf3tCdLqXML3E01z2ZCq6osTtyXaOuLq+KVeR6KNPmpGu0xVMyUliByttFD PHJiLPJ4ywXXyJJgBhprvCTTz832CryYSDvsqrRH8HvaLCufMilEl0E56ty3Z+oEL7kc7tRetKH pMQRJeK1bkx1rx/HyYl04i6nC/wKD/MmpnhifvMhzzm3G7fVbALKfeMQBQvH1672OlEqlw/Azop U6bBSK3+i5dOXBoSCDPg3LLjKqya8GhGzll+ZGoNrn573Hx35aF6OGAkSGYDzLH2hKsK9Ytyv0+ +K7GXIF7Do6PwhvtYcgS6ZJlSSuyGRpSybHaNo1rlTi3q8lgn8Xc1oLOK+5kfwbc2kUlVpWK5oK nd7x+vCzxGxH/sRCRhfCz5/Vwj31AIsQgcJMBSjw+OGejE4wiEIMAp1yhRSHqaZmHOSzgzIoNfI 8UufLq4g/LMeS5itXOG4FABGVByPiNWyPM4+bUpxc= X-Received: by 2002:a17:90b:38c6:b0:366:2e1f:393 with SMTP id 98e67ed59e1d1-36951b860a0mr24956674a91.21.1779301339991; Wed, 20 May 2026 11:22:19 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 08/64] target/arm: Introduce FPMR Date: Wed, 20 May 2026 11:21:17 -0700 Message-ID: <20260520182213.872945-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1034; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1034.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1779301390255158500 Content-Type: text/plain; charset="utf-8" Introduce the special register FPMR and its fields. Migrate it when present. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/cpregs.h | 5 +++++ target/arm/cpu-features.h | 5 +++++ target/arm/cpu.h | 1 + target/arm/internals.h | 10 ++++++++++ target/arm/helper.c | 12 +++++++++++- target/arm/machine.c | 20 ++++++++++++++++++++ 6 files changed, 52 insertions(+), 1 deletion(-) diff --git a/target/arm/cpregs.h b/target/arm/cpregs.h index f5ec7484c1..391c0e322b 100644 --- a/target/arm/cpregs.h +++ b/target/arm/cpregs.h @@ -149,6 +149,11 @@ enum { * should not trap to EL2 when HCR_EL2.NV is set. */ ARM_CP_NV_NO_TRAP =3D 1 << 22, + /* + * Flag: Access check for this sysreg is constrained by the + * ARM pseudocode function CheckFPMREnabled(). + */ + ARM_CP_FPMR =3D 1 << 23, }; =20 /* diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index a7ab7e2a31..e13c1c1331 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1192,6 +1192,11 @@ static inline bool isar_feature_aa64_gcie(const ARMI= SARegisters *id) return FIELD_EX64_IDREG(id, ID_AA64PFR2, GCIE) !=3D 0; } =20 +static inline bool isar_feature_aa64_fpmr(const ARMISARegisters *id) +{ + return FIELD_EX64_IDREG(id, ID_AA64PFR2, FPMR) !=3D 0; +} + static inline bool isar_feature_aa64_tgran4_lpa2(const ARMISARegisters *id) { return FIELD_SEX64_IDREG(id, ID_AA64MMFR0, TGRAN4) >=3D 1; diff --git a/target/arm/cpu.h b/target/arm/cpu.h index 0a11dd9002..498af7db08 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -713,6 +713,7 @@ typedef struct CPUArchState { */ uint64_t fpsr; uint64_t fpcr; + uint64_t fpmr; =20 uint32_t xregs[16]; =20 diff --git a/target/arm/internals.h b/target/arm/internals.h index f02d3c6a71..b6efc4433d 100644 --- a/target/arm/internals.h +++ b/target/arm/internals.h @@ -292,6 +292,16 @@ FIELD(CNTHCTL, EVNTIS, 17, 1) FIELD(CNTHCTL, CNTVMASK, 18, 1) FIELD(CNTHCTL, CNTPMASK, 19, 1) =20 +FIELD(FPMR, F8S1, 0, 3) +FIELD(FPMR, F8S2, 3, 3) +FIELD(FPMR, F8D, 6, 3) +FIELD(FPMR, OSM, 14, 1) +FIELD(FPMR, OSC, 15, 1) +FIELD(FPMR, LSCALE, 16, 7) +FIELD(FPMR, NSCALE, 24, 8) +FIELD(FPMR, NSCALE_F16, 24, 5) +FIELD(FPMR, LSCALE2, 32, 6) + /* We use a few fake FSR values for internal purposes in M profile. * M profile cores don't have A/R format FSRs, but currently our * get_phys_addr() code assumes A/R profile and reports failures via diff --git a/target/arm/helper.c b/target/arm/helper.c index 6ad01b345f..ae1dd42dc4 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -6229,6 +6229,14 @@ static const ARMCPRegInfo aie_reginfo[] =3D { .type =3D ARM_CP_CONST, .resetvalue =3D 0 }, }; =20 +static const ARMCPRegInfo fpmr_reginfo[] =3D { + { .name =3D "FPMR", .state =3D ARM_CP_STATE_AA64, + .opc0 =3D 3, .opc1 =3D 3, .crn =3D 4, .crm =3D 4, .opc2 =3D 2, + .access =3D PL0_RW, .type =3D ARM_CP_FPU | ARM_CP_FPMR, + .fieldoffset =3D offsetof(CPUARMState, vfp.fpmr), + } +}; + void register_cp_regs_for_features(ARMCPU *cpu) { /* Register all the coprocessor registers based on feature bits */ @@ -7502,10 +7510,12 @@ void register_cp_regs_for_features(ARMCPU *cpu) define_arm_cp_regs(cpu, mec_mte_reginfo); } } - if (cpu_isar_feature(aa64_aie, cpu)) { define_arm_cp_regs(cpu, aie_reginfo); } + if (cpu_isar_feature(aa64_fpmr, cpu)) { + define_arm_cp_regs(cpu, fpmr_reginfo); + } =20 if (cpu_isar_feature(any_predinv, cpu)) { define_arm_cp_regs(cpu, predinv_reginfo); diff --git a/target/arm/machine.c b/target/arm/machine.c index 8dc766d322..58f8dfd53c 100644 --- a/target/arm/machine.c +++ b/target/arm/machine.c @@ -960,6 +960,25 @@ static const VMStateDescription vmstate_syndrome64 =3D= { }, }; =20 +static bool fpmr_needed(void *opaque) +{ + ARMCPU *cpu =3D opaque; + + return arm_feature(&cpu->env, ARM_FEATURE_AARCH64) + && cpu_isar_feature(aa64_fpmr, cpu); +} + +static const VMStateDescription vmstate_fpmr =3D { + .name =3D "cpu/fpmr", + .version_id =3D 1, + .minimum_version_id =3D 1, + .needed =3D fpmr_needed, + .fields =3D (const VMStateField[]) { + VMSTATE_UINT64(env.vfp.fpmr, ARMCPU), + VMSTATE_END_OF_LIST() + }, +}; + static int cpu_pre_save(void *opaque) { ARMCPU *cpu =3D opaque; @@ -1323,6 +1342,7 @@ const VMStateDescription vmstate_arm_cpu =3D { &vmstate_syndrome64, &vmstate_pstate64, &vmstate_event, + &vmstate_fpmr, NULL } }; --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779302013; cv=none; d=zohomail.com; s=zohoarc; b=eoR/ePLHNsTtMOBK2+x7xuFTkZ3ccOqx63Fe2l66U39FJjHxzhGkYp7lPCRCLJGW9d16ImC9xSOfR4c6ZkPiCsK+2yuoWKWlN3mzOWUfwi4GG4pW866kjS45yakHQiBgGjd9o77EYmnwwwwLPQzcRGG9UlKfQVSYJT2Y4J4lIhs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779302013; 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=RgEwye1A/H/zER4vq4nD2iWWcMLX2i9wMfampUnYlVM=; b=UCDWuqyQ5L0B/yaSRWDrKLr9v61iFqMu0fljv6cV93dYJDMFT90wCVyM8iF7ucJyHcrq8iwvwm+huFAfVSmIKWh+PSW5jtQcmyaKfAankFxzG51yHaPjY/vVlYlKwsjVbB3bnzoDU827z1EIqnuqKmHfvHpEilQymUKLMsaUEl4= 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 1779302012999124.93766869462866; Wed, 20 May 2026 11:33:32 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlZ3-0007GN-Hv; Wed, 20 May 2026 14:22:42 -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 1wPlYm-0006si-Hh for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:24 -0400 Received: from mail-pj1-x102d.google.com ([2607:f8b0:4864:20::102d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlYk-0000Un-H6 for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:24 -0400 Received: by mail-pj1-x102d.google.com with SMTP id 98e67ed59e1d1-3697f25d26eso2679828a91.1 for ; Wed, 20 May 2026 11:22:22 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301341; x=1779906141; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=RgEwye1A/H/zER4vq4nD2iWWcMLX2i9wMfampUnYlVM=; b=oo6RFte0wdn5iVdGvdzksGp9vXbHzatLM424balUatPMIiTFRgZA/ew2yH+JWPaWWH NGOpifu+qtjbUQSK1PVLMijHu0/Kbfj+0rL5JzuV4uvvtM+XfgKT47NrzY8+3tcbF/bJ qv374ZSmN1XLL13GvnVk1S7Oql6s8eh4ZT4pQTleOAeYUJVjgqq5Vbgwqn5cNDLY/bbV yj6RMVq5zSrZktqNMyz0UVkCRVzW+CXdBWVHTKCZ1jNYrstlZjrngj/mFLHS0/T7hbi6 E/ppYkYtY80XnEWwgwuQCLRwhaYhBSd+pu0KJymESXY2yR9SpE7x645iwC1w8B1xqeU+ uDPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301341; x=1779906141; 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; bh=RgEwye1A/H/zER4vq4nD2iWWcMLX2i9wMfampUnYlVM=; b=s/3WdL46mYmmqi7v846gIcP6lAmnw3uWjesw0be8Jg/2VgeV8hArFQhv5JzbId4xbr Z3ZwEhMdB1CkUKk30KKLvI0Yi/2zZ8pfXcW6a/FWdj+rMIGmRO8R3N+iRcNXZxuJSe+0 Ks8OiKNCF92fuSLl2yO924dlr2PksNsgMsT3aSmRbOOvCRkiSLdr1pU+jrJER4QZL/8n J2Gao/9z2b0a56316PaJwGjD23RrspJphaZwmr8hK21D9zC1AEcmRjGoP4LiZ9NuHymV u/GKJhz/iySH0b2p+CMjLbTkW7upRMv9Zgmg/Hd4Z6Qp1o56ZtJu0ByksBDzB433eubY 1omQ== X-Gm-Message-State: AOJu0Ywh6Zu8j6xm5sA9GVxoWMAIiCAm/WEVZuJIS6F2iEds7VVvC9rn gwOVCmPXdFSxFnsPStPkvTo2T/bsTcXr85zLxCuThkJcDt/rn3XP3yaKMxPksEkXBP0YNTapr4E AbavuHf0= X-Gm-Gg: Acq92OGvvZbLmjsfVL9G1rKc1x5knQzBn3gDMUVPQJYi9cEMqQ09kCJpiEmakPILUQb mDTyzdGtuySIauP7zubiVYL4bULjWDZDgyzPLTTf+fae6+lrwljTo3RqH+G6/nAQEDNtgEHIsPT BY+DlZ2nOLHgDl/PIUtshelTzxo4GAurEXtXlulus8Q9rU9xK49RT/Pgbk0BT0TcWYIR8oM+TiX sh3PD/YABmBpFjm6nlVQr0Bz76Rxf15qFSjFFM1kCrSXjPMKgbgEmd+j8ju4Nozb4XCJVe5VK6e qWNfbERTn3iyOrrd8woml7mMy/ZSQJVjH4Z/BC0yVspnNVhBQxV9szCnrzc45wbLMuECwX3lrOv Uka2i9wRSJctv+ZuWEMi9BEXPU0KujtlDhLG5YXnXu3ksawt3hXI+3JpAeTejVO8EMn8fe+YjHm D72JHNfsVoiJzFZn4dwqk2XioQrmT3 X-Received: by 2002:a17:90b:4a92:b0:368:a27f:9083 with SMTP id 98e67ed59e1d1-369519c71e0mr21655080a91.7.1779301340891; Wed, 20 May 2026 11:22:20 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 09/64] target/arm: Update SCTLR bits for FEAT_FPMR Date: Wed, 20 May 2026 11:21:18 -0700 Message-ID: <20260520182213.872945-10-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102d; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1779302015213154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/cpu.h | 1 + 1 file changed, 1 insertion(+) diff --git a/target/arm/cpu.h b/target/arm/cpu.h index 498af7db08..c114510446 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -1485,6 +1485,7 @@ void pmu_init(ARMCPU *cpu); #define SCTLR_DSSBS_32 (1U << 31) /* v8.5, AArch32 only */ #define SCTLR_CMOW (1ULL << 32) /* FEAT_CMOW */ #define SCTLR_MSCEN (1ULL << 33) /* FEAT_MOPS */ +#define SCTLR_EnFPM (1ULL << 34) /* FEAT_FPMR */ #define SCTLR_BT0 (1ULL << 35) /* v8.5-BTI */ #define SCTLR_BT1 (1ULL << 36) /* v8.5-BTI */ #define SCTLR_ITFSB (1ULL << 37) /* v8.5-MemTag */ --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301779; cv=none; d=zohomail.com; s=zohoarc; b=dxRjXpcXdYoV72g3/D8BWBPemFJwamNqsA5yve9WT+VY7CZFTJwe8HzCyd4i3q2t/Ac5KbF/k4L0g8d9r6xLw9MFzGfPez4ozzd1gXF0XH1qB76vhIEYOMiVQheiUKHpRaih3HKXU0mUV0rCkiHl0/Ow8nRMWsXMBRmBLiO0eUA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301779; 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=JAosT0zOJ8eHcyZ5INON7Xq9l371iEzZ0qq0XCtPW+c=; b=g8pA7RXCyGgwu6L+ChFfkFWGct9JZr2AtBL0YN9I8th4llcbOTXxMlOZwFa/aU+dKCoJqd9zyEy8+T6HGyAonfuvxSIZexCE0R4Zr061wVMaN4dMAhfKPRgD15SkYiIyVQ3NpgnEy9D3VvWPFnqewlcPEj5iAURkl/tS5LHcpY0= 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 1779301779260742.8755453249624; Wed, 20 May 2026 11:29:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlYx-0007CU-JS; Wed, 20 May 2026 14:22:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wPlYo-0006z8-1N for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:26 -0400 Received: from mail-pj1-x1032.google.com ([2607:f8b0:4864:20::1032]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlYl-0000VU-Nd for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:25 -0400 Received: by mail-pj1-x1032.google.com with SMTP id 98e67ed59e1d1-366330b6751so4143294a91.1 for ; Wed, 20 May 2026 11:22:23 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301342; x=1779906142; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=JAosT0zOJ8eHcyZ5INON7Xq9l371iEzZ0qq0XCtPW+c=; b=bi94fMnM2P3pNj8edBduvhbLZGlnSLb54oyrpMgzI2YKOuusPjWFdaEDMH2yhVCOV3 7U0Uh9s3oD7DYbYuXVfYzBesjZ3CLzuMLDvP691W972s45KywFihJSu1spd3mzxrUSBg f9uaadrJfsTRicVboPR/DJzG7H5SjuJCwNV/kYHYW4+DwBYZeq7cSg5glk7G7LehYGVy 295EAV/c1Pp3j/5H+X3oec9wQYlPhHek5gnSz9nJwS38KuzK6eY3EKUAAEJpN4Y/oovW rLk6g+AgWWcUYvBfz8FndnG2SgvIAqGVumaOOx5MvK50v7AasbsqWHNAOs8t5onGyr1N husQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301342; x=1779906142; 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; bh=JAosT0zOJ8eHcyZ5INON7Xq9l371iEzZ0qq0XCtPW+c=; b=TEmLorfSVpUktGsVOP3sWui5e4l/cgEe7bp544asWzF1g/9he7rJA33MEsfX/ScM8c MJJbuDlpe97qFs6+QGegk//eJgMC57dXzowYmogeCnKi5ZzOGnDObDb+sLu8uzCvVrs4 X5PqbjyfyCfKap5n2Jq5vPz8HId7oqHGXRKsFZ0gXPfiy2cQp+AEKfGjKVCF/npKTMTP pIhaQ0YNvimtLxxPh9+ou6SVS4inSUgh6OxFGQwoVEQ7d1nE4kkjGollOxLj+PbF3z/3 PjSTv6LZiXgiDfywUMouGxGAGE+c8ZEAy/qzK7wVlv54A40Cm3DF0ykkSGWDVPkQ8JlE /EYg== X-Gm-Message-State: AOJu0Yzx+nDPpveQ11JBlkaLn6Q/YJ0q/s4DRR3TKXDCTd/3Y2vxRKw1 wV/IUXo0TrJn/dJRZwqYMA1nMJbMvfstZSIqh6vM2K4SMQWVqL7OI/GaBOT6qZfWwGVkQrHb8Vn O5JNR9mA= X-Gm-Gg: Acq92OE7OjYQmydtVzEVtHnH6XePo/4XtOilf8ic8yKtRwpXkfbwg2mhSEoJui4p34M G8OAO7DuRkRuwVnpzNztBYJjSqJfmqxSL1ym53flVOpeeruCTzlu8YM5t8IV2g05NisLo6AXBAK AsgTPqvF6bVa6VE5TtX2Js5ghWDsar8TY+xtBpGL3AqzuZJ5RKd5KJ9T85Is+5Nmo2PCuRVLM9p mKMQqXL+W90OSVZ9McTOw0Y30UDXztZMEBfaHDVYIWR5x/7DQabTPblxMjvvmlSj075W6X2355A 5GFesPdJYJjCqmQ+LP77CL7p8tSsi+6fziNFu4F43PbJpQBFhzpR70zoRMBc0WQtVFPQ5FHPSUX nXu3Mx1qUMUR5S1Fbope6FRW7MCkIFXuQtFexADGMcPiq73n0AcRF4hIdkULVciOkj4CESbsUqt uV4ZhiydfdSiiFxJ59fJ9fD38aQPnJ X-Received: by 2002:a17:90b:350a:b0:369:a74b:28c5 with SMTP id 98e67ed59e1d1-369e930bb1cmr10526266a91.19.1779301341702; Wed, 20 May 2026 11:22:21 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 10/64] target/arm: Enable EnFPM bits for FEAT_FPMR Date: Wed, 20 May 2026 11:21:19 -0700 Message-ID: <20260520182213.872945-11-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1032; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1032.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=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: 1779301779731158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/helper.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/target/arm/helper.c b/target/arm/helper.c index ae1dd42dc4..7eb7031294 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -787,6 +787,9 @@ static void scr_write(CPUARMState *env, const ARMCPRegI= nfo *ri, uint64_t value) if (cpu_isar_feature(aa64_mec, cpu)) { valid_mask |=3D SCR_MECEN; } + if (cpu_isar_feature(aa64_fpmr, cpu)) { + valid_mask |=3D SCR_ENFPM; + } } else { valid_mask &=3D ~(SCR_RW | SCR_ST); if (cpu_isar_feature(aa32_ras, cpu)) { @@ -3973,6 +3976,9 @@ static void hcrx_write(CPUARMState *env, const ARMCPR= egInfo *ri, if (cpu_isar_feature(aa64_gcs, cpu)) { valid_mask |=3D HCRX_GCSEN; } + if (cpu_isar_feature(aa64_fpmr, cpu)) { + valid_mask |=3D HCRX_ENFPM; + } =20 /* Clear RES0 bits. */ env->cp15.hcrx_el2 =3D value & valid_mask; @@ -4046,6 +4052,9 @@ uint64_t arm_hcrx_el2_eff(CPUARMState *env) if (cpu_isar_feature(aa64_gcs, cpu)) { hcrx |=3D HCRX_GCSEN; } + if (cpu_isar_feature(aa64_fpmr, cpu)) { + hcrx |=3D HCRX_ENFPM; + } return hcrx; } if (arm_feature(env, ARM_FEATURE_EL3) && !(env->cp15.scr_el3 & SCR_HXE= N)) { --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779302019; cv=none; d=zohomail.com; s=zohoarc; b=QCfGRe2JJlIZ0HPE7GmFgNHa1UG4u2SBgepV/TcsSPskRwarcfEhgIUv1S2f7dIq8/aRYeSq2Vd7l0yYiYN/kwVxWmXKPkLDIIQielZckflYCExNEcaXRykyNJAKXnl0n2ptS1O/bv++pAagH+NczC4itbkJ+3uHHkTefBsQW64= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779302019; 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=6CH8sn0raFot2c6HYSuCv/vuUo7CdYLWHtN+GrqCIxQ=; b=V4hrk5xGSaaE8V5+R/bSLD4124fiK6HPp77ddqOOWW/0efzh6n+6BaDvNA7B0w7JN7vQKFc2t7wqvb5hv036C1ujMLw+A57fHIYAQE6HhrokKP4N6QG7D/oMomF0Gm3Y/PLrikBWcAEtuFOzPpz018Ro1f/bzH65DWIFhyKymCg= 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 1779302019304408.7234027256786; Wed, 20 May 2026 11:33:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlZ3-0007G6-Ex; Wed, 20 May 2026 14:22:41 -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 1wPlYo-00070f-LR for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:26 -0400 Received: from mail-pj1-x1030.google.com ([2607:f8b0:4864:20::1030]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlYm-0000Vz-9Z for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:26 -0400 Received: by mail-pj1-x1030.google.com with SMTP id 98e67ed59e1d1-3697c35eab7so2990954a91.0 for ; Wed, 20 May 2026 11:22:23 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301343; x=1779906143; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=6CH8sn0raFot2c6HYSuCv/vuUo7CdYLWHtN+GrqCIxQ=; b=qTr1zS50cJucynuQJdXscl8LAvd4zibYpUDlkbuOW7abhP45Od2lN3uPOFLB2copI9 lDCtjE8maXPI/GhIkKJU9GhoCsybEvuzD30MJjKp358O2bEpa09SHJ2q5/ANxIJVzyr4 lS6zcjGXHhgl+3fmXJAc10r1rmzV2gCBZmwVypVkviTkfN1xilOWw2MssTa+4kAHKs8m yr2dlImXYhUvUiO3gjlqqoYfKJZhCCk7BwRVBNa0jh22wAVlWIiua9CfdHnxOXe1oi29 pvcbVTVpydYtQbPCrjlYOcgP/qOQEJ9eA85U14HDj4/WDYpIyDoIMKNMOMkaZ8iRUiXN Gbag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301343; x=1779906143; 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; bh=6CH8sn0raFot2c6HYSuCv/vuUo7CdYLWHtN+GrqCIxQ=; b=ShxKFU1EPWpveNN1IdZ7KJHK0xaVjYDgWJjZZaSEj0B4ALNbEOP4cCoWM1JMnz3qGI D41kno98XVAQY4A90Q0oHgHaClCpZpTx60jnUl6SJ/w7hU4aTrWeEkBGYCvS6XYm+UAC 2a8PcGQmsf9xnEw22OSHrPiVOSems7E2lnLfSSOQpb1Zyp7IxbGm0JUz3CmC7KoPjC/q VyjEDfTFqNovE+J3Jc3gYTbVrUwzXTOHsz7KvVGAHygxCxTuLqRxEGCN+JiwiMCan4TQ MCJx7zDFfcSDd8xaDhi2H3LGITwav9UxJEUUdN2UGHilbuExV4PsUq6VVRoAxUjBTJQa qJNg== X-Gm-Message-State: AOJu0YxrHOIqnQhnRqiwm9cHTSgwv48Dl4dIFi6jpOhI9jXWBfZbv4yV bmXo5jen1qLRsLPuF4fRE5eJfBYHKd3VQA2kKHNrOG1Z9iDsZEOtB7R8QmwOgwbqx5pZoRd4SlI 3XGr6w5I= X-Gm-Gg: Acq92OGPfJUlpIt4E2l/I4QsG+UwQxvC1YTnAa0vqVEjxsH/MJb10VI56k9yi1/LAzR YTEHyNODp1HEu/f6Ej4OQbhs2m1ur7/8OE+5gr5cdV5g3QK1j5CVlFgDR9VSgX9c90lmhSHgQW6 8E1JZS94Qc6zdE6rpwZRFOdnYsLJ1MJU/ucsUnaQl2NhdkK8Y72jhxGnLIbfCK3aNmSXxIT7ka2 +3Xe8iOkzrJ0gQV40b/KtHNlgMLbKPLQnqK7ZqhW86g4YQj7/hPpJgQ571gg4O+0mRDONMfnxOi MUnP49BGnd1s0MZ+8c2pva4AglteXxgK7XovuITu06RUeYcstZ9uu9YxR523d1NpSpCbK3Su6Vz J+s1n5qyHAXUEhaPyMcwMHL3fKVdQCWOfnbl+ehSN2BFSOK7pn1DMWmQGyRwRv/X7AgEdbMnZr5 zbSuSOqWpOagHAWnBDQ3oRjX+/xbgK X-Received: by 2002:a17:90b:33c4:b0:35d:9c32:6219 with SMTP id 98e67ed59e1d1-369519e8faamr24467915a91.9.1779301342447; Wed, 20 May 2026 11:22:22 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 11/64] target/arm: Clear FPMR on ResetSVEState Date: Wed, 20 May 2026 11:21:20 -0700 Message-ID: <20260520182213.872945-12-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1030; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1030.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=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: 1779302020237158500 Content-Type: text/plain; charset="utf-8" FPMR is cleared when entering or exiting Streaming Mode. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/helper.c | 1 + 1 file changed, 1 insertion(+) diff --git a/target/arm/helper.c b/target/arm/helper.c index 7eb7031294..3d6e7f1ccc 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -4856,6 +4856,7 @@ static void arm_reset_sve_state(CPUARMState *env) /* Recall that FFR is stored as pregs[16]. */ memset(env->vfp.pregs, 0, sizeof(env->vfp.pregs)); vfp_set_fpsr(env, 0x0800009f); + env->vfp.fpmr =3D 0; } =20 void aarch64_set_svcr(CPUARMState *env, uint64_t new, uint64_t mask) --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301713; cv=none; d=zohomail.com; s=zohoarc; b=Ur7+i2aIzTg8/UgyE8UQCADfllbFuHNFptdNfLMAp7FCNBO+kWOJ9lMtnrYGi9rEyqRDfaKpQkJwVKuMqoBhYESPUcdloTJCPZQUGPY6IgG04Ma9aY03TzuXMCuDwoiQjVen5D7YvVcInXSjT1SkQb6KsmOHOOG9OX/c33Sw7II= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301713; 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=P2YowRxNRLBYS6ametaessFL4W/WU5kteC+kwFAECtE=; b=JmTONzs9thxgCnEB3A9RZ4tKpldGD1HOYGehhE2Ohw5C7nqeAmyaMRt3mo0x8dsXYoaUus6I26TgsT09nXhYx1ygoWfnBm3Ra4Z4MZ6C+WxVRFoa5aJnFoTKP3vYwYbKmwFsit0NIq0mpW1xLLqF3/eiqcn7ZzIpTjPm0dgXIbk= 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 1779301713851332.5338230112252; Wed, 20 May 2026 11:28:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlZD-0007Ye-N0; Wed, 20 May 2026 14:22:51 -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 1wPlYq-000738-0j for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:28 -0400 Received: from mail-pj1-x102b.google.com ([2607:f8b0:4864:20::102b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlYm-0000WF-Kb for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:27 -0400 Received: by mail-pj1-x102b.google.com with SMTP id 98e67ed59e1d1-36622412e97so3784194a91.2 for ; Wed, 20 May 2026 11:22:24 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301343; x=1779906143; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=P2YowRxNRLBYS6ametaessFL4W/WU5kteC+kwFAECtE=; b=pCGxw6h12kzG2cz6T9BgpiJOdK+Fvwii5hXO05m+jhYl/GMJxCcKInW6zI349/DRrM b+x9DvTcmtsJYFjAimVyuHC19xpAjssb5bLvx0lsLoI0HhBSzMgvtiXxsXvE7v9OAmy2 hezjN0mgyzpWP6lpGiowzgHEGdcCLbCgyQ/4KkJhjF46imCDKgpX45wKTDTwj8n7SCIG W9xW3gPNWUwUuh38AGx9SOl51EwvJi8QMkh8L+xNzDoY02cBHPJLYIa7AR6Iu+LmX96o PbCMC50MC6gYav3k88cfhjzT0uekNViVLIAaxcjbJYQYCj1mQvChPjwDsu9WBdTtTBfb GTlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301343; x=1779906143; 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; bh=P2YowRxNRLBYS6ametaessFL4W/WU5kteC+kwFAECtE=; b=keg8FJbFtQk8SZBj1wPCffWc+M/kUf0q3E4+S8y1E29jIJNl9ooqpe1kA3Ddi4mxDu oKjwA43FOdHNf4LFAlX+Fr5r97f0iNHuGLDHjRYplI7go9/ArWmo+0yfgwW2qZI2FAlv NOQKi6wDxYXXylCKsEz2Z6wFeQ1/ZSG9CyMbhaRtWz+GkqIHxGX1ZGLj6Tpsw6XIsxpl J4kGN03QJros7WJTeCS0zekaMg1i48vZclymvjU1QIZV0vv3WTbpDL7nRvQ7N2lFQ5uS d1CwEpHLaLcBoxYE5yqOi7MDzznTa7XEO7q3vEuW/GU1vV99mb7HKZk4GyMhtibWnDKU PKtQ== X-Gm-Message-State: AOJu0YxWWjq27ZbcjtKanFxSilAXt73M/v+xOaJ9XZbtDdrxaJZgwQaX 6Iovq9pl/C0L9/eoFYjD8KNSPwAhURKId6xwR/TkYlQV8TX1QY9AutyESCzDkwsLSE3TtY86m7I 69uw9xxE= X-Gm-Gg: Acq92OFv0qJK8xptb/xBVdC1BGKC2kpbCrWx1vhyUU6lbwNiRJ/r9ZfdVNY2JNvVyH2 Cp+lXzIuiKpYbycXDfnTjNwJZQOBsvNtV9vhbzyQ/LqRdmHA2zElB2PdPTy+CHtdoX9Jsoum4wo ZC8wkswfYGsdLpQKDhP6u2QsvpMgpuud12DeUyhHm/UgQgTy2ndeJbHW/nP4AJO7UJB2vRO1vdx GAb8hicJ48eKsK3sIXM64dNVNKFlOEIdVb7w44bozYhDV4g1E0RrId5m54EikuCFnlLl/J5wffr katsnTx6+A9Pi8RIZ9buhZoE7DAw1vG2LbEOMyFY3WbXGcosKm3y58sQObfnPyJxKTD3v7u/zP1 nqFFbehn3hWhJcI1IUSC+sycULPZCLxjesDzUg/8u312wbjVQGN0exFz0nlTSAaXOnzSAeiVMke sM9lyk5RJtxAXIOzgZ2Y7uyr8DlyGD X-Received: by 2002:a17:90b:5483:b0:364:78a5:8d40 with SMTP id 98e67ed59e1d1-36951b92cdamr23209080a91.20.1779301343075; Wed, 20 May 2026 11:22:23 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 12/64] target/arm: Add FPMR_EL to TBFLAGS Date: Wed, 20 May 2026 11:21:21 -0700 Message-ID: <20260520182213.872945-13-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102b; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1779301715325158500 Content-Type: text/plain; charset="utf-8" Prepare to perform access checks for direct and indirect uses of FPMR. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/cpu.h | 1 + target/arm/tcg/translate.h | 2 ++ target/arm/tcg/hflags.c | 41 ++++++++++++++++++++++++++++++++++ target/arm/tcg/translate-a64.c | 1 + 4 files changed, 45 insertions(+) diff --git a/target/arm/cpu.h b/target/arm/cpu.h index c114510446..9e637c1d80 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -2567,6 +2567,7 @@ FIELD(TBFLAG_A64, ZT0EXC_EL, 39, 2) FIELD(TBFLAG_A64, GCS_EN, 41, 1) FIELD(TBFLAG_A64, GCS_RVCEN, 42, 1) FIELD(TBFLAG_A64, GCSSTR_EL, 43, 2) +FIELD(TBFLAG_A64, FPMR_EL, 45, 2) =20 /* * Helpers for using the above. Note that only the A64 accessors use diff --git a/target/arm/tcg/translate.h b/target/arm/tcg/translate.h index 77fdc5f3a1..1648c2c96f 100644 --- a/target/arm/tcg/translate.h +++ b/target/arm/tcg/translate.h @@ -199,6 +199,8 @@ typedef struct DisasContext { uint8_t gm_blocksize; /* True if the current insn_start has been updated. */ bool insn_start_updated; + /* FMPR exception EL or 0 if enabled. */ + uint8_t fpmr_el; /* Offset from VNCR_EL2 when FEAT_NV2 redirects this reg to memory */ uint32_t nv2_redirect_offset; } DisasContext; diff --git a/target/arm/tcg/hflags.c b/target/arm/tcg/hflags.c index 7e6f8d3647..6759b36f28 100644 --- a/target/arm/tcg/hflags.c +++ b/target/arm/tcg/hflags.c @@ -237,6 +237,43 @@ static int zt0_exception_el(CPUARMState *env, int el) return 0; } =20 +/* + * Return the exception level to which exceptions should be taken for FPMR. + * C.f. the ARM pseudocode function CheckFPMREnabled. + */ +static int fpmr_exception_el(CPUARMState *env, int el) +{ + switch (el) { + case 0: + if (el_is_in_host(env, el)) { + if (!(env->cp15.sctlr_el[2] & SCTLR_EnFPM)) { + return 2; + } + break; + } + if (!(env->cp15.sctlr_el[1] & SCTLR_EnFPM)) { + return 1; + } + /* fall through */ + case 1: + if (!(arm_hcrx_el2_eff(env) & HCRX_ENFPM)) { + return 2; + } + break; + case 2: + break; + case 3: + return 0; + default: + g_assert_not_reached(); + } + if (arm_feature(env, ARM_FEATURE_EL3) + && !(env->cp15.scr_el3 & SCR_ENFPM)) { + return 3; + } + return 0; +} + static CPUARMTBFlags rebuild_hflags_a64(CPUARMState *env, int el, int fp_e= l, ARMMMUIdx mmu_idx) { @@ -500,6 +537,10 @@ static CPUARMTBFlags rebuild_hflags_a64(CPUARMState *e= nv, int el, int fp_el, } } =20 + if (cpu_isar_feature(aa64_fpmr, env_archcpu(env))) { + DP_TBFLAG_A64(flags, FPMR_EL, fpmr_exception_el(env, el)); + } + return rebuild_hflags_common(env, fp_el, mmu_idx, flags); } =20 diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index 3c6559964b..b013dd51cb 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -10726,6 +10726,7 @@ static void aarch64_tr_init_disas_context(DisasCont= extBase *dcbase, dc->gcs_en =3D EX_TBFLAG_A64(tb_flags, GCS_EN); dc->gcs_rvcen =3D EX_TBFLAG_A64(tb_flags, GCS_RVCEN); dc->gcsstr_el =3D EX_TBFLAG_A64(tb_flags, GCSSTR_EL); + dc->fpmr_el =3D EX_TBFLAG_A64(tb_flags, FPMR_EL); dc->vec_len =3D 0; dc->vec_stride =3D 0; dc->cp_regs =3D arm_cpu->cp_regs; --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301420; cv=none; d=zohomail.com; s=zohoarc; b=Kswjx6Zt9vCCfDk+upq5lknrDBpzoRCwAw1dw/pevbxI+LrerYkrCpCa4lbziRwvF5JSBv6sNXrXwjkpe4Sq4OIaS2/7uT3kWrCkJ5Nzt2ZGfn5h+kpNOlvd/DxYgO1CDryoyFXOrehuLPU1IBMAT8ZVjrNhotQBCXwKvm5tl5E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301420; 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=RuUYRHuovVEbvZDKoFulOJ76CJMsJZBODEhgWcUkabI=; b=OuIjkng8H9/HleGc/zF7pxohz7zrZDIGbNk4x6z+qqD9gp95akjGQuFjXkPukbzccY0iLQE4rK3rP0l991Z/0C+xOjC9IoC6iUCe+eTJTEON9oFeNg2XSGQ8mfCzj2V/6h4xghm2OyvvO9vCozzc/YslvRxticvMKS6f3HfgEMI= 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 1779301420779765.8600387913738; Wed, 20 May 2026 11:23:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlZ9-0007Jj-9P; Wed, 20 May 2026 14:22:47 -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 1wPlYq-000747-F9 for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:28 -0400 Received: from mail-pj1-x1033.google.com ([2607:f8b0:4864:20::1033]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlYn-0000Wk-BE for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:27 -0400 Received: by mail-pj1-x1033.google.com with SMTP id 98e67ed59e1d1-3680540a6efso2828374a91.2 for ; Wed, 20 May 2026 11:22:24 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301344; x=1779906144; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=RuUYRHuovVEbvZDKoFulOJ76CJMsJZBODEhgWcUkabI=; b=O9JL60rzyMjVOfD5f24uMFLmi+e0w4bez/r4ppHyIvVdGPt9GsOCYx8Z0L7MyMsas9 h5iK5a7ET4UokYtIwrTgAxyYI32sy0HqQu0TesUKl/TUiEbIGAR8yGKn9ZKSQOVKkNkH WmUiV/NZqJtx1qztXnXfkYV6gTg83bZWoM02utmZY/xEm4zej8YWGHOBoay6Mvleq9zP vVRQ/fKbaOc/lu9rDeNte9ER8Ztyh9qSM3otcxOgKGQGtHgbxS0Qnn1eBnuMV8uNeKkL LW3iTuwoudLJv40fqulDCZMqX3NKMwelnGVcToPiHsNksU8v5Y9vhE1QYV98/QL5n+qK T+Ig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301344; x=1779906144; 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; bh=RuUYRHuovVEbvZDKoFulOJ76CJMsJZBODEhgWcUkabI=; b=tDG3FKE8mCCIc82atE2iAy3HNw8FOQc2VO9omKPnYTvXEuA/PH7hq1cydkfA8yYoYp +Pg9NnpQpFYpHX6Snz/cxgojiJVHl8TzR9FE5ZTOcTEiKx6Dxb+eivgUhIK0osnyVssi F8LNeLCtWM9EQINxEmiKB8hE9VHed7ga2keHMVW6y0rN0UjURhQx5VWdeXLvePwwErcR AhPnQreZ0xl5p8+tlm4t03puzwhAb9vF3Kh6x0WgKLxGY5JRx1aP15OSKcqlgycDPjaA tovv9q5USMqskDoN8osLchR/uaTfj1U/tJzULIq7oDgWRFonwmJrYAm/G9BerRFRhhZf QtDg== X-Gm-Message-State: AOJu0YwR1CKR1YAY2bg93mYyQlDHXoUAW13Wi/F/2XGNbv6PxRhM37aY /nVX10smGZeKXdMcDPvUmt1HBZ8EalV4dBYV53uC3LmPM7IygFIII0geO3y4mQQlDVV2Uavo9ee 0Sh9CGh0= X-Gm-Gg: Acq92OGxaBxExIzEB1cd2KXuOJNtmbW1fqmQ45ryT98N8ZGp1g6a5W00dzpeJ+lfNHf MbzBnrGpIWQski29ApUAb8XmKadVbNVkGN/ITZulKz887ZpdRGT3lquDStmMAPh8XsbN20BLGhF 8ui0xUimMKVMjXr9lYnEVUZYq4vSmGNoKOu4r1i7O2UhktihwfT/mN/4XtIByV5PXBxXkKjsJF1 tVWg4RwIAg8NqtGzQrcVz0038S2tt0WFAT3f1HFkpsUVT1oxIfxvCEI3mj3EoomLFu/5hUJBFQk r5kLKGfdR5IARP4Tsj8KNrUrSP3dLRwCk8MQuqdsn/SpWnqM9qBggImkQjQp9o0jjoCdCeMDYTd iwsnUB7TNwNCj2cGVipXv0pkPeSmiKogpF/LlHF9Sl5AdXX65Z21jVnVqH5mJw6O89YNDFLgZ1N H2J2rp7fMXMJBb+SGFCACc/jNHWzEGTgYZ0YY5fug= X-Received: by 2002:a17:90b:2549:b0:368:ac5f:d31b with SMTP id 98e67ed59e1d1-36951b8708amr23103839a91.24.1779301343626; Wed, 20 May 2026 11:22:23 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 13/64] target/arm: Trap direct acceses to FPMR Date: Wed, 20 May 2026 11:21:22 -0700 Message-ID: <20260520182213.872945-14-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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::1033; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1033.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: 1779301422665158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/tcg/translate-a64.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index b013dd51cb..d2a4b0fadc 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -2899,6 +2899,10 @@ static void handle_sys(DisasContext *s, bool isread, } =20 if (!skip_fp_access_checks) { + if ((ri->type & ARM_CP_FPMR) && s->fpmr_el !=3D 0) { + gen_exception_insn_el(s, 0, EXCP_UDEF, syndrome, s->fpmr_el); + return; + } if ((ri->type & ARM_CP_FPU) && !fp_access_check_only(s)) { return; } else if ((ri->type & ARM_CP_SVE) && !sve_access_check(s)) { --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301549; cv=none; d=zohomail.com; s=zohoarc; b=YgLy2I/xBNtudyT76p2qTJ/NJlbJjRZ5i7K3q5ncuzXqqj8RLFsU8kIU6ElauXQmxm9JmnPnnz8Og2rNrHPrh+IL2EUx2gavltUh+EuAXmxGnclfhPQt2yVFGwhbi4RGbykpsFV07osaRtwm3Ak2TYgoRyIP1vc19j4JUopb74M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301549; 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=ZVsvcQjrwAu/Fw5QeICNMsfPv4wnEzD0NNefmVwM0W0=; b=fsEKTrx00Y2LvQaOd4/sLKvF6zqBZu03vr+woMo71J8awJVE6T+yFpItfT79FhpW+Rf3UUUYrqAffF1vHBABs4l+TuWCW+VUlyHTKmwJcj5efwHkoljeTKas4c2H3cP8FfWPGO5HbFUVCxtYbPznMryn05pDBHZ0Ff21YqIXEVs= 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 1779301549418926.9155713022773; Wed, 20 May 2026 11:25:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlZG-0007e5-Iz; Wed, 20 May 2026 14:22:54 -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 1wPlYs-000797-1L for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:31 -0400 Received: from mail-pj1-x1036.google.com ([2607:f8b0:4864:20::1036]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlYo-0000X1-DD for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:29 -0400 Received: by mail-pj1-x1036.google.com with SMTP id 98e67ed59e1d1-3665b67ed66so3393003a91.1 for ; Wed, 20 May 2026 11:22:25 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301344; x=1779906144; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ZVsvcQjrwAu/Fw5QeICNMsfPv4wnEzD0NNefmVwM0W0=; b=MC1Oyccwl5dqZKiVp/qQTHMqSwsjKuJ/K6qwxxiizr4o7PNC+2KroEMOa9yT+GSITH pSHCVbi9aGgOTNBMAsopTS1MQYBrGXcmlYVbe7SSeCsKfv78ERyF7E0ycldQER6cNJJB 4ME2FU7bwRfyp9SOKCB5jzA3IF25+jPuogQxe0oiRnyekyoaQWOzPJA6UlGIGx7bch7e gwxP5Jy9l0YrJcKZMduVtfYa3yh7duWbOS+u/RQVpARoskfH1VYmzYtLeZq6n3yet/au EAJTgAAF5MDa6sbrACj20mDhPcatiBrFZc9uCzJpWQWKUI5EypzecpbPQ6O8WdcFM43a ot8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301344; x=1779906144; 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; bh=ZVsvcQjrwAu/Fw5QeICNMsfPv4wnEzD0NNefmVwM0W0=; b=tRO04DTSatmyr6TygDDWO3ShZDmtoQUW62wAewbnliGezIEdZ4h/Exble4On0yTAFj JqVXxGnsuuue/xZ27KS/Arxk85e8myqJIgmDuiVhR5aStq7kFLxCWEGEhIqWTAYFvUgY d/AM07gdxoICQVbPfA0BN3nV1dOuydTv6zFSzLL8IGHc2Mk8Ys7i6/4hX0elJ47HF129 ShLr1lA3pi3cjAy2nvxBb56nrDFGnpc6wfYH79WJlE8wpMenutHVEpvnLbcgtN26vg/m D3uCOLe9/ioGFBmmO+6RPapS72SVd1Np4t3xiHcA+S8YMaCdwc88S3/FgDcLj97wgbUf 2aWw== X-Gm-Message-State: AOJu0Yx3DL2luzRkLA6Ja0DZoShnGuGv6kqOpT70bVewzzQcdhzPuaAm QDC1cN0WWfUGYJNyI+4ALCXpXjO/1sLQOS2aY69vpYwdOoA9fsSlzkpr2ri0YdPFMwRJGFyedy6 ZPnrMg3I= X-Gm-Gg: Acq92OFtHNL3Zb2YFHxlgagyFMsdHWx+/M24QnAGXzBqxqoroF6hTkh/mZq3u9eFNuc hYRSbDr5nec3Iq3B8flec78Vg+hb0GFSrIPdwchV84j/3x8X83iERl2LagWn/FpyA0i5FBaiC/k gJseWu0ZCeTlqpJbjwcUSj8PSoWpFgQXVCKkXlvxMJJLylfMOZKyhnG6hoZv8vrBoLpLqIbrcX3 9PTBb6giEhtw3lgu9U7CdSYT9IrL/0grZ/p68PxdJC8h5qocuseR6R8lpoP2zhchNqDz87a5SAI wUSC4LIQv7WJzPbe4BMqkIm8AHfepWqCgf7v8FTi/kz7WAqKvLZAgEqHYW3EcmvFoMTd5YuNHWK p8vpkYCF+hbc8qcfViQNYoI3BP+YbaloNBaj27upyB6hsuQ13Nhp4270KIT2S3nm7uS1QHzCTqD q07kEdpAEVDJmBMK3mwTf6LKnIqa6x X-Received: by 2002:a17:90a:1c89:b0:369:932a:2b8a with SMTP id 98e67ed59e1d1-369932a2ffemr11573283a91.1.1779301344203; Wed, 20 May 2026 11:22:24 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Pierrick Bouvier Subject: [PATCH v6 14/64] tests/functional/aarch64/rme: update images to support FEAT_FP8 Date: Wed, 20 May 2026 11:21:23 -0700 Message-ID: <20260520182213.872945-15-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1036; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1036.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=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: 1779301551785154100 Content-Type: text/plain; charset="utf-8" From: Pierrick Bouvier As well, use -smp 1 since there is no visible speedup running with -smp 2. Signed-off-by: Pierrick Bouvier Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- tests/functional/aarch64/test_rme_sbsaref.py | 7 ++++--- tests/functional/aarch64/test_rme_virt.py | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/tests/functional/aarch64/test_rme_sbsaref.py b/tests/functiona= l/aarch64/test_rme_sbsaref.py index efea80c578..d252101ac6 100755 --- a/tests/functional/aarch64/test_rme_sbsaref.py +++ b/tests/functional/aarch64/test_rme_sbsaref.py @@ -20,12 +20,13 @@ class Aarch64RMESbsaRefMachine(QemuSystemTest): =20 # Stack is inspired from: # https://linaro.atlassian.net/wiki/spaces/QEMU/pages/29051027459/ + # Built from: # https://github.com/p-b-o/qemu-linux-stack/tree/rme_sbsa_release # ./build.sh && ./archive_artifacts.sh out.tar.xz ASSET_RME_STACK_SBSA =3D Asset( ('https://github.com/p-b-o/qemu-linux-stack/' - 'releases/download/build/rme_sbsa_release-6a2dfc5.tar.xz'), - '5adba482aa069912292a8da746c6b21268224d9d81c97fe7c0bed690579ebdcb= ') + 'releases/download/build/rme_sbsa_release-74b7fab.tar.xz'), + '82a754bacea04e709cb1cf2759d1d12d09fabd612e014961eb32368723c7920a= ') =20 # This tests the FEAT_RME cpu implementation, by booting a VM supporti= ng it, # and launching a nested VM using it. @@ -57,7 +58,7 @@ def test_aarch64_rme_sbsaref(self): ' --params "root=3D/dev/vda rw init=3D/init"') =20 self.vm.add_args('-cpu', 'max,x-rme=3Don') - self.vm.add_args('-smp', '2') + self.vm.add_args('-smp', '1') self.vm.add_args('-m', '2G') self.vm.add_args('-M', 'sbsa-ref') self.vm.add_args('-drive', f'file=3D{pflash0},format=3Draw,if=3Dpf= lash') diff --git a/tests/functional/aarch64/test_rme_virt.py b/tests/functional/a= arch64/test_rme_virt.py index dcb18678bf..2afcdc6b07 100755 --- a/tests/functional/aarch64/test_rme_virt.py +++ b/tests/functional/aarch64/test_rme_virt.py @@ -19,12 +19,13 @@ class Aarch64RMEVirtMachine(QemuSystemTest): =20 # Stack is inspired from: # https://linaro.atlassian.net/wiki/spaces/QEMU/pages/29051027459/ + # Built from: # https://github.com/p-b-o/qemu-linux-stack/tree/rme_release # ./build.sh && ./archive_artifacts.sh out.tar.xz ASSET_RME_STACK_VIRT =3D Asset( ('https://github.com/p-b-o/qemu-linux-stack/' - 'releases/download/build/rme_release-56bc99e.tar.xz'), - '0e3dc6b8a4b828dbae09c951a40dcb710eded084b32432b50c69cf4173ffa4be= ') + 'releases/download/build/rme_release-2701e89.tar.xz'), + '8c40af440f5bd1518f7add7d0a43b39289865ee48430979db8024cb897a74790= ') =20 # This tests the FEAT_RME cpu implementation, by booting a VM supporti= ng it, # and launching a nested VM using it. @@ -44,7 +45,7 @@ def test_aarch64_rme_virt(self): rootfs =3D join(rme_stack, 'out', 'host.ext4') =20 self.vm.add_args('-cpu', 'max,x-rme=3Don') - self.vm.add_args('-smp', '2') + self.vm.add_args('-smp', '1') self.vm.add_args('-m', '2G') self.vm.add_args('-M', 'virt,acpi=3Doff,' 'virtualization=3Don,' --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301391; cv=none; d=zohomail.com; s=zohoarc; b=Ttb/twpi/MkxblD/aV2t+Qi2I3mox9Nv0s56O/eyQYjp+G7dNKzJrBJnP5vyw6mXNg/XissKwHFAGnVZizRofr2nMnmXkJkpsEoa7o0zQY9RdDy+1zAHrZBOW+zZoC7Aa9BEdKD0SllrPi/TiIOnWlkE15X/bPYm81kzdJdUFxw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301391; 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=mTDmKEyCFm+XxdlQgOIFxPuknFZ6MtDmqSm/llBSgKc=; b=UFGmoY9uOn4jw3F3gNnXFk34JyZLIbrhP6tEEobi1KgMUa3V/A1oHlNhdVxbUl0pOH8+EDssaKia8ywzn0T3gi6t2ml+pIE6g0fsQr9E72NZNN0fV8iKANfYx88dTlIDneaAQvcOi6NecUaRfZPYDD4x5vxqL2JmmGGrw/XuqU8= 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 1779301391176636.5245850837082; Wed, 20 May 2026 11:23:11 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlZB-0007Ph-Tq; Wed, 20 May 2026 14:22:50 -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 1wPlYs-000798-6F for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:31 -0400 Received: from mail-pj1-x1030.google.com ([2607:f8b0:4864:20::1030]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlYo-0000XL-Tr for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:29 -0400 Received: by mail-pj1-x1030.google.com with SMTP id 98e67ed59e1d1-3664df30f53so3098544a91.1 for ; Wed, 20 May 2026 11:22:26 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301345; x=1779906145; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=mTDmKEyCFm+XxdlQgOIFxPuknFZ6MtDmqSm/llBSgKc=; b=yAVv0ChpuPxqN93A4jgVAXeAE4EEebZhyaroV9WyljEpMW5esCrrchF35A2vVFDlYD sBNyHE/n+WpXiPtfJYQMuByzeru7tW4nZw4iCEWYDvkPotb7wCYnYvdUSbzL3/pa0NPF AAPYSACF3+PqE4Zd03ufg/UAPm0uaYpGoHUPIMKlzlKmRuGLM28coTOQraxfAplPl5Lc DqmbSs9W+Tu5Wt7kQjtdSATzzzQDB33Yx7YO+9ydRH6My1I+UHzM9e3auOpzlJPs8Rxz vyqy/8KOZa63tUGgBJFvok0hP24qJBX4VrGAF9/LbH7mn7/v+JubRltkROUc0q2+DfT6 g3/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301345; x=1779906145; 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; bh=mTDmKEyCFm+XxdlQgOIFxPuknFZ6MtDmqSm/llBSgKc=; b=OBBX4EgRn7kotei/BJ61+bbxG9ZmfQl9c4BSQgUJ553WX587W2+5kJM3Z8hYsVAIaD kENtgFD+Nw18KTK3DgPTMuNNRISKQ7U5jMsdYU8ZqZP/OQjf8XQDRtgPbWVOSiNo9WTw 5gfN/AqlTuQ6K2v1zrO5mKdi19r1cWlf6x0GmffztV40sGV/NznXuEEEcczUyBnp0BUI FidHRtX1MC5I2Ggn07viFIczru4L6GXyTYtlp30JpGrtM9mXpMNwlX58xHTMI+iIqWmb idmcOWZ7SlIreo/V6Kcs6kw5p4NhBVd0qmAmZYRF4iZn1O6vszwY1F/wLwW76/tRdpjk 1c4g== X-Gm-Message-State: AOJu0YziDw46C5rE2COaROy1LxZD2JasksfJ/lDPB5EJm3g69CZX8h/9 2egWW25CPgKaW85tFCzx2fNPcT2Z65o4PckDY8RGgKaR7ElKc81N8BkyKHQRnuwXM2y8dRvflEP ez0v1Tpg= X-Gm-Gg: Acq92OEnSQiqRPpjMy7nfU+b/Yda8gWlW/hYt7wn5L1w3EQMzI4Xt/hHdg8P35wC2R3 d9T/MM6IOpZa9+v6RyJA23Fnjo+7xZ7qHt5ktSOqpU48eqm/XaGi7OmMWUkQuuZxbkHFDmQ7gZG 7XGGyKniiRtSEfSFFxm4YX8A8geJdgQIYQaFY67ghod/RhvbGMzTntAHEvY4Ja7qSvFUDNECYGq 2228iCs8qQZ+VHz3vXTlfdbx5kxfd5AFOzcSvUx+D+lkRmfUSElfWtoX9PKn5DsRiT/EJbrcwKl /725ddMJuuYQew86M54WZQk+xeJTmxf1BJRZdG1QM1ycdmqkuEeyhoENIRMSy+048UPUko9C3/0 9vuOlzz3RiwZSziSl5mUQ6+kJoLYyJRbB4KMwQwhwX1glljO2nsMCCFaNDK5em6meZTxf+g6P+R 53GdTa7yjxb9FFp8JUC70+dwJBC/vK X-Received: by 2002:a17:90b:5483:b0:368:b692:eb9f with SMTP id 98e67ed59e1d1-36951b8e50fmr25043320a91.19.1779301344973; Wed, 20 May 2026 11:22:24 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 15/64] target/arm: Dump FPMR when present Date: Wed, 20 May 2026 11:21:24 -0700 Message-ID: <20260520182213.872945-16-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1030; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1030.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1779301392195158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/cpu.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/target/arm/cpu.c b/target/arm/cpu.c index c47b70ac69..868ba1bccd 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -969,8 +969,12 @@ static void aarch64_cpu_dump_state(CPUState *cs, FILE = *f, int flags) qemu_fprintf(f, " FPU disabled\n"); return; } - qemu_fprintf(f, " FPCR=3D%08x FPSR=3D%08x\n", + qemu_fprintf(f, " FPCR=3D%08x FPSR=3D%08x", vfp_get_fpcr(env), vfp_get_fpsr(env)); + if (cpu_isar_feature(aa64_fpmr, cpu)) { + qemu_fprintf(f, " FPMR=3D0x%" PRIx64, env->vfp.fpmr); + } + qemu_fprintf(f, "\n"); =20 if (cpu_isar_feature(aa64_sme, cpu) && FIELD_EX64(env->svcr, SVCR, SM)= ) { sve =3D sme_exception_el(env, el) =3D=3D 0; --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301656; cv=none; d=zohomail.com; s=zohoarc; b=FMccWWlq8IvjXc4lEbVSiL+dBQ7zgCfArCCN/w6d9zJBykVwy99CKQz0nAZl8Gao++Y1jK9oHUGP92Hqew06f1FmhWW+6HCl1zN3OeEEwU/iCvlgpVCfHsOno6BbmoLvM4VjBLvSAA3SPq13tX7OFPQWT7sSTPMWveA7iDDHwtg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301656; 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=XfEjDJlVu7LsFiNptc3UAEkKV/ApJAH3Ld019vvaP5k=; b=P2ku9Pk4rv7+jRHiSBiWWVs3/Sz/JiiTkYJHbB+GDzsuBCAlmaAhcAEVF6i/XoU6EuBlYrnMSy/BEY2YYqRkeNsnn4/3uXd8/cg7rj0BjU1Blf9UMrMmpA7E82WSJLmneX2SGAcz3h4bbREzZA0ym9MTMLyF2d9zAs7T9LyTDXc= 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 1779301656099753.840913834112; Wed, 20 May 2026 11:27:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlZN-0007wY-U4; Wed, 20 May 2026 14:23:02 -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 1wPlYu-00079O-5M for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:35 -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 1wPlYq-0000Xb-MX for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:31 -0400 Received: by mail-pg1-x52e.google.com with SMTP id 41be03b00d2f7-c80170db7d6so2316763a12.0 for ; Wed, 20 May 2026 11:22:26 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301346; x=1779906146; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=XfEjDJlVu7LsFiNptc3UAEkKV/ApJAH3Ld019vvaP5k=; b=ApTEXpUIFJH35Tj5/4p6Vnz9+z197xnpjvnaMhpEKhBAKqUkci219kDyMZar+E8Kpw L2wXxoL+D0+BWX/sWMBGaE0XjFIlHngqgWIu4MQsJkc4PS5RvoIpyO8gYnbwJQ24Ed0P E+C4VtP7MsrTd9UTTMWaR4osAUB3H9EdJ7Jw4+u1d3EvGW6zmSlQD3j75PvNIOib1aLN 1gVN3DJ0HCSSnFBUFyBdGtY3w4gdPOkmpmI+CoY+xKwdgLAyW5mvepYxgjprEvrDNat0 kh3LV4XpVLHlgUJwl7cojrL1AYmzow63pyKOGMp/bvJUmAWZFfzqZQGiDpPGJLshPVgd Mv2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301346; x=1779906146; 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; bh=XfEjDJlVu7LsFiNptc3UAEkKV/ApJAH3Ld019vvaP5k=; b=Foe4+OlA5kbND+635jbUTQPX7bjMpul7/TQlze0p9t/yAV/BN1BNOvqsqmtacT2xPO /W4OryGfZtEWaJpYRwiZ6VN6KfH+v1G67MS58/CDVZpDoMrlNe8kuR5zv6zpx736dE5j kzkjyjWV+GWZmCZmnPRoKEa187ZZAqzhVTTArIw5lm/0q0hblXDIh8ATeEaFssdh4Grd nCmYIdDryQAA7MngQpn0rTQt9cKMAREA054KIcIGAlrFHUTIBJr2xyo5fuiBSAaCGGLo WmzDRs9CE1+ZElgRXqXdOiiH1xEWh8T+gsTN5UeqF36Qz4NlnOEbR5kn/76MDzNHbs48 DGaA== X-Gm-Message-State: AOJu0YwZiIP3DGcUIXWSIwwV5VOuaXib4hU+SGoM/NRP58Hr1eLChLt/ 0K8K4DKCYLYEgRcYQ5tQpHJD9sFQdGsAqoGCxt+rFZNXuSQIhZIy6jAcO8Mq1oGonR2o5V4/JQF yBkLLnX4= X-Gm-Gg: Acq92OGXp+E4iQamHcaPsXdsbu/TQ/Vk79O1VZEyr23k8H9x0Jp4LJVZ5ZinshAq8gC qYVHvXg36PVNvjGnSLEneQ3vbgC3rwZySU2kwK2/2ik9I/tKAwpjTL/7JqiZ63YGSKZVS04QcoN YeD+slurfLrC2k3pg/I8C5GZEDLS+FfHIItOfPk6bRTToiFf/+tYHuS4ls5ACMXpxU9tRKXbvyo RV326iBxCbIsi3pOoqRVhhxSDxPf20Cw4Oo5OIkTy+oZ+fbp7DBfpGTWnSEUeivjR1bH4HNOruc dETkEVwdnp0PHseQ88S9/S8TdkgElquKMn9xs1Cncylh70RNYbmgEjGRgA1deoxy245QHiqWk4s c6UrfV0wQsbZ8tnenmakVIWN2ryFJJyDzYjYYZkBfbZpv329MlGx3lUMShbVZBkY3nVpBHQMnEx t2QTNg+Zf+FadVy/4uCFjgRi/fH9ma X-Received: by 2002:a17:90b:4d0e:b0:368:6a6e:94dd with SMTP id 98e67ed59e1d1-36951ca31d6mr24740997a91.24.1779301345609; Wed, 20 May 2026 11:22:25 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 16/64] target/arm: Enable FEAT_FPMR for -cpu max Date: Wed, 20 May 2026 11:21:25 -0700 Message-ID: <20260520182213.872945-17-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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: 1779301657730154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/tcg/cpu64.c | 4 ++++ docs/system/arm/emulation.rst | 1 + 2 files changed, 5 insertions(+) diff --git a/target/arm/tcg/cpu64.c b/target/arm/tcg/cpu64.c index ff0c2b1c47..a377f67b9c 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -1297,6 +1297,10 @@ void aarch64_max_tcg_initfn(Object *obj) t =3D FIELD_DP64(t, ID_AA64PFR1, GCS, 1); /* FEAT_GCS */ SET_IDREG(isar, ID_AA64PFR1, t); =20 + t =3D GET_IDREG(isar, ID_AA64PFR2); + t =3D FIELD_DP64(t, ID_AA64PFR2, FPMR, 1); /* FEAT_FPMR */ + SET_IDREG(isar, ID_AA64PFR2, t); + t =3D GET_IDREG(isar, ID_AA64MMFR0); t =3D FIELD_DP64(t, ID_AA64MMFR0, PARANGE, 6); /* FEAT_LPA: 52 bits */ t =3D FIELD_DP64(t, ID_AA64MMFR0, TGRAN16, 1); /* 16k pages supporte= d */ diff --git a/docs/system/arm/emulation.rst b/docs/system/arm/emulation.rst index da5f7efce2..44c7196d09 100644 --- a/docs/system/arm/emulation.rst +++ b/docs/system/arm/emulation.rst @@ -77,6 +77,7 @@ the following architecture extensions: - FEAT_FPAC (Faulting on AUT* instructions) - FEAT_FPACCOMBINE (Faulting on combined pointer authentication instructio= ns) - FEAT_FPACC_SPEC (Speculative behavior of combined pointer authentication= instructions) +- FEAT_FPMR (Floating-point mode register) - FEAT_FRINTTS (Floating-point to integer instructions) - FEAT_FlagM (Flag manipulation instructions v2) - FEAT_FlagM2 (Enhancements to flag manipulation instructions) --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779302084; cv=none; d=zohomail.com; s=zohoarc; b=GWooWkKUGui5KLljRy/oATQPGdhMXZlKW72y5owxfFxKLKLhqOPaaiJmEct1JIXxxIOeINe9s13wFZUou7y7SSMmcPktTgo0xrzBWEzU3LlcJee0f5OXVzNnKQkZcUsgFZYBq+I/zYiMGlIpVE5Tq1Keu+hQJc2PfJ3XkX4K5vU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779302084; 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=mGCvxGAP+SJVq2oNHJQ8ObdWRbCOzKV7LFFW7Nyer9U=; b=iFbQve9uaeMGRLDwuTASdv9Y4uewzhfaScsGTRa2rHF3KcAcHpCtfnRqM9Yy2sZghck0Wl/J2A/u6o0tcnKhUxu2RQGFtGqpa2YPz+MYp0bCZffKurUJTS54XzSP6FIK48+BjmjqqW232DU/cUfHiBq6vqXAggoQJjC8yvQrlxk= 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 177930208416079.10552788007521; Wed, 20 May 2026 11:34:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlZH-0007gM-JA; Wed, 20 May 2026 14:22: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 1wPlYu-00079N-4V for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:35 -0400 Received: from mail-pj1-x1036.google.com ([2607:f8b0:4864:20::1036]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlYq-0000Xr-W6 for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:31 -0400 Received: by mail-pj1-x1036.google.com with SMTP id 98e67ed59e1d1-3665a90bcd3so5462546a91.1 for ; Wed, 20 May 2026 11:22:27 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301346; x=1779906146; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=mGCvxGAP+SJVq2oNHJQ8ObdWRbCOzKV7LFFW7Nyer9U=; b=PULPF/nNpJT6iiDlMT4C53LINmTlhrWyPY9ZnmsTKESmHhYD9GVVdeKsje2j4PiM1p hXD4LCWEDLE6IcWBYMq3ErbFZzRuA0fPfPGrnhvb3Ovm2foR70GY+s+wQo7beDWxWBTa wjfc5WAzT1Xcx7LQ3syiKjcjAl4Px9o3yJmfy13nwAqcFpGH1XjhQM6EwXR1riQapcC8 RKV/CCqPc6KSw5/1yLF6J/6Nu/0UeKa/nIjuv0Kse9IVRCliEqD1SgQ1U69nxnMrIXj/ i4k367OrDrlYm8sR2GCK2d3Oyc2p1bBrUBhf7tyscsPuKaughQRr/u4oW0KKeO7GlF/r EFtA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301346; x=1779906146; 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; bh=mGCvxGAP+SJVq2oNHJQ8ObdWRbCOzKV7LFFW7Nyer9U=; b=mE9H7FHhk3eL6HJU3ZHnRZ484zt8XIcpbXGWidpAeXiFwVxTuagkKZ+kL/VrwOhCIw gTjDTr+aup1dWoLg1tuDlPiFhkdnh2qTzcMCy4QZPoWr5vHwKcDRg74WHKBLTYNCCmpb Ym7c4MOJbySHRmVwWwuvulTYxT7l/stV3vEtPQuKpi9nT6HjS6dMgD/xd/Soe4OOQHgG u2u6aE+sJHvnWa5dZh+Lh6v2RyExRJuIDklePAf/Is0vGNHOsVshrWQbt6YgdtGGqtMF H7IRtqAAKqcQSBfLCFWXtv3RTE08mXszjUHZBHXOgT+o2MLV6GFUjEwqMjo4e+MLComn a9oQ== X-Gm-Message-State: AOJu0YyTqPsMqn8lA9H+KyUwr2selOOcwiwmJgcfB6BoG1+olcZhH6tY 0Y/n5MUoN8vmWbPNOzBE/UWeKoiE5x/choIuj8IIpZPDyFr8pbTELs1DV53ut2QPWp/S+k+b3a/ nIlq9vRE= X-Gm-Gg: Acq92OGrjjNjTq/QVSn48S7ylVe9bmyE/5wOzpiKqwAjzYExu7wMateh0IMu25cJJEf BWUpdhXsqeQ50cKwzRFEITdnLznUOwfTb84UKZGwt5vcDsGt03zHx2GD1uQlSrMihhysQyddLPR EkYj2p9NVfv2048xkfn6RlOqerZAnWBwT15tc37iZ9Z0IWd82pEq3HhwPyH5C2WPdDZ9rQ44xiL BLGiKIOvQ8Z/V5X2Xl8w5uDQeDeCGQF+oTFoPQUP5bNzd7k6Qey++KRofVs/eBZD/nc5ajFMWbq WBPRgMDZqz2hC8MkfuRs6yA3kBbAlPmD9278NdtC3855DecJnyS8NzVymwc0ZGYrTVVVBNRcZ7U s32cpOBtabBpIj9gp+IcsEF4D3BKqMJk2HWFOzpwjmo2CiNwBm3ylB1gd3AuR1QtEd3I+RX8Ql8 IxqqlVR6meT3hfBRsVBI7xSQZ4QoC0 X-Received: by 2002:a17:90b:4b8f:b0:367:c442:3f20 with SMTP id 98e67ed59e1d1-36951b90f8dmr22493072a91.19.1779301346197; Wed, 20 May 2026 11:22:26 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 17/64] target/arm: Implement ID_AA64FPFR0 Date: Wed, 20 May 2026 11:21:26 -0700 Message-ID: <20260520182213.872945-18-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1036; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1036.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1779302084598158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/cpu-features.h | 9 +++++++++ target/arm/helper.c | 13 +++++++++++-- target/arm/cpu-sysregs.h.inc | 1 + 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index e13c1c1331..1bb77d78da 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -410,6 +410,15 @@ FIELD(ID_AA64SMFR0, I16I64, 52, 4) FIELD(ID_AA64SMFR0, SMEVER, 56, 4) FIELD(ID_AA64SMFR0, FA64, 63, 1) =20 +FIELD(ID_AA64FPFR0, F8E5M2, 0, 1) +FIELD(ID_AA64FPFR0, F8E4M3, 1, 1) +FIELD(ID_AA64FPFR0, F8MM4, 26, 1) +FIELD(ID_AA64FPFR0, F8MM8, 27, 1) +FIELD(ID_AA64FPFR0, F8DP2, 28, 1) +FIELD(ID_AA64FPFR0, F8DP4, 29, 1) +FIELD(ID_AA64FPFR0, F8FMA, 30, 1) +FIELD(ID_AA64FPFR0, F8CVT, 31, 1) + FIELD(ID_DFR0, COPDBG, 0, 4) FIELD(ID_DFR0, COPSDBG, 4, 4) FIELD(ID_DFR0, MMAPDBG, 8, 4) diff --git a/target/arm/helper.c b/target/arm/helper.c index 3d6e7f1ccc..34487eeaa3 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -6477,11 +6477,11 @@ void register_cp_regs_for_features(ARMCPU *cpu) .access =3D PL1_R, .type =3D ARM_CP_CONST, .accessfn =3D access_tid3, .resetvalue =3D 0 }, - { .name =3D "ID_AA64PFR7_EL1_RESERVED", .state =3D ARM_CP_STAT= E_AA64, + { .name =3D "ID_AA64FPFR0_EL1", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 3, .opc1 =3D 0, .crn =3D 0, .crm =3D 4, .opc2 =3D = 7, .access =3D PL1_R, .type =3D ARM_CP_CONST, .accessfn =3D access_tid3, - .resetvalue =3D 0 }, + .resetvalue =3D GET_IDREG(isar, ID_AA64FPFR0) }, { .name =3D "ID_AA64DFR0_EL1", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 3, .opc1 =3D 0, .crn =3D 0, .crm =3D 5, .opc2 =3D = 0, .access =3D PL1_R, .type =3D ARM_CP_CONST, @@ -6712,6 +6712,15 @@ void register_cp_regs_for_features(ARMCPU *cpu) R_ID_AA64SMFR0_I16I64_MASK | R_ID_AA64SMFR0_SMEVER_MASK | R_ID_AA64SMFR0_FA64_MASK }, + { .name =3D "ID_AA64FPFR0_EL1", + .exported_bits =3D R_ID_AA64FPFR0_F8E5M2_MASK | + R_ID_AA64FPFR0_F8E4M3_MASK | + R_ID_AA64FPFR0_F8MM4_MASK | + R_ID_AA64FPFR0_F8MM8_MASK | + R_ID_AA64FPFR0_F8DP2_MASK | + R_ID_AA64FPFR0_F8DP4_MASK | + R_ID_AA64FPFR0_F8FMA_MASK | + R_ID_AA64FPFR0_F8CVT_MASK }, { .name =3D "ID_AA64MMFR0_EL1", .exported_bits =3D R_ID_AA64MMFR0_ECV_MASK, .fixed_bits =3D (0xfu << R_ID_AA64MMFR0_TGRAN64_SHIFT) | diff --git a/target/arm/cpu-sysregs.h.inc b/target/arm/cpu-sysregs.h.inc index b99579f773..6e8b335b8f 100644 --- a/target/arm/cpu-sysregs.h.inc +++ b/target/arm/cpu-sysregs.h.inc @@ -3,6 +3,7 @@ DEF(ID_AA64PFR0_EL1, 3, 0, 0, 4, 0) DEF(ID_AA64PFR1_EL1, 3, 0, 0, 4, 1) DEF(ID_AA64PFR2_EL1, 3, 0, 0, 4, 2) DEF(ID_AA64SMFR0_EL1, 3, 0, 0, 4, 5) +DEF(ID_AA64FPFR0_EL1, 3, 0, 0, 4, 7) DEF(ID_AA64DFR0_EL1, 3, 0, 0, 5, 0) DEF(ID_AA64DFR1_EL1, 3, 0, 0, 5, 1) DEF(ID_AA64AFR0_EL1, 3, 0, 0, 5, 4) --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301725; cv=none; d=zohomail.com; s=zohoarc; b=TqUT2cMBnY3IKxO/cu180D/boz59gzv6unPqLxtwzB1UEg7JNi3wxBMQz8Ah7QqkilPPUfM6tnCcpKiZvzkAcfH/8A59eGuvzFY2/FJOTyKNAkxHKcuwcejNOuyd+UvHUy5tZ2ucV1LuqdmkVxYHEDcxaoSGt3LeMLT9ZOfrCQ8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301725; 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=Wl6+4I26v8HYA+JJlHEMinIiz3qcncuhnbxRtIcqZ1g=; b=TDmg65ZH4HgAxg1fHD+67eLYfI8Z4i+I5kzIxvheITeZRvi+n0RLy8rKkM1OBiRebycOIxtPIeBEBRQpYYtzwWMPZTwEjvirobw3N0ZM6YSGUANxjz2ygJMhse35Fh049+DmNF2b/krCImq9eEkB77x0Gp+L7J1CpAC7bmmHpFs= 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 1779301725891477.6380505428899; Wed, 20 May 2026 11:28:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlZJ-0007kW-Od; Wed, 20 May 2026 14:22: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 1wPlYw-00079X-2C for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:35 -0400 Received: from mail-pj1-x1032.google.com ([2607:f8b0:4864:20::1032]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlYr-0000Y8-Cu for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:32 -0400 Received: by mail-pj1-x1032.google.com with SMTP id 98e67ed59e1d1-365cae89bf5so2203682a91.3 for ; Wed, 20 May 2026 11:22:28 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301347; x=1779906147; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Wl6+4I26v8HYA+JJlHEMinIiz3qcncuhnbxRtIcqZ1g=; b=W1uZUOFJFROZ46IbwGuWrQh39Qw/0/jmjhRpokmH1qVe/rlceXGmf87JMWBqmanj1u Fep3q4coJAhtNrDGmx8790GdCHNzraqjZ1x6+CedJYiEB0HxpH16tX/no7CTIhiaRrc3 /zWcF5084lwgIPiilDo0frl7kBN3p/Nyuvq52ocKHlMNA+yt6br20G1nhnY/uJG83ERV JX0cif4vKZ9/SKqy6F0RPWWi8uB2mIF7HN9Q1j5O89j1XTYxiCs5OO/uzl99CcV7+y06 oUzYpCcWjTCdpux2NzBHKVxFqo9USKYqebkMhSO11zuMf4KCcCCVlbQP24LFIiXqSLXf hw/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301347; x=1779906147; 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; bh=Wl6+4I26v8HYA+JJlHEMinIiz3qcncuhnbxRtIcqZ1g=; b=lIOTeW4qaYJ+wzZG8YpTxorhI2ahLVIFYWoCan4jwKWn88OOabnK8vl3xVYsVJsKDD OSol/tUiKPHEe0u4+fW1jtvnWwKz2z/2nvS3LatewH5WwneGvQh9IxMT6bX14wsk8E4S 90C838d68DgFXjm5V8yXHIN0CrV7hNhWNDXXmS2kYhr6E7troFL9FsYbQYzytzYJf+jz /WChAIhBO7vmpAz85HrsgemFBuEPiqf7Oo6nEQRexynajnUOGlpSrpyUTA5RQqUqyJ2f gaATPR/EplvGTSvMU+I8btAnUbQdIcTCoz9WwRujLuCnfzPLIUoc1vm8V+kfCSwAXL/6 uv8Q== X-Gm-Message-State: AOJu0YxUPI7q+VVOunhT6rwtP7FdxoscRtOtX6NXT5J3JreZawio12iG 6UoTO/Go+MkWzO6XDvHyvolIUZciqB64xs+T9SER8resPvxJ26ScDeJ/E0+Ns1v5mDy4rmgRN5D xn/VsfyA= X-Gm-Gg: Acq92OHIlWHKo0svvbcIKTSBGCXDFG7L4qDJq+nNczH/SSHHB9XN0lzwoGqY1sSVb8l Q8XOUs4/ps+YHIiIIDWt2yWKq4hzsrBSuEBZUir59ACAmbybBsn7rTNwjhCy2uam5O2omrgYGYJ Lm61Wa9zXpK4QPSFZtZkIR/OSxEqOPyK0FpwSRZKF1nmBA7+r2OAtg9WmbItLXycaab/BodzKMa 8BTmL/KLSFmta+oH8Vlpwp3HLHKOEPGp9OJr87ZXyqo+mSuCjedb1uppYLpXkhtFSAfurmdkmhU Sjkhp1Ce0qCHoonSbcdzuSMEIzP+64/2ZBkNx5Bq7v+mGYpEVmvo8lRvk5XYOn8F7K58i2MifdS 4kF7Dn/aiN1GZOnnCHXzNJ+BBh/e1hJc0aWIYMwsUdZMPx0lSukqxIThjVXHWCWI/cNXD4wzHqn g1OeaQ5L0TiKerEuKoCvR3eVeVb0G3 X-Received: by 2002:a17:90b:1d84:b0:368:433:b697 with SMTP id 98e67ed59e1d1-36951ca51ecmr24257243a91.19.1779301346957; Wed, 20 May 2026 11:22:26 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 18/64] target/arm: Add isar_feature_aa64_f8cvt Date: Wed, 20 May 2026 11:21:27 -0700 Message-ID: <20260520182213.872945-19-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1032; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1032.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=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: 1779301726944154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/cpu-features.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 1bb77d78da..1fde3e9231 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1569,6 +1569,11 @@ static inline bool isar_feature_aa64_sme2p1(const AR= MISARegisters *id) return FIELD_EX64_IDREG(id, ID_AA64SMFR0, SMEVER) >=3D 2; } =20 +static inline bool isar_feature_aa64_f8cvt(const ARMISARegisters *id) +{ + return FIELD_EX64_IDREG(id, ID_AA64FPFR0, F8CVT); +} + /* * Combinations of feature tests, for ease of use with TRANS_FEAT. */ --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301685; cv=none; d=zohomail.com; s=zohoarc; b=WM12Doxj0DThZol4GixkETF4XtHf/LmdnW2Thlipeo+vD8DMwEmmB8KSKM343+xKzaVVGYMv1jM4cLHMh3+1EbGa8x0EtdIshoaB7+86JgEDQolS6aiSvJ02Z7jY6qYmp0da8D2e11cuffYhk5pQv1rz/Ohe09vdnhLX3QzS0+I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301685; 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=y6DH3r9Ocq03Ogkj6tuyQRJbavLOUiuWZWmOrpPJ69o=; b=VbiC8HL6A40XPYSQIC7aSsXaTAwi29ROnQNKJPyrt2Y1GHJrsC/7Lug+1lUyYfvYhvkcvEOitNvt0QaTCZogTYtNJkYDKFVBAvNCahd4Mo/ndoNtJ+xIY2u4SNzn4DUhxDV/J+wFmh8C2p5HqRueazGAyJGqchqIPYx62qtJCic= 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 1779301685947865.1635177820584; Wed, 20 May 2026 11:28:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlZC-0007Tl-N8; Wed, 20 May 2026 14:22:50 -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 1wPlZ4-0007HN-BM for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:45 -0400 Received: from mail-pj1-x1034.google.com ([2607:f8b0:4864:20::1034]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlYs-0000YP-Lv for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:42 -0400 Received: by mail-pj1-x1034.google.com with SMTP id 98e67ed59e1d1-3664df30f53so3098573a91.1 for ; Wed, 20 May 2026 11:22:29 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301348; x=1779906148; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=y6DH3r9Ocq03Ogkj6tuyQRJbavLOUiuWZWmOrpPJ69o=; b=L0943LJkapJSYudz8HWxPNjbXx0sajkxSYTv5/3Mj9xx1C23ZkQrh+e9El9TFpiAUe kBzgA8yG4GBHNCjIbBDNOe18StFScHzcpn0yhefXuOByfNouKSIsOGnaJODwY+lCrztQ iqf4KZMroyO/fgu7HMrVxtjRTXxsEVUG/6vQZt077MoX6wAHraf4e3WP9azFy5XPwzVX MpEHRAFKadxYlSURN22k6X88Vo9XwRljtswx1iOnVJk/6vPa7X9HlnN/kw4MJkX/iCNM J2J6yPHn6i6kRZt5udBOuOimTWXKDEuuUEWyRiozZZC1LUivaiorprbVgZNnStIAzXm4 JUOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301348; x=1779906148; 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; bh=y6DH3r9Ocq03Ogkj6tuyQRJbavLOUiuWZWmOrpPJ69o=; b=Mt155cKFwMOcdLOikXViM2/yJat1gZrjaNxN8fTG0LK4DJW7OAniqede56+G+CgaaG 1iaaMsmw4VxBHh86PxAXRqrzzOmRsjbJUfqF2+v5qZ42VH0bwBlEUoxwGNiJMDpxA8b7 3/bUsdJSi5rv5h43vVvb+5xK0liQNAUJvV6Dyp49pOMAgZj0kCeKvL8mbUQGZUV9aJ8r pph/H4VS12bDHtYHVHsm1Iaj2aD9WU4VA3KiEs7glQOpyVRRI2zVffPZDc+lMz5UKkVH ZkcWXFTBm74N6YtVitvdQzYtV8Bqd7xxRa25EeUIvaZPKq9PG0QcK+QUpP5C25UI2tHB 52rA== X-Gm-Message-State: AOJu0Ywp4QqUFI0zPVPocElYfZrXIZLuVULj62IzlBag6MNeMLGOkJSX BgxkpkILDZ8BAdNQ+GLx1SU7pYFsuoNAsEEjRGPZpcoCSbHXaimiKzzbClWmiT3n+A9ufn8UpWw O9lD4jOI= X-Gm-Gg: Acq92OFf9fmt47iD1KjcxCOsggUt9UXSbLMFaWrB09Bw59TnHVLCs/ABDRYZNBGbz2o v+TkF7wzRz2jmlWJyv/RJCN33IRER9SHCR889TQR/qrJ+4ecAOrw29bSE9gxGpQgws0ZgyZfbmA AqlY5h51C13x+2e02QZeuIIq9ve7doSIJNJTUnBULFCXTD2FAXoY1Nkm4RfpSKSV6IrCuEkm6jK QCoah/DuO1AxW2d5VBI92unneLSrrSGZ7adUz/Q25hskLr9YjOgJzPXH944c0owvMxAa41+WyWB TTZlTdBoj8FuU1PM2VySGJT5H67kkGihy5jhXpgw/LNlDkwoQ8IgWFR2PPJwEzKyq7l9SIshRW2 Te9qsMyT0OM0v6cc7mvO3Azp9k+oqytQ9A7yRs2sbqH+YL0KG7UwcK42X3lJWY5eBekiQx2kit8 DiIgDrSVV78stpvGwHpiJxJpSrTbHT X-Received: by 2002:a17:90b:2fc4:b0:367:bf59:6f99 with SMTP id 98e67ed59e1d1-36951cb8825mr25386362a91.26.1779301347547; Wed, 20 May 2026 11:22:27 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 19/64] target/arm: Implement FSCALE for AdvSIMD Date: Wed, 20 May 2026 11:21:28 -0700 Message-ID: <20260520182213.872945-20-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1034; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1034.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1779301688419154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/tcg/helper-a64-defs.h | 4 ++++ target/arm/tcg/vec_internal.h | 4 ++++ target/arm/tcg/translate-a64.c | 7 +++++++ target/arm/tcg/vec_helper64.c | 16 ++++++++++++++++ target/arm/tcg/a64.decode | 3 +++ 5 files changed, 34 insertions(+) diff --git a/target/arm/tcg/helper-a64-defs.h b/target/arm/tcg/helper-a64-d= efs.h index 215df1201b..b7880f773e 100644 --- a/target/arm/tcg/helper-a64-defs.h +++ b/target/arm/tcg/helper-a64-defs.h @@ -152,6 +152,10 @@ 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_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) + #ifndef CONFIG_USER_ONLY DEF_HELPER_2(exception_return, void, env, i64) #endif diff --git a/target/arm/tcg/vec_internal.h b/target/arm/tcg/vec_internal.h index 5c3f51eed3..b647399b18 100644 --- a/target/arm/tcg/vec_internal.h +++ b/target/arm/tcg/vec_internal.h @@ -349,6 +349,10 @@ float32 float32_famin(float32, float32, float_status *= ); float64 float64_famax(float64, float64, float_status *); float64 float64_famin(float64, float64, float_status *); =20 +#define float16_fscale float16_scalbn +#define float32_fscale float32_scalbn +float64 float64_fscale(float64, int64_t, float_status *); + /* * Decode helper functions for predicate as counter. */ diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index d2a4b0fadc..ac18ceeeab 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -6496,6 +6496,13 @@ static gen_helper_gvec_3_ptr * const f_vector_famin[= 3] =3D { }; TRANS_FEAT(FAMIN, aa64_faminmax, do_fp3_vector, a, 0, f_vector_famin) =20 +static gen_helper_gvec_3_ptr * const f_vector_fscale[3] =3D { + gen_helper_gvec_fscale_h, + gen_helper_gvec_fscale_s, + gen_helper_gvec_fscale_d, +}; +TRANS_FEAT(FSCALE, aa64_f8cvt, do_fp3_vector, a, 0, f_vector_fscale) + static bool do_fmlal(DisasContext *s, arg_qrrr_e *a, bool is_s, bool is_2) { if (fp_access_check(s)) { diff --git a/target/arm/tcg/vec_helper64.c b/target/arm/tcg/vec_helper64.c index dce5e0505e..7d403adfba 100644 --- a/target/arm/tcg/vec_helper64.c +++ b/target/arm/tcg/vec_helper64.c @@ -177,3 +177,19 @@ DO_3OP(gvec_famax_s, float32_famax, float32) DO_3OP(gvec_famin_s, float32_famin, float32) DO_3OP(gvec_famax_d, float64_famax, float64) DO_3OP(gvec_famin_d, float64_famin, float64) + +float64 float64_fscale(float64 n, int64_t m, float_status *s) +{ + /* + * Given the 'int' parameter of float64_scalbn, we have to saturate + * the 'int64_t' parameter of the operation to some value. Since + * float64 has an 11-bit exponent, saturating to 12 bits is sufficient + * to ensure that DBL_TRUE_MIN can be made to overflow. + */ + int sat_m =3D MIN(MAX(m, -0xfff), 0xfff); + return float64_scalbn(n, sat_m, s); +} + +DO_3OP(gvec_fscale_h, float16_fscale, int16_t) +DO_3OP(gvec_fscale_s, float32_fscale, int32_t) +DO_3OP(gvec_fscale_d, float64_fscale, int64_t) diff --git a/target/arm/tcg/a64.decode b/target/arm/tcg/a64.decode index 666a293540..02c7264cb9 100644 --- a/target/arm/tcg/a64.decode +++ b/target/arm/tcg/a64.decode @@ -1198,6 +1198,9 @@ FAMAX 0.00 1110 1.1 ..... 11011 1 ..... ...= .. @qrrr_sd FAMIN 0.10 1110 110 ..... 00011 1 ..... ..... @qrrr_h FAMIN 0.10 1110 1.1 ..... 11011 1 ..... ..... @qrrr_sd =20 +FSCALE 0.10 1110 110 ..... 00111 1 ..... ..... @qrrr_h +FSCALE 0.10 1110 1.1 ..... 11111 1 ..... ..... @qrrr_sd + ### Advanced SIMD scalar x indexed element =20 FMUL_si 0101 1111 00 .. .... 1001 . 0 ..... ..... @rrx_h --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301705; cv=none; d=zohomail.com; s=zohoarc; b=FV5jhN/yr7w7sKCBMqnPITtqWsOUsRlLwVzCzgM34w0jOa0Ll1V66frOb9yJDgfQ3AzqEsiUcNIxw4ERAhqIsePj4kN47dIIUmKymJqYhU+/FjTXuvOYZvrsQ7CFU/7kdc/F11+29tsuYQZI/s0fj6OPXgq1lxbchFHmyChtZqs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301705; 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=+C8mEcK0Q/wuIBusokIyMGl5OxDZ+zgF0Mzf/nkafIE=; b=gaqgv8LkstUnUeK9QmOnjB7/6r0w1cg6GO5gWX6ezTByIFohpJ9885DgM3+TSSrGJMeJllOLDFJiB9x9M1wEaYjhr9TJKrhLEdrmWlV7yxjBpLpMwBV8xMg6ZwOCyRh+beDWkBJWRwPiSzpLl5YwtkXilB+laDvlfa6VP+qb73I= 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 1779301705904643.9212325439012; Wed, 20 May 2026 11:28:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlZJ-0007kJ-I3; Wed, 20 May 2026 14:22: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 1wPlZ4-0007HO-Gl for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:45 -0400 Received: from mail-pj1-x1034.google.com ([2607:f8b0:4864:20::1034]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlYt-0000Yh-J6 for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:42 -0400 Received: by mail-pj1-x1034.google.com with SMTP id 98e67ed59e1d1-365d8e43759so2814320a91.0 for ; Wed, 20 May 2026 11:22:29 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301348; x=1779906148; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+C8mEcK0Q/wuIBusokIyMGl5OxDZ+zgF0Mzf/nkafIE=; b=xuG8KstbNNiVXVpOWUr7KONkWfN7psWfzKeFINiuWbRDdk63GBGwG0ji2tojmls1nq 1502FrZM2eAnhWNbbL8kDSQfhQFQfEZzdWUta+xQTjV2UQz70O0fxumpcqUHOHL+86Eq cvABPSmKFbuZ4Yt7cDXeIynAWPHRmZwNYEwCOWyk+L8YaANrxANL/lWmZzjkfIYUemKW 8WX/Si8zXXNRlU11eQnbqR5azkWhaBoFOmzGcgIFy40qjXoa1FBVdlb3EFLlo5ag+Ys+ YRXu0hjNj1s/bvOC1MScEjgXv00uSsrktHS8tRM+td8r53uxno35i1hUbBeWcNf8C01A wAaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301348; x=1779906148; 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; bh=+C8mEcK0Q/wuIBusokIyMGl5OxDZ+zgF0Mzf/nkafIE=; b=ac+MFYj2wF1wMTsCatnv/Tpa2mTvMbZokMgGA8QHgH6XRYCyHRiZ7pXCqrDKJfuUNh sIkcxRg8EfrzOOqdV5XtC2UZeXkc7hh64G0RhOFIuKnSgSLazVSG5OiL9dRA0eWyNmYJ EUVYIBzj56Rnsga8tkHQua01D2YBQSkbghCMXbkOBVqkRQYi1HRRTwseY3wuR7Nh1HMb S++k1MAmQGqyvSOzD5ZNewGp9yboLMOm1ms3vP67MElg30tEd2gXqE7e65hOh9V70k+i 2Vmk3dzWOScBNoaIXtodpRjpY4sOxkgW5OwMmMO7iZvTmUILK8grd/jWIebhEYXscSwQ wcQA== X-Gm-Message-State: AOJu0YzGcQc7iRUltrP3Ig/TFgTVmCTs5cLM421q2Bfat7Xyn/QwIabt VD4Na7BEad9s+e+aOHMXoyQjcCTltG7qgaom0cm0Z8wE3TkxySjCoT7RwjEh1zVk10f+6lNGKNa 4ybxB7wU= X-Gm-Gg: Acq92OGwxTJ7fZ6UaXIEcQS0B4gKy0Dv+qDl7itxwKm4uf0JW2KbUtI4DBBKOHYFxU0 CRZoaZjHtqFJz2goHK3dqd91mwsXBCuPMqJ5saq6VAkiejl0ivPZ7EfUMm5oFlxHB1FueNPllDb XehIr9JnpFPPhMZqSW88TEVdq7w/hcia+sAZ6fx+t0hc6CRXlaAKhKWrwxaCGvlP8m+4wdPu3Ba F8UIST1ycmYXysdb+XHdOXJEINiGhx6zyGuZgtzarDV3NJzyVQDUgZu+hxzIwFpeQgQhn0MUfSv SnuixzHDY1uyloIJK993zPHWj3IWY84utuS8VCwmVEwvMROxCVpxUIsWoeXZxoLS4cEevub8rIe dBbdMfw96eWOZ68FqtJpSIRUeZrdckQUjfr/5t76rhq8NajTDGv33v/7ue6Tf8Kl2QwGIKYReL6 r/CGEM76h6npt1LIcS9omDqKhlk6XP X-Received: by 2002:a17:90b:2e8f:b0:366:5283:cddf with SMTP id 98e67ed59e1d1-36a3cc8fc0fmr415494a91.9.1779301348198; Wed, 20 May 2026 11:22:28 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 20/64] target/arm: Implement FSCALE for SME Date: Wed, 20 May 2026 11:21:29 -0700 Message-ID: <20260520182213.872945-21-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1034; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1034.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1779301706610154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/cpu-features.h | 5 +++++ target/arm/tcg/translate-sme.c | 15 +++++++++++++-- target/arm/tcg/sme.decode | 6 ++++++ 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 1fde3e9231..f9c979d20b 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1622,6 +1622,11 @@ static inline bool isar_feature_aa64_sme2_faminmax(c= onst ARMISARegisters *id) return isar_feature_aa64_sme2(id) && isar_feature_aa64_faminmax(id); } =20 +static inline bool isar_feature_aa64_sme2_f8cvt(const ARMISARegisters *id) +{ + return isar_feature_aa64_sme2(id) && isar_feature_aa64_f8cvt(id); +} + static inline bool isar_feature_aa64_sve_i8mm(const ARMISARegisters *id) { return isar_feature_aa64_sve(id) && isar_feature_aa64_sme_sve_i8mm(id); diff --git a/target/arm/tcg/translate-sme.c b/target/arm/tcg/translate-sme.c index a67501226f..e2d17de165 100644 --- a/target/arm/tcg/translate-sme.c +++ b/target/arm/tcg/translate-sme.c @@ -707,9 +707,12 @@ static bool do_z2z_n1_fpst(DisasContext *s, arg_z2z_en= *a, { int esz =3D a->esz, n, dn, vsz, mofs; bool overlap =3D false; - gen_helper_gvec_3_ptr *fn; + 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_sme_b16b16, s)) { return false; @@ -719,7 +722,6 @@ static bool do_z2z_n1_fpst(DisasContext *s, arg_z2z_en = *a, } =20 fpst =3D fpstatus_ptr(esz =3D=3D MO_16 ? FPST_A64_F16 : FPST_A64); - fn =3D fns[esz]; n =3D a->n; dn =3D a->zdn; mofs =3D vec_full_reg_offset(s, a->zm); @@ -831,6 +833,15 @@ static gen_helper_gvec_3_ptr * const f_vector_famin[4]= =3D { }; TRANS_FEAT(FAMIN_nn, aa64_sme2_faminmax, do_z2z_nn_fpst, a, f_vector_famin) =20 +static gen_helper_gvec_3_ptr * const f_vector_fscale[4] =3D { + NULL, + gen_helper_gvec_fscale_h, + 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_nn, aa64_sme2_f8cvt, do_z2z_nn_fpst, a, f_vector_fscale) + /* 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 9dec7318a4..ee874be1a6 100644 --- a/target/arm/tcg/sme.decode +++ b/target/arm/tcg/sme.decode @@ -250,6 +250,9 @@ 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 + ### SME2 Multi-vector Multiple Vectors SVE Destructive =20 %zm_ax2 17:4 !function=3Dtimes_2 @@ -291,6 +294,9 @@ 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 + ### SME2 Multi-vector Multiple and Single Array Vectors =20 &azz_n n off rv zn zm --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301716; cv=none; d=zohomail.com; s=zohoarc; b=EESgHsTIN5FH0n6eFHt3FkmZrMzGau40gXlP+Pezs3J49N8nvwyG+9rUk3paSB9qMywe+62lwIpvTCy18OkHe7cyNN6I658XoCKsoHPYPkV2RdYmyHm4rTl1/KLZ4PwJT/5vwg8h6gIwhmD6I3DtBq65OnPCID6q/2doswngDRg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301716; h=Content-Type: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=Ad95Qfvf39Y/pJtpBMnjf6EUI1HAMLBfD/Kn4uxVX0Y=; b=DNsFvyy3RCQD1k9GaukdLVBYiAHotBC6VMXNn/3iwYu8Wj7sjgS12HHmKkrCtlvSuNv5IIVlM+qZcd5zBOsuo9PdoIUsJJ15hnfkN1ToHLEg/YUgEBlKeY6+vVNVWCb0T0pGb7M5XcW+w2JLN7+gVFVVp1/0H5ygBwyYPYnI3vU= 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 1779301716447404.8159090626575; Wed, 20 May 2026 11:28:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlZP-0007zx-2b; Wed, 20 May 2026 14:23:03 -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 1wPlYw-00079a-2O for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:35 -0400 Received: from mail-pj1-x102a.google.com ([2607:f8b0:4864:20::102a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlYs-0000ZB-MK for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:33 -0400 Received: by mail-pj1-x102a.google.com with SMTP id 98e67ed59e1d1-366139223e4so3011901a91.0 for ; Wed, 20 May 2026 11:22:30 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301349; x=1779906149; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Ad95Qfvf39Y/pJtpBMnjf6EUI1HAMLBfD/Kn4uxVX0Y=; b=ld6p4l4qbp1N8Tk7RyplMFaQpqCLKKakBVcuhlYhk3lRzae5zfQMNq307DA7tfxQFn eIjpzU+puwQisnkaQkwHKZ66nLigy6VD4vVWh42jxf7Mz/rT1oPazcY88cL4xjajLCJy o2G7LTkmsyLNT2Is+Jg2pHDC2TEqprH2A//bH2pB63Lk8LxM2rjiohYZiE4zt0cIsyKQ esEoc4v2gHF20MmA5vcvaTvorfDRKFbw1Z+IAEiC/5Vw26VAIE5HQxumf2Hayi6CAJ6i A4IXfzHzdE6OZHkGmZlGZpOXBV+KLRZjNCywf7QnZ4cze3Bvg6YIga62sGG4YsFz1U2s N7Hg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301349; x=1779906149; 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; bh=Ad95Qfvf39Y/pJtpBMnjf6EUI1HAMLBfD/Kn4uxVX0Y=; b=PeD3TZqxe/unrRrxMPMZLWozcJLJ04Iv+G0Yyjc8FYXT7LR4wdr7HQJBXsM3tNKYtm 5HStG4WNMKuMsdDD3g6QtFrQGtTVGf7xQH9qzJ//dq7QjWmqmnXbv8PnKEKI6ya9y2hD 9AL6pHzzKHF0moAfiLhJUIHa5TR/0QteNIUc7b+ZEGWX8CwFFS7vJlfMlurvb756f1ll oVL/HvX6y/NEwHMtDxTGek/gQkgVpEQc9X+4bsPrzP+dSvbOdVbGIqu01VmY65lbO8j5 eaPM63KoPdBa9EkJSOM8hcqbruTAB378A6QjznMjnPyzt7sCkKe9cmQhw2Za0D3qq3kR 0YPQ== X-Gm-Message-State: AOJu0YwuY9ZZZX+6ACSN+1IZjyc8+JPBILaqXc1AC2eJ3ois40Zsd0nq 6HeCx8dcSeKjik+/i2Si9Jy0KvIX8cMRJ8amU7CJCv2Ihp4uFmHbqcnBHIVSZTv6fHV9F60lcpy Dl8uaMvE= X-Gm-Gg: Acq92OFcKMbhEIvMDtEgZzVBa98BOSwXfbYWb9a3mFs8UwuYRoSr34ApbLhHm749JWu xnyPkwzfRufkNJC6zBjpkxR4kaDviasfgyTdrMRyi1vRS8BdBFlG8dIjOtHqHGXjM/ZFOjg70/J SVLR4e6Hv+MXV9Ux+rYpeXIvL6JHuzC0TmTCiIOzaZr966ChHgZOJjkwf1Y5I+iG0nOGI5qwLtM 8/1bcviSDvgr3h89h3DWvH8LhdqJ0U2QsJcYBRWUnbrAX8pESuhocJXsrUf66PSiiuziTFjvvci 3f92OKyJk+t2ihz6zZMxVD9Jcv/YeN8FzSVeK4upW9LABtk48KvGE0aYWwRWLsOuaLB8bDdWqZn Qbou11WvY1cllenDemmKHBVJ7Lq5OZkyF9ma9mSEwwMrmTywKATkCP5b7mCs3X9brPOvrmfXdrQ 5glJfqywFluFJpJ0MepX18MYAxa6/5 X-Received: by 2002:a17:90b:38ce:b0:368:d8a1:3bd4 with SMTP id 98e67ed59e1d1-369519e2088mr23380462a91.3.1779301349038; Wed, 20 May 2026 11:22:29 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v6 21/64] target/arm: Split vector-type.h from cpu.h Date: Wed, 20 May 2026 11:21:30 -0700 Message-ID: <20260520182213.872945-22-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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::102a; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102a.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: 1779301717400158500 We want to be able to reference ARMVectorType etc from common code, so move it out of cpu.h. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- target/arm/cpu.h | 38 +--------------------------------- target/arm/vector-type.h | 44 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 37 deletions(-) create mode 100644 target/arm/vector-type.h diff --git a/target/arm/cpu.h b/target/arm/cpu.h index 9e637c1d80..9f5da3d863 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -35,6 +35,7 @@ #include "target/arm/cpu-sysregs.h" #include "target/arm/mmuidx.h" #include "hw/intc/arm_gicv5_types.h" +#include "target/arm/vector-type.h" =20 #define EXCP_UDEF 1 /* undefined instruction */ #define EXCP_SWI 2 /* software interrupt */ @@ -140,43 +141,6 @@ typedef struct ARMGenericTimer { uint64_t ctl; /* Timer Control register */ } ARMGenericTimer; =20 -/* Define a maximum sized vector register. - * For 32-bit, this is a 128-bit NEON/AdvSIMD register. - * For 64-bit, this is a 2048-bit SVE register. - * - * Note that the mapping between S, D, and Q views of the register bank - * differs between AArch64 and AArch32. - * In AArch32: - * Qn =3D regs[n].d[1]:regs[n].d[0] - * Dn =3D regs[n / 2].d[n & 1] - * Sn =3D regs[n / 4].d[n % 4 / 2], - * bits 31..0 for even n, and bits 63..32 for odd n - * (and regs[16] to regs[31] are inaccessible) - * In AArch64: - * Zn =3D regs[n].d[*] - * Qn =3D regs[n].d[1]:regs[n].d[0] - * Dn =3D regs[n].d[0] - * Sn =3D regs[n].d[0] bits 31..0 - * Hn =3D regs[n].d[0] bits 15..0 - * - * This corresponds to the architecturally defined mapping between - * the two execution states, and means we do not need to explicitly - * map these registers when changing states. - * - * Align the data for use with TCG host vector operations. - */ - -#define ARM_MAX_VQ 16 - -typedef struct ARMVectorReg { - uint64_t d[2 * ARM_MAX_VQ] QEMU_ALIGNED(16); -} ARMVectorReg; - -/* In AArch32 mode, predicate registers do not exist at all. */ -typedef struct ARMPredicateReg { - uint64_t p[DIV_ROUND_UP(2 * ARM_MAX_VQ, 8)] QEMU_ALIGNED(16); -} ARMPredicateReg; - /* In AArch32 mode, PAC keys do not exist at all. */ typedef struct ARMPACKey { uint64_t lo, hi; diff --git a/target/arm/vector-type.h b/target/arm/vector-type.h new file mode 100644 index 0000000000..d94c0d986e --- /dev/null +++ b/target/arm/vector-type.h @@ -0,0 +1,44 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#ifndef TARGET_ARM_VECTOR_TYPE_H +#define TARGET_ARM_VECTOR_TYPE_H + +/* + * Define a maximum sized vector register. + * For 32-bit, this is a 128-bit NEON/AdvSIMD register. + * For 64-bit, this is a 2048-bit SVE register. + * + * Note that the mapping between S, D, and Q views of the register bank + * differs between AArch64 and AArch32. + * In AArch32: + * Qn =3D regs[n].d[1]:regs[n].d[0] + * Dn =3D regs[n / 2].d[n & 1] + * Sn =3D regs[n / 4].d[n % 4 / 2], + * bits 31..0 for even n, and bits 63..32 for odd n + * (and regs[16] to regs[31] are inaccessible) + * In AArch64: + * Zn =3D regs[n].d[*] + * Qn =3D regs[n].d[1]:regs[n].d[0] + * Dn =3D regs[n].d[0] + * Sn =3D regs[n].d[0] bits 31..0 + * Hn =3D regs[n].d[0] bits 15..0 + * + * This corresponds to the architecturally defined mapping between + * the two execution states, and means we do not need to explicitly + * map these registers when changing states. + * + * Align the data for use with TCG host vector operations. + */ + +#define ARM_MAX_VQ 16 + +typedef struct ARMVectorReg { + uint64_t d[2 * ARM_MAX_VQ] QEMU_ALIGNED(16); +} ARMVectorReg; + +/* In AArch32 mode, predicate registers do not exist at all. */ +typedef struct ARMPredicateReg { + uint64_t p[DIV_ROUND_UP(2 * ARM_MAX_VQ, 8)] QEMU_ALIGNED(16); +} ARMPredicateReg; + +#endif --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779302099; cv=none; d=zohomail.com; s=zohoarc; b=D4b45QkUgs+THhNIz+aO0ixnPqALBOjn8+r70dg5hXbnzVrtDimIeUgsqKm0t9ok2vE0tB42zWzZ0v9Lqkuyq0xY4hv+nph9fSkxemFDRFIA/Vi8Rv8joSXbey6MvKIECTesDs7YcDN6O02AKMTcX01PqCX8OPMuPB6WRjrdbuY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779302099; h=Content-Type: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=VvhMkH32psM3D8lph3Pv20uEhqe8qrK6g7LCI4lgg/I=; b=ZHioytImngnrEbFF+5Z9O9hqCBpoLCYaudCcf0zIscmxLNrZ+nwEy+wIjtdrqxgJbUZAbzqp/1s/8yAKy+27NvWCcLmImeDYawQf/9ErXROMcGtgYygQeJ8uHjlLolV+2rfKZle4Yd3sP6uaE/nutIGFyr5jNND2nlgqFjPajQc= 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 1779302099136413.9808855350167; Wed, 20 May 2026 11:34:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlZK-0007l0-4T; Wed, 20 May 2026 14:22: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 1wPlZ9-0007L2-AN for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:47 -0400 Received: from mail-pj1-x1032.google.com ([2607:f8b0:4864:20::1032]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlYt-0000a4-Qe for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:46 -0400 Received: by mail-pj1-x1032.google.com with SMTP id 98e67ed59e1d1-3697c35eab7so2991009a91.0 for ; Wed, 20 May 2026 11:22:30 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301350; x=1779906150; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=VvhMkH32psM3D8lph3Pv20uEhqe8qrK6g7LCI4lgg/I=; b=fnxSPWu1T2vIv6FJYKjASW2fNwKG/bg6Utdo2y2BaA//bAkh1kQyPucE0ZfgwmSaA5 lTa7v40Ei6qE91Ra5ssmSj/5iQ3zXYWBuoJmQPCBX516MAFeinR4iinhbk0CM+JsAc9Z kaEaAT0CCu9Ztp0vhMXCB4ZPOMPc2Jb/Cjj/0n7UaTAypTCbeEj7RGRFeZDfSOKAJ0zC 40biqPQouH4odBi2Iq52DNKb3k3UiJ8jIOC+OGwl09Fit9MxPIz+C/J/DmYAfQ0r5E59 nBpROYV4awbDrgKRUKp9ozfZbKue54TuRDt0KBIbJircZ1ELlqQ8U4+S8ua66TV71eJu fbdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301350; x=1779906150; 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; bh=VvhMkH32psM3D8lph3Pv20uEhqe8qrK6g7LCI4lgg/I=; b=cFhKzOfuD5tCUU2wvkeajV32hoAJhRo+6LzqLAFryq8Ui0tDaR7b6UYwYSqCkuTBCU nP1tYsUGXFi0Tlz8VgqmVTQXUXRDUgtsSu5Z5OllxbeguADI7XDNo0mU/YgpocxbCSCt BppXc0mRlY/upB6Q+MSzYrMp4CVSLYUNo2qviOLjYOu32IR1c66uqAmtLS9KounSwGV7 4EUfyCT7WuY+EK74pMmIfPPqikOq6IQJ4hUqQst4PfKzYWrvnwx4iQY3Yyl6mzJpa9hO CazvB+2fTSZFpUuuovx4RpTFeCqGi6tiPB8kTktOrpSc58EvQJPzZRCeEqCmRSGv9o+f /xVg== X-Gm-Message-State: AOJu0Yw5HONNV7vSod53QyiPNrlzbEvrg2XS1YqMe7ZHSFnDmie6X+t3 PTYL622ucrKQqIfx8DubvHK5Dk/mMYjacNSiFLmhqfymC1BHzC6Fddweg0QXtq27uctxaSKCU44 ZNNpD268= X-Gm-Gg: Acq92OE9LOFjENfZipf1rjWCu/BmbkQl9u+u5TGW83FwLAe9kIQTy2H3AQDwpULdiab v9qBaD/OqBoBpVeGIKuJ+VVRvrtIZb2aqZjhrbRtdtdMStVRBUkLOpzqy+fIDMQphmM4oJWysBt OWSAmnNvSQaOrLX2XMdk6PfZJBwvt2gszLvmAUEmJAnh4iZ6svv6DqdYKwJWnNIOqOB0hnz1hpe xcSK86Zd3Z/o00QSDSIo9aQ1j374kqlGuhl/7oobwtH0AcUPzanFkJSF2ZRR06F5mJk6dYraH+c S9op9x+DOwGhE+BZffzk8YVvNUxnlZqYUr9liIKx2eWFYZJIW1T1d1SinMDiBQ1TUg5rKCfL4lY v1YZ+yiiFvhgE4R8YznuK3JejQC5pKIa4Z13LN0qXOyVlo5sxrkocVSBFF83vcM5f8povwAgTFR za71hdD2LXlC5APYWf0hM35TpVHTL8lmdlw7Ng3bNhMRv7k6ONzQ== X-Received: by 2002:a17:90b:1344:b0:366:4f8a:9847 with SMTP id 98e67ed59e1d1-36951b711dcmr24214420a91.17.1779301349815; Wed, 20 May 2026 11:22:29 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v6 22/64] target/arm: Move vectors_overlap to vec_internal.h Date: Wed, 20 May 2026 11:21:31 -0700 Message-ID: <20260520182213.872945-23-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1032; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1032.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=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: 1779302103112154100 We will shortly need this outside of sme_helper.c. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- target/arm/tcg/vec_internal.h | 8 ++++++++ target/arm/tcg/sme_helper.c | 6 ------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/target/arm/tcg/vec_internal.h b/target/arm/tcg/vec_internal.h index b647399b18..dbc098d49a 100644 --- a/target/arm/tcg/vec_internal.h +++ b/target/arm/tcg/vec_internal.h @@ -21,6 +21,7 @@ #define TARGET_ARM_VEC_INTERNAL_H =20 #include "fpu/softfloat.h" +#include "vector-type.h" =20 typedef struct CPUArchState CPUARMState; =20 @@ -461,6 +462,13 @@ static inline void depositn(uint64_t *p, unsigned pos, } } =20 +/* Determine if [x, x+nx) overlaps [y, y+ny). */ +static inline bool vectors_overlap(ARMVectorReg *x, unsigned nx, + ARMVectorReg *y, unsigned ny) +{ + return !(x + nx <=3D y || y + ny <=3D x); +} + #define DO_3OP(NAME, FUNC, TYPE) \ void HELPER(NAME)(void *vd, void *vn, void *vm, = \ float_status * stat, uint32_t desc) = \ diff --git a/target/arm/tcg/sme_helper.c b/target/arm/tcg/sme_helper.c index ab5999c592..0055e97a2b 100644 --- a/target/arm/tcg/sme_helper.c +++ b/target/arm/tcg/sme_helper.c @@ -33,12 +33,6 @@ #define HELPER_H "tcg/helper-sme-defs.h" #include "exec/helper-info.c.inc" =20 -static bool vectors_overlap(ARMVectorReg *x, unsigned nx, - ARMVectorReg *y, unsigned ny) -{ - return !(x + nx <=3D y || y + ny <=3D x); -} - void helper_set_svcr(CPUARMState *env, uint32_t val, uint32_t mask) { aarch64_set_svcr(env, val, mask); --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301515; cv=none; d=zohomail.com; s=zohoarc; b=NG6K/Ed3imFnfRt1eQt6H5DtJNqpoAG12XZddH1SHsQFYiVu40mY6w+oJjsZnpzV/Q1oCe1tQNBVGxBhSoSpsjppOPMY4HZ6aaht3xJPdvPL+sJuewl9ycOKwl8u+bsXlcClRtaHGWiSS6gO2LZ9p41zYQYOvbenpEzMGgQU6Xk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301515; 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=4z/S8c2O3c8fRzj3kByIQacIL6SNCt5eRr0Q+G3fOlQ=; b=Z0mMyCj6xLRJFny80rnmDGzXyKi49ZaYhHIaoC8/zdHDdB5pO+cqlmxDzhU8bUBDHOCA0BtYJdVZnjkLo3vDsIZv7Uh5Lbgg7Y4Ju9DA+uZvDoTeIh3YCXQuwz0x37dvi60pBFO1jeKMt5JWbEIgednEw2H+059/lYW/DFT3CQE= 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 1779301515923617.5947831032394; Wed, 20 May 2026 11:25:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlZQ-00087L-SN; Wed, 20 May 2026 14:23:04 -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 1wPlZ9-0007L4-A2 for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:47 -0400 Received: from mail-pj1-x102b.google.com ([2607:f8b0:4864:20::102b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlYv-0000ap-Qv for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:45 -0400 Received: by mail-pj1-x102b.google.com with SMTP id 98e67ed59e1d1-369576666d5so2436203a91.0 for ; Wed, 20 May 2026 11:22:31 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301351; x=1779906151; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=4z/S8c2O3c8fRzj3kByIQacIL6SNCt5eRr0Q+G3fOlQ=; b=TTGrAftuxBevc332izlKx3CwYWZr7pQz/kHg8OtXWgi+TaH/phj9FeAHJuzTGkzOZY 6wfeCZnJpmjlXPC309en+J8IVKvHjUK/NFfavXBZT+kNHh9o7HO09bKJ+J3APRUDbL1i ax70t3b2MDFrHEKjpb35GtU4F2z7nH4CNCiEbxm57dzskQ2EN9pspT/y1XL4BDnRP+4r lNJ4x3J2hzsDhmTDmgM3siUF3UzySeYpoYaQLnJHruSIMOdH9a5OLkMnQfj1MHObj3sc tIbuU/tuzDfeyR4DDNPeLTZtA5E5gG0hLUqieNx5oscQ31upiuLLS0Na0Zb+/qyWyQob TjSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301351; x=1779906151; 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; bh=4z/S8c2O3c8fRzj3kByIQacIL6SNCt5eRr0Q+G3fOlQ=; b=TZXCW15ZKZ0sD4dxY9wtFJ+0VydqMzqD6XbQL2PZ8VTdvnDlFsJMhlzNS/24zZB5NZ IyXysOXdG+TorpFyzYDmEz5bVohCLMw6XXr97qPLtMVNom2CfUfBfoLcMxAnnvcFLOFO KLEdb10j9aJyxCd0lsLNmlHTkv7sT/5dHFLT96AIBSO+5NZYiTYyGBBGNvS70QVjlNre RfGyg3DFwR2vinyaTuT3Xd2Vd7oYChQdNQV5w4NBixlE5ZpiuXhG1VxfnkgH5S2RlpVh jtqy6F6Rs7UMweX9nRBi9Phuo+uADhynJu3whQC1+IJnx5el/xpu59qPdKsa7+1DcNcR 0csQ== X-Gm-Message-State: AOJu0Yz1YR/XomndfRYJcKQdVFkN6T6NRsIMlYaBEM+YjO3LzBovz2XB jxxtHGgzFgv5UlT7z6KSbg0ooNRv9if54eGFKKi0Wo7cZ3AVD0VyH0o7ce7+HcvNR0ibpoxWsBc SNpNaMWQ= X-Gm-Gg: Acq92OGSgXezMx8AJMvkpvftat7SIXTGmBH2v94v+cAY2B4xF4Suv+LQpu7jAP1b36Q oAtnfUR0NMboyRr+t0kJ1NOL4/E47ONJAG9Qb8Y5Uc4as1XzVvedAuaj7anIbs2vVuLX4tIQCYA 3FDy7WXiLtlYtIMce4a2qPJpGch5fdk7aZqEgd9NWIeE1H9xs9oK6jZFb3FRXTmqrHeev5FINz4 CE8HCrgcg4F/e41ODhUzsWPLlC+xfGLPxwqiEjqTOb5WeORoLUC/qMuvvhSaaXme3DdM0hjMWHZ eEV5I8zg0xj1ly3fMgX4gOt6k0Eo7299xSgluAjuhUjSh16qpTOWjpdVejitSq0QO4ou4olmzxM 5vJb6JE1uHahziDz5rbpDoKMaaJJEyHVZYh0eF5iqev7N3LNIY5jjo3VCAeb6CXVQzTDYvigUAR e85Mj5o2xDiA/LBB6DS7GdCsgubSuVRzP1Nan8IKk= X-Received: by 2002:a17:90b:5290:b0:35c:30a8:32a with SMTP id 98e67ed59e1d1-369519ffc97mr24984372a91.9.1779301350706; Wed, 20 May 2026 11:22:30 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 23/64] target/arm: Set e4m3_nan_is_snan Date: Wed, 20 May 2026 11:21:32 -0700 Message-ID: <20260520182213.872945-24-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102b; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=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: 1779301517174154100 Content-Type: text/plain; charset="utf-8" The unique e4m3 nan encoding is SNaN for Arm. Signed-off-by: Richard Henderson --- target/arm/tcg/vfp_helper.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/target/arm/tcg/vfp_helper.c b/target/arm/tcg/vfp_helper.c index 8d3f6e3a2e..c10b085f08 100644 --- a/target/arm/tcg/vfp_helper.c +++ b/target/arm/tcg/vfp_helper.c @@ -46,6 +46,7 @@ void arm_set_default_fp_behaviours(float_status *s) set_float_3nan_prop_rule(float_3nan_prop_s_cab, s); set_float_infzeronan_rule(float_infzeronan_dnan_if_qnan, s); set_float_default_nan_pattern(0b01000000, s); + set_float_e4m3_nan_is_snan(true, s); } =20 /* @@ -67,6 +68,7 @@ void arm_set_ah_fp_behaviours(float_status *s) set_float_infzeronan_rule(float_infzeronan_dnan_never | float_infzeronan_suppress_invalid, s); set_float_default_nan_pattern(0b11000000, s); + set_float_e4m3_nan_is_snan(true, s); } =20 /* Convert host exception flags to vfp form. */ --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301749; cv=none; d=zohomail.com; s=zohoarc; b=noberaXHB7Ict0QnR1SpzT83/4+yTy22vxeIMcpcPcD3+NUAe7EWFKFjGRNHVmCRzbwTImtmngAcg+YGlPdnTEpl5cr+V16qP9lBXpU8p/4Llj2HzU6MSCB9pwf2fBI7a+5D0pFWr8unLQnHDedkkGD9sZ3sGbKrAVgSyeps1jo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301749; 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=5kqQua5TfItd1iP0rVbQTk3uLPPAcfM0L2Au+0dg1yc=; b=hAY+Xrb7viBlAQv2qHw3qaVrQjwU42VzBJd/LbPIcnxrHPxw/nbB8hWk7JPolyKbj7wlgJcghWX0CCZE0kMls+jYXqrUC3+MdrUtNjTrF/QdTWVdJpzH9KEri8IL5DOeGZHa7GF6neL0DUm/1CTa7udUEMzj6TLuAtKCSPyiTeQ= 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 1779301749801750.9804212091855; Wed, 20 May 2026 11:29:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlZU-0008HL-UA; Wed, 20 May 2026 14:23: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 1wPlZB-0007PE-HK for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:49 -0400 Received: from mail-pj1-x102f.google.com ([2607:f8b0:4864:20::102f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlYw-0000bl-ST for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:47 -0400 Received: by mail-pj1-x102f.google.com with SMTP id 98e67ed59e1d1-3664df32e91so5601623a91.3 for ; Wed, 20 May 2026 11:22:32 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301352; x=1779906152; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5kqQua5TfItd1iP0rVbQTk3uLPPAcfM0L2Au+0dg1yc=; b=em7f6k6/VIW2+4hp+QffcdZyGhXd8pDZMmKXcMQXIbpndv0fwHnklez7dnRBm6ySYa usk7CXI5wgjvcCcbEnQJImuhcTjCMqnKfiYp4UQpdiZ5EGisO/N4uZ0iSZ0lkXROJKZ0 g1LpADuzErr+eNUD6b8va5i9rRLxDMsBs10q1FSgkDbzNIc05b/zeOJ+P1m3Cky9EEGB tCIlKWZqZZShdyg1XRoPhf5L0o+OIu74q10trwGDzkNjAmBEcF/Xx191GqEW9GuucCa5 gV7oOkScPeMG904fLifQVeIkV73QtA2CIxvVNd7KSiEZYndSERNgL4LXW6K2akVuH3zl zS9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301352; x=1779906152; 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; bh=5kqQua5TfItd1iP0rVbQTk3uLPPAcfM0L2Au+0dg1yc=; b=dmyUQaq6ZmhhaYf4Dg0lwZihh5/+tt/1K8ROUAmSDBHnm8JNc8N42KN7g4n5LlCCFj XZXOqHmv3IoxppRIv+t5c4ksbI0VN6+AI9GNwrJ6T7Rmw/ut0Kx1qfWlna9vRdm/YAuu GSR0UxPfy1kZWXjwJvP9zUIyvjbk5RSRQ6vXw1ix+lKj005QkgvHal9sJg8h3c0lUQzw o8FPBOIkxA1oiEZKhJULj1KT24ZLy2EfnjDq4gppY1ElLhgoFV65AOK1HDXW81cRU6vw +ThWVybKqXGPIW4WNF/X7hKGwSDMj67m/tyww0Un1LmcCFREagyprGlr7Rh0eT3iG/10 Di6A== X-Gm-Message-State: AOJu0YwcfBMqNm05Tdz+AG2B6/hIgtwDqVAEPHe0K6nR+t/bIpXuHdLr 7F1CcVB6QHgEHc/VUETuvxL16xblihICIdXbh1GEef1ZfqGDMSlcUjL4DWyawHMkvkdSlpr1PmX Pptfzwhk= X-Gm-Gg: Acq92OHkewqT/8s6flGJljUxzZ/cOoFEmLYchfjuC9KhOAnqvjm53ekYTLFYF7nLKRF U4hDEavJBQCBsGxt3REOiG8HUI3V8gvBpDX9VJSvlV/lgCSUSdIxOhefDqo6xQGKK+fWzqr57kY JOOI2XnPHSKIM54PFCfPaQVm5WHmsOJ0SBTk8lFYf3gD84+YVWjI6iNIev3dBRYob4Xc04/m8ke Dtrao7d/rIXqEi+tbIAtrNQi16+R4UxcTXEI/60GNTQQv9Pdon1DnlZv0vUiJ7pp3wfF/m3dxpm NM9XmXD0yMRzQk5tDOrc4x3yC10nfRwtYccC+rWUatMUVD5aPE1uFLOyz8DADZUXUThsihvINVG VCRmwvYWqYmo1/75x7+xJNC5SETKCtc+AVBcsQwi9PczT+efmHC8hsK90kyw4zJyTfpHf/T5Rud 1LZ4+uWO8RJViuHT1s1qmA5z7pmt1E X-Received: by 2002:a17:90a:501:b0:369:7421:75c3 with SMTP id 98e67ed59e1d1-3697421c76amr11958432a91.16.1779301351475; Wed, 20 May 2026 11:22:31 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 24/64] target/arm: Implement BF1CVTL, BF1CVTL2, BF2CVTL, BF2CVTL2 for AdvSIMD Date: Wed, 20 May 2026 11:21:33 -0700 Message-ID: <20260520182213.872945-25-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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::102f; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102f.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: 1779301751725158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/helper-fp8.h | 14 ++++ target/arm/tcg/helper-fp8-defs.h | 6 ++ target/arm/tcg/translate-a64.h | 1 + target/arm/tcg/fp8_helper.c | 124 +++++++++++++++++++++++++++++++ target/arm/tcg/translate-a64.c | 34 +++++++++ target/arm/tcg/a64.decode | 3 + target/arm/tcg/meson.build | 1 + 7 files changed, 183 insertions(+) create mode 100644 target/arm/helper-fp8.h create mode 100644 target/arm/tcg/helper-fp8-defs.h create mode 100644 target/arm/tcg/fp8_helper.c diff --git a/target/arm/helper-fp8.h b/target/arm/helper-fp8.h new file mode 100644 index 0000000000..c45211ba22 --- /dev/null +++ b/target/arm/helper-fp8.h @@ -0,0 +1,14 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#ifndef HELPER_FP8_H +#define HELPER_FP8_H + +#include "exec/helper-proto-common.h" +#include "exec/helper-gen-common.h" + +#define HELPER_H "tcg/helper-fp8-defs.h" +#include "exec/helper-proto.h.inc" +#include "exec/helper-gen.h.inc" +#undef HELPER_H + +#endif /* HELPER_FP8_H */ diff --git a/target/arm/tcg/helper-fp8-defs.h b/target/arm/tcg/helper-fp8-d= efs.h new file mode 100644 index 0000000000..0caaf63749 --- /dev/null +++ b/target/arm/tcg/helper-fp8-defs.h @@ -0,0 +1,6 @@ +/* + * AArch64 FP8 helper definitions + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +DEF_HELPER_FLAGS_4(advsimd_bfcvtl, TCG_CALL_NO_RWG, void, ptr, ptr, env, i= 32) diff --git a/target/arm/tcg/translate-a64.h b/target/arm/tcg/translate-a64.h index 9c45f89305..35f8d4f82e 100644 --- a/target/arm/tcg/translate-a64.h +++ b/target/arm/tcg/translate-a64.h @@ -25,6 +25,7 @@ TCGv_i64 read_cpu_reg_sp(DisasContext *s, int reg, int sf= ); void write_fp_dreg(DisasContext *s, int reg, TCGv_i64 v); bool logic_imm_decode_wmask(uint64_t *result, unsigned int immn, unsigned int imms, unsigned int immr); +bool fpmr_access_check(DisasContext *s); bool sve_access_check(DisasContext *s); bool sme_enabled_check(DisasContext *s); bool sme_enabled_check_with_svcr(DisasContext *s, unsigned); diff --git a/target/arm/tcg/fp8_helper.c b/target/arm/tcg/fp8_helper.c new file mode 100644 index 0000000000..bb3e8dae5f --- /dev/null +++ b/target/arm/tcg/fp8_helper.c @@ -0,0 +1,124 @@ +/* + * AArch64 FP8 Operations + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "cpu.h" +#include "internals.h" +#include "tcg/tcg-gvec-desc.h" +#include "fpu/softfloat.h" +#include "fpu/softfloat-parts.h" +#include "helper-fp8.h" +#include "vec_internal.h" + +#define HELPER_H "tcg/helper-fp8-defs.h" +#include "exec/helper-info.c.inc" + +typedef enum FPMRType { + OFP8_E5M2 =3D 0, + OFP8_E4M3 =3D 1, +} FPMRType; + +typedef struct FP8Context { + float_status stat; + ARMFPStatusFlavour fpst; + FPMRType f8fmt; + int scale; + bool high; +} FP8Context; + +static FP8Context fp8_start(CPUARMState *env, uint32_t desc, + FPMRType f8fmt, int scale) +{ + ARMFPStatusFlavour fpst =3D extract32(desc, SIMD_DATA_SHIFT + 2, 4); + + FP8Context ret =3D { + .stat =3D env->vfp.fp_status[fpst], + .fpst =3D fpst, + .f8fmt =3D f8fmt, + .scale =3D scale, + .high =3D extract32(desc, SIMD_DATA_SHIFT + 1, 1), + }; + + set_flush_to_zero(0, &ret.stat); + set_flush_inputs_to_zero(0, &ret.stat); + set_default_nan_mode(true, &ret.stat); + set_float_rounding_mode(float_round_nearest_even, &ret.stat); + + return ret; +} + +static void fp8_cvt_finish(CPUARMState *env, FP8Context *c) +{ + /* FP8 convert insns don't update FPSR.IDC */ + int e =3D get_float_exception_flags(&c->stat); + float_raise(e & ~float_flag_input_denormal_used, + &env->vfp.fp_status[c->fpst]); +} + +static FP8Context fp8_src_start(CPUARMState *env, uint32_t desc, int scale= _mask) +{ + bool issrc2 =3D extract32(desc, SIMD_DATA_SHIFT, 1); + uint64_t fpmr =3D env->vfp.fpmr; + FPMRType f8fmt =3D (issrc2 + ? FIELD_EX64(fpmr, FPMR, F8S2) + : FIELD_EX64(fpmr, FPMR, F8S1)); + int scale; + + scale =3D fpmr >> (issrc2 ? R_FPMR_LSCALE2_SHIFT : R_FPMR_LSCALE_SHIFT= ); + scale =3D -(scale & scale_mask); + + return fp8_start(env, desc, f8fmt, scale); +} + +/* + * Invalid input format: we could take one of the usual set of + * CONSTRAINED UNPREDICTABLE options for use of a reserved value, + * but choose to take the additional option provided by the FPMR + * register specification, of treating the input as if it were an SNaN. + * + * One of the uses of the input will convert to default nan (because + * all fp8 operations use default_nan_mode) and raise invalid (which + * the operation might suppress by not updating IOC). + */ +static FloatParts64 fp8_invalid_input(uint8_t x, float_status *s) +{ + return (FloatParts64){ .cls =3D float_class_snan }; +} + +typedef FloatParts64 fp8_input_fn(uint8_t x, float_status *s); + +static fp8_input_fn * const fp8_input_fmt[8] =3D { + [0 ... 7] =3D fp8_invalid_input, + [OFP8_E5M2] =3D float8_e5m2_unpack_canonical, + [OFP8_E4M3] =3D float8_e4m3_unpack_canonical, +}; + +static bfloat16 fcvt_fp8_to_b16(uint8_t x, fp8_input_fn *f8fmt, + int scale, float_status *s) +{ + FloatParts64 p =3D f8fmt(x, s); + p =3D parts64_scalbn(&p, scale, s); + return bfloat16_round_pack_canonical(&p, s); +} + +void HELPER(advsimd_bfcvtl)(void *vd, void *vn, CPUARMState *env, uint32_t= desc) +{ + FP8Context ctx =3D fp8_src_start(env, desc, 0x3f); + fp8_input_fn *input_fmt =3D fp8_input_fmt[ctx.f8fmt]; + uint8_t *n =3D vn, scratch[16]; + bfloat16 *d =3D vd; + + if (vd =3D=3D vn) { + n =3D memcpy(scratch, vn, 16); + } + n +=3D ctx.high * 8; + + for (size_t i =3D 0; i < 8; ++i) { + d[H2(i)] =3D fcvt_fp8_to_b16(n[H1(i)], input_fmt, ctx.scale, &ctx.= stat); + } + + fp8_cvt_finish(env, &ctx); + clear_tail(vd, 16, simd_maxsz(desc)); +} diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index ac18ceeeab..085e7e3b95 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -22,6 +22,7 @@ #include "helper-a64.h" #include "helper-sme.h" #include "helper-sve.h" +#include "helper-fp8.h" #include "translate.h" #include "translate-a64.h" #include "tcg/tcg-op.h" @@ -1457,6 +1458,24 @@ static bool fp_access_check(DisasContext *s) return fp_access_check_only(s) && nonstreaming_check(s); } =20 +/* + * Check that FPMR access is enabled, for an indirect reference by a + * vector instruction. See CheckFPMREnabled(). + */ +bool fpmr_access_check(DisasContext *s) +{ + if (s->fpmr_el) { + /* + * While denied direct access to the FPMR raises SystemRegisterTrap + * and targets a specific EL, denied indirect access to the FPMR + * results in a simple UNDEFINED to the default exception level. + */ + unallocated_encoding(s); + return false; + } + return true; +} + /* * Return <0 for non-supported element sizes, with MO_16 controlled by * FEAT_FP16; return 0 for fp disabled; otherwise return >0 for success. @@ -10612,6 +10631,21 @@ static bool trans_FCVTL_v(DisasContext *s, arg_qrr= _e *a) return true; } =20 +static bool do_f8cvt(DisasContext *s, arg_qrr_e *a, + gen_helper_gvec_2_ptr *fn, bool issrc2) +{ + if (fpmr_access_check(s) && fp_access_check(s)) { + tcg_gen_gvec_2_ptr(vec_full_reg_offset(s, a->rd), + vec_full_reg_offset(s, a->rn), + tcg_env, 16, vec_full_reg_size(s), + issrc2 | (a->q << 1) | (FPST_A64 << 2), fn); + } + return true; +} + +TRANS_FEAT(BF1CVTL, aa64_f8cvt, do_f8cvt, a, gen_helper_advsimd_bfcvtl, fa= lse) +TRANS_FEAT(BF2CVTL, aa64_f8cvt, do_f8cvt, a, gen_helper_advsimd_bfcvtl, tr= ue) + static bool trans_OK(DisasContext *s, arg_OK *a) { return true; diff --git a/target/arm/tcg/a64.decode b/target/arm/tcg/a64.decode index 02c7264cb9..b7aac148f2 100644 --- a/target/arm/tcg/a64.decode +++ b/target/arm/tcg/a64.decode @@ -1910,6 +1910,9 @@ URSQRTE_v 0.10 1110 101 00001 11001 0 ..... ...= .. @qrr_s =20 FCVTL_v 0.00 1110 0.1 00001 01111 0 ..... ..... @qrr_sd =20 +BF1CVTL 0.10 1110 101 00001 01111 0 ..... ..... @qrr_h +BF2CVTL 0.10 1110 111 00001 01111 0 ..... ..... @qrr_h + &fcvt_q rd rn esz q shift @fcvtq_h . q:1 . ...... 001 .... ...... rn:5 rd:5 \ &fcvt_q esz=3D1 shift=3D%fcvt_f_sh_h diff --git a/target/arm/tcg/meson.build b/target/arm/tcg/meson.build index 1b751d5918..c1b3d8e340 100644 --- a/target/arm/tcg/meson.build +++ b/target/arm/tcg/meson.build @@ -46,6 +46,7 @@ arm_ss.add(when: 'TARGET_AARCH64', if_true: files( 'sme_helper.c', 'sve_helper.c', 'vec_helper64.c', + 'fp8_helper.c', )) =20 arm_common_system_ss.add(when: 'CONFIG_ARM_V7M', if_true: files('cpu-v7m.c= ')) --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301610; cv=none; d=zohomail.com; s=zohoarc; b=h6gdhsu+q7l7iNeaMJQBxYzy/4y4wGH3NBZoYsJ6MnyEhFcwFRN831jiFsxDpmIXhQRg3RuddXobXy/3AOOCFUi7yKIJQEQLdogKoFEBuN7g9cCTxXeEe0OiI4zGV/QqhDk6cZHacSaWtzPi85VQ3EwrWDS+/OLewzSkri6BxFo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301610; 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=JSws11ZiVIvA+XWx2F6S9Oomud0E5/ikDBbQyEN+PD0=; b=HirMwHsk+3q6nRAgmssFzmuRhM3KkMyklH65GHJkz0pqbqbTJet7WI3LLEsyO71lVIzgLwS7cn1h7ZUCMK5ju+doAcThPRF2/dw/7+7uL7DQZvR09dqSIkmcNTQGaWN9PdG9ltrJFFfyJdoDcEGX7aL+zdZ72HTC7wViTTdjtd0= 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 1779301610260528.6779037803963; Wed, 20 May 2026 11:26:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlZL-0007qH-Ob; Wed, 20 May 2026 14:22: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 1wPlZ9-0007LB-Bm for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:47 -0400 Received: from mail-pj1-x102c.google.com ([2607:f8b0:4864:20::102c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlYw-0000cF-Ql for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:45 -0400 Received: by mail-pj1-x102c.google.com with SMTP id 98e67ed59e1d1-3684a6f3b0bso2674327a91.1 for ; Wed, 20 May 2026 11:22:33 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301352; x=1779906152; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=JSws11ZiVIvA+XWx2F6S9Oomud0E5/ikDBbQyEN+PD0=; b=m2lHWzNM2XvnPbQ/JCS8DZ8ea97RKAfjjRjYsEJ9BoKFn6su5YGhTjIfU+e+I+iCrf VguT276VtCwNaKZAdsKcq+EeK9xtxOT8uSM8FdJmqfwLXZ8gP2xTNvL2L+Xvz+FpaOgx YEZ6YxpMZ8i2pMfJ6FV9KouNnO3ihB056WhGcA1+pArpR7CUY8S0Bu2EAuAZZ+oNgXRb na9ErY6ICQANTVFRBAZuoKbOAqLrjk42xccId6Z5AVZMSFKcwo1x8FkpCajaWieCGpbJ aFHwMeMq2qjQk6irEU8P1BxLPtQm8k+Qbftynyquo9oYvMnnPN1JCpzyuQzyIPnxDwKr 2lzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301352; x=1779906152; 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; bh=JSws11ZiVIvA+XWx2F6S9Oomud0E5/ikDBbQyEN+PD0=; b=gkaJBECbBOXbp1Eomco4Tq6OYt1OD1NTyYDnFI6IUO8pzJ/4hTol8QptyJA8pgtTb0 QmIVmc8Me97xVJuURzWk7nRvDvRpS+EtoYqi4mMov9VBTbnou0T3TA69jB/lp5XS/xIn FL0H8tKiQfCYD7/yZFuQxlBz1MIMmSWoWaIUBjSHA4RsfxCTFZl6gjfycVhrtQMW55NP D53XSZExt2lK2mgdoCUIf2vppFyDDdzGxjs82ib74+BDbJsqMYSIX5UHDAOi1iQOp7bh ImF+qh1ItzCP6V4aUog7XNLJfornjvEjcUO2yivG8Yh96J6m0ERetNAWC7W/EgOoCEGM Hs0w== X-Gm-Message-State: AOJu0YzFIZ6jeiA8gBZho8raPi3xk/uEIileKG39eHioHaYKDSrRDoGj ///dufqjMzPrkYOA/3vOvEm3eaY4eEnuXx3Qsgd1Zob3Z7R1DlQO79WtysYVdI/vTwrPtnLuwL+ dRYmfxZQ= X-Gm-Gg: Acq92OHbIcM1yj2lYPxHPl5E27FrrDPS4jiFjDkdqi1HQQWUM/z9HY6r7NhvNx86F6u wklhQlKOxjyLLOpYi7KOJTZvHJAqWEpFVN/HoFKq9erDI+J6xwLfu2VAOo2b7ZFWrk7qCcT5H2E R024H9iOvOrdtAPLdyPOvJRtEXe7t0eKCVUawnxDrEnfAGe1bUYJga9JmlpbqKQiEDrd5jQ2V0u HZjZDEY+vNvCvGb9h4OXhDkTy7t+ru/Ur6YK5I1hn3JwK/tb1YudIU5zOlX928d11q7nnM3VfYO gEIrN5YFB4DSsI6P1zXXES2dHI+6pWl2iPgCCnMDfurEXPMoTNyti5DYbU/TCQ445oAkVPYNRJt Py0n5AwoZF8NOq95Yl+wIg+AU1ZU6Gf7Z5PI2Y58qgP+N8IaQ0j+p4TE6Re1hZYESBAJKYCE5w4 kS85ElHrtqSkav3C5lpUgQX15g9pfe X-Received: by 2002:a17:90b:3e82:b0:369:277b:38de with SMTP id 98e67ed59e1d1-36a3cde2e52mr408875a91.18.1779301352108; Wed, 20 May 2026 11:22:32 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 25/64] target/arm: Implement BF1CVT, BF1CVTLT, BF2CVT, BF2CVTLT for SVE Date: Wed, 20 May 2026 11:21:34 -0700 Message-ID: <20260520182213.872945-26-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102c; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1779301611150154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/cpu-features.h | 6 ++++++ target/arm/tcg/helper-fp8-defs.h | 1 + target/arm/tcg/fp8_helper.c | 16 ++++++++++++++++ target/arm/tcg/translate-sve.c | 23 +++++++++++++++++++++++ target/arm/tcg/sve.decode | 6 ++++++ 5 files changed, 52 insertions(+) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index f9c979d20b..fd09bbc5cf 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1643,6 +1643,12 @@ isar_feature_aa64_sme2_or_sve2_faminmax(const ARMISA= Registers *id) return isar_feature_aa64_sme2_or_sve2(id) && isar_feature_aa64_faminma= x(id); } =20 +static inline bool +isar_feature_aa64_sme2_or_sve2_f8cvt(const ARMISARegisters *id) +{ + return isar_feature_aa64_sme2_or_sve2(id) && isar_feature_aa64_f8cvt(i= d); +} + /* * Feature tests for "does this exist in either 32-bit or 64-bit?" */ diff --git a/target/arm/tcg/helper-fp8-defs.h b/target/arm/tcg/helper-fp8-d= efs.h index 0caaf63749..18ff483bb0 100644 --- a/target/arm/tcg/helper-fp8-defs.h +++ b/target/arm/tcg/helper-fp8-defs.h @@ -4,3 +4,4 @@ */ =20 DEF_HELPER_FLAGS_4(advsimd_bfcvtl, TCG_CALL_NO_RWG, void, ptr, ptr, env, i= 32) +DEF_HELPER_FLAGS_4(sve2_bfcvt, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32) diff --git a/target/arm/tcg/fp8_helper.c b/target/arm/tcg/fp8_helper.c index bb3e8dae5f..c62fb2ffd6 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -122,3 +122,19 @@ void HELPER(advsimd_bfcvtl)(void *vd, void *vn, CPUARM= State *env, uint32_t desc) fp8_cvt_finish(env, &ctx); clear_tail(vd, 16, simd_maxsz(desc)); } + +void HELPER(sve2_bfcvt)(void *vd, void *vn, CPUARMState *env, uint32_t des= c) +{ + FP8Context ctx =3D fp8_src_start(env, desc, 0x3f); + fp8_input_fn *input_fmt =3D fp8_input_fmt[ctx.f8fmt]; + uint8_t *n =3D vn; + uint16_t *d =3D vd; + size_t nelem =3D simd_oprsz(desc) / 2; + + for (size_t i =3D 0; i < nelem; ++i) { + d[H2(i)] =3D fcvt_fp8_to_b16(n[H1(2 * i + ctx.high)], + input_fmt, ctx.scale, &ctx.stat); + } + + fp8_cvt_finish(env, &ctx); +} diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index db32230595..9bab5feb93 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -21,6 +21,7 @@ #include "cpu.h" #include "helper-sme.h" #include "helper-sve.h" +#include "helper-fp8.h" #include "translate.h" #include "translate-a64.h" #include "tcg/tcg-op.h" @@ -4067,6 +4068,28 @@ TRANS_FEAT(FRSQRTE, aa64_sme_or_sve, gen_gvec_fpst_a= h_arg_zz, s->fpcr_ah && dc_isar_feature(aa64_rpres, s) ? frsqrte_rpres_fns[a->esz] : frsqrte_fns[a->esz], a, 0) =20 +static bool do_f8cvt(DisasContext *s, arg_rr_esz *a, + gen_helper_gvec_2_ptr *fn, bool issrc2, bool isodd) +{ + if (fpmr_access_check(s) && sve_access_check(s)) { + unsigned vsz =3D vec_full_reg_size(s); + tcg_gen_gvec_2_ptr(vec_full_reg_offset(s, a->rd), + vec_full_reg_offset(s, a->rn), + tcg_env, vsz, vsz, + issrc2 | (isodd << 1) | (FPST_A64 << 2), fn); + } + return true; +} + +TRANS_FEAT(BF1CVT, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, + gen_helper_sve2_bfcvt, false, false) +TRANS_FEAT(BF2CVT, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, + gen_helper_sve2_bfcvt, true, false) +TRANS_FEAT(BF1CVTLT, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, + gen_helper_sve2_bfcvt, false, true) +TRANS_FEAT(BF2CVTLT, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, + gen_helper_sve2_bfcvt, true, true) + /* *** SVE Floating Point Compare with Zero Group */ diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index 078a085a79..e7984fa8e0 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -108,6 +108,7 @@ # Two operand @pd_pn ........ esz:2 .. .... ....... rn:4 . rd:4 &rr_esz @rd_rn ........ esz:2 ...... ...... rn:5 rd:5 &rr_esz +@rd_rn_e0 ........ .. ...... ...... rn:5 rd:5 &rr_esz es= z=3D0 @rd_rnx2 ........ ... ..... ...... ..... rd:5 &rr_esz rn= =3D%rn_ax2 =20 # Two operand with governing predicate, flags setting @@ -1090,6 +1091,11 @@ FMINQV 01100100 .. 010 111 101 ... ..... ..= ... @rd_pg_rn FRECPE 01100101 .. 001 110 001100 ..... ..... @rd_rn FRSQRTE 01100101 .. 001 111 001100 ..... ..... @rd_rn =20 +BF1CVT 01100101 00 001 000 001110 ..... ..... @rd_rn_e0 +BF2CVT 01100101 00 001 000 001111 ..... ..... @rd_rn_e0 +BF1CVTLT 01100101 00 001 001 001110 ..... ..... @rd_rn_e0 +BF2CVTLT 01100101 00 001 001 001111 ..... ..... @rd_rn_e0 + ### SVE FP Compare with Zero Group =20 FCMGE_ppz0 01100101 .. 0100 00 001 ... ..... 0 .... @pd_pg_rn --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301846; cv=none; d=zohomail.com; s=zohoarc; b=JxhUujQnx7waIkUSNyCCOl/rzem8usga4uobcniW/tPRvAhrKac6OfxHLzN3fdJ+qgUEprbFoNXacND1pRbbBDDzhaLxgG+O3E+WpiMviplW8OGCFwpxkM0X1tNzKCii+yy1j+a0hdGJKraEcxfVSYu9faSHBYrVNE+qWkdw3tQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301846; 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=6Dz6Qruyij9ET6EEmMISyWGCg1mDrJrkY0VmvnEJBmY=; b=EtapmNPEHLaMSg1kcVwWXLVupn78musbAVsEr4EE869d1w6FGjEDDMT2LutgDuUNgZNriTGwAA90BbkxgQ1G0980BewKJs7QbDg4u0p8A++fXgME6unLGXtzsqM8eF4G1EHj5DSTHjwAFoBGfDgHP9SaiWDd1vioFJGGQX6ac8w= 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 1779301846765794.0818375630449; Wed, 20 May 2026 11:30:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlbz-0003U7-Pb; Wed, 20 May 2026 14:25:44 -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 1wPlZG-0007fH-Ul for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:54 -0400 Received: from mail-pj1-x1035.google.com ([2607:f8b0:4864:20::1035]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlZ9-0000gO-0i for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:54 -0400 Received: by mail-pj1-x1035.google.com with SMTP id 98e67ed59e1d1-367c26471f5so3338596a91.1 for ; Wed, 20 May 2026 11:22:45 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301353; x=1779906153; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=6Dz6Qruyij9ET6EEmMISyWGCg1mDrJrkY0VmvnEJBmY=; b=jYGW/Ht7Py3Ena6zVfdki3u8bhadJ12r9zs5asiBRaI8GKmjnp0/T+lcQSlumAJKgR iDgn+rotpU2kFvYNAQgikNpHgPn1oejBCvWcI9v5xq8zSpRFW3ZPIO6LOH43fzCKhjeI dm0yDjiz9ZkPbaHM6QgYqgn6Y9lGrzqLndhI7vWiNHuTetalYoVxTlrL/bS2PAU44FZ7 00gFQ/tFTB+pcEdujICu+5+qtGzW84pwwktEhscN3HrIvg0n9fmcLH3gVEwHqJ0CXxKL sipWFKVLS6tzUC/Ab5tNIiQw4nzcj/bydCqmNbK7GFmgBHKhw3x5X5BRAev1q/LrBpnP 6qbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301353; x=1779906153; 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; bh=6Dz6Qruyij9ET6EEmMISyWGCg1mDrJrkY0VmvnEJBmY=; b=ZoQ1Y8OtBBhdR0nj+0qnH6NrnUSneetM2NWwtBIGGY+ERi6FvPOUYhyRnVCO1p/6ec rE3HHvUSQjGK9ZZ+Xk7YHIo9XwBJ8Hr5TTosJuB74GncU8CigMtkqseDAJmxKNR5qf5B ItFShXvwr6Abvn7qCtKxjR+Q4dvLHEEZp3NoZYAYPv0ng8xoWgulvQUvL4+KTMI5jH9U QnSH1ErvGBYUgC0TKhXQ3V52jM083gvai2IStemY8uRzOlDVIICgMwHUB/6qK5hleGVb Fut5tSqxg9YSA4XhBgxASySX3XdQb4ZRX8iEZn7uEG/DYC0I9Gm1g8+hbukUeCNo3l+Q ZQIg== X-Gm-Message-State: AOJu0YxgO+v0cNA6o0Ig+sSF6NxJDhextLTBdYIcRReahQRxT5FLfzZk eCavJ3qEzXkKf+zB6hbcyb7FDQcupnBoMA+IdueBp2JYDcqK4mCA3VXZlxUOWNNRkGAuqc1Mq1Z b9ehn9L4= X-Gm-Gg: Acq92OGOVaiZu4mV1Hvw9eNfoUNixvtIopGpKirjNHnb+yd0JqXQVwK7ZxIbi1dUtir kP33Hqoqq1ReMWmefitz+IuQYqJKCBJAyXOUpy5Jgjseiiz3sXPJA5bIePN5gCAge46XVWSURIs 1oTypurDjQeQ4N5Iv0K06I8ayv0f+2VZn3i+r40FkoBD/tL7WtMkUiyGfbHLSnWv2iDhRUawMSL cLu/EkkCwZ8bT66iehbpoSYaizVhNL/fZNMEnDytGKwe37/dZDBglILXhGuqcs8PPj3kJCla6bO CoFmKedE85lJgdIrwnVKBKcISicFlub4SK82j+kYuK22MDp+r1i4PyXe+cPgeXNsjEvZTY2V9wD GAz4pfI9U90EYteZ9BRl0jERSbYouy29PxhYDO5oVg/NxGFjg7oVNW27NQmSzWe0bvBbWjeKPiS n4oRdqH+taIpufAeYICZtKEF9rZZe3 X-Received: by 2002:a17:90b:1c11:b0:368:a297:bd3d with SMTP id 98e67ed59e1d1-36951895b57mr22466333a91.3.1779301352762; Wed, 20 May 2026 11:22:32 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 26/64] target/arm: Rename SME BFCVT patterns to BFCVT_hs Date: Wed, 20 May 2026 11:21:35 -0700 Message-ID: <20260520182213.872945-27-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1035; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1035.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=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: 1779301849324154100 Content-Type: text/plain; charset="utf-8" The existing pattern is BFCVT (single-precision to BFloat16). In preparation for introducing more insns of the same name, append the operand sizes. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/tcg/helper-sme-defs.h | 2 +- target/arm/tcg/sme_helper.c | 2 +- target/arm/tcg/translate-sme.c | 4 ++-- target/arm/tcg/sme.decode | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/target/arm/tcg/helper-sme-defs.h b/target/arm/tcg/helper-sme-d= efs.h index c551797c6f..01aad4c231 100644 --- a/target/arm/tcg/helper-sme-defs.h +++ b/target/arm/tcg/helper-sme-defs.h @@ -250,7 +250,7 @@ DEF_HELPER_FLAGS_5(sme2_umlsll_idx_d, TCG_CALL_NO_RWG, = void, ptr, ptr, ptr, ptr, DEF_HELPER_FLAGS_5(sme2_usmlall_idx_s, TCG_CALL_NO_RWG, void, ptr, ptr, pt= r, ptr, i32) DEF_HELPER_FLAGS_5(sme2_sumlall_idx_s, TCG_CALL_NO_RWG, void, ptr, ptr, pt= r, ptr, i32) =20 -DEF_HELPER_FLAGS_4(sme2_bfcvt, TCG_CALL_NO_RWG, void, ptr, ptr, fpst, i32) +DEF_HELPER_FLAGS_4(sme2_bfcvt_hs, TCG_CALL_NO_RWG, void, ptr, ptr, fpst, i= 32) DEF_HELPER_FLAGS_4(sme2_bfcvtn, TCG_CALL_NO_RWG, void, ptr, ptr, fpst, i32) DEF_HELPER_FLAGS_4(sme2_fcvt_n, TCG_CALL_NO_RWG, void, ptr, ptr, fpst, i32) DEF_HELPER_FLAGS_4(sme2_fcvtn, TCG_CALL_NO_RWG, void, ptr, ptr, fpst, i32) diff --git a/target/arm/tcg/sme_helper.c b/target/arm/tcg/sme_helper.c index 0055e97a2b..a0f03c4671 100644 --- a/target/arm/tcg/sme_helper.c +++ b/target/arm/tcg/sme_helper.c @@ -1742,7 +1742,7 @@ DO_MLALL_IDX(sme2_sumlall_idx_s, uint32_t, int8_t, ui= nt8_t, H4, H1, +) #undef DO_MLALL_IDX =20 /* Convert and compress */ -void HELPER(sme2_bfcvt)(void *vd, void *vs, float_status *fpst, uint32_t d= esc) +void HELPER(sme2_bfcvt_hs)(void *vd, void *vs, float_status *fpst, uint32_= t desc) { ARMVectorReg scratch; size_t oprsz =3D simd_oprsz(desc); diff --git a/target/arm/tcg/translate-sme.c b/target/arm/tcg/translate-sme.c index e2d17de165..88c1d78c40 100644 --- a/target/arm/tcg/translate-sme.c +++ b/target/arm/tcg/translate-sme.c @@ -1448,8 +1448,8 @@ static bool do_zz_fpst(DisasContext *s, arg_zz_n *a, = int data, return true; } =20 -TRANS_FEAT(BFCVT, aa64_sme2, do_zz_fpst, a, 0, - FPST_A64, gen_helper_sme2_bfcvt) +TRANS_FEAT(BFCVT_hs, aa64_sme2, do_zz_fpst, a, 0, + FPST_A64, gen_helper_sme2_bfcvt_hs) TRANS_FEAT(BFCVTN, aa64_sme2, do_zz_fpst, a, 0, FPST_A64, gen_helper_sme2_bfcvtn) TRANS_FEAT(FCVT_n, aa64_sme2, do_zz_fpst, a, 0, diff --git a/target/arm/tcg/sme.decode b/target/arm/tcg/sme.decode index ee874be1a6..7a8e1abb59 100644 --- a/target/arm/tcg/sme.decode +++ b/target/arm/tcg/sme.decode @@ -789,7 +789,7 @@ SUB_aaz_d 11000001 111 000010 .. 111 ...00 11 ...= @az_4x4_o3 @zz_4x2_n1 ........ ... ..... ...... .... . ..... \ &zz_n n=3D1 zd=3D%zd_ax4 zn=3D%zn_ax2 =20 -BFCVT 11000001 011 00000 111000 ....0 ..... @zz_1x2 +BFCVT_hs 11000001 011 00000 111000 ....0 ..... @zz_1x2 BFCVTN 11000001 011 00000 111000 ....1 ..... @zz_1x2 =20 FCVT_n 11000001 001 00000 111000 ....0 ..... @zz_1x2 --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301627; cv=none; d=zohomail.com; s=zohoarc; b=eo5Pq+Bj4r9kGk7PkJaBg9gGCSQMzuRZwF4JpYvnV1Sp8zVABnEvIceRrW21N3QrlddNMOPz+8XQJXfafmmnplwz3OwPaQQ5VAuhcq83nXMxDdMmnCyizOhGLgxmzw03awvUrvP9U2aohogxO6GxZsH7/9PgvGsZzTS4C8TWEdM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301627; 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=AmG9bRRQESb91pzNwIOo7N0csVw/nZ8h2JxX2X42xfE=; b=CFdjYseTa8zQXv37Kw9da8HDCy2CQZIr8q3ztxmRrv0BNsq9p8FrVELsOZgoquGuRE1VrM/BulzN5oSxvblyVzWH0Vu//CN3h7KfXdfzqsQFFTqsPkoJTqGlQ4UOpdoyzS8innFxENUIswVmqFqE2W/l9Ob77BRO+jm5TDeDMhQ= 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 1779301627428482.3107282604893; Wed, 20 May 2026 11:27:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlbC-00024b-0D; Wed, 20 May 2026 14:24: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 1wPlZG-0007dN-8L for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:54 -0400 Received: from mail-pj1-x1035.google.com ([2607:f8b0:4864:20::1035]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlZ8-0000gu-Vu for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:53 -0400 Received: by mail-pj1-x1035.google.com with SMTP id 98e67ed59e1d1-36643b96b99so4883666a91.0 for ; Wed, 20 May 2026 11:22:45 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301354; x=1779906154; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=AmG9bRRQESb91pzNwIOo7N0csVw/nZ8h2JxX2X42xfE=; b=AHkmqil3dxM4GGI791TEPk4VYjw+6zgQye117TzbMIT6VMgSlDSs3jEYfzg8rx33je VwqhM7mRrrgcJ6EJ+OCTa/GItfK9OMfxu2+NFGsBMhODq9WLc+3U0js9WU4ueUc/1b+S JGy1Fj7Qw9LVWDdWoawnev6ZJ3QB9AABETtdtAXkf9o4lTRgEe6meiP1HlMzMOzJ4LKA wgsxpqt4+nqhCc4w+kkwZ2fZNtj48ZG4VKINXwwJlpcawL0+GjjJiWhqSYUKtrhEku+y BYEzZNuydIXzEqy8Q0ivyVPEDVhC1dHrXtA94x751rDCtVLv6cVXhn/fB8nwEnswzK8l LlKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301354; x=1779906154; 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; bh=AmG9bRRQESb91pzNwIOo7N0csVw/nZ8h2JxX2X42xfE=; b=PSJGwPYL54iU9FyUSRbzTi5iKijtLPoOqaoDpktxRud0t4il6qcT0+WJ1OoMiS5uKd FMXjNkAju90RHJPT9M5GrhgCKPoPnfgfA9WROooLZaYQbfimQ5LrBP/pSQZXtz5cBIM+ kGTYor1IjWgRl4AvMqKtbPUT5Q+i3freAWDSmEqzvxYT3htYbbcHFuhDft/Jr0SO1bRA t8FTFuuK8+L+aUmtQ5KSbkIkODg1Y2z5TMje6gloh9vjAf61eYa70OnSha7KfTEPk/Z6 vjFHuAq1zVUzkghVLThTVUgQJ1XUP9ouTYZZo3Pgl7rySEksR233wKNtF9DiiW1dIklj LDbg== X-Gm-Message-State: AOJu0Ywkq/wv2mlcSjOeHnjxm6J+MbKlLLbpddRNsvsK5j9s9emh++MW kpCDOO5cqvNjAkGPOwnQmdqgVQ8zeAQqn+AvXftS9JonZwW4cjQ3IGGg7rf/EUPwKJLMEGO+Xbp 3NXvQzpQ= X-Gm-Gg: Acq92OFtesHblIyB8waq65HxD+azRpuFmIcZGDAV/9j0eM0iXdSOnG0KP49OKsU00ho P8yBn9Dq4sJ0V7pFaxkDMIn0QjDQj9q9vCMYimb7Is6v7xWjohmDbHb6qcoBNcAzAoBTSHGVB+Q LA43BouwDqSvo/hCUHhoKEcRNOtdZKcqYnUwIqEerr7AJjQbUIpFO7k5SvkemaTaJbgSgBgyIOb a1Op82QIrOFg9OYe0AiwR5AnHIfkRWHVm/GK0h60Ui+iQrygSAEsC9vdb6U6MHYIpoxtstc+OXC eFYKMPEJ6uT+usILrF3oxgNXJZdHRi02pMGXDb57dfv19XY6N9n3EMSwC597M144g8DTPxmiEUn 745Fq4yi5ZepyU4nI1GThHxszKMROWnK1Zd78R5XOxDJBWbut7dh8aCMPM48y4B95xMbTyPZScF XWUWQcaYVqfcqwfLmlX+t+30IBcA6w X-Received: by 2002:a17:90b:3842:b0:368:1088:bb1d with SMTP id 98e67ed59e1d1-36951b88122mr23665655a91.15.1779301353484; Wed, 20 May 2026 11:22:33 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 27/64] target/arm: Implement BF1CVT, BF1CVTL, BF2CVT, BF2CVTL for SME Date: Wed, 20 May 2026 11:21:36 -0700 Message-ID: <20260520182213.872945-28-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1035; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1035.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=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: 1779301628963158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/helper-fp8-defs.h | 2 ++ target/arm/tcg/fp8_helper.c | 47 ++++++++++++++++++++++++++++++++ target/arm/tcg/translate-sme.c | 19 +++++++++++++ target/arm/tcg/sme.decode | 5 ++++ 4 files changed, 73 insertions(+) diff --git a/target/arm/tcg/helper-fp8-defs.h b/target/arm/tcg/helper-fp8-d= efs.h index 18ff483bb0..966f83d796 100644 --- a/target/arm/tcg/helper-fp8-defs.h +++ b/target/arm/tcg/helper-fp8-defs.h @@ -5,3 +5,5 @@ =20 DEF_HELPER_FLAGS_4(advsimd_bfcvtl, TCG_CALL_NO_RWG, void, ptr, ptr, env, i= 32) DEF_HELPER_FLAGS_4(sve2_bfcvt, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32) +DEF_HELPER_FLAGS_4(sme2_bfcvt_hb, TCG_CALL_NO_RWG, void, ptr, ptr, env, i3= 2) +DEF_HELPER_FLAGS_4(sme2_bfcvtl_hb, TCG_CALL_NO_RWG, void, ptr, ptr, env, i= 32) diff --git a/target/arm/tcg/fp8_helper.c b/target/arm/tcg/fp8_helper.c index c62fb2ffd6..aad03b0817 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -138,3 +138,50 @@ void HELPER(sve2_bfcvt)(void *vd, void *vn, CPUARMStat= e *env, uint32_t desc) =20 fp8_cvt_finish(env, &ctx); } + +void HELPER(sme2_bfcvt_hb)(void *vd, void *vn, CPUARMState *env, uint32_t = desc) +{ + FP8Context ctx =3D fp8_src_start(env, desc, 0x3f); + fp8_input_fn *input_fmt =3D fp8_input_fmt[ctx.f8fmt]; + uint8_t *n =3D vn; + uint16_t *d0 =3D vd; + uint16_t *d1 =3D vd + sizeof(ARMVectorReg); + size_t oprsz =3D simd_oprsz(desc); + size_t nelem =3D oprsz / 2; + ARMVectorReg scratch; + + if (vectors_overlap(vd, 2, vn, 1)) { + n =3D memcpy(&scratch, vn, oprsz); + } + + for (size_t i =3D 0; i < nelem; ++i) { + d0[H2(i)] =3D fcvt_fp8_to_b16(n[H1(i)], input_fmt, + ctx.scale, &ctx.stat); + } + for (size_t i =3D 0; i < nelem; ++i) { + d1[H2(i)] =3D fcvt_fp8_to_b16(n[H1(i + nelem)], input_fmt, + ctx.scale, &ctx.stat); + } + + fp8_cvt_finish(env, &ctx); +} + +void HELPER(sme2_bfcvtl_hb)(void *vd, void *vn, CPUARMState *env, uint32_t= desc) +{ + FP8Context ctx =3D fp8_src_start(env, desc, 0x3f); + fp8_input_fn *input_fmt =3D fp8_input_fmt[ctx.f8fmt]; + uint8_t *n =3D vn; + uint16_t *d0 =3D vd; + uint16_t *d1 =3D vd + sizeof(ARMVectorReg); + size_t oprsz =3D simd_oprsz(desc); + size_t nelem =3D oprsz / 2; + + for (size_t i =3D 0; i < nelem; ++i) { + uint8_t e0 =3D n[H1(2 * i + 0)]; + uint8_t e1 =3D n[H1(2 * i + 1)]; + d0[H2(i)] =3D fcvt_fp8_to_b16(e0, input_fmt, ctx.scale, &ctx.stat); + d1[H2(i)] =3D fcvt_fp8_to_b16(e1, input_fmt, ctx.scale, &ctx.stat); + } + + fp8_cvt_finish(env, &ctx); +} diff --git a/target/arm/tcg/translate-sme.c b/target/arm/tcg/translate-sme.c index 88c1d78c40..2841b2b8cb 100644 --- a/target/arm/tcg/translate-sme.c +++ b/target/arm/tcg/translate-sme.c @@ -22,6 +22,7 @@ #include "helper-a64.h" #include "helper-sme.h" #include "helper-sve.h" +#include "helper-fp8.h" #include "translate.h" #include "translate-a64.h" #include "tcg/tcg-op.h" @@ -1532,6 +1533,24 @@ TRANS_FEAT(UUNPK_4bh, aa64_sme2, do_zz, a, 0, gen_he= lper_sme2_uunpk4_bh) TRANS_FEAT(UUNPK_4hs, aa64_sme2, do_zz, a, 0, gen_helper_sme2_uunpk4_hs) TRANS_FEAT(UUNPK_4sd, aa64_sme2, do_zz, a, 0, gen_helper_sme2_uunpk4_sd) =20 +static bool do_f8cvt(DisasContext *s, arg_zz_n *a, + gen_helper_gvec_2_ptr *fn, bool issrc2) +{ + if (fpmr_access_check(s) && sme_sm_enabled_check(s)) { + int svl =3D streaming_vec_reg_size(s); + tcg_gen_gvec_2_ptr(vec_full_reg_offset(s, a->zd), + vec_full_reg_offset(s, a->zn), + tcg_env, svl, svl, + issrc2 | (FPST_ZA << 2), fn); + } + return true; +} + +TRANS_FEAT(BF1CVT, aa64_sme2_f8cvt, do_f8cvt, a, gen_helper_sme2_bfcvt_hb,= 0) +TRANS_FEAT(BF2CVT, aa64_sme2_f8cvt, do_f8cvt, a, gen_helper_sme2_bfcvt_hb,= 1) +TRANS_FEAT(BF1CVTL, aa64_sme2_f8cvt, do_f8cvt, a, gen_helper_sme2_bfcvtl_h= b, 0) +TRANS_FEAT(BF2CVTL, aa64_sme2_f8cvt, do_f8cvt, a, gen_helper_sme2_bfcvtl_h= b, 1) + static bool do_zipuzp_4(DisasContext *s, arg_zz_e *a, gen_helper_gvec_2 * const fn[5]) { diff --git a/target/arm/tcg/sme.decode b/target/arm/tcg/sme.decode index 7a8e1abb59..df9586c1a5 100644 --- a/target/arm/tcg/sme.decode +++ b/target/arm/tcg/sme.decode @@ -853,6 +853,11 @@ UUNPK_4bh 11000001 011 10101 111000 ....0 ...01 = @zz_4x2_n1 UUNPK_4hs 11000001 101 10101 111000 ....0 ...01 @zz_4x2_n1 UUNPK_4sd 11000001 111 10101 111000 ....0 ...01 @zz_4x2_n1 =20 +BF1CVT 11000001 011 00110 111000 ..... ....0 @zz_2x1 +BF2CVT 11000001 111 00110 111000 ..... ....0 @zz_2x1 +BF1CVTL 11000001 011 00110 111000 ..... ....1 @zz_2x1 +BF2CVTL 11000001 111 00110 111000 ..... ....1 @zz_2x1 + ZIP_4 11000001 esz:2 1 10110 111000 ...00 ... 00 \ &zz_e zd=3D%zd_ax4 zn=3D%zn_ax4 ZIP_4 11000001 001 10111 111000 ...00 ... 00 \ --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779302064; cv=none; d=zohomail.com; s=zohoarc; b=XqTb+AfpxPIeqVVeOT7vGVjBHFZk0p9wEiq5IWaXCst4fZQaMe+gLgXa68xgObqS9DhITIXuRosHR1CpWWHpdmBGra099HKqwQHarW0s1EMDNe2aGM1Rq4+YWLXF9Q9JDs7CASzBSUIIT5pLpJXYlnKPb74mnDe8LzIg8LMOxX0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779302064; 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=VVvA76owxH9PQty/SqJJ/UFG85eVlU6TRWjKCXix/dI=; b=jSjHUyTS7wfzyp2/WKS1jH8TaWdThz1IFEhx+JdBiPo50cTAmHBoa+3XLURHruX3GofKB0LXgKcR1kbHEOBNElemJ89K+KyVd7GuhuXCNm7ZHgwBPdGbQK+LKrgNBqOM6rtLx6YE40QG3YDuY7mhoHDKARihs2H5w59kBZw0lP8= 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 1779302064733496.94362832990316; Wed, 20 May 2026 11:34:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlZM-0007s8-FM; Wed, 20 May 2026 14:23:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wPlZE-0007ah-IE for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:52 -0400 Received: from mail-pj1-x1032.google.com ([2607:f8b0:4864:20::1032]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlZ8-0000gh-VP for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:52 -0400 Received: by mail-pj1-x1032.google.com with SMTP id 98e67ed59e1d1-3664df30f53so3098630a91.1 for ; Wed, 20 May 2026 11:22:45 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301354; x=1779906154; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=VVvA76owxH9PQty/SqJJ/UFG85eVlU6TRWjKCXix/dI=; b=u7R8ZgKIjflISJRf2jYcK0Up1axenr22uYTgmH+jGTw1S8uajS+WOLoWyUApahxhMe MoPtYzPJJ7DMszmDMwebH5CFEl9THjbtzXRZAWigFiDDboHoVv6ecQw5NjTOp3a7uPrN i1QGnaRjHeCtv+Vv+pRNsdYOhoF7x3W3v9miTDvJy+MbrfE8dDsmAIb16Hz7W+K/mCov 8sR7maF2ep4/jzc/N8pVMv08n740lVcs1bsu8wYb9PGmKcJFvWSW2GNNn61CI6GObuMD TnS6PiBc/PvfJnD86AZKakJl3NPy5MBeuLk5ZmJABXrruqfWnOSoTPl2cx+9TAUz1sar kcQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301354; x=1779906154; 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; bh=VVvA76owxH9PQty/SqJJ/UFG85eVlU6TRWjKCXix/dI=; b=LJAIB7PSzD5dqS1h/Ba3bw6EgjAEM8gLDnY9S94f0P4jA99SiChuKV562boKR61tLo v9mFHv5MLWxPu5eVE6D0GtI1AiLgiZrSr/JVL9hnlMeUJrx1poAVfFh5V85a/VIFNh21 udm40WmgGdKENCbygqnpiZQSufanMpyHnqPiSSNlvaQ1rqPBgPwQO7TU8YRB6boPnrcJ 59DFzv82wTz2bbI0r4c0dNCx1PRhnqWnCn4lbPplld2O3bCmeQsUdp7pjsFYXUJrrY4r iymTsgGyyL+VdmNDv220zLok/9khqENo+kIBnhudYQ2Ofo3vd+/5C7oEC7LvDKQ85HAy pvhw== X-Gm-Message-State: AOJu0YzPXqf4pMK0ebhT8QZujd0T4bleUeGxjRwRS5GOzSSAKeLV1Pi6 5OiMe1dFOBa9tf7OlP3+3qTzr4bN95Wx18zYiJFREkx6nsCcRjYAm/EFbXYxGL4wEWeolTAj2PV uFkBrr3I= X-Gm-Gg: Acq92OHPTQAJqg9KsjoY4fEwCGDj4znODaCNDAL8L1a0gv13V3wzwQARtNXfM5bAh/4 J6OUNxE5116uRbfBrkKVXjSSUJX+yvVaEy5P7n/b9CZ1TgH6dg3BaJYmCmXtEJ9yWybl5Otm1tq w9mygM2A7mVSCmMbjd7P1yu9y+wiTl5kl6uM82VFVtEHZhmRburiRYIODKLybntC5+tcYmvfIcI sWtYjoPfNHJKSz72bCbkcZjqyAg3ijLNFTcQrrrMpK5PeVP90+Zf5NGq26Blmp7T/nbOx5+vAu0 mAjPdLH2VZNMQVuR/4G6SFh+I9tus1lexOx7zraysp9KKd+7HxMDdi+2jflNXtE5iRvOsaNvlOh TfIMsGHTTDJfP+RgvY8qtI6V+5LtmC38bJVe1EPcJdKPvoJdSaZYt+6N66e05W1HyzfIrn5nJ2x tGmBhAugEqVIzAaZyOPUMAehJV0gzvouC18XbHmKQ= X-Received: by 2002:a17:90b:5904:b0:367:d850:6a5f with SMTP id 98e67ed59e1d1-36951c9f53dmr25853314a91.25.1779301354168; Wed, 20 May 2026 11:22:34 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 28/64] target/arm: Implement F1CVTL, F1CVTL2, F2CVTL, F2CVTL2 for AdvSIMD Date: Wed, 20 May 2026 11:21:37 -0700 Message-ID: <20260520182213.872945-29-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1032; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1032.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1779302066889154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/helper-fp8-defs.h | 2 ++ target/arm/tcg/fp8_helper.c | 29 +++++++++++++++++++++++++++++ target/arm/tcg/translate-a64.c | 3 +++ target/arm/tcg/a64.decode | 3 +++ 4 files changed, 37 insertions(+) diff --git a/target/arm/tcg/helper-fp8-defs.h b/target/arm/tcg/helper-fp8-d= efs.h index 966f83d796..718463422b 100644 --- a/target/arm/tcg/helper-fp8-defs.h +++ b/target/arm/tcg/helper-fp8-defs.h @@ -7,3 +7,5 @@ DEF_HELPER_FLAGS_4(advsimd_bfcvtl, TCG_CALL_NO_RWG, void, p= tr, ptr, env, i32) DEF_HELPER_FLAGS_4(sve2_bfcvt, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32) DEF_HELPER_FLAGS_4(sme2_bfcvt_hb, TCG_CALL_NO_RWG, void, ptr, ptr, env, i3= 2) DEF_HELPER_FLAGS_4(sme2_bfcvtl_hb, TCG_CALL_NO_RWG, void, ptr, ptr, env, i= 32) + +DEF_HELPER_FLAGS_4(advsimd_fcvtl_hb, TCG_CALL_NO_RWG, void, ptr, ptr, env,= i32) diff --git a/target/arm/tcg/fp8_helper.c b/target/arm/tcg/fp8_helper.c index aad03b0817..0f3c279696 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -103,6 +103,14 @@ static bfloat16 fcvt_fp8_to_b16(uint8_t x, fp8_input_f= n *f8fmt, return bfloat16_round_pack_canonical(&p, s); } =20 +static float16 fcvt_fp8_to_f16(uint8_t x, fp8_input_fn *f8fmt, + int scale, float_status *s) +{ + FloatParts64 p =3D f8fmt(x, s); + p =3D parts64_scalbn(&p, scale, s); + return float16_round_pack_canonical(&p, s); +} + void HELPER(advsimd_bfcvtl)(void *vd, void *vn, CPUARMState *env, uint32_t= desc) { FP8Context ctx =3D fp8_src_start(env, desc, 0x3f); @@ -123,6 +131,27 @@ void HELPER(advsimd_bfcvtl)(void *vd, void *vn, CPUARM= State *env, uint32_t desc) clear_tail(vd, 16, simd_maxsz(desc)); } =20 +void HELPER(advsimd_fcvtl_hb)(void *vd, void *vn, + CPUARMState *env, uint32_t desc) +{ + FP8Context ctx =3D fp8_src_start(env, desc, 0xf); + fp8_input_fn *input_fmt =3D fp8_input_fmt[ctx.f8fmt]; + uint8_t *n =3D vn, scratch[16]; + float16 *d =3D vd; + + if (vd =3D=3D vn) { + n =3D memcpy(scratch, vn, 16); + } + n +=3D ctx.high * 8; + + for (size_t i =3D 0; i < 8; ++i) { + d[H2(i)] =3D fcvt_fp8_to_f16(n[H1(i)], input_fmt, ctx.scale, &ctx.= stat); + } + + fp8_cvt_finish(env, &ctx); + clear_tail(vd, 16, simd_maxsz(desc)); +} + void HELPER(sve2_bfcvt)(void *vd, void *vn, CPUARMState *env, uint32_t des= c) { FP8Context ctx =3D fp8_src_start(env, desc, 0x3f); diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index 085e7e3b95..565053a1a4 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -10643,6 +10643,9 @@ static bool do_f8cvt(DisasContext *s, arg_qrr_e *a, return true; } =20 +TRANS_FEAT(F1CVTL, aa64_f8cvt, do_f8cvt, a, gen_helper_advsimd_fcvtl_hb, f= alse) +TRANS_FEAT(F2CVTL, aa64_f8cvt, do_f8cvt, a, gen_helper_advsimd_fcvtl_hb, t= rue) + TRANS_FEAT(BF1CVTL, aa64_f8cvt, do_f8cvt, a, gen_helper_advsimd_bfcvtl, fa= lse) TRANS_FEAT(BF2CVTL, aa64_f8cvt, do_f8cvt, a, gen_helper_advsimd_bfcvtl, tr= ue) =20 diff --git a/target/arm/tcg/a64.decode b/target/arm/tcg/a64.decode index b7aac148f2..26d31d0a33 100644 --- a/target/arm/tcg/a64.decode +++ b/target/arm/tcg/a64.decode @@ -1910,6 +1910,9 @@ URSQRTE_v 0.10 1110 101 00001 11001 0 ..... ...= .. @qrr_s =20 FCVTL_v 0.00 1110 0.1 00001 01111 0 ..... ..... @qrr_sd =20 +F1CVTL 0.10 1110 001 00001 01111 0 ..... ..... @qrr_h +F2CVTL 0.10 1110 011 00001 01111 0 ..... ..... @qrr_h + BF1CVTL 0.10 1110 101 00001 01111 0 ..... ..... @qrr_h BF2CVTL 0.10 1110 111 00001 01111 0 ..... ..... @qrr_h =20 --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301869; cv=none; d=zohomail.com; s=zohoarc; b=XpuWA8twBqj93egWoSEvhmyqJH9MAPpztAo6c0EGSsi7X4qVv78FcCPWvL0M/gsZLl2LLBFBeermLW+1sOvFIDe2SLwZgGLvn2G4SLBzWvJMF54J1qwSKLvaTGr1GcjDdu/3P6ghnOPfx0WtUzWHp472H2mSrlD97H3YjHJj7ZE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301869; 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=6ZqJ9crbI/VVYm4sDhLmU7TwL1lWbYpvdrgfl/UPxcc=; b=BAYiN54u/RxPgltwVD60jaK2FI6B0wvOhIlvIciUVS9w9Ke7fRoTBWTUOGZ14oMwtPP4jwfPAX5v/7k18mlzcLcwhMbRrAkvTdhKeLqJv1Hbl/KMIH6/TIqJDMc2quYP8HcrCiJy+L9oW5vUnZ6GgWRsf5YVChHHrVkbK3gLgpQ= 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 1779301869967621.3078064795003; Wed, 20 May 2026 11:31:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlbc-0002rU-5u; Wed, 20 May 2026 14:25: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 1wPlZG-0007cp-0o for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:54 -0400 Received: from mail-pj1-x102a.google.com ([2607:f8b0:4864:20::102a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlZ9-0000hC-1Y for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:53 -0400 Received: by mail-pj1-x102a.google.com with SMTP id 98e67ed59e1d1-36936dcf19dso2458903a91.0 for ; Wed, 20 May 2026 11:22:46 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301355; x=1779906155; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=6ZqJ9crbI/VVYm4sDhLmU7TwL1lWbYpvdrgfl/UPxcc=; b=m6eOJEomAOyMU+xuPFi027L46qrLu8YJiJxQiKZcnA3Y/4z3e6dxZqDUKRF5tgG43o /GF6D6vG2RLUi1b/weoSjpqx1srkLuUr4WGlck5tO12dzQa6UKgGRqd0leTGusmPc5eI Q/g+sV0wNecA773k4LnaSIuw3n994K5/jmJrqqNJb0Pc/SUL7LvwqPxTDspZVe6eHzs2 25NBB0yTh9OQpZ8MUQWhIEdeU24X4Zynt4aQ9pWY7Ke5iZImoTVFxJ1UyZGjnOSriUnZ GdxZGLfMbxSRGi1HN6XhwXLoLm69Tf3vO1XiG6KlXBMPY2xmghpxpOjs3FRqdnHEGgNa LkUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301355; x=1779906155; 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; bh=6ZqJ9crbI/VVYm4sDhLmU7TwL1lWbYpvdrgfl/UPxcc=; b=KnvbUPr+cKWRmcXzIopntTYbAkP/f3Zel6DdnI95H446B+F7oHiMTZHeZY50skreeh Z2RgdD9hCVjfqIiGzZ2IUa24cr6/LyHhZsFXuvOfpLBnN3OqFHaP6rRf/KiLdS+02j99 IUFaes0Qwe3c1Yp8U5Nj9ukO6Cnz1IEA7kTPo70Qll7UFj1NDidEDymBwE6u8XzlWpgQ p9R5g2TjPKCZlH7Q3WhsZKta9v538esLTELt08yTG6MyYVnnAAf+/fcyQ83glNpauly7 gT/RurXdGkJcpxuD5xK4dzNW7qPKLO3zZaspKE/6QouCLdMa1osZB7kJhh0L/XQIiLC0 znew== X-Gm-Message-State: AOJu0Yx+aZCwZ21MPO4ESmjmSbdmjFdr/A9522tnOIZL1PM6Ecp0a/Ev zbiVKQpvgONIq26ZMIg/wENRLFzpyxRF/EDFwH0mO2/1J31K1BxdLbw4R8lI47LWzfoNoELhPGf FYp+hrIM= X-Gm-Gg: Acq92OG6f4HwL4YwO+XRtNW0ySA7YOZ9s/lB/o3iCaj/2DAslvs1rNhmTrhHXkcrnZD 8Shx5SrhAYvTRqF8QiuA6LAn7EtCnon04ezkcQ1PL4G5ryucEafAea4Zyr1YQlX3pZ54SVC6TT3 T71SYlEi7eerLFvl0tDCvrBqQBrao1StY55eDxjF3EyyXLlynxlZTJmPIX7/wVWNO/mTZjh6T0m 1702eoj81pZueg8iy9HS2xx8cN+0nn0xXVchoEe6mMb7vHg8O7B6FMo5gVqmvQ1FoO1G+b1IiEU nufO0Ldx30Glcmq9BgOecws7MSQ2k/khKFd1Nna8LLm3aKmSWd8mNeUWewQUUkbNbuOhswYDBFj dc70GYvu7ofmG8iwgOsZbKEqJPRS3Z19rrOQgda3+GjEsAhNwPOS7LlKgogpeG0HQI+0EX6OTqW 4c1PTCFMojnbNThz9fB3Il3WBXk1hmEUcZItU8y4A= X-Received: by 2002:a17:90b:4a8f:b0:367:e244:4c40 with SMTP id 98e67ed59e1d1-36951c990ecmr23656096a91.26.1779301354976; Wed, 20 May 2026 11:22:34 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 29/64] target/arm: Implement F1CVT, F1CVTLT, F2CVT, F2CVTLT for SVE Date: Wed, 20 May 2026 11:21:38 -0700 Message-ID: <20260520182213.872945-30-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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::102a; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102a.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: 1779301871857154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/helper-fp8-defs.h | 1 + target/arm/tcg/fp8_helper.c | 16 ++++++++++++++++ target/arm/tcg/translate-sve.c | 9 +++++++++ target/arm/tcg/sve.decode | 5 +++++ 4 files changed, 31 insertions(+) diff --git a/target/arm/tcg/helper-fp8-defs.h b/target/arm/tcg/helper-fp8-d= efs.h index 718463422b..3021dafd44 100644 --- a/target/arm/tcg/helper-fp8-defs.h +++ b/target/arm/tcg/helper-fp8-defs.h @@ -9,3 +9,4 @@ DEF_HELPER_FLAGS_4(sme2_bfcvt_hb, TCG_CALL_NO_RWG, void, pt= r, ptr, env, i32) DEF_HELPER_FLAGS_4(sme2_bfcvtl_hb, TCG_CALL_NO_RWG, void, ptr, ptr, env, i= 32) =20 DEF_HELPER_FLAGS_4(advsimd_fcvtl_hb, TCG_CALL_NO_RWG, void, ptr, ptr, env,= i32) +DEF_HELPER_FLAGS_4(sve2_fcvt_hb, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32) diff --git a/target/arm/tcg/fp8_helper.c b/target/arm/tcg/fp8_helper.c index 0f3c279696..75c89203fe 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -168,6 +168,22 @@ void HELPER(sve2_bfcvt)(void *vd, void *vn, CPUARMStat= e *env, uint32_t desc) fp8_cvt_finish(env, &ctx); } =20 +void HELPER(sve2_fcvt_hb)(void *vd, void *vn, CPUARMState *env, uint32_t d= esc) +{ + FP8Context ctx =3D fp8_src_start(env, desc, 0xf); + fp8_input_fn *input_fmt =3D fp8_input_fmt[ctx.f8fmt]; + uint8_t *n =3D vn; + uint16_t *d =3D vd; + size_t nelem =3D simd_oprsz(desc) / 2; + + for (size_t i =3D 0; i < nelem; ++i) { + d[H2(i)] =3D fcvt_fp8_to_f16(n[H1(2 * i + ctx.high)], + input_fmt, ctx.scale, &ctx.stat); + } + + fp8_cvt_finish(env, &ctx); +} + void HELPER(sme2_bfcvt_hb)(void *vd, void *vn, CPUARMState *env, uint32_t = desc) { FP8Context ctx =3D fp8_src_start(env, desc, 0x3f); diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 9bab5feb93..5200f3d034 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -4081,6 +4081,15 @@ static bool do_f8cvt(DisasContext *s, arg_rr_esz *a, return true; } =20 +TRANS_FEAT(F1CVT, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, + gen_helper_sve2_fcvt_hb, false, false) +TRANS_FEAT(F2CVT, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, + gen_helper_sve2_fcvt_hb, true, false) +TRANS_FEAT(F1CVTLT, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, + gen_helper_sve2_fcvt_hb, false, true) +TRANS_FEAT(F2CVTLT, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, + gen_helper_sve2_fcvt_hb, true, true) + TRANS_FEAT(BF1CVT, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, gen_helper_sve2_bfcvt, false, false) TRANS_FEAT(BF2CVT, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index e7984fa8e0..ca110f4bc1 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -1091,6 +1091,11 @@ FMINQV 01100100 .. 010 111 101 ... ..... ..= ... @rd_pg_rn FRECPE 01100101 .. 001 110 001100 ..... ..... @rd_rn FRSQRTE 01100101 .. 001 111 001100 ..... ..... @rd_rn =20 +F1CVT 01100101 00 001 000 001100 ..... ..... @rd_rn_e0 +F2CVT 01100101 00 001 000 001101 ..... ..... @rd_rn_e0 +F1CVTLT 01100101 00 001 001 001100 ..... ..... @rd_rn_e0 +F2CVTLT 01100101 00 001 001 001101 ..... ..... @rd_rn_e0 + BF1CVT 01100101 00 001 000 001110 ..... ..... @rd_rn_e0 BF2CVT 01100101 00 001 000 001111 ..... ..... @rd_rn_e0 BF1CVTLT 01100101 00 001 001 001110 ..... ..... @rd_rn_e0 --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301424; cv=none; d=zohomail.com; s=zohoarc; b=TZSFEDJQ/L835i+Tbr4VHBZLIkV5LXt3MVOdSoXWb1Va6olIxQTM04tY1cANngB8t6kT0m1u77UfzINe44Hj17J8MKZZ4H+P8FsKikI+Yqf5fGkb6xIGu4tgZDbDRtTFsv35Lh57yNoYeB6loH+fzJn7vMGzbIMNnh6k3WjFoKQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301424; 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=mZG6EW6/GfRBE1GtxZh7D+KSpEH9mqbRD1NNXwi1658=; b=eSaMEx6MvZy2Ok4IzF5IPEfzARuUzyeyp7Z/C0TYCInpO2BCVQHTlXszYefNpfH3p9zauvZiFh6XBgYvMaMnnmNOL1tG84o84r7LD3T+Xc9QmKaInRWf07e6qbt5Nym/q4qzfRES73P9SEk75AaXtD8UpUlCrzKrzOsgDDzseX0= 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 1779301424223777.4917952847088; Wed, 20 May 2026 11:23:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlZN-0007uK-9H; Wed, 20 May 2026 14:23:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wPlZB-0007PC-HY for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:49 -0400 Received: from mail-pj1-x102a.google.com ([2607:f8b0:4864:20::102a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlZ6-0000f6-LM for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:48 -0400 Received: by mail-pj1-x102a.google.com with SMTP id 98e67ed59e1d1-36608b2f2dcso3219381a91.2 for ; Wed, 20 May 2026 11:22:43 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301356; x=1779906156; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=mZG6EW6/GfRBE1GtxZh7D+KSpEH9mqbRD1NNXwi1658=; b=NE5VgrMgEXVJ2PVZGXOZc0G9cj96zAZwfts1EB0R7/eF7drgShGCzVGpa5f9HspQ8t jvemq+mAspzptw7NYJC2i2ZDT+n3SupZUF97kaO1hdjTTk3kyADql3B44Gfo0u1fXo4H FIWQyFFByDQGe3D9deiAYneOJ7nF6Zt+y9jmwYpTIfaNkzCH6UwHq+uQbpsClEKuu3zl D/pFur2aqjRiZUczBXqGFn9v7FuyfKIeVGI7k77lW9Lt0pJX7JhOYrxwQkOsFLujR0qP K2SFQUVZdCIhgNHU766ViHAZ0miH98bxIWGEEE5B5pBMMuVCf8QSpXWeHgrane8MsVC0 ThuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301356; x=1779906156; 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; bh=mZG6EW6/GfRBE1GtxZh7D+KSpEH9mqbRD1NNXwi1658=; b=BJ6W7Mg4amMGoyTQ5f5wpT68hP4peRfu3OKLwz0k7BJWr77nWMjYWY863L5BSD6TrC nltQbQUQD2qTssBKQ4/u2cMiqEEDQx9/1rgVLoDZxLR7IV94nOT4rreYOhuYLnOUXLum 5vyIbsSzyrILRbIWcs0MrYtsPnA7nEH7eSthZGcO5spbCz7d0mZwODzkXAwjdktfu88H xB/LeJcMLvb+AbKbs0S0YRFLHf8/MIuwRD0mkybn2neblQSpnJjP/KM5gqD8xeD7soQH ZqMai2NFyoOY09tGENl2jDXPJE6PTjqgI1s5RO+eh4P/NoWkQvnkCJyubD3RNuopNLgm k6Kw== X-Gm-Message-State: AOJu0YxUdB0ZdRG1PExhywbC0lg5T1qAfpqLzXhg5L0KMBd3W8ytWmzO 1d80eGhiz3PQYbFErSazM86DTEdKaDbsE8epMi9dhkNjY9/yJonRzwNLmLuqkkFtUAk+JSH1P91 Kh019aTk= X-Gm-Gg: Acq92OEYluCbjZsn/8KT0BXdLrtKbkJPLDK6o4Q5V76/871Yd2pGoHeHmZBbLKBWDHg CUeggkKxCqmZT4oP7cVs7lO27XvKae+AJQhv/YmUVz4mcfTbshUizsnU9GiGbrZToX5vKGFxNFE LmRqFWbjQV3fynN+1nrJa8vJly4ldogfyR0TBdI9qBKLX7WfD/AmQhmnv9YQh0EYFJ0qlzOrDPp lVI2mO1zUuvz+A5fjY4totR6XgA1jN+1xhUuKY0xHxk1/OaOZR9n736+sZRBl1lP2819Gl742SV U9Otl/DYF4DWvDiJ9X3DI3TWRC88QC512u9PamlOsUaMCRF8SFSYLp3Opas5ktsA1aVtwTze4Gt XIOFrkiTM8p3ONAlLEzc+eczNesnVdCvTcpPRCtwAMAN2fkijmAhxmNCQ+PUNolHBxA5hrceD0H zVwb4hBPGl0Jna8bhF7ym+DBpDdIp7INGs+rOftRA= X-Received: by 2002:a17:90b:3ec1:b0:369:971:4888 with SMTP id 98e67ed59e1d1-36951a6d3e8mr23836732a91.15.1779301355634; Wed, 20 May 2026 11:22:35 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 30/64] target/arm: Implement F1CVT, F1CVTL, F2CVT, F2CVTL for SME Date: Wed, 20 May 2026 11:21:39 -0700 Message-ID: <20260520182213.872945-31-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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::102a; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102a.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: 1779301425531154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/helper-fp8-defs.h | 2 ++ target/arm/tcg/fp8_helper.c | 47 ++++++++++++++++++++++++++++++++ target/arm/tcg/translate-sme.c | 5 ++++ target/arm/tcg/sme.decode | 5 ++++ 4 files changed, 59 insertions(+) diff --git a/target/arm/tcg/helper-fp8-defs.h b/target/arm/tcg/helper-fp8-d= efs.h index 3021dafd44..b5dc2b7064 100644 --- a/target/arm/tcg/helper-fp8-defs.h +++ b/target/arm/tcg/helper-fp8-defs.h @@ -10,3 +10,5 @@ DEF_HELPER_FLAGS_4(sme2_bfcvtl_hb, TCG_CALL_NO_RWG, void,= ptr, ptr, env, i32) =20 DEF_HELPER_FLAGS_4(advsimd_fcvtl_hb, TCG_CALL_NO_RWG, void, ptr, ptr, env,= i32) DEF_HELPER_FLAGS_4(sve2_fcvt_hb, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32) +DEF_HELPER_FLAGS_4(sme2_fcvt_hb, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32) +DEF_HELPER_FLAGS_4(sme2_fcvtl_hb, TCG_CALL_NO_RWG, void, ptr, ptr, env, i3= 2) diff --git a/target/arm/tcg/fp8_helper.c b/target/arm/tcg/fp8_helper.c index 75c89203fe..e2330177ec 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -211,6 +211,33 @@ void HELPER(sme2_bfcvt_hb)(void *vd, void *vn, CPUARMS= tate *env, uint32_t desc) fp8_cvt_finish(env, &ctx); } =20 +void HELPER(sme2_fcvt_hb)(void *vd, void *vn, CPUARMState *env, uint32_t d= esc) +{ + FP8Context ctx =3D fp8_src_start(env, desc, 0xf); + fp8_input_fn *input_fmt =3D fp8_input_fmt[ctx.f8fmt]; + uint8_t *n =3D vn; + uint16_t *d0 =3D vd; + uint16_t *d1 =3D vd + sizeof(ARMVectorReg); + size_t oprsz =3D simd_oprsz(desc); + size_t nelem =3D oprsz / 2; + ARMVectorReg scratch; + + if (vectors_overlap(vd, 2, vn, 1)) { + n =3D memcpy(&scratch, vn, oprsz); + } + + for (size_t i =3D 0; i < nelem; ++i) { + d0[H2(i)] =3D fcvt_fp8_to_f16(n[H1(i)], input_fmt, + ctx.scale, &ctx.stat); + } + for (size_t i =3D 0; i < nelem; ++i) { + d1[H2(i)] =3D fcvt_fp8_to_f16(n[H1(i + nelem)], input_fmt, + ctx.scale, &ctx.stat); + } + + fp8_cvt_finish(env, &ctx); +} + void HELPER(sme2_bfcvtl_hb)(void *vd, void *vn, CPUARMState *env, uint32_t= desc) { FP8Context ctx =3D fp8_src_start(env, desc, 0x3f); @@ -230,3 +257,23 @@ void HELPER(sme2_bfcvtl_hb)(void *vd, void *vn, CPUARM= State *env, uint32_t desc) =20 fp8_cvt_finish(env, &ctx); } + +void HELPER(sme2_fcvtl_hb)(void *vd, void *vn, CPUARMState *env, uint32_t = desc) +{ + FP8Context ctx =3D fp8_src_start(env, desc, 0xf); + fp8_input_fn *input_fmt =3D fp8_input_fmt[ctx.f8fmt]; + uint8_t *n =3D vn; + uint16_t *d0 =3D vd; + uint16_t *d1 =3D vd + sizeof(ARMVectorReg); + size_t oprsz =3D simd_oprsz(desc); + size_t nelem =3D oprsz / 2; + + for (size_t i =3D 0; i < nelem; ++i) { + uint8_t e0 =3D n[H1(2 * i + 0)]; + uint8_t e1 =3D n[H1(2 * i + 1)]; + d0[H2(i)] =3D fcvt_fp8_to_f16(e0, input_fmt, ctx.scale, &ctx.stat); + d1[H2(i)] =3D fcvt_fp8_to_f16(e1, input_fmt, ctx.scale, &ctx.stat); + } + + fp8_cvt_finish(env, &ctx); +} diff --git a/target/arm/tcg/translate-sme.c b/target/arm/tcg/translate-sme.c index 2841b2b8cb..0cbad3e006 100644 --- a/target/arm/tcg/translate-sme.c +++ b/target/arm/tcg/translate-sme.c @@ -1546,6 +1546,11 @@ static bool do_f8cvt(DisasContext *s, arg_zz_n *a, return true; } =20 +TRANS_FEAT(F1CVT, aa64_sme2_f8cvt, do_f8cvt, a, gen_helper_sme2_fcvt_hb, 0) +TRANS_FEAT(F2CVT, aa64_sme2_f8cvt, do_f8cvt, a, gen_helper_sme2_fcvt_hb, 1) +TRANS_FEAT(F1CVTL, aa64_sme2_f8cvt, do_f8cvt, a, gen_helper_sme2_fcvtl_hb,= 0) +TRANS_FEAT(F2CVTL, aa64_sme2_f8cvt, do_f8cvt, a, gen_helper_sme2_fcvtl_hb,= 1) + TRANS_FEAT(BF1CVT, aa64_sme2_f8cvt, do_f8cvt, a, gen_helper_sme2_bfcvt_hb,= 0) TRANS_FEAT(BF2CVT, aa64_sme2_f8cvt, do_f8cvt, a, gen_helper_sme2_bfcvt_hb,= 1) TRANS_FEAT(BF1CVTL, aa64_sme2_f8cvt, do_f8cvt, a, gen_helper_sme2_bfcvtl_h= b, 0) diff --git a/target/arm/tcg/sme.decode b/target/arm/tcg/sme.decode index df9586c1a5..d6192eb59d 100644 --- a/target/arm/tcg/sme.decode +++ b/target/arm/tcg/sme.decode @@ -853,6 +853,11 @@ UUNPK_4bh 11000001 011 10101 111000 ....0 ...01 = @zz_4x2_n1 UUNPK_4hs 11000001 101 10101 111000 ....0 ...01 @zz_4x2_n1 UUNPK_4sd 11000001 111 10101 111000 ....0 ...01 @zz_4x2_n1 =20 +F1CVT 11000001 001 00110 111000 ..... ....0 @zz_2x1 +F2CVT 11000001 101 00110 111000 ..... ....0 @zz_2x1 +F1CVTL 11000001 001 00110 111000 ..... ....1 @zz_2x1 +F2CVTL 11000001 101 00110 111000 ..... ....1 @zz_2x1 + BF1CVT 11000001 011 00110 111000 ..... ....0 @zz_2x1 BF2CVT 11000001 111 00110 111000 ..... ....0 @zz_2x1 BF1CVTL 11000001 011 00110 111000 ..... ....1 @zz_2x1 --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301484; cv=none; d=zohomail.com; s=zohoarc; b=Vc98ehTso0VcEOxiLhXEnAHLeJwMJ1+N/QsGLZS3laLVfc2YPNnyFdJwipzK4N8rF9ZqTj9EQIeRrsdeDkXx+mcrqdWYaCZpe9/Xf53VAKZbMRvvppCCh+5ZFiqe3Iy5n59OKMDFnb9gqsesB9pJSm8EpDymigwn4GFa3BPZDpM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301484; 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=zh7izvt/+JUmVyVEEqWuuAxw3YWxv0HfbaaUMb3/lxE=; b=WfpHvqjMBoNxDsRzKXzDi3fz5HhwfSi2zLX0L1sC+wqrr1vKhp0dzlSZTWTsQaFyoax75gatIVOr3m7k99Y59MCaOaRj/q9GDGThP0rcAZhSB10i/Mh7Q9jvZvHtYlF4Yjx6ToFkA9RgNxk9jgg01P4PbgESW+3Jzdm0kX50JW0= 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 1779301484045915.7467215463456; Wed, 20 May 2026 11:24:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlZT-0008C9-2d; Wed, 20 May 2026 14:23:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wPlZJ-0007l2-Tu for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:58 -0400 Received: from mail-pj1-x1029.google.com ([2607:f8b0:4864:20::1029]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlZ9-0000fr-56 for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:57 -0400 Received: by mail-pj1-x1029.google.com with SMTP id 98e67ed59e1d1-366330b6751so4143447a91.1 for ; Wed, 20 May 2026 11:22:44 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301356; x=1779906156; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=zh7izvt/+JUmVyVEEqWuuAxw3YWxv0HfbaaUMb3/lxE=; b=sxVzo1CsVOq4+Wy5Kkh2vyPa4czih1yYY5U3sR7KwfEuhhMW3m56J9VfYsstILKSXg 3efCqjIoFYsI4mmY+IHSOadlSsR6u0xCjpWVMkzzeqfsNch+UCZSLUMuP71viYFg89jL sz8eQ2woTTTFLYtFVKqb+MlsHUlHi9jZH7D5EYLu5KO/AHt8baFHmak+dMtCTqVWOAEc MHCjirL0ZFUVXlzynnnJJ2/4Cv75agnVrFkZsTv3qGmCwX/Bzf9Gn4oDx8jRjCJ9js6s WFHPDHGdVzldryC6BllWIoFyNavBalvVpAUTgZyDVL7DOmQfn5ez+f7MQS2SlnA3RDC7 2MeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301356; x=1779906156; 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; bh=zh7izvt/+JUmVyVEEqWuuAxw3YWxv0HfbaaUMb3/lxE=; b=BbaOhcPt3SkND85KRL0eh0etE+CRIGgxmR5iFPh5Ptx70NtduOAEOJi5DzV7IaeDUN ofl80noACVYNMyzoD2tCajXiItIzKzb7EwzNDlepj6CNY2MzdTrbCHfLSbiCOLuyOku/ YzCGm2DwYmNWR8rYdY5oDF3V9VSssakK54/1sbQRbFd8TITbce0uHJGG5nTsnw6ziBtI tsAfNc2C8aevTXl9PJLFQoiI7L24SM7jdiuPd+tuq4I6i9DaKx4ciAxeRdYI7H2O9RrX t62mUmWXbW9AtwX5hT2x4bcfMBngCSW73ns93laFcqUg+h079EsccjZxmeN0lvF/SARi RfMA== X-Gm-Message-State: AOJu0Yz61EvZZv2nTOwY7n7nJ0k/wAYx6+KNKr+j7eSyw54Fn72T7Dji t3vHXT6YYAPssjoUnntxAdlao1hDFU/iI7cL4aKcHbAhhHR+kSO4SKAs6Yd7/yDdLh5e6aRXT/x T62y1qDQ= X-Gm-Gg: Acq92OEy2yU8jCnBo32PXbwNUz9DdwxMPH2c9zeRAalo8KbmK6yJj8IZdLtLnPUO19f JUEDxA7pfratbI/uZvsYgPoARZQlds55uDqmcp3srS2uMxSVAGNEU0OWBZddQZKrs1VR2bWbra9 nYR4Zur016FGx074GD4PLbvTFP6VYxmWvsqqcH93JhheLAFA/k43cbu5kGHzMLCd0qD9AUUpaTM MgjCArm2+nptYWhshZAWgBjJJ8JpBqPPcQmq/lHOCh+ilIWakGYvJuZq6ZxZFMfc0fhU0mWqpl9 wJtqQbE1dUEzm8g2tPrqlTMvljsjaIzI6+CFaaVNhLWVHeOo2Y8uOkIw2gPbkzMlIuXHLBWJK9g LHMPzIth1WQcQENgec2QOsCOOvdr6bTjiUrXLRbabdH8d76/v/JEhFlUnKCqJgyNVB59BWn+2z9 9B6OlPQpGMjzDFQlDgw77SLG9M1aQ6 X-Received: by 2002:a17:90b:534e:b0:369:bddb:79b5 with SMTP id 98e67ed59e1d1-369bddb84b8mr14252394a91.2.1779301356360; Wed, 20 May 2026 11:22:36 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 31/64] target/arm: Implement BFCVTN for SVE Date: Wed, 20 May 2026 11:21:40 -0700 Message-ID: <20260520182213.872945-32-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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::1029; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1029.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: 1779301485386158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/helper-fp8-defs.h | 2 + target/arm/tcg/fp8_helper.c | 93 ++++++++++++++++++++++++++++++++ target/arm/tcg/translate-sve.c | 3 ++ target/arm/tcg/sve.decode | 2 + 4 files changed, 100 insertions(+) diff --git a/target/arm/tcg/helper-fp8-defs.h b/target/arm/tcg/helper-fp8-d= efs.h index b5dc2b7064..bbc8d69e28 100644 --- a/target/arm/tcg/helper-fp8-defs.h +++ b/target/arm/tcg/helper-fp8-defs.h @@ -12,3 +12,5 @@ DEF_HELPER_FLAGS_4(advsimd_fcvtl_hb, TCG_CALL_NO_RWG, voi= d, ptr, ptr, env, i32) DEF_HELPER_FLAGS_4(sve2_fcvt_hb, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32) DEF_HELPER_FLAGS_4(sme2_fcvt_hb, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32) DEF_HELPER_FLAGS_4(sme2_fcvtl_hb, TCG_CALL_NO_RWG, void, ptr, ptr, env, i3= 2) + +DEF_HELPER_FLAGS_4(sve2_bfcvtn_bh, TCG_CALL_NO_RWG, void, ptr, ptr, env, i= 32) diff --git a/target/arm/tcg/fp8_helper.c b/target/arm/tcg/fp8_helper.c index e2330177ec..0a4f603c8a 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -72,6 +72,17 @@ static FP8Context fp8_src_start(CPUARMState *env, uint32= _t desc, int scale_mask) return fp8_start(env, desc, f8fmt, scale); } =20 +static FP8Context fp8_dst_start(CPUARMState *env, uint32_t desc, bool is_f= 16) +{ + uint64_t fpmr =3D env->vfp.fpmr; + FPMRType f8fmt =3D FIELD_EX64(fpmr, FPMR, F8D); + int scale =3D (is_f16 + ? FIELD_SEX64(fpmr, FPMR, NSCALE_F16) + : FIELD_SEX64(fpmr, FPMR, NSCALE)); + + return fp8_start(env, desc, f8fmt, scale); +} + /* * Invalid input format: we could take one of the usual set of * CONSTRAINED UNPREDICTABLE options for use of a reserved value, @@ -111,6 +122,65 @@ static float16 fcvt_fp8_to_f16(uint8_t x, fp8_input_fn= *f8fmt, return float16_round_pack_canonical(&p, s); } =20 +/* + * Invalid output format: we could take one of the usual set of + * CONSTRAINED UNPREDICTABLE options for use of a reserved value, + * but choose to take the additional option provided by the FPMR + * register specification, of setting the result to 0xff and + * signaling Invalid Operation. + */ +static uint8_t fcvt_fp8_invalid_output(FloatParts64 *p, int scale, + bool saturate, float_status *s) +{ + float_raise(float_flag_invalid, s); + return 0xff; +} + +static uint8_t fcvt_fp8_e4m3_output(FloatParts64 *p, int scale, + bool saturate, float_status *s) +{ + *p =3D parts64_scalbn(p, scale, s); + /* + * Saturating Inf -> Max handled in uncanon_e4m3_overflow + * because there is no infinity encoding. + */ + return float8_e4m3_round_pack_canonical(p, s, saturate); +} + +static uint8_t fcvt_fp8_e5m2_output(FloatParts64 *p, int scale, + bool saturate, float_status *s) +{ + /* + * Because e5m2 has an infinity encoding, we need to handle + * saturation conversion of Inf -> Max manually. + */ + if (unlikely(p->cls =3D=3D float_class_inf)) { + if (saturate) { + p->cls =3D float_class_normal; + p->exp =3D float8_e5m2_params.exp_max; + p->frac =3D -1ull << float8_e5m2_params.frac_shift; + } + } else { + *p =3D parts64_scalbn(p, scale, s); + } + return float8_e5m2_round_pack_canonical(p, s, saturate); +} + +typedef uint8_t fcvt_fp8_output_fn(FloatParts64 *, int, bool, float_status= *); + +static fcvt_fp8_output_fn * const fcvt_fp8_output_fmt[8] =3D { + [0 ... 7] =3D fcvt_fp8_invalid_output, + [OFP8_E5M2] =3D fcvt_fp8_e5m2_output, + [OFP8_E4M3] =3D fcvt_fp8_e4m3_output, +}; + +static uint8_t fcvt_b16_to_fp8(bfloat16 x, fcvt_fp8_output_fn *f8fmt, + int scale, bool saturate, float_status *s) +{ + FloatParts64 p =3D bfloat16_unpack_canonical(x, s); + return f8fmt(&p, scale, saturate, s); +} + void HELPER(advsimd_bfcvtl)(void *vd, void *vn, CPUARMState *env, uint32_t= desc) { FP8Context ctx =3D fp8_src_start(env, desc, 0x3f); @@ -277,3 +347,26 @@ void HELPER(sme2_fcvtl_hb)(void *vd, void *vn, CPUARMS= tate *env, uint32_t desc) =20 fp8_cvt_finish(env, &ctx); } + +void HELPER(sve2_bfcvtn_bh)(void *vd, void *vn, CPUARMState *env, uint32_t= desc) +{ + FP8Context ctx =3D fp8_dst_start(env, desc, false); + fcvt_fp8_output_fn *output_fmt =3D fcvt_fp8_output_fmt[ctx.f8fmt]; + uint16_t *n0 =3D vn; + uint16_t *n1 =3D vn + sizeof(ARMVectorReg); + uint8_t *d =3D vd; + size_t oprsz =3D simd_oprsz(desc); + size_t nelem =3D oprsz / 2; + bool osc =3D FIELD_EX64(env->vfp.fpmr, FPMR, OSC); + + for (size_t i =3D 0; i < nelem; ++i) { + bfloat16 e0 =3D n0[H2(i)]; + bfloat16 e1 =3D n1[H2(i)]; + d[H1(2 * i + 0)] =3D fcvt_b16_to_fp8(e0, output_fmt, + ctx.scale, osc, &ctx.stat); + d[H1(2 * i + 1)] =3D fcvt_b16_to_fp8(e1, output_fmt, + ctx.scale, osc, &ctx.stat); + } + + fp8_cvt_finish(env, &ctx); +} diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 5200f3d034..7276d9c44a 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -4099,6 +4099,9 @@ TRANS_FEAT(BF1CVTLT, aa64_sme2_or_sve2_f8cvt, do_f8cv= t, a, TRANS_FEAT(BF2CVTLT, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, gen_helper_sve2_bfcvt, true, true) =20 +TRANS_FEAT(BFCVTN, aa64_sme2_or_sve2_f8cvt, do_f8cvt, + a, gen_helper_sve2_bfcvtn_bh, false, false) + /* *** SVE Floating Point Compare with Zero Group */ diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index ca110f4bc1..b6ef8ed8de 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -1101,6 +1101,8 @@ BF2CVT 01100101 00 001 000 001111 ..... ....= . @rd_rn_e0 BF1CVTLT 01100101 00 001 001 001110 ..... ..... @rd_rn_e0 BF2CVTLT 01100101 00 001 001 001111 ..... ..... @rd_rn_e0 =20 +BFCVTN 01100101 00 001 010 001110 ....0 ..... @rd_rnx2 e= sz=3D1 + ### SVE FP Compare with Zero Group =20 FCMGE_ppz0 01100101 .. 0100 00 001 ... ..... 0 .... @pd_pg_rn --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301680; cv=none; d=zohomail.com; s=zohoarc; b=V40SAaPAxJIAbvIL0mVJBr3fYk8W5N90Y4HYmyejmCg2FKCi67RpY8CAjVY+DruPf6Sd0UkX4wmphR4EBSe5hFxpyBNlEybZ5E4TjKA6KwWGbBk7XjWd/5j9u8gyoCeP/WLu8fhkQsLdPtGEAPCvEr1rAI3Ot1Y3CyQnMMt3GnA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301680; 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=KbxzBKw85ieXpS8gNagaiOLWU+/c2aV0GOxiaxlAUhM=; b=WH8BL/oxxmPjpqKYuFKujNc+SaDiUPI1XUTj6uYxbx8wHMtbxqo2sIYebMb/O9eixFqbBNBy/5D7Z/GcxOCF+BjNXG3i43h/E4GJ4q6TeCzBK7GWGre8BOFrJhzZBvwoi0y3htzxeIcPrFXQlaZccotXhj0c4xqKiZrA1HDbdGw= 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 1779301680538171.69757301118852; Wed, 20 May 2026 11:28:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlZP-00080v-At; Wed, 20 May 2026 14:23:03 -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 1wPlZI-0007ib-5x for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:56 -0400 Received: from mail-pj1-x1034.google.com ([2607:f8b0:4864:20::1034]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlZ9-0000gW-2d for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:55 -0400 Received: by mail-pj1-x1034.google.com with SMTP id 98e67ed59e1d1-365eecc5885so4832394a91.0 for ; Wed, 20 May 2026 11:22:45 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301357; x=1779906157; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=KbxzBKw85ieXpS8gNagaiOLWU+/c2aV0GOxiaxlAUhM=; b=ij4HfsN9lZ2uN593TSjCQZcCI8ddKNJ70AhVPwO9lFOuyUauTmw5nYgLTaU6Scyc11 95IBvbRUZy9lrvtGV8ao6DWKxZV3IBfZkpezB9ShPj33Lr9f416RAN2YLXiBlKcNBIra 7hchSYRw+cEBOTplpe6PFIylOCedfbk1l6iYvGiwT0loz8TAN1/YvUfncTWyW8jly38K 8xzbtTK9iZAHEPhWRxqdieDEyNeu94K+N4LIw+TaGNErH5nbtkee0dU6PoObIbWpj11u RK3Ju++X3YavCyL4Wp1GKS7+FGgZU6UnYoxmkliLRVl6CPSr2IbYYo1UxngfSFPgdK5B jbIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301357; x=1779906157; 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; bh=KbxzBKw85ieXpS8gNagaiOLWU+/c2aV0GOxiaxlAUhM=; b=O0nh2LTJZPZsdsMAZg7uI/AUyADeZZnIGpm+j4EhdLbXSf3WxnT8ZkWu6d/4zDtOMt iyjC8wttrEjWELZpsS70vHnC9Qtn0a2srAx9WI6trx3dvp84KLWQxpmj/Nh7ZGeop8QF 0N+vMkLlntKFP3qTkuwlN4K/598+7/WxfD/aNGndQTv3S+oy21lFFwyIZYv7ypGf4NkS xWc/uui+W1cmZ4G8BSvVX4cjPBLTeo0g2A0uzNd8nBmK5lA7FnBUmkfG8L72AzJ54zL3 zcacURU+1ci75mTbhtsNOe8G1LMoZa2YmqGdIS8YXZFsGXgv2tXWr4X1cIGhbXQiGdIF pdGw== X-Gm-Message-State: AOJu0YwtZZ7UQ5RfD0DQvtmNPWrYiO99yOXvTpwltou8eIxYtWnCpynV tOSRQI0a/OiI5td3QD43iTOJhN0kJwxlD8FxB0/1z8awFpuK+sbz5pVeF1fgevTMCzOQQqD9tXP FRjndt8Q= X-Gm-Gg: Acq92OFKsNvxV8tD2UpgNY6zJFGtdMOGoDtzMgBzP/Mp62hV7n+RYHqGJScKNwQ8voK aAbIfYljalAOKUTETUfKErU0TtMvrZDiyzumFkB3rA7y/uCr9PQy8YPA5kzg8FPOs1ivpV+PhfU NOkAgq9CDUKv8FLFD5qUfK9cZxwoSGc3vMES4EBZNQMcrvmy2IeS/jayFh2AITLlGTpsX3nDIdw jZgWnJQL9/PthrrzSJQd1mSSxFH/uz3h10ZDDMN1k2avTD2FKRzABmg9WpjuQfmuDDhJmoQoSL7 qav+g+nFOFXaHc9kIH9fJ8NQCWOk5iYP6LCSjlUckjKPYZXTIef4oI7SqYd2f2x9vbn/lJevM6A Q0yWK11yMqsUhwTfP8QrO9v3o3dolGlaJweFXejN6G1evi0xVu/ngVc2KPk4yOBEHngCXoXESmI uJWSF/FN42TJfX4Pn5N3D2v8WElglK X-Received: by 2002:a17:90b:574d:b0:36a:9d7:8589 with SMTP id 98e67ed59e1d1-36a09d78874mr8359902a91.21.1779301357001; Wed, 20 May 2026 11:22:37 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 32/64] target/arm: Implement FCVTN (16- to 8-bit fp) for AdvSIMD Date: Wed, 20 May 2026 11:21:41 -0700 Message-ID: <20260520182213.872945-33-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1034; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1034.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1779301680950158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/helper-fp8-defs.h | 2 ++ target/arm/tcg/fp8_helper.c | 37 ++++++++++++++++++++++++++++++++ target/arm/tcg/translate-a64.c | 15 +++++++++++++ target/arm/tcg/a64.decode | 2 ++ 4 files changed, 56 insertions(+) diff --git a/target/arm/tcg/helper-fp8-defs.h b/target/arm/tcg/helper-fp8-d= efs.h index bbc8d69e28..6530d1a6da 100644 --- a/target/arm/tcg/helper-fp8-defs.h +++ b/target/arm/tcg/helper-fp8-defs.h @@ -14,3 +14,5 @@ DEF_HELPER_FLAGS_4(sme2_fcvt_hb, TCG_CALL_NO_RWG, void, p= tr, ptr, env, i32) DEF_HELPER_FLAGS_4(sme2_fcvtl_hb, TCG_CALL_NO_RWG, void, ptr, ptr, env, i3= 2) =20 DEF_HELPER_FLAGS_4(sve2_bfcvtn_bh, TCG_CALL_NO_RWG, void, ptr, ptr, env, i= 32) + +DEF_HELPER_FLAGS_5(gvec_fcvt_bh, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, env= , i32) diff --git a/target/arm/tcg/fp8_helper.c b/target/arm/tcg/fp8_helper.c index 0a4f603c8a..a8337a8fb7 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -181,6 +181,13 @@ static uint8_t fcvt_b16_to_fp8(bfloat16 x, fcvt_fp8_ou= tput_fn *f8fmt, return f8fmt(&p, scale, saturate, s); } =20 +static uint8_t fcvt_f16_to_fp8(float16 x, fcvt_fp8_output_fn *f8fmt, + int scale, bool saturate, float_status *s) +{ + FloatParts64 p =3D float16_unpack_canonical(x, s); + return f8fmt(&p, scale, saturate, s); +} + void HELPER(advsimd_bfcvtl)(void *vd, void *vn, CPUARMState *env, uint32_t= desc) { FP8Context ctx =3D fp8_src_start(env, desc, 0x3f); @@ -370,3 +377,33 @@ void HELPER(sve2_bfcvtn_bh)(void *vd, void *vn, CPUARM= State *env, uint32_t desc) =20 fp8_cvt_finish(env, &ctx); } + +void HELPER(gvec_fcvt_bh)(void *vd, void *vn, void *vm, + CPUARMState *env, uint32_t desc) +{ + FP8Context ctx =3D fp8_dst_start(env, desc, true); + fcvt_fp8_output_fn *output_fmt =3D fcvt_fp8_output_fmt[ctx.f8fmt]; + uint16_t *n =3D vn; + uint16_t *m =3D vm; + uint8_t *d =3D vd; + bool osc =3D FIELD_EX64(env->vfp.fpmr, FPMR, OSC); + size_t oprsz =3D simd_oprsz(desc); + size_t nelem =3D oprsz / 2; + ARMVectorReg scratch; + + if (vd =3D=3D vm) { + m =3D memcpy(&scratch, vm, oprsz); + } + + for (size_t i =3D 0; i < nelem; ++i) { + d[H1(i)] =3D fcvt_f16_to_fp8(n[H2(i)], output_fmt, + ctx.scale, osc, &ctx.stat); + } + for (size_t i =3D 0; i < nelem; ++i) { + d[H1(i) + nelem] =3D fcvt_f16_to_fp8(m[H2(i)], output_fmt, + ctx.scale, osc, &ctx.stat); + } + + fp8_cvt_finish(env, &ctx); + clear_tail(vd, oprsz, simd_maxsz(desc)); +} diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index 565053a1a4..0927eb6516 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -6522,6 +6522,21 @@ static gen_helper_gvec_3_ptr * const f_vector_fscale= [3] =3D { }; TRANS_FEAT(FSCALE, aa64_f8cvt, do_fp3_vector, a, 0, f_vector_fscale) =20 +static bool trans_FCVTN_bh(DisasContext *s, arg_qrrr_e *a) +{ + if (!dc_isar_feature(aa64_f8cvt, s)) { + return false; + } + if (fpmr_access_check(s) && fp_access_check(s)) { + tcg_gen_gvec_3_ptr(vec_full_reg_offset(s, a->rd), + vec_full_reg_offset(s, a->rn), + vec_full_reg_offset(s, a->rm), + tcg_env, a->q ? 16 : 8, vec_full_reg_size(s), + FPST_A64 << 2, gen_helper_gvec_fcvt_bh); + } + return true; +} + static bool do_fmlal(DisasContext *s, arg_qrrr_e *a, bool is_s, bool is_2) { if (fp_access_check(s)) { diff --git a/target/arm/tcg/a64.decode b/target/arm/tcg/a64.decode index 26d31d0a33..71456d44e1 100644 --- a/target/arm/tcg/a64.decode +++ b/target/arm/tcg/a64.decode @@ -1201,6 +1201,8 @@ FAMIN 0.10 1110 1.1 ..... 11011 1 ..... ...= .. @qrrr_sd FSCALE 0.10 1110 110 ..... 00111 1 ..... ..... @qrrr_h FSCALE 0.10 1110 1.1 ..... 11111 1 ..... ..... @qrrr_sd =20 +FCVTN_bh 0.00 1110 010 ..... 11110 1 ..... ..... @qrrr_h + ### Advanced SIMD scalar x indexed element =20 FMUL_si 0101 1111 00 .. .... 1001 . 0 ..... ..... @rrx_h --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301610; cv=none; d=zohomail.com; s=zohoarc; b=eHsEUC6R19CzHRiqn4t3dyz82eFtvxeyOkV1I7WWHASwFoucGMIJ0SMyksqiuIwYaw1dhqQ9zxunUBUNGEmNi5KzEEkzzvIkDFe3Nmh/JJOpYYCK9IkHK5CZ0IPmG0mCEr3EKzztq43Vapn9c1JvCrpB3BB9tTrd1cu8lRRGYC0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301610; 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=eKX5BX/1+tQjNeYVGuKedeMI/pvj+HWD9eF0Xwk36ls=; b=KiuLE9nWAZIPqAH7hWDh7Zb8h2yoWLARXBIqoSA0+a4k7steQFJjGxPgzqDvl/mG8jdUAkyUN5blegnjnNvLmbMKRU8cxI7Qps0IgqPJzflGJsBdkmjDfSbFamF0NK/FGv1403ugQOwu/8EbHO0XrEmYWfzMiZMP7/vJHI3u5q8= 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 1779301610540799.0205142040382; Wed, 20 May 2026 11:26:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlZQ-00083V-3o; Wed, 20 May 2026 14:23:04 -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 1wPlZJ-0007kK-9W for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:57 -0400 Received: from mail-pg1-x533.google.com ([2607:f8b0:4864:20::533]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlZ9-0000f2-2Q for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:56 -0400 Received: by mail-pg1-x533.google.com with SMTP id 41be03b00d2f7-c7b9f54d3deso4409391a12.1 for ; Wed, 20 May 2026 11:22:44 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301358; x=1779906158; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=eKX5BX/1+tQjNeYVGuKedeMI/pvj+HWD9eF0Xwk36ls=; b=rCNkeov6g1bpWjR/Gq6lu6pKGFmKb1pfYYV7WLR4XzMsWaa+1XWuxgjM80PPaBXy/1 Cr3xXIv0Yk16KJR+zLY5RlBpa8XlRwCydXdXhdDzL2PD+piqqXg/f289+hUKpgUFw5/B m6IOP4fuCYDM0TrZBtNNkgYxsu/e3ERj1X6sCZ5X2PXrjixuKoz4eGj467+OWn37QyI8 f98FgVYC7efHaRHAhDAbnYa/2KNCdEFRqKT5td3z5MTWg3H4IRJE8Korn/vOmIRvc5ee LBh41rxrp6YHDDL6/pb6mECIGT912XU8BgzvJU1CcIueaNJ1yOFdtI9pEFFSMd+rZDGW gzfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301358; x=1779906158; 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; bh=eKX5BX/1+tQjNeYVGuKedeMI/pvj+HWD9eF0Xwk36ls=; b=G7EVMmBNKZVphYcVPSZshbd+SGiENgb0REoyrIF+wLMDXW3BXBqe9wpJtmBi7LjcIY CTo5nuBuPCJxGslzH8mQsuZo7wcWXivvjzLID8VcK16OtPv5bEWlYCc/YjjJKKXX7G7n iAD7xbRS5dCUSGuA+7do7GOxDcbXsIkq4phymNtdzlybrAM2BOkHupZ20n6LNXHRj9Md EcqT5q41gB0kblfBXY3oOeXct+7VpURgVqJ4voXWCSJ/jzYAGGh82myKdhhUKoWOA6Vn Hwf96/ijo/Wq9v+H4vUA6j3OnWRi3UgDfPmEQUThrZAk1mqsbGZnokHZukqtC7H9CUBW dcxw== X-Gm-Message-State: AOJu0YwX7h7snPJmbB4LhMb30gsr1wwJMDlyaYiaNWxGg61T+8OCJ0jw l7Aplw+J9JdKgYvZdWgZVPmIQdGXvCdSkJVqbpAiZxQNwqgLDfQf97rSj8tntTSH+jhN6CycaOo M8QmIJfA= X-Gm-Gg: Acq92OE/3LDVqA0rNNOWJ0FfNuZ9x2VO4S+9J2vgHAKl1W+4TELj6MKPsvGwkA+74ly bnhUAveUBhHkeBuuaXwU5QmuR6MU22EjaP+wEHYHiFUJadAr8qnUXhsb+w9nyrtc5l/d/xDxf4Z XBTrp2pTFT+TpUL5CFOTLhc8mxocYAT2lJKjUtNrLCt3NP7NQ6G8mC47F7cJfM8T/dwr3hz2lw0 yBMsvaEYdaQi1pOr+OP6t/YC4oQLO2rxRqmPFtNjA6u9tFZBG/c91Ol+GuJWyRdHhq+IYcG2+Q9 9+3SgjKbI6ztiwoOAww5RGokygqqPdkJFUIyBG7tAbSR/3No+Zvu4+WRqoC65jUo6bEIn857n3F 4Nr9LEeZMzleFFHuWdIo9tUwEFspDccTHkbcpwx7aPSn5Zq06/BKcQ9o7q4hMBHbsgKyuUZsxY5 OsiZ+jIgHxCwoPatdHYYogsZc8DGDH X-Received: by 2002:a17:90b:5848:b0:368:7c0f:ebf7 with SMTP id 98e67ed59e1d1-36951b75c6fmr23973538a91.16.1779301357594; Wed, 20 May 2026 11:22:37 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 33/64] target/arm: Implement FCVTN, FCVTN2 (32- to 8-bit fp) for AdvSIMD Date: Wed, 20 May 2026 11:21:42 -0700 Message-ID: <20260520182213.872945-34-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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::533; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x533.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: 1779301612858154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/helper-fp8-defs.h | 2 ++ target/arm/tcg/fp8_helper.c | 33 ++++++++++++++++++++++++++++++++ target/arm/tcg/translate-a64.c | 16 ++++++++++++++++ target/arm/tcg/a64.decode | 1 + 4 files changed, 52 insertions(+) diff --git a/target/arm/tcg/helper-fp8-defs.h b/target/arm/tcg/helper-fp8-d= efs.h index 6530d1a6da..023a49e12f 100644 --- a/target/arm/tcg/helper-fp8-defs.h +++ b/target/arm/tcg/helper-fp8-defs.h @@ -16,3 +16,5 @@ DEF_HELPER_FLAGS_4(sme2_fcvtl_hb, TCG_CALL_NO_RWG, void, = ptr, ptr, env, i32) DEF_HELPER_FLAGS_4(sve2_bfcvtn_bh, TCG_CALL_NO_RWG, void, ptr, ptr, env, i= 32) =20 DEF_HELPER_FLAGS_5(gvec_fcvt_bh, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, env= , i32) + +DEF_HELPER_FLAGS_5(advsimd_fcvt_bs, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, = env, i32) diff --git a/target/arm/tcg/fp8_helper.c b/target/arm/tcg/fp8_helper.c index a8337a8fb7..f6b3eb6953 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -188,6 +188,13 @@ static uint8_t fcvt_f16_to_fp8(float16 x, fcvt_fp8_out= put_fn *f8fmt, return f8fmt(&p, scale, saturate, s); } =20 +static uint8_t fcvt_f32_to_fp8(float32 x, fcvt_fp8_output_fn *f8fmt, + int scale, bool saturate, float_status *s) +{ + FloatParts64 p =3D float32_unpack_canonical(x, s); + return f8fmt(&p, scale, saturate, s); +} + void HELPER(advsimd_bfcvtl)(void *vd, void *vn, CPUARMState *env, uint32_t= desc) { FP8Context ctx =3D fp8_src_start(env, desc, 0x3f); @@ -407,3 +414,29 @@ void HELPER(gvec_fcvt_bh)(void *vd, void *vn, void *vm, fp8_cvt_finish(env, &ctx); clear_tail(vd, oprsz, simd_maxsz(desc)); } + +void HELPER(advsimd_fcvt_bs)(void *vd, void *vn, void *vm, + CPUARMState *env, uint32_t desc) +{ + FP8Context ctx =3D fp8_dst_start(env, desc, false); + fcvt_fp8_output_fn *output_fmt =3D fcvt_fp8_output_fmt[ctx.f8fmt]; + uint32_t *n =3D vn, *m =3D vm, scratch[4]; + uint8_t *d =3D vd + 8 * ctx.high; + bool osc =3D FIELD_EX64(env->vfp.fpmr, FPMR, OSC); + + if (vd =3D=3D vm) { + m =3D memcpy(scratch, vm, 16); + } + + for (size_t i =3D 0; i < 4; ++i) { + d[H1(i + 0)] =3D fcvt_f32_to_fp8(n[H4(i)], output_fmt, + ctx.scale, osc, &ctx.stat); + } + for (size_t i =3D 0; i < 4; ++i) { + d[H1(i + 4)] =3D fcvt_f32_to_fp8(m[H4(i)], output_fmt, + ctx.scale, osc, &ctx.stat); + } + + fp8_cvt_finish(env, &ctx); + clear_tail(vd, ctx.high ? 16 : 8, simd_maxsz(desc)); +} diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index 0927eb6516..3c784afc99 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -6537,6 +6537,22 @@ static bool trans_FCVTN_bh(DisasContext *s, arg_qrrr= _e *a) return true; } =20 +static bool trans_FCVTN_bs(DisasContext *s, arg_qrrr_e *a) +{ + if (!dc_isar_feature(aa64_f8cvt, s)) { + return false; + } + if (fpmr_access_check(s) && fp_access_check(s)) { + tcg_gen_gvec_3_ptr(vec_full_reg_offset(s, a->rd), + vec_full_reg_offset(s, a->rn), + vec_full_reg_offset(s, a->rm), + tcg_env, 16, vec_full_reg_size(s), + (a->q << 1) | FPST_A64 << 2, + gen_helper_advsimd_fcvt_bs); + } + return true; +} + static bool do_fmlal(DisasContext *s, arg_qrrr_e *a, bool is_s, bool is_2) { if (fp_access_check(s)) { diff --git a/target/arm/tcg/a64.decode b/target/arm/tcg/a64.decode index 71456d44e1..a9cf259b9b 100644 --- a/target/arm/tcg/a64.decode +++ b/target/arm/tcg/a64.decode @@ -1202,6 +1202,7 @@ FSCALE 0.10 1110 110 ..... 00111 1 ..... ...= .. @qrrr_h FSCALE 0.10 1110 1.1 ..... 11111 1 ..... ..... @qrrr_sd =20 FCVTN_bh 0.00 1110 010 ..... 11110 1 ..... ..... @qrrr_h +FCVTN_bs 0.00 1110 000 ..... 11110 1 ..... ..... @qrrr_h =20 ### Advanced SIMD scalar x indexed element =20 --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301516; cv=none; d=zohomail.com; s=zohoarc; b=ONGS+KMR07S8IZr62cCCyN0gkZ2SZ4FZhAdR5HLaDH3LNSHlyZ94bHGQFfT7lwdrTdXs0B1n6sDPwOnAT8ETjuIsAyUWDCmHcdaZWlmiZ1wbkkJ8RhkHBc1iz8/siHcgN4DsuSM/shR7QK+zvc1Jp4PzgN8qToyRAEDQizGCz4M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301516; 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=YTf30A5nAxp6e6ppMf2DDbWiS/oqqDCevaEDJz4Mgfk=; b=W2l3sOtt5c10Y6T5s56bCzMhuocMYfISXJOgLY0VHcMOWX+rWm4UYk7FzBLOkwpeEBEWtQ996nHRo55nAC1mCFbI9OqJoKIVtYFTeCuF28SdDsghRSYVUQgD9XthLbd5eEaIOO3oZxrI8j+SfF937XrBFXzrKsOmcb+s+O6Kqt4= 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 177930151649163.209163093056645; Wed, 20 May 2026 11:25:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlZT-0008Dk-SC; Wed, 20 May 2026 14:23:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wPlZB-0007P3-H1 for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:49 -0400 Received: from mail-pj1-x102b.google.com ([2607:f8b0:4864:20::102b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlZ6-0000ep-Kj for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:47 -0400 Received: by mail-pj1-x102b.google.com with SMTP id 98e67ed59e1d1-367cbac9cb1so5003589a91.3 for ; Wed, 20 May 2026 11:22:43 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301358; x=1779906158; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=YTf30A5nAxp6e6ppMf2DDbWiS/oqqDCevaEDJz4Mgfk=; b=bHF9aXPCL3rAm/QMo/l5qdLUcOWljfjVkEejUz7gS74s/P7xkYSRbBf4PCcNAt1BwL 1DA00P+istKR/LAxqMdqGENKVBR0CjkloxEe+G6IVeZabA/qXv28ccLHqCwmtOlSwtBV vQ/9f1/9GzCCus00TRJuN/T+NCoPdSq68SiscKTf7rgqwrD5UTXXAj3pApwBXmBPhdjE tFX8976knqffZFODOyL0gEN3ydtp3YTBbcG/I6HWHtqNa7Ws0K5li2jFqF4AWaxfsunk h3e2NcWekR1k25A4GySa35RYxFKI7ZLuHPXE9/dosXFxwoNSpKlqk7nxSTJqSWhAagod UMdg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301358; x=1779906158; 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; bh=YTf30A5nAxp6e6ppMf2DDbWiS/oqqDCevaEDJz4Mgfk=; b=Gbe1uVnYP/jt8Yi/xxKvDpRmbP8yJMghtVDddlLb3t+fVAjFQxE4DzKHQcAJsHrYse WLc5KHCuTGGUf+KNnMKnR9HxCDWEDJXCUZR8VMQHunVNsLIgD8GCrPL969TNOgTpj8TX rQ3jVO3jbEl5iC/XIxxR6bWWSngY11YUfLh5Ide4VcwVsjoNuU2KyaiJVmFmX1XIjqRq /hzunHcLJDvewq2UNSRFQ/2lUap6Urd7WfFQiRpuERAd9u9A12agS08SYdthS7Cu7Rh5 KvrrKjMKxfMEf6qCdri20cM1zNyBjNr+c3QgD/DIhHXg7zB5T3rwD0OwV/pe6nzKuh3B NHtQ== X-Gm-Message-State: AOJu0Yw1ENgO2T0TWrI8evBL4yTcWtzB9/1UDPZ75GndAuxzE8Pke7+F PwdU+1JUqnf7HeOuCVeRuMKBLoDByAbxiv/q9h065frRLWfx9SafuWjDXJDhrhUieAcKD1W2NBM NulQ8Y4g= X-Gm-Gg: Acq92OG3NTu6rxzjo6DD/znHDFeVXN6NvgJOgdtXaOPGo5YGSee8k4I/jEv3ihViZzJ xTdZh9TYrEov6qmO6JjBUQHVhax4QJsdg2OYLt6pVO9OmaxB7EjBqydii41o1qpp/zLAn8ssu7u a/zy9Yn4ObJDeH79xVIj1pkT7miBgxOotGUUnFvpfto4XMy2f1H0x2UjjEWtuwhcXqdyjvg28Vb PIlh6i66p03NY5d1ZGh6FS+7FAxMB5UuH4MwTS8x4Z8YfewLYa7ZVQkRyACDE7hvAbNkpZInXEH 79TIiPqu4aVMSK7+1yPl5Swzp+W3twIGdIgj/NtrVoieEJZFqchIFxwEE97WMXSrruHHta6fLDi j7sdH4vNMczgY7veBpXZ2Rwk6w91Akov0g1WhQPGJXLJg++H4gTdKfYqsklCi9+F+KILVDjbrrW DVx5+jszCv8A6l9yhQcfg0zfkyq2G11i2KltYAzQs= X-Received: by 2002:a17:90b:3905:b0:36a:2a9b:3fb2 with SMTP id 98e67ed59e1d1-36a2a9b523amr3446810a91.16.1779301358233; Wed, 20 May 2026 11:22:38 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 34/64] target/arm: Implement FCVTN (16- to 8-bit fp) for SVE Date: Wed, 20 May 2026 11:21:43 -0700 Message-ID: <20260520182213.872945-35-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102b; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1779301519096154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/helper-fp8-defs.h | 1 + target/arm/tcg/fp8_helper.c | 23 +++++++++++++++++++++++ target/arm/tcg/translate-sve.c | 2 ++ target/arm/tcg/sve.decode | 1 + 4 files changed, 27 insertions(+) diff --git a/target/arm/tcg/helper-fp8-defs.h b/target/arm/tcg/helper-fp8-d= efs.h index 023a49e12f..e67fb191c2 100644 --- a/target/arm/tcg/helper-fp8-defs.h +++ b/target/arm/tcg/helper-fp8-defs.h @@ -16,5 +16,6 @@ DEF_HELPER_FLAGS_4(sme2_fcvtl_hb, TCG_CALL_NO_RWG, void, = ptr, ptr, env, i32) DEF_HELPER_FLAGS_4(sve2_bfcvtn_bh, TCG_CALL_NO_RWG, void, ptr, ptr, env, i= 32) =20 DEF_HELPER_FLAGS_5(gvec_fcvt_bh, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, env= , i32) +DEF_HELPER_FLAGS_4(sve2_fcvtn_bh, TCG_CALL_NO_RWG, void, ptr, ptr, env, i3= 2) =20 DEF_HELPER_FLAGS_5(advsimd_fcvt_bs, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, = env, i32) diff --git a/target/arm/tcg/fp8_helper.c b/target/arm/tcg/fp8_helper.c index f6b3eb6953..ad810852b8 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -415,6 +415,29 @@ void HELPER(gvec_fcvt_bh)(void *vd, void *vn, void *vm, clear_tail(vd, oprsz, simd_maxsz(desc)); } =20 +void HELPER(sve2_fcvtn_bh)(void *vd, void *vn, CPUARMState *env, uint32_t = desc) +{ + FP8Context ctx =3D fp8_dst_start(env, desc, true); + fcvt_fp8_output_fn *output_fmt =3D fcvt_fp8_output_fmt[ctx.f8fmt]; + uint16_t *n0 =3D vn; + uint16_t *n1 =3D vn + sizeof(ARMVectorReg); + uint8_t *d =3D vd; + bool osc =3D FIELD_EX64(env->vfp.fpmr, FPMR, OSC); + size_t oprsz =3D simd_oprsz(desc); + size_t nelem =3D oprsz / 2; + + for (size_t i =3D 0; i < nelem; ++i) { + float16 e0 =3D n0[H2(i)]; + float16 e1 =3D n1[H2(i)]; + d[H1(2 * i + 0)] =3D fcvt_f16_to_fp8(e0, output_fmt, + ctx.scale, osc, &ctx.stat); + d[H1(2 * i + 1)] =3D fcvt_f16_to_fp8(e1, output_fmt, + ctx.scale, osc, &ctx.stat); + } + + fp8_cvt_finish(env, &ctx); +} + void HELPER(advsimd_fcvt_bs)(void *vd, void *vn, void *vm, CPUARMState *env, uint32_t desc) { diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 7276d9c44a..c7fcf27183 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -4099,6 +4099,8 @@ TRANS_FEAT(BF1CVTLT, aa64_sme2_or_sve2_f8cvt, do_f8cv= t, a, TRANS_FEAT(BF2CVTLT, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, gen_helper_sve2_bfcvt, true, true) =20 +TRANS_FEAT(FCVTN, aa64_sme2_or_sve2_f8cvt, do_f8cvt, + a, gen_helper_sve2_fcvtn_bh, false, false) TRANS_FEAT(BFCVTN, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, gen_helper_sve2_bfcvtn_bh, false, false) =20 diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index b6ef8ed8de..806953bc35 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -1101,6 +1101,7 @@ BF2CVT 01100101 00 001 000 001111 ..... ....= . @rd_rn_e0 BF1CVTLT 01100101 00 001 001 001110 ..... ..... @rd_rn_e0 BF2CVTLT 01100101 00 001 001 001111 ..... ..... @rd_rn_e0 =20 +FCVTN 01100101 00 001 010 001100 ....0 ..... @rd_rnx2 e= sz=3D1 BFCVTN 01100101 00 001 010 001110 ....0 ..... @rd_rnx2 e= sz=3D1 =20 ### SVE FP Compare with Zero Group --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779302083; cv=none; d=zohomail.com; s=zohoarc; b=FkMfbge1xi4iIMnyDUNVadXypXlBxKIPygEv0Igt41XHTnf8eZ525tkag8/0UqCbpnUO6ErwAT/OSavWaC2bURIpgIEI3/HnbXP+aRfx78NHno7/v+SeXPHeCY5DZlKTStx509LxPA6Hm3N7MlwjTUook+cKhm2TIG3nuIlrXqQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779302083; 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=rWGVRK6oex9q/LJ2GyafuALN0V3kXgYoV0H5J7whN1s=; b=RGYg2xRHjqYMxjY70Kk5kXrraaWyoy43gBj+zXkQzCfvKtc/xAOW6f5FJvOLehIHe8SF5cokUezifY4p5uhfE11wpAZz/9ywMMda3nuwy6F6rVS1DaXhtVoBlHkyF8U6hvNxLJoIKKACJwAZOcy+iRhb+EjaEEFB8qS03S2Os3Q= 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 1779302083525275.23677728138705; Wed, 20 May 2026 11:34:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlbW-0002VK-Aj; Wed, 20 May 2026 14:25:14 -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 1wPlZC-0007SD-6Z for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:50 -0400 Received: from mail-pj1-x1029.google.com ([2607:f8b0:4864:20::1029]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlZ6-0000fL-Q4 for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:49 -0400 Received: by mail-pj1-x1029.google.com with SMTP id 98e67ed59e1d1-365d8e43759so2814370a91.0 for ; Wed, 20 May 2026 11:22:44 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301359; x=1779906159; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=rWGVRK6oex9q/LJ2GyafuALN0V3kXgYoV0H5J7whN1s=; b=KLtQ26EowSoLYIH/togLUAxcB8QixSADdpKj6OZRdpVS8FB2m/evbLVENpnuBxoINA jzALfIK8rUDTBicavByOQpwcMEVPEtxZ2TnFsg0ssSyJ50vxZehxuAV/dqp2wYg3QvFs xiC8QGE0adMxqKSw785+4qR80L3VXfPP68BMvOFDvSVWsk8Tpn7G5XUzvqpzXk76ts0e 5khkqbk8fPWUiUPRP1lIwbt+8oY3j2ntzlKQTZzQr4+W+7dRmF6OxdvVHOPQoj195n/0 BUtKo5Xiij1t+4cO4RP1XTDsfRhmuxVaMootVKcF2XTqabkLqHqCHgXufkAwKi0VdoCF euzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301359; x=1779906159; 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; bh=rWGVRK6oex9q/LJ2GyafuALN0V3kXgYoV0H5J7whN1s=; b=Fg78Ta+F7+8iVGicvbngBqq6jo92EQfvJkwyeDkDcAUmQHpDADkV8cgu9jNbqPpC3S VtcNBXj09P1DYqR6u8YJpwy1lXRI+1Jdk3l830FZtpz1ltbROpb3rzOWMMv5eG0txofX /A8U9S+9M/6bYIP4/+UTou2sHt1zWlgLmSbQQXIrRN+cuNrDeq9OUdd/VlnoBmYoRidN P3NQLBHK+lrx7KkOa8N/ADYLcgfiLED8sGCfMyTp0izQsWe+DhlfD94GShdVC/XH1X37 U1+wGED8C0CBuUIM7UXUotdO0juMOCWVQVfprIeOPLSY9x2sHOdxQfvZvqGSvvxghfP6 gNnQ== X-Gm-Message-State: AOJu0YzErIXqzlQYJ84GlI0rtdC0oBTW6H7nBQ7Z56NQK8mBErSJvoyC pIJgbfT9utsA5Wkidi0ut8I8EGtAQw3YJf+dRVeGX/uW0Z9jSF8spDrXkLPeZ6AWDhTyv9oPFBV pD6jQ32o= X-Gm-Gg: Acq92OGQgBYClK1outB0Zb9o7nPDXZ3Y9eqBgUotW7YwQPp1lJd1ObMl0awA+CNtdRZ TzQZS5AYwlWC58sAK6CgdWougQLsla3FobQJpHbLnpnhTUp6dnqyEIR/Uon8JkNlTMZMPYVirGW PFGhS3GxaGTR0keuDlq57zW06ckv12627xYqMCYSptn1k8Do5Sm4VNg3CjBWkDQg70vJ5Fmf1BI 352O/IjKKn8TzqC2SoC2inJD0yJMBiERNnBLuOYD5qcWsnZuRT07/VXkEU/+vBDDwKUGLgqyL1N gHupO+qIMPMu2uwVeM5AMb9x50gCS2QR+VOcekAuEh6wdO53TVQYL5BLZimOvq2eS9IV+BICoSW GakSb2WwT4JywNqSsJ+em/10JwEs+G4RIr8ZQ9nmDMJ0Rv6yh1ZTegZc3x//sAqVXlDR15tL8w9 TH8A4Jx+s9935+65bNWZMr6ISezYzK X-Received: by 2002:a17:90b:3b4d:b0:35b:d795:cf5d with SMTP id 98e67ed59e1d1-36a3cc374b3mr361513a91.5.1779301359019; Wed, 20 May 2026 11:22:39 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 35/64] target/arm: Implement FCVTNB, FCVTNT for SVE Date: Wed, 20 May 2026 11:21:44 -0700 Message-ID: <20260520182213.872945-36-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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::1029; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1029.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: 1779302084603158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/helper-fp8-defs.h | 2 ++ target/arm/tcg/fp8_helper.c | 47 ++++++++++++++++++++++++++++++++ target/arm/tcg/translate-sve.c | 4 +++ target/arm/tcg/sve.decode | 2 ++ 4 files changed, 55 insertions(+) diff --git a/target/arm/tcg/helper-fp8-defs.h b/target/arm/tcg/helper-fp8-d= efs.h index e67fb191c2..5863a6dbb8 100644 --- a/target/arm/tcg/helper-fp8-defs.h +++ b/target/arm/tcg/helper-fp8-defs.h @@ -19,3 +19,5 @@ DEF_HELPER_FLAGS_5(gvec_fcvt_bh, TCG_CALL_NO_RWG, void, p= tr, ptr, ptr, env, i32) DEF_HELPER_FLAGS_4(sve2_fcvtn_bh, TCG_CALL_NO_RWG, void, ptr, ptr, env, i3= 2) =20 DEF_HELPER_FLAGS_5(advsimd_fcvt_bs, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, = env, i32) +DEF_HELPER_FLAGS_4(sve2_fcvtnb_bs, TCG_CALL_NO_RWG, void, ptr, ptr, env, i= 32) +DEF_HELPER_FLAGS_4(sve2_fcvtnt_bs, TCG_CALL_NO_RWG, void, ptr, ptr, env, i= 32) diff --git a/target/arm/tcg/fp8_helper.c b/target/arm/tcg/fp8_helper.c index ad810852b8..faa8df692e 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -463,3 +463,50 @@ void HELPER(advsimd_fcvt_bs)(void *vd, void *vn, void = *vm, fp8_cvt_finish(env, &ctx); clear_tail(vd, ctx.high ? 16 : 8, simd_maxsz(desc)); } + +void HELPER(sve2_fcvtnb_bs)(void *vd, void *vn, CPUARMState *env, uint32_t= desc) +{ + FP8Context ctx =3D fp8_dst_start(env, desc, false); + fcvt_fp8_output_fn *output_fmt =3D fcvt_fp8_output_fmt[ctx.f8fmt]; + uint32_t *n0 =3D vn; + uint32_t *n1 =3D vn + sizeof(ARMVectorReg); + uint16_t *d =3D vd; + bool osc =3D FIELD_EX64(env->vfp.fpmr, FPMR, OSC); + size_t oprsz =3D simd_oprsz(desc); + size_t nelem =3D oprsz / 4; + + for (size_t i =3D 0; i < nelem; ++i) { + float32 e0 =3D n0[H4(i)]; + float32 e1 =3D n1[H4(i)]; + /* Zero-extend uint8_t to clear the odd lanes. */ + d[H2(2 * i + 0)] =3D fcvt_f32_to_fp8(e0, output_fmt, + ctx.scale, osc, &ctx.stat); + d[H2(2 * i + 1)] =3D fcvt_f32_to_fp8(e1, output_fmt, + ctx.scale, osc, &ctx.stat); + } + + fp8_cvt_finish(env, &ctx); +} + +void HELPER(sve2_fcvtnt_bs)(void *vd, void *vn, CPUARMState *env, uint32_t= desc) +{ + FP8Context ctx =3D fp8_dst_start(env, desc, false); + fcvt_fp8_output_fn *output_fmt =3D fcvt_fp8_output_fmt[ctx.f8fmt]; + uint32_t *n0 =3D vn; + uint32_t *n1 =3D vn + sizeof(ARMVectorReg); + uint8_t *d =3D vd; + bool osc =3D FIELD_EX64(env->vfp.fpmr, FPMR, OSC); + size_t oprsz =3D simd_oprsz(desc); + size_t nelem =3D oprsz / 4; + + for (size_t i =3D 0; i < nelem; ++i) { + float32 e0 =3D n0[H4(i)]; + float32 e1 =3D n1[H4(i)]; + d[H1(4 * i + 1)] =3D fcvt_f32_to_fp8(e0, output_fmt, + ctx.scale, osc, &ctx.stat); + d[H1(4 * i + 3)] =3D fcvt_f32_to_fp8(e1, output_fmt, + ctx.scale, osc, &ctx.stat); + } + + fp8_cvt_finish(env, &ctx); +} diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index c7fcf27183..13f7ab01af 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -4103,6 +4103,10 @@ TRANS_FEAT(FCVTN, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, gen_helper_sve2_fcvtn_bh, false, false) TRANS_FEAT(BFCVTN, aa64_sme2_or_sve2_f8cvt, do_f8cvt, a, gen_helper_sve2_bfcvtn_bh, false, false) +TRANS_FEAT(FCVTNB, aa64_sme2_or_sve2_f8cvt, do_f8cvt, + a, gen_helper_sve2_fcvtnb_bs, false, false) +TRANS_FEAT(FCVTNT, aa64_sme2_or_sve2_f8cvt, do_f8cvt, + a, gen_helper_sve2_fcvtnt_bs, false, false) =20 /* *** SVE Floating Point Compare with Zero Group diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index 806953bc35..72755b27af 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -1103,6 +1103,8 @@ BF2CVTLT 01100101 00 001 001 001111 ..... ....= . @rd_rn_e0 =20 FCVTN 01100101 00 001 010 001100 ....0 ..... @rd_rnx2 e= sz=3D1 BFCVTN 01100101 00 001 010 001110 ....0 ..... @rd_rnx2 e= sz=3D1 +FCVTNB 01100101 00 001 010 001101 ....0 ..... @rd_rnx2 e= sz=3D2 +FCVTNT 01100101 00 001 010 001111 ....0 ..... @rd_rnx2 e= sz=3D2 =20 ### SVE FP Compare with Zero Group =20 --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301578; cv=none; d=zohomail.com; s=zohoarc; b=jNf4oq3oADTn3hifEvi/GgiPvyps7lISXv4llEQ0ty5Rc39cJu6N07K9XCfAiRAoDN8/f/AqGdeLPPymb3iIw5unVH/kcdWZOmBlVA07bUaxL6tnOwkOYV0ImZ503OI7bIdoD8yXxvG7K7vdvuILO6E9Ga8YnS/WFpbPuubdjS4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301578; 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=qClXpzIkhY6HXQLVy4Ou0WWe411jsSWReuNJ6IrI5vs=; b=fRH7o2w5RvRPh5giC3Fj3oBb5/DEz6EVBf6aQFxGWhbGk+1ofF573ZWqrku/fjbjnF4gbc4tgQaIeEyf0wvjQjO8pHB7h05wJcsaUHV37zJ2n306iPzhAknp603yuBmEfwc8GqhmZoqqANt6mnsVZdepSqL+eG9CG8aqp53WqZ8= 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 1779301578809874.9246050348687; Wed, 20 May 2026 11:26:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlZD-0007ZE-Ti; Wed, 20 May 2026 14:22:51 -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 1wPlZB-0007Pa-Lk for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:49 -0400 Received: from mail-pj1-x102f.google.com ([2607:f8b0:4864:20::102f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlZ6-0000ey-Lm for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:48 -0400 Received: by mail-pj1-x102f.google.com with SMTP id 98e67ed59e1d1-3684a6f3b0bso2674353a91.1 for ; Wed, 20 May 2026 11:22:43 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301360; x=1779906160; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=qClXpzIkhY6HXQLVy4Ou0WWe411jsSWReuNJ6IrI5vs=; b=cHqitFOZgz/9P89MbgSaHXdnCb0iMnmKzif1KDcN4zVYQ4xlu8evvGaeorrRQZ19pp pyH2VJUhcwqH58Dqca0N5L/TkQeKJpk8h6wiHiWyAaNA/SDut5jAti/jhj2lDUWmjM2d pZ7Rxh8xcq6TPSee3UzTCoxlyy7BEV9cBhJHJugWb7qrjAiS26usOHoe0Q5sEIy2qrbS AH09l34nnqo8p+81dOEVaQ86fXKy4qhBWRN2XjtCKv8aamkwiOSKdMdI7xtalRLFn9p8 fIzlQPjRmL/LJHuHZo1VZHqONHBbtkDfeRUHqc4gY/nIKLf61mRFqCctzh5s5fgQG29U bbTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301360; x=1779906160; 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; bh=qClXpzIkhY6HXQLVy4Ou0WWe411jsSWReuNJ6IrI5vs=; b=JWFkd2zAU62lFb7MvHB1GukF1wLsLo6wEZIyHjVpmRmTqJ3F1ymeGY10qVnOMhR8lW rirMAD04XdZpUFMsYKAWVluN//mfdNfGg4GfwmTaedtuu0vItUEG4DGzPRS2V4y/zbx9 VstnZtRFVLXnaagtv37wHjcyxjDB98v74jCvinpi6gSdGC4j3SQX+WngUYqxrOlew0xM WJPvbYP+JbCKmWohqvvHAWEC+CDY/zrM1j5vDSa/sK6FUdFN3wgbGi3LRBgfY7AO2oU+ Yt8EO5zhQdE3YrETNd7PHLvEo2GqjMc+pCCeKM8dAiGxX1EPe/23vOTCWTUY3FmTQeNo pG2g== X-Gm-Message-State: AOJu0Yw50c+5Wf+pVzwUDBXO5OJ0FlAgJRdSRRSzD7ipJVv1Nlt/xvz4 Fq9G02+00GTknRYAgSozDTxKLQEnHmLSdXVLcBmszlEej1aZ/jOcFP29W3C57UaI0EyVvKZ8KQR TU+N2OD0= X-Gm-Gg: Acq92OFJrd6szRhmPv6xE13o1GQVmHvZPCrRFfGM3x6aeTkSIhRTOB6m20SfW7yEpxy 8ijNjbkFpVseAEsPZLGuP8F/vt0YeAs5qFzEb9dGGL42kRuTn82fw2Xh/xZFn/nqv7la4+LiRxn MmEFuk6wowGwaVQJg1oA3Q2NuTT6gZHXcoBMGPeoOgAzyIXXsW8VHjtUX3rbEl+Hc2G/IiENtDD IDzxdbUu7FS/S4IKqY/qEWuN1+0te1IE9yoQcKouYn6zShI8sXutcpjd9++SI8aFEF6zIwcR0mE 3rbEO982+PnubbjmSr5R0gkcTmx1NqjgTaJBdbEceIuvL+uOEF6r+jiLKoZNEvxS9kR7UdCUuoi fWhrBAcL2BBiMYrRnojzC2D8nAhKPANxMQb5nf8zYD+4rAwYKRqwlpaUPc6bXv4xWJoSpMDd4hW wzfAiB4pCeaP8BdUT8ivx5EEr3JPAd X-Received: by 2002:a17:90b:4c05:b0:369:7944:d723 with SMTP id 98e67ed59e1d1-36a3cb2805bmr429772a91.4.1779301359668; Wed, 20 May 2026 11:22:39 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 36/64] target/arm: Implement FCVT (FP16 to FP8) for SME Date: Wed, 20 May 2026 11:21:45 -0700 Message-ID: <20260520182213.872945-37-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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::102f; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102f.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: 1779301580056158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/translate-sme.c | 16 ++++++++++++++++ target/arm/tcg/sme.decode | 2 ++ 2 files changed, 18 insertions(+) diff --git a/target/arm/tcg/translate-sme.c b/target/arm/tcg/translate-sme.c index 0cbad3e006..050c3cfefe 100644 --- a/target/arm/tcg/translate-sme.c +++ b/target/arm/tcg/translate-sme.c @@ -1556,6 +1556,22 @@ TRANS_FEAT(BF2CVT, aa64_sme2_f8cvt, do_f8cvt, a, gen= _helper_sme2_bfcvt_hb, 1) TRANS_FEAT(BF1CVTL, aa64_sme2_f8cvt, do_f8cvt, a, gen_helper_sme2_bfcvtl_h= b, 0) TRANS_FEAT(BF2CVTL, aa64_sme2_f8cvt, do_f8cvt, a, gen_helper_sme2_bfcvtl_h= b, 1) =20 +static bool trans_FCVT_bh(DisasContext *s, arg_zz_n *a) +{ + if (!dc_isar_feature(aa64_sme2_f8cvt, s)) { + return false; + } + if (fpmr_access_check(s) && sme_sm_enabled_check(s)) { + int svl =3D streaming_vec_reg_size(s); + tcg_gen_gvec_3_ptr(vec_full_reg_offset(s, a->zd), + vec_full_reg_offset(s, a->zn), + vec_full_reg_offset(s, a->zn + 1), + tcg_env, svl, svl, + FPST_ZA << 2, gen_helper_gvec_fcvt_bh); + } + return true; +} + static bool do_zipuzp_4(DisasContext *s, arg_zz_e *a, gen_helper_gvec_2 * const fn[5]) { diff --git a/target/arm/tcg/sme.decode b/target/arm/tcg/sme.decode index d6192eb59d..a02bcc0e22 100644 --- a/target/arm/tcg/sme.decode +++ b/target/arm/tcg/sme.decode @@ -863,6 +863,8 @@ BF2CVT 11000001 111 00110 111000 ..... ....0 = @zz_2x1 BF1CVTL 11000001 011 00110 111000 ..... ....1 @zz_2x1 BF2CVTL 11000001 111 00110 111000 ..... ....1 @zz_2x1 =20 +FCVT_bh 11000001 001 00100 111000 ....0 ..... @zz_1x2 + ZIP_4 11000001 esz:2 1 10110 111000 ...00 ... 00 \ &zz_e zd=3D%zd_ax4 zn=3D%zn_ax4 ZIP_4 11000001 001 10111 111000 ...00 ... 00 \ --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301516; cv=none; d=zohomail.com; s=zohoarc; b=ZPF2KdJleWOHiYG25I6TX5Pcge9q67YX4PWiQX6EE71n2fiVtB1sw6drA0Fzl4LgytFEl6kI6miBGtszL2AHK4ATiFQSVqio3KXTs/NVGvq4UWQYLVhuU0jN1TZxvgDtlj8blCk8OuewStIBOHpnl0wdq14p1EzNK/7s3Cc9p7M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301516; 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=tG5j+tXBfe0M/pH9YqrPktPeM17VCWtju0SLzqGEZMk=; b=UPkVxv2Qte39TWBEhsDnyGC02Q6VqUojdLayXpOW8OtS9VteMdDWw0XggzvQFNBJHxHkW+cTL2Efi2FfRtJAi3spXTeDsxu9awFDGP8Ghq5PC7f6KMDTW+tFpdZN4bDmF0Oan9cI7mJaTjy5Nq6VAfyw+x9nnMrnz4r+2QOSWks= 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 17793015160331006.7652572379326; Wed, 20 May 2026 11:25:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlZy-0000FL-JW; Wed, 20 May 2026 14:23:44 -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 1wPlZC-0007Vb-Rm for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:50 -0400 Received: from mail-pj1-x1033.google.com ([2607:f8b0:4864:20::1033]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlZ7-0000fZ-3L for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:50 -0400 Received: by mail-pj1-x1033.google.com with SMTP id 98e67ed59e1d1-367cbac9cb1so5003623a91.3 for ; Wed, 20 May 2026 11:22:44 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301360; x=1779906160; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=tG5j+tXBfe0M/pH9YqrPktPeM17VCWtju0SLzqGEZMk=; b=MyLt6Gf60xvgGOhK6ZRAaCia1I9ntnQ4K2DHSyYAsm8XvwIVvBtSWCsnsUX2PpOMQW ce70V2U4bvTnlGN5C52KfG6hIOC5sAhPTMIycvQegF4GQ/jEsF0U4nxbOwuG8NKJRNOh cMHPn4hHgN/d5NIwklVC27zYaVxbTtJU536ZdDyEb1wZqQdNyuLfC+a+9fw4JJsHKgmh svJEtsS/isYbkMgroJ+Swq06JohnFxNyVPB3B7eQm7Vag2gauTm6qcT3p7bYw/ExzjAX YrH5DVeTY/sVzXzFWGFpW61oXyk21cH3LR5n/xQbI+Ac8VIfTb5mcwstCrIUbVdJxIyM DHIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301360; x=1779906160; 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; bh=tG5j+tXBfe0M/pH9YqrPktPeM17VCWtju0SLzqGEZMk=; b=Exw8CQXr3/sP1NNGofWIHFNl9Z/Qw0z/BdUlXZfOFYVamUKCxhJxdHf+I2hJAetldj R0nIWQbQBKUSBx8ZmztpnEY1YirYqPR5INi+3m3T0EJjdC3mQIxEbpK9N9Y/ncqtz0pv Jb6IHw0TQitBBCVfKeJEQZGX4yK7AltEgT//ogcGJUo2s+TEj1Ek1Xm6QBjPAOmJmrMV JX9N4PlK1hw0CRDzHWAWQRGZOjMalAb8cIn+d9weVguhO65/gu5RTbBLgraLtYVpS7Ft nq09kP4q3tXzN1NIbzhMJaupzvmSL5ryCCT90Z1QE0V0RD+YNHtHBtji8j2NFHfHEZvF sqHw== X-Gm-Message-State: AOJu0YzGK6c1HHwvJSFt1lTPNbRczX1jJ47tCPpbFUPUTTj+mMoPG4wX sfDiagTjUzt0uIt3Vr2AYLHJT1ZZxlSyPUETHsNLLeoYVMDqEHASjvMxwxPDmmqoMAWVhLUiHvz 0t8UwFtg= X-Gm-Gg: Acq92OHO5bMQ0Vho30/57bCajigsmMfYjqKrQL0ZXteZcrMylB8kl5G2cjArMe/v6jj ujr7nmWSo/DxwIZELGJaF5slFqhP3Fer4QpC/K5gcpeCEjAjShXE56A51rQF74v1vDSar5mk/yY urj+zmTLKrAZd2wyJdMPNWcaQ1SK3wrfWTmbWPrKY7g43tGnxohcswoiRZ+3reaoUbr8gXGbIc4 f0BenzphqDTYIDQErCCvS1oSxYX/wpGQHpfoX2+nYlHEAztPti5ao4bzYEgDPryHkns3Sgsz8/+ s9Vcgdxp92YPkH7z4yZe6G16laA9bV+A2AKVJVEWFr+08i4fZU4IZ9Ra8SaDQzfAbn31xuWhRT1 AWPXJWus4bVyDrCChlBfFDNqT9uhC2vL399MCO09JOrSXoVxArbFwj2ATS6JeYivbqMWu78Tw/z uldlUqgA/o1BkIlnXktlUNlBamXREROlJNJbhjwJs= X-Received: by 2002:a17:90b:5904:b0:369:1dcf:4a56 with SMTP id 98e67ed59e1d1-36951ca8d1amr24903065a91.21.1779301360290; Wed, 20 May 2026 11:22:40 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 37/64] target/arm: Implement FCVT, FCVTN (FP32 to FP8) for SME Date: Wed, 20 May 2026 11:21:46 -0700 Message-ID: <20260520182213.872945-38-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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::1033; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1033.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: 1779301517451158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/helper-fp8-defs.h | 2 ++ target/arm/tcg/fp8_helper.c | 59 ++++++++++++++++++++++++++++++++ target/arm/tcg/translate-sme.c | 3 ++ target/arm/tcg/sme.decode | 3 ++ 4 files changed, 67 insertions(+) diff --git a/target/arm/tcg/helper-fp8-defs.h b/target/arm/tcg/helper-fp8-d= efs.h index 5863a6dbb8..36ae977431 100644 --- a/target/arm/tcg/helper-fp8-defs.h +++ b/target/arm/tcg/helper-fp8-defs.h @@ -21,3 +21,5 @@ DEF_HELPER_FLAGS_4(sve2_fcvtn_bh, TCG_CALL_NO_RWG, void, = ptr, ptr, env, i32) DEF_HELPER_FLAGS_5(advsimd_fcvt_bs, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, = env, i32) DEF_HELPER_FLAGS_4(sve2_fcvtnb_bs, TCG_CALL_NO_RWG, void, ptr, ptr, env, i= 32) DEF_HELPER_FLAGS_4(sve2_fcvtnt_bs, TCG_CALL_NO_RWG, void, ptr, ptr, env, i= 32) +DEF_HELPER_FLAGS_4(sme2_fcvt_bs, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32) +DEF_HELPER_FLAGS_4(sme2_fcvtn_bs, TCG_CALL_NO_RWG, void, ptr, ptr, env, i3= 2) diff --git a/target/arm/tcg/fp8_helper.c b/target/arm/tcg/fp8_helper.c index faa8df692e..8c999655ba 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -510,3 +510,62 @@ void HELPER(sve2_fcvtnt_bs)(void *vd, void *vn, CPUARM= State *env, uint32_t desc) =20 fp8_cvt_finish(env, &ctx); } + +void HELPER(sme2_fcvt_bs)(void *vd, void *vn, CPUARMState *env, uint32_t d= esc) +{ + ARMVectorReg scratch[4]; + FP8Context ctx =3D fp8_dst_start(env, desc, false); + fcvt_fp8_output_fn *output_fmt =3D fcvt_fp8_output_fmt[ctx.f8fmt]; + uint32_t *n =3D vn; + uint8_t *d =3D vd; + bool osc =3D FIELD_EX64(env->vfp.fpmr, FPMR, OSC); + size_t oprsz =3D simd_oprsz(desc); + size_t nelem =3D oprsz / 4; + size_t stride =3D sizeof(ARMVectorReg) / 4; + + if (vectors_overlap(vd, 1, vn, 4)) { + n =3D memcpy(scratch, vn, sizeof(scratch)); + } + + for (size_t i =3D 0; i < nelem; i++) { + for (size_t j =3D 0; j < 4; j++) { + d[H1(i + nelem * j)] =3D fcvt_f32_to_fp8(n[H4(i) + stride * j], + output_fmt, ctx.scale, + osc, &ctx.stat); + } + } + + fp8_cvt_finish(env, &ctx); +} + +void HELPER(sme2_fcvtn_bs)(void *vd, void *vn, CPUARMState *env, uint32_t = desc) +{ + FP8Context ctx =3D fp8_dst_start(env, desc, false); + fcvt_fp8_output_fn *output_fmt =3D fcvt_fp8_output_fmt[ctx.f8fmt]; + uint32_t *n0 =3D vn; + uint32_t *n1 =3D vn + sizeof(ARMVectorReg); + uint32_t *n2 =3D vn + sizeof(ARMVectorReg) * 2; + uint32_t *n3 =3D vn + sizeof(ARMVectorReg) * 3; + uint8_t *d =3D vd; + bool osc =3D FIELD_EX64(env->vfp.fpmr, FPMR, OSC); + size_t oprsz =3D simd_oprsz(desc); + size_t nelem =3D oprsz / 4; + + for (size_t i =3D 0; i < nelem; ++i) { + float32 e0 =3D n0[H4(i)]; + float32 e1 =3D n1[H4(i)]; + float32 e2 =3D n2[H4(i)]; + float32 e3 =3D n3[H4(i)]; + + d[H1(4 * i + 0)] =3D fcvt_f32_to_fp8(e0, output_fmt, + ctx.scale, osc, &ctx.stat); + d[H1(4 * i + 1)] =3D fcvt_f32_to_fp8(e1, output_fmt, + ctx.scale, osc, &ctx.stat); + d[H1(4 * i + 2)] =3D fcvt_f32_to_fp8(e2, output_fmt, + ctx.scale, osc, &ctx.stat); + d[H1(4 * i + 3)] =3D fcvt_f32_to_fp8(e3, output_fmt, + ctx.scale, osc, &ctx.stat); + } + + fp8_cvt_finish(env, &ctx); +} diff --git a/target/arm/tcg/translate-sme.c b/target/arm/tcg/translate-sme.c index 050c3cfefe..2f79c458e1 100644 --- a/target/arm/tcg/translate-sme.c +++ b/target/arm/tcg/translate-sme.c @@ -1572,6 +1572,9 @@ static bool trans_FCVT_bh(DisasContext *s, arg_zz_n *= a) return true; } =20 +TRANS_FEAT(FCVT_bs, aa64_sme2_f8cvt, do_f8cvt, a, gen_helper_sme2_fcvt_bs,= 0) +TRANS_FEAT(FCVTN_bs, aa64_sme2_f8cvt, do_f8cvt, a, gen_helper_sme2_fcvtn_b= s, 0) + static bool do_zipuzp_4(DisasContext *s, arg_zz_e *a, gen_helper_gvec_2 * const fn[5]) { diff --git a/target/arm/tcg/sme.decode b/target/arm/tcg/sme.decode index a02bcc0e22..2b9e41a75a 100644 --- a/target/arm/tcg/sme.decode +++ b/target/arm/tcg/sme.decode @@ -865,6 +865,9 @@ BF2CVTL 11000001 111 00110 111000 ..... ....1 = @zz_2x1 =20 FCVT_bh 11000001 001 00100 111000 ....0 ..... @zz_1x2 =20 +FCVT_bs 11000001 001 10100 111000 ...00 ..... @zz_1x4 +FCVTN_bs 11000001 001 10100 111000 ...01 ..... @zz_1x4 + ZIP_4 11000001 esz:2 1 10110 111000 ...00 ... 00 \ &zz_e zd=3D%zd_ax4 zn=3D%zn_ax4 ZIP_4 11000001 001 10111 111000 ...00 ... 00 \ --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779302014; cv=none; d=zohomail.com; s=zohoarc; b=dH5thRL7k4F+jnsVzQbUJcw/38tssbTmoZDg5EZxhFwsCG97T25FnNY8zOGCQU5WXYdniHoYJWIDM6I9ZANIaQNK8dieaCHc6mYZj9wBuoSLBWkMZxapM89sNlMcJ/PFusSZXMFIz9+B+fLnARuBGNFz2W8ujHJNA+Z4vj0BF/U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779302014; 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=D8ivg/9pTp+z8XxYtGp3cjH8SZWcN0fCcMM2p2FPgLQ=; b=Q8cMRMPkyjDLPsq1M5nyeUC4+AWXZ8JTjFsq/GJyI5hs/9B7ioIBHjR9FrhPVYhDjoJld4hQJ0QtRLiHpcyexPEnk7jn8r/XMQR/lGVOPTN4ffJAd0Hd6sKgrzgisEb0ZK4YOtDAynporJ9RCzTqGEnWcr2Ba/HgRLSCi0FWk0Q= 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 1779302014074633.3813273877236; Wed, 20 May 2026 11:33:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlZR-00088f-6S; Wed, 20 May 2026 14:23: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 1wPlZJ-0007l1-U0 for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:58 -0400 Received: from mail-pj1-x102c.google.com ([2607:f8b0:4864:20::102c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlZ9-0000fT-66 for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:57 -0400 Received: by mail-pj1-x102c.google.com with SMTP id 98e67ed59e1d1-3697c35eab7so2991121a91.0 for ; Wed, 20 May 2026 11:22:44 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301361; x=1779906161; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=D8ivg/9pTp+z8XxYtGp3cjH8SZWcN0fCcMM2p2FPgLQ=; b=EUWpl4pZQzIpUPHvLFqxPxo4AFUY4kVA5NVEEKv+ege9Vzi8bzWXCmyJ8Bb1Ll+3ea xR3le+csNvYKqShNeOjL901lvjuNy6IdJJv7jeBWidsfZo4/bGLAcNhWmSHqbWMZj6+8 tbBt33pGV1qNqJI+TYsZ2afr33SwSeap86rRGHxTP+CeRe/rlouZK7inPaoKm3ax08kN AaZOBfQXYibW9+4NMzthvIOI+QB1RyiJgujXRvlIwOn6ED+miNVe4euZ45jlh20wk8/4 Sm6p5nd0sAt4X0/+IzSDPNqJdnaWP/NdlfY1gUpbU1C9MNf/r1gRUl495x5GmTwx4eTU MJ0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301361; x=1779906161; 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; bh=D8ivg/9pTp+z8XxYtGp3cjH8SZWcN0fCcMM2p2FPgLQ=; b=kzFlUOlsk4bVcxzvlZ4xLJd/ef/8PXHWUWvBEKJavsPbATL2RpXjwYRqTxNNNY/Q3c yVjHQWhWTzB40X9IIYjJIud+FrBynnIo+bOEHZg7Z65QNPLQAcYX7NWRuwfT9CbfzUPC HceunS/ExrWKMMvjI5Iuv7eDCE16yII6bNPnfiDP++kTmSBlYgk13Uz8Qi1Y6BDBybr+ Sj+KXDrxaBKr+b02ecGbLTD73qgoLPflJWKaa6/0odnmtUy1lIBw7rvwaHzk0mPX2JXj HstJhhEM6KAQnCNUXEfOEEixVriis2T5n7l/8I2Dmu8lm728SYd99IY8wJNF3sBiTXqr meGw== X-Gm-Message-State: AOJu0YyO86STjqzmiVaeMiep3hGjK+zaZO5hTS7aQZHrwWsA9kxtnDhO jIUTS67IypUxDDTwNgO7kX7rBe6nHtAOFL+lX7E+JUBglGhcB4zX1A3eaguan3dsm4zOTiwtYTV OWXCA1tg= X-Gm-Gg: Acq92OHjjgfPFJyN/QUYiY34XvUM5yqwmqx3QGnqj6h5VWZWwlvM5Ymk++FsXT/Z2RQ wPRCjon/XE85VTI1LPq+cvCdPgzwXCtnjfcHvYq+ErVNCVOJ2/8wswHEKkinIilKqqXRzu9Xd3g l0l4PChMgUTpf1lpKhGu8xoN0NF0itxgwNvAjPUs80kWcXCRNn6LSON4CYCdkjMUcHiadaN+AUS sMZEVI+TirwcIPf8t1WL9fH02C0UZ9Un2c+VnL5UowqGNZnu5bL6luh2VX5+aJ/lNQ0IB6qVcuD 4VaiMjoA2/AKKl7NMn+BYfyMZK49/Y1uJ6/FhK9NBxRKzMvf4daHbKPfIaDIQuxIFmlY9eJzliL j/XMTud4ibGYzhPM5KvaxXsu0ZOkYAVVSFB6JudqjjYG92pga90iMkMcSuPjaYb6W1X9g50zKYs +2dm6U9WjsEt5nV6tcku5hR8emxvefJciukNaUnGE= X-Received: by 2002:a17:90b:3e8e:b0:366:159a:c1ba with SMTP id 98e67ed59e1d1-369518b224emr24846039a91.3.1779301361036; Wed, 20 May 2026 11:22:41 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 38/64] target/arm: Implement LUTI2, LUTI4 for AdvSIMD Date: Wed, 20 May 2026 11:21:47 -0700 Message-ID: <20260520182213.872945-39-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102c; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1779302015342154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/helper-defs.h | 5 ++++ target/arm/tcg/translate-a64.c | 38 +++++++++++++++++++++++++ target/arm/tcg/vec_helper.c | 52 ++++++++++++++++++++++++++++++++++ target/arm/tcg/a64.decode | 6 ++++ 4 files changed, 101 insertions(+) diff --git a/target/arm/tcg/helper-defs.h b/target/arm/tcg/helper-defs.h index a05f2258f2..05ccf795e8 100644 --- a/target/arm/tcg/helper-defs.h +++ b/target/arm/tcg/helper-defs.h @@ -1122,3 +1122,8 @@ DEF_HELPER_FLAGS_4(sme2_luti4_2s, TCG_CALL_NO_RWG, vo= id, ptr, ptr, env, i32) =20 DEF_HELPER_FLAGS_4(sme2_luti4_4h, TCG_CALL_NO_RWG, void, ptr, ptr, env, i3= 2) DEF_HELPER_FLAGS_4(sme2_luti4_4s, TCG_CALL_NO_RWG, void, ptr, ptr, env, i3= 2) + +DEF_HELPER_FLAGS_4(gvec_luti2_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32) +DEF_HELPER_FLAGS_4(gvec_luti2_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32) +DEF_HELPER_FLAGS_4(gvec_luti4_b, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32) +DEF_HELPER_FLAGS_4(gvec_luti4_h, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, i32) diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index 3c784afc99..508d8e377b 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -5405,6 +5405,44 @@ static bool trans_TBL_TBX(DisasContext *s, arg_TBL_T= BX *a) return true; } =20 +static bool do_lut_1(DisasContext *s, arg_rrx_e *a, gen_helper_gvec_3 *fn) +{ + if (fp_access_check(s)) { + gen_gvec_op3_ool(s, true, a->rd, a->rn, a->rm, a->idx, fn); + } + return true; +} + +TRANS_FEAT(LUTI2_1b, aa64_lut, do_lut_1, a, gen_helper_gvec_luti2_b) +TRANS_FEAT(LUTI2_1h, aa64_lut, do_lut_1, a, gen_helper_gvec_luti2_h) +TRANS_FEAT(LUTI4_1b, aa64_lut, do_lut_1, a, gen_helper_gvec_luti4_b) + +static bool trans_LUTI4_2h(DisasContext *s, arg_rrx_e *a) +{ + if (!dc_isar_feature(aa64_lut, s)) { + return false; + } + if (fp_access_check(s)) { + /* + * (Ab)use preg_tmp to merge two disjoint 128-bit quantities + * into a sequential 256-bit table. + */ + QEMU_BUILD_BUG_ON(sizeof_field(CPUARMState, vfp.preg_tmp) < 32); + unsigned tmp_ofs =3D offsetof(CPUARMState, vfp.preg_tmp); + unsigned rn0_ofs =3D vec_full_reg_offset(s, a->rn); + unsigned rn1_ofs =3D vec_full_reg_offset(s, (a->rn + 1) % 32); + + tcg_gen_gvec_mov(MO_64, tmp_ofs, rn0_ofs, 16, 16); + tcg_gen_gvec_mov(MO_64, tmp_ofs + 16, rn1_ofs, 16, 16); + + tcg_gen_gvec_3_ool(vec_full_reg_offset(s, a->rd), tmp_ofs, + vec_full_reg_offset(s, a->rm), + 16, vec_full_reg_size(s), + a->idx, gen_helper_gvec_luti4_h); + } + return true; +} + typedef int simd_permute_idx_fn(int i, int part, int elements); =20 static bool do_simd_permute(DisasContext *s, arg_qrrr_e *a, diff --git a/target/arm/tcg/vec_helper.c b/target/arm/tcg/vec_helper.c index 91e98d28ae..cb633817d7 100644 --- a/target/arm/tcg/vec_helper.c +++ b/target/arm/tcg/vec_helper.c @@ -3348,3 +3348,55 @@ DO_SME2_LUT(4,4,h, 2) DO_SME2_LUT(4,4,s, 4) =20 #undef DO_SME2_LUT + +void HELPER(gvec_luti2_b)(void *vd, void *vn, void *vm, uint32_t desc) +{ + unsigned part =3D simd_data(desc); + unsigned vl =3D simd_oprsz(desc); + unsigned elements =3D vl / 1; + unsigned ibase =3D elements * part; + ARMVectorReg scratch; + + do_lut_b(&scratch, vm, vn, elements, ibase, 0, 2, 8, 1); + memcpy(vd, &scratch, vl); + clear_tail(vd, vl, simd_maxsz(desc)); +} + +void HELPER(gvec_luti2_h)(void *vd, void *vn, void *vm, uint32_t desc) +{ + unsigned part =3D simd_data(desc); + unsigned vl =3D simd_oprsz(desc); + unsigned elements =3D vl / 2; + unsigned ibase =3D elements * part; + ARMVectorReg scratch; + + do_lut_h(&scratch, vm, vn, elements, ibase, 0, 2, 16, 1); + memcpy(vd, &scratch, vl); + clear_tail(vd, vl, simd_maxsz(desc)); +} + +void HELPER(gvec_luti4_b)(void *vd, void *vn, void *vm, uint32_t desc) +{ + unsigned part =3D simd_data(desc); + unsigned vl =3D simd_oprsz(desc); + unsigned elements =3D vl / 1; + unsigned ibase =3D elements * part; + ARMVectorReg scratch; + + do_lut_b(&scratch, vm, vn, elements, ibase, 0, 4, 8, 1); + memcpy(vd, &scratch, vl); + clear_tail(vd, vl, simd_maxsz(desc)); +} + +void HELPER(gvec_luti4_h)(void *vd, void *vn, void *vm, uint32_t desc) +{ + unsigned part =3D simd_data(desc); + unsigned vl =3D simd_oprsz(desc); + unsigned elements =3D vl / 2; + unsigned ibase =3D elements * part; + ARMVectorReg scratch; + + do_lut_h(&scratch, vm, vn, elements, ibase, 0, 4, 16, 1); + memcpy(vd, &scratch, vl); + clear_tail(vd, vl, simd_maxsz(desc)); +} diff --git a/target/arm/tcg/a64.decode b/target/arm/tcg/a64.decode index a9cf259b9b..6aea3ce89f 100644 --- a/target/arm/tcg/a64.decode +++ b/target/arm/tcg/a64.decode @@ -1344,6 +1344,12 @@ EXT_q 0110 1110 00 0 rm:5 0 imm:4 0 rn:5 = rd:5 =20 TBL_TBX 0 q:1 00 1110 000 rm:5 0 len:2 tbx:1 00 rn:5 rd:5 =20 +LUTI2_1b 0100 1110 100 rm:5 0 idx:2 100 rn:5 rd:5 &rrx_e esz=3D0 +LUTI2_1h 0100 1110 110 rm:5 0 idx:3 00 rn:5 rd:5 &rrx_e esz=3D1 + +LUTI4_1b 0100 1110 010 rm:5 0 idx:1 1000 rn:5 rd:5 &rrx_e esz=3D0 +LUTI4_2h 0100 1110 010 rm:5 0 idx:2 100 rn:5 rd:5 &rrx_e esz=3D1 + # Advanced SIMD Permute =20 UZP1 0.00 1110 .. 0 ..... 0 001 10 ..... ..... @qrrr_e --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301411; cv=none; d=zohomail.com; s=zohoarc; b=PJoKlsQ6FxOMa3ZYTxxz+YitZB6uBRUsTjWefkigl6xQLdySv7jzA2fWAdLHBspr3ncX/1Ml3E/7Kmt84eoOTZd4ZaB43yV+dzx/MvFOWKGAeDShpKxQ35N7fKqnlL4DpoHfOB/huWFpRAec5E7RSHTg8rPr4PZ1Njxxf/A9CMM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301411; 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=LT7OexZ++nqH0+TQBAA8KZwuqR3fGnFfvg7Y1abp9k4=; b=FfZ2g+00HK+j5tACjp855Ju1o7Tv44ABW0NLirV/6+C50pizuZVxZlk7uP1MuWBC8bV377Mx9eUpZDyaWolgosZG4s2dZ33fJ25QuoY0AXy0W3ktmpBF1jfidaOxW3Wn41h1by50rlEEwx7SeM0oHzlebwDCFxJC4h4a8MLgvQ0= 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 1779301411927451.7492154143348; Wed, 20 May 2026 11:23:31 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlZV-0008LM-S6; Wed, 20 May 2026 14:23: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 1wPlZB-0007PQ-K4 for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:49 -0400 Received: from mail-pj1-x102a.google.com ([2607:f8b0:4864:20::102a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlZ6-0000fH-Lc for qemu-devel@nongnu.org; Wed, 20 May 2026 14:22:48 -0400 Received: by mail-pj1-x102a.google.com with SMTP id 98e67ed59e1d1-36608b2f2dcso3219438a91.2 for ; Wed, 20 May 2026 11:22:44 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a3d210b4esm274764a91.17.2026.05.20.11.22.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:22:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301362; x=1779906162; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=LT7OexZ++nqH0+TQBAA8KZwuqR3fGnFfvg7Y1abp9k4=; b=njkW+hRgAV3gt6d6NSXumlUCC5vwjg5ACvn076vu5YMuTa+8vJPQ1W5XVDmSW5id+H 8tbNJHr9YYbiW2DkpW4oVlINuuT/iqi7jfl8usixJcRndfUr0serhingTBCU/bU1d9dd Wno6/CDsjB72owXRqJJa/KKFIssup90AX9/DtGbmqVFFmmKP+9NElT7jdZslHbIzMTB7 uQDpBK6l+TQrh7kXzLo3KcrQ7Jcnt71KDXhi19tXiVOSOt/6P41NVfB6qK5sd2yk0xuB +Gfw4chy84sKAGQ5EzbCuDkseYtfBp8FxVhl4XA/tS6DoECDW7RAFm5Q0mFSz/gKO4oy JtYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301362; x=1779906162; 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; bh=LT7OexZ++nqH0+TQBAA8KZwuqR3fGnFfvg7Y1abp9k4=; b=C6J3p9Le1ZacjXiPTHL7fJ/niQV6+PG7a6t6QVsmlVnSkmjrLKz4uDmRI0LmAMzsXQ UQTtPTexIU53DHKFgrPNopa93hb+qoxlWLB9R4IZ1eQs9pjGLohADfDIx5bJLCk9tByI Xi3in6+gZD/DawhbI5XEuidJJK4FtQbE9us3Jdw1Y/c1oPuPAbvx/DYHJ+ZqFnVZsiYj gb/8EDZix3H2L4nUShScjlILZDDWwoc3SRpL7p1QjxGO2xeCP9eW09VV0kebtMC/KI/c kibwv4s4+CuGngh8ovHlEeEp+sNtqXVnyRmVTEfzF/mkhvOCWmxQNxRafW2EhmI4eels mQ6g== X-Gm-Message-State: AOJu0Yxlx0qyzGUINVSPRKyv3OhHIWUoJkQLa/XOK1rTtKXUUinesjcZ CUousCCcaGc4jxJbNMwZc4sDKML5T754lcGIslTWU3zdaXnWk6WtUSH0dn6A0sHCCxP3Zzv3Cy3 g0d6Yzwg= X-Gm-Gg: Acq92OEU0dp8tDbhqzHOqy/xrRhjVcE7Jt9qjOZXsNEWpqIj7qogf/BXbcUqjaZP88V cmtO/YQQazKUfFeiNHvJRyMDLb/2pY3PuePXz9+ww9KHfza4bZY95/s3xncYQnlbB/bLiR3fvrl zmCJDohCUFr6cVhZ3qO9sSk7PIy5C709mCNPPDnB57zH8SswzMkaD/QEFpCQoelNcdR+IJZAQN2 EwN+D2DtYJdxJW9/kNtQ7+z4CXKUKLerSO3Slzeldoa2rFRE5EF82kFQlN/f2x2G6NCXuoHOlYr CVLM8pp9RCiUsMIT3o7eu+5Zk/NCc6vdXIxUI/LqWaWEupdqtHIDYV9DAwEBUmlYp5VSx8RXer9 IqPnkJWowfQWHX6oXW62XngurUV/d4BvQkGhap/536ccX1tIJUk1/vgMEmpeLo6Op4z6LDn/yRu vZw8Wo/dpoZGC/ymm9pyaLrPJlxtMOm3M7PdoqMeE= X-Received: by 2002:a17:90b:90d:b0:369:7421:b36f with SMTP id 98e67ed59e1d1-36974221037mr14013815a91.21.1779301361976; Wed, 20 May 2026 11:22:41 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 39/64] target/arm: Implement LUTI2, LUTI4 for SVE Date: Wed, 20 May 2026 11:21:48 -0700 Message-ID: <20260520182213.872945-40-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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::102a; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102a.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: 1779301413410154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/cpu-features.h | 6 +++ target/arm/tcg/translate.h | 8 ++++ target/arm/tcg/translate-a64.c | 1 + target/arm/tcg/translate-sve.c | 68 ++++++++++++++++++++++++++++++++++ target/arm/tcg/sve.decode | 11 +++++- 5 files changed, 93 insertions(+), 1 deletion(-) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index fd09bbc5cf..6d5994450f 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1649,6 +1649,12 @@ isar_feature_aa64_sme2_or_sve2_f8cvt(const ARMISAReg= isters *id) return isar_feature_aa64_sme2_or_sve2(id) && isar_feature_aa64_f8cvt(i= d); } =20 +static inline bool +isar_feature_aa64_sme2_or_sve2_lut(const ARMISARegisters *id) +{ + return isar_feature_aa64_sme2_or_sve2(id) && isar_feature_aa64_lut(id); +} + /* * Feature tests for "does this exist in either 32-bit or 64-bit?" */ diff --git a/target/arm/tcg/translate.h b/target/arm/tcg/translate.h index 1648c2c96f..b703e75b70 100644 --- a/target/arm/tcg/translate.h +++ b/target/arm/tcg/translate.h @@ -90,6 +90,7 @@ typedef struct DisasContext { int vl; /* current vector length in bytes */ int svl; /* current streaming vector length in bytes */ int max_svl; /* maximum implemented streaming vector length */ + int max_any_vl; /* maximum implemented vector length */ bool vfp_enabled; /* FP enabled via FPSCR.EN */ int vec_len; int vec_stride; @@ -874,4 +875,11 @@ static inline void gen_restore_rmode(TCGv_i32 old, TCG= v_ptr fpst) return dc_isar_feature(FEAT, s) && FUNC(s, __VA_ARGS__); \ } =20 +#define TRANS_FEAT_SME1_NONSTREAMING(NAME, FEAT, FUNC, ...) \ + static bool trans_##NAME(DisasContext *s, arg_##NAME *a) \ + { \ + s->is_nonstreaming =3D !dc_isar_feature(aa64_sme2, s); \ + return dc_isar_feature(FEAT, s) && FUNC(s, __VA_ARGS__); \ + } + #endif /* TARGET_ARM_TRANSLATE_H */ diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index 508d8e377b..ee71c63116 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -10820,6 +10820,7 @@ static void aarch64_tr_init_disas_context(DisasCont= extBase *dcbase, dc->vl =3D (EX_TBFLAG_A64(tb_flags, VL) + 1) * 16; dc->svl =3D (EX_TBFLAG_A64(tb_flags, SVL) + 1) * 16; dc->max_svl =3D arm_cpu->sme_max_vq * 16; + dc->max_any_vl =3D MAX(dc->max_svl, arm_cpu->sve_max_vq * 16); dc->pauth_active =3D EX_TBFLAG_A64(tb_flags, PAUTH_ACTIVE); dc->bt =3D EX_TBFLAG_A64(tb_flags, BT); dc->btype =3D EX_TBFLAG_A64(tb_flags, BTYPE); diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 13f7ab01af..ea0d66178e 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8268,3 +8268,71 @@ TRANS_FEAT(LD1_zcrr_stride, aa64_sme2, gen_ldst_zcrr= _c, a, false, true) TRANS_FEAT(LD1_zcri_stride, aa64_sme2, gen_ldst_zcri_c, a, false, true) TRANS_FEAT(ST1_zcrr_stride, aa64_sme2, gen_ldst_zcrr_c, a, true, true) TRANS_FEAT(ST1_zcri_stride, aa64_sme2, gen_ldst_zcri_c, a, true, true) + +TRANS_FEAT_SME1_NONSTREAMING(LUTI2_1b, aa64_sme2_or_sve2_lut, + gen_gvec_ool_zzz, gen_helper_gvec_luti2_b, + a->rd, a->rn, a->rm, a->index) +TRANS_FEAT_SME1_NONSTREAMING(LUTI2_1h, aa64_sme2_or_sve2_lut, + gen_gvec_ool_zzz, gen_helper_gvec_luti2_h, + a->rd, a->rn, a->rm, a->index) +TRANS_FEAT_SME1_NONSTREAMING(LUTI4_1b, aa64_sme2_or_sve2_lut, + gen_gvec_ool_zzz, gen_helper_gvec_luti4_b, + a->rd, a->rn, a->rm, a->index) + +static bool trans_LUTI4_1h(DisasContext *s, arg_LUTI4_1h *a) +{ + if (!dc_isar_feature(aa64_sme2_or_sve2_lut, s)) { + return false; + } + s->is_nonstreaming =3D !dc_isar_feature(aa64_sme2, s); + + /* + * The MaxImplementedAnyVL check happens in the decode pseudocode, + * before the Check*SVEEnabled check in the operation pseudocode. + */ + if (s->max_any_vl < 32) { + unallocated_encoding(s); + } else if (sve_access_check(s)) { + unsigned vsz =3D vec_full_reg_size(s); + + /* Then there's a second check against CurrentVL. */ + if (vsz < 32) { + unallocated_encoding(s); + } else { + tcg_gen_gvec_3_ool(vec_full_reg_offset(s, a->rd), + vec_full_reg_offset(s, a->rn), + vec_full_reg_offset(s, a->rm), + vsz, vsz, a->index, + gen_helper_gvec_luti4_h); + } + } + return true; +} + +static bool trans_LUTI4_2h(DisasContext *s, arg_LUTI4_2h *a) +{ + if (!dc_isar_feature(aa64_sme2_or_sve2_lut, s)) { + return false; + } + s->is_nonstreaming =3D !dc_isar_feature(aa64_sme2, s); + + if (sve_access_check(s)) { + unsigned vsz =3D vec_full_reg_size(s); + /* + * (Ab)use preg_tmp to merge two disjoint 128-bit quantities + * into a sequential 256-bit table. + */ + QEMU_BUILD_BUG_ON(sizeof_field(CPUARMState, vfp.preg_tmp) < 32); + unsigned tmp_ofs =3D offsetof(CPUARMState, vfp.preg_tmp); + unsigned rn0_ofs =3D vec_full_reg_offset(s, a->rn); + unsigned rn1_ofs =3D vec_full_reg_offset(s, (a->rn + 1) % 32); + + tcg_gen_gvec_mov(MO_64, tmp_ofs, rn0_ofs, 16, 16); + tcg_gen_gvec_mov(MO_64, tmp_ofs + 16, rn1_ofs, 16, 16); + + tcg_gen_gvec_3_ool(vec_full_reg_offset(s, a->rd), tmp_ofs, + vec_full_reg_offset(s, a->rm), + vsz, vsz, a->index, gen_helper_gvec_luti4_h); + } + return true; +} diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index 72755b27af..e2106fc7f5 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -31,6 +31,7 @@ %dtype_23_13 23:2 13:2 %index3_22_19 22:1 19:2 %index3_22_17 22:1 17:2 +%index3_22_12 22:2 12:1 %index3_19_11 19:2 11:1 %index2_20_11 20:1 11:1 =20 @@ -1737,11 +1738,19 @@ RSUBHNT 01000101 .. 1 ..... 011 111 ..... .= .... @rd_rn_rm MATCH 01000101 .. 1 ..... 100 ... ..... 0 .... @pd_pg_rn_rm NMATCH 01000101 .. 1 ..... 100 ... ..... 1 .... @pd_pg_rn_rm =20 -### SVE2 Histogram Computation +### SVE2 Histogram Computation and Lookup Table =20 HISTCNT 01000101 .. 1 ..... 110 ... ..... ..... @rd_pg_rn_rm HISTSEG 01000101 .. 1 ..... 101 000 ..... ..... @rd_rn_rm =20 +LUTI2_1b 01000101 index:2 1 rm:5 101100 rn:5 rd:5 &rrx_esz esz=3D0 +LUTI2_1h 01000101 .. 1 rm:5 101.10 rn:5 rd:5 \ + &rrx_esz esz=3D1 index=3D%index3_22_12 + +LUTI4_1b 01000101 index:1 11 rm:5 101001 rn:5 rd:5 &rrx_esz esz=3D0 +LUTI4_1h 01000101 index:2 1 rm:5 101111 rn:5 rd:5 &rrx_esz esz=3D1 +LUTI4_2h 01000101 index:2 1 rm:5 101101 rn:5 rd:5 &rrx_esz esz=3D1 + ## SVE2 floating-point pairwise operations =20 FADDP 01100100 .. 010 00 0 100 ... ..... ..... @rdn_pg_rm --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301689; cv=none; d=zohomail.com; s=zohoarc; b=jB4SQTThSr8FxGDJ9x81ba2V3Nqhuu7UzzcyND6P3eD/aXcIqA7Ij88qDwl5Be/gfAR9WHcSBJB0xF+VQMeCTrkNRQUF3WlEMyWObF2845IoUIKc61Ln9xihqlfmRcl7o2BEwf/370SAynYxQj/7l73BUp8+GU00Q2X+9H1xhVk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301689; 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=7QG3SAWZXTLSfeqfkLdTcj+WQldu34LGY3+/Bb5YVXA=; b=X8Ogf4d2lRAtO6P1HzxF3PveLHuZrQy1fxM6YnjOUKLP6N7ac87/oyrY/LN9eML4GFIFrAcSvdq8hNq7W3tvF9RB3UOO5gNgTdYaseRwdDGRUL2JJq2R+oyo5wQt/QMVbVhmjrwF3oGSLLeisi34PFJmkGbx2tudXcd8KCHez8s= 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 1779301688993376.3385284481458; Wed, 20 May 2026 11:28:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlc6-0003yR-Iu; Wed, 20 May 2026 14:25:51 -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 1wPlc2-0003ms-QG for qemu-devel@nongnu.org; Wed, 20 May 2026 14:25:46 -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 1wPlc1-0001xe-0G for qemu-devel@nongnu.org; Wed, 20 May 2026 14:25:46 -0400 Received: by mail-pg1-x530.google.com with SMTP id 41be03b00d2f7-c801b30188dso2456416a12.3 for ; Wed, 20 May 2026 11:25:44 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c0605ddsm217413925ad.32.2026.05.20.11.25.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:25:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301543; x=1779906343; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=7QG3SAWZXTLSfeqfkLdTcj+WQldu34LGY3+/Bb5YVXA=; b=RhopY10aq53B7JpUgCs+vsL1KcFRPFWEoJU5nyN3A69RFIyLreWYREViu4b4V/Mz8e YxYg5ouc2m3xN76eHxhEAxHF95yXn42hsVghhLUwVMEHW2RHZN+mRUmTqvtPShfgRomT YbOPcmwh5FJVZVxGQY60iSZ9l4yGXKu0Jn63LLIMe+6bSQBAk5KsSeeqbxP8WimTrJke P155gUe8FTqFfz9xmgbSdyNs+cC1p/dKronRraW9Jgf8R8prAa6szEpdKIvd2kR4T+6r baLXwwcESmxUcB8CExVQHRWPm9sCVfVwkJl9wwvfv5adebzrHU43o2C9ysFF2jTI9g+c zjng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301543; x=1779906343; 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; bh=7QG3SAWZXTLSfeqfkLdTcj+WQldu34LGY3+/Bb5YVXA=; b=DaNBIDBgXxeFQsmFfyBepTOmQGSS0l32Po2H0RRuGHW902vuNV1pxHyWe+nMg3f4yc pho3bethHI3Gk7VP4skcvy43ABq7hnjKOBjTnE8k7lebQQAP4EIcIpmVk6NttgmrdH5F wpYd1aYDZgN65a6dCG3uHnIjTN2UwrcMs2VB5OEiAZVDV36yUCpxL7AugDPxg5/G7c/j KiQuTnsy7SELgHEDtfkXyy8IxXjUblDajLrEfsIMg28JhFrE0G6sBc8Erm+K2sHwZZXK h2z9QUTKIsW7q4kJnXZ0gkFV2y8FgF9DpgyuSfZbOztxca3YaACtrzGdb/N87aTE8uXJ F32A== X-Gm-Message-State: AOJu0Yz8JyY0PgUOL5HK66jVQ6c2oPRmjO8KPtjgFXf96V4WeRo/l8gD TS/IzoGWLIXs2xyI181ZO/T/MmdQubI847AeIrCdq3PJQol2N4zrXGrC/ctUY2ZIRnAQ9QyQsMx 7kQ2VL3M= X-Gm-Gg: Acq92OHOvEmtT0zB7m52vNt6Ztmhyruw0ypOrhe65YdlO41HGtXLcrfY5ChwBBQXb4x gnN4b/i6wT7BpFJVHh4AYaP0sgbwLIPN9WCvxq+z+L+7JcKsULI3DmKhbwm9rF6E5rozwlYil+t WfRQbbeGPYLwetRb4bmd03oFRZMGchuZnQXLCrOc7BDQjIGd5XkV2fE4XOb7BRatvnvWOFrFFyS 9x9oRamAOEqCp8iNsxhiTFUYc/BBbVm0MOESnn8Xvjilq0L/t3WtK535sb7o+/CVVM3QHEpJVf+ YrjurmFRyVFv+tFKHRu1XomSwAa1RAhjOmqpOj8RM5aPGl4/7XHteEu6AvANiavplpVoKNhxPVj rjHnTgeQLzc6gh2jWT3LM4WDiYMewvNWJv8Vbl4Os9hAK6VCshKB1BOHde2o6sJxNJMsOYqGVyZ vy+ZM+h36R6CTQxxq8YUAXwQkX3s97Dhuil+COurA= X-Received: by 2002:a17:90b:3845:b0:366:16d1:6a26 with SMTP id 98e67ed59e1d1-369518b00c0mr25198534a91.5.1779301543345; Wed, 20 May 2026 11:25:43 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 40/64] target/arm: Enable FEAT_LUT for -cpu max Date: Wed, 20 May 2026 11:21:49 -0700 Message-ID: <20260520182213.872945-41-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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=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: 1779301690312154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/cpu64.c | 1 + docs/system/arm/emulation.rst | 1 + 2 files changed, 2 insertions(+) diff --git a/target/arm/tcg/cpu64.c b/target/arm/tcg/cpu64.c index a377f67b9c..bc866c5a67 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -1263,6 +1263,7 @@ void aarch64_max_tcg_initfn(Object *obj) t =3D FIELD_DP64(t, ID_AA64ISAR2, BC, 1); /* FEAT_HBC */ t =3D FIELD_DP64(t, ID_AA64ISAR2, WFXT, 2); /* FEAT_WFxT */ t =3D FIELD_DP64(t, ID_AA64ISAR2, CSSC, 1); /* FEAT_CSSC */ + t =3D FIELD_DP64(t, ID_AA64ISAR2, LUT, 1); /* FEAT_LUT */ t =3D FIELD_DP64(t, ID_AA64ISAR2, ATS1A, 1); /* FEAT_ATS1A */ SET_IDREG(isar, ID_AA64ISAR2, t); =20 diff --git a/docs/system/arm/emulation.rst b/docs/system/arm/emulation.rst index 44c7196d09..cf8771d541 100644 --- a/docs/system/arm/emulation.rst +++ b/docs/system/arm/emulation.rst @@ -101,6 +101,7 @@ the following architecture extensions: - FEAT_LSE (Large System Extensions) - FEAT_LSE2 (Large System Extensions v2) - FEAT_LSE128 (128-bit Atomics) +- FEAT_LUT (Lookup table instructions with 2-bit and 4-bit indices) - FEAT_LVA (Large Virtual Address space) - FEAT_MEC (Memory Encryption Contexts) =20 --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301874; cv=none; d=zohomail.com; s=zohoarc; b=OCIeHcYhXP210XFSHqQ+2nLKalG1PkrCsWrSVQ9DtETJWb8vDH8CSv7GoYgNeJ8DilvB0eab2WdllqvtokJycXOwk9N7FMaRMKVoV9f2IyglRSolv0a+n2B3Ghzu+6kG9PovtYghp2j3vt/SFgS9XErz1McDr4UL/hS2FOHm2Tw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301874; 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=nTIDtuillPXckV86mcaM2Utf4vRJVw8yqCVUR2w2Jkg=; b=JAqOyQU+eX/qcXSLJw1w1tATtVtPBCa6rZCrrXUyiKOgQc8YoaJxfzS7HLNtw61s+gGADgU2p8osN0wK5OQk+TDkqCtgby2dXvSrditSIvb7uwab1Fjiyid4PINnW7Va39NfmI4+oVR3a5qOCBAd1kXR7cX/yC+DvGOgnAXRuT0= 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 1779301874674897.7174067858617; Wed, 20 May 2026 11:31:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlcR-0004Lk-IU; Wed, 20 May 2026 14:26:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wPlc4-0003uL-Aq for qemu-devel@nongnu.org; Wed, 20 May 2026 14:25:48 -0400 Received: from mail-pl1-x634.google.com ([2607:f8b0:4864:20::634]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlc1-0001zF-PW for qemu-devel@nongnu.org; Wed, 20 May 2026 14:25:47 -0400 Received: by mail-pl1-x634.google.com with SMTP id d9443c01a7336-2baef9f5ecdso41919295ad.1 for ; Wed, 20 May 2026 11:25:45 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c0605ddsm217413925ad.32.2026.05.20.11.25.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:25:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301544; x=1779906344; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=nTIDtuillPXckV86mcaM2Utf4vRJVw8yqCVUR2w2Jkg=; b=ZNmIEcjKcYk7wxZp6GYp+zMnflmMGlZwupiLQiFSUY/JOxZoiDCoQxs2zKOFDyERom Ko92nUJpRBrMqhLhot0Q/H2vuuGicp4XyVoQzfUI6OoQBque80UVguoTU75qDVDEkxfm FUDdVDOiCjPbCNFNuq49IGc4ahtgdTyhPq8a9NbQCKTyEzDLSQE97QuLR25DE0IoXSpf LWr+q++gu6k0u4KTyZCSvL8gAmDolMSvhLBLDDsAFdI7OgtYj05/47uWWPBh3CVplHa3 Z1zVdZN7hkVQD9VbpaAPrscHgYUrkyINFONkbG8nVRgbUXdTdWHF0GnAN/Jl2U0HB+TB /XrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301544; x=1779906344; 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; bh=nTIDtuillPXckV86mcaM2Utf4vRJVw8yqCVUR2w2Jkg=; b=qrIsQAGgjjVOCuWzsHByOUtPArf0l5djL4g7QPxAYe8nsbPGKvCj2IyLRAEonIjK/K PB1csxhlYGP3+iuJ9ndBJSdrf7odDhvtV1yC0jySlpvd4OpslZXNZ4Gu/J76gBqPcanI X8RqKoSrJ66sPnrorsPmc1wsa98KGzxRWwdoNf5NmMh6pILAiuANU3KcVQ/GP7P+ptD9 rfNdQnvfC4FtZJqEz0KpzNE8cUP9oROdf/1JnpS5SU0MHfqr3ibwjYxLAUFDOdWsj2dg MfBjFB0fSM/jgw3/DO/Wt4RxT1FoPGgYg+jObnuD0unpSfeCg01NZKi9X/HBHQCPf8Vj m1GA== X-Gm-Message-State: AOJu0YycB5NZPmkTf58JscdcVNTmhh2nzJ3dkgNgVsuK4j5p8GAZ51+5 0CyAuzLBcIZATdjTkHJvYkq/WSYvVFrM5XsCl+4Tu2J1zbXNIRRDcVeAuvUv2wDRoqlz90wcHUY z+4FYktg= X-Gm-Gg: Acq92OECMZ0YlpV08hxlDrgmkjuAkfGIDVmM7tllY4PrJCEh6xy4jZOvbmH7T8YqGFq kNUzDGdLO2sK6IoOOhVMSyZKbOkyCzXYyFcXm2qy2swcQT2m3/S7lF+OaV2r8+9jRD0a9Q44ib7 NYTQpGzd7JHaqui8FkwrROkG6I6tuRTeV3Imm+0YwX5R7vy+vGrUX5EsuzxUxlK3S0xvJmsK4Yt rF97T0DfKNn4S1B+KVpzAsI875p1jO8JHxHHzhn7sG/Usmbxtea58RhwEF3+DB+VdCH6HhsKA72 CyVYUvUFLA3tLlfH9W4her3f0I59QA8gfVPiEaOuXF8tVFr+PTpg55yYGOy1xy4lHQ7TD/Ii/5X zE5qZsipFq36Xl8F90F8F507q0wBTfB1J7uMZ2qeQCGaTr1J9aASF5W3rIfkDkIA7s0ZeAMW2mL Gc8FXpl3Nwulu+01UQ+MAuY1hKrtx2 X-Received: by 2002:a17:903:1b70:b0:2bc:810b:5c0c with SMTP id d9443c01a7336-2bd7e8cbd1dmr289503025ad.34.1779301544217; Wed, 20 May 2026 11:25:44 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 41/64] target/arm: Enable FEAT_FP8 for -cpu max Date: Wed, 20 May 2026 11:21:50 -0700 Message-ID: <20260520182213.872945-42-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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::634; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x634.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: 1779301876711158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/cpu64.c | 6 ++++++ docs/system/arm/emulation.rst | 1 + 2 files changed, 7 insertions(+) diff --git a/target/arm/tcg/cpu64.c b/target/arm/tcg/cpu64.c index bc866c5a67..8d0c057902 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -1391,6 +1391,12 @@ void aarch64_max_tcg_initfn(Object *obj) t =3D FIELD_DP64(t, ID_AA64SMFR0, FA64, 1); /* FEAT_SME_FA64 */ SET_IDREG(isar, ID_AA64SMFR0, t); =20 + t =3D GET_IDREG(isar, ID_AA64FPFR0); + t =3D FIELD_DP64(t, ID_AA64FPFR0, F8E5M2, 1); /* FEAT_FP8 */ + t =3D FIELD_DP64(t, ID_AA64FPFR0, F8E4M3, 1); /* FEAT_FP8 */ + t =3D FIELD_DP64(t, ID_AA64FPFR0, F8CVT, 1); /* FEAT_FP8 */ + SET_IDREG(isar, ID_AA64FPFR0, t); + /* Replicate the same data to the 32-bit id registers. */ aa32_max_features(cpu); =20 diff --git a/docs/system/arm/emulation.rst b/docs/system/arm/emulation.rst index cf8771d541..b6f0ca9351 100644 --- a/docs/system/arm/emulation.rst +++ b/docs/system/arm/emulation.rst @@ -74,6 +74,7 @@ the following architecture extensions: - FEAT_FHM (Floating-point half-precision multiplication instructions) - FEAT_FP (Floating Point extensions) - FEAT_FP16 (Half-precision floating-point data processing) +- FEAT_FP8 (FP8 convert instructions) - FEAT_FPAC (Faulting on AUT* instructions) - FEAT_FPACCOMBINE (Faulting on combined pointer authentication instructio= ns) - FEAT_FPACC_SPEC (Speculative behavior of combined pointer authentication= instructions) --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301824; cv=none; d=zohomail.com; s=zohoarc; b=eP5R23pLf0rg5o4Ec5+Zt2hckl8o5hTVzz0spXu29uks/4FKDoKUikAtVYQHRUyaDWWHXE/h9lNB2h8obmybk6GazEVX+8LDINzx33nONITgeeuzVICjbZAYGzhTsZi94iHd//HmEYetmmpQRUBqzQFg7UM7KqQJvGRL/6bxvDo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301824; 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=xM35gHOjOqj4uCcYch+AkhQTaXi12XhXc0hhEraB8uM=; b=FXq0ffbkx2LAUTUKpMF1eKWUNAX0i4nCaVzW0mc54nkBIMQvYJdZGSG4ZjO9rlyLr7QhbcZ+eXrQvLljlpIyxtlDv1ZYNBjofoXXtc+g24S7w0mDHB9CVgnx1yF4neDZQAK0EDqKb7JqkSjvMBO8KeDWfHccPTnzqSBiUw0RKAo= 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 177930182464154.65771031022791; Wed, 20 May 2026 11:30:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlcx-00054a-Gc; Wed, 20 May 2026 14:26:43 -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 1wPlc5-0003xt-95 for qemu-devel@nongnu.org; Wed, 20 May 2026 14:25:49 -0400 Received: from mail-pl1-x634.google.com ([2607:f8b0:4864:20::634]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlc3-0001zQ-11 for qemu-devel@nongnu.org; Wed, 20 May 2026 14:25:48 -0400 Received: by mail-pl1-x634.google.com with SMTP id d9443c01a7336-2bd2051167eso23711235ad.1 for ; Wed, 20 May 2026 11:25:46 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c0605ddsm217413925ad.32.2026.05.20.11.25.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:25:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301545; x=1779906345; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=xM35gHOjOqj4uCcYch+AkhQTaXi12XhXc0hhEraB8uM=; b=d1V8G92j/yFV4C4e6dZmPZYLoRNKePc8Tbp5KTm6KMUVVSYALVyTOt2cbubCrg1cco 6Z/jk/SDSIa93x9l6TQf0XQ5oB4UUp6v1MXIDgCVn+r8i8S8rbMIucIcp5eONWFbrhjw HK5v8iea+GbtYLoQpt3rsx/7yV8XrAyMDlNiBTr2xmLi1BULfDE1IXMyst65L6HJLZ/m 4WITgFmPxF9EU6c/ER14/Jzs2m27NjpVHSFW7j/D0V5LBPNyQI+DorNxnzDO6u3A7EPh MjViyN8R3u0mevarWAUo8K9LPcYhQ53JRaf9gi3ZioaThlDDEsPGhH8kTJXAm0lkSRbw nn/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301545; x=1779906345; 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; bh=xM35gHOjOqj4uCcYch+AkhQTaXi12XhXc0hhEraB8uM=; b=CnqMbM26PqH6GNIslemkbmtwhLB8n9Sh0N9ypyD27Eh9PhD//U6ge3E2ly3XIOEj8A tyzNJ84bPsA/NG/+Xkg9YnbmHuwjDRvZ2gcCmfxyKbkkdEegYCy9AciOqg5OsPwW2Okd kPIRe48Y/Q2HTPVtebtEPoGYWkvlPatyT0jN7Xd+InY6rYQogklCKk1pn+zR/eiDK+nB odLtJjmbO7IvNLRxopIti01oLG1ZoBA+rmttgSsE4V4rXpJ7kXGHbgqAmwPefz7LkmJW ea1wr0+H4xswp/h4H+hNK/7t91LtmK9fHYJJchIdPwG/pXfPpYTeb0OcJo2t1xaohTdM nBDg== X-Gm-Message-State: AOJu0Yz25Kb23iCdZCzSyAo8k8Ef2JE0PN7lltiH4zx/uwMTe+najGXV AejdeiwNmmjS2cmnoSbN7/cH4TlikMsoPsc2GKhnoeyM5tdwm4MADSAH+oZLJZ4GYkvtBQb9Rdq Lvm/l+0I= X-Gm-Gg: Acq92OHQn0ByUFW/Sv11jgS51TUIxue/Wt4SOLy7DSU2nn0gri/ASnYO2aHViw280gw jIBuF6w676xUUArRkfeOBqWe4TO+TRQDma24oN/4NhmNW7TQ4af9pj9FNl2RY6Z92sny3CaRhgf ecIS8Y7kIa9HFIgeR9bBFUdUHGZUtpvzKO0YsxY8pA25n116rov5DCjQeseIruNdaxm8/pvkH4l F89XEinsb+Z8dVqzOKSkUdqBFzWzwa263/D53Lm99TVZthZI0YHtjlYbpUBZ3O2c81CIvokiE2u Wk84hccfuhg4KaUyg62u17/7W1HevqhfZa9cmBpDJEvaEWpmx37elGBNKKwkLUC4N8/CcLi+NRE EMdi9/TR6+nHtX4iq3l5F7LnPGFN/FLH/R9hlOA2PWZTD1P4EgFZFU23wRFSFslmjnZylrKiiRo 5MYF0qX9YMlKrKJIrLIGBrnYTbTaD3 X-Received: by 2002:a17:903:46c6:b0:2bc:c089:ff10 with SMTP id d9443c01a7336-2bd7e9a55e9mr256548265ad.34.1779301545361; Wed, 20 May 2026 11:25:45 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 42/64] target/arm: Update ID_AA64SMFR0_EL1 fields to ARM M.b Date: Wed, 20 May 2026 11:21:51 -0700 Message-ID: <20260520182213.872945-43-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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::634; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x634.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: 1779301826102158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/cpu-features.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 6d5994450f..811f2a7291 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -397,17 +397,28 @@ FIELD(ID_AA64ZFR0, F16MM, 48, 4) FIELD(ID_AA64ZFR0, F32MM, 52, 4) FIELD(ID_AA64ZFR0, F64MM, 56, 4) =20 +FIELD(ID_AA64SMFR0, SMOP4, 0, 1) +FIELD(ID_AA64SMFR0, STMOP, 16, 1) +FIELD(ID_AA64SMFR0, SFEXPA, 23, 1) +FIELD(ID_AA64SMFR0, AES, 24, 1) +FIELD(ID_AA64SMFR0, SBITPERM, 25, 1) +FIELD(ID_AA64SMFR0, SF8DP2, 28, 1) +FIELD(ID_AA64SMFR0, SF8DP4, 29, 1) +FIELD(ID_AA64SMFR0, SF8FMA, 30, 1) FIELD(ID_AA64SMFR0, F32F32, 32, 1) FIELD(ID_AA64SMFR0, BI32I32, 33, 1) FIELD(ID_AA64SMFR0, B16F32, 34, 1) FIELD(ID_AA64SMFR0, F16F32, 35, 1) FIELD(ID_AA64SMFR0, I8I32, 36, 4) +FIELD(ID_AA64SMFR0, F8F32, 40, 1) +FIELD(ID_AA64SMFR0, F8F16, 41, 1) FIELD(ID_AA64SMFR0, F16F16, 42, 1) FIELD(ID_AA64SMFR0, B16B16, 43, 1) FIELD(ID_AA64SMFR0, I16I32, 44, 4) FIELD(ID_AA64SMFR0, F64F64, 48, 1) FIELD(ID_AA64SMFR0, I16I64, 52, 4) FIELD(ID_AA64SMFR0, SMEVER, 56, 4) +FIELD(ID_AA64SMFR0, LUTv2, 60, 1) FIELD(ID_AA64SMFR0, FA64, 63, 1) =20 FIELD(ID_AA64FPFR0, F8E5M2, 0, 1) --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301982; cv=none; d=zohomail.com; s=zohoarc; b=ZZYPLdfAU4S3faAPz/QEFG0rFf/FViqHJuddXitK7g96munFa5ox+GUBIKCxOJsVbofwostA/pZyaazxq365KkzTnMtFu/FLg8jF0AHBE3GBewCHkVbdmS9WVjA1wk0UoaDly7ZxkclF7Su94Y80O81gWswcNXQyYbMxNsrKOD4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301982; 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=rijKST64WZpELrwBb6/Q5we+Vkq4bBbLxG5KgrYkJ+U=; b=N+9f8wdyHz8rLLTIGMfN+YPvds48tWd4ueJbx44v/0rbyDEwXTT0W3k9jjeiOHuhy7dcxgFY90vIAgOb5ysvF7nGtTZnzHCeUQf5tObZgsMpxEdu6mxebzmkNlekO5eV1feaO4BF8uaRgCCnqKAGnPc2ft9lIrBsxJKszahTTw8= 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 177930198269012.976023282278561; Wed, 20 May 2026 11:33:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlcV-0004fC-Ok; Wed, 20 May 2026 14:26:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wPlc5-0003zh-Sc for qemu-devel@nongnu.org; Wed, 20 May 2026 14:25:50 -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 1wPlc3-00021F-S5 for qemu-devel@nongnu.org; Wed, 20 May 2026 14:25:49 -0400 Received: by mail-pg1-x52f.google.com with SMTP id 41be03b00d2f7-c828daf83e2so2454062a12.2 for ; Wed, 20 May 2026 11:25:47 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c0605ddsm217413925ad.32.2026.05.20.11.25.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:25:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301546; x=1779906346; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=rijKST64WZpELrwBb6/Q5we+Vkq4bBbLxG5KgrYkJ+U=; b=axyU+hdiZ/CLJGixeMVhStR0+ra5iADi8zjKl5EmgFrSzbQID1aNecdOMM3fG9ozWp zokfZCbdAl+rlDFe0x1vkX9S6rWi+/yp6IwhEbZ7PwZcMT7BlLKOrhrbWkRl3qB63skz l+CSgiRjJ7LwvrDytFGTBflRqcm8oqw5Im19c9yEv9KlFIzASbFsrOMXiCcsVooSVsO/ zTBkE55g81/pwNjY4fwGf0Tv5r46P41RkoeWfuVcYEkpHkGJZWFAQnFUBFWSgUPJD+mG 36kTkYGu5p1fga86qUecEZ6rM+bu5MYWQiL7uynJ/dTKXPCuQr8UTBjiRjHot7tg6jP4 ee4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301546; x=1779906346; 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; bh=rijKST64WZpELrwBb6/Q5we+Vkq4bBbLxG5KgrYkJ+U=; b=hvHiv+SKHXfMB29UfqZG5hteW30lX56AN647esNnPVYnA55ztUzJB8ZxLeWK+C1XVt kWk7D5x4EgEMbl75A1iuTudutilmJalugn7aTX0eoRFtsJS1VigttSYpHxlFxM8l21aP 0O2Buz6a9ZpiTqDeeG/NKLGMkAsZu9Lh1dwF2Ug5S7I3IvR8j20xxHVZAihBviy160Fr eaN16L6eZGD31kex0Zgt+d+XyGE1IfDNAadudtwKaMoSWs3Jh9r6ItZCAEq/9NlY1UYz HFxuEdgFo4VNRL627YEs8x/meUSY5gXe1Ol7UxgQX0oJB7QkQdEoUQja7vsGK8+76bmc DZng== X-Gm-Message-State: AOJu0Yx5Pbav9CK3pU+Bcxf34D01YwjYZYJxp1jioiWxRQA/LJU/6XrA kXYL8IhJKe9C8bJlxL4itaSZiwxMiZjT3hq8SICvzkkG77WCtB2fg4XKqiz/+I56+vyPHwu/YkB gMpyGUpo= X-Gm-Gg: Acq92OEgAACsOqKpw7k0zNMeGUchinlII7uxdcnZ6GdidEAzPYVtP7pP89l9qamRc4C hs89dfwFggzNwQFthR0t0iNGONod7BLCVaMkNnwdk6SbjXCPSMITW81+2JuLfTVJOMbaK3ueq2I ohVyMrTNoVgGwO7DgR3rW18nmv2C+dPuq/SIHZmbOJNH8lYvBxqF3eTrD8uZj6ICZ889vEIqZvw 5CLRqOJs8nLgEmh8Vz0erZTbADHNKZUYyG0GnFjOuQtP45W9twcezWhmiO9T4nR+YaZmLICbUgh fcbsZuHuEjhTYi8Y+hyjXalLXi9ajWl/a0K1rvc0suy+5IZgRb5VIZPxiA/Hr7i5rEDAyBlKd91 XJYdPIbxTlTas75HN2by6RVofhyImA7QgcUHTAMcG0/fr0wpqQW35WO6xwAF29GDxHlU4rVA9qP o/eCRpNb0WJ/c/+LSm/OhbuIBH4cUj X-Received: by 2002:a17:90b:58cb:b0:368:6998:b49e with SMTP id 98e67ed59e1d1-369519c3208mr22347809a91.9.1779301546157; Wed, 20 May 2026 11:25:46 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 43/64] target/arm: Implement MOVT (vector to table) Date: Wed, 20 May 2026 11:21:52 -0700 Message-ID: <20260520182213.872945-44-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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: 1779301984663154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/cpu-features.h | 5 +++++ target/arm/tcg/translate-sme.c | 18 ++++++++++++++++++ target/arm/tcg/sme.decode | 2 ++ 3 files changed, 25 insertions(+) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 811f2a7291..29d0464a03 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1570,6 +1570,11 @@ static inline bool isar_feature_aa64_sme_fa64(const = ARMISARegisters *id) return FIELD_EX64_IDREG(id, ID_AA64SMFR0, FA64); } =20 +static inline bool isar_feature_aa64_sme_lutv2(const ARMISARegisters *id) +{ + return FIELD_EX64_IDREG(id, ID_AA64SMFR0, LUTv2); +} + static inline bool isar_feature_aa64_sme2(const ARMISARegisters *id) { return FIELD_EX64_IDREG(id, ID_AA64SMFR0, SMEVER) !=3D 0; diff --git a/target/arm/tcg/translate-sme.c b/target/arm/tcg/translate-sme.c index 2f79c458e1..214427db1f 100644 --- a/target/arm/tcg/translate-sme.c +++ b/target/arm/tcg/translate-sme.c @@ -391,6 +391,24 @@ static bool do_movt(DisasContext *s, arg_MOVT_rzt *a, TRANS_FEAT(MOVT_rzt, aa64_sme2, do_movt, a, tcg_gen_ld_i64) TRANS_FEAT(MOVT_ztr, aa64_sme2, do_movt, a, tcg_gen_st_i64) =20 +static bool trans_MOVT_ztz(DisasContext *s, arg_MOVT_ztz *a) +{ + if (!dc_isar_feature(aa64_sme_lutv2, s)) { + return false; + } + if (sme_sm_enabled_check(s) && sme2_zt0_enabled_check(s)) { + int svl =3D streaming_vec_reg_size(s); + int tsize =3D MIN(svl, 64); + int offset =3D (a->off % (64 / tsize)) * tsize; + + tcg_gen_gvec_mov(MO_64, + offsetof(CPUARMState, za_state.zt0) + offset, + vec_full_reg_offset(s, a->rt), tsize, + offset ? tsize : 64); + } + return true; +} + static bool trans_LDST1(DisasContext *s, arg_LDST1 *a) { typedef void GenLdSt1(TCGv_env, TCGv_ptr, TCGv_ptr, TCGv, TCGv_i64); diff --git a/target/arm/tcg/sme.decode b/target/arm/tcg/sme.decode index 2b9e41a75a..339de72b8a 100644 --- a/target/arm/tcg/sme.decode +++ b/target/arm/tcg/sme.decode @@ -141,6 +141,8 @@ MOVAZ_zt4 11000000 11 00011 0 v:1 .. 00110 za:3 z= r:3 00 \ MOVT_rzt 1100 0000 0100 1100 0 off:3 00 11111 rt:5 MOVT_ztr 1100 0000 0100 1110 0 off:3 00 11111 rt:5 =20 +MOVT_ztz 1100 0000 0100 1111 00 off:2 00 11111 rt:5 + ### SME Memory =20 &ldst esz rs pg rn rm za off v:bool st:bool --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301942; cv=none; d=zohomail.com; s=zohoarc; b=AexG7cijF+4Q3AIjgDzNiXDQTCSuFay0Sch6gt6v9cYmuIGBn/gYeKJiRvx1wl34l/40Cp3hu5D4N/pSY5nI6Ft/tNGmiEZeTaJMTUCPTGwFULhK9EavJzQakhRgAzCB4ed98VvoXpNHH3NhlwHHQwVo2T0wNqnoVVCXSQteWwM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301942; 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=bG5QJmGGeeob8ME+IXN0PuN/c2eRAs1BkuVAXON0uNI=; b=JCBgCNjEl3GKscJX9BNWdJRK2PVfhcU+aGukrGVi/jQCsv/VgJjOnuZ6cZj37yQO4l/+1YNr5p2lViGNmhoI0G+gFW6Hm1a10teB6jeBWryUOOQy2+3omNhAKChUb/gGN96RrnYnZcT1TJ+yUWU4NBolsPuRp+rMRBTLJxAT9lI= 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 1779301942040944.8707140145831; Wed, 20 May 2026 11:32:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPld0-0005Tr-HJ; Wed, 20 May 2026 14:26:46 -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 1wPlc7-000451-Bo for qemu-devel@nongnu.org; Wed, 20 May 2026 14:25:51 -0400 Received: from mail-pl1-x636.google.com ([2607:f8b0:4864:20::636]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlc4-00022A-Qm for qemu-devel@nongnu.org; Wed, 20 May 2026 14:25:50 -0400 Received: by mail-pl1-x636.google.com with SMTP id d9443c01a7336-2b458ca2296so38240305ad.0 for ; Wed, 20 May 2026 11:25:48 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c0605ddsm217413925ad.32.2026.05.20.11.25.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:25:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301547; x=1779906347; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=bG5QJmGGeeob8ME+IXN0PuN/c2eRAs1BkuVAXON0uNI=; b=jfnAH0j8KYLyeXltbCm5qgs+dtP7RNuyTELkfY5qdVkYglgNmm8puNikSydIvx6utg 4ryvqVUFx+1IM43rGEVtLCNEqnLUVzRISmiEtGPran6GJ7BerqfZOgC8GQEHGIS0A9WX Zo41qDfeacls8aJYAxPerzcRfko9H7PPzOCVueD/zr4/ZXtpAyGpO6f7Byh78+Vh7xn1 HvyTzRsIQmDZd/6w79BOVEzS633vSkeAnPXfnv+JbpBdZ71fnF2ab1g+wgc7Blux6Y1N v/SaqxUAO+oND6LIWVDmK8niDYM6oO5c+yDcRXg86gJDvOXHmIf4gjPuSLq56OzZgK72 HZ4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301547; x=1779906347; 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; bh=bG5QJmGGeeob8ME+IXN0PuN/c2eRAs1BkuVAXON0uNI=; b=ESmWZy8Wr0wCbkAcqFP1Nz2dlsBiCR/506RBVUJbWa1Bs7I7BUPjUegGdHDJmTM/tp rr1Wgtvm1cNrdZMPolqm/jTm/iXX2/U714gopJ2VX+J4AO/c8XzHKa2ykHpIxzPQ4tp2 0B99bVKiXPWawoUCusyoxDiFIB99piUmAVs7FjutHsI9Q6A5hfZVeMHbOSNC6Sgn1Qit +rflXGwkqtOr6eYwLlTSYpAbWkaZlPCq886fpYjKxziDJ7G9wmYk++L8hna/gIURdE4B 9EcqBncdB7AbmdWx+u7x/je2LWHrhLnwjA8tCYtqUB4Le4TQfmQVdLarAZvYCb2gO6I/ FPJQ== X-Gm-Message-State: AOJu0YzSOzqqs51g7yZMb7/gw4CGcLIlLSNg9abCEyuQ+v7dH0EQ999E erTUGnV1XPnSN+WQScTwVuo0ucQewEFmrgIWtnGrezlDqd4EkrQUy7p89lsSHADVfPCSPYNqgxK C5zNdiqQ= X-Gm-Gg: Acq92OGL7rpttffvL6HgYkaZz7isFax4E2/+QElzLZnQg4kYBmOBhbb/xT4KH9J/HSx xSnItMvJgrs1Glb2Lls+lJPhlJET3E1tHQv4q1mCzZ7qXSOqqQXKNNrX7gH+GfQrb0c0u/gr3Uc Ifn40MkbLazKPZyGRw2KybXf22Mzpgd8j4VpIesDoE7tgxkl4ACt5JGxj860aHbG3avH/vtgoSc /u2uDu40YmQwSORAdGHI/C2vjy+6xNIFry3asUWK2vNz65KUEW/CZtPV373/mPOGg+rrZ7W7/rX KSJnDnDCK3aZWmdnRWpL+40BDLjMEVdGSxzHoP58JlTLEBahMD904GavbuWc05Dhdc4GCm36GFj H41e2MScKeZPU0CVYMA3hNw/zh1o2Laxv6SHwFUuUPK3P/3soGNHxMIXleGBK5CONzp2XJxP+rU +8CGIfOTED5OrGlJOFhu3d6Q6dVl3F X-Received: by 2002:a17:902:db08:b0:2b9:ec37:2977 with SMTP id d9443c01a7336-2bd7e98f43dmr273766905ad.38.1779301546949; Wed, 20 May 2026 11:25:46 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 44/64] target/arm: Implement LUTI4 (four registers, 8-bit) Date: Wed, 20 May 2026 11:21:53 -0700 Message-ID: <20260520182213.872945-45-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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::636; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x636.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: 1779301942951158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/cpu-features.h | 5 +++++ target/arm/tcg/helper-defs.h | 1 + target/arm/tcg/translate-sme.c | 6 ++++++ target/arm/tcg/vec_helper.c | 14 ++++++++++++++ target/arm/tcg/sme.decode | 6 ++++++ 5 files changed, 32 insertions(+) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 29d0464a03..007e656ed4 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1643,6 +1643,11 @@ static inline bool isar_feature_aa64_sme2_f8cvt(cons= t ARMISARegisters *id) return isar_feature_aa64_sme2(id) && isar_feature_aa64_f8cvt(id); } =20 +static inline bool isar_feature_aa64_sme2p1_lutv2(const ARMISARegisters *i= d) +{ + return isar_feature_aa64_sme2p1(id) && isar_feature_aa64_sme_lutv2(id); +} + static inline bool isar_feature_aa64_sve_i8mm(const ARMISARegisters *id) { return isar_feature_aa64_sve(id) && isar_feature_aa64_sme_sve_i8mm(id); diff --git a/target/arm/tcg/helper-defs.h b/target/arm/tcg/helper-defs.h index 05ccf795e8..8ec6c16319 100644 --- a/target/arm/tcg/helper-defs.h +++ b/target/arm/tcg/helper-defs.h @@ -1120,6 +1120,7 @@ DEF_HELPER_FLAGS_4(sme2_luti4_2b, TCG_CALL_NO_RWG, vo= id, ptr, ptr, env, i32) DEF_HELPER_FLAGS_4(sme2_luti4_2h, TCG_CALL_NO_RWG, void, ptr, ptr, env, i3= 2) DEF_HELPER_FLAGS_4(sme2_luti4_2s, TCG_CALL_NO_RWG, void, ptr, ptr, env, i3= 2) =20 +DEF_HELPER_FLAGS_4(sme2_luti4_4b, TCG_CALL_NO_RWG, void, ptr, ptr, env, i3= 2) DEF_HELPER_FLAGS_4(sme2_luti4_4h, TCG_CALL_NO_RWG, void, ptr, ptr, env, i3= 2) DEF_HELPER_FLAGS_4(sme2_luti4_4s, TCG_CALL_NO_RWG, void, ptr, ptr, env, i3= 2) =20 diff --git a/target/arm/tcg/translate-sme.c b/target/arm/tcg/translate-sme.c index 214427db1f..0af133c1c4 100644 --- a/target/arm/tcg/translate-sme.c +++ b/target/arm/tcg/translate-sme.c @@ -1846,6 +1846,9 @@ TRANS_FEAT(LUTI4_c_2s, aa64_sme2, do_lut, a, gen_help= er_sme2_luti4_2s, false) TRANS_FEAT(LUTI4_c_4h, aa64_sme2, do_lut, a, gen_helper_sme2_luti4_4h, fal= se) TRANS_FEAT(LUTI4_c_4s, aa64_sme2, do_lut, a, gen_helper_sme2_luti4_4s, fal= se) =20 +TRANS_FEAT(LUTI4_c_4b, aa64_sme_lutv2, do_lut, a, + gen_helper_sme2_luti4_4b, false) + static bool do_lut_s4(DisasContext *s, arg_lut *a, gen_helper_gvec_2_ptr *= fn) { return !(a->zd & 0b01100) && do_lut(s, a, fn, true); @@ -1866,3 +1869,6 @@ TRANS_FEAT(LUTI4_s_2b, aa64_sme2p1, do_lut_s8, a, gen= _helper_sme2_luti4_2b) TRANS_FEAT(LUTI4_s_2h, aa64_sme2p1, do_lut_s8, a, gen_helper_sme2_luti4_2h) =20 TRANS_FEAT(LUTI4_s_4h, aa64_sme2p1, do_lut_s4, a, gen_helper_sme2_luti4_4h) + +TRANS_FEAT(LUTI4_s_4b, aa64_sme2p1_lutv2, do_lut_s4, a, + gen_helper_sme2_luti4_4b) diff --git a/target/arm/tcg/vec_helper.c b/target/arm/tcg/vec_helper.c index cb633817d7..eaf15a0cb5 100644 --- a/target/arm/tcg/vec_helper.c +++ b/target/arm/tcg/vec_helper.c @@ -3349,6 +3349,20 @@ DO_SME2_LUT(4,4,s, 4) =20 #undef DO_SME2_LUT =20 +void helper_sme2_luti4_4b(void *zd, void *zn, CPUARMState *env, uint32_t d= esc) +{ + unsigned vl =3D simd_oprsz(desc); + unsigned strided =3D extract32(desc, SIMD_DATA_SHIFT, 1); + unsigned dstride =3D !strided ? 1 : 4; + uint64_t indexes[ARM_MAX_VQ * 4]; + + memcpy(&indexes, zn, vl); + memcpy((void *)&indexes + vl, zn + sizeof(ARMVectorReg), vl); + + do_lut_b(zd, indexes, (void *)env->za_state.zt0, vl, 0, + dstride * sizeof(ARMVectorReg), 4, 32, 4); +} + void HELPER(gvec_luti2_b)(void *vd, void *vn, void *vm, uint32_t desc) { unsigned part =3D simd_data(desc); diff --git a/target/arm/tcg/sme.decode b/target/arm/tcg/sme.decode index 339de72b8a..495330aed7 100644 --- a/target/arm/tcg/sme.decode +++ b/target/arm/tcg/sme.decode @@ -1014,8 +1014,14 @@ LUTI4_c_2s 1100 0000 1000 101 idx:2 1 10 00 zn= :5 .... 0 &lut zd=3D%zd_ax2 LUTI4_c_4h 1100 0000 1000 101 idx:1 10 01 00 zn:5 ... 00 &lut zd=3D= %zd_ax4 LUTI4_c_4s 1100 0000 1000 101 idx:1 10 10 00 zn:5 ... 00 &lut zd=3D= %zd_ax4 =20 +LUTI4_c_4b 1100 0000 1000 101 1 00 00 00 ....0 ...00 \ + &lut zd=3D%zd_ax4 zn=3D%zn_ax2 idx=3D0 + # LUTI4, strided (must check zd alignment) LUTI4_s_2b 1100 0000 1001 101 idx:2 1 00 00 zn:5 zd:5 &lut LUTI4_s_2h 1100 0000 1001 101 idx:2 1 01 00 zn:5 zd:5 &lut =20 LUTI4_s_4h 1100 0000 1001 101 idx:1 10 01 00 zn:5 zd:5 &lut + +LUTI4_s_4b 1100 0000 1001 101 1 00 00 00 ....0 zd:5 \ + &lut zn=3D%zn_ax2 idx=3D0 --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301764; cv=none; d=zohomail.com; s=zohoarc; b=eY3KSTsQlAZ2jQZu/Bj3DWNzOSr7hjzu9Vr0ieaBysbPzRdO8vHqy6U/WfECsNEmO9TulcjiOWQ+xHwQI02eLNNRLa161/JiGUJ1IUCo7+HxNcakJ+T/z9tDyFHFqOASYQH29ZJdjESvUOlpcTjScPSTfWZGalRR/eO+sqbzERY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301764; 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=BiL04P2CzHdch1eAb8Dy0QC+hd+UkcPVAZS3KCpqoms=; b=eKIeOdICmhTnD98CTZfsmDGe/xk61+TbZJ1aZRU+Ul0RB43q7SqOinxB66QFY6ayO9plGusqUhPHel5LrgogPdL8335YqDWGIKd/ixA+D24oSp5ciHaWZD8VPipezfUGl2GB+mhmiSpY+Zw5zbsuZEyQmMzwDeIb+5+/E4A+wiw= 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 1779301764606128.83296036997774; Wed, 20 May 2026 11:29:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlcz-0005JU-7P; Wed, 20 May 2026 14:26:45 -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 1wPlc7-00045H-Je for qemu-devel@nongnu.org; Wed, 20 May 2026 14:25:52 -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 1wPlc5-000233-HY for qemu-devel@nongnu.org; Wed, 20 May 2026 14:25:51 -0400 Received: by mail-pg1-x529.google.com with SMTP id 41be03b00d2f7-c80227b1f6cso2069348a12.1 for ; Wed, 20 May 2026 11:25:48 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c0605ddsm217413925ad.32.2026.05.20.11.25.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:25:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301548; x=1779906348; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=BiL04P2CzHdch1eAb8Dy0QC+hd+UkcPVAZS3KCpqoms=; b=pcAzMQ3NtsAomtfusEJQMaRlaHTJ8Dc1QCoPV4C9TmQbwyERds2r2KVh6EQGqdlEUE 7fhM4EvW/fpJhyVGUY3NmzudOVpZiSLRu1B0Aj3tkgna9piiGE3O1+2y3VjGM6gswA/V QIl9TjzBVa1N9Z8lE5T78TfH0rd4jEwU1apRQot3TgKFfdMbpaqbokCWcWh2BFJTRTZn BkAiasuoN41hpVc7J3QrRlpWkgs47FyxdU7V8e+AUino/0FCi6dSW0sAPZXgZ+d12tpS V33Bh5z/qDdoxvPNpzoWWmN1NvdGVKacAsBrOYpxFOkc5q8yCL3kTyY9cVkscfcEKmtU Bsyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301548; x=1779906348; 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; bh=BiL04P2CzHdch1eAb8Dy0QC+hd+UkcPVAZS3KCpqoms=; b=CY06FXJsRd0C8qql3bmNUrPtguzpcWjcxFvhBNrkanDNXFMB1eyywCDakg4fVeYcNz XFV+TH9KD02MIp2TjEIOy41mEOeC1A9VIVas7cH5IBWc0W5TmDwrgpAvzxIfe8wR8cau GAVAkTDZALikUS4fL08KNcImpExDgQ6l35aUPr5YczPV4a2LtOw/J5qgbp1JoP28zhZU V2kOOY5afO1aXnwoHK9RuVN5hg5ftORsDMrLIlFzVV/cQtxFeiEGYw0J1GALtAT/BSg2 ulZdgbVyE2taBX/WRaw8v7Uz+1tmVHLCMCg/zugNcJAo+DaVI6e0XgCvIlwi8+aGuazb AxyQ== X-Gm-Message-State: AOJu0YyoUnv6eOBHuQ3ujfSdo8g5wMdKYAVnyZBtmQ3W5YezOr0I3Kpu +yszuDf0kQvYXNPbnG6O2LjxxxwJQOI0eZj6Uq0bUD/unHRAjhM2uMzE1xc9TySYEVzQSSAJIU9 Rs0k+Fxc= X-Gm-Gg: Acq92OEXdCm/70v9KuXN3tgwirxhxmSKcKhUM4N+q/GYDdDMwMG2yE1FTuRydbe0v+i AfFGk6mZPqzrBCO6Nx0kAs7oCN1ii6rSH3knwIBljCIGflRCpNxg3yiviK/5P3q/Anh5aNAVwUW vVBbHvGKcE7H9Odw6IHqeJebJMv4WujVcurer3nOtvDpVuU8A1B/FXcnRhwtQLrKECdlvuSynbM b+if8Cy4sGSHKEhjJCnbQA3OimRfZ9pepNn2n15b8ESmr2gW+qT2emf4lNqajdAzJoHAPno8h3w o0P2Yj29ytgJducC8igwUlaB6JQx+dzCw1lpNeH7KESV0BfGss52lK+l7fclXdemD52RqSxG55t eb84d62joY1RD91duVAug7MYYTdE+Upj5quVEGDFE+7OgjszgbrRvx0uQMjQvGD6+JupsFibycf 8IN8kulQoJG1kO6Of/kmw/NCI7DQnd X-Received: by 2002:a17:903:1a2d:b0:2bd:a3cc:256d with SMTP id d9443c01a7336-2bda3cc2d93mr206933535ad.2.1779301547709; Wed, 20 May 2026 11:25:47 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 45/64] target/arm: Enable FEAT_SME_LUTv2 for -cpu max Date: Wed, 20 May 2026 11:21:54 -0700 Message-ID: <20260520182213.872945-46-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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: 1779301765683154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/cpu64.c | 1 + docs/system/arm/emulation.rst | 1 + 2 files changed, 2 insertions(+) diff --git a/target/arm/tcg/cpu64.c b/target/arm/tcg/cpu64.c index 8d0c057902..90214a355a 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -1388,6 +1388,7 @@ void aarch64_max_tcg_initfn(Object *obj) t =3D FIELD_DP64(t, ID_AA64SMFR0, F64F64, 1); /* FEAT_SME_F64F64 */ t =3D FIELD_DP64(t, ID_AA64SMFR0, I16I64, 0xf); /* FEAT_SME_I16I64 */ t =3D FIELD_DP64(t, ID_AA64SMFR0, SMEVER, 2); /* FEAT_SME2p1 */ + t =3D FIELD_DP64(t, ID_AA64SMFR0, LUTv2, 1); /* FEAT_SME_LUTv2 */ t =3D FIELD_DP64(t, ID_AA64SMFR0, FA64, 1); /* FEAT_SME_FA64 */ SET_IDREG(isar, ID_AA64SMFR0, t); =20 diff --git a/docs/system/arm/emulation.rst b/docs/system/arm/emulation.rst index b6f0ca9351..0dd6b554a0 100644 --- a/docs/system/arm/emulation.rst +++ b/docs/system/arm/emulation.rst @@ -158,6 +158,7 @@ the following architecture extensions: - FEAT_SME_F16F16 (Non-widening half-precision FP16 arithmetic for SME2) - FEAT_SME_F64F64 (Double-precision floating-point outer product instructi= ons) - FEAT_SME_I16I64 (16-bit to 64-bit integer widening outer product instruc= tions) +- FEAT_SME_LUTv2 (Lookup table instructions with 4-bit indices and 8-bit e= lements) - FEAT_SVE (Scalable Vector Extension) - FEAT_SVE_AES (Scalable Vector AES instructions) - FEAT_SVE_B16B16 (Non-widening BFloat16 arithmetic for SVE2) --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301983; cv=none; d=zohomail.com; s=zohoarc; b=F9a95s62EkFW52Z59r/H66ANPaPGU4xYSWXWzKoEAJadefMmw5TD3Jhf0P1fMle+BszzKXTjojTfXfuXf1mth/ewBnBQ15Mv8HGZl2dlRAniN5IKebQWPsVt4xc5BhvEaDl46gALUyGJCw1esVs5OEzwfLFvo+mLUgOw5bXrEzY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301983; 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=Kwipe1KAMVw3PuS2NHXgcuLadcM/AQMe1dZkET7W7i0=; b=Vqp+LSB6XVwSHujsTWWB9xMGuzS0Jen64jxd9XRAXKMLeaO/Wm/ghm0hRYOk/w2UIpA5RpeJzx9JBSBdw9zNEwSVFX1Se1ocf0oA4yPv60VwPH7T+c0Z0ljKef7RMAZXarswpVSaRHXUA1XNnbrUL4E/2/6A65oIxaBlLSpLpvU= 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 1779301983167340.21042370713576; Wed, 20 May 2026 11:33:03 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPldM-0006Uc-Hr; Wed, 20 May 2026 14:27: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 1wPlc9-000471-3c for qemu-devel@nongnu.org; Wed, 20 May 2026 14:26:00 -0400 Received: from mail-pl1-x632.google.com ([2607:f8b0:4864:20::632]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlc6-000244-63 for qemu-devel@nongnu.org; Wed, 20 May 2026 14:25:52 -0400 Received: by mail-pl1-x632.google.com with SMTP id d9443c01a7336-2b941cd869cso33202785ad.1 for ; Wed, 20 May 2026 11:25:49 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c0605ddsm217413925ad.32.2026.05.20.11.25.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:25:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301549; x=1779906349; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Kwipe1KAMVw3PuS2NHXgcuLadcM/AQMe1dZkET7W7i0=; b=BfdeGgAU0xIYCdc9Hxb6/NVLuR9PTR2KJd7PcpXfJDPhquZeOQXRtzQWRNiyyiGCbw DRR3tm1NAxMa9YJrvlF04vfdjBsHSWtbvqL+bM7/wiDlAbmbbsBXwRyjmeVT5Fu6t3JJ mp2rgnKh42BJML08hZFlhVsYuoFFkEigl94m/YPv5CZQSzlb7dCDzd48In6fzsO6WiXf kw5wY4fm2qybvG3HEq2CQ1ZxulARJQatVE2ipQcJr9bBY/TqNJ91J5YpReoCHPr6UEta TLiQqeAjZQ6CPjTPNE+99ZfUVWBNJpXwyMlEinMiT+80hJmvXCAHJWe+o1C9uQuyBKMY VQgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301549; x=1779906349; 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; bh=Kwipe1KAMVw3PuS2NHXgcuLadcM/AQMe1dZkET7W7i0=; b=ldvM0KVBlF+IIvhnsBcxPuINOeWFkQugXok0YlycvWLziDE5PscaQqHAkManH72NoJ tIqJ7zE0jA1/ENrZvLpZYa6+Gl29xu2FSlyVE9I8lzvQ3Yb+XN+7AyyxdWxeDGuOCdI1 Uq862t+1ZK4R8a9jwoAG96ortusALE1bEzND9nSmDNWXc607pH62wKIXa0zoZt4J6glj SU0BO7EK2go3q8RrmjLntY5BUbPh+P/vTLMc1QbHzc3vYS40ViuLfkzcSeUgBkwvwCSX FswCqvyvGfr17ntO+mucsBrPsKlydVFJ4IHZNRIp62NPfMx/J1VsizOSxd9SuVAVZDnk NZHw== X-Gm-Message-State: AOJu0YzSWWNUSSljTxD2P932n/a4okHD9xn3YUTmjYeb2NkEWWsWleGH EH2nKYBWRRllYv03cB6UwZxwMp/aNZqZJUmdmOrk5ogGRgF05XTPGCIe0bhqi8p5wlU23g6g5cD u9gRD2IY= X-Gm-Gg: Acq92OFkgtGI6uZoel4k5Y48hmxmIENfxQnj3bMVkqv3WVtSw8ExjyNRXXLqqiFdOyb AdvcTDRWd3CcxNpN49s9/kgZPuFvrO6PDbneZ+Mw9Coz3gwUH5XY59rvmBUCar6p5/BeV+TD19T ZMOuxoEJqqbs0Gg/fYvBs8azcn1+JRqfRF80+ktQb8UzGKj4enefTaeuaY2QQnMBhJXmRL9xT1O Pn/ZWV3FMJ0BaJhwGXgvJfecGY4ltK8xXeRw+3qCM+mZRVMTm1stPwfWq8H0B+ZuA81Hfnl6I6L 2yVhQRl+fpcL8oTahqBCJwItn9wVE9Vf93RvWQNQ2muIqqBGwcevVUhqUKfHLysHjcCIjC+kecL uHv0VAGGT/ygiuEKmtYlXxFCQcC+ozC8OLtS9vvstL3rqBoprV1opzq8hoq03nhCYFRoWgGxDvP DwfZ0hsa5LVjdDSkPtc7PEbfZUYpPa X-Received: by 2002:a17:903:90e:b0:2bd:e452:a484 with SMTP id d9443c01a7336-2bde452a535mr157669355ad.33.1779301548414; Wed, 20 May 2026 11:25:48 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 46/64] target/arm: Implement FMLALB, FMLALT for AdvSIMD Date: Wed, 20 May 2026 11:21:55 -0700 Message-ID: <20260520182213.872945-47-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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::632; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x632.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: 1779301985690158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/cpu-features.h | 5 ++ target/arm/tcg/helper-fp8-defs.h | 3 + target/arm/tcg/fp8_helper.c | 105 +++++++++++++++++++++++++++++++ target/arm/tcg/translate-a64.c | 16 +++++ target/arm/tcg/a64.decode | 8 +++ 5 files changed, 137 insertions(+) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 007e656ed4..ee20d74164 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1590,6 +1590,11 @@ static inline bool isar_feature_aa64_f8cvt(const ARM= ISARegisters *id) return FIELD_EX64_IDREG(id, ID_AA64FPFR0, F8CVT); } =20 +static inline bool isar_feature_aa64_f8fma(const ARMISARegisters *id) +{ + return FIELD_EX64_IDREG(id, ID_AA64FPFR0, F8FMA); +} + /* * Combinations of feature tests, for ease of use with TRANS_FEAT. */ diff --git a/target/arm/tcg/helper-fp8-defs.h b/target/arm/tcg/helper-fp8-d= efs.h index 36ae977431..7aa8366d94 100644 --- a/target/arm/tcg/helper-fp8-defs.h +++ b/target/arm/tcg/helper-fp8-defs.h @@ -23,3 +23,6 @@ DEF_HELPER_FLAGS_4(sve2_fcvtnb_bs, TCG_CALL_NO_RWG, void,= ptr, ptr, env, i32) DEF_HELPER_FLAGS_4(sve2_fcvtnt_bs, TCG_CALL_NO_RWG, void, ptr, ptr, env, i= 32) DEF_HELPER_FLAGS_4(sme2_fcvt_bs, TCG_CALL_NO_RWG, void, ptr, ptr, env, i32) DEF_HELPER_FLAGS_4(sme2_fcvtn_bs, TCG_CALL_NO_RWG, void, ptr, ptr, env, i3= 2) + +DEF_HELPER_FLAGS_5(gvec_fmla_hb, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, env= , i32) +DEF_HELPER_FLAGS_5(gvec_fmla_idx_hb, TCG_CALL_NO_RWG, void, ptr, ptr, ptr,= env, i32) diff --git a/target/arm/tcg/fp8_helper.c b/target/arm/tcg/fp8_helper.c index 8c999655ba..d86d3d0bfb 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -569,3 +569,108 @@ void HELPER(sme2_fcvtn_bs)(void *vd, void *vn, CPUARM= State *env, uint32_t desc) =20 fp8_cvt_finish(env, &ctx); } + +typedef struct FP8MulContext { + float_status stat; + fp8_input_fn *fmt1; + fp8_input_fn *fmt2; + int scale; +} FP8MulContext; + +static FP8MulContext fp8_mul_start(CPUARMState *env, int scale_mask) +{ + uint64_t fpmr =3D env->vfp.fpmr; + + FP8MulContext ret =3D { + .stat =3D env->vfp.fp_status[FPST_A64], + .fmt1 =3D fp8_input_fmt[FIELD_EX64(fpmr, FPMR, F8S1)], + .fmt2 =3D fp8_input_fmt[FIELD_EX64(fpmr, FPMR, F8S2)], + .scale =3D -(FIELD_EX64(fpmr, FPMR, LSCALE) & scale_mask), + }; + + set_flush_to_zero(0, &ret.stat); + set_flush_inputs_to_zero(0, &ret.stat); + set_default_nan_mode(true, &ret.stat); + set_float_rounding_mode(FIELD_EX64(fpmr, FPMR, OSM) + ? float_round_nearest_even_max + : float_round_nearest_even, &ret.stat); + + /* + * FP8 multiplies don't update FPSR.{IDC,IOC,IXC,UFC}. + * Since this is multiply-add, DZC does not apply and only OFC remains. + */ + return ret; +} + +static FloatParts64 f8dot(uint64_t a, uint64_t b, int n, FP8MulContext *ct= x) +{ + /* + * Because of default_nan_mode, NaNs need no special handling. + * We'll simply get the default NaN out at the end of the sequence. + */ + FloatParts64 p0 =3D ctx->fmt1(a & 0xff, &ctx->stat); + FloatParts64 p1 =3D ctx->fmt2(b & 0xff, &ctx->stat); + FloatParts64 pr =3D parts64_mul(&p0, &p1, &ctx->stat); + + for (int i =3D 1; i < n; ++i) { + p0 =3D ctx->fmt1(extract64(a, i * 8, 8), &ctx->stat); + p1 =3D ctx->fmt2(extract64(b, i * 8, 8), &ctx->stat); + pr =3D parts64_muladd(&p0, &p1, &pr, 0, &ctx->stat); + } + return parts64_scalbn(&pr, ctx->scale, &ctx->stat); +} + +static float16 f8dotadd_h(uint64_t a, uint64_t b, int n, float16 c, + FP8MulContext *ctx) +{ + FloatParts64 p0 =3D f8dot(a, b, n, ctx); + FloatParts64 p1 =3D float16_unpack_canonical(c, &ctx->stat); + + p0 =3D parts64_addsub(&p0, &p1, &ctx->stat, false); + return float16_round_pack_canonical(&p0, &ctx->stat); +} + +void HELPER(gvec_fmla_hb)(void *vd, void *vn, void *vm, + CPUARMState *env, uint32_t desc) +{ + FP8MulContext ctx =3D fp8_mul_start(env, 0xf); + bool high =3D extract32(desc, SIMD_DATA_SHIFT, 1); + size_t oprsz =3D simd_oprsz(desc); + size_t nelem =3D oprsz / 2; + uint8_t *n =3D vn; + uint8_t *m =3D vm; + float16 *d =3D vd; + + for (size_t i =3D 0; i < nelem; i++) { + uint8_t e0 =3D n[H1(2 * i + high)]; + uint8_t e1 =3D m[H1(2 * i + high)]; + + d[H2(i)] =3D f8dotadd_h(e0, e1, 1, d[H2(i)], &ctx); + } + + clear_tail(vd, oprsz, simd_maxsz(desc)); +} + +void HELPER(gvec_fmla_idx_hb)(void *vd, void *vn, void *vm, + CPUARMState *env, uint32_t desc) +{ + FP8MulContext ctx =3D fp8_mul_start(env, 0xf); + bool idx_n =3D extract32(desc, SIMD_DATA_SHIFT, 1); + size_t idx_m =3D extract32(desc, SIMD_DATA_SHIFT + 2, 4); + size_t oprsz =3D simd_oprsz(desc); + size_t nelem =3D oprsz / 2; + uint8_t *n =3D vn; + uint8_t *m =3D vm; + float16 *d =3D vd; + size_t i =3D 0; + + do { + uint8_t e1 =3D m[2 * i + H1(idx_m)]; + do { + uint8_t e0 =3D n[H1(2 * i + idx_n)]; + d[H2(i)] =3D f8dotadd_h(e0, e1, 1, d[H2(i)], &ctx); + } while (++i % 8 !=3D 0); + } while (i < nelem); + + clear_tail(vd, oprsz, simd_maxsz(desc)); +} diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index ee71c63116..1c1d4ad2f7 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -7384,6 +7384,22 @@ TRANS_FEAT(FMLSL_vi, aa64_fhm, do_fmlal_idx, a, true= , false) TRANS_FEAT(FMLAL2_vi, aa64_fhm, do_fmlal_idx, a, false, true) TRANS_FEAT(FMLSL2_vi, aa64_fhm, do_fmlal_idx, a, true, true) =20 +static bool do_fmla_fp8(DisasContext *s, arg_rxx *a, + gen_helper_gvec_3_ptr *fn) +{ + if (fpmr_access_check(s) && fp_access_check(s)) { + tcg_gen_gvec_3_ptr(vec_full_reg_offset(s, a->rd), + vec_full_reg_offset(s, a->rn), + vec_full_reg_offset(s, a->rm), + tcg_env, 16, vec_full_reg_size(s), + a->idxn | (a->idxm << 2), fn); + } + return true; +} + +TRANS_FEAT(FMLAL_hb_v, aa64_f8fma, do_fmla_fp8, a, gen_helper_gvec_fmla_hb) +TRANS_FEAT(FMLAL_hb_vi, aa64_f8fma, do_fmla_fp8, a, gen_helper_gvec_fmla_i= dx_hb) + static bool do_int3_vector_idx(DisasContext *s, arg_qrrx_e *a, gen_helper_gvec_3 * const fns[2]) { diff --git a/target/arm/tcg/a64.decode b/target/arm/tcg/a64.decode index 6aea3ce89f..b89e83ce76 100644 --- a/target/arm/tcg/a64.decode +++ b/target/arm/tcg/a64.decode @@ -25,6 +25,7 @@ %esz_hsd 22:2 !function=3Dxor_2 %hl 11:1 21:1 %hlm 11:1 20:2 +%hlm4 11:1 19:3 =20 &r rn &rrr rd rn rm @@ -38,6 +39,7 @@ &rri_e rd rn imm esz &rrr_e rd rn rm esz &rrx_e rd rn rm idx esz +&rxx rd rn rm idxn idxm &rrrr_e rd rn rm ra esz &qrr_e q rd rn esz &qrri_e q rd rn imm esz @@ -1204,6 +1206,9 @@ FSCALE 0.10 1110 1.1 ..... 11111 1 ..... ...= .. @qrrr_sd FCVTN_bh 0.00 1110 010 ..... 11110 1 ..... ..... @qrrr_h FCVTN_bs 0.00 1110 000 ..... 11110 1 ..... ..... @qrrr_h =20 +FMLAL_hb_v 0 idxn:1 00 1110 110 rm:5 11111 1 rn:5 rd:5 \ + &rxx idxm=3D0 + ### Advanced SIMD scalar x indexed element =20 FMUL_si 0101 1111 00 .. .... 1001 . 0 ..... ..... @rrx_h @@ -1322,6 +1327,9 @@ SQDMLAL_vi 0.00 1111 10 . ..... 0011 . 0 ..... .= .... @qrrx_s SQDMLSL_vi 0.00 1111 01 .. .... 0111 . 0 ..... ..... @qrrx_h SQDMLSL_vi 0.00 1111 10 . ..... 0111 . 0 ..... ..... @qrrx_s =20 +FMLAL_hb_vi 0 idxn:1 00 1111 11 ... rm:3 0000 . 0 rn:5 rd:5 \ + &rxx idxm=3D%hlm4 + # Floating-point conditional select =20 FCSEL 0001 1110 .. 1 rm:5 cond:4 11 rn:5 rd:5 esz=3D%esz_hsd --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301744; cv=none; d=zohomail.com; s=zohoarc; b=GmEoAmee9l47AK9XL4ABXsqx/tZEW4E18LNk5fSgNmHIbKEe7vXTRRDP1QqymVkS2sPFZA4CjUuTaFOxy/9PEbIXWur+NU5HwCiuUEdcfnqd8zjYHgC5+63J6c3kIAhdAGsZChouvwlvwsQ2Cq9/KTlH2PvZyz7W4kTS0kUUpuw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301744; 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=6l26rPIuII3YImkqTasNjpDKWjPGdRXt+dWuq4seH0M=; b=Q9nL3gp8HT1QDmum4dC0VbeStMgQGtCUJ1Oqysvu9TD6Lo0HAQXoqHw4rb/SsawQt12RoXHpN1KBtEh1MQX2Ofv4JE7c9aY+SO9ajR/9jWaEK2c4aiH4zzhZ3VYjskuuHkbHI/l4dDVophkH7gyTJ0dvs2zxfjcqukpSHPubJFo= 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 1779301744616757.8463637563266; Wed, 20 May 2026 11:29:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPld1-0005bl-Pt; Wed, 20 May 2026 14:26:48 -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 1wPlcB-00049B-Bc for qemu-devel@nongnu.org; Wed, 20 May 2026 14:26:02 -0400 Received: from mail-pl1-x630.google.com ([2607:f8b0:4864:20::630]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlc7-00024b-9l for qemu-devel@nongnu.org; Wed, 20 May 2026 14:25:53 -0400 Received: by mail-pl1-x630.google.com with SMTP id d9443c01a7336-2ba17c8cfacso49399195ad.2 for ; Wed, 20 May 2026 11:25:50 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c0605ddsm217413925ad.32.2026.05.20.11.25.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:25:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301550; x=1779906350; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=6l26rPIuII3YImkqTasNjpDKWjPGdRXt+dWuq4seH0M=; b=Y6SxNPTB1RxSt7Gqg+DuFgJqCs7H95yav8ACWngT2wSogeip8sPJ43Q47ZWd1FszM7 yrp6+mmFExeybzY5UqfiqaxuimXdG3LMVqsVo4Vty9rJHYNnJ1cLbtepujtmZzYbVrYR jGe+2IXv8MaT/p3wm8zcG8550Aan4m/tPcubCGhfcykQvHTO2c//S9GFCKiEi+GgFe36 ctBImkeQkzxAJK+WcHYhPlhg5Oiui7k3Ob4gBFfb79sm9hm94niY2Ma4jt4K1+cN9TJl AOaWq6FoRLXbsCFLbchMur+JDPCea4hFUaJtP0vrRE+TT2YM19CTLzpUEwCRN6AbufH1 /oLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301550; x=1779906350; 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; bh=6l26rPIuII3YImkqTasNjpDKWjPGdRXt+dWuq4seH0M=; b=kZPeXPR4bfEhIqkSrMrDz7DwyicpLLCw2/kA0BJ6anuncZRgxvw3LIBucrygY3pkz7 4slR18ux3i4l1zqUkLf65de90yd5c0/des75nYctznUjJw2mQLhjx1Hbc1/5QxWX1LIW XyKvDA8ORdGh9Hw1+/e72XJIYxXgtN054fhlTsMJGeQMDH5k7KauEEcLIGZaWOm5K52q +Ue6prMdttesASaLPSIoDLAR3nxE6MwumJ4wI/DcqhPXtd6lYP7tc6PFMEFJjZ+GL8yA Rim3oRYdmkIUp1mdnd+BlkgyrvRs2Vrbd35SmlWhuWIknyyBRRiXTqRVYUeDsWo3zKp9 3VSQ== X-Gm-Message-State: AOJu0Ywww4frGH+FFZKj+ccyYNTLxoH9dzWhmb6KducswTW6EWa+rd6+ 6A7svj7dvtYIDiVTRMnlKwVEKx49L10IHTK4uU9BW4t8/M5d6H/mh92gLE3xPLx6j3GQLaNQZEI JJ1TVaX4= X-Gm-Gg: Acq92OEWKqiZ+RhrTKOcwYhfwizkxbdntvcb6hXjgSLSfjLF9/xG7EX811KANKuWZuJ fE7eMCltea6wrDANuup7JkGKI30oIR5aiQKPlmYof7Pg8vj5t94MfbxvxW3RRzRMrxAi+zfVH8J hRYLi33IsvFxGJNow/Nl3Nx3RYvb/hd+hDVxG9SQY3HpeQ7hGYLhpDRXJBJdtKOXFsl14Zfziv0 5NK4DnNAplQGpW9MRQv90GJStLIKdOmvrL/3wv/D8GInQN5D3sYfhiIN6fPvs66FnJKBBhJ69To C5OD4JMp1EH/hthVSCksIKniWWdAbzznXuMsP8DT9McKRe0juMM1Szts2POhgog0buQD6LmyDYE BcsOV3Kt1qB+8lOQRRNO2wg/CmOP7wWcSymn33i4Rg+VRwASYaCZGlAjbDkN3ighAchv3wrIKMN NWY5oxGPAaJ26U74bpdvm6cvEFS+PmdOSIKQqElAY= X-Received: by 2002:a17:903:3888:b0:2bd:2439:25fc with SMTP id d9443c01a7336-2bd7e7f9a5cmr265590875ad.7.1779301549522; Wed, 20 May 2026 11:25:49 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 47/64] target/arm: Implement FMLALB, FMLALT (FP8 to FP16) for SVE Date: Wed, 20 May 2026 11:21:56 -0700 Message-ID: <20260520182213.872945-48-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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::630; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x630.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: 1779301747310154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/cpu-features.h | 5 +++++ target/arm/tcg/translate-sve.c | 33 +++++++++++++++++++++++++++++++++ target/arm/tcg/sve.decode | 7 +++++++ 3 files changed, 45 insertions(+) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index ee20d74164..c0b646415c 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1545,6 +1545,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_ssve_f8fma(const ARMISARegisters *id) +{ + return FIELD_EX64_IDREG(id, ID_AA64SMFR0, SF8FMA); +} + static inline bool isar_feature_aa64_sme_b16b16(const ARMISARegisters *id) { return FIELD_EX64_IDREG(id, ID_AA64SMFR0, B16B16); diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index ea0d66178e..aa785fa0c3 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8336,3 +8336,36 @@ static bool trans_LUTI4_2h(DisasContext *s, arg_LUTI= 4_2h *a) } return true; } + +static bool do_fmla_fp8(DisasContext *s, arg_rxx *a, gen_helper_gvec_3_ptr= *fn) +{ + bool fp8fma =3D dc_isar_feature(aa64_f8fma, s); + bool ssve_fp8fma =3D dc_isar_feature(aa64_ssve_f8fma, s); + bool ok =3D false; + + /* Feature detection and enabling are complex here. */ + if (!(ssve_fp8fma || (fp8fma && dc_isar_feature(aa64_sve2, s)))) { + return false; + } + if (fpmr_access_check(s)) { + if (fp8fma) { + s->is_nonstreaming =3D !ssve_fp8fma; + ok =3D sve_access_check(s); + } else { + ok =3D sme_sm_enabled_check(s); + } + } + + if (ok) { + unsigned vsz =3D vec_full_reg_size(s); + tcg_gen_gvec_3_ptr(vec_full_reg_offset(s, a->rd), + vec_full_reg_offset(s, a->rn), + vec_full_reg_offset(s, a->rm), + tcg_env, vsz, vsz, + a->idxn | (a->idxm << 2), fn); + } + return true; +} + +TRANS(FMLAL_hb, do_fmla_fp8, a, gen_helper_gvec_fmla_hb) +TRANS(FMLAL_idx_hb, do_fmla_fp8, a, gen_helper_gvec_fmla_idx_hb) diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index e2106fc7f5..71ec09393c 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -29,6 +29,7 @@ %imm9_16_10 16:s6 10:3 %size_23 23:2 %dtype_23_13 23:2 13:2 +%index4_19_10 19:2 10:2 %index3_22_19 22:1 19:2 %index3_22_17 22:1 17:2 %index3_22_12 22:2 12:1 @@ -73,6 +74,7 @@ &rri rd rn imm &rr_dbm rd rn dbm &rrri rd rn rm imm +&rxx rd rn rm idxn idxm &rri_esz rd rn imm esz &rrri_esz rd rn rm imm esz &rrr_esz rd rn rm esz @@ -1864,6 +1866,8 @@ BFMLALT_zzzw 01100100 11 1 ..... 10 0 00 1 ..... .= .... @rda_rn_rm_ex esz=3D2 BFMLSLB_zzzw 01100100 11 1 ..... 10 1 00 0 ..... ..... @rda_rn_rm_ex e= sz=3D2 BFMLSLT_zzzw 01100100 11 1 ..... 10 1 00 1 ..... ..... @rda_rn_rm_ex e= sz=3D2 =20 +FMLAL_hb 01100100 10 1 rm:5 100 idxn:1 10 rn:5 rd:5 &rxx idxm=3D0 + ### SVE2 floating-point dot-product FDOT_zzzz 01100100 00 1 ..... 10 0 00 0 ..... ..... @rda_rn_rm_ex e= sz=3D2 BFDOT_zzzz 01100100 01 1 ..... 10 0 00 0 ..... ..... @rda_rn_rm_ex e= sz=3D2 @@ -1880,6 +1884,9 @@ BFMLALT_zzxw 01100100 11 1 ..... 0100.1 ..... ....= . @rrxr_3a esz=3D2 BFMLSLB_zzxw 01100100 11 1 ..... 0110.0 ..... ..... @rrxr_3a esz=3D2 BFMLSLT_zzxw 01100100 11 1 ..... 0110.1 ..... ..... @rrxr_3a esz=3D2 =20 +FMLAL_idx_hb 01100100 idxn:1 01 .. rm:3 0101 .. rn:5 rd:5 \ + &rxx idxm=3D%index4_19_10 + ### SVE2 floating-point dot-product (indexed) =20 FDOT_zzxz 01100100 00 1 ..... 010000 ..... ..... @rrxr_2 esz=3D2 --=20 2.43.0 From nobody Sat May 30 17:45:58 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1779301941715310.2126814808395; Wed, 20 May 2026 11:32:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPleZ-0000Bs-69; Wed, 20 May 2026 14:28: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 1wPlcB-00049A-Ax for qemu-devel@nongnu.org; Wed, 20 May 2026 14:26:02 -0400 Received: from mail-pl1-x633.google.com ([2607:f8b0:4864:20::633]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlc8-000251-Fv for qemu-devel@nongnu.org; Wed, 20 May 2026 14:25:54 -0400 Received: by mail-pl1-x633.google.com with SMTP id d9443c01a7336-2b458ca2296so38240685ad.0 for ; Wed, 20 May 2026 11:25:51 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c0605ddsm217413925ad.32.2026.05.20.11.25.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:25:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301550; x=1779906350; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=juknVFtZGsf9ccqDKw8a9qdV4HaaBmiDKbAxfLjp7e8=; b=dcdD5uVM2a1E9xwdilAY9+lGx8BFgVvpls3ChlV7iQGGsxoplyIa0FXt52Url7E7fI pDuDFhySmVHxWhsrRNd8EIHKIOLsrwNf+PAwPre/+2v6iAexESENoCOQFyiJfLT31uhw 0XNbkqAHw/Rrg1PPgmV4cJnnNThf1WPB3PPvFy9dGQfkZBybgMM7tf3Neth54S38KVEj kkOZuW1veSjaLYaw2u7s5G8LFBESWGGJcjJM1kufvnwYiM/29fCVuxhC1Y0U0nrU8vIq hvpBui1tlI8m71TlHhB03GhR9CffI+OhB5s6ETFbZsYvAcBAvzmONX9XtFttydsApCgW utrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301550; x=1779906350; 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; bh=juknVFtZGsf9ccqDKw8a9qdV4HaaBmiDKbAxfLjp7e8=; b=qqQTbQJWE1tzCL7EB9ZKsC3fY98XZyWPMHTrEAtrOVZ5a0oyv261/7BI3BwN/8bVDr UdEephqpbccf/k1BqiQCZp4R8juvv9UdUL6yI9ubrJwu+3u2HtPD4LY5NCLV36PAo7w5 PjtcUfVxdPQSGxXLAMLzCZTxhelK/6HZPMwD2kvSm6HjSHaANLgSc4ZJ1eBpH9jYQ2XS IHs7Ty8d921JMoOQrR66uo29iPLL/O5e37e/BMQvPc4wiERBNq5RSgpC0ymXqCORoL6+ 1/sqK368xIMh1jyGtsNMtL/dCyQQPYZN7E8kRr0kJ/HOr46+8/PjCkjg1TIY1Ei9goHE WD5A== X-Gm-Message-State: AOJu0YzLLAgKAzqzyTslFxXrvCHWMl56ZZzJoeY8SFOFdqObd164Nio/ SCwCGjED5B89kKyo7GSsZTAYlXX7pbQfEYKSc2Bbb1SRQ2XBN9Z805wtXQYQJR2D2ujT5J8fDuo jnLgs2p4= X-Gm-Gg: Acq92OFEj6mn4I2FNMHeTODbSdXboXHI4f01D8vLz3Xhe7v/IDD2n90i3gEurfZAh0a uYo7aW10aK/n6JEJvBjc/hJaX0rU1NI2dfNWLShmnUXd9j/GHBTNVRn5nU4Ll/f4fn3vUlas5rt yqtofb3YHxCVIzGAD13jsdko9Hlu1i2Ii2viwJz0Y4UHCjejMtKagugpw/j1xO8iCJR5/lzsGs1 0Ece+TRz6lS9UtqVkBiXhMSk9KcsAx+rowGstgZWYFAPHRjrgNb6lHHQoWb3ckl9sGwBP4W9hgF tSroEC5XMPmlTnilS/Fw1frIXsHVZo/tADh1AoADCVpFD74U/LDGa+XwvPGvPL9tnCBNbJ8po1+ RtTylMFMg7VNqCYyT8XhlNr+JAqYwpyi5GvWmb6NwYDWVTmrzrQY5MciuAbX2vzPnlEkaP2cyXh KZI2CVZO56Tze4tfmWhgxnBlmPZ0c4 X-Received: by 2002:a17:902:ce91:b0:2be:1c3c:72bb with SMTP id d9443c01a7336-2be1c3c73dbmr118536165ad.33.1779301550510; Wed, 20 May 2026 11:25:50 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 48/64] target/arm: Implement FMLALL{BB, BT, TB, TT} for AdvSIMD Date: Wed, 20 May 2026 11:21:57 -0700 Message-ID: <20260520182213.872945-49-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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::633; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x633.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: fail (Header signature does not verify) X-ZM-MESSAGEID: 1779301942841158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/helper-fp8-defs.h | 3 ++ target/arm/tcg/fp8_helper.c | 55 ++++++++++++++++++++++++++++++++ target/arm/tcg/translate-a64.c | 3 ++ target/arm/tcg/a64.decode | 7 ++++ 4 files changed, 68 insertions(+) diff --git a/target/arm/tcg/helper-fp8-defs.h b/target/arm/tcg/helper-fp8-d= efs.h index 7aa8366d94..802a3b430e 100644 --- a/target/arm/tcg/helper-fp8-defs.h +++ b/target/arm/tcg/helper-fp8-defs.h @@ -26,3 +26,6 @@ DEF_HELPER_FLAGS_4(sme2_fcvtn_bs, TCG_CALL_NO_RWG, void, = ptr, ptr, env, i32) =20 DEF_HELPER_FLAGS_5(gvec_fmla_hb, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, env= , i32) DEF_HELPER_FLAGS_5(gvec_fmla_idx_hb, TCG_CALL_NO_RWG, void, ptr, ptr, ptr,= env, i32) + +DEF_HELPER_FLAGS_5(gvec_fmla_sb, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, env= , i32) +DEF_HELPER_FLAGS_5(gvec_fmla_idx_sb, TCG_CALL_NO_RWG, void, ptr, ptr, ptr,= env, i32) diff --git a/target/arm/tcg/fp8_helper.c b/target/arm/tcg/fp8_helper.c index d86d3d0bfb..a6e989f6b3 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -630,6 +630,16 @@ static float16 f8dotadd_h(uint64_t a, uint64_t b, int = n, float16 c, return float16_round_pack_canonical(&p0, &ctx->stat); } =20 +static float32 f8dotadd_s(uint64_t a, uint64_t b, int n, float32 c, + FP8MulContext *ctx) +{ + FloatParts64 p0 =3D f8dot(a, b, n, ctx); + FloatParts64 p1 =3D float32_unpack_canonical(c, &ctx->stat); + + p0 =3D parts64_addsub(&p0, &p1, &ctx->stat, false); + return float32_round_pack_canonical(&p0, &ctx->stat); +} + void HELPER(gvec_fmla_hb)(void *vd, void *vn, void *vm, CPUARMState *env, uint32_t desc) { @@ -674,3 +684,48 @@ void HELPER(gvec_fmla_idx_hb)(void *vd, void *vn, void= *vm, =20 clear_tail(vd, oprsz, simd_maxsz(desc)); } + +void HELPER(gvec_fmla_sb)(void *vd, void *vn, void *vm, + CPUARMState *env, uint32_t desc) +{ + FP8MulContext ctx =3D fp8_mul_start(env, -1); + size_t idx =3D extract32(desc, SIMD_DATA_SHIFT, 2); + size_t oprsz =3D simd_oprsz(desc); + size_t nelem =3D oprsz / 4; + uint8_t *n =3D vn; + uint8_t *m =3D vm; + float32 *d =3D vd; + + for (size_t i =3D 0; i < nelem; i++) { + uint8_t e0 =3D n[H1(4 * i + idx)]; + uint8_t e1 =3D m[H1(4 * i + idx)]; + + d[H4(i)] =3D f8dotadd_s(e0, e1, 1, d[H4(i)], &ctx); + } + + clear_tail(vd, oprsz, simd_maxsz(desc)); +} + +void HELPER(gvec_fmla_idx_sb)(void *vd, void *vn, void *vm, + CPUARMState *env, uint32_t desc) +{ + FP8MulContext ctx =3D fp8_mul_start(env, -1); + size_t idx_n =3D extract32(desc, SIMD_DATA_SHIFT, 2); + size_t idx_m =3D extract32(desc, SIMD_DATA_SHIFT + 2, 4); + size_t oprsz =3D simd_oprsz(desc); + size_t nelem =3D oprsz / 4; + uint8_t *n =3D vn; + uint8_t *m =3D vm; + float32 *d =3D vd; + size_t i =3D 0; + + do { + uint8_t e1 =3D m[4 * i + H1(idx_m)]; + do { + uint8_t e0 =3D n[H1(4 * i + idx_n)]; + d[H4(i)] =3D f8dotadd_s(e0, e1, 1, d[H4(i)], &ctx); + } while (++i % 4 !=3D 0); + } while (i < nelem); + + clear_tail(vd, oprsz, simd_maxsz(desc)); +} diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index 1c1d4ad2f7..946c16d439 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -7400,6 +7400,9 @@ static bool do_fmla_fp8(DisasContext *s, arg_rxx *a, TRANS_FEAT(FMLAL_hb_v, aa64_f8fma, do_fmla_fp8, a, gen_helper_gvec_fmla_hb) TRANS_FEAT(FMLAL_hb_vi, aa64_f8fma, do_fmla_fp8, a, gen_helper_gvec_fmla_i= dx_hb) =20 +TRANS_FEAT(FMLALL_sb_v, aa64_f8fma, do_fmla_fp8, a, gen_helper_gvec_fmla_s= b) +TRANS_FEAT(FMLALL_sb_vi, aa64_f8fma, do_fmla_fp8, a, gen_helper_gvec_fmla_= idx_sb) + static bool do_int3_vector_idx(DisasContext *s, arg_qrrx_e *a, gen_helper_gvec_3 * const fns[2]) { diff --git a/target/arm/tcg/a64.decode b/target/arm/tcg/a64.decode index b89e83ce76..ef6d7dfeaa 100644 --- a/target/arm/tcg/a64.decode +++ b/target/arm/tcg/a64.decode @@ -1209,6 +1209,10 @@ FCVTN_bs 0.00 1110 000 ..... 11110 1 ..... ..= ... @qrrr_h FMLAL_hb_v 0 idxn:1 00 1110 110 rm:5 11111 1 rn:5 rd:5 \ &rxx idxm=3D0 =20 +%fmlall_idxn 30:1 22:1 +FMLALL_sb_v 0.00 1110 0.0 rm:5 110001 rn:5 rd:5 \ + &rxx idxm=3D0 idxn=3D%fmlall_idxn + ### Advanced SIMD scalar x indexed element =20 FMUL_si 0101 1111 00 .. .... 1001 . 0 ..... ..... @rrx_h @@ -1330,6 +1334,9 @@ SQDMLSL_vi 0.00 1111 10 . ..... 0111 . 0 ..... .= .... @qrrx_s FMLAL_hb_vi 0 idxn:1 00 1111 11 ... rm:3 0000 . 0 rn:5 rd:5 \ &rxx idxm=3D%hlm4 =20 +FMLALL_sb_vi 0 . 10 1111 0 . ... rm:3 1000 . 0 rn:5 rd:5 \ + &rxx idxm=3D%hlm4 idxn=3D%fmlall_idxn + # Floating-point conditional select =20 FCSEL 0001 1110 .. 1 rm:5 cond:4 11 rn:5 rd:5 esz=3D%esz_hsd --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779302025; cv=none; d=zohomail.com; s=zohoarc; b=N3QPiSVEipjnTxfzl7VY42osbWRa/lqr1R9jjccokh/Y29qrendDkVU4mXjjF/e0mcdO43V3uPrH2OQM6mpS/fZeN2pAIv2BDDS3zYoODmdGgkkGPHMOkWMuf9NpNAOP9x4nJ3e/yTNUk/0wOxD61qj0+Eqv/7cdkFp8lBKymmo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779302025; 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=AeHqaA4eUNZ/cnZls9YTWTYizcqfhEo9ShP2VlzzQbM=; b=eVxWFbfgEGYpUqnemqyo2qiFB4Yy/OHNR3z8INVddTA7yqTK1+nd2TR5rpZUkBrqpmgcqPB+eWL3sjFxIFq+clhJBFkGPmhTCCWO1vNjBEtk/MLeC3C/CRgFWAY0fWZ/TCKUTHtUZLO8i7u7LCA1NsjL4/E/Vfo3E/K2ftWCDrI= 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 1779302025981198.7721258820925; Wed, 20 May 2026 11:33:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPleY-0008RD-AZ; Wed, 20 May 2026 14:28:22 -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 1wPlcB-00049C-Bp for qemu-devel@nongnu.org; Wed, 20 May 2026 14:26:02 -0400 Received: from mail-pl1-x634.google.com ([2607:f8b0:4864:20::634]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlc8-00025W-QD for qemu-devel@nongnu.org; Wed, 20 May 2026 14:25:54 -0400 Received: by mail-pl1-x634.google.com with SMTP id d9443c01a7336-2bd9c3b550aso35451735ad.2 for ; Wed, 20 May 2026 11:25:52 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c0605ddsm217413925ad.32.2026.05.20.11.25.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:25:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301551; x=1779906351; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=AeHqaA4eUNZ/cnZls9YTWTYizcqfhEo9ShP2VlzzQbM=; b=OWuXbeFELvgPs4d0WiVstqggcTIUHLLv3MhH6uf15m4jyOOlo87a05540ctiwjsTxl 2/9xEGwNGrx0lJ/lW6tWaFaI4YxbttH+JjAkK4UhUIOrJfC8mgANZaMSCCuKCdT86rRU 8IwGnUM36zY/auViZC3AUcCIHG5L5E0fT19XFeclg6nMrQnU2md7snEoS0hQmNYzBBMa jWasEqAwYbhXPBQJUNIzMYlQRMb0Z9HnZ/1w45U3ygb9hCXWS35kMAJMpBXQy9+c/ADT D5sLWxU1TGlvcxFXGWMGzXJ10+Odnd2HiJSJ3jBbIqz4T6/F+d8qshzuHh4sYkdZgDct rh+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301551; x=1779906351; 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; bh=AeHqaA4eUNZ/cnZls9YTWTYizcqfhEo9ShP2VlzzQbM=; b=JFIUbqojkIYKL9rWUfyUxWHp7jCEdPgjjYe/rUf4IOwP9yxfKEuu6rnfHCHWIjPlK0 ED3wAgz+m6SXmdhJcwuzT8lyBh+lWYXLDGdBJPrqdUDPvAJqV52700MWUsh63aauRUDg H0akx48tH86CZ4RnT7Ws5++zEfAMCNdhb3LScPDziI3EOeuUzedc45oVhSd8sYkdvnLP /EzZG0X0tQ56tsxG4hHwHiW/z9eNIi9gZP854eLsnd+51sNS71pNC7VR7wk8k5MJgVBe WZJ6RNTi1yqv5sTrm2f6MDmwcSeBgoMvMjp0pH0W+FPA8JpVyF0gTyPvROrZRmlsdGOR saXw== X-Gm-Message-State: AOJu0YwR2WCc5P5ES74aHre+FaqZfgwtGmglu2MYLxliPkEIFea/h4tz jfpSnGkxqZI6E2FLs28HN7c3TKtRC3Irj5q2pLN9HfAjUZiDdmQ7GxU6SHGojgFwA4h2GK7ggzE 1jZBoYTk= X-Gm-Gg: Acq92OFaemuzuG4droaV+PmWluETGAMQ44MpveR0iWVT6VBWuikKEOQtbwGN8e72YiX FgaS3wBC/BWjpP2CefUk0/tEgZPE55BLrxPoBzmoguwedmY6AaRfwEPE5QBYYFH92nqd60FY9bx ydcQ8Uxg50D3qogAlc0SCO/hUPZTshaB1b/TNZMXbNauxygSp98llRSzytb2bmjzNq+ln/CiWZp PuHDYcAdXU27xVUNjPWURzUzIh6/jYztDPWoBOoA/LhqWHMdxWSghtalYXNhMxry1a+wJT1yQNf 6poG/0uCiF2TpcNkj4MpItTdg4sY0bXz6Kl/VqliwDyLOrAkhFxsMxpkF4Wjam5WqPO9EUd3vwM GD4J7//ClC36O9YUDBJf9qlsMmDd0SKIuar197iiWfpvAJWW3E864GMh+NKUe1WwDsqYFCx7hO9 GotV/sJb9t0WrhtimDS+Urp/yN0U95 X-Received: by 2002:a17:903:2c8:b0:2b9:5d1b:73da with SMTP id d9443c01a7336-2bd7e8ae68bmr293526315ad.30.1779301551194; Wed, 20 May 2026 11:25:51 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 49/64] target/arm: Implement FMLALL{BB,BT,TB,TT} for SVE Date: Wed, 20 May 2026 11:21:58 -0700 Message-ID: <20260520182213.872945-50-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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::634; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x634.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: 1779302026282158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/translate-sve.c | 3 +++ target/arm/tcg/sve.decode | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index aa785fa0c3..e23ca43f55 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8369,3 +8369,6 @@ static bool do_fmla_fp8(DisasContext *s, arg_rxx *a, = gen_helper_gvec_3_ptr *fn) =20 TRANS(FMLAL_hb, do_fmla_fp8, a, gen_helper_gvec_fmla_hb) TRANS(FMLAL_idx_hb, do_fmla_fp8, a, gen_helper_gvec_fmla_idx_hb) + +TRANS(FMLALL_sb, do_fmla_fp8, a, gen_helper_gvec_fmla_sb) +TRANS(FMLALL_idx_sb, do_fmla_fp8, a, gen_helper_gvec_fmla_idx_sb) diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index 71ec09393c..06bbd7fa63 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -1868,6 +1868,8 @@ BFMLSLT_zzzw 01100100 11 1 ..... 10 1 00 1 ..... .= .... @rda_rn_rm_ex esz=3D2 =20 FMLAL_hb 01100100 10 1 rm:5 100 idxn:1 10 rn:5 rd:5 &rxx idxm=3D0 =20 +FMLALL_sb 01100100 00 1 rm:5 10 idxn:2 10 rn:5 rd:5 &rxx idxm=3D0 + ### SVE2 floating-point dot-product FDOT_zzzz 01100100 00 1 ..... 10 0 00 0 ..... ..... @rda_rn_rm_ex e= sz=3D2 BFDOT_zzzz 01100100 01 1 ..... 10 0 00 0 ..... ..... @rda_rn_rm_ex e= sz=3D2 @@ -1887,6 +1889,9 @@ BFMLSLT_zzxw 01100100 11 1 ..... 0110.1 ..... ....= . @rrxr_3a esz=3D2 FMLAL_idx_hb 01100100 idxn:1 01 .. rm:3 0101 .. rn:5 rd:5 \ &rxx idxm=3D%index4_19_10 =20 +FMLALL_idx_sb 01100100 idxn:2 1 .. rm:3 1100 .. rn:5 rd:5 \ + &rxx idxm=3D%index4_19_10 + ### SVE2 floating-point dot-product (indexed) =20 FDOT_zzxz 01100100 00 1 ..... 010000 ..... ..... @rrxr_2 esz=3D2 --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301729; cv=none; d=zohomail.com; s=zohoarc; b=CbUaAwt4RImXQRFVNCOS4i+grNiO+luKcfn9oHH9nAT1We/Du5b5VIiDfWzGLBQ6Jag2rSfvBZyLqvm1ehHdr485tlzIqhuitP6UtZtSWX5MvtauxhY9IClkgU11v/hVsEq5dM7Q9QYwMBy++tUEVSopFh/TF+e4QQBYUYalqZM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301729; 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=xnvL1dEdpYA1y9JJcxfkHku7n0bLCdQETh28Vu/3wxA=; b=ZXAXUPmLDmjNgAirmMyI2foknEAFypigwEgfB/fE/BJVbCtJMNWkZEWQsAtMYjwWLZAFq9qptL/Lel3WpjdmxhKTWKQ+a3YmQAgDbGEPk8nYVDi7jlmDS7d/OkXRCB0GNpIqtM4k6G7RpUOzt8qOlWybpzNNmqym0Zpz1grvALU= 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 1779301729817517.6194055361323; Wed, 20 May 2026 11:28:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPleD-0007S5-QV; Wed, 20 May 2026 14:28:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wPlcK-0004JB-TW for qemu-devel@nongnu.org; Wed, 20 May 2026 14:26:06 -0400 Received: from mail-pl1-x62e.google.com ([2607:f8b0:4864:20::62e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlcB-00025s-3I for qemu-devel@nongnu.org; Wed, 20 May 2026 14:25:59 -0400 Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-2ba0fc8b1f0so35731845ad.3 for ; Wed, 20 May 2026 11:25:52 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c0605ddsm217413925ad.32.2026.05.20.11.25.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:25:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301552; x=1779906352; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=xnvL1dEdpYA1y9JJcxfkHku7n0bLCdQETh28Vu/3wxA=; b=xg3L1JL5NR84U0HzYQvIe8/RcC3eRrrrRIc3zfXcIHY3Ur03u2lZO7x9jkNp77rbrL LPRhqvFKeOZ6+Iz9i220ekhysuXtxBj6zcOs1hz2sMqolE4hyRpdheNgGfuSuMXlnoI2 jlaCyxybgqa4A1iv9m7Dk2C/QrUOwMKDIo2UiOaGW6mRxnFjCPGEcUMtI6mdkFH2YZC5 Z4K6tT0GtH+RFJdnYtixaBNZHYEwM1cXfPEegHzdeTjB/MMd5VSUCtq6NsiXEfGiLSwS HUQJPHyqguApdZUDJ2lh847aoGd+d4eDq7ZGNB47cFogzP4xD//gTlAmIYt20Mx5wo9D jU/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301552; x=1779906352; 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; bh=xnvL1dEdpYA1y9JJcxfkHku7n0bLCdQETh28Vu/3wxA=; b=duSsAGdzuezBqbmEX3bTs9jJ6sSAriHl5lpFVcb7YOexJkqDM+SYmpszSgmV6bMvHX qF3DNTbiB/jLHJAlgwGp+WSGDDAPm56pqu7hgTx9UWnYAa7zbN+5788msFNoYfphUPTI As6PUJQCwZPaDzvbpd+ayRfSX6vR90zDUv19we1OgOQxUh3hTxgMCcZ4gyDnFjYKFF6L crHoMBcjgxl1J1fMr5Xh/v7q3ucnHrtMFGTbc41gquTDBt7DAqFzwBI3MQ0xdvfH2zkS Wy5BfHPuRlmLVmrywHFzmTfGmUNP605f4i5HdjFV5613/N0fkcUtULj5sV//UicXL3pu D5Lw== X-Gm-Message-State: AOJu0YzMmUFJORDcyUzQ4CLepYCAx6w09TM1dwbOPn5t3rIV2SizBjqW hZrjE9wJWg/FZbjQPFeem/8lJLKTwJhhPUxL4S+is1t2O+awXsEKI316h7iIInFsm4y88Bpe23X /1BzeaKk= X-Gm-Gg: Acq92OHCJyK2ZyUXwcG+hN207rwXDh9R735PeeZjUoQziBDcUwx/uSZDrPoVoHVFVZC WawxQxDZCFqk6K2ifBuM4SLW4F6NBUd1WJpKfCkP1im4arQDg045QiASX9R4zqH4rODEpPRRvaq xXXSEEfx/rFd28kk37hrKVbJ+/3w0hDYIViFlBOuViohpm5mhqZ9Vn2JiY69E2dMvGJ0+0tkRhg kTvCmU9tPqOyi7WmkgXIiopam1/WHnbD+PNzgbPb5sg9wdCFZMCAM3syttvuMxzdq5iJS3OuLTv hohSRcq+mONibZNFSgy39HK1aBSDgh7aBs3x+Gmopudz4cIZcLFwpVNGx9GnpSYwXB6DxdwLqle 3/T08NaSfYUskGJqyJ+xUTsnwnrKJznZgHwywYpZSeqw+5j5Z1w24xcvy2sZZc88+OBlNx3Bf8C MVKb1SVv6V5Qp2nE9Uz0CNEWWcosVa X-Received: by 2002:a17:902:7c0e:b0:2ae:826f:2c50 with SMTP id d9443c01a7336-2bd7e8acabcmr173845895ad.12.1779301551767; Wed, 20 May 2026 11:25:51 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 50/64] target/arm: Enable FEAT_FP8FMA, FEAT_SSVE_FP8FMA for -cpu max Date: Wed, 20 May 2026 11:21:59 -0700 Message-ID: <20260520182213.872945-51-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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::62e; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62e.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: 1779301731477158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/cpu64.c | 2 ++ docs/system/arm/emulation.rst | 2 ++ 2 files changed, 4 insertions(+) diff --git a/target/arm/tcg/cpu64.c b/target/arm/tcg/cpu64.c index 90214a355a..93cd7ee1a6 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -1377,6 +1377,7 @@ void aarch64_max_tcg_initfn(Object *obj) SET_IDREG(isar, ID_AA64DFR0, t); =20 t =3D GET_IDREG(isar, ID_AA64SMFR0); + t =3D FIELD_DP64(t, ID_AA64SMFR0, SF8FMA, 1); /* FEAT_SSVE_FP8FMA */ t =3D FIELD_DP64(t, ID_AA64SMFR0, F32F32, 1); /* FEAT_SME */ t =3D FIELD_DP64(t, ID_AA64SMFR0, BI32I32, 1); /* FEAT_SME2 */ t =3D FIELD_DP64(t, ID_AA64SMFR0, B16F32, 1); /* FEAT_SME */ @@ -1395,6 +1396,7 @@ void aarch64_max_tcg_initfn(Object *obj) t =3D GET_IDREG(isar, ID_AA64FPFR0); t =3D FIELD_DP64(t, ID_AA64FPFR0, F8E5M2, 1); /* FEAT_FP8 */ t =3D FIELD_DP64(t, ID_AA64FPFR0, F8E4M3, 1); /* FEAT_FP8 */ + t =3D FIELD_DP64(t, ID_AA64FPFR0, F8FMA, 1); /* FEAT_FP8FMA */ t =3D FIELD_DP64(t, ID_AA64FPFR0, F8CVT, 1); /* FEAT_FP8 */ SET_IDREG(isar, ID_AA64FPFR0, t); =20 diff --git a/docs/system/arm/emulation.rst b/docs/system/arm/emulation.rst index 0dd6b554a0..a6b48f9c60 100644 --- a/docs/system/arm/emulation.rst +++ b/docs/system/arm/emulation.rst @@ -75,6 +75,7 @@ the following architecture extensions: - FEAT_FP (Floating Point extensions) - FEAT_FP16 (Half-precision floating-point data processing) - FEAT_FP8 (FP8 convert instructions) +- FEAT_FP8FMA (FP8 multiply-accumulate to half-precision and single-precis= ion instructions) - FEAT_FPAC (Faulting on AUT* instructions) - FEAT_FPACCOMBINE (Faulting on combined pointer authentication instructio= ns) - FEAT_FPACC_SPEC (Speculative behavior of combined pointer authentication= instructions) @@ -159,6 +160,7 @@ the following architecture extensions: - FEAT_SME_F64F64 (Double-precision floating-point outer product instructi= ons) - FEAT_SME_I16I64 (16-bit to 64-bit integer widening outer product instruc= tions) - FEAT_SME_LUTv2 (Lookup table instructions with 4-bit indices and 8-bit e= lements) +- 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_B16B16 (Non-widening BFloat16 arithmetic for SVE2) --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301966; cv=none; d=zohomail.com; s=zohoarc; b=af5e/DAuptv/MrC90t2SkxGNDQku/6rxZeqoX1EWluFlyCXdYyZ4LVQ0Dbm46BjVoH/uHdF+jlwvStYTbQ6tBy0eys6nDlSTPeon4bpSyrISo4NyJe/7SF2AbqmR3pH+fUNBegta0DRv+XX7Gl45ZdrJAEtH5BVDZ/epRto56mk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301966; 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=HEP0D04kzXulzdeR9PgqunzWXDqko6qaWzHweVZbae4=; b=Ta2/J9LyE+u1poXbspV/238wfRK9Drwzgz9l5s4x1W9MWbDyeyQMuAL0EuHrA/iJkfDGQRyBDbiNhOa8DiG1ggYVSi3S/wAswmbVzHhjqtyN+Q9HpnssEhEZZENQi5yNg6EJx3v2s9RIskMVpy6+k541I2wwKnpZTS6JTzZnQxY= 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 1779301966399677.6568311748322; Wed, 20 May 2026 11:32:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPleA-0007E2-Iw; Wed, 20 May 2026 14:27: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 1wPlcL-0004JF-3T for qemu-devel@nongnu.org; Wed, 20 May 2026 14:26:06 -0400 Received: from mail-pg1-x52a.google.com ([2607:f8b0:4864:20::52a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlcB-00026N-1R for qemu-devel@nongnu.org; Wed, 20 May 2026 14:26:00 -0400 Received: by mail-pg1-x52a.google.com with SMTP id 41be03b00d2f7-c82de129a40so2314979a12.1 for ; Wed, 20 May 2026 11:25:53 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c0605ddsm217413925ad.32.2026.05.20.11.25.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:25:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301552; x=1779906352; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=HEP0D04kzXulzdeR9PgqunzWXDqko6qaWzHweVZbae4=; b=Da6KCqlIdW/vpgHRBePJXc/c72OorK6qFxBI3vtmaXC6lReK4S3rBZ72bqviFJM3aH 88sfzj17tNKY82mJMksHeVurxPT/lWr4DkxrMeIIWD3sldyFY2n50i4It88OVE8ftoF0 RzVwaRFbobrFCMZM2bmyA9Va4JAy5OWvHSGXxGSMZc2dgSoPcy05OQrKJVHMMSSHGXxk QqYRi3Zwhiwgp/dvXf+SKKAu4mpW7/4KIutkhjoKVyEyxPZ0sc4BpqZoxMNOexUKuNrv kMIfF154IgQSY1fWB6eTwqF5b0vjlkdnn4Qm06DBzAjCcYqqm3zCX0UDwmuEimer3Fsp QEbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301552; x=1779906352; 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; bh=HEP0D04kzXulzdeR9PgqunzWXDqko6qaWzHweVZbae4=; b=AvUMgVg1kT2AaYR3YuMWMzA+lliKizxZm43+o9fGlXvVzVu2uuiRah/gWPGZS//aIf XtW0rxtDa6jLOBFtFvm7H+AC5/uw2cqfHCLt9VGvRYUXNWxxIbW1TpmjJHB4s6Xoa+6p M3hxqno6qXmlF57jdPtEkBGVlNpWuHbLnNxJ71zT7uDn4LCqUNavIsGlX55fyy+nEp9y ZRtNMoSPRw+3iNyXB9l4l/5/XadNwbd/n3ASKw7dIshuiQtzLM0Kttu640XpULWx7t7+ 2Ar5PzQvTatAC7Wb9pLvch5jEArNj5SCsbON3wq5yJY6uOsBwv556zxPTyvyVAk4QO9a taOA== X-Gm-Message-State: AOJu0Yz7Vm8RJMj4N21GY+bhRY60BERBjdzDJeBPkhREUf3aMd40ur2K zy9nWdQChxVy91tkpR+FSkKHTeVx2qWcGDkr2f8Y6AOWw0LxyvVXbpLVbXcfMSGkX2uu0J3xAVA nKz4UpCo= X-Gm-Gg: Acq92OEXxF8xB+sUzBIeBqDPzsaTSpAuGIX3F97BFF3SayDbnWk814w1DFu8OdfX+OT g5bdwC36hXLsgevfjrhX/+iFH8sLwu3uFLlP2S9DwpNoRHR0xtcZtO167ae70/rq3Du4JlKPNO0 t84oYJuU7IebQ5POlobrEcM1LIZ0j9dQsMfHpux3WqifRWGDGUwPBbdnmq62BY88+1+KxNJVP8I NpEeETd8B2848TmsufFhAo4eV7+Rbfa8jvmbth6Z3haedX7YJaFJeRjsktiCHZKeUoxpkzzBlIP bzKDZdrgx6LNjYZFVTRxbLqObL/kNYaIAo0MKd5fup1IpDkLumZkakYMusP55JwaxK6lYNFH/vl zBe8+EeWXMsQzxNJaPxEdm4wi2XuGjQvDPNzZc32iPmUdajXlqiEf90/h8i55oTZDriO4+ZLz9a 2TOd0AIwHPS+t8tqr5rJ/Z7t691RZd5GisXttBzvc= X-Received: by 2002:a05:6a20:3d1d:b0:3b1:6649:e524 with SMTP id adf61e73a8af0-3b22ebdbb2fmr29041730637.33.1779301552395; Wed, 20 May 2026 11:25:52 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 51/64] target/arm: Implement FDOT (FP8 to FP32) for AdvSIMD Date: Wed, 20 May 2026 11:22:00 -0700 Message-ID: <20260520182213.872945-52-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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::52a; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x52a.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: 1779301970068154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/cpu-features.h | 5 ++++ target/arm/tcg/helper-fp8-defs.h | 3 +++ target/arm/tcg/fp8_helper.c | 39 ++++++++++++++++++++++++++++++++ target/arm/tcg/translate-a64.c | 30 ++++++++++++++++++++++++ target/arm/tcg/a64.decode | 4 ++++ 5 files changed, 81 insertions(+) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index c0b646415c..fbce0386ef 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1600,6 +1600,11 @@ static inline bool isar_feature_aa64_f8fma(const ARM= ISARegisters *id) return FIELD_EX64_IDREG(id, ID_AA64FPFR0, F8FMA); } =20 +static inline bool isar_feature_aa64_f8dp4(const ARMISARegisters *id) +{ + return FIELD_EX64_IDREG(id, ID_AA64FPFR0, F8DP4); +} + /* * Combinations of feature tests, for ease of use with TRANS_FEAT. */ diff --git a/target/arm/tcg/helper-fp8-defs.h b/target/arm/tcg/helper-fp8-d= efs.h index 802a3b430e..ee6f2e9236 100644 --- a/target/arm/tcg/helper-fp8-defs.h +++ b/target/arm/tcg/helper-fp8-defs.h @@ -29,3 +29,6 @@ DEF_HELPER_FLAGS_5(gvec_fmla_idx_hb, TCG_CALL_NO_RWG, voi= d, ptr, ptr, ptr, env, =20 DEF_HELPER_FLAGS_5(gvec_fmla_sb, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, env= , i32) DEF_HELPER_FLAGS_5(gvec_fmla_idx_sb, TCG_CALL_NO_RWG, void, ptr, ptr, ptr,= env, i32) + +DEF_HELPER_FLAGS_5(gvec_fdot_sb, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, env= , i32) +DEF_HELPER_FLAGS_5(gvec_fdot_idx_sb, TCG_CALL_NO_RWG, void, ptr, ptr, ptr,= env, i32) diff --git a/target/arm/tcg/fp8_helper.c b/target/arm/tcg/fp8_helper.c index a6e989f6b3..c9659eac35 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -729,3 +729,42 @@ void HELPER(gvec_fmla_idx_sb)(void *vd, void *vn, void= *vm, =20 clear_tail(vd, oprsz, simd_maxsz(desc)); } + +void HELPER(gvec_fdot_sb)(void *vd, void *vn, void *vm, + CPUARMState *env, uint32_t desc) +{ + FP8MulContext ctx =3D fp8_mul_start(env, -1); + size_t oprsz =3D simd_oprsz(desc); + size_t nelem =3D oprsz / 4; + uint32_t *n =3D vn; + uint32_t *m =3D vm; + float32 *d =3D vd; + + for (size_t i =3D 0; i < nelem; i++) { + d[i] =3D f8dotadd_s(n[i], m[i], 4, d[i], &ctx); + } + + clear_tail(vd, oprsz, simd_maxsz(desc)); +} + +void HELPER(gvec_fdot_idx_sb)(void *vd, void *vn, void *vm, + CPUARMState *env, uint32_t desc) +{ + FP8MulContext ctx =3D fp8_mul_start(env, -1); + size_t idx =3D simd_data(desc); + size_t oprsz =3D simd_oprsz(desc); + size_t nelem =3D oprsz / 4; + uint32_t *n =3D vn; + uint32_t *m =3D vm; + float32 *d =3D vd; + size_t i =3D 0; + + do { + uint32_t e1 =3D m[i + H4(idx)]; + do { + d[i] =3D f8dotadd_s(n[i], e1, 4, d[i], &ctx); + } while (++i % 4 !=3D 0); + } while (i < nelem); + + clear_tail(vd, oprsz, simd_maxsz(desc)); +} diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index 946c16d439..8ea63e94fe 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -7403,6 +7403,36 @@ TRANS_FEAT(FMLAL_hb_vi, aa64_f8fma, do_fmla_fp8, a, = gen_helper_gvec_fmla_idx_hb) TRANS_FEAT(FMLALL_sb_v, aa64_f8fma, do_fmla_fp8, a, gen_helper_gvec_fmla_s= b) TRANS_FEAT(FMLALL_sb_vi, aa64_f8fma, do_fmla_fp8, a, gen_helper_gvec_fmla_= idx_sb) =20 +static bool do_f8dot(DisasContext *s, arg_qrrr_e *a, + gen_helper_gvec_3_ptr *fn) +{ + if (fpmr_access_check(s) && fp_access_check(s)) { + tcg_gen_gvec_3_ptr(vec_full_reg_offset(s, a->rd), + vec_full_reg_offset(s, a->rn), + vec_full_reg_offset(s, a->rm), + tcg_env, a->q ? 16 : 8, vec_full_reg_size(s), + 0, fn); + } + return true; +} + +TRANS_FEAT(FDOT_sb_v, aa64_f8dp4, do_f8dot, a, gen_helper_gvec_fdot_sb) + +static bool do_f8dot_idx(DisasContext *s, arg_qrrx_e *a, + gen_helper_gvec_3_ptr *fn) +{ + if (fpmr_access_check(s) && fp_access_check(s)) { + tcg_gen_gvec_3_ptr(vec_full_reg_offset(s, a->rd), + vec_full_reg_offset(s, a->rn), + vec_full_reg_offset(s, a->rm), + tcg_env, a->q ? 16 : 8, vec_full_reg_size(s), + a->idx, fn); + } + return true; +} + +TRANS_FEAT(FDOT_sb_vi, aa64_f8dp4, do_f8dot_idx, a, gen_helper_gvec_fdot_i= dx_sb) + static bool do_int3_vector_idx(DisasContext *s, arg_qrrx_e *a, gen_helper_gvec_3 * const fns[2]) { diff --git a/target/arm/tcg/a64.decode b/target/arm/tcg/a64.decode index ef6d7dfeaa..d78a3d5486 100644 --- a/target/arm/tcg/a64.decode +++ b/target/arm/tcg/a64.decode @@ -1213,6 +1213,8 @@ FMLAL_hb_v 0 idxn:1 00 1110 110 rm:5 11111 1 rn:= 5 rd:5 \ FMLALL_sb_v 0.00 1110 0.0 rm:5 110001 rn:5 rd:5 \ &rxx idxm=3D0 idxn=3D%fmlall_idxn =20 +FDOT_sb_v 0.00 1110 000 ..... 11111 1 ..... ..... @qrrr_s + ### Advanced SIMD scalar x indexed element =20 FMUL_si 0101 1111 00 .. .... 1001 . 0 ..... ..... @rrx_h @@ -1337,6 +1339,8 @@ FMLAL_hb_vi 0 idxn:1 00 1111 11 ... rm:3 0000 . 0= rn:5 rd:5 \ FMLALL_sb_vi 0 . 10 1111 0 . ... rm:3 1000 . 0 rn:5 rd:5 \ &rxx idxm=3D%hlm4 idxn=3D%fmlall_idxn =20 +FDOT_sb_vi 0.00 1111 00 . ..... 0000 . 0 ..... ..... @qrrx_s + # Floating-point conditional select =20 FCSEL 0001 1110 .. 1 rm:5 cond:4 11 rn:5 rd:5 esz=3D%esz_hsd --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301684; cv=none; d=zohomail.com; s=zohoarc; b=Y7kBWaJiuCtaG/vCxiaspC5rLQ15Y/+AzjuS+Tq7d52DZI+w+1VY4SUZ6IjsOtacMSwz1CoG0XeJ4Ac5UCtbgqkFXpgyXMH5F+TQYsFpOVnUoX7cg7yM/TEG4qRc6C/nzi7xjzm8If/o1jGql1Dbd+kOOr+rLQOkoGbHjRxfsIk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301684; 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=7JulMb7JBgH2EgAoTHRzYHxSimKKsWGbaNst37ZkVAE=; b=YQUBBCN66SZ+h4hTDyIdbyhzPVAYaujq8BQHNnKAeZpzCRQFp6W2SzkC7ZAtFcxcJmj3nHDEG9TndymJVhH/B7bD+up4t6P+pGuMlmS7Wj3vn5FGft0bwoj3FXRSb8PCXP2I0tr8VZSMJR0N7yDEl6LlJ9rzAgJVBstldE+NJbo= 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 1779301684512391.126819733856; Wed, 20 May 2026 11:28:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPld1-0005bV-NZ; Wed, 20 May 2026 14:26:47 -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 1wPlcF-0004IG-7U for qemu-devel@nongnu.org; Wed, 20 May 2026 14:26:02 -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 1wPlcB-00026k-2d for qemu-devel@nongnu.org; Wed, 20 May 2026 14:25:58 -0400 Received: by mail-pg1-x52c.google.com with SMTP id 41be03b00d2f7-c82de129a40so2314982a12.1 for ; Wed, 20 May 2026 11:25:54 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c0605ddsm217413925ad.32.2026.05.20.11.25.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:25:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301553; x=1779906353; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=7JulMb7JBgH2EgAoTHRzYHxSimKKsWGbaNst37ZkVAE=; b=yW0K4hPn8ys9xEp0KmsYzZGj3AQGOuE4W5X1FXNkLxEwrOH5F5uzGwT/CCGL/DDjvL 44Tw6XviJjhZFOhRzdqX/1mvhvhuxkRFoIvRlOzyXsDaVAyxEAwjPChXPVM+5u+mZ15T f57o91s770zk64z5umJWEn0bzmr6vnnb+vMhM9Kgw5aElxqRWonLDmmd3/XoliN3IV9F oWaWmvtLckPpcla0z1+6joMIoqhPrSU931C1GficLQexcg7N8vwtO3/XgM/0sYaVreTh N6LGrsT0vk55sqEf4A71YbGRKF69X5TZNGJAKj1CpqHHmhTRDSO/+ZQ/ixfsaJ3BezAM nKVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301553; x=1779906353; 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; bh=7JulMb7JBgH2EgAoTHRzYHxSimKKsWGbaNst37ZkVAE=; b=IrcXuIZ83t4CbKKqU68RGLrnf2Fb+ZmE9NhWSTn64AzlJuGYt+qoJq+1XJOFqSR2ni dhqPNlMN3wr+rdcoB/Sog+oIZQdTvVZyXJ1/19Ha0PIxje+szJp9iB4TpURzKkXMFrug dMZDYrfjYohBbklJeY2hcQ8xyoMJIqltBluibPio9m/RMoaA15hmHFHK79NMRAV/WMxA 7Z9K5QoPR+XaxTny0u2HDfjWqGwHq2NrXj6OaGvcMmTDtk40SVahE8ZABRK3vYkB9jAY wY4/dk2okPVEC+7oM4aeaSaVmx5JAbYOtLHT1ZTbOQNZbge9JlIjneJSKhB63vqpfU/1 f34w== X-Gm-Message-State: AOJu0YzDxcvKZ4mrWiZg82qwQ3oKvQuBYqX3/GmGmPKs6zU5rWgQBQV6 3FZjpVxJLkNX89YXyknP+h0PyRcg9S5Q5/Q848Cn8Vn9IM1BguZM6Bv+66AwR7dNVwJIiTzaJMQ 15ZMJvIE= X-Gm-Gg: Acq92OE3nmnYMqJcgFlmKmRclbuPoOYR+B+UEiNLJwGqVOjAsIP3yAX7qi4H5MEhSkF 93RYnctooO9zjhxyk8Pc2KnYVvGm0U64hrknMWoTNAlfn/ozkLkTn7X5rxP2Q121G335ICJY6N8 17kHXACrqZCnqFlMyjl0GWqyCDYhCwPrO0TcyX+zanAPCzpSgfpaAaF8ECOT7k+2B+wpgjLVnaP DyWwhV5al5PACsfpI9f88+/zJEA9c9MX8hQ5AFE7y46cR/aMCahX/SYI8ZMV69ldO2MsQePCk0T QXeP0CJpxLyVxbXzWBUkrWPgk0wcM85CCnbZUsJVyuJIv+ga3+bndZt4chlnB0jA8z7Lxw0lZiI fh3B991RuyKWtjBdJ4n5cAbTxWOTm5f0qaKtWWHX8CAwayLBHXrQJsT8Ciq0DlokuqR2gPvbqPm U59LESJSR0t3HxQOp7+baEXdXLNuzM X-Received: by 2002:a17:903:3843:b0:2ba:b250:c015 with SMTP id d9443c01a7336-2bd7e8f0b6bmr243849705ad.14.1779301553002; Wed, 20 May 2026 11:25:53 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 52/64] target/arm: Implement FDOT (FP8 to FP32) for SVE Date: Wed, 20 May 2026 11:22:01 -0700 Message-ID: <20260520182213.872945-53-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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=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: 1779301685026158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/cpu-features.h | 5 +++++ target/arm/tcg/translate-sve.c | 35 ++++++++++++++++++++++++++++++++++ target/arm/tcg/sve.decode | 4 ++++ 3 files changed, 44 insertions(+) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index fbce0386ef..17d6acc14d 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1550,6 +1550,11 @@ static inline bool isar_feature_aa64_ssve_f8fma(cons= t ARMISARegisters *id) return FIELD_EX64_IDREG(id, ID_AA64SMFR0, SF8FMA); } =20 +static inline bool isar_feature_aa64_ssve_f8dp4(const ARMISARegisters *id) +{ + return FIELD_EX64_IDREG(id, ID_AA64SMFR0, SF8DP4); +} + static inline bool isar_feature_aa64_sme_b16b16(const ARMISARegisters *id) { return FIELD_EX64_IDREG(id, ID_AA64SMFR0, B16B16); diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index e23ca43f55..88e6148b83 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8372,3 +8372,38 @@ TRANS(FMLAL_idx_hb, do_fmla_fp8, a, gen_helper_gvec_= fmla_idx_hb) =20 TRANS(FMLALL_sb, do_fmla_fp8, a, gen_helper_gvec_fmla_sb) TRANS(FMLALL_idx_sb, do_fmla_fp8, a, gen_helper_gvec_fmla_idx_sb) + +static bool do_f8dp4(DisasContext *s, gen_helper_gvec_3_ptr *fn, + int rd, int rn, int rm, int index) +{ + bool fp8dp4 =3D dc_isar_feature(aa64_f8dp4, s); + bool ssve_fp8dp4 =3D dc_isar_feature(aa64_ssve_f8dp4, s); + bool ok =3D false; + + /* Feature detection and enabling are complex here. */ + if (!(ssve_fp8dp4 || (fp8dp4 && dc_isar_feature(aa64_sve2, s)))) { + return false; + } + if (fpmr_access_check(s)) { + if (fp8dp4) { + s->is_nonstreaming =3D !ssve_fp8dp4; + ok =3D sve_access_check(s); + } else { + ok =3D sme_sm_enabled_check(s); + } + } + + if (ok) { + unsigned vsz =3D vec_full_reg_size(s); + tcg_gen_gvec_3_ptr(vec_full_reg_offset(s, rd), + vec_full_reg_offset(s, rn), + vec_full_reg_offset(s, rm), + tcg_env, vsz, vsz, + index, fn); + } + return true; +} + +TRANS(FDOT_sb, do_f8dp4, gen_helper_gvec_fdot_sb, a->rd, a->rn, a->rm, 0) +TRANS(FDOT_idx_sb, do_f8dp4, gen_helper_gvec_fdot_idx_sb, + a->rd, a->rn, a->rm, a->index) diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index 06bbd7fa63..c49e992f10 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -1874,6 +1874,8 @@ FMLALL_sb 01100100 00 1 rm:5 10 idxn:2 10 rn:5= rd:5 &rxx idxm=3D0 FDOT_zzzz 01100100 00 1 ..... 10 0 00 0 ..... ..... @rda_rn_rm_ex e= sz=3D2 BFDOT_zzzz 01100100 01 1 ..... 10 0 00 0 ..... ..... @rda_rn_rm_ex e= sz=3D2 =20 +FDOT_sb 01100100 01 1 ..... 10 0 00 1 ..... ..... @rda_rn_rm_ex e= sz=3D2 + ### SVE2 floating-point multiply-add long (indexed) =20 FMLALB_zzxw 01100100 10 1 ..... 0100.0 ..... ..... @rrxr_3a esz=3D2 @@ -1897,6 +1899,8 @@ FMLALL_idx_sb 01100100 idxn:2 1 .. rm:3 1100 .. rn= :5 rd:5 \ FDOT_zzxz 01100100 00 1 ..... 010000 ..... ..... @rrxr_2 esz=3D2 BFDOT_zzxz 01100100 01 1 ..... 010000 ..... ..... @rrxr_2 esz=3D2 =20 +FDOT_idx_sb 01100100 01 1 ..... 010001 ..... ..... @rrxr_2 esz=3D2 + ### SVE broadcast predicate element =20 &psel esz pd pn pm rv imm --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301772; cv=none; d=zohomail.com; s=zohoarc; b=F91wh302DjViX4lsH/1T8ioDwXA3xw+qF9Z6pd+yBtQd8/zpTZ4CP8rLU8KDLvyHq79ruxfAZrnTetscVyr0SrdF4BXwIb+mTZrDANXcgdPIvj2O3ZbDCN62kKEQYGRSWEZrQIPLgFjCvmHZI+Txae2f35NIveyGYi8Ubp2HOew= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301772; 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=WfvM4tnhG/6BVEOEoQSi0TAhQsUGcLPgZYrpPCn+HNY=; b=J0EnO6TLmmZwwcvKhUW9syNn3E/0opxhZKYu+ln7m00BlfMEWlQaUx1XEcAJRMAx3BuAuvl6+RelwfRMygTiy8qi7r6Xy9Azu0CrZaBx9TNBssH4fqUdXOfTI+K0g89u7NeyOgD0S1XxCFd+xSy3VTMCNv9kPjB+uiZeUnKyRXw= 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 1779301772279781.3531726901494; Wed, 20 May 2026 11:29:32 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPldR-0006d3-2v; Wed, 20 May 2026 14:27:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wPlcL-0004JH-4M for qemu-devel@nongnu.org; Wed, 20 May 2026 14:26:06 -0400 Received: from mail-pl1-x635.google.com ([2607:f8b0:4864:20::635]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlcC-00026s-UT for qemu-devel@nongnu.org; Wed, 20 May 2026 14:26:01 -0400 Received: by mail-pl1-x635.google.com with SMTP id d9443c01a7336-2ba3e3c4f87so52762505ad.3 for ; Wed, 20 May 2026 11:25:54 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c0605ddsm217413925ad.32.2026.05.20.11.25.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:25:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301554; x=1779906354; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=WfvM4tnhG/6BVEOEoQSi0TAhQsUGcLPgZYrpPCn+HNY=; b=zNTtTz0ZxF0z5TiZy0NLJS+5gRq/bWnGg/GmNQPxSMb1+5+LXGYnyd/l/6dFCVIJ7x kSwzD+ChZrPMvPV6bImhE7W5wSPVM5vByiLmUvO22aocEXzFTw0EO6G8CoPaXxVsxdL3 iSJxANi351M/YNvNdOZspNfS+/RVH2v1H09/tY5y1X2JWUrBC/YHvjc0TeFn8YzWx+Hp bgEtmwwq0KqLRtuGa0sS4raTM6D3yGan1NdPc/Cd3vL/ZVDjsOatnxpZbbTkAHPp0RSv 0az/Sw/9IADTltnM2EPcIjCCMJcqys2xW1reBpU5OpGqpzC6ZVMeeshdMFpiLNiWDKC3 blsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301554; x=1779906354; 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; bh=WfvM4tnhG/6BVEOEoQSi0TAhQsUGcLPgZYrpPCn+HNY=; b=F4uiTmWmfmowU9Tu4ouMlNU/pbhjFscOu0iYmQkn7oXD+ewbqobfDJ8ZlWIHLXUTs0 /c5Fx/7gam5zvpfGLfkzFMopthW8ZR3yX7JWv2lGP2iRFICMwJcvN1VQB40+Cb+O3pob /j7QN7Kw7Ib+Ykybw8jSFepeaG8LAFKk3MGg3fzVhrEmOrH2Po9Ifur9qtRfwqx9sJ7E m53CV94ETrzdNIS4TrEcb+7wN2p389yaHQXiu3O0OduTHpxq4T2ORkzA5649Mtd8zvUY /v3eRHGgb0coZKwlYVBixFWe0HG+/UGNX8U5d8W+ChPDdWmOaTKp6ZsTdYQCyT68ZlZe m2xw== X-Gm-Message-State: AOJu0Yxy59IEBvoySumAuyd2KSMHIJSEl7GvJe/tpp3nRSD3Ur6gZJ9Y 9AkoGmuR06lxBl2a7GKX85By3KMotAUxYdsFdyBzf0UKbC4znAqGRPGya7fNNnfMIFyRFLHCMCJ lYU91vXo= X-Gm-Gg: Acq92OENfmTxoYxukeybxDNMNR1SmuuQZkKyT0Vuo2LTj13kQlo0nYvJJfbPCN6ogB4 HVwHK2XdKDW9amILapszBj6o2idWsWLhfoEFBc3NhT0YIVumNyNYH2MrGkjVIR6gZZydDlcEixG vTtffK78ZuO0IbtKm6r5yqZfpuKnvvaoXICC+Va2znIBEdszoDiG7MI7ryK3/LiRvoYoiBcReE2 VOHjMxGDhIsDq65+AuNaDCukCsyui1n3p4ZnVSQWR8+tV7UDDHNjNQBSmao6KAh2uW8ks/1jqPW QGnADp0xuWP9Ou+a/xKODmwpicjthTc9zvTw5KIq52DLSSQjUZHv+fQUAVOQBxiEo6++UgWO4Pa kbtB7f7DEfpIRfGgcUxkVA7IuYZwy/XnlJ4LPKYhQNtG9rmtWKv+/HTk8ZAuqMXL/ysXgZagy9y lc8j1xGhEXN/m7CXhn2g8//pQzgP9U X-Received: by 2002:a17:902:d501:b0:2bd:412:21fb with SMTP id d9443c01a7336-2bd7e7fa11amr282700025ad.8.1779301553833; Wed, 20 May 2026 11:25:53 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 53/64] target/arm: Enable FEAT_FP8DOT4, FEAT_SSVE_FP8DOT4 for -cpu max Date: Wed, 20 May 2026 11:22:02 -0700 Message-ID: <20260520182213.872945-54-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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::635; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x635.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: 1779301773779158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/cpu64.c | 2 ++ docs/system/arm/emulation.rst | 2 ++ 2 files changed, 4 insertions(+) diff --git a/target/arm/tcg/cpu64.c b/target/arm/tcg/cpu64.c index 93cd7ee1a6..6dec7e045d 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -1377,6 +1377,7 @@ void aarch64_max_tcg_initfn(Object *obj) SET_IDREG(isar, ID_AA64DFR0, t); =20 t =3D GET_IDREG(isar, ID_AA64SMFR0); + t =3D FIELD_DP64(t, ID_AA64SMFR0, SF8DP4, 1); /* FEAT_SSVE_FP8DOT4 */ t =3D FIELD_DP64(t, ID_AA64SMFR0, SF8FMA, 1); /* FEAT_SSVE_FP8FMA */ t =3D FIELD_DP64(t, ID_AA64SMFR0, F32F32, 1); /* FEAT_SME */ t =3D FIELD_DP64(t, ID_AA64SMFR0, BI32I32, 1); /* FEAT_SME2 */ @@ -1396,6 +1397,7 @@ void aarch64_max_tcg_initfn(Object *obj) t =3D GET_IDREG(isar, ID_AA64FPFR0); t =3D FIELD_DP64(t, ID_AA64FPFR0, F8E5M2, 1); /* FEAT_FP8 */ t =3D FIELD_DP64(t, ID_AA64FPFR0, F8E4M3, 1); /* FEAT_FP8 */ + t =3D FIELD_DP64(t, ID_AA64FPFR0, F8DP4, 1); /* FEAT_FP8DOT4 */ t =3D FIELD_DP64(t, ID_AA64FPFR0, F8FMA, 1); /* FEAT_FP8FMA */ t =3D FIELD_DP64(t, ID_AA64FPFR0, F8CVT, 1); /* FEAT_FP8 */ SET_IDREG(isar, ID_AA64FPFR0, t); diff --git a/docs/system/arm/emulation.rst b/docs/system/arm/emulation.rst index a6b48f9c60..bee4e36dc6 100644 --- a/docs/system/arm/emulation.rst +++ b/docs/system/arm/emulation.rst @@ -75,6 +75,7 @@ the following architecture extensions: - FEAT_FP (Floating Point extensions) - FEAT_FP16 (Half-precision floating-point data processing) - FEAT_FP8 (FP8 convert instructions) +- FEAT_FP8DOT4 (FP8 4-way dot product to single-precision instructions) - FEAT_FP8FMA (FP8 multiply-accumulate to half-precision and single-precis= ion instructions) - FEAT_FPAC (Faulting on AUT* instructions) - FEAT_FPACCOMBINE (Faulting on combined pointer authentication instructio= ns) @@ -160,6 +161,7 @@ the following architecture extensions: - FEAT_SME_F64F64 (Double-precision floating-point outer product instructi= ons) - FEAT_SME_I16I64 (16-bit to 64-bit integer widening outer product instruc= tions) - FEAT_SME_LUTv2 (Lookup table instructions with 4-bit indices and 8-bit e= lements) +- FEAT_SSVE_FP8DOT4 (SVE2 FP8 4-way dot product to single-precision instru= ctions in Streaming SVE mode) - 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) --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301726; cv=none; d=zohomail.com; s=zohoarc; b=TKcFfjQe7YXI1vGJ4bWNwwxrvsOxopHt/KGFqvd6X3pWv0p/HnTC7HDNc0XI4P+WA0dwLTMSruloIH35Z4kUcLDqypqLQVmo5b46q7LnUBn3foUei1YT3leAW8lXiEMZXFpdKTPieVR4fujW30Hwji2ubA7b+0ui6rHMuRhiWAI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301726; 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=3Je7e8pgJKXYUieZIKfMn+IBPhyKd+xNmc/WAZ90/Qs=; b=gztuMQ4FOrktUv6YQvpWEbMNbZMSTONjgGl0uJdS+DZnOhfIokN5EH59MXxh8BlpfpJgerznMRM1Xl67CgkGZCUPlrjv98kjmpcWDt0U02RgKZCndp1W38GMYTzrQU2IIFP8dzH6QWyjznWpiMs/Np+HzbbOJvuGt6BmVIgkHN4= 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 1779301725946498.6657424795742; Wed, 20 May 2026 11:28:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPleJ-0007tQ-Qv; Wed, 20 May 2026 14:28:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wPlcL-0004JI-4n for qemu-devel@nongnu.org; Wed, 20 May 2026 14:26:06 -0400 Received: from mail-pl1-x62c.google.com ([2607:f8b0:4864:20::62c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlcC-00027i-Uo for qemu-devel@nongnu.org; Wed, 20 May 2026 14:26:01 -0400 Received: by mail-pl1-x62c.google.com with SMTP id d9443c01a7336-2bc85eda6b6so25299875ad.1 for ; Wed, 20 May 2026 11:25:55 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c0605ddsm217413925ad.32.2026.05.20.11.25.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:25:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301555; x=1779906355; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=3Je7e8pgJKXYUieZIKfMn+IBPhyKd+xNmc/WAZ90/Qs=; b=XwrS9SC+pEhGzFt5tDhUWUlbTZVZj53rKGan1FJG51aU7wVjpbai3cx6+UoQVatjB6 QmK+6cEeIu1eVseJKidN+q0I+je5w75+zBSelLPnlPJymtLIjtHMu/5uZhQbj5frV+4k ROTeFXUooRQbNyKzxOo++amhEJz8n2VKD9Qz0t1stjOXebh+hEL7RBsgbJBQklsdj/Nm I84fmgKC10ssvL56/A5dhRgKeCdrex3NcebqkK9ocvOTgiMdb9tQL6YvvSv9gCWV5vcp 2cK6LSS6p4tRdJmuNQ4EmopzqdxuGfH327xMjXqYp0EqK7PSzohhUo0iAqXg279ZlaQ2 4aOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301555; x=1779906355; 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; bh=3Je7e8pgJKXYUieZIKfMn+IBPhyKd+xNmc/WAZ90/Qs=; b=d61l+itfl85dhoVws8FdTmBl6xS2Ok9PLDAY3NWUc0BjLd0mE1Aej1Va2NZXFUwRew kVS0bUeAVI1kGQ5aWDfojiPXj5se4PmWXqTG3W/mfxxzWT05H3ravym/4l87pk4Nl3od XyLXqqbUyEP7LEO2zK2IWq+iyQUzUV/Lqp4UgKh/dXU6u6NnAhyogMr+OpkSW9CfCTnM +gBD3WZcYKgG1d2FGOBRlxWZtnlsybndd+W8tLYdelHGBne/791aaOk6bP92tFKvUqhZ l31c3rw86trGrPR0ELy4OvVFBklbSc5cOhrYpeavYxbGCw3NMp+d+NOAHIYtHn7buNmp QP9g== X-Gm-Message-State: AOJu0YxnJVkjf5vi9DG8k+bjj2RSWjAikhqufNAYPtC5YFY9sC82Lenb VxjMN/cAzrbMONcwYJE7+B3LxHgaQjCQV3uALfwMZ+QiK4IVANn2lQZj36bel4Z3kVnwdHtl8zU bsgQ/CbE= X-Gm-Gg: Acq92OHn0c4oOE+Jrw8n8q6l6s25GM+7c2cHyalF8ezhnYVu9eKuigfbnXuwwnzSoCf 4ljQhP5J8gB2iv/11kAhAL6nhzTJB75TYAVmkZ3Nknhk7S+sXhkQdaDkld6PLbYRp/A612iC5Tv 9papwX/ocb1hJ/Vy6GCGPRw06gIvy/NW1/z5OrVMAJAL4UbT/q3D8TZSFhRrnmYMQ8aqCFkqGFJ hxzwMX3l9CNg1fS8Qfq0jxSpjkaXhx5q9i7SAb8W+8DXF4dcM9a6waxu1EEHSRu02HotHc1wEBx j+8sQK4dvWqr9q+mvUBxo4Wv+vqBe4aavb1QaGeEZ3yQetFgpycTnDN/QTdl740YMS08Jhhufjy TjghmZcNUrn/Tx5Ug10bQYQCwDVxfaBmVQr3+duPgDu8YmTJYPoGzFbRBPewDNmM9xiQbEurkDk zpUUH1wQ4x0Pj0wzjKiNkryGbreTfh X-Received: by 2002:a17:903:2ec5:b0:2bd:9061:d544 with SMTP id d9443c01a7336-2bd9061d6bbmr259155515ad.34.1779301554666; Wed, 20 May 2026 11:25:54 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 54/64] target/arm: Implement FDOT (FP8 to FP16) for AdvSIMD Date: Wed, 20 May 2026 11:22:03 -0700 Message-ID: <20260520182213.872945-55-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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::62c; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62c.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: 1779301727392158501 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/cpu-features.h | 5 ++++ target/arm/tcg/helper-fp8-defs.h | 3 +++ target/arm/tcg/fp8_helper.c | 39 ++++++++++++++++++++++++++++++++ target/arm/tcg/translate-a64.c | 2 ++ target/arm/tcg/a64.decode | 2 ++ 5 files changed, 51 insertions(+) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 17d6acc14d..7bedc293fd 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1610,6 +1610,11 @@ static inline bool isar_feature_aa64_f8dp4(const ARM= ISARegisters *id) return FIELD_EX64_IDREG(id, ID_AA64FPFR0, F8DP4); } =20 +static inline bool isar_feature_aa64_f8dp2(const ARMISARegisters *id) +{ + return FIELD_EX64_IDREG(id, ID_AA64FPFR0, F8DP2); +} + /* * Combinations of feature tests, for ease of use with TRANS_FEAT. */ diff --git a/target/arm/tcg/helper-fp8-defs.h b/target/arm/tcg/helper-fp8-d= efs.h index ee6f2e9236..5995d77577 100644 --- a/target/arm/tcg/helper-fp8-defs.h +++ b/target/arm/tcg/helper-fp8-defs.h @@ -32,3 +32,6 @@ DEF_HELPER_FLAGS_5(gvec_fmla_idx_sb, TCG_CALL_NO_RWG, voi= d, ptr, ptr, ptr, env, =20 DEF_HELPER_FLAGS_5(gvec_fdot_sb, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, env= , i32) DEF_HELPER_FLAGS_5(gvec_fdot_idx_sb, TCG_CALL_NO_RWG, void, ptr, ptr, ptr,= env, i32) + +DEF_HELPER_FLAGS_5(gvec_fdot_hb, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, env= , i32) +DEF_HELPER_FLAGS_5(gvec_fdot_idx_hb, TCG_CALL_NO_RWG, void, ptr, ptr, ptr,= env, i32) diff --git a/target/arm/tcg/fp8_helper.c b/target/arm/tcg/fp8_helper.c index c9659eac35..d3bbea1735 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -768,3 +768,42 @@ void HELPER(gvec_fdot_idx_sb)(void *vd, void *vn, void= *vm, =20 clear_tail(vd, oprsz, simd_maxsz(desc)); } + +void HELPER(gvec_fdot_hb)(void *vd, void *vn, void *vm, + CPUARMState *env, uint32_t desc) +{ + FP8MulContext ctx =3D fp8_mul_start(env, 0xf); + size_t oprsz =3D simd_oprsz(desc); + size_t nelem =3D oprsz / 2; + uint16_t *n =3D vn; + uint16_t *m =3D vm; + float16 *d =3D vd; + + for (size_t i =3D 0; i < nelem; i++) { + d[i] =3D f8dotadd_h(n[i], m[i], 2, d[i], &ctx); + } + + clear_tail(vd, oprsz, simd_maxsz(desc)); +} + +void HELPER(gvec_fdot_idx_hb)(void *vd, void *vn, void *vm, + CPUARMState *env, uint32_t desc) +{ + FP8MulContext ctx =3D fp8_mul_start(env, 0xf); + size_t idx =3D simd_data(desc); + size_t oprsz =3D simd_oprsz(desc); + size_t nelem =3D oprsz / 2; + uint16_t *n =3D vn; + uint16_t *m =3D vm; + float16 *d =3D vd; + size_t i =3D 0; + + do { + uint16_t e1 =3D m[i + H2(idx)]; + do { + d[i] =3D f8dotadd_h(n[i], e1, 2, d[i], &ctx); + } while (++i % 8 !=3D 0); + } while (i < nelem); + + clear_tail(vd, oprsz, simd_maxsz(desc)); +} diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index 8ea63e94fe..c5ea6b27a9 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -7417,6 +7417,7 @@ static bool do_f8dot(DisasContext *s, arg_qrrr_e *a, } =20 TRANS_FEAT(FDOT_sb_v, aa64_f8dp4, do_f8dot, a, gen_helper_gvec_fdot_sb) +TRANS_FEAT(FDOT_hb_v, aa64_f8dp2, do_f8dot, a, gen_helper_gvec_fdot_hb) =20 static bool do_f8dot_idx(DisasContext *s, arg_qrrx_e *a, gen_helper_gvec_3_ptr *fn) @@ -7432,6 +7433,7 @@ static bool do_f8dot_idx(DisasContext *s, arg_qrrx_e = *a, } =20 TRANS_FEAT(FDOT_sb_vi, aa64_f8dp4, do_f8dot_idx, a, gen_helper_gvec_fdot_i= dx_sb) +TRANS_FEAT(FDOT_hb_vi, aa64_f8dp2, do_f8dot_idx, a, gen_helper_gvec_fdot_i= dx_hb) =20 static bool do_int3_vector_idx(DisasContext *s, arg_qrrx_e *a, gen_helper_gvec_3 * const fns[2]) diff --git a/target/arm/tcg/a64.decode b/target/arm/tcg/a64.decode index d78a3d5486..d1254355b6 100644 --- a/target/arm/tcg/a64.decode +++ b/target/arm/tcg/a64.decode @@ -1214,6 +1214,7 @@ FMLALL_sb_v 0.00 1110 0.0 rm:5 110001 rn:5 rd:5 \ &rxx idxm=3D0 idxn=3D%fmlall_idxn =20 FDOT_sb_v 0.00 1110 000 ..... 11111 1 ..... ..... @qrrr_s +FDOT_hb_v 0.00 1110 010 ..... 11111 1 ..... ..... @qrrr_h =20 ### Advanced SIMD scalar x indexed element =20 @@ -1340,6 +1341,7 @@ FMLALL_sb_vi 0 . 10 1111 0 . ... rm:3 1000 . 0 rn:= 5 rd:5 \ &rxx idxm=3D%hlm4 idxn=3D%fmlall_idxn =20 FDOT_sb_vi 0.00 1111 00 . ..... 0000 . 0 ..... ..... @qrrx_s +FDOT_hb_vi 0.00 1111 01 .. .... 0000 . 0 ..... ..... @qrrx_h =20 # Floating-point conditional select =20 --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301909; cv=none; d=zohomail.com; s=zohoarc; b=Qj8/O8oeSuPjmK6vRhsTL2aC75ITw0Kz1x9NjD5aup8h6szCurFKPJ5pJUJJRdZelzJRkSbN8CEvES9NzYTtPq80JIu7jQwjhLmpx/T/lPqcTArUrJh59uxFt4AJjYMx+1KaDOEIR1qZzju1cEeXlH67eLhqClTilwxDefThM3s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301909; 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=sODePEuBtD1IMu2N8xv9dK23f4fUAur2uaNFWSg4sSI=; b=goy43X78TiF1oOv8Zyd+pzntmIXXUTuuHGBexc3MsiutuVxFjvljls2xBga62FBjwCOqMMcNltjGSJ0cA/hx7XdoFSbPKn0QBpA7ZnSEzoAguC+1WK9VFejqwjt8C8Rh4EW+UtgKOYdA7SyrkOD3qgmtJSDgaSarRGy4JD1weQw= 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 1779301909470834.5829847499787; Wed, 20 May 2026 11:31:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPldO-0006Y8-Ns; Wed, 20 May 2026 14:27:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wPlcN-0004Ju-51 for qemu-devel@nongnu.org; Wed, 20 May 2026 14:26:08 -0400 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlcE-00027x-RL for qemu-devel@nongnu.org; Wed, 20 May 2026 14:26:05 -0400 Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-2ba21d32776so37559355ad.2 for ; Wed, 20 May 2026 11:25:56 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c0605ddsm217413925ad.32.2026.05.20.11.25.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:25:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301556; x=1779906356; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=sODePEuBtD1IMu2N8xv9dK23f4fUAur2uaNFWSg4sSI=; b=S+Fny22ce5V7BZ2gWjIOywMQvz9VovK9SUDVovvHO5TmwoRlhR2pRlLFSOBemQefSQ sYhAeyZ2C3eclWZP0aa8PzPa6e+VJYx9xajsNODoMonRE/LzDHehTG0NxALFN1+kgMFJ gtREoQw0yq4HcwLMbGt2SHoA7lE4SwbEedE+RH540DUtjl5qCq0MSbORvESDX9Cr8Sur XL9PAP6WUZ5SqxFgIccp3t4cEmLQOEJ5ngZZ+dOwB+WGtIFayozsX/RdOKUEIfjBXsDn RYIJ9kH4beE3mfgwQMC7GNCRYmkhsXKnPXPIl/uR5gn6+MadDPoVoLL28jyJxD3/9GE1 Bnyw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301556; x=1779906356; 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; bh=sODePEuBtD1IMu2N8xv9dK23f4fUAur2uaNFWSg4sSI=; b=EdxVsNx4Oz8nmXALaubpj13PX3+WpFl/3+oAtrRDqMGTkLEU/+Kh6ZRSPYaJUTZybh KnmzTj+mLfp+mu6hGBHLMXVtcyfggfx/cQItBQ+PhXVeWG+H4pwakaur644RUxzZEVIs 0Cclp6nxGz54KEb1mXl3uOsg4AeSuO8c1zmSK5ea1h+7y/8UvsbZFxfCrLJM0qGn50Fk F/acMrMqZU/wjbVbf90EXjxSh/xzJKVMR3S2s9Q9Aq9QvFnaaHHGQiBKkUngBG5eSb/g HFOaiH9oN8Wkgvicf8eVOlFJG+smZM+LRCdAA3KEBNyArxyqkrQl/5Rwi5ffLlkr+T1N t5Bw== X-Gm-Message-State: AOJu0Yy0yAR6LObzNgUrYqrVUnzM54IC6NeEligKjgbg2MzLgfaO4dvB zUMV2r0sgs20+tNW35Uk4Fu4ENLWHMqlCSIlU1lMvypVsoF40aGusJPFBNWPgxyzI2tTCe2h254 ducCzUao= X-Gm-Gg: Acq92OFObZI4SRNmtL2GJaWsgUEINUGdCWpEnkteFee6QvqMUB8WoebVyP4pc2LLOV+ SRQCAHydJcffvxseJz7QQiSm1Axk5tcq5Yd7jr555LJs0LM23hYMxB01a6uSRDTFjIRKzAK1YNB Jnu0CgoT34g0jlCqW/pTzH4Vgu3tDpQi44Jrl4xSEMpjumaoMBOxneqzhfS3dfEHURiqWtC3LWL 752B1kAlf0pY8tb6xFMJd9+8Dnz4Zr1SvdLWqP/1oW+7v9KQKI3EgVPmbhscKED18fDyTxjemXc fY7bwPsCKM1XxOsYqx14kzJoTvPd5ZOaLXflokIRmeH8c1rmLCi3KHgqtPEHdsGBpgdHgpJE5wY JHP2CZj6BWfFStETR5wTNvcEganZIE0gMXDjiwX7lcT6EAgaKeZrIrskPwIx3pSnA92lvhkOL8y INet0+CqJYHrfNo9GedaGtIGY34gEa X-Received: by 2002:a17:903:46c4:b0:2b9:e82f:bfef with SMTP id d9443c01a7336-2bd7e88f2d7mr264258505ad.21.1779301555457; Wed, 20 May 2026 11:25:55 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 55/64] target/arm: Implement FDOT (FP8 to FP16) for SVE Date: Wed, 20 May 2026 11:22:04 -0700 Message-ID: <20260520182213.872945-56-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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::629; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x629.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: 1779301910470158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/cpu-features.h | 5 +++++ target/arm/tcg/translate-sve.c | 35 ++++++++++++++++++++++++++++++++++ target/arm/tcg/sve.decode | 2 ++ 3 files changed, 42 insertions(+) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 7bedc293fd..90098c3cbe 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1555,6 +1555,11 @@ static inline bool isar_feature_aa64_ssve_f8dp4(cons= t ARMISARegisters *id) return FIELD_EX64_IDREG(id, ID_AA64SMFR0, SF8DP4); } =20 +static inline bool isar_feature_aa64_ssve_f8dp2(const ARMISARegisters *id) +{ + return FIELD_EX64_IDREG(id, ID_AA64SMFR0, SF8DP2); +} + static inline bool isar_feature_aa64_sme_b16b16(const ARMISARegisters *id) { return FIELD_EX64_IDREG(id, ID_AA64SMFR0, B16B16); diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 88e6148b83..8d622f9a1c 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8407,3 +8407,38 @@ static bool do_f8dp4(DisasContext *s, gen_helper_gve= c_3_ptr *fn, TRANS(FDOT_sb, do_f8dp4, gen_helper_gvec_fdot_sb, a->rd, a->rn, a->rm, 0) TRANS(FDOT_idx_sb, do_f8dp4, gen_helper_gvec_fdot_idx_sb, a->rd, a->rn, a->rm, a->index) + +static bool do_f8dp2(DisasContext *s, gen_helper_gvec_3_ptr *fn, + int rd, int rn, int rm, int index) +{ + bool fp8dp2 =3D dc_isar_feature(aa64_f8dp2, s); + bool ssve_fp8dp2 =3D dc_isar_feature(aa64_ssve_f8dp2, s); + bool ok =3D false; + + /* Feature detection and enabling are complex here. */ + if (!(ssve_fp8dp2 || (fp8dp2 && dc_isar_feature(aa64_sve2, s)))) { + return false; + } + if (fpmr_access_check(s)) { + if (fp8dp2) { + s->is_nonstreaming =3D !ssve_fp8dp2; + ok =3D sve_access_check(s); + } else { + ok =3D sme_sm_enabled_check(s); + } + } + + if (ok) { + unsigned vsz =3D vec_full_reg_size(s); + tcg_gen_gvec_3_ptr(vec_full_reg_offset(s, rd), + vec_full_reg_offset(s, rn), + vec_full_reg_offset(s, rm), + tcg_env, vsz, vsz, + index, fn); + } + return true; +} + +TRANS(FDOT_hb, do_f8dp2, gen_helper_gvec_fdot_hb, a->rd, a->rn, a->rm, 0) +TRANS(FDOT_idx_hb, do_f8dp2, gen_helper_gvec_fdot_idx_hb, + a->rd, a->rn, a->rm, a->index) diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index c49e992f10..26b3c7697a 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -1875,6 +1875,7 @@ FDOT_zzzz 01100100 00 1 ..... 10 0 00 0 ..... .= .... @rda_rn_rm_ex esz=3D2 BFDOT_zzzz 01100100 01 1 ..... 10 0 00 0 ..... ..... @rda_rn_rm_ex e= sz=3D2 =20 FDOT_sb 01100100 01 1 ..... 10 0 00 1 ..... ..... @rda_rn_rm_ex e= sz=3D2 +FDOT_hb 01100100 00 1 ..... 10 0 00 1 ..... ..... @rda_rn_rm_ex e= sz=3D1 =20 ### SVE2 floating-point multiply-add long (indexed) =20 @@ -1900,6 +1901,7 @@ FDOT_zzxz 01100100 00 1 ..... 010000 ..... ....= . @rrxr_2 esz=3D2 BFDOT_zzxz 01100100 01 1 ..... 010000 ..... ..... @rrxr_2 esz=3D2 =20 FDOT_idx_sb 01100100 01 1 ..... 010001 ..... ..... @rrxr_2 esz=3D2 +FDOT_idx_hb 01100100 00 1 ..... 0100.1 ..... ..... @rrx_3a esz=3D1 =20 ### SVE broadcast predicate element =20 --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779302102; cv=none; d=zohomail.com; s=zohoarc; b=QHEl+PvzGnDVQPY7FDBvTss1O3+F/qFuszAghUav1t4xhKiunQFpK6xZcgVcPT/IYxm2C4nDA5pH0aVZ3QUCehN89RLYMcFUumUjNWwN/waIkol8aUdyEPQo8f3TTlouYxGOwsxSNjsaIqTwtbq0tkjAT7fMNWL2XAhquAwGKos= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779302102; 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=mgEG0/OuigOMwClChXrRoaFDD6e1qpvZV0h5+lZSYqk=; b=MFYiRhj0CfMKRNPmWYVPYLBztVIlRjP7MPnSdF+dI1KNzZTHH01ZQgUj8UFieokH1yhoxKHQq4XarGECZkya4cqxn2eASSua/qouHE1l2IBecPkzLBSk8by8qxLedClaybPGd+4U3vZFPFl+fn7FeolG4nfBjOyPWoQZ7Pe7jH4= 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 177930210290631.391620653592213; Wed, 20 May 2026 11:35:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPldI-0006K8-KE; Wed, 20 May 2026 14:27:06 -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 1wPlcN-0004Jt-50 for qemu-devel@nongnu.org; Wed, 20 May 2026 14:26:08 -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 1wPlcE-000288-Qv for qemu-devel@nongnu.org; Wed, 20 May 2026 14:26:04 -0400 Received: by mail-pg1-x535.google.com with SMTP id 41be03b00d2f7-c8016d642b2so2669966a12.0 for ; Wed, 20 May 2026 11:25:57 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c0605ddsm217413925ad.32.2026.05.20.11.25.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:25:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301556; x=1779906356; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=mgEG0/OuigOMwClChXrRoaFDD6e1qpvZV0h5+lZSYqk=; b=xxeVcUM4mHFMI3R0Ye5OeymKJH/NC/S4I8vCHkFB3hBaGty99H2WkIXErYA02dA0dc Jes6P8U0ExXmv+AmS4L9GywgcakwoEBYco+33CVrqkRY6cvXeL6tOmd1pA4rMGCE6oAk tAO5ALZoOAjh3SD9blSBwLePvoitPEyKQ8tuPD43dTSudO/FmZupf9j2gbq+Aeu5Ncr+ 5MUMJNBS9c7/md26EHLwqrMVrB0ReX/Mv/vkhvFPx40SVcS2E2heYBTTxhxn41P71/g3 wgKWTLARh/6/eumG2hrwTgLc6ic5fA+FiT10DmoJtXG8PXvOUC3+jzpwOUA1ejszV16P L0aA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301556; x=1779906356; 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; bh=mgEG0/OuigOMwClChXrRoaFDD6e1qpvZV0h5+lZSYqk=; b=tQWFnFKyu4yfaAFSlBzovs8TG5Mx1+begoHf0TkBViQ3dg8bdTngCinM8O2YGqWurU rmQrUr0Ai1uddVJx5CNmTB+2P4jB6vfB7Wx6/YBXb9J9ir/9f3igngXtD9jcTNWBFzdy MvuyT8pzzYTblmzxC3QNbndTPwf1ws9W8dHJra7amVNTeQZrnIxYwCnYbMY5TmBOP8iy M5+fZmpPZq7OCk/9JlMj5xCxG6TlxPtpbK0EfOWadI/jPt51x46XPKAoJGpQxdfPakIi l4m92nSRSEYujWrlr45deGsuQJDfdkL+zybhHCWWdoIjNceAKZCnanhRn97yf7uzlNnf S8aw== X-Gm-Message-State: AOJu0YxiSpAG5i04c01U8falfYFdgE4iN9YvvCmrEtijn5niC6V7hXWD tN64FH5cG+HWkH9SS9Sx0JP4iHL7u6lpJO9eX84tpNakB+jbRiKDKL/GmN/4XqnrqqjbAXOwl2v y1HcC7I8= X-Gm-Gg: Acq92OHdiF3rGFsXTIfKJl+1fr4AFoFTQGkHxbnkRptcD8xpQia/f1ZP5CTkYnJb8Fs KIhEMmGpMuFhLoKmKjrDCwb6limrALe/FPHC66QC2/GNUgRpSvFiBi6oK4YySSMMm4rcZiEpStE rFcP0RvjRygzFvaso2mcQBW56BEl/5eQt5v2/3M+SqHOKnXCYmd8BksTw1Z8GoqlOSnxM+WiJlp lsXYlHdZm1gOsRM9pADU1tb3U76Inn+Cl72itJdX0lJTVhtGjKs561xBztX4r4e5frqAK/c7VEd H0qt/mufyMsgquGdle3V+aNZ0y/ZK0pQ0zek/Mkzq0tuuZXPvN9+519LZ0SFiHQiCZrbc0RrdHr 3mE1KifQPaa8iQFzD3W4UcW0mZYYkqoQ/6dsZd9pASfANOsDjlbxEgEHunW8v0l48W0dGFxalLD 0QtnWBq7gsZ3DY9AAKQ8UuUbzm2htV X-Received: by 2002:a17:902:fc50:b0:2bc:977b:846d with SMTP id d9443c01a7336-2be9d41df3dmr5381665ad.5.1779301556085; Wed, 20 May 2026 11:25:56 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 56/64] target/arm: Enable FEAT_FP8DOT2, FEAT_SSVE_FP8DOT2 for -cpu max Date: Wed, 20 May 2026 11:22:05 -0700 Message-ID: <20260520182213.872945-57-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::535; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x535.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1779302104841158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/cpu64.c | 2 ++ docs/system/arm/emulation.rst | 2 ++ 2 files changed, 4 insertions(+) diff --git a/target/arm/tcg/cpu64.c b/target/arm/tcg/cpu64.c index 6dec7e045d..a43b6367a4 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -1377,6 +1377,7 @@ void aarch64_max_tcg_initfn(Object *obj) SET_IDREG(isar, ID_AA64DFR0, t); =20 t =3D GET_IDREG(isar, ID_AA64SMFR0); + t =3D FIELD_DP64(t, ID_AA64SMFR0, SF8DP2, 1); /* FEAT_SSVE_FP8DOT2 */ t =3D FIELD_DP64(t, ID_AA64SMFR0, SF8DP4, 1); /* FEAT_SSVE_FP8DOT4 */ t =3D FIELD_DP64(t, ID_AA64SMFR0, SF8FMA, 1); /* FEAT_SSVE_FP8FMA */ t =3D FIELD_DP64(t, ID_AA64SMFR0, F32F32, 1); /* FEAT_SME */ @@ -1397,6 +1398,7 @@ void aarch64_max_tcg_initfn(Object *obj) t =3D GET_IDREG(isar, ID_AA64FPFR0); t =3D FIELD_DP64(t, ID_AA64FPFR0, F8E5M2, 1); /* FEAT_FP8 */ t =3D FIELD_DP64(t, ID_AA64FPFR0, F8E4M3, 1); /* FEAT_FP8 */ + t =3D FIELD_DP64(t, ID_AA64FPFR0, F8DP2, 1); /* FEAT_FP8DOT2 */ t =3D FIELD_DP64(t, ID_AA64FPFR0, F8DP4, 1); /* FEAT_FP8DOT4 */ t =3D FIELD_DP64(t, ID_AA64FPFR0, F8FMA, 1); /* FEAT_FP8FMA */ t =3D FIELD_DP64(t, ID_AA64FPFR0, F8CVT, 1); /* FEAT_FP8 */ diff --git a/docs/system/arm/emulation.rst b/docs/system/arm/emulation.rst index bee4e36dc6..875716d18f 100644 --- a/docs/system/arm/emulation.rst +++ b/docs/system/arm/emulation.rst @@ -75,6 +75,7 @@ the following architecture extensions: - FEAT_FP (Floating Point extensions) - FEAT_FP16 (Half-precision floating-point data processing) - FEAT_FP8 (FP8 convert instructions) +- FEAT_FP8DOT2 (FP8 2-way dot product to half-precision instructions) - FEAT_FP8DOT4 (FP8 4-way dot product to single-precision instructions) - FEAT_FP8FMA (FP8 multiply-accumulate to half-precision and single-precis= ion instructions) - FEAT_FPAC (Faulting on AUT* instructions) @@ -161,6 +162,7 @@ the following architecture extensions: - FEAT_SME_F64F64 (Double-precision floating-point outer product instructi= ons) - FEAT_SME_I16I64 (16-bit to 64-bit integer widening outer product instruc= tions) - FEAT_SME_LUTv2 (Lookup table instructions with 4-bit indices and 8-bit e= lements) +- 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) - FEAT_SSVE_FP8FMA (SVE2 FP8 multiply-accumulate to half-precision and sin= gle-precision instructions in Streaming SVE mode) - FEAT_SVE (Scalable Vector Extension) --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301742; cv=none; d=zohomail.com; s=zohoarc; b=aThcJ8485qYY+uymeEgTnQId6Myr1HSW0J9Dfvuxa20Ty0OHJgg0wiOBZC5C3bwd4AgHZ7MF+VtmPG5vQVnb75dOY6OHKJiw16sfQhHAYiPm16XH4qF7smwGN2ivJnvRQ09rGZ+cQuWq45e1bYp4+5YijG9u2t5uBfiOPFyqPgU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301742; 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=/Pxlgby8qcltoDk8xASbSaE+nJXYWZe1viWUFc7OgMk=; b=Qmk1JVh/+979O5l1NgH+C9S7S71+XmFjQbYMQ5r79m+M9/g9KPQiLCUjHfp/5RtbDyMPsorOF3eUyouqsPVt3ODqZhwj5XmEsSWQKTliASk8vI29/aq2Rc7mHR9Ag61jQ2qJepl1yt/9BQ/OlikzQdvPthjmt9NXe+5l8a06yWo= 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 1779301742465673.1739502319557; Wed, 20 May 2026 11:29:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlcy-0005C4-AU; Wed, 20 May 2026 14:26:44 -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 1wPlcN-0004Jp-29 for qemu-devel@nongnu.org; Wed, 20 May 2026 14:26:08 -0400 Received: from mail-pl1-x62f.google.com ([2607:f8b0:4864:20::62f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlcE-00029d-Rb for qemu-devel@nongnu.org; Wed, 20 May 2026 14:26:05 -0400 Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-2b941cd869cso33203785ad.1 for ; Wed, 20 May 2026 11:25:57 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c0605ddsm217413925ad.32.2026.05.20.11.25.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:25:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301557; x=1779906357; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=/Pxlgby8qcltoDk8xASbSaE+nJXYWZe1viWUFc7OgMk=; b=HVmqzLgD7JDYP49PM/2a3dwL6S9XXUqhTgJwLsDDAJsmzMOIuLxMYuwiIqP3fAXkcQ 14qX2T73sIP1351jS1wTe8e7/v4UpA2B1tRIdN2nft+uuWdb2eVxicAF2zBszGbFVo71 A92RWI1dH9R0SxDcxp6wOeutAsZtm4SZo8J10pqkHZYuP81ZTOPEKEITg/qKgkLUa7i8 njwtYM9YKb/0m6+DEOq2vQVfzYDdd+Rgv8A8ckmAaIcIwkns4CkY8xrND3LsE0vuvt0a XDW3Px3WCg15WfFoYnBgm03I4V8g5VgRf62xZicWfqxc+BYxsQ+dZj6hLMYeppLExhUK QBFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301557; x=1779906357; 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; bh=/Pxlgby8qcltoDk8xASbSaE+nJXYWZe1viWUFc7OgMk=; b=rAGukTZ9PLI1tF2HYA195Ep/KCITa+t2pPIvqxlBNS45cCmsArm+5k2olg8yzGwly2 5aSgaUrHbl8QtHjdWcKy+L6YP7TUqX+4zDZYIXyo0U04vx1rGUJkNzDQoOmvr5BfUbgm RnwbMw3vSk3CIjmGJfxrKECJd6X2T58h1KgROsxbb4zffuIwnD4fyEZtkWw5rTJrBSLt QbOWa0cdFvdTiySY5roUY5ysyRoSZwd09y6S5eTokSS0YlDuZyYMzM0JkIC1uFCTJPJT ROm/LZj8WovvxKzz470uoyvpPXI7p/ChQU8Jjdxn7XHU60/+afgOV+Uz1OF/MpgSvdA2 cXhA== X-Gm-Message-State: AOJu0Yzp7oKP/FqwjiN8WrtLAP/SgU+y6frKSFlV/UEZNEBUf0aLYTSG Tz+4BHVmlX1kstjc7fu/zU0gSvd6cGZA0n8jzOxv4bE9+ybD++OxsVSgNnwenp5nsRrdZ8qYLou B/Te/Qgs= X-Gm-Gg: Acq92OF2dxH/8uaObeDU47JdGq3/ICC/BjhraJqBIRUxSdbVCUh4TEm4Wx8UfqLf1qP eh4iVoPc4l63ju6yZUJjQh3EgPrXSDX4/KhUg+zOMXfkycSpxaGkMbx/sU/Yn9blIAG7wcB9bXP M11UpQwbfyAT7fkkVnCqXrqQ2VierAK73J8STYmd9fmmSc/CtEiT0Xw8e64rLUhUa+U9tEN+rY6 YleQ6yFvAvqxODmR/9qgRVgdQJuw+X1A/wpMfKf7w56WMdvYMRBmMNx5AC/xRp2ZbdoKpzI8AYx 5sv3v5X5C/zLNYSZR+iUTmfyaVV0EmmpdBFBTHQmEEP0hOCdglPmm0VgmJLhQ1IHzrI7dvh4zhF sJksmGfZ24a0O9OXUWq6DH6qc7RW/emo4TclBWH90Pk7/tvhbRm9ojQmdAdNuwDbsAIZQtRJHCU GTOmB5NoqOvom8w8dTJNW6iwkqTnZc X-Received: by 2002:a17:903:240c:b0:2bd:2439:25e9 with SMTP id d9443c01a7336-2bd7e9e263emr258594815ad.40.1779301556819; Wed, 20 May 2026 11:25:56 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 57/64] target/arm: Implement FMMLA (FP8 to FP32) for AdvSIMD Date: Wed, 20 May 2026 11:22:06 -0700 Message-ID: <20260520182213.872945-58-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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::62f; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62f.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: 1779301743358154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/cpu-features.h | 5 +++++ target/arm/tcg/helper-fp8-defs.h | 2 ++ target/arm/tcg/fp8_helper.c | 25 +++++++++++++++++++++++++ target/arm/tcg/translate-a64.c | 1 + target/arm/tcg/a64.decode | 2 ++ 5 files changed, 35 insertions(+) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 90098c3cbe..67b9d7e982 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1620,6 +1620,11 @@ static inline bool isar_feature_aa64_f8dp2(const ARM= ISARegisters *id) return FIELD_EX64_IDREG(id, ID_AA64FPFR0, F8DP2); } =20 +static inline bool isar_feature_aa64_f8mm8(const ARMISARegisters *id) +{ + return FIELD_EX64_IDREG(id, ID_AA64FPFR0, F8MM8); +} + /* * Combinations of feature tests, for ease of use with TRANS_FEAT. */ diff --git a/target/arm/tcg/helper-fp8-defs.h b/target/arm/tcg/helper-fp8-d= efs.h index 5995d77577..3c74f02022 100644 --- a/target/arm/tcg/helper-fp8-defs.h +++ b/target/arm/tcg/helper-fp8-defs.h @@ -35,3 +35,5 @@ DEF_HELPER_FLAGS_5(gvec_fdot_idx_sb, TCG_CALL_NO_RWG, voi= d, ptr, ptr, ptr, env, =20 DEF_HELPER_FLAGS_5(gvec_fdot_hb, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, env= , i32) DEF_HELPER_FLAGS_5(gvec_fdot_idx_hb, TCG_CALL_NO_RWG, void, ptr, ptr, ptr,= env, i32) + +DEF_HELPER_FLAGS_5(gvec_fmmla_sb, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, en= v, i32) diff --git a/target/arm/tcg/fp8_helper.c b/target/arm/tcg/fp8_helper.c index d3bbea1735..160850be53 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -807,3 +807,28 @@ void HELPER(gvec_fdot_idx_hb)(void *vd, void *vn, void= *vm, =20 clear_tail(vd, oprsz, simd_maxsz(desc)); } + +void HELPER(gvec_fmmla_sb)(void *vd, void *vn, void *vm, + CPUARMState *env, uint32_t desc) +{ + FP8MulContext ctx =3D fp8_mul_start(env, -1); + size_t oprsz =3D simd_oprsz(desc); + size_t nseg =3D oprsz / 16; + uint64_t *n =3D vn; + uint64_t *m =3D vm; + float32 *d =3D vd; + + for (size_t seg =3D 0; seg < nseg; seg++, d +=3D 4, n +=3D 2, m +=3D 2= ) { + float32 d0 =3D f8dotadd_s(n[0], m[0], 8, d[H4(0)], &ctx); + float32 d1 =3D f8dotadd_s(n[0], m[1], 8, d[H4(1)], &ctx); + float32 d2 =3D f8dotadd_s(n[1], m[0], 8, d[H4(2)], &ctx); + float32 d3 =3D f8dotadd_s(n[1], m[1], 8, d[H4(3)], &ctx); + + d[H4(0)] =3D d0; + d[H4(1)] =3D d1; + d[H4(2)] =3D d2; + d[H4(3)] =3D d3; + } + + clear_tail(vd, oprsz, simd_maxsz(desc)); +} diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index c5ea6b27a9..02d5e007f9 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -7418,6 +7418,7 @@ static bool do_f8dot(DisasContext *s, arg_qrrr_e *a, =20 TRANS_FEAT(FDOT_sb_v, aa64_f8dp4, do_f8dot, a, gen_helper_gvec_fdot_sb) TRANS_FEAT(FDOT_hb_v, aa64_f8dp2, do_f8dot, a, gen_helper_gvec_fdot_hb) +TRANS_FEAT(FMMLA_sb, aa64_f8mm8, do_f8dot, a, gen_helper_gvec_fmmla_sb) =20 static bool do_f8dot_idx(DisasContext *s, arg_qrrx_e *a, gen_helper_gvec_3_ptr *fn) diff --git a/target/arm/tcg/a64.decode b/target/arm/tcg/a64.decode index d1254355b6..6404c26540 100644 --- a/target/arm/tcg/a64.decode +++ b/target/arm/tcg/a64.decode @@ -1216,6 +1216,8 @@ FMLALL_sb_v 0.00 1110 0.0 rm:5 110001 rn:5 rd:5 \ FDOT_sb_v 0.00 1110 000 ..... 11111 1 ..... ..... @qrrr_s FDOT_hb_v 0.00 1110 010 ..... 11111 1 ..... ..... @qrrr_h =20 +FMMLA_sb 0110 1110 100 ..... 11101 1 ..... ..... @rrr_q1e0 + ### Advanced SIMD scalar x indexed element =20 FMUL_si 0101 1111 00 .. .... 1001 . 0 ..... ..... @rrx_h --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301909; cv=none; d=zohomail.com; s=zohoarc; b=R6/GvlBg8K0wet9LOru0upsGyNXfuEJ2+ofR1/XOLLqJpE0qOxtSpkQknZdwCKgRGGzb9shySblGha6edPrDseBUN2r0XJ9CMAfB06ivom5QHttrEAnfO/YBuM2ZWuaFn0/GdD+ebGM/KBEmApZpouDepB2wm/HSjuUnWAPm8NI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301909; 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=pZ3I4CizPNDr7l3Qj3+qL13Yx8GTzrnhQalZXWGErYg=; b=YBtO3o8a1P44ZZNfunv9tBiSFMa6UR+dFZ1yB6McPu1FHE8daZM9SsVAPbxUNw9N9fbK0JGlHORTlnuHnC5EWkKVVfhO2xjWvpxIGgCeQWWEiXmwxJSg5JOZ6C48dmhH+oFC3bDDFzPGYR9u7XwCVZ4xghrfJgWnck1kUuTjrFI= 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 1779301909449949.9501369099221; Wed, 20 May 2026 11:31:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPld0-0005RG-7W; Wed, 20 May 2026 14:26:46 -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 1wPlcP-0004LL-JS for qemu-devel@nongnu.org; Wed, 20 May 2026 14:26:10 -0400 Received: from mail-pl1-x633.google.com ([2607:f8b0:4864:20::633]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlcM-0002Aw-HW for qemu-devel@nongnu.org; Wed, 20 May 2026 14:26:09 -0400 Received: by mail-pl1-x633.google.com with SMTP id d9443c01a7336-2bc763e2ba8so25116535ad.3 for ; Wed, 20 May 2026 11:25:58 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c0605ddsm217413925ad.32.2026.05.20.11.25.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:25:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301558; x=1779906358; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=pZ3I4CizPNDr7l3Qj3+qL13Yx8GTzrnhQalZXWGErYg=; b=vmQwoyK3e4W8ddUINE+a6UkOljIeMUu8T9CH7nn7bzDXiuYr67OtWrS2+QzyJmgBN2 eX2mjxxNuUu5G62Uo2ApEWhTKtxNASppVv1HmgB9HdpvkDj6PnUdHfYQklNuSadGiTgJ IHZK2vW3MbEcrgg20bK1oZiAbtOFGLi7kXYMB12Cy7zJ1ZNh3vQs8CQs+hsZB/BVMlK1 CVRiWHlxXkVLsqS6Da0IrjU9c3IxBZmaq1QgboC9ZpnJ6+kPYdBDFb7+8NQFw/ZhfzUb iB0EWPrW2wom0Z4UmrQpslWJJ3Tjzz6RCOUeovy6vllQQvkkU07+5yi+dGigyY6Qi97M e02w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301558; x=1779906358; 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; bh=pZ3I4CizPNDr7l3Qj3+qL13Yx8GTzrnhQalZXWGErYg=; b=T+aptMHIFxwKtLrRhQDbGf5oDErOWPsMraf5+GDtllTxZ1vl0YtMQAGH7IYfH8wfqT or+Pmk9QPdCY9Ub5adak3kNMkiLJD6WOS76s7OcLc58B2eJmYategEc4m9uV3VM9tyJ1 FwAOEZhcZ37Isb5NTK86QXLQUbk2Pu0bwqeX5sYgFq36pQC1NHfdVkFd0FgPtNE+CBt+ K4/9rIeze2HQ6b1t+/NsP2/jvYZZ5wOnWhKmK1dG24fmtkx5yRzrPDcnlT/AXmLwHGhg 3utrMPkAXoNry3RoCjOKpmvyUqVYtB0Lf+QwO6/ncIwqBUbddf7L6Q//Fp9wYrwnmTd+ KpcQ== X-Gm-Message-State: AOJu0YwK0re7U1g9BMGwrpfUOugIqhzI5rAdBBheysXPVl6MBHLCIIGN FGD9GtP5i9UTiL/BXavirYzhF154tKH7kWXLLZt6a4BRstmSLCh1SQPYH8Pu9c2OrV7Nq5mdBY+ 77KRiYQ8= X-Gm-Gg: Acq92OHPjgdH89q1ZBip4FmavYJya5iPypZFH2fpvhEEV1EONrldzekHtCgNYEvIcqi 2ZwB4A2bo8VxZYbAzHO8M01xgVxK9aKIVcNFXtSjT/JWRBoxlvnaPgUWXeWcQa2HY/T1jM8Ul1M Sl3D3BhDOyy9r6+UjXTEKGiJIK6Lw5VNX76N6rJ4ztD07R4utSjht7JRgtWVhfnlgdAOJsbtuv3 0nx/8ENLF2uZyI7+OaUI8ZONYKv6r6hMSc17tYdqbZw4se1+aG6bDFu33X3S00EknTd8iqVIbnd MNKrV1viD6o3FXmAxcbWWDPSphgogZfiK+1TVEn8lOn6a/wKGiAgCIQDRgGjLwL40JpBLLbhCVr cDT0Nh1II0UIoxt2G7lpkQ4dlYA6A4CTlBNKksm9HAFlc7yrqgYRjR/HEyiHi/mGzNxY9ibTwxz VpQQ2K6xUs/Au8b0I/5q4om2Z+RKMf0ZtvbKMGp1I= X-Received: by 2002:a17:902:da8c:b0:2b2:5597:bad4 with SMTP id d9443c01a7336-2bd7e9adf9emr278246955ad.30.1779301557523; Wed, 20 May 2026 11:25:57 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 58/64] target/arm: Implement FMMLA (FP8 to FP32) for SVE Date: Wed, 20 May 2026 11:22:07 -0700 Message-ID: <20260520182213.872945-59-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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::633; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x633.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: 1779301910593158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/cpu-features.h | 5 +++++ target/arm/tcg/translate-sve.c | 16 ++++++++++++++++ target/arm/tcg/sve.decode | 2 ++ 3 files changed, 23 insertions(+) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 67b9d7e982..8f6cc2974f 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1693,6 +1693,11 @@ static inline bool isar_feature_aa64_sve_bf16(const = ARMISARegisters *id) return isar_feature_aa64_sve(id) && isar_feature_aa64_sme_sve_bf16(id); } =20 +static inline bool isar_feature_aa64_sve2_f8mm8(const ARMISARegisters *id) +{ + return isar_feature_aa64_sve2(id) && isar_feature_aa64_f8mm8(id); +} + static inline bool isar_feature_aa64_sme2_or_sve2_faminmax(const ARMISARegisters *id) { diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 8d622f9a1c..5bda5f6c01 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8442,3 +8442,19 @@ static bool do_f8dp2(DisasContext *s, gen_helper_gve= c_3_ptr *fn, TRANS(FDOT_hb, do_f8dp2, gen_helper_gvec_fdot_hb, a->rd, a->rn, a->rm, 0) TRANS(FDOT_idx_hb, do_f8dp2, gen_helper_gvec_fdot_idx_hb, a->rd, a->rn, a->rm, a->index) + +static bool do_fmmla_fp8(DisasContext *s, arg_rrrr_esz *a, + gen_helper_gvec_3_ptr *fn) +{ + if (fpmr_access_check(s) && sve_access_check(s)) { + unsigned vsz =3D vec_full_reg_size(s); + tcg_gen_gvec_3_ptr(vec_full_reg_offset(s, a->rd), + vec_full_reg_offset(s, a->rn), + vec_full_reg_offset(s, a->rm), + tcg_env, vsz, vsz, 0, fn); + } + return true; +} + +TRANS_FEAT_NONSTREAMING(FMMLA_sb, aa64_sve2_f8mm8, do_fmmla_fp8, a, + gen_helper_gvec_fmmla_sb) diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index 26b3c7697a..6610432528 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -1808,6 +1808,8 @@ BFMMLA 01100100 01 1 ..... 111 001 ..... ...= .. @rda_rn_rm_ex esz=3D1 FMMLA_s 01100100 10 1 ..... 111 001 ..... ..... @rda_rn_rm_ex esz= =3D2 FMMLA_d 01100100 11 1 ..... 111 001 ..... ..... @rda_rn_rm_ex esz= =3D3 =20 +FMMLA_sb 01100100 00 1 ..... 111 000 ..... ..... @rda_rn_rm_ex esz= =3D2 + ### SVE2 Memory Gather Load Group =20 # SVE2 64-bit gather non-temporal load (scalar plus 64-bit unscaled offset= s) --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301942; cv=none; d=zohomail.com; s=zohoarc; b=k10I8ZBZUZ4JF+LW34Hw47x+SHLzH5VMXhxJCcC3YVOq6Y0A0H5AQSaxUs1ImXeGtZLtH7WTn18UhxnT7ZMZe6fY+K0dCxxId+MlFXEy5HR4yOFq+yoocFleUm5v59OrwTZrIfdxRTEGHbKiENJeoIeu4YjPAywP/tA1Fjtd7VA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301942; 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=PuGasVrTDp5bV7ix67mPvlZpXL4SBKk180Og/sZBgEE=; b=KPbQpibBEkJRRzyxqP8Zb5+xNoqzxJasURbe3bzKsQSuZpJYkLrTDPlqCPglzAjvXxVyJ4eE034h0oQWL6pdx3ZB/nbJkLZ4lEhbHbgZuNzu0Vdrm/k/BOVtOtfJSfskso5RBsUdyGxTIhPGEs2wFVYccoruySMpdkYqTgjNMsw= 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 1779301942095483.43001915065577; Wed, 20 May 2026 11:32:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPld4-0005nx-8r; Wed, 20 May 2026 14:26:50 -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 1wPlcO-0004Jy-5p for qemu-devel@nongnu.org; Wed, 20 May 2026 14:26:08 -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 1wPlcK-0002Bz-Jq for qemu-devel@nongnu.org; Wed, 20 May 2026 14:26:07 -0400 Received: by mail-pg1-x529.google.com with SMTP id 41be03b00d2f7-c80148ae949so2154706a12.2 for ; Wed, 20 May 2026 11:25:59 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c0605ddsm217413925ad.32.2026.05.20.11.25.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:25:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301558; x=1779906358; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=PuGasVrTDp5bV7ix67mPvlZpXL4SBKk180Og/sZBgEE=; b=ikCmdbvPpacFphfOKz2IfMFxCnwBgIB3O231WWkg2xclCdOHl9Clj1bE1T6mqUnHV7 U05kR3Sv8g3rts+jehi8ZDZnz8zsoRpaQnTIjOfC/uAWHRG+3V0JJOfpsenZ4yVv/cg0 X20Lx8Dh5672Iuv9LkLenADm4Y8AU1gfy/+Xfzl7nShzHly+VWcUG4zU3Gcm9TN6ae4h vAkPOTm3Iaszt9wezvqRHHi47y1iZPRCUEYC2ky4tSFYn8sbe6q8ShZLTPmUS56Hasbn o2AHOmHsaCEhZWNysCW/0REFFP++oPDsbSV45IG6fmX810xGsxLsLix3NOytR+4Kyagf BH/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301558; x=1779906358; 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; bh=PuGasVrTDp5bV7ix67mPvlZpXL4SBKk180Og/sZBgEE=; b=MVGHC6kmTmmn2fQWSIK5yBZ6q8YBb4uSTL3tgnV6ZQ97R/uas06Xw7GjsO3FonNRca dov20cdols4euf/1m74F4L7tFySQZaiQUtVqJ8stghp5Ng8gUsPl4cUDXP7UPORyBEkq 2yIL5xyBemnvM9jFtvA6ijpSdRE5AkIHWwCo0zbxk/is8y0m4UkVqgbWDxJLaaDW3f4W BOlMaxJkVzHRhu96DveDYycpZnMy/l4gQnk7IayhnDTRyaOz1etF8170RDJciTA1w4+i sdIA8yKG8gEH56JyX2NvQkUUnlW5mBtkfTGMN/39fNpCBUVHfvFqpCPTRL0xBOVb5WVc c+bQ== X-Gm-Message-State: AOJu0YxZMNItRH8td1/JGWHLswDOtAVfMVU2AvP/yut+uXgcXKFzuvIF 0SXuzoXT3F8PDy0+aCJ8IxoI3awkevmSM88qgo+fVbaTsTZPo7aQFMlwY5nbEPOmnsWXxnvfMED sXGTg2Ko= X-Gm-Gg: Acq92OFvUMi6D51vIuAzkC6yPEodDfnxk9LqYOldUY4IalNHDyf5X4td3AZ7GB8hIqO zxCkaxd5ykoYTtWaxs6kMlI3KY9PhryYHna48X+Ixc+22BDdvWhAuQryiyvS+v45Za01P5A/Tn8 QXrj/sW/e0Gk9w3K2DFmRgP9WjcAK+uMfMV8K5NBQiwVpx30AQ4/yDkxvJwRQyUuAUb+2w9RaAm iJQy+NbSM9aAjc0wSsBebzV9UUkGSxfyE0KgqnuawYaF5NhkBUaqX5mNBjfhfsvS04vO8EyzmPR bBtOQghnciz8OqAae7xMlRqbT65Mykdx0iTO+ZqzfKCkN6PfLxqCwsINcT7iDyyPUXA1PFhj7sL ehZB4uyvLpami8ooqEdAzdxoFtsiSpqdBLZ2nvv3R2iTilX7z8Q8sw2RKOkuoQYMk5gAkLMGY4o pAhx6+I3VbihVNYEAkFQPvpnF/lcZZ X-Received: by 2002:a17:902:d2c9:b0:2bd:b50f:c1bf with SMTP id d9443c01a7336-2bdb50fc703mr189938475ad.38.1779301558341; Wed, 20 May 2026 11:25:58 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 59/64] target/arm: Enable FEAT_F8F32MM for -cpu max Date: Wed, 20 May 2026 11:22:08 -0700 Message-ID: <20260520182213.872945-60-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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=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: 1779301943976154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/cpu64.c | 1 + docs/system/arm/emulation.rst | 1 + 2 files changed, 2 insertions(+) diff --git a/target/arm/tcg/cpu64.c b/target/arm/tcg/cpu64.c index a43b6367a4..7a47af9f5a 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -1398,6 +1398,7 @@ void aarch64_max_tcg_initfn(Object *obj) t =3D GET_IDREG(isar, ID_AA64FPFR0); t =3D FIELD_DP64(t, ID_AA64FPFR0, F8E5M2, 1); /* FEAT_FP8 */ t =3D FIELD_DP64(t, ID_AA64FPFR0, F8E4M3, 1); /* FEAT_FP8 */ + t =3D FIELD_DP64(t, ID_AA64FPFR0, F8MM8, 1); /* FEAT_F8F32MM */ t =3D FIELD_DP64(t, ID_AA64FPFR0, F8DP2, 1); /* FEAT_FP8DOT2 */ t =3D FIELD_DP64(t, ID_AA64FPFR0, F8DP4, 1); /* FEAT_FP8DOT4 */ t =3D FIELD_DP64(t, ID_AA64FPFR0, F8FMA, 1); /* FEAT_FP8FMA */ diff --git a/docs/system/arm/emulation.rst b/docs/system/arm/emulation.rst index 875716d18f..83967da12d 100644 --- a/docs/system/arm/emulation.rst +++ b/docs/system/arm/emulation.rst @@ -66,6 +66,7 @@ the following architecture extensions: - FEAT_EPAC (Enhanced pointer authentication) - FEAT_ETS2 (Enhanced Translation Synchronization) - FEAT_EVT (Enhanced Virtualization Traps) +- FEAT_F8F32MM (8-bit floating-point matrix multiply-accumulate to single-= precision) - FEAT_F32MM (Single-precision Matrix Multiplication) - FEAT_F64MM (Double-precision Matrix Multiplication) - FEAT_FAMINMAX (Floating-point maximum and minimum absolute value instruc= tions) --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301779; cv=none; d=zohomail.com; s=zohoarc; b=MhrhNka6mrGjz5xFWsWhAl1e76FhqD+68/5+LG2ViSNMhsA+froQUzfqvwcECVUrg8BzewFQq6YnLcBQOI8O9NMegQHr1U/SUIU75ch82Eh6isRUd9NlEtCxLQcqfXLTsnC+LrH45F5cABWWHfHnufIoOU/q/3tCDHQm7d6lC9U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301779; 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=NExW4LAN/g5Vp2EXgAs1nazVMjrbniHoK3lm+fA8UEE=; b=klEZwvz2NQVeKlM3bRoJDOiwKLD9KgGZM5/Wr7IUszPLd/Vg00IbsztDXzwE7NgDLg1mlkMAb4aZPxS1klI17DDJZmMh9ff2VG2oXru8AQk7CT3gqoLxo0lda4yI+ENLpVg2g0/n7VW1Pf/7n0WNl50W3glZWxWreRMExCa3rPc= 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 1779301779254772.1665835214379; Wed, 20 May 2026 11:29:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlep-00016s-BO; Wed, 20 May 2026 14:28:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wPlcR-0004TA-Sj for qemu-devel@nongnu.org; Wed, 20 May 2026 14:26:12 -0400 Received: from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlcM-0002DT-Ov for qemu-devel@nongnu.org; Wed, 20 May 2026 14:26:11 -0400 Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-2b458ca2296so38241955ad.0 for ; Wed, 20 May 2026 11:26:00 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c0605ddsm217413925ad.32.2026.05.20.11.25.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:25:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301559; x=1779906359; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=NExW4LAN/g5Vp2EXgAs1nazVMjrbniHoK3lm+fA8UEE=; b=sKmW8Btq0+BiHdQ+zl96NdNOO2o7f4Fx38YvWEln6en1c3JHXZmL2ETVZ6cngDpakc wLtZJFASVbPv4JnR+b7lQtyRhKW55FzllPvGAULfpk07XaW4WfEdtssqYX/s6N6ms4bj q4dBNH8J25v0naeBBX8HpgKxmjXXVWHOhhmamo1ZpV+mzuWeos25Jv8HnERehod6PVJH HyjfJnlVn/NCmLmG1ab+UZiT/v1akeWhLWUwCEFs7VQewJNmmo8ScgBB2rNlYmV0vyxT 1DhXBI+YS1rOZKPybRroMqG8pwimcp3847LE9alcEAAWMxTKYc2/NIe/ryxo8ykVNkmk BV4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301559; x=1779906359; 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; bh=NExW4LAN/g5Vp2EXgAs1nazVMjrbniHoK3lm+fA8UEE=; b=slJLJonj0qEisr1OXzGPUzW5dlEuUf7X0QrS3U/Cnro+EyBB8xCBz/vA8RdTyUIV5N BG/WU1OPx0Gm1TrqvMFQhkHfqmEbM6Zir/RF/E/lcjooKWGHe7n/qgY7Mjcsp+EKcAOJ iYQHQFFQ6I0u67tBWJ1y9nevZ3Jz+zckdlR0NRqku3GepPP3nBB8AhYbp5xctEW5YUMy ceerIkAlwUBu4x2ZPjaxkuthDpAhyKMnFJ/jsM2uO6jlgTzKPiF5OBNCZ/nkDWXElRN1 QIw4//TdisLHc4xP0+Wc78XrzAc4Evp6PZiYVN0qc4Vtbv01witlmM7MMrlZf9l5gh/p f6NA== X-Gm-Message-State: AOJu0Yy9fdvcB32QpfTRWKqLPGnfplHgYiNly1L7fNM59Qh3vmwVRSYc 7tIz8tQ+NHzeKjj5BgGCC8Ala3pRu3iGg0XU3C1U1TjzHRDElVKZ1y9VLvYQNmRaOY8un6hQX81 gocWCxL0= X-Gm-Gg: Acq92OEmzc/SH0VhLhZjHGCRYwfDItj/CpgV/UeInKcSJddDqBKcrtn/K86bBSSf6fJ oFm7iSvJxcLKT2icti5uzufC8kulajtNIFd5bYd8bvZbSUKiZGGIkcXwzHtZoVVvgbKJjse7kVM 8zybV7Tq/JPwGVuv7iFxaANVHfBjHdHVGIIuY35DC1lfjxmzHYwSDruvJ44qnQdlmlvkkCN4sZw 5HITV9PLelb2W8TtR8MjGShxbj2gzCaMxAw2klZSTNRdZvJUVbdd1PX/wktT3Xc+MuiW6OYyNAb njV9cgyBuZ808rfKUp+ukbYCb9M0OY8pegA7YQql6vontY/zYBumAKd+QxwpGmC0YfK3caSRD3t 7EvWnZNs3LYNxxgspBzfmO4lF+zvAkxdnkM3E8/7EuGfIVAne2qeEiC0Mq8kWKSiLYjlRhQxIMY 9MsTV0ZDpJoZClbiPon8Qwik7zW8f0bc08VHUZZKA= X-Received: by 2002:a17:903:2f07:b0:2bd:a403:4ab8 with SMTP id d9443c01a7336-2bda403553emr210851475ad.25.1779301558945; Wed, 20 May 2026 11:25:58 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 60/64] target/arm: Implement FMMLA (FP8 to FP16) for AdvSIMD Date: Wed, 20 May 2026 11:22:09 -0700 Message-ID: <20260520182213.872945-61-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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::62b; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62b.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: 1779301779720158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/cpu-features.h | 5 +++++ target/arm/tcg/helper-fp8-defs.h | 1 + target/arm/tcg/fp8_helper.c | 25 +++++++++++++++++++++++++ target/arm/tcg/translate-a64.c | 1 + target/arm/tcg/a64.decode | 1 + 5 files changed, 33 insertions(+) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 8f6cc2974f..fce38dfbb0 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1625,6 +1625,11 @@ static inline bool isar_feature_aa64_f8mm8(const ARM= ISARegisters *id) return FIELD_EX64_IDREG(id, ID_AA64FPFR0, F8MM8); } =20 +static inline bool isar_feature_aa64_f8mm4(const ARMISARegisters *id) +{ + return FIELD_EX64_IDREG(id, ID_AA64FPFR0, F8MM4); +} + /* * Combinations of feature tests, for ease of use with TRANS_FEAT. */ diff --git a/target/arm/tcg/helper-fp8-defs.h b/target/arm/tcg/helper-fp8-d= efs.h index 3c74f02022..e942308af4 100644 --- a/target/arm/tcg/helper-fp8-defs.h +++ b/target/arm/tcg/helper-fp8-defs.h @@ -37,3 +37,4 @@ DEF_HELPER_FLAGS_5(gvec_fdot_hb, TCG_CALL_NO_RWG, void, p= tr, ptr, ptr, env, i32) DEF_HELPER_FLAGS_5(gvec_fdot_idx_hb, TCG_CALL_NO_RWG, void, ptr, ptr, ptr,= env, i32) =20 DEF_HELPER_FLAGS_5(gvec_fmmla_sb, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, en= v, i32) +DEF_HELPER_FLAGS_5(gvec_fmmla_hb, TCG_CALL_NO_RWG, void, ptr, ptr, ptr, en= v, i32) diff --git a/target/arm/tcg/fp8_helper.c b/target/arm/tcg/fp8_helper.c index 160850be53..b6ce4826fb 100644 --- a/target/arm/tcg/fp8_helper.c +++ b/target/arm/tcg/fp8_helper.c @@ -832,3 +832,28 @@ void HELPER(gvec_fmmla_sb)(void *vd, void *vn, void *v= m, =20 clear_tail(vd, oprsz, simd_maxsz(desc)); } + +void HELPER(gvec_fmmla_hb)(void *vd, void *vn, void *vm, + CPUARMState *env, uint32_t desc) +{ + FP8MulContext ctx =3D fp8_mul_start(env, 0xf); + size_t oprsz =3D simd_oprsz(desc); + size_t nseg =3D oprsz / 16; + uint32_t *n =3D vn; + uint32_t *m =3D vm; + float16 *d =3D vd; + + for (size_t seg =3D 0; seg < nseg; seg++, d +=3D 4, n +=3D 2, m +=3D 2= ) { + float16 d0 =3D f8dotadd_h(n[0], m[0], 4, d[H4(0)], &ctx); + float16 d1 =3D f8dotadd_h(n[0], m[1], 4, d[H4(1)], &ctx); + float16 d2 =3D f8dotadd_h(n[1], m[0], 4, d[H4(2)], &ctx); + float16 d3 =3D f8dotadd_h(n[1], m[1], 4, d[H4(3)], &ctx); + + d[H4(0)] =3D d0; + d[H4(1)] =3D d1; + d[H4(2)] =3D d2; + d[H4(3)] =3D d3; + } + + clear_tail(vd, oprsz, simd_maxsz(desc)); +} diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index 02d5e007f9..aff0f332ac 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -7419,6 +7419,7 @@ static bool do_f8dot(DisasContext *s, arg_qrrr_e *a, TRANS_FEAT(FDOT_sb_v, aa64_f8dp4, do_f8dot, a, gen_helper_gvec_fdot_sb) TRANS_FEAT(FDOT_hb_v, aa64_f8dp2, do_f8dot, a, gen_helper_gvec_fdot_hb) TRANS_FEAT(FMMLA_sb, aa64_f8mm8, do_f8dot, a, gen_helper_gvec_fmmla_sb) +TRANS_FEAT(FMMLA_hb, aa64_f8mm4, do_f8dot, a, gen_helper_gvec_fmmla_hb) =20 static bool do_f8dot_idx(DisasContext *s, arg_qrrx_e *a, gen_helper_gvec_3_ptr *fn) diff --git a/target/arm/tcg/a64.decode b/target/arm/tcg/a64.decode index 6404c26540..e7f2f30abb 100644 --- a/target/arm/tcg/a64.decode +++ b/target/arm/tcg/a64.decode @@ -1217,6 +1217,7 @@ FDOT_sb_v 0.00 1110 000 ..... 11111 1 ..... ...= .. @qrrr_s FDOT_hb_v 0.00 1110 010 ..... 11111 1 ..... ..... @qrrr_h =20 FMMLA_sb 0110 1110 100 ..... 11101 1 ..... ..... @rrr_q1e0 +FMMLA_hb 0110 1110 000 ..... 11101 1 ..... ..... @rrr_q1e0 =20 ### Advanced SIMD scalar x indexed element =20 --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301736; cv=none; d=zohomail.com; s=zohoarc; b=PgO3F0sobeLNXmHJeQC0Jy5JR5mjOcVIGzoTpfPYGQB3x3sp5nM/EbaYseT6vWnj0Pkvzu8eteb+6l1VS23clnbJxdABg/CV6QEFCCFBLd5vevWYb8iTloTa9Rbj5m4ZiepfD5TynjYA/tH1zDNbWk9pfi6pXZXiaXSbppnxb50= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301736; 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=W2+saFtU6sDCDywdiaR0c/2CKQQH+n8UBNRc/yHjQxk=; b=f6kUNE352L7QrFU0Ik8NvkL4phE1f8B522ZXQc0tbFllyA/DpSJ9/M7Z2lSlyDc+m5iHmHwBxfJ5cGjzLeRUoIKlKxXNKDASu/4FZ1GmdLFlssgjzYMbJqXRJaVhNQ4TsgxgP3PWL0TN9HI1zcsm7pi/2uz62CKFlDG+oAFtm5k= 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 1779301736449267.5921267182123; Wed, 20 May 2026 11:28:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPleF-0007bx-Gk; Wed, 20 May 2026 14:28:03 -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 1wPlcO-0004Kk-ME for qemu-devel@nongnu.org; Wed, 20 May 2026 14:26:10 -0400 Received: from mail-pl1-x62c.google.com ([2607:f8b0:4864:20::62c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlcM-0002ET-GK for qemu-devel@nongnu.org; Wed, 20 May 2026 14:26:08 -0400 Received: by mail-pl1-x62c.google.com with SMTP id d9443c01a7336-2b45cb89f7eso35263475ad.0 for ; Wed, 20 May 2026 11:26:00 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c0605ddsm217413925ad.32.2026.05.20.11.25.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:25:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301560; x=1779906360; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=W2+saFtU6sDCDywdiaR0c/2CKQQH+n8UBNRc/yHjQxk=; b=FKG8t7KyA2BmXWaJoHxB5YontGqK2yMt1beiZQn+F7jP3WsSlESGhWbU/LamuzA7cz UktptW3+m+AAL6OZacosl8M1npvqhS+n5X1OwjDMaFPiErb8xSlAm00w5Qb3ubM6+s5p j3p6waF7Xzc/etNg1wd58hT8zzbPfYVSHGDMAWN+g8nUhnb2E97cg9APcpCd9J2PanB8 oYP6mORjMiu/a3OuchfKgdCZvY/DZujCSCn9DbnVihmLGTQ1Z7QMXime5BI4aTkCB6zU yB9McaUDL9kG52tFdKgX09HRwFBX1i+OzfWeH+UDut2KIY8dhmb8CJ+WDfhJrIBHKqel GSNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301560; x=1779906360; 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; bh=W2+saFtU6sDCDywdiaR0c/2CKQQH+n8UBNRc/yHjQxk=; b=aPDuLW7VxSZpWus+LA4nn7Zy0/iTRKkKnDsEH5FNw4sG0Zu4FiYqezMEDqu0g2Et0t c3/x3E58MlA9fBlUd10CgPV/ml4pSttuYLq+PUuCPZjq6nwAM1vyrrKDVzXYOjMBcc6o WrHuB5iey7xEMN/AFWM36YzC4aYr9ZvQWIRm3XS10tdzobhDfSnavr3MlXvnILJN466y peOuaj1fYzpJegSMl462Qxlf0HGYfNreW2QoUFY51q0yOPAiQuSbgv7HBycwly9AQClG OaAuadhJxbA8id299HbbfH4Ye+zK5nMuSMIGzXnN7DnHS95pLGMnBsKBGOehAOK60jkt ZYBA== X-Gm-Message-State: AOJu0YzVmhRBpl6UxZK7CDYTVGa3AY0hjxU3kIkSHYdRNKWGbYQd86L2 KsHA1ZgOdsCyujZBXFTbBJ/C7x6N3lsg3EWQr1xty20ezGEXEF0p1VPeE2mG2Cj22Ob87+eBtIR n+z34mmo= X-Gm-Gg: Acq92OE4DtzLdq0MsGaKdJHqLPsDXFA07v6YkYFHgFke0WrN5asqXrKo35PsxA+mJhm gbR3ct2vWVGWhmM2WWYgYIK3wahGDfNRFtK5SovMHN5/jiSG81f46GmALoKSZhGzonG68u6VsBF 92LgTVOXIvQcns+GNy08FDdOCT9yLHHMelujmEzoM8ASrJ0bmQWP2zHu6Xi1cmeHhIBMGGuQHRy fAoHjyiyEBUsubs4KAVHQNCrGcUVYuTi342cuHzilAk8u/UVctk8MIqgJ8Ea+Cz1fLZOM0QY6Gz tiO2m4ZRrY1FB8zCc1Ro4wBE/jrO1n9/1F3BmYfLLeG+U/KNNjFygA2rvC+KzaJneMl3AdALzgm RUTmxTh3XLHS5LaTBJn3cJFIFAPkzA8vhIuMTnSRO6R/FpKyaS3Xj4qnELLL6J0aaQcON254R/A m4MFgiENUcaLdfnG/Xt2tCaAuhFjml X-Received: by 2002:a17:902:d483:b0:2be:956f:144c with SMTP id d9443c01a7336-2be956f1dbbmr29658265ad.2.1779301559602; Wed, 20 May 2026 11:25:59 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 61/64] target/arm: Implement FMMLA (FP8 to FP16) for SVE Date: Wed, 20 May 2026 11:22:10 -0700 Message-ID: <20260520182213.872945-62-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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::62c; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62c.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: 1779301737152154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/cpu-features.h | 5 +++++ target/arm/tcg/translate-sve.c | 2 ++ target/arm/tcg/sve.decode | 1 + 3 files changed, 8 insertions(+) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index fce38dfbb0..3eb08da6df 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1703,6 +1703,11 @@ static inline bool isar_feature_aa64_sve2_f8mm8(cons= t ARMISARegisters *id) return isar_feature_aa64_sve2(id) && isar_feature_aa64_f8mm8(id); } =20 +static inline bool isar_feature_aa64_sve2_f8mm4(const ARMISARegisters *id) +{ + return isar_feature_aa64_sve2(id) && isar_feature_aa64_f8mm4(id); +} + static inline bool isar_feature_aa64_sme2_or_sve2_faminmax(const ARMISARegisters *id) { diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 5bda5f6c01..2bce6a38a2 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -8458,3 +8458,5 @@ static bool do_fmmla_fp8(DisasContext *s, arg_rrrr_es= z *a, =20 TRANS_FEAT_NONSTREAMING(FMMLA_sb, aa64_sve2_f8mm8, do_fmmla_fp8, a, gen_helper_gvec_fmmla_sb) +TRANS_FEAT_NONSTREAMING(FMMLA_hb, aa64_sve2_f8mm4, do_fmmla_fp8, a, + gen_helper_gvec_fmmla_hb) diff --git a/target/arm/tcg/sve.decode b/target/arm/tcg/sve.decode index 6610432528..b53fe6a58f 100644 --- a/target/arm/tcg/sve.decode +++ b/target/arm/tcg/sve.decode @@ -1809,6 +1809,7 @@ FMMLA_s 01100100 10 1 ..... 111 001 ..... ...= .. @rda_rn_rm_ex esz=3D2 FMMLA_d 01100100 11 1 ..... 111 001 ..... ..... @rda_rn_rm_ex esz= =3D3 =20 FMMLA_sb 01100100 00 1 ..... 111 000 ..... ..... @rda_rn_rm_ex esz= =3D2 +FMMLA_hb 01100100 01 1 ..... 111 000 ..... ..... @rda_rn_rm_ex esz= =3D1 =20 ### SVE2 Memory Gather Load Group =20 --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779302022; cv=none; d=zohomail.com; s=zohoarc; b=kbLjL5PQDCLlWbPqLAR01LUxYijZlIxzBeDq1dnj7ePa5j3ZQneW3YvHey00mgFjANnkS42Rmatr1yCWqSjH1j5fuzq6Geh3/rv0UvG+9GKD2jSCI347eVHKRgnxeHymvIoN+fHxKdeZ2C55HDq61iEV9UiZA91VXD9eAsmQapw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779302022; 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=Oa3HEHnmujGMzO7KfPn4oNwAR87TmXmXSZa7aCzJKgA=; b=cWKkthXdVl3Qk8cEQn5dPR9N5NhlIvzOpyWMt/+CAsu+85g6w8qUb7IXgFKNLa//9UIWTWm2wlr5g6vW6DBuCj7zXxHzWPub/J7BezBQEHs9n1BQ7rIOXwkyMHCoylmm44OmuOdtLlvxNSve4Q2CiuD99GSjKesl2dHZ7YvzULs= 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 1779302022665714.8211316896317; Wed, 20 May 2026 11:33:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPleV-0008Fh-NZ; Wed, 20 May 2026 14:28: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 1wPlcQ-0004LQ-NR for qemu-devel@nongnu.org; Wed, 20 May 2026 14:26:11 -0400 Received: from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlcM-0002FI-Je for qemu-devel@nongnu.org; Wed, 20 May 2026 14:26:10 -0400 Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-2ba0fc8b1f0so35733705ad.3 for ; Wed, 20 May 2026 11:26:01 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c0605ddsm217413925ad.32.2026.05.20.11.25.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:25:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301560; x=1779906360; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Oa3HEHnmujGMzO7KfPn4oNwAR87TmXmXSZa7aCzJKgA=; b=HTrue1X2NFEEZYiF7a6KhKHCZpfvunNa/aNrCkPcfizFhhi6pQcSlYmlIxN+cVojwt OYu/P7mI2n1mNfF/wvEnjLXYyJoi5XYUMohcRqnjVlbHEj6AskzAUK1cZSf9m0fcPdFQ 4wvSZkW2gSn7ZzDasFZSzUKBZzdomeW4OgV+I9Uw7CvC4yTY0h9NM9lJQPCIhz6hzxpK RHO2QPtPicAMoAyGkKEf/43sFoJ0J0ODWn/0Weg/AQiz5ft/50QaqSWUBAvqRU38vrqT ido3Ig3KFXoE4ey3eFfRnNoVQelP7BFJmBbeVo0UwWLQWfHadlVE2nMQnIzy78n3IHWe nxMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301560; x=1779906360; 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; bh=Oa3HEHnmujGMzO7KfPn4oNwAR87TmXmXSZa7aCzJKgA=; b=sDmMteUt0bY8HfR5vhvhUj7fxUntSxiTkv37XFuQGg+L5+Y+C3KTcZCOWodsPSq2hD F/JrEfvzlEu5ccYqImg3LedDuLf0o6bsebfpHgyGApTUPezC37v5OH6vxYhXaAWlgwue ut8rdoQEXFP40tt4RAxsMwvkD0fA9xp89nUSYX1/FbfxjsVp2VZd3EseunLDlnybOZq0 9W0a0mR0cJ9o/CwgEVT5IiWgIVCzxSzY/ZkvqLcbpExsoGXkkO8W4Kf6AadLPUWVlqn8 Af6ACAykylX0x8O5J+HWXFa7MeiwHcc66w/QltEp8TuW4KgrneiCvIFOyvPfyXe49TcG n/Yg== X-Gm-Message-State: AOJu0YwjQJ5RhxDjcwjRTst3yeTnDkYkL7e7U2+onY7cseM1IypU4JJe p6GKsI2lhkzAR8E+LE7mvguPJe58XmjKNsZ2TeBeQgHgP7+dWcgc6RUIbODY86tiPEl+VfDmx5t mve4d6fU= X-Gm-Gg: Acq92OHjYkOuG7nxxxKxQPHRtGrd2a9Wmk6wAlxUmXUNlRvs7nFahPZsWLEcQqU7F5H LYo/s5RPaIkWrnylfy9pk3S/hiHdVk4gVX9FErIFVI4a+hkJBUuOBmALj1YV4uOop/bd3j2XyIZ 9LYpR+PcQn0QpDX7LMbbUAtBNk4Z5jfOEbKdelNhcnvOS0E6y/6pC+bTssqyhsd0TZbYaCruGry vdqZa+qEmfDwewm8q2D3W7x4mcuL7nqeyaSe6Dghy0W6UOXcT4vGX4NokygbFQIjYqnEDgZZiRS bd/qqbeG14grbH+8UNwAH28TV/SlPIRvWdsvO9rLvIq5mBiwyJGKYYUf32gae9KLGcNP0DTSCzf yEvwHq1c6cBuCW1ZuxFGgCSsqSp9Qs46P7uRFyxR1HbKpA5tTRafMKxeVE0A0rzQNiQTdDowbYa sexgw3fzBqFlHXy1RBoTtqNwLs7DkY X-Received: by 2002:a17:902:8481:b0:2bc:b80f:677e with SMTP id d9443c01a7336-2bd7e94d29fmr170365135ad.25.1779301560254; Wed, 20 May 2026 11:26:00 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 62/64] target/arm: Enable FEAT_F8F16MM for -cpu max Date: Wed, 20 May 2026 11:22:11 -0700 Message-ID: <20260520182213.872945-63-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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::62b; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62b.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: 1779302025563154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/tcg/cpu64.c | 1 + docs/system/arm/emulation.rst | 1 + 2 files changed, 2 insertions(+) diff --git a/target/arm/tcg/cpu64.c b/target/arm/tcg/cpu64.c index 7a47af9f5a..492f70fc8d 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -1398,6 +1398,7 @@ void aarch64_max_tcg_initfn(Object *obj) t =3D GET_IDREG(isar, ID_AA64FPFR0); t =3D FIELD_DP64(t, ID_AA64FPFR0, F8E5M2, 1); /* FEAT_FP8 */ t =3D FIELD_DP64(t, ID_AA64FPFR0, F8E4M3, 1); /* FEAT_FP8 */ + t =3D FIELD_DP64(t, ID_AA64FPFR0, F8MM4, 1); /* FEAT_F8F16MM */ t =3D FIELD_DP64(t, ID_AA64FPFR0, F8MM8, 1); /* FEAT_F8F32MM */ t =3D FIELD_DP64(t, ID_AA64FPFR0, F8DP2, 1); /* FEAT_FP8DOT2 */ t =3D FIELD_DP64(t, ID_AA64FPFR0, F8DP4, 1); /* FEAT_FP8DOT4 */ diff --git a/docs/system/arm/emulation.rst b/docs/system/arm/emulation.rst index 83967da12d..2580246a1d 100644 --- a/docs/system/arm/emulation.rst +++ b/docs/system/arm/emulation.rst @@ -66,6 +66,7 @@ the following architecture extensions: - FEAT_EPAC (Enhanced pointer authentication) - FEAT_ETS2 (Enhanced Translation Synchronization) - FEAT_EVT (Enhanced Virtualization Traps) +- FEAT_F8F16MM (8-bit floating-point matrix multiply-accumulate to half-pr= ecision) - FEAT_F8F32MM (8-bit floating-point matrix multiply-accumulate to single-= precision) - FEAT_F32MM (Single-precision Matrix Multiplication) - FEAT_F64MM (Double-precision Matrix Multiplication) --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301747; cv=none; d=zohomail.com; s=zohoarc; b=HzJosbQ3OfzrO4QTHg31AqyjKCDNfqAeAF4NyGK62H6NOBT36bxCAzWntGvAU3KVJ25TCjkHiDVuSOVn4KeC9HTrY+QptSxcqYHiHJojj2XKxtn8ZZ2glxPQzrAFySoIajXmZWJt2oIIsxSMklk7dNrAK3GcShAzhDOEM6ZVR2A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301747; 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=WUXVONoe8IwMkgOU4fg5iX+I5AZGpysKKoOGKzNezec=; b=h5KjvC/dPLPMwLHVBUNnv3K/FhpLo53Rf8zlYlSgs55A4qTEvmyzSoRWdOF1h6Os864jIiAdYjvUVLZ93GWjqy9Ibj6cNhyS5InjI3N+YWXd7zmA02dAXAAQ71ncgLH9pCOmBbs1gTzH62F0RSxJvrSoOPyo+KAM0gta8CUOpMU= 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 1779301747597506.50214609778936; Wed, 20 May 2026 11:29:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPld4-0005ny-7q; Wed, 20 May 2026 14:26:50 -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 1wPlcQ-0004LO-2Y for qemu-devel@nongnu.org; Wed, 20 May 2026 14:26:10 -0400 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlcM-0002FV-Ie for qemu-devel@nongnu.org; Wed, 20 May 2026 14:26:09 -0400 Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-2b9ea536877so31518685ad.1 for ; Wed, 20 May 2026 11:26:02 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c0605ddsm217413925ad.32.2026.05.20.11.26.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:26:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301561; x=1779906361; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=WUXVONoe8IwMkgOU4fg5iX+I5AZGpysKKoOGKzNezec=; b=XUC9F4VVHKuyZ4QDiiHn0+t40PivSDtMLKb9tl6h4//p8HZAkkgqDn9p51kSwyIiAP 3yySbDO2YFnZ7SIoP3HA8EJHDYBelYf25hyFdcTl1WPSpljxLU/sbsRBp6Z2QHMg1ot5 Q+YaWJuGe24k0tyN8ExseBBPrKBSUsfWngQRcQAWnzSaj6fhKCnvGJpudUv7k5XZ3DVf 6w156Git7eUqm16MpPs0MwOQyQRBlezpyoOXFT8hzPqu33LvIZH+bjkL5opSVx4AQRHj l9TT1kFL2Atvq7+88LHnzP/tRIGZVXbRW8gxzYwJFw4zu9uhM9a1qw+CSql5OiTzHZ24 LzEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301561; x=1779906361; 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; bh=WUXVONoe8IwMkgOU4fg5iX+I5AZGpysKKoOGKzNezec=; b=eMsqEShPfC/f1wYTiZwVa41lh4jkiQyooEH18LjC1mNV52wt8urKy+tcoTHo6bINln UjxW7c54QOkq4ApxTz6/kNkG+MU6f4pmICL9BIwhJldmQI2USnjmxtthB98gwLgS8P9M W4cN9rgW7TcWY/H8nfeZbHsXLxmHu08gG+ONcSGHnm5onV9yK+RpdCGpbyeR4pASsf/l vYUSfAX3+HXEChwKwLG3H/st1J15BeksQqBphQER/RoKgPyiHxTN+QOHWW6U3zMIzxf0 2USyb/ddd8rDx9qCQ4UU2vYrvEzsi/CgbLm8Vf01520U7bp9bzoXXwHWwly50CGNCsc0 OKhg== X-Gm-Message-State: AOJu0YypotVsxQtR0q+4CdA3Le0PfxQL6UKyH0VHrgHw2kBvZSVCA3d3 JtMKxT9dC1QhjyMYPKgH/MFi+xJweF9PuWi7Cx+TNSdUkVesA+FCiLMVegr2543siJaZsj1/wjG KecCgQ8o= X-Gm-Gg: Acq92OE0Tsl8I4s213opco084uYKNv6cdfRoZ3bEQ/NsZkFe2xyKRxUvFuMHiGkizMr FMDQwCZ9DcLR18+0sEiXSNemJqZZ+bdc5OY0QV2r7/8FEQJSFO/cJrOrSx5zB1wpO46P3P8tafa cKmwShJku0JrqMkZ2MPkJoxIM555GS0wbf5FLIjzo7U5k9a3wPIWQL5OJogGJMuV5F1fowk/9pV lowHh1JxY01qn5xIkQ7wLsEZKhaKpee6ng5fE3wFTfpTpFrBctf2JUZ6b7C0Jy2fEGy3y4UQNsp cxDhzHYlhdm36ENSox2nawYAWGyCxvrPZkdYElS8xonVcNRiXyRfPf6pCsa/76FPUMXzzgu6T/Y 9l5y7jFX/VV+zEkG5J5m3Awhc6f2yNo2GPATkNL50EGW0uBUNETB9mnLJzVuTuS691jQJ5ZtdCP Z+8GzB/YPDjI1jP2e6Q2RreFyzhXs8OPLc9U/cX+M= X-Received: by 2002:a17:903:190:b0:2bd:e021:6dbc with SMTP id d9443c01a7336-2be9d404eeemr5357165ad.2.1779301560976; Wed, 20 May 2026 11:26:00 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 63/64] linux-user/aarch64: Implement hwcap bits for fp8 features Date: Wed, 20 May 2026 11:22:12 -0700 Message-ID: <20260520182213.872945-64-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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::629; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x629.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: 1779301749577158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- linux-user/aarch64/elfload.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/linux-user/aarch64/elfload.c b/linux-user/aarch64/elfload.c index 3af5a37776..0934524be2 100644 --- a/linux-user/aarch64/elfload.c +++ b/linux-user/aarch64/elfload.c @@ -218,6 +218,20 @@ abi_ulong get_elf_hwcap2(CPUState *cs) GET_FEATURE_ID(aa64_sve_b16b16, ARM_HWCAP2_A64_SVE_B16B16); GET_FEATURE_ID(aa64_cssc, ARM_HWCAP2_A64_CSSC); GET_FEATURE_ID(aa64_lse128, ARM_HWCAP2_A64_LSE128); + GET_FEATURE_ID(aa64_fpmr, ARM_HWCAP2_A64_FPMR); + GET_FEATURE_ID(aa64_lut, ARM_HWCAP2_A64_LUT); + GET_FEATURE_ID(aa64_faminmax, ARM_HWCAP2_A64_FAMINMAX); + GET_FEATURE_ID(aa64_f8cvt, ARM_HWCAP2_A64_F8CVT | + ARM_HWCAP2_A64_F8E4M3 | + ARM_HWCAP2_A64_F8E5M2); + GET_FEATURE_ID(aa64_f8fma, ARM_HWCAP2_A64_F8FMA); + GET_FEATURE_ID(aa64_f8dp4, ARM_HWCAP2_A64_F8DP4); + GET_FEATURE_ID(aa64_f8dp2, ARM_HWCAP2_A64_F8DP2); + GET_FEATURE_ID(aa64_sme2p1_lutv2, ARM_HWCAP2_A64_SME_LUTV2); + GET_FEATURE_ID(aa64_sme2p1_lutv2, ARM_HWCAP2_A64_SME_LUTV2); + GET_FEATURE_ID(aa64_ssve_f8fma, ARM_HWCAP2_A64_SME_SF8FMA); + GET_FEATURE_ID(aa64_ssve_f8dp4, ARM_HWCAP2_A64_SME_SF8DP4); + GET_FEATURE_ID(aa64_ssve_f8dp2, ARM_HWCAP2_A64_SME_SF8DP2); =20 return hwcaps; } --=20 2.43.0 From nobody Sat May 30 17:45:58 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=1779301730; cv=none; d=zohomail.com; s=zohoarc; b=gozWR2GRe/+v6icAC1SVVfQtSEfSxFurATk9ScDguycgpPT/dc0rzTJ/mvZdLMUXTwDWKlpHZ5iUwcnsE+mg66sLHvTLn1oAc4Dzw0wwFjq6jlISvo8MurpoacfAtl0B3nnEtoMOUmG37d06p+uUkDhllyKFNPXbgUj32KZMkwA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779301730; 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=Ke6jInMIcSbZvQJLAez0XGyYiEeJ5p5eH1CrpDu09no=; b=NV8A+IVipyuODQE7RU93UZC3sHHMqJfFUugdIWJ00bZQbSERHz6VRswtV0mYwDvWQhFMdT3y2B1c+zAJ/+O9z5UET/Ee+5bx9tFH2gRPP7uxNjX0cCSrkDP+r77d713di9/+j5NqtX1wU5vI2m6JYrEVqfMxuEAf5wvQwsW4asc= 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 1779301730296396.9006992861305; Wed, 20 May 2026 11:28:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPlea-0000VB-VY; Wed, 20 May 2026 14:28: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 1wPlcR-0004Pf-3z for qemu-devel@nongnu.org; Wed, 20 May 2026 14:26:11 -0400 Received: from mail-pl1-x632.google.com ([2607:f8b0:4864:20::632]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPlcM-0002Fg-JY for qemu-devel@nongnu.org; Wed, 20 May 2026 14:26:10 -0400 Received: by mail-pl1-x632.google.com with SMTP id d9443c01a7336-2b45cb89f7eso35263765ad.0 for ; Wed, 20 May 2026 11:26:02 -0700 (PDT) Received: from stoup.. ([71.212.142.33]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2bd5c0605ddsm217413925ad.32.2026.05.20.11.26.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 11:26:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779301562; x=1779906362; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Ke6jInMIcSbZvQJLAez0XGyYiEeJ5p5eH1CrpDu09no=; b=VY1i5J61y9btwiSc5jBvBfx7CvjFc1Se1cOvtRBzY0lAuP5/txqfVZK/uA2VkT+YYR O91//TN9AmDknTxXvFWYTCtmfacLlwMrJnPaM+KnVn4oRmOnEVQ3JTAx1xVUvxLXFJvr DxRYCgKtsjUj8HjCm84T+0hj7udxZBJ4OAZcjAWgcaf+wvn/rvFoO32hmOW19TKTCzyO hikDmWArU1dKvCpXpcOqCQUNxFMgtEmibLOhJxBDwGmKame1nPfRJYkhUIbx+ocy1qCh rcJW4GDkCW89ezrKhbdSQ/GP8ET3we8FQzbvfnJHnKFQeeK7dvujC0pkYVVE127VZIT7 DtZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779301562; x=1779906362; 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; bh=Ke6jInMIcSbZvQJLAez0XGyYiEeJ5p5eH1CrpDu09no=; b=k9Dqrk5xPMw+r4FfZ3Z1Hvq16n6LuO40ASdOwRjLnX5baqaC3MAnKFzgxqmmjhHAIt c3W6JKUDFA+OKganlYup0jSw1NPHYLMTP7LgzLoPEd9RCtPI0TMNwhCCwdE9aQHFSbr/ l0P/vPwOMpi7d4NwP6QerX2zz811NCsnS2yga470fqsR/Wbdh5kdjVCAm5sj4K/kJ9VU Dwx6AFww+YuR6iTpe48xNBCHUOQ5EbXlzb3Phyyu9PGQbbLQEkvFcacd1ALtzkAiYq3q gyTEKlVdNnidPamBsrq0hdsHjLQjUCcsJg2EJf9yDvCALHhPyfx7XkValB5ZNTLx8jOG yd2Q== X-Gm-Message-State: AOJu0Yzn/An6MM9+eMVuMCjTgau3OiccKnm5XdpxSVZhAH1eNNRU4BDB AMaxq/OrwstCG1EBlmlCSZ6Clz9R2K7W8rJ+KcvDM3l7a88knn0Vfoxav6bwiqMLUUDrDTK01du nJNyXbyY= X-Gm-Gg: Acq92OFlNpTt2hzzAilSJRjIVT+2AIV8oKKl9RbiHF0grJRaFuPdAb2BkkjU7VzJcm5 BkCAfxGLGsSrwOeArg8pinQtPBm/ytfQelohP/1OjQa5bES0Qj/WtnXmILAu7Pwy0lBZA3atvVi NFHbbnT3PO8xhCEgv/ciuYNEMrk7IGH6cFHz/HW9OeAF3ydt5PE53VjJl0xTq9oUPP08ST9HEqh y0zpFRvti1vQKxptwo7q7XjMqdY9nEGUQQBXSnwXYWTexq2PbM3MXfcDiF1UAPZ70Z3kP+kwEiK UJJA/BjLgAo18RptKPG1Bqqit75H4cXDYwe5blN7D1Po8ZYShOxKoJaEONhjYErU2uhqrhmyprL uEkn2hCBrSykvHc2v3LawRVC8pfRePJvUoelzeXk4E7eucpS3LEBVZBcUQm5Sr9NXQWH1BDkYZ4 36uJ5Rz/RdQBK1GYxMGT5AAP5fmfXa X-Received: by 2002:a17:902:f084:b0:2b2:57df:264d with SMTP id d9443c01a7336-2bd7e8cbce3mr173162295ad.33.1779301561774; Wed, 20 May 2026 11:26:01 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v6 64/64] linux-user/aarch64: Implement FPMR signal frames Date: Wed, 20 May 2026 11:22:13 -0700 Message-ID: <20260520182213.872945-65-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260520182213.872945-1-richard.henderson@linaro.org> References: <20260520182213.872945-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::632; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x632.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: 1779301731079154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- linux-user/aarch64/signal.c | 44 ++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/linux-user/aarch64/signal.c b/linux-user/aarch64/signal.c index f7edfa249e..899fce7643 100644 --- a/linux-user/aarch64/signal.c +++ b/linux-user/aarch64/signal.c @@ -73,6 +73,13 @@ struct target_esr_context { uint64_t esr; }; =20 +#define TARGET_FPMR_MAGIC 0x46504d52 + +struct target_fpmr_context { + struct target_aarch64_ctx head; + uint64_t fpmr; +}; + #define TARGET_EXTRA_MAGIC 0x45585401 =20 struct target_extra_context { @@ -362,6 +369,14 @@ static bool target_setup_gcs_record(struct target_gcs_= context *ctx, return true; } =20 +static void target_setup_fpmr_record(struct target_fpmr_context *ctx, + CPUARMState *env) +{ + __put_user(TARGET_FPMR_MAGIC, &ctx->head.magic); + __put_user(sizeof(*ctx), &ctx->head.size); + __put_user(env->vfp.fpmr, &ctx->fpmr); +} + static void target_restore_general_frame(CPUARMState *env, struct target_rt_sigframe *sf) { @@ -518,6 +533,12 @@ static void target_restore_tpidr2_record(CPUARMState *= env, __get_user(env->cp15.tpidr2_el0, &tpidr2->tpidr2); } =20 +static void target_restore_fpmr_record(CPUARMState *env, + struct target_fpmr_context *fpmr) +{ + __get_user(env->vfp.fpmr, &fpmr->fpmr); +} + static bool target_restore_zt_record(CPUARMState *env, struct target_zt_context *zt, int siz= e, int svcr) @@ -610,6 +631,7 @@ static int target_restore_sigframe(CPUARMState *env, struct target_tpidr2_context *tpidr2 =3D NULL; struct target_zt_context *zt =3D NULL; struct target_gcs_context *gcs =3D NULL; + struct target_fpmr_context *fpmr =3D NULL; uint64_t extra_datap =3D 0; bool used_extra =3D false; bool rebuild_hflags =3D false; @@ -691,6 +713,15 @@ static int target_restore_sigframe(CPUARMState *env, gcs =3D (struct target_gcs_context *)ctx; break; =20 + case TARGET_FPMR_MAGIC: + if (fpmr + || size !=3D sizeof(struct target_fpmr_context) + || !cpu_isar_feature(aa64_fpmr, env_archcpu(env))) { + goto err; + } + fpmr =3D (struct target_fpmr_context *)ctx; + break; + case TARGET_EXTRA_MAGIC: if (extra || size !=3D sizeof(struct target_extra_context)) { goto err; @@ -735,6 +766,9 @@ static int target_restore_sigframe(CPUARMState *env, if (tpidr2) { target_restore_tpidr2_record(env, tpidr2); } + if (fpmr) { + target_restore_fpmr_record(env, fpmr); + } /* * NB that we must restore ZT after ZA so the check that there's * no ZT record if SVCR.ZA is 0 gets the right value of SVCR. @@ -817,7 +851,7 @@ static void target_setup_frame(int usig, struct target_= sigaction *ka, uc.tuc_mcontext.__reserved), }; int fpsimd_ofs, fr_ofs, sve_ofs =3D 0, za_ofs =3D 0, tpidr2_ofs =3D 0; - int zt_ofs =3D 0, esr_ofs =3D 0, gcs_ofs =3D 0; + int zt_ofs =3D 0, esr_ofs =3D 0, gcs_ofs =3D 0, fpmr_ofs =3D 0; int sve_size =3D 0, za_size =3D 0, tpidr2_size =3D 0, zt_size =3D 0; struct target_rt_sigframe *frame; struct target_rt_frame_record *fr; @@ -841,6 +875,11 @@ static void target_setup_frame(int usig, struct target= _sigaction *ka, &layout); } =20 + if (cpu_isar_feature(aa64_fpmr, env_archcpu(env))) { + fpmr_ofs =3D alloc_sigframe_space(sizeof(struct target_fpmr_contex= t), + &layout); + } + /* SVE state needs saving only if it exists. */ if (cpu_isar_feature(aa64_sve, env_archcpu(env)) || cpu_isar_feature(aa64_sme, env_archcpu(env))) { @@ -917,6 +956,9 @@ static void target_setup_frame(int usig, struct target_= sigaction *ka, !target_setup_gcs_record((void *)frame + gcs_ofs, env, return_addr= )) { goto give_sigsegv; } + if (fpmr_ofs) { + target_setup_fpmr_record((void *)frame + fpmr_ofs, env); + } target_setup_end_record((void *)frame + layout.std_end_ofs); if (layout.extra_ofs) { target_setup_extra_record((void *)frame + layout.extra_ofs, --=20 2.43.0